isle/out.html
2024-01-31 09:07:00 -05:00

275 lines
1.2 MiB

<!DOCTYPE html>
<html>
<head>
<title>Decompilation Status</title>
<style>
body {
background: #202020;
color: #f0f0f0;
font-family: sans-serif;
}
h1 {
text-align: center;
}
.main {
width: 800px;
max-width: 100%;
margin: auto;
}
#search {
width: 100%;
box-sizing: border-box;
background: #303030;
color: #f0f0f0;
border: 1px #f0f0f0 solid;
padding: 0.5em;
border-radius: 0.5em;
}
#search::placeholder {
color: #b0b0b0;
}
#listing {
width: 100%;
border-collapse: collapse;
font-family: monospace;
}
.funcrow:hover {
background: #404040 !important;
}
.funcrow:nth-child(odd), #listing th {
background: #282828;
}
.funcrow:nth-child(even) {
background: #383838;
}
#listing td, #listing th {
border: 1px #f0f0f0 solid;
padding: 0.5em;
}
.diffneg {
color: #FF8080;
}
.diffpos {
color: #80FF80;
}
.identical {
font-style: italic;
text-align: center;
}
#sortind {
margin: 0 0.5em;
}
.filters {
font-size: 10pt;
text-align: center;
margin: 0.5em 0 1em 0;
}
</style>
<script>
var data = [{"address": "0x10001000", "name": "Score::Score", "matching": 1.0, "diff": ""}, {"address": "0x10001070", "name": "MxEntity::Create", "matching": 1.0, "diff": ""}, {"address": "0x10001090", "name": "LegoEntity::SetWorldSpeed", "matching": 1.0, "diff": ""}, {"address": "0x100010a0", "name": "LegoWorld::VTable0x60", "matching": 1.0, "diff": ""}, {"address": "0x100010b0", "name": "Score::VTable0x5c", "matching": 1.0, "diff": ""}, {"address": "0x100010c0", "name": "Score::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100010d0", "name": "Score::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100011e0", "name": "Score::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10001200", "name": "Score::~Score", "matching": 1.0, "diff": ""}, {"address": "0x100012a0", "name": "Score::Create", "matching": 1.0, "diff": ""}, {"address": "0x10001340", "name": "Score::DeleteScript", "matching": 1.0, "diff": ""}, {"address": "0x10001410", "name": "Score::Notify", "matching": 0.8444444444444444, "diff": "--- \n\n+++ \n\n@@ -6,24 +6,24 @@\n\n mov esi, dword ptr [esp + 0x10]\n push esi\n call LegoWorld::Notify (FUNCTION)\n cmp byte ptr [ebx + 0xf6], 0\n je 0x9c\n mov ecx, dword ptr [esi + 4]\n dec ecx\n cmp ecx, 0x17\n ja 0x8f\n xor eax, eax\n-mov al, byte ptr [ecx + 0x100014ec]\n-jmp dword ptr [eax*4 + 0x100014d4]\n+mov al, byte ptr [ecx + 0x1001f1ac]\n+jmp dword ptr [eax*4 + 0x1001f194]\n+mov edi, 1\n mov ecx, ebx\n-mov edi, 1\n call Score::Paint (FUNCTION)\n mov eax, edi\n pop edi\n pop esi\n pop ebx\n ret 4\n push esi\n mov ecx, ebx\n call Score::FUN_10001510 (FUNCTION)\n mov edi, eax\n@@ -64,24 +64,30 @@\n\n call GameState (FUNCTION)\n mov ecx, eax\n call LegoGameState::SwitchArea (FUNCTION)\n mov edi, 1\n mov eax, edi\n pop edi\n pop esi\n pop ebx\n ret 4\n mov edi, edi\n+or dh, cl\n+add dword ptr [eax], edx\n+push ds\n+int1 \n+add dword ptr [eax], edx\n+xor cl, dh\n+add dword ptr [eax], edx\n dec edx\n-adc al, 0\n-adc byte ptr [esi + 0x14], bl\n-add byte ptr [eax], dl\n-jo 0x14\n-add byte ptr [eax], dl\n-mov dl, byte ptr [eax + eax]\n-adc byte ptr [esp + edx + 0x14ca1000], bl\n-add byte ptr [eax], dl\n+int1 \n+add dword ptr [eax], edx\n+pop esp\n+int1 \n+add dword ptr [eax], edx\n+mov dh, cl\n+add dword ptr [eax], edx\n add byte ptr [ecx], al\n add eax, 0x2050505\n add eax, 0x5050505\n add eax, 0x3050505\n add eax, 0x5050505"}, {"address": "0x10001510", "name": "Score::FUN_10001510", "matching": 1.0, "diff": ""}, {"address": "0x10001580", "name": "Score::ReadyWorld", "matching": 0.8292682926829268, "diff": "--- \n\n+++ \n\n@@ -1,45 +1,45 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 0x12c\n mov dword ptr [ebp - 0x10], ecx\n call LegoWorld::ReadyWorld (FUNCTION)\n-lea ecx, [ebp - 0x138]\n+lea ecx, [ebp - 0xa4]\n call MxDSAction::MxDSAction (FUNCTION)\n mov dword ptr [ebp - 4], 0\n-mov dword ptr [ebp - 0x11c], 0x1f4\n+mov dword ptr [ebp - 0x88], 0x1f4\n mov eax, dword ptr [ebp - 0x10]\n mov byte ptr [ebp - 4], 1\n mov ecx, dword ptr [eax + 0xc]\n-mov dword ptr [ebp - 0x14], ecx\n-lea ecx, [ebp - 0x14]\n+mov dword ptr [ebp - 0xa8], ecx\n+lea ecx, [ebp - 0xa8]\n push ecx\n-lea ecx, [ebp - 0x118]\n+lea ecx, [ebp - 0x84]\n call MxAtomId::operator= (FUNCTION)\n mov byte ptr [ebp - 4], 0\n call <OFFSET5>\n mov eax, dword ptr [ebp - 0x10]\n-lea ecx, [ebp - 0x138]\n+lea ecx, [ebp - 0xa4]\n push ecx\n-mov dword ptr [ebp - 0xb4], eax\n+mov dword ptr [ebp - 0x20], eax\n call Start (FUNCTION)\n add esp, 4\n mov ecx, dword ptr [ebp - 0x10]\n mov edx, dword ptr [ecx + 0xfc]\n cmp byte ptr [edx + 8], 0\n je 0x6c\n-lea ecx, [ebp - 0xa4]\n+lea ecx, [ebp - 0x138]\n call MxDSAction::MxDSAction (FUNCTION)\n mov byte ptr [ebp - 4], 2\n mov dword ptr [ebp - 0x88], 0x1f5\n mov eax, dword ptr [g_infoscorScript (DATA)]\n mov byte ptr [ebp - 4], 3\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n lea ecx, [ebp - 0x10]\n push ecx\n lea ecx, [ebp - 0x84]\n@@ -48,38 +48,32 @@\n\n call <OFFSET8>\n lea eax, [ebp - 0xa4]\n push eax\n call Start (FUNCTION)\n mov byte ptr [ebp - 4], 0\n add esp, 4\n call <OFFSET9>\n jmp 0x1d\n lea ecx, [ebp - 0x10]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0xa4]\n+lea ecx, [ebp - 0x138]\n jmp MxDSAction::~MxDSAction (FUNCTION)\n push 0xb\n call PlayMusic (FUNCTION)\n add esp, 4\n push 7\n push 0\n call FUN_10015820 (FUNCTION)\n mov dword ptr [ebp - 4], 0xffffffff\n add esp, 8\n call <OFFSET14>\n mov eax, dword ptr [ebp - 0xc]\n mov esp, ebp\n mov dword ptr fs:[0], eax\n pop ebp\n ret \n-lea ecx, [ebp - 0x14]\n+lea ecx, [ebp - 0xa8]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n mov eax, <OFFSET15>\n jmp ___CxxFrameHandler (FUNCTION)\n-lea ecx, [ebp - 0x138]\n+lea ecx, [ebp - 0xa4]\n jmp MxDSAction::~MxDSAction (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100016d0", "name": "Score::FUN_100016d0", "matching": 0.9552238805970149, "diff": "--- \n\n+++ \n\n@@ -12,21 +12,21 @@\n\n mov esi, ecx\n mov cx, word ptr [eax + 0x28]\n cmp cx, 1\n je 0x6\n cmp dword ptr [eax + 0x20], 4\n jne 0x35\n mov eax, dword ptr [eax + 0x20]\n dec eax\n cmp eax, 3\n ja 0x2c\n-jmp dword ptr [eax*4 + 0x10001970]\n+jmp dword ptr [eax*4 + 0x1001f630]\n mov dword ptr [esi + 0xf8], 2\n mov ecx, esi\n call Score::DeleteScript (FUNCTION)\n push 0\n push 0\n push 0x32\n push 3\n call TransitionManager (FUNCTION)\n mov ecx, eax\n call MxTransitionManager::StartTransition (FUNCTION)\n@@ -152,16 +152,17 @@\n\n mov dword ptr [ebp - 4], 0xffffffff\n add esp, 4\n call <OFFSET19>\n jmp -0x219\n lea ecx, [ebp - 0x10]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n mov eax, <OFFSET20>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0xa4]\n jmp MxDSAction::~MxDSAction (FUNCTION)\n-adc eax, 0x51100017\n-pop ss\n-add byte ptr [eax], dl\n-pop ebp\n-pop ss\n-add byte ptr [eax], dl\n+aad 0xf3\n+add dword ptr [eax], edx\n+adc esp, esi\n+add dword ptr [eax], edx\n+sbb eax, 0xa81001f4\n+hlt \n+add dword ptr [eax], edx"}, {"address": "0x10001980", "name": "Score::VTable0x68", "matching": 1.0, "diff": ""}, {"address": "0x100019d0", "name": "Score::Paint", "matching": 0.7724425887265136, "diff": "--- \n\n+++ \n\n@@ -1,21 +1,20 @@\n\n sub esp, 0x84\n mov dword ptr [esp + 4], ecx\n push ebx\n mov dword ptr [esp + 0x10], 'bigcube.gif' (STRING)\n push esi\n push edi\n push ebp\n call GetGifManager (FUNCTION)\n lea ecx, [eax + 8]\n mov esi, eax\n-mov dword ptr [esp + 0x18], 0\n lea eax, [esp + 0x1c]\n push eax\n call _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Lbound (FUNCTION)\n mov dword ptr [esp + 0x28], eax\n cmp dword ptr [esi + 0xc], eax\n je 0x34\n mov ecx, dword ptr [esp + 0x1c]\n mov eax, dword ptr [eax + 0xc]\n mov dl, byte ptr [ecx]\n cmp dl, byte ptr [eax]\n@@ -30,49 +29,51 @@\n\n or dl, dl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n lea eax, [esp + 0x28]\n jle 0xb\n mov eax, dword ptr [esi + 0xc]\n-mov dword ptr [esp + 0x24], eax\n-lea eax, [esp + 0x24]\n+mov dword ptr [esp + 0x20], eax\n+lea eax, [esp + 0x20]\n mov eax, dword ptr [eax]\n cmp dword ptr [esi + 0xc], eax\n-je 0x7\n+je 0x9\n mov ecx, dword ptr [eax + 0x10]\n mov dword ptr [esp + 0x18], ecx\n+jmp 0x8\n+mov dword ptr [esp + 0x18], 0\n cmp dword ptr [esp + 0x18], 0\n-je 0x221\n+je 0x224\n push 'JetskiRaceState' (STRING)\n call GameState (FUNCTION)\n mov ecx, eax\n call LegoGameState::GetState (FUNCTION)\n mov dword ptr [esp + 0x1c], eax\n push 'CarRaceState' (STRING)\n call GameState (FUNCTION)\n mov ecx, eax\n call LegoGameState::GetState (FUNCTION)\n-mov dword ptr [esp + 0x24], eax\n+mov dword ptr [esp + 0x20], eax\n push 'TowTrackMissionState' (STRING)\n call GameState (FUNCTION)\n mov ecx, eax\n call LegoGameState::GetState (FUNCTION)\n mov esi, eax\n push 'PizzaMissionState' (STRING)\n call GameState (FUNCTION)\n mov ecx, eax\n call LegoGameState::GetState (FUNCTION)\n-mov dword ptr [esp + 0x20], eax\n+mov dword ptr [esp + 0x24], eax\n push 'AmbulanceMissionState' (STRING)\n call GameState (FUNCTION)\n mov ecx, eax\n call LegoGameState::GetState (FUNCTION)\n mov ebp, eax\n lea edi, [esp + 0x28]\n xor eax, eax\n mov ecx, 0x1b\n rep stosd dword ptr es:[edi], eax\n mov eax, dword ptr [esp + 0x18]\n@@ -80,130 +81,132 @@\n\n lea ecx, [esp + 0x2c]\n push 0\n mov dword ptr [esp + 0x30], 0x6c\n mov eax, dword ptr [eax + 4]\n push ecx\n mov ebx, dword ptr [eax]\n push 0\n push eax\n call dword ptr [ebx + 0x64]\n test eax, eax\n-jne 0x187\n+jne 0x18a\n mov eax, dword ptr [esp + 0x38]\n cmp dword ptr [esp + 0x34], eax\n je 0x20\n mov eax, dword ptr [esp + 0x18]\n mov ecx, dword ptr [esp + 0x4c]\n push ecx\n mov eax, dword ptr [eax + 4]\n push eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x80]\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 0x84\n ret \n+mov byte ptr [esp + 0x13], 1\n mov ecx, dword ptr [esp + 0x4c]\n mov eax, dword ptr [esp + 0x14]\n-mov byte ptr [esp + 0x13], 1\n mov dword ptr [eax + 0x100], ecx\n-cmp dword ptr [esp + 0x24], 0\n-mov ax, 0\n+xor ax, ax\n+cmp dword ptr [esp + 0x20], 0\n je 0x12\n mov eax, dword ptr [esp + 0x13]\n-mov ecx, dword ptr [esp + 0x24]\n+mov ecx, dword ptr [esp + 0x20]\n push eax\n call RaceState::GetState (FUNCTION)\n mov ax, word ptr [eax + 4]\n xor ebx, ebx\n push eax\n mov bl, byte ptr [esp + 0x17]\n mov ecx, dword ptr [esp + 0x18]\n lea edi, [ebx - 1]\n push edi\n push 0\n call Score::FillArea (FUNCTION)\n+xor ax, ax\n cmp dword ptr [esp + 0x1c], 0\n-mov ax, 0\n je 0x12\n mov eax, dword ptr [esp + 0x13]\n mov ecx, dword ptr [esp + 0x1c]\n push eax\n call RaceState::GetState (FUNCTION)\n mov ax, word ptr [eax + 4]\n mov ecx, dword ptr [esp + 0x14]\n push eax\n push edi\n push 1\n call Score::FillArea (FUNCTION)\n-cmp dword ptr [esp + 0x20], 0\n-mov ax, 0\n+xor ax, ax\n+cmp dword ptr [esp + 0x24], 0\n je 0x12\n mov eax, dword ptr [esp + 0x13]\n-mov ecx, dword ptr [esp + 0x20]\n+mov ecx, dword ptr [esp + 0x24]\n push eax\n call PizzaMissionState::GetState (FUNCTION)\n mov ax, word ptr [eax + 0x18]\n mov ecx, dword ptr [esp + 0x14]\n push eax\n push edi\n push 2\n call Score::FillArea (FUNCTION)\n+xor ax, ax\n test esi, esi\n-je 0x2d\n+je 0x30\n lea eax, [ebx - 1]\n cmp eax, 4\n-ja 0x25\n-jmp dword ptr [eax*4 + 0x10001c90]\n-mov ax, word ptr [esi + 0x1c]\n-jmp 0x1b\n+ja 0x7\n+jmp dword ptr [eax*4 + 0x1001f954]\n+xor ax, ax\n+jmp 0x1c\n mov ax, word ptr [esi + 0x1e]\n-jmp 0x15\n+jmp 0x16\n mov ax, word ptr [esi + 0x20]\n-jmp 0xf\n+jmp 0x10\n mov ax, word ptr [esi + 0x22]\n-jmp 0x9\n+jmp 0xa\n mov ax, word ptr [esi + 0x24]\n-jmp 0x3\n-xor ax, ax\n+jmp 0x4\n+mov ax, word ptr [esi + 0x26]\n mov ecx, dword ptr [esp + 0x14]\n push eax\n push edi\n push 3\n call Score::FillArea (FUNCTION)\n+xor ax, ax\n test ebp, ebp\n-je 0x2b\n+je 0x2e\n dec ebx\n cmp ebx, 4\n-ja 0x25\n-jmp dword ptr [ebx*4 + 0x10001ca4]\n+ja 0x7\n+jmp dword ptr [ebx*4 + 0x1001f968]\n+xor ax, ax\n+jmp 0x1c\n mov ax, word ptr [ebp + 0x1a]\n-jmp 0x1b\n+jmp 0x16\n mov ax, word ptr [ebp + 0x1c]\n-jmp 0x15\n+jmp 0x10\n mov ax, word ptr [ebp + 0x1e]\n-jmp 0xf\n+jmp 0xa\n mov ax, word ptr [ebp + 0x20]\n-jmp 0x9\n+jmp 0x4\n mov ax, word ptr [ebp + 0x22]\n-jmp 0x3\n-xor ax, ax\n mov ecx, dword ptr [esp + 0x14]\n push eax\n push edi\n push 4\n call Score::FillArea (FUNCTION)\n inc byte ptr [esp + 0x13]\n cmp byte ptr [esp + 0x13], 5\n-jbe -0x116\n+jbe -0x127\n mov eax, dword ptr [esp + 0x18]\n mov ecx, dword ptr [esp + 0x4c]\n push ecx\n mov eax, dword ptr [eax + 4]\n push eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x80]\n mov ecx, dword ptr [esp + 0x18]\n push 0\n push 1\n@@ -212,33 +215,21 @@\n\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x38]\n mov ecx, dword ptr [esp + 0x14]\n mov dword ptr [ecx + 0x100], 0\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 0x84\n ret \n-nop \n-aam 0x1b\n-add byte ptr [eax], dl\n-ficomp dword ptr [ebx]\n-add byte ptr [eax], dl\n-loopne 0x10001cb5\n-add byte ptr [eax], dl\n-out 0x1b, al\n-add byte ptr [eax], dl\n-in al, dx\n-sbb eax, dword ptr [eax]\n-adc byte ptr [ebx], dl\n-sbb al, 0\n-adc byte ptr [ecx], bl\n-sbb al, 0\n-adc byte ptr [edi], bl\n-sbb al, 0\n-adc byte ptr [<OFFSET14>], ah\n-sbb al, 0\n-adc ah, cl\n-int3 \n-int3 \n-int3 \n+wait \n+clc \n+add dword ptr [eax], edx\n+mov eax, dword ptr [<OFFSET14>]\n+clc \n+add dword ptr [eax], edx\n+lodsd eax, dword ptr [esi]\n+clc \n+add dword ptr [eax], edx\n+mov bl, 0xf8\n+add dword ptr [eax], edx"}, {"address": "0x10001cc0", "name": "_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Lbound", "matching": 0.9473684210526315, "diff": "--- \n\n+++ \n\n@@ -1,16 +1,16 @@\n\n push ebx\n mov eax, dword ptr [ecx + 4]\n push esi\n push edi\n mov esi, dword ptr [eax + 4]\n-cmp esi, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], esi\n je 0x43\n mov edx, dword ptr [esp + 0x10]\n mov ecx, dword ptr [esi + 0xc]\n mov edi, dword ptr [edx]\n mov bl, byte ptr [ecx]\n cmp bl, byte ptr [edi]\n jne 0x1a\n or bl, bl\n je 0x12\n mov bl, byte ptr [ecx + 1]\n@@ -23,16 +23,16 @@\n\n xor ecx, ecx\n jmp 0x5\n sbb ecx, ecx\n sbb ecx, -1\n test ecx, ecx\n jg 0x6\n mov eax, esi\n mov esi, dword ptr [esi]\n jmp 0x3\n mov esi, dword ptr [esi + 8]\n-cmp esi, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], esi\n jne -0x3f\n pop edi\n pop esi\n pop ebx\n ret 4"}, {"address": "0x10001d20", "name": "Score::FillArea", "matching": 0.6716417910447762, "diff": "--- \n\n+++ \n\n@@ -1,67 +1,67 @@\n\n sub esp, 0x60\n mov dword ptr [esp + 0x24], 0x2b00\n-mov dword ptr [esp + 0x28], 0x5700\n-mov dword ptr [esp + 0x2c], 0x8000\n push ebx\n mov eax, 0x2a\n+mov dword ptr [esp + 0x50], eax\n push esi\n+mov dword ptr [esp + 0x30], 0x5700\n+push edi\n mov edx, 0x27\n-mov dword ptr [esp + 0x54], eax\n-push edi\n+mov dword ptr [esp + 0x38], 0x8000\n mov dword ptr [esp + 0x3c], 0xab00\n mov dword ptr [esp + 0x40], 0xd600\n push ebp\n mov esi, 0x29\n mov dword ptr [esp + 0x60], edx\n mov dword ptr [esp + 0x64], esi\n mov dword ptr [esp + 0x68], esi\n mov dword ptr [esp + 0x6c], eax\n+mov dword ptr [esp + 0x4c], esi\n+mov dword ptr [esp + 0x50], edx\n mov dword ptr [esp + 0x20], 0x2f\n mov dword ptr [esp + 0x24], 0x56\n mov dword ptr [esp + 0x28], 0x81\n-mov dword ptr [esp + 0x4c], esi\n-mov dword ptr [esp + 0x50], edx\n mov dword ptr [esp + 0x2c], 0xaa\n mov dword ptr [esp + 0x30], 0xd4\n mov dword ptr [esp + 0x48], 0x25\n mov dword ptr [esp + 0x10], 0x11\n mov eax, 0x28\n-mov esi, dword ptr [esp + 0x74]\n+mov edi, dword ptr [esp + 0x78]\n mov dword ptr [esp + 0x54], eax\n mov dword ptr [esp + 0x58], eax\n-mov edi, dword ptr [esp + 0x78]\n-mov edx, dword ptr [esp + esi*4 + 0x20]\n mov dword ptr [esp + 0x14], 0xf\n-add edx, dword ptr [esp + edi*4 + 0x34]\n-mov ebp, dword ptr [esp + esi*4 + 0x48]\n+mov eax, dword ptr [esp + 0x74]\n+mov esi, dword ptr [esp + edi*4 + 0x34]\n+mov ebp, dword ptr [esp + edi*4 + 0x5c]\n+mov edx, dword ptr [esp + eax*4 + 0x48]\n+add esi, dword ptr [esp + eax*4 + 0x20]\n movsx eax, word ptr [esp + 0x7c]\n-add edx, dword ptr [ecx + 0x100]\n-mov esi, dword ptr [esp + edi*4 + 0x5c]\n mov dword ptr [esp + 0x18], 8\n mov dword ptr [esp + 0x1c], 5\n+add esi, dword ptr [ecx + 0x100]\n mov ebx, dword ptr [esp + eax*4 + 0x10]\n-test esi, esi\n-jle 0x27\n+test ebp, ebp\n+jle 0x28\n mov cl, bl\n-mov edi, edx\n+mov edi, esi\n mov ch, cl\n-add edx, 0x100\n mov cl, bl\n mov eax, ecx\n shl eax, 0x10\n mov ax, cx\n-mov ecx, ebp\n+mov ecx, edx\n shr ecx, 2\n rep stosd dword ptr es:[edi], eax\n-mov ecx, ebp\n+mov ecx, edx\n and ecx, 3\n rep stosb byte ptr es:[edi], al\n-dec esi\n-jne -0x27\n+inc esi\n+add esi, 0x100\n+dec ebp\n+jne -0x28\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 0x60\n ret 0xc\n-int3 "}, {"address": "0x10001e40", "name": "Score::VTable0x64", "matching": 1.0, "diff": ""}, {"address": "0x10001e60", "name": "Helicopter::Helicopter", "matching": 1.0, "diff": ""}, {"address": "0x10001f70", "name": "MxCore::Tickle", "matching": 1.0, "diff": ""}, {"address": "0x10001f80", "name": "Vector2::AddImpl", "matching": 1.0, "diff": ""}, {"address": "0x10001fa0", "name": "Vector2::AddImpl", "matching": 1.0, "diff": ""}, {"address": "0x10001fc0", "name": "Vector2::SubImpl", "matching": 1.0, "diff": ""}, {"address": "0x10001fe0", "name": "Vector2::MulVectorImpl", "matching": 1.0, "diff": ""}, {"address": "0x10002000", "name": "Vector2::MulScalarImpl", "matching": 1.0, "diff": ""}, {"address": "0x10002020", "name": "Vector2::DivScalarImpl", "matching": 1.0, "diff": ""}, {"address": "0x10002040", "name": "Vector2::DotImpl", "matching": 1.0, "diff": ""}, {"address": "0x10002060", "name": "Vector2::SetData", "matching": 1.0, "diff": ""}, {"address": "0x10002070", "name": "Vector2::EqualsImpl", "matching": 1.0, "diff": ""}, {"address": "0x10002090", "name": "Vector2::GetData", "matching": 1.0, "diff": ""}, {"address": "0x100020a0", "name": "Vector2::GetData", "matching": 1.0, "diff": ""}, {"address": "0x100020b0", "name": "Vector2::Clear", "matching": 1.0, "diff": ""}, {"address": "0x100020d0", "name": "Vector2::Dot", "matching": 1.0, "diff": ""}, {"address": "0x100020f0", "name": "Vector2::Dot", "matching": 1.0, "diff": ""}, {"address": "0x10002110", "name": "Vector2::Dot", "matching": 1.0, "diff": ""}, {"address": "0x10002130", "name": "Vector2::Dot", "matching": 1.0, "diff": ""}, {"address": "0x10002150", "name": "Vector2::LenSquared", "matching": 1.0, "diff": ""}, {"address": "0x10002160", "name": "Vector2::Unitize", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,32 +1,32 @@\n\n sub esp, 4\n push esi\n push edi\n-mov edi, dword ptr [ecx]\n-mov esi, ecx\n-call dword ptr [edi + 0x40]\n+mov esi, dword ptr [ecx]\n+mov edi, ecx\n+call dword ptr [esi + 0x40]\n fcom dword ptr [0.0 (FLOAT)]\n fstp dword ptr [esp + 8]\n fnstsw ax\n test ah, 0x41\n jne 0x29\n fld dword ptr [esp + 8]\n fsqrt \n fcom dword ptr [0.0 (FLOAT)]\n fstp dword ptr [esp + 8]\n fnstsw ax\n test ah, 0x41\n jne 0x12\n lea eax, [esp + 8]\n-mov ecx, esi\n+mov ecx, edi\n push eax\n-call dword ptr [edi + 0x14]\n+call dword ptr [esi + 0x14]\n xor eax, eax\n pop edi\n pop esi\n add esp, 4\n ret \n mov eax, 0xffffffff\n pop edi\n pop esi\n add esp, 4\n ret "}, {"address": "0x100021c0", "name": "Vector2::Add", "matching": 1.0, "diff": ""}, {"address": "0x100021d0", "name": "Vector2::Add", "matching": 1.0, "diff": ""}, {"address": "0x100021e0", "name": "Vector2::Add", "matching": 1.0, "diff": ""}, {"address": "0x100021f0", "name": "Vector2::Sub", "matching": 1.0, "diff": ""}, {"address": "0x10002200", "name": "Vector2::Sub", "matching": 1.0, "diff": ""}, {"address": "0x10002210", "name": "Vector2::Mul", "matching": 1.0, "diff": ""}, {"address": "0x10002220", "name": "Vector2::Mul", "matching": 1.0, "diff": ""}, {"address": "0x10002230", "name": "Vector2::Mul", "matching": 1.0, "diff": ""}, {"address": "0x10002240", "name": "Vector2::Div", "matching": 1.0, "diff": ""}, {"address": "0x10002250", "name": "Vector2::SetVector", "matching": 1.0, "diff": ""}, {"address": "0x10002260", "name": "Vector2::SetVector", "matching": 1.0, "diff": ""}, {"address": "0x10002270", "name": "Vector3::EqualsCrossImpl", "matching": 1.0, "diff": ""}, {"address": "0x100022c0", "name": "Vector3::EqualsCross", "matching": 1.0, "diff": ""}, {"address": "0x100022e0", "name": "Vector3::EqualsCross", "matching": 1.0, "diff": ""}, {"address": "0x10002300", "name": "Vector3::EqualsCross", "matching": 1.0, "diff": ""}, {"address": "0x10002320", "name": "Matrix4::Equals", "matching": 1.0, "diff": ""}, {"address": "0x10002340", "name": "Matrix4::Equals", "matching": 1.0, "diff": ""}, {"address": "0x10002360", "name": "Matrix4::SetData", "matching": 1.0, "diff": ""}, {"address": "0x10002370", "name": "Matrix4::SetData", "matching": 1.0, "diff": ""}, {"address": "0x10002380", "name": "Matrix4::GetData", "matching": 1.0, "diff": ""}, {"address": "0x10002390", "name": "Matrix4::GetData", "matching": 1.0, "diff": ""}, {"address": "0x100023a0", "name": "Matrix4::Element", "matching": 1.0, "diff": ""}, {"address": "0x100023c0", "name": "Matrix4::Element", "matching": 1.0, "diff": ""}, {"address": "0x100023e0", "name": "Matrix4::Clear", "matching": 1.0, "diff": ""}, {"address": "0x100023f0", "name": "Matrix4::SetIdentity", "matching": 1.0, "diff": ""}, {"address": "0x10002420", "name": "Matrix4::operator=", "matching": 1.0, "diff": ""}, {"address": "0x10002430", "name": "Matrix4::operator+=", "matching": 1.0, "diff": ""}, {"address": "0x10002460", "name": "Matrix4::TranslateBy", "matching": 0.5789473684210527, "diff": "--- \n\n+++ \n\n@@ -1,19 +1,19 @@\n\n mov edx, dword ptr [ecx + 4]\n mov eax, dword ptr [esp + 4]\n add edx, 0x30\n-fld dword ptr [eax]\n-fadd dword ptr [edx]\n+fld dword ptr [edx]\n+fadd dword ptr [eax]\n mov eax, dword ptr [esp + 8]\n fstp dword ptr [edx]\n-fld dword ptr [eax]\n mov edx, dword ptr [ecx + 4]\n add edx, 0x34\n-fadd dword ptr [edx]\n+fld dword ptr [edx]\n+fadd dword ptr [eax]\n+mov eax, dword ptr [esp + 0xc]\n fstp dword ptr [edx]\n-mov eax, dword ptr [ecx + 4]\n-mov ecx, dword ptr [esp + 0xc]\n-add eax, 0x38\n+mov ecx, dword ptr [ecx + 4]\n+add ecx, 0x38\n fld dword ptr [ecx]\n fadd dword ptr [eax]\n-fstp dword ptr [eax]\n+fstp dword ptr [ecx]\n ret 0xc"}, {"address": "0x100024a0", "name": "Matrix4::SetTranslation", "matching": 1.0, "diff": ""}, {"address": "0x100024d0", "name": "Matrix4::Product", "matching": 0.6216216216216216, "diff": "--- \n\n+++ \n\n@@ -1,35 +1,35 @@\n\n sub esp, 4\n+mov ecx, dword ptr [ecx + 4]\n mov dword ptr [esp], 4\n push ebx\n push esi\n mov ebx, dword ptr [esp + 0x10]\n push edi\n push ebp\n-mov edi, dword ptr [ecx + 4]\n mov eax, dword ptr [esp + 0x1c]\n mov ebp, 4\n-mov esi, ebx\n-mov edx, eax\n-mov ecx, 4\n-mov dword ptr [edi], 0\n+mov edi, ebx\n+mov esi, eax\n+mov edx, 4\n+mov dword ptr [ecx], 0\n jmp 0x2\n-fstp dword ptr [edi]\n-fld dword ptr [edx]\n-fmul dword ptr [esi]\n-add esi, 4\n-add edx, 0x10\n-dec ecx\n-fadd dword ptr [edi]\n+fstp dword ptr [ecx]\n+fld dword ptr [esi]\n+fmul dword ptr [edi]\n+add edi, 4\n+add esi, 0x10\n+dec edx\n+fadd dword ptr [ecx]\n jne -0x11\n-fstp dword ptr [edi]\n-add edi, 4\n+fstp dword ptr [ecx]\n+add ecx, 4\n add eax, 4\n dec ebp\n jne -0x2d\n add ebx, 0x10\n dec dword ptr [esp + 0x10]\n jne -0x3f\n pop ebp\n pop edi\n pop esi\n pop ebx"}, {"address": "0x10002530", "name": "Matrix4::Product", "matching": 1.0, "diff": ""}, {"address": "0x10002850", "name": "MxMatrix::operator=", "matching": 1.0, "diff": ""}, {"address": "0x10002860", "name": "MxMatrix::operator=", "matching": 1.0, "diff": ""}, {"address": "0x10002870", "name": "Vector4::AddImpl", "matching": 1.0, "diff": ""}, {"address": "0x100028b0", "name": "Vector4::AddImpl", "matching": 1.0, "diff": ""}, {"address": "0x100028f0", "name": "Vector4::SubImpl", "matching": 1.0, "diff": ""}, {"address": "0x10002930", "name": "Vector4::MulVectorImpl", "matching": 1.0, "diff": ""}, {"address": "0x10002970", "name": "Vector4::MulScalarImpl", "matching": 1.0, "diff": ""}, {"address": "0x100029b0", "name": "Vector4::DivScalarImpl", "matching": 1.0, "diff": ""}, {"address": "0x100029f0", "name": "Vector4::DotImpl", "matching": 1.0, "diff": ""}, {"address": "0x10002a20", "name": "Vector4::EqualsImpl", "matching": 1.0, "diff": ""}, {"address": "0x10002a40", "name": "Vector4::SetMatrixProduct", "matching": 0.6491228070175439, "diff": "--- \n\n+++ \n\n@@ -1,57 +1,57 @@\n\n mov edx, dword ptr [esp + 4]\n push esi\n mov esi, dword ptr [esp + 0xc]\n-fld dword ptr [esi + 0x30]\n-fmul dword ptr [edx + 0xc]\n+fld dword ptr [edx + 0xc]\n+fmul dword ptr [esi + 0x30]\n fld dword ptr [esi + 0x20]\n fmul dword ptr [edx + 8]\n faddp st(1)\n fld dword ptr [esi + 0x10]\n fmul dword ptr [edx + 4]\n mov eax, dword ptr [ecx + 4]\n faddp st(1)\n-fld dword ptr [edx]\n-fmul dword ptr [esi]\n+fld dword ptr [esi]\n+fmul dword ptr [edx]\n faddp st(1)\n fstp dword ptr [eax]\n+fld dword ptr [esi + 4]\n+fmul dword ptr [edx]\n fld dword ptr [esi + 0x24]\n fmul dword ptr [edx + 8]\n+faddp st(1)\n fld dword ptr [esi + 0x14]\n fmul dword ptr [edx + 4]\n-faddp st(1)\n-fld dword ptr [esi + 4]\n-fmul dword ptr [edx]\n mov eax, dword ptr [ecx + 4]\n faddp st(1)\n fld dword ptr [esi + 0x34]\n-fmul dword ptr [edx + 0xc]\n+fmul dword ptr [edx + 0x10]\n faddp st(1)\n fstp dword ptr [eax + 4]\n fld dword ptr [esi + 0x38]\n-fmul dword ptr [edx + 0xc]\n+fmul dword ptr [edx + 0x10]\n+fld dword ptr [esi + 8]\n+fmul dword ptr [edx]\n+faddp st(1)\n+fld dword ptr [esi + 0x28]\n+fmul dword ptr [edx + 8]\n+mov eax, dword ptr [ecx + 4]\n+faddp st(1)\n fld dword ptr [esi + 0x18]\n fmul dword ptr [edx + 4]\n faddp st(1)\n-fld dword ptr [esi + 8]\n+fstp dword ptr [eax + 8]\n+fld dword ptr [esi + 0xc]\n fmul dword ptr [edx]\n-mov eax, dword ptr [ecx + 4]\n-faddp st(1)\n-fld dword ptr [esi + 0x28]\n-fmul dword ptr [edx + 8]\n-faddp st(1)\n-fstp dword ptr [eax + 8]\n-fld dword ptr [esi + 0x3c]\n-fmul dword ptr [edx + 0xc]\n fld dword ptr [esi + 0x2c]\n fmul dword ptr [edx + 8]\n faddp st(1)\n fld dword ptr [esi + 0x1c]\n fmul dword ptr [edx + 4]\n mov eax, dword ptr [ecx + 4]\n faddp st(1)\n-fld dword ptr [esi + 0xc]\n-fmul dword ptr [edx]\n+fld dword ptr [esi + 0x3c]\n+fmul dword ptr [edx + 0x10]\n pop esi\n faddp st(1)\n fstp dword ptr [eax + 0xc]\n ret 8"}, {"address": "0x10002ae0", "name": "Vector4::SetMatrixProduct", "matching": 1.0, "diff": ""}, {"address": "0x10002b00", "name": "Vector4::Clear", "matching": 1.0, "diff": ""}, {"address": "0x10002b20", "name": "Vector4::LenSquared", "matching": 0.8461538461538461, "diff": "--- \n\n+++ \n\n@@ -1,13 +1,13 @@\n\n mov eax, dword ptr [ecx + 4]\n+fld dword ptr [eax + 8]\n+fmul dword ptr [eax + 8]\n fld dword ptr [eax + 4]\n fmul dword ptr [eax + 4]\n-fld dword ptr [eax + 8]\n-fmul dword ptr [eax + 8]\n faddp st(1)\n fld dword ptr [eax + 0xc]\n fmul dword ptr [eax + 0xc]\n faddp st(1)\n fld dword ptr [eax]\n fmul dword ptr [eax]\n faddp st(1)\n ret "}, {"address": "0x10002b40", "name": "Vector4::EqualsScalar", "matching": 1.0, "diff": ""}, {"address": "0x10002bf0", "name": "Vector4::UnknownQuaternionOp", "matching": 0.5263157894736842, "diff": "--- \n\n+++ \n\n@@ -1,75 +1,77 @@\n\n-mov edx, dword ptr [esp + 8]\n+mov edx, dword ptr [esp + 4]\n push ebx\n push esi\n push edi\n-mov esi, dword ptr [esp + 0x10]\n-mov eax, dword ptr [edx + 4]\n-mov edi, dword ptr [esi + 4]\n+mov esi, dword ptr [esp + 0x14]\n+mov edi, dword ptr [edx + 4]\n fld dword ptr [edi + 4]\n-fmul dword ptr [eax + 4]\n-fld dword ptr [edi + 8]\n-fmul dword ptr [eax + 8]\n+fmul dword ptr [edi + 4]\n+mov ebx, dword ptr [esi + 4]\n+fld dword ptr [ebx + 8]\n+fmul dword ptr [edi + 8]\n faddp st(1)\n-fld dword ptr [eax]\n-fmul dword ptr [edi]\n-mov ebx, dword ptr [ecx + 4]\n+fld dword ptr [edi]\n+fmul dword ptr [ebx]\n+mov eax, dword ptr [ecx + 4]\n faddp st(1)\n-fld dword ptr [edi + 0xc]\n-fmul dword ptr [eax + 0xc]\n+fld dword ptr [ebx + 0xc]\n+fmul dword ptr [edi + 0xc]\n fsubrp st(1)\n-fstp dword ptr [ebx + 0xc]\n-mov edi, dword ptr [edx + 4]\n-mov ebx, dword ptr [esi + 4]\n+fstp dword ptr [eax + 0xc]\n+fld dword ptr [ebx + 8]\n+fmul dword ptr [edi + 4]\n+fld dword ptr [ebx + 4]\n+fmul dword ptr [edi + 8]\n mov eax, dword ptr [ecx + 4]\n-fld dword ptr [edi + 8]\n-fmul dword ptr [ebx + 4]\n-fld dword ptr [edi + 4]\n-fmul dword ptr [ebx + 8]\n fsubp st(1)\n fstp dword ptr [eax]\n+fld dword ptr [edi + 8]\n+fmul dword ptr [ebx]\n fld dword ptr [ebx + 8]\n fmul dword ptr [edi]\n-fld dword ptr [edi + 8]\n-fmul dword ptr [ebx]\n mov eax, dword ptr [ecx + 4]\n fsubp st(1)\n fstp dword ptr [eax + 4]\n+fld dword ptr [ebx + 4]\n+fmul dword ptr [edi]\n fld dword ptr [edi + 4]\n fmul dword ptr [ebx]\n-fld dword ptr [ebx + 4]\n-fmul dword ptr [edi]\n mov eax, dword ptr [ecx + 4]\n fsubp st(1)\n fstp dword ptr [eax + 8]\n mov ebx, dword ptr [ecx + 4]\n-mov edi, dword ptr [esi + 4]\n-mov eax, dword ptr [edx + 4]\n+mov edi, dword ptr [edx + 4]\n+mov eax, dword ptr [esi + 4]\n fld dword ptr [edi + 0xc]\n fmul dword ptr [eax]\n fld dword ptr [eax + 0xc]\n fmul dword ptr [edi]\n faddp st(1)\n fadd dword ptr [ebx]\n fstp dword ptr [ebx]\n-mov edi, dword ptr [ecx + 4]\n-mov eax, dword ptr [esi + 4]\n-add edi, 4\n-mov ebx, dword ptr [edx + 4]\n+mov ebx, dword ptr [ecx + 4]\n+mov edi, dword ptr [esi + 4]\n+add ebx, 4\n+mov eax, dword ptr [edx + 4]\n+fld dword ptr [edi + 4]\n+fmul dword ptr [eax + 0xc]\n fld dword ptr [eax + 4]\n-fmul dword ptr [ebx + 0xc]\n-fld dword ptr [ebx + 4]\n-fmul dword ptr [eax + 0xc]\n+fmul dword ptr [edi + 0xc]\n faddp st(1)\n-fadd dword ptr [edi]\n-fstp dword ptr [edi]\n+fadd dword ptr [ebx]\n+fstp dword ptr [ebx]\n mov edi, dword ptr [ecx + 4]\n add edi, 8\n mov ecx, dword ptr [esi + 4]\n mov eax, dword ptr [edx + 4]\n fld dword ptr [ecx + 8]\n fmul dword ptr [eax + 0xc]\n fld dword ptr [eax + 8]\n fmul dword ptr [ecx + 0xc]\n-xor eax, eax\n faddp st(1)\n fadd dword ptr [edi]\n+fstp dword ptr [edi]\n+pop edi\n+pop esi\n+pop ebx\n+ret 8"}, {"address": "0x10002cc0", "name": "LegoActor::VTable0x50", "matching": 1.0, "diff": ""}, {"address": "0x10002cd0", "name": "LegoActor::VTable0x54", "matching": 1.0, "diff": ""}, {"address": "0x10002ce0", "name": "LegoActor::VTable0x58", "matching": 1.0, "diff": ""}, {"address": "0x10002cf0", "name": "LegoActor::VTable0x5c", "matching": 1.0, "diff": ""}, {"address": "0x10002d00", "name": "LegoActor::VTable0x60", "matching": 1.0, "diff": ""}, {"address": "0x10002d10", "name": "LegoActor::VTable0x64", "matching": 1.0, "diff": ""}, {"address": "0x10002d20", "name": "LegoPathActor::VTable0x78", "matching": 1.0, "diff": ""}, {"address": "0x10002d30", "name": "LegoPathActor::VTable0x7c", "matching": 1.0, "diff": ""}, {"address": "0x10002d40", "name": "LegoPathActor::VTable0x90", "matching": 0.6666666666666666, "diff": "--- \n\n+++ \n\n@@ -1 +1,2 @@\n\n xor eax, eax\n+ret "}, {"address": "0x10002d50", "name": "LegoPathActor::VTable0x94", "matching": 0.6666666666666666, "diff": "--- \n\n+++ \n\n@@ -1 +1,2 @@\n\n xor eax, eax\n+ret "}, {"address": "0x10002d60", "name": "LegoPathActor::VTable0xa0", "matching": 1.0, "diff": ""}, {"address": "0x10002d70", "name": "LegoPathActor::VTable0xac", "matching": 1.0, "diff": ""}, {"address": "0x10002d80", "name": "LegoPathActor::VTable0xb0", "matching": 1.0, "diff": ""}, {"address": "0x10002d90", "name": "LegoPathActor::VTable0xb4", "matching": 1.0, "diff": ""}, {"address": "0x10002da0", "name": "LegoPathActor::VTable0xb8", "matching": 1.0, "diff": ""}, {"address": "0x10002db0", "name": "LegoPathActor::VTable0xbc", "matching": 1.0, "diff": ""}, {"address": "0x10002dc0", "name": "LegoPathActor::VTable0xc0", "matching": 1.0, "diff": ""}, {"address": "0x10002dd0", "name": "LegoPathActor::VTable0xc4", "matching": 1.0, "diff": ""}, {"address": "0x10002de0", "name": "LegoPathActor::VTable0xc8", "matching": 1.0, "diff": ""}, {"address": "0x10002df0", "name": "IslePathActor::VTable0xd0", "matching": 1.0, "diff": ""}, {"address": "0x10002e00", "name": "IslePathActor::VTable0xdc", "matching": 1.0, "diff": ""}, {"address": "0x10002e10", "name": "IslePathActor::~IslePathActor", "matching": 1.0, "diff": ""}, {"address": "0x10002e70", "name": "IslePathActor::VTable0xcc", "matching": 1.0, "diff": ""}, {"address": "0x10002e80", "name": "IslePathActor::VTable0xd4", "matching": 1.0, "diff": ""}, {"address": "0x10002e90", "name": "IslePathActor::VTable0xd8", "matching": 1.0, "diff": ""}, {"address": "0x10002ea0", "name": "IslePathActor::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10002eb0", "name": "IslePathActor::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10002ff0", "name": "IslePathActor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10003070", "name": "Helicopter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10003080", "name": "Helicopter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10003210", "name": "Helicopter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10003230", "name": "Helicopter::~Helicopter", "matching": 1.0, "diff": ""}, {"address": "0x100032c0", "name": "Helicopter::Create", "matching": 0.8620689655172413, "diff": "--- \n\n+++ \n\n@@ -1,23 +1,23 @@\n\n mov eax, dword ptr [esp + 4]\n push esi\n push edi\n mov esi, ecx\n push eax\n call IslePathActor::Create (FUNCTION)\n mov edi, eax\n call GetCurrentWorld (FUNCTION)\n+mov dword ptr [esi + 0x154], eax\n+mov edx, dword ptr [eax]\n+push 'Act3' (STRING)\n mov ecx, eax\n-push 'Act3' (STRING)\n-mov dword ptr [esi + 0x154], eax\n-mov eax, dword ptr [ecx]\n-call dword ptr [eax + 0x10]\n+call dword ptr [edx + 0x10]\n test al, al\n je 0xc\n mov eax, dword ptr [esi + 0x154]\n mov dword ptr [eax + 0x420c], esi\n mov ecx, dword ptr [esi + 0x154]\n test ecx, ecx\n je 0x6\n push esi\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x58]"}, {"address": "0x10003320", "name": "Helicopter::GetState", "matching": 1.0, "diff": ""}, {"address": "0x10003360", "name": "Helicopter::VTable0xe4", "matching": 1.0, "diff": ""}, {"address": "0x10003480", "name": "Helicopter::VTable0xcc", "matching": 1.0, "diff": ""}, {"address": "0x100035e0", "name": "Helicopter::VTable0xd4", "matching": 0.4794952681388013, "diff": "--- \n\n+++ \n\n@@ -1,19 +1,18 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 0xa8\n-push ebx\n+sub esp, 0xac\n push esi\n push edi\n mov esi, ecx\n xor edi, edi\n mov dword ptr [ebp - 0x14], edi\n mov dword ptr [ebp - 0x10], edi\n mov dword ptr [ebp - 4], edi\n call GameState (FUNCTION)\n mov eax, dword ptr [eax + 0x10]\n cmp eax, edi\n@@ -26,290 +25,295 @@\n\n mov eax, dword ptr [g_isleScript (DATA)]\n jmp 0xc\n mov eax, dword ptr [g_act2mainScript (DATA)]\n jmp 0x5\n mov eax, dword ptr [g_act3Script (DATA)]\n push eax\n lea ecx, [ebp - 0x10]\n call MxAtomId::operator= (FUNCTION)\n mov eax, dword ptr [ebp + 8]\n cmp word ptr [eax + 0x28], 1\n-jne 0x3ba\n-xor edi, edi\n+jne 0x365\n mov eax, dword ptr [eax + 0x20]\n sub eax, 0x17\n cmp eax, 6\n-ja 0x3a9\n-jmp dword ptr [eax*4 + 0x10003a40]\n+ja 0x356\n+jmp dword ptr [eax*4 + 0x10005a04]\n mov eax, dword ptr [g_act3Script (DATA)]\n mov ecx, dword ptr [ebp - 0x10]\n cmp dword ptr [eax], ecx\n jne 0x25\n call GetCurrentWorld (FUNCTION)\n mov dword ptr [eax + 0x4270], 2\n push 0\n push 0\n push 0x32\n push 3\n call TransitionManager (FUNCTION)\n mov ecx, eax\n call MxTransitionManager::StartTransition (FUNCTION)\n jmp 0x10\n mov eax, dword ptr [esi + 0x228]\n cmp dword ptr [eax + 8], 0\n-jne 0x361\n+jne 0x30e\n mov eax, dword ptr [esi]\n mov ecx, esi\n call dword ptr [eax + 0xe4]\n call GameState (FUNCTION)\n mov dword ptr [eax + 0x424], 0x42\n-jmp 0x33c\n-mov eax, dword ptr [g_act3Script (DATA)]\n-mov ecx, dword ptr [ebp - 0x10]\n-cmp dword ptr [eax], ecx\n-je 0x333\n+jmp 0x2e9\n+mov ecx, dword ptr [g_act3Script (DATA)]\n+mov eax, dword ptr [ebp - 0x10]\n+cmp dword ptr [ecx], eax\n+je 0x2df\n push 'Act1State' (STRING)\n call GameState (FUNCTION)\n mov ecx, eax\n call LegoGameState::GetState (FUNCTION)\n mov ecx, dword ptr [esi + 0x228]\n cmp dword ptr [ecx + 8], 0\n-jne 0x30b\n+jne 0x2b7\n mov dword ptr [eax + 0x18], 4\n mov eax, dword ptr [esi + 0x228]\n push esi\n mov dword ptr [eax + 8], 1\n mov ecx, dword ptr [esi + 0x154]\n call LegoWorld::FUN_1001fc80 (FUNCTION)\n push 0\n lea eax, [ebp - 0x10]\n push 0x20\n push eax\n push 4\n call InvokeAction (FUNCTION)\n mov dword ptr [esi + 0xdc], 0\n add esp, 0x10\n-jmp 0x2ca\n+jmp 0x276\n mov eax, dword ptr [g_act3Script (DATA)]\n mov ecx, dword ptr [ebp - 0x10]\n cmp dword ptr [eax], ecx\n-je 0x2c1\n+je 0x26d\n mov eax, dword ptr [esi + 0x228]\n add eax, 8\n cmp dword ptr [eax], 2\n-jne 0x2a8\n+jne 0x254\n push esi\n mov dword ptr [eax], 3\n mov ecx, dword ptr [esi + 0x154]\n call LegoWorld::FUN_1001fc80 (FUNCTION)\n push 0\n lea eax, [ebp - 0x10]\n push 0x21\n push eax\n push 4\n call InvokeAction (FUNCTION)\n mov dword ptr [esi + 0xdc], 4\n add esp, 0x10\n-jmp 0x275\n+jmp 0x221\n mov eax, dword ptr [g_act3Script (DATA)]\n mov ecx, dword ptr [ebp - 0x10]\n cmp dword ptr [eax], ecx\n-jne 0x26c\n-mov edi, 1\n+jne 0x218\n+mov dword ptr [ebp - 0x14], 1\n mov eax, dword ptr [g_act3Script (DATA)]\n mov ecx, dword ptr [ebp - 0x10]\n cmp dword ptr [eax], ecx\n-jne 0x257\n+jne 0x201\n mov ecx, dword ptr [esi + 0x154]\n test ecx, ecx\n-je 0x242\n+je 0x1ec\n cmp dword ptr [ecx + 0x98], 0\n-je 0x235\n-lea eax, [ebp - 0x34]\n+je 0x1df\n+lea eax, [ebp - 0x38]\n mov edx, Mx3DPointFloat (VTABLE)\n-lea ebx, [ebp - 0x20]\n-mov dword ptr [ebp - 0x38], eax\n-lea eax, [ebp - 0x48]\n-mov dword ptr [ebp - 0x3c], edx\n-mov dword ptr [ebp - 0x24], ebx\n+lea edi, [ebp - 0x20]\n+mov dword ptr [ebp - 0x3c], eax\n+lea eax, [ebp - 0x4c]\n+mov dword ptr [ebp - 0x40], edx\n+mov dword ptr [ebp - 0x24], edi\n mov dword ptr [ebp - 0x28], edx\n-mov dword ptr [ebp - 0x4c], eax\n-mov dword ptr [ebp - 0x50], edx\n-lea edx, [ebp - 0xb4]\n+mov dword ptr [ebp - 0x50], eax\n+mov dword ptr [ebp - 0x54], edx\n+lea edx, [ebp - 0xb8]\n mov ecx, dword ptr [ecx + 0x98]\n push edx\n call LegoCameraController::GetWorldLocation (FUNCTION)\n mov ecx, dword ptr [eax + 4]\n-mov ebx, eax\n-push ecx\n-mov eax, dword ptr [ebp - 0x3c]\n-lea ecx, [ebp - 0x3c]\n-add ebx, 8\n+mov edi, eax\n+push ecx\n+mov eax, dword ptr [ebp - 0x40]\n+lea ecx, [ebp - 0x40]\n+add edi, 8\n call dword ptr [eax + 0x20]\n-lea ecx, [ebp - 0x34]\n-mov eax, dword ptr [ebx]\n-add ebx, 4\n-mov dword ptr [ecx], eax\n-add ecx, 4\n-lea eax, [ebp - 0x28]\n-cmp ecx, eax\n-jb -0x11\n-lea eax, [ebp - 0xb4]\n+lea eax, [ebp - 0x38]\n+mov ecx, 3\n+mov edx, dword ptr [edi]\n+add edi, 4\n+mov dword ptr [eax], edx\n+add eax, 4\n+dec ecx\n+jne -0xd\n+lea eax, [ebp - 0xb8]\n mov edx, dword ptr [esi + 0x154]\n push eax\n mov ecx, dword ptr [edx + 0x98]\n call LegoCameraController::GetWorldDirection (FUNCTION)\n mov ecx, dword ptr [eax + 4]\n-mov ebx, eax\n+mov edi, eax\n push ecx\n mov eax, dword ptr [ebp - 0x28]\n lea ecx, [ebp - 0x28]\n-add ebx, 8\n+add edi, 8\n call dword ptr [eax + 0x20]\n+lea eax, [ebp - 0x20]\n+mov ecx, 3\n+mov edx, dword ptr [edi]\n+add edi, 4\n+mov dword ptr [eax], edx\n+add eax, 4\n+dec ecx\n+jne -0xd\n+mov edi, dword ptr [ebp - 0x1c]\n+mov eax, dword ptr [ebp - 0x24]\n lea ecx, [ebp - 0x20]\n-mov eax, dword ptr [ebx]\n-add ebx, 4\n-mov dword ptr [ecx], eax\n-add ecx, 4\n-lea eax, [ebp - 0x14]\n-cmp ecx, eax\n-jb -0x11\n-mov eax, dword ptr [ebp - 0x24]\n-lea ecx, [ebp - 0x50]\n-push eax\n-mov ebx, dword ptr [ebp - 0x50]\n-call dword ptr [ebx + 0x20]\n-mov ebx, dword ptr [ebp - 0x1c]\n-lea edx, [ebp - 0x20]\n-lea ecx, [ebp - 0x48]\n-mov eax, dword ptr [edx]\n-mov edx, dword ptr [edx + 8]\n-mov dword ptr [ecx], eax\n-lea eax, [ebp - 0xa4]\n-mov dword ptr [ecx + 4], ebx\n-push eax\n-mov dword ptr [ecx + 8], edx\n-lea ecx, [ebp - 0x50]\n-mov ebx, dword ptr [ebp - 0x50]\n-mov dword ptr [ebp - 0xa4], 0x40400000\n-call dword ptr [ebx + 0x5c]\n-lea ecx, [ebp - 0x50]\n-mov eax, dword ptr [ebp - 0x3c]\n-push ecx\n-lea ecx, [ebp - 0x3c]\n-call dword ptr [eax + 0x48]\n-lea ecx, [ebp - 0x5c]\n-lea eax, [ebp - 0x98]\n-lea edx, [ebp - 0x70]\n-mov dword ptr [ebp - 0x60], ecx\n+lea edx, [ebp - 0x4c]\n+mov dword ptr [ebp - 0x50], eax\n+mov eax, dword ptr [ecx]\n+mov ecx, dword ptr [ecx + 8]\n+mov dword ptr [edx], eax\n+lea eax, [ebp - 0x2c]\n+mov dword ptr [edx + 4], edi\n+push eax\n+mov dword ptr [edx + 8], ecx\n+lea ecx, [ebp - 0x54]\n+mov edi, dword ptr [ebp - 0x54]\n+mov dword ptr [ebp - 0x2c], 0x40400000\n+call dword ptr [edi + 0xc]\n+mov ecx, dword ptr [ebp - 0x3c]\n+mov edi, dword ptr [ebp - 0x54]\n+push ecx\n+lea ecx, [ebp - 0x54]\n+call dword ptr [edi + 4]\n+lea ecx, [ebp - 0x88]\n+lea eax, [ebp - 0x60]\n+lea edx, [ebp - 0x74]\n+mov dword ptr [ebp - 0x8c], ecx\n mov ecx, Mx3DPointFloat (VTABLE)\n-lea ebx, [ebp - 0x84]\n-mov dword ptr [ebp - 0x64], ecx\n-mov dword ptr [ebp - 0x74], edx\n-mov dword ptr [ebp - 0x9c], eax\n-mov dword ptr [ebp - 0x78], ecx\n+mov dword ptr [ebp - 0x64], eax\n xor eax, eax\n-mov dword ptr [ebp - 0xa0], ecx\n-mov dword ptr [ebp - 0x88], ebx\n-mov dword ptr [ebp - 0x8c], ecx\n-lea ecx, [ebp - 0xb4]\n-mov edx, dword ptr [esi + 0x154]\n-push ecx\n-mov dword ptr [ebp - 0x84], eax\n-mov dword ptr [ebp - 0x80], 0x3f800000\n-mov dword ptr [ebp - 0x7c], eax\n-mov ecx, dword ptr [edx + 0x98]\n+mov dword ptr [ebp - 0x90], ecx\n+mov dword ptr [ebp - 0x68], ecx\n+mov dword ptr [ebp - 0x78], edx\n+lea edi, [ebp - 0x9c]\n+mov dword ptr [ebp - 0x7c], ecx\n+mov dword ptr [ebp - 0x74], eax\n+mov dword ptr [ebp - 0x6c], eax\n+mov dword ptr [ebp - 0xa0], edi\n+mov dword ptr [ebp - 0xa4], ecx\n+mov dword ptr [ebp - 0x70], 0x3f800000\n+lea ecx, [ebp - 0xb8]\n+mov eax, dword ptr [esi + 0x154]\n+push ecx\n+mov ecx, dword ptr [eax + 0x98]\n call LegoCameraController::GetWorldUp (FUNCTION)\n mov ecx, dword ptr [eax + 4]\n-mov ebx, eax\n-push ecx\n-mov eax, dword ptr [ebp - 0x64]\n-lea ecx, [ebp - 0x64]\n-add ebx, 8\n+mov edi, eax\n+push ecx\n+mov eax, dword ptr [ebp - 0x90]\n+lea ecx, [ebp - 0x90]\n+add edi, 8\n call dword ptr [eax + 0x20]\n-lea ecx, [ebp - 0x5c]\n-mov eax, dword ptr [ebx]\n-add ebx, 4\n-mov dword ptr [ecx], eax\n-add ecx, 4\n-lea eax, [ebp - 0x50]\n-cmp ecx, eax\n-jb -0x11\n+lea eax, [ebp - 0x88]\n+mov ecx, 3\n+mov edx, dword ptr [edi]\n+add edi, 4\n+mov dword ptr [eax], edx\n+add eax, 4\n+dec ecx\n+jne -0xd\n mov eax, dword ptr [ebp - 0x24]\n-mov ecx, dword ptr [ebp - 0x60]\n-push eax\n-mov ebx, dword ptr [ebp - 0xa0]\n-push ecx\n-lea ecx, [ebp - 0xa0]\n-call dword ptr [ebx + 0x74]\n-mov ecx, dword ptr [ebp - 0x88]\n-mov eax, dword ptr [ebp - 0x9c]\n-push ecx\n-mov ebx, dword ptr [ebp - 0x78]\n-push eax\n-lea ecx, [ebp - 0x78]\n-call dword ptr [ebx + 0x74]\n-lea eax, [ebp - 0x78]\n+mov ecx, dword ptr [ebp - 0x8c]\n+push eax\n+mov edi, dword ptr [ebp - 0xa4]\n+push ecx\n+lea ecx, [ebp - 0xa4]\n+call dword ptr [edi + 0x74]\n+mov ecx, dword ptr [ebp - 0x78]\n+mov eax, dword ptr [ebp - 0xa0]\n+push ecx\n+mov edi, dword ptr [ebp - 0x68]\n+push eax\n+lea ecx, [ebp - 0x68]\n+call dword ptr [edi + 0x74]\n+cmp dword ptr [ebp - 0x14], 0\n+je 0x44\n+lea eax, [ebp - 0x68]\n lea ecx, [ebp - 0x28]\n push eax\n-lea edx, [ebp - 0x3c]\n+lea edx, [ebp - 0x40]\n push ecx\n mov eax, dword ptr [esi + 0x138]\n push edx\n mov ecx, dword ptr [esi + 0x154]\n push eax\n-test edi, edi\n-je 0x76\n call Act3::FUN_100727e0 (FUNCTION)\n-test eax, eax\n-je 0x76\n-jmp 0x7b\n-call GameState (FUNCTION)\n-cmp dword ptr [eax + 0x10], 0\n-jne 0x2f\n-call GetCurrentWorld (FUNCTION)\n-mov dword ptr [eax + 0x13c], 2\n-push 0\n-push 0\n-push 0x32\n-push 3\n-call TransitionManager (FUNCTION)\n-mov ecx, eax\n-call MxTransitionManager::StartTransition (FUNCTION)\n-mov eax, dword ptr [esi]\n-mov ecx, esi\n-call dword ptr [eax + 0xe4]\n-jmp 0x3a\n-mov eax, dword ptr [g_act3Script (DATA)]\n-mov ecx, dword ptr [ebp - 0x10]\n-cmp dword ptr [eax], ecx\n-jne 0x2e\n-call GetCurrentWorld (FUNCTION)\n-mov dword ptr [eax + 0x4270], 2\n-push 0\n-push 0\n-push 0x32\n-push 3\n-call TransitionManager (FUNCTION)\n-mov ecx, eax\n-call MxTransitionManager::StartTransition (FUNCTION)\n-jmp 0x9\n+test al, al\n+jne 0x29\n+lea eax, [ebp - 0x68]\n+lea ecx, [ebp - 0x28]\n+push eax\n+lea edx, [ebp - 0x40]\n+push ecx\n+mov eax, dword ptr [esi + 0x138]\n+push edx\n+mov ecx, dword ptr [esi + 0x154]\n+push eax\n call Act3::FUN_10072980 (FUNCTION)\n-test eax, eax\n+test al, al\n jne 0x7\n mov dword ptr [ebp - 0x14], 1\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET20>\n mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n-pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n+call GameState (FUNCTION)\n+cmp dword ptr [eax + 0x10], 0\n+jne -0x33\n+call GetCurrentWorld (FUNCTION)\n+mov dword ptr [eax + 0x13c], 2\n+push 0\n+push 0\n+push 0x32\n+push 3\n+call TransitionManager (FUNCTION)\n+mov ecx, eax\n+call MxTransitionManager::StartTransition (FUNCTION)\n+mov eax, dword ptr [esi]\n+mov ecx, esi\n+call dword ptr [eax + 0xe4]\n+jmp -0x62\n mov eax, <OFFSET21>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x10]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov edi, edi\n+lea ecx, [ecx]\n+inc ebp\n+push esi\n+add byte ptr [eax], dl\n+movsb byte ptr es:[edi], byte ptr [esi]\n+push esi\n+add byte ptr [eax], dl\n+pop ss\n+push edi\n+add byte ptr [eax], dl\n+insb byte ptr es:[edi], dx\n+push edi\n+add byte ptr [eax], dl\n+adc dword ptr [edi], 0x10\n+mov ch, 0x59\n+add byte ptr [eax], dl\n+lea ebx, [ecx]"}, {"address": "0x10003a60", "name": "Vector3::AddImpl", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,14 +1,14 @@\n\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [esp + 4]\n-fld dword ptr [eax]\n-fadd dword ptr [edx]\n+fld dword ptr [edx]\n+fadd dword ptr [eax]\n fstp dword ptr [eax]\n fld dword ptr [edx + 4]\n mov eax, dword ptr [ecx + 4]\n add eax, 4\n fadd dword ptr [eax]\n fstp dword ptr [eax]\n fld dword ptr [edx + 8]\n mov eax, dword ptr [ecx + 4]\n add eax, 8\n fadd dword ptr [eax]"}, {"address": "0x10003a90", "name": "Vector3::AddImpl", "matching": 1.0, "diff": ""}, {"address": "0x10003ac0", "name": "Vector3::SubImpl", "matching": 1.0, "diff": ""}, {"address": "0x10003af0", "name": "Vector3::MulVectorImpl", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,14 +1,14 @@\n\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [esp + 4]\n-fld dword ptr [edx]\n-fmul dword ptr [eax]\n+fld dword ptr [eax]\n+fmul dword ptr [edx]\n fstp dword ptr [eax]\n fld dword ptr [edx + 4]\n mov eax, dword ptr [ecx + 4]\n add eax, 4\n fmul dword ptr [eax]\n fstp dword ptr [eax]\n fld dword ptr [edx + 8]\n mov eax, dword ptr [ecx + 4]\n add eax, 8\n fmul dword ptr [eax]"}, {"address": "0x10003b20", "name": "Vector3::MulScalarImpl", "matching": 0.625, "diff": "--- \n\n+++ \n\n@@ -1,16 +1,16 @@\n\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [esp + 4]\n-fld dword ptr [edx]\n-fmul dword ptr [eax]\n+fld dword ptr [eax]\n+fmul dword ptr [edx]\n fstp dword ptr [eax]\n-fld dword ptr [edx]\n mov eax, dword ptr [ecx + 4]\n add eax, 4\n-fmul dword ptr [eax]\n+fld dword ptr [eax]\n+fmul dword ptr [edx]\n fstp dword ptr [eax]\n-fld dword ptr [edx]\n mov eax, dword ptr [ecx + 4]\n add eax, 8\n-fmul dword ptr [eax]\n+fld dword ptr [eax]\n+fmul dword ptr [edx]\n fstp dword ptr [eax]\n ret 4"}, {"address": "0x10003b50", "name": "Vector3::DivScalarImpl", "matching": 1.0, "diff": ""}, {"address": "0x10003b80", "name": "Vector3::DotImpl", "matching": 0.6363636363636364, "diff": "--- \n\n+++ \n\n@@ -1,11 +1,11 @@\n\n mov ecx, dword ptr [esp + 8]\n mov eax, dword ptr [esp + 4]\n+fld dword ptr [ecx + 8]\n+fmul dword ptr [eax + 8]\n fld dword ptr [ecx + 4]\n fmul dword ptr [eax + 4]\n-fld dword ptr [ecx + 8]\n-fmul dword ptr [eax + 8]\n faddp st(1)\n-fld dword ptr [eax]\n-fmul dword ptr [ecx]\n+fld dword ptr [ecx]\n+fmul dword ptr [eax]\n faddp st(1)\n ret 8"}, {"address": "0x10003ba0", "name": "Vector3::EqualsImpl", "matching": 1.0, "diff": ""}, {"address": "0x10003bc0", "name": "Vector3::Clear", "matching": 1.0, "diff": ""}, {"address": "0x10003bd0", "name": "Vector3::LenSquared", "matching": 0.8, "diff": "--- \n\n+++ \n\n@@ -1,10 +1,10 @@\n\n mov eax, dword ptr [ecx + 4]\n+fld dword ptr [eax + 4]\n+fmul dword ptr [eax + 4]\n fld dword ptr [eax + 8]\n fmul dword ptr [eax + 8]\n-fld dword ptr [eax + 4]\n-fmul dword ptr [eax + 4]\n faddp st(1)\n fld dword ptr [eax]\n fmul dword ptr [eax]\n faddp st(1)\n ret "}, {"address": "0x10003bf0", "name": "Vector3::EqualsScalar", "matching": 1.0, "diff": ""}, {"address": "0x10003c10", "name": "Mx3DPointFloat::operator=", "matching": 1.0, "diff": ""}, {"address": "0x10003c20", "name": "Helicopter::VTable0xd8", "matching": 0.9281437125748503, "diff": "--- \n\n+++ \n\n@@ -1,23 +1,23 @@\n\n-sub esp, 0xac\n+sub esp, 0xa8\n xor eax, eax\n push ebx\n push esi\n push edi\n mov ebx, ecx\n mov ecx, dword ptr [ecx + 0x228]\n mov ecx, dword ptr [ecx + 8]\n cmp ecx, 1\n je 0xe\n cmp ecx, 3\n-je 0x153\n-jmp 0x235\n+je 0x150\n+jmp 0x22f\n call GameState (FUNCTION)\n cmp dword ptr [eax + 0x10], 0\n jne 0x20\n push 'Act1State' (STRING)\n call GameState (FUNCTION)\n mov ecx, eax\n call LegoGameState::GetState (FUNCTION)\n mov dword ptr [eax + 0x18], 4\n push 7\n push 1\n@@ -39,50 +39,50 @@\n\n mov edx, dword ptr [esp + 0x30]\n mov ecx, 0x3f800000\n mov dword ptr [edx], ecx\n mov edx, dword ptr [esp + 0x30]\n fld qword ptr [0.5235987901687622 (FLOAT)]\n fsin \n mov dword ptr [edx + 0x14], ecx\n mov edx, dword ptr [esp + 0x30]\n mov dword ptr [edx + 0x28], ecx\n mov edx, dword ptr [esp + 0x30]\n-lea edi, [esp + 0x78]\n+lea edi, [esp + 0x74]\n mov dword ptr [edx + 0x3c], ecx\n mov esi, dword ptr [esp + 0x30]\n mov ecx, 0x10\n fstp dword ptr [esp + 0x20]\n fld qword ptr [0.5235987901687622 (FLOAT)]\n fcos \n fstp dword ptr [esp + 0x1c]\n rep movsd dword ptr es:[edi], dword ptr [esi]\n xor esi, esi\n jmp 0x4\n fstp dword ptr [edx + esi - 8]\n-lea ecx, [esp + esi + 0x7c]\n-lea eax, [esp + esi + 0x80]\n+lea ecx, [esp + esi + 0x78]\n+lea eax, [esp + esi + 0x7c]\n mov edx, dword ptr [esp + 0x30]\n add esi, 0x10\n fld dword ptr [ecx]\n fmul dword ptr [esp + 0x1c]\n fld dword ptr [eax]\n fmul dword ptr [esp + 0x20]\n cmp esi, 0x40\n fsubp st(1)\n fstp dword ptr [edx + esi - 0xc]\n fld dword ptr [eax]\n fmul dword ptr [esp + 0x1c]\n fld dword ptr [ecx]\n fmul dword ptr [esp + 0x20]\n mov edx, dword ptr [esp + 0x30]\n faddp st(1)\n-jl -0x3f\n+jl -0x3c\n fstp dword ptr [edx + esi - 8]\n mov eax, dword ptr [esp + 0x30]\n mov ecx, Vector3 (VTABLE)\n add eax, 0x30\n mov dword ptr [esp + 0x24], ecx\n mov dword ptr [esp + 0x28], eax\n mov eax, dword ptr [esp + 0x30]\n add eax, 0x20\n mov dword ptr [esp + 0x10], eax\n mov dword ptr [esp + 0xc], ecx\n@@ -94,21 +94,21 @@\n\n mov dword ptr [esp + 0x14], ecx\n mov esi, dword ptr [ebx + 0x154]\n lea ecx, [esp + 0x14]\n push ecx\n push edx\n push eax\n mov ecx, dword ptr [esi + 0x98]\n call LegoCameraController::SetWorldTransform (FUNCTION)\n mov ecx, ebx\n call LegoEntity::FUN_10010c30 (FUNCTION)\n-jmp 0xe2\n+jmp 0xdf\n lea eax, [esp + 0x34]\n lea ecx, [esp + 0x2c]\n mov dword ptr [esp + 0x30], eax\n mov dword ptr [esp + 0x2c], MxMatrix (VTABLE)\n call dword ptr [<OFFSET5>]\n mov eax, dword ptr [esp + 0x30]\n mov ecx, 0x3f800000\n mov dword ptr [eax], ecx\n mov eax, dword ptr [esp + 0x30]\n mov dword ptr [eax + 0x14], ecx\n@@ -118,27 +118,27 @@\n\n mov dword ptr [eax + 0x3c], ecx\n mov eax, dword ptr [esp + 0x30]\n add eax, 0x30\n mov ecx, Vector3 (VTABLE)\n mov dword ptr [esp + 0x10], eax\n mov dword ptr [esp + 0xc], ecx\n mov eax, dword ptr [esp + 0x30]\n add eax, 0x20\n mov dword ptr [esp + 0x18], eax\n mov dword ptr [esp + 0x14], ecx\n-lea edx, [esp + 0x78]\n+lea edx, [esp + 0x74]\n mov eax, dword ptr [esp + 0x30]\n push edx\n add eax, 0x10\n-mov dword ptr [esp + 0x80], eax\n+mov dword ptr [esp + 0x7c], eax\n lea eax, [esp + 0x18]\n-mov dword ptr [esp + 0x7c], ecx\n+mov dword ptr [esp + 0x78], ecx\n push eax\n mov ecx, dword ptr [esp + 0x18]\n mov dword ptr [ecx + 4], 0x3fa00000\n lea ecx, [esp + 0x14]\n mov edx, dword ptr [ebx + 0x154]\n push ecx\n mov ecx, dword ptr [edx + 0x98]\n call LegoCameraController::SetWorldTransform (FUNCTION)\n call GameState (FUNCTION)\n cmp dword ptr [eax + 0x10], 0\n@@ -157,10 +157,12 @@\n\n push 0x30\n mov eax, dword ptr [ebx]\n mov ecx, ebx\n call dword ptr [eax + 0xe8]\n mov eax, dword ptr [ebx + 0x228]\n mov dword ptr [eax + 8], 0\n mov eax, 1\n pop edi\n pop esi\n pop ebx\n+add esp, 0xa8\n+ret 4"}, {"address": "0x10003e90", "name": "Helicopter::VTable0x74", "matching": 1.0, "diff": ""}, {"address": "0x10003ee0", "name": "Helicopter::VTable0x70", "matching": 0.3317972350230415, "diff": "--- \n\n+++ \n\n@@ -1,108 +1,109 @@\n\n-sub esp, 0x7c\n+sub esp, 0x74\n push esi\n+push edi\n mov eax, dword ptr [ecx + 0x228]\n mov esi, ecx\n mov ecx, dword ptr [eax + 8]\n cmp ecx, 4\n-je 0x1b\n+jb 0x5\n cmp ecx, 5\n-je 0x16\n-mov eax, dword ptr [esp + 0x84]\n+jbe 0x17\n+mov eax, dword ptr [esp + 0x80]\n mov ecx, esi\n push eax\n call LegoPathActor::VTable0x70 (FUNCTION)\n+pop edi\n pop esi\n-add esp, 0x7c\n+add esp, 0x74\n ret 4\n fld dword ptr [esi + 0x1f0]\n-fsub dword ptr [esp + 0x84]\n+fsub dword ptr [esp + 0x80]\n fadd dword ptr [3000.0 (FLOAT)]\n fcom dword ptr [0.0 (FLOAT)]\n-fstp dword ptr [esp + 0x28]\n+fstp dword ptr [esp + 0x24]\n fnstsw ax\n test ah, 1\n-jne 0x139\n-fld dword ptr [esp + 0x28]\n-fmul dword ptr [-0.00033333332976326346 (FLOAT)]\n+jne 0x115\n+fld dword ptr [esp + 0x24]\n+fmul dword ptr [0.00033333332976326346 (FLOAT)]\n fadd dword ptr [1.0 (FLOAT)]\n fcom dword ptr [0.0 (FLOAT)]\n-fstp dword ptr [esp + 4]\n+fstp dword ptr [esp + 8]\n fnstsw ax\n test ah, 1\n je 0x8\n-mov dword ptr [esp + 4], 0\n+mov dword ptr [esp + 8], 0\n mov eax, 0x3f800000\n-cmp dword ptr [esp + 4], eax\n+cmp dword ptr [esp + 8], eax\n jle 0x4\n-mov dword ptr [esp + 4], eax\n-lea eax, [esp + 0x30]\n-mov ecx, Vector3 (VTABLE)\n-mov dword ptr [esp + 0x2c], eax\n+mov dword ptr [esp + 8], eax\n+mov eax, dword ptr [esi + 0x164]\n+lea ecx, [esp + 0x2c]\n+add eax, 0x30\n+mov edi, dword ptr [esi + 0x1ac]\n+add edi, 0x30\n+mov dword ptr [esp + 0x20], eax\n+mov dword ptr [esp + 0x28], ecx\n+mov dword ptr [esp + 0x10], edi\n+mov dword ptr [esp + 0x24], MxMatrix (VTABLE)\n+mov dword ptr [esp + 0xc], Vector3 (VTABLE)\n+lea ecx, [esp + 0x24]\n+call dword ptr [<OFFSET4>]\n+mov eax, dword ptr [esp + 0x28]\n+mov ecx, 0x3f800000\n+mov dword ptr [eax], ecx\n+mov eax, dword ptr [esp + 0x28]\n+mov dword ptr [eax + 0x14], ecx\n+mov eax, dword ptr [esp + 0x28]\n+mov dword ptr [eax + 0x28], ecx\n+mov eax, dword ptr [esp + 0x28]\n+mov dword ptr [eax + 0x3c], ecx\n+lea ecx, [esp + 0x6c]\n+mov edx, dword ptr [esp + 8]\n+lea eax, [esp + 0x14]\n mov dword ptr [esp + 0x18], ecx\n-mov dword ptr [esp + 0x28], MxMatrix (VTABLE)\n-mov eax, dword ptr [esi + 0x164]\n-lea edx, [esp + 0x60]\n-add eax, 0x30\n-mov dword ptr [esp + 0xc], edx\n-mov dword ptr [esp + 0x1c], eax\n-mov dword ptr [esp + 8], ecx\n-mov eax, dword ptr [esi + 0x1ac]\n-lea ecx, [esp + 0x28]\n-add eax, 0x30\n-mov dword ptr [esp + 0x24], eax\n-call dword ptr [<OFFSET4>]\n-mov edx, dword ptr [esp + 0x2c]\n-mov ecx, 0x3f800000\n-mov dword ptr [edx], ecx\n-mov edx, dword ptr [esp + 0x2c]\n-mov dword ptr [edx + 0x14], ecx\n-mov edx, dword ptr [esp + 0x2c]\n-mov dword ptr [edx + 0x28], ecx\n-mov edx, dword ptr [esp + 0x2c]\n-mov dword ptr [esp + 0x10], Vector4 (VTABLE)\n-mov dword ptr [edx + 0x3c], ecx\n-lea ecx, [esp + 0x70]\n-mov eax, dword ptr [esp + 4]\n-lea edx, [esp + 0x10]\n-mov dword ptr [esp + 0x14], ecx\n+push edx\n push eax\n-push edx\n lea ecx, [esi + 0x1f4]\n+mov dword ptr [esp + 0x1c], Vector4 (VTABLE)\n call HelicopterSubclass::FUN_100040a0 (FUNCTION)\n-test eax, eax\n-jne 0x10\n-lea eax, [esp + 0x10]\n-lea ecx, [esp + 0x28]\n-push eax\n-mov eax, dword ptr [esp + 0x2c]\n-call dword ptr [eax + 0x44]\n-mov eax, dword ptr [esp + 0x24]\n+lea ecx, [esp + 0xc]\n+push edi\n+mov edi, dword ptr [esp + 0x10]\n+call dword ptr [edi + 0x20]\n+mov ecx, dword ptr [esp + 0x20]\n+mov edi, dword ptr [esp + 0xc]\n+push ecx\n+lea ecx, [esp + 0x10]\n+call dword ptr [edi + 8]\n lea ecx, [esp + 8]\n-push eax\n-mov eax, dword ptr [esp + 0xc]\n-call dword ptr [eax + 0x20]\n-lea ecx, [esp + 0x18]\n-mov eax, dword ptr [esp + 8]\n+mov edi, dword ptr [esp + 0xc]\n push ecx\n-lea ecx, [esp + 0xc]\n-call dword ptr [eax + 0x54]\n-lea ecx, [esp + 4]\n-mov eax, dword ptr [esp + 8]\n+lea ecx, [esp + 0x10]\n+call dword ptr [edi + 0xc]\n+mov ecx, dword ptr [esp + 0x20]\n+mov edi, dword ptr [esp + 0xc]\n push ecx\n-lea ecx, [esp + 0xc]\n-call dword ptr [eax + 0x5c]\n-lea ecx, [esp + 0x18]\n-mov eax, dword ptr [esp + 8]\n-push ecx\n-lea ecx, [esp + 0xc]\n-call dword ptr [eax + 0x48]\n-lea ecx, [esp + 0x28]\n+lea ecx, [esp + 0x10]\n+call dword ptr [edi + 4]\n+lea ecx, [esp + 0x24]\n push 0\n push ecx\n-mov edx, dword ptr [esi + 0x154]\n-mov ecx, dword ptr [edx + 0x98]\n+mov eax, dword ptr [esi + 0x154]\n+mov ecx, dword ptr [eax + 0x98]\n call LegoCameraController::FUN_100123e0 (FUNCTION)\n+pop edi\n pop esi\n-add esp, 0x7c\n+add esp, 0x74\n ret 4\n cmp ecx, 4\n+mov ecx, dword ptr [esi + 0x154]\n+jne 0x7\n+call Act3::FUN_10073400 (FUNCTION)\n+jmp 0x5\n+call Act3::FUN_10073430 (FUNCTION)\n+mov dword ptr [esi + 0xdc], 4\n+pop edi\n+pop esi\n+add esp, 0x74\n+ret 4"}, {"address": "0x100040a0", "name": "HelicopterSubclass::FUN_100040a0", "matching": 0.7630057803468208, "diff": "--- \n\n+++ \n\n@@ -1,175 +1,171 @@\n\n sub esp, 0x10\n push ebx\n push esi\n mov eax, dword ptr [ecx + 0x30]\n push edi\n mov esi, ecx\n cmp eax, 1\n-jne 0x41\n+jne 0x43\n mov edi, dword ptr [esp + 0x20]\n-mov eax, dword ptr [esi + 4]\n+mov eax, dword ptr [esi]\n mov ebx, dword ptr [edi]\n+call dword ptr [eax + 0x28]\n push eax\n mov ecx, edi\n call dword ptr [ebx + 0x20]\n mov esi, dword ptr [edi + 4]\n add esi, 0xc\n fld dword ptr [esi]\n-call <OFFSET1>\n-fld qword ptr [1.0 (FLOAT)]\n+call __CIacos (UNK)\n+fld dword ptr [1.0 (FLOAT)]\n fsub dword ptr [esp + 0x24]\n mov ecx, edi\n fmulp st(1)\n fmul qword ptr [2.0 (FLOAT)]\n fstp dword ptr [esi]\n call dword ptr [ebx + 0x90]\n pop edi\n pop esi\n pop ebx\n add esp, 0x10\n ret 8\n cmp eax, 2\n-jne 0x39\n+jne 0x3e\n mov edi, dword ptr [esp + 0x20]\n-mov eax, dword ptr [esi + 0x1c]\n+lea ecx, [esi + 0x18]\n mov ebx, dword ptr [edi]\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax + 0x28]\n push eax\n mov ecx, edi\n call dword ptr [ebx + 0x20]\n mov esi, dword ptr [edi + 4]\n add esi, 0xc\n fld dword ptr [esi]\n-call <OFFSET1>\n+call __CIacos (UNK)\n fmul dword ptr [esp + 0x24]\n mov ecx, edi\n fmul qword ptr [2.0 (FLOAT)]\n fstp dword ptr [esi]\n call dword ptr [ebx + 0x90]\n pop edi\n pop esi\n pop ebx\n add esp, 0x10\n ret 8\n cmp eax, 3\n-jne 0x14c\n+jne 0x149\n lea eax, [esi + 0x18]\n mov edi, dword ptr [esp + 0x20]\n push eax\n mov ecx, edi\n push esi\n mov ebx, dword ptr [edi]\n call dword ptr [ebx + 0x38]\n fst qword ptr [esp + 0xc]\n fadd qword ptr [1.0 (FLOAT)]\n fcomp qword ptr [1e-05 (FLOAT)]\n fnstsw ax\n test ah, 0x41\n-jne 0x98\n+jne 0x92\n fld qword ptr [1.0 (FLOAT)]\n fsub qword ptr [esp + 0xc]\n fcomp qword ptr [1e-05 (FLOAT)]\n fnstsw ax\n test ah, 0x41\n-jne 0x33\n+jne 0x2d\n fld qword ptr [esp + 0xc]\n-call <OFFSET1>\n+call __CIacos (UNK)\n fld st(0)\n fsin \n-fld dword ptr [esp + 0x24]\n-fld qword ptr [1.0 (FLOAT)]\n-fsub st(1)\n-fmul st(3)\n+fld dword ptr [1.0 (FLOAT)]\n+fsub dword ptr [esp + 0x24]\n+fmul st(2)\n fsin \n-fdiv st(2)\n+fdiv st(1)\n fstp qword ptr [esp + 0xc]\n-fmul st(2), st(0)\n-fxch st(2)\n+fxch st(1)\n+fmul dword ptr [esp + 0x24]\n fsin \n fdivrp st(1)\n-fstp qword ptr [esp + 0x14]\n-fstp st(0)\n-jmp 0x14\n+jmp 0x12\n+fld dword ptr [1.0 (FLOAT)]\n+fsub dword ptr [esp + 0x24]\n+fstp qword ptr [esp + 0xc]\n fld dword ptr [esp + 0x24]\n-fld qword ptr [1.0 (FLOAT)]\n-fsub st(1)\n-fstp qword ptr [esp + 0xc]\n fstp qword ptr [esp + 0x14]\n xor ecx, ecx\n jmp 0x4\n-fstp dword ptr [ebx + ecx - 4]\n+fstp dword ptr [ebx + ecx*4 - 4]\n mov eax, dword ptr [esi + 0x1c]\n mov edx, dword ptr [esi + 4]\n mov ebx, dword ptr [edi + 4]\n-add ecx, 4\n-cmp ecx, 0x10\n-fld dword ptr [eax + ecx - 4]\n+inc ecx\n+cmp ecx, 4\n+fld dword ptr [eax + ecx*4 - 4]\n fmul qword ptr [esp + 0x14]\n-fld dword ptr [edx + ecx - 4]\n+fld dword ptr [edx + ecx*4 - 4]\n fmul qword ptr [esp + 0xc]\n faddp st(1)\n-jl -0x27\n-fstp dword ptr [ebx + ecx - 4]\n+jl -0x25\n+fstp dword ptr [ebx + ecx*4 - 4]\n xor eax, eax\n pop edi\n pop esi\n pop ebx\n add esp, 0x10\n ret 8\n mov eax, dword ptr [esi + 4]\n mov ecx, dword ptr [edi + 4]\n fld dword ptr [eax + 4]\n fchs \n fstp dword ptr [ecx]\n mov eax, dword ptr [esi + 4]\n mov ecx, dword ptr [edi + 4]\n-mov edx, dword ptr [eax]\n+mov edx, dword ptr [eax + 4]\n mov dword ptr [ecx + 4], edx\n mov ecx, dword ptr [edi + 4]\n mov eax, dword ptr [esi + 4]\n fld dword ptr [eax + 0xc]\n fchs \n fstp dword ptr [ecx + 8]\n-fld dword ptr [esp + 0x24]\n-fld qword ptr [1.0 (FLOAT)]\n-fsub st(1)\n+fld dword ptr [1.0 (FLOAT)]\n+fsub dword ptr [esp + 0x24]\n mov eax, dword ptr [esi + 4]\n mov ecx, dword ptr [edi + 4]\n fmul qword ptr [1.570796326794895 (FLOAT)]\n mov edx, dword ptr [eax + 8]\n mov dword ptr [ecx + 0xc], edx\n xor edx, edx\n fsin \n fstp qword ptr [esp + 0xc]\n+fld dword ptr [esp + 0x24]\n fmul qword ptr [1.570796326794895 (FLOAT)]\n fsin \n fstp qword ptr [esp + 0x14]\n jmp 0x2\n fstp dword ptr [eax]\n mov eax, dword ptr [edi + 4]\n mov ecx, dword ptr [esi + 4]\n-add eax, edx\n-add edx, 4\n-cmp edx, 0xc\n-fld dword ptr [ecx + edx - 4]\n+inc edx\n+cmp edx, 3\n+lea eax, [eax + edx*4 - 4]\n+fld dword ptr [ecx + edx*4 - 4]\n fmul qword ptr [esp + 0xc]\n fld dword ptr [eax]\n fmul qword ptr [esp + 0x14]\n faddp st(1)\n jl -0x22\n fstp dword ptr [eax]\n xor eax, eax\n pop edi\n pop esi\n pop ebx\n add esp, 0x10\n ret 8\n mov eax, 0xffffffff\n pop edi\n pop esi\n pop ebx\n add esp, 0x10\n ret 8\n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100046a0", "name": "GasStation::GasStation", "matching": 1.0, "diff": ""}, {"address": "0x10004780", "name": "GasStation::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10004790", "name": "GasStation::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100048a0", "name": "GasStation::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10005530", "name": "MxDSObject::SetAtomId", "matching": 1.0, "diff": ""}, {"address": "0x10005eb0", "name": "GasStationState::GasStationState", "matching": 1.0, "diff": ""}, {"address": "0x10005f40", "name": "LegoState::~LegoState", "matching": 1.0, "diff": ""}, {"address": "0x10005f90", "name": "LegoState::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x10005fa0", "name": "LegoState::SetFlag", "matching": 1.0, "diff": ""}, {"address": "0x10005fb0", "name": "LegoState::VTable0x1c", "matching": 1.0, "diff": ""}, {"address": "0x10006030", "name": "LegoFile::FUN_10006030", "matching": 1.0, "diff": ""}, {"address": "0x100060d0", "name": "LegoState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100060e0", "name": "LegoState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10006160", "name": "LegoState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100061d0", "name": "GasStationState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100061e0", "name": "GasStationState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10006290", "name": "GasStationState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100064d0", "name": "LegoCacheSound::LegoCacheSound", "matching": 0.6037735849056604, "diff": "--- \n\n+++ \n\n@@ -4,22 +4,25 @@\n\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n push esi\n mov dword ptr [ebp - 0x10], ecx\n mov esi, ecx\n call MxCore::MxCore (FUNCTION)\n mov dword ptr [ebp - 4], 0\n-lea ecx, [esi + 0x10]\n-call <OFFSET3>\n-mov byte ptr [ebp - 4], 1\n-lea ecx, [esi + 0x48]\n-call MxString::MxString (FUNCTION)\n-mov byte ptr [ebp - 4], 2\n-lea ecx, [esi + 0x74]\n-call MxString::MxString (FUNCTION)\n-mov byte ptr [ebp - 4], 3\n mov ecx, esi\n mov dword ptr [esi], LegoCacheSound (VTABLE)\n call LegoCacheSound::Init (FUNCTION)\n+mov dword ptr [ebp - 4], 0xffffffff\n+mov eax, esi\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+pop esi\n+mov esp, ebp\n+pop ebp\n+ret \n+mov eax, <OFFSET5>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxCore::~MxCore (FUNCTION)"}, {"address": "0x10006580", "name": "LegoCacheSound::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10006590", "name": "LegoCacheSound::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10006610", "name": "LegoCacheSound::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10006e40", "name": "LegoObjectFactory::LegoObjectFactory", "matching": 0.2662192393736018, "diff": "--- \n\n+++ \n\n@@ -1,1784 +1,1492 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 0x194\n+sub esp, 0x15c\n mov dword ptr [ebp - 0x10], ecx\n push esi\n call MxObjectFactory::MxObjectFactory (FUNCTION)\n mov dword ptr [ebp - 4], 0\n mov byte ptr [ebp - 4], 1\n mov esi, dword ptr [ebp - 0x10]\n mov byte ptr [ebp - 4], 2\n mov dword ptr [esi + 0x38], 0\n add esi, 0x38\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x3c\n mov byte ptr [ebp - 4], 3\n-mov dword ptr [ebp - 0x38], eax\n+mov dword ptr [ebp - 0x160], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x40\n mov byte ptr [ebp - 4], 4\n-mov dword ptr [ebp - 0x34], eax\n+mov dword ptr [ebp - 0x15c], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x44\n mov byte ptr [ebp - 4], 5\n-mov dword ptr [ebp - 0x18], eax\n+mov dword ptr [ebp - 0x158], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x48\n mov byte ptr [ebp - 4], 6\n-mov dword ptr [ebp - 0x30], eax\n+mov dword ptr [ebp - 0x154], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x4c\n mov byte ptr [ebp - 4], 7\n-mov dword ptr [ebp - 0x2c], eax\n+mov dword ptr [ebp - 0x150], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x50\n mov byte ptr [ebp - 4], 8\n-mov dword ptr [ebp - 0x28], eax\n+mov dword ptr [ebp - 0x14c], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x54\n mov byte ptr [ebp - 4], 9\n-mov dword ptr [ebp - 0x24], eax\n+mov dword ptr [ebp - 0x148], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x58\n-mov dword ptr [ebp - 0x20], eax\n+mov dword ptr [ebp - 0x144], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x5c\n-mov dword ptr [ebp - 0x1c], eax\n+mov dword ptr [ebp - 0x140], eax\n mov dword ptr [eax], 0\n mov byte ptr [ebp - 4], 0xa\n mov byte ptr [ebp - 4], 0xb\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x60\n mov byte ptr [ebp - 4], 0xc\n-mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [ebp - 0x13c], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x64\n mov byte ptr [ebp - 4], 0xd\n-mov dword ptr [ebp - 0x1a0], eax\n+mov dword ptr [ebp - 0x138], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x68\n mov byte ptr [ebp - 4], 0xe\n-mov dword ptr [ebp - 0x19c], eax\n+mov dword ptr [ebp - 0x134], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x6c\n mov byte ptr [ebp - 4], 0xf\n-mov dword ptr [ebp - 0x198], eax\n+mov dword ptr [ebp - 0x130], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x70\n mov byte ptr [ebp - 4], 0x10\n-mov dword ptr [ebp - 0x194], eax\n+mov dword ptr [ebp - 0x12c], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x74\n mov byte ptr [ebp - 4], 0x11\n-mov dword ptr [ebp - 0x190], eax\n+mov dword ptr [ebp - 0x128], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x78\n mov byte ptr [ebp - 4], 0x12\n-mov dword ptr [ebp - 0x18c], eax\n+mov dword ptr [ebp - 0x124], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x7c\n mov byte ptr [ebp - 4], 0x13\n-mov dword ptr [ebp - 0x188], eax\n+mov dword ptr [ebp - 0x120], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x80\n mov byte ptr [ebp - 4], 0x14\n-mov dword ptr [ebp - 0x184], eax\n+mov dword ptr [ebp - 0x11c], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x84\n mov byte ptr [ebp - 4], 0x15\n-mov dword ptr [ebp - 0x180], eax\n+mov dword ptr [ebp - 0x118], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x88\n mov byte ptr [ebp - 4], 0x16\n-mov dword ptr [ebp - 0x17c], eax\n+mov dword ptr [ebp - 0x114], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x8c\n-mov dword ptr [ebp - 0x178], eax\n+mov dword ptr [ebp - 0x110], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n mov byte ptr [ebp - 4], 0x17\n add eax, 0x90\n mov byte ptr [ebp - 4], 0x18\n-mov dword ptr [ebp - 0x174], eax\n+mov dword ptr [ebp - 0x10c], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x94\n mov byte ptr [ebp - 4], 0x19\n-mov dword ptr [ebp - 0x170], eax\n+mov dword ptr [ebp - 0x108], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x98\n mov byte ptr [ebp - 4], 0x1a\n-mov dword ptr [ebp - 0x16c], eax\n+mov dword ptr [ebp - 0x104], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x9c\n mov byte ptr [ebp - 4], 0x1b\n-mov dword ptr [ebp - 0x168], eax\n+mov dword ptr [ebp - 0x100], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xa0\n mov byte ptr [ebp - 4], 0x1c\n-mov dword ptr [ebp - 0x164], eax\n+mov dword ptr [ebp - 0xfc], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xa4\n mov byte ptr [ebp - 4], 0x1d\n-mov dword ptr [ebp - 0x160], eax\n+mov dword ptr [ebp - 0xf8], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xa8\n mov byte ptr [ebp - 4], 0x1e\n-mov dword ptr [ebp - 0x15c], eax\n+mov dword ptr [ebp - 0xf4], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xac\n mov byte ptr [ebp - 4], 0x1f\n-mov dword ptr [ebp - 0x158], eax\n+mov dword ptr [ebp - 0xf0], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xb0\n mov byte ptr [ebp - 4], 0x20\n-mov dword ptr [ebp - 0x154], eax\n+mov dword ptr [ebp - 0xec], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xb4\n mov byte ptr [ebp - 4], 0x21\n-mov dword ptr [ebp - 0x150], eax\n+mov dword ptr [ebp - 0xe8], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xb8\n mov byte ptr [ebp - 4], 0x22\n-mov dword ptr [ebp - 0x14c], eax\n+mov dword ptr [ebp - 0xe4], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xbc\n-mov dword ptr [ebp - 0x148], eax\n+mov dword ptr [ebp - 0xe0], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xc0\n mov byte ptr [ebp - 4], 0x23\n mov byte ptr [ebp - 4], 0x24\n-mov dword ptr [ebp - 0x144], eax\n+mov dword ptr [ebp - 0xdc], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xc4\n mov byte ptr [ebp - 4], 0x25\n-mov dword ptr [ebp - 0x140], eax\n+mov dword ptr [ebp - 0xd8], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xc8\n mov byte ptr [ebp - 4], 0x26\n-mov dword ptr [ebp - 0x13c], eax\n+mov dword ptr [ebp - 0xd4], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xcc\n mov byte ptr [ebp - 4], 0x27\n-mov dword ptr [ebp - 0x138], eax\n+mov dword ptr [ebp - 0xd0], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xd0\n mov byte ptr [ebp - 4], 0x28\n-mov dword ptr [ebp - 0x134], eax\n+mov dword ptr [ebp - 0xcc], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xd4\n mov byte ptr [ebp - 4], 0x29\n-mov dword ptr [ebp - 0x130], eax\n+mov dword ptr [ebp - 0xc8], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xd8\n mov byte ptr [ebp - 4], 0x2a\n-mov dword ptr [ebp - 0x12c], eax\n+mov dword ptr [ebp - 0xc4], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xdc\n mov byte ptr [ebp - 4], 0x2b\n-mov dword ptr [ebp - 0x128], eax\n+mov dword ptr [ebp - 0xc0], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xe0\n mov byte ptr [ebp - 4], 0x2c\n-mov dword ptr [ebp - 0x124], eax\n+mov dword ptr [ebp - 0xbc], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xe4\n mov byte ptr [ebp - 4], 0x2d\n-mov dword ptr [ebp - 0x120], eax\n+mov dword ptr [ebp - 0xb8], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xe8\n mov byte ptr [ebp - 4], 0x2e\n-mov dword ptr [ebp - 0x11c], eax\n+mov dword ptr [ebp - 0xb4], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xec\n-mov dword ptr [ebp - 0x118], eax\n+mov dword ptr [ebp - 0xb0], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xf0\n-mov dword ptr [ebp - 0x114], eax\n+mov dword ptr [ebp - 0xac], eax\n mov byte ptr [ebp - 4], 0x2f\n mov byte ptr [ebp - 4], 0x30\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xf4\n mov byte ptr [ebp - 4], 0x31\n-mov dword ptr [ebp - 0x110], eax\n+mov dword ptr [ebp - 0xa8], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xf8\n mov byte ptr [ebp - 4], 0x32\n-mov dword ptr [ebp - 0x10c], eax\n+mov dword ptr [ebp - 0xa4], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0xfc\n mov byte ptr [ebp - 4], 0x33\n-mov dword ptr [ebp - 0x108], eax\n+mov dword ptr [ebp - 0xa0], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x100\n mov byte ptr [ebp - 4], 0x34\n-mov dword ptr [ebp - 0x104], eax\n+mov dword ptr [ebp - 0x9c], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x104\n mov byte ptr [ebp - 4], 0x35\n-mov dword ptr [ebp - 0x100], eax\n+mov dword ptr [ebp - 0x98], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x108\n mov byte ptr [ebp - 4], 0x36\n-mov dword ptr [ebp - 0xfc], eax\n+mov dword ptr [ebp - 0x94], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x10c\n mov byte ptr [ebp - 4], 0x37\n-mov dword ptr [ebp - 0xf8], eax\n+mov dword ptr [ebp - 0x90], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x110\n mov byte ptr [ebp - 4], 0x38\n-mov dword ptr [ebp - 0xf4], eax\n+mov dword ptr [ebp - 0x8c], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x114\n mov byte ptr [ebp - 4], 0x39\n-mov dword ptr [ebp - 0xf0], eax\n+mov dword ptr [ebp - 0x88], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x118\n mov byte ptr [ebp - 4], 0x3a\n-mov dword ptr [ebp - 0xec], eax\n+mov dword ptr [ebp - 0x84], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x11c\n-mov dword ptr [ebp - 0xe8], eax\n+mov dword ptr [ebp - 0x80], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x120\n-mov dword ptr [ebp - 0xe4], eax\n+mov dword ptr [ebp - 0x7c], eax\n mov dword ptr [eax], 0\n mov byte ptr [ebp - 4], 0x3b\n mov byte ptr [ebp - 4], 0x3c\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x124\n mov byte ptr [ebp - 4], 0x3d\n-mov dword ptr [ebp - 0xe0], eax\n+mov dword ptr [ebp - 0x78], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x128\n mov byte ptr [ebp - 4], 0x3e\n-mov dword ptr [ebp - 0xdc], eax\n+mov dword ptr [ebp - 0x74], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x12c\n mov byte ptr [ebp - 4], 0x3f\n-mov dword ptr [ebp - 0xd8], eax\n+mov dword ptr [ebp - 0x70], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x130\n mov byte ptr [ebp - 4], 0x40\n-mov dword ptr [ebp - 0xd4], eax\n+mov dword ptr [ebp - 0x6c], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x134\n mov byte ptr [ebp - 4], 0x41\n-mov dword ptr [ebp - 0xd0], eax\n+mov dword ptr [ebp - 0x68], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x138\n mov byte ptr [ebp - 4], 0x42\n-mov dword ptr [ebp - 0xcc], eax\n+mov dword ptr [ebp - 0x64], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x13c\n mov byte ptr [ebp - 4], 0x43\n-mov dword ptr [ebp - 0xc8], eax\n+mov dword ptr [ebp - 0x60], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x140\n mov byte ptr [ebp - 4], 0x44\n-mov dword ptr [ebp - 0xc4], eax\n+mov dword ptr [ebp - 0x5c], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x144\n mov byte ptr [ebp - 4], 0x45\n-mov dword ptr [ebp - 0xc0], eax\n+mov dword ptr [ebp - 0x58], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x148\n mov byte ptr [ebp - 4], 0x46\n-mov dword ptr [ebp - 0xbc], eax\n+mov dword ptr [ebp - 0x54], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x14c\n-mov dword ptr [ebp - 0xb8], eax\n+mov dword ptr [ebp - 0x50], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x150\n-mov dword ptr [ebp - 0xb4], eax\n+mov dword ptr [ebp - 0x4c], eax\n mov dword ptr [eax], 0\n mov byte ptr [ebp - 4], 0x47\n mov byte ptr [ebp - 4], 0x48\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x154\n mov byte ptr [ebp - 4], 0x49\n-mov dword ptr [ebp - 0xb0], eax\n+mov dword ptr [ebp - 0x48], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x158\n mov byte ptr [ebp - 4], 0x4a\n-mov dword ptr [ebp - 0xac], eax\n+mov dword ptr [ebp - 0x44], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x15c\n mov byte ptr [ebp - 4], 0x4b\n-mov dword ptr [ebp - 0xa8], eax\n+mov dword ptr [ebp - 0x40], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x160\n mov byte ptr [ebp - 4], 0x4c\n-mov dword ptr [ebp - 0xa4], eax\n+mov dword ptr [ebp - 0x3c], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x164\n mov byte ptr [ebp - 4], 0x4d\n-mov dword ptr [ebp - 0xa0], eax\n+mov dword ptr [ebp - 0x38], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x168\n mov byte ptr [ebp - 4], 0x4e\n-mov dword ptr [ebp - 0x9c], eax\n+mov dword ptr [ebp - 0x34], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x16c\n mov byte ptr [ebp - 4], 0x4f\n-mov dword ptr [ebp - 0x98], eax\n+mov dword ptr [ebp - 0x30], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x170\n mov byte ptr [ebp - 4], 0x50\n-mov dword ptr [ebp - 0x94], eax\n+mov dword ptr [ebp - 0x2c], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x174\n mov byte ptr [ebp - 4], 0x51\n-mov dword ptr [ebp - 0x90], eax\n+mov dword ptr [ebp - 0x28], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x178\n mov byte ptr [ebp - 4], 0x52\n-mov dword ptr [ebp - 0x8c], eax\n+mov dword ptr [ebp - 0x24], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x17c\n mov byte ptr [ebp - 4], 0x53\n-mov dword ptr [ebp - 0x88], eax\n+mov dword ptr [ebp - 0x20], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x180\n-mov dword ptr [ebp - 0x84], eax\n+mov dword ptr [ebp - 0x1c], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n mov byte ptr [ebp - 4], 0x54\n add eax, 0x184\n mov byte ptr [ebp - 4], 0x55\n-mov dword ptr [ebp - 0x80], eax\n+mov dword ptr [ebp - 0x18], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x188\n mov byte ptr [ebp - 4], 0x56\n-mov dword ptr [ebp - 0x7c], eax\n+mov dword ptr [ebp - 0x14], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x18c\n+push 0\n+mov dword ptr [ebp - 0x168], eax\n+mov dword ptr [eax], 0\n+mov eax, dword ptr [ebp - 0x10]\n+push 'LegoModelPresenter' (STRING)\n+lea ecx, [ebp - 0x164]\n+mov dword ptr [eax], LegoObjectFactory (VTABLE)\n+call MxAtomId::MxAtomId (FUNCTION)\n+push eax\n+mov ecx, esi\n mov byte ptr [ebp - 4], 0x57\n-mov dword ptr [ebp - 0x78], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-add eax, 0x190\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET7>\n+push 0\n+lea ecx, [ebp - 0x164]\n+push 'LegoTexturePresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n mov byte ptr [ebp - 4], 0x58\n-mov dword ptr [ebp - 0x74], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-add eax, 0x194\n+push eax\n+mov ecx, dword ptr [ebp - 0x160]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET9>\n+push 0\n+lea ecx, [ebp - 0x160]\n+push 'LegoPhonemePresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n mov byte ptr [ebp - 4], 0x59\n-mov dword ptr [ebp - 0x70], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-add eax, 0x198\n+push eax\n+mov ecx, dword ptr [ebp - 0x15c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET11>\n+push 0\n+lea ecx, [ebp - 0x15c]\n+push 'LegoFlcTexturePresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n mov byte ptr [ebp - 4], 0x5a\n-mov dword ptr [ebp - 0x6c], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-add eax, 0x19c\n+push eax\n+mov ecx, dword ptr [ebp - 0x158]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET13>\n+push 0\n+lea ecx, [ebp - 0x158]\n+push 'LegoEntityPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n mov byte ptr [ebp - 4], 0x5b\n-mov dword ptr [ebp - 0x68], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-add eax, 0x1a0\n+push eax\n+mov ecx, dword ptr [ebp - 0x154]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET15>\n+push 0\n+lea ecx, [ebp - 0x154]\n+push 'LegoActorPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n mov byte ptr [ebp - 4], 0x5c\n-mov dword ptr [ebp - 0x64], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-add eax, 0x1a4\n+push eax\n+mov ecx, dword ptr [ebp - 0x150]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET17>\n+push 0\n+lea ecx, [ebp - 0x150]\n+push 'LegoWorldPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n mov byte ptr [ebp - 4], 0x5d\n-mov dword ptr [ebp - 0x60], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-add eax, 0x1a8\n+push eax\n+mov ecx, dword ptr [ebp - 0x14c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET19>\n+push 0\n+lea ecx, [ebp - 0x14c]\n+push 'LegoWorld' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n mov byte ptr [ebp - 4], 0x5e\n-mov dword ptr [ebp - 0x5c], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-add eax, 0x1ac\n+push eax\n+mov ecx, dword ptr [ebp - 0x148]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET21>\n+push 0\n+lea ecx, [ebp - 0x148]\n+push 'LegoPalettePresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n mov byte ptr [ebp - 4], 0x5f\n-mov dword ptr [ebp - 0x58], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-add eax, 0x1b0\n-mov dword ptr [ebp - 0x54], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-add eax, 0x1b4\n+push eax\n+mov ecx, dword ptr [ebp - 0x144]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET23>\n+push 0\n+lea ecx, [ebp - 0x144]\n+push 'LegoPathPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n mov byte ptr [ebp - 4], 0x60\n+push eax\n+mov ecx, dword ptr [ebp - 0x140]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET25>\n+push 0\n+lea ecx, [ebp - 0x140]\n+push 'LegoAnimPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n mov byte ptr [ebp - 4], 0x61\n-mov dword ptr [ebp - 0x50], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-add eax, 0x1b8\n+push eax\n+mov ecx, dword ptr [ebp - 0x13c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET27>\n+push 0\n+lea ecx, [ebp - 0x13c]\n+push 'LegoLoopingAnimPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n mov byte ptr [ebp - 4], 0x62\n-mov dword ptr [ebp - 0x4c], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-add eax, 0x1bc\n+push eax\n+mov ecx, dword ptr [ebp - 0x138]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET29>\n+push 0\n+lea ecx, [ebp - 0x138]\n+push 'LegoLocomotionAnimPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n mov byte ptr [ebp - 4], 0x63\n-mov dword ptr [ebp - 0x48], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-add eax, 0x1c0\n+push eax\n+mov ecx, dword ptr [ebp - 0x134]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET31>\n+push 0\n+lea ecx, [ebp - 0x134]\n+push 'LegoHideAnimPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n mov byte ptr [ebp - 4], 0x64\n-mov dword ptr [ebp - 0x44], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-add eax, 0x1c4\n-push 0\n-mov dword ptr [ebp - 0x40], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n-push 'LegoEntityPresenter' (STRING)\n+push eax\n+mov ecx, dword ptr [ebp - 0x130]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET33>\n+push 0\n+lea ecx, [ebp - 0x130]\n+push 'LegoPartPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x65\n+push eax\n+mov ecx, dword ptr [ebp - 0x12c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET35>\n+push 0\n+lea ecx, [ebp - 0x12c]\n+push 'LegoCarBuildAnimPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x66\n+push eax\n+mov ecx, dword ptr [ebp - 0x128]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET37>\n+push 0\n+lea ecx, [ebp - 0x128]\n+push 'LegoActionControlPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x67\n+push eax\n+mov ecx, dword ptr [ebp - 0x124]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET39>\n+push 0\n+lea ecx, [ebp - 0x124]\n+push 'MxVideoPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x68\n+push eax\n+mov ecx, dword ptr [ebp - 0x120]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET41>\n+push 0\n+lea ecx, [ebp - 0x120]\n+push 'LegoLoadCacheSoundPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x69\n+push eax\n+mov ecx, dword ptr [ebp - 0x11c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET43>\n+push 0\n+lea ecx, [ebp - 0x11c]\n+push 'Lego3DWavePresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x6a\n+push eax\n+mov ecx, dword ptr [ebp - 0x118]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET45>\n+push 0\n+lea ecx, [ebp - 0x118]\n+push 'LegoActor' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x6b\n+push eax\n+mov ecx, dword ptr [ebp - 0x114]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET47>\n+push 0\n+lea ecx, [ebp - 0x114]\n+push 'LegoPathActor' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x6c\n+push eax\n+mov ecx, dword ptr [ebp - 0x110]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET49>\n+push 0\n+lea ecx, [ebp - 0x110]\n+push 'LegoRaceCar' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x6d\n+push eax\n+mov ecx, dword ptr [ebp - 0x10c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET51>\n+push 0\n+lea ecx, [ebp - 0x10c]\n+push 'LegoJetski' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x6e\n+push eax\n+mov ecx, dword ptr [ebp - 0x108]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET53>\n+push 0\n+lea ecx, [ebp - 0x108]\n+push 'LegoEntity' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x6f\n+push eax\n+mov ecx, dword ptr [ebp - 0x104]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET55>\n+push 0\n+lea ecx, [ebp - 0x104]\n+push 'LegoCarRaceActor' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x70\n+push eax\n+mov ecx, dword ptr [ebp - 0x100]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET57>\n+push 0\n+lea ecx, [ebp - 0x100]\n+push 'LegoJetskiRaceActor' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x71\n+push eax\n+mov ecx, dword ptr [ebp - 0xfc]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET59>\n+push 0\n+lea ecx, [ebp - 0xfc]\n+push 'LegoCarBuild' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x72\n+push eax\n+mov ecx, dword ptr [ebp - 0xf8]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET61>\n+push 0\n+lea ecx, [ebp - 0xf8]\n+push 'Infocenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x73\n+push eax\n+mov ecx, dword ptr [ebp - 0xf4]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET63>\n+push 0\n+lea ecx, [ebp - 0xf4]\n+push 'LegoAnimActor' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x74\n+push eax\n+mov ecx, dword ptr [ebp - 0xf0]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET65>\n+push 0\n+lea ecx, [ebp - 0xf0]\n+push 'MxControlPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x75\n+push eax\n+mov ecx, dword ptr [ebp - 0xec]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET67>\n+push 0\n+lea ecx, [ebp - 0xec]\n+push 'RegistrationBook' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x76\n+push eax\n+mov ecx, dword ptr [ebp - 0xe8]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET69>\n+push 0\n+lea ecx, [ebp - 0xe8]\n+push 'HistoryBook' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x77\n+push eax\n+mov ecx, dword ptr [ebp - 0xe4]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET71>\n+push 0\n+lea ecx, [ebp - 0xe4]\n+push 'ElevatorBottom' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x78\n+push eax\n+mov ecx, dword ptr [ebp - 0xe0]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET73>\n+push 0\n+lea ecx, [ebp - 0xe0]\n+push 'InfocenterDoor' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x79\n+push eax\n+mov ecx, dword ptr [ebp - 0xdc]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET75>\n+push 0\n+lea ecx, [ebp - 0xdc]\n+push 'Score' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x7a\n+push eax\n+mov ecx, dword ptr [ebp - 0xd8]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET77>\n+push 0\n+lea ecx, [ebp - 0xd8]\n+push 'ScoreState' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x7b\n+push eax\n+mov ecx, dword ptr [ebp - 0xd4]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET79>\n+push 0\n+lea ecx, [ebp - 0xd4]\n+push 'Hospital' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x7c\n+push eax\n+mov ecx, dword ptr [ebp - 0xd0]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET81>\n+push 0\n+lea ecx, [ebp - 0xd0]\n+push 'Isle' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x7d\n+push eax\n+mov ecx, dword ptr [ebp - 0xcc]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET83>\n+push 0\n+lea ecx, [ebp - 0xcc]\n+push 'Police' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x7e\n+push eax\n+mov ecx, dword ptr [ebp - 0xc8]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET85>\n+push 0\n+lea ecx, [ebp - 0xc8]\n+push 'GasStation' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x7f\n+push eax\n+mov ecx, dword ptr [ebp - 0xc4]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET87>\n+push 0\n+push 'LegoAct2' (STRING)\n+lea ecx, [ebp - 0xc4]\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x80\n+push eax\n+mov ecx, dword ptr [ebp - 0xc0]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET89>\n+push 0\n+lea ecx, [ebp - 0xc0]\n+push 'LegoAct2State' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x81\n+push eax\n+mov ecx, dword ptr [ebp - 0xbc]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET91>\n+push 0\n+lea ecx, [ebp - 0xbc]\n+push 'HospitalState' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x82\n+push eax\n+mov ecx, dword ptr [ebp - 0xb8]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET93>\n+push 0\n+lea ecx, [ebp - 0xb8]\n+push 'InfocenterState' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x83\n+push eax\n+mov ecx, dword ptr [ebp - 0xb4]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET95>\n+push 0\n+lea ecx, [ebp - 0xb4]\n+push 'PoliceState' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x84\n+push eax\n+mov ecx, dword ptr [ebp - 0xb0]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET97>\n+push 0\n+lea ecx, [ebp - 0xb0]\n+push 'GasStationState' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x85\n+push eax\n+mov ecx, dword ptr [ebp - 0xac]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET99>\n+push 0\n+push 'SkateBoard' (STRING)\n+lea ecx, [ebp - 0xac]\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x86\n+push eax\n+mov ecx, dword ptr [ebp - 0xa8]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET101>\n+push 0\n+lea ecx, [ebp - 0xa8]\n+push 'Helicopter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x87\n+push eax\n+mov ecx, dword ptr [ebp - 0xa4]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET103>\n+push 0\n+lea ecx, [ebp - 0xa4]\n+push 'HelicopterState' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x88\n+push eax\n+mov ecx, dword ptr [ebp - 0xa0]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET105>\n+push 0\n+lea ecx, [ebp - 0xa0]\n+push 'DuneBuggy' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x89\n+push eax\n+mov ecx, dword ptr [ebp - 0x9c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET107>\n+push 0\n+lea ecx, [ebp - 0x9c]\n+push 'Pizza' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x8a\n+push eax\n+mov ecx, dword ptr [ebp - 0x98]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET109>\n+push 0\n+lea ecx, [ebp - 0x98]\n+push 'PizzaMissionState' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x8b\n+push eax\n+mov ecx, dword ptr [ebp - 0x94]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET111>\n+push 0\n+push 'Act2PoliceStation' (STRING)\n+lea ecx, [ebp - 0x94]\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x8c\n+push eax\n+mov ecx, dword ptr [ebp - 0x90]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET113>\n+push 0\n+lea ecx, [ebp - 0x90]\n+push 'Act3' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x8d\n+push eax\n+mov ecx, dword ptr [ebp - 0x8c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET115>\n+push 0\n+lea ecx, [ebp - 0x8c]\n+push 'Act3State' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x8e\n+push eax\n+mov ecx, dword ptr [ebp - 0x88]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET117>\n+push 0\n+lea ecx, [ebp - 0x88]\n+push 'Doors' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x8f\n+push eax\n+mov ecx, dword ptr [ebp - 0x84]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET119>\n+push 0\n+lea ecx, [ebp - 0x84]\n+push 'LegoAnimMMPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x90\n+push eax\n+mov ecx, dword ptr [ebp - 0x80]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET121>\n+push 0\n+lea ecx, [ebp - 0x80]\n+push 'RaceCar' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x91\n+push eax\n+mov ecx, dword ptr [ebp - 0x7c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET123>\n+push 0\n+lea ecx, [ebp - 0x7c]\n+push 'Jetski' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x92\n+push eax\n+mov ecx, dword ptr [ebp - 0x78]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET125>\n+push 0\n+lea ecx, [ebp - 0x78]\n+push 'Bike' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x93\n+push eax\n+mov ecx, dword ptr [ebp - 0x74]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET127>\n+push 0\n+lea ecx, [ebp - 0x74]\n+push 'Motocycle' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x94\n+push eax\n+mov ecx, dword ptr [ebp - 0x70]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET129>\n+push 0\n+lea ecx, [ebp - 0x70]\n+push 'Ambulance' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x95\n+push eax\n+mov ecx, dword ptr [ebp - 0x6c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET131>\n+push 0\n+lea ecx, [ebp - 0x6c]\n+push 'AmbulanceMissionState' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x96\n+push eax\n+mov ecx, dword ptr [ebp - 0x68]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET133>\n+push 0\n+lea ecx, [ebp - 0x68]\n+push 'TowTrack' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x97\n+push eax\n+mov ecx, dword ptr [ebp - 0x64]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET135>\n+push 0\n+lea ecx, [ebp - 0x64]\n+push 'TowTrackMissionState' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x98\n+push eax\n+mov ecx, dword ptr [ebp - 0x60]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET137>\n+push 0\n+lea ecx, [ebp - 0x60]\n+push 'Act3Shark' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x99\n+push eax\n+mov ecx, dword ptr [ebp - 0x5c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET139>\n+push 0\n+lea ecx, [ebp - 0x5c]\n+push 'BumpBouy' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x9a\n+push eax\n+mov ecx, dword ptr [ebp - 0x58]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET141>\n+push 0\n+lea ecx, [ebp - 0x58]\n+push 'Act3Actor' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x9b\n+push eax\n+mov ecx, dword ptr [ebp - 0x54]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET143>\n+push 0\n+lea ecx, [ebp - 0x54]\n+push 'JetskiRaceState' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x9c\n+push eax\n+mov ecx, dword ptr [ebp - 0x50]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET145>\n+push 0\n+lea ecx, [ebp - 0x50]\n+push 'CarRaceState' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x9d\n+push eax\n+mov ecx, dword ptr [ebp - 0x4c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET147>\n+push 0\n+lea ecx, [ebp - 0x4c]\n+push 'Act1State' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x9e\n+push eax\n+mov ecx, dword ptr [ebp - 0x48]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET149>\n+push 0\n+lea ecx, [ebp - 0x48]\n+push 'Pizzeria' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0x9f\n+push eax\n+mov ecx, dword ptr [ebp - 0x44]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET151>\n+push 0\n+lea ecx, [ebp - 0x44]\n+push 'PizzeriaState' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0xa0\n+push eax\n+mov ecx, dword ptr [ebp - 0x40]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET153>\n+push 0\n+lea ecx, [ebp - 0x40]\n+push 'InfoCenterEntity' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0xa1\n+push eax\n+mov ecx, dword ptr [ebp - 0x3c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET155>\n+push 0\n lea ecx, [ebp - 0x3c]\n-mov dword ptr [eax], LegoObjectFactory (VTABLE)\n-call MxAtomId::MxAtomId (FUNCTION)\n-push eax\n-mov ecx, esi\n-mov byte ptr [ebp - 4], 0x65\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET7>\n-push 0\n-lea ecx, [ebp - 0x3c]\n-push 'LegoActorPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x66\n+push 'HospitalEntity' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0xa2\n push eax\n mov ecx, dword ptr [ebp - 0x38]\n call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET9>\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET157>\n push 0\n lea ecx, [ebp - 0x38]\n-push 'LegoWorldPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x67\n+push 'GasStationEntity' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0xa3\n push eax\n mov ecx, dword ptr [ebp - 0x34]\n call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET11>\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET159>\n push 0\n lea ecx, [ebp - 0x34]\n-push 'LegoWorld' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x68\n+push 'PoliceEntity' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0xa4\n+push eax\n+mov ecx, dword ptr [ebp - 0x30]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET161>\n+push 0\n+lea ecx, [ebp - 0x30]\n+push 'BeachHouseEntity' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0xa5\n+push eax\n+mov ecx, dword ptr [ebp - 0x2c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET163>\n+push 0\n+lea ecx, [ebp - 0x2c]\n+push 'RaceStandsEntity' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0xa6\n+push eax\n+mov ecx, dword ptr [ebp - 0x28]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET165>\n+push 0\n+lea ecx, [ebp - 0x28]\n+push 'JukeBoxEntity' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0xa7\n+push eax\n+mov ecx, dword ptr [ebp - 0x24]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET167>\n+push 0\n+lea ecx, [ebp - 0x24]\n+push 'RadioState' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0xa8\n+push eax\n+mov ecx, dword ptr [ebp - 0x20]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET169>\n+push 0\n+lea ecx, [ebp - 0x20]\n+push 'MxCompositeMediaPresenter' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0xa9\n+push eax\n+mov ecx, dword ptr [ebp - 0x1c]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET171>\n+push 0\n+lea ecx, [ebp - 0x1c]\n+push 'JukeBox' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0xaa\n push eax\n mov ecx, dword ptr [ebp - 0x18]\n call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET13>\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET173>\n push 0\n lea ecx, [ebp - 0x18]\n-push 'LegoAnimPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x69\n+push 'JukeBoxState' (STRING)\n+call MxAtomId::MxAtomId (FUNCTION)\n+mov byte ptr [ebp - 4], 0xab\n push eax\n mov ecx, dword ptr [ebp - 0x14]\n call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET15>\n-push 0\n-lea ecx, [ebp - 0x18]\n-push 'LegoModelPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x6a\n-push eax\n-mov ecx, dword ptr [ebp - 0x30]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET17>\n-push 0\n-lea ecx, [ebp - 0x30]\n-push 'LegoTexturePresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x6b\n-push eax\n-mov ecx, dword ptr [ebp - 0x2c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET19>\n-push 0\n-lea ecx, [ebp - 0x2c]\n-push 'LegoPhonemePresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x6c\n-push eax\n-mov ecx, dword ptr [ebp - 0x28]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET21>\n-push 0\n-lea ecx, [ebp - 0x28]\n-push 'LegoFlcTexturePresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x6d\n-push eax\n-mov ecx, dword ptr [ebp - 0x24]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET23>\n-push 0\n-lea ecx, [ebp - 0x24]\n-push 'LegoPalettePresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x6e\n-push eax\n-mov ecx, dword ptr [ebp - 0x20]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET25>\n-push 0\n-lea ecx, [ebp - 0x20]\n-push 'LegoPathPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x6f\n-push eax\n-mov ecx, dword ptr [ebp - 0x1c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET27>\n-push 0\n-lea ecx, [ebp - 0x1c]\n-push 'LegoAnimPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x70\n-push eax\n-mov ecx, dword ptr [ebp - 0x14]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET28>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoLoopingAnimPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x71\n-push eax\n-mov ecx, dword ptr [ebp - 0x1a0]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET30>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoLocomotionAnimPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x72\n-push eax\n-mov ecx, dword ptr [ebp - 0x19c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET32>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoHideAnimPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x73\n-push eax\n-mov ecx, dword ptr [ebp - 0x198]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET34>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoPartPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x74\n-push eax\n-mov ecx, dword ptr [ebp - 0x194]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET36>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoCarBuildAnimPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x75\n-push eax\n-mov ecx, dword ptr [ebp - 0x190]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET38>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoActionControlPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x76\n-push eax\n-mov ecx, dword ptr [ebp - 0x18c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET40>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push <OFFSET41>\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x77\n-push eax\n-mov ecx, dword ptr [ebp - 0x188]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET42>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoLoadCacheSoundPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x78\n-push eax\n-mov ecx, dword ptr [ebp - 0x184]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET44>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Lego3DWavePresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x79\n-push eax\n-mov ecx, dword ptr [ebp - 0x180]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET46>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoActor' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x7a\n-push eax\n-mov ecx, dword ptr [ebp - 0x17c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET48>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoPathActor' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x7b\n-push eax\n-mov ecx, dword ptr [ebp - 0x178]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET50>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoRaceCar' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x7c\n-push eax\n-mov ecx, dword ptr [ebp - 0x174]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET52>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoJetski' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x7d\n-push eax\n-mov ecx, dword ptr [ebp - 0x170]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET54>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push <OFFSET55>\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x7e\n-push eax\n-mov ecx, dword ptr [ebp - 0x16c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET56>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoEntity' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x7f\n-push eax\n-mov ecx, dword ptr [ebp - 0x168]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET58>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoCarRaceActor' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x80\n-push eax\n-mov ecx, dword ptr [ebp - 0x164]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET60>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoJetskiRaceActor' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x81\n-push eax\n-mov ecx, dword ptr [ebp - 0x160]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET62>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoCarBuild' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x82\n-push eax\n-mov ecx, dword ptr [ebp - 0x15c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET64>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Infocenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x83\n-push eax\n-mov ecx, dword ptr [ebp - 0x158]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET66>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoAnimActor' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x84\n-push eax\n-mov ecx, dword ptr [ebp - 0x154]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET68>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'MxControlPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x85\n-push eax\n-mov ecx, dword ptr [ebp - 0x150]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET70>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'RegistrationBook' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x86\n-push eax\n-mov ecx, dword ptr [ebp - 0x14c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET72>\n-push 0\n-push 'HistoryBook' (STRING)\n-lea ecx, [ebp - 0x14]\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x87\n-push eax\n-mov ecx, dword ptr [ebp - 0x148]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET74>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'ElevatorBottom' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x88\n-push eax\n-mov ecx, dword ptr [ebp - 0x144]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET76>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'InfocenterDoor' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x89\n-push eax\n-mov ecx, dword ptr [ebp - 0x140]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET78>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Score' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x8a\n-push eax\n-mov ecx, dword ptr [ebp - 0x13c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET80>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'ScoreState' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x8b\n-push eax\n-mov ecx, dword ptr [ebp - 0x138]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET82>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Hospital' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x8c\n-push eax\n-mov ecx, dword ptr [ebp - 0x134]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET84>\n-push 0\n-push 'Isle' (STRING)\n-lea ecx, [ebp - 0x14]\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x8d\n-push eax\n-mov ecx, dword ptr [ebp - 0x130]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET86>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Police' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x8e\n-push eax\n-mov ecx, dword ptr [ebp - 0x12c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET88>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'GasStation' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x8f\n-push eax\n-mov ecx, dword ptr [ebp - 0x128]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET90>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoAct2' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x90\n-push eax\n-mov ecx, dword ptr [ebp - 0x124]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET92>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoAct2State' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x91\n-push eax\n-mov ecx, dword ptr [ebp - 0x120]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET94>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'CarRace' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x92\n-push eax\n-mov ecx, dword ptr [ebp - 0x11c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET96>\n-push 0\n-push <OFFSET97>\n-lea ecx, [ebp - 0x14]\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x93\n-push eax\n-mov ecx, dword ptr [ebp - 0x118]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET98>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push <OFFSET99>\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x94\n-push eax\n-mov ecx, dword ptr [ebp - 0x114]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET100>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push <OFFSET101>\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x95\n-push eax\n-mov ecx, dword ptr [ebp - 0x110]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET102>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push <OFFSET103>\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x96\n-push eax\n-mov ecx, dword ptr [ebp - 0x10c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET104>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'HospitalState' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x97\n-push eax\n-mov ecx, dword ptr [ebp - 0x108]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET106>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'InfocenterState' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x98\n-push eax\n-mov ecx, dword ptr [ebp - 0x104]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET108>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'PoliceState' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x99\n-push eax\n-mov ecx, dword ptr [ebp - 0x100]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET110>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'GasStationState' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x9a\n-push eax\n-mov ecx, dword ptr [ebp - 0xfc]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET112>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'SkateBoard' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x9b\n-push eax\n-mov ecx, dword ptr [ebp - 0xf8]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET114>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Helicopter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x9c\n-push eax\n-mov ecx, dword ptr [ebp - 0xf4]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET116>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'HelicopterState' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x9d\n-push eax\n-mov ecx, dword ptr [ebp - 0xf0]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET118>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'DuneBuggy' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x9e\n-push eax\n-mov ecx, dword ptr [ebp - 0xec]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET120>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Pizza' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0x9f\n-push eax\n-mov ecx, dword ptr [ebp - 0xe8]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET122>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'PizzaMissionState' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xa0\n-push eax\n-mov ecx, dword ptr [ebp - 0xe4]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET124>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push <OFFSET125>\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xa1\n-push eax\n-mov ecx, dword ptr [ebp - 0xe0]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET126>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Act2Brick' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xa2\n-push eax\n-mov ecx, dword ptr [ebp - 0xdc]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET128>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push <OFFSET129>\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xa3\n-push eax\n-mov ecx, dword ptr [ebp - 0xd8]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET130>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Act2PoliceStation' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xa4\n-push eax\n-mov ecx, dword ptr [ebp - 0xd4]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET132>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Act3' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xa5\n-push eax\n-mov ecx, dword ptr [ebp - 0xd0]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET134>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Act3State' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xa6\n-push eax\n-mov ecx, dword ptr [ebp - 0xcc]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET136>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Doors' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xa7\n-push eax\n-mov ecx, dword ptr [ebp - 0xc8]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET138>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'LegoAnimMMPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xa8\n-push eax\n-mov ecx, dword ptr [ebp - 0xc4]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET140>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'RaceCar' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xa9\n-push eax\n-mov ecx, dword ptr [ebp - 0xc0]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET142>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Jetski' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xaa\n-push eax\n-mov ecx, dword ptr [ebp - 0xbc]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET144>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Bike' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xab\n-push eax\n-mov ecx, dword ptr [ebp - 0xb8]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET146>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Motocycle' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xac\n-push eax\n-mov ecx, dword ptr [ebp - 0xb4]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET148>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Ambulance' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xad\n-push eax\n-mov ecx, dword ptr [ebp - 0xb0]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET150>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'AmbulanceMissionState' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xae\n-push eax\n-mov ecx, dword ptr [ebp - 0xac]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET152>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'TowTrack' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xaf\n-push eax\n-mov ecx, dword ptr [ebp - 0xa8]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET154>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'TowTrackMissionState' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xb0\n-push eax\n-mov ecx, dword ptr [ebp - 0xa4]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET156>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push <OFFSET157>\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xb1\n-push eax\n-mov ecx, dword ptr [ebp - 0xa0]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET158>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push <OFFSET159>\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xb2\n-push eax\n-mov ecx, dword ptr [ebp - 0x9c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET160>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Act3Shark' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xb3\n-push eax\n-mov ecx, dword ptr [ebp - 0x98]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET162>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'BumpBouy' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xb4\n-push eax\n-mov ecx, dword ptr [ebp - 0x94]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET164>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Act3Actor' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xb5\n-push eax\n-mov ecx, dword ptr [ebp - 0x90]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET166>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'JetskiRaceState' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xb6\n-push eax\n-mov ecx, dword ptr [ebp - 0x8c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET168>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'CarRaceState' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xb7\n-push eax\n-mov ecx, dword ptr [ebp - 0x88]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET170>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Act1State' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xb8\n-push eax\n-mov ecx, dword ptr [ebp - 0x84]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET172>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'Pizzeria' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xb9\n-push eax\n-mov ecx, dword ptr [ebp - 0x80]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET174>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'PizzeriaState' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xba\n-push eax\n-mov ecx, dword ptr [ebp - 0x7c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET176>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'InfoCenterEntity' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xbb\n-push eax\n-mov ecx, dword ptr [ebp - 0x78]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET178>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'HospitalEntity' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xbc\n-push eax\n-mov ecx, dword ptr [ebp - 0x74]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET180>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'GasStationEntity' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xbd\n-push eax\n-mov ecx, dword ptr [ebp - 0x70]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET182>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'PoliceEntity' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xbe\n-push eax\n-mov ecx, dword ptr [ebp - 0x6c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET184>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'BeachHouseEntity' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xbf\n-push eax\n-mov ecx, dword ptr [ebp - 0x68]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET186>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'RaceStandsEntity' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xc0\n-push eax\n-mov ecx, dword ptr [ebp - 0x64]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET188>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'JukeBoxEntity' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xc1\n-push eax\n-mov ecx, dword ptr [ebp - 0x60]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET190>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'RadioState' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xc2\n-push eax\n-mov ecx, dword ptr [ebp - 0x5c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET192>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push <OFFSET193>\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xc3\n-push eax\n-mov ecx, dword ptr [ebp - 0x58]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET194>\n-push 0\n-push <OFFSET195>\n-lea ecx, [ebp - 0x14]\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xc4\n-push eax\n-mov ecx, dword ptr [ebp - 0x54]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET196>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'MxCompositeMediaPresenter' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xc5\n-push eax\n-mov ecx, dword ptr [ebp - 0x50]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET198>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'JukeBox' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xc6\n-push eax\n-mov ecx, dword ptr [ebp - 0x4c]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET200>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push 'JukeBoxState' (STRING)\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xc7\n-push eax\n-mov ecx, dword ptr [ebp - 0x48]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET202>\n-push 0\n-lea ecx, [ebp - 0x14]\n-push <OFFSET203>\n-call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xc8\n-push eax\n-mov ecx, dword ptr [ebp - 0x44]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET204>\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET175>\n push 0\n lea ecx, [ebp - 0x14]\n push 'AnimState' (STRING)\n call MxAtomId::MxAtomId (FUNCTION)\n-mov byte ptr [ebp - 4], 0xc9\n-push eax\n-mov ecx, dword ptr [ebp - 0x40]\n-call MxAtomId::operator= (FUNCTION)\n-mov byte ptr [ebp - 4], 0x64\n-call <OFFSET206>\n+mov byte ptr [ebp - 4], 0xac\n+push eax\n+mov ecx, dword ptr [ebp - 0x168]\n+call MxAtomId::operator= (FUNCTION)\n+mov byte ptr [ebp - 4], 0x56\n+call <OFFSET177>\n mov dword ptr [ebp - 4], 0xffffffff\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n pop esi\n-mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret \n lea ecx, [ebp - 0x14]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x14]\n+lea ecx, [ebp - 0x18]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n lea ecx, [ebp - 0x1c]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n lea ecx, [ebp - 0x20]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n lea ecx, [ebp - 0x24]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n lea ecx, [ebp - 0x28]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n lea ecx, [ebp - 0x2c]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n lea ecx, [ebp - 0x30]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x18]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x18]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n lea ecx, [ebp - 0x34]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n lea ecx, [ebp - 0x38]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n lea ecx, [ebp - 0x3c]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n-lea ecx, [ebp - 0x3c]\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x1c4\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x1c0\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x1bc\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x1b8\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x1b4\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x1b0\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x1ac\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x1a8\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x1a4\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x1a0\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x19c\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x198\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x194\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x190\n+lea ecx, [ebp - 0x40]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x44]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x48]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x4c]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x50]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x54]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x58]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x5c]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x60]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x64]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x68]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x6c]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x70]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x74]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x78]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x7c]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x80]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x84]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x88]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x8c]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x90]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x94]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x98]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x9c]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xa0]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xa4]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xa8]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xac]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xb0]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xb4]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xb8]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xbc]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xc0]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xc4]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xc8]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xcc]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xd0]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xd4]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xd8]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xdc]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xe0]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xe4]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xe8]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xec]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xf0]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xf4]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xf8]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0xfc]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x100]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x104]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x108]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x10c]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x110]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x114]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x118]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x11c]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x120]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x124]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x128]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x12c]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x130]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x134]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x138]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x13c]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x140]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x144]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x148]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x14c]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x150]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x154]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x158]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x15c]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x160]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x164]\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+lea ecx, [ebp - 0x164]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x18c\n jmp MxAtomId::~MxAtomId (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x188\n jmp MxAtomId::~MxAtomId (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x184\n jmp MxAtomId::~MxAtomId (FUNCTION)\n@@ -1822,10 +1530,216 @@\n\n add ecx, 0x150\n jmp MxAtomId::~MxAtomId (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x14c\n jmp MxAtomId::~MxAtomId (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x148\n jmp MxAtomId::~MxAtomId (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x144\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x140\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x13c\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x138\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x134\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x130\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x12c\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x128\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x124\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x120\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x11c\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x118\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x114\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x110\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x10c\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x108\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x104\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x100\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xfc\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xf8\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xf4\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xf0\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xec\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xe8\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xe4\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xe0\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xdc\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xd8\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xd4\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xd0\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xcc\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xc8\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xc4\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xc0\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xbc\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xb8\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xb4\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xb0\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xac\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xa8\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xa4\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xa0\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x9c\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x98\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x94\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x90\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x8c\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x88\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x84\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x80\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x7c\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x78\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x74\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x70\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x6c\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x68\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x64\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x60\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x5c\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x58\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x54\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x50\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x4c\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x48\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x44\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x40\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x3c\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x38\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov eax, <OFFSET179>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxObjectFactory::~MxObjectFactory (FUNCTION)"}, {"address": "0x10008f70", "name": "MxObjectFactory::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10008f80", "name": "MxObjectFactory::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10009000", "name": "LegoObjectFactory::`scalar deleting destructor'", "matching": 0.9090909090909091, "diff": "--- \n\n+++ \n\n@@ -1,11 +1,11 @@\n\n push esi\n mov esi, ecx\n-call <OFFSET1>\n+call LegoObjectFactory::~LegoObjectFactory (FUNCTION)\n test byte ptr [esp + 8], 1\n je 0x9\n push esi\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov eax, esi\n pop esi\n ret 4"}, {"address": "0x10009a90", "name": "LegoObjectFactory::Create", "matching": 0.05606141760399928, "diff": "--- \n\n+++ \n\n@@ -1,2957 +1,2644 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 0x10\n-mov dword ptr [ebp - 0x1c], 0\n+sub esp, 0xc\n push ebx\n-mov eax, dword ptr [ebp + 8]\n-mov dword ptr [ebp - 0x14], 0\n push esi\n push edi\n-mov esi, ecx\n+mov esi, dword ptr [ebp + 8]\n+mov edi, ecx\n push 0\n-push eax\n+push esi\n lea ecx, [ebp - 0x18]\n call MxAtomId::MxAtomId (FUNCTION)\n mov dword ptr [ebp - 4], 0\n mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x48], eax\n-jne 0xc3\n+cmp dword ptr [edi + 0x38], eax\n+jne 0xe3\n push 0x6c\n mov ebx, 1\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov edi, eax\n-mov byte ptr [ebp - 4], bl\n-test edi, edi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n je 0x90\n-mov ecx, edi\n+mov ecx, eax\n call MxCore::MxCore (FUNCTION)\n mov byte ptr [ebp - 4], 2\n-lea ecx, [edi + 0x20]\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n call MxCriticalSection::MxCriticalSection (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n mov byte ptr [ebp - 4], 3\n-mov ecx, edi\n-mov dword ptr [edi], MxPresenter (VTABLE)\n+mov dword ptr [ecx], MxPresenter (VTABLE)\n call MxPresenter::Init (FUNCTION)\n mov byte ptr [ebp - 4], 4\n-mov ecx, edi\n-mov dword ptr [edi], MxMediaPresenter (VTABLE)\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], MxMediaPresenter (VTABLE)\n call MxMediaPresenter::Init (FUNCTION)\n mov byte ptr [ebp - 4], 5\n-mov ecx, edi\n-mov dword ptr [edi], MxVideoPresenter (VTABLE)\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], MxVideoPresenter (VTABLE)\n call MxVideoPresenter::Init (FUNCTION)\n mov byte ptr [ebp - 4], 6\n-mov eax, edi\n-mov dword ptr [edi], LegoModelPresenter (VTABLE)\n-mov dword ptr [edi + 0x64], 0\n-mov byte ptr [edi + 0x68], 0\n-mov byte ptr [ebp - 4], bl\n-jmp 0x119b\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoModelPresenter (VTABLE)\n+jmp 0x32\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x20\n jmp MxCriticalSection::~MxCriticalSection (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxCore::~MxCore (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxPresenter::~MxPresenter (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxMediaPresenter::~MxMediaPresenter (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxVideoPresenter::~MxVideoPresenter (FUNCTION)\n-xor eax, eax\n-jmp 0x1169\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x4c], eax\n-jne 0xa2\n-push 0x54\n-mov ebx, 7\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov edi, eax\n-mov byte ptr [ebp - 4], bl\n-test edi, edi\n-je 0x73\n-mov ecx, edi\n-call MxCore::MxCore (FUNCTION)\n-mov byte ptr [ebp - 4], 8\n-lea ecx, [edi + 0x20]\n-call MxCriticalSection::MxCriticalSection (FUNCTION)\n-mov byte ptr [ebp - 4], 9\n-mov ecx, edi\n-mov dword ptr [edi], MxPresenter (VTABLE)\n-call MxPresenter::Init (FUNCTION)\n-mov byte ptr [ebp - 4], 0xa\n-mov ecx, edi\n-mov dword ptr [edi], MxMediaPresenter (VTABLE)\n-call MxMediaPresenter::Init (FUNCTION)\n-mov byte ptr [ebp - 4], 0xb\n-mov eax, edi\n-mov byte ptr [ebp - 4], bl\n-mov dword ptr [edi + 0x50], 0\n-mov dword ptr [edi], LegoTexturePresenter (VTABLE)\n-jmp 0x10e5\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x20\n-jmp MxCriticalSection::~MxCriticalSection (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxCore::~MxCore (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxPresenter::~MxPresenter (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxMediaPresenter::~MxMediaPresenter (FUNCTION)\n-xor eax, eax\n-jmp 0x10bb\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x50], eax\n-jne 0x3c\n-push 0x88\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0xc\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x1083\n-mov ecx, edi\n-call LegoPhonemePresenter::LegoPhonemePresenter (FUNCTION)\n-jmp 0x1077\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x54], eax\n-jne 0x39\n-push 0x70\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0xd\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x1042\n-mov ecx, edi\n-call LegoFlcTexturePresenter::LegoFlcTexturePresenter (FUNCTION)\n-jmp 0x1036\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x38], eax\n-jne 0x39\n-push 0x50\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0xe\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x1001\n-mov ecx, edi\n-call LegoEntityPresenter::LegoEntityPresenter (FUNCTION)\n-jmp 0xff5\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x3c], eax\n-jne 0x52\n-push 0x50\n-mov ebx, 0xf\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov edi, eax\n-mov byte ptr [ebp - 4], bl\n-test edi, edi\n-je 0x23\n-mov ecx, edi\n-call LegoEntityPresenter::LegoEntityPresenter (FUNCTION)\n-mov byte ptr [ebp - 4], 0x10\n-mov eax, edi\n-mov dword ptr [edi], LegoActorPresenter (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0xfaa\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp LegoEntityPresenter::~LegoEntityPresenter (FUNCTION)\n-xor eax, eax\n-jmp 0xf9b\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x40], eax\n-jne 0x39\n-push 0x54\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x11\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0xf66\n-mov ecx, edi\n-call LegoWorldPresenter::LegoWorldPresenter (FUNCTION)\n-jmp 0xf5a\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x44], eax\n-jne 0x3c\n-push 0xf8\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x12\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0xf22\n-mov ecx, edi\n-call LegoWorld::LegoWorld (FUNCTION)\n-jmp 0xf16\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x58], eax\n-jne 0x39\n-push 0x68\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x13\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0xee1\n-mov ecx, edi\n-call LegoPalettePresenter::LegoPalettePresenter (FUNCTION)\n-jmp 0xed5\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x5c], eax\n-jne 0x39\n-push 0x54\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x14\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0xea0\n-mov ecx, edi\n-call LegoPathPresenter::LegoPathPresenter (FUNCTION)\n-jmp 0xe94\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x60], eax\n-jne 0x3c\n-push 0xbc\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x15\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0xe5c\n-mov ecx, edi\n-call LegoAnimPresenter::LegoAnimPresenter (FUNCTION)\n-jmp 0xe50\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x64], eax\n-jne 0x55\n-push 0xc0\n-mov ebx, 0x16\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov edi, eax\n-mov byte ptr [ebp - 4], bl\n-test edi, edi\n-je 0x23\n-mov ecx, edi\n-call LegoAnimPresenter::LegoAnimPresenter (FUNCTION)\n-mov byte ptr [ebp - 4], 0x17\n-mov eax, edi\n-mov dword ptr [edi], LegoLoopingAnimPresenter (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0xe02\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp LegoAnimPresenter::~LegoAnimPresenter (FUNCTION)\n-xor eax, eax\n-jmp 0xdf3\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x68], eax\n-jne 0x3c\n-push 0xd8\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x18\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0xdbb\n-mov ecx, edi\n-call LegoLocomotionAnimPresenter::LegoLocomotionAnimPresenter (FUNCTION)\n-jmp 0xdaf\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x6c], eax\n-jne 0x3c\n-push 0xc4\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x19\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0xd77\n-mov ecx, edi\n-call LegoHideAnimPresenter::LegoHideAnimPresenter (FUNCTION)\n-jmp 0xd6b\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x70], eax\n-jne 0xa2\n-push 0x54\n-mov ebx, 0x1a\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov edi, eax\n-mov byte ptr [ebp - 4], bl\n-test edi, edi\n-je 0x73\n-mov ecx, edi\n-call MxCore::MxCore (FUNCTION)\n-mov byte ptr [ebp - 4], 0x1b\n-lea ecx, [edi + 0x20]\n-call MxCriticalSection::MxCriticalSection (FUNCTION)\n-mov byte ptr [ebp - 4], 0x1c\n-mov ecx, edi\n-mov dword ptr [edi], MxPresenter (VTABLE)\n-call MxPresenter::Init (FUNCTION)\n-mov byte ptr [ebp - 4], 0x1d\n-mov ecx, edi\n-mov dword ptr [edi], MxMediaPresenter (VTABLE)\n-call MxMediaPresenter::Init (FUNCTION)\n-mov byte ptr [ebp - 4], 0x1e\n-mov eax, edi\n-mov dword ptr [edi], LegoPartPresenter (VTABLE)\n-mov dword ptr [edi + 0x50], 0\n-mov byte ptr [ebp - 4], bl\n-jmp 0xce7\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x20\n-jmp MxCriticalSection::~MxCriticalSection (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxCore::~MxCore (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxPresenter::~MxPresenter (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxMediaPresenter::~MxMediaPresenter (FUNCTION)\n-xor eax, eax\n-jmp 0xcbd\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x74], eax\n-jne 0x3c\n-push 0x150\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x1f\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0xc85\n-mov ecx, edi\n-call LegoCarBuildAnimPresenter::LegoCarBuildAnimPresenter (FUNCTION)\n-jmp 0xc79\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x78], eax\n-jne 0xbd\n-push 0x68\n-mov ebx, 0x20\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov edi, eax\n-mov byte ptr [ebp - 4], bl\n-test edi, edi\n-je 0x8a\n-mov ecx, edi\n-call MxCore::MxCore (FUNCTION)\n-mov byte ptr [ebp - 4], 0x21\n-lea ecx, [edi + 0x20]\n-call MxCriticalSection::MxCriticalSection (FUNCTION)\n-mov byte ptr [ebp - 4], 0x22\n-mov ecx, edi\n-mov dword ptr [edi], MxPresenter (VTABLE)\n-call MxPresenter::Init (FUNCTION)\n-mov byte ptr [ebp - 4], 0x23\n-mov ecx, edi\n-mov dword ptr [edi], MxMediaPresenter (VTABLE)\n-call MxMediaPresenter::Init (FUNCTION)\n-mov byte ptr [ebp - 4], 0x24\n-mov dword ptr [edi + 0x50], 0\n-lea ecx, [edi + 0x54]\n-call MxString::MxString (FUNCTION)\n-mov byte ptr [ebp - 4], 0x25\n-mov eax, edi\n-mov dword ptr [edi], LegoActionControlPresenter (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0xbe5\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x54\n-jmp MxString::~MxString (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x20\n-jmp MxCriticalSection::~MxCriticalSection (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxCore::~MxCore (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxPresenter::~MxPresenter (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxMediaPresenter::~MxMediaPresenter (FUNCTION)\n-xor eax, eax\n-jmp 0xbb0\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x7c], eax\n-jne 0x3c\n-push 0x94\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x26\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0xb78\n-mov ecx, edi\n-call LegoMeterPresenter::LegoMeterPresenter (FUNCTION)\n-jmp 0xb6c\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x80], eax\n-jne 0x3c\n-push 0x90\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x27\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0xb31\n-mov ecx, edi\n-call LegoLoadCacheSoundPresenter::LegoLoadCacheSoundPresenter (FUNCTION)\n-jmp 0xb25\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x84], eax\n-jne 0xfd\n-push 0xa0\n-mov ebx, 0x28\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov edi, eax\n-mov byte ptr [ebp - 4], bl\n-test edi, edi\n-je 0xc7\n-mov ecx, edi\n-call MxCore::MxCore (FUNCTION)\n-mov byte ptr [ebp - 4], 0x29\n-lea ecx, [edi + 0x20]\n-call MxCriticalSection::MxCriticalSection (FUNCTION)\n-mov byte ptr [ebp - 4], 0x2a\n-mov ecx, edi\n-mov dword ptr [edi], MxPresenter (VTABLE)\n-call MxPresenter::Init (FUNCTION)\n-mov byte ptr [ebp - 4], 0x2b\n-mov ecx, edi\n-mov dword ptr [edi], MxMediaPresenter (VTABLE)\n-call MxMediaPresenter::Init (FUNCTION)\n-mov byte ptr [ebp - 4], 0x2c\n-mov ecx, edi\n-mov dword ptr [edi], MxAudioPresenter (VTABLE)\n-mov dword ptr [edi + 0x50], 0x64\n-mov byte ptr [ebp - 4], 0x2d\n-mov byte ptr [ebp - 4], 0x2e\n-mov dword ptr [edi], MxSoundPresenter (VTABLE)\n-mov dword ptr [edi], MxWavePresenter (VTABLE)\n-call MxWavePresenter::Init (FUNCTION)\n-mov byte ptr [ebp - 4], 0x2f\n-lea ecx, [edi + 0x70]\n-call <OFFSET45>\n-mov byte ptr [ebp - 4], 0x30\n-mov eax, edi\n-mov dword ptr [edi], Lego3DWavePresenter (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0xa66\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x70\n-jmp 0x73cd\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x20\n-jmp MxCriticalSection::~MxCriticalSection (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxCore::~MxCore (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxPresenter::~MxPresenter (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxMediaPresenter::~MxMediaPresenter (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxAudioPresenter::~MxAudioPresenter (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxSoundPresenter::~MxSoundPresenter (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxWavePresenter::~MxWavePresenter (FUNCTION)\n-xor eax, eax\n-jmp 0xa19\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x88], eax\n-jne 0x39\n-push 0x78\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x31\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x9e1\n-mov ecx, edi\n-call LegoActor::LegoActor (FUNCTION)\n-jmp 0x9d5\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x8c], eax\n-jne 0x3c\n-push 0x154\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x32\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x99a\n-mov ecx, edi\n-call LegoPathActor::LegoPathActor (FUNCTION)\n-jmp 0x98e\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x98], eax\n-jne 0x55\n-push 0x144\n-mov ebx, 0x33\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov edi, eax\n-mov byte ptr [ebp - 4], bl\n-test edi, edi\n-je 0x23\n-mov ecx, edi\n-call LegoRace::LegoRace (FUNCTION)\n-mov byte ptr [ebp - 4], 0x34\n-mov eax, edi\n-mov dword ptr [edi], <OFFSET53>\n-mov byte ptr [ebp - 4], bl\n-jmp 0x93d\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp LegoRace::~LegoRace (FUNCTION)\n-xor eax, eax\n-jmp 0x92e\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x9c], eax\n-jne 0xc8\n-push 0x68\n-mov ebx, 0x35\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov edi, eax\n-mov byte ptr [ebp - 4], bl\n-test edi, edi\n-je 0x95\n-mov ecx, edi\n-call MxCore::MxCore (FUNCTION)\n-mov byte ptr [ebp - 4], 0x36\n-mov dword ptr [edi + 0xc], 0\n-mov byte ptr [ebp - 4], 0x37\n-lea eax, [edi + 0x1c]\n-mov dword ptr [edi], MxEntity (VTABLE)\n-mov dword ptr [edi + 8], 0xffffffff\n-mov byte ptr [ebp - 4], 0x38\n-mov dword ptr [edi + 0x14], Vector2 (VTABLE)\n-lea ecx, [edi + 0x30]\n-mov dword ptr [edi + 0x18], eax\n-mov dword ptr [edi + 0x14], Mx3DPointFloat (VTABLE)\n-mov dword ptr [edi + 0x28], Vector2 (VTABLE)\n-lea edx, [edi + 0x44]\n-mov dword ptr [edi + 0x2c], ecx\n-mov dword ptr [edi + 0x28], Mx3DPointFloat (VTABLE)\n-mov dword ptr [edi + 0x3c], Vector2 (VTABLE)\n-mov ecx, edi\n-mov dword ptr [edi + 0x40], edx\n-mov dword ptr [edi + 0x3c], Mx3DPointFloat (VTABLE)\n-mov dword ptr [edi], LegoEntity (VTABLE)\n-call LegoEntity::Init (FUNCTION)\n-mov eax, edi\n-mov byte ptr [ebp - 4], bl\n-jmp 0x879\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0xc\n-jmp MxAtomId::~MxAtomId (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxCore::~MxCore (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxEntity::~MxEntity (FUNCTION)\n-xor eax, eax\n-jmp 0x857\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x90], eax\n-jne 0x55\n-push 0x200\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x14], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x39\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x9\n-push 1\n-mov ecx, edi\n-call <OFFSET62>\n-xor ecx, ecx\n-test eax, eax\n-mov byte ptr [ebp - 4], cl\n-jne 0x8\n-mov dword ptr [ebp - 0x14], ecx\n-jmp 0x80d\n-mov ecx, dword ptr [eax + 4]\n-mov edx, dword ptr [ecx + 4]\n-lea eax, [edx + eax + 4]\n-jmp 0x7fb\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x94], eax\n-jne 0x55\n-push 0x1dc\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x14], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x3a\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x9\n-push 1\n-mov ecx, edi\n-call <OFFSET63>\n-xor ecx, ecx\n-test eax, eax\n-mov byte ptr [ebp - 4], cl\n-jne 0x8\n-mov dword ptr [ebp - 0x14], ecx\n-jmp 0x7ad\n-mov ecx, dword ptr [eax + 0x34]\n-mov edx, dword ptr [ecx + 4]\n-lea eax, [edx + eax + 0x34]\n-jmp 0x79b\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xa0], eax\n-jne 0x55\n-push 0x1a0\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x14], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x3b\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x9\n-push 1\n-mov ecx, edi\n-call <OFFSET64>\n-xor ecx, ecx\n-test eax, eax\n-mov byte ptr [ebp - 4], cl\n-jne 0x8\n-mov dword ptr [ebp - 0x14], ecx\n-jmp 0x74d\n-mov ecx, dword ptr [eax + 4]\n-mov edx, dword ptr [ecx + 4]\n-lea eax, [edx + eax + 4]\n-jmp 0x73b\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xa4], eax\n-jne 0x50\n-push 0x1a8\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x14], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x3c\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x9\n-push 1\n-mov ecx, edi\n-call <OFFSET65>\n-xor ecx, ecx\n-test eax, eax\n-mov byte ptr [ebp - 4], cl\n-jne 0x8\n-mov dword ptr [ebp - 0x14], ecx\n-jmp 0x6ed\n-mov ecx, dword ptr [eax]\n-add eax, dword ptr [ecx + 4]\n-jmp 0x6e0\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xa8], eax\n-jne 0x3c\n-push 0x34c\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x3d\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x6a1\n-mov ecx, edi\n-call LegoCarBuild::LegoCarBuild (FUNCTION)\n-jmp 0x695\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xac], eax\n-jne 0x3c\n-push 0x1d8\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x3e\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x65a\n-mov ecx, edi\n-call Infocenter::Infocenter (FUNCTION)\n-jmp 0x64e\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xb0], eax\n-jne 0xdc\n-push 0x174\n-xor ebx, ebx\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x3f\n-mov edi, eax\n-test edi, edi\n-je 0x8e\n-mov dword ptr [edi + 4], <OFFSET68>\n-lea ecx, [edi + 0x20]\n-call LegoPathActor::LegoPathActor (FUNCTION)\n-mov ecx, 0x40\n-mov al, byte ptr [ebp - 0x11]\n-mov byte ptr [ebp - 4], cl\n-mov dword ptr [ebp - 4], 0x41\n-mov byte ptr [edi + 8], al\n-mov dword ptr [edi + 0xc], ebx\n-mov dword ptr [edi + 0x10], ebx\n-mov dword ptr [edi + 0x14], ebx\n-mov dword ptr [edi], <OFFSET69>\n-mov eax, dword ptr [edi + 4]\n-mov dword ptr [ebp - 4], 0x42\n-mov ecx, dword ptr [eax + 4]\n-mov dword ptr [ecx + edi + 4], <OFFSET70>\n-mov eax, dword ptr [edi + 4]\n-mov byte ptr [ebp - 4], 0x3f\n-mov eax, dword ptr [eax + 4]\n-lea ecx, [eax - 0x1c]\n-mov dword ptr [eax + edi], ecx\n-mov ecx, edi\n-or dword ptr [ebp - 0x1c], 1\n-mov word ptr [edi + 0x18], 0xffff\n-jmp 0x2a\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 8\n-jmp 0x32c3\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 8\n-jmp 0x32f8\n-test byte ptr [ebp - 0x1c], 1\n-je 0xb\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x20\n-jmp LegoPathActor::~LegoPathActor (FUNCTION)\n-ret \n-xor ecx, ecx\n-xor eax, eax\n-test ecx, ecx\n-mov byte ptr [ebp - 4], al\n-je 0x579\n-mov eax, dword ptr [ecx + 4]\n-mov edx, dword ptr [eax + 4]\n-lea ecx, [edx + ecx + 4]\n-mov dword ptr [ebp - 0x14], ecx\n-jmp 0x56a\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xb4], eax\n-jne 0x39\n-push 0x5c\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x43\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x52b\n-mov ecx, edi\n-call MxControlPresenter::MxControlPresenter (FUNCTION)\n-jmp 0x51f\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xb8], eax\n-jne 0x3c\n-push 0x2d0\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x44\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x4e4\n-mov ecx, edi\n-call RegistrationBook::RegistrationBook (FUNCTION)\n-jmp 0x4d8\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xbc], eax\n-jne 0x3c\n-push 0x3e4\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x45\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x49d\n-mov ecx, edi\n-call HistoryBook::HistoryBook (FUNCTION)\n-jmp 0x491\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xc0], eax\n-jne 0x3c\n-push 0xfc\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x46\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x456\n-mov ecx, edi\n-call ElevatorBottom::ElevatorBottom (FUNCTION)\n-jmp 0x44a\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xc4], eax\n-jne 0x3c\n-push 0xfc\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x47\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x40f\n-mov ecx, edi\n-call InfocenterDoor::InfocenterDoor (FUNCTION)\n-jmp 0x403\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xc8], eax\n-jne 0x3c\n-push 0x104\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x48\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x3c8\n-mov ecx, edi\n-call Score::Score (FUNCTION)\n-jmp 0x3bc\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xcc], eax\n-jne 0x68\n-push 0xc\n-mov ebx, 0x49\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov edi, eax\n-mov byte ptr [ebp - 4], bl\n-test edi, edi\n-je 0x39\n-mov ecx, edi\n-call MxCore::MxCore (FUNCTION)\n-mov byte ptr [ebp - 4], 0x4a\n-mov eax, edi\n-mov dword ptr [edi], LegoState (VTABLE)\n-mov byte ptr [ebp - 4], 0x4b\n-mov byte ptr [edi + 8], 1\n-mov dword ptr [edi], ScoreState (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0x360\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxCore::~MxCore (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp LegoState::~LegoState (FUNCTION)\n-xor eax, eax\n-jmp 0x349\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xd0], eax\n-jne 0x3c\n-push 0x12c\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x4c\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x30e\n-mov ecx, edi\n-call Hospital::Hospital (FUNCTION)\n-jmp 0x302\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xd4], eax\n-jne 0x3c\n-push 0x140\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x4d\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x2c7\n-mov ecx, edi\n-call Isle::Isle (FUNCTION)\n-jmp 0x2bb\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xd8], eax\n-jne 0x3c\n-push 0x110\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x4e\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x280\n-mov ecx, edi\n-call Police::Police (FUNCTION)\n-jmp 0x274\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xdc], eax\n-jne 0x3c\n-push 0x128\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x4f\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x239\n-mov ecx, edi\n-call GasStation::GasStation (FUNCTION)\n-jmp 0x22d\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xe0], eax\n-jne 0x3c\n-push 0x1154\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x50\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x1f2\n-mov ecx, edi\n-call <OFFSET85>\n-jmp 0x1e6\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xe4], eax\n-jne 0x6f\n-push 0x10\n-mov ebx, 0x51\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov edi, eax\n-mov byte ptr [ebp - 4], bl\n-test edi, edi\n-je 0x40\n-mov ecx, edi\n-call MxCore::MxCore (FUNCTION)\n-mov byte ptr [ebp - 4], 0x52\n-mov eax, edi\n-mov dword ptr [edi], LegoState (VTABLE)\n-mov byte ptr [ebp - 4], 0x53\n-mov dword ptr [edi], LegoAct2State (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-mov dword ptr [edi + 8], 0\n-mov byte ptr [edi + 0xc], 0\n-jmp 0x183\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxCore::~MxCore (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp LegoState::~LegoState (FUNCTION)\n-xor eax, eax\n-jmp 0x16c\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xe8], eax\n-jne 0x3c\n-push 0x154\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x54\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x131\n-mov ecx, edi\n-call CarRace::CarRace (FUNCTION)\n-jmp 0x125\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0xec], eax\n-je 0xe2\n-cmp dword ptr [esi + 0xf0], eax\n-je 0xd6\n-cmp dword ptr [esi + 0xf4], eax\n-je 0xca\n-cmp dword ptr [esi + 0xf8], eax\n-je 0xbe\n-cmp dword ptr [esi + 0xfc], eax\n-jne 0x39\n-push 0x18\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x55\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0xbd\n-mov ecx, edi\n-call HospitalState::HospitalState (FUNCTION)\n-jmp 0xb1\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x100], eax\n-jne 0x35\n-push 0x94\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x56\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x7a\n-mov ecx, edi\n-call InfocenterState::InfocenterState (FUNCTION)\n-jmp 0x71\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x104], eax\n-jne 0x60\n-push 0x10\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x57\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x3d\n-mov ecx, edi\n-call PoliceState::PoliceState (FUNCTION)\n-jmp 0x34\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-push 0x50\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x58\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0xb\n-mov eax, dword ptr [ebp + 8]\n-mov ecx, edi\n-push eax\n-call LegoVehicleBuildState::LegoVehicleBuildState (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-mov dword ptr [ebp - 0x14], eax\n-cmp dword ptr [ebp - 0x14], 0\n-je 0x22\n-mov dword ptr [ebp - 4], 0xffffffff\n-call <OFFSET92>\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [ebp - 0xc]\n+pop edi\n mov dword ptr fs:[0], ecx\n-pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x108], eax\n-jne 0x39\n-push 0x24\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x59\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n-call GasStationState::GasStationState (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x109d\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x10c], eax\n-jne 0x3c\n-push 0x168\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x5a\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n-call SkateBoard::SkateBoard (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x1056\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x110], eax\n-jne 0x3c\n-push 0x230\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x5b\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n-call Helicopter::Helicopter (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x100f\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x114], eax\n-jne 0x6c\n-push 0xc\n-mov ebx, 0x5c\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x39\n-mov ecx, esi\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x3c], eax\n+jne 0xb5\n+push 0x50\n+mov ebx, 7\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x74\n+mov ecx, eax\n call MxCore::MxCore (FUNCTION)\n-mov byte ptr [ebp - 4], 0x5d\n-mov eax, esi\n-mov dword ptr [esi], LegoState (VTABLE)\n-mov byte ptr [ebp - 4], 0x5e\n-mov dword ptr [esi + 8], 0\n-mov dword ptr [esi], HelicopterState (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0x12\n+mov byte ptr [ebp - 4], 8\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n+call MxCriticalSection::MxCriticalSection (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], 9\n+mov dword ptr [ecx], MxPresenter (VTABLE)\n+call MxPresenter::Init (FUNCTION)\n+mov byte ptr [ebp - 4], 0xa\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], MxMediaPresenter (VTABLE)\n+call MxMediaPresenter::Init (FUNCTION)\n+mov byte ptr [ebp - 4], 0xb\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoTexturePresenter (VTABLE)\n+jmp 0x2a\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n+jmp MxCriticalSection::~MxCriticalSection (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxCore::~MxCore (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp LegoState::~LegoState (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0xf98\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x118], eax\n-jne 0x3c\n-push 0x16c\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x5f\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n-call DuneBuggy::DuneBuggy (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0xf51\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x11c], eax\n-jne 0x3c\n-push 0x9c\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x60\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n-call Pizza::Pizza (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0xf0a\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x120], eax\n-jne 0x3c\n-push 0xb4\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x61\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n-call <OFFSET99>\n-mov byte ptr [ebp - 4], 0\n-jmp 0xec3\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x124], eax\n+jmp MxPresenter::~MxPresenter (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxMediaPresenter::~MxMediaPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0xd4\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x40], eax\n+jne 0x4c\n+push 0x88\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0xc\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call LegoPhonemePresenter::LegoPhonemePresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x128\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x44], eax\n+jne 0x49\n+push 0x70\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0xd\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call LegoFlcTexturePresenter::LegoFlcTexturePresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x179\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x48], eax\n+jne 0x49\n+push 0x50\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0xe\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call LegoEntityPresenter::LegoEntityPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1ca\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x4c], eax\n jne 0x65\n-push 0x1a8\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x14], eax\n-add esp, 4\n-mov edi, eax\n-mov esi, 0\n-mov byte ptr [ebp - 4], 0x62\n-test edi, edi\n-je 0xb\n-push 1\n-mov ecx, edi\n-call <OFFSET100>\n-mov esi, eax\n-xor ebx, ebx\n-mov byte ptr [ebp - 4], bl\n-call GetCurrentWorld (FUNCTION)\n-mov dword ptr [eax + 0x1138], esi\n-test esi, esi\n-jne 0x8\n-mov dword ptr [ebp - 0x14], ebx\n-jmp -0x291\n-mov eax, dword ptr [esi + 4]\n-mov ecx, dword ptr [eax + 4]\n-lea edx, [ecx + esi + 4]\n-mov dword ptr [ebp - 0x14], edx\n-jmp -0x2a3\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x128], eax\n-jne 0x3c\n-push 0x194\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x63\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n-call Act2Brick::Act2Brick (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0xe0c\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x12c], eax\n-jne 0x56\n+push 0x50\n+mov ebx, 0xf\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x24\n+mov ecx, eax\n+call LegoEntityPresenter::LegoEntityPresenter (FUNCTION)\n+mov byte ptr [ebp - 4], 0x10\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoActorPresenter (VTABLE)\n+jmp 0xf\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoEntityPresenter::~LegoEntityPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x237\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x50], eax\n+jne 0x49\n+push 0x54\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x11\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call LegoWorldPresenter::LegoWorldPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x288\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x54], eax\n+jne 0x4c\n+push 0xf8\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x12\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call LegoWorld::LegoWorld (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x2dc\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x58], eax\n+jne 0x49\n+push 0x68\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x13\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call LegoPalettePresenter::LegoPalettePresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x32d\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x5c], eax\n+jne 0x49\n+push 0x54\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x14\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call LegoPathPresenter::LegoPathPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x37e\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x60], eax\n+jne 0x4c\n+push 0xc0\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x15\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call LegoAnimPresenter::LegoAnimPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x3d2\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x64], eax\n+jne 0x68\n+push 0xc0\n+mov ebx, 0x16\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x24\n+mov ecx, eax\n+call LegoAnimPresenter::LegoAnimPresenter (FUNCTION)\n+mov byte ptr [ebp - 4], 0x17\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoLoopingAnimPresenter (VTABLE)\n+jmp 0xf\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoAnimPresenter::~LegoAnimPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x442\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x68], eax\n+jne 0x4c\n+push 0xd8\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x18\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call LegoLocomotionAnimPresenter::LegoLocomotionAnimPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x496\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x6c], eax\n+jne 0x4c\n+push 0xc4\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x19\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call LegoHideAnimPresenter::LegoHideAnimPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x4ea\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x70], eax\n+jne 0xb5\n+push 0x50\n+mov ebx, 0x1a\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x74\n+mov ecx, eax\n+call MxCore::MxCore (FUNCTION)\n+mov byte ptr [ebp - 4], 0x1b\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n+call MxCriticalSection::MxCriticalSection (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], 0x1c\n+mov dword ptr [ecx], MxPresenter (VTABLE)\n+call MxPresenter::Init (FUNCTION)\n+mov byte ptr [ebp - 4], 0x1d\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], MxMediaPresenter (VTABLE)\n+call MxMediaPresenter::Init (FUNCTION)\n+mov byte ptr [ebp - 4], 0x1e\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoPartPresenter (VTABLE)\n+jmp 0x2a\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n+jmp MxCriticalSection::~MxCriticalSection (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxCore::~MxCore (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxPresenter::~MxPresenter (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxMediaPresenter::~MxMediaPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x5ab\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x74], eax\n+jne 0x4c\n+push 0xc0\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x1f\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call LegoCarBuildAnimPresenter::LegoCarBuildAnimPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x5ff\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x78], eax\n+jne 0xd9\n+push 0x68\n+mov ebx, 0x20\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x94\n+mov ecx, eax\n+call MxCore::MxCore (FUNCTION)\n+mov byte ptr [ebp - 4], 0x21\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, ebx\n+call MxCriticalSection::MxCriticalSection (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], 0x22\n+mov dword ptr [ecx], MxPresenter (VTABLE)\n+call MxPresenter::Init (FUNCTION)\n+mov byte ptr [ebp - 4], 0x23\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], MxMediaPresenter (VTABLE)\n+call MxMediaPresenter::Init (FUNCTION)\n+mov byte ptr [ebp - 4], 0x24\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x54\n+call MxString::MxString (FUNCTION)\n+mov byte ptr [ebp - 4], 0x25\n+mov ecx, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], ecx\n+mov dword ptr [ecx], LegoActionControlPresenter (VTABLE)\n+mov dword ptr [ecx + 0x50], 0\n+jmp 0x35\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x54\n+jmp MxString::~MxString (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n+jmp MxCriticalSection::~MxCriticalSection (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxCore::~MxCore (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxPresenter::~MxPresenter (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxMediaPresenter::~MxMediaPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x6e4\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x7c], eax\n+jne 0xbf\n+push 0x64\n+mov ebx, 0x26\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x7e\n+mov ecx, eax\n+call MxCore::MxCore (FUNCTION)\n+mov byte ptr [ebp - 4], 0x27\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n+call MxCriticalSection::MxCriticalSection (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], 0x28\n+mov dword ptr [ecx], MxPresenter (VTABLE)\n+call MxPresenter::Init (FUNCTION)\n+mov byte ptr [ebp - 4], 0x29\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], MxMediaPresenter (VTABLE)\n+call MxMediaPresenter::Init (FUNCTION)\n+mov byte ptr [ebp - 4], 0x2a\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], MxVideoPresenter (VTABLE)\n+call MxVideoPresenter::Init (FUNCTION)\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x2a\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n+jmp MxCriticalSection::~MxCriticalSection (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxCore::~MxCore (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxPresenter::~MxPresenter (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxMediaPresenter::~MxMediaPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x7af\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x80], eax\n+jne 0x4c\n+push 0x90\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x2b\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call LegoLoadCacheSoundPresenter::LegoLoadCacheSoundPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x806\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x84], eax\n+jne 0x100\n+push 0x6c\n+mov ebx, 0x2c\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0xbb\n+mov ecx, eax\n+call MxCore::MxCore (FUNCTION)\n+mov byte ptr [ebp - 4], 0x2d\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n+call MxCriticalSection::MxCriticalSection (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], 0x2e\n+mov dword ptr [ecx], MxPresenter (VTABLE)\n+call MxPresenter::Init (FUNCTION)\n+mov byte ptr [ebp - 4], 0x2f\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], MxMediaPresenter (VTABLE)\n+call MxMediaPresenter::Init (FUNCTION)\n+mov byte ptr [ebp - 4], 0x30\n+mov byte ptr [ebp - 4], 0x31\n+mov byte ptr [ebp - 4], 0x32\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], MxAudioPresenter (VTABLE)\n+mov dword ptr [eax + 0x50], 0x64\n+mov dword ptr [eax], MxSoundPresenter (VTABLE)\n+mov dword ptr [eax], MxWavePresenter (VTABLE)\n+call MxWavePresenter::Init (FUNCTION)\n+mov byte ptr [ebp - 4], 0x33\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], Lego3DWavePresenter (VTABLE)\n+jmp 0x42\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n+jmp MxCriticalSection::~MxCriticalSection (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxCore::~MxCore (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxPresenter::~MxPresenter (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxMediaPresenter::~MxMediaPresenter (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxAudioPresenter::~MxAudioPresenter (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxSoundPresenter::~MxSoundPresenter (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxWavePresenter::~MxWavePresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x915\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x88], eax\n+jne 0x49\n+push 0x78\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x34\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call LegoActor::LegoActor (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x969\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x8c], eax\n+jne 0x4c\n push 0x154\n-mov ebx, 0x64\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x20\n-mov ecx, esi\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x35\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call LegoPathActor::LegoPathActor (FUNCTION)\n-mov byte ptr [ebp - 4], 0x65\n-mov eax, esi\n-mov dword ptr [esi], <OFFSET103>\n-mov byte ptr [ebp - 4], bl\n-jmp 0xa\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x9c0\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x90], eax\n+jne 0x9e\n+push 0x154\n+mov ebx, 0x36\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x5a\n+mov ecx, eax\n+call LegoPathActor::LegoPathActor (FUNCTION)\n+mov byte ptr [ebp - 4], 0x37\n+mov byte ptr [ebp - 4], 0x38\n+mov byte ptr [ebp - 4], 0x39\n+mov byte ptr [ebp - 4], 0x3a\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoAnimActor (VTABLE)\n+mov dword ptr [eax], LegoRaceActor (VTABLE)\n+mov dword ptr [eax], LegoCarRaceActor (VTABLE)\n+mov dword ptr [eax], LegoRaceCar (VTABLE)\n+jmp 0x27\n mov ecx, dword ptr [ebp - 0x10]\n jmp LegoPathActor::~LegoPathActor (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0xdab\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x130], eax\n-jne 0xdb\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoAnimActor::~LegoAnimActor (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoRaceActor::~LegoRaceActor (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoCarRaceActor::~LegoCarRaceActor (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0xa6d\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x94], eax\n+jne 0xb0\n+push 0x154\n+mov ebx, 0x3b\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x6c\n+mov ecx, eax\n+call LegoPathActor::LegoPathActor (FUNCTION)\n+mov byte ptr [ebp - 4], 0x3c\n+mov byte ptr [ebp - 4], 0x3d\n+mov byte ptr [ebp - 4], 0x3e\n+mov byte ptr [ebp - 4], 0x3f\n+mov byte ptr [ebp - 4], 0x40\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoAnimActor (VTABLE)\n+mov dword ptr [eax], LegoRaceActor (VTABLE)\n+mov dword ptr [eax], LegoCarRaceActor (VTABLE)\n+mov dword ptr [eax], LegoJetskiRaceActor (VTABLE)\n+mov dword ptr [eax], LegoJetski (VTABLE)\n+jmp 0x2f\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoPathActor::~LegoPathActor (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoAnimActor::~LegoAnimActor (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoRaceActor::~LegoRaceActor (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoCarRaceActor::~LegoCarRaceActor (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoJetskiRaceActor::~LegoJetskiRaceActor (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0xb2c\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x98], eax\n+jne 0xdc\n push 0x68\n-mov ebx, 0x66\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0xa4\n-mov ecx, esi\n+mov ebx, 0x41\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x97\n+mov ecx, eax\n call MxCore::MxCore (FUNCTION)\n-mov byte ptr [ebp - 4], 0x67\n-mov dword ptr [esi + 0xc], 0\n-mov byte ptr [ebp - 4], 0x68\n-lea eax, [esi + 0x1c]\n-mov dword ptr [esi], MxEntity (VTABLE)\n-lea edi, [esi + 0x28]\n-lea ecx, [esi + 0x30]\n-mov dword ptr [esi + 8], 0xffffffff\n-mov byte ptr [ebp - 4], 0x69\n-mov dword ptr [esi + 0x14], Vector2 (VTABLE)\n-push ecx\n-mov dword ptr [esi + 0x18], eax\n-mov dword ptr [esi + 0x14], Mx3DPointFloat (VTABLE)\n-mov ecx, edi\n-call Vector2::Vector2 (FUNCTION)\n-lea eax, [esi + 0x44]\n-mov dword ptr [edi], Mx3DPointFloat (VTABLE)\n-lea edi, [esi + 0x3c]\n-push eax\n-mov ecx, edi\n-call Vector2::Vector2 (FUNCTION)\n-mov ecx, esi\n-mov dword ptr [edi], Mx3DPointFloat (VTABLE)\n-mov dword ptr [esi], LegoEntity (VTABLE)\n+mov byte ptr [ebp - 4], 0x42\n+mov byte ptr [ebp - 4], 0x43\n+mov ecx, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], 0x44\n+mov dword ptr [ecx + 0xc], 0\n+lea eax, [ecx + 0x1c]\n+mov dword ptr [ecx], MxEntity (VTABLE)\n+mov dword ptr [ecx + 8], 0xffffffff\n+mov dword ptr [ecx + 0x14], Vector2 (VTABLE)\n+mov dword ptr [ecx + 0x18], eax\n+lea eax, [ecx + 0x30]\n+mov dword ptr [ecx + 0x14], Mx3DPointFloat (VTABLE)\n+mov dword ptr [ecx + 0x28], Vector2 (VTABLE)\n+mov dword ptr [ecx + 0x2c], eax\n+lea eax, [ecx + 0x44]\n+mov dword ptr [ecx + 0x28], Mx3DPointFloat (VTABLE)\n+mov dword ptr [ecx + 0x3c], Vector2 (VTABLE)\n+mov dword ptr [ecx + 0x40], eax\n+mov dword ptr [ecx + 0x3c], Mx3DPointFloat (VTABLE)\n+mov dword ptr [ecx], LegoEntity (VTABLE)\n call LegoEntity::Init (FUNCTION)\n-mov byte ptr [ebp - 4], 0x6a\n-mov eax, esi\n-mov dword ptr [esi], Act2PoliceStation (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0x25\n+mov ecx, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], ecx\n+jmp 0x22\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0xc\n jmp MxAtomId::~MxAtomId (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxCore::~MxCore (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxEntity::~MxEntity (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0xc17\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x9c], eax\n+jne 0x8c\n+push 0x154\n+mov ebx, 0x45\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x48\n+mov ecx, eax\n+call LegoPathActor::LegoPathActor (FUNCTION)\n+mov byte ptr [ebp - 4], 0x46\n+mov byte ptr [ebp - 4], 0x47\n+mov byte ptr [ebp - 4], 0x48\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoAnimActor (VTABLE)\n+mov dword ptr [eax], LegoRaceActor (VTABLE)\n+mov dword ptr [eax], LegoCarRaceActor (VTABLE)\n+jmp 0x1f\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoPathActor::~LegoPathActor (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoAnimActor::~LegoAnimActor (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoRaceActor::~LegoRaceActor (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0xcb2\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xa0], eax\n+jne 0x9e\n+push 0x154\n+mov ebx, 0x49\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x5a\n+mov ecx, eax\n+call LegoPathActor::LegoPathActor (FUNCTION)\n+mov byte ptr [ebp - 4], 0x4a\n+mov byte ptr [ebp - 4], 0x4b\n+mov byte ptr [ebp - 4], 0x4c\n+mov byte ptr [ebp - 4], 0x4d\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoAnimActor (VTABLE)\n+mov dword ptr [eax], LegoRaceActor (VTABLE)\n+mov dword ptr [eax], LegoCarRaceActor (VTABLE)\n+mov dword ptr [eax], LegoJetskiRaceActor (VTABLE)\n+jmp 0x27\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoPathActor::~LegoPathActor (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoAnimActor::~LegoAnimActor (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoRaceActor::~LegoRaceActor (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoCarRaceActor::~LegoCarRaceActor (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0xd5f\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xa4], eax\n+jne 0x4c\n+push 0xf8\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x4e\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call LegoCarBuild::LegoCarBuild (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0xdb6\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xa8], eax\n+jne 0x4c\n+push 0x1d8\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x4f\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call Infocenter::Infocenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0xe0d\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xac], eax\n+jne 0x68\n+push 0x154\n+mov ebx, 0x50\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x24\n+mov ecx, eax\n+call LegoPathActor::LegoPathActor (FUNCTION)\n+mov byte ptr [ebp - 4], 0x51\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoAnimActor (VTABLE)\n+jmp 0xf\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoPathActor::~LegoPathActor (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0xe80\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xb0], eax\n+jne 0x49\n+push 0x5c\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x52\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call MxControlPresenter::MxControlPresenter (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0xed4\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xb4], eax\n+jne 0x4c\n+push 0xf8\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x53\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call RegistrationBook::RegistrationBook (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0xf2b\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xb8], eax\n+jne 0x4c\n+push 0xf8\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x54\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call HistoryBook::HistoryBook (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0xf82\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xbc], eax\n+jne 0x4c\n+push 0xfc\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x55\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call ElevatorBottom::ElevatorBottom (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0xfd9\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xc0], eax\n+jne 0x4c\n+push 0xfc\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x56\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call InfocenterDoor::InfocenterDoor (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1030\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xc4], eax\n+jne 0x4c\n+push 0x104\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x57\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call Score::Score (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1087\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xc8], eax\n+jne 0x77\n+push 0xc\n+mov ebx, 0x58\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x36\n+mov ecx, eax\n+call MxCore::MxCore (FUNCTION)\n+mov byte ptr [ebp - 4], 0x59\n+mov byte ptr [ebp - 4], 0x5a\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoState (VTABLE)\n+mov dword ptr [eax], ScoreState (VTABLE)\n+jmp 0x17\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxCore::~MxCore (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoState::~LegoState (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1109\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xcc], eax\n+jne 0x4c\n+push 0x12c\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x5b\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call Hospital::Hospital (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1160\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xd0], eax\n+jne 0x4c\n+push 0x140\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x5c\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call Isle::Isle (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x11b7\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xd4], eax\n+jne 0x4c\n+push 0x110\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x5d\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call Police::Police (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x120e\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xd8], eax\n+jne 0x4c\n+push 0x128\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x5e\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call GasStation::GasStation (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1265\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xdc], eax\n+jne 0x68\n+push 0xf8\n+mov ebx, 0x5f\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x24\n+mov ecx, eax\n+call LegoWorld::LegoWorld (FUNCTION)\n+mov byte ptr [ebp - 4], 0x60\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoAct2 (VTABLE)\n+jmp 0xf\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoWorld::~LegoWorld (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x12d8\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xe0], eax\n+jne 0x77\n+push 8\n+mov ebx, 0x61\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x36\n+mov ecx, eax\n+call MxCore::MxCore (FUNCTION)\n+mov byte ptr [ebp - 4], 0x62\n+mov byte ptr [ebp - 4], 0x63\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoState (VTABLE)\n+mov dword ptr [eax], LegoAct2State (VTABLE)\n+jmp 0x17\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxCore::~MxCore (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoState::~LegoState (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x135a\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xe4], eax\n+jne 0x49\n+push 0x18\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x64\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call HospitalState::HospitalState (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x13ae\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xe8], eax\n+jne 0x4c\n+push 0x94\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x65\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call InfocenterState::InfocenterState (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1405\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xec], eax\n+jne 0x49\n+push 0x10\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x66\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call PoliceState::PoliceState (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1459\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xf0], eax\n+jne 0x49\n+push 0x24\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x67\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call GasStationState::GasStationState (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x14ad\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xf4], eax\n+jne 0x4c\n+push 0x168\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x68\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call SkateBoard::SkateBoard (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1504\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xf8], eax\n+jne 0x4c\n+push 0x230\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x69\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call Helicopter::Helicopter (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x155b\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0xfc], eax\n+jne 0x77\n+push 0xc\n+mov ebx, 0x6a\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x36\n+mov ecx, eax\n+call MxCore::MxCore (FUNCTION)\n+mov byte ptr [ebp - 4], 0x6b\n+mov byte ptr [ebp - 4], 0x6c\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoState (VTABLE)\n+mov dword ptr [eax], HelicopterState (VTABLE)\n+jmp 0x17\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxCore::~MxCore (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoState::~LegoState (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x15dd\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x100], eax\n+jne 0x4c\n+push 0x16c\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x6d\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call DuneBuggy::DuneBuggy (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1634\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x104], eax\n+jne 0x4c\n+push 0x9c\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x6e\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n+call Pizza::Pizza (FUNCTION)\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x168b\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x108], eax\n+jne 0x7a\n+push 0xb0\n+mov ebx, 0x6f\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x36\n+mov ecx, eax\n+call MxCore::MxCore (FUNCTION)\n+mov byte ptr [ebp - 4], 0x70\n+mov byte ptr [ebp - 4], 0x71\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoState (VTABLE)\n+mov dword ptr [eax], PizzaMissionState (VTABLE)\n+jmp 0x17\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxCore::~MxCore (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoState::~LegoState (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1710\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x10c], eax\n+jne 0xf7\n+push 0x68\n+mov ebx, 0x72\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0xb2\n+mov ecx, eax\n+call MxCore::MxCore (FUNCTION)\n+mov byte ptr [ebp - 4], 0x73\n+mov byte ptr [ebp - 4], 0x74\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], 0x75\n+mov dword ptr [eax + 0xc], 0\n+lea ecx, [eax + 0x1c]\n+lea esi, [eax + 0x28]\n+mov dword ptr [eax], MxEntity (VTABLE)\n+add eax, 0x30\n+push eax\n+mov dword ptr [eax - 0x28], 0xffffffff\n+mov dword ptr [eax - 0x1c], Vector2 (VTABLE)\n+mov dword ptr [eax - 0x18], ecx\n+mov ecx, esi\n+mov dword ptr [eax - 0x1c], Mx3DPointFloat (VTABLE)\n+call Vector2::Vector2 (FUNCTION)\n+mov eax, dword ptr [ebp - 0x10]\n+mov dword ptr [esi], Mx3DPointFloat (VTABLE)\n+mov esi, dword ptr [ebp - 0x10]\n+add eax, 0x44\n+add esi, 0x3c\n+push eax\n+mov ecx, esi\n+call Vector2::Vector2 (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+mov dword ptr [esi], Mx3DPointFloat (VTABLE)\n+mov dword ptr [ecx], LegoEntity (VTABLE)\n+call LegoEntity::Init (FUNCTION)\n+mov byte ptr [ebp - 4], 0x76\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], Act2PoliceStation (VTABLE)\n+jmp 0x2a\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xc\n+jmp MxAtomId::~MxAtomId (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxCore::~MxCore (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxEntity::~MxEntity (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp LegoEntity::~LegoEntity (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0xcc1\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x134], eax\n-jne 0x3c\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1816\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x110], eax\n+jne 0x4c\n push 0x4274\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x6b\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x77\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call Act3::Act3 (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0xc7a\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x138], eax\n-jne 0x6c\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x186d\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x114], eax\n+jne 0x7e\n push 0xc\n-mov ebx, 0x6c\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x39\n-mov ecx, esi\n+mov ebx, 0x78\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x3d\n+mov ecx, eax\n call MxCore::MxCore (FUNCTION)\n-mov byte ptr [ebp - 4], 0x6d\n-mov eax, esi\n-mov dword ptr [esi], LegoState (VTABLE)\n-mov byte ptr [ebp - 4], 0x6e\n-mov dword ptr [esi], Act3State (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-mov dword ptr [esi + 8], 0\n-jmp 0x12\n+mov byte ptr [ebp - 4], 0x79\n+mov byte ptr [ebp - 4], 0x7a\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoState (VTABLE)\n+mov dword ptr [eax], Act3State (VTABLE)\n+mov dword ptr [eax + 8], 0\n+jmp 0x17\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxCore::~MxCore (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp LegoState::~LegoState (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0xc03\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x13c], eax\n-jne 0xb0\n-push 0x1f8\n-mov ebx, 0x6f\n-xor edi, edi\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x78\n-mov ecx, esi\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x18f6\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x118], eax\n+jne 0x68\n+push 0x154\n+mov ebx, 0x7b\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x24\n+mov ecx, eax\n call LegoPathActor::LegoPathActor (FUNCTION)\n-mov byte ptr [ebp - 4], 0x70\n-lea eax, [esi + 0x16c]\n-mov dword ptr [esi + 0x154], edi\n-mov dword ptr [esi + 0x15c], edi\n-mov dword ptr [esi + 0x160], edi\n-mov dword ptr [esi + 0x164], Matrix4 (VTABLE)\n-mov dword ptr [esi + 0x168], eax\n-lea eax, [esi + 0x1b4]\n-mov dword ptr [esi + 0x164], MxMatrix (VTABLE)\n-mov dword ptr [esi + 0x1ac], Matrix4 (VTABLE)\n-mov dword ptr [esi + 0x1b0], eax\n-mov byte ptr [ebp - 4], bl\n-mov dword ptr [esi + 0x1ac], MxMatrix (VTABLE)\n-mov eax, esi\n-mov dword ptr [esi + 0x1f4], edi\n-mov dword ptr [esi], Doors (VTABLE)\n-jmp 0xa\n+mov byte ptr [ebp - 4], 0x7c\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], Doors (VTABLE)\n+jmp 0xf\n mov ecx, dword ptr [ebp - 0x10]\n jmp LegoPathActor::~LegoPathActor (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0xb44\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x140], eax\n-jne 0x39\n-push 0x74\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x71\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1969\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x11c], eax\n+jne 0x49\n+push 0x4c\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x7d\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call LegoAnimMMPresenter::LegoAnimMMPresenter (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0xb00\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x144], eax\n-jne 0x3c\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x19bd\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x120], eax\n+jne 0x4c\n push 0x164\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x72\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x7e\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call RaceCar::RaceCar (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0xab9\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x148], eax\n-jne 0x3c\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1a14\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x124], eax\n+jne 0x4c\n push 0x164\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x73\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x7f\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call Jetski::Jetski (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0xa72\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x14c], eax\n-jne 0x3c\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1a6b\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x128], eax\n+jne 0x4c\n push 0x164\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x74\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x80\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call Bike::Bike (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0xa2b\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x150], eax\n-jne 0x3c\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1ac2\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x12c], eax\n+jne 0x4c\n push 0x16c\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x75\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x81\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call Motocycle::Motocycle (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x9e4\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x154], eax\n-jne 0x3c\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1b19\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x130], eax\n+jne 0x4c\n push 0x184\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x76\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x82\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call Ambulance::Ambulance (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x99d\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x158], eax\n-jne 0x39\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1b70\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x134], eax\n+jne 0x49\n push 0x24\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x77\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x83\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call AmbulanceMissionState::AmbulanceMissionState (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x959\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x15c], eax\n-jne 0x3c\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1bc4\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x138], eax\n+jne 0x4c\n push 0x180\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x78\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x84\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call TowTrack::TowTrack (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x912\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x160], eax\n-jne 0x39\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1c1b\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x13c], eax\n+jne 0x49\n push 0x28\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x79\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x85\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call TowTrackMissionState::TowTrackMissionState (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x8ce\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x164], eax\n-jne 0x55\n-push 0x188\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x14], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x7a\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x9\n-push 1\n-mov ecx, esi\n-call <OFFSET121>\n-xor ecx, ecx\n-test eax, eax\n-mov byte ptr [ebp - 4], cl\n-jne 0x8\n-mov dword ptr [ebp - 0x14], ecx\n-jmp -0x879\n-mov ecx, dword ptr [eax + 4]\n-mov edx, dword ptr [ecx + 4]\n-lea eax, [edx + eax + 4]\n-jmp 0x86e\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x168], eax\n-jne 0x55\n-push 0x1b4\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x14], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x7b\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x9\n-push 1\n-mov ecx, esi\n-call <OFFSET122>\n-xor ecx, ecx\n-test eax, eax\n-mov byte ptr [ebp - 4], cl\n-jne 0x8\n-mov dword ptr [ebp - 0x14], ecx\n-jmp -0x8d9\n-mov ecx, dword ptr [eax + 4]\n-mov edx, dword ptr [ecx + 4]\n-lea eax, [edx + eax + 4]\n-jmp 0x80e\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x16c], eax\n-jne 0x55\n-push 0x1a8\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x14], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x7c\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x9\n-push 1\n-mov ecx, esi\n-call <OFFSET123>\n-xor ecx, ecx\n-test eax, eax\n-mov byte ptr [ebp - 4], cl\n-jne 0x8\n-mov dword ptr [ebp - 0x14], ecx\n-jmp -0x939\n-mov ecx, dword ptr [eax + 4]\n-mov edx, dword ptr [ecx + 4]\n-lea eax, [edx + eax + 4]\n-jmp 0x7ae\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x174], eax\n-jne 0x55\n-push 0x178\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x14], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x7d\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x9\n-push 1\n-mov ecx, esi\n-call <OFFSET124>\n-xor ecx, ecx\n-test eax, eax\n-mov byte ptr [ebp - 4], cl\n-jne 0x8\n-mov dword ptr [ebp - 0x14], ecx\n-jmp -0x999\n-mov ecx, dword ptr [eax + 4]\n-mov edx, dword ptr [ecx + 4]\n-lea eax, [edx + eax + 4]\n-jmp 0x74e\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x170], eax\n-jne 0x55\n-push 0x174\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x14], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x7e\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x9\n-push 1\n-mov ecx, esi\n-call <OFFSET125>\n-xor ecx, ecx\n-test eax, eax\n-mov byte ptr [ebp - 4], cl\n-jne 0x8\n-mov dword ptr [ebp - 0x14], ecx\n-jmp -0x9f9\n-mov ecx, dword ptr [eax + 4]\n-mov edx, dword ptr [ecx + 4]\n-lea eax, [edx + eax + 4]\n-jmp 0x6ee\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x178], eax\n-jne 0x53\n-push 0x2c\n-mov ebx, 0x7f\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x20\n-mov ecx, esi\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1c6f\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x140], eax\n+jne 0x7a\n+push 0x154\n+mov ebx, 0x86\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x36\n+mov ecx, eax\n+call LegoPathActor::LegoPathActor (FUNCTION)\n+mov byte ptr [ebp - 4], 0x87\n+mov byte ptr [ebp - 4], 0x88\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoAnimActor (VTABLE)\n+mov dword ptr [eax], Act3Shark (VTABLE)\n+jmp 0x17\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoPathActor::~LegoPathActor (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoAnimActor::~LegoAnimActor (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1cf4\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x144], eax\n+jne 0x7a\n+push 0x154\n+mov ebx, 0x89\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x36\n+mov ecx, eax\n+call LegoPathActor::LegoPathActor (FUNCTION)\n+mov byte ptr [ebp - 4], 0x8a\n+mov byte ptr [ebp - 4], 0x8b\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoAnimActor (VTABLE)\n+mov dword ptr [eax], BumpBouy (VTABLE)\n+jmp 0x17\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoPathActor::~LegoPathActor (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoAnimActor::~LegoAnimActor (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1d79\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x148], eax\n+jne 0x65\n+push 8\n+mov ebx, 0x8c\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x24\n+mov ecx, eax\n+call MxCore::MxCore (FUNCTION)\n+mov byte ptr [ebp - 4], 0x8d\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], Act3Actor (VTABLE)\n+jmp 0xf\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxCore::~MxCore (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1de9\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x14c], eax\n+jne 0x65\n+push 0x30\n+mov ebx, 0x8e\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x24\n+mov ecx, eax\n call RaceState::RaceState (FUNCTION)\n-mov byte ptr [ebp - 4], 0x80\n-mov eax, esi\n-mov dword ptr [esi], JetskiRaceState (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0xa\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x3f8a\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0x690\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x17c], eax\n-jne 0x53\n-push 0x2c\n-mov ebx, 0x81\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x20\n-mov ecx, esi\n+mov byte ptr [ebp - 4], 0x8f\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], JetskiRaceState (VTABLE)\n+jmp 0xf\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp RaceState::~RaceState (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1e59\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x150], eax\n+jne 0x65\n+push 0x30\n+mov ebx, 0x90\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x24\n+mov ecx, eax\n call RaceState::RaceState (FUNCTION)\n-mov byte ptr [ebp - 4], 0x82\n-mov eax, esi\n-mov dword ptr [esi], CarRaceState (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0xa\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x3f2c\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0x632\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x180], eax\n-jne 0x3c\n-push 0x26c\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x83\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+mov byte ptr [ebp - 4], 0x91\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], CarRaceState (VTABLE)\n+jmp 0xf\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp RaceState::~RaceState (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1ec9\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x154], eax\n+jne 0x49\n+push 0x24\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x92\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call Act1State::Act1State (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x5eb\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x184], eax\n-jne 0x6b\n-mov ebx, 0x84\n-push ebx\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x39\n-mov ecx, esi\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1f1d\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x158], eax\n+jne 0x77\n+push 0x78\n+mov ebx, 0x93\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x36\n+mov ecx, eax\n call LegoActor::LegoActor (FUNCTION)\n-mov byte ptr [ebp - 4], 0x85\n-mov eax, esi\n-mov dword ptr [esi], IsleActor (VTABLE)\n-mov byte ptr [ebp - 4], 0x86\n-mov dword ptr [esi + 0x7c], 0\n-mov dword ptr [esi], Pizzeria (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0x12\n+mov byte ptr [ebp - 4], 0x94\n+mov byte ptr [ebp - 4], 0x95\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], IsleActor (VTABLE)\n+mov dword ptr [eax], Pizzeria (VTABLE)\n+jmp 0x17\n mov ecx, dword ptr [ebp - 0x10]\n jmp LegoActor::~LegoActor (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp IsleActor::~IsleActor (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0x575\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x188], eax\n-jne 0x39\n-push 0x58\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x87\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1f9f\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x15c], eax\n+jne 0x49\n+push 8\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0x96\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call PizzeriaState::PizzeriaState (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x531\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x18c], eax\n-jne 0x53\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x1ff3\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x160], eax\n+jne 0x65\n push 0x68\n-mov ebx, 0x88\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x20\n-mov ecx, esi\n+mov ebx, 0x97\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x24\n+mov ecx, eax\n call BuildingEntity::BuildingEntity (FUNCTION)\n-mov byte ptr [ebp - 4], 0x89\n-mov eax, esi\n-mov dword ptr [esi], InfoCenterEntity (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0xa\n+mov byte ptr [ebp - 4], 0x98\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], InfoCenterEntity (VTABLE)\n+jmp 0xf\n mov ecx, dword ptr [ebp - 0x10]\n jmp BuildingEntity::~BuildingEntity (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0x4d3\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x190], eax\n-jne 0x53\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x2063\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x164], eax\n+jne 0x65\n push 0x68\n-mov ebx, 0x8a\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x20\n-mov ecx, esi\n+mov ebx, 0x99\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x24\n+mov ecx, eax\n call BuildingEntity::BuildingEntity (FUNCTION)\n-mov byte ptr [ebp - 4], 0x8b\n-mov eax, esi\n-mov dword ptr [esi], HospitalEntity (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0xa\n+mov byte ptr [ebp - 4], 0x9a\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], HospitalEntity (VTABLE)\n+jmp 0xf\n mov ecx, dword ptr [ebp - 0x10]\n jmp BuildingEntity::~BuildingEntity (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0x475\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x194], eax\n-jne 0x53\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x20d3\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x168], eax\n+jne 0x65\n push 0x68\n-mov ebx, 0x8c\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x20\n-mov ecx, esi\n+mov ebx, 0x9b\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x24\n+mov ecx, eax\n call BuildingEntity::BuildingEntity (FUNCTION)\n-mov byte ptr [ebp - 4], 0x8d\n-mov eax, esi\n-mov dword ptr [esi], GasStationEntity (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0xa\n+mov byte ptr [ebp - 4], 0x9c\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], GasStationEntity (VTABLE)\n+jmp 0xf\n mov ecx, dword ptr [ebp - 0x10]\n jmp BuildingEntity::~BuildingEntity (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0x417\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x198], eax\n-jne 0x53\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x2143\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x16c], eax\n+jne 0x65\n push 0x68\n-mov ebx, 0x8e\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x20\n-mov ecx, esi\n+mov ebx, 0x9d\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x24\n+mov ecx, eax\n call BuildingEntity::BuildingEntity (FUNCTION)\n-mov byte ptr [ebp - 4], 0x8f\n-mov eax, esi\n-mov dword ptr [esi], PoliceEntity (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0xa\n+mov byte ptr [ebp - 4], 0x9e\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], PoliceEntity (VTABLE)\n+jmp 0xf\n mov ecx, dword ptr [ebp - 0x10]\n jmp BuildingEntity::~BuildingEntity (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0x3b9\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x19c], eax\n-jne 0x53\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x21b3\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x170], eax\n+jne 0x65\n push 0x68\n-mov ebx, 0x90\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x20\n-mov ecx, esi\n+mov ebx, 0x9f\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x24\n+mov ecx, eax\n call BuildingEntity::BuildingEntity (FUNCTION)\n-mov byte ptr [ebp - 4], 0x91\n-mov eax, esi\n-mov dword ptr [esi], BeachHouseEntity (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0xa\n+mov byte ptr [ebp - 4], 0xa0\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], BeachHouseEntity (VTABLE)\n+jmp 0xf\n mov ecx, dword ptr [ebp - 0x10]\n jmp BuildingEntity::~BuildingEntity (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0x35b\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x1a4], eax\n-jne 0x39\n-push 0x6c\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x92\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x2223\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x174], eax\n+jne 0x65\n+push 0x68\n+mov ebx, 0xa1\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x24\n+mov ecx, eax\n+call BuildingEntity::BuildingEntity (FUNCTION)\n+mov byte ptr [ebp - 4], 0xa2\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], RaceStandsEntity (VTABLE)\n+jmp 0xf\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp BuildingEntity::~BuildingEntity (FUNCTION)\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x2293\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x178], eax\n+jne 0x49\n+push 0x68\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0xa3\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call JukeBoxEntity::JukeBoxEntity (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x317\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x1a0], eax\n-jne 0x53\n-push 0x68\n-mov ebx, 0x93\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x20\n-mov ecx, esi\n-call BuildingEntity::BuildingEntity (FUNCTION)\n-mov byte ptr [ebp - 4], 0x94\n-mov eax, esi\n-mov dword ptr [esi], RaceStandsEntity (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-jmp 0xa\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp BuildingEntity::~BuildingEntity (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0x2b9\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x1a8], eax\n-jne 0x39\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x22e7\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x17c], eax\n+jne 0x49\n push 0x30\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x95\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0xa4\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call RadioState::RadioState (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x275\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x1ac], eax\n-jne 0x53\n-push 0x68\n-mov ebx, 0x96\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x20\n-mov ecx, esi\n-call BuildingEntity::BuildingEntity (FUNCTION)\n-mov byte ptr [ebp - 4], 0x97\n-mov eax, esi\n-mov dword ptr [esi], <OFFSET145>\n-mov byte ptr [ebp - 4], bl\n-jmp 0xa\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp BuildingEntity::~BuildingEntity (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0x217\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x1b0], eax\n-jne 0x53\n-push 0x68\n-mov ebx, 0x98\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x20\n-mov ecx, esi\n-call BuildingEntity::BuildingEntity (FUNCTION)\n-mov byte ptr [ebp - 4], 0x99\n-mov eax, esi\n-mov dword ptr [esi], <OFFSET146>\n-mov byte ptr [ebp - 4], bl\n-jmp 0xa\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp BuildingEntity::~BuildingEntity (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0x1b9\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x1b4], eax\n-jne 0x39\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x233b\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x180], eax\n+jne 0x49\n push 0x50\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x9a\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0xa5\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call MxCompositeMediaPresenter::MxCompositeMediaPresenter (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x175\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x1b8], eax\n-jne 0x3c\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x238f\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x184], eax\n+jne 0x4c\n push 0x104\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x9b\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0xa6\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call JukeBox::JukeBox (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x12e\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x1bc], eax\n-jne 0x6d\n-push 0x10\n-mov ebx, 0x9c\n-xor edi, edi\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x38\n-mov ecx, esi\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x23e6\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x188], eax\n+jne 0x77\n+push 8\n+mov ebx, 0xa7\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x36\n+mov ecx, eax\n call MxCore::MxCore (FUNCTION)\n-mov byte ptr [ebp - 4], 0x9d\n-mov eax, esi\n-mov dword ptr [esi], LegoState (VTABLE)\n-mov byte ptr [ebp - 4], 0x9e\n-mov dword ptr [esi + 8], edi\n-mov byte ptr [ebp - 4], bl\n-mov dword ptr [esi + 0xc], edi\n-mov dword ptr [esi], JukeBoxState (VTABLE)\n-jmp 0x12\n+mov byte ptr [ebp - 4], 0xa8\n+mov byte ptr [ebp - 4], 0xa9\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], LegoState (VTABLE)\n+mov dword ptr [eax], JukeBoxState (VTABLE)\n+jmp 0x17\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxCore::~MxCore (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp LegoState::~LegoState (FUNCTION)\n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-jmp 0xb6\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x1c0], eax\n-jne 0x52\n-push 0x178\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x14], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x9f\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x9\n-push 1\n-mov ecx, esi\n-call <OFFSET150>\n-xor ecx, ecx\n-test eax, eax\n-mov byte ptr [ebp - 4], cl\n-jne 0x8\n-mov dword ptr [ebp - 0x14], ecx\n-jmp -0x1091\n-mov ecx, dword ptr [eax + 4]\n-mov edx, dword ptr [ecx + 4]\n-lea eax, [edx + eax + 4]\n-jmp 0x59\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x1c4], eax\n-jne 0x36\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x2468\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+cmp dword ptr [edi + 0x18c], eax\n+jne 0x49\n push 0x1c\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0xa0\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0x7\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 0xaa\n+test eax, eax\n+je 0xc\n+mov ecx, eax\n call AnimState::AnimState (FUNCTION)\n-mov byte ptr [ebp - 4], 0\n-jmp 0x18\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp + 8]\n-mov ecx, esi\n-push eax\n+mov dword ptr [ebp - 0x14], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp -0x24bc\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+push esi\n+mov ecx, edi\n call MxObjectFactory::Create (FUNCTION)\n-mov dword ptr [ebp - 0x14], eax\n-jmp -0x10fe\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-mov eax, <OFFSET153>\n+mov dword ptr [ebp - 4], 0xffffffff\n+mov dword ptr [ebp - 0x10], eax\n+call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x10]\n+jmp -0x24e8\n+mov eax, <OFFSET140>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x18]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-push esi\n-mov eax, dword ptr [ecx]\n-mov esi, ecx\n-call dword ptr [eax + 0x30]\n-mov eax, 1\n-mov cl, byte ptr [esi + 8]\n-shl eax, cl\n-mov dword ptr [esi + 8], 2\n-or dword ptr [esi + 0xc], eax\n-pop esi\n-ret \n-int3 \n-int3 \n-mov eax, ecx\n-mov edx, 1\n-mov cl, byte ptr [eax + 8]\n-shl edx, cl\n-mov dword ptr [eax + 8], 3\n-or dword ptr [eax + 0xc], edx\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, ecx\n-mov edx, 1\n-mov cl, byte ptr [eax + 8]\n-shl edx, cl\n-mov dword ptr [eax + 8], 4\n-or dword ptr [eax + 0xc], edx\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, ecx\n-mov edx, 1\n-mov cl, byte ptr [eax + 8]\n-shl edx, cl\n-mov dword ptr [eax + 8], 5\n-or dword ptr [eax + 0xc], edx\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, ecx\n-mov edx, 1\n-mov cl, byte ptr [eax + 8]\n-shl edx, cl\n-mov dword ptr [eax + 8], 6\n-or dword ptr [eax + 0xc], edx\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, ecx\n-mov edx, 1\n-mov cl, byte ptr [eax + 8]\n-shl edx, cl\n-mov dword ptr [eax + 8], 0\n-or dword ptr [eax + 0xc], edx\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, dword ptr fs:[0]\n-push ebp\n-mov ebp, esp\n-push -1\n-push <OFFSET155>\n-mov dword ptr [ecx], MxPresenter (VTABLE)\n-push eax\n-xor eax, eax\n-mov dword ptr fs:[0], esp\n-sub esp, 4\n-mov dword ptr [ebp - 0x10], ecx\n-mov dword ptr [ebp - 4], eax\n-mov byte ptr [ebp - 4], al\n-call <OFFSET156>\n-mov dword ptr [ebp - 4], 0xffffffff\n-call <OFFSET157>\n-mov eax, dword ptr [ebp - 0xc]\n-mov esp, ebp\n-mov dword ptr fs:[0], eax\n-pop ebp\n-ret \n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x20\n-jmp MxCriticalSection::~MxCriticalSection (FUNCTION)\n-mov eax, <OFFSET158>\n-jmp ___CxxFrameHandler (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxCore::~MxCore (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-xor eax, eax\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-jmp MxPresenter::Init (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov edx, ecx\n-mov eax, 1\n-mov cl, byte ptr [edx + 8]\n-shl eax, cl\n-mov ecx, dword ptr [esp + 4]\n-or dword ptr [edx + 0xc], eax\n-mov dword ptr [edx + 8], ecx\n-ret 4\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, dword ptr [ecx + 0xc]\n-mov dl, 1\n-mov cl, byte ptr [esp + 4]\n-shl dl, cl\n-and al, dl\n-ret 4\n-xor eax, eax\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-xor al, al\n-ret 8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, 'MxPresenter' (STRING)\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov edx, dword ptr [esp + 4]\n-push ebx\n-push esi\n-mov eax, edx\n-mov esi, 'MxPresenter' (STRING)\n-mov bl, byte ptr [eax]\n-cmp bl, byte ptr [esi]\n-jne 0x1a\n-or bl, bl\n-je 0x12\n-mov bl, byte ptr [eax + 1]\n-cmp bl, byte ptr [esi + 1]\n-jne 0xe\n-add eax, 2\n-add esi, 2\n-or bl, bl\n-jne -0x1c\n-xor eax, eax\n-jmp 0x5\n-sbb eax, eax\n-sbb eax, -1\n-test eax, eax\n-je 0x35\n-mov eax, 'MxCore' (STRING)\n-mov cl, byte ptr [edx]\n-cmp cl, byte ptr [eax]\n-jne 0x1a\n-or cl, cl\n-je 0x12\n-mov cl, byte ptr [edx + 1]\n-cmp cl, byte ptr [eax + 1]\n-jne 0xe\n-add edx, 2\n-add eax, 2\n-or cl, cl\n-jne -0x1c\n-xor eax, eax\n-jmp 0x5\n-sbb eax, eax\n-sbb eax, -1\n-test eax, eax\n-je 0x7\n-xor al, al\n-pop esi\n-pop ebx\n-ret 4\n-mov al, 1\n-pop esi\n-pop ebx\n-ret 4\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, dword ptr fs:[0]\n-push ebp\n-mov ebp, esp\n-push -1\n-push <OFFSET161>\n-mov dword ptr [ecx], MxPresenter (VTABLE)\n-push eax\n-xor eax, eax"}, {"address": "0x1000be30", "name": "MxPresenter::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x1000be40", "name": "MxPresenter::ReadyTickle", "matching": 1.0, "diff": ""}, {"address": "0x1000be60", "name": "MxPresenter::StartingTickle", "matching": 1.0, "diff": ""}, {"address": "0x1000be80", "name": "MxPresenter::StreamingTickle", "matching": 1.0, "diff": ""}, {"address": "0x1000bea0", "name": "MxPresenter::RepeatingTickle", "matching": 1.0, "diff": ""}, {"address": "0x1000bec0", "name": "MxPresenter::Unk5Tickle", "matching": 1.0, "diff": ""}, {"address": "0x1000bee0", "name": "MxPresenter::DoneTickle", "matching": 1.0, "diff": ""}, {"address": "0x1000bf00", "name": "MxPresenter::~MxPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1000bf70", "name": "MxPresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x1000bf80", "name": "MxPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1000bf90", "name": "MxPresenter::SetTickleState", "matching": 1.0, "diff": ""}, {"address": "0x1000bfb0", "name": "MxPresenter::HasTickleStatePassed", "matching": 1.0, "diff": ""}, {"address": "0x1000bfc0", "name": "MxPresenter::PutData", "matching": 1.0, "diff": ""}, {"address": "0x1000bfd0", "name": "MxPresenter::IsHit", "matching": 1.0, "diff": ""}, {"address": "0x1000bfe0", "name": "MxPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000bff0", "name": "MxPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000c070", "name": "MxPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000c0f0", "name": "Vector2::Vector2", "matching": 1.0, "diff": ""}, {"address": "0x1000c110", "name": "MxEntity::~MxEntity", "matching": 1.0, "diff": ""}, {"address": "0x1000c180", "name": "MxEntity::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000c190", "name": "MxEntity::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000c210", "name": "MxEntity::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000c290", "name": "LegoEntity::~LegoEntity", "matching": 1.0, "diff": ""}, {"address": "0x1000c2f0", "name": "LegoEntity::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000c300", "name": "LegoEntity::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000c3b0", "name": "LegoEntity::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000c430", "name": "LegoPathActor::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000c440", "name": "LegoPathActor::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000c550", "name": "MxMediaPresenter::~MxMediaPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1000c5b0", "name": "MxMediaPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1000c5c0", "name": "MxMediaPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000c5d0", "name": "MxMediaPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000c680", "name": "MxMediaPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000c700", "name": "MxVideoPresenter::LoadHeader", "matching": 1.0, "diff": ""}, {"address": "0x1000c710", "name": "MxVideoPresenter::CreateBitmap", "matching": 1.0, "diff": ""}, {"address": "0x1000c720", "name": "MxVideoPresenter::LoadFrame", "matching": 1.0, "diff": ""}, {"address": "0x1000c730", "name": "MxVideoPresenter::RealizePalette", "matching": 1.0, "diff": ""}, {"address": "0x1000c740", "name": "MxVideoPresenter::~MxVideoPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1000c7a0", "name": "MxVideoPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1000c7b0", "name": "MxVideoPresenter::VTable0x78", "matching": 1.0, "diff": ""}, {"address": "0x1000c7c0", "name": "MxVideoPresenter::VTable0x7c", "matching": 1.0, "diff": ""}, {"address": "0x1000c7e0", "name": "MxVideoPresenter::GetWidth", "matching": 0.6, "diff": "--- \n\n+++ \n\n@@ -1,10 +1,10 @@\n\n mov edx, dword ptr [ecx + 0x54]\n test edx, edx\n-jne 0xa\n+je 0x7\n+xor eax, eax\n+mov ax, word ptr [edx + 8]\n+ret \n mov eax, dword ptr [ecx + 0x50]\n mov ecx, dword ptr [eax + 0xc]\n mov eax, dword ptr [ecx + 4]\n ret \n-xor eax, eax\n-mov ax, word ptr [edx + 8]\n-ret "}, {"address": "0x1000c800", "name": "MxVideoPresenter::GetHeight", "matching": 0.6153846153846154, "diff": "--- \n\n+++ \n\n@@ -1,13 +1,13 @@\n\n mov edx, dword ptr [ecx + 0x54]\n test edx, edx\n-jne 0x10\n+je 0x7\n+xor eax, eax\n+mov ax, word ptr [edx + 0xa]\n+ret \n mov eax, dword ptr [ecx + 0x50]\n mov ecx, dword ptr [eax + 0xc]\n mov eax, dword ptr [ecx + 8]\n test eax, eax\n-jg 0x9\n+jg 0x2\n neg eax\n ret \n-xor eax, eax\n-mov ax, word ptr [edx + 0xa]\n-ret "}, {"address": "0x1000c820", "name": "MxVideoPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000c830", "name": "MxVideoPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000c910", "name": "MxVideoPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000c9a0", "name": "LegoLoopingAnimPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000c9b0", "name": "LegoLoopingAnimPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000caf0", "name": "MxCompositePresenter::VTable0x64", "matching": 1.0, "diff": ""}, {"address": "0x1000cb10", "name": "LegoActorPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000cb20", "name": "LegoActorPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000cc30", "name": "LegoActorPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000cca0", "name": "LegoModelPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1000ccb0", "name": "LegoModelPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000ccc0", "name": "LegoModelPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000cdd0", "name": "LegoModelPresenter::`scalar deleting destructor'", "matching": 0.7547169811320755, "diff": "--- \n\n+++ \n\n@@ -1,26 +1,27 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n-mov dword ptr [ecx], LegoModelPresenter (VTABLE)\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n-mov dword ptr [ebp - 4], 0\n-push 1\n+mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebp - 0x10], ecx\n-call LegoModelPresenter::Destroy (FUNCTION)\n-mov dword ptr [ebp - 4], 0xffffffff\n-call <OFFSET4>\n+call <OFFSET2>\n test byte ptr [ebp + 8], 1\n je 0xc\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n+ret 4\n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxVideoPresenter::~MxVideoPresenter (FUNCTION)"}, {"address": "0x1000ce50", "name": "LegoTexturePresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000ce60", "name": "LegoTexturePresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000cf40", "name": "LegoTexturePresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000cf70", "name": "LegoPartPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000cf80", "name": "LegoPartPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000d060", "name": "LegoPartPresenter::`scalar deleting destructor'", "matching": 0.7547169811320755, "diff": "--- \n\n+++ \n\n@@ -1,26 +1,27 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n-mov dword ptr [ecx], LegoPartPresenter (VTABLE)\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n-mov dword ptr [ebp - 4], 0\n-push 1\n+mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebp - 0x10], ecx\n-call <OFFSET3>\n-mov dword ptr [ebp - 4], 0xffffffff\n-call <OFFSET4>\n+call <OFFSET2>\n test byte ptr [ebp + 8], 1\n je 0xc\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n+ret 4\n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxMediaPresenter::~MxMediaPresenter (FUNCTION)"}, {"address": "0x1000d0e0", "name": "LegoActionControlPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000d0f0", "name": "LegoActionControlPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000d1d0", "name": "LegoActionControlPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000d260", "name": "MxAudioPresenter::GetVolume", "matching": 1.0, "diff": ""}, {"address": "0x1000d270", "name": "MxAudioPresenter::SetVolume", "matching": 1.0, "diff": ""}, {"address": "0x1000d280", "name": "MxAudioPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000d290", "name": "MxAudioPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000d370", "name": "MxAudioPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000d3e0", "name": "MxAudioPresenter::~MxAudioPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1000d430", "name": "MxSoundPresenter::~MxSoundPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1000d490", "name": "MxSoundPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1000d4a0", "name": "MxSoundPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000d4b0", "name": "MxSoundPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000d5c0", "name": "MxSoundPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000d640", "name": "MxWavePresenter::~MxWavePresenter", "matching": 1.0, "diff": ""}, {"address": "0x1000d6a0", "name": "MxWavePresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1000d6b0", "name": "MxWavePresenter::IsPaused", "matching": 1.0, "diff": ""}, {"address": "0x1000d6c0", "name": "MxWavePresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000d6d0", "name": "MxWavePresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000d810", "name": "MxWavePresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000d890", "name": "Lego3DWavePresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000d8a0", "name": "Lego3DWavePresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000dab0", "name": "LegoRace::VTable0x78", "matching": 1.0, "diff": ""}, {"address": "0x1000dae0", "name": "LegoRace::VTable0x5c", "matching": 1.0, "diff": ""}, {"address": "0x1000dc40", "name": "JetskiRaceState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000dc50", "name": "JetskiRaceState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000dd30", "name": "CarRaceState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000dd40", "name": "CarRaceState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000de20", "name": "ScoreState::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x1000de30", "name": "ScoreState::SetFlag", "matching": 1.0, "diff": ""}, {"address": "0x1000de40", "name": "ScoreState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000de50", "name": "ScoreState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000df00", "name": "ScoreState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000df80", "name": "LegoAct2State::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000df90", "name": "LegoAct2State::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000e040", "name": "LegoAct2State::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000e0b0", "name": "HelicopterState::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x1000e0c0", "name": "HelicopterState::SetFlag", "matching": 1.0, "diff": ""}, {"address": "0x1000e0d0", "name": "HelicopterState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000e0e0", "name": "HelicopterState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000e190", "name": "HelicopterState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000e200", "name": "Act2PoliceStation::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000e210", "name": "Act2PoliceStation::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000e2f0", "name": "Act3State::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x1000e300", "name": "Act3State::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000e310", "name": "Act3State::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000e3c0", "name": "Act3State::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000e430", "name": "Doors::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000e440", "name": "Doors::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000e580", "name": "Doors::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000e660", "name": "IsleActor::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000e670", "name": "IsleActor::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000e780", "name": "Pizzeria::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000e790", "name": "Pizzeria::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000e8d0", "name": "Pizzeria::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000e940", "name": "IsleActor::~IsleActor", "matching": 1.0, "diff": ""}, {"address": "0x1000e990", "name": "IsleActor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000ea00", "name": "InfoCenterEntity::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000ea10", "name": "InfoCenterEntity::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000eb20", "name": "GasStationEntity::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000eb30", "name": "GasStationEntity::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000ec40", "name": "HospitalEntity::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000ec50", "name": "HospitalEntity::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000ed60", "name": "PoliceEntity::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000ed70", "name": "PoliceEntity::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000ee80", "name": "BeachHouseEntity::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000ee90", "name": "BeachHouseEntity::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000efa0", "name": "RaceStandsEntity::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000efb0", "name": "RaceStandsEntity::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000f300", "name": "JukeBoxState::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x1000f310", "name": "JukeBoxState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000f320", "name": "JukeBoxState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000f3d0", "name": "JukeBoxState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000f440", "name": "LegoLoopingAnimPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000f4b0", "name": "Lego3DWavePresenter::`scalar deleting destructor'", "matching": 0.8363636363636363, "diff": "--- \n\n+++ \n\n@@ -1,28 +1,27 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-xor eax, eax\n sub esp, 4\n+mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebp - 0x10], ecx\n-mov dword ptr [ebp - 4], eax\n-mov byte ptr [ebp - 4], al\n call <OFFSET2>\n-mov dword ptr [ebp - 4], 0xffffffff\n-call <OFFSET3>\n test byte ptr [ebp + 8], 1\n je 0xc\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n+jmp MxWavePresenter::~MxWavePresenter (FUNCTION)"}, {"address": "0x1000f610", "name": "Act2PoliceStation::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000f680", "name": "JetskiRaceState::`scalar deleting destructor'", "matching": 0.9629629629629629, "diff": "--- \n\n+++ \n\n@@ -17,11 +17,11 @@\n\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0xf\n+jmp RaceState::~RaceState (FUNCTION)"}, {"address": "0x1000f740", "name": "CarRaceState::`scalar deleting destructor'", "matching": 0.9629629629629629, "diff": "--- \n\n+++ \n\n@@ -17,11 +17,11 @@\n\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp -0xb1\n+jmp RaceState::~RaceState (FUNCTION)"}, {"address": "0x1000f7b0", "name": "InfoCenterEntity::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000f820", "name": "HospitalEntity::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000f890", "name": "GasStationEntity::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000f900", "name": "PoliceEntity::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000f970", "name": "BeachHouseEntity::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000f9e0", "name": "RaceStandsEntity::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1000fb30", "name": "LegoObjectFactory::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1000fd40", "name": "SkateBoard::SkateBoard", "matching": 1.0, "diff": ""}, {"address": "0x1000fdd0", "name": "SkateBoard::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000fde0", "name": "SkateBoard::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000ff60", "name": "SkateBoard::`scalar deleting destructor'", "matching": 0.3103448275862069, "diff": "--- \n\n+++ \n\n@@ -1,31 +1,27 @@\n\n-push esi\n-mov esi, ecx\n-call <OFFSET1>\n-test byte ptr [esp + 8], 1\n-je 0x9\n-push esi\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-mov eax, esi\n-pop esi\n-ret 4\n-int3 \n-int3 \n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n-push <OFFSET3>\n-mov dword ptr [ecx], SkateBoard (VTABLE)\n+push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n-mov dword ptr [ebp - 4], 0\n-push ecx\n+mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebp - 0x10], ecx\n-call ControlManager (FUNCTION)\n-mov ecx, eax\n-call LegoControlManager::Unregister (FUNCTION)\n+call <OFFSET2>\n+test byte ptr [ebp + 8], 1\n+je 0xc\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n+ret 4\n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-push ecx\n-call NotificationManager (FUNCTION)\n+jmp IslePathActor::~IslePathActor (FUNCTION)"}, {"address": "0x10010360", "name": "MxParam::~MxParam", "matching": 1.0, "diff": ""}, {"address": "0x10010370", "name": "MxParam::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10010390", "name": "MxNotificationParam::Clone", "matching": 1.0, "diff": ""}, {"address": "0x10010430", "name": "MxNotificationParam::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100104a0", "name": "MxNotificationParam::~MxNotificationParam", "matching": 1.0, "diff": ""}, {"address": "0x100105f0", "name": "LegoEntity::Init", "matching": 1.0, "diff": ""}, {"address": "0x100107e0", "name": "LegoEntity::Create", "matching": 1.0, "diff": ""}, {"address": "0x10010810", "name": "LegoEntity::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x10010880", "name": "LegoEntity::SetWorld", "matching": 1.0, "diff": ""}, {"address": "0x10010c30", "name": "LegoEntity::FUN_10010c30", "matching": 1.0, "diff": ""}, {"address": "0x10010e10", "name": "LegoEntity::ParseAction", "matching": 1.0, "diff": ""}, {"address": "0x10011d50", "name": "LegoCameraController::LegoCameraController", "matching": 1.0, "diff": ""}, {"address": "0x10011e40", "name": "LegoPointOfViewController::LeftUp", "matching": 1.0, "diff": ""}, {"address": "0x10011e60", "name": "LegoPointOfViewController::RightDown", "matching": 1.0, "diff": ""}, {"address": "0x10011e80", "name": "LegoPointOfViewController::RightDrag", "matching": 1.0, "diff": ""}, {"address": "0x10011ea0", "name": "LegoPointOfViewController::RightUp", "matching": 1.0, "diff": ""}, {"address": "0x10011ec0", "name": "LegoCameraController::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10011ed0", "name": "LegoCameraController::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10011f50", "name": "LegoCameraController::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10011f70", "name": "LegoCameraController::~LegoCameraController", "matching": 1.0, "diff": ""}, {"address": "0x10011ff0", "name": "LegoCameraController::Create", "matching": 1.0, "diff": ""}, {"address": "0x100121b0", "name": "LegoCameraController::OnLButtonDown", "matching": 1.0, "diff": ""}, {"address": "0x100121d0", "name": "LegoCameraController::OnLButtonUp", "matching": 1.0, "diff": ""}, {"address": "0x100121f0", "name": "LegoCameraController::OnRButtonDown", "matching": 1.0, "diff": ""}, {"address": "0x10012210", "name": "LegoCameraController::OnRButtonUp", "matching": 1.0, "diff": ""}, {"address": "0x10012230", "name": "LegoCameraController::OnMouseMove", "matching": 1.0, "diff": ""}, {"address": "0x10012260", "name": "LegoCameraController::SetWorldTransform", "matching": 1.0, "diff": ""}, {"address": "0x10012740", "name": "LegoCameraController::GetWorldUp", "matching": 1.0, "diff": ""}, {"address": "0x100127f0", "name": "LegoCameraController::GetWorldLocation", "matching": 1.0, "diff": ""}, {"address": "0x100128a0", "name": "LegoCameraController::GetWorldDirection", "matching": 1.0, "diff": ""}, {"address": "0x10013e20", "name": "LegoJetski::`scalar deleting destructor'", "matching": 0.16, "diff": "--- \n\n+++ \n\n@@ -1,48 +1,27 @@\n\n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-push esi\n-mov esi, ecx\n-call <OFFSET1>\n-lea ecx, [esi + 0x174]\n+mov eax, dword ptr fs:[0]\n+push ebp\n+mov ebp, esp\n+push -1\n+push <OFFSET1>\n+push eax\n+mov dword ptr fs:[0], esp\n+sub esp, 4\n+mov dword ptr [ebp - 4], 0xffffffff\n+mov dword ptr [ebp - 0x10], ecx\n call <OFFSET2>\n-mov ecx, esi\n-call LegoPathActor::~LegoPathActor (FUNCTION)\n-test byte ptr [esp + 8], 1\n+test byte ptr [ebp + 8], 1\n je 0xc\n-lea eax, [esi - 0x3c]\n+mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-lea eax, [esi - 0x3c]\n-pop esi\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n ret 4\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-jmp -0x248\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoJetskiRaceActor::~LegoJetskiRaceActor (FUNCTION)"}, {"address": "0x10013e80", "name": "LegoJetski::ClassName", "matching": 0.0, "diff": "--- \n\n+++ \n\n@@ -1 +1,2 @@\n\n-sub ecx, dword ptr [ecx - 4]\n+mov eax, 'LegoJetski' (STRING)\n+ret "}, {"address": "0x10013ea0", "name": "LegoJetski::IsA", "matching": 0.44562334217506633, "diff": "--- \n\n+++ \n\n@@ -1,187 +1,190 @@\n\n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-push ebx\n push esi\n-mov ebx, dword ptr [esp + 0xc]\n push edi\n-mov eax, ebx\n-mov esi, 'LegoJetski' (STRING)\n+mov esi, dword ptr [esp + 0xc]\n+mov edi, 'LegoJetski' (STRING)\n+mov eax, esi\n mov dl, byte ptr [eax]\n-cmp dl, byte ptr [esi]\n+cmp dl, byte ptr [edi]\n jne 0x1a\n or dl, dl\n je 0x12\n mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [esi + 1]\n+cmp dl, byte ptr [edi + 1]\n jne 0xe\n add eax, 2\n-add esi, 2\n+add edi, 2\n or dl, dl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x1d2\n-mov eax, ebx\n-mov esi, 'LegoJetskiRaceActor' (STRING)\n+je 0x199\n+mov eax, esi\n+mov edi, 'LegoJetskiRaceActor' (STRING)\n mov dl, byte ptr [eax]\n-cmp dl, byte ptr [esi]\n+cmp dl, byte ptr [edi]\n jne 0x1a\n or dl, dl\n je 0x12\n mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [esi + 1]\n+cmp dl, byte ptr [edi + 1]\n jne 0xe\n add eax, 2\n-add esi, 2\n+add edi, 2\n or dl, dl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x19e\n-mov eax, dword ptr [ecx - 8]\n-mov esi, 'LegoCarRaceActor' (STRING)\n-mov edx, dword ptr [eax + 0x10]\n-mov eax, ebx\n-lea ecx, [edx + ecx + 0x1c]\n+je 0x165\n+mov eax, esi\n+mov edi, 'LegoCarRaceActor' (STRING)\n mov dl, byte ptr [eax]\n-cmp dl, byte ptr [esi]\n+cmp dl, byte ptr [edi]\n jne 0x1a\n or dl, dl\n je 0x12\n mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [esi + 1]\n+cmp dl, byte ptr [edi + 1]\n jne 0xe\n add eax, 2\n-add esi, 2\n+add edi, 2\n or dl, dl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x160\n-mov eax, dword ptr [ecx - 0x20]\n-mov esi, 'LegoRaceActor' (STRING)\n-mov edx, dword ptr [eax + 0xc]\n-mov eax, ebx\n-lea ecx, [edx + ecx - 0x10]\n+je 0x131\n+mov eax, esi\n+mov edi, 'LegoRaceActor' (STRING)\n mov dl, byte ptr [eax]\n-cmp dl, byte ptr [esi]\n+cmp dl, byte ptr [edi]\n jne 0x1a\n or dl, dl\n je 0x12\n mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [esi + 1]\n+cmp dl, byte ptr [edi + 1]\n jne 0xe\n add eax, 2\n-add esi, 2\n+add edi, 2\n or dl, dl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x122\n-mov eax, dword ptr [ecx - 0xc]\n-mov esi, 'LegoAnimActor' (STRING)\n-mov edx, dword ptr [eax + 8]\n-mov eax, ebx\n-lea ecx, [edx + ecx + 0x14]\n+je 0xfd\n+mov eax, esi\n+mov edi, 'LegoPathActor' (STRING)\n mov dl, byte ptr [eax]\n-cmp dl, byte ptr [esi]\n+cmp dl, byte ptr [edi]\n jne 0x1a\n or dl, dl\n je 0x12\n mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [esi + 1]\n+cmp dl, byte ptr [edi + 1]\n jne 0xe\n add eax, 2\n-add esi, 2\n+add edi, 2\n or dl, dl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0xe4\n-mov eax, dword ptr [ecx - 0x1c]\n-mov edx, dword ptr [eax + 4]\n-mov eax, ebx\n-lea esi, [edx + ecx - 0x1c]\n-mov edx, 'LegoPathActor' (STRING)\n-mov cl, byte ptr [eax]\n-cmp cl, byte ptr [edx]\n+je 0xc9\n+mov edi, esi\n+mov eax, 'LegoActor' (STRING)\n+mov dl, byte ptr [edi]\n+cmp dl, byte ptr [eax]\n+jne 0x1a\n+or dl, dl\n+je 0x12\n+mov dl, byte ptr [edi + 1]\n+cmp dl, byte ptr [eax + 1]\n+jne 0xe\n+add edi, 2\n+add eax, 2\n+or dl, dl\n+jne -0x1c\n+xor eax, eax\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x95\n+mov eax, esi\n+mov edi, 'LegoEntity' (STRING)\n+mov dl, byte ptr [eax]\n+cmp dl, byte ptr [edi]\n+jne 0x1a\n+or dl, dl\n+je 0x12\n+mov dl, byte ptr [eax + 1]\n+cmp dl, byte ptr [edi + 1]\n+jne 0xe\n+add eax, 2\n+add edi, 2\n+or dl, dl\n+jne -0x1c\n+xor eax, eax\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x65\n+mov eax, esi\n+mov edi, 'MxEntity' (STRING)\n+mov dl, byte ptr [eax]\n+cmp dl, byte ptr [edi]\n+jne 0x1a\n+or dl, dl\n+je 0x12\n+mov dl, byte ptr [eax + 1]\n+cmp dl, byte ptr [edi + 1]\n+jne 0xe\n+add eax, 2\n+add edi, 2\n+or dl, dl\n+jne -0x1c\n+xor eax, eax\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x35\n+call MxCore::ClassName (FUNCTION)\n+mov cl, byte ptr [esi]\n+cmp cl, byte ptr [eax]\n jne 0x1a\n or cl, cl\n je 0x12\n-mov cl, byte ptr [eax + 1]\n-cmp cl, byte ptr [edx + 1]\n+mov cl, byte ptr [esi + 1]\n+cmp cl, byte ptr [eax + 1]\n jne 0xe\n+add esi, 2\n add eax, 2\n-add edx, 2\n or cl, cl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0xa6\n-mov eax, ebx\n-mov edx, 'LegoActor' (STRING)\n-mov cl, byte ptr [eax]\n-cmp cl, byte ptr [edx]\n-jne 0x1a\n-or cl, cl\n-je 0x12\n-mov cl, byte ptr [eax + 1]\n-cmp cl, byte ptr [edx + 1]\n-jne 0xe\n-add eax, 2\n-add edx, 2\n-or cl, cl\n-jne -0x1c\n-xor eax, eax\n-jmp 0x5\n-sbb eax, eax\n-sbb eax, -1\n-test eax, eax\n-je 0x76\n-mov eax, ebx\n-mov edx, 'LegoEntity' (STRING)\n-mov cl, byte ptr [eax]\n-cmp cl, byte ptr [edx]\n-jne 0x1a\n-or cl, cl\n-je 0x12\n-mov cl, byte ptr [eax + 1]\n-cmp cl, byte ptr [edx + 1]\n-jne 0xe\n-add eax, 2\n-add edx, 2\n-or cl, cl\n-jne -0x1c\n-xor eax, eax\n-jmp 0x5\n-sbb eax, eax\n-sbb eax, -1\n-test eax, eax\n-je 0x46\n-mov edi, ebx\n+je 0x7\n+xor al, al\n+pop edi\n+pop esi\n+ret 4\n+mov al, 1\n+pop edi\n+pop esi\n+ret 4"}, {"address": "0x100140d0", "name": "MxCore::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10014230", "name": "LegoRaceCar::`scalar deleting destructor'", "matching": 0.14492753623188406, "diff": "--- \n\n+++ \n\n@@ -1,42 +1,27 @@\n\n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-push esi\n-mov esi, ecx\n-call <OFFSET1>\n-lea ecx, [esi + 0x174]\n+mov eax, dword ptr fs:[0]\n+push ebp\n+mov ebp, esp\n+push -1\n+push <OFFSET1>\n+push eax\n+mov dword ptr fs:[0], esp\n+sub esp, 4\n+mov dword ptr [ebp - 4], 0xffffffff\n+mov dword ptr [ebp - 0x10], ecx\n call <OFFSET2>\n-mov ecx, esi\n-call LegoPathActor::~LegoPathActor (FUNCTION)\n-test byte ptr [esp + 8], 1\n-je 0xf\n-lea eax, [esi - 0x84]\n+test byte ptr [ebp + 8], 1\n+je 0xc\n+mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-lea eax, [esi - 0x84]\n-pop esi\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n ret 4\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-jmp -0x14f8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoCarRaceActor::~LegoCarRaceActor (FUNCTION)"}, {"address": "0x10014290", "name": "LegoRaceCar::ClassName", "matching": 0.0, "diff": "--- \n\n+++ \n\n@@ -1 +1,2 @@\n\n-sub ecx, dword ptr [ecx - 4]\n+mov eax, 'LegoRaceCar' (STRING)\n+ret "}, {"address": "0x100142b0", "name": "LegoRaceCar::IsA", "matching": 0.382089552238806, "diff": "--- \n\n+++ \n\n@@ -1,165 +1,170 @@\n\n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n+mov edx, dword ptr [esp + 4]\n+push ebx\n push esi\n-push edi\n-mov esi, dword ptr [esp + 0xc]\n-mov edi, 'LegoRaceCar' (STRING)\n-mov eax, esi\n-mov dl, byte ptr [eax]\n-cmp dl, byte ptr [edi]\n+mov eax, edx\n+mov esi, 'LegoCarRaceActor' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [esi]\n jne 0x1a\n-or dl, dl\n+or bl, bl\n je 0x12\n-mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [edi + 1]\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [esi + 1]\n jne 0xe\n add eax, 2\n-add edi, 2\n-or dl, dl\n+add esi, 2\n+or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x1b7\n-mov eax, esi\n-mov edi, 'LegoCarRaceActor' (STRING)\n-mov dl, byte ptr [eax]\n-cmp dl, byte ptr [edi]\n+je 0x165\n+mov eax, edx\n+mov ecx, 'LegoCarRaceActor' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n jne 0x1a\n-or dl, dl\n+or bl, bl\n je 0x12\n-mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [edi + 1]\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n jne 0xe\n add eax, 2\n-add edi, 2\n-or dl, dl\n+add ecx, 2\n+or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x183\n-mov eax, dword ptr [ecx - 0x80]\n-mov edi, 'LegoRaceActor' (STRING)\n-mov edx, dword ptr [eax + 0xc]\n-mov eax, esi\n-lea ecx, [edx + ecx - 0x70]\n-mov dl, byte ptr [eax]\n-cmp dl, byte ptr [edi]\n+je 0x131\n+mov eax, edx\n+mov ecx, 'LegoRaceActor' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n jne 0x1a\n-or dl, dl\n+or bl, bl\n je 0x12\n-mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [edi + 1]\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n jne 0xe\n add eax, 2\n-add edi, 2\n-or dl, dl\n+add ecx, 2\n+or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x145\n-mov eax, dword ptr [ecx - 0xc]\n-mov edi, 'LegoAnimActor' (STRING)\n-mov edx, dword ptr [eax + 8]\n-mov eax, esi\n-lea ecx, [edx + ecx + 0x14]\n-mov dl, byte ptr [eax]\n-cmp dl, byte ptr [edi]\n+je 0xfd\n+mov eax, edx\n+mov ecx, 'LegoPathActor' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n jne 0x1a\n-or dl, dl\n+or bl, bl\n je 0x12\n-mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [edi + 1]\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n jne 0xe\n add eax, 2\n-add edi, 2\n-or dl, dl\n-jne -0x1c\n-xor eax, eax\n-jmp 0x5\n-sbb eax, eax\n-sbb eax, -1\n-test eax, eax\n-je 0x107\n-mov eax, dword ptr [ecx - 0x1c]\n-mov edi, 'LegoPathActor' (STRING)\n-mov edx, dword ptr [eax + 4]\n-mov eax, esi\n-lea ecx, [edx + ecx - 0x1c]\n-mov dl, byte ptr [eax]\n-cmp dl, byte ptr [edi]\n-jne 0x1a\n-or dl, dl\n-je 0x12\n-mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [edi + 1]\n-jne 0xe\n-add eax, 2\n-add edi, 2\n-or dl, dl\n+add ecx, 2\n+or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n je 0xc9\n-mov eax, esi\n-mov edi, 'LegoActor' (STRING)\n-mov dl, byte ptr [eax]\n-cmp dl, byte ptr [edi]\n+mov eax, edx\n+mov ecx, 'LegoActor' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n jne 0x1a\n-or dl, dl\n+or bl, bl\n je 0x12\n-mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [edi + 1]\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n jne 0xe\n add eax, 2\n-add edi, 2\n-or dl, dl\n+add ecx, 2\n+or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n je 0x95\n-mov eax, esi\n-mov edi, 'LegoEntity' (STRING)\n-mov dl, byte ptr [eax]\n-cmp dl, byte ptr [edi]\n+mov ecx, edx\n+mov eax, 'LegoEntity' (STRING)\n+mov bl, byte ptr [ecx]\n+cmp bl, byte ptr [eax]\n jne 0x1a\n-or dl, dl\n+or bl, bl\n je 0x12\n-mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [edi + 1]\n+mov bl, byte ptr [ecx + 1]\n+cmp bl, byte ptr [eax + 1]\n jne 0xe\n+add ecx, 2\n add eax, 2\n-add edi, 2\n-or dl, dl\n+or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n je 0x65\n-mov eax, esi\n-mov edi, 'MxEntity' (STRING)\n-mov dl, byte ptr [eax]\n+mov eax, edx\n+mov ecx, 'MxEntity' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n+jne 0x1a\n+or bl, bl\n+je 0x12\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n+jne 0xe\n+add eax, 2\n+add ecx, 2\n+or bl, bl\n+jne -0x1c\n+xor eax, eax\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x35\n+mov eax, 'MxCore' (STRING)\n+mov cl, byte ptr [edx]\n+cmp cl, byte ptr [eax]\n+jne 0x1a\n+or cl, cl\n+je 0x12\n+mov cl, byte ptr [edx + 1]\n+cmp cl, byte ptr [eax + 1]\n+jne 0xe\n+add edx, 2\n+add eax, 2\n+or cl, cl\n+jne -0x1c\n+xor eax, eax\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x7\n+xor al, al\n+pop esi\n+pop ebx\n+ret 4\n+mov al, 1\n+pop esi\n+pop ebx\n+ret 4"}, {"address": "0x100144c0", "name": "MxCore::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10014ab0", "name": "LegoRaceActor::`scalar deleting destructor'", "matching": 0.13333333333333333, "diff": "--- \n\n+++ \n\n@@ -1,48 +1,27 @@\n\n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-push esi\n-mov esi, ecx\n-lea ecx, [ecx + 0x174]\n-call <OFFSET1>\n-mov ecx, esi\n-call LegoPathActor::~LegoPathActor (FUNCTION)\n-test byte ptr [esp + 8], 1\n+mov eax, dword ptr fs:[0]\n+push ebp\n+mov ebp, esp\n+push -1\n+push <OFFSET1>\n+push eax\n+mov dword ptr fs:[0], esp\n+sub esp, 4\n+mov dword ptr [ebp - 4], 0xffffffff\n+mov dword ptr [ebp - 0x10], ecx\n+call <OFFSET2>\n+test byte ptr [ebp + 8], 1\n je 0xc\n-lea eax, [esi - 0x10]\n+mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-lea eax, [esi - 0x10]\n-pop esi\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n ret 4\n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, 'LegoRaceActor' (STRING)\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoAnimActor::~LegoAnimActor (FUNCTION)"}, {"address": "0x10014af0", "name": "LegoRaceActor::ClassName", "matching": 0.0, "diff": "--- \n\n+++ \n\n@@ -1 +1,2 @@\n\n-sub ecx, dword ptr [ecx - 4]\n+mov eax, 'LegoRaceActor' (STRING)\n+ret "}, {"address": "0x10014b10", "name": "LegoRaceActor::IsA", "matching": 0.7104247104247104, "diff": "--- \n\n+++ \n\n@@ -1,55 +1,25 @@\n\n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n mov edx, dword ptr [esp + 4]\n push ebx\n push esi\n mov eax, edx\n mov esi, 'LegoRaceActor' (STRING)\n mov bl, byte ptr [eax]\n cmp bl, byte ptr [esi]\n jne 0x1a\n or bl, bl\n je 0x12\n mov bl, byte ptr [eax + 1]\n cmp bl, byte ptr [esi + 1]\n jne 0xe\n add eax, 2\n add esi, 2\n-or bl, bl\n-jne -0x1c\n-xor eax, eax\n-jmp 0x5\n-sbb eax, eax\n-sbb eax, -1\n-test eax, eax\n-je 0x131\n-mov eax, edx\n-mov ecx, 'LegoAnimActor' (STRING)\n-mov bl, byte ptr [eax]\n-cmp bl, byte ptr [ecx]\n-jne 0x1a\n-or bl, bl\n-je 0x12\n-mov bl, byte ptr [eax + 1]\n-cmp bl, byte ptr [ecx + 1]\n-jne 0xe\n-add eax, 2\n-add ecx, 2\n or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n je 0xfd\n mov eax, edx\n mov ecx, 'LegoPathActor' (STRING)\n@@ -104,26 +74,57 @@\n\n add eax, 2\n add ecx, 2\n or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n je 0x65\n-mov ecx, edx\n-mov eax, 'MxEntity' (STRING)\n-mov bl, byte ptr [ecx]\n-cmp bl, byte ptr [eax]\n+mov eax, edx\n+mov ecx, 'MxEntity' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n jne 0x1a\n or bl, bl\n je 0x12\n-mov bl, byte ptr [ecx + 1]\n-cmp bl, byte ptr [eax + 1]\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n jne 0xe\n+add eax, 2\n add ecx, 2\n-add eax, 2\n or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x35\n+mov eax, 'MxCore' (STRING)\n+mov cl, byte ptr [edx]\n+cmp cl, byte ptr [eax]\n+jne 0x1a\n+or cl, cl\n+je 0x12\n+mov cl, byte ptr [edx + 1]\n+cmp cl, byte ptr [eax + 1]\n+jne 0xe\n+add edx, 2\n+add eax, 2\n+or cl, cl\n+jne -0x1c\n+xor eax, eax\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x7\n+xor al, al\n+pop esi\n+pop ebx\n+ret 4\n+mov al, 1\n+pop esi\n+pop ebx\n+ret 4"}, {"address": "0x10014f20", "name": "BuildingEntity::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10014f30", "name": "BuildingEntity::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10015010", "name": "BuildingEntity::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10015700", "name": "Lego", "matching": 1.0, "diff": ""}, {"address": "0x10015710", "name": "SoundManager", "matching": 1.0, "diff": ""}, {"address": "0x10015720", "name": "VideoManager", "matching": 1.0, "diff": ""}, {"address": "0x10015730", "name": "BackgroundAudioManager", "matching": 1.0, "diff": ""}, {"address": "0x10015740", "name": "InputManager", "matching": 1.0, "diff": ""}, {"address": "0x10015750", "name": "ControlManager", "matching": 1.0, "diff": ""}, {"address": "0x10015760", "name": "GameState", "matching": 1.0, "diff": ""}, {"address": "0x10015770", "name": "AnimationManager", "matching": 1.0, "diff": ""}, {"address": "0x10015780", "name": "NavController", "matching": 1.0, "diff": ""}, {"address": "0x10015790", "name": "GetCurrentVehicle", "matching": 1.0, "diff": ""}, {"address": "0x100157a0", "name": "GetCurrentWorld", "matching": 1.0, "diff": ""}, {"address": "0x100157b0", "name": "GetUnkSaveDataWriter", "matching": 1.0, "diff": ""}, {"address": "0x100157e0", "name": "PlantManager", "matching": 1.0, "diff": ""}, {"address": "0x100157f0", "name": "BuildingManager", "matching": 1.0, "diff": ""}, {"address": "0x10015800", "name": "GetGifManager", "matching": 1.0, "diff": ""}, {"address": "0x10015820", "name": "FUN_10015820", "matching": 1.0, "diff": ""}, {"address": "0x100158c0", "name": "FindWorld", "matching": 1.0, "diff": ""}, {"address": "0x100158e0", "name": "GetCurrentAction", "matching": 1.0, "diff": ""}, {"address": "0x100158f0", "name": "SetCurrentWorld", "matching": 1.0, "diff": ""}, {"address": "0x10015900", "name": "TransitionManager", "matching": 1.0, "diff": ""}, {"address": "0x10015910", "name": "PlayMusic", "matching": 1.0, "diff": ""}, {"address": "0x100159c0", "name": "SetIsWorldActive", "matching": 1.0, "diff": ""}, {"address": "0x100159e0", "name": "DeleteObjects", "matching": 1.0, "diff": ""}, {"address": "0x10015aa0", "name": "LegoRace::LegoRace", "matching": 1.0, "diff": ""}, {"address": "0x10015b70", "name": "LegoRace::VTable0x70", "matching": 1.0, "diff": ""}, {"address": "0x10015b80", "name": "LegoRace::VTable0x74", "matching": 1.0, "diff": ""}, {"address": "0x10015b90", "name": "LegoRace::VTable0x64", "matching": 1.0, "diff": ""}, {"address": "0x10015ba0", "name": "LegoRace::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10015bb0", "name": "LegoRace::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10015cc0", "name": "LegoRace::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10016010", "name": "RaceState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10016020", "name": "RaceState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100160d0", "name": "RaceState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10016280", "name": "RaceState::GetState", "matching": 1.0, "diff": ""}, {"address": "0x10016a90", "name": "CarRace::CarRace", "matching": 1.0, "diff": ""}, {"address": "0x10016b20", "name": "CarRace::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10016b30", "name": "CarRace::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10016c70", "name": "CarRace::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10017c00", "name": "LegoState::StateStruct::StateStruct", "matching": 1.0, "diff": ""}, {"address": "0x10017c20", "name": "PizzeriaState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10017c30", "name": "PizzeriaState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10017ce0", "name": "PizzeriaState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10017e90", "name": "ElevatorBottom::ElevatorBottom", "matching": 1.0, "diff": ""}, {"address": "0x10017f10", "name": "ElevatorBottom::VTable0x5c", "matching": 1.0, "diff": ""}, {"address": "0x10017f20", "name": "ElevatorBottom::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10017f30", "name": "ElevatorBottom::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10018040", "name": "ElevatorBottom::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10018060", "name": "ElevatorBottom::~ElevatorBottom", "matching": 1.0, "diff": ""}, {"address": "0x100180f0", "name": "ElevatorBottom::Create", "matching": 1.0, "diff": ""}, {"address": "0x10018150", "name": "ElevatorBottom::Notify", "matching": 1.0, "diff": ""}, {"address": "0x100181b0", "name": "ElevatorBottom::ReadyWorld", "matching": 1.0, "diff": ""}, {"address": "0x100182c0", "name": "ElevatorBottom::VTable0x68", "matching": 1.0, "diff": ""}, {"address": "0x10018310", "name": "ElevatorBottom::VTable0x64", "matching": 1.0, "diff": ""}, {"address": "0x10018340", "name": "LegoLoadCacheSoundPresenter::LegoLoadCacheSoundPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10018450", "name": "LegoLoadCacheSoundPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10018460", "name": "LegoLoadCacheSoundPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10018480", "name": "LegoLoadCacheSoundPresenter::~LegoLoadCacheSoundPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100184e0", "name": "LegoLoadCacheSoundPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x100184f0", "name": "LegoLoadCacheSoundPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x10018510", "name": "LegoLoadCacheSoundPresenter::ReadyTickle", "matching": 1.0, "diff": ""}, {"address": "0x100186f0", "name": "LegoLoadCacheSoundPresenter::DoneTickle", "matching": 1.0, "diff": ""}, {"address": "0x1001a130", "name": "Act3Shark::IsA", "matching": 0.02214022140221402, "diff": "--- \n\n+++ \n\n@@ -1,141 +1,130 @@\n\n-sub ecx, dword ptr [ecx - 4]\n-sub ecx, 0x34\n-jmp -0xa57b\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-sub ecx, 0x34\n-jmp 0x27d5\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-jmp -0x1818\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-jmp -0xee8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-cmp byte ptr [ecx - 0x35], 0\n-je 0x5\n+mov edx, dword ptr [esp + 4]\n+push ebx\n+push esi\n+mov eax, edx\n+mov esi, 'Act3Shark' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [esi]\n+jne 0x1a\n+or bl, bl\n+je 0x12\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [esi + 1]\n+jne 0xe\n+add eax, 2\n+add esi, 2\n+or bl, bl\n+jne -0x1c\n xor eax, eax\n-ret 0xc\n-mov eax, dword ptr [esp + 0xc]\n-mov edx, dword ptr [esp + 8]\n-push eax\n-push edx\n-mov eax, dword ptr [esp + 0xc]\n-mov edx, dword ptr [ecx - 0x50]\n-push eax\n-mov eax, dword ptr [edx + 4]\n-lea ecx, [eax + ecx - 0x50]\n-call LegoPathActor::VTable0x68 (FUNCTION)\n-ret 0xc\n-int3 \n-int3 \n-int3 \n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-jmp -0x1588\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-sub ecx, 0x34\n-jmp 0x2075\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-jmp -0x17e8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-jmp -0x17c8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-jmp -0xc58\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, dword ptr fs:[0]\n-push ebp\n-mov ebp, esp\n-push -1\n-push <OFFSET2>\n-push eax\n-mov dword ptr fs:[0], esp\n-sub esp, 4\n-push esi\n-mov dword ptr [ebp - 0x10], ecx\n-mov esi, ecx\n-call LegoPathActor::LegoPathActor (FUNCTION)\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0xfd\n+mov eax, edx\n+mov ecx, 'LegoPathActor' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n+jne 0x1a\n+or bl, bl\n+je 0x12\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n+jne 0xe\n+add eax, 2\n+add ecx, 2\n+or bl, bl\n+jne -0x1c\n xor eax, eax\n-mov dword ptr [ebp - 4], eax\n-mov dword ptr [esi], IslePathActor (VTABLE)\n-mov dword ptr [esi + 0x154], eax\n-mov dword ptr [esi + 0x13c], 0x40c00000\n-mov dword ptr [esi + 0x15c], 0x3f800000\n-mov dword ptr [ebp - 4], 0xffffffff\n-mov ecx, dword ptr [ebp - 0xc]\n-mov dword ptr [esi + 0x158], eax\n-mov dword ptr fs:[0], ecx\n-mov eax, esi\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0xc9\n+mov eax, edx\n+mov ecx, 'LegoActor' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n+jne 0x1a\n+or bl, bl\n+je 0x12\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n+jne 0xe\n+add eax, 2\n+add ecx, 2\n+or bl, bl\n+jne -0x1c\n+xor eax, eax\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x95\n+mov eax, edx\n+mov ecx, 'LegoEntity' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n+jne 0x1a\n+or bl, bl\n+je 0x12\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n+jne 0xe\n+add eax, 2\n+add ecx, 2\n+or bl, bl\n+jne -0x1c\n+xor eax, eax\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x65\n+mov eax, edx\n+mov ecx, 'MxEntity' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n+jne 0x1a\n+or bl, bl\n+je 0x12\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n+jne 0xe\n+add eax, 2\n+add ecx, 2\n+or bl, bl\n+jne -0x1c\n+xor eax, eax\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x35\n+mov eax, 'MxCore' (STRING)\n+mov cl, byte ptr [edx]\n+cmp cl, byte ptr [eax]\n+jne 0x1a\n+or cl, cl\n+je 0x12\n+mov cl, byte ptr [edx + 1]\n+cmp cl, byte ptr [eax + 1]\n+jne 0xe\n+add edx, 2\n+add eax, 2\n+or cl, cl\n+jne -0x1c\n+xor eax, eax\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x7\n+xor al, al\n pop esi\n-mov esp, ebp\n-pop ebp\n-ret \n-mov eax, <OFFSET5>\n+pop ebx\n+ret 4\n+mov al, 1\n+pop esi\n+pop ebx\n+ret 4"}, {"address": "0x1001a200", "name": "IslePathActor::IslePathActor", "matching": 1.0, "diff": ""}, {"address": "0x1001a280", "name": "IslePathActor::Create", "matching": 1.0, "diff": ""}, {"address": "0x1001a2a0", "name": "IslePathActor::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1001ca40", "name": "LegoWorld::LegoWorld", "matching": 1.0, "diff": ""}, {"address": "0x1001cd00", "name": "MxPresenterList::Compare", "matching": 1.0, "diff": ""}, {"address": "0x1001cd20", "name": "MxCollection<MxPresenter *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x1001cd30", "name": "MxCollection<MxPresenter *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1001cd40", "name": "MxList<MxPresenter *>::MxList<MxPresenter *>", "matching": 1.0, "diff": ""}, {"address": "0x1001cdd0", "name": "MxCollection<MxPresenter *>::~MxCollection<MxPresenter *>", "matching": 1.0, "diff": ""}, {"address": "0x1001ce20", "name": "MxList<MxPresenter *>::~MxList<MxPresenter *>", "matching": 1.0, "diff": ""}, {"address": "0x1001ceb0", "name": "MxPresenterList::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001cf20", "name": "MxPtrList<MxPresenter>::~MxPtrList<MxPresenter>", "matching": 1.0, "diff": ""}, {"address": "0x1001cf70", "name": "MxCollection<MxPresenter *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001cfe0", "name": "MxList<MxPresenter *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001d090", "name": "MxPtrList<MxPresenter>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001d100", "name": "MxPresenterList::~MxPresenterList", "matching": 1.0, "diff": ""}, {"address": "0x1001d150", "name": "Vector3::Vector3", "matching": 1.0, "diff": ""}, {"address": "0x1001d170", "name": "Mx3DPointFloat::Mx3DPointFloat", "matching": 1.0, "diff": ""}, {"address": "0x1001d190", "name": "MxEntity::MxEntity", "matching": 1.0, "diff": ""}, {"address": "0x1001d210", "name": "LegoPathControllerList::Compare", "matching": 1.0, "diff": ""}, {"address": "0x1001d230", "name": "MxCollection<LegoPathController *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x1001d240", "name": "MxList<LegoPathController *>::MxList<LegoPathController *>", "matching": 1.0, "diff": ""}, {"address": "0x1001d2d0", "name": "MxCollection<LegoPathController *>::~MxCollection<LegoPathController *>", "matching": 1.0, "diff": ""}, {"address": "0x1001d320", "name": "MxCollection<LegoPathController *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1001d330", "name": "MxList<LegoPathController *>::~MxList<LegoPathController *>", "matching": 1.0, "diff": ""}, {"address": "0x1001d3c0", "name": "MxPtrList<LegoPathController>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1001d3d0", "name": "LegoPathControllerList::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001d440", "name": "MxPtrList<LegoPathController>::~MxPtrList<LegoPathController>", "matching": 1.0, "diff": ""}, {"address": "0x1001d490", "name": "MxCollection<LegoPathController *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001d500", "name": "MxList<LegoPathController *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001d5b0", "name": "MxPtrList<LegoPathController>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001d620", "name": "LegoPathControllerList::~LegoPathControllerList", "matching": 1.0, "diff": ""}, {"address": "0x1001d670", "name": "LegoWorld::VTable0x5c", "matching": 1.0, "diff": ""}, {"address": "0x1001d680", "name": "LegoWorld::VTable0x64", "matching": 1.0, "diff": ""}, {"address": "0x1001d690", "name": "LegoWorld::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1001d6a0", "name": "LegoWorld::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1001d780", "name": "_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::~_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >", "matching": 1.0, "diff": ""}, {"address": "0x1001d850", "name": "_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::iterator::_Inc", "matching": 0.9166666666666666, "diff": "--- \n\n+++ \n\n@@ -1,16 +1,16 @@\n\n mov eax, dword ptr [ecx]\n mov edx, dword ptr [eax + 8]\n-cmp edx, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], edx\n je 0x11\n mov eax, dword ptr [edx]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n je 0x4\n mov edx, eax\n jmp -0xe\n mov dword ptr [ecx], edx\n ret \n mov edx, dword ptr [eax + 4]\n cmp dword ptr [edx + 8], eax\n jne 0xc\n mov dword ptr [ecx], edx\n mov eax, edx"}, {"address": "0x1001d890", "name": "_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::erase", "matching": 0.6476964769647696, "diff": "--- \n\n+++ \n\n@@ -1,49 +1,51 @@\n\n mov eax, dword ptr [esp + 8]\n sub esp, 4\n mov dword ptr [esp], eax\n push ebx\n push esi\n-mov eax, dword ptr [eax + 8]\n push edi\n+push ebp\n mov esi, ecx\n-push ebp\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n-je 0xe\n-mov ecx, dword ptr [eax]\n-cmp ecx, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n-je 0x29\n-mov eax, ecx\n+mov ecx, dword ptr [eax + 8]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], ecx\n+je 0x14\n+mov eax, dword ptr [ecx]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n+je 0x4\n+mov ecx, eax\n jmp -0xe\n+mov dword ptr [esp + 0x1c], ecx\n+jmp 0x29\n mov ecx, dword ptr [esp + 0x1c]\n mov eax, dword ptr [ecx + 4]\n cmp dword ptr [eax + 8], ecx\n jne 0x10\n mov dword ptr [esp + 0x1c], eax\n mov eax, dword ptr [eax + 4]\n mov ecx, dword ptr [esp + 0x1c]\n cmp dword ptr [eax + 8], ecx\n je -0x10\n mov ecx, dword ptr [esp + 0x1c]\n cmp dword ptr [ecx + 8], eax\n je 0x4\n mov dword ptr [esp + 0x1c], eax\n mov ecx, dword ptr [esp + 0x10]\n mov ebx, dword ptr [ecx]\n-cmp ebx, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], ebx\n je 0x26\n lea edi, [ecx + 8]\n mov edx, dword ptr [edi]\n-cmp edx, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], edx\n je 0x15\n mov eax, dword ptr [edx]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n je 0x4\n mov edx, eax\n jmp -0xe\n mov ecx, edx\n mov edx, dword ptr [edx + 8]\n jmp 0xe\n mov edx, ebx\n jmp 0xa\n mov edi, dword ptr [esp + 0x10]\n mov edx, dword ptr [edi + 8]\n@@ -63,51 +65,51 @@\n\n mov dword ptr [eax + 8], edx\n jmp 0x2\n mov dword ptr [eax], edx\n mov ebx, dword ptr [esi + 4]\n mov eax, dword ptr [esp + 0x10]\n cmp dword ptr [ebx], eax\n jne 0x26\n mov eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n cmp dword ptr [edi], eax\n je 0x14\n-mov eax, edx\n-mov edi, dword ptr [eax]\n-cmp edi, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n-je 0x4\n-mov eax, edi\n+mov edi, edx\n+mov eax, dword ptr [edi]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n+je 0x4\n+mov edi, eax\n jmp -0xe\n-mov dword ptr [ebx], eax\n+mov dword ptr [ebx], edi\n jmp 0x9\n mov eax, dword ptr [esp + 0x10]\n mov ebp, dword ptr [eax + 4]\n mov dword ptr [ebx], ebp\n mov edi, dword ptr [esi + 4]\n mov eax, dword ptr [esp + 0x10]\n add edi, 8\n cmp dword ptr [edi], eax\n-jne 0x8a\n+jne 0x88\n mov ebx, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n cmp dword ptr [eax], ebx\n je 0x15\n mov eax, edx\n mov ebx, dword ptr [eax + 8]\n-cmp ebx, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], ebx\n je 0x4\n mov eax, ebx\n jmp -0xf\n mov dword ptr [edi], eax\n-jmp 0x6b\n+jmp 0x69\n mov eax, dword ptr [esp + 0x10]\n mov ebx, dword ptr [eax + 4]\n mov dword ptr [edi], ebx\n-jmp 0x60\n+jmp 0x5e\n mov eax, dword ptr [esp + 0x10]\n mov dword ptr [ebx + 4], ecx\n mov ebx, dword ptr [eax]\n mov dword ptr [ecx], ebx\n cmp dword ptr [edi], ecx\n jne 0x5\n mov dword ptr [edx + 4], ecx\n jmp 0x15\n mov eax, dword ptr [ecx + 4]\n mov dword ptr [edx + 4], eax\n@@ -123,195 +125,192 @@\n\n cmp dword ptr [eax], edi\n je 0xc\n mov eax, dword ptr [edi + 4]\n cmp dword ptr [eax], edi\n je 0x5\n mov dword ptr [eax + 8], ecx\n jmp 0x2\n mov dword ptr [eax], ecx\n mov eax, dword ptr [esp + 0x10]\n mov ebx, dword ptr [eax + 4]\n-add eax, 0x10\n+lea edi, [eax + 0x10]\n mov dword ptr [ecx + 4], ebx\n-mov edi, dword ptr [ecx + 0x10]\n-mov ebx, dword ptr [eax]\n+mov ebx, dword ptr [edi]\n+mov ebp, dword ptr [ecx + 0x10]\n mov dword ptr [ecx + 0x10], ebx\n-mov ecx, dword ptr [esp + 0x10]\n-mov dword ptr [eax], edi\n+mov ecx, eax\n+mov dword ptr [edi], ebp\n cmp dword ptr [ecx + 0x10], 1\n-jne 0x29e\n+jne 0x298\n mov eax, dword ptr [esi + 4]\n cmp dword ptr [eax + 4], edx\n-je 0x28b\n+je 0x285\n cmp dword ptr [edx + 0x10], 1\n-jne 0x281\n+jne 0x27b\n lea ebx, [edx + 4]\n mov eax, dword ptr [ebx]\n mov edi, dword ptr [eax]\n-cmp edi, edx\n+cmp edx, edi\n jne 0x76\n mov edi, dword ptr [eax + 8]\n cmp dword ptr [edi + 0x10], 0\n jne 0x52\n mov dword ptr [edi + 0x10], 1\n mov eax, dword ptr [ebx]\n mov dword ptr [eax + 0x10], 0\n-mov eax, dword ptr [ebx]\n-mov ebp, dword ptr [eax + 8]\n-mov edi, dword ptr [ebp]\n-mov dword ptr [eax + 8], edi\n-mov edi, dword ptr [ebp]\n-cmp edi, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n-je 0x3\n-mov dword ptr [edi + 4], eax\n-mov edi, dword ptr [eax + 4]\n-mov dword ptr [ebp + 4], edi\n+mov edi, dword ptr [ebx]\n+mov ebp, dword ptr [edi + 8]\n+mov eax, dword ptr [ebp]\n+mov dword ptr [edi + 8], eax\n+mov eax, dword ptr [ebp]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n+je 0x3\n+mov dword ptr [eax + 4], edi\n+mov eax, dword ptr [edi + 4]\n+mov dword ptr [ebp + 4], eax\n+mov eax, dword ptr [esi + 4]\n+add eax, 4\n+cmp dword ptr [eax], edi\n+je 0xc\n+mov eax, dword ptr [edi + 4]\n+cmp dword ptr [eax], edi\n+je 0x5\n+mov dword ptr [eax + 8], ebp\n+jmp 0x2\n+mov dword ptr [eax], ebp\n+mov dword ptr [ebp], edi\n+mov dword ptr [edi + 4], ebp\n+mov eax, dword ptr [ebx]\n+mov edi, dword ptr [eax + 8]\n+mov eax, dword ptr [edi]\n+cmp dword ptr [eax + 0x10], 1\n+jne 0x9a\n+mov eax, dword ptr [edi + 8]\n+cmp dword ptr [eax + 0x10], 1\n+jne 0x8d\n+jmp 0x71\n+cmp dword ptr [edi + 0x10], 0\n+jne 0x52\n+mov dword ptr [edi + 0x10], 1\n+mov eax, dword ptr [ebx]\n+mov dword ptr [eax + 0x10], 0\n+mov ebp, dword ptr [ebx]\n+mov eax, dword ptr [ebp]\n+mov edi, dword ptr [eax + 8]\n+mov dword ptr [ebp], edi\n+mov edi, dword ptr [eax + 8]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], edi\n+je 0x3\n+mov dword ptr [edi + 4], ebp\n+mov edi, dword ptr [ebp + 4]\n+mov dword ptr [eax + 4], edi\n mov edi, dword ptr [esi + 4]\n add edi, 4\n-cmp dword ptr [edi], eax\n-je 0xc\n-mov edi, dword ptr [eax + 4]\n-cmp dword ptr [edi], eax\n-je 0x5\n-mov dword ptr [edi + 8], ebp\n-jmp 0x2\n-mov dword ptr [edi], ebp\n-mov dword ptr [ebp], eax\n-mov dword ptr [eax + 4], ebp\n-mov eax, dword ptr [ebx]\n-mov edi, dword ptr [eax + 8]\n-mov eax, dword ptr [edi]\n-cmp dword ptr [eax + 0x10], 1\n-jne 0x98\n-mov eax, dword ptr [edi + 8]\n-cmp dword ptr [eax + 0x10], 1\n-jne 0x8b\n-jmp 0x6f\n-cmp dword ptr [edi + 0x10], 0\n-jne 0x50\n-mov dword ptr [edi + 0x10], 1\n-mov eax, dword ptr [ebx]\n-mov dword ptr [eax + 0x10], 0\n-mov eax, dword ptr [ebx]\n-mov ebp, dword ptr [eax]\n-mov edi, dword ptr [ebp + 8]\n-mov dword ptr [eax], edi\n-mov edi, dword ptr [ebp + 8]\n-cmp edi, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n-je 0x3\n-mov dword ptr [edi + 4], eax\n-mov edi, dword ptr [eax + 4]\n-mov dword ptr [ebp + 4], edi\n-mov edi, dword ptr [esi + 4]\n-add edi, 4\n-cmp dword ptr [edi], eax\n+cmp dword ptr [edi], ebp\n je 0xd\n-mov edi, dword ptr [eax + 4]\n+mov edi, dword ptr [ebp + 4]\n add edi, 8\n-cmp dword ptr [edi], eax\n-je 0x3\n-mov edi, dword ptr [eax + 4]\n-mov dword ptr [edi], ebp\n-mov dword ptr [ebp + 8], eax\n-mov dword ptr [eax + 4], ebp\n+cmp dword ptr [edi], ebp\n+je 0x3\n+mov edi, dword ptr [ebp + 4]\n+mov dword ptr [edi], eax\n+mov dword ptr [eax + 8], ebp\n+mov dword ptr [ebp + 4], eax\n mov eax, dword ptr [ebx]\n mov edi, dword ptr [eax]\n mov eax, dword ptr [edi + 8]\n cmp dword ptr [eax + 0x10], 1\n-jne 0xef\n-mov eax, dword ptr [edi]\n-cmp dword ptr [eax + 0x10], 1\n-jne 0xe3\n+jne 0xe7\n+mov eax, dword ptr [edi]\n+cmp dword ptr [eax + 0x10], 1\n+jne 0xdb\n mov dword ptr [edi + 0x10], 0\n mov edx, dword ptr [ebx]\n mov eax, dword ptr [esi + 4]\n cmp dword ptr [eax + 4], edx\n-jne -0x10f\n-jmp 0x177\n-mov eax, dword ptr [edi + 8]\n-cmp dword ptr [eax + 0x10], 1\n-jne 0x52\n+jne -0x111\n+jmp 0x16f\n+mov eax, dword ptr [edi + 8]\n+cmp dword ptr [eax + 0x10], 1\n+jne 0x53\n mov eax, dword ptr [edi]\n mov dword ptr [eax + 0x10], 1\n mov dword ptr [edi + 0x10], 0\n mov ebx, dword ptr [edi]\n mov ebp, dword ptr [ebx + 8]\n mov dword ptr [edi], ebp\n mov eax, dword ptr [ebx + 8]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], edi\n mov eax, dword ptr [edi + 4]\n mov dword ptr [ebx + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], edi\n-je 0xf\n-mov ebp, dword ptr [edi + 4]\n-lea eax, [ebp + 8]\n-cmp dword ptr [eax], edi\n-je 0x5\n+je 0x10\n+mov eax, dword ptr [edi + 4]\n+lea ebp, [eax + 8]\n+cmp dword ptr [ebp], edi\n+jne 0x5\n mov dword ptr [ebp], ebx\n jmp 0x2\n mov dword ptr [eax], ebx\n mov dword ptr [ebx + 8], edi\n mov dword ptr [edi + 4], ebx\n mov eax, dword ptr [edx + 4]\n mov edi, dword ptr [eax + 8]\n mov eax, dword ptr [edx + 4]\n mov ebx, dword ptr [eax + 0x10]\n mov dword ptr [edi + 0x10], ebx\n mov ebx, 1\n mov eax, dword ptr [edx + 4]\n mov dword ptr [eax + 0x10], ebx\n mov ebp, dword ptr [edi + 8]\n mov dword ptr [ebp + 0x10], ebx\n-mov edi, dword ptr [edx + 4]\n-mov ebx, dword ptr [edi + 8]\n-mov eax, dword ptr [ebx]\n-mov dword ptr [edi + 8], eax\n-mov eax, dword ptr [ebx]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n-je 0x3\n-mov dword ptr [eax + 4], edi\n-mov eax, dword ptr [edi + 4]\n-mov dword ptr [ebx + 4], eax\n-mov eax, dword ptr [esi + 4]\n-add eax, 4\n-cmp dword ptr [eax], edi\n-je 0x20\n-mov eax, dword ptr [edi + 4]\n-cmp dword ptr [eax], edi\n-je 0xd\n-mov dword ptr [eax + 8], ebx\n-mov dword ptr [ebx], edi\n-mov dword ptr [edi + 4], ebx\n-jmp 0xc6\n-mov dword ptr [eax], ebx\n-mov dword ptr [ebx], edi\n-mov dword ptr [edi + 4], ebx\n-jmp 0xba\n-mov dword ptr [eax], ebx\n-mov dword ptr [ebx], edi\n-mov dword ptr [edi + 4], ebx\n-jmp 0xae\n+mov ebx, dword ptr [edx + 4]\n+mov edi, dword ptr [ebx + 8]\n+mov eax, dword ptr [edi]\n+mov dword ptr [ebx + 8], eax\n+mov eax, dword ptr [edi]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n+je 0x3\n+mov dword ptr [eax + 4], ebx\n+mov eax, dword ptr [ebx + 4]\n+mov dword ptr [edi + 4], eax\n+mov eax, dword ptr [esi + 4]\n+add eax, 4\n+cmp dword ptr [eax], ebx\n+je 0x1a\n+mov eax, dword ptr [ebx + 4]\n+cmp dword ptr [eax], ebx\n+je 0xa\n+mov dword ptr [eax + 8], edi\n+mov dword ptr [edi], ebx\n+jmp 0xbd\n+mov dword ptr [eax], edi\n+mov dword ptr [edi], ebx\n+jmp 0xb4\n+mov dword ptr [eax], edi\n+mov dword ptr [edi], ebx\n+jmp 0xab\n mov eax, dword ptr [edi]\n cmp dword ptr [eax + 0x10], 1\n jne 0x4e\n mov eax, dword ptr [edi + 8]\n mov dword ptr [eax + 0x10], 1\n mov dword ptr [edi + 0x10], 0\n mov ebx, dword ptr [edi + 8]\n mov ebp, dword ptr [ebx]\n mov dword ptr [edi + 8], ebp\n mov eax, dword ptr [ebx]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], edi\n mov eax, dword ptr [edi + 4]\n mov dword ptr [ebx + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], edi\n je 0xc\n mov eax, dword ptr [edi + 4]\n cmp dword ptr [eax], edi\n@@ -329,21 +328,21 @@\n\n mov ebx, 1\n mov eax, dword ptr [edx + 4]\n mov dword ptr [eax + 0x10], ebx\n mov ebp, dword ptr [edi]\n mov dword ptr [ebp + 0x10], ebx\n mov ebx, dword ptr [edx + 4]\n mov edi, dword ptr [ebx]\n mov eax, dword ptr [edi + 8]\n mov dword ptr [ebx], eax\n mov eax, dword ptr [edi + 8]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], ebx\n mov eax, dword ptr [ebx + 4]\n mov dword ptr [edi + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], ebx\n je 0xf\n mov ebp, dword ptr [ebx + 4]\n lea eax, [ebp + 8]\n@@ -360,10 +359,11 @@\n\n mov ecx, dword ptr [esp + 0x20]\n mov eax, dword ptr [esp + 0x1c]\n add esp, 4\n dec dword ptr [esi + 0xc]\n mov dword ptr [eax], ecx\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 4\n+ret 8"}, {"address": "0x1001dcf0", "name": "_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Erase", "matching": 0.5652173913043478, "diff": "--- \n\n+++ \n\n@@ -1,23 +1,23 @@\n\n push ebx\n push esi\n-mov esi, dword ptr [esp + 0xc]\n push edi\n-mov edi, ecx\n-mov ebx, esi\n-cmp esi, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+mov esi, ecx\n+mov ebx, dword ptr [esp + 0x10]\n+mov edi, ebx\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], ebx\n je 0x20\n-mov eax, dword ptr [ebx + 8]\n-mov ecx, edi\n+mov eax, dword ptr [edi + 8]\n+mov ecx, esi\n push eax\n call _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Erase (FUNCTION)\n-mov ebx, dword ptr [ebx]\n-push esi\n-mov esi, ebx\n+mov edi, dword ptr [edi]\n+push ebx\n+mov ebx, edi\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-cmp ebx, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp edi, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n jne -0x20\n pop edi\n pop esi\n pop ebx\n ret 4"}, {"address": "0x1001dd30", "name": "_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Init", "matching": 1.0, "diff": ""}, {"address": "0x1001dde0", "name": "_Lockit::~_Lockit", "matching": 1.0, "diff": ""}, {"address": "0x1001ddf0", "name": "list<AutoROI *,allocator<AutoROI *> >::~list<AutoROI *,allocator<AutoROI *> >", "matching": 0.972972972972973, "diff": "--- \n\n+++ \n\n@@ -16,21 +16,21 @@\n\n mov eax, dword ptr [eax]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [edx]\n mov eax, dword ptr [esp + 8]\n push eax\n mov edx, dword ptr [eax]\n mov dword ptr [edx + 4], ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 8]\n-cmp dword ptr [esp + 0x10], edi\n+cmp edi, dword ptr [esp + 0x10]\n jne -0x2e\n mov eax, dword ptr [esi + 4]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [esi + 4], 0\n add esp, 4\n mov dword ptr [esi + 8], 0\n pop edi\n pop esi\n add esp, 0xc"}, {"address": "0x1001de60", "name": "list<AutoROI *,allocator<AutoROI *> >::_Buynode", "matching": 1.0, "diff": ""}, {"address": "0x1001de90", "name": "set<MxCore *,CoreSetCompare,allocator<MxCore *> >::~set<MxCore *,CoreSetCompare,allocator<MxCore *> >", "matching": 1.0, "diff": ""}, {"address": "0x1001dee0", "name": "LegoWorld::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001df00", "name": "Set<MxCore *,CoreSetCompare>::~Set<MxCore *,CoreSetCompare>", "matching": 1.0, "diff": ""}, {"address": "0x1001df50", "name": "List<AutoROI *>::~List<AutoROI *>", "matching": 1.0, "diff": ""}, {"address": "0x1001dfa0", "name": "LegoWorld::~LegoWorld", "matching": 1.0, "diff": ""}, {"address": "0x1001e0b0", "name": "LegoWorld::Create", "matching": 1.0, "diff": ""}, {"address": "0x1001e2d0", "name": "LegoEntityList::Compare", "matching": 1.0, "diff": ""}, {"address": "0x1001e2f0", "name": "MxCollection<LegoEntity *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x1001e300", "name": "MxCollection<LegoEntity *>::~MxCollection<LegoEntity *>", "matching": 1.0, "diff": ""}, {"address": "0x1001e350", "name": "MxCollection<LegoEntity *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1001e360", "name": "MxList<LegoEntity *>::~MxList<LegoEntity *>", "matching": 1.0, "diff": ""}, {"address": "0x1001e3f0", "name": "MxPtrList<LegoEntity>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1001e400", "name": "LegoEntityList::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001e470", "name": "MxPtrList<LegoEntity>::~MxPtrList<LegoEntity>", "matching": 1.0, "diff": ""}, {"address": "0x1001e4c0", "name": "MxCollection<LegoEntity *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001e530", "name": "MxList<LegoEntity *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001e5e0", "name": "MxPtrList<LegoEntity>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001e650", "name": "LegoCacheSoundList::Compare", "matching": 1.0, "diff": ""}, {"address": "0x1001e670", "name": "MxCollection<LegoCacheSound *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x1001e680", "name": "MxCollection<LegoCacheSound *>::~MxCollection<LegoCacheSound *>", "matching": 1.0, "diff": ""}, {"address": "0x1001e6d0", "name": "MxCollection<LegoCacheSound *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1001e6e0", "name": "MxList<LegoCacheSound *>::~MxList<LegoCacheSound *>", "matching": 1.0, "diff": ""}, {"address": "0x1001e770", "name": "MxPtrList<LegoCacheSound>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1001e780", "name": "LegoCacheSoundList::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001e7f0", "name": "MxPtrList<LegoCacheSound>::~MxPtrList<LegoCacheSound>", "matching": 1.0, "diff": ""}, {"address": "0x1001e840", "name": "MxCollection<LegoCacheSound *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001e8b0", "name": "MxList<LegoCacheSound *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001e960", "name": "MxPtrList<LegoCacheSound>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001e9d0", "name": "LegoWorld::Destroy", "matching": 0.9894736842105263, "diff": "--- \n\n+++ \n\n@@ -108,57 +108,56 @@\n\n push ebx\n push 0x80\n push esi\n call FUN_100b7220 (FUNCTION)\n add esp, 0xc\n mov ecx, dword ptr [ebp - 0x14]\n call dword ptr [edi + 0x40]\n jmp -0x90\n mov ecx, dword ptr [ebp - 0x10]\n cmp dword ptr [ecx + 0xb4], 0\n-je 0x67\n+je 0x64\n lea esi, [ecx + 0xa8]\n mov ecx, dword ptr [ebp - 0x10]\n mov eax, dword ptr [ecx + 0xac]\n mov ecx, esi\n mov edx, dword ptr [eax]\n lea eax, [ebp - 0x48]\n push edx\n push eax\n mov edi, dword ptr [edx + 0xc]\n call _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::erase (FUNCTION)\n mov ebx, dword ptr [edi]\n push 'MxPresenter' (STRING)\n mov ecx, edi\n call dword ptr [ebx + 0x10]\n test al, al\n-je 0x21\n-mov dword ptr [ebp - 0x14], edi\n+je 0x1e\n mov eax, dword ptr [edi + 0x1c]\n test eax, eax\n je 0x21\n push 0\n push 0x80\n push eax\n call FUN_100b7220 (FUNCTION)\n add esp, 0xc\n mov ecx, edi\n call dword ptr [ebx + 0x40]\n jmp 0xa\n test edi, edi\n je 0x6\n push 1\n mov ecx, edi\n call dword ptr [ebx]\n mov ecx, dword ptr [ebp - 0x10]\n cmp dword ptr [ecx + 0xb4], 0\n-jne -0x61\n+jne -0x5e\n lea ecx, [ebp - 0x44]\n xor esi, esi\n call MxCore::MxCore (FUNCTION)\n mov byte ptr [ebp - 4], 4\n mov eax, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 0x38], esi\n mov dword ptr [ebp - 0x44], MxListCursor<MxPresenter *> (VTABLE)\n mov byte ptr [ebp - 4], 5\n mov dword ptr [ebp - 0x44], MxPtrListCursor<MxPresenter> (VTABLE)\n mov byte ptr [ebp - 4], 6\n@@ -371,10 +370,11 @@\n\n jmp MxPresenterListCursor::~MxPresenterListCursor (FUNCTION)\n lea ecx, [ebp - 0x34]\n jmp MxCore::~MxCore (FUNCTION)\n lea ecx, [ebp - 0x34]\n jmp MxListCursor<MxPresenter *>::~MxListCursor<MxPresenter *> (FUNCTION)\n lea ecx, [ebp - 0x34]\n jmp MxPtrListCursor<MxPresenter>::~MxPtrListCursor<MxPresenter> (FUNCTION)\n mov eax, <OFFSET46>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x34]\n+jmp MxPresenterListCursor::~MxPresenterListCursor (FUNCTION)"}, {"address": "0x1001eed0", "name": "MxPresenterListCursor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001ef40", "name": "MxPtrListCursor<MxPresenter>::~MxPtrListCursor<MxPresenter>", "matching": 1.0, "diff": ""}, {"address": "0x1001ef90", "name": "MxListCursor<MxPresenter *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001f000", "name": "MxPtrListCursor<MxPresenter>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001f070", "name": "MxListCursor<MxPresenter *>::~MxListCursor<MxPresenter *>", "matching": 1.0, "diff": ""}, {"address": "0x1001f0c0", "name": "MxPresenterListCursor::~MxPresenterListCursor", "matching": 1.0, "diff": ""}, {"address": "0x1001f110", "name": "LegoEntityListCursor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001f180", "name": "MxPtrListCursor<LegoEntity>::~MxPtrListCursor<LegoEntity>", "matching": 1.0, "diff": ""}, {"address": "0x1001f1d0", "name": "MxListCursor<LegoEntity *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001f240", "name": "MxPtrListCursor<LegoEntity>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001f2b0", "name": "MxListCursor<LegoEntity *>::~MxListCursor<LegoEntity *>", "matching": 1.0, "diff": ""}, {"address": "0x1001f300", "name": "LegoEntityListCursor::~LegoEntityListCursor", "matching": 1.0, "diff": ""}, {"address": "0x1001f350", "name": "LegoCacheSoundListCursor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001f3c0", "name": "MxPtrListCursor<LegoCacheSound>::~MxPtrListCursor<LegoCacheSound>", "matching": 1.0, "diff": ""}, {"address": "0x1001f410", "name": "MxListCursor<LegoCacheSound *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001f480", "name": "MxPtrListCursor<LegoCacheSound>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001f4f0", "name": "MxListCursor<LegoCacheSound *>::~MxListCursor<LegoCacheSound *>", "matching": 1.0, "diff": ""}, {"address": "0x1001f540", "name": "LegoCacheSoundListCursor::~LegoCacheSoundListCursor", "matching": 1.0, "diff": ""}, {"address": "0x1001f590", "name": "list<AutoROI *,allocator<AutoROI *> >::erase", "matching": 1.0, "diff": ""}, {"address": "0x1001f5e0", "name": "LegoWorld::Notify", "matching": 1.0, "diff": ""}, {"address": "0x1001f630", "name": "LegoWorld::VTable0x54", "matching": 1.0, "diff": ""}, {"address": "0x10020220", "name": "LegoWorld::Add", "matching": 0.8795811518324608, "diff": "--- \n\n+++ \n\n@@ -1,65 +1,63 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 0x1c\n+sub esp, 0x18\n cmp dword ptr [ebp + 8], 0\n push ebx\n mov dword ptr [ebp - 0x20], ecx\n push esi\n push edi\n-je 0x10d\n+je 0x107\n push 'LegoWorld' (STRING)\n mov eax, dword ptr [ebp + 8]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x10]\n test al, al\n-jne 0xf6\n+jne 0xf0\n push 'LegoWorldPresenter' (STRING)\n mov eax, dword ptr [ebp + 8]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x10]\n test al, al\n-jne 0xdf\n+jne 0xd9\n push 'LegoAnimPresenter' (STRING)\n mov eax, dword ptr [ebp + 8]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x10]\n test al, al\n-je 0x39\n+je 0x33\n+mov esi, dword ptr [ebp + 8]\n push 'ConfigAnimation' (STRING)\n-mov eax, dword ptr [ebp + 8]\n-mov ecx, dword ptr [eax + 0x1c]\n-mov edx, dword ptr [ecx + 0x18]\n-push edx\n+mov eax, dword ptr [esi + 0x1c]\n+mov ecx, dword ptr [eax + 0x18]\n+push ecx\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n-jne 0x1e\n-mov eax, dword ptr [ebp + 8]\n-push eax\n+jne 0x18\n+push esi\n call FUN_1003e050 (FUNCTION)\n add esp, 4\n-mov eax, dword ptr [ebp + 8]\n-mov ecx, dword ptr [eax + 0x1c]\n-mov edx, dword ptr [eax + 0x64]\n-mov ebx, dword ptr [edx + 8]\n-mov eax, dword ptr [ecx]\n-push ebx\n-call dword ptr [eax + 0x28]\n+mov ecx, dword ptr [esi + 0x1c]\n+mov eax, dword ptr [esi + 0x64]\n+mov ebx, dword ptr [ecx]\n+mov edx, dword ptr [eax + 8]\n+push edx\n+call dword ptr [ebx + 0x28]\n push 'MxControlPresenter' (STRING)\n mov eax, dword ptr [ebp + 8]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x10]\n test al, al\n je 0xce\n mov esi, dword ptr [ebp - 0x20]\n lea ecx, [ebp - 0x1c]\n add esi, 0xb8\n@@ -108,21 +106,21 @@\n\n push 0\n mov ecx, dword ptr [ebp - 0x20]\n mov edx, dword ptr [ebp + 8]\n mov eax, dword ptr [ecx + 0xcc]\n push eax\n mov ecx, esi\n push edx\n call MxList<MxPresenter *>::InsertEntry (FUNCTION)\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET12>\n-jmp 0x340\n+jmp 0x322\n lea ecx, [ebp - 0x1c]\n jmp MxListCursor<MxPresenter *>::~MxListCursor<MxPresenter *> (FUNCTION)\n lea ecx, [ebp - 0x1c]\n jmp MxPtrListCursor<MxPresenter>::~MxPtrListCursor<MxPresenter> (FUNCTION)\n lea ecx, [ebp - 0x1c]\n jmp MxPresenterListCursor::~MxPresenterListCursor (FUNCTION)\n push 'MxEntity' (STRING)\n mov eax, dword ptr [ebp + 8]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n@@ -170,56 +168,56 @@\n\n mov ecx, dword ptr [ebp - 0x20]\n push 0\n mov edx, dword ptr [ebp + 8]\n mov ecx, dword ptr [ecx + 0x9c]\n mov eax, dword ptr [ecx + 0x14]\n push eax\n push edx\n call MxList<LegoEntity *>::InsertEntry (FUNCTION)\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET21>\n-jmp 0x263\n+jmp 0x245\n lea ecx, [ebp - 0x1c]\n jmp MxListCursor<LegoEntity *>::~MxListCursor<LegoEntity *> (FUNCTION)\n lea ecx, [ebp - 0x1c]\n jmp MxPtrListCursor<LegoEntity>::~MxPtrListCursor<LegoEntity> (FUNCTION)\n lea ecx, [ebp - 0x1c]\n jmp LegoEntityListCursor::~LegoEntityListCursor (FUNCTION)\n push 'LegoLocomotionAnimPresenter' (STRING)\n mov eax, dword ptr [ebp + 8]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x10]\n test al, al\n-jne 0x161\n+jne 0x143\n push 'LegoHideAnimPresenter' (STRING)\n mov eax, dword ptr [ebp + 8]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x10]\n test al, al\n-jne 0x14a\n+jne 0x12c\n push 'LegoLoopingAnimPresenter' (STRING)\n mov eax, dword ptr [ebp + 8]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x10]\n test al, al\n-jne 0x133\n+jne 0x115\n push 'LegoCacheSound' (STRING)\n mov eax, dword ptr [ebp + 8]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x10]\n-test al, al\n-je 0xc6\n-mov ecx, dword ptr [ebp - 0x20]\n+mov ecx, dword ptr [ebp - 0x20]\n+test al, al\n+je 0xc3\n mov eax, dword ptr [ecx + 0xa0]\n lea ecx, [ebp - 0x1c]\n push eax\n call MxListCursor<LegoCacheSound *>::MxListCursor<LegoCacheSound *> (FUNCTION)\n mov dword ptr [ebp - 4], 6\n mov dword ptr [ebp - 0x1c], MxPtrListCursor<LegoCacheSound> (VTABLE)\n mov dword ptr [ebp - 4], 7\n mov dword ptr [ebp - 0x1c], LegoCacheSoundListCursor (VTABLE)\n mov eax, 0xffffffff\n mov esi, dword ptr [ebp + 8]\n@@ -253,47 +251,36 @@\n\n mov ecx, dword ptr [ebp - 0x20]\n push 0\n mov edx, dword ptr [ebp + 8]\n mov ecx, dword ptr [ecx + 0xa0]\n mov eax, dword ptr [ecx + 0x14]\n push eax\n push edx\n call MxList<LegoCacheSound *>::InsertEntry (FUNCTION)\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET33>\n-jmp 0x141\n+jmp 0x123\n lea ecx, [ebp - 0x1c]\n jmp MxListCursor<LegoCacheSound *>::~MxListCursor<LegoCacheSound *> (FUNCTION)\n lea ecx, [ebp - 0x1c]\n jmp MxPtrListCursor<LegoCacheSound>::~MxPtrListCursor<LegoCacheSound> (FUNCTION)\n lea ecx, [ebp - 0x1c]\n jmp LegoCacheSoundListCursor::~LegoCacheSoundListCursor (FUNCTION)\n-mov esi, dword ptr [ebp - 0x20]\n+mov edi, dword ptr [ecx + 0xac]\n+lea esi, [ecx + 0xa8]\n lea eax, [ebp + 8]\n-add esi, 0xa8\n-push eax\n lea ecx, [ebp - 0x10]\n+push eax\n push ecx\n mov ecx, esi\n-call <OFFSET38>\n-mov ecx, dword ptr [ebp - 0x20]\n-mov edx, dword ptr [ecx + 0xac]\n-cmp dword ptr [ebp - 0x10], edx\n-je 0xe\n-mov eax, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [ebp + 8]\n-cmp dword ptr [eax + 0xc], ecx\n-lea eax, [ebp - 0x10]\n-jle 0x6\n-lea eax, [ebp - 0x28]\n-mov dword ptr [ebp - 0x28], edx\n-cmp dword ptr [eax], edx\n+call _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::find (FUNCTION)\n+cmp edi, dword ptr [ebp - 0x10]\n jne 0xe7\n lea eax, [ebp + 8]\n lea ecx, [ebp - 0x14]\n push eax\n push ecx\n mov ecx, esi\n call _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::insert (FUNCTION)\n jmp 0xd3\n mov esi, dword ptr [ebp - 0x20]\n lea ecx, [ebp - 0x1c]\n@@ -325,21 +312,21 @@\n\n je 0xd\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 8]\n mov dword ptr [ebp - 0x10], ecx\n cmp ecx, ebx\n jne -0x22\n cmp dword ptr [ebp - 0x10], 0\n je 0x11\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET40>\n-jmp -0x32c\n+jmp -0x30e\n call Lego (FUNCTION)\n push eax\n mov ecx, dword ptr [ebp + 8]\n call MxPresenter::SendToCompositePresenter (FUNCTION)\n push 0\n mov ecx, dword ptr [ebp - 0x20]\n mov edx, dword ptr [ebp + 8]\n mov eax, dword ptr [ecx + 0x94]\n push eax\n mov ecx, esi\n@@ -351,34 +338,43 @@\n\n call dword ptr [ebx + 0x10]\n test al, al\n je 0xc\n mov eax, dword ptr [ebp + 8]\n mov ecx, dword ptr [ebp - 0x20]\n mov dword ptr [ecx + 0xf0], eax\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET40>\n mov ecx, dword ptr [ebp - 0x20]\n cmp dword ptr [ecx + 0xdc], 0\n-je -0x38a\n+je -0x36c\n push 'MxPresenter' (STRING)\n mov eax, dword ptr [ebp + 8]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x10]\n test al, al\n-je -0x3a1\n+je -0x383\n mov ecx, dword ptr [ebp + 8]\n call MxPresenter::IsEnabled (FUNCTION)\n test al, al\n-je -0x3b1\n+je -0x393\n push 0\n mov eax, dword ptr [ebp + 8]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x54]\n lea ecx, [ebp + 8]\n lea eax, [ebp - 0x24]\n push ecx\n push eax\n mov ecx, dword ptr [ebp - 0x20]\n add ecx, 0xd0\n call _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::insert (FUNCTION)\n+jmp -0x3ba\n+lea ecx, [ebp - 0x1c]\n+jmp MxListCursor<MxPresenter *>::~MxListCursor<MxPresenter *> (FUNCTION)\n+lea ecx, [ebp - 0x1c]\n+jmp MxPtrListCursor<MxPresenter>::~MxPtrListCursor<MxPresenter> (FUNCTION)\n+mov eax, <OFFSET45>\n+jmp ___CxxFrameHandler (FUNCTION)\n+lea ecx, [ebp - 0x1c]\n+jmp MxPresenterListCursor::~MxPresenterListCursor (FUNCTION)"}, {"address": "0x10020760", "name": "MxListCursor<MxPresenter *>::MxListCursor<MxPresenter *>", "matching": 1.0, "diff": ""}, {"address": "0x100207d0", "name": "MxListCursor<LegoEntity *>::MxListCursor<LegoEntity *>", "matching": 1.0, "diff": ""}, {"address": "0x10020840", "name": "MxListCursor<LegoCacheSound *>::MxListCursor<LegoCacheSound *>", "matching": 1.0, "diff": ""}, {"address": "0x100208b0", "name": "_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::insert", "matching": 1.0, "diff": ""}, {"address": "0x10020b20", "name": "_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::iterator::_Dec", "matching": 0.1694915254237288, "diff": "--- \n\n+++ \n\n@@ -1,30 +1,29 @@\n\n-push esi\n-mov esi, dword ptr [ecx]\n-cmp dword ptr [esi + 0x10], 0\n-jne 0xf\n-mov eax, dword ptr [esi + 4]\n-cmp dword ptr [eax + 4], esi\n-jne 0x7\n-mov eax, dword ptr [esi + 8]\n-pop esi\n+mov edx, dword ptr [ecx]\n+cmp dword ptr [edx + 0x10], 0\n+jne 0xe\n+mov eax, dword ptr [edx + 4]\n+cmp dword ptr [eax + 4], edx\n+jne 0x6\n+mov eax, dword ptr [edx + 8]\n mov dword ptr [ecx], eax\n ret \n-mov edx, dword ptr [esi]\n-cmp edx, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n-je 0x13\n-mov eax, dword ptr [edx + 8]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+mov eax, dword ptr [edx]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n+je 0x12\n+mov edx, dword ptr [eax + 8]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], edx\n je 0x4\n+mov eax, edx\n+jmp -0xf\n+mov dword ptr [ecx], eax\n+ret \n+mov eax, dword ptr [edx + 4]\n+cmp dword ptr [eax], edx\n+jne 0xb\n+mov dword ptr [ecx], eax\n mov edx, eax\n-jmp -0xf\n-pop esi\n-mov dword ptr [ecx], edx\n+mov eax, dword ptr [eax + 4]\n+cmp dword ptr [eax], edx\n+je -0xb\n+mov dword ptr [ecx], eax\n ret \n-mov edx, dword ptr [esi + 4]\n-cmp dword ptr [edx], esi\n-jne 0xb\n-mov dword ptr [ecx], edx\n-mov eax, edx\n-mov edx, dword ptr [edx + 4]\n-cmp dword ptr [edx], eax\n-je -0xb"}, {"address": "0x10020bb0", "name": "_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Buynode", "matching": 1.0, "diff": ""}, {"address": "0x10020bd0", "name": "_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Insert", "matching": 0.8317757009345794, "diff": "--- \n\n+++ \n\n@@ -17,21 +17,21 @@\n\n mov dword ptr [eax - 0xc], ebx\n mov ebx, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n mov dword ptr [eax - 4], ebx\n je 0x4\n mov edx, dword ptr [edi]\n mov dword ptr [eax], edx\n inc dword ptr [esi + 0xc]\n cmp dword ptr [esi + 4], ecx\n je 0x28\n mov eax, dword ptr [esp + 0x1c]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n jne 0x1c\n mov eax, dword ptr [edi]\n cmp dword ptr [ecx + 0xc], eax\n jg 0x15\n mov edx, dword ptr [esp + 0x10]\n mov dword ptr [ecx + 8], edx\n mov eax, dword ptr [esi + 4]\n add eax, 8\n cmp dword ptr [eax], ecx\n jne 0x26\n@@ -46,44 +46,44 @@\n\n jne 0x11\n mov dword ptr [eax], edx\n jmp 0xd\n mov edx, dword ptr [esp + 0x10]\n mov dword ptr [eax + 4], edx\n mov eax, dword ptr [esi + 4]\n mov dword ptr [eax + 8], edx\n mov ecx, dword ptr [esp + 0x10]\n mov eax, dword ptr [esi + 4]\n cmp dword ptr [eax + 4], ecx\n-je 0x1b6\n+je 0x1b3\n lea edx, [ecx + 4]\n mov eax, dword ptr [edx]\n lea ebx, [eax + 0x10]\n cmp dword ptr [ebx], 0\n-jne 0x1a5\n+jne 0x1a2\n lea edi, [eax + 4]\n mov ebp, dword ptr [edi]\n mov ebp, dword ptr [ebp]\n cmp ebp, eax\n-jne 0xbe\n+jne 0xbb\n mov ebp, dword ptr [edi]\n mov ebp, dword ptr [ebp + 8]\n cmp dword ptr [ebp + 0x10], 0\n-je 0x15c\n+je 0x159\n lea ebx, [eax + 8]\n mov edx, dword ptr [ebx]\n cmp ecx, edx\n jne 0x33\n mov ecx, eax\n mov eax, dword ptr [edx]\n mov dword ptr [ebx], eax\n mov eax, dword ptr [edx]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], ecx\n mov eax, dword ptr [edi]\n mov dword ptr [edx + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], ecx\n je 0xb\n mov eax, dword ptr [edi]\n cmp dword ptr [eax], ecx\n@@ -92,60 +92,59 @@\n\n jmp 0x2\n mov dword ptr [eax], edx\n mov dword ptr [edx], ecx\n mov dword ptr [edi], edx\n mov eax, dword ptr [ecx + 4]\n mov dword ptr [eax + 0x10], 1\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [eax + 4]\n mov dword ptr [edx + 0x10], 0\n mov eax, dword ptr [ecx + 4]\n-mov edi, dword ptr [eax + 4]\n-mov edx, dword ptr [edi]\n-mov eax, dword ptr [edx + 8]\n-mov dword ptr [edi], eax\n-mov eax, dword ptr [edx + 8]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n-je 0x3\n-mov dword ptr [eax + 4], edi\n-mov eax, dword ptr [edi + 4]\n-mov dword ptr [edx + 4], eax\n-mov eax, dword ptr [esi + 4]\n-add eax, 4\n-cmp dword ptr [eax], edi\n+mov edx, dword ptr [eax + 4]\n+mov edi, dword ptr [edx]\n+mov eax, dword ptr [edi + 8]\n+mov dword ptr [edx], eax\n+mov eax, dword ptr [edi + 8]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n+je 0x3\n+mov dword ptr [eax + 4], edx\n+mov eax, dword ptr [edx + 4]\n+mov dword ptr [edi + 4], eax\n+mov eax, dword ptr [esi + 4]\n+add eax, 4\n+cmp dword ptr [eax], edx\n je 0x24\n-mov ebx, dword ptr [edi + 4]\n+mov ebx, dword ptr [edx + 4]\n lea eax, [ebx + 8]\n-cmp dword ptr [eax], edi\n+cmp dword ptr [eax], edx\n je 0xd\n-mov dword ptr [ebx], edx\n-mov dword ptr [edx + 8], edi\n-mov dword ptr [edi + 4], edx\n-jmp 0xe5\n-mov dword ptr [eax], edx\n-mov dword ptr [edx + 8], edi\n-mov dword ptr [edi + 4], edx\n-jmp 0xd8\n-mov dword ptr [eax], edx\n-mov dword ptr [edx + 8], edi\n-mov dword ptr [edi + 4], edx\n-jmp 0xcb\n+mov dword ptr [ebx], edi\n+mov dword ptr [edi + 8], edx\n+mov dword ptr [edx + 4], edi\n+jmp 0xe2\n+mov dword ptr [eax], edi\n+mov dword ptr [edi + 8], edx\n+mov dword ptr [edx + 4], edi\n+jmp 0xd5\n+mov dword ptr [eax], edi\n+mov dword ptr [edi + 8], edx\n+jmp 0xa8\n cmp dword ptr [ebp + 0x10], 0\n je 0xa3\n mov edx, dword ptr [eax]\n cmp ecx, edx\n jne 0x38\n mov ecx, eax\n mov eax, dword ptr [edx + 8]\n mov dword ptr [ecx], eax\n mov eax, dword ptr [edx + 8]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], ecx\n mov eax, dword ptr [edi]\n mov dword ptr [edx + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], ecx\n je 0xd\n mov ebx, dword ptr [edi]\n lea eax, [ebx + 8]\n@@ -160,21 +159,21 @@\n\n mov dword ptr [eax + 0x10], 1\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [eax + 4]\n mov dword ptr [edx + 0x10], 0\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [eax + 4]\n mov edi, dword ptr [edx + 8]\n mov eax, dword ptr [edi]\n mov dword ptr [edx + 8], eax\n mov eax, dword ptr [edi]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], edx\n mov eax, dword ptr [edx + 4]\n mov dword ptr [edi + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], edx\n je 0x1a\n mov eax, dword ptr [edx + 4]\n cmp dword ptr [eax], edx\n@@ -193,22 +192,23 @@\n\n jmp 0x1e\n mov dword ptr [ebx], 1\n mov dword ptr [ebp + 0x10], 1\n mov eax, dword ptr [edx]\n mov ecx, dword ptr [eax + 4]\n mov dword ptr [ecx + 0x10], 0\n mov eax, dword ptr [edx]\n mov ecx, dword ptr [eax + 4]\n mov eax, dword ptr [esi + 4]\n cmp dword ptr [eax + 4], ecx\n-jne -0x1b6\n+jne -0x1b3\n mov eax, dword ptr [esi + 4]\n mov edx, dword ptr [esp + 0x10]\n mov ecx, dword ptr [eax + 4]\n mov eax, dword ptr [esp + 0x18]\n pop ebp\n pop edi\n mov dword ptr [ecx + 0x10], 1\n pop esi\n mov dword ptr [eax], edx\n pop ebx\n add esp, 4\n+ret 0x10"}, {"address": "0x10020e50", "name": "_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Lrotate", "matching": 0.9696969696969697, "diff": "--- \n\n+++ \n\n@@ -1,17 +1,17 @@\n\n push esi\n mov esi, dword ptr [esp + 8]\n mov edx, dword ptr [esi + 8]\n mov eax, dword ptr [edx]\n mov dword ptr [esi + 8], eax\n mov eax, dword ptr [edx]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], esi\n mov eax, dword ptr [esi + 4]\n mov dword ptr [edx + 4], eax\n mov eax, dword ptr [ecx + 4]\n add eax, 4\n cmp dword ptr [eax], esi\n je 0x1e\n mov eax, dword ptr [esi + 4]\n cmp dword ptr [eax], esi"}, {"address": "0x10020eb0", "name": "_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Rrotate", "matching": 0.38235294117647056, "diff": "--- \n\n+++ \n\n@@ -1,34 +1,34 @@\n\n+mov edx, dword ptr [esp + 4]\n push esi\n-mov esi, dword ptr [esp + 8]\n-mov edx, dword ptr [esi]\n-mov eax, dword ptr [edx + 8]\n-mov dword ptr [esi], eax\n-mov eax, dword ptr [edx + 8]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+mov esi, dword ptr [edx]\n+mov eax, dword ptr [esi + 8]\n+mov dword ptr [edx], eax\n+mov eax, dword ptr [esi + 8]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n je 0x3\n-mov dword ptr [eax + 4], esi\n-mov eax, dword ptr [esi + 4]\n-mov dword ptr [edx + 4], eax\n+mov dword ptr [eax + 4], edx\n+mov eax, dword ptr [edx + 4]\n+mov dword ptr [esi + 4], eax\n mov eax, dword ptr [ecx + 4]\n add eax, 4\n-cmp dword ptr [eax], esi\n+cmp dword ptr [eax], edx\n je 0x22\n-mov ecx, dword ptr [esi + 4]\n+mov ecx, dword ptr [edx + 4]\n lea eax, [ecx + 8]\n-cmp dword ptr [eax], esi\n+cmp dword ptr [eax], edx\n je 0xc\n-mov dword ptr [ecx], edx\n-mov dword ptr [edx + 8], esi\n-mov dword ptr [esi + 4], edx\n+mov dword ptr [ecx], esi\n+mov dword ptr [esi + 8], edx\n+mov dword ptr [edx + 4], esi\n pop esi\n ret 4\n-mov dword ptr [eax], edx\n-mov dword ptr [edx + 8], esi\n-mov dword ptr [esi + 4], edx\n+mov dword ptr [eax], esi\n+mov dword ptr [esi + 8], edx\n+mov dword ptr [edx + 4], esi\n pop esi\n ret 4\n-mov dword ptr [eax], edx\n-mov dword ptr [edx + 8], esi\n-mov dword ptr [esi + 4], edx\n+mov dword ptr [eax], esi\n+mov dword ptr [esi + 8], edx\n+mov dword ptr [edx + 4], esi\n pop esi\n ret 4"}, {"address": "0x10020f10", "name": "LegoWorld::Remove", "matching": 1.0, "diff": ""}, {"address": "0x10021340", "name": "_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::find", "matching": 0.6176470588235294, "diff": "--- \n\n+++ \n\n@@ -1,34 +1,34 @@\n\n sub esp, 8\n+mov edx, dword ptr [esp + 0x10]\n push esi\n push edi\n-mov edi, dword ptr [ecx + 4]\n-mov ecx, dword ptr [esp + 0x18]\n-mov esi, edi\n-mov eax, dword ptr [edi + 4]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+mov esi, dword ptr [ecx + 4]\n+mov edi, esi\n+mov eax, dword ptr [esi + 4]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n je 0x18\n-mov edx, dword ptr [ecx]\n-cmp dword ptr [eax + 0xc], edx\n+mov ecx, dword ptr [edx]\n+cmp dword ptr [eax + 0xc], ecx\n jl 0x6\n-mov esi, eax\n+mov edi, eax\n mov eax, dword ptr [eax]\n jmp 0x3\n mov eax, dword ptr [eax + 8]\n-cmp eax, dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil (DATA)], eax\n jne -0x16\n-mov dword ptr [esp + 8], esi\n+mov dword ptr [esp + 8], edi\n cmp edi, esi\n je 0xb\n-mov eax, dword ptr [ecx]\n-cmp dword ptr [esi + 0xc], eax\n+mov eax, dword ptr [edx]\n+cmp dword ptr [edi + 0xc], eax\n lea eax, [esp + 8]\n jle 0x8\n lea eax, [esp + 0xc]\n-mov dword ptr [esp + 0xc], edi\n+mov dword ptr [esp + 0xc], esi\n mov ecx, dword ptr [eax]\n mov eax, dword ptr [esp + 0x14]\n pop edi\n pop esi\n mov dword ptr [eax], ecx\n add esp, 8\n ret 8"}, {"address": "0x100213a0", "name": "LegoWorld::Find", "matching": 0.7232704402515723, "diff": "--- \n\n+++ \n\n@@ -1,18 +1,18 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 0x18\n+sub esp, 0x14\n mov edx, 'MxControlPresenter' (STRING)\n push ebx\n push esi\n mov ebx, dword ptr [ebp + 8]\n push edi\n mov eax, ebx\n mov edi, ecx\n mov cl, byte ptr [eax]\n cmp cl, byte ptr [edx]\n jne 0x1a\n@@ -24,51 +24,51 @@\n\n add eax, 2\n add edx, 2\n or cl, cl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n jne 0xef\n-lea ecx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x20]\n add edi, 0xb8\n call MxCore::MxCore (FUNCTION)\n xor eax, eax\n mov dword ptr [ebp - 4], eax\n-mov dword ptr [ebp - 0x1c], MxListCursor<MxPresenter *> (VTABLE)\n+mov dword ptr [ebp - 0x20], MxListCursor<MxPresenter *> (VTABLE)\n mov dword ptr [ebp - 4], 1\n mov dword ptr [ebp - 4], 2\n mov esi, dword ptr [ebp + 0xc]\n-mov dword ptr [ebp - 0x14], edi\n+mov dword ptr [ebp - 0x18], edi\n mov dword ptr [ebp - 4], 3\n-mov dword ptr [ebp - 0x10], eax\n+mov dword ptr [ebp - 0x14], eax\n mov eax, 0xffffffff\n-mov dword ptr [ebp - 0x1c], MxPtrListCursor<MxPresenter> (VTABLE)\n-mov dword ptr [ebp - 0x1c], MxPresenterListCursor (VTABLE)\n-cmp dword ptr [ebp - 0x10], 0\n+mov dword ptr [ebp - 0x20], MxPtrListCursor<MxPresenter> (VTABLE)\n+mov dword ptr [ebp - 0x20], MxPresenterListCursor (VTABLE)\n+cmp dword ptr [ebp - 0x14], 0\n jne 0x8\n-mov eax, dword ptr [ebp - 0x14]\n+mov eax, dword ptr [ebp - 0x18]\n mov ecx, dword ptr [eax + 0x10]\n jmp 0x6\n-mov eax, dword ptr [ebp - 0x10]\n+mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [eax + 8]\n+mov dword ptr [ebp - 0x14], ecx\n+cmp dword ptr [ebp - 0x14], 0\n+je 0x56\n+mov eax, dword ptr [ebp - 0x14]\n+mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n-cmp dword ptr [ebp - 0x10], 0\n-je 0x56\n-mov eax, dword ptr [ebp - 0x10]\n-cmp dword ptr [ebp - 0x10], 0\n-mov ecx, dword ptr [eax]\n-mov dword ptr [ebp - 0x20], ecx\n+cmp dword ptr [ebp - 0x14], 0\n je 0x48\n-mov eax, dword ptr [ebp - 0x20]\n+mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 0x1c]\n mov eax, dword ptr [ecx + 0x18]\n mov ecx, esi\n mov dl, byte ptr [eax]\n cmp dl, byte ptr [ecx]\n jne 0x1a\n or dl, dl\n je 0x12\n mov dl, byte ptr [eax + 1]\n cmp dl, byte ptr [ecx + 1]\n@@ -78,109 +78,114 @@\n\n or dl, dl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n jne -0x5f\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET7>\n-mov eax, dword ptr [ebp - 0x20]\n-jmp 0x2b3\n+mov eax, dword ptr [ebp - 0x10]\n+jmp 0x2ce\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET7>\n-jmp 0x2a0\n-lea ecx, [ebp - 0x1c]\n+jmp 0x2bb\n+lea ecx, [ebp - 0x20]\n jmp MxCore::~MxCore (FUNCTION)\n-lea ecx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x20]\n jmp MxListCursor<MxPresenter *>::~MxListCursor<MxPresenter *> (FUNCTION)\n-lea ecx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x20]\n jmp MxPtrListCursor<MxPresenter>::~MxPtrListCursor<MxPresenter> (FUNCTION)\n-lea ecx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x20]\n jmp MxPresenterListCursor::~MxPresenterListCursor (FUNCTION)\n mov eax, ebx\n mov edx, 'MxEntity' (STRING)\n mov cl, byte ptr [eax]\n cmp cl, byte ptr [edx]\n jne 0x1a\n or cl, cl\n je 0x12\n mov cl, byte ptr [eax + 1]\n cmp cl, byte ptr [edx + 1]\n jne 0xe\n add eax, 2\n add edx, 2\n or cl, cl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-jne 0xd7\n-mov eax, dword ptr [edi + 0x9c]\n-lea ecx, [ebp - 0x1c]\n-push eax\n-call MxListCursor<LegoEntity *>::MxListCursor<LegoEntity *> (FUNCTION)\n+jne 0xf2\n+mov esi, dword ptr [edi + 0x9c]\n+lea ecx, [ebp - 0x20]\n+xor edi, edi\n+call MxCore::MxCore (FUNCTION)\n+mov dword ptr [ebp - 4], 4\n+mov dword ptr [ebp - 0x20], MxListCursor<LegoEntity *> (VTABLE)\n mov eax, 0xffffffff\n+mov dword ptr [ebp - 0x18], esi\n mov esi, dword ptr [ebp + 0xc]\n-mov dword ptr [ebp - 4], 4\n-mov dword ptr [ebp - 0x1c], MxPtrListCursor<LegoEntity> (VTABLE)\n+mov dword ptr [ebp - 0x14], edi\n mov dword ptr [ebp - 4], 5\n-mov dword ptr [ebp - 0x1c], LegoEntityListCursor (VTABLE)\n+mov dword ptr [ebp - 0x20], MxPtrListCursor<LegoEntity> (VTABLE)\n mov dword ptr [ebp - 4], 6\n-xor edi, edi\n-cmp dword ptr [ebp - 0x10], edi\n+mov dword ptr [ebp - 0x20], LegoEntityListCursor (VTABLE)\n+mov dword ptr [ebp - 4], 7\n+cmp dword ptr [ebp - 0x14], edi\n jne 0x8\n-mov eax, dword ptr [ebp - 0x14]\n+mov eax, dword ptr [ebp - 0x18]\n mov ecx, dword ptr [eax + 0x10]\n jmp 0x6\n-mov eax, dword ptr [ebp - 0x10]\n+mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [eax + 8]\n+mov dword ptr [ebp - 0x14], ecx\n+cmp dword ptr [ebp - 0x14], edi\n+je 0x57\n+mov eax, dword ptr [ebp - 0x14]\n+mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n-cmp dword ptr [ebp - 0x10], edi\n-je 0x57\n-mov eax, dword ptr [ebp - 0x10]\n-cmp dword ptr [ebp - 0x10], edi\n-mov ecx, dword ptr [eax]\n-mov dword ptr [ebp - 0x20], ecx\n+cmp dword ptr [ebp - 0x14], edi\n je 0x4a\n test esi, esi\n je 0x32\n-mov eax, dword ptr [ebp - 0x20]\n+mov eax, dword ptr [ebp - 0x10]\n mov eax, dword ptr [eax + 0x54]\n test eax, eax\n je -0x36\n push esi\n mov eax, dword ptr [eax + 0xe4]\n push eax\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n jne -0x4a\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET17>\n-mov eax, dword ptr [ebp - 0x20]\n-jmp 0x1b4\n+mov eax, dword ptr [ebp - 0x10]\n+jmp 0x1bc\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET17>\n-mov eax, dword ptr [ebp - 0x20]\n-jmp 0x1a0\n+mov eax, dword ptr [ebp - 0x10]\n+jmp 0x1a8\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET17>\n-jmp 0x18d\n-lea ecx, [ebp - 0x1c]\n+jmp 0x195\n+lea ecx, [ebp - 0x20]\n+jmp MxCore::~MxCore (FUNCTION)\n+lea ecx, [ebp - 0x20]\n jmp MxListCursor<LegoEntity *>::~MxListCursor<LegoEntity *> (FUNCTION)\n-lea ecx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x20]\n jmp MxPtrListCursor<LegoEntity>::~MxPtrListCursor<LegoEntity> (FUNCTION)\n-lea ecx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x20]\n jmp LegoEntityListCursor::~LegoEntityListCursor (FUNCTION)\n mov eax, ebx\n mov edx, 'LegoAnimPresenter' (STRING)\n mov cl, byte ptr [eax]\n cmp cl, byte ptr [edx]\n jne 0x1a\n or cl, cl\n je 0x12\n mov cl, byte ptr [eax + 1]\n cmp cl, byte ptr [edx + 1]\n@@ -189,90 +194,90 @@\n\n add edx, 2\n or cl, cl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n jne 0xc1\n add edi, 0x80\n-lea ecx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x20]\n push edi\n call MxListCursor<MxPresenter *>::MxListCursor<MxPresenter *> (FUNCTION)\n mov eax, 0xffffffff\n mov esi, dword ptr [ebp + 0xc]\n-mov dword ptr [ebp - 4], 7\n-mov dword ptr [ebp - 0x1c], MxPtrListCursor<MxPresenter> (VTABLE)\n mov dword ptr [ebp - 4], 8\n-mov dword ptr [ebp - 0x1c], MxPresenterListCursor (VTABLE)\n+mov dword ptr [ebp - 0x20], MxPtrListCursor<MxPresenter> (VTABLE)\n mov dword ptr [ebp - 4], 9\n+mov dword ptr [ebp - 0x20], MxPresenterListCursor (VTABLE)\n+mov dword ptr [ebp - 4], 0xa\n xor edi, edi\n-cmp dword ptr [ebp - 0x10], edi\n+cmp dword ptr [ebp - 0x14], edi\n jne 0x8\n-mov eax, dword ptr [ebp - 0x14]\n+mov eax, dword ptr [ebp - 0x18]\n mov ecx, dword ptr [eax + 0x10]\n jmp 0x6\n-mov eax, dword ptr [ebp - 0x10]\n+mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [eax + 8]\n+mov dword ptr [ebp - 0x14], ecx\n+cmp dword ptr [ebp - 0x14], edi\n+je 0x37\n+mov eax, dword ptr [ebp - 0x14]\n+mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n-cmp dword ptr [ebp - 0x10], edi\n-je 0x37\n-mov eax, dword ptr [ebp - 0x10]\n-cmp dword ptr [ebp - 0x10], edi\n-mov ecx, dword ptr [eax]\n-mov dword ptr [ebp - 0x20], ecx\n+cmp dword ptr [ebp - 0x14], edi\n je 0x2a\n push esi\n-mov ecx, dword ptr [ebp - 0x20]\n+mov ecx, dword ptr [ebp - 0x10]\n call LegoAnimPresenter::GetActionObjectName (FUNCTION)\n push eax\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n jne -0x3e\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET24>\n-mov eax, dword ptr [ebp - 0x20]\n+mov eax, dword ptr [ebp - 0x10]\n jmp 0xb5\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET24>\n jmp 0xa2\n-lea ecx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x20]\n jmp MxListCursor<MxPresenter *>::~MxListCursor<MxPresenter *> (FUNCTION)\n-lea ecx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x20]\n jmp MxPtrListCursor<MxPresenter>::~MxPtrListCursor<MxPresenter> (FUNCTION)\n mov eax, <OFFSET25>\n jmp ___CxxFrameHandler (FUNCTION)\n-lea ecx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x20]\n jmp MxPresenterListCursor::~MxPresenterListCursor (FUNCTION)\n mov eax, dword ptr [edi + 0xac]\n mov ecx, dword ptr [eax]\n-mov dword ptr [ebp - 0x24], ecx\n-cmp ecx, eax\n+mov dword ptr [ebp - 0x10], ecx\n+cmp eax, ecx\n je 0x71\n mov esi, dword ptr [ebp + 0xc]\n-mov eax, dword ptr [ebp - 0x24]\n+mov eax, dword ptr [ebp - 0x10]\n push ebx\n mov ecx, dword ptr [eax + 0xc]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x10]\n test al, al\n je 0x4b\n-mov eax, dword ptr [ebp - 0x24]\n+mov eax, dword ptr [ebp - 0x10]\n push 'MxPresenter' (STRING)\n mov ecx, dword ptr [eax + 0xc]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x10]\n test al, al\n je 0x37\n-mov eax, dword ptr [ebp - 0x24]\n+mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 0xc]\n mov edx, dword ptr [ecx + 0x1c]\n mov eax, dword ptr [edx + 0x18]\n mov edx, esi\n mov cl, byte ptr [eax]\n cmp cl, byte ptr [edx]\n jne 0x1a\n or cl, cl\n je 0x12\n mov cl, byte ptr [eax + 1]\n@@ -281,44 +286,27 @@\n\n add eax, 2\n add edx, 2\n or cl, cl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n je 0x28\n-lea ecx, [ebp - 0x24]\n+lea ecx, [ebp - 0x10]\n call _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::iterator::_Inc (FUNCTION)\n-mov eax, dword ptr [ebp - 0x24]\n+mov eax, dword ptr [ebp - 0x10]\n cmp dword ptr [edi + 0xac], eax\n jne -0x6e\n xor eax, eax\n mov ecx, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], ecx\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 8\n-mov eax, dword ptr [ebp - 0x24]\n+mov eax, dword ptr [ebp - 0x10]\n mov eax, dword ptr [eax + 0xc]\n jmp -0x1b\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, dword ptr fs:[0]\n-push ebp\n-mov ebp, esp\n-push -1"}, {"address": "0x10021790", "name": "LegoWorld::Find", "matching": 1.0, "diff": ""}, {"address": "0x10022080", "name": "LegoWorld::Tickle", "matching": 0.9285714285714286, "diff": "--- \n\n+++ \n\n@@ -13,16 +13,16 @@\n\n call SetAppCursor (FUNCTION)\n add esp, 4\n mov eax, dword ptr [esi]\n mov ecx, esi\n call dword ptr [eax + 0x50]\n mov eax, 1\n pop esi\n ret \n mov ecx, esi\n call LegoWorld::PresentersPending (FUNCTION)\n-cmp al, 1\n-je 0x7\n+test al, al\n+jne 0x7\n dec word ptr [esi + 0xf4]\n mov eax, 1\n pop esi\n ret "}, {"address": "0x100220e0", "name": "LegoWorld::PresentersPending", "matching": 1.0, "diff": ""}, {"address": "0x10022340", "name": "LegoWorld::ReadyWorld", "matching": 1.0, "diff": ""}, {"address": "0x10022360", "name": "_Construct", "matching": 1.0, "diff": ""}, {"address": "0x10022360", "name": "_Construct", "matching": 1.0, "diff": ""}, {"address": "0x10022380", "name": "MxList<MxPresenter *>::InsertEntry", "matching": 1.0, "diff": ""}, {"address": "0x10022430", "name": "MxList<LegoEntity *>::InsertEntry", "matching": 1.0, "diff": ""}, {"address": "0x100224e0", "name": "MxList<LegoCacheSound *>::InsertEntry", "matching": 1.0, "diff": ""}, {"address": "0x10022590", "name": "MxListCursor<LegoCacheSound *>::Find", "matching": 1.0, "diff": ""}, {"address": "0x100225e0", "name": "MxList<MxPresenter *>::DeleteEntry", "matching": 1.0, "diff": ""}, {"address": "0x10022630", "name": "MxList<LegoEntity *>::DeleteEntry", "matching": 1.0, "diff": ""}, {"address": "0x10022680", "name": "MxList<LegoCacheSound *>::DeleteEntry", "matching": 1.0, "diff": ""}, {"address": "0x10022940", "name": "LegoCarBuild::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10022950", "name": "LegoCarBuild::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10022a60", "name": "LegoCarBuild::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10025f30", "name": "LegoVehicleBuildState::LegoVehicleBuildState", "matching": 1.0, "diff": ""}, {"address": "0x10025ff0", "name": "LegoVehicleBuildState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10026000", "name": "LegoVehicleBuildState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100260a0", "name": "LegoVehicleBuildState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10026220", "name": "LegoPlantManager::LegoPlantManager", "matching": 1.0, "diff": ""}, {"address": "0x10026290", "name": "LegoPlantManager::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100262a0", "name": "LegoPlantManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10027490", "name": "BumpBouy::`scalar deleting destructor'", "matching": 0.1282051282051282, "diff": "--- \n\n+++ \n\n@@ -1,51 +1,27 @@\n\n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-push esi\n-mov esi, ecx\n-call <OFFSET1>\n-mov ecx, esi\n-call LegoPathActor::~LegoPathActor (FUNCTION)\n-test byte ptr [esp + 8], 1\n+mov eax, dword ptr fs:[0]\n+push ebp\n+mov ebp, esp\n+push -1\n+push <OFFSET1>\n+push eax\n+mov dword ptr fs:[0], esp\n+sub esp, 4\n+mov dword ptr [ebp - 4], 0xffffffff\n+mov dword ptr [ebp - 0x10], ecx\n+call <OFFSET2>\n+test byte ptr [ebp + 8], 1\n je 0xc\n-lea eax, [esi - 0x20]\n+mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-lea eax, [esi - 0x20]\n-pop esi\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n ret 4\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-jmp -0xd8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoAnimActor::~LegoAnimActor (FUNCTION)"}, {"address": "0x100274e0", "name": "BumpBouy::ClassName", "matching": 0.0, "diff": "--- \n\n+++ \n\n@@ -1 +1,2 @@\n\n-sub ecx, dword ptr [ecx - 4]\n+mov eax, 'BumpBouy' (STRING)\n+ret "}, {"address": "0x10027500", "name": "BumpBouy::IsA", "matching": 0.7104247104247104, "diff": "--- \n\n+++ \n\n@@ -1,55 +1,25 @@\n\n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n mov edx, dword ptr [esp + 4]\n push ebx\n push esi\n mov eax, edx\n mov esi, 'BumpBouy' (STRING)\n mov bl, byte ptr [eax]\n cmp bl, byte ptr [esi]\n jne 0x1a\n or bl, bl\n je 0x12\n mov bl, byte ptr [eax + 1]\n cmp bl, byte ptr [esi + 1]\n jne 0xe\n add eax, 2\n add esi, 2\n-or bl, bl\n-jne -0x1c\n-xor eax, eax\n-jmp 0x5\n-sbb eax, eax\n-sbb eax, -1\n-test eax, eax\n-je 0x131\n-mov eax, edx\n-mov ecx, 'LegoAnimActor' (STRING)\n-mov bl, byte ptr [eax]\n-cmp bl, byte ptr [ecx]\n-jne 0x1a\n-or bl, bl\n-je 0x12\n-mov bl, byte ptr [eax + 1]\n-cmp bl, byte ptr [ecx + 1]\n-jne 0xe\n-add eax, 2\n-add ecx, 2\n or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n je 0xfd\n mov eax, edx\n mov ecx, 'LegoPathActor' (STRING)\n@@ -104,26 +74,57 @@\n\n add eax, 2\n add ecx, 2\n or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n je 0x65\n-mov ecx, edx\n-mov eax, 'MxEntity' (STRING)\n-mov bl, byte ptr [ecx]\n-cmp bl, byte ptr [eax]\n+mov eax, edx\n+mov ecx, 'MxEntity' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n jne 0x1a\n or bl, bl\n je 0x12\n-mov bl, byte ptr [ecx + 1]\n-cmp bl, byte ptr [eax + 1]\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n jne 0xe\n+add eax, 2\n add ecx, 2\n-add eax, 2\n or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x35\n+mov eax, 'MxCore' (STRING)\n+mov cl, byte ptr [edx]\n+cmp cl, byte ptr [eax]\n+jne 0x1a\n+or cl, cl\n+je 0x12\n+mov cl, byte ptr [edx + 1]\n+cmp cl, byte ptr [eax + 1]\n+jne 0xe\n+add edx, 2\n+add eax, 2\n+or cl, cl\n+jne -0x1c\n+xor eax, eax\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x7\n+xor al, al\n+pop esi\n+pop ebx\n+ret 4\n+mov al, 1\n+pop esi\n+pop ebx\n+ret 4"}, {"address": "0x10028200", "name": "RaceCar::RaceCar", "matching": 1.0, "diff": ""}, {"address": "0x10028270", "name": "RaceCar::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10028280", "name": "RaceCar::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10028400", "name": "RaceCar::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10028420", "name": "RaceCar::~RaceCar", "matching": 1.0, "diff": ""}, {"address": "0x10028520", "name": "LegoControlManager::LegoControlManager", "matching": 1.0, "diff": ""}, {"address": "0x10028690", "name": "LegoEventNotificationParam::Clone", "matching": 1.0, "diff": ""}, {"address": "0x10028770", "name": "LegoEventNotificationParam::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100287e0", "name": "LegoEventNotificationParam::~LegoEventNotificationParam", "matching": 1.0, "diff": ""}, {"address": "0x10028830", "name": "LegoNotifyList::Compare", "matching": 1.0, "diff": ""}, {"address": "0x10028850", "name": "MxCollection<MxCore *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x10028860", "name": "MxCollection<MxCore *>::~MxCollection<MxCore *>", "matching": 1.0, "diff": ""}, {"address": "0x100288b0", "name": "MxCollection<MxCore *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100288c0", "name": "MxList<MxCore *>::~MxList<MxCore *>", "matching": 1.0, "diff": ""}, {"address": "0x10028950", "name": "LegoNotifyList::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100289c0", "name": "MxPtrList<MxCore>::~MxPtrList<MxCore>", "matching": 1.0, "diff": ""}, {"address": "0x10028a10", "name": "MxCollection<MxCore *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10028a80", "name": "MxList<MxCore *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10028b30", "name": "MxPtrList<MxCore>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10028ba0", "name": "LegoNotifyList::~LegoNotifyList", "matching": 1.0, "diff": ""}, {"address": "0x10028bf0", "name": "LegoControlManagerEvent::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10028c60", "name": "LegoControlManagerEvent::~LegoControlManagerEvent", "matching": 1.0, "diff": ""}, {"address": "0x10028cb0", "name": "LegoControlManager::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10028cc0", "name": "LegoControlManager::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10028d40", "name": "LegoControlManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10028d60", "name": "LegoControlManager::~LegoControlManager", "matching": 1.0, "diff": ""}, {"address": "0x10028df0", "name": "LegoControlManager::FUN_10028df0", "matching": 1.0, "diff": ""}, {"address": "0x10028e10", "name": "LegoControlManager::Register", "matching": 0.8235294117647058, "diff": "--- \n\n+++ \n\n@@ -1,51 +1,51 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n push ebx\n push esi\n-mov ebx, dword ptr [ecx + 0x5c]\n+mov esi, dword ptr [ecx + 0x5c]\n push edi\n-mov esi, ecx\n+mov ebx, ecx\n push 0xc\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov edi, eax\n xor ecx, ecx\n mov eax, 0\n mov dword ptr [ebp - 4], ecx\n test edi, edi\n je 0xd\n mov eax, dword ptr [ebp + 8]\n mov dword ptr [edi], eax\n mov eax, edi\n-mov dword ptr [edi + 4], ebx\n+mov dword ptr [edi + 4], esi\n mov dword ptr [edi + 8], ecx\n mov dword ptr [ebp - 4], 0xffffffff\n-test ebx, ebx\n+test esi, esi\n je 0x1b\n-mov dword ptr [ebx + 8], eax\n+mov dword ptr [esi + 8], eax\n pop edi\n-mov dword ptr [esi + 0x5c], eax\n+mov dword ptr [ebx + 0x5c], eax\n mov eax, dword ptr [ebp - 0xc]\n-inc dword ptr [esi + 0x50]\n+pop esi\n mov dword ptr fs:[0], eax\n-pop esi\n+inc dword ptr [ebx + 0x50]\n pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n-mov dword ptr [esi + 0x58], eax\n+mov dword ptr [ebx + 0x58], eax\n jmp -0x1d\n mov eax, <OFFSET3>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret "}, {"address": "0x10028ea0", "name": "LegoControlManager::Unregister", "matching": 1.0, "diff": ""}, {"address": "0x10028fd0", "name": "LegoNotifyListCursor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10029040", "name": "MxPtrListCursor<MxCore>::~MxPtrListCursor<MxCore>", "matching": 1.0, "diff": ""}, {"address": "0x10029090", "name": "MxListCursor<MxCore *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10029100", "name": "MxPtrListCursor<MxCore>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10029170", "name": "MxListCursor<MxCore *>::~MxListCursor<MxCore *>", "matching": 1.0, "diff": ""}, {"address": "0x100291c0", "name": "LegoNotifyListCursor::~LegoNotifyListCursor", "matching": 1.0, "diff": ""}, {"address": "0x10029210", "name": "LegoControlManager::FUN_10029210", "matching": 1.0, "diff": ""}, {"address": "0x100292e0", "name": "LegoControlManager::FUN_100292e0", "matching": 1.0, "diff": ""}, {"address": "0x10029600", "name": "LegoControlManager::Tickle", "matching": 1.0, "diff": ""}, {"address": "0x10029630", "name": "LegoControlManager::FUN_10029630", "matching": 1.0, "diff": ""}, {"address": "0x10029750", "name": "LegoControlManager::FUN_10029750", "matching": 1.0, "diff": ""}, {"address": "0x100298a0", "name": "LegoSoundManager::LegoSoundManager", "matching": 1.0, "diff": ""}, {"address": "0x10029910", "name": "MxAudioManager::GetVolume", "matching": 1.0, "diff": ""}, {"address": "0x10029920", "name": "LegoSoundManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10029940", "name": "LegoSoundManager::~LegoSoundManager", "matching": 1.0, "diff": ""}, {"address": "0x100299a0", "name": "LegoSoundManager::Init", "matching": 1.0, "diff": ""}, {"address": "0x1002a390", "name": "LegoSoundManager::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1002c850", "name": "Radio::Radio", "matching": 1.0, "diff": ""}, {"address": "0x1002c8e0", "name": "Radio::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1002c8f0", "name": "Radio::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1002c970", "name": "Radio::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1002c990", "name": "Radio::~Radio", "matching": 1.0, "diff": ""}, {"address": "0x1002ca30", "name": "Radio::Notify", "matching": 1.0, "diff": ""}, {"address": "0x1002ca70", "name": "Radio::Play", "matching": 1.0, "diff": ""}, {"address": "0x1002cb70", "name": "Radio::Stop", "matching": 1.0, "diff": ""}, {"address": "0x1002cbc0", "name": "Radio::HandleClick", "matching": 1.0, "diff": ""}, {"address": "0x1002ccc0", "name": "Radio::HandleEndAction", "matching": 1.0, "diff": ""}, {"address": "0x1002cdc0", "name": "Radio::Initialize", "matching": 1.0, "diff": ""}, {"address": "0x1002cde0", "name": "Radio::CreateRadioState", "matching": 0.7647058823529411, "diff": "--- \n\n+++ \n\n@@ -1,17 +1,17 @@\n\n push esi\n push edi\n-mov edi, ecx\n+mov esi, ecx\n call GameState (FUNCTION)\n mov ecx, eax\n-mov esi, eax\n+mov edi, eax\n push 'RadioState' (STRING)\n call LegoGameState::GetState (FUNCTION)\n test eax, eax\n jne 0xc\n push 'RadioState' (STRING)\n-mov ecx, esi\n+mov ecx, edi\n call LegoGameState::CreateState (FUNCTION)\n-mov dword ptr [edi + 8], eax\n pop edi\n+mov dword ptr [esi + 8], eax\n pop esi\n ret "}, {"address": "0x1002ce10", "name": "RadioState::RadioState", "matching": 1.0, "diff": ""}, {"address": "0x1002cf50", "name": "RadioState::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x1002cf60", "name": "RadioState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1002cf70", "name": "RadioState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1002d020", "name": "RadioState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1002d090", "name": "RadioState::FUN_1002d090", "matching": 1.0, "diff": ""}, {"address": "0x1002d0c0", "name": "RadioState::FUN_1002d0c0", "matching": 1.0, "diff": ""}, {"address": "0x1002d110", "name": "LegoActor::LegoActor", "matching": 1.0, "diff": ""}, {"address": "0x1002d210", "name": "LegoActor::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1002d220", "name": "LegoActor::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1002d300", "name": "LegoActor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1002d800", "name": "LegoPathActor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1002f8b0", "name": "LegoBuildingManager::configureLegoBuildingManager", "matching": 1.0, "diff": ""}, {"address": "0x1002f8c0", "name": "LegoBuildingManager::LegoBuildingManager", "matching": 1.0, "diff": ""}, {"address": "0x1002f930", "name": "LegoBuildingManager::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1002f940", "name": "LegoBuildingManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10030820", "name": "Isle::Isle", "matching": 1.0, "diff": ""}, {"address": "0x10030900", "name": "Isle::VTable0x5c", "matching": 1.0, "diff": ""}, {"address": "0x10030910", "name": "Isle::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10030920", "name": "Isle::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10030a30", "name": "Isle::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10030a50", "name": "Isle::~Isle", "matching": 1.0, "diff": ""}, {"address": "0x10030b20", "name": "Isle::Create", "matching": 1.0, "diff": ""}, {"address": "0x10030c10", "name": "Isle::Notify", "matching": 0.6172106824925816, "diff": "--- \n\n+++ \n\n@@ -1,160 +1,161 @@\n\n push ebx\n push esi\n push edi\n-xor ebx, ebx\n-mov edi, ecx\n-mov esi, dword ptr [esp + 0x10]\n-push esi\n+mov esi, ecx\n+xor edi, edi\n+mov ebx, dword ptr [esp + 0x10]\n+push ebx\n call LegoWorld::Notify (FUNCTION)\n-cmp byte ptr [edi + 0xf6], bl\n+cmp byte ptr [esi + 0xf6], 0\n je 0x118\n-mov ecx, dword ptr [esi + 4]\n+mov ecx, dword ptr [ebx + 4]\n sub ecx, 2\n cmp ecx, 0x16\n ja 0x109\n xor eax, eax\n-mov al, byte ptr [ecx + 0x10030d70]\n-jmp dword ptr [eax*4 + 0x10030d50]\n-push esi\n-mov ecx, edi\n+mov al, byte ptr [ecx + 0x10021c70]\n+jmp dword ptr [eax*4 + 0x10021c50]\n+push ebx\n+mov ecx, esi\n call Isle::StopAction (FUNCTION)\n-mov ebx, eax\n+mov edi, eax\n+mov eax, edi\n pop edi\n-mov eax, ebx\n pop esi\n pop ebx\n ret 4\n-mov eax, dword ptr [edi + 0xf8]\n+mov eax, dword ptr [esi + 0xf8]\n mov eax, dword ptr [eax + 0x18]\n cmp eax, 3\n je 0xd\n cmp eax, 0xa\n je 0x1e\n-mov eax, ebx\n+mov eax, edi\n pop edi\n pop esi\n pop ebx\n ret 4\n-mov ecx, dword ptr [edi + 0xfc]\n-push esi\n+mov ecx, dword ptr [esi + 0xfc]\n+push ebx\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 4]\n-mov ebx, eax\n+mov edi, eax\n+mov eax, edi\n pop edi\n-mov eax, ebx\n pop esi\n pop ebx\n ret 4\n-mov ecx, dword ptr [edi + 0x108]\n-push esi\n+mov ecx, dword ptr [esi + 0x108]\n+push ebx\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 4]\n-mov ebx, eax\n+mov edi, eax\n+mov eax, edi\n pop edi\n-mov eax, ebx\n pop esi\n pop ebx\n ret 4\n-push esi\n-mov ecx, edi\n-call <OFFSET3>\n-mov ebx, eax\n+push ebx\n+mov ecx, esi\n+call Isle::HandleType17Notification (FUNCTION)\n+mov edi, eax\n+mov eax, edi\n pop edi\n-mov eax, ebx\n pop esi\n pop ebx\n ret 4\n-mov eax, dword ptr [edi + 0xf8]\n+mov eax, dword ptr [esi + 0xf8]\n mov eax, dword ptr [eax + 0x18]\n cmp eax, 4\n je 0x12\n cmp eax, 8\n je 0x24\n cmp eax, 0xa\n je 0x35\n-mov eax, ebx\n+mov eax, edi\n pop edi\n pop esi\n pop ebx\n ret 4\n call GetCurrentVehicle (FUNCTION)\n-push esi\n+push ebx\n mov edx, dword ptr [eax]\n mov ecx, eax\n call dword ptr [edx + 4]\n-mov ebx, eax\n+mov edi, eax\n+mov eax, edi\n pop edi\n-mov eax, ebx\n pop esi\n pop ebx\n ret 4\n-mov ecx, dword ptr [edi + 0x104]\n-push esi\n+mov ecx, dword ptr [esi + 0x104]\n+push ebx\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 4]\n-mov ebx, eax\n+mov edi, eax\n+mov eax, edi\n pop edi\n-mov eax, ebx\n pop esi\n pop ebx\n ret 4\n-mov ecx, dword ptr [edi + 0x108]\n-push esi\n+mov ecx, dword ptr [esi + 0x108]\n+push ebx\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 4]\n-mov ebx, eax\n+mov edi, eax\n+mov eax, edi\n pop edi\n-mov eax, ebx\n pop esi\n pop ebx\n ret 4\n-push esi\n-mov ecx, edi\n+push ebx\n+mov ecx, esi\n call Isle::HandleType19Notification (FUNCTION)\n-mov ebx, eax\n+mov edi, eax\n+mov eax, edi\n pop edi\n-mov eax, ebx\n pop esi\n pop ebx\n ret 4\n push 1\n-mov eax, dword ptr [edi]\n-mov ecx, edi\n+mov eax, dword ptr [esi]\n+mov ecx, esi\n call dword ptr [eax + 0x68]\n-mov eax, ebx\n+mov eax, edi\n pop edi\n pop esi\n pop ebx\n ret 4\n-mov ecx, edi\n+mov ecx, esi\n call Isle::HandleTransitionEnd (FUNCTION)\n-mov ebx, eax\n-mov eax, ebx\n+mov edi, eax\n+mov eax, edi\n pop edi\n pop esi\n pop ebx\n ret 4\n-lea ecx, [ecx]\n-dec ebx\n-or al, 3\n-adc byte ptr [ebp + 0xc], bl\n-add edx, dword ptr [eax]\n-movsb byte ptr es:[edi], byte ptr [esi]\n-or al, 3\n-adc byte ptr [esi + 0x1910030c], dh\n-or eax, 0xd2b1003\n-add edx, dword ptr [eax]\n-cmp al, 0xd\n-add edx, dword ptr [eax]\n-inc ebp\n-or eax, 0x7001003\n+mov edi, edi\n+dec esp\n+sbb eax, dword ptr [edx]\n+adc byte ptr [esi + 0x1b], bl\n+add dl, byte ptr [eax]\n+movsd dword ptr es:[edi], dword ptr [esi]\n+sbb eax, dword ptr [edx]\n+adc byte ptr [edi + 0x1a10021b], dh\n+sbb al, 2\n+adc byte ptr [esp + ebx], ch\n+add dl, byte ptr [eax]\n+cmp eax, 0x4610021c\n+sbb al, 2\n+adc byte ptr [eax], al\n+pop es\n pop es\n pop es\n pop es\n pop es\n add dword ptr [ecx], eax\n pop es\n pop es\n pop es\n pop es\n pop es"}, {"address": "0x10030fc0", "name": "Isle::ReadyWorld", "matching": 1.0, "diff": ""}, {"address": "0x10032f10", "name": "Isle::Add", "matching": 1.0, "diff": ""}, {"address": "0x10033050", "name": "Isle::VTable0x6c", "matching": 1.0, "diff": ""}, {"address": "0x10033170", "name": "Isle::VTable0x60", "matching": 1.0, "diff": ""}, {"address": "0x100338a0", "name": "Act1State::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100338b0", "name": "Act1State::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10033960", "name": "Act1State::`scalar deleting destructor'", "matching": 0.4, "diff": "--- \n\n+++ \n\n@@ -1,23 +1,27 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-mov eax, 6\n sub esp, 4\n+mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebp - 0x10], ecx\n-mov dword ptr [ebp - 4], 5\n-mov byte ptr [ebp - 4], al\n call <OFFSET2>\n-mov byte ptr [ebp - 4], 5\n-call <OFFSET3>\n-mov byte ptr [ebp - 4], 4\n-call <OFFSET4>\n-mov byte ptr [ebp - 4], 3\n-call <OFFSET5>\n-mov byte ptr [ebp - 4], 2\n-call <OFFSET6>\n-mov byte ptr [ebp - 4], 1\n-call <OFFSET7>\n+test byte ptr [ebp + 8], 1\n+je 0xc\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n+ret 4\n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoState::~LegoState (FUNCTION)"}, {"address": "0x100357b0", "name": "Motocycle::Motocycle", "matching": 1.0, "diff": ""}, {"address": "0x10035840", "name": "Motocycle::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10035850", "name": "Motocycle::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100359d0", "name": "Motocycle::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10035ee0", "name": "Ambulance::Ambulance", "matching": 1.0, "diff": ""}, {"address": "0x10035fa0", "name": "Ambulance::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10035fb0", "name": "Ambulance::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10036130", "name": "Ambulance::`scalar deleting destructor'", "matching": 0.3157894736842105, "diff": "--- \n\n+++ \n\n@@ -1,30 +1,27 @@\n\n-push esi\n-mov esi, ecx\n-call <OFFSET1>\n-test byte ptr [esp + 8], 1\n-je 0x9\n-push esi\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-mov eax, esi\n-pop esi\n-ret 4\n-int3 \n-int3 \n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n-push <OFFSET3>\n-mov dword ptr [ecx], Ambulance (VTABLE)\n+push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n-mov dword ptr [ebp - 4], 0\n-push ecx\n+mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebp - 0x10], ecx\n-call ControlManager (FUNCTION)\n-mov ecx, eax\n-call LegoControlManager::Unregister (FUNCTION)\n-call TickleManager (FUNCTION)\n+call <OFFSET2>\n+test byte ptr [ebp + 8], 1\n+je 0xc\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n+ret 4\n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n+jmp IslePathActor::~IslePathActor (FUNCTION)"}, {"address": "0x100373a0", "name": "AmbulanceMissionState::AmbulanceMissionState", "matching": 1.0, "diff": ""}, {"address": "0x10037600", "name": "AmbulanceMissionState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10037610", "name": "AmbulanceMissionState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100376c0", "name": "AmbulanceMissionState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10037730", "name": "InfocenterDoor::InfocenterDoor", "matching": 1.0, "diff": ""}, {"address": "0x100377a0", "name": "InfocenterDoor::VTable0x5c", "matching": 1.0, "diff": ""}, {"address": "0x100377b0", "name": "InfocenterDoor::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100377c0", "name": "InfocenterDoor::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100378d0", "name": "InfocenterDoor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100378f0", "name": "InfocenterDoor::~InfocenterDoor", "matching": 1.0, "diff": ""}, {"address": "0x10037980", "name": "InfocenterDoor::Create", "matching": 1.0, "diff": ""}, {"address": "0x10037a70", "name": "InfocenterDoor::ReadyWorld", "matching": 1.0, "diff": ""}, {"address": "0x10037c80", "name": "InfocenterDoor::VTable0x68", "matching": 1.0, "diff": ""}, {"address": "0x10037cd0", "name": "InfocenterDoor::VTable0x64", "matching": 1.0, "diff": ""}, {"address": "0x10037ef0", "name": "Pizza::Pizza", "matching": 1.0, "diff": ""}, {"address": "0x10037f90", "name": "Pizza::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10037fa0", "name": "Pizza::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100380e0", "name": "Pizza::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10038100", "name": "Pizza::~Pizza", "matching": 1.0, "diff": ""}, {"address": "0x10039290", "name": "PizzaMissionState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100392a0", "name": "PizzaMissionState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10039350", "name": "PizzaMissionState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10039510", "name": "PizzaMissionState::GetState", "matching": 1.0, "diff": ""}, {"address": "0x10039550", "name": "LegoGameState::LegoGameState", "matching": 0.7782805429864253, "diff": "--- \n\n+++ \n\n@@ -1,52 +1,33 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 8\n push ebx\n push esi\n-lea ebx, [ecx + 0x28]\n push edi\n mov esi, ecx\n-mov edi, 8\n-mov ecx, ebx\n-add ebx, 0xe\n-call <OFFSET2>\n-dec edi\n-jns -0xd\n-lea ecx, [esi + 0xa6]\n xor ebx, ebx\n-call <OFFSET3>\n-mov ecx, esi\n-call <OFFSET4>\n-mov ecx, esi\n call LegoGameState::SetROIHandlerFunction (FUNCTION)\n mov word ptr [esi + 4], bx\n-mov eax, 0xffffffff\n mov byte ptr [esi + 0xc], bl\n mov dword ptr [esi], ebx\n-mov dword ptr [esi + 8], ebx\n-mov dword ptr [esi + 0x41c], eax\n-mov word ptr [esi + 0x26], bx\n mov dword ptr [esi + 0x424], ebx\n-push ebx\n+push 0x30\n mov dword ptr [esi + 0x428], ebx\n-mov ecx, esi\n mov dword ptr [esi + 0x42c], ebx\n mov byte ptr [esi + 0x420], bl\n-mov dword ptr [esi + 0x14], eax\n-call LegoGameState::SetSomeEnumState (FUNCTION)\n-push 0x30\n+mov dword ptr [esi + 0x14], 0xffffffff\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov edi, eax\n mov dword ptr [ebp - 4], ebx\n mov eax, 0\n test edi, edi\n je 0x11\n push 'set 56 54 68' (STRING)\n mov ecx, edi\n@@ -62,21 +43,21 @@\n\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x14], eax\n add esp, 4\n mov dword ptr [ebp - 4], 1\n mov ebx, eax\n mov eax, 0\n test ebx, ebx\n je 0x11\n push 'set 56 54 68' (STRING)\n mov ecx, ebx\n-push <OFFSET13>\n+push 'tempBackgroundcolor' (STRING)\n call LegoBackgroundColor::LegoBackgroundColor (FUNCTION)\n mov dword ptr [ebp - 4], 0xffffffff\n push eax\n mov dword ptr [esi + 0x1c], eax\n call VariableTable (FUNCTION)\n mov ecx, eax\n call MxVariableTable::SetVariable (FUNCTION)\n push 0x24\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n@@ -99,10 +80,34 @@\n\n push '2' (STRING)\n push 'lightposition' (STRING)\n call VariableTable (FUNCTION)\n mov ecx, eax\n call MxVariableTable::SetVariable (FUNCTION)\n push 1\n mov ecx, esi\n call LegoGameState::SerializeScoreHistory (FUNCTION)\n mov eax, esi\n mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+pop edi\n+pop esi\n+pop ebx\n+mov esp, ebp\n+pop ebp\n+ret \n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x14]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, <OFFSET18>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret "}, {"address": "0x10039720", "name": "LegoGameState::~LegoGameState", "matching": 1.0, "diff": ""}, {"address": "0x10039980", "name": "LegoGameState::Save", "matching": 0.4163568773234201, "diff": "--- \n\n+++ \n\n@@ -1,140 +1,129 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 0x28\n+sub esp, 0x24\n push ebx\n push esi\n push edi\n mov esi, ecx\n push 'InfocenterState' (STRING)\n-xor ebx, ebx\n call GameState (FUNCTION)\n mov ecx, eax\n call LegoGameState::GetState (FUNCTION)\n test eax, eax\n-je 0x21b\n-cmp dword ptr [eax + 0x78], ebx\n-je 0x212\n-mov dword ptr [ebp - 0x24], 0xffffffff\n-lea ecx, [ebp - 0x20]\n-call LegoFile::LegoFile (FUNCTION)\n-mov dword ptr [ebp - 4], ebx\n+je 0x159\n+cmp dword ptr [eax + 0x78], 0\n+je 0x14f\n+mov dword ptr [ebp - 0x1c], 0xffffffff\n call VariableTable (FUNCTION)\n-mov word ptr [ebp - 0xe], bx\n mov edi, eax\n-lea ecx, [ebp - 0x34]\n+lea ecx, [ebp - 0x30]\n call MxString::MxString (FUNCTION)\n mov eax, dword ptr [ebp + 8]\n-lea ecx, [ebp - 0x34]\n-mov byte ptr [ebp - 4], 1\n+lea ecx, [ebp - 0x30]\n+mov dword ptr [ebp - 4], 0\n push eax\n push ecx\n mov ecx, esi\n call LegoGameState::GetFileSavePath (FUNCTION)\n+lea ecx, [ebp - 0x18]\n+call LegoFile::LegoFile (FUNCTION)\n push 2\n-mov eax, dword ptr [ebp - 0x2c]\n+lea ecx, [ebp - 0x18]\n+mov byte ptr [ebp - 4], 1\n+mov eax, dword ptr [ebp - 0x28]\n push eax\n-lea ecx, [ebp - 0x20]\n call LegoFile::Open (FUNCTION)\n cmp eax, -1\n-je 0x18f\n+je 0xcf\n push 4\n-lea eax, [ebp - 0x14]\n+lea eax, [ebp - 0x20]\n push eax\n-lea ecx, [ebp - 0x20]\n-mov ebx, dword ptr [ebp - 0x20]\n-mov dword ptr [ebp - 0x14], 0x1000c\n-call dword ptr [ebx + 8]\n-mov cx, word ptr [esi + 0x24]\n+lea ecx, [ebp - 0x18]\n+mov dword ptr [ebp - 0x20], 0x1000c\n+call LegoFile::Write (FUNCTION)\n push 2\n-mov word ptr [ebp - 0x12], cx\n-mov ebx, dword ptr [ebp - 0x20]\n-lea ecx, [ebp - 0x12]\n-push ecx\n-lea ecx, [ebp - 0x20]\n-call dword ptr [ebx + 8]\n-mov ecx, dword ptr [esi + 0x10]\n+lea eax, [esi + 0x24]\n+push eax\n+lea ecx, [ebp - 0x18]\n+call LegoFile::Write (FUNCTION)\n push 2\n-mov word ptr [ebp - 0x12], cx\n-mov ebx, dword ptr [ebp - 0x20]\n-lea ecx, [ebp - 0x12]\n-push ecx\n-lea ecx, [ebp - 0x20]\n-call dword ptr [ebx + 8]\n-mov cl, byte ptr [esi + 0xc]\n+lea eax, [esi + 0x10]\n+push eax\n+lea ecx, [ebp - 0x18]\n+mov ebx, g_colorSaveData (DATA)\n+call LegoFile::Write (FUNCTION)\n push 1\n-mov ebx, dword ptr [ebp - 0x20]\n-mov byte ptr [ebp - 0x11], cl\n-lea ecx, [ebp - 0x11]\n-push ecx\n-lea ecx, [ebp - 0x20]\n-call dword ptr [ebx + 8]\n-mov ebx, g_colorSaveData (DATA)\n+lea eax, [esi + 0xc]\n+push eax\n+lea ecx, [ebp - 0x18]\n+call LegoFile::Write (FUNCTION)\n mov eax, dword ptr [ebx]\n-lea ecx, [ebp - 0x20]\n+lea ecx, [ebp - 0x18]\n push eax\n push edi\n push ecx\n mov ecx, esi\n call LegoGameState::WriteVariable (FUNCTION)\n cmp eax, -1\n-je 0x11a\n+je 0x5b\n add ebx, 8\n-cmp ebx, g_delimiter (POINTER)\n-jb -0x23\n+cmp ebx, 'lightposition' (STRING)\n+jb -0x1f\n push 'backgroundcolor' (STRING)\n-lea eax, [ebp - 0x20]\n+lea eax, [ebp - 0x18]\n push edi\n mov ecx, esi\n push eax\n call LegoGameState::WriteVariable (FUNCTION)\n cmp eax, -1\n-je 0xf5\n+je 0x56\n push 'lightposition' (STRING)\n-lea eax, [ebp - 0x20]\n+lea eax, [ebp - 0x18]\n push edi\n mov ecx, esi\n push eax\n call LegoGameState::WriteVariable (FUNCTION)\n cmp eax, -1\n-je 0xdb\n-lea eax, [ebp - 0x20]\n+je 0x40\n+lea eax, [ebp - 0x18]\n mov ecx, esi\n push eax\n call LegoGameState::WriteEndOfVariables (FUNCTION)\n-lea eax, [ebp - 0x20]\n-push eax\n-call GetUnkSaveDataWriter (FUNCTION)\n-mov ecx, eax\n-call LegoUnkSaveDataWriter::WriteSaveData3 (FUNCTION)\n-lea eax, [ebp - 0x20]\n-push eax\n-call PlantManager (FUNCTION)\n-mov ecx, eax\n-call <OFFSET19>\n-lea eax, [ebp - 0x20]\n-xor edi, edi\n-push eax\n-xor ebx, ebx\n-call BuildingManager (FUNCTION)\n-mov ecx, eax\n-call <OFFSET21>\n-cmp word ptr [esi + 4], di\n-mov dword ptr [ebp - 0x24], eax\n-jle 0x1f\n-mov eax, dword ptr [esi + 8]\n-mov ecx, dword ptr [eax + edi]\n-mov eax, dword ptr [ecx]\n-call dword ptr [eax + 0x14]\n-test al, al\n-je 0x4\n-inc word ptr [ebp - 0xe]\n-add edi, 4\n-inc ebx\n-movsx eax, word ptr [esi + 4]\n-cmp eax, ebx\n-jg -0x1f\n+mov byte ptr [ebp - 4], 0\n+call <OFFSET16>\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET17>\n+xor eax, eax\n+jmp 0x57\n+mov byte ptr [ebp - 4], 0\n+call <OFFSET16>\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET17>\n+mov eax, 0xffffffff\n+jmp 0x3b\n+mov byte ptr [ebp - 4], 0\n+call <OFFSET16>\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET17>\n+jmp 0x21\n+lea ecx, [ebp - 0x18]\n+jmp LegoFile::~LegoFile (FUNCTION)\n+mov eax, <OFFSET19>\n+jmp ___CxxFrameHandler (FUNCTION)\n+lea ecx, [ebp - 0x30]\n+jmp MxString::~MxString (FUNCTION)\n+mov dword ptr [ebp - 0x1c], 0\n+mov eax, dword ptr [ebp - 0x1c]\n+mov ecx, dword ptr [ebp - 0xc]\n+pop edi\n+mov dword ptr fs:[0], ecx\n+pop esi\n+pop ebx\n+mov esp, ebp\n+pop ebp\n+ret 4"}, {"address": "0x10039f00", "name": "LegoGameState::SetSavePath", "matching": 1.0, "diff": ""}, {"address": "0x10039f70", "name": "LegoGameState::WriteVariable", "matching": 1.0, "diff": ""}, {"address": "0x1003a020", "name": "LegoGameState::WriteEndOfVariables", "matching": 1.0, "diff": ""}, {"address": "0x1003a080", "name": "LegoGameState::ReadVariable", "matching": 0.9506172839506173, "diff": "--- \n\n+++ \n\n@@ -56,26 +56,26 @@\n\n jne 0x3f\n xor eax, eax\n lea ecx, [esp + 0x110]\n mov al, byte ptr [esp + 0xf]\n push eax\n push ecx\n mov ecx, esi\n call edi\n test eax, eax\n jne 0x28\n+xor ebx, ebx\n xor eax, eax\n-xor ebx, ebx\n mov al, byte ptr [esp + 0xf]\n lea ecx, [esp + 0x110]\n+lea edx, [esp + 0x10]\n push ecx\n mov ecx, dword ptr [esp + 0x21c]\n-mov byte ptr [esp + eax + 0x114], bl\n-lea eax, [esp + 0x14]\n-push eax\n+push edx\n+mov byte ptr [esp + eax + 0x118], bl\n call MxVariableTable::SetVariable (FUNCTION)\n mov eax, ebx\n pop edi\n pop esi\n pop ebx\n add esp, 0x204\n ret 8"}, {"address": "0x1003a170", "name": "LegoGameState::GetFileSavePath", "matching": 1.0, "diff": ""}, {"address": "0x1003a720", "name": "LegoGameState::StopArea", "matching": 0.9369369369369369, "diff": "--- \n\n+++ \n\n@@ -1,20 +1,20 @@\n\n mov eax, dword ptr [esp + 4]\n test eax, eax\n jne 0x6\n mov eax, dword ptr [ecx + 0x428]\n dec eax\n cmp eax, 0x37\n ja 0x87d\n xor edx, edx\n-mov dl, byte ptr [eax + 0x1003b024]\n-jmp dword ptr [edx*4 + 0x1003afb8]\n+mov dl, byte ptr [eax + 0x10009074]\n+jmp dword ptr [edx*4 + 0x10009008]\n push 0\n mov eax, dword ptr [g_isleScript (DATA)]\n push 0\n push eax\n push 5\n call InvokeAction (FUNCTION)\n add esp, 0x10\n mov eax, dword ptr [g_isleScript (DATA)]\n push 0\n push 0\n@@ -702,64 +702,70 @@\n\n call InvokeAction (FUNCTION)\n add esp, 0x10\n mov eax, dword ptr [g_histbookScript (DATA)]\n push 0\n push 0\n push eax\n push 3\n call InvokeAction (FUNCTION)\n add esp, 0x10\n ret 4\n-inc edi\n-cmpsd dword ptr [esi], dword ptr es:[edi]\n-add edx, dword ptr [eax]\n-xchg byte ptr [edi - 0x584eeffd], ah\n-add edx, dword ptr [eax]\n-fsub qword ptr [edi - 0x57f8effd]\n-add edx, dword ptr [eax]\n-push es\n-test eax, 0xa94d1003\n-add edx, dword ptr [eax]\n-xchg esp, eax\n-test eax, 0xab5f1003\n-add edx, dword ptr [eax]\n-mov ebp, 0xe81003ab\n-stosd dword ptr es:[edi], eax\n-add edx, dword ptr [eax]\n-adc ebp, dword ptr [ebx + eax + 0x3ac5210]\n-adc byte ptr [ecx - 0x2feffc54], dl\n-lodsb al, byte ptr [esi]\n-add edx, dword ptr [eax]\n-lodsd eax, dword ptr cs:[esi]\n-add edx, dword ptr [eax]\n-pop ecx\n-lodsd eax, dword ptr [esi]\n-add edx, dword ptr [eax]\n-test byte ptr [ebp - 0x521deffd], ch\n-add edx, dword ptr [eax]\n-and dword ptr [esi - 0x519feffd], ebp\n-add edx, dword ptr [eax]\n-lahf \n-scasb al, byte ptr es:[edi]\n-add edx, dword ptr [eax]\n-fisubr word ptr [esi - 0x50e9effd]\n-add edx, dword ptr [eax]\n-dec esi\n-scasd eax, dword ptr es:[edi]\n-add edx, dword ptr [eax]\n-jns -0x51\n-add edx, dword ptr [eax]\n-mov ch, 0xaf\n-add edx, dword ptr [eax]\n-add byte ptr [ecx], al\n-add bl, byte ptr [edx]\n-add eax, dword ptr [esp + eax]\n+xchg edi, eax\n+xchg dword ptr [eax], eax\n+adc dh, dl\n+xchg dword ptr [eax], eax\n+adc byte ptr [ecx], al\n+mov byte ptr [eax], al\n+adc byte ptr [eax + ecx*4], ch\n+add byte ptr [eax], dl\n+push edi\n+mov byte ptr [eax], al\n+adc byte ptr [esi - 0x77], dl\n+add byte ptr [eax], dl\n+popfd \n+mov dword ptr [eax], eax\n+adc ah, ah\n+mov dword ptr [eax], eax\n+adc byte ptr [edi + 0xd10008b], ch\n+mov word ptr [eax], es\n+adc byte ptr [eax], bh\n+mov word ptr [eax], es\n+adc byte ptr [ebx - 0x74], ah\n+add byte ptr [eax], dl\n+mov byte ptr [<OFFSET28>], al\n+mov word ptr [eax], es\n+adc byte ptr [eax], ah\n+lea eax, [eax]\n+adc byte ptr [esi - 0x73], bh\n+add byte ptr [eax], dl\n+test eax, 0xd410008d\n+lea eax, [eax]\n+adc byte ptr [edx], dh\n+mov es, word ptr [eax]\n+adc byte ptr [ecx - 0x72], dh\n+add byte ptr [eax], dl\n+mov al, 0x8e\n+add byte ptr [eax], dl\n+out dx, eax\n+mov es, word ptr [eax]\n+adc byte ptr [esi], ch\n+pop dword ptr [eax]\n+adc byte ptr [esi - 0x71], ah\n+add byte ptr [eax], dl\n+sahf \n+pop dword ptr [eax]\n+adc cl, cl\n+pop dword ptr [eax]\n+adc byte ptr [<OFFSET29>], al\n+add dword ptr [edx], eax\n+sbb al, byte ptr [ebx]\n+add al, 4\n add eax, 0x9080706\n or cl, byte ptr [ebx]\n sbb bl, byte ptr [edx]\n sbb cl, byte ptr [edx + ebx]\n sbb bl, byte ptr [edx]\n sbb bl, byte ptr [edx]\n sbb bl, byte ptr [edx]\n or eax, 0xf1a1a0e\n sbb bl, byte ptr [edx]\n sbb dl, byte ptr [eax]"}, {"address": "0x1003bac0", "name": "LegoGameState::SetROIHandlerFunction", "matching": 1.0, "diff": ""}, {"address": "0x1003bad0", "name": "ROIHandlerFunction", "matching": 1.0, "diff": ""}, {"address": "0x1003bbb0", "name": "LegoGameState::GetState", "matching": 0.6857142857142857, "diff": "--- \n\n+++ \n\n@@ -1,35 +1,35 @@\n\n push ebx\n push esi\n push edi\n+xor esi, esi\n+push ebp\n xor ebx, ebx\n-push ebp\n-mov edi, ecx\n-xor ebp, ebp\n-cmp word ptr [edi + 4], bp\n+cmp word ptr [ecx + 4], si\n+mov ebp, ecx\n jle 0x20\n-mov esi, dword ptr [esp + 0x14]\n-mov eax, dword ptr [edi + 8]\n-push esi\n-mov ecx, dword ptr [eax + ebp]\n+mov edi, dword ptr [esp + 0x14]\n+mov eax, dword ptr [ebp + 8]\n+push edi\n+mov ecx, dword ptr [eax + esi]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x10]\n test al, al\n jne 0x15\n-add ebp, 4\n+add esi, 4\n inc ebx\n-movsx eax, word ptr [edi + 4]\n+movsx eax, word ptr [ebp + 4]\n cmp eax, ebx\n jg -0x1c\n xor eax, eax\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret 4\n-mov eax, dword ptr [edi + 8]\n+mov eax, dword ptr [ebp + 8]\n pop ebp\n pop edi\n pop esi\n mov eax, dword ptr [eax + ebx*4]\n pop ebx\n ret 4"}, {"address": "0x1003bc00", "name": "LegoGameState::CreateState", "matching": 1.0, "diff": ""}, {"address": "0x1003bc30", "name": "LegoGameState::RegisterState", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -21,21 +21,21 @@\n\n mov eax, dword ptr [ebp]\n call dword ptr [eax + 0x10]\n test al, al\n jne 0xc\n add edi, 4\n inc esi\n movsx eax, word ptr [ebx + 4]\n cmp eax, esi\n jg -0x27\n movsx eax, word ptr [ebx + 4]\n-cmp esi, eax\n+cmp eax, esi\n jne 0x58\n lea eax, [eax*4 + 4]\n push eax\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov ebp, eax\n mov ax, word ptr [ebx + 4]\n test ax, ax\n je 0x20\n movsx eax, ax"}, {"address": "0x1003bea0", "name": "MxVariable::GetValue", "matching": 1.0, "diff": ""}, {"address": "0x1003beb0", "name": "MxVariable::SetValue", "matching": 1.0, "diff": ""}, {"address": "0x1003bec0", "name": "MxVariable::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1003bf40", "name": "MxVariable::~MxVariable", "matching": 1.0, "diff": ""}, {"address": "0x1003bfb0", "name": "LegoBackgroundColor::LegoBackgroundColor", "matching": 1.0, "diff": ""}, {"address": "0x1003c070", "name": "LegoBackgroundColor::SetValue", "matching": 1.0, "diff": ""}, {"address": "0x1003c500", "name": "LegoFullScreenMovie::LegoFullScreenMovie", "matching": 1.0, "diff": ""}, {"address": "0x1003c5c0", "name": "LegoFullScreenMovie::SetValue", "matching": 1.0, "diff": ""}, {"address": "0x1003cdd0", "name": "LegoGameState::SerializeScoreHistory", "matching": 1.0, "diff": ""}, {"address": "0x1003cea0", "name": "LegoGameState::SetSomeEnumState", "matching": 1.0, "diff": ""}, {"address": "0x1003ceb0", "name": "LegoGameState::FUN_1003ceb0", "matching": 1.0, "diff": ""}, {"address": "0x1003dd70", "name": "PickROI", "matching": 0.5555555555555556, "diff": "--- \n\n+++ \n\n@@ -1,9 +1,9 @@\n\n call VideoManager (FUNCTION)\n-mov ecx, dword ptr [eax + 0x68]\n+mov ecx, dword ptr [esp + 8]\n mov edx, dword ptr [esp + 4]\n-mov eax, dword ptr [esp + 8]\n-mov ecx, dword ptr [ecx + 8]\n-push eax\n+push ecx\n+mov eax, dword ptr [eax + 0x68]\n push edx\n+mov ecx, dword ptr [eax + 8]\n call Lego3DView::Pick (FUNCTION)\n ret "}, {"address": "0x1003e300", "name": "MatchActionString", "matching": 0.7192982456140351, "diff": "--- \n\n+++ \n\n@@ -1,114 +1,114 @@\n\n push esi\n push edi\n-mov edi, 0xb\n-mov esi, dword ptr [esp + 0xc]\n-push esi\n+mov esi, 0xb\n+mov edi, dword ptr [esp + 0xc]\n+push edi\n push 'openram' (STRING)\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n jne 0xa\n-mov edi, 2\n-mov eax, edi\n+mov esi, 2\n pop edi\n+mov eax, esi\n pop esi\n ret \n-push esi\n+push edi\n push 'opendisk' (STRING)\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n jne 0xa\n-mov edi, 1\n-mov eax, edi\n+mov esi, 1\n pop edi\n+mov eax, esi\n pop esi\n ret \n-push esi\n+push edi\n push 'close' (STRING)\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n jne 0xa\n-mov edi, 3\n-mov eax, edi\n+mov esi, 3\n pop edi\n+mov eax, esi\n pop esi\n ret \n-push esi\n+push edi\n push 'start' (STRING)\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n jne 0xa\n-mov edi, 4\n-mov eax, edi\n+mov esi, 4\n pop edi\n+mov eax, esi\n pop esi\n ret \n-push esi\n+push edi\n push 'stop' (STRING)\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n jne 0xa\n-mov edi, 5\n-mov eax, edi\n+mov esi, 5\n pop edi\n+mov eax, esi\n pop esi\n ret \n-push esi\n+push edi\n push 'run' (STRING)\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n jne 0xa\n-mov edi, 6\n-mov eax, edi\n+mov esi, 6\n pop edi\n+mov eax, esi\n pop esi\n ret \n-push esi\n+push edi\n push 'exit' (STRING)\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n jne 0xa\n-mov edi, 7\n-mov eax, edi\n+mov esi, 7\n pop edi\n+mov eax, esi\n pop esi\n ret \n-push esi\n+push edi\n push 'enable' (STRING)\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n jne 0xa\n-mov edi, 8\n-mov eax, edi\n+mov esi, 8\n pop edi\n+mov eax, esi\n pop esi\n ret \n-push esi\n+push edi\n push 'disable' (STRING)\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n jne 0xa\n-mov edi, 9\n-mov eax, edi\n+mov esi, 9\n pop edi\n+mov eax, esi\n pop esi\n ret \n-push esi\n+push edi\n push 'notify' (STRING)\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n jne 0x5\n-mov edi, 0xa\n-mov eax, edi\n+mov esi, 0xa\n+mov eax, esi\n pop edi\n pop esi\n ret "}, {"address": "0x1003e430", "name": "InvokeAction", "matching": 0.9043478260869565, "diff": "--- \n\n+++ \n\n@@ -18,21 +18,21 @@\n\n lea ecx, [ebp - 0x84]\n call MxAtomId::operator= (FUNCTION)\n mov byte ptr [ebp - 4], 0\n call <OFFSET4>\n mov ecx, dword ptr [ebp + 0x10]\n mov eax, dword ptr [ebp + 8]\n dec eax\n mov dword ptr [ebp - 0x88], ecx\n cmp eax, 9\n ja 0x16c\n-jmp dword ptr [eax*4 + 0x1003e63c]\n+jmp dword ptr [eax*4 + 0x1001230c]\n push ecx\n mov eax, dword ptr [ebp + 0xc]\n mov ecx, dword ptr [eax]\n push ecx\n push 1\n call CheckIfEntityExists (FUNCTION)\n add esp, 0xc\n test al, al\n jne 0x14c\n push 0\n@@ -148,28 +148,23 @@\n\n mov esp, ebp\n mov dword ptr fs:[0], eax\n pop ebp\n ret \n lea ecx, [ebp - 0x10]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n mov eax, <OFFSET19>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0xa4]\n jmp MxDSAction::~MxDSAction (FUNCTION)\n-mov eax, dword ptr [<OFFSET22>]\n-in al, 3\n-adc byte ptr [ebx], ah\n-in eax, 3\n-adc byte ptr [edi - 0x1b], cl\n-add edx, dword ptr [eax]\n-jl -0x1b\n-add edx, dword ptr [eax]\n-movsb byte ptr es:[edi], byte ptr [esi]\n-in eax, 3\n-adc ch, al\n-in eax, 3\n-adc bl, dl\n-in eax, 3\n-adc bl, ah\n-in eax, 3\n-adc bl, dh\n-in eax, 3\n+jno 0x21\n+add dword ptr [eax], edx\n+mov dl, 0x21\n+add dword ptr [eax], edx\n+and dword ptr [ecx], eax\n+adc byte ptr [edi], bl\n+and al, byte ptr [ecx]\n+adc byte ptr [edx + 1], cl\n+adc byte ptr [edx + 1], dh\n+adc byte ptr [ebp - 0x5ceffede], dl\n+and al, byte ptr [ecx]\n+adc byte ptr [ebx - 0x3ceffede], dh\n+and al, byte ptr [ecx]"}, {"address": "0x1003e670", "name": "CheckIfEntityExists", "matching": 1.0, "diff": ""}, {"address": "0x1003e870", "name": "LegoWorldListCursor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1003e8e0", "name": "MxPtrListCursor<LegoWorld>::~MxPtrListCursor<LegoWorld>", "matching": 1.0, "diff": ""}, {"address": "0x1003e930", "name": "MxListCursor<LegoWorld *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1003e9a0", "name": "MxPtrListCursor<LegoWorld>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1003ea10", "name": "MxListCursor<LegoWorld *>::~MxListCursor<LegoWorld *>", "matching": 1.0, "diff": ""}, {"address": "0x1003ea60", "name": "LegoWorldListCursor::~LegoWorldListCursor", "matching": 1.0, "diff": ""}, {"address": "0x1003eae0", "name": "ConvertHSVToRGB", "matching": 0.9328621908127208, "diff": "--- \n\n+++ \n\n@@ -41,21 +41,21 @@\n\n fisub dword ptr [esp + 0x10]\n fmulp st(1)\n cmp eax, 6\n fmul qword ptr [esp]\n fld qword ptr [esp + 8]\n fadd st(1)\n fstp qword ptr [esp + 0x10]\n fsubr qword ptr [esp]\n fstp qword ptr [esp + 0x18]\n ja 0xf1\n-jmp dword ptr [eax*4 + 0x1003ec98]\n+jmp dword ptr [eax*4 + 0x10012598]\n fld qword ptr [esp]\n mov eax, dword ptr [esp + 0x30]\n mov ecx, dword ptr [esp + 0x34]\n mov edx, dword ptr [esp + 0x38]\n fstp dword ptr [eax]\n fld qword ptr [esp + 0x10]\n fstp dword ptr [ecx]\n fld qword ptr [esp + 8]\n fstp dword ptr [edx]\n add esp, 0x20\n@@ -121,23 +121,20 @@\n\n mov edx, dword ptr [esp + 0x38]\n fstp dword ptr [eax]\n fld qword ptr [esp + 8]\n fstp dword ptr [ecx]\n fld qword ptr [esp + 0x18]\n fstp dword ptr [edx]\n add esp, 0x20\n ret \n lea ecx, [ecx]\n cmpsd dword ptr [esi], dword ptr es:[edi]\n-jmp 0x3\n+and al, 1\n adc cl, cl\n-jmp 0x3\n+and al, 1\n adc bl, ch\n-jmp 0x3\n+and al, 1\n adc byte ptr [<OFFSET2>], cl\n-in al, dx\n-add edx, dword ptr [eax]\n-push ecx\n-in al, dx\n-add edx, dword ptr [eax]\n-jae -0x14\n-add edx, dword ptr [eax]\n+and eax, 0x25511001\n+add dword ptr [eax], edx\n+jae 0x25\n+add dword ptr [eax], edx"}, {"address": "0x1003ee80", "name": "RemoveFromWorld", "matching": 1.0, "diff": ""}, {"address": "0x1003ef40", "name": "SetAppCursor", "matching": 1.0, "diff": ""}, {"address": "0x10043020", "name": "Act3Shark::`scalar deleting destructor'", "matching": 0.4666666666666667, "diff": "--- \n\n+++ \n\n@@ -1,33 +1,27 @@\n\n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-xor eax, eax\n sub esp, 4\n+mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebp - 0x10], ecx\n-mov dword ptr [ebp - 4], eax\n-mov byte ptr [ebp - 4], al\n call <OFFSET2>\n-mov dword ptr [ebp - 4], 0xffffffff\n-call <OFFSET3>\n-mov ecx, dword ptr [ebp - 0x10]\n-call LegoPathActor::~LegoPathActor (FUNCTION)\n test byte ptr [ebp + 8], 1\n-je 0xf\n+je 0xc\n mov eax, dword ptr [ebp - 0x10]\n-sub eax, 0x54\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n+ret 4\n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoAnimActor::~LegoAnimActor (FUNCTION)"}, {"address": "0x100430c0", "name": "Act3Shark::ClassName", "matching": 0.0, "diff": "--- \n\n+++ \n\n@@ -1 +1,2 @@\n\n-sub ecx, dword ptr [ecx - 4]\n+mov eax, 'Act3Shark' (STRING)\n+ret "}, {"address": "0x100431b0", "name": "Act3Actor::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10043430", "name": "LegoMeterPresenter::LegoMeterPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10043550", "name": "MxStillPresenter::~MxStillPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100435b0", "name": "MxStillPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100435c0", "name": "MxStillPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100435d0", "name": "MxStillPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100436e0", "name": "MxStillPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10043760", "name": "LegoMeterPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10043780", "name": "LegoMeterPresenter::~LegoMeterPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10043800", "name": "LegoMeterPresenter::ParseExtra", "matching": 0.9016393442622951, "diff": "--- \n\n+++ \n\n@@ -1,36 +1,35 @@\n\n sub esp, 0x200\n push ebx\n push esi\n push edi\n mov ebx, ecx\n call MxStillPresenter::ParseExtra (FUNCTION)\n mov eax, dword ptr [ebx + 0x1c]\n mov cx, word ptr [eax + 0x80]\n-mov word ptr [esp + 0xc], cx\n-cmp word ptr [esp + 0xc], 0\n-mov edx, dword ptr [eax + 0x7c]\n-je 0x14b\n-mov eax, dword ptr [esp + 0xc]\n+mov word ptr [esp + 0x10c], cx\n+test cx, cx\n+mov esi, dword ptr [eax + 0x7c]\n+je 0x14c\n+mov eax, dword ptr [esp + 0x10c]\n lea edi, [esp + 0x10c]\n and eax, 0xffff\n-mov esi, edx\n mov ecx, eax\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-lea ecx, [esp + 0x10c]\n+lea ecx, [esp + 0xc]\n mov edx, dword ptr [g_type (POINTER)]\n mov byte ptr [esp + eax + 0x10c], 0\n-lea eax, [esp + 0xc]\n+lea eax, [esp + 0x10c]\n push ecx\n push edx\n push eax\n call KeyValueStringParse (FUNCTION)\n add esp, 0xc\n test al, al\n je 0x86\n mov eax, dword ptr [g_leftToRight (POINTER)]\n lea ecx, [esp + 0xc]\n push eax\n@@ -63,38 +62,38 @@\n\n jmp 0x20\n mov eax, dword ptr [g_topToBottom (POINTER)]\n lea ecx, [esp + 0xc]\n push eax\n push ecx\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n jne 0x9\n mov word ptr [ebx + 0x90], 3\n-lea eax, [esp + 0x10c]\n+lea eax, [esp + 0xc]\n mov ecx, dword ptr [g_filterIndex (POINTER)]\n-lea edx, [esp + 0xc]\n+lea edx, [esp + 0x10c]\n push eax\n push ecx\n push edx\n call KeyValueStringParse (FUNCTION)\n add esp, 0xc\n test al, al\n je 0x11\n lea eax, [esp + 0xc]\n push eax\n call _atoi (FUNCTION)\n mov word ptr [ebx + 0x70], ax\n add esp, 4\n-lea eax, [esp + 0x10c]\n+lea eax, [esp + 0xc]\n mov ecx, dword ptr [g_variable (POINTER)]\n-lea edx, [esp + 0xc]\n+lea edx, [esp + 0x10c]\n push eax\n push ecx\n push edx\n call KeyValueStringParse (FUNCTION)\n add esp, 0xc\n test al, al\n je 0x17\n lea eax, [esp + 0xc]\n lea ecx, [ebx + 0x74]\n push eax\n@@ -113,11 +112,10 @@\n\n add esp, 0x200\n ret \n mov eax, dword ptr [ebx]\n mov ecx, ebx\n call dword ptr [eax + 0x40]\n pop edi\n pop esi\n pop ebx\n add esp, 0x200\n ret \n-int3 "}, {"address": "0x10043990", "name": "LegoMeterPresenter::StreamingTickle", "matching": 1.0, "diff": ""}, {"address": "0x10043a30", "name": "LegoMeterPresenter::RepeatingTickle", "matching": 1.0, "diff": ""}, {"address": "0x10043ce0", "name": "LegoActionControlPresenter::ReadyTickle", "matching": 1.0, "diff": ""}, {"address": "0x10043d40", "name": "LegoActionControlPresenter::RepeatingTickle", "matching": 1.0, "diff": ""}, {"address": "0x10043df0", "name": "LegoActionControlPresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x10043e20", "name": "LegoActionControlPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x10043e50", "name": "LegoActionControlPresenter::ParseExtra", "matching": 0.7671232876712328, "diff": "--- \n\n+++ \n\n@@ -1,38 +1,36 @@\n\n sub esp, 0x800\n+xor edx, edx\n push ebx\n push esi\n mov eax, dword ptr [ecx + 0x1c]\n push edi\n+mov dx, word ptr [eax + 0x80]\n mov ebx, ecx\n-mov cx, word ptr [eax + 0x80]\n-mov word ptr [esp + 0xc], cx\n-cmp word ptr [esp + 0xc], 0\n-mov edx, dword ptr [eax + 0x7c]\n-je 0xbf\n-mov eax, dword ptr [esp + 0xc]\n+test edx, edx\n+je 0xbd\n+and edx, 0xffff\n lea edi, [esp + 0xc]\n-and eax, 0xffff\n-mov esi, edx\n-mov ecx, eax\n+mov esi, dword ptr [eax + 0x7c]\n+mov ecx, edx\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n-mov ecx, eax\n+mov ecx, edx\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-lea ecx, [esp + 0xc]\n-mov edx, dword ptr [g_strACTION (POINTER)]\n-mov byte ptr [esp + eax + 0xc], 0\n-lea eax, [esp + 0x40c]\n+lea eax, [esp + 0xc]\n+mov ecx, dword ptr [g_strACTION (POINTER)]\n+mov byte ptr [esp + edx + 0xc], 0\n+lea edx, [esp + 0x40c]\n+push eax\n push ecx\n push edx\n-push eax\n call KeyValueStringParse (FUNCTION)\n add esp, 0xc\n test al, al\n je 0x7d\n mov eax, dword ptr [g_parseExtraTokens (POINTER)]\n lea ecx, [esp + 0x40c]\n push eax\n push ecx\n call _strtok (FUNCTION)\n add esp, 8\n@@ -62,10 +60,16 @@\n\n cmp dword ptr [ebx + 0x50], 6\n je 0x1c\n mov eax, dword ptr [g_parseExtraTokens (POINTER)]\n push eax\n push 0\n call _strtok (FUNCTION)\n add esp, 8\n push eax\n call _atoi (FUNCTION)\n add esp, 4\n+mov dword ptr [ebx + 0x64], eax\n+pop edi\n+pop esi\n+pop ebx\n+add esp, 0x800\n+ret "}, {"address": "0x10043f50", "name": "MxControlPresenter::MxControlPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10043fd0", "name": "MxControlPresenter::RepeatingTickle", "matching": 1.0, "diff": ""}, {"address": "0x10043fe0", "name": "MxControlPresenter::VTable0x64", "matching": 1.0, "diff": ""}, {"address": "0x10043ff0", "name": "MxControlPresenter::VTable0x68", "matching": 1.0, "diff": ""}, {"address": "0x10044000", "name": "MxControlPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10044010", "name": "MxControlPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100440f0", "name": "MxControlPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10044110", "name": "MxControlPresenter::~MxControlPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10044180", "name": "MxControlPresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x10044190", "name": "MxControlPresenter::StartAction", "matching": 1.0, "diff": ""}, {"address": "0x10044260", "name": "MxControlPresenter::EndAction", "matching": 1.0, "diff": ""}, {"address": "0x10044270", "name": "MxControlPresenter::FUN_10044270", "matching": 0.4666666666666667, "diff": "--- \n\n+++ \n\n@@ -1,195 +1,195 @@\n\n push ebx\n push esi\n push edi\n mov esi, ecx\n cmp word ptr [esi + 0x4c], 3\n push ebp\n-je 0xb8\n-mov ebx, dword ptr [esp + 0x1c]\n+je 0xba\n+mov edi, dword ptr [esp + 0x1c]\n lea eax, [esi + 0x40]\n-push ebx\n+push edi\n push eax\n call ContainsPresenter (FUNCTION)\n add esp, 8\n test al, al\n-je 0x1d4\n+je 0x1da\n cmp word ptr [esi + 0x4c], 2\n-jne 0x85\n-mov edi, dword ptr [ebx]\n-mov ecx, ebx\n-call dword ptr [edi + 0x80]\n+jne 0x87\n+mov ebx, dword ptr [edi]\n+mov ecx, edi\n+call dword ptr [ebx + 0x80]\n mov ebp, eax\n-mov ecx, ebx\n-call dword ptr [edi + 0x84]\n+mov ecx, edi\n+call dword ptr [ebx + 0x84]\n cmp word ptr [esi + 0x52], 2\n-mov edi, eax\n-jne 0x6e\n+mov ebx, eax\n+jne 0x70\n cmp word ptr [esi + 0x54], 2\n-jne 0x67\n-mov ecx, dword ptr [ebx + 0x10]\n+jne 0x69\n mov eax, ebp\n+mov ecx, dword ptr [edi + 0x10]\n cdq \n sub eax, edx\n sar eax, 1\n add ecx, eax\n-mov eax, edi\n+cmp ecx, dword ptr [esp + 0x14]\n+jle 0x28\n+mov cx, 3\n+mov edi, dword ptr [edi + 0x14]\n+mov eax, ebx\n cdq \n-cmp ecx, dword ptr [esp + 0x14]\n-mov ecx, dword ptr [ebx + 0x14]\n-jle 0x24\n sub eax, edx\n sar eax, 1\n-add ecx, eax\n-mov eax, dword ptr [esp + 0x18]\n-cmp ecx, eax\n-mov ax, 3\n+add edi, eax\n+cmp edi, dword ptr [esp + 0x18]\n jle 0x4\n-mov ax, 1\n-mov word ptr [esi + 0x56], ax\n+mov cx, 1\n+mov word ptr [esi + 0x56], cx\n+mov al, 1\n pop ebp\n-mov al, 1\n pop edi\n pop esi\n pop ebx\n ret 0xc\n+mov cx, 4\n+mov edi, dword ptr [edi + 0x14]\n+mov eax, ebx\n+cdq \n sub eax, edx\n sar eax, 1\n-add ecx, eax\n-mov eax, dword ptr [esp + 0x18]\n-cmp ecx, eax\n-mov ax, 4\n+add edi, eax\n+cmp edi, dword ptr [esp + 0x18]\n jle 0x4\n-mov ax, 2\n-mov word ptr [esi + 0x56], ax\n+mov cx, 2\n+mov word ptr [esi + 0x56], cx\n+mov al, 1\n pop ebp\n-mov al, 1\n pop edi\n pop esi\n pop ebx\n ret 0xc\n mov word ptr [esi + 0x56], 0xffff\n mov al, 1\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret 0xc\n mov eax, dword ptr [esi + 0x44]\n-mov ebx, dword ptr [esp + 0x1c]\n+mov edi, dword ptr [esp + 0x1c]\n mov ecx, dword ptr [eax]\n-mov edi, dword ptr [ecx + 8]\n-cmp edi, ebx\n-je 0xc\n+mov ebx, dword ptr [ecx + 8]\n+cmp ebx, edi\n+je 0xb\n mov eax, dword ptr [ebx + 0x18]\n-cmp dword ptr [edi + 0x18], eax\n-jge 0x119\n-mov ebp, dword ptr [edi]\n+cmp eax, eax\n+jge 0x11e\n+mov eax, dword ptr [edi]\n mov ecx, edi\n-call dword ptr [ebp + 0x7c]\n+call dword ptr [eax + 0x7c]\n test al, al\n-je 0x10a\n-mov ecx, edi\n+je 0x10f\n+mov ebp, dword ptr [ebx]\n+mov ecx, ebx\n call dword ptr [ebp + 0x84]\n-lea ebx, [eax - 1]\n-mov ecx, edi\n+mov edi, eax\n+mov ecx, ebx\n call dword ptr [ebp + 0x80]\n-mov ecx, dword ptr [edi + 0x10]\n-mov edx, dword ptr [edi + 0x14]\n-add ebx, edx\n-lea eax, [eax + ecx - 1]\n-cmp ecx, dword ptr [esp + 0x14]\n-jg 0xe1\n-cmp dword ptr [esp + 0x14], eax\n-jge 0xd7\n+mov ecx, dword ptr [ebx + 0x10]\n+cmp dword ptr [esp + 0x14], ecx\n+jl 0xee\n+mov edx, dword ptr [ebx + 0x14]\n+add eax, edx\n+dec eax\n+cmp eax, dword ptr [esp + 0x14]\n+jle 0xde\n mov eax, dword ptr [esp + 0x18]\n-cmp edx, eax\n-jg 0xcb\n-cmp eax, ebx\n-jge 0xc3\n-cmp dword ptr [edi + 0x54], 0\n+cmp eax, edx\n+jl 0xd2\n+add edi, edx\n+dec edi\n+cmp edi, eax\n+jle 0xc7\n+cmp dword ptr [ebx + 0x54], 0\n je 0x4\n-xor eax, eax\n+xor ebp, ebp\n jmp 0x69\n-mov edi, dword ptr [edi + 0x50]\n+mov edi, dword ptr [ebx + 0x50]\n mov ebx, dword ptr [edi + 0xc]\n mov ebp, dword ptr [ebx + 0x10]\n test ebp, ebp\n jne 0x33\n cmp ebp, 0x10\n-je 0x7\n+je 0x13\n mov ebp, dword ptr [ebx + 8]\n test ebp, ebp\n-jge 0x4\n-sub eax, edx\n-jmp 0xa\n+jl 0xc\n jg 0x2\n neg ebp\n sub edx, eax\n lea eax, [edx + ebp - 1]\n+jmp 0x2\n+sub eax, edx\n mov edx, dword ptr [ebx + 4]\n+mov ebp, dword ptr [esp + 0x14]\n add edx, 3\n and edx, 0xfffffffc\n imul edx, eax\n add edx, dword ptr [edi + 0x14]\n-mov eax, dword ptr [esp + 0x14]\n sub edx, ecx\n-add eax, edx\n+add ebp, edx\n jmp 0x29\n cmp ebp, 0x10\n jne 0x5\n-mov eax, dword ptr [edi + 0x14]\n+mov ebp, dword ptr [edi + 0x14]\n jmp 0x1f\n-mov ecx, dword ptr [ebx + 8]\n-test ecx, ecx\n-jge 0x4\n+mov eax, dword ptr [ebx + 8]\n+test eax, eax\n+jl 0x7\n+jg 0x2\n+neg eax\n+dec eax\n+jmp 0x2\n+xor eax, eax\n+mov ebp, dword ptr [ebx + 4]\n+add ebp, 3\n+and ebp, 0xfffffffc\n+imul ebp, eax\n+add ebp, dword ptr [edi + 0x14]\n+mov word ptr [esi + 0x56], 0\n+mov edi, dword ptr [esi + 0x58]\n+test edi, edi\n+jne 0xe\n+cmp byte ptr [ebp], 0\n+je 0x31\n+mov word ptr [esi + 0x56], 1\n+jmp 0x29\n+mov dx, 1\n+mov bx, word ptr [edi]\n+cmp bx, dx\n+jl 0x1d\n xor ecx, ecx\n-jmp 0x5\n-jg 0x2\n-neg ecx\n-dec ecx\n-mov eax, dword ptr [ebx + 4]\n-add eax, 3\n-and eax, 0xfffffffc\n-imul eax, ecx\n-add eax, dword ptr [edi + 0x14]\n-mov word ptr [esi + 0x56], 0\n-mov ebx, dword ptr [esi + 0x58]\n-test ebx, ebx\n-je 0x28\n-mov di, 1\n-mov dx, word ptr [ebx]\n-cmp dx, di\n-jl 0x27\n-movzx ax, byte ptr [eax]\n-movsx ecx, di\n-cmp word ptr [ebx + ecx*2], ax\n+mov cl, byte ptr [ebp]\n+movsx eax, dx\n+movsx ebp, word ptr [edi + eax*2]\n+cmp ebp, ecx\n je 0x9\n-inc di\n-cmp di, dx\n-jle -0x10\n-jmp 0x11\n-mov word ptr [esi + 0x56], di\n-jmp 0xb\n-cmp byte ptr [eax], 0\n-je 0x6\n-mov word ptr [esi + 0x56], 1\n+inc dx\n+cmp dx, bx\n+jle -0x12\n+jmp 0x4\n+mov word ptr [esi + 0x56], dx\n cmp word ptr [esi + 0x56], 0\n je 0x9\n mov al, 1\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret 0xc\n xor al, al\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret 0xc\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x10044480", "name": "MxControlPresenter::FUN_10044480", "matching": 1.0, "diff": ""}, {"address": "0x10044540", "name": "MxControlPresenter::VTable0x6c", "matching": 1.0, "diff": ""}, {"address": "0x10044610", "name": "MxControlPresenter::ReadyTickle", "matching": 1.0, "diff": ""}, {"address": "0x10044640", "name": "MxControlPresenter::ParseExtra", "matching": 0.8113879003558719, "diff": "--- \n\n+++ \n\n@@ -1,44 +1,41 @@\n\n sub esp, 0x200\n push ebx\n push esi\n-mov eax, dword ptr [ecx + 0x1c]\n push edi\n mov ebx, ecx\n-mov cx, word ptr [eax + 0x80]\n-mov word ptr [esp + 0xc], cx\n-cmp word ptr [esp + 0xc], 0\n-mov edx, dword ptr [eax + 0x7c]\n-je 0x1a4\n-mov eax, dword ptr [esp + 0xc]\n-lea edi, [esp + 0x10c]\n-and eax, 0xffff\n-mov esi, edx\n+mov ecx, dword ptr [ecx + 0x1c]\n+mov ax, word ptr [ecx + 0x80]\n+test ax, ax\n+je 0x19f\n+lea edi, [esp + 0xc]\n+mov esi, dword ptr [ecx + 0x7c]\n+movzx eax, ax\n mov ecx, eax\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-lea ecx, [esp + 0x10c]\n+lea ecx, [esp + 0xc]\n mov edx, dword ptr [g_style (POINTER)]\n-mov byte ptr [esp + eax + 0x10c], 0\n-lea eax, [esp + 0xc]\n+mov byte ptr [esp + eax + 0xc], 0\n+lea eax, [esp + 0x10c]\n push ecx\n push edx\n push eax\n call KeyValueStringParse (FUNCTION)\n add esp, 0xc\n test al, al\n-je 0x119\n+je 0x11c\n mov eax, dword ptr [g_parseExtraTokens (POINTER)]\n-lea ecx, [esp + 0xc]\n+lea ecx, [esp + 0x10c]\n push eax\n push ecx\n call _strtok (FUNCTION)\n add esp, 8\n mov esi, eax\n mov ecx, dword ptr [g_toggle (POINTER)]\n push ecx\n push esi\n call __strcmpi (FUNCTION)\n add esp, 8\n@@ -103,36 +100,44 @@\n\n cmp si, di\n jl 0x32\n mov eax, dword ptr [g_parseExtraTokens (POINTER)]\n push eax\n push 0\n call _strtok (FUNCTION)\n add esp, 8\n push eax\n call _atoi (FUNCTION)\n add esp, 4\n-mov ecx, dword ptr [ebx + 0x58]\n-movsx edx, di\n+mov edx, dword ptr [ebx + 0x58]\n+movsx ecx, di\n inc di\n-mov word ptr [ecx + edx*2], ax\n-cmp di, si\n-jle -0x2a\n+mov word ptr [edx + ecx*2], ax\n+cmp si, di\n+jge -0x2a\n jmp 0x6\n mov word ptr [ebx + 0x4c], 0\n-lea eax, [esp + 0x10c]\n+lea eax, [esp + 0xc]\n mov ecx, dword ptr [g_strVISIBILITY (POINTER)]\n-lea edx, [esp + 0xc]\n+lea edx, [esp + 0x10c]\n push eax\n push ecx\n push edx\n call KeyValueStringParse (FUNCTION)\n add esp, 0xc\n test al, al\n-je 0x1f\n-lea eax, [esp + 0xc]\n+je 0x22\n+lea eax, [esp + 0x10c]\n push 'FALSE' (STRING)\n push eax\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n jne 0x9\n push 0\n+mov eax, dword ptr [ebx]\n+mov ecx, ebx\n+call dword ptr [eax + 0x54]\n+pop edi\n+pop esi\n+pop ebx\n+add esp, 0x200\n+ret "}, {"address": "0x10044820", "name": "MxControlPresenter::Enable", "matching": 1.0, "diff": ""}, {"address": "0x100448a0", "name": "MxControlPresenter::HasTickleStatePassed", "matching": 0.3181818181818182, "diff": "--- \n\n+++ \n\n@@ -1,24 +1,20 @@\n\n sub esp, 4\n mov eax, dword ptr [ecx + 0x44]\n+mov cx, word ptr [ecx + 0x4e]\n mov edx, dword ptr [eax]\n-mov ax, word ptr [ecx + 0x4e]\n-mov ecx, edx\n-test ax, ax\n-jle 0x6\n-dec ax\n-mov ecx, dword ptr [ecx]\n-jne -0x6\n-mov ecx, dword ptr [ecx + 8]\n-mov eax, dword ptr [esp + 8]\n-push eax\n+test cx, cx\n+mov dword ptr [esp], edx\n+jle 0xe\n+dec cx\n+mov eax, dword ptr [esp]\n+mov edx, dword ptr [eax]\n+mov dword ptr [esp], edx\n+jne -0xe\n+mov eax, dword ptr [esp]\n+mov edx, dword ptr [esp + 8]\n+push edx\n+mov ecx, dword ptr [eax + 8]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x48]\n add esp, 4\n ret 4\n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, dword ptr fs:[0]\n-push ebp\n-mov ebp, esp"}, {"address": "0x100448d0", "name": "LegoPathPresenter::LegoPathPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100449a0", "name": "LegoPathPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100449b0", "name": "LegoPathPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10044a90", "name": "LegoPathPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10044ab0", "name": "LegoPathPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x10044ac0", "name": "LegoPathPresenter::~LegoPathPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10044b40", "name": "LegoPathPresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x10044b70", "name": "LegoPathPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x10044c10", "name": "LegoPathPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x10044d00", "name": "LegoPathPresenter::StreamingTickle", "matching": 1.0, "diff": ""}, {"address": "0x10044d40", "name": "LegoPathPresenter::RepeatingTickle", "matching": 1.0, "diff": ""}, {"address": "0x10044e50", "name": "LegoUnknown100d7c88::~LegoUnknown100d7c88", "matching": 1.0, "diff": ""}, {"address": "0x10044eb0", "name": "LegoUnknown100d7c88::VTable0x00", "matching": 1.0, "diff": ""}, {"address": "0x10045110", "name": "LegoPathController::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10045120", "name": "LegoPathController::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10045740", "name": "LegoPathController::`scalar deleting destructor'", "matching": 0.8, "diff": "--- \n\n+++ \n\n@@ -1,30 +1,30 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n mov dword ptr [ecx], LegoPathController (VTABLE)\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n-mov dword ptr [ebp - 4], 2\n+mov dword ptr [ebp - 4], 0\n mov dword ptr [ebp - 0x10], ecx\n call LegoPathController::Destroy (FUNCTION)\n-mov byte ptr [ebp - 4], 1\n+mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET4>\n-mov byte ptr [ebp - 4], 0\n-call <OFFSET5>\n-mov dword ptr [ebp - 4], 0xffffffff\n-call <OFFSET6>\n test byte ptr [ebp + 8], 1\n je 0xc\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n+mov eax, <OFFSET6>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxCore::~MxCore (FUNCTION)"}, {"address": "0x10045a80", "name": "LegoMemory::~LegoMemory", "matching": 1.0, "diff": ""}, {"address": "0x10045ad0", "name": "LegoStorage::~LegoStorage", "matching": 1.0, "diff": ""}, {"address": "0x10045ae0", "name": "LegoStorage::IsWriteMode", "matching": 1.0, "diff": ""}, {"address": "0x10045af0", "name": "LegoStorage::IsReadMode", "matching": 1.0, "diff": ""}, {"address": "0x10045b00", "name": "LegoStorage::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1004a950", "name": "LegoAnimMMPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1004a960", "name": "LegoAnimMMPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1004aa40", "name": "LegoAnimMMPresenter::`scalar deleting destructor'", "matching": 0.3050847457627119, "diff": "--- \n\n+++ \n\n@@ -1,32 +1,27 @@\n\n-push esi\n-mov esi, ecx\n-call <OFFSET1>\n-test byte ptr [esp + 8], 1\n-je 0x9\n-push esi\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-mov eax, esi\n-pop esi\n-ret 4\n-int3 \n-int3 \n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n-push <OFFSET3>\n-mov dword ptr [ecx], LegoAnimMMPresenter (VTABLE)\n+push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n-mov dword ptr [ebp - 4], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebp - 0x10], ecx\n-call VideoManager (FUNCTION)\n-test eax, eax\n-je 0x10\n-call VideoManager (FUNCTION)\n+call <OFFSET2>\n+test byte ptr [ebp + 8], 1\n+je 0xc\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n+ret 4\n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-mov edx, dword ptr [eax]\n-push ecx\n-mov ecx, eax\n+jmp MxCompositePresenter::~MxCompositePresenter (FUNCTION)"}, {"address": "0x1004ad10", "name": "MxDSActionListCursor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1004ad80", "name": "MxListCursor<MxDSAction *>::~MxListCursor<MxDSAction *>", "matching": 1.0, "diff": ""}, {"address": "0x1004add0", "name": "MxListCursor<MxDSAction *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1004ae40", "name": "MxDSActionListCursor::~MxDSActionListCursor", "matching": 1.0, "diff": ""}, {"address": "0x1004ae90", "name": "list<MxPresenter *,allocator<MxPresenter *> >::_Buynode", "matching": 1.0, "diff": ""}, {"address": "0x1004b8d0", "name": "MxTransitionManager::MxTransitionManager", "matching": 1.0, "diff": ""}, {"address": "0x1004b950", "name": "MxTransitionManager::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1004b960", "name": "MxTransitionManager::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1004b9e0", "name": "MxTransitionManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1004ba00", "name": "MxTransitionManager::~MxTransitionManager", "matching": 1.0, "diff": ""}, {"address": "0x1004baa0", "name": "MxTransitionManager::GetDDrawSurfaceFromVideoManager", "matching": 1.0, "diff": ""}, {"address": "0x1004bac0", "name": "MxTransitionManager::Tickle", "matching": 0.8707482993197279, "diff": "--- \n\n+++ \n\n@@ -12,21 +12,21 @@\n\n pop edi\n pop esi\n pop ebx\n ret \n call esi\n mov dword ptr [ebx + 0x8f8], eax\n mov eax, dword ptr [ebx + 0x2c]\n dec eax\n cmp eax, 5\n ja 0x4f\n-jmp dword ptr [eax*4 + 0x1004bb4c]\n+jmp dword ptr [eax*4 + 0x1002b78c]\n mov ecx, ebx\n call MxTransitionManager::TransitionNone (FUNCTION)\n xor eax, eax\n pop edi\n pop esi\n pop ebx\n ret \n mov ecx, ebx\n call MxTransitionManager::TransitionDissolve (FUNCTION)\n xor eax, eax\n@@ -56,18 +56,19 @@\n\n pop ebx\n ret \n mov ecx, ebx\n call MxTransitionManager::TransitionBroken (FUNCTION)\n xor eax, eax\n pop edi\n pop esi\n pop ebx\n ret \n lea ecx, [ecx]\n-sti \n-mov edx, 0xbb081004\n-add al, 0x10\n-adc eax, 0x221004bb\n-mov ebx, 0xbb2f1004\n-add al, 0x10\n-cmp al, 0xbb\n-add al, 0x10\n+cmp esi, dword ptr [edi - 0x48b7effe]\n+add dl, byte ptr [eax]\n+push ebp\n+mov bh, 2\n+adc byte ptr [edx - 0x49], ah\n+add dl, byte ptr [eax]\n+outsd dx, dword ptr [esi]\n+mov bh, 2\n+adc byte ptr [edi + esi*4 + 2], bh"}, {"address": "0x1004bb70", "name": "MxTransitionManager::StartTransition", "matching": 1.0, "diff": ""}, {"address": "0x1004bc30", "name": "MxTransitionManager::EndTransition", "matching": 1.0, "diff": ""}, {"address": "0x1004bcf0", "name": "MxTransitionManager::TransitionNone", "matching": 1.0, "diff": ""}, {"address": "0x1004bd10", "name": "MxTransitionManager::TransitionDissolve", "matching": 0.868421052631579, "diff": "--- \n\n+++ \n\n@@ -30,29 +30,29 @@\n\n cdq \n mov bp, word ptr [ebx - 2]\n mov ecx, 0x280\n idiv ecx\n dec edi\n lea eax, [esi + edx*2 + 0x36]\n mov cx, word ptr [eax]\n mov word ptr [ebx - 2], cx\n mov word ptr [eax], bp\n jne -0x25\n-lea ebx, [esi + 0x536]\n-mov edi, 0x1e0\n-add ebx, 2\n+lea edi, [esi + 0x536]\n+mov ebx, 0x1e0\n+add edi, 2\n call _rand (FUNCTION)\n cdq \n mov ecx, 0x280\n idiv ecx\n-mov word ptr [ebx - 2], dx\n-dec edi\n+mov word ptr [edi - 2], dx\n+dec ebx\n jne -0x17\n lea edi, [esp + 0x10]\n xor eax, eax\n mov ecx, 0x1b\n push 0\n rep stosd dword ptr es:[edi], eax\n lea ecx, [esp + 0x14]\n push 1\n mov eax, dword ptr [esi + 0x30]\n push ecx\n@@ -70,62 +70,62 @@\n\n mov eax, dword ptr [esi + 0x30]\n push 0\n lea ecx, [esp + 0x14]\n push 1\n push ecx\n mov ebx, dword ptr [eax]\n push 0\n push eax\n call dword ptr [ebx + 0x64]\n test eax, eax\n-jne 0xce\n+jne 0xcb\n lea eax, [esp + 0x10]\n mov ecx, esi\n push eax\n xor edi, edi\n call MxTransitionManager::SubmitCopyRect (FUNCTION)\n xor ecx, ecx\n xor eax, eax\n mov cx, word ptr [esi + edi*2 + 0x36]\n mov ax, word ptr [esi + 0x34]\n shl eax, 4\n cmp ecx, eax\n-jl 0x57\n+jl 0x54\n add eax, 0xf\n cmp eax, ecx\n-jl 0x50\n+jl 0x4d\n xor ecx, ecx\n mov ebx, 8\n xor eax, eax\n mov ebp, 0x280\n mov ax, word ptr [esi + ecx*2 + 0x536]\n add eax, edi\n cdq \n idiv ebp\n+mov ebp, dword ptr [esp + 0x20]\n cmp dword ptr [esp + 0x64], ebx\n-jne 0x11\n-mov eax, dword ptr [esp + 0x20]\n-imul eax, ecx\n-add eax, dword ptr [esp + 0x34]\n-mov byte ptr [eax + edx], 0\n-jmp 0x15\n-mov ebp, dword ptr [esp + 0x20]\n+jne 0x10\n+imul ebp, ecx\n+add ebp, edx\n mov eax, dword ptr [esp + 0x34]\n+mov byte ptr [ebp + eax], 0\n+jmp 0xf\n imul ebp, ecx\n-lea edx, [ebp + edx*2]\n-mov word ptr [edx + eax], 0\n+add ebp, edx\n+mov eax, dword ptr [esp + 0x34]\n+mov word ptr [eax + ebp*2], 0\n inc ecx\n cmp ecx, 0x1e0\n-jl -0x49\n+jl -0x46\n inc edi\n cmp edi, 0x280\n-jl -0x74\n+jl -0x71\n lea eax, [esp + 0x10]\n mov ecx, esi\n push eax\n call MxTransitionManager::SetupCopyRect (FUNCTION)\n mov eax, dword ptr [esi + 0x30]\n mov ecx, dword ptr [esp + 0x34]\n mov ebx, dword ptr [eax]\n push ecx\n push eax\n call dword ptr [ebx + 0x80]\n@@ -142,10 +142,12 @@\n\n push 0\n push 0\n push eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x1c]\n inc word ptr [esi + 0x34]\n pop ebp\n pop edi\n pop esi\n pop ebx\n+add esp, 0x6c\n+ret "}, {"address": "0x1004bed0", "name": "MxTransitionManager::TransitionPixelation", "matching": 0.7740492170022372, "diff": "--- \n\n+++ \n\n@@ -81,114 +81,116 @@\n\n push 0\n lea ecx, [esp + 0x24]\n push 1\n mov eax, dword ptr [edx + 0x30]\n push ecx\n mov ebx, dword ptr [eax]\n push 0\n push eax\n call dword ptr [ebx + 0x64]\n test eax, eax\n-jne 0x18d\n+jne 0x194\n lea eax, [esp + 0x20]\n mov ecx, dword ptr [esp + 0x10]\n push eax\n call MxTransitionManager::SubmitCopyRect (FUNCTION)\n mov dword ptr [esp + 0x14], 0\n xor ecx, ecx\n mov edx, dword ptr [esp + 0x10]\n mov eax, dword ptr [esp + 0x14]\n mov cx, word ptr [edx + eax*2 + 0x36]\n xor eax, eax\n mov ax, word ptr [edx + 0x34]\n shl eax, 2\n cmp ecx, eax\n-jl 0xee\n+jl 0xf5\n add eax, 3\n cmp eax, ecx\n-jl 0xe3\n+jl 0xea\n mov ecx, 0xa\n add edx, 0x536\n mov dword ptr [esp + 0x1c], 0\n mov dword ptr [esp + 0x18], edx\n xor edx, edx\n mov eax, dword ptr [esp + 0x18]\n mov dx, word ptr [eax]\n mov eax, dword ptr [esp + 0x14]\n add eax, edx\n cdq \n xor eax, edx\n sub eax, edx\n and eax, 0x3f\n-mov edi, dword ptr [esp + 0x30]\n-xor eax, edx\n-sub eax, edx\n-imul edi, dword ptr [esp + 0x1c]\n+mov edi, dword ptr [esp + 0x44]\n+xor eax, edx\n+sub eax, edx\n lea ebx, [eax + eax*4]\n mov eax, dword ptr [esp + 0x74]\n shr eax, 3\n lea esi, [ebx*2]\n-lea ebx, [edi + edi*4]\n-mov edx, esi\n-imul edx, eax\n-lea edi, [edx + ebx*2]\n-add edi, dword ptr [esp + 0x44]\n+mov ebx, dword ptr [esp + 0x1c]\n+imul ebx, dword ptr [esp + 0x30]\n+lea edx, [ebx + ebx*4]\n+lea ebx, [esi + edx*2]\n+imul ebx, eax\n+add ebx, edi\n cmp eax, 1\n jne 0x6\n xor edx, edx\n-mov dl, byte ptr [edi]\n+mov dl, byte ptr [ebx]\n jmp 0x5\n xor edx, edx\n-mov dx, word ptr [edi]\n-lea edi, [ecx - 0xa]\n-cmp edi, ecx\n-jge 0x59\n+mov dx, word ptr [ebx]\n+lea ebx, [ecx - 0xa]\n+cmp ebx, ecx\n+jge 0x60\n cmp dword ptr [esp + 0x74], 8\n-jne 0x26\n-mov al, dl\n-mov ah, al\n-mov al, dl\n-mov ebx, eax\n-shl ebx, 0x10\n-mov bx, ax\n-mov eax, edi\n+jne 0x2e\n+movzx ax, dl\n+mov bp, ax\n+shl bp, 8\n+or bp, ax\n+movzx eax, bp\n+mov ebp, eax\n+shl ebp, 0x10\n+or ebp, eax\n+mov eax, ebx\n imul eax, dword ptr [esp + 0x30]\n+add eax, edi\n add eax, esi\n-add eax, dword ptr [esp + 0x44]\n-mov dword ptr [eax], ebx\n-mov dword ptr [eax + 4], ebx\n-mov word ptr [eax + 8], bx\n-jmp 0x27\n-movzx ebx, dx\n-mov eax, edi\n-mov ebp, ebx\n-imul eax, dword ptr [esp + 0x30]\n-shl ebp, 0x10\n-lea eax, [eax + esi*2]\n-mov bp, bx\n-add eax, dword ptr [esp + 0x44]\n mov dword ptr [eax], ebp\n mov dword ptr [eax + 4], ebp\n-mov dword ptr [eax + 8], ebp\n-mov dword ptr [eax + 0xc], ebp\n-mov dword ptr [eax + 0x10], ebp\n-inc edi\n-cmp edi, ecx\n-jl -0x59\n+mov word ptr [eax + 8], bp\n+jmp 0x26\n+movzx ebp, dx\n+mov eax, ebp\n+shl eax, 0x10\n+or eax, ebp\n+mov ebp, ebx\n+imul ebp, dword ptr [esp + 0x30]\n+lea ebp, [ebp + esi*2]\n+add ebp, edi\n+mov dword ptr [ebp], eax\n+mov dword ptr [ebp + 4], eax\n+mov dword ptr [ebp + 8], eax\n+mov dword ptr [ebp + 0xc], eax\n+mov dword ptr [ebp + 0x10], eax\n+inc ebx\n+cmp ebx, ecx\n+jl -0x60\n add ecx, 0xa\n inc dword ptr [esp + 0x1c]\n add dword ptr [esp + 0x18], 2\n cmp ecx, 0x1ea\n-jl -0xcc\n+jl -0xd3\n inc dword ptr [esp + 0x14]\n cmp dword ptr [esp + 0x14], 0x40\n-jl -0x11d\n+jl -0x124\n lea eax, [esp + 0x20]\n mov ecx, dword ptr [esp + 0x10]\n push eax\n call MxTransitionManager::SetupCopyRect (FUNCTION)\n mov edx, dword ptr [esp + 0x10]\n mov ecx, dword ptr [esp + 0x44]\n push ecx\n mov eax, dword ptr [edx + 0x30]\n push eax\n mov ebx, dword ptr [eax]\n@@ -210,17 +212,10 @@\n\n mov eax, dword ptr [eax]\n call dword ptr [eax + 0x1c]\n mov edx, dword ptr [esp + 0x10]\n inc word ptr [edx + 0x34]\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 0x7c\n ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x1004c170", "name": "MxTransitionManager::TransitionWipe", "matching": 1.0, "diff": ""}, {"address": "0x1004c270", "name": "MxTransitionManager::TransitionWindows", "matching": 1.0, "diff": ""}, {"address": "0x1004c3e0", "name": "MxTransitionManager::TransitionBroken", "matching": 1.0, "diff": ""}, {"address": "0x1004c470", "name": "MxTransitionManager::SetWaitIndicator", "matching": 1.0, "diff": ""}, {"address": "0x1004c4d0", "name": "MxTransitionManager::SubmitCopyRect", "matching": 0.8166666666666667, "diff": "--- \n\n+++ \n\n@@ -4,53 +4,53 @@\n\n push edi\n mov ebx, ecx\n push ebp\n test byte ptr [ebx + 0x20], 1\n je 0x84\n cmp dword ptr [ebx + 8], 0\n je 0x7e\n mov edx, dword ptr [ebx + 0x1c]\n test edx, edx\n je 0x77\n-mov esi, dword ptr [esp + 0x18]\n-mov eax, dword ptr [ebx + 0xc]\n+mov edi, dword ptr [esp + 0x18]\n+mov esi, dword ptr [ebx + 0xc]\n mov ebp, dword ptr [ebx + 0x14]\n-mov ecx, dword ptr [esi + 0x54]\n+mov ecx, dword ptr [edi + 0x54]\n shr ecx, 3\n-sub ebp, eax\n+sub ebp, esi\n inc ebp\n-mov edi, dword ptr [esi + 0x10]\n+mov eax, dword ptr [edi + 0x10]\n mov dword ptr [esp + 0x10], 0\n imul ebp, ecx\n-imul edi, dword ptr [ebx + 0x10]\n-imul eax, ecx\n-add edi, dword ptr [esi + 0x24]\n+imul eax, dword ptr [ebx + 0x10]\n+imul ecx, esi\n+add eax, ecx\n mov ecx, dword ptr [ebx + 0x18]\n-add eax, edi\n+add eax, dword ptr [edi + 0x24]\n sub ecx, dword ptr [ebx + 0x10]\n inc ecx\n test ecx, ecx\n jle 0x2c\n mov edi, eax\n mov esi, edx\n mov ecx, ebp\n add edx, ebp\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, ebp\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-mov esi, dword ptr [esp + 0x18]\n+mov edi, dword ptr [esp + 0x18]\n mov ecx, dword ptr [ebx + 0x18]\n sub ecx, dword ptr [ebx + 0x10]\n inc dword ptr [esp + 0x10]\n-add eax, dword ptr [esi + 0x10]\n+add eax, dword ptr [edi + 0x10]\n inc ecx\n cmp ecx, dword ptr [esp + 0x10]\n jg -0x2c\n mov eax, dword ptr [ebx + 0x1c]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [ebx + 0x1c], 0\n add esp, 4\n pop ebp\n pop edi"}, {"address": "0x1004c580", "name": "MxTransitionManager::SetupCopyRect", "matching": 0.445993031358885, "diff": "--- \n\n+++ \n\n@@ -1,142 +1,145 @@\n\n-sub esp, 0x10\n+sub esp, 8\n push ebx\n push esi\n push edi\n mov ebx, ecx\n push ebp\n test byte ptr [ebx + 0x20], 1\n-je 0x17f\n+je 0x173\n mov ecx, dword ptr [ebx + 8]\n test ecx, ecx\n-je 0x174\n+je 0x168\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 8]\n mov ecx, dword ptr [ebx + 8]\n cmp dword ptr [ecx + 8], 3\n-jl 0xd3\n-mov esi, dword ptr [esp + 0x24]\n-mov ebp, dword ptr [ebx + 0x14]\n-sub ebp, dword ptr [ebx + 0xc]\n-mov edi, dword ptr [ecx + 0x10]\n-mov eax, dword ptr [esi + 0x54]\n-inc ebp\n-shr eax, 3\n-mov edx, dword ptr [ecx + 0x14]\n+jl 0xc2\n+mov esi, dword ptr [esp + 0x1c]\n+mov eax, dword ptr [ebx + 0x14]\n+sub eax, dword ptr [ebx + 0xc]\n+mov edx, dword ptr [ecx + 0x10]\n+mov edi, dword ptr [esi + 0x54]\n+inc eax\n+shr edi, 3\n+mov dword ptr [ebx + 0xc], edx\n+imul eax, edi\n+mov ebp, dword ptr [ecx + 0x14]\n mov dword ptr [esp + 0x14], eax\n-mov dword ptr [esp + 0x1c], edx\n-imul ebp, eax\n+mov dword ptr [ebx + 0x10], ebp\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x84]\n mov ecx, dword ptr [ebx + 8]\n mov dword ptr [esp + 0x10], eax\n-mov esi, dword ptr [ecx]\n-call dword ptr [esi + 0x80]\n-mov edx, dword ptr [esp + 0x1c]\n-lea ecx, [edi + eax - 1]\n-mov esi, dword ptr [esp + 0x10]\n-mov dword ptr [ebx + 0xc], edi\n-mov dword ptr [ebx + 0x10], edx\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax + 0x80]\n+mov edx, dword ptr [ebx + 0xc]\n+mov ebp, dword ptr [ebx + 0x10]\n+lea ecx, [edx + eax]\n+dec ecx\n mov dword ptr [ebx + 0x14], ecx\n-lea edx, [esi + edx - 1]\n-mov esi, dword ptr [esp + 0x24]\n-mov dword ptr [ebx + 0x18], edx\n+mov ecx, dword ptr [esp + 0x10]\n+add ecx, ebp\n+imul edx, edi\n+imul eax, dword ptr [esp + 0x10]\n+imul eax, edi\n+dec ecx\n+push eax\n+mov dword ptr [ebx + 0x18], ecx\n mov ecx, dword ptr [esi + 0x10]\n-sub edx, dword ptr [esp + 0x1c]\n-imul ecx, dword ptr [esp + 0x1c]\n+imul ecx, ebp\n add ecx, dword ptr [esi + 0x24]\n-inc edx\n-mov esi, edi\n-lea eax, [edi + eax - 1]\n-imul esi, dword ptr [esp + 0x14]\n-add ecx, esi\n-sub eax, edi\n-inc eax\n-mov dword ptr [esp + 0x10], ecx\n-imul edx, eax\n-imul edx, dword ptr [esp + 0x14]\n-push edx\n+lea ebp, [ecx + edx]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [ebx + 0x1c], eax\n test eax, eax\n-je 0xc9\n-xor edx, edx\n+je 0xd9\n+mov dword ptr [esp + 0x10], 0\n mov ecx, dword ptr [ebx + 0x18]\n sub ecx, dword ptr [ebx + 0x10]\n inc ecx\n test ecx, ecx\n-jle 0x2d\n+jle 0x32\n+mov edx, dword ptr [esp + 0x14]\n mov edi, eax\n-mov esi, dword ptr [esp + 0x10]\n-mov ecx, ebp\n-inc edx\n+mov esi, ebp\n+mov ecx, edx\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n-mov ecx, ebp\n+mov ecx, edx\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-mov esi, dword ptr [esp + 0x24]\n-add eax, ebp\n-mov ecx, dword ptr [esi + 0x10]\n-add dword ptr [esp + 0x10], ecx\n+mov esi, dword ptr [esp + 0x1c]\n+add eax, dword ptr [esp + 0x14]\n mov ecx, dword ptr [ebx + 0x18]\n+inc dword ptr [esp + 0x10]\n+add ebp, dword ptr [esi + 0x10]\n sub ecx, dword ptr [ebx + 0x10]\n inc ecx\n-cmp ecx, edx\n-jg -0x2d\n+cmp ecx, dword ptr [esp + 0x10]\n+jg -0x2e\n mov eax, dword ptr [ebx + 8]\n mov ecx, dword ptr [eax + 0x1c]\n test byte ptr [ecx + 0x30], 0x10\n-je 0x48\n+je 0x49\n call VideoManager (FUNCTION)\n-mov ebp, dword ptr [eax + 0x58]\n+mov edi, dword ptr [eax + 0x58]\n mov esi, dword ptr [ebx + 8]\n-mov edi, dword ptr [ebp]\n-mov ebx, dword ptr [esi]\n push 0\n mov ecx, esi\n-call dword ptr [ebx + 0x84]\n+mov eax, dword ptr [esi]\n+mov ebx, dword ptr [esi + 0x10]\n+mov ebp, dword ptr [esi + 0x14]\n+call dword ptr [eax + 0x84]\n push eax\n mov ecx, esi\n-call dword ptr [ebx + 0x80]\n+mov eax, dword ptr [esi]\n+call dword ptr [eax + 0x80]\n push eax\n-mov ecx, dword ptr [esi + 0x10]\n-mov eax, dword ptr [esi + 0x14]\n-mov edx, dword ptr [esi + 0x50]\n+push ebp\n+push ebx\n+mov eax, dword ptr [esi + 0x50]\n mov esi, dword ptr [esp + 0x30]\n-push eax\n-push ecx\n push 0\n push 0\n-mov ecx, ebp\n-push edx\n+mov ebx, dword ptr [edi]\n+push eax\n+mov ecx, edi\n push esi\n-call dword ptr [edi + 0x2c]\n+call dword ptr [ebx + 0x2c]\n pop ebp\n pop edi\n pop esi\n pop ebx\n-add esp, 0x10\n+add esp, 8\n ret 4\n call VideoManager (FUNCTION)\n mov edi, dword ptr [eax + 0x58]\n-mov esi, dword ptr [ebx + 8]\n-mov ebx, dword ptr [esi]\n-mov ecx, esi\n-mov ebp, dword ptr [edi]\n-call dword ptr [ebx + 0x84]\n+mov ebp, dword ptr [ebx + 8]\n+mov ebx, dword ptr [ebp + 0x14]\n+mov eax, dword ptr [ebp]\n+mov ecx, ebp\n+mov esi, dword ptr [ebp + 0x10]\n+call dword ptr [eax + 0x84]\n push eax\n-mov ecx, esi\n-call dword ptr [ebx + 0x80]\n+mov ecx, ebp\n+mov eax, dword ptr [ebp]\n+call dword ptr [eax + 0x80]\n push eax\n-mov ecx, dword ptr [esi + 0x10]\n-mov eax, dword ptr [esi + 0x14]\n-mov edx, dword ptr [esi + 0x50]\n+push ebx\n+push esi\n+mov eax, dword ptr [ebp + 0x50]\n mov esi, dword ptr [esp + 0x2c]\n-push eax\n-push ecx\n push 0\n push 0\n+mov ebx, dword ptr [edi]\n+push eax\n mov ecx, edi\n-push edx\n push esi\n+call dword ptr [ebx + 0x24]\n+pop ebp\n+pop edi\n+pop esi\n+pop ebx\n+add esp, 8\n+ret 4"}, {"address": "0x1004c720", "name": "TowTrack::TowTrack", "matching": 1.0, "diff": ""}, {"address": "0x1004c7c0", "name": "TowTrack::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1004c7d0", "name": "TowTrack::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1004c950", "name": "TowTrack::`scalar deleting destructor'", "matching": 0.2857142857142857, "diff": "--- \n\n+++ \n\n@@ -1,29 +1,27 @@\n\n-push esi\n-mov esi, ecx\n-call <OFFSET1>\n-test byte ptr [esp + 8], 1\n-je 0x9\n-push esi\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-mov eax, esi\n-pop esi\n-ret 4\n-int3 \n-int3 \n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n-push <OFFSET3>\n-mov dword ptr [ecx], TowTrack (VTABLE)\n+push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n-mov dword ptr [ebp - 4], 0\n-push ecx\n+mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebp - 0x10], ecx\n-call ControlManager (FUNCTION)\n-mov ecx, eax\n-call LegoControlManager::Unregister (FUNCTION)\n-mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET2>\n+test byte ptr [ebp + 8], 1\n+je 0xc\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n+ret 4\n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp IslePathActor::~IslePathActor (FUNCTION)"}, {"address": "0x1004dd30", "name": "TowTrackMissionState::TowTrackMissionState", "matching": 1.0, "diff": ""}, {"address": "0x1004dde0", "name": "TowTrackMissionState::VTable0x1c", "matching": 0.9883720930232558, "diff": "--- \n\n+++ \n\n@@ -75,24 +75,24 @@\n\n call esi\n lea eax, [ebx + 0x22]\n push 2\n push eax\n mov ecx, edi\n add ebx, 0x24\n call esi\n push 2\n push ebx\n jmp 0xd2\n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxString::~MxString (FUNCTION)\n-mov eax, <OFFSET5>\n-jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, edi\n call dword ptr [esi + 0x14]\n test al, al\n je 0xb7\n mov ax, word ptr [ebx + 0x12]\n push 2\n mov word ptr [ebp - 0xe], ax\n mov ecx, edi\n mov esi, dword ptr [esi + 8]\n lea eax, [ebp - 0xe]"}, {"address": "0x1004dfa0", "name": "TowTrackMissionState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1004dfb0", "name": "TowTrackMissionState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1004e060", "name": "TowTrackMissionState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1004e0d0", "name": "MxBitmap::VTable0x28", "matching": 1.0, "diff": ""}, {"address": "0x1004e180", "name": "LegoPhonemePresenter::LegoPhonemePresenter", "matching": 1.0, "diff": ""}, {"address": "0x1004e200", "name": "MxFlcPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1004e310", "name": "LegoPhonemePresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1004e320", "name": "LegoPhonemePresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1004e340", "name": "LegoPhonemePresenter::~LegoPhonemePresenter", "matching": 1.0, "diff": ""}, {"address": "0x1004e3b0", "name": "LegoPhonemePresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x1004eb40", "name": "LegoTexturePresenter::~LegoTexturePresenter", "matching": 1.0, "diff": ""}, {"address": "0x1004ebb0", "name": "LegoTexturePresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x1004fcb0", "name": "LegoTexturePresenter::DoneTickle", "matching": 1.0, "diff": ""}, {"address": "0x1004fe20", "name": "LegoAct2::`scalar deleting destructor'", "matching": 0.3103448275862069, "diff": "--- \n\n+++ \n\n@@ -1,31 +1,27 @@\n\n-push esi\n-mov esi, ecx\n-call <OFFSET1>\n-test byte ptr [esp + 8], 1\n-je 0x9\n-push esi\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-mov eax, esi\n-pop esi\n-ret 4\n-int3 \n-int3 \n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n-push <OFFSET3>\n-mov dword ptr [ecx], LegoAct2 (VTABLE)\n+push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n-mov dword ptr [ebp - 4], 1\n-cmp byte ptr [ecx + 0x10c2], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebp - 0x10], ecx\n-je 0x10\n-call TickleManager (FUNCTION)\n+call <OFFSET2>\n+test byte ptr [ebp + 8], 1\n+je 0xc\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n+ret 4\n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-mov edx, dword ptr [eax]\n-push ecx\n-mov ecx, eax\n+jmp LegoWorld::~LegoWorld (FUNCTION)"}, {"address": "0x10051050", "name": "MxActionNotificationParam::~MxActionNotificationParam", "matching": 1.0, "diff": ""}, {"address": "0x100510c0", "name": "MxActionNotificationParam::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100511e0", "name": "MxActionNotificationParam::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10051270", "name": "MxEndActionNotificationParam::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100513a0", "name": "MxEndActionNotificationParam::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10051410", "name": "MxEndActionNotificationParam::~MxEndActionNotificationParam", "matching": 1.0, "diff": ""}, {"address": "0x100528e0", "name": "RegisterScripts", "matching": 1.0, "diff": ""}, {"address": "0x100530c0", "name": "UnregisterScripts", "matching": 1.0, "diff": ""}, {"address": "0x10053430", "name": "GetNoCD_SourceName", "matching": 1.0, "diff": ""}, {"address": "0x10053440", "name": "LegoEntityPresenter::LegoEntityPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100534b0", "name": "LegoEntityPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100534c0", "name": "LegoEntityPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100535a0", "name": "LegoEntityPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100535c0", "name": "LegoEntityPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x100535d0", "name": "LegoEntityPresenter::~LegoEntityPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10053630", "name": "LegoEntityPresenter::SetEntity", "matching": 1.0, "diff": ""}, {"address": "0x10053640", "name": "LegoEntityPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x10053670", "name": "LegoEntityPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x10053680", "name": "LegoEntityPresenter::StartAction", "matching": 1.0, "diff": ""}, {"address": "0x100536c0", "name": "LegoEntityPresenter::ReadyTickle", "matching": 1.0, "diff": ""}, {"address": "0x10053720", "name": "LegoEntityPresenter::RepeatingTickle", "matching": 1.0, "diff": ""}, {"address": "0x10053730", "name": "LegoEntityPresenter::SetEntityLocation", "matching": 1.0, "diff": ""}, {"address": "0x10053750", "name": "LegoEntityPresenter::ParseExtra", "matching": 0.4, "diff": "--- \n\n+++ \n\n@@ -1,23 +1,27 @@\n\n-mov eax, dword ptr [ecx + 0x1c]\n-sub esp, 0x204\n+sub esp, 0x200\n mov edx, ecx\n push esi\n-mov cx, word ptr [eax + 0x80]\n+mov ecx, dword ptr [edx + 0x1c]\n+mov ax, word ptr [ecx + 0x80]\n push edi\n-mov word ptr [esp + 0xa], cx\n-mov eax, dword ptr [eax + 0x7c]\n-test cx, cx\n-mov dword ptr [esp + 0xc], eax\n-je 0x31\n-mov eax, dword ptr [esp + 0xa]\n-lea edi, [esp + 0xc]\n-and eax, 0xffff\n-mov esi, dword ptr [esp + 0xc]\n+test ax, ax\n+je 0x2a\n+lea edi, [esp + 8]\n+mov esi, dword ptr [ecx + 0x7c]\n+movzx eax, ax\n mov ecx, eax\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-mov byte ptr [esp + eax + 0xc], 0\n+mov byte ptr [esp + eax + 8], 0\n mov ecx, dword ptr [edx + 0x4c]\n+lea edx, [esp + 8]\n+push edx\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax + 0x20]\n+pop edi\n+pop esi\n+add esp, 0x200\n+ret "}, {"address": "0x10054ac0", "name": "LegoNavController::LegoNavController", "matching": 1.0, "diff": ""}, {"address": "0x10054b80", "name": "LegoNavController::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10054b90", "name": "LegoNavController::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10054c10", "name": "LegoNavController::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10054c30", "name": "LegoNavController::~LegoNavController", "matching": 1.0, "diff": ""}, {"address": "0x10054ca0", "name": "LegoNavController::SetControlMax", "matching": 1.0, "diff": ""}, {"address": "0x10054cd0", "name": "LegoNavController::ResetToDefault", "matching": 1.0, "diff": ""}, {"address": "0x10054d40", "name": "LegoNavController::GetDefaults", "matching": 1.0, "diff": ""}, {"address": "0x10054dd0", "name": "LegoNavController::SetDefaults", "matching": 1.0, "diff": ""}, {"address": "0x10054e40", "name": "LegoNavController::SetTargets", "matching": 1.0, "diff": ""}, {"address": "0x10054f10", "name": "LegoNavController::CalculateNewTargetSpeed", "matching": 1.0, "diff": ""}, {"address": "0x10054f90", "name": "LegoNavController::CalculateNewAccel", "matching": 1.0, "diff": ""}, {"address": "0x10054fe0", "name": "LegoNavController::CalculateNewVel", "matching": 0.9787234042553191, "diff": "--- \n\n+++ \n\n@@ -17,22 +17,22 @@\n\n fnstsw ax\n test ah, 0x41\n jne 0x4c\n fld dword ptr [esp + 0x18]\n fmul dword ptr [esp + 0x14]\n mov dword ptr [esp + 4], edx\n test edx, edx\n fimul dword ptr [esp + 4]\n fadd dword ptr [esp + 0x10]\n fstp dword ptr [esp]\n+fld dword ptr [esp + 0xc]\n fld dword ptr [esp]\n-fld dword ptr [esp + 0xc]\n fcom st(1)\n fnstsw ax\n jle 0x17\n test ah, 0x41\n je 0x2\n fxch st(1)\n fstp st(0)\n fstp dword ptr [esp]\n fld dword ptr [esp]\n add esp, 8"}, {"address": "0x10058a00", "name": "LegoOmni::LegoOmni", "matching": 1.0, "diff": ""}, {"address": "0x10058a90", "name": "MxOmni::IsTimerRunning", "matching": 1.0, "diff": ""}, {"address": "0x10058aa0", "name": "LegoOmni::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10058ab0", "name": "LegoOmni::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10058b30", "name": "LegoOmni::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10058b50", "name": "LegoOmni::~LegoOmni", "matching": 1.0, "diff": ""}, {"address": "0x10058bd0", "name": "LegoOmni::Init", "matching": 1.0, "diff": ""}, {"address": "0x10058c30", "name": "LegoOmni::Destroy", "matching": 0.6273062730627307, "diff": "--- \n\n+++ \n\n@@ -1,25 +1,24 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 8\n-push ebx\n+sub esp, 4\n push esi\n+push edi\n lea eax, [ecx + 0x48]\n-push edi\n mov esi, ecx\n push eax\n-lea ecx, [ebp - 0x14]\n+lea ecx, [ebp - 0x10]\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n mov dword ptr [ebp - 4], 0\n push esi\n mov ecx, dword ptr [esi + 0x28]\n call MxNotificationManager::Unregister (FUNCTION)\n mov ecx, dword ptr [esi + 0x78]\n test ecx, ecx\n je 0xd\n push 1\n mov eax, dword ptr [ecx]\n@@ -34,107 +33,99 @@\n\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [esi + 0x9c], 0\n add esp, 4\n mov ecx, dword ptr [esi + 0x94]\n test ecx, ecx\n je 0x10\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov dword ptr [esi + 0x94], 0\n-mov edi, dword ptr [esi + 0x8c]\n-test edi, edi\n-je 0x1a\n-mov ecx, edi\n-call <OFFSET6>\n-push edi\n+mov eax, dword ptr [esi + 0x8c]\n+test eax, eax\n+je 0x13\n+push eax\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [esi + 0x8c], 0\n add esp, 4\n mov ecx, dword ptr [esi + 0x90]\n test ecx, ecx\n je 0x10\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov dword ptr [esi + 0x90], 0\n mov ecx, dword ptr [esi + 0x98]\n test ecx, ecx\n je 0x10\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov dword ptr [esi + 0x98], 0\n-mov edi, dword ptr [esi + 0x74]\n-test edi, edi\n-je 0x85\n-mov eax, dword ptr [edi + 0xc]\n-add edi, 8\n-mov ecx, dword ptr [eax]\n-mov dword ptr [ebp - 0x10], ecx\n-cmp eax, ecx\n-je 0x62\n-mov eax, dword ptr [ebp - 0x10]\n-mov ebx, dword ptr [eax + 0x10]\n-test ebx, ebx\n-je 0x10\n-mov ecx, ebx\n-call GifData::~GifData (FUNCTION)\n-push ebx\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-mov eax, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [eax + 8]\n-cmp ecx, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n-je 0xe\n-mov eax, dword ptr [ecx]\n-cmp eax, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n-je 0x25\n-mov ecx, eax\n-jmp -0xe\n-mov eax, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [eax + 4]\n-cmp dword ptr [ecx + 8], eax\n-jne 0xe\n-mov dword ptr [ebp - 0x10], ecx\n-mov ecx, dword ptr [ecx + 4]\n-mov eax, dword ptr [ebp - 0x10]\n-cmp dword ptr [ecx + 8], eax\n-je -0xe\n-mov eax, dword ptr [ebp - 0x10]\n-cmp dword ptr [eax + 8], ecx\n-je 0x3\n-mov dword ptr [ebp - 0x10], ecx\n-mov eax, dword ptr [ebp - 0x10]\n-cmp dword ptr [edi + 4], eax\n-jne -0x62\n mov ecx, dword ptr [esi + 0x74]\n test ecx, ecx\n-je 0x6\n+je 0xd\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov dword ptr [esi + 0x74], 0\n mov ecx, dword ptr [esi + 0x6c]\n test ecx, ecx\n je 0xd\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov dword ptr [esi + 0x6c], 0\n mov ecx, dword ptr [esi + 0x70]\n test ecx, ecx\n je 0xd\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov dword ptr [esi + 0x70], 0\n-call <OFFSET9>\n+mov ecx, dword ptr [esi + 0x70]\n+test ecx, ecx\n+je 0xd\n+push 1\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax]\n+mov dword ptr [esi + 0x70], 0\n mov ecx, dword ptr [esi + 0x134]\n test ecx, ecx\n je 0x1f\n call MxBackgroundAudioManager::Stop (FUNCTION)\n mov ecx, dword ptr [esi + 0x134]\n test ecx, ecx\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n+call dword ptr [eax]\n+mov dword ptr [esi + 0x134], 0\n+mov ecx, dword ptr [esi + 0x138]\n+test ecx, ecx\n+je 0x10\n+push 1\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax]\n+mov dword ptr [esi + 0x138], 0\n+lea ecx, [esi + 0xc0]\n+call MxAtomId::Clear (FUNCTION)\n+call UnregisterScripts (FUNCTION)\n+mov eax, dword ptr [esi + 0x68]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+mov ecx, esi\n+call MxOmni::Destroy (FUNCTION)\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET10>\n+mov eax, dword ptr [ebp - 0xc]\n+pop edi\n+mov dword ptr fs:[0], eax\n+pop esi\n+mov esp, ebp\n+pop ebp\n+ret \n+mov eax, <OFFSET11>\n+jmp ___CxxFrameHandler (FUNCTION)\n+lea ecx, [ebp - 0x10]\n+jmp MxAutoLocker::~MxAutoLocker (FUNCTION)"}, {"address": "0x10058e70", "name": "LegoOmni::Create", "matching": 0.44284428442844287, "diff": "--- \n\n+++ \n\n@@ -1,259 +1,237 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 0x20\n lea eax, [ecx + 0x48]\n+sub esp, 0x1c\n mov dword ptr [ebp - 0x14], ecx\n+lea ecx, [ebp - 0x28]\n push ebx\n-lea ecx, [ebp - 0x2c]\n push esi\n xor ebx, ebx\n-mov dword ptr [ebp - 0x20], 0xffffffff\n push edi\n push eax\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n-mov esi, dword ptr [ebp + 8]\n+mov edi, dword ptr [ebp + 8]\n mov dword ptr [ebp - 4], ebx\n-mov al, byte ptr [esi + 0x3c]\n+mov al, byte ptr [edi + 0x3c]\n and al, 0xfe\n-mov byte ptr [esi + 0x3c], al\n+mov byte ptr [edi + 0x3c], al\n and al, 0xef\n push 0x14\n-mov byte ptr [esi + 0x3c], al\n+mov byte ptr [edi + 0x3c], al\n and al, 0xdf\n-mov byte ptr [esi + 0x3c], al\n+mov byte ptr [edi + 0x3c], al\n and al, 0xfb\n-mov byte ptr [esi + 0x3c], al\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x1c], eax\n+mov byte ptr [edi + 0x3c], al\n+call ??2@YAPAXI@Z (FUNCTION)\n+mov dword ptr [ebp - 0x20], eax\n add esp, 4\n mov byte ptr [ebp - 4], 1\n-mov edi, eax\n-test edi, edi\n+mov esi, eax\n+test esi, esi\n je 0x56\n-mov ecx, edi\n+mov ecx, esi\n call MxCore::MxCore (FUNCTION)\n+mov al, byte ptr [ebp - 0x15]\n+push 0xc\n mov byte ptr [ebp - 4], 2\n-mov al, byte ptr [ebp - 0xd]\n-push 0xc\n-mov byte ptr [edi + 8], al\n+mov byte ptr [esi + 8], al\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [eax], eax\n mov byte ptr [ebp - 4], 4\n mov byte ptr [ebp - 4], 1\n mov dword ptr [eax + 4], eax\n-mov dword ptr [edi + 0xc], eax\n-mov eax, edi\n-mov dword ptr [edi + 0x10], ebx\n-mov dword ptr [edi], MxTickleManager (VTABLE)\n+mov dword ptr [esi + 0xc], eax\n+mov eax, esi\n+mov dword ptr [esi + 0x10], ebx\n+mov dword ptr [esi], MxTickleManager (VTABLE)\n jmp 0x20\n-mov ecx, dword ptr [ebp - 0x1c]\n+mov ecx, dword ptr [ebp - 0x20]\n add ecx, 8\n jmp list<MxTickleClient *,allocator<MxTickleClient *> >::~list<MxTickleClient *,allocator<MxTickleClient *> > (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x1c]\n+mov ecx, dword ptr [ebp - 0x20]\n add ecx, 8\n jmp List<MxTickleClient *>::~List<MxTickleClient *> (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x1c]\n+mov ecx, dword ptr [ebp - 0x20]\n jmp MxCore::~MxCore (FUNCTION)\n xor eax, eax\n mov edx, dword ptr [ebp - 0x14]\n test eax, eax\n mov byte ptr [ebp - 4], 0\n mov dword ptr [edx + 0x24], eax\n-je 0xab\n-push esi\n-mov ecx, edx\n+jne 0x24\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET9>\n+mov eax, 0xffffffff\n+mov ecx, dword ptr [ebp - 0xc]\n+pop edi\n+mov dword ptr fs:[0], ecx\n+pop esi\n+pop ebx\n+mov esp, ebp\n+pop ebp\n+ret 4\n+push edi\n+mov ecx, dword ptr [ebp - 0x14]\n call MxOmni::Create (FUNCTION)\n test eax, eax\n-jne 0x9b\n-push 0x1c8\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n+jne -0x31\n+push 0x190\n+call ??2@YAPAXI@Z (FUNCTION)\n+mov dword ptr [ebp - 0x18], eax\n add esp, 4\n mov byte ptr [ebp - 4], 5\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x7\n-mov ecx, edi\n+mov esi, eax\n+mov eax, 0\n+test esi, esi\n+je 0x7\n+mov ecx, esi\n call LegoObjectFactory::LegoObjectFactory (FUNCTION)\n mov edx, dword ptr [ebp - 0x14]\n test eax, eax\n mov byte ptr [ebp - 4], 0\n mov dword ptr [edx + 0x1c], eax\n-je 0x67\n+je -0x65\n push 0x44\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n+mov dword ptr [ebp - 0x18], eax\n add esp, 4\n mov byte ptr [ebp - 4], 6\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x7\n-mov ecx, edi\n+mov esi, eax\n+mov eax, 0\n+test esi, esi\n+je 0x7\n+mov ecx, esi\n call LegoSoundManager::LegoSoundManager (FUNCTION)\n-xor ebx, ebx\n-mov edx, dword ptr [ebp - 0x14]\n-mov byte ptr [ebp - 4], bl\n-test eax, eax\n+mov edx, dword ptr [ebp - 0x14]\n+test eax, eax\n+mov byte ptr [ebp - 4], 0\n mov dword ptr [edx + 0x30], eax\n-je 0x12\n-push ebx\n+je 0x2e\n+push 0\n mov edx, dword ptr [eax]\n push 0xa\n mov ecx, eax\n call dword ptr [edx + 0x30]\n-cmp eax, 1\n-sbb eax, eax\n-inc eax\n-je 0x5\n-mov ebx, 1\n-test ebx, ebx\n-je 0x3c\n+test eax, eax\n+je 0x1f\n mov edx, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [edx + 0x30]\n test ecx, ecx\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov edx, dword ptr [ebp - 0x14]\n mov dword ptr [edx + 0x30], 0\n-mov dword ptr [ebp - 4], 0xffffffff\n-call <OFFSET12>\n-mov eax, dword ptr [ebp - 0x20]\n-mov ecx, dword ptr [ebp - 0xc]\n-mov dword ptr fs:[0], ecx\n-pop edi\n-pop esi\n-pop ebx\n-mov esp, ebp\n-pop ebp\n-ret 4\n+jmp -0xc4\n push 0x590\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n+mov dword ptr [ebp - 0x18], eax\n add esp, 4\n mov byte ptr [ebp - 4], 7\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x7\n-mov ecx, edi\n+mov esi, eax\n+mov eax, 0\n+test esi, esi\n+je 0x7\n+mov ecx, esi\n call LegoVideoManager::LegoVideoManager (FUNCTION)\n-xor ebx, ebx\n-mov edx, dword ptr [ebp - 0x14]\n-mov byte ptr [ebp - 4], bl\n-test eax, eax\n+mov edx, dword ptr [ebp - 0x14]\n+test eax, eax\n+mov byte ptr [ebp - 4], 0\n mov dword ptr [edx + 0x2c], eax\n-je 0x16\n-push ebx\n-lea ecx, [esi + 0x18]\n+je 0x2d\n+push 0\n+lea ecx, [edi + 0x18]\n push 0x64\n mov edx, dword ptr [eax]\n push ecx\n mov ecx, eax\n call dword ptr [edx + 0x2c]\n-cmp eax, 1\n-sbb eax, eax\n-inc eax\n-je 0x5\n-mov ebx, 1\n-test ebx, ebx\n-je 0x1f\n+test eax, eax\n+je 0x1a\n mov edx, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [edx + 0x2c]\n test ecx, ecx\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov edx, dword ptr [ebp - 0x14]\n mov dword ptr [edx + 0x2c], 0\n-jmp -0x95\n push 0x338\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n+mov dword ptr [ebp - 0x18], eax\n+add esp, 4\n+mov esi, eax\n+mov ecx, 0\n mov byte ptr [ebp - 4], 8\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x7\n-mov ecx, edi\n+test esi, esi\n+je 0x9\n+mov ecx, esi\n call LegoInputManager::LegoInputManager (FUNCTION)\n-xor ebx, ebx\n-mov edx, dword ptr [ebp - 0x14]\n-mov byte ptr [ebp - 4], bl\n-test eax, eax\n-mov dword ptr [edx + 0x70], eax\n-je 0x13\n-mov ecx, dword ptr [esi + 0x14]\n-push ecx\n mov ecx, eax\n+mov edx, dword ptr [ebp - 0x14]\n+test ecx, ecx\n+mov byte ptr [ebp - 4], 0\n+mov dword ptr [edx + 0x70], ecx\n+je 0x27\n+mov eax, dword ptr [edi + 0x14]\n+push eax\n call LegoInputManager::Create (FUNCTION)\n-cmp eax, 1\n-sbb eax, eax\n-inc eax\n-je 0x5\n-mov ebx, 1\n-test ebx, ebx\n-je 0x1f\n+test eax, eax\n+je 0x1a\n mov edx, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [edx + 0x70]\n test ecx, ecx\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov edx, dword ptr [ebp - 0x14]\n mov dword ptr [edx + 0x70], 0\n-jmp -0x105\n push 0x14\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n+mov dword ptr [ebp - 0x18], eax\n add esp, 4\n mov byte ptr [ebp - 4], 9\n mov esi, eax\n mov eax, 0\n test esi, esi\n je 0x7\n mov ecx, esi\n call ViewLODListManager::ViewLODListManager (FUNCTION)\n xor ebx, ebx\n mov edx, dword ptr [ebp - 0x14]\n push 0x24\n mov byte ptr [ebp - 4], bl\n mov dword ptr [edx + 0x6c], eax\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n-mov dword ptr [ebp - 0x18], eax\n+mov dword ptr [ebp - 0x1c], eax\n mov byte ptr [ebp - 4], 0xa\n-cmp dword ptr [ebp - 0x18], ebx\n-je 0x175\n-mov ecx, dword ptr [ebp - 0x18]\n-mov dl, byte ptr [ebp - 0xd]\n-add ecx, 8\n+cmp eax, ebx\n+je 0x157\n+lea ecx, [eax + 8]\n+mov dl, byte ptr [ebp - 0x15]\n mov dword ptr [ebp - 0x24], ecx\n mov byte ptr [ecx], dl\n-mov al, byte ptr [ebp - 0x19]\n-mov edx, dword ptr [ebp - 0x18]\n+mov al, byte ptr [ebp - 0x1d]\n+mov edx, dword ptr [ebp - 0x1c]\n+mov byte ptr [ebp - 4], 0xb\n mov byte ptr [edx + 9], al\n-mov edx, dword ptr [ebp - 0x18]\n-mov byte ptr [ebp - 4], 0xb\n mov dword ptr [edx + 0x10], ebx\n cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], ebx\n jne 0x34\n push 0x18\n call allocator<GifData *>::_Charalloc (FUNCTION)\n push eax\n mov esi, eax\n call _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Parent (FUNCTION)\n add esp, 4\n mov dword ptr [eax], ebx\n@@ -273,279 +251,310 @@\n\n call allocator<GifData *>::_Charalloc (FUNCTION)\n push eax\n mov edi, eax\n call _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Parent (FUNCTION)\n add esp, 4\n mov dword ptr [eax], esi\n xor esi, esi\n push edi\n call _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Color (FUNCTION)\n add esp, 4\n+mov ecx, dword ptr [ebp - 0x1c]\n mov dword ptr [eax], esi\n-mov ecx, dword ptr [ebp - 0x18]\n mov dword ptr [ecx + 0xc], edi\n-mov ecx, dword ptr [ebp - 0x18]\n mov dword ptr [ecx + 0x14], esi\n-mov ecx, dword ptr [ebp - 0x18]\n mov edi, dword ptr [ecx + 0xc]\n push edi\n call _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Left (FUNCTION)\n add esp, 4\n-mov ecx, dword ptr [ebp - 0x18]\n+mov ecx, dword ptr [ebp - 0x1c]\n mov edi, dword ptr [ecx + 0xc]\n mov dword ptr [eax], edi\n-mov ecx, dword ptr [ebp - 0x18]\n mov edi, dword ptr [ecx + 0xc]\n push edi\n call _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Right (FUNCTION)\n add esp, 4\n-mov ecx, dword ptr [ebp - 0x18]\n+mov ecx, dword ptr [ebp - 0x1c]\n mov byte ptr [ebp - 4], 0xf\n-mov byte ptr [ebp - 4], 0xa\n mov edi, dword ptr [ecx + 0xc]\n mov ebx, 0x10\n+push 0xc\n mov dword ptr [eax], edi\n+mov al, byte ptr [ebp - 0x15]\n+mov dword ptr [ecx], GifManagerBase (VTABLE)\n+mov byte ptr [ebp - 4], 0xa\n mov byte ptr [ebp - 4], bl\n-mov ecx, dword ptr [ebp - 0x18]\n-push ebx\n-mov dword ptr [ecx], GifManagerBase (VTABLE)\n-mov ecx, dword ptr [ebp - 0x18]\n+mov byte ptr [ecx + 0x18], al\n+call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n+mov ecx, dword ptr [ebp - 0x1c]\n+mov byte ptr [ebp - 4], 0x12\n+mov byte ptr [ebp - 4], 0xa\n+mov dword ptr [eax], eax\n+mov dword ptr [eax + 4], eax\n+mov dword ptr [ecx + 0x1c], eax\n+mov eax, ecx\n+mov dword ptr [ecx + 0x20], esi\n+mov dword ptr [ecx], GifManager (VTABLE)\n mov byte ptr [ecx + 4], 1\n-mov al, byte ptr [ebp - 0xd]\n-mov ecx, dword ptr [ebp - 0x18]\n-mov byte ptr [ecx + 0x18], al\n-call ??2@YAPAXI@Z (FUNCTION)\n-add esp, 4\n-mov dword ptr [eax], eax\n-mov byte ptr [ebp - 4], 0x12\n-mov dword ptr [eax + 4], eax\n-mov ecx, dword ptr [ebp - 0x18]\n-mov byte ptr [ebp - 4], 0xa\n-mov dword ptr [ecx + 0x1c], eax\n-mov ecx, dword ptr [ebp - 0x18]\n-mov dword ptr [ecx + 0x20], esi\n-mov ecx, dword ptr [ebp - 0x18]\n-mov dword ptr [ecx], GifManager (VTABLE)\n-mov eax, dword ptr [ebp - 0x18]\n jmp 0x54\n-mov ecx, dword ptr [ebp - 0x18]\n+mov ecx, dword ptr [ebp - 0x1c]\n add ecx, 0x18\n jmp list<GifData *,allocator<GifData *> >::~list<GifData *,allocator<GifData *> > (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x18]\n+mov ecx, dword ptr [ebp - 0x1c]\n add ecx, 0x18\n jmp List<GifData *>::~List<GifData *> (FUNCTION)\n-lea ecx, [ebp - 0x25]\n+lea ecx, [ebp - 0xd]\n jmp _Lockit::~_Lockit (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x18]\n+mov ecx, dword ptr [ebp - 0x1c]\n add ecx, 8\n jmp _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::~_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMa (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x18]\n+mov ecx, dword ptr [ebp - 0x1c]\n add ecx, 8\n jmp map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::~map<char const *,GifData *,GifMapComparator,allocator<GifData *> > (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x18]\n+mov ecx, dword ptr [ebp - 0x1c]\n add ecx, 8\n jmp Map<char const *,GifData *,GifMapComparator>::~Map<char const *,GifData *,GifMapComparator> (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x18]\n+mov ecx, dword ptr [ebp - 0x1c]\n add ecx, 8\n jmp GifMap::~GifMap (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x18]\n+mov ecx, dword ptr [ebp - 0x1c]\n jmp GifManagerBase::~GifManagerBase (FUNCTION)\n xor eax, eax\n-xor ebx, ebx\n-mov edx, dword ptr [ebp - 0x14]\n-mov byte ptr [ebp - 4], bl\n+mov edx, dword ptr [ebp - 0x14]\n+push 8\n+mov byte ptr [ebp - 4], 0\n mov dword ptr [edx + 0x74], eax\n-mov byte ptr [eax + 4], bl\n-call <OFFSET34>\n-push 8\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n+call ??2@YAPAXI@Z (FUNCTION)\n+mov dword ptr [ebp - 0x18], eax\n add esp, 4\n mov byte ptr [ebp - 4], 0x13\n mov edi, eax\n mov eax, 0\n test edi, edi\n je 0x7\n mov ecx, edi\n-call <OFFSET35>\n-mov edx, dword ptr [ebp - 0x14]\n-push 0x2c\n-mov byte ptr [ebp - 4], 0\n-mov dword ptr [edx + 0x8c], eax\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x1c], eax\n+call LegoPlantManager::LegoPlantManager (FUNCTION)\n+mov edx, dword ptr [ebp - 0x14]\n+push 8\n+mov byte ptr [ebp - 4], 0\n+mov dword ptr [edx + 0x90], eax\n+call ??2@YAPAXI@Z (FUNCTION)\n+mov dword ptr [ebp - 0x20], eax\n add esp, 4\n mov byte ptr [ebp - 4], 0x14\n mov esi, eax\n mov eax, 0\n test esi, esi\n je 0x7\n mov ecx, esi\n-call LegoPlantManager::LegoPlantManager (FUNCTION)\n-mov edx, dword ptr [ebp - 0x14]\n-push 0x500\n-mov byte ptr [ebp - 4], 0\n-mov dword ptr [edx + 0x90], eax\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n+call LegoAnimationManager::LegoAnimationManager (FUNCTION)\n+mov edx, dword ptr [ebp - 0x14]\n+push 8\n+mov byte ptr [ebp - 4], 0\n+mov dword ptr [edx + 0x94], eax\n+call ??2@YAPAXI@Z (FUNCTION)\n+mov dword ptr [ebp - 0x18], eax\n add esp, 4\n mov byte ptr [ebp - 4], 0x15\n mov edi, eax\n mov eax, 0\n test edi, edi\n je 0x7\n mov ecx, edi\n-call LegoAnimationManager::LegoAnimationManager (FUNCTION)\n-mov edx, dword ptr [ebp - 0x14]\n-push 0x30\n-mov byte ptr [ebp - 4], 0\n-mov dword ptr [edx + 0x94], eax\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x1c], eax\n+call LegoBuildingManager::LegoBuildingManager (FUNCTION)\n+mov edx, dword ptr [ebp - 0x14]\n+push 0x430\n+mov byte ptr [ebp - 4], 0\n+mov dword ptr [edx + 0x98], eax\n+call ??2@YAPAXI@Z (FUNCTION)\n+mov dword ptr [ebp - 0x20], eax\n add esp, 4\n mov byte ptr [ebp - 4], 0x16\n mov esi, eax\n mov eax, 0\n test esi, esi\n je 0x7\n mov ecx, esi\n-call LegoBuildingManager::LegoBuildingManager (FUNCTION)\n-mov edx, dword ptr [ebp - 0x14]\n-push 0x430\n-mov byte ptr [ebp - 4], 0\n-mov dword ptr [edx + 0x98], eax\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x28], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 0x17\n+call LegoGameState::LegoGameState (FUNCTION)\n+mov edx, dword ptr [ebp - 0x14]\n+push 0x18\n+mov byte ptr [ebp - 4], 0\n+mov ebx, 0x17\n+mov dword ptr [edx + 0x9c], eax\n+call ??2@YAPAXI@Z (FUNCTION)\n+mov dword ptr [ebp - 0x18], eax\n+add esp, 4\n mov edi, eax\n-mov eax, 0\n+mov byte ptr [ebp - 4], bl\n test edi, edi\n-je 0x7\n+je 0x79\n mov ecx, edi\n-call LegoGameState::LegoGameState (FUNCTION)\n-mov edx, dword ptr [ebp - 0x14]\n-mov ebx, 0x18\n-mov byte ptr [ebp - 4], 0\n-push ebx\n-mov dword ptr [edx + 0x9c], eax\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x79\n-mov ecx, esi\n call MxCore::MxCore (FUNCTION)\n+mov byte ptr [ebp - 4], 0x18\n mov byte ptr [ebp - 4], 0x19\n mov byte ptr [ebp - 4], 0x1a\n+mov dword ptr [edi], MxCollection<LegoWorld *> (VTABLE)\n+mov dword ptr [edi + 8], 0\n+mov dword ptr [edi + 0xc], MxCollection<LegoWorld *>::Destroy (FUNCTION)\n mov byte ptr [ebp - 4], 0x1b\n-mov dword ptr [esi], MxCollection<LegoWorld *> (VTABLE)\n-mov dword ptr [esi + 8], 0\n-mov dword ptr [esi + 0xc], MxCollection<LegoWorld *>::Destroy (FUNCTION)\n-mov byte ptr [ebp - 4], 0x1c\n-mov dword ptr [esi], MxList<LegoWorld *> (VTABLE)\n+mov dword ptr [edi], MxList<LegoWorld *> (VTABLE)\n mov byte ptr [ebp - 4], bl\n-mov dword ptr [esi + 0x14], 0\n-mov dword ptr [esi + 0x10], 0\n-mov eax, esi\n-mov dword ptr [esi], MxPtrList<LegoWorld> (VTABLE)\n-mov dword ptr [esi + 0xc], MxPtrList<LegoWorld>::Destroy (FUNCTION)\n-mov dword ptr [esi], LegoWorldList (VTABLE)\n+mov dword ptr [edi + 0x14], 0\n+mov dword ptr [edi + 0x10], 0\n+mov eax, edi\n+mov dword ptr [edi], MxPtrList<LegoWorld> (VTABLE)\n+mov dword ptr [edi + 0xc], MxPtrList<LegoWorld>::Destroy (FUNCTION)\n+mov dword ptr [edi], LegoWorldList (VTABLE)\n jmp 0x22\n-mov ecx, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0x18]\n jmp MxCore::~MxCore (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0x18]\n jmp MxCollection<LegoWorld *>::~MxCollection<LegoWorld *> (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0x18]\n jmp MxList<LegoWorld *>::~MxList<LegoWorld *> (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x621\n+mov ecx, dword ptr [ebp - 0x18]\n+jmp MxPtrList<LegoWorld>::~MxPtrList<LegoWorld> (FUNCTION)\n xor eax, eax\n mov edx, dword ptr [ebp - 0x14]\n mov byte ptr [ebp - 4], 0\n cmp dword ptr [edx + 0x6c], 0\n mov dword ptr [edx + 0x78], eax\n-je -0x476\n+je -0x499\n cmp dword ptr [edx + 0x74], 0\n-je -0x480\n-test eax, eax\n-je -0x488\n-cmp dword ptr [edx + 0x8c], 0\n-je -0x495\n+je -0x4a3\n+test eax, eax\n+je -0x4ab\n cmp dword ptr [edx + 0x90], 0\n-je -0x4a2\n+je -0x4b8\n cmp dword ptr [edx + 0x94], 0\n-je -0x4af\n+je -0x4c5\n cmp dword ptr [edx + 0x98], 0\n-je -0x4bc\n-push 0x24\n-mov ebx, 0x1d\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x5c\n-lea edi, [esi + 4]\n-mov ecx, edi\n-call MxString::MxString (FUNCTION)\n-mov byte ptr [ebp - 4], 0x1e\n-lea ecx, [esi + 0x14]\n-call MxString::MxString (FUNCTION)\n-mov byte ptr [ebp - 4], 0x1f\n-mov ecx, edi\n-mov dword ptr [esi], MxVariable (VTABLE)\n-mov byte ptr [ebp - 4], 0x20\n-mov dword ptr [esi], <OFFSET50>\n-mov eax, dword ptr [<OFFSET51>]\n-push eax\n-call MxString::operator= (FUNCTION)\n-mov eax, esi\n-mov byte ptr [ebp - 4], bl\n-jmp 0x20\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x14\n-jmp MxString::~MxString (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 4\n-jmp MxString::~MxString (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp MxVariable::~MxVariable (FUNCTION)\n+je -0x4d2\n+call RegisterScripts (FUNCTION)\n+call FUN_1001a700 (FUNCTION)\n+push 0x150\n+call ??2@YAPAXI@Z (FUNCTION)\n+mov dword ptr [ebp - 0x18], eax\n+add esp, 4\n+mov byte ptr [ebp - 4], 0x1c\n+mov esi, eax\n+mov eax, 0\n+test esi, esi\n+je 0x7\n+mov ecx, esi\n+call MxBackgroundAudioManager::MxBackgroundAudioManager (FUNCTION)\n+mov edx, dword ptr [ebp - 0x14]\n+test eax, eax\n+mov byte ptr [ebp - 4], 0\n+mov dword ptr [edx + 0x134], eax\n+je -0x517\n+push 0x900\n+call ??2@YAPAXI@Z (FUNCTION)\n+mov dword ptr [ebp - 0x18], eax\n+add esp, 4\n+mov esi, eax\n+mov ecx, 0\n+mov byte ptr [ebp - 4], 0x1d\n+test esi, esi\n+je 0x9\n+mov ecx, esi\n+call MxTransitionManager::MxTransitionManager (FUNCTION)\n+mov ecx, eax\n+mov edx, dword ptr [ebp - 0x14]\n+test ecx, ecx\n+mov byte ptr [ebp - 4], 0\n+mov dword ptr [edx + 0x138], ecx\n+je -0x554\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax + 0x14]\n+test eax, eax\n+jne -0x561\n+mov edx, dword ptr [ebp - 0x14]\n+push edx\n+mov ecx, dword ptr [edx + 0x28]\n+call MxNotificationManager::Register (FUNCTION)\n+push 1\n+call SetAppCursor (FUNCTION)\n+add esp, 4\n+mov edx, dword ptr [ebp - 0x14]\n+push 0\n+mov ecx, dword ptr [edx + 0x9c]\n+call LegoGameState::SetSomeEnumState (FUNCTION)\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET9>\n xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-test eax, eax\n-je -0x541\n-push eax\n-mov edx, dword ptr [ebp - 0x14]\n-mov ecx, dword ptr [edx + 0x20]\n-mov ebx, 0x21\n-call MxVariableTable::SetVariable (FUNCTION)\n-push 0x24\n-call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0x5c\n-lea edi, [esi + 4]\n-mov ecx, edi\n-call MxString::MxString (FUNCTION)\n-mov byte ptr [ebp - 4], 0x22\n-lea ecx, [esi + 0x14]\n-call MxString::MxString (FUNCTION)\n-mov byte ptr [ebp - 4], 0x23\n-mov ecx, edi\n-mov dword ptr [esi], MxVariable (VTABLE)\n-mov byte ptr [ebp - 4], 0x24\n-mov dword ptr [esi], <OFFSET56>\n-mov eax, dword ptr [<OFFSET57>]\n-push eax\n-call MxString::operator= (FUNCTION)\n-mov eax, esi\n-mov byte ptr [ebp - 4], bl\n-jmp 0x20\n-mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x14\n+jmp -0x589\n+mov eax, dword ptr [ebp - 0x18]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x20]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x20]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x1c]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x20]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, <OFFSET55>\n+jmp ___CxxFrameHandler (FUNCTION)\n+lea ecx, [ebp - 0x28]\n+jmp MxAutoLocker::~MxAutoLocker (FUNCTION)"}, {"address": "0x100598d0", "name": "LegoWorldList::Compare", "matching": 1.0, "diff": ""}, {"address": "0x100598f0", "name": "MxCollection<LegoWorld *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x10059900", "name": "MxCollection<LegoWorld *>::~MxCollection<LegoWorld *>", "matching": 1.0, "diff": ""}, {"address": "0x10059950", "name": "MxCollection<LegoWorld *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x10059960", "name": "MxList<LegoWorld *>::~MxList<LegoWorld *>", "matching": 1.0, "diff": ""}, {"address": "0x100599f0", "name": "MxPtrList<LegoWorld>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x10059a00", "name": "LegoWorldList::`scalar deleting destructor'", "matching": 0.9629629629629629, "diff": "--- \n\n+++ \n\n@@ -17,11 +17,11 @@\n\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0xf\n+jmp MxPtrList<LegoWorld>::~MxPtrList<LegoWorld> (FUNCTION)"}, {"address": "0x10059ac0", "name": "MxCollection<LegoWorld *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10059b30", "name": "MxList<LegoWorld *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10059be0", "name": "MxPtrList<LegoWorld>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10059c50", "name": "allocator<GifData *>::_Charalloc", "matching": 1.0, "diff": ""}, {"address": "0x10059c70", "name": "_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Color", "matching": 1.0, "diff": ""}, {"address": "0x10059c80", "name": "_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Left", "matching": 1.0, "diff": ""}, {"address": "0x10059c90", "name": "_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Parent", "matching": 1.0, "diff": ""}, {"address": "0x10059ca0", "name": "_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Right", "matching": 1.0, "diff": ""}, {"address": "0x10059cb0", "name": "_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::~_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMa", "matching": 1.0, "diff": ""}, {"address": "0x10059d80", "name": "_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::iterator::_Inc", "matching": 0.9166666666666666, "diff": "--- \n\n+++ \n\n@@ -1,16 +1,16 @@\n\n mov eax, dword ptr [ecx]\n mov edx, dword ptr [eax + 8]\n-cmp edx, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], edx\n je 0x11\n mov eax, dword ptr [edx]\n-cmp eax, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], eax\n je 0x4\n mov edx, eax\n jmp -0xe\n mov dword ptr [ecx], edx\n ret \n mov edx, dword ptr [eax + 4]\n cmp dword ptr [edx + 8], eax\n jne 0xc\n mov dword ptr [ecx], edx\n mov eax, edx"}, {"address": "0x10059dc0", "name": "_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::erase", "matching": 0.7302452316076294, "diff": "--- \n\n+++ \n\n@@ -1,63 +1,61 @@\n\n mov eax, dword ptr [esp + 8]\n sub esp, 4\n mov dword ptr [esp], eax\n push ebx\n push esi\n push edi\n push ebp\n mov esi, ecx\n mov ecx, dword ptr [eax + 8]\n-cmp ecx, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n-je 0x14\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], ecx\n+je 0xe\n mov eax, dword ptr [ecx]\n-cmp eax, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n-je 0x4\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], eax\n+je 0x29\n mov ecx, eax\n jmp -0xe\n+mov eax, dword ptr [esp + 0x1c]\n+mov ecx, dword ptr [eax + 4]\n+cmp dword ptr [ecx + 8], eax\n+jne 0x10\n mov dword ptr [esp + 0x1c], ecx\n-jmp 0x29\n-mov ecx, dword ptr [esp + 0x1c]\n-mov eax, dword ptr [ecx + 4]\n+mov ecx, dword ptr [ecx + 4]\n+mov eax, dword ptr [esp + 0x1c]\n+cmp dword ptr [ecx + 8], eax\n+je -0x10\n+mov eax, dword ptr [esp + 0x1c]\n cmp dword ptr [eax + 8], ecx\n-jne 0x10\n-mov dword ptr [esp + 0x1c], eax\n-mov eax, dword ptr [eax + 4]\n-mov ecx, dword ptr [esp + 0x1c]\n-cmp dword ptr [eax + 8], ecx\n-je -0x10\n-mov ecx, dword ptr [esp + 0x1c]\n-cmp dword ptr [ecx + 8], eax\n je 0x4\n-mov dword ptr [esp + 0x1c], eax\n+mov dword ptr [esp + 0x1c], ecx\n mov ecx, dword ptr [esp + 0x10]\n mov ebx, dword ptr [ecx]\n-cmp ebx, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], ebx\n je 0x26\n lea edi, [ecx + 8]\n mov edx, dword ptr [edi]\n-cmp edx, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], edx\n je 0x15\n mov eax, dword ptr [edx]\n-cmp eax, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], eax\n je 0x4\n mov edx, eax\n jmp -0xe\n mov ecx, edx\n mov edx, dword ptr [edx + 8]\n jmp 0xe\n mov edx, ebx\n jmp 0xa\n mov edi, dword ptr [esp + 0x10]\n mov edx, dword ptr [edi + 8]\n add edi, 8\n-cmp dword ptr [esp + 0x10], ecx\n+cmp ecx, dword ptr [esp + 0x10]\n jne 0x8f\n mov eax, dword ptr [ecx + 4]\n mov ebx, dword ptr [esp + 0x10]\n mov dword ptr [edx + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], ebx\n je 0xc\n mov eax, dword ptr [ebx + 4]\n cmp dword ptr [eax], ebx\n@@ -67,49 +65,49 @@\n\n mov dword ptr [eax], edx\n mov ebx, dword ptr [esi + 4]\n mov eax, dword ptr [esp + 0x10]\n cmp dword ptr [ebx], eax\n jne 0x26\n mov eax, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n cmp dword ptr [edi], eax\n je 0x14\n mov eax, edx\n mov edi, dword ptr [eax]\n-cmp edi, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], edi\n je 0x4\n mov eax, edi\n jmp -0xe\n mov dword ptr [ebx], eax\n jmp 0x9\n mov eax, dword ptr [esp + 0x10]\n mov ebp, dword ptr [eax + 4]\n mov dword ptr [ebx], ebp\n mov edi, dword ptr [esi + 4]\n mov eax, dword ptr [esp + 0x10]\n add edi, 8\n cmp dword ptr [edi], eax\n-jne 0x88\n+jne 0x8a\n mov ebx, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n cmp dword ptr [eax], ebx\n je 0x15\n mov eax, edx\n mov ebx, dword ptr [eax + 8]\n-cmp ebx, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], ebx\n je 0x4\n mov eax, ebx\n jmp -0xf\n mov dword ptr [edi], eax\n-jmp 0x69\n+jmp 0x6b\n mov eax, dword ptr [esp + 0x10]\n mov ebx, dword ptr [eax + 4]\n mov dword ptr [edi], ebx\n-jmp 0x5e\n+jmp 0x60\n mov eax, dword ptr [esp + 0x10]\n mov dword ptr [ebx + 4], ecx\n mov ebx, dword ptr [eax]\n mov dword ptr [ecx], ebx\n cmp dword ptr [edi], ecx\n jne 0x5\n mov dword ptr [edx + 4], ecx\n jmp 0x15\n mov eax, dword ptr [ecx + 4]\n mov dword ptr [edx + 4], eax\n@@ -125,192 +123,192 @@\n\n cmp dword ptr [eax], edi\n je 0xc\n mov eax, dword ptr [edi + 4]\n cmp dword ptr [eax], edi\n je 0x5\n mov dword ptr [eax + 8], ecx\n jmp 0x2\n mov dword ptr [eax], ecx\n mov eax, dword ptr [esp + 0x10]\n mov ebx, dword ptr [eax + 4]\n-lea edi, [eax + 0x14]\n+add eax, 0x14\n mov dword ptr [ecx + 4], ebx\n-mov ebx, dword ptr [edi]\n-mov ebp, dword ptr [ecx + 0x14]\n+mov edi, dword ptr [ecx + 0x14]\n+mov ebx, dword ptr [eax]\n mov dword ptr [ecx + 0x14], ebx\n-mov ecx, eax\n-mov dword ptr [edi], ebp\n+mov ecx, dword ptr [esp + 0x10]\n+mov dword ptr [eax], edi\n cmp dword ptr [ecx + 0x14], 1\n jne 0x296\n mov eax, dword ptr [esi + 4]\n cmp dword ptr [eax + 4], edx\n je 0x283\n cmp dword ptr [edx + 0x14], 1\n jne 0x279\n lea ebx, [edx + 4]\n mov eax, dword ptr [ebx]\n mov edi, dword ptr [eax]\n cmp edx, edi\n jne 0x76\n mov edi, dword ptr [eax + 8]\n cmp dword ptr [edi + 0x14], 0\n jne 0x52\n mov dword ptr [edi + 0x14], 1\n mov eax, dword ptr [ebx]\n mov dword ptr [eax + 0x14], 0\n-mov eax, dword ptr [ebx]\n-mov ebp, dword ptr [eax + 8]\n-mov edi, dword ptr [ebp]\n-mov dword ptr [eax + 8], edi\n-mov edi, dword ptr [ebp]\n-cmp edi, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+mov edi, dword ptr [ebx]\n+mov eax, dword ptr [edi + 8]\n+mov ebp, dword ptr [eax]\n+mov dword ptr [edi + 8], ebp\n+mov ebp, dword ptr [eax]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], ebp\n+je 0x3\n+mov dword ptr [ebp + 4], edi\n+mov ebp, dword ptr [edi + 4]\n+mov dword ptr [eax + 4], ebp\n+mov ebp, dword ptr [esi + 4]\n+add ebp, 4\n+cmp dword ptr [ebp], edi\n+je 0xd\n+mov ebp, dword ptr [edi + 4]\n+cmp dword ptr [ebp], edi\n+je 0x5\n+mov dword ptr [ebp + 8], eax\n+jmp 0x3\n+mov dword ptr [ebp], eax\n+mov dword ptr [eax], edi\n+mov dword ptr [edi + 4], eax\n+mov eax, dword ptr [ebx]\n+mov edi, dword ptr [eax + 8]\n+mov eax, dword ptr [edi]\n+cmp dword ptr [eax + 0x14], 1\n+jne 0x98\n+mov eax, dword ptr [edi + 8]\n+cmp dword ptr [eax + 0x14], 1\n+jne 0x8b\n+jmp 0x6f\n+cmp dword ptr [edi + 0x14], 0\n+jne 0x50\n+mov dword ptr [edi + 0x14], 1\n+mov eax, dword ptr [ebx]\n+mov dword ptr [eax + 0x14], 0\n+mov eax, dword ptr [ebx]\n+mov ebp, dword ptr [eax]\n+mov edi, dword ptr [ebp + 8]\n+mov dword ptr [eax], edi\n+mov edi, dword ptr [ebp + 8]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], edi\n je 0x3\n mov dword ptr [edi + 4], eax\n mov edi, dword ptr [eax + 4]\n mov dword ptr [ebp + 4], edi\n mov edi, dword ptr [esi + 4]\n add edi, 4\n cmp dword ptr [edi], eax\n-je 0xc\n+je 0xd\n mov edi, dword ptr [eax + 4]\n+add edi, 8\n cmp dword ptr [edi], eax\n-je 0x5\n-mov dword ptr [edi + 8], ebp\n-jmp 0x2\n+je 0x3\n+mov edi, dword ptr [eax + 4]\n mov dword ptr [edi], ebp\n-mov dword ptr [ebp], eax\n+mov dword ptr [ebp + 8], eax\n mov dword ptr [eax + 4], ebp\n mov eax, dword ptr [ebx]\n-mov edi, dword ptr [eax + 8]\n-mov eax, dword ptr [edi]\n-cmp dword ptr [eax + 0x14], 1\n-jne 0x98\n-mov eax, dword ptr [edi + 8]\n-cmp dword ptr [eax + 0x14], 1\n-jne 0x8b\n-jmp 0x6f\n-cmp dword ptr [edi + 0x14], 0\n-jne 0x50\n-mov dword ptr [edi + 0x14], 1\n-mov eax, dword ptr [ebx]\n-mov dword ptr [eax + 0x14], 0\n-mov edi, dword ptr [ebx]\n-mov ebp, dword ptr [edi]\n-mov eax, dword ptr [ebp + 8]\n-mov dword ptr [edi], eax\n-mov eax, dword ptr [ebp + 8]\n-cmp eax, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n-je 0x3\n-mov dword ptr [eax + 4], edi\n-mov eax, dword ptr [edi + 4]\n-mov dword ptr [ebp + 4], eax\n-mov eax, dword ptr [esi + 4]\n-add eax, 4\n-cmp dword ptr [eax], edi\n-je 0xd\n-mov eax, dword ptr [edi + 4]\n-add eax, 8\n-cmp dword ptr [eax], edi\n-je 0x3\n-mov eax, dword ptr [edi + 4]\n-mov dword ptr [eax], ebp\n-mov dword ptr [ebp + 8], edi\n-mov dword ptr [edi + 4], ebp\n-mov eax, dword ptr [ebx]\n mov edi, dword ptr [eax]\n mov eax, dword ptr [edi + 8]\n cmp dword ptr [eax + 0x14], 1\n-jne 0xe6\n-mov eax, dword ptr [edi]\n-cmp dword ptr [eax + 0x14], 1\n-jne 0xda\n+jne 0xe7\n+mov eax, dword ptr [edi]\n+cmp dword ptr [eax + 0x14], 1\n+jne 0xdb\n mov dword ptr [edi + 0x14], 0\n mov edx, dword ptr [ebx]\n mov eax, dword ptr [esi + 4]\n cmp dword ptr [eax + 4], edx\n jne -0x10f\n jmp 0x16f\n mov eax, dword ptr [edi + 8]\n cmp dword ptr [eax + 0x14], 1\n-jne 0x52\n+jne 0x53\n mov eax, dword ptr [edi]\n mov dword ptr [eax + 0x14], 1\n mov dword ptr [edi + 0x14], 0\n mov ebx, dword ptr [edi]\n mov ebp, dword ptr [ebx + 8]\n mov dword ptr [edi], ebp\n mov eax, dword ptr [ebx + 8]\n-cmp eax, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], edi\n mov eax, dword ptr [edi + 4]\n mov dword ptr [ebx + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], edi\n-je 0xf\n-mov ebp, dword ptr [edi + 4]\n-lea eax, [ebp + 8]\n-cmp dword ptr [eax], edi\n-je 0x5\n+je 0x10\n+mov eax, dword ptr [edi + 4]\n+lea ebp, [eax + 8]\n+cmp dword ptr [ebp], edi\n+jne 0x5\n mov dword ptr [ebp], ebx\n jmp 0x2\n mov dword ptr [eax], ebx\n mov dword ptr [ebx + 8], edi\n mov dword ptr [edi + 4], ebx\n mov eax, dword ptr [edx + 4]\n mov edi, dword ptr [eax + 8]\n mov eax, dword ptr [edx + 4]\n mov ebx, dword ptr [eax + 0x14]\n mov dword ptr [edi + 0x14], ebx\n mov ebx, 1\n mov eax, dword ptr [edx + 4]\n mov dword ptr [eax + 0x14], ebx\n mov ebp, dword ptr [edi + 8]\n mov dword ptr [ebp + 0x14], ebx\n mov ebx, dword ptr [edx + 4]\n mov edi, dword ptr [ebx + 8]\n mov eax, dword ptr [edi]\n mov dword ptr [ebx + 8], eax\n mov eax, dword ptr [edi]\n-cmp eax, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], ebx\n mov eax, dword ptr [ebx + 4]\n mov dword ptr [edi + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], ebx\n je 0x1a\n mov eax, dword ptr [ebx + 4]\n cmp dword ptr [eax], ebx\n je 0xa\n mov dword ptr [eax + 8], edi\n mov dword ptr [edi], ebx\n-jmp 0xbe\n+jmp 0xbd\n mov dword ptr [eax], edi\n mov dword ptr [edi], ebx\n-jmp 0xb5\n+jmp 0xb4\n mov dword ptr [eax], edi\n mov dword ptr [edi], ebx\n-jmp 0xac\n+jmp 0xab\n mov eax, dword ptr [edi]\n cmp dword ptr [eax + 0x14], 1\n jne 0x4e\n mov eax, dword ptr [edi + 8]\n mov dword ptr [eax + 0x14], 1\n mov dword ptr [edi + 0x14], 0\n mov ebx, dword ptr [edi + 8]\n mov ebp, dword ptr [ebx]\n mov dword ptr [edi + 8], ebp\n mov eax, dword ptr [ebx]\n-cmp eax, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], edi\n mov eax, dword ptr [edi + 4]\n mov dword ptr [ebx + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], edi\n je 0xc\n mov eax, dword ptr [edi + 4]\n cmp dword ptr [eax], edi\n@@ -328,40 +326,42 @@\n\n mov ebx, 1\n mov eax, dword ptr [edx + 4]\n mov dword ptr [eax + 0x14], ebx\n mov ebp, dword ptr [edi]\n mov dword ptr [ebp + 0x14], ebx\n mov ebx, dword ptr [edx + 4]\n mov edi, dword ptr [ebx]\n mov eax, dword ptr [edi + 8]\n mov dword ptr [ebx], eax\n mov eax, dword ptr [edi + 8]\n-cmp eax, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], ebx\n mov eax, dword ptr [ebx + 4]\n mov dword ptr [edi + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], ebx\n-je 0x10\n-mov eax, dword ptr [ebx + 4]\n-lea ebp, [eax + 8]\n-cmp dword ptr [ebp], ebx\n-jne 0x5\n+je 0xf\n+mov ebp, dword ptr [ebx + 4]\n+lea eax, [ebp + 8]\n+cmp dword ptr [eax], ebx\n+je 0x5\n mov dword ptr [ebp], edi\n jmp 0x2\n mov dword ptr [eax], edi\n mov dword ptr [edi + 8], ebx\n mov dword ptr [ebx + 4], edi\n mov dword ptr [edx + 0x14], 1\n push ecx\n call ??3@YAXPAX@Z (FUNCTION)\n mov ecx, dword ptr [esp + 0x20]\n mov eax, dword ptr [esp + 0x1c]\n add esp, 4\n dec dword ptr [esi + 0xc]\n mov dword ptr [eax], ecx\n pop ebp\n pop edi\n pop esi\n pop ebx\n+add esp, 4\n+ret 8"}, {"address": "0x1005a210", "name": "_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Erase", "matching": 0.9565217391304348, "diff": "--- \n\n+++ \n\n@@ -1,17 +1,17 @@\n\n push ebx\n push esi\n mov esi, dword ptr [esp + 0xc]\n push edi\n mov edi, ecx\n mov ebx, esi\n-cmp esi, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], esi\n je 0x20\n mov eax, dword ptr [ebx + 8]\n mov ecx, edi\n push eax\n call _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Erase (FUNCTION)\n mov ebx, dword ptr [ebx]\n push esi\n mov esi, ebx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4"}, {"address": "0x1005a250", "name": "list<GifData *,allocator<GifData *> >::~list<GifData *,allocator<GifData *> >", "matching": 0.9459459459459459, "diff": "--- \n\n+++ \n\n@@ -1,36 +1,36 @@\n\n sub esp, 0xc\n push esi\n push edi\n mov eax, dword ptr [ecx + 4]\n mov esi, ecx\n mov dword ptr [esp + 0x10], eax\n mov ecx, dword ptr [eax]\n mov edi, ecx\n-cmp eax, ecx\n+cmp ecx, eax\n je 0x2e\n lea edx, [edi + 4]\n mov dword ptr [esp + 8], edi\n mov eax, edi\n mov edi, dword ptr [edi]\n mov ecx, dword ptr [edx]\n mov eax, dword ptr [eax]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [edx]\n mov eax, dword ptr [esp + 8]\n push eax\n mov edx, dword ptr [eax]\n mov dword ptr [edx + 4], ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 8]\n-cmp dword ptr [esp + 0x10], edi\n+cmp edi, dword ptr [esp + 0x10]\n jne -0x2e\n mov eax, dword ptr [esi + 4]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [esi + 4], 0\n add esp, 4\n mov dword ptr [esi + 8], 0\n pop edi\n pop esi\n add esp, 0xc"}, {"address": "0x1005a2c0", "name": "map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::~map<char const *,GifData *,GifMapComparator,allocator<GifData *> >", "matching": 1.0, "diff": ""}, {"address": "0x1005a310", "name": "GifManagerBase::`scalar deleting destructor'", "matching": 0.974025974025974, "diff": "--- \n\n+++ \n\n@@ -25,24 +25,24 @@\n\n je 0x17\n mov edi, dword ptr [esi + 0x10]\n test edi, edi\n je 0x10\n mov ecx, edi\n call GifData::~GifData (FUNCTION)\n push edi\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov ecx, dword ptr [esi + 8]\n-cmp ecx, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], ecx\n je 0x12\n mov eax, dword ptr [ecx]\n-cmp eax, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], eax\n je 0x4\n mov ecx, eax\n jmp -0xe\n mov esi, ecx\n jmp 0x19\n mov eax, dword ptr [esi + 4]\n cmp dword ptr [eax + 8], esi\n jne 0xa\n mov esi, eax\n mov eax, dword ptr [eax + 4]"}, {"address": "0x1005a400", "name": "GifMap::~GifMap", "matching": 1.0, "diff": ""}, {"address": "0x1005a450", "name": "Map<char const *,GifData *,GifMapComparator>::~Map<char const *,GifData *,GifMapComparator>", "matching": 1.0, "diff": ""}, {"address": "0x1005a4a0", "name": "list<MxTickleClient *,allocator<MxTickleClient *> >::~list<MxTickleClient *,allocator<MxTickleClient *> >", "matching": 0.972972972972973, "diff": "--- \n\n+++ \n\n@@ -16,21 +16,21 @@\n\n mov eax, dword ptr [eax]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [edx]\n mov eax, dword ptr [esp + 8]\n push eax\n mov edx, dword ptr [eax]\n mov dword ptr [edx + 4], ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 8]\n-cmp edi, dword ptr [esp + 0x10]\n+cmp dword ptr [esp + 0x10], edi\n jne -0x2e\n mov eax, dword ptr [esi + 4]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [esi + 4], 0\n add esp, 4\n mov dword ptr [esi + 8], 0\n pop edi\n pop esi\n add esp, 0xc"}, {"address": "0x1005a510", "name": "MxTickleManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1005a530", "name": "List<MxTickleClient *>::~List<MxTickleClient *>", "matching": 1.0, "diff": ""}, {"address": "0x1005a580", "name": "GifManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1005a5a0", "name": "List<GifData *>::~List<GifData *>", "matching": 1.0, "diff": ""}, {"address": "0x1005ac90", "name": "LegoOmni::CreateInstance", "matching": 1.0, "diff": ""}, {"address": "0x1005ad10", "name": "LegoOmni::GetInstance", "matching": 1.0, "diff": ""}, {"address": "0x1005ad20", "name": "LegoOmni::AddWorld", "matching": 1.0, "diff": ""}, {"address": "0x1005adb0", "name": "LegoOmni::DeleteWorld", "matching": 1.0, "diff": ""}, {"address": "0x1005af10", "name": "LegoOmni::RemoveWorld", "matching": 0.96, "diff": "--- \n\n+++ \n\n@@ -31,49 +31,49 @@\n\n mov dword ptr [ebp - 4], ebx\n mov edi, dword ptr [edi + 0x78]\n call MxCore::MxCore (FUNCTION)\n mov byte ptr [ebp - 4], 4\n mov dword ptr [ebp - 0x28], edi\n mov dword ptr [ebp - 0x24], esi\n mov dword ptr [ebp - 0x30], MxListCursor<LegoWorld *> (VTABLE)\n mov byte ptr [ebp - 4], 5\n mov dword ptr [ebp - 0x30], MxPtrListCursor<LegoWorld> (VTABLE)\n mov byte ptr [ebp - 4], 6\n-mov edi, dword ptr [ebp + 8]\n-mov ebx, dword ptr [ebp + 0xc]\n+mov edi, dword ptr [ebp + 0xc]\n+mov ebx, dword ptr [ebp + 8]\n mov dword ptr [ebp - 0x30], LegoWorldListCursor (VTABLE)\n mov eax, dword ptr [ebp - 0x14]\n mov byte ptr [ebp - 4], 7\n mov ecx, dword ptr [eax + 0x10]\n mov dword ptr [ebp - 0x10], ecx\n cmp dword ptr [ebp - 0x10], esi\n je 0x7f\n mov eax, dword ptr [ebp - 0x10]\n cmp dword ptr [ebp - 0x10], esi\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x20], ecx\n je 0x72\n mov eax, dword ptr [ebp - 0x18]\n mov ecx, dword ptr [ebp - 0x14]\n mov edx, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 0x2c], eax\n mov eax, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 0x28], ecx\n mov dword ptr [ebp - 0x24], edx\n-cmp ebx, -1\n+cmp edi, -1\n mov ecx, dword ptr [eax + 8]\n mov dword ptr [ebp - 0x24], ecx\n je 0x8\n mov eax, dword ptr [ebp - 0x20]\n-cmp dword ptr [eax + 8], ebx\n+cmp dword ptr [eax + 8], edi\n jne 0x33\n-mov eax, dword ptr [edi]\n+mov eax, dword ptr [ebx]\n test eax, eax\n je 0x8\n mov ecx, dword ptr [ebp - 0x20]\n cmp dword ptr [ecx + 0xc], eax\n jne 0x25\n cmp dword ptr [ebp - 0x10], esi\n je 0xf\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0x14]\n push eax"}, {"address": "0x1005b0c0", "name": "LegoOmni::FindWorld", "matching": 1.0, "diff": ""}, {"address": "0x1005b1d0", "name": "LegoOmni::DeleteObject", "matching": 0.6268656716417911, "diff": "--- \n\n+++ \n\n@@ -1,67 +1,67 @@\n\n push ebx\n push esi\n+mov esi, dword ptr [esp + 0xc]\n push edi\n-mov ebx, ecx\n-mov edi, dword ptr [esp + 0x10]\n-lea esi, [edi + 0x20]\n-cmp dword ptr [esi], 0\n+mov edi, ecx\n+lea ebx, [esi + 0x20]\n+cmp dword ptr [ebx], 0\n je 0x77\n-mov eax, dword ptr [edi + 0x1c]\n+mov eax, dword ptr [esi + 0x1c]\n push eax\n-push esi\n+push ebx\n call LegoOmni::FindWorld (FUNCTION)\n test eax, eax\n je 0xe\n push eax\n-mov ecx, ebx\n+mov ecx, edi\n call LegoOmni::DeleteWorld (FUNCTION)\n pop edi\n pop esi\n pop ebx\n ret 4\n-mov ecx, dword ptr [ebx + 0x7c]\n+mov ecx, dword ptr [edi + 0x7c]\n test ecx, ecx\n je 0x54\n-mov eax, dword ptr [edi + 0x1c]\n+mov eax, dword ptr [esi + 0x1c]\n push eax\n-push esi\n+push ebx\n call LegoWorld::Find (FUNCTION)\n-mov esi, eax\n-test esi, esi\n+mov ebx, eax\n+test ebx, ebx\n je 0x44\n-push esi\n-mov ecx, dword ptr [ebx + 0x7c]\n+push ebx\n+mov ecx, dword ptr [edi + 0x7c]\n call LegoWorld::Remove (FUNCTION)\n-mov edi, dword ptr [esi]\n+mov esi, dword ptr [ebx]\n push 'MxPresenter' (STRING)\n-mov ecx, esi\n-call dword ptr [edi + 0x10]\n+mov ecx, ebx\n+call dword ptr [esi + 0x10]\n test al, al\n jne 0x10\n-test esi, esi\n+test ebx, ebx\n je 0x2f\n push 1\n-mov ecx, esi\n-call dword ptr [edi]\n+mov ecx, ebx\n+call dword ptr [esi]\n pop edi\n pop esi\n pop ebx\n ret 4\n-mov eax, dword ptr [esi + 0x1c]\n+mov eax, dword ptr [ebx + 0x1c]\n push eax\n call Streamer (FUNCTION)\n mov ecx, eax\n call MxStreamer::FUN_100b98f0 (FUNCTION)\n-mov ecx, esi\n-call dword ptr [edi + 0x40]\n+mov ecx, ebx\n+call dword ptr [esi + 0x40]\n pop edi\n pop esi\n pop ebx\n ret 4\n-push edi\n-mov ecx, ebx\n+push esi\n+mov ecx, edi\n call MxOmni::DeleteObject (FUNCTION)\n pop edi\n pop esi\n pop ebx\n ret 4"}, {"address": "0x1005b2f0", "name": "LegoOmni::AddToWorld", "matching": 1.0, "diff": ""}, {"address": "0x1005b3a0", "name": "LegoOmni::NotifyCurrentEntity", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,10 +1,10 @@\n\n-mov eax, dword ptr [ecx + 0x7c]\n-test eax, eax\n+mov ecx, dword ptr [ecx + 0x7c]\n+test ecx, ecx\n je 0x12\n-mov ecx, dword ptr [esp + 4]\n+mov eax, dword ptr [esp + 4]\n+push eax\n push ecx\n-push eax\n call NotificationManager (FUNCTION)\n mov ecx, eax\n call MxNotificationManager::Send (FUNCTION)\n ret 4"}, {"address": "0x1005b3c0", "name": "LegoOmni::DoesEntityExist", "matching": 1.0, "diff": ""}, {"address": "0x1005b400", "name": "LegoOmni::GetCurrPathInfo", "matching": 1.0, "diff": ""}, {"address": "0x1005b4f0", "name": "LegoOmni::FUN_1005b4f0", "matching": 1.0, "diff": ""}, {"address": "0x1005b560", "name": "LegoOmni::CreateBackgroundAudio", "matching": 1.0, "diff": ""}, {"address": "0x1005b580", "name": "LegoOmni::Start", "matching": 0.6363636363636364, "diff": "--- \n\n+++ \n\n@@ -1,22 +1,22 @@\n\n push ebx\n push esi\n+mov ebx, dword ptr [esp + 0xc]\n push edi\n-mov esi, ecx\n-mov ebx, dword ptr [esp + 0x10]\n+mov edi, ecx\n push ebx\n call MxOmni::Start (FUNCTION)\n-mov edi, eax\n-lea ecx, [esi + 0xa0]\n+mov esi, eax\n+lea ecx, [edi + 0xa0]\n mov eax, dword ptr [ebx + 0x20]\n push eax\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x20]\n mov ecx, dword ptr [ebx + 0x1c]\n-mov eax, edi\n+mov eax, esi\n+mov dword ptr [edi + 0xbc], ecx\n+mov dx, word ptr [ebx + 0x24]\n+mov word ptr [edi + 0xc4], dx\n pop edi\n-mov dword ptr [esi + 0xbc], ecx\n-mov dx, word ptr [ebx + 0x24]\n-mov word ptr [esi + 0xc4], dx\n pop esi\n pop ebx\n ret 4"}, {"address": "0x1005b5f0", "name": "LegoOmni::Notify", "matching": 1.0, "diff": ""}, {"address": "0x1005b640", "name": "LegoOmni::StartTimer", "matching": 1.0, "diff": ""}, {"address": "0x1005b650", "name": "LegoOmni::StopTimer", "matching": 1.0, "diff": ""}, {"address": "0x1005b660", "name": "GifManagerBase::~GifManagerBase", "matching": 0.9714285714285714, "diff": "--- \n\n+++ \n\n@@ -25,24 +25,24 @@\n\n je 0x17\n mov edi, dword ptr [esi + 0x10]\n test edi, edi\n je 0x10\n mov ecx, edi\n call GifData::~GifData (FUNCTION)\n push edi\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov ecx, dword ptr [esi + 8]\n-cmp ecx, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], ecx\n je 0x12\n mov eax, dword ptr [ecx]\n-cmp eax, dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)]\n+cmp dword ptr [_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil (DATA)], eax\n je 0x4\n mov ecx, eax\n jmp -0xe\n mov esi, ecx\n jmp 0x19\n mov eax, dword ptr [esi + 4]\n cmp dword ptr [eax + 8], esi\n jne 0xa\n mov esi, eax\n mov eax, dword ptr [eax + 4]"}, {"address": "0x1005b740", "name": "MxList<LegoWorld *>::DeleteEntry", "matching": 1.0, "diff": ""}, {"address": "0x1005b790", "name": "LegoInputManager::LegoInputManager", "matching": 1.0, "diff": ""}, {"address": "0x1005b8b0", "name": "LegoInputManager::Tickle", "matching": 1.0, "diff": ""}, {"address": "0x1005b8c0", "name": "LegoInputManager::PutData", "matching": 1.0, "diff": ""}, {"address": "0x1005b8d0", "name": "LegoInputManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1005b8f0", "name": "LegoInputManager::~LegoInputManager", "matching": 1.0, "diff": ""}, {"address": "0x1005b960", "name": "LegoInputManager::Create", "matching": 1.0, "diff": ""}, {"address": "0x1005bb80", "name": "MxCollection<LegoEventNotificationParam>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x1005bbe0", "name": "MxCollection<LegoEventNotificationParam>::~MxCollection<LegoEventNotificationParam>", "matching": 1.0, "diff": ""}, {"address": "0x1005bc30", "name": "MxCollection<LegoEventNotificationParam>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1005bc80", "name": "MxList<LegoEventNotificationParam>::~MxList<LegoEventNotificationParam>", "matching": 1.0, "diff": ""}, {"address": "0x1005bd50", "name": "MxCollection<LegoEventNotificationParam>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1005bdc0", "name": "MxList<LegoEventNotificationParam>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1005beb0", "name": "LegoEventQueue::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1005bf20", "name": "MxQueue<LegoEventNotificationParam>::~MxQueue<LegoEventNotificationParam>", "matching": 1.0, "diff": ""}, {"address": "0x1005bf70", "name": "MxQueue<LegoEventNotificationParam>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1005bfe0", "name": "LegoInputManager::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1005c030", "name": "LegoInputManager::CreateAndAcquireKeyboard", "matching": 0.9555555555555556, "diff": "--- \n\n+++ \n\n@@ -11,34 +11,34 @@\n\n push ebx\n push 0x500\n push eax\n call _DirectInputCreateA@16 (FUNCTION)\n test eax, eax\n jne 0x3a\n mov eax, dword ptr [ebx]\n add esi, 0x90\n push 0\n push esi\n-push <OFFSET3>\n+push GUID_SysKeyboard (DATA)\n mov ebx, dword ptr [eax]\n push eax\n call dword ptr [ebx + 0xc]\n test eax, eax\n jne 0x20\n mov eax, dword ptr [esi]\n push 6\n mov ebx, dword ptr [eax]\n push edi\n push eax\n call dword ptr [ebx + 0x34]\n mov eax, dword ptr [esi]\n-push <OFFSET4>\n+push c_dfDIKeyboard (DATA)\n push eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x2c]\n mov eax, dword ptr [esi]\n push eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x1c]\n pop edi\n pop esi\n pop ebx"}, {"address": "0x1005c0a0", "name": "LegoInputManager::ReleaseDX", "matching": 1.0, "diff": ""}, {"address": "0x1005c240", "name": "LegoInputManager::GetJoystickId", "matching": 0.7972972972972973, "diff": "--- \n\n+++ \n\n@@ -1,74 +1,74 @@\n\n sub esp, 0x34\n push ebx\n push esi\n push edi\n-mov esi, ecx\n push ebp\n-cmp byte ptr [esi + 0x334], 0\n+cmp byte ptr [ecx + 0x334], 0\n+mov edi, ecx\n je 0xa0\n-mov edi, dword ptr [esi + 0x19c]\n-test edi, edi\n+mov esi, dword ptr [edi + 0x19c]\n+test esi, esi\n jl 0x53\n lea eax, [esp + 0x10]\n mov ebx, dword ptr [__imp__joyGetPosEx@8 (POINTER)]\n mov dword ptr [esp + 0x10], 0x34\n mov dword ptr [esp + 0x14], 0xff\n push eax\n-push edi\n+push esi\n call ebx\n test eax, eax\n jne 0x29\n push 0x194\n-lea eax, [esi + 0x1a0]\n+lea eax, [edi + 0x1a0]\n push eax\n mov ebp, dword ptr [__imp__joyGetDevCapsA@12 (POINTER)]\n-push edi\n+push esi\n call ebp\n test eax, eax\n jne 0x24\n xor eax, eax\n pop ebp\n-mov dword ptr [esi + 0x198], edi\n+mov dword ptr [edi + 0x198], esi\n pop edi\n pop esi\n pop ebx\n add esp, 0x34\n ret \n mov ebp, dword ptr [__imp__joyGetDevCapsA@12 (POINTER)]\n jmp 0xc\n mov ebp, dword ptr [__imp__joyGetDevCapsA@12 (POINTER)]\n mov ebx, dword ptr [__imp__joyGetPosEx@8 (POINTER)]\n-xor edi, edi\n+xor esi, esi\n mov dword ptr [esp + 0x10], 0x34\n mov dword ptr [esp + 0x14], 0xff\n lea eax, [esp + 0x10]\n push eax\n-push edi\n+push esi\n call ebx\n test eax, eax\n jne 0x13\n push 0x194\n-lea eax, [esi + 0x1a0]\n+lea eax, [edi + 0x1a0]\n push eax\n-push edi\n+push esi\n call ebp\n test eax, eax\n je 0x13\n-inc edi\n-cmp edi, 0x10\n+inc esi\n+cmp esi, 0x10\n jl -0x35\n mov eax, 0xffffffff\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 0x34\n ret \n xor eax, eax\n pop ebp\n-mov dword ptr [esi + 0x198], edi\n+mov dword ptr [edi + 0x198], esi\n pop edi\n pop esi\n pop ebx\n add esp, 0x34\n ret "}, {"address": "0x1005c320", "name": "LegoInputManager::GetJoystickState", "matching": 1.0, "diff": ""}, {"address": "0x1005c470", "name": "LegoInputManager::Register", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -44,53 +44,53 @@\n\n call dword ptr [eax + 0x14]\n test al, al\n je 0xd\n mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [eax + 8]\n mov dword ptr [ebp - 0x14], ecx\n cmp ecx, ebx\n jne -0x22\n cmp dword ptr [ebp - 0x14], 0\n jne 0x3c\n-mov ebx, dword ptr [esi + 0x5c]\n+mov esi, dword ptr [esi + 0x5c]\n push 0xc\n-mov esi, dword ptr [ebx + 0x14]\n+mov ebx, dword ptr [esi + 0x14]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [ebp - 0x10], eax\n mov byte ptr [ebp - 4], 5\n test eax, eax\n je 0xe\n mov dword ptr [eax], edi\n-mov dword ptr [eax + 4], esi\n+mov dword ptr [eax + 4], ebx\n mov dword ptr [eax + 8], 0\n jmp 0x2\n xor eax, eax\n mov byte ptr [ebp - 4], 4\n-test esi, esi\n+test ebx, ebx\n je 0x30\n-mov dword ptr [esi + 8], eax\n-mov dword ptr [ebx + 0x14], eax\n-inc dword ptr [ebx + 8]\n+mov dword ptr [ebx + 8], eax\n+mov dword ptr [esi + 0x14], eax\n+inc dword ptr [esi + 8]\n mov byte ptr [ebp - 4], 0\n call <OFFSET8>\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET9>\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n-mov dword ptr [ebx + 0x10], eax\n+mov dword ptr [esi + 0x10], eax\n jmp -0x32\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n lea ecx, [ebp - 0x20]\n jmp MxCore::~MxCore (FUNCTION)\n lea ecx, [ebp - 0x20]\n jmp MxListCursor<MxCore *>::~MxListCursor<MxCore *> (FUNCTION)"}, {"address": "0x1005c5c0", "name": "LegoInputManager::UnRegister", "matching": 1.0, "diff": ""}, {"address": "0x1005c700", "name": "LegoInputManager::SetCamera", "matching": 1.0, "diff": ""}, {"address": "0x1005c710", "name": "LegoInputManager::ClearCamera", "matching": 1.0, "diff": ""}, {"address": "0x1005c720", "name": "LegoInputManager::SetWorld", "matching": 1.0, "diff": ""}, {"address": "0x1005c730", "name": "LegoInputManager::ClearWorld", "matching": 1.0, "diff": ""}, {"address": "0x1005c740", "name": "LegoInputManager::QueueEvent", "matching": 1.0, "diff": ""}, {"address": "0x1005c820", "name": "LegoInputManager::ProcessEvents", "matching": 1.0, "diff": ""}, {"address": "0x1005c9c0", "name": "LegoInputManager::ProcessOneEvent", "matching": 1.0, "diff": ""}, {"address": "0x1005cfb0", "name": "LegoInputManager::StartAutoDragTimer", "matching": 1.0, "diff": ""}, {"address": "0x1005cfd0", "name": "LegoInputManager::StopAutoDragTimer", "matching": 1.0, "diff": ""}, {"address": "0x1005cff0", "name": "LegoInputManager::EnableInputProcessing", "matching": 1.0, "diff": ""}, {"address": "0x1005d010", "name": "MxListEntry<LegoEventNotificationParam>::GetValue", "matching": 1.0, "diff": ""}, {"address": "0x1005d660", "name": "JukeBox::JukeBox", "matching": 1.0, "diff": ""}, {"address": "0x1005d6f0", "name": "JukeBox::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1005d700", "name": "JukeBox::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1005d810", "name": "JukeBox::`scalar deleting destructor'", "matching": 0.2807017543859649, "diff": "--- \n\n+++ \n\n@@ -1,30 +1,27 @@\n\n-push esi\n-mov esi, ecx\n-call <OFFSET1>\n-test byte ptr [esp + 8], 1\n-je 0x9\n-push esi\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-mov eax, esi\n-pop esi\n-ret 4\n-int3 \n-int3 \n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n-push <OFFSET3>\n-mov dword ptr [ecx], JukeBox (VTABLE)\n+push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n-mov dword ptr [ebp - 4], 0\n+mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebp - 0x10], ecx\n-call InputManager (FUNCTION)\n-mov edx, dword ptr [ebp - 0x10]\n-cmp dword ptr [eax + 0x64], edx\n-jne 0xc\n-call InputManager (FUNCTION)\n-mov ecx, eax\n+call <OFFSET2>\n+test byte ptr [ebp + 8], 1\n+je 0xc\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n+ret 4\n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoWorld::~LegoWorld (FUNCTION)"}, {"address": "0x1005de80", "name": "LegoFlcTexturePresenter::LegoFlcTexturePresenter", "matching": 1.0, "diff": ""}, {"address": "0x1005def0", "name": "LegoFlcTexturePresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1005df00", "name": "LegoFlcTexturePresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1005df70", "name": "LegoFlcTexturePresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x1005e130", "name": "Police::Police", "matching": 1.0, "diff": ""}, {"address": "0x1005e1e0", "name": "Police::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1005e1f0", "name": "Police::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1005e300", "name": "Police::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1005e320", "name": "Police::~Police", "matching": 1.0, "diff": ""}, {"address": "0x1005e3e0", "name": "Police::Create", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,47 +1,47 @@\n\n mov eax, dword ptr [esp + 4]\n push ebx\n push esi\n mov ebx, ecx\n push edi\n push eax\n call LegoWorld::Create (FUNCTION)\n-mov edi, eax\n-test edi, edi\n+mov esi, eax\n+test esi, esi\n jne 0x1a\n push ebx\n call InputManager (FUNCTION)\n mov ecx, eax\n call LegoInputManager::SetWorld (FUNCTION)\n push ebx\n call ControlManager (FUNCTION)\n mov ecx, eax\n call LegoControlManager::Register (FUNCTION)\n push 0\n call SetIsWorldActive (FUNCTION)\n add esp, 4\n push ebx\n call InputManager (FUNCTION)\n mov ecx, eax\n call LegoInputManager::Register (FUNCTION)\n call GameState (FUNCTION)\n mov ecx, eax\n-mov esi, eax\n+mov edi, eax\n push 'PoliceState' (STRING)\n call LegoGameState::GetState (FUNCTION)\n test eax, eax\n jne 0xc\n push 'PoliceState' (STRING)\n-mov ecx, esi\n+mov ecx, edi\n call LegoGameState::CreateState (FUNCTION)\n mov dword ptr [ebx + 0x108], eax\n call GameState (FUNCTION)\n mov dword ptr [eax + 0x424], 0x22\n push 0\n call GameState (FUNCTION)\n mov ecx, eax\n call LegoGameState::StopArea (FUNCTION)\n-mov eax, edi\n+mov eax, esi\n pop edi\n pop esi\n pop ebx\n ret 4"}, {"address": "0x1005e530", "name": "Police::ReadyWorld", "matching": 1.0, "diff": ""}, {"address": "0x1005e7c0", "name": "PoliceState::PoliceState", "matching": 1.0, "diff": ""}, {"address": "0x1005e860", "name": "PoliceState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1005e870", "name": "PoliceState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1005e920", "name": "PoliceState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1005e990", "name": "PoliceState::VTable0x1c", "matching": 0.9666666666666667, "diff": "--- \n\n+++ \n\n@@ -31,24 +31,24 @@\n\n mov ecx, edi\n call dword ptr [esi + 0x18]\n test al, al\n je 0x1f\n push 4\n add ebx, 8\n push ebx\n mov ecx, edi\n call dword ptr [esi + 4]\n jmp 0x23\n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxString::~MxString (FUNCTION)\n-mov eax, <OFFSET5>\n-jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebx + 8]\n push 4\n mov ecx, edi\n mov dword ptr [ebp - 0x10], eax\n lea eax, [ebp - 0x10]\n push eax\n call dword ptr [esi + 8]\n xor eax, eax\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx"}, {"address": "0x1005eb50", "name": "LegoAnimationManager::configureLegoAnimationManager", "matching": 1.0, "diff": ""}, {"address": "0x1005ec80", "name": "LegoAnimationManager::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1005ec90", "name": "LegoAnimationManager::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1005ed10", "name": "LegoAnimationManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10064ff0", "name": "AnimState::AnimState", "matching": 1.0, "diff": ""}, {"address": "0x10065070", "name": "AnimState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10065080", "name": "AnimState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10065130", "name": "AnimState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10065550", "name": "LegoMouseController::LegoMouseController", "matching": 1.0, "diff": ""}, {"address": "0x100655b0", "name": "LegoMouseController::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100655d0", "name": "LegoMouseController::~LegoMouseController", "matching": 1.0, "diff": ""}, {"address": "0x10065620", "name": "LegoMouseController::LeftDown", "matching": 1.0, "diff": ""}, {"address": "0x10065640", "name": "LegoMouseController::LeftUp", "matching": 1.0, "diff": ""}, {"address": "0x10065660", "name": "LegoMouseController::LeftDrag", "matching": 1.0, "diff": ""}, {"address": "0x10065680", "name": "LegoMouseController::RightDown", "matching": 1.0, "diff": ""}, {"address": "0x100656a0", "name": "LegoMouseController::RightUp", "matching": 1.0, "diff": ""}, {"address": "0x100656c0", "name": "LegoMouseController::RightDrag", "matching": 1.0, "diff": ""}, {"address": "0x100656e0", "name": "LegoPointOfViewController::LegoPointOfViewController", "matching": 1.0, "diff": ""}, {"address": "0x10065750", "name": "LegoPointOfViewController::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10065770", "name": "LegoPointOfViewController::~LegoPointOfViewController", "matching": 1.0, "diff": ""}, {"address": "0x100657f0", "name": "LegoPointOfViewController::Create", "matching": 1.0, "diff": ""}, {"address": "0x100658a0", "name": "LegoPointOfViewController::OnViewSize", "matching": 1.0, "diff": ""}, {"address": "0x100658c0", "name": "LegoPointOfViewController::LeftDown", "matching": 1.0, "diff": ""}, {"address": "0x100658e0", "name": "LegoPointOfViewController::LeftDrag", "matching": 1.0, "diff": ""}, {"address": "0x10065c00", "name": "GifData::~GifData", "matching": 1.0, "diff": ""}, {"address": "0x100665b0", "name": "LegoWorldPresenter::configureLegoWorldPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100665c0", "name": "LegoWorldPresenter::LegoWorldPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10066630", "name": "LegoWorldPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10066640", "name": "LegoWorldPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10066750", "name": "LegoWorldPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10066770", "name": "LegoWorldPresenter::~LegoWorldPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10066870", "name": "LegoWorldPresenter::StartAction", "matching": 1.0, "diff": ""}, {"address": "0x10066a50", "name": "LegoWorldPresenter::ReadyTickle", "matching": 1.0, "diff": ""}, {"address": "0x10066ac0", "name": "LegoWorldPresenter::StartingTickle", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -4,21 +4,21 @@\n\n mov esi, ecx\n push 'MxDSSerialAction' (STRING)\n mov ecx, dword ptr [esi + 0x1c]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x10]\n test al, al\n mov eax, dword ptr [esi + 0x44]\n jne 0x30\n mov ecx, dword ptr [eax]\n mov dword ptr [esp + 8], ecx\n-cmp eax, ecx\n+cmp ecx, eax\n je 0x38\n xor edi, edi\n mov eax, dword ptr [esp + 8]\n mov ecx, dword ptr [eax + 8]\n cmp dword ptr [ecx + 8], edi\n jne 0x7\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x44]\n mov eax, dword ptr [esp + 8]"}, {"address": "0x10067a70", "name": "LegoWorldPresenter::VTable0x60", "matching": 0.7924528301886793, "diff": "--- \n\n+++ \n\n@@ -1,53 +1,53 @@\n\n push ebx\n push esi\n+mov ebx, dword ptr [esp + 0xc]\n push edi\n-mov ebx, ecx\n-mov edi, dword ptr [esp + 0x10]\n push ebp\n-push edi\n+mov edi, ecx\n+push ebx\n call MxCompositePresenter::VTable0x60 (FUNCTION)\n-mov esi, dword ptr [edi + 0x1c]\n+mov esi, dword ptr [ebx + 0x1c]\n mov ecx, esi\n mov ebp, dword ptr [esi]\n call dword ptr [ebp + 0x24]\n cmp eax, -1\n je 0x1d\n test byte ptr [esi + 0x30], 1\n jne 0x17\n push 'MxDSMediaAction' (STRING)\n mov ecx, esi\n call dword ptr [ebp + 0x10]\n test al, al\n je 0x4b\n cmp dword ptr [esi + 0xb0], -1\n jne 0x42\n-mov eax, dword ptr [edi]\n+mov eax, dword ptr [ebx]\n push 'LegoAnimPresenter' (STRING)\n-mov ecx, edi\n+mov ecx, ebx\n mov esi, dword ptr [eax + 0x10]\n call esi\n test al, al\n jne 0x30\n push 'MxControlPresenter' (STRING)\n-mov ecx, edi\n+mov ecx, ebx\n call esi\n test al, al\n jne 0x23\n push 'MxCompositePresenter' (STRING)\n-mov ecx, edi\n+mov ecx, ebx\n call esi\n test al, al\n jne 0x16\n call Lego (FUNCTION)\n push eax\n-mov ecx, edi\n+mov ecx, ebx\n call MxPresenter::SendToCompositePresenter (FUNCTION)\n-mov ecx, dword ptr [ebx + 0x4c]\n-push edi\n+mov ecx, dword ptr [edi + 0x4c]\n+push ebx\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x58]\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret 4"}, {"address": "0x10067bb0", "name": "DuneBuggy::DuneBuggy", "matching": 1.0, "diff": ""}, {"address": "0x10067c30", "name": "DuneBuggy::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10067c40", "name": "DuneBuggy::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10067dc0", "name": "DuneBuggy::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10068420", "name": "LegoAnimPresenter::LegoAnimPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10068530", "name": "LegoAnimPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10068540", "name": "LegoAnimPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10068650", "name": "LegoAnimPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10068670", "name": "LegoAnimPresenter::~LegoAnimPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100686f0", "name": "LegoAnimPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x10068fb0", "name": "LegoAnimPresenter::VTable0x88", "matching": 1.0, "diff": ""}, {"address": "0x1006b550", "name": "LegoAnimPresenter::ReadyTickle", "matching": 0.8703703703703703, "diff": "--- \n\n+++ \n\n@@ -2,29 +2,29 @@\n\n push esi\n push edi\n mov esi, ecx\n push ebp\n call GetCurrentWorld (FUNCTION)\n mov dword ptr [esi + 0x80], eax\n test eax, eax\n je 0x69\n mov ecx, dword ptr [esi + 0x40]\n call MxDSSubscriber::CurrentChunk (FUNCTION)\n-mov ebx, eax\n-test ebx, ebx\n+mov edi, eax\n+test edi, edi\n je 0x5b\n-mov edi, dword ptr [esi + 0x1c]\n-mov ecx, edi\n-mov eax, dword ptr [edi]\n+mov ebx, dword ptr [esi + 0x1c]\n+mov ecx, ebx\n+mov eax, dword ptr [ebx]\n call dword ptr [eax + 0x40]\n-mov ecx, dword ptr [ebx + 0x10]\n-add ecx, dword ptr [edi + 0x34]\n+mov ecx, dword ptr [ebx + 0x34]\n+add ecx, dword ptr [edi + 0x10]\n cmp eax, ecx\n jl 0x47\n mov ecx, dword ptr [esi + 0x40]\n call MxDSSubscriber::NextChunk (FUNCTION)\n mov ebx, dword ptr [esi]\n mov ecx, esi\n push eax\n mov edi, eax\n call dword ptr [ebx + 0x88]\n mov ebp, eax"}, {"address": "0x1006b840", "name": "LegoAnimPresenter::StreamingTickle", "matching": 1.0, "diff": ""}, {"address": "0x1006b8d0", "name": "LegoAnimPresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x1006b8e0", "name": "LegoAnimPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1006b8f0", "name": "LegoAnimPresenter::GetActionObjectName", "matching": 1.0, "diff": ""}, {"address": "0x1006c620", "name": "LegoAnimPresenter::StartAction", "matching": 1.0, "diff": ""}, {"address": "0x1006cdd0", "name": "LegoLocomotionAnimPresenter::LegoLocomotionAnimPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1006ce50", "name": "LegoLocomotionAnimPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1006ce60", "name": "LegoLocomotionAnimPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1006cfe0", "name": "LegoLocomotionAnimPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1006d000", "name": "LegoLoopingAnimPresenter::~LegoLoopingAnimPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1006d050", "name": "LegoLocomotionAnimPresenter::~LegoLocomotionAnimPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1006d0b0", "name": "LegoLocomotionAnimPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x1006d0e0", "name": "LegoLocomotionAnimPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1006d140", "name": "LegoLocomotionAnimPresenter::VTable0x88", "matching": 1.0, "diff": ""}, {"address": "0x1006d5b0", "name": "LegoLocomotionAnimPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1006d5c0", "name": "LegoLocomotionAnimPresenter::PutFrame", "matching": 1.0, "diff": ""}, {"address": "0x1006d5d0", "name": "LegoLocomotionAnimPresenter::ReadyTickle", "matching": 1.0, "diff": ""}, {"address": "0x1006d660", "name": "LegoLocomotionAnimPresenter::StreamingTickle", "matching": 1.0, "diff": ""}, {"address": "0x1006d670", "name": "LegoLocomotionAnimPresenter::EndAction", "matching": 1.0, "diff": ""}, {"address": "0x1006d7e0", "name": "LegoHideAnimPresenter::LegoHideAnimPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1006d880", "name": "LegoHideAnimPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1006d890", "name": "LegoHideAnimPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1006d9d0", "name": "LegoHideAnimPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1006d9f0", "name": "LegoHideAnimPresenter::~LegoHideAnimPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1006da50", "name": "LegoHideAnimPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x1006da60", "name": "LegoHideAnimPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1006dac0", "name": "LegoHideAnimPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1006ea20", "name": "Infocenter::Infocenter", "matching": 1.0, "diff": ""}, {"address": "0x1006eb40", "name": "Infocenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1006eb50", "name": "Infocenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1006ec60", "name": "Infocenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1006ec80", "name": "InfocenterMapEntry::InfocenterMapEntry", "matching": 1.0, "diff": ""}, {"address": "0x1006ec90", "name": "Infocenter::~Infocenter", "matching": 1.0, "diff": ""}, {"address": "0x1006ef10", "name": "Infocenter::Notify", "matching": 0.8780487804878049, "diff": "--- \n\n+++ \n\n@@ -5,22 +5,22 @@\n\n xor ebx, ebx\n mov edi, dword ptr [esp + 0x10]\n push edi\n call LegoWorld::Notify (FUNCTION)\n cmp byte ptr [esi + 0xf6], bl\n je 0x108\n mov ecx, dword ptr [edi + 4]\n cmp ecx, 0x18\n ja 0xfc\n xor eax, eax\n-mov al, byte ptr [ecx + 0x1006f060]\n-jmp dword ptr [eax*4 + 0x1006f040]\n+mov al, byte ptr [ecx + 0x1001d410]\n+jmp dword ptr [eax*4 + 0x1001d3f0]\n push edi\n mov ecx, esi\n call Infocenter::HandleNotification0 (FUNCTION)\n mov ebx, eax\n pop edi\n mov eax, ebx\n pop esi\n pop ebx\n ret 4\n push edi\n@@ -103,34 +103,37 @@\n\n call GameState (FUNCTION)\n mov ecx, eax\n call LegoGameState::SwitchArea (FUNCTION)\n mov dword ptr [esi + 0x104], 0\n mov eax, ebx\n pop edi\n pop esi\n pop ebx\n ret 4\n lea ecx, [ecx]\n-dec eax\n-out dx, eax\n-push es\n-adc byte ptr [edx - 0x11], bl\n-push es\n-adc byte ptr [edi + ebp*8 + 6], ch\n-adc byte ptr [ecx - 0x63eff911], al\n-out dx, eax\n-push es\n-adc byte ptr [edi - 0x34eff911], dh\n-out dx, eax\n-push es\n-adc byte ptr [<OFFSET14>], dh\n-pop es\n+clc \n+rol byte ptr [ecx], cl\n+adc byte ptr [edx], cl\n+rol dword ptr [ecx], cl\n+adc byte ptr [ebx + edx*8], bl\n+add dword ptr [eax], edx\n+xor ebx, edx\n+add dword ptr [eax], edx\n+dec esp\n+rol dword ptr [ecx], cl\n+adc byte ptr [edi - 0x2d], ah\n+add dword ptr [eax], edx\n+jnp -0x2d\n+add dword ptr [eax], edx\n+in eax, 0xd3\n+add dword ptr [eax], edx\n+add byte ptr [edi], al\n add dword ptr [edi], eax\n pop es\n pop es\n pop es\n add al, byte ptr [ebx]\n pop es\n add al, 7\n pop es\n pop es\n pop es"}, {"address": "0x1006f080", "name": "Infocenter::HandleEndAction", "matching": 0.8520710059171598, "diff": "--- \n\n+++ \n\n@@ -47,69 +47,68 @@\n\n mov ax, word ptr [esi + 0xfc]\n add esp, 4\n push eax\n call GameState (FUNCTION)\n mov ecx, eax\n call LegoGameState::FUN_10039780 (FUNCTION)\n movsx eax, word ptr [esi + 0xfc]\n dec eax\n cmp eax, 4\n ja 0x2f\n-jmp dword ptr [eax*4 + 0x1006f478]\n+jmp dword ptr [eax*4 + 0x1001d824]\n push 0x21d\n jmp 0x1a\n push 0x21e\n jmp 0x13\n push 0x21f\n jmp 0xc\n push 0x220\n jmp 0x5\n push 0x221\n mov ecx, esi\n call Infocenter::PlayAction (FUNCTION)\n push 1\n mov ecx, esi\n call Infocenter::FUN_10070dc0 (FUNCTION)\n lea ecx, [esi + 0x10c]\n push ebx\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 4]\n test eax, eax\n-jne 0x2ef\n-mov edx, dword ptr [esi + 0xc]\n+jne 0x2ed\n mov ecx, dword ptr [edi + 0x20]\n-cmp edx, ecx\n+cmp dword ptr [esi + 0xc], ecx\n je 0xe\n-mov ebx, dword ptr [g_introScript (DATA)]\n-cmp dword ptr [ebx], ecx\n+mov edx, dword ptr [g_introScript (DATA)]\n+cmp dword ptr [edx], ecx\n jne 0x2d7\n cmp dword ptr [edi + 0x1c], 0x202\n jne 0x1a\n push 0\n-push edx\n+push ecx\n push 0x10\n call ControlManager (FUNCTION)\n mov ecx, eax\n call LegoControlManager::FUN_100293c0 (FUNCTION)\n mov word ptr [esi + 0x1d6], 0\n mov edx, dword ptr [esi + 0x100]\n lea eax, [edx + 0x74]\n mov ebx, dword ptr [eax]\n cmp ebx, 0xc\n ja 0x29b\n xor ecx, ecx\n-mov cl, byte ptr [ebx + 0x1006f4ac]\n-jmp dword ptr [ecx*4 + 0x1006f48c]\n+mov cl, byte ptr [ebx + 0x1001d858]\n+jmp dword ptr [ecx*4 + 0x1001d838]\n mov eax, dword ptr [esi + 0x108]\n cmp eax, 5\n ja 0x7\n-jmp dword ptr [eax*4 + 0x1006f4bc]\n+jmp dword ptr [eax*4 + 0x1001d868]\n mov ecx, esi\n call Infocenter::StopCutscene (FUNCTION)\n mov eax, dword ptr [esi + 0x100]\n push 0x1f4\n mov ecx, esi\n mov dword ptr [eax + 0x74], 0xb\n call Infocenter::PlayAction (FUNCTION)\n mov eax, dword ptr [esi + 0x100]\n mov dword ptr [esi + 0x108], 0xffffffff\n cmp dword ptr [eax + 0x78], 0\n@@ -283,56 +282,57 @@\n\n push 0x32\n push 3\n call TransitionManager (FUNCTION)\n mov ecx, eax\n call MxTransitionManager::StartTransition (FUNCTION)\n mov eax, 1\n pop edi\n pop esi\n pop ebx\n ret 4\n-mov edi, edi\n-cmp al, 0xf1\n-push es\n-adc byte ptr [ebx - 0xf], al\n-push es\n-adc byte ptr [edx - 0xf], cl\n-push es\n-adc byte ptr [ecx - 0xf], dl\n-push es\n-adc byte ptr [eax - 0xf], bl\n-push es\n-adc bh, bl\n-int1 \n-push es\n-adc ch, dl\n-push es\n-adc byte ptr [edx], bl\n-push es\n-adc byte ptr [ecx - 0xd], dl\n-push es\n-adc byte ptr [esi - 0x12eff90d], cl\n-push es\n-adc byte ptr [esp + esi*8 + 6], cl\n-adc byte ptr [ebx - 0xc], ch\n-push es\n-adc byte ptr [eax], al\n-add dword ptr [edx], eax\n-pop es\n+in al, dx\n+aam 1\n+adc bl, dh\n+aam 1\n+adc dl, bh\n+aam 1\n+adc byte ptr [ecx], al\n+aad 1\n+adc byte ptr [eax], cl\n+aad 1\n+adc byte ptr [ebp - 0x7ceffe2b], cl\n+salc \n+add dword ptr [eax], edx\n+enter 0x1d6, 0x10\n+call esi\n+add dword ptr [eax], edx\n+cmp al, 0xd7\n+add dword ptr [eax], edx\n+wait \n+xlatb \n+add dword ptr [eax], edx\n+cli \n+xlatb \n+add dword ptr [eax], edx\n+sbb eax, ebx\n+add dword ptr [eax], edx\n+add byte ptr [ecx], al\n+add al, byte ptr [edi]\n add eax, dword ptr [edi + eax]\n pop es\n pop es\n pop es\n pop es\n add eax, 0x498d06\n-aas \n-push es\n-adc byte ptr [ebp - 0xe], dl\n-push es\n-adc cl, dh\n-int1 \n-push es\n-adc cl, dh\n-int1 \n-push es\n-adc byte ptr [ebx - 0xe], ch\n-push es\n+in eax, dx\n+aad 1\n+adc byte ptr [ebx], al\n+salc \n+add dword ptr [eax], edx\n+lahf \n+aad 1\n+adc byte ptr [edi + 0x191001d5], bl\n+salc \n+add dword ptr [eax], edx\n+dec esi\n+salc \n+add dword ptr [eax], edx"}, {"address": "0x1006f9a0", "name": "Infocenter::InitializeBitmaps", "matching": 1.0, "diff": ""}, {"address": "0x1006fda0", "name": "Infocenter::HandleKeyPress", "matching": 0.5180722891566265, "diff": "--- \n\n+++ \n\n@@ -1,82 +1,84 @@\n\n push esi\n xor eax, eax\n push edi\n mov esi, ecx\n cmp byte ptr [esp + 0xc], 0x20\n-jne 0xb7\n+jne 0xb2\n cmp byte ptr [esi + 0xf6], al\n-je 0xab\n+je 0xa6\n mov eax, dword ptr [esi + 0x100]\n mov eax, dword ptr [eax + 0x74]\n cmp eax, 0xd\n ja 0xf\n xor ecx, ecx\n-mov cl, byte ptr [eax + 0x1006fe84]\n-jmp dword ptr [ecx*4 + 0x1006fe70]\n+mov cl, byte ptr [eax + 0x1001de6c]\n+jmp dword ptr [ecx*4 + 0x1001de58]\n mov edi, dword ptr [esi + 0xf8]\n mov ecx, esi\n call Infocenter::StopCurrentAction (FUNCTION)\n-mov edx, dword ptr [esi + 0x100]\n-mov eax, dword ptr [edx + 0x74]\n-add edx, 0x74\n-sub eax, 5\n-cmp eax, 7\n+mov eax, dword ptr [esi + 0x100]\n+mov edx, dword ptr [eax + 0x74]\n+add eax, 0x74\n+sub edx, 5\n+cmp edx, 7\n ja 0xf\n xor ecx, ecx\n-mov cl, byte ptr [eax + 0x1006fea8]\n-jmp dword ptr [ecx*4 + 0x1006fe94]\n+mov cl, byte ptr [edx + 0x1001de90]\n+jmp dword ptr [ecx*4 + 0x1001de7c]\n+pop edi\n+mov dword ptr [eax], 2\n mov eax, 1\n-pop edi\n pop esi\n-mov dword ptr [edx], 2\n ret 4\n mov eax, 1\n mov dword ptr [esi + 0xf8], edi\n pop edi\n pop esi\n ret 4\n mov ecx, esi\n call Infocenter::StopCutscene (FUNCTION)\n-mov eax, dword ptr [esi + 0x100]\n-mov ecx, 1\n-mov dword ptr [eax + 0x74], ecx\n-mov eax, dword ptr [esi + 0x100]\n-cmp dword ptr [eax + 0x78], 0\n-jne 0x18\n-mov word ptr [esi + 0x1d2], cx\n+mov ecx, dword ptr [esi + 0x100]\n mov eax, 1\n+mov dword ptr [ecx + 0x74], eax\n+mov ecx, dword ptr [esi + 0x100]\n+cmp dword ptr [ecx + 0x78], 0\n+jne 0x13\n+mov word ptr [esi + 0x1d2], ax\n pop edi\n pop esi\n ret 4\n mov ecx, esi\n call Infocenter::StopCredits (FUNCTION)\n mov eax, 1\n pop edi\n pop esi\n ret 4\n-lea ecx, [ecx]\n-sub bh, dh\n-push es\n-adc byte ptr [ebx - 2], ah\n-push es\n-adc byte ptr [ebx - 2], ah\n-push es\n-adc byte ptr [esi + edi*8 + 6], bl\n-adc dl, bl\n-std \n-push es\n+sbb bl, dh\n+add dword ptr [eax], edx\n+dec esi\n+fiadd word ptr [ecx]\n+adc byte ptr [esi - 0x22], cl\n+add dword ptr [eax], edx\n+inc edi\n+fiadd word ptr [ecx]\n+adc dl, cl\n+fld qword ptr [ecx]\n adc byte ptr [eax], al\n add dword ptr [esp + eax], eax\n add al, byte ptr [esp + eax]\n add al, 4\n add al, 4\n add al, 4\n-add ecx, dword ptr [ebx + 0x6fe1aff]\n-adc byte ptr [ebx - 2], ah\n-push es\n-adc byte ptr [ebx - 2], ah\n-push es\n-adc byte ptr [edx], bl\n-inc byte ptr [esi]\n+add ecx, dword ptr [ebx + 0x1de0aff]\n+adc byte ptr [edi - 0x22], al\n+add dword ptr [eax], edx\n+inc edi\n+fiadd word ptr [ecx]\n adc byte ptr [edx], cl\n-inc byte ptr [esi]\n+fiadd word ptr [ecx]\n+adc dl, bh\n+fld qword ptr [ecx]\n+adc byte ptr [eax], al\n+add al, 4\n+add dword ptr [esp + eax], eax\n+add al, byte ptr [ebx]"}, {"address": "0x10070aa0", "name": "Infocenter::VTable0x68", "matching": 1.0, "diff": ""}, {"address": "0x10070af0", "name": "Infocenter::Tickle", "matching": 1.0, "diff": ""}, {"address": "0x10070c20", "name": "Infocenter::PlayCutscene", "matching": 1.0, "diff": ""}, {"address": "0x10070cb0", "name": "Infocenter::StopCutscene", "matching": 1.0, "diff": ""}, {"address": "0x10070d00", "name": "Infocenter::VTable0x5c", "matching": 1.0, "diff": ""}, {"address": "0x10071250", "name": "Infocenter::StopCredits", "matching": 1.0, "diff": ""}, {"address": "0x10071300", "name": "Infocenter::PlayAction", "matching": 0.9795918367346939, "diff": "--- \n\n+++ \n\n@@ -17,22 +17,22 @@\n\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n lea ecx, [ebp - 0x10]\n push ecx\n lea ecx, [ebp - 0x88]\n call MxAtomId::operator= (FUNCTION)\n mov byte ptr [ebp - 4], 0\n call <OFFSET5>\n mov ecx, dword ptr [ebp - 0x14]\n call Infocenter::StopCurrentAction (FUNCTION)\n+mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [ebp + 8]\n-mov eax, dword ptr [ebp - 0x14]\n mov dword ptr [eax + 0xf8], ecx\n call BackgroundAudioManager (FUNCTION)\n mov ecx, eax\n call MxBackgroundAudioManager::LowerVolume (FUNCTION)\n lea ecx, [ebp - 0xa8]\n push ecx\n call Start (FUNCTION)\n mov dword ptr [ebp - 4], 0xffffffff\n add esp, 4\n call <OFFSET10>"}, {"address": "0x100713d0", "name": "Infocenter::StopCurrentAction", "matching": 1.0, "diff": ""}, {"address": "0x100714a0", "name": "Infocenter::PlayBookAnimation", "matching": 1.0, "diff": ""}, {"address": "0x10071550", "name": "Infocenter::StopBookAnimation", "matching": 1.0, "diff": ""}, {"address": "0x10071600", "name": "InfocenterState::InfocenterState", "matching": 0.4117647058823529, "diff": "--- \n\n+++ \n\n@@ -1,31 +1,37 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 0x10\n-push ebx\n+sub esp, 4\n push esi\n-mov dword ptr [ebp - 0x1c], ecx\n push edi\n+mov dword ptr [ebp - 0x10], ecx\n mov esi, ecx\n call MxCore::MxCore (FUNCTION)\n+mov edx, 0xffffffff\n+lea edi, [esi + 0x78]\n+xor eax, eax\n+mov ecx, 7\n mov dword ptr [ebp - 4], 0\n mov dword ptr [ebp - 4], 1\n-mov dword ptr [esi + 8], 0\n-mov dword ptr [esi + 0x14], 0\n-mov word ptr [esi + 0xc], 0\n-mov word ptr [esi + 0xe], 0\n-mov word ptr [esi + 0x10], 0\n-lea ebx, [esi + 0x20]\n mov dword ptr [esi], LegoState (VTABLE)\n-mov word ptr [esi + 0x18], 0\n-mov word ptr [esi + 0x1a], 0\n-mov word ptr [esi + 0x1c], 0\n-mov edi, 2\n-mov ecx, ebx\n-add ebx, 0xc\n-call LegoState::StateStruct::StateStruct (FUNCTION)\n-dec edi\n+mov dword ptr [esi], InfocenterState (VTABLE)\n+rep stosd dword ptr es:[edi], eax\n+mov eax, esi\n+pop edi\n+pop esi\n+mov dword ptr [ebp - 4], edx\n+mov ecx, dword ptr [ebp - 0xc]\n+mov esp, ebp\n+mov dword ptr fs:[0], ecx\n+pop ebp\n+ret \n+mov ecx, dword ptr [ebp - 0x10]\n+jmp MxCore::~MxCore (FUNCTION)\n+mov eax, <OFFSET6>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoState::~LegoState (FUNCTION)"}, {"address": "0x10071830", "name": "InfocenterState::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x10071840", "name": "InfocenterState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10071850", "name": "InfocenterState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10071900", "name": "InfocenterState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10071920", "name": "InfocenterState::~InfocenterState", "matching": 1.0, "diff": ""}, {"address": "0x10072510", "name": "Act3::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10072520", "name": "Act3::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10072630", "name": "Act3::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10073ea0", "name": "MxCompositeMediaPresenter::MxCompositeMediaPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10073f10", "name": "MxCompositeMediaPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10073f20", "name": "MxCompositeMediaPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10074000", "name": "MxCompositeMediaPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10074020", "name": "MxCompositeMediaPresenter::~MxCompositeMediaPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10074090", "name": "MxCompositeMediaPresenter::StartAction", "matching": 0.9322916666666666, "diff": "--- \n\n+++ \n\n@@ -28,36 +28,38 @@\n\n mov ecx, dword ptr [ebp + 8]\n push ecx\n mov dword ptr [ebp - 0x1c], ebx\n mov dword ptr [ebp - 0x28], MxListCursor<MxDSAction *> (VTABLE)\n mov byte ptr [ebp - 4], 2\n mov dword ptr [ebp - 0x28], MxDSActionListCursor (VTABLE)\n mov byte ptr [ebp - 4], 3\n mov ecx, esi\n call MxPresenter::StartAction (FUNCTION)\n test eax, eax\n-jne 0x16c\n+jne 0x170\n+cmp dword ptr [ebp - 0x1c], ebx\n+jne 0x8\n mov eax, dword ptr [ebp - 0x20]\n mov ecx, dword ptr [eax + 0x10]\n+jmp 0x6\n+mov eax, dword ptr [ebp - 0x1c]\n+mov ecx, dword ptr [eax + 8]\n mov dword ptr [ebp - 0x1c], ecx\n cmp dword ptr [ebp - 0x1c], ebx\n-je 0x11f\n+je 0x116\n mov eax, dword ptr [ebp - 0x1c]\n cmp dword ptr [ebp - 0x1c], ebx\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x18], ecx\n-je 0x10e\n-mov eax, dword ptr [ebp - 0x1c]\n+je 0x105\n+mov eax, dword ptr [esi + 0x1c]\n mov byte ptr [ebp - 0x11], bl\n-mov ecx, dword ptr [eax + 8]\n-mov eax, dword ptr [esi + 0x1c]\n-mov dword ptr [ebp - 0x1c], ecx\n mov eax, dword ptr [eax + 0x30]\n test al, 1\n jne 0xd\n test al, 4\n je 0x10\n mov eax, dword ptr [ebp - 0x18]\n or dword ptr [eax + 0x30], 4\n jmp 0x7\n mov eax, dword ptr [ebp - 0x18]\n or dword ptr [eax + 0x30], 1\n@@ -130,29 +132,29 @@\n\n call list<MxPresenter *,allocator<MxPresenter *> >::_Buynode (FUNCTION)\n mov ecx, eax\n mov dword ptr [edi], eax\n mov edx, dword ptr [ecx + 4]\n mov dword ptr [edx], ecx\n add ecx, 8\n je 0x5\n mov eax, dword ptr [ebp - 0x10]\n mov dword ptr [ecx], eax\n inc dword ptr [esi + 0x48]\n-jmp -0x10f\n+jmp -0x11c\n cmp dword ptr [ebp - 0x10], ebx\n-je -0x118\n+je -0x125\n push 1\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, eax\n mov edi, dword ptr [eax]\n call dword ptr [edi]\n-jmp -0x128\n+jmp -0x135\n cmp dword ptr [esi + 0x3c], 0\n jne 0x2e\n push 1\n mov eax, dword ptr [esi]\n mov ecx, esi\n call dword ptr [eax + 0x44]\n call Timer (FUNCTION)\n cmp byte ptr [eax + 0xc], 0\n je 0x8\n mov edx, dword ptr [MxTimer::g_lastTimeTimerStarted (DATA)]\n@@ -180,14 +182,10 @@\n\n lea ecx, [ebp - 0x28]\n jmp MxCore::~MxCore (FUNCTION)\n lea ecx, [ebp - 0x28]\n jmp MxListCursor<MxDSAction *>::~MxListCursor<MxDSAction *> (FUNCTION)\n lea ecx, [ebp - 0x28]\n jmp MxDSActionListCursor::~MxDSActionListCursor (FUNCTION)\n mov eax, <OFFSET22>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x30]\n jmp MxAutoLocker::~MxAutoLocker (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100742e0", "name": "MxCompositeMediaPresenter::StartingTickle", "matching": 1.0, "diff": ""}, {"address": "0x10074470", "name": "MxCompositeMediaPresenter::Tickle", "matching": 0.7482014388489209, "diff": "--- \n\n+++ \n\n@@ -5,26 +5,27 @@\n\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 8\n push esi\n lea eax, [ecx + 0x20]\n mov esi, ecx\n push eax\n lea ecx, [ebp - 0x14]\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n+mov dword ptr [ebp - 4], 0\n mov ecx, dword ptr [esi + 8]\n-mov dword ptr [ebp - 4], 0\n-lea eax, [ecx - 1]\n+mov eax, ecx\n+dec eax\n cmp eax, 5\n ja 0x1f\n-jmp dword ptr [eax*4 + 0x10074520]\n+jmp dword ptr [eax*4 + 0x10012ec0]\n mov dword ptr [esi + 8], 2\n mov eax, 1\n shl eax, cl\n or dword ptr [esi + 0xc], eax\n mov eax, dword ptr [esi]\n mov ecx, esi\n call dword ptr [eax + 0x1c]\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n xor eax, eax\n@@ -46,27 +47,21 @@\n\n mov ecx, dword ptr [ebp - 0x10]\n mov edx, dword ptr [ecx]\n mov dword ptr [ebp - 0x10], edx\n cmp dword ptr [esi + 0x44], edx\n jne -0x18\n jmp -0x43\n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x14]\n jmp MxAutoLocker::~MxAutoLocker (FUNCTION)\n-mov bl, 0x44\n-pop es\n-adc ah, al\n-inc esp\n-pop es\n-adc al, ch\n-inc esp\n-pop es\n-adc al, ch\n-inc esp\n-pop es\n-adc al, ch\n-inc esp\n-pop es\n-adc al, ch\n-inc esp\n-pop es\n+push ebx\n+add dword ptr cs:[eax], edx\n+add dword ptr cs:[eax], edx\n+mov byte ptr [esi], ch\n+add dword ptr [eax], edx\n+mov byte ptr [esi], ch\n+add dword ptr [eax], edx\n+mov byte ptr [esi], ch\n+add dword ptr [eax], edx\n+mov byte ptr [esi], ch\n+add dword ptr [eax], edx"}, {"address": "0x10074540", "name": "MxCompositeMediaPresenter::PutData", "matching": 1.0, "diff": ""}, {"address": "0x100745e0", "name": "Hospital::Hospital", "matching": 1.0, "diff": ""}, {"address": "0x100746b0", "name": "Hospital::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100746c0", "name": "Hospital::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100747d0", "name": "Hospital::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10076370", "name": "HospitalState::HospitalState", "matching": 1.0, "diff": ""}, {"address": "0x10076400", "name": "HospitalState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10076410", "name": "HospitalState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100764c0", "name": "HospitalState::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10076670", "name": "Bike::Bike", "matching": 1.0, "diff": ""}, {"address": "0x100766f0", "name": "Bike::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10076700", "name": "Bike::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10076880", "name": "Bike::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10076c30", "name": "LegoActorPresenter::ReadyTickle", "matching": 1.0, "diff": ""}, {"address": "0x10076c90", "name": "LegoActorPresenter::StartingTickle", "matching": 1.0, "diff": ""}, {"address": "0x10076cc0", "name": "LegoActorPresenter::ParseExtra", "matching": 0.5084745762711864, "diff": "--- \n\n+++ \n\n@@ -1,29 +1,30 @@\n\n mov eax, dword ptr [ecx + 0x1c]\n-sub esp, 0x204\n+sub esp, 0x200\n mov edx, ecx\n push esi\n-mov cx, word ptr [eax + 0x80]\n push edi\n-mov word ptr [esp + 0xa], cx\n-mov eax, dword ptr [eax + 0x7c]\n-test cx, cx\n-mov dword ptr [esp + 0xc], eax\n-je 0x31\n-mov eax, dword ptr [esp + 0xa]\n-lea edi, [esp + 0xc]\n-and eax, 0xffff\n-mov esi, dword ptr [esp + 0xc]\n+mov esi, dword ptr [eax + 0x7c]\n+mov ax, word ptr [eax + 0x80]\n+test ax, ax\n+je 0x33\n+movzx eax, ax\n+lea edi, [esp + 8]\n mov ecx, eax\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-mov byte ptr [esp + eax + 0xc], 0\n+mov eax, dword ptr [edx + 0x1c]\n+xor ecx, ecx\n+mov cx, word ptr [eax + 0x80]\n+lea eax, [esp + 8]\n+mov byte ptr [esp + ecx + 8], 0\n mov ecx, dword ptr [edx + 0x4c]\n-lea edx, [esp + 0xc]\n-push edx\n+push eax\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x20]\n pop edi\n pop esi\n+add esp, 0x200\n+ret "}, {"address": "0x10076e10", "name": "RegistrationBook::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10076e20", "name": "RegistrationBook::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10076f30", "name": "RegistrationBook::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100783e0", "name": "RegistrationBook::VTable0x64", "matching": 1.0, "diff": ""}, {"address": "0x10078510", "name": "LegoCarBuildAnimPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10078520", "name": "LegoCarBuildAnimPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10078660", "name": "LegoCarBuildAnimPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10079e50", "name": "LegoPalettePresenter::LegoPalettePresenter", "matching": 1.0, "diff": ""}, {"address": "0x10079f30", "name": "LegoPalettePresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10079f40", "name": "LegoPalettePresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1007a050", "name": "LegoPalettePresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1007a070", "name": "LegoPalettePresenter::~LegoPalettePresenter", "matching": 1.0, "diff": ""}, {"address": "0x1007a0d0", "name": "LegoPalettePresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x1007a0e0", "name": "LegoPalettePresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1007a120", "name": "LegoPalettePresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1007a130", "name": "LegoPalettePresenter::ParsePalette", "matching": 1.0, "diff": ""}, {"address": "0x1007a230", "name": "LegoPalettePresenter::ReadyTickle", "matching": 1.0, "diff": ""}, {"address": "0x1007a360", "name": "Act2Brick::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1007a370", "name": "Act2Brick::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1007a450", "name": "Act2Brick::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1007aa20", "name": "LegoVideoManager::LegoVideoManager", "matching": 1.0, "diff": ""}, {"address": "0x1007ab10", "name": "LegoVideoManager::VTable0x3c", "matching": 1.0, "diff": ""}, {"address": "0x1007ab20", "name": "LegoVideoManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1007ab40", "name": "LegoVideoManager::~LegoVideoManager", "matching": 1.0, "diff": ""}, {"address": "0x1007abb0", "name": "LegoVideoManager::CreateDirect3D", "matching": 1.0, "diff": ""}, {"address": "0x1007ac40", "name": "LegoVideoManager::Create", "matching": 0.8969422423556059, "diff": "--- \n\n+++ \n\n@@ -1,28 +1,28 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 0x4e0\n mov byte ptr [ebp - 0xd], 0\n-mov dword ptr [ebp - 0x1c], 0\n mov dword ptr [ebp - 0x18], 0\n+mov dword ptr [ebp - 0x24], 0\n push ebx\n push esi\n push edi\n mov esi, ecx\n mov edi, 0xffffffff\n lea ecx, [ebp - 0x38]\n-mov dword ptr [ebp - 0x20], edi\n+mov dword ptr [ebp - 0x1c], edi\n call MxDeviceEnumerate::MxDeviceEnumerate (FUNCTION)\n lea eax, [ebp - 0x4c]\n mov edx, Mx3DPointFloat (VTABLE)\n mov dword ptr [ebp - 4], 0\n mov dword ptr [ebp - 0x38], MxDeviceEnumerate100d9cc8 (VTABLE)\n mov dword ptr [ebp - 4], 1\n lea ecx, [ebp - 0x60]\n mov dword ptr [ebp - 0x50], eax\n mov dword ptr [ebp - 0x54], edx\n mov dword ptr [ebp - 0x64], ecx\n@@ -64,69 +64,69 @@\n\n test eax, eax\n je 0x9\n mov ecx, eax\n call MxPalette::MxPalette (FUNCTION)\n jmp 0x2\n xor eax, eax\n mov ecx, 1\n test eax, eax\n mov byte ptr [ebp - 4], cl\n mov dword ptr [ebx + 0x10], eax\n-je 0x413\n+je 0x419\n mov byte ptr [ebp - 0xd], cl\n lea eax, [ebp - 0x4ec]\n mov ecx, dword ptr [ebx + 0x10]\n push eax\n call MxPalette::GetEntries (FUNCTION)\n mov ecx, esi\n call LegoVideoManager::CreateDirect3D (FUNCTION)\n test eax, eax\n-jne 0x3f2\n+jne 0x3f8\n lea ecx, [ebp - 0x38]\n call MxDeviceEnumerate::DoEnumerate (FUNCTION)\n test eax, eax\n-jne 0x3e2\n+jne 0x3e8\n mov eax, dword ptr [ebx + 0x20]\n test eax, eax\n je 0x2b\n push eax\n lea ecx, [ebp - 0x38]\n call MxDeviceEnumerate::ParseDeviceName (FUNCTION)\n mov edi, eax\n test edi, edi\n jl 0x20\n-lea eax, [ebp - 0x18]\n-lea ecx, [ebp - 0x1c]\n+lea eax, [ebp - 0x24]\n+lea ecx, [ebp - 0x18]\n push eax\n push ecx\n push edi\n lea ecx, [ebp - 0x38]\n call MxDeviceEnumerate::GetDevice (FUNCTION)\n mov edi, eax\n test edi, edi\n je 0x2a\n mov edi, 0xffffffff\n test edi, edi\n jge 0x21\n lea ecx, [ebp - 0x38]\n call MxDeviceEnumerate::FUN_1009d210 (FUNCTION)\n lea ecx, [ebp - 0x38]\n call MxDeviceEnumerate::FUN_1009d0d0 (FUNCTION)\n-lea ecx, [ebp - 0x18]\n-lea edx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x24]\n+lea edx, [ebp - 0x18]\n push ecx\n push edx\n push eax\n lea ecx, [ebp - 0x38]\n call MxDeviceEnumerate::GetDevice (FUNCTION)\n-mov eax, dword ptr [ebp - 0x18]\n-mov ecx, dword ptr [ebp - 0x1c]\n+mov eax, dword ptr [ebp - 0x24]\n+mov ecx, dword ptr [ebp - 0x18]\n push eax\n lea edx, [ebp - 0x38]\n push ecx\n push edx\n mov ecx, dword ptr [esi + 0x74]\n call MxDirect3D::SetDevice (FUNCTION)\n mov ecx, dword ptr [ebp - 0x18]\n cmp dword ptr [ecx + 0x14], 0\n jne 0x1e\n cmp dword ptr [ecx + 0xe0], 2\n@@ -177,60 +177,60 @@\n\n mov edx, dword ptr [ebp - 0x14]\n push edx\n mov edi, dword ptr [ecx]\n xor edx, edx\n mov dl, al\n mov eax, dword ptr [ebp - 0x3c]\n push edx\n push eax\n call dword ptr [edi + 4]\n test eax, eax\n-je 0x2db\n+je 0x2e1\n mov ecx, dword ptr [esi + 0x74]\n mov eax, dword ptr [ebp + 0x10]\n push eax\n mov edx, dword ptr [ebp + 0xc]\n push edx\n mov edi, dword ptr [ecx + 0x24]\n push edi\n mov eax, dword ptr [ecx + 0x14]\n push eax\n mov edx, dword ptr [ecx + 0x10]\n push edx\n mov edi, dword ptr [ecx + 0x884]\n push edi\n mov eax, dword ptr [ecx + 0xc]\n push eax\n mov ecx, esi\n push ebx\n call MxVideoManager::VTable0x28 (FUNCTION)\n test eax, eax\n-jne 0x2a9\n+jne 0x2af\n call Tgl::CreateRenderer (FUNCTION)\n mov dword ptr [esi + 0x64], eax\n test eax, eax\n-je 0x299\n+je 0x29f\n push 0x10\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x14], eax\n add esp, 4\n mov byte ptr [ebp - 4], 3\n mov edi, eax\n mov eax, 0\n test edi, edi\n je 0x7\n mov ecx, edi\n call Lego3DManager::Lego3DManager (FUNCTION)\n mov byte ptr [ebp - 4], 1\n mov dword ptr [esi + 0x68], eax\n test eax, eax\n-je 0x267\n+je 0x26d\n lea edi, [ebp - 0xa4]\n xor eax, eax\n mov ecx, 0xa\n rep stosd dword ptr es:[edi], eax\n call LegoOmni::GetInstance (FUNCTION)\n mov eax, dword ptr [eax + 0x18]\n mov ecx, dword ptr [esi + 0x50]\n mov dword ptr [ebp - 0xa0], eax\n mov dword ptr [ebp - 0x9c], ecx\n mov eax, dword ptr [esi + 0x58]\n@@ -251,25 +251,25 @@\n\n mov dword ptr [ebp - 0x88], ecx\n mov edx, dword ptr [eax + 0x884]\n mov dword ptr [ebp - 0x84], edx\n mov ecx, dword ptr [eax + 0x888]\n lea eax, [ebp - 0xa4]\n push eax\n mov dword ptr [ebp - 0x80], ecx\n mov ecx, dword ptr [esi + 0x68]\n call Lego3DManager::Create (FUNCTION)\n test eax, eax\n-je 0x1d3\n+je 0x1d9\n mov ecx, esi\n call LegoVideoManager::ConfigureD3DRM (FUNCTION)\n test eax, eax\n-jne 0x1c4\n+jne 0x1ca\n push 1\n lea eax, [ebp - 0x14]\n push eax\n mov edx, dword ptr [esi + 0x68]\n mov dword ptr [ebp - 0x14], 'CameraROI' (STRING)\n mov ecx, dword ptr [edx + 0xc]\n call ViewLODListManager::Create (FUNCTION)\n mov edi, eax\n push 0x10c\n call ??2@YAPAXI@Z (FUNCTION)\n@@ -321,21 +321,21 @@\n\n push ecx\n mov ecx, dword ptr [edx + 8]\n call Lego3DView::Add (FUNCTION)\n mov ecx, dword ptr [esi + 0x6c]\n mov edx, dword ptr [esi + 0x68]\n push ecx\n mov ecx, dword ptr [edx + 8]\n call Lego3DView::SetPointOfView (FUNCTION)\n push 0x18\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [ebp - 0x1c], eax\n add esp, 4\n mov byte ptr [ebp - 4], 5\n mov edi, eax\n test edi, edi\n je 0x68\n mov ecx, edi\n call MxCore::MxCore (FUNCTION)\n mov byte ptr [ebp - 4], 6\n mov byte ptr [ebp - 4], 7\n mov byte ptr [ebp - 4], 8\n@@ -343,102 +343,97 @@\n\n mov dword ptr [edi + 8], 0\n mov dword ptr [edi + 0xc], MxCollection<LegoUnknown100d7c88 *>::Destroy (FUNCTION)\n mov eax, edi\n mov dword ptr [edi], MxList<LegoUnknown100d7c88 *> (VTABLE)\n mov dword ptr [edi + 0x14], 0\n mov dword ptr [edi + 0x10], 0\n mov byte ptr [ebp - 4], 5\n mov dword ptr [edi], LegoUnknown100d9d00 (VTABLE)\n mov dword ptr [edi + 0xc], LegoUnknown100d9d00::Destroy (FUNCTION)\n jmp 0x1a\n-mov ecx, dword ptr [ebp - 0x14]\n+mov ecx, dword ptr [ebp - 0x1c]\n jmp MxCore::~MxCore (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x14]\n+mov ecx, dword ptr [ebp - 0x1c]\n jmp MxCollection<LegoUnknown100d7c88 *>::~MxCollection<LegoUnknown100d7c88 *> (FUNCTION)\n-mov ecx, dword ptr [ebp - 0x14]\n+mov ecx, dword ptr [ebp - 0x1c]\n jmp MxList<LegoUnknown100d7c88 *>::~MxList<LegoUnknown100d7c88 *> (FUNCTION)\n xor eax, eax\n mov byte ptr [ebp - 4], 1\n push 0x18\n mov dword ptr [esi + 0x4e8], eax\n mov byte ptr [esi + 0xe4], 0\n call ??2@YAPAXI@Z (FUNCTION)\n+add esp, 4\n mov dword ptr [ebp - 0x14], eax\n-add esp, 4\n mov byte ptr [ebp - 4], 9\n-mov edi, eax\n-test edi, edi\n-je 0x40\n-lea eax, [ebp - 0x24]\n-mov dword ptr [edi], 0\n-mov dword ptr [edi + 4], 0\n-mov dword ptr [edi + 8], 0\n-mov dword ptr [edi + 0xc], 0\n-push eax\n+test eax, eax\n+je 0x48\n+lea ecx, [ebp - 0x20]\n+mov dword ptr [eax], 0\n+mov dword ptr [eax + 4], 0\n+mov dword ptr [eax + 8], 0\n+mov dword ptr [eax + 0xc], 0\n+push ecx\n call dword ptr [__imp__QueryPerformanceFrequency@4 (POINTER)]\n-cmp dword ptr [ebp - 0x20], 0\n-je 0xb\n-mov dword ptr [edi + 0x10], 0xffffffff\n-mov eax, edi\n-jmp 0xc\n-mov eax, dword ptr [ebp - 0x24]\n-mov dword ptr [edi + 0x10], eax\n-mov eax, edi\n+cmp dword ptr [ebp - 0x1c], 0\n+je 0xf\n+mov eax, dword ptr [ebp - 0x14]\n+mov dword ptr [eax + 0x10], 0xffffffff\n+mov eax, dword ptr [ebp - 0x14]\n+jmp 0x10\n+mov ecx, dword ptr [ebp - 0x20]\n+mov eax, dword ptr [ebp - 0x14]\n+mov dword ptr [eax + 0x10], ecx\n+mov eax, dword ptr [ebp - 0x14]\n jmp 0x2\n xor eax, eax\n mov byte ptr [ebp - 4], 1\n push eax\n mov dword ptr [esi + 0x4f4], eax\n call dword ptr [__imp__QueryPerformanceCounter@4 (POINTER)]\n-mov dword ptr [ebp - 0x20], 0\n+mov dword ptr [ebp - 0x1c], 0\n cmp byte ptr [ebp - 0xd], 0\n je 0x14\n mov ecx, dword ptr [ebx + 0x10]\n test ecx, ecx\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov dword ptr [ebx + 0x10], 0\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET48>\n-mov eax, dword ptr [ebp - 0x20]\n+mov eax, dword ptr [ebp - 0x1c]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 0xc\n mov eax, dword ptr [ebp - 0x14]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n-mov eax, dword ptr [ebp - 0x14]\n+mov eax, dword ptr [ebp - 0x1c]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n mov eax, dword ptr [ebp - 0x14]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n mov eax, dword ptr [ebp - 0x14]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n lea ecx, [ebp - 0x38]\n jmp MxDeviceEnumerate::~MxDeviceEnumerate (FUNCTION)\n mov eax, <OFFSET50>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x38]\n jmp MxDeviceEnumerate100d9cc8::~MxDeviceEnumerate100d9cc8 (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x1007b2e0", "name": "LegoUnknown100d9d00::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1007b300", "name": "MxCollection<LegoUnknown100d7c88 *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x1007b310", "name": "MxCollection<LegoUnknown100d7c88 *>::~MxCollection<LegoUnknown100d7c88 *>", "matching": 1.0, "diff": ""}, {"address": "0x1007b360", "name": "MxCollection<LegoUnknown100d7c88 *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1007b370", "name": "MxList<LegoUnknown100d7c88 *>::~MxList<LegoUnknown100d7c88 *>", "matching": 1.0, "diff": ""}, {"address": "0x1007b400", "name": "LegoUnknown100d9d00::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1007b470", "name": "MxCollection<LegoUnknown100d7c88 *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1007b4e0", "name": "MxList<LegoUnknown100d7c88 *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1007b590", "name": "MxDeviceEnumerate100d9cc8::~MxDeviceEnumerate100d9cc8", "matching": 1.0, "diff": ""}, {"address": "0x1007b5e0", "name": "LegoVideoManager::Destroy", "matching": 0.22727272727272727, "diff": "--- \n\n+++ \n\n@@ -1,20 +1,24 @@\n\n push esi\n-mov eax, dword ptr [ecx + 0x514]\n+mov eax, dword ptr [ecx + 0x540]\n mov esi, ecx\n-test eax, eax\n-je 0x10\n-push eax\n-mov eax, dword ptr [eax]\n-call dword ptr [eax + 8]\n-mov dword ptr [esi + 0x514], 0\n-mov eax, dword ptr [esi + 0x528]\n-test eax, eax\n-je 0x10\n-push eax\n-mov eax, dword ptr [eax]\n-call dword ptr [eax + 8]\n-mov dword ptr [esi + 0x528], 0\n-mov eax, dword ptr [esi + 0x540]\n test eax, eax\n je 0x11\n push eax\n+call dword ptr [__imp__DeleteObject@4 (POINTER)]\n+mov dword ptr [esi + 0x540], 0\n+mov ecx, dword ptr [esi + 0x68]\n+test ecx, ecx\n+je 0x6\n+push 1\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax]\n+mov ecx, esi\n+call MxVideoManager::Destroy (FUNCTION)\n+mov eax, dword ptr [esi + 0x4f4]\n+test eax, eax\n+je 0x9\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+pop esi\n+ret "}, {"address": "0x1007b6a0", "name": "LegoVideoManager::MoveCursor", "matching": 1.0, "diff": ""}, {"address": "0x1007b770", "name": "LegoVideoManager::Tickle", "matching": 0.8963503649635036, "diff": "--- \n\n+++ \n\n@@ -1,21 +1,21 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 0x3c\n+mov dword ptr [ebp - 0x10], ecx\n+push ebx\n cmp byte ptr [ecx + 0x554], 0\n-push ebx\n-mov dword ptr [ebp - 0x10], ecx\n push esi\n push edi\n je 0x19\n test byte ptr [ecx + 0x44], 2\n jne 0x13\n call TransitionManager (FUNCTION)\n cmp dword ptr [eax + 0x2c], 0\n jne 0x8\n push 0x1e\n call dword ptr [__imp__Sleep@4 (POINTER)]\n@@ -38,43 +38,45 @@\n\n xor eax, eax\n mov dword ptr [ebp - 0x14], eax\n fild qword ptr [ebp - 0x18]\n mov dword ptr [ebp - 0x18], ecx\n mov dword ptr [ebp - 0x14], eax\n fild qword ptr [ebp - 0x18]\n fdivp st(1)\n fadd qword ptr [esi + 8]\n fstp qword ptr [esi + 8]\n mov edx, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [edx + 0x4f4]\n-mov eax, dword ptr [ecx + 0xc]\n-lea ebx, [ecx + 8]\n+mov ebx, dword ptr [edx + 0x4f4]\n+mov eax, dword ptr [ebx + 0xc]\n+lea ecx, [ebx + 8]\n mov dword ptr [edx + 0x4fc], eax\n-mov esi, dword ptr [ebx]\n+mov edx, dword ptr [ebp - 0x10]\n+mov esi, dword ptr [ecx]\n mov dword ptr [edx + 0x4f8], esi\n xor esi, esi\n+mov dword ptr [ebx], esi\n+mov dword ptr [ebx + 4], esi\n mov dword ptr [ecx], esi\n mov dword ptr [ecx + 4], esi\n-mov dword ptr [ebx], esi\n-mov dword ptr [ebx + 4], esi\n-mov ecx, dword ptr [edx + 0x4f4]\n-push ecx\n+mov edx, dword ptr [ebp - 0x10]\n+mov ebx, dword ptr [edx + 0x4f4]\n+push ebx\n call edi\n mov edx, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [edx + 0x74]\n call MxDirectDraw::RestoreSurfaces (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n call MxVideoManager::SortPresenterList (FUNCTION)\n mov edx, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [edx + 8]\n-push ecx\n lea ecx, [ebp - 0x28]\n+mov eax, dword ptr [edx + 8]\n+push eax\n call MxListCursor<MxPresenter *>::MxListCursor<MxPresenter *> (FUNCTION)\n mov eax, 0xffffffff\n mov dword ptr [ebp - 4], esi\n mov dword ptr [ebp - 0x28], MxPtrListCursor<MxPresenter> (VTABLE)\n mov dword ptr [ebp - 4], 1\n mov dword ptr [ebp - 0x28], MxPresenterListCursor (VTABLE)\n mov dword ptr [ebp - 4], 2\n cmp dword ptr [ebp - 0x1c], esi\n jne 0x8\n mov eax, dword ptr [ebp - 0x20]\n@@ -106,33 +108,34 @@\n\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x24]\n xor ebx, ebx\n mov edx, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 0x48], ebx\n mov dword ptr [ebp - 0x44], ebx\n mov eax, dword ptr [edx + 0x34]\n lea ecx, [ebp - 0x48]\n sub eax, dword ptr [edx + 0x2c]\n push ecx\n-mov ecx, edx\n+mov edx, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 0x40], eax\n mov eax, dword ptr [edx + 0x38]\n sub eax, dword ptr [edx + 0x30]\n mov dword ptr [ebp - 0x3c], eax\n+mov ecx, dword ptr [ebp - 0x10]\n call MxVideoManager::InvalidateRect (FUNCTION)\n mov edx, dword ptr [ebp - 0x10]\n cmp byte ptr [edx + 0x555], bl\n-jne 0x206\n+jne 0x219\n cmp byte ptr [edx + 0xe4], bl\n jne 0xc\n cmp byte ptr [edx + 0xe5], bl\n-je 0x1f2\n+je 0x205\n xor esi, esi\n mov dword ptr [ebp - 0x1c], esi\n cmp dword ptr [ebp - 0x1c], esi\n jne 0x8\n mov eax, dword ptr [ebp - 0x20]\n mov ecx, dword ptr [eax + 0x10]\n jmp 0x6\n mov eax, dword ptr [ebp - 0x1c]\n mov ecx, dword ptr [eax + 8]\n mov dword ptr [ebp - 0x1c], ecx\n@@ -188,50 +191,55 @@\n\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x14], ecx\n je 0xc\n mov eax, dword ptr [ebp - 0x14]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x4c]\n jmp -0x34\n mov edx, dword ptr [ebp - 0x10]\n cmp byte ptr [edx + 0x501], 0\n-je 0xaa\n+je 0xbd\n mov ecx, dword ptr [edx + 0x50c]\n cmp dword ptr [edx + 0x504], ecx\n jne 0xe\n mov eax, dword ptr [edx + 0x510]\n cmp dword ptr [edx + 0x508], eax\n-je 0x1d\n+je 0x20\n test ecx, ecx\n-jl 0x19\n+jl 0x1c\n mov edx, dword ptr [ebp - 0x10]\n mov eax, dword ptr [edx + 0x510]\n test eax, eax\n-jl 0xc\n+jl 0xf\n mov dword ptr [edx + 0x504], ecx\n+mov edx, dword ptr [ebp - 0x10]\n mov dword ptr [edx + 0x508], eax\n mov edx, dword ptr [ebp - 0x10]\n xor ebx, ebx\n-mov ecx, dword ptr [edx + 0x58]\n+mov eax, dword ptr [edx + 0x58]\n cmp dword ptr [edx + 0x514], ebx\n-mov esi, dword ptr [ecx + 0x30]\n-jne 0x35\n+mov esi, dword ptr [eax + 0x30]\n+jne 0x45\n mov eax, 0x10\n mov dword ptr [edx + 0x51c], ebx\n+mov edx, dword ptr [ebp - 0x10]\n mov dword ptr [edx + 0x518], ebx\n+mov edx, dword ptr [ebp - 0x10]\n mov dword ptr [edx + 0x524], eax\n+mov edx, dword ptr [ebp - 0x10]\n mov dword ptr [edx + 0x520], eax\n call MxDisplaySurface::CreateCursorSurface (FUNCTION)\n mov edx, dword ptr [ebp - 0x10]\n-cmp eax, ebx\n mov dword ptr [edx + 0x514], eax\n+mov edx, dword ptr [ebp - 0x10]\n+cmp dword ptr [edx + 0x514], ebx\n jne 0x6\n mov byte ptr [edx + 0x501], bl\n push 0x11\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x518\n mov edx, dword ptr [ebp - 0x10]\n push eax\n mov ecx, dword ptr [edx + 0x514]\n push ecx\n mov eax, dword ptr [edx + 0x508]\n@@ -321,27 +329,10 @@\n\n lea ecx, [ebp - 0x38]\n jmp MxPresenterListCursor::~MxPresenterListCursor (FUNCTION)\n lea ecx, [ebp - 0x28]\n jmp MxListCursor<MxPresenter *>::~MxListCursor<MxPresenter *> (FUNCTION)\n lea ecx, [ebp - 0x28]\n jmp MxPtrListCursor<MxPresenter>::~MxPtrListCursor<MxPresenter> (FUNCTION)\n mov eax, <OFFSET20>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x28]\n jmp MxPresenterListCursor::~MxPresenterListCursor (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-sub esp, 0xb0\n-mov eax, <OFFSET22>"}, {"address": "0x1007c080", "name": "LegoVideoManager::GetPresenterAt", "matching": 1.0, "diff": ""}, {"address": "0x1007c290", "name": "LegoVideoManager::RealizePalette", "matching": 1.0, "diff": ""}, {"address": "0x1007c300", "name": "LegoVideoManager::EnableFullScreenMovie", "matching": 1.0, "diff": ""}, {"address": "0x1007c310", "name": "LegoVideoManager::EnableFullScreenMovie", "matching": 1.0, "diff": ""}, {"address": "0x1007c440", "name": "LegoVideoManager::SetSkyColor", "matching": 1.0, "diff": ""}, {"address": "0x1007c4c0", "name": "LegoVideoManager::OverrideSkyColor", "matching": 1.0, "diff": ""}, {"address": "0x1007c4d0", "name": "LegoVideoManager::UpdateView", "matching": 1.0, "diff": ""}, {"address": "0x1007c930", "name": "LegoVideoManager::ConfigureD3DRM", "matching": 1.0, "diff": ""}, {"address": "0x1007c990", "name": "LegoPartPresenter::configureLegoPartPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1007e3b0", "name": "Jetski::Jetski", "matching": 1.0, "diff": ""}, {"address": "0x1007e430", "name": "Jetski::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1007e440", "name": "Jetski::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1007e5c0", "name": "Jetski::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1007ea90", "name": "MxBackgroundAudioManager::MxBackgroundAudioManager", "matching": 1.0, "diff": ""}, {"address": "0x1007eb70", "name": "MxBackgroundAudioManager::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1007eb80", "name": "MxBackgroundAudioManager::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1007ec00", "name": "MxBackgroundAudioManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1007ec20", "name": "MxBackgroundAudioManager::~MxBackgroundAudioManager", "matching": 1.0, "diff": ""}, {"address": "0x1007ece0", "name": "MxBackgroundAudioManager::Create", "matching": 1.0, "diff": ""}, {"address": "0x1007ed20", "name": "MxBackgroundAudioManager::OpenMusic", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,26 +1,26 @@\n\n push ebx\n push esi\n push edi\n-lea edi, [ecx + 0x14c]\n-cmp dword ptr [edi], 0\n+lea ebx, [ecx + 0x14c]\n+cmp dword ptr [ebx], 0\n je 0x5\n call MxBackgroundAudioManager::DestroyMusic (FUNCTION)\n mov esi, dword ptr [esp + 0x10]\n-mov ebx, 0xffffffff\n+mov edi, 0xffffffff\n push 0\n mov eax, dword ptr [esi]\n push eax\n call Streamer (FUNCTION)\n mov ecx, eax\n call MxStreamer::Open (FUNCTION)\n test eax, eax\n je 0xa\n push esi\n-mov ecx, edi\n-xor ebx, ebx\n+mov ecx, ebx\n+xor edi, edi\n call MxAtomId::operator= (FUNCTION)\n-mov eax, ebx\n+mov eax, edi\n pop edi\n pop esi\n pop ebx\n ret 4"}, {"address": "0x1007ed70", "name": "MxBackgroundAudioManager::DestroyMusic", "matching": 1.0, "diff": ""}, {"address": "0x1007ee40", "name": "MxBackgroundAudioManager::Tickle", "matching": 1.0, "diff": ""}, {"address": "0x1007ee70", "name": "MxBackgroundAudioManager::FUN_1007ee70", "matching": 1.0, "diff": ""}, {"address": "0x1007ef40", "name": "MxBackgroundAudioManager::FUN_1007ef40", "matching": 0.7397260273972602, "diff": "--- \n\n+++ \n\n@@ -4,55 +4,50 @@\n\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 8\n mov dword ptr [ebp - 0x10], ecx\n push esi\n push edi\n mov ecx, dword ptr [ecx + 0xa0]\n test ecx, ecx\n-jne 0xfa\n+jne 0xe6\n mov edx, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [edx + 0x138]\n test ecx, ecx\n-je 0x14f\n-cmp word ptr [edx + 0x148], 0\n+je 0x13a\n+mov ax, word ptr [edx + 0x148]\n mov esi, 0x1e\n-jne 0x9\n-mov edx, dword ptr [ebp - 0x10]\n-mov esi, dword ptr [edx + 0x144]\n+test ax, ax\n+jne 0x3\n+movsx esi, ax\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x5c]\n mov edx, dword ptr [ebp - 0x10]\n cmp eax, esi\n mov ecx, dword ptr [edx + 0x138]\n-jge 0x3e\n+jae 0x2e\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x5c]\n mov edx, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [edx + 0x140]\n add ecx, eax\n cmp ecx, esi\n-jg 0x16\n-mov ecx, dword ptr [edx + 0x138]\n-mov eax, dword ptr [ecx]\n-call dword ptr [eax + 0x5c]\n-mov edx, dword ptr [ebp - 0x10]\n-mov esi, dword ptr [edx + 0x140]\n-add esi, eax\n+ja 0x6\n+add esi, dword ptr [edx + 0x140]\n mov edx, dword ptr [ebp - 0x10]\n push esi\n mov ecx, dword ptr [edx + 0x138]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x60]\n-jmp 0xe7\n+jmp 0xe6\n push esi\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x60]\n mov edx, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [edx + 0x138]\n lea esi, [edx + 0xa4]\n push esi\n mov dword ptr [edx + 0xa0], ecx\n lea ecx, [edx + 0xc]\n call MxDSAction::operator= (FUNCTION)\n@@ -63,44 +58,56 @@\n\n mov dword ptr [edx + 0x138], 0\n mov dword ptr [edx + 0xc0], 0xffffffff\n mov eax, dword ptr [ebp - 0x14]\n mov edi, dword ptr [esi]\n push eax\n call dword ptr [edi + 0x20]\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n mov edx, dword ptr [ebp - 0x10]\n mov dword ptr [edx + 0x13c], 0\n-jmp 0x78\n+jmp 0x77\n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x14]\n jmp MxAtomId::~MxAtomId (FUNCTION)\n cmp dword ptr [ecx + 0x1c], 0\n-je 0x60\n+je 0x5f\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x5c]\n mov edx, dword ptr [ebp - 0x10]\n test eax, eax\n-je 0x42\n+je 0x41\n mov ecx, dword ptr [edx + 0xa0]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x5c]\n+mov ecx, eax\n mov edx, dword ptr [ebp - 0x10]\n-sub eax, dword ptr [edx + 0x140]\n-test eax, eax\n-mov eax, 0\n-jle 0x14\n+xor eax, eax\n+mov esi, dword ptr [edx + 0x140]\n+cmp ecx, esi\n+je 0x14\n+sub ecx, esi\n+cmp ecx, -1\n+jbe 0xd\n mov ecx, dword ptr [edx + 0xa0]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x5c]\n-mov edx, dword ptr [ebp - 0x10]\n-sub eax, dword ptr [edx + 0x140]\n+sub eax, esi\n mov edx, dword ptr [ebp - 0x10]\n push eax\n-mov ecx, dword ptr [edx + 0xa0]\n+mov ecx, dword ptr [edx + 0x138]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x60]\n jmp 0x12\n mov eax, dword ptr [edx + 0xa0]\n mov ecx, dword ptr [eax + 0x1c]\n push ecx\n+call DeleteObject (FUNCTION)\n+add esp, 4\n+mov eax, dword ptr [ebp - 0xc]\n+pop edi\n+mov dword ptr fs:[0], eax\n+pop esi\n+mov esp, ebp\n+pop ebp\n+ret "}, {"address": "0x1007f0e0", "name": "MxBackgroundAudioManager::FadeInOrFadeOut", "matching": 0.5, "diff": "--- \n\n+++ \n\n@@ -1,48 +1,44 @@\n\n push esi\n mov esi, ecx\n mov ecx, dword ptr [ecx + 0xa0]\n test ecx, ecx\n-je 0x68\n+je 0x6c\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x5c]\n cmp word ptr [esi + 0x148], 0\n-mov edx, 0x1e\n+mov ecx, 0x1e\n jne 0x6\n-mov edx, dword ptr [esi + 0x144]\n-cmp edx, eax\n-jle 0x1c\n+mov ecx, dword ptr [esi + 0x144]\n+cmp ecx, eax\n+jbe 0x1a\n+add eax, dword ptr [esi + 0x140]\n+cmp ecx, eax\n+ja 0x2\n+mov eax, ecx\n mov ecx, dword ptr [esi + 0xa0]\n-mov esi, dword ptr [esi + 0x140]\n-add esi, eax\n-cmp esi, edx\n-jl 0x2\n-mov esi, edx\n-push esi\n+push eax\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax + 0x60]\n+pop esi\n+ret \n+jae 0x1a\n+sub eax, dword ptr [esi + 0x140]\n+cmp ecx, eax\n+jb 0x2\n+mov eax, ecx\n+mov ecx, dword ptr [esi + 0xa0]\n+push eax\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x60]\n pop esi\n ret \n mov ecx, dword ptr [esi + 0xa0]\n-jge 0x14\n-sub eax, dword ptr [esi + 0x140]\n-cmp eax, edx\n-jg 0x2\n-mov eax, edx\n-push eax\n-mov eax, dword ptr [ecx]\n-call dword ptr [eax + 0x60]\n-pop esi\n-ret \n push eax\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x60]\n mov dword ptr [esi + 0x13c], 0\n pop esi\n ret \n mov dword ptr [esi + 0x13c], 0\n pop esi\n ret \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x1007f170", "name": "MxBackgroundAudioManager::Notify", "matching": 1.0, "diff": ""}, {"address": "0x1007f1b0", "name": "MxBackgroundAudioManager::StartAction", "matching": 1.0, "diff": ""}, {"address": "0x1007f200", "name": "MxBackgroundAudioManager::StopAction", "matching": 1.0, "diff": ""}, {"address": "0x1007f2f0", "name": "MxBackgroundAudioManager::PlayMusic", "matching": 1.0, "diff": ""}, {"address": "0x1007f470", "name": "MxBackgroundAudioManager::Stop", "matching": 1.0, "diff": ""}, {"address": "0x1007f570", "name": "MxBackgroundAudioManager::LowerVolume", "matching": 1.0, "diff": ""}, {"address": "0x1007f5b0", "name": "MxBackgroundAudioManager::RaiseVolume", "matching": 1.0, "diff": ""}, {"address": "0x1007f5f0", "name": "MxBackgroundAudioManager::Enable", "matching": 1.0, "diff": ""}, {"address": "0x1007f650", "name": "MxBackgroundAudioManager::Init", "matching": 1.0, "diff": ""}, {"address": "0x1007f660", "name": "LegoModelPresenter::configureLegoModelPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1007f670", "name": "LegoModelPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x10081610", "name": "LegoCarRaceActor::`scalar deleting destructor'", "matching": 0.13333333333333333, "diff": "--- \n\n+++ \n\n@@ -1,48 +1,27 @@\n\n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-push esi\n-mov esi, ecx\n-lea ecx, [ecx + 0x174]\n-call <OFFSET1>\n-mov ecx, esi\n-call LegoPathActor::~LegoPathActor (FUNCTION)\n-test byte ptr [esp + 8], 1\n+mov eax, dword ptr fs:[0]\n+push ebp\n+mov ebp, esp\n+push -1\n+push <OFFSET1>\n+push eax\n+mov dword ptr fs:[0], esp\n+sub esp, 4\n+mov dword ptr [ebp - 4], 0xffffffff\n+mov dword ptr [ebp - 0x10], ecx\n+call <OFFSET2>\n+test byte ptr [ebp + 8], 1\n je 0xc\n-lea eax, [esi - 0x24]\n+mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-lea eax, [esi - 0x24]\n-pop esi\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n ret 4\n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, 'LegoCarRaceActor' (STRING)\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoRaceActor::~LegoRaceActor (FUNCTION)"}, {"address": "0x10081650", "name": "LegoCarRaceActor::ClassName", "matching": 0.0, "diff": "--- \n\n+++ \n\n@@ -1 +1,2 @@\n\n-sub ecx, dword ptr [ecx - 4]\n+mov eax, 'LegoCarRaceActor' (STRING)\n+ret "}, {"address": "0x10081670", "name": "LegoCarRaceActor::IsA", "matching": 0.7157190635451505, "diff": "--- \n\n+++ \n\n@@ -1,20 +1,10 @@\n\n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n mov edx, dword ptr [esp + 4]\n push ebx\n push esi\n mov eax, edx\n mov esi, 'LegoCarRaceActor' (STRING)\n mov bl, byte ptr [eax]\n cmp bl, byte ptr [esi]\n jne 0x1a\n or bl, bl\n je 0x12\n@@ -23,43 +13,23 @@\n\n jne 0xe\n add eax, 2\n add esi, 2\n or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x165\n+je 0x131\n mov eax, edx\n mov ecx, 'LegoRaceActor' (STRING)\n-mov bl, byte ptr [eax]\n-cmp bl, byte ptr [ecx]\n-jne 0x1a\n-or bl, bl\n-je 0x12\n-mov bl, byte ptr [eax + 1]\n-cmp bl, byte ptr [ecx + 1]\n-jne 0xe\n-add eax, 2\n-add ecx, 2\n-or bl, bl\n-jne -0x1c\n-xor eax, eax\n-jmp 0x5\n-sbb eax, eax\n-sbb eax, -1\n-test eax, eax\n-je 0x131\n-mov eax, edx\n-mov ecx, 'LegoAnimActor' (STRING)\n mov bl, byte ptr [eax]\n cmp bl, byte ptr [ecx]\n jne 0x1a\n or bl, bl\n je 0x12\n mov bl, byte ptr [eax + 1]\n cmp bl, byte ptr [ecx + 1]\n jne 0xe\n add eax, 2\n add ecx, 2\n@@ -104,46 +74,77 @@\n\n add eax, 2\n add ecx, 2\n or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n je 0x95\n+mov eax, edx\n+mov ecx, 'LegoEntity' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n+jne 0x1a\n+or bl, bl\n+je 0x12\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n+jne 0xe\n+add eax, 2\n+add ecx, 2\n+or bl, bl\n+jne -0x1c\n+xor eax, eax\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x65\n mov ecx, edx\n-mov eax, 'LegoEntity' (STRING)\n+mov eax, 'MxEntity' (STRING)\n mov bl, byte ptr [ecx]\n cmp bl, byte ptr [eax]\n jne 0x1a\n or bl, bl\n je 0x12\n mov bl, byte ptr [ecx + 1]\n cmp bl, byte ptr [eax + 1]\n jne 0xe\n add ecx, 2\n add eax, 2\n or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x65\n-mov eax, edx\n-mov ecx, 'MxEntity' (STRING)\n-mov bl, byte ptr [eax]\n-cmp bl, byte ptr [ecx]\n+je 0x35\n+mov eax, 'MxCore' (STRING)\n+mov cl, byte ptr [edx]\n+cmp cl, byte ptr [eax]\n jne 0x1a\n-or bl, bl\n+or cl, cl\n je 0x12\n-mov bl, byte ptr [eax + 1]\n-cmp bl, byte ptr [ecx + 1]\n+mov cl, byte ptr [edx + 1]\n+cmp cl, byte ptr [eax + 1]\n jne 0xe\n+add edx, 2\n add eax, 2\n-add ecx, 2\n-or bl, bl\n+or cl, cl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x7\n+xor al, al\n+pop esi\n+pop ebx\n+ret 4\n+mov al, 1\n+pop esi\n+pop ebx\n+ret 4"}, {"address": "0x10081d40", "name": "LegoJetskiRaceActor::`scalar deleting destructor'", "matching": 0.13333333333333333, "diff": "--- \n\n+++ \n\n@@ -1,48 +1,27 @@\n\n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-push esi\n-mov esi, ecx\n-lea ecx, [ecx + 0x174]\n-call <OFFSET1>\n-mov ecx, esi\n-call LegoPathActor::~LegoPathActor (FUNCTION)\n-test byte ptr [esp + 8], 1\n+mov eax, dword ptr fs:[0]\n+push ebp\n+mov ebp, esp\n+push -1\n+push <OFFSET1>\n+push eax\n+mov dword ptr fs:[0], esp\n+sub esp, 4\n+mov dword ptr [ebp - 4], 0xffffffff\n+mov dword ptr [ebp - 0x10], ecx\n+call <OFFSET2>\n+test byte ptr [ebp + 8], 1\n je 0xc\n-lea eax, [esi - 8]\n+mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-lea eax, [esi - 8]\n-pop esi\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n ret 4\n-int3 \n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, 'LegoJetskiRaceActor' (STRING)\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n+mov eax, <OFFSET4>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp LegoCarRaceActor::~LegoCarRaceActor (FUNCTION)"}, {"address": "0x10081d80", "name": "LegoJetskiRaceActor::ClassName", "matching": 0.0, "diff": "--- \n\n+++ \n\n@@ -1 +1,2 @@\n\n-sub ecx, dword ptr [ecx - 4]\n+mov eax, 'LegoJetskiRaceActor' (STRING)\n+ret "}, {"address": "0x10081da0", "name": "LegoJetskiRaceActor::IsA", "matching": 0.382089552238806, "diff": "--- \n\n+++ \n\n@@ -1,165 +1,170 @@\n\n-sub ecx, dword ptr [ecx - 4]\n-jmp 0x8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n+mov edx, dword ptr [esp + 4]\n+push ebx\n push esi\n-push edi\n-mov esi, dword ptr [esp + 0xc]\n-mov edi, 'LegoJetskiRaceActor' (STRING)\n-mov eax, esi\n-mov dl, byte ptr [eax]\n-cmp dl, byte ptr [edi]\n+mov eax, edx\n+mov esi, 'LegoJetskiRaceActor' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [esi]\n jne 0x1a\n-or dl, dl\n+or bl, bl\n je 0x12\n-mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [edi + 1]\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [esi + 1]\n jne 0xe\n add eax, 2\n-add edi, 2\n-or dl, dl\n+add esi, 2\n+or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x1c1\n-mov eax, dword ptr [ecx - 8]\n-mov edi, 'LegoCarRaceActor' (STRING)\n-mov edx, dword ptr [eax + 0x10]\n-mov eax, esi\n-lea ecx, [edx + ecx + 0x1c]\n-mov dl, byte ptr [eax]\n-cmp dl, byte ptr [edi]\n+je 0x165\n+mov eax, edx\n+mov ecx, 'LegoCarRaceActor' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n jne 0x1a\n-or dl, dl\n+or bl, bl\n je 0x12\n-mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [edi + 1]\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n jne 0xe\n add eax, 2\n-add edi, 2\n-or dl, dl\n+add ecx, 2\n+or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x183\n-mov eax, dword ptr [ecx - 0x20]\n-mov edi, 'LegoRaceActor' (STRING)\n-mov edx, dword ptr [eax + 0xc]\n-mov eax, esi\n-lea ecx, [edx + ecx - 0x10]\n-mov dl, byte ptr [eax]\n-cmp dl, byte ptr [edi]\n+je 0x131\n+mov eax, edx\n+mov ecx, 'LegoRaceActor' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n jne 0x1a\n-or dl, dl\n+or bl, bl\n je 0x12\n-mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [edi + 1]\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n jne 0xe\n add eax, 2\n-add edi, 2\n-or dl, dl\n+add ecx, 2\n+or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x145\n-mov eax, dword ptr [ecx - 0xc]\n-mov edi, 'LegoAnimActor' (STRING)\n-mov edx, dword ptr [eax + 8]\n-mov eax, esi\n-lea ecx, [edx + ecx + 0x14]\n-mov dl, byte ptr [eax]\n-cmp dl, byte ptr [edi]\n+je 0xfd\n+mov eax, edx\n+mov ecx, 'LegoPathActor' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n jne 0x1a\n-or dl, dl\n+or bl, bl\n je 0x12\n-mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [edi + 1]\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n jne 0xe\n add eax, 2\n-add edi, 2\n-or dl, dl\n-jne -0x1c\n-xor eax, eax\n-jmp 0x5\n-sbb eax, eax\n-sbb eax, -1\n-test eax, eax\n-je 0x107\n-mov eax, dword ptr [ecx - 0x1c]\n-mov edi, 'LegoPathActor' (STRING)\n-mov edx, dword ptr [eax + 4]\n-mov eax, esi\n-lea ecx, [edx + ecx - 0x1c]\n-mov dl, byte ptr [eax]\n-cmp dl, byte ptr [edi]\n-jne 0x1a\n-or dl, dl\n-je 0x12\n-mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [edi + 1]\n-jne 0xe\n-add eax, 2\n-add edi, 2\n-or dl, dl\n+add ecx, 2\n+or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n je 0xc9\n-mov eax, esi\n-mov edi, 'LegoActor' (STRING)\n-mov dl, byte ptr [eax]\n-cmp dl, byte ptr [edi]\n+mov eax, edx\n+mov ecx, 'LegoActor' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n jne 0x1a\n-or dl, dl\n+or bl, bl\n je 0x12\n-mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [edi + 1]\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n jne 0xe\n add eax, 2\n-add edi, 2\n-or dl, dl\n+add ecx, 2\n+or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n je 0x95\n-mov eax, esi\n-mov edi, 'LegoEntity' (STRING)\n-mov dl, byte ptr [eax]\n-cmp dl, byte ptr [edi]\n+mov ecx, edx\n+mov eax, 'LegoEntity' (STRING)\n+mov bl, byte ptr [ecx]\n+cmp bl, byte ptr [eax]\n jne 0x1a\n-or dl, dl\n+or bl, bl\n je 0x12\n-mov dl, byte ptr [eax + 1]\n-cmp dl, byte ptr [edi + 1]\n+mov bl, byte ptr [ecx + 1]\n+cmp bl, byte ptr [eax + 1]\n jne 0xe\n+add ecx, 2\n add eax, 2\n-add edi, 2\n-or dl, dl\n+or bl, bl\n jne -0x1c\n xor eax, eax\n jmp 0x5\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n je 0x65\n+mov eax, edx\n+mov ecx, 'MxEntity' (STRING)\n+mov bl, byte ptr [eax]\n+cmp bl, byte ptr [ecx]\n+jne 0x1a\n+or bl, bl\n+je 0x12\n+mov bl, byte ptr [eax + 1]\n+cmp bl, byte ptr [ecx + 1]\n+jne 0xe\n+add eax, 2\n+add ecx, 2\n+or bl, bl\n+jne -0x1c\n+xor eax, eax\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x35\n+mov eax, 'MxCore' (STRING)\n+mov cl, byte ptr [edx]\n+cmp cl, byte ptr [eax]\n+jne 0x1a\n+or cl, cl\n+je 0x12\n+mov cl, byte ptr [edx + 1]\n+cmp cl, byte ptr [eax + 1]\n+jne 0xe\n+add edx, 2\n+add eax, 2\n+or cl, cl\n+jne -0x1c\n+xor eax, eax\n+jmp 0x5\n+sbb eax, eax\n+sbb eax, -1\n+test eax, eax\n+je 0x7\n+xor al, al\n+pop esi\n+pop ebx\n+ret 4\n+mov al, 1\n+pop esi\n+pop ebx\n+ret 4"}, {"address": "0x10082390", "name": "HistoryBook::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100823a0", "name": "HistoryBook::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100824b0", "name": "HistoryBook::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10083310", "name": "LegoUnkSaveDataWriter::WriteSaveData3", "matching": 1.0, "diff": ""}, {"address": "0x10085cc0", "name": "JukeBoxEntity::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10085cd0", "name": "JukeBoxEntity::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10085db0", "name": "JukeBoxEntity::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10086240", "name": "??2@YAPAXI@Z", "matching": 0.8571428571428571, "diff": "--- \n\n+++ \n\n@@ -1,7 +1,7 @@\n\n mov eax, dword ptr [esp + 4]\n push 0\n push 0\n push eax\n-call <OFFSET1>\n+call ?shi_New@@YAPAXKIPAU_SHI_Pool@@@Z (UNK)\n add esp, 0xc\n ret "}, {"address": "0x10086260", "name": "??3@YAXPAX@Z", "matching": 0.8333333333333334, "diff": "--- \n\n+++ \n\n@@ -1,6 +1,6 @@\n\n mov eax, dword ptr [esp + 4]\n test eax, eax\n je 0x6\n push eax\n-call <OFFSET1>\n+call _MemFreePtr@4 (FUNCTION)\n ret "}, {"address": "0x1008a090", "name": "_malloc", "matching": 0.8444444444444444, "diff": "--- \n\n+++ \n\n@@ -1,45 +1,45 @@\n\n push ebx\n-mov eax, dword ptr [<OFFSET1>]\n+mov eax, dword ptr [_MemDefaultPool (UNK)]\n push esi\n push edi\n xor edi, edi\n cmp eax, edi\n jne 0x14\n-call <OFFSET2>\n+call _MemInitDefaultPool@0 (FUNCTION)\n test eax, eax\n-mov eax, dword ptr [<OFFSET1>]\n+mov eax, dword ptr [_MemDefaultPool (UNK)]\n jne 0x6\n xor eax, eax\n pop edi\n pop esi\n pop ebx\n ret \n mov esi, dword ptr [esp + 0x10]\n test esi, esi\n jne 0x7\n mov esi, 4\n jmp 0x6\n add esi, 3\n and esi, 0xfffffffc\n-test byte ptr [<OFFSET3>], 8\n+test byte ptr [_MemDefaultPoolFlags (UNK)], 8\n je 0x5\n mov edi, 1\n push edi\n push esi\n push eax\n-call <OFFSET4>\n+call _MemAllocPtr@12 (FUNCTION)\n mov ebx, eax\n test ebx, ebx\n jne 0x14\n push 1\n push esi\n-call <OFFSET5>\n+call _shi_call_new_handler_msc (UNK)\n add esp, 8\n test eax, eax\n-mov eax, dword ptr [<OFFSET1>]\n+mov eax, dword ptr [_MemDefaultPool (UNK)]\n jne -0x22\n mov eax, ebx\n pop edi\n pop esi\n pop ebx\n ret "}, {"address": "0x1008a1c0", "name": "_free", "matching": 0.8333333333333334, "diff": "--- \n\n+++ \n\n@@ -1,6 +1,6 @@\n\n mov eax, dword ptr [esp + 4]\n test eax, eax\n je 0x6\n push eax\n-call <OFFSET1>\n+call _MemFreePtr@4 (FUNCTION)\n ret "}, {"address": "0x1008b020", "name": "___CxxFrameHandler", "matching": 0.967741935483871, "diff": "--- \n\n+++ \n\n@@ -12,20 +12,20 @@\n\n mov ecx, dword ptr [ebp + 0x14]\n push 0\n mov edx, dword ptr [ebp + 0x10]\n push eax\n push ecx\n push edx\n mov eax, dword ptr [ebp + 0xc]\n push eax\n mov ecx, dword ptr [ebp + 8]\n push ecx\n-call <OFFSET1>\n+call ___InternalCxxFrameHandler (UNK)\n add esp, 0x20\n mov dword ptr [ebp - 4], eax\n pop edi\n pop esi\n pop ebx\n mov eax, dword ptr [ebp - 4]\n mov esp, ebp\n pop ebp\n ret "}, {"address": "0x1008b400", "name": "_atol", "matching": 0.9142857142857143, "diff": "--- \n\n+++ \n\n@@ -1,55 +1,55 @@\n\n push ebx\n push esi\n mov esi, dword ptr [esp + 0xc]\n push edi\n push ebp\n mov edi, 1\n-cmp dword ptr [<OFFSET1>], edi\n+cmp dword ptr [___mb_cur_max (UNK)], edi\n jle 0x11\n push 8\n xor eax, eax\n mov al, byte ptr [esi]\n push eax\n-call <OFFSET2>\n+call __isctype (UNK)\n add esp, 8\n jmp 0x13\n xor edx, edx\n-mov ecx, dword ptr [<OFFSET3>]\n+mov ecx, dword ptr [__pctype (UNK)]\n mov dl, byte ptr [esi]\n xor eax, eax\n mov ax, word ptr [ecx + edx*2]\n and eax, 8\n test eax, eax\n je 0x3\n inc esi\n jmp -0x33\n xor ebx, ebx\n mov bl, byte ptr [esi]\n inc esi\n mov edi, ebx\n cmp ebx, 0x2d\n je 0x5\n cmp ebx, 0x2b\n jne 0x5\n xor ebx, ebx\n mov bl, byte ptr [esi]\n inc esi\n xor ebp, ebp\n-cmp dword ptr [<OFFSET1>], 1\n+cmp dword ptr [___mb_cur_max (UNK)], 1\n jle 0xd\n push 4\n push ebx\n-call <OFFSET2>\n+call __isctype (UNK)\n add esp, 8\n jmp 0xf\n-mov ecx, dword ptr [<OFFSET3>]\n+mov ecx, dword ptr [__pctype (UNK)]\n xor eax, eax\n mov ax, word ptr [ecx + ebx*2]\n and eax, 4\n test eax, eax\n je 0x10\n lea eax, [ebp + ebp*4]\n inc esi\n lea ebp, [ebx + eax*2 - 0x30]\n xor ebx, ebx\n mov bl, byte ptr [esi - 1]"}, {"address": "0x1008b4b0", "name": "_atoi", "matching": 1.0, "diff": ""}, {"address": "0x1008b4c0", "name": "_strtok", "matching": 0.9887640449438202, "diff": "--- \n\n+++ \n\n@@ -1,17 +1,17 @@\n\n sub esp, 0x20\n push ebx\n push esi\n mov esi, dword ptr [esp + 0x30]\n push edi\n push ebp\n-call <OFFSET1>\n+call __getptd (UNK)\n mov ebp, eax\n lea edi, [esp + 0x10]\n xor eax, eax\n mov ecx, 8\n rep stosd dword ptr es:[edi], eax\n mov al, byte ptr [esi]\n xor ebx, ebx\n mov cl, al\n mov dl, 1\n shr cl, 3"}, {"address": "0x1008b5a0", "name": "_sprintf", "matching": 0.9411764705882353, "diff": "--- \n\n+++ \n\n@@ -4,31 +4,31 @@\n\n push esi\n mov dword ptr [esp + 0x10], 0x42\n mov dword ptr [esp + 0xc], eax\n push ecx\n mov dword ptr [esp + 8], eax\n lea eax, [esp + 8]\n mov dword ptr [esp + 0xc], 0x7fffffff\n mov edx, dword ptr [esp + 0x30]\n push edx\n push eax\n-call <OFFSET1>\n+call __output (UNK)\n add esp, 0xc\n mov esi, eax\n dec dword ptr [esp + 8]\n js 0x12\n mov eax, dword ptr [esp + 4]\n mov byte ptr [eax], 0\n mov eax, esi\n inc dword ptr [esp + 4]\n pop esi\n add esp, 0x20\n ret \n lea eax, [esp + 4]\n push eax\n push 0\n-call <OFFSET2>\n+call __flsbuf (UNK)\n add esp, 8\n mov eax, esi\n pop esi\n add esp, 0x20\n ret "}, {"address": "0x1008b608", "name": "__ftol", "matching": 1.0, "diff": ""}, {"address": "0x1008b630", "name": "_srand", "matching": 0.75, "diff": "--- \n\n+++ \n\n@@ -1,4 +1,4 @@\n\n-call <OFFSET1>\n+call __getptd (UNK)\n mov ecx, dword ptr [esp + 4]\n mov dword ptr [eax + 0x14], ecx\n ret "}, {"address": "0x1008b640", "name": "_rand", "matching": 0.9333333333333333, "diff": "--- \n\n+++ \n\n@@ -1,11 +1,11 @@\n\n-call <OFFSET1>\n+call __getptd (UNK)\n mov ecx, dword ptr [eax + 0x14]\n mov edx, ecx\n lea ecx, [ecx + ecx*4]\n lea ecx, [ecx + ecx*4]\n add ecx, edx\n lea ecx, [edx + ecx*8]\n shl ecx, 8\n sub ecx, edx\n lea ecx, [edx + ecx*4 + 0x269ec3]\n mov dword ptr [eax + 0x14], ecx"}, {"address": "0x1008b670", "name": "__purecall", "matching": 0.75, "diff": "--- \n\n+++ \n\n@@ -1,4 +1,4 @@\n\n push 0x19\n-call <OFFSET1>\n+call __amsg_exit (UNK)\n add esp, 4\n ret "}, {"address": "0x1008b680", "name": "_strncmp", "matching": 1.0, "diff": ""}, {"address": "0x1008b730", "name": "_fprintf", "matching": 0.8387096774193549, "diff": "--- \n\n+++ \n\n@@ -1,31 +1,31 @@\n\n push ebx\n push esi\n mov esi, dword ptr [esp + 0xc]\n push edi\n push esi\n-call <OFFSET1>\n+call __lock_file (UNK)\n add esp, 4\n push esi\n-call <OFFSET2>\n+call __stbuf (UNK)\n mov ecx, dword ptr [esp + 0x18]\n add esp, 4\n mov edi, eax\n lea eax, [esp + 0x18]\n push eax\n push ecx\n push esi\n-call <OFFSET3>\n+call __output (UNK)\n add esp, 0xc\n mov ebx, eax\n push esi\n push edi\n-call <OFFSET4>\n+call __ftbuf (UNK)\n add esp, 8\n push esi\n-call <OFFSET5>\n+call __unlock_file (UNK)\n add esp, 4\n mov eax, ebx\n pop edi\n pop esi\n pop ebx\n ret "}, {"address": "0x1008b780", "name": "_fwrite", "matching": 0.8695652173913043, "diff": "--- \n\n+++ \n\n@@ -1,23 +1,23 @@\n\n push esi\n push edi\n mov esi, dword ptr [esp + 0x18]\n push esi\n-call <OFFSET1>\n+call __lock_file (UNK)\n mov eax, dword ptr [esp + 0x18]\n mov ecx, dword ptr [esp + 0x14]\n mov edx, dword ptr [esp + 0x10]\n add esp, 4\n push esi\n push eax\n push ecx\n push edx\n-call <OFFSET2>\n+call __fwrite_lk (UNK)\n add esp, 0x10\n mov edi, eax\n push esi\n-call <OFFSET3>\n+call __unlock_file (UNK)\n add esp, 4\n mov eax, edi\n pop edi\n pop esi\n ret "}, {"address": "0x1008b950", "name": "_fread", "matching": 0.8695652173913043, "diff": "--- \n\n+++ \n\n@@ -1,23 +1,23 @@\n\n push esi\n push edi\n mov esi, dword ptr [esp + 0x18]\n push esi\n-call <OFFSET1>\n+call __lock_file (UNK)\n mov eax, dword ptr [esp + 0x18]\n mov ecx, dword ptr [esp + 0x14]\n mov edx, dword ptr [esp + 0x10]\n add esp, 4\n push esi\n push eax\n push ecx\n push edx\n-call <OFFSET2>\n+call __fread_lk (UNK)\n add esp, 0x10\n mov edi, eax\n push esi\n-call <OFFSET3>\n+call __unlock_file (UNK)\n add esp, 4\n mov eax, edi\n pop edi\n pop esi\n ret "}, {"address": "0x1008bbd0", "name": "_fclose", "matching": 0.88, "diff": "--- \n\n+++ \n\n@@ -3,23 +3,23 @@\n\n mov edi, 0xffffffff\n mov esi, dword ptr [esp + 0xc]\n test byte ptr [esi + 0xc], 0x40\n je 0xc\n mov dword ptr [esi + 0xc], 0\n mov eax, edi\n pop edi\n pop esi\n ret \n push esi\n-call <OFFSET1>\n+call __lock_file (UNK)\n add esp, 4\n push esi\n-call <OFFSET2>\n+call __fclose_lk (UNK)\n add esp, 4\n mov edi, eax\n push esi\n-call <OFFSET3>\n+call __unlock_file (UNK)\n add esp, 4\n mov eax, edi\n pop edi\n pop esi\n ret "}, {"address": "0x1008bdd0", "name": "_ftell", "matching": 0.8235294117647058, "diff": "--- \n\n+++ \n\n@@ -1,17 +1,17 @@\n\n push esi\n push edi\n mov esi, dword ptr [esp + 0xc]\n push esi\n-call <OFFSET1>\n+call __lock_file (UNK)\n add esp, 4\n push esi\n-call <OFFSET2>\n+call __ftell_lk (UNK)\n add esp, 4\n mov edi, eax\n push esi\n-call <OFFSET3>\n+call __unlock_file (UNK)\n add esp, 4\n mov eax, edi\n pop edi\n pop esi\n ret "}, {"address": "0x1008bff0", "name": "_fopen", "matching": 0.875, "diff": "--- \n\n+++ \n\n@@ -1,8 +1,8 @@\n\n mov eax, dword ptr [esp + 8]\n push 0x40\n mov ecx, dword ptr [esp + 8]\n push eax\n push ecx\n-call <OFFSET1>\n+call __fsopen (UNK)\n add esp, 0xc\n ret "}, {"address": "0x1008c010", "name": "_strncpy", "matching": 1.0, "diff": ""}, {"address": "0x1008c110", "name": "__strcmpi", "matching": 0.9047619047619048, "diff": "--- \n\n+++ \n\n@@ -1,18 +1,18 @@\n\n push ebp\n mov ebp, esp\n push edi\n push esi\n push ebx\n mov esi, dword ptr [ebp + 0xc]\n mov edi, dword ptr [ebp + 8]\n-lea eax, [0x100fd478]\n+lea eax, [0x10090668]\n cmp dword ptr [eax + 8], 0\n jne 0x3b\n mov al, 0xff\n mov eax, eax\n or al, al\n je 0x2e\n mov al, byte ptr [esi]\n inc esi\n mov ah, byte ptr [edi]\n inc edi\n@@ -30,55 +30,55 @@\n\n sbb cl, cl\n and cl, 0x20\n add al, cl\n add al, 0x41\n cmp al, ah\n je -0x2e\n sbb al, al\n sbb al, 0xff\n movsx eax, al\n jmp 0x6f\n-cmp dword ptr [<OFFSET1>], 0\n+cmp dword ptr [___setlc_active (UNK)], 0\n jg 0xa\n-inc dword ptr [<OFFSET2>]\n+inc dword ptr [___unguarded_readlc_active (UNK)]\n push 0\n jmp 0xe\n push 0x13\n-call <OFFSET3>\n+call __lock (UNK)\n mov dword ptr [esp], 1\n mov eax, 0xff\n xor ebx, ebx\n nop \n or al, al\n je 0x27\n mov al, byte ptr [esi]\n inc esi\n mov bl, byte ptr [edi]\n inc edi\n cmp al, bl\n je -0xe\n push eax\n push ebx\n-call <OFFSET4>\n+call __tolower_lk (UNK)\n mov ebx, eax\n add esp, 4\n-call <OFFSET4>\n+call __tolower_lk (UNK)\n add esp, 4\n cmp bl, al\n je -0x26\n sbb eax, eax\n sbb eax, -1\n mov ebx, eax\n pop eax\n or eax, eax\n jne 0x8\n-dec dword ptr [<OFFSET2>]\n+dec dword ptr [___unguarded_readlc_active (UNK)]\n jmp 0xa\n push 0x13\n-call <OFFSET5>\n+call __unlock (UNK)\n add esp, 4\n mov eax, ebx\n pop ebx\n pop esi\n pop edi\n leave \n ret "}, {"address": "0x1008c1e0", "name": "__spawnl", "matching": 0.9, "diff": "--- \n\n+++ \n\n@@ -1,10 +1,10 @@\n\n lea eax, [esp + 0xc]\n push 0\n mov ecx, dword ptr [esp + 0xc]\n push eax\n mov edx, dword ptr [esp + 0xc]\n push ecx\n push edx\n-call <OFFSET1>\n+call __spawnve (UNK)\n add esp, 0x10\n ret "}, {"address": "0x1008c200", "name": "_sscanf", "matching": 0.9565217391304348, "diff": "--- \n\n+++ \n\n@@ -9,15 +9,15 @@\n\n repne scasb al, byte ptr es:[edi]\n not ecx\n dec ecx\n lea eax, [esp + 0x30]\n mov dword ptr [esp + 8], ecx\n push eax\n mov edx, dword ptr [esp + 0x30]\n lea ecx, [esp + 8]\n push edx\n push ecx\n-call <OFFSET1>\n+call __input (UNK)\n add esp, 0xc\n pop edi\n add esp, 0x20\n ret "}, {"address": "0x1008c410", "name": "_strlwr", "matching": 0.9312977099236641, "diff": "--- \n\n+++ \n\n@@ -20,38 +20,38 @@\n\n inc eax\n cmp byte ptr [eax], 0\n jne -0x17\n mov eax, ebx\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret \n-cmp dword ptr [<OFFSET2>], 0\n+cmp dword ptr [___setlc_active (UNK)], 0\n je 0x14\n push 0x13\n-call <OFFSET3>\n+call __lock (UNK)\n mov dword ptr [esp + 0x14], 1\n add esp, 4\n jmp 0xe\n mov dword ptr [esp + 0x10], 0\n-inc dword ptr [<OFFSET4>]\n+inc dword ptr [___unguarded_readlc_active (UNK)]\n cmp dword ptr [<OFFSET1>], 0\n jne 0x45\n cmp dword ptr [esp + 0x10], 0\n je 0xc\n push 0x13\n-call <OFFSET5>\n+call __unlock (UNK)\n add esp, 4\n jmp 0x6\n-dec dword ptr [<OFFSET4>]\n+dec dword ptr [___unguarded_readlc_active (UNK)]\n mov ebx, dword ptr [esp + 0x18]\n mov eax, ebx\n cmp byte ptr [ebx], 0\n je 0x17\n mov cl, byte ptr [eax]\n cmp cl, 0x41\n jl 0xa\n cmp cl, 0x5a\n jg 0x5\n add cl, 0x20\n@@ -68,64 +68,64 @@\n\n ret \n mov ebx, dword ptr [esp + 0x18]\n push 0\n push 0\n mov eax, dword ptr [<OFFSET1>]\n push 0\n push -1\n push ebx\n push 0x100\n push eax\n-call <OFFSET6>\n+call ___crtLCMapStringA (UNK)\n add esp, 0x1c\n mov esi, eax\n test esi, esi\n je 0x4e\n push esi\n call _malloc (FUNCTION)\n add esp, 4\n mov ebp, eax\n test ebp, ebp\n je 0x3f\n push 0\n mov eax, dword ptr [<OFFSET1>]\n push esi\n push ebp\n push -1\n push ebx\n push 0x100\n push eax\n-call <OFFSET6>\n+call ___crtLCMapStringA (UNK)\n add esp, 0x1c\n test eax, eax\n je 0x21\n mov edi, ebp\n mov ecx, 0xffffffff\n sub eax, eax\n repne scasb al, byte ptr es:[edi]\n not ecx\n sub edi, ecx\n mov eax, ecx\n shr ecx, 2\n mov esi, edi\n mov edi, ebx\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n cmp dword ptr [esp + 0x10], 0\n je 0xc\n push 0x13\n-call <OFFSET5>\n+call __unlock (UNK)\n add esp, 4\n jmp 0x6\n-dec dword ptr [<OFFSET4>]\n+dec dword ptr [___unguarded_readlc_active (UNK)]\n push ebp\n call _free (FUNCTION)\n add esp, 4\n mov eax, ebx\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret "}, {"address": "0x1008c5c0", "name": "_fseek", "matching": 0.8571428571428571, "diff": "--- \n\n+++ \n\n@@ -1,21 +1,21 @@\n\n push esi\n push edi\n mov edi, dword ptr [esp + 0xc]\n push edi\n-call <OFFSET1>\n+call __lock_file (UNK)\n mov eax, dword ptr [esp + 0x18]\n mov ecx, dword ptr [esp + 0x14]\n add esp, 4\n push eax\n push ecx\n push edi\n-call <OFFSET2>\n+call __fseek_lk (UNK)\n add esp, 0xc\n mov esi, eax\n push edi\n-call <OFFSET3>\n+call __unlock_file (UNK)\n add esp, 4\n mov eax, esi\n pop edi\n pop esi\n ret "}, {"address": "0x1008c860", "name": "__DllMainCRTStartup@12", "matching": 0.9431818181818182, "diff": "--- \n\n+++ \n\n@@ -11,38 +11,38 @@\n\n xor eax, eax\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret 0xc\n cmp ebx, 1\n je 0x5\n cmp ebx, 2\n jne 0x3a\n-mov ecx, dword ptr [<OFFSET2>]\n+mov ecx, dword ptr [__pRawDllMain (UNK)]\n test ecx, ecx\n je 0xf\n mov edi, dword ptr [esp + 0x1c]\n mov esi, dword ptr [esp + 0x14]\n push edi\n push ebx\n push esi\n call ecx\n jmp 0x8\n mov esi, dword ptr [esp + 0x14]\n mov edi, dword ptr [esp + 0x1c]\n test eax, eax\n je 0xc\n push edi\n push ebx\n push esi\n-call <OFFSET3>\n+call __CRT_INIT@12 (FUNCTION)\n test eax, eax\n jne 0x11\n xor eax, eax\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret 0xc\n mov esi, dword ptr [esp + 0x14]\n mov edi, dword ptr [esp + 0x1c]\n@@ -51,35 +51,35 @@\n\n push esi\n call DllMain (FUNCTION)\n mov ebp, eax\n cmp ebx, 1\n jne 0xd\n test ebp, ebp\n jne 0x9\n push edi\n push 0\n push esi\n-call <OFFSET3>\n+call __CRT_INIT@12 (FUNCTION)\n test ebx, ebx\n je 0x5\n cmp ebx, 3\n jne 0x22\n push edi\n push ebx\n push esi\n-call <OFFSET3>\n+call __CRT_INIT@12 (FUNCTION)\n test eax, eax\n jne 0x2\n xor ebp, ebp\n test ebp, ebp\n je 0x10\n-mov eax, dword ptr [<OFFSET2>]\n+mov eax, dword ptr [__pRawDllMain (UNK)]\n test eax, eax\n je 0x7\n push edi\n push ebx\n push esi\n call eax\n mov ebp, eax\n mov eax, ebp\n pop ebp\n pop edi"}, {"address": "0x1008ca60", "name": "_abort", "matching": 0.7, "diff": "--- \n\n+++ \n\n@@ -1,10 +1,10 @@\n\n push 0xa\n-call <OFFSET1>\n+call __NMSG_WRITE (UNK)\n add esp, 4\n push 0x16\n-call <OFFSET2>\n+call _raise (UNK)\n add esp, 4\n push 3\n-call <OFFSET3>\n+call __exit (UNK)\n add esp, 4\n ret "}, {"address": "0x10091ee0", "name": "DllMain", "matching": 1.0, "diff": ""}, {"address": "0x100977c0", "name": "_itoa", "matching": 1.0, "diff": ""}, {"address": "0x10097b10", "name": "_strchr", "matching": 1.0, "diff": ""}, {"address": "0x10099080", "name": "LegoMemory::LegoMemory", "matching": 1.0, "diff": ""}, {"address": "0x100990f0", "name": "LegoMemory::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10099160", "name": "LegoMemory::Read", "matching": 1.0, "diff": ""}, {"address": "0x10099190", "name": "LegoMemory::Write", "matching": 1.0, "diff": ""}, {"address": "0x100991c0", "name": "LegoFile::LegoFile", "matching": 1.0, "diff": ""}, {"address": "0x10099230", "name": "LegoFile::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10099250", "name": "LegoFile::~LegoFile", "matching": 1.0, "diff": ""}, {"address": "0x100992c0", "name": "LegoFile::Read", "matching": 1.0, "diff": ""}, {"address": "0x10099300", "name": "LegoFile::Write", "matching": 1.0, "diff": ""}, {"address": "0x10099340", "name": "LegoFile::GetPosition", "matching": 1.0, "diff": ""}, {"address": "0x10099370", "name": "LegoFile::SetPosition", "matching": 1.0, "diff": ""}, {"address": "0x100993a0", "name": "LegoFile::Open", "matching": 1.0, "diff": ""}, {"address": "0x100994a0", "name": "LegoMemory::GetPosition", "matching": 1.0, "diff": ""}, {"address": "0x100994b0", "name": "LegoMemory::SetPosition", "matching": 1.0, "diff": ""}, {"address": "0x10099870", "name": "GifManager::~GifManager", "matching": 1.0, "diff": ""}, {"address": "0x10099cc0", "name": "GifManager::FUN_10099cc0", "matching": 0.9818181818181818, "diff": "--- \n\n+++ \n\n@@ -15,21 +15,21 @@\n\n je 0x12\n mov edx, dword ptr [eax]\n mov dword ptr [esp + 8], edx\n cmp edx, ecx\n jne -0x13\n pop edi\n pop esi\n add esp, 4\n ret 4\n mov eax, dword ptr [esp + 8]\n-mov dword ptr [eax + 0xc], 0\n+mov dword ptr [eax + 8], 0\n mov eax, dword ptr [edi + 0xc]\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 8]\n cmp eax, 1\n jne 0x39\n test edi, edi\n je 0x10\n mov ecx, edi\n call GifData::~GifData (FUNCTION)"}, {"address": "0x10099d60", "name": "LegoTreeNode::LegoTreeNode", "matching": 1.0, "diff": ""}, {"address": "0x10099d80", "name": "LegoTreeNode::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10099da0", "name": "LegoTreeNode::~LegoTreeNode", "matching": 1.0, "diff": ""}, {"address": "0x10099dd0", "name": "LegoTree::LegoTree", "matching": 1.0, "diff": ""}, {"address": "0x10099de0", "name": "LegoTree::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x10099e00", "name": "LegoTree::~LegoTree", "matching": 1.0, "diff": ""}, {"address": "0x10099e20", "name": "LegoTree::Read", "matching": 1.0, "diff": ""}, {"address": "0x10099e40", "name": "LegoTree::Write", "matching": 1.0, "diff": ""}, {"address": "0x10099e60", "name": "LegoTree::Read", "matching": 0.9789473684210527, "diff": "--- \n\n+++ \n\n@@ -68,22 +68,22 @@\n\n test eax, eax\n jne 0x1c\n mov eax, dword ptr [esi]\n add edi, 4\n inc ebx\n inc dword ptr [eax + 8]\n mov ecx, dword ptr [ebp - 0x18]\n mov eax, dword ptr [esi]\n mov edx, dword ptr [eax + 0xc]\n mov dword ptr [edx + edi - 4], ecx\n-cmp dword ptr [ebp - 0x10], ebx\n-ja -0x2e\n+cmp ebx, dword ptr [ebp - 0x10]\n+jb -0x2e\n xor eax, eax\n mov ecx, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], ecx\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 8\n mov eax, <OFFSET5>"}, {"address": "0x10099f70", "name": "LegoTree::CreateData", "matching": 1.0, "diff": ""}, {"address": "0x10099fe0", "name": "LegoTreeNodeData::Read", "matching": 1.0, "diff": ""}, {"address": "0x10099ff0", "name": "LegoTreeNodeData::Write", "matching": 1.0, "diff": ""}, {"address": "0x1009a000", "name": "LegoTreeNodeData::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1009a020", "name": "LegoTree::Write", "matching": 1.0, "diff": ""}, {"address": "0x1009a0a0", "name": "LegoTree::Delete", "matching": 0.7586206896551724, "diff": "--- \n\n+++ \n\n@@ -1,26 +1,26 @@\n\n push ebx\n push esi\n push edi\n-mov esi, ecx\n+xor esi, esi\n push ebp\n-xor edi, edi\n+mov edi, ecx\n xor ebp, ebp\n mov ebx, dword ptr [esp + 0x14]\n-cmp dword ptr [ebx + 8], edi\n+cmp dword ptr [ebx + 8], ebp\n jbe 0x15\n mov eax, dword ptr [ebx + 0xc]\n-add ebp, 4\n-inc edi\n-mov ecx, dword ptr [eax + ebp - 4]\n+add esi, 4\n+inc ebp\n+mov ecx, dword ptr [eax + esi - 4]\n push ecx\n-mov ecx, esi\n+mov ecx, edi\n call LegoTree::Delete (FUNCTION)\n jmp -0x1a\n test ebx, ebx\n je 0x8\n push 1\n mov eax, dword ptr [ebx]\n mov ecx, ebx\n call dword ptr [eax]\n pop ebp\n pop edi"}, {"address": "0x1009b0a0", "name": "MxDirect3D::MxDirect3D", "matching": 1.0, "diff": ""}, {"address": "0x1009b120", "name": "MxDirect3D::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1009b140", "name": "MxDirect3D::~MxDirect3D", "matching": 1.0, "diff": ""}, {"address": "0x1009b1a0", "name": "MxDirect3D::Create", "matching": 1.0, "diff": ""}, {"address": "0x1009b210", "name": "MxDirect3D::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1009b290", "name": "MxDirect3D::DestroyButNotDirectDraw", "matching": 1.0, "diff": ""}, {"address": "0x1009b2d0", "name": "MxDirect3D::CreateIDirect3D", "matching": 0.9523809523809523, "diff": "--- \n\n+++ \n\n@@ -1,16 +1,16 @@\n\n push esi\n mov eax, dword ptr [ecx + 0xc]\n mov esi, ecx\n lea ecx, [ecx + 0x884]\n push ecx\n-push <OFFSET1>\n+push IID_IDirect3D2 (DATA)\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax]\n test eax, eax\n je 0x11\n push eax\n mov ecx, esi\n push 'Creation of IDirect3D failed' (STRING)\n call MxDirectDraw::Error (FUNCTION)\n xor eax, eax"}, {"address": "0x1009b310", "name": "MxDirect3D::D3DSetMode", "matching": 0.971830985915493, "diff": "--- \n\n+++ \n\n@@ -128,26 +128,26 @@\n\n mov dword ptr [esp + 0x34], 0x6c\n mov eax, dword ptr [ecx]\n push edx\n mov dword ptr [esp + 0x24], eax\n push 0\n push ecx\n call dword ptr [eax + 0x64]\n test eax, eax\n jne 0x4d\n mov edx, dword ptr [esp + 0x50]\n+mov dword ptr [esp + 0x28], ebx\n test ebx, ebx\n-jle 0x2f\n-mov dword ptr [esp + 0x28], ebx\n-mov ebp, dword ptr [esp + 0x80]\n+jle 0x2b\n+mov ebp, dword ptr [esp + 0x1c]\n mov edi, edx\n-imul ebp, dword ptr [esp + 0x1c]\n+imul ebp, dword ptr [esp + 0x80]\n shr ebp, 3\n xor eax, eax\n mov ecx, ebp\n shr ecx, 2\n rep stosd dword ptr es:[edi], eax\n mov ecx, ebp\n and ecx, 3\n rep stosb byte ptr es:[edi], al\n add edx, dword ptr [esp + 0x3c]\n dec dword ptr [esp + 0x28]\n@@ -175,23 +175,23 @@\n\n lea ecx, [esp + 0x34]\n push ecx\n push 0\n push eax\n call dword ptr [esi + 0x64]\n test eax, eax\n jne 0x42\n mov edx, dword ptr [esp + 0x50]\n test ebx, ebx\n jle 0x28\n-mov ebp, dword ptr [esp + 0x80]\n+mov ebp, dword ptr [esp + 0x1c]\n mov edi, edx\n-imul ebp, dword ptr [esp + 0x1c]\n+imul ebp, dword ptr [esp + 0x80]\n shr ebp, 3\n xor eax, eax\n mov ecx, ebp\n shr ecx, 2\n rep stosd dword ptr es:[edi], eax\n mov ecx, ebp\n and ecx, 3\n rep stosb byte ptr es:[edi], al\n add edx, dword ptr [esp + 0x3c]\n dec ebx"}, {"address": "0x1009b5a0", "name": "MxDirect3D::GetZBufferBitDepth", "matching": 1.0, "diff": ""}, {"address": "0x1009b5f0", "name": "MxDirect3D::SetDevice", "matching": 0.9397590361445783, "diff": "--- \n\n+++ \n\n@@ -35,25 +35,25 @@\n\n mov ebx, eax\n mov eax, dword ptr [ebp + 8]\n mov dword ptr [ebp - 0x24], 0\n mov ecx, dword ptr [eax + 8]\n mov dword ptr [ebp - 4], 0xffffffff\n mov edx, dword ptr [ecx]\n mov dword ptr [ebp - 0x20], edx\n mov ecx, dword ptr [ebp - 0x20]\n mov eax, dword ptr [ebp + 8]\n cmp dword ptr [eax + 8], ecx\n-je 0x1b5\n+je 0x1b3\n lea eax, [ecx + 8]\n mov dword ptr [ebp - 0x10], eax\n cmp eax, dword ptr [ebp + 0xc]\n-jne 0x196\n+jne 0x194\n push 0x17c\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x28], eax\n add esp, 4\n mov esi, eax\n mov edi, 0\n mov dword ptr [ebp - 4], 1\n test esi, esi\n je 0x9\n mov ecx, esi\n@@ -80,55 +80,54 @@\n\n mov dword ptr [edx + 8], edi\n mov ecx, dword ptr [ecx + 0xc]\n mov dword ptr [edx + 0xc], ecx\n mov edx, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebx + 0xe0]\n mov eax, dword ptr [edx + 0x18c]\n mov dword ptr [ecx + 8], eax\n mov esi, dword ptr [ebx + 0xe0]\n mov eax, dword ptr [esi + 8]\n test eax, eax\n-jle 0x71\n+jle 0x6f\n lea eax, [eax + eax*2]\n shl eax, 2\n push eax\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov edx, dword ptr [ebp - 0x10]\n mov dword ptr [esi + 4], eax\n mov eax, dword ptr [edx + 0x188]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x14], ecx\n-cmp eax, ecx\n-je 0x4d\n+cmp ecx, eax\n+je 0x4b\n xor ecx, ecx\n mov eax, dword ptr [ebp - 0x14]\n mov esi, dword ptr [ebx + 0xe0]\n mov edx, dword ptr [eax + 8]\n mov eax, dword ptr [esi + 4]\n mov edi, dword ptr [ebp - 0x14]\n add ecx, 0xc\n mov dword ptr [eax + ecx - 0xc], edx\n mov edx, dword ptr [edi + 0xc]\n mov esi, dword ptr [ebx + 0xe0]\n mov eax, dword ptr [esi + 4]\n mov dword ptr [eax + ecx - 8], edx\n mov edx, dword ptr [edi + 0x10]\n mov esi, dword ptr [ebx + 0xe0]\n mov eax, dword ptr [esi + 4]\n mov dword ptr [eax + ecx - 4], edx\n-mov edx, dword ptr [edi]\n-mov edi, edx\n-mov dword ptr [ebp - 0x14], edx\n-mov edx, dword ptr [ebp - 0x10]\n-cmp dword ptr [edx + 0x188], edi\n-jne -0x4b\n+mov eax, dword ptr [edi]\n+mov edx, dword ptr [ebp - 0x10]\n+mov dword ptr [ebp - 0x14], eax\n+cmp dword ptr [edx + 0x188], eax\n+jne -0x49\n mov esi, dword ptr [ebp - 0x10]\n mov edi, dword ptr [ebx + 0xe0]\n add esi, 0xc\n add edi, 0xc\n mov ecx, 0x5b\n rep movsd dword ptr es:[edi], dword ptr [esi]\n cmp dword ptr [ebp - 0x24], 0\n jne 0x4\n or dword ptr [ebx + 0x10], 2\n mov edx, dword ptr [ebp - 0x10]\n@@ -166,21 +165,21 @@\n\n mov ecx, 0x33\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov eax, dword ptr [ebp - 0x18]\n mov dword ptr [eax + 0x880], ebx\n mov ecx, dword ptr [ebx + 0xe0]\n mov dword ptr [eax + 0x870], ecx\n mov eax, dword ptr [ebp - 0x20]\n inc dword ptr [ebp - 0x24]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x20], ecx\n-jmp -0x1c4\n+jmp -0x1c2\n mov eax, dword ptr [ebp - 0x18]\n cmp dword ptr [eax + 0x880], 0\n jne 0x29\n test ebx, ebx\n je 0x10\n mov ecx, ebx\n call MxAssignedDevice::~MxAssignedDevice (FUNCTION)\n push ebx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n@@ -198,10 +197,12 @@\n\n mov eax, dword ptr [ebp - 0x28]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n mov eax, <OFFSET7>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret "}, {"address": "0x1009b8b0", "name": "MxAssignedDevice::MxAssignedDevice", "matching": 1.0, "diff": ""}, {"address": "0x1009b8d0", "name": "MxAssignedDevice::~MxAssignedDevice", "matching": 1.0, "diff": ""}, {"address": "0x1009b900", "name": "list<MxDevice,allocator<MxDevice> >::~list<MxDevice,allocator<MxDevice> >", "matching": 0.975, "diff": "--- \n\n+++ \n\n@@ -19,21 +19,21 @@\n\n mov eax, dword ptr [esp + 8]\n mov edx, dword ptr [eax]\n mov dword ptr [edx + 4], ecx\n lea ecx, [eax + 8]\n call MxDevice::~MxDevice (FUNCTION)\n mov ecx, dword ptr [esp + 8]\n push ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 8]\n-cmp dword ptr [esp + 0x10], edi\n+cmp edi, dword ptr [esp + 0x10]\n jne -0x3a\n mov eax, dword ptr [esi + 4]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [esi + 4], 0\n add esp, 4\n mov dword ptr [esi + 8], 0\n pop edi\n pop esi\n add esp, 0xc"}, {"address": "0x1009b970", "name": "list<MxDisplayMode,allocator<MxDisplayMode> >::~list<MxDisplayMode,allocator<MxDisplayMode> >", "matching": 0.972972972972973, "diff": "--- \n\n+++ \n\n@@ -16,21 +16,21 @@\n\n mov eax, dword ptr [eax]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [edx]\n mov eax, dword ptr [esp + 8]\n push eax\n mov edx, dword ptr [eax]\n mov dword ptr [edx + 4], ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 8]\n-cmp dword ptr [esp + 0x10], edi\n+cmp edi, dword ptr [esp + 0x10]\n jne -0x2e\n mov eax, dword ptr [esi + 4]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [esi + 4], 0\n add esp, 4\n mov dword ptr [esi + 8], 0\n pop edi\n pop esi\n add esp, 0xc"}, {"address": "0x1009b9e0", "name": "List<MxDevice>::~List<MxDevice>", "matching": 1.0, "diff": ""}, {"address": "0x1009ba30", "name": "List<MxDisplayMode>::~List<MxDisplayMode>", "matching": 1.0, "diff": ""}, {"address": "0x1009ba80", "name": "MxDriver::MxDriver", "matching": 1.0, "diff": ""}, {"address": "0x1009bb80", "name": "MxDriver::~MxDriver", "matching": 1.0, "diff": ""}, {"address": "0x1009bc30", "name": "MxDriver::Init", "matching": 1.0, "diff": ""}, {"address": "0x1009bd20", "name": "MxDevice::MxDevice", "matching": 1.0, "diff": ""}, {"address": "0x1009bd60", "name": "MxDevice::~MxDevice", "matching": 1.0, "diff": ""}, {"address": "0x1009bda0", "name": "MxDevice::Init", "matching": 1.0, "diff": ""}, {"address": "0x1009bec0", "name": "MxDeviceEnumerate::MxDeviceEnumerate", "matching": 1.0, "diff": ""}, {"address": "0x1009bf50", "name": "list<MxDriver,allocator<MxDriver> >::~list<MxDriver,allocator<MxDriver> >", "matching": 0.975, "diff": "--- \n\n+++ \n\n@@ -19,21 +19,21 @@\n\n mov eax, dword ptr [esp + 8]\n mov edx, dword ptr [eax]\n mov dword ptr [edx + 4], ecx\n lea ecx, [eax + 8]\n call MxDriver::~MxDriver (FUNCTION)\n mov ecx, dword ptr [esp + 8]\n push ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 8]\n-cmp dword ptr [esp + 0x10], edi\n+cmp edi, dword ptr [esp + 0x10]\n jne -0x3a\n mov eax, dword ptr [esi + 4]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [esi + 4], 0\n add esp, 4\n mov dword ptr [esi + 8], 0\n pop edi\n pop esi\n add esp, 0xc"}, {"address": "0x1009bfc0", "name": "List<MxDriver>::~List<MxDriver>", "matching": 1.0, "diff": ""}, {"address": "0x1009c010", "name": "MxDeviceEnumerate::~MxDeviceEnumerate", "matching": 1.0, "diff": ""}, {"address": "0x1009c070", "name": "MxDeviceEnumerate::EnumDirectDrawCallback", "matching": 0.925207756232687, "diff": "--- \n\n+++ \n\n@@ -45,41 +45,41 @@\n\n call MxDriver::MxDriver (FUNCTION)\n xor ebx, ebx\n lea edi, [ebp - 0x19c]\n xor eax, eax\n inc dword ptr [esi + 0xc]\n mov ecx, 0x5b\n mov dword ptr [ebp - 0x1a8], ebx\n mov dword ptr [ebp - 0x1a4], ebx\n mov dword ptr [ebp - 0x1a0], ebx\n rep stosd dword ptr es:[edi], eax\n+mov eax, dword ptr [esi + 8]\n+mov dword ptr [ebp - 0x10], ebx\n+push ebx\n mov dword ptr [ebp - 0x18], ebx\n-mov eax, dword ptr [esi + 8]\n-push ebx\n-mov dword ptr [ebp - 0x10], ebx\n mov edi, dword ptr [eax + 4]\n lea eax, [ebp - 0x10]\n mov ecx, dword ptr [edi + 8]\n add edi, 8\n push eax\n push ecx\n call _DirectDrawCreate@12 (FUNCTION)\n test eax, eax\n je 0x1b\n push eax\n mov ecx, esi\n call MxDeviceEnumerate::EnumerateErrorToString (FUNCTION)\n push eax\n push 'DirectDraw Create failed: %s\\n' (STRING)\n call MxDeviceEnumerate::BuildErrorString (FUNCTION)\n add esp, 8\n-jmp 0xde\n+jmp 0xd9\n push MxDeviceEnumerate::DisplayModesEnumerateCallback (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push esi\n push 0\n push 0\n mov ebx, dword ptr [eax]\n push eax\n call dword ptr [ebx + 0x20]\n lea eax, [edi + 0xc]\n push 0\n@@ -91,69 +91,67 @@\n\n call dword ptr [eax + 0x2c]\n test eax, eax\n je 0x1b\n push eax\n mov ecx, esi\n call MxDeviceEnumerate::EnumerateErrorToString (FUNCTION)\n push eax\n push 'GetCaps failed: %s\\n' (STRING)\n call MxDeviceEnumerate::BuildErrorString (FUNCTION)\n add esp, 8\n-jmp 0x97\n+jmp 0x92\n lea eax, [ebp - 0x18]\n mov ecx, dword ptr [ebp - 0x10]\n push eax\n-push <OFFSET11>\n+push IID_IDirect3D2 (DATA)\n push ecx\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n test eax, eax\n je 0x18\n push eax\n mov ecx, esi\n call MxDeviceEnumerate::EnumerateErrorToString (FUNCTION)\n push eax\n push 'D3D creation failed: %s\\n' (STRING)\n call MxDeviceEnumerate::BuildErrorString (FUNCTION)\n add esp, 8\n-jmp 0x6a\n+jmp 0x65\n push esi\n mov eax, dword ptr [ebp - 0x18]\n mov ebx, dword ptr [eax]\n push MxDeviceEnumerate::DevicesEnumerateCallback (FUNCTION)\n push eax\n call dword ptr [ebx + 0xc]\n test eax, eax\n je 0x18\n push eax\n mov ecx, esi\n call MxDeviceEnumerate::EnumerateErrorToString (FUNCTION)\n push eax\n push 'D3D enum devices failed: %s\\n' (STRING)\n call MxDeviceEnumerate::BuildErrorString (FUNCTION)\n add esp, 8\n-jmp 0x3f\n+jmp 0x3a\n cmp dword ptr [edi + 0x180], 0\n-jne 0x36\n+jne 0x31\n mov eax, dword ptr [esi + 8]\n mov ecx, dword ptr [eax + 4]\n mov dword ptr [ebp - 0x14], ecx\n lea edx, [ecx + 4]\n+mov ebx, dword ptr [edx]\n mov eax, dword ptr [ecx]\n-mov ebx, dword ptr [edx]\n+add ecx, 8\n mov dword ptr [ebx], eax\n mov ebx, dword ptr [edx]\n-mov ecx, dword ptr [ebp - 0x14]\n-mov eax, dword ptr [ecx]\n+mov eax, dword ptr [ecx - 8]\n mov dword ptr [eax + 4], ebx\n-mov ecx, dword ptr [ebp - 0x14]\n-add ecx, 8\n call MxDriver::~MxDriver (FUNCTION)\n mov ecx, dword ptr [ebp - 0x14]\n push ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 0xc]\n cmp dword ptr [ebp - 0x18], 0\n je 0x9\n mov eax, dword ptr [ebp - 0x18]\n push eax\n@@ -172,10 +170,11 @@\n\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 0xc\n mov eax, <OFFSET18>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x1a8]\n+jmp MxDriver::~MxDriver (FUNCTION)"}, {"address": "0x1009c290", "name": "MxDriver::MxDriver", "matching": 0.9818181818181818, "diff": "--- \n\n+++ \n\n@@ -32,21 +32,21 @@\n\n mov dword ptr [eax], eax\n mov dword ptr [eax + 4], eax\n mov dword ptr [ebx + 0x180], 0\n mov dword ptr [ebx + 0x17c], eax\n mov ecx, dword ptr [esi + 4]\n mov edx, dword ptr [eax]\n mov dword ptr [ebp - 0x14], ecx\n mov dword ptr [ebp - 0x1c], edx\n mov eax, dword ptr [ecx]\n mov esi, eax\n-cmp eax, ecx\n+cmp ecx, eax\n je 0x1e\n lea eax, [esi + 8]\n mov ecx, dword ptr [ebp - 0x1c]\n push eax\n lea edx, [ebp - 0x10]\n push ecx\n push edx\n lea ecx, [ebx + 0x178]\n call list<MxDevice,allocator<MxDevice> >::insert (FUNCTION)\n mov esi, dword ptr [esi]\n@@ -75,21 +75,21 @@\n\n je 0x1a\n lea eax, [edi + 8]\n mov ecx, dword ptr [ebp - 0x1c]\n push eax\n lea edx, [ebp - 0x10]\n push ecx\n push edx\n mov ecx, esi\n call list<MxDisplayMode,allocator<MxDisplayMode> >::insert (FUNCTION)\n mov edi, dword ptr [edi]\n-cmp edi, dword ptr [ebp - 0x14]\n+cmp dword ptr [ebp - 0x14], edi\n jne -0x1a\n mov eax, ebx\n pop edi\n mov dword ptr [ebp - 4], 0xffffffff\n mov ecx, dword ptr [ebp - 0xc]\n pop esi\n mov dword ptr fs:[0], ecx\n pop ebx\n mov esp, ebp\n pop ebp"}, {"address": "0x1009c400", "name": "list<MxDevice,allocator<MxDevice> >::insert", "matching": 1.0, "diff": ""}, {"address": "0x1009c460", "name": "list<MxDisplayMode,allocator<MxDisplayMode> >::insert", "matching": 1.0, "diff": ""}, {"address": "0x1009c4c0", "name": "MxDeviceEnumerate::BuildErrorString", "matching": 1.0, "diff": ""}, {"address": "0x1009c4f0", "name": "MxDeviceEnumerate::DisplayModesEnumerateCallback", "matching": 1.0, "diff": ""}, {"address": "0x1009c510", "name": "MxDeviceEnumerate::DevicesEnumerateCallback", "matching": 1.0, "diff": ""}, {"address": "0x1009c540", "name": "MxDeviceEnumerate::EnumDisplayModesCallback", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -7,34 +7,34 @@\n\n push edi\n mov edx, dword ptr [edx + 0x54]\n mov dword ptr [esp + 0x10], eax\n mov dword ptr [esp + 0x14], ebx\n mov eax, dword ptr [ecx + 8]\n mov dword ptr [esp + 0x18], edx\n push 0x14\n mov esi, dword ptr [eax + 4]\n mov eax, dword ptr [esi + 0x190]\n add esi, 0x18c\n-lea ebx, [eax + 4]\n+lea edi, [eax + 4]\n mov dword ptr [esp + 0x10], eax\n-mov edi, dword ptr [ebx]\n+mov ebx, dword ptr [edi]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n-test edi, edi\n+test ebx, ebx\n je 0xb\n mov ecx, dword ptr [esp + 0xc]\n mov dword ptr [eax], ecx\n-mov dword ptr [eax + 4], edi\n+mov dword ptr [eax + 4], ebx\n jmp 0x5\n mov dword ptr [eax], eax\n mov dword ptr [eax + 4], eax\n-mov dword ptr [ebx], eax\n+mov dword ptr [edi], eax\n mov ecx, dword ptr [eax + 4]\n mov dword ptr [ecx], eax\n add eax, 8\n je 0x15\n mov ebx, dword ptr [esp + 0x14]\n lea edx, [esp + 0x10]\n mov ecx, dword ptr [edx]\n mov edx, dword ptr [edx + 8]\n mov dword ptr [eax], ecx\n mov dword ptr [eax + 4], ebx"}, {"address": "0x1009c5d0", "name": "MxDeviceEnumerate::EnumDevicesCallback", "matching": 1.0, "diff": ""}, {"address": "0x1009c6c0", "name": "MxDeviceEnumerate::DoEnumerate", "matching": 1.0, "diff": ""}, {"address": "0x1009c710", "name": "MxDeviceEnumerate::DirectDrawEnumerateCallback", "matching": 1.0, "diff": ""}, {"address": "0x1009ce60", "name": "MxDeviceEnumerate::ParseDeviceName", "matching": 1.0, "diff": ""}, {"address": "0x1009cf20", "name": "MxDeviceEnumerate::ProcessDeviceBytes", "matching": 0.774869109947644, "diff": "--- \n\n+++ \n\n@@ -6,50 +6,50 @@\n\n push ebp\n jne 0xf\n mov eax, 0xffffffff\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 0x28\n ret 8\n mov ebx, dword ptr [esp + 0x40]\n-lea edi, [esp + 0x28]\n+lea edi, [esp + 0x18]\n xor esi, esi\n xor eax, eax\n mov edx, dword ptr [ebx]\n mov ebp, dword ptr [ebx + 4]\n mov dword ptr [edi], edx\n mov edx, dword ptr [ebx + 8]\n mov ebx, dword ptr [ebx + 0xc]\n mov dword ptr [edi + 4], ebp\n mov dword ptr [edi + 8], edx\n mov edx, dword ptr [ecx + 8]\n mov dword ptr [edi + 0xc], ebx\n mov edi, dword ptr [edx]\n-mov dword ptr [esp + 0x10], edi\n-cmp edi, edx\n-je 0x96\n+mov dword ptr [esp + 0x14], edi\n+cmp edx, edi\n+je 0x9e\n cmp dword ptr [esp + 0x3c], 0\n jl 0xa\n cmp esi, dword ptr [esp + 0x3c]\n-jg 0x94\n-mov edi, dword ptr [esp + 0x10]\n+jg 0x9c\n+mov edi, dword ptr [esp + 0x14]\n mov edx, dword ptr [edi + 0x184]\n add edi, 8\n mov ebx, dword ptr [edx]\n-mov dword ptr [esp + 0x14], ebx\n-mov edx, dword ptr [esp + 0x14]\n-cmp dword ptr [edi + 0x17c], edx\n-je 0x52\n+mov dword ptr [esp + 0x10], ebx\n+cmp ebx, edx\n+je 0x62\n+mov edx, dword ptr [esp + 0x10]\n+lea ebx, [esp + 0x28]\n mov edx, dword ptr [edx + 8]\n-lea ebx, [esp + 0x18]\n mov ebp, dword ptr [edx]\n mov dword ptr [ebx], ebp\n mov ebp, dword ptr [edx + 4]\n mov dword ptr [ebx + 4], ebp\n mov ebp, dword ptr [edx + 8]\n mov dword ptr [ebx + 8], ebp\n mov edx, dword ptr [edx + 0xc]\n mov dword ptr [ebx + 0xc], edx\n mov ebx, dword ptr [esp + 0x18]\n cmp dword ptr [esp + 0x28], ebx\n@@ -57,42 +57,37 @@\n\n mov edx, dword ptr [esp + 0x1c]\n cmp dword ptr [esp + 0x2c], edx\n jne 0x1a\n mov edx, dword ptr [esp + 0x20]\n cmp dword ptr [esp + 0x30], edx\n jne 0x10\n mov edx, dword ptr [esp + 0x24]\n cmp dword ptr [esp + 0x34], edx\n jne 0x6\n cmp esi, dword ptr [esp + 0x3c]\n-je 0x20\n+je 0x2c\n inc eax\n-mov edx, dword ptr [esp + 0x14]\n-jmp -0x64\n mov edx, dword ptr [esp + 0x10]\n-inc esi\n mov ebx, dword ptr [edx]\n mov dword ptr [esp + 0x10], ebx\n+cmp dword ptr [edi + 0x17c], ebx\n+jne -0x62\n+inc esi\n+mov edx, dword ptr [esp + 0x14]\n+mov ebx, dword ptr [edx]\n+mov dword ptr [esp + 0x14], ebx\n cmp dword ptr [ecx + 8], ebx\n-jne -0x96\n+jne -0x9e\n mov eax, 0xffffffff\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 0x28\n ret 8\n mov eax, 0xffffffff\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 0x28\n ret 8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x1009d030", "name": "MxDeviceEnumerate::GetDevice", "matching": 0.9152542372881356, "diff": "--- \n\n+++ \n\n@@ -1,37 +1,37 @@\n\n+mov edx, dword ptr [esp + 4]\n sub esp, 8\n+test edx, edx\n push ebx\n push esi\n-mov esi, dword ptr [esp + 0x14]\n push edi\n-test esi, esi\n jl 0x7a\n cmp byte ptr [ecx + 0x10], 0\n je 0x74\n-xor edx, edx\n+xor esi, esi\n mov eax, dword ptr [ecx + 8]\n mov edi, dword ptr [eax]\n mov dword ptr [esp + 0xc], edi\n-cmp edi, eax\n+cmp eax, edi\n je 0x3f\n mov edi, dword ptr [esp + 0x1c]\n mov eax, dword ptr [esp + 0xc]\n add eax, 8\n mov dword ptr [edi], eax\n mov ebx, dword ptr [eax + 0x17c]\n mov eax, dword ptr [ebx]\n mov dword ptr [esp + 0x10], eax\n cmp eax, ebx\n je 0x13\n cmp edx, esi\n je 0x2c\n-inc edx\n+inc esi\n mov eax, dword ptr [esp + 0x10]\n mov eax, dword ptr [eax]\n mov dword ptr [esp + 0x10], eax\n cmp eax, ebx\n jne -0x13\n mov eax, dword ptr [esp + 0xc]\n mov ebx, dword ptr [eax]\n mov dword ptr [esp + 0xc], ebx\n cmp dword ptr [ecx + 8], ebx\n jne -0x3b"}, {"address": "0x1009d0d0", "name": "MxDeviceEnumerate::FUN_1009d0d0", "matching": 0.8607594936708861, "diff": "--- \n\n+++ \n\n@@ -17,62 +17,64 @@\n\n jne 0xd\n mov eax, 0xffffffff\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 8\n ret \n xor edi, edi\n call MxDeviceEnumerate::FUN_1009d1a0 (FUNCTION)\n-mov ecx, dword ptr [esi + 8]\n xor ebx, ebx\n mov ebp, 0xffffffff\n+mov ecx, dword ptr [esi + 8]\n mov edx, dword ptr [ecx]\n+mov ecx, dword ptr [esi + 8]\n mov dword ptr [esp + 0x14], edx\n-mov ecx, dword ptr [esi + 8]\n-cmp ecx, dword ptr [esp + 0x14]\n-je 0x62\n+cmp dword ptr [esp + 0x14], ecx\n+je 0x5c\n mov ecx, dword ptr [esp + 0x14]\n mov ecx, dword ptr [ecx + 0x184]\n mov edx, dword ptr [ecx]\n mov dword ptr [esp + 0x10], edx\n-cmp edx, ecx\n+cmp ecx, edx\n je 0x41\n mov edx, dword ptr [esp + 0x10]\n cmp dword ptr [edx + 0x1c], 0\n-jne 0x4e\n+jne 0x48\n test eax, eax\n je 0xd\n cmp dword ptr [edx + 0xe8], 2\n jne 0x4\n test edi, edi\n je 0x15\n mov edx, dword ptr [esp + 0x10]\n cmp dword ptr [edx + 0xe8], 1\n jne 0xa\n test edi, edi\n jne 0x6\n test ebp, ebp\n jge 0x2\n mov ebp, ebx\n inc ebx\n mov edx, dword ptr [esp + 0x10]\n mov edx, dword ptr [edx]\n mov dword ptr [esp + 0x10], edx\n-cmp edx, ecx\n+cmp ecx, edx\n jne -0x41\n+inc edi\n mov ecx, dword ptr [esp + 0x14]\n-inc edi\n-mov edx, dword ptr [ecx]\n-mov dword ptr [esp + 0x14], edx\n jmp -0x6b\n mov eax, ebp\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 8\n ret \n mov eax, ebx\n pop ebp\n pop edi\n+pop esi\n+pop ebx\n+add esp, 8\n+ret "}, {"address": "0x1009d210", "name": "MxDeviceEnumerate::FUN_1009d210", "matching": 0.7094017094017094, "diff": "--- \n\n+++ \n\n@@ -5,113 +5,113 @@\n\n mov esi, ecx\n cmp byte ptr [ecx + 0x10], 0\n jne 0xc\n mov eax, 0xffffffff\n pop edi\n pop esi\n pop ebx\n add esp, 0x14\n ret \n mov eax, dword ptr [esi + 8]\n+xor ebx, ebx\n mov ecx, dword ptr [eax]\n mov dword ptr [esp + 0xc], ecx\n-cmp ecx, eax\n-je 0x121\n-xor ebx, ebx\n-mov edi, dword ptr [esp + 0xc]\n+mov eax, dword ptr [esp + 0xc]\n+cmp dword ptr [esi + 8], eax\n+je 0x108\n+lea edi, [eax + 8]\n mov ecx, esi\n-add edi, 8\n push edi\n call MxDeviceEnumerate::FUN_1009d370 (FUNCTION)\n test al, al\n-jne 0x40\n+jne 0x3d\n mov eax, dword ptr [esp + 0xc]\n mov dword ptr [esp + 0x14], eax\n mov ecx, dword ptr [eax]\n lea edx, [eax + 4]\n mov edi, ecx\n mov dword ptr [esp + 0xc], ecx\n push ebx\n mov ecx, dword ptr [edx]\n mov dword ptr [ecx], edi\n mov ecx, dword ptr [edx]\n mov edi, dword ptr [eax]\n mov dword ptr [edi + 4], ecx\n mov ecx, dword ptr [esp + 0x18]\n add ecx, 8\n call MxDriver::`scalar deleting destructor' (FUNCTION)\n mov ecx, dword ptr [esp + 0x14]\n push ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 0xc]\n-jmp 0xbf\n+jmp -0x59\n mov eax, dword ptr [edi + 0x17c]\n mov ecx, dword ptr [eax]\n mov dword ptr [esp + 0x10], ecx\n-cmp ecx, eax\n-je 0x64\n mov eax, dword ptr [esp + 0x10]\n+cmp dword ptr [edi + 0x17c], eax\n+je 0x53\n+add eax, 8\n mov ecx, esi\n-add eax, 8\n push eax\n call MxDeviceEnumerate::FUN_1009d3d0 (FUNCTION)\n test al, al\n mov eax, dword ptr [esp + 0x10]\n-jne 0x3b\n+jne -0x25\n mov ecx, dword ptr [eax]\n lea edx, [eax + 4]\n mov dword ptr [esp + 0x18], eax\n push ebx\n-mov eax, dword ptr [edx]\n+mov eax, ecx\n mov dword ptr [esp + 0x14], ecx\n-mov dword ptr [eax], ecx\n+mov ecx, dword ptr [edx]\n+mov dword ptr [ecx], eax\n+mov ecx, dword ptr [edx]\n+mov eax, dword ptr [esp + 0x1c]\n+mov edx, dword ptr [eax]\n+mov dword ptr [edx + 4], ecx\n mov ecx, dword ptr [esp + 0x1c]\n-mov eax, dword ptr [ecx]\n add ecx, 8\n-mov edx, dword ptr [edx]\n-nop \n-mov dword ptr [eax + 4], edx\n call MxDevice::`scalar deleting destructor' (FUNCTION)\n mov ecx, dword ptr [esp + 0x18]\n push ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [edi + 0x180]\n-jmp 0x6\n-mov ecx, dword ptr [eax]\n-mov dword ptr [esp + 0x10], ecx\n-mov eax, dword ptr [esp + 0x10]\n-cmp dword ptr [edi + 0x17c], eax\n-jne -0x64\n+jmp -0x5f\n mov eax, dword ptr [esp + 0xc]\n cmp dword ptr [edi + 0x180], ebx\n-jne 0x39\n+jne 0x3a\n mov ecx, dword ptr [eax]\n lea edx, [eax + 4]\n-mov edi, ecx\n mov dword ptr [esp + 0x1c], eax\n mov dword ptr [esp + 0xc], ecx\n+mov edi, dword ptr [edx]\n push ebx\n-mov ecx, dword ptr [edx]\n-mov dword ptr [ecx], edi\n-mov ecx, dword ptr [edx]\n-mov edi, dword ptr [eax]\n-mov dword ptr [edi + 4], ecx\n+mov dword ptr [edi], ecx\n+mov edi, dword ptr [edx]\n+mov ecx, dword ptr [eax]\n+mov dword ptr [ecx + 4], edi\n mov ecx, dword ptr [esp + 0x20]\n add ecx, 8\n call MxDriver::`scalar deleting destructor' (FUNCTION)\n mov ecx, dword ptr [esp + 0x1c]\n push ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 0xc]\n-jmp 0x6\n+jmp -0x10a\n mov ecx, dword ptr [eax]\n mov dword ptr [esp + 0xc], ecx\n-mov eax, dword ptr [esp + 0xc]\n-cmp dword ptr [esi + 8], eax\n-jne -0x11f\n+jmp -0x115\n cmp dword ptr [esi + 0xc], 1\n sbb eax, eax\n pop edi\n+neg eax\n pop esi\n+cmp eax, 1\n+mov eax, 0\n+pop ebx\n+adc eax, -1\n+add esp, 0x14\n+ret "}, {"address": "0x1009d370", "name": "MxDeviceEnumerate::FUN_1009d370", "matching": 1.0, "diff": ""}, {"address": "0x1009d3d0", "name": "MxDeviceEnumerate::FUN_1009d3d0", "matching": 1.0, "diff": ""}, {"address": "0x1009d450", "name": "MxDriver::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1009d470", "name": "MxDevice::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1009d490", "name": "MxDirectDraw::MxDirectDraw", "matching": 1.0, "diff": ""}, {"address": "0x1009d510", "name": "MxDirectDraw::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1009d530", "name": "MxDirectDraw::~MxDirectDraw", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,17 +1,17 @@\n\n push esi\n push edi\n mov dword ptr [ecx], MxDirectDraw (VTABLE)\n-mov edi, ecx\n+mov esi, ecx\n call MxDirectDraw::Destroy (FUNCTION)\n-mov esi, dword ptr [edi + 0x870]\n-test esi, esi\n+mov edi, dword ptr [esi + 0x870]\n+test edi, edi\n je 0x1a\n-mov ecx, esi\n+mov ecx, edi\n call MxDirectDraw::DeviceModesInfo::~DeviceModesInfo (FUNCTION)\n-push esi\n+push edi\n call ??3@YAXPAX@Z (FUNCTION)\n-mov dword ptr [edi + 0x870], 0\n+mov dword ptr [esi + 0x870], 0\n add esp, 4\n pop edi\n pop esi\n ret "}, {"address": "0x1009d570", "name": "MxDirectDraw::GetPrimaryBitDepth", "matching": 1.0, "diff": ""}, {"address": "0x1009d5e0", "name": "MxDirectDraw::Create", "matching": 1.0, "diff": ""}, {"address": "0x1009d690", "name": "MxDirectDraw::RecreateDirectDraw", "matching": 1.0, "diff": ""}, {"address": "0x1009d6c0", "name": "MxDirectDraw::CacheOriginalPaletteEntries", "matching": 1.0, "diff": ""}, {"address": "0x1009d700", "name": "MxDirectDraw::SetPaletteEntries", "matching": 0.9230769230769231, "diff": "--- \n\n+++ \n\n@@ -21,25 +21,25 @@\n\n mov byte ptr [ecx], 0x80\n add ecx, 4\n dec eax\n jne -0x9\n lea ecx, [edi + 0x57]\n mov eax, 0x84\n mov byte ptr [ecx], 0x44\n add ecx, 4\n dec eax\n jne -0x9\n-lea eax, [edi + 0x267]\n-mov ecx, 0x68\n-mov byte ptr [eax], 0x84\n-add eax, 4\n-dec ecx\n+lea ecx, [edi + 0x267]\n+mov eax, 0x68\n+mov byte ptr [ecx], 0x84\n+add ecx, 4\n+dec eax\n jne -0x9\n lea ecx, [edi + 0x407]\n mov eax, 0xa\n mov byte ptr [ecx], 0x80\n add ecx, 4\n dec eax\n jne -0x9\n mov edx, dword ptr [esp + 0x14]\n test edx, edx\n je 0x36\n@@ -51,24 +51,24 @@\n\n add ecx, 0x28\n cmp esi, 0xf6\n jge 0x1b\n mov bl, byte ptr [ecx]\n add ecx, 4\n mov byte ptr [eax], bl\n add eax, 4\n mov bl, byte ptr [ecx - 3]\n inc esi\n mov byte ptr [eax - 3], bl\n-cmp esi, edx\n+cmp edx, esi\n mov bl, byte ptr [ecx - 2]\n mov byte ptr [eax - 2], bl\n-jl -0x23\n+jg -0x23\n mov eax, dword ptr [edi + 0x28]\n test eax, eax\n je 0x2c\n lea ecx, [edi + 0x2c]\n push ecx\n push 0x100\n push 0\n push 0\n push eax\n mov eax, dword ptr [eax]"}, {"address": "0x1009d800", "name": "MxDirectDraw::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x1009d860", "name": "MxDirectDraw::DestroyButNotDirectDraw", "matching": 1.0, "diff": ""}, {"address": "0x1009d920", "name": "MxDirectDraw::FUN_1009d920", "matching": 1.0, "diff": ""}, {"address": "0x1009d960", "name": "MxDirectDraw::DDInit", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,38 +1,38 @@\n\n push esi\n push edi\n-mov edi, ecx\n-mov esi, dword ptr [esp + 0xc]\n-test esi, esi\n+mov esi, ecx\n+mov edi, dword ptr [esp + 0xc]\n+test edi, edi\n je 0x28\n-mov eax, dword ptr [edi + 0xc]\n+mov eax, dword ptr [esi + 0xc]\n push 0x11\n-mov dword ptr [edi + 0x844], 1\n-mov ecx, dword ptr [edi + 0x83c]\n+mov dword ptr [esi + 0x844], 1\n+mov ecx, dword ptr [esi + 0x83c]\n push ecx\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 0x50]\n-mov dword ptr [edi + 0x844], 0\n+mov dword ptr [esi + 0x844], 0\n jmp 0x12\n-mov eax, dword ptr [edi + 0xc]\n+mov eax, dword ptr [esi + 0xc]\n push 8\n-mov ecx, dword ptr [edi + 0x83c]\n+mov ecx, dword ptr [esi + 0x83c]\n push ecx\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 0x50]\n test eax, eax\n je 0x14\n push eax\n-mov ecx, edi\n+mov ecx, esi\n push 'SetCooperativeLevel failed' (STRING)\n call MxDirectDraw::Error (FUNCTION)\n xor eax, eax\n pop edi\n pop esi\n ret 4\n mov eax, 1\n-mov dword ptr [edi + 0x84c], esi\n+mov dword ptr [esi + 0x84c], edi\n pop edi\n pop esi\n ret 4"}, {"address": "0x1009d9d0", "name": "MxDirectDraw::IsSupportedMode", "matching": 0.78125, "diff": "--- \n\n+++ \n\n@@ -1,29 +1,29 @@\n\n push ebx\n mov eax, dword ptr [ecx + 0x870]\n push esi\n push edi\n xor edi, edi\n mov ebx, dword ptr [eax + 8]\n cmp ebx, edi\n jle 0x25\n-mov eax, dword ptr [eax + 4]\n-mov ecx, dword ptr [esp + 0x10]\n-mov edx, dword ptr [esp + 0x14]\n+mov edx, dword ptr [eax + 4]\n+mov ecx, dword ptr [esp + 0x14]\n+mov eax, dword ptr [esp + 0x10]\n mov esi, dword ptr [esp + 0x18]\n-cmp dword ptr [eax], ecx\n+cmp dword ptr [edx], eax\n jne 0xa\n-cmp dword ptr [eax + 4], edx\n+cmp dword ptr [edx + 4], ecx\n jne 0x5\n-cmp dword ptr [eax + 8], esi\n+cmp dword ptr [edx + 8], esi\n je 0x10\n-add eax, 0xc\n+add edx, 0xc\n inc edi\n cmp edi, ebx\n jl -0x16\n xor eax, eax\n pop edi\n pop esi\n pop ebx\n ret 0xc\n mov eax, 1\n pop edi"}, {"address": "0x1009da20", "name": "EnableResizing", "matching": 1.0, "diff": ""}, {"address": "0x1009da80", "name": "MxDirectDraw::DDSetMode", "matching": 1.0, "diff": ""}, {"address": "0x1009dd80", "name": "MxDirectDraw::CreateDDSurface", "matching": 1.0, "diff": ""}, {"address": "0x1009dda0", "name": "MxDirectDraw::GetDDSurfaceDesc", "matching": 1.0, "diff": ""}, {"address": "0x1009ddf0", "name": "MxDirectDraw::DDCreateSurfaces", "matching": 1.0, "diff": ""}, {"address": "0x1009e020", "name": "MxDirectDraw::FUN_1009e020", "matching": 1.0, "diff": ""}, {"address": "0x1009e110", "name": "MxDirectDraw::TextToTextSurface", "matching": 1.0, "diff": ""}, {"address": "0x1009e210", "name": "MxDirectDraw::TextToTextSurface1", "matching": 1.0, "diff": ""}, {"address": "0x1009e230", "name": "MxDirectDraw::TextToTextSurface2", "matching": 1.0, "diff": ""}, {"address": "0x1009e250", "name": "MxDirectDraw::CreateTextSurfaces", "matching": 1.0, "diff": ""}, {"address": "0x1009e4d0", "name": "MxDirectDraw::RestoreSurfaces", "matching": 1.0, "diff": ""}, {"address": "0x1009e5e0", "name": "MxDirectDraw::CreateZBuffer", "matching": 1.0, "diff": ""}, {"address": "0x1009e6a0", "name": "MxDirectDraw::Pause", "matching": 1.0, "diff": ""}, {"address": "0x1009e750", "name": "MxDirectDraw::RestorePaletteEntries", "matching": 1.0, "diff": ""}, {"address": "0x1009e7a0", "name": "MxDirectDraw::RestoreOriginalPaletteEntries", "matching": 1.0, "diff": ""}, {"address": "0x1009e7f0", "name": "MxDirectDraw::FlipToGDISurface", "matching": 1.0, "diff": ""}, {"address": "0x1009e830", "name": "MxDirectDraw::Error", "matching": 1.0, "diff": ""}, {"address": "0x1009e880", "name": "MxDirectDraw::ErrorToString", "matching": 0.8962371721778791, "diff": "--- \n\n+++ \n\n@@ -143,22 +143,22 @@\n\n je 0x275\n mov eax, 'Unrecognized error value.' (STRING)\n ret 4\n cmp eax, 0x88760190\n jg 0x23\n je 0x290\n add eax, 0x7789fe84\n cmp eax, 7\n ja -0x299\n xor ecx, ecx\n-mov cl, byte ptr [eax + 0x1009ef34]\n-jmp dword ptr [ecx*4 + 0x1009ef20]\n+mov cl, byte ptr [eax + 0x10033654]\n+jmp dword ptr [ecx*4 + 0x10033640]\n cmp eax, 0x887601a4\n jg 0x19\n je 0x276\n cmp eax, 0x8876019a\n je 0x263\n mov eax, 'Unrecognized error value.' (STRING)\n ret 4\n cmp eax, 0x887601b8\n jg 0x19\n je 0x266\n@@ -200,21 +200,21 @@\n\n cmp eax, 0x8876021c\n je 0x203\n mov eax, 'Unrecognized error value.' (STRING)\n ret 4\n test eax, eax\n jg -0x390\n je 0x2e5\n add eax, 0x7789fdcf\n cmp eax, 0x1c\n ja -0x3a4\n-jmp dword ptr [eax*4 + 0x1009ef3c]\n+jmp dword ptr [eax*4 + 0x1003365c]\n mov eax, 'Action not supported.' (STRING)\n ret 4\n mov eax, 'Generic failure.' (STRING)\n ret 4\n mov eax, 'DirectDraw does not have enough memory to perform the operation.' (STRING)\n ret 4\n mov eax, 'One or more of the parameters passed to the function are incorrect.' (STRING)\n ret 4\n mov eax, 'This object is already initialized.' (STRING)\n ret 4\n@@ -384,58 +384,53 @@\n\n ret 4\n mov eax, 'This surface can not be restored because it was created in a different mode.' (STRING)\n ret 4\n mov eax, 'This surface can not be restored because it is an implicitly created surface.' (STRING)\n ret 4\n mov eax, 'The surface being used is not a palette-based surface.' (STRING)\n ret 4\n mov eax, 'No error.' (STRING)\n ret 4\n nop \n-xchg edi, eax\n-in eax, dx\n-or dword ptr [eax], edx\n-lahf \n-in eax, dx\n-or dword ptr [eax], edx\n-cmpsd dword ptr [esi], dword ptr es:[edi]\n-in eax, dx\n-or dword ptr [eax], edx\n-scasd eax, dword ptr es:[edi]\n-in eax, dx\n-or dword ptr [eax], edx\n-pushfd \n-call <OFFSET92>\n+mov bh, 0x34\n+add edx, dword ptr [eax]\n+mov edi, 0xc7100334\n+xor al, 3\n+adc bh, cl\n+xor al, 3\n+adc byte ptr [edi + ebp + 0x4001003], bh\n add dword ptr [edx + eax], eax\n add al, 4\n-add ebp, dword ptr [edi]\n-out dx, al\n-or dword ptr [eax], edx\n-aaa \n-out dx, al\n-or dword ptr [eax], edx\n-aas \n-out dx, al\n-or dword ptr [eax], edx\n-inc edi\n-out dx, al\n-or dword ptr [eax], edx\n-dec edi\n-out dx, al\n-or dword ptr [eax], edx\n+add ecx, dword ptr [edi + 0x35]\n+add edx, dword ptr [eax]\n push edi\n-out dx, al\n-or dword ptr [eax], edx\n-pop edi\n-out dx, al\n-or dword ptr [eax], edx\n-out dx, al\n-or dword ptr [eax], edx\n-outsd dx, dword ptr [esi]\n-out dx, al\n-or dword ptr [eax], edx\n-ja -0x12\n-or dword ptr [eax], edx\n-jg -0x12\n-or dword ptr [eax], edx\n-xchg esi, ebp\n-or dword ptr [eax], edx\n+xor eax, 0x355f1003\n+add edx, dword ptr [eax]\n+xor eax, 0x356f1003\n+add edx, dword ptr [eax]\n+ja 0x35\n+add edx, dword ptr [eax]\n+jg 0x35\n+add edx, dword ptr [eax]\n+xchg dword ptr [<OFFSET92>], esi\n+add edx, dword ptr [eax]\n+xchg edi, eax\n+xor eax, 0x359f1003\n+add edx, dword ptr [eax]\n+cmpsd dword ptr [esi], dword ptr es:[edi]\n+xor eax, 0x35af1003\n+add edx, dword ptr [eax]\n+mov bh, 0x35\n+add edx, dword ptr [eax]\n+mov edi, 0xc7100335\n+xor eax, 0x35cf1003\n+add edx, dword ptr [eax]\n+xlatb \n+xor eax, 0x35df1003\n+add edx, dword ptr [eax]\n+out 0x35, eax\n+add edx, dword ptr [eax]\n+out dx, eax\n+xor eax, 0x35f71003\n+add edx, dword ptr [eax]\n+push dword ptr [<OFFSET93>]\n+add edx, dword ptr [eax]"}, {"address": "0x1009efb0", "name": "MxDirectDraw::DeviceModesInfo::DeviceModesInfo", "matching": 1.0, "diff": ""}, {"address": "0x1009efd0", "name": "MxDirectDraw::DeviceModesInfo::~DeviceModesInfo", "matching": 1.0, "diff": ""}, {"address": "0x100a0b30", "name": "LegoAnimClass::LegoAnimClass", "matching": 1.0, "diff": ""}, {"address": "0x100a0ba0", "name": "LegoAnimClass::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100a10b0", "name": "ViewportAppData::ViewportAppData", "matching": 1.0, "diff": ""}, {"address": "0x100a10e0", "name": "ViewportAppData::~ViewportAppData", "matching": 1.0, "diff": ""}, {"address": "0x100a1160", "name": "TglImpl::ViewImpl::ViewportCreateAppData", "matching": 1.0, "diff": ""}, {"address": "0x100a1240", "name": "ViewportDestroyCallback", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,33 +1,33 @@\n\n push ebx\n push esi\n-mov esi, dword ptr [esp + 0x10]\n+mov ebx, dword ptr [esp + 0x10]\n push edi\n push ebp\n-mov edi, dword ptr [esi]\n-mov ecx, dword ptr [esi + 4]\n-mov ebx, dword ptr [esi + 8]\n-test ebx, ebx\n+mov esi, dword ptr [ebx]\n+mov ecx, dword ptr [ebx + 4]\n+mov edi, dword ptr [ebx + 8]\n+test edi, edi\n je 0x16\n-mov eax, dword ptr [ebx]\n+mov eax, dword ptr [edi]\n push ecx\n-push ebx\n+push edi\n mov ebp, dword ptr [eax + 0x98]\n call ebp\n+push esi\n push edi\n+call ebp\n+push edi\n+mov esi, dword ptr [edi]\n+call dword ptr [esi + 8]\n+test ebx, ebx\n+je 0x10\n+mov ecx, ebx\n+call ViewportAppData::~ViewportAppData (FUNCTION)\n push ebx\n-call ebp\n-push ebx\n-mov ebx, dword ptr [ebx]\n-call dword ptr [ebx + 8]\n-test esi, esi\n-je 0x10\n-mov ecx, esi\n-call ViewportAppData::~ViewportAppData (FUNCTION)\n-push esi\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret "}, {"address": "0x100a1290", "name": "ViewportPickImpl", "matching": 1.0, "diff": ""}, {"address": "0x100a12a0", "name": "TglImpl::TextureImpl::SetImage", "matching": 1.0, "diff": ""}, {"address": "0x100a1300", "name": "TextureDestroyCallback", "matching": 0.7272727272727273, "diff": "--- \n\n+++ \n\n@@ -1,22 +1,22 @@\n\n push ebx\n push esi\n+mov esi, dword ptr [esp + 0xc]\n push edi\n-mov edi, dword ptr [esp + 0x10]\n-push edi\n-mov esi, dword ptr [edi]\n-call dword ptr [esi + 0x1c]\n+push esi\n+mov edi, dword ptr [esi]\n+call dword ptr [edi + 0x1c]\n mov ebx, eax\n test ebx, ebx\n je 0x10\n mov ecx, ebx\n call TglImpl::TglD3DRMIMAGE::Destroy (FUNCTION)\n push ebx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n push 0\n-push edi\n-call dword ptr [esi + 0x18]\n+push esi\n+call dword ptr [edi + 0x18]\n pop edi\n pop esi\n pop ebx\n ret "}, {"address": "0x100a1330", "name": "TglImpl::TglD3DRMIMAGE::TglD3DRMIMAGE", "matching": 1.0, "diff": ""}, {"address": "0x100a13b0", "name": "TglImpl::TglD3DRMIMAGE::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100a1510", "name": "TglImpl::TglD3DRMIMAGE::FillRowsOfTexture", "matching": 0.8823529411764706, "diff": "--- \n\n+++ \n\n@@ -6,11 +6,13 @@\n\n mov esi, dword ptr [esp + 0x14]\n imul edx, eax\n imul edi, eax\n add edi, dword ptr [ecx + 0x1c]\n mov ecx, edx\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, edx\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-mov eax, 1\n+pop edi\n+pop esi\n+ret 0xc"}, {"address": "0x100a1550", "name": "TglImpl::TglD3DRMIMAGE::InitializePalette", "matching": 1.0, "diff": ""}, {"address": "0x100a15e0", "name": "Tgl::CreateRenderer", "matching": 0.9473684210526315, "diff": "--- \n\n+++ \n\n@@ -20,39 +20,39 @@\n\n mov byte ptr [ebp - 4], 1\n mov esi, edi\n mov dword ptr [edi], Tgl::Object (VTABLE)\n mov byte ptr [ebp - 4], 2\n mov dword ptr [edi], Tgl::Renderer (VTABLE)\n mov byte ptr [ebp - 4], al\n mov dword ptr [edi + 4], eax\n mov dword ptr [edi], TglImpl::RendererImpl (VTABLE)\n jmp 0x12\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0xbff\n+jmp Tgl::Object::~Object (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x127\n+jmp Tgl::Renderer::~Renderer (FUNCTION)\n xor esi, esi\n mov dword ptr [ebp - 4], 0xffffffff\n cmp dword ptr [TglImpl::g_pD3DRM (DATA)], 0\n je 0xd\n mov eax, dword ptr [TglImpl::g_pD3DRM (DATA)]\n push eax\n mov edi, dword ptr [eax]\n call dword ptr [edi + 4]\n jmp 0x1b\n lea eax, [ebp - 0x10]\n push eax\n call _Direct3DRMCreate@4 (FUNCTION)\n push TglImpl::g_pD3DRM (DATA)\n mov eax, dword ptr [ebp - 0x10]\n mov edi, dword ptr [eax]\n-push <OFFSET8>\n+push IID_IDirect3DRM2 (DATA)\n push eax\n call dword ptr [edi]\n mov eax, dword ptr [TglImpl::g_pD3DRM (DATA)]\n mov dword ptr [esi + 4], eax\n test eax, eax\n jne 0xe\n test esi, esi\n je 0x8\n push 1\n mov eax, dword ptr [esi]\n@@ -60,17 +60,17 @@\n\n call dword ptr [eax]\n xor esi, esi\n mov eax, esi\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n mov esp, ebp\n pop ebp\n ret \n-mov eax, <OFFSET9>\n+mov eax, <OFFSET11>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret "}, {"address": "0x100a16d0", "name": "TglImpl::RendererImpl::`scalar deleting destructor'", "matching": 0.9761904761904762, "diff": "--- \n\n+++ \n\n@@ -32,11 +32,11 @@\n\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop esi\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET6>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0xb\n+jmp Tgl::Renderer::~Renderer (FUNCTION)"}, {"address": "0x100a17c0", "name": "Tgl::Renderer::`scalar deleting destructor'", "matching": 0.9629629629629629, "diff": "--- \n\n+++ \n\n@@ -17,11 +17,11 @@\n\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0xa1f\n+jmp Tgl::Object::~Object (FUNCTION)"}, {"address": "0x100a1830", "name": "TglImpl::RendererImpl::CreateDevice", "matching": 0.6944444444444444, "diff": "--- \n\n+++ \n\n@@ -7,66 +7,66 @@\n\n mov dword ptr fs:[0], esp\n sub esp, 4\n push ebx\n push esi\n push edi\n mov ebx, ecx\n push 8\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n-mov edi, eax\n+mov esi, eax\n xor eax, eax\n mov dword ptr [ebp - 4], eax\n-test edi, edi\n+test esi, esi\n je 0x34\n mov byte ptr [ebp - 4], 1\n-mov esi, edi\n-mov dword ptr [edi], Tgl::Object (VTABLE)\n+mov edi, esi\n+mov dword ptr [esi], Tgl::Object (VTABLE)\n mov byte ptr [ebp - 4], 2\n-mov dword ptr [edi], Tgl::Device (VTABLE)\n+mov dword ptr [esi], Tgl::Device (VTABLE)\n mov byte ptr [ebp - 4], al\n-mov dword ptr [edi + 4], eax\n-mov dword ptr [edi], TglImpl::DeviceImpl (VTABLE)\n+mov dword ptr [esi + 4], eax\n+mov dword ptr [esi], TglImpl::DeviceImpl (VTABLE)\n jmp 0x12\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x9ac\n+jmp Tgl::Object::~Object (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0xab4\n-xor esi, esi\n-mov edx, dword ptr [ebx + 4]\n-lea eax, [esi + 4]\n+jmp Tgl::Device::~Device (FUNCTION)\n+xor edi, edi\n+mov ecx, dword ptr [ebx + 4]\n+lea eax, [edi + 4]\n push eax\n mov eax, dword ptr [ebp + 8]\n mov dword ptr [ebp - 4], 0xffffffff\n-mov ecx, dword ptr [eax + 4]\n+mov edx, dword ptr [eax + 4]\n mov ebx, dword ptr [eax]\n+push edx\n+mov eax, dword ptr [ecx]\n+push ebx\n push ecx\n-mov eax, dword ptr [edx]\n-push ebx\n-push edx\n call dword ptr [eax + 0x40]\n test eax, eax\n jge 0xe\n-test esi, esi\n+test edi, edi\n je 0x8\n push 1\n-mov eax, dword ptr [esi]\n-mov ecx, esi\n+mov eax, dword ptr [edi]\n+mov ecx, edi\n call dword ptr [eax]\n-xor esi, esi\n-mov eax, esi\n+xor edi, edi\n+mov eax, edi\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n-mov eax, <OFFSET6>\n+mov eax, <OFFSET8>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret "}, {"address": "0x100a1900", "name": "TglImpl::RendererImpl::CreateDevice", "matching": 0.6395348837209303, "diff": "--- \n\n+++ \n\n@@ -1,86 +1,86 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 4\n+sub esp, 8\n push ebx\n push esi\n push edi\n mov ebx, ecx\n push 8\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n-mov esi, eax\n+mov edi, eax\n xor eax, eax\n mov dword ptr [ebp - 4], eax\n-test esi, esi\n+test edi, edi\n je 0x34\n mov byte ptr [ebp - 4], 1\n-mov edi, esi\n-mov dword ptr [esi], Tgl::Object (VTABLE)\n+mov esi, edi\n+mov dword ptr [edi], Tgl::Object (VTABLE)\n mov byte ptr [ebp - 4], 2\n-mov dword ptr [esi], Tgl::Device (VTABLE)\n+mov dword ptr [edi], Tgl::Device (VTABLE)\n mov byte ptr [ebp - 4], al\n-mov dword ptr [esi + 4], eax\n-mov dword ptr [esi], TglImpl::DeviceImpl (VTABLE)\n+mov dword ptr [edi + 4], eax\n+mov dword ptr [edi], TglImpl::DeviceImpl (VTABLE)\n jmp 0x12\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x8dc\n+jmp Tgl::Object::~Object (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x9e4\n-xor edi, edi\n+jmp Tgl::Device::~Device (FUNCTION)\n+xor esi, esi\n mov ecx, dword ptr [ebx + 4]\n-lea eax, [edi + 4]\n+lea eax, [esi + 4]\n mov ebx, dword ptr [ebp + 8]\n push eax\n mov dword ptr [ebp - 4], 0xffffffff\n mov edx, dword ptr [ebx + 0x10]\n-mov esi, dword ptr [ebx + 8]\n+mov eax, dword ptr [ebx + 8]\n push edx\n-mov eax, dword ptr [ebx]\n-push esi\n push eax\n+mov edx, dword ptr [ebx]\n+mov eax, dword ptr [ecx]\n+push edx\n push ecx\n-mov esi, dword ptr [ecx]\n-call dword ptr [esi + 0x3c]\n-mov esi, 1\n+call dword ptr [eax + 0x3c]\n+mov dword ptr [ebp - 0x14], eax\n test eax, eax\n-jge 0x2\n-xor esi, esi\n-cmp esi, 1\n-jne 0x1a\n+jl 0x1a\n cmp dword ptr [ebx + 0x10], 0\n je 0x14\n-cmp dword ptr [<OFFSET6>], 0\n+cmp dword ptr [<OFFSET8>], 0\n je 0xb\n-mov eax, dword ptr [edi + 4]\n+mov eax, dword ptr [esi + 4]\n push 2\n push eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x44]\n+cmp dword ptr [ebp - 0x14], 0\n+jge 0xe\n test esi, esi\n-jne 0xe\n-test edi, edi\n je 0x8\n push 1\n-mov eax, dword ptr [edi]\n-mov ecx, edi\n+mov eax, dword ptr [esi]\n+mov ecx, esi\n call dword ptr [eax]\n-xor edi, edi\n-mov eax, edi\n+xor esi, esi\n+mov eax, esi\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n-mov eax, <OFFSET7>\n+mov eax, <OFFSET9>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret "}, {"address": "0x100a1a00", "name": "TglImpl::RendererImpl::CreateView", "matching": 0.7348837209302326, "diff": "--- \n\n+++ \n\n@@ -1,18 +1,18 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 4\n+sub esp, 0xc\n push ebx\n push esi\n push edi\n mov ebx, ecx\n push 8\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov esi, eax\n xor eax, eax\n@@ -22,87 +22,86 @@\n\n mov byte ptr [ebp - 4], 1\n mov edi, esi\n mov dword ptr [esi], Tgl::Object (VTABLE)\n mov byte ptr [ebp - 4], 2\n mov dword ptr [esi], Tgl::View (VTABLE)\n mov byte ptr [ebp - 4], al\n mov dword ptr [esi + 4], eax\n mov dword ptr [esi], TglImpl::ViewImpl (VTABLE)\n jmp 0x12\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x7dc\n+jmp Tgl::Object::~Object (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x9c4\n+jmp Tgl::View::~View (FUNCTION)\n xor edi, edi\n mov dword ptr [ebp - 4], 0xffffffff\n mov eax, dword ptr [ebp + 0xc]\n-mov ebx, dword ptr [ebx + 4]\n-mov edx, dword ptr [ebp + 0x18]\n+mov edx, dword ptr [ebx + 4]\n+mov dword ptr [ebp - 0x14], edx\n mov ecx, dword ptr [eax + 4]\n lea eax, [edi + 4]\n-mov dword ptr [ebp - 0x10], ecx\n+mov edx, dword ptr [ebp + 0x18]\n push eax\n+mov dword ptr [ebp - 0x18], ecx\n mov ecx, dword ptr [ebp + 0x1c]\n+mov eax, dword ptr [ebp + 0x14]\n push ecx\n-mov eax, dword ptr [ebp + 0x14]\n push edx\n+push eax\n mov ecx, dword ptr [ebp + 0x10]\n-push eax\n-mov edx, dword ptr [ebp - 0x10]\n push ecx\n+mov edx, dword ptr [ebp - 0x18]\n+push edx\n mov eax, dword ptr [ebp + 8]\n-push edx\n-mov esi, dword ptr [ebx]\n+mov edx, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [eax + 4]\n push ecx\n-push ebx\n-call dword ptr [esi + 0x50]\n-mov esi, 1\n+mov ebx, 1\n+push edx\n+mov eax, dword ptr [edx]\n+call dword ptr [eax + 0x50]\n test eax, eax\n jge 0x2\n-xor esi, esi\n-cmp esi, 1\n-jne 0x28\n-mov eax, dword ptr [ebp - 0x10]\n+xor ebx, ebx\n+cmp ebx, 1\n+jne 0x2b\n+mov eax, dword ptr [ebp - 0x18]\n mov ecx, dword ptr [edi + 4]\n push eax\n+mov edx, dword ptr [ebp - 0x14]\n push ecx\n-push ebx\n+push edx\n call TglImpl::ViewImpl::ViewportCreateAppData (FUNCTION)\n add esp, 0xc\n-mov esi, eax\n-cmp esi, 1\n+mov ebx, eax\n+cmp ebx, 1\n je 0x10\n mov eax, dword ptr [edi + 4]\n push eax\n-mov ebx, dword ptr [eax]\n-call dword ptr [ebx + 8]\n+mov esi, dword ptr [eax]\n+call dword ptr [esi + 8]\n mov dword ptr [edi + 4], 0\n-test esi, esi\n+test ebx, ebx\n jne 0xe\n test edi, edi\n je 0x8\n push 1\n mov eax, dword ptr [edi]\n mov ecx, edi\n call dword ptr [eax]\n xor edi, edi\n mov eax, edi\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 0x18\n-mov eax, <OFFSET7>\n+mov eax, <OFFSET9>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100a1b20", "name": "TglImpl::RendererImpl::CreateGroup", "matching": 0.9175257731958762, "diff": "--- \n\n+++ \n\n@@ -22,36 +22,36 @@\n\n mov byte ptr [ebp - 4], 1\n mov edi, esi\n mov dword ptr [esi], Tgl::Object (VTABLE)\n mov byte ptr [ebp - 4], 2\n mov dword ptr [esi], Tgl::Group (VTABLE)\n mov byte ptr [ebp - 4], al\n mov dword ptr [esi + 4], eax\n mov dword ptr [esi], TglImpl::GroupImpl (VTABLE)\n jmp 0x12\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x6bc\n+jmp Tgl::Object::~Object (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x984\n+jmp Tgl::Group::~Group (FUNCTION)\n xor edi, edi\n mov eax, dword ptr [ebp + 8]\n mov esi, 0\n mov dword ptr [ebp - 4], 0xffffffff\n test eax, eax\n je 0x3\n mov esi, dword ptr [eax + 4]\n-mov eax, dword ptr [ebx + 4]\n-lea ecx, [edi + 4]\n+mov ecx, dword ptr [ebx + 4]\n+lea eax, [edi + 4]\n+push eax\n+push 0\n push ecx\n-push 0\n-push eax\n-mov ebx, dword ptr [eax]\n+mov ebx, dword ptr [ecx]\n call dword ptr [ebx + 0x10]\n mov ebx, 1\n test eax, eax\n jge 0x2\n xor ebx, ebx\n cmp ebx, 1\n jne 0x2e\n test esi, esi\n je 0x2a\n mov eax, dword ptr [edi + 4]\n@@ -81,17 +81,17 @@\n\n xor edi, edi\n mov eax, edi\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n-mov eax, <OFFSET6>\n+mov eax, <OFFSET8>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret "}, {"address": "0x100a1c30", "name": "TglImpl::RendererImpl::CreateCamera", "matching": 0.75, "diff": "--- \n\n+++ \n\n@@ -7,62 +7,62 @@\n\n mov dword ptr fs:[0], esp\n sub esp, 4\n push ebx\n push esi\n push edi\n mov ebx, ecx\n push 8\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n-mov edi, eax\n+mov esi, eax\n xor eax, eax\n mov dword ptr [ebp - 4], eax\n-test edi, edi\n+test esi, esi\n je 0x34\n mov byte ptr [ebp - 4], 1\n-mov esi, edi\n-mov dword ptr [edi], Tgl::Object (VTABLE)\n+mov edi, esi\n+mov dword ptr [esi], Tgl::Object (VTABLE)\n mov byte ptr [ebp - 4], 2\n-mov dword ptr [edi], Tgl::Camera (VTABLE)\n+mov dword ptr [esi], Tgl::Camera (VTABLE)\n mov byte ptr [ebp - 4], al\n-mov dword ptr [edi + 4], eax\n-mov dword ptr [edi], TglImpl::CameraImpl (VTABLE)\n+mov dword ptr [esi + 4], eax\n+mov dword ptr [esi], TglImpl::CameraImpl (VTABLE)\n jmp 0x12\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x5ac\n+jmp Tgl::Object::~Object (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x954\n-xor esi, esi\n+jmp Tgl::Camera::~Camera (FUNCTION)\n+xor edi, edi\n mov dword ptr [ebp - 4], 0xffffffff\n mov eax, dword ptr [ebx + 4]\n-lea ecx, [esi + 4]\n+lea ecx, [edi + 4]\n push ecx\n push 0\n push eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x10]\n test eax, eax\n jge 0xe\n-test esi, esi\n+test edi, edi\n je 0x8\n push 1\n-mov eax, dword ptr [esi]\n-mov ecx, esi\n+mov eax, dword ptr [edi]\n+mov ecx, edi\n call dword ptr [eax]\n-xor esi, esi\n-mov eax, esi\n+xor edi, edi\n+mov eax, edi\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n-mov eax, <OFFSET6>\n+mov eax, <OFFSET8>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret "}, {"address": "0x100a1cf0", "name": "TglImpl::RendererImpl::CreateLight", "matching": 0.6391752577319587, "diff": "--- \n\n+++ \n\n@@ -1,141 +1,150 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 0xc\n+mov dword ptr [ebp - 0x18], ecx\n push ebx\n push esi\n push edi\n-mov ebx, ecx\n push 8\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov edi, eax\n xor eax, eax\n mov dword ptr [ebp - 4], eax\n test edi, edi\n je 0x34\n mov byte ptr [ebp - 4], 1\n mov esi, edi\n mov dword ptr [edi], Tgl::Object (VTABLE)\n mov byte ptr [ebp - 4], 2\n mov dword ptr [edi], Tgl::Light (VTABLE)\n mov byte ptr [ebp - 4], al\n mov dword ptr [edi + 4], eax\n mov dword ptr [edi], TglImpl::LightImpl (VTABLE)\n jmp 0x12\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x4ec\n+jmp Tgl::Object::~Object (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x974\n+jmp Tgl::Light::~Light (FUNCTION)\n xor esi, esi\n mov dword ptr [ebp - 4], 0xffffffff\n-mov edi, dword ptr [ebx + 4]\n mov eax, dword ptr [ebp + 8]\n cmp eax, 4\n ja 0x7\n-jmp dword ptr [eax*4 + 0x100a1e7c]\n-mov dword ptr [ebp - 0x14], 0\n-jmp 0x2b\n-mov dword ptr [ebp - 0x14], 0\n-jmp 0x22\n-mov dword ptr [ebp - 0x14], 1\n-jmp 0x19\n-mov dword ptr [ebp - 0x14], 2\n-jmp 0x10\n-mov dword ptr [ebp - 0x14], 3\n-jmp 0x7\n-mov dword ptr [ebp - 0x14], 4\n-lea eax, [ebp - 0x10]\n-mov ebx, dword ptr [edi]\n+jmp dword ptr [eax*4 + 0x1002d16c]\n+xor edi, edi\n+jmp 0x1e\n+xor edi, edi\n+jmp 0x1a\n+mov edi, 1\n+jmp 0x13\n+mov edi, 2\n+jmp 0xc\n+mov edi, 3\n+jmp 0x5\n+mov edi, 4\n+mov eax, dword ptr [ebp - 0x18]\n+lea ecx, [ebp - 0x14]\n+push ecx\n+push 0\n+mov eax, dword ptr [eax + 4]\n push eax\n-push 0\n-push edi\n+mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x10]\n mov ebx, 1\n test eax, eax\n jge 0x2\n xor ebx, ebx\n cmp ebx, 1\n-jne 0x75\n-lea eax, [ebp - 0x18]\n-mov ecx, dword ptr [ebp + 0x14]\n+jne 0x77\n+mov eax, dword ptr [ebp - 0x18]\n+lea edx, [ebp - 0x10]\n+push edx\n+mov ebx, dword ptr [ebp + 0x10]\n+mov ecx, dword ptr [eax + 4]\n+mov edx, dword ptr [ebp + 0xc]\n+mov eax, dword ptr [ebp + 0x14]\n push eax\n-mov edx, dword ptr [ebp + 0x10]\n+push ebx\n+push edx\n+mov eax, dword ptr [ecx]\n+push edi\n+mov ebx, 1\n push ecx\n-mov eax, dword ptr [ebp + 0xc]\n-push edx\n-mov ecx, dword ptr [ebp - 0x14]\n-push eax\n-mov ebx, dword ptr [edi]\n-push ecx\n-push edi\n-call dword ptr [ebx + 0x30]\n-mov ebx, 1\n+call dword ptr [eax + 0x30]\n test eax, eax\n jge 0x2\n xor ebx, ebx\n cmp ebx, 1\n je 0xb\n-mov eax, dword ptr [ebp - 0x10]\n+mov eax, dword ptr [ebp - 0x14]\n push eax\n mov edi, dword ptr [eax]\n call dword ptr [edi + 8]\n-jmp 0x40\n-mov eax, dword ptr [ebp - 0x18]\n-mov ecx, dword ptr [ebp - 0x10]\n+jmp 0x3a\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0x14]\n push eax\n mov ebx, 1\n push ecx\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x30]\n test eax, eax\n jge 0x2\n xor ebx, ebx\n+mov eax, dword ptr [ebp - 0x10]\n cmp ebx, 1\n-je 0x14\n-mov eax, dword ptr [ebp - 0x10]\n push eax\n mov edi, dword ptr [eax]\n+je 0xe\n call dword ptr [edi + 8]\n-mov ecx, dword ptr [ebp - 0x18]\n+mov ecx, dword ptr [ebp - 0x14]\n push ecx\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 8]\n-jmp 0xf\n-mov eax, dword ptr [ebp - 0x18]\n-push eax\n-mov edi, dword ptr [eax]\n+jmp 0x9\n call dword ptr [edi + 8]\n-mov ecx, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0x14]\n mov dword ptr [esi + 4], ecx\n-test ebx, ebx\n-jne 0xe\n+cmp ebx, 1\n+je 0xe\n test esi, esi\n je 0x8\n push 1\n mov eax, dword ptr [esi]\n mov ecx, esi\n call dword ptr [eax]\n xor esi, esi\n mov eax, esi\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 0x10\n-mov eax, <OFFSET6>\n+mov eax, <OFFSET8>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n mov edi, edi\n+jns -0x30\n+add dl, byte ptr [eax]\n+jge -0x30\n+add dl, byte ptr [eax]\n+test al, dl\n+add dl, byte ptr [eax]\n+mov edx, eax\n+add dl, byte ptr [eax]\n+xchg edx, eax\n+rol byte ptr [edx], 1"}, {"address": "0x100a1e90", "name": "TglImpl::RendererImpl::CreateUnk", "matching": 0.746268656716418, "diff": "--- \n\n+++ \n\n@@ -7,61 +7,61 @@\n\n mov dword ptr fs:[0], esp\n sub esp, 4\n push ebx\n push esi\n push edi\n mov ebx, ecx\n push 8\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n-mov edi, eax\n+mov esi, eax\n xor eax, eax\n mov dword ptr [ebp - 4], eax\n-test edi, edi\n+test esi, esi\n je 0x34\n mov byte ptr [ebp - 4], 1\n-mov esi, edi\n-mov dword ptr [edi], Tgl::Object (VTABLE)\n+mov edi, esi\n+mov dword ptr [esi], Tgl::Object (VTABLE)\n mov byte ptr [ebp - 4], 2\n-mov dword ptr [edi], Tgl::Unk (VTABLE)\n+mov dword ptr [esi], Tgl::Unk (VTABLE)\n mov byte ptr [ebp - 4], al\n-mov dword ptr [edi + 4], eax\n-mov dword ptr [edi], TglImpl::UnkImpl (VTABLE)\n+mov dword ptr [esi + 4], eax\n+mov dword ptr [esi], TglImpl::UnkImpl (VTABLE)\n jmp 0x12\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x34c\n+jmp Tgl::Object::~Object (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x8b4\n-xor esi, esi\n+jmp Tgl::Unk::~Unk (FUNCTION)\n+xor edi, edi\n mov dword ptr [ebp - 4], 0xffffffff\n mov eax, dword ptr [ebx + 4]\n-lea ecx, [esi + 4]\n+lea ecx, [edi + 4]\n mov ebx, dword ptr [eax]\n push ecx\n push eax\n call dword ptr [ebx + 0x14]\n test eax, eax\n jge 0xe\n-test esi, esi\n+test edi, edi\n je 0x8\n push 1\n-mov eax, dword ptr [esi]\n-mov ecx, esi\n+mov eax, dword ptr [edi]\n+mov ecx, edi\n call dword ptr [eax]\n-xor esi, esi\n-mov eax, esi\n+xor edi, edi\n+mov eax, edi\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n-mov eax, <OFFSET6>\n+mov eax, <OFFSET8>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret "}, {"address": "0x100a1f50", "name": "TglImpl::RendererImpl::CreateTexture", "matching": 0.610909090909091, "diff": "--- \n\n+++ \n\n@@ -1,140 +1,135 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 8\n+sub esp, 0x10\n push ebx\n push esi\n push edi\n mov ebx, ecx\n push 8\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n+mov dword ptr [ebp - 0x14], eax\n add esp, 4\n-mov esi, eax\n+mov edi, eax\n xor eax, eax\n mov dword ptr [ebp - 4], eax\n-test esi, esi\n+test edi, edi\n je 0x34\n mov byte ptr [ebp - 4], 1\n-mov edi, esi\n-mov dword ptr [esi], Tgl::Object (VTABLE)\n+mov esi, edi\n+mov dword ptr [edi], Tgl::Object (VTABLE)\n mov byte ptr [ebp - 4], 2\n-mov dword ptr [esi], Tgl::Texture (VTABLE)\n+mov dword ptr [edi], Tgl::Texture (VTABLE)\n mov byte ptr [ebp - 4], al\n-mov dword ptr [esi + 4], eax\n-mov dword ptr [esi], TglImpl::TextureImpl (VTABLE)\n+mov dword ptr [edi + 4], eax\n+mov dword ptr [edi], TglImpl::TextureImpl (VTABLE)\n jmp 0x12\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x28c\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x8d4\n-xor edi, edi\n-lea eax, [edi + 4]\n+mov ecx, dword ptr [ebp - 0x14]\n+jmp Tgl::Object::~Object (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x14]\n+jmp Tgl::Texture::~Texture (FUNCTION)\n+xor esi, esi\n+lea eax, [esi + 4]\n push 0x40\n mov dword ptr [ebp - 4], 0xffffffff\n-mov esi, dword ptr [ebx + 4]\n+mov ecx, dword ptr [ebx + 4]\n mov dword ptr [ebp - 0x10], eax\n-mov ebx, 0\n+mov edi, 0\n+mov dword ptr [ebp - 0x1c], ecx\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n-mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [ebp - 0x18], eax\n mov dword ptr [ebp - 4], 3\n test eax, eax\n je 0x26\n mov eax, dword ptr [ebp + 0x20]\n mov ecx, dword ptr [ebp + 0x1c]\n push eax\n mov edx, dword ptr [ebp + 0x18]\n push ecx\n mov eax, dword ptr [ebp + 0x14]\n push edx\n mov ecx, dword ptr [ebp + 0x10]\n push eax\n mov edx, dword ptr [ebp + 0xc]\n push ecx\n mov eax, dword ptr [ebp + 8]\n push edx\n-mov ecx, dword ptr [ebp - 0x14]\n+mov ecx, dword ptr [ebp - 0x18]\n push eax\n call TglImpl::TglD3DRMIMAGE::TglD3DRMIMAGE (FUNCTION)\n-mov ebx, eax\n+mov edi, eax\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0x1c]\n mov dword ptr [ebp - 4], 0xffffffff\n-mov eax, dword ptr [ebp - 0x10]\n push eax\n-push ebx\n-push esi\n-mov esi, dword ptr [esi]\n-call dword ptr [esi + 0x28]\n-mov esi, 1\n+mov ebx, 1\n+push edi\n+mov eax, dword ptr [ecx]\n+push ecx\n+call dword ptr [eax + 0x28]\n test eax, eax\n jge 0x2\n-xor esi, esi\n-cmp esi, 1\n+xor ebx, ebx\n+cmp ebx, 1\n jne 0x30\n-push ebx\n+push edi\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax]\n push ecx\n call TglImpl::TextureImpl::SetImage (FUNCTION)\n add esp, 8\n-mov esi, eax\n-cmp esi, 1\n-je 0x2e\n+mov ebx, eax\n+cmp ebx, 1\n+je 0x41\n mov eax, dword ptr [ebp - 0x10]\n mov eax, dword ptr [eax]\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 8]\n mov ecx, dword ptr [ebp - 0x10]\n-test ebx, ebx\n+test edi, edi\n mov dword ptr [ecx], 0\n je 0x16\n jmp 0x4\n-test ebx, ebx\n+test edi, edi\n je 0x10\n-mov ecx, ebx\n+mov ecx, edi\n call TglImpl::TglD3DRMIMAGE::Destroy (FUNCTION)\n-push ebx\n+push edi\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n+cmp ebx, 1\n+je 0xe\n test esi, esi\n-jne 0xe\n-test edi, edi\n je 0x8\n push 1\n-mov eax, dword ptr [edi]\n-mov ecx, edi\n+mov eax, dword ptr [esi]\n+mov ecx, esi\n call dword ptr [eax]\n-xor edi, edi\n-mov eax, edi\n+xor esi, esi\n+mov eax, esi\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 0x1c\n+mov eax, dword ptr [ebp - 0x18]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, <OFFSET12>\n+jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x14]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n-mov eax, <OFFSET10>\n-jmp ___CxxFrameHandler (FUNCTION)\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100a20d0", "name": "TglImpl::RendererImpl::CreateTexture", "matching": 0.6245059288537549, "diff": "--- \n\n+++ \n\n@@ -1,127 +1,126 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 8\n+sub esp, 0xc\n push ebx\n push esi\n push edi\n-mov ebx, ecx\n push 8\n+mov edi, ecx\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n+mov dword ptr [ebp - 0x14], eax\n add esp, 4\n-mov edi, eax\n+mov esi, eax\n xor eax, eax\n mov dword ptr [ebp - 4], eax\n-test edi, edi\n+test esi, esi\n je 0x34\n mov byte ptr [ebp - 4], 1\n-mov esi, edi\n-mov dword ptr [edi], Tgl::Object (VTABLE)\n+mov ebx, esi\n+mov dword ptr [esi], Tgl::Object (VTABLE)\n mov byte ptr [ebp - 4], 2\n-mov dword ptr [edi], Tgl::Texture (VTABLE)\n+mov dword ptr [esi], Tgl::Texture (VTABLE)\n mov byte ptr [ebp - 4], al\n-mov dword ptr [edi + 4], eax\n-mov dword ptr [edi], TglImpl::TextureImpl (VTABLE)\n+mov dword ptr [esi + 4], eax\n+mov dword ptr [esi], TglImpl::TextureImpl (VTABLE)\n jmp 0x12\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x10c\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp 0x754\n-xor esi, esi\n-lea eax, [esi + 4]\n+mov ecx, dword ptr [ebp - 0x14]\n+jmp Tgl::Object::~Object (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x14]\n+jmp Tgl::Texture::~Texture (FUNCTION)\n+xor ebx, ebx\n+lea eax, [ebx + 4]\n push 0x40\n mov dword ptr [ebp - 4], 0xffffffff\n-mov ebx, dword ptr [ebx + 4]\n+mov edi, dword ptr [edi + 4]\n mov dword ptr [ebp - 0x10], eax\n-mov edi, 0\n+mov esi, 0\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n-mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [ebp - 0x18], eax\n mov dword ptr [ebp - 4], 3\n test eax, eax\n je 0x17\n push 0\n push 0\n push 0\n mov ecx, eax\n push 0\n push 0\n push 0\n push 0\n call TglImpl::TglD3DRMIMAGE::TglD3DRMIMAGE (FUNCTION)\n-mov edi, eax\n+mov esi, eax\n mov dword ptr [ebp - 4], 0xffffffff\n mov eax, dword ptr [ebp - 0x10]\n push eax\n+push esi\n push edi\n-push ebx\n-mov ebx, dword ptr [ebx]\n-call dword ptr [ebx + 0x28]\n-mov ebx, 1\n+mov edi, dword ptr [edi]\n+call dword ptr [edi + 0x28]\n+mov edi, 1\n test eax, eax\n jge 0x2\n-xor ebx, ebx\n-cmp ebx, 1\n+xor edi, edi\n+cmp edi, 1\n jne 0x30\n-push edi\n+push esi\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax]\n push ecx\n call TglImpl::TextureImpl::SetImage (FUNCTION)\n add esp, 8\n-mov ebx, eax\n-cmp ebx, 1\n-je 0x2e\n+mov edi, eax\n+cmp edi, 1\n+je 0x41\n mov eax, dword ptr [ebp - 0x10]\n mov eax, dword ptr [eax]\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 8]\n mov ecx, dword ptr [ebp - 0x10]\n-test edi, edi\n+test esi, esi\n mov dword ptr [ecx], 0\n je 0x16\n jmp 0x4\n-test edi, edi\n+test esi, esi\n je 0x10\n-mov ecx, edi\n+mov ecx, esi\n call TglImpl::TglD3DRMIMAGE::Destroy (FUNCTION)\n-push edi\n+push esi\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n+cmp edi, 1\n+je 0xe\n test ebx, ebx\n-jne 0xe\n-test esi, esi\n je 0x8\n push 1\n-mov eax, dword ptr [esi]\n-mov ecx, esi\n+mov eax, dword ptr [ebx]\n+mov ecx, ebx\n call dword ptr [eax]\n-xor esi, esi\n-mov eax, esi\n+xor ebx, ebx\n+mov eax, ebx\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n+mov eax, dword ptr [ebp - 0x18]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret \n+mov eax, <OFFSET12>\n+jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x14]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n-mov eax, <OFFSET10>\n-jmp ___CxxFrameHandler (FUNCTION)\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-ret \n-int3 "}, {"address": "0x100a2250", "name": "Tgl::Object::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100a2270", "name": "TglImpl::RendererImpl::SetTextureDefaultShadeCount", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,11 +1,11 @@\n\n-mov eax, dword ptr [ecx + 4]\n-mov ecx, dword ptr [esp + 4]\n+mov ecx, dword ptr [ecx + 4]\n+mov eax, dword ptr [esp + 4]\n+push eax\n push ecx\n-push eax\n-mov eax, dword ptr [eax]\n+mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x74]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n ret 4"}, {"address": "0x100a2290", "name": "TglImpl::RendererImpl::SetTextureDefaultColorCount", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,11 +1,11 @@\n\n-mov eax, dword ptr [ecx + 4]\n-mov ecx, dword ptr [esp + 4]\n+mov ecx, dword ptr [ecx + 4]\n+mov eax, dword ptr [esp + 4]\n+push eax\n push ecx\n-push eax\n-mov eax, dword ptr [eax]\n+mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x70]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n ret 4"}, {"address": "0x100a22b0", "name": "TglImpl::RendererImpl::ImplementationDataPtr", "matching": 1.0, "diff": ""}, {"address": "0x100a22c0", "name": "TglImpl::DeviceImpl::`scalar deleting destructor'", "matching": 0.918918918918919, "diff": "--- \n\n+++ \n\n@@ -8,30 +8,30 @@\n\n mov dword ptr fs:[0], esp\n sub esp, 4\n mov dword ptr [ebp - 4], 0\n mov eax, dword ptr [ecx + 4]\n mov dword ptr [ebp - 0x10], ecx\n test eax, eax\n je 0x10\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 8]\n-mov ecx, dword ptr [ebp - 0x10]\n-mov dword ptr [ecx + 4], 0\n+mov eax, dword ptr [ebp - 0x10]\n+mov dword ptr [eax + 4], 0\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n test byte ptr [ebp + 8], 1\n je 0xc\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0xb\n+jmp Tgl::Device::~Device (FUNCTION)"}, {"address": "0x100a23a0", "name": "TglImpl::ViewImpl::`scalar deleting destructor'", "matching": 0.918918918918919, "diff": "--- \n\n+++ \n\n@@ -8,30 +8,30 @@\n\n mov dword ptr fs:[0], esp\n sub esp, 4\n mov dword ptr [ebp - 4], 0\n mov eax, dword ptr [ecx + 4]\n mov dword ptr [ebp - 0x10], ecx\n test eax, eax\n je 0x10\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 8]\n-mov ecx, dword ptr [ebp - 0x10]\n-mov dword ptr [ecx + 4], 0\n+mov eax, dword ptr [ebp - 0x10]\n+mov dword ptr [eax + 4], 0\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n test byte ptr [ebp + 8], 1\n je 0xc\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0xb\n+jmp Tgl::View::~View (FUNCTION)"}, {"address": "0x100a2480", "name": "TglImpl::GroupImpl::`scalar deleting destructor'", "matching": 0.918918918918919, "diff": "--- \n\n+++ \n\n@@ -8,30 +8,30 @@\n\n mov dword ptr fs:[0], esp\n sub esp, 4\n mov dword ptr [ebp - 4], 0\n mov eax, dword ptr [ecx + 4]\n mov dword ptr [ebp - 0x10], ecx\n test eax, eax\n je 0x10\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 8]\n-mov ecx, dword ptr [ebp - 0x10]\n-mov dword ptr [ecx + 4], 0\n+mov eax, dword ptr [ebp - 0x10]\n+mov dword ptr [eax + 4], 0\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n test byte ptr [ebp + 8], 1\n je 0xc\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0xb\n+jmp Tgl::Group::~Group (FUNCTION)"}, {"address": "0x100a2560", "name": "TglImpl::CameraImpl::`scalar deleting destructor'", "matching": 0.918918918918919, "diff": "--- \n\n+++ \n\n@@ -8,30 +8,30 @@\n\n mov dword ptr fs:[0], esp\n sub esp, 4\n mov dword ptr [ebp - 4], 0\n mov eax, dword ptr [ecx + 4]\n mov dword ptr [ebp - 0x10], ecx\n test eax, eax\n je 0x10\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 8]\n-mov ecx, dword ptr [ebp - 0x10]\n-mov dword ptr [ecx + 4], 0\n+mov eax, dword ptr [ebp - 0x10]\n+mov dword ptr [eax + 4], 0\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n test byte ptr [ebp + 8], 1\n je 0xc\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0xb\n+jmp Tgl::Camera::~Camera (FUNCTION)"}, {"address": "0x100a2640", "name": "TglImpl::LightImpl::`scalar deleting destructor'", "matching": 0.918918918918919, "diff": "--- \n\n+++ \n\n@@ -8,30 +8,30 @@\n\n mov dword ptr fs:[0], esp\n sub esp, 4\n mov dword ptr [ebp - 4], 0\n mov eax, dword ptr [ecx + 4]\n mov dword ptr [ebp - 0x10], ecx\n test eax, eax\n je 0x10\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 8]\n-mov ecx, dword ptr [ebp - 0x10]\n-mov dword ptr [ecx + 4], 0\n+mov eax, dword ptr [ebp - 0x10]\n+mov dword ptr [eax + 4], 0\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n test byte ptr [ebp + 8], 1\n je 0xc\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0xb\n+jmp Tgl::Light::~Light (FUNCTION)"}, {"address": "0x100a2720", "name": "TglImpl::UnkImpl::`scalar deleting destructor'", "matching": 0.918918918918919, "diff": "--- \n\n+++ \n\n@@ -8,30 +8,30 @@\n\n mov dword ptr fs:[0], esp\n sub esp, 4\n mov dword ptr [ebp - 4], 0\n mov eax, dword ptr [ecx + 4]\n mov dword ptr [ebp - 0x10], ecx\n test eax, eax\n je 0x10\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 8]\n-mov ecx, dword ptr [ebp - 0x10]\n-mov dword ptr [ecx + 4], 0\n+mov eax, dword ptr [ebp - 0x10]\n+mov dword ptr [eax + 4], 0\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n test byte ptr [ebp + 8], 1\n je 0xc\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0xb\n+jmp Tgl::Unk::~Unk (FUNCTION)"}, {"address": "0x100a2800", "name": "TglImpl::TextureImpl::`scalar deleting destructor'", "matching": 0.918918918918919, "diff": "--- \n\n+++ \n\n@@ -8,30 +8,30 @@\n\n mov dword ptr fs:[0], esp\n sub esp, 4\n mov dword ptr [ebp - 4], 0\n mov eax, dword ptr [ecx + 4]\n mov dword ptr [ebp - 0x10], ecx\n test eax, eax\n je 0x10\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 8]\n-mov ecx, dword ptr [ebp - 0x10]\n-mov dword ptr [ecx + 4], 0\n+mov eax, dword ptr [ebp - 0x10]\n+mov dword ptr [eax + 4], 0\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n test byte ptr [ebp + 8], 1\n je 0xc\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp 0xb\n+jmp Tgl::Texture::~Texture (FUNCTION)"}, {"address": "0x100a28e0", "name": "Tgl::Device::`scalar deleting destructor'", "matching": 0.9629629629629629, "diff": "--- \n\n+++ \n\n@@ -17,11 +17,11 @@\n\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp -0x701\n+jmp Tgl::Object::~Object (FUNCTION)"}, {"address": "0x100a2950", "name": "Tgl::View::`scalar deleting destructor'", "matching": 0.9629629629629629, "diff": "--- \n\n+++ \n\n@@ -17,11 +17,11 @@\n\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp -0x771\n+jmp Tgl::Object::~Object (FUNCTION)"}, {"address": "0x100a29c0", "name": "Tgl::Group::`scalar deleting destructor'", "matching": 0.9629629629629629, "diff": "--- \n\n+++ \n\n@@ -17,11 +17,11 @@\n\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp -0x7e1\n+jmp Tgl::Object::~Object (FUNCTION)"}, {"address": "0x100a2a30", "name": "Tgl::Camera::`scalar deleting destructor'", "matching": 0.9629629629629629, "diff": "--- \n\n+++ \n\n@@ -17,11 +17,11 @@\n\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp -0x851\n+jmp Tgl::Object::~Object (FUNCTION)"}, {"address": "0x100a2aa0", "name": "Tgl::Light::`scalar deleting destructor'", "matching": 0.9629629629629629, "diff": "--- \n\n+++ \n\n@@ -17,11 +17,11 @@\n\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp -0x8c1\n+jmp Tgl::Object::~Object (FUNCTION)"}, {"address": "0x100a2b10", "name": "Tgl::Unk::`scalar deleting destructor'", "matching": 0.9629629629629629, "diff": "--- \n\n+++ \n\n@@ -17,11 +17,11 @@\n\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp -0x931\n+jmp Tgl::Object::~Object (FUNCTION)"}, {"address": "0x100a2b80", "name": "Tgl::Texture::`scalar deleting destructor'", "matching": 0.9629629629629629, "diff": "--- \n\n+++ \n\n@@ -17,11 +17,11 @@\n\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp -0x9a1\n+jmp Tgl::Object::~Object (FUNCTION)"}, {"address": "0x100a2bf0", "name": "TglImpl::DeviceImpl::ImplementationDataPtr", "matching": 1.0, "diff": ""}, {"address": "0x100a2c00", "name": "TglImpl::DeviceImpl::GetWidth", "matching": 1.0, "diff": ""}, {"address": "0x100a2c10", "name": "TglImpl::DeviceImpl::GetHeight", "matching": 1.0, "diff": ""}, {"address": "0x100a2c20", "name": "TglImpl::DeviceImpl::SetColorModel", "matching": 1.0, "diff": ""}, {"address": "0x100a2c30", "name": "TglImpl::DeviceImpl::SetShadingModel", "matching": 0.5084745762711864, "diff": "--- \n\n+++ \n\n@@ -1,34 +1,25 @@\n\n-mov ecx, dword ptr [ecx + 4]\n mov eax, dword ptr [esp + 4]\n cmp eax, 4\n ja 0x7\n-jmp dword ptr [eax*4 + 0x100a2c80]\n-mov eax, 0x88\n+jmp dword ptr [eax*4 + 0x1002da00]\n+mov edx, 0x88\n jmp 0x21\n-mov eax, 0x40\n+mov edx, 0x40\n jmp 0x1a\n-mov eax, 0x80\n+mov edx, 0x80\n jmp 0x13\n-mov eax, 0x88\n+mov edx, 0x88\n jmp 0xc\n-mov eax, 0x89\n+mov edx, 0x89\n jmp 0x5\n-mov eax, 0x8a\n+mov edx, 0x8a\n+mov eax, dword ptr [ecx + 4]\n+push edx\n push eax\n-push ecx\n-mov eax, dword ptr [ecx]\n+mov eax, dword ptr [eax]\n call dword ptr [eax + 0x54]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n ret 4\n-dec edx\n-sub al, 0xa\n-adc byte ptr [ecx + 0x2c], dl\n-or dl, byte ptr [eax]\n-pop eax\n-sub al, 0xa\n-adc byte ptr [edi + 0x2c], bl\n-or dl, byte ptr [eax]\n-sub al, 0xa"}, {"address": "0x100a2ca0", "name": "TglImpl::DeviceImpl::SetShadeCount", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,11 +1,11 @@\n\n mov eax, dword ptr [ecx + 4]\n-mov ecx, dword ptr [esp + 4]\n-push ecx\n+mov edx, dword ptr [esp + 4]\n+push edx\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 0x50]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n ret 4"}, {"address": "0x100a2cc0", "name": "TglImpl::DeviceImpl::SetDither", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,11 +1,11 @@\n\n mov eax, dword ptr [ecx + 4]\n-mov ecx, dword ptr [esp + 4]\n-push ecx\n+mov edx, dword ptr [esp + 4]\n+push edx\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 0x4c]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n ret 4"}, {"address": "0x100a2ce0", "name": "TglImpl::DeviceImpl::InitFromD3DDevice", "matching": 0.5769230769230769, "diff": "--- \n\n+++ \n\n@@ -1,26 +1,26 @@\n\n sub esp, 4\n+push esi\n mov eax, dword ptr [ecx + 4]\n-lea ecx, [esp]\n+mov esi, ecx\n+lea ecx, [esp + 4]\n push ecx\n-push <OFFSET1>\n+push IID_IDirect3DRMWinDevice (DATA)\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax]\n test eax, eax\n jl 0x19\n-mov eax, dword ptr [esp + 8]\n-mov ecx, dword ptr [esp]\n+mov eax, dword ptr [esi + 4]\n+lea ecx, [esp + 4]\n push eax\n push ecx\n-mov eax, dword ptr [ecx]\n-call dword ptr [eax + 0x30]\n-mov ecx, dword ptr [esp]\n+push eax\n+mov esi, dword ptr [eax]\n+call dword ptr [esi + 0x30]\n+mov ecx, dword ptr [esp + 4]\n push ecx\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 8]\n+pop esi\n add esp, 4\n ret 4\n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100a2d20", "name": "TglImpl::DeviceImpl::InitFromWindowsDevice", "matching": 0.4375, "diff": "--- \n\n+++ \n\n@@ -1,16 +1,16 @@\n\n sub esp, 4\n mov eax, dword ptr [ecx + 4]\n-lea ecx, [esp]\n-push ecx\n-push <OFFSET1>\n+lea edx, [esp]\n+push edx\n+push IID_IDirect3DRMWinDevice (DATA)\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax]\n test eax, eax\n-jl 0x19\n-mov eax, dword ptr [esp + 8]\n-mov ecx, dword ptr [esp]\n+jl 0xa\n+mov eax, dword ptr [esp]\n push eax\n-push ecx\n-mov eax, dword ptr [ecx]\n-call dword ptr [eax + 0x2c]\n+mov eax, dword ptr [eax]\n+call dword ptr [eax + 8]\n+add esp, 4\n+ret 4"}, {"address": "0x100a2d60", "name": "TglImpl::DeviceImpl::Update", "matching": 1.0, "diff": ""}, {"address": "0x100a2d80", "name": "TglImpl::ViewImpl::ImplementationDataPtr", "matching": 1.0, "diff": ""}, {"address": "0x100a2d90", "name": "TglImpl::ViewImpl::Add", "matching": 1.0, "diff": ""}, {"address": "0x100a2dc0", "name": "TglImpl::ViewImpl::Remove", "matching": 1.0, "diff": ""}, {"address": "0x100a2df0", "name": "TglImpl::ViewImpl::SetCamera", "matching": 0.49019607843137253, "diff": "--- \n\n+++ \n\n@@ -1,53 +1,49 @@\n\n mov eax, dword ptr [esp + 4]\n sub esp, 8\n push ebx\n push esi\n push edi\n-mov ebx, dword ptr [ecx + 4]\n+mov esi, dword ptr [eax + 4]\n+mov eax, dword ptr [ecx + 4]\n push ebp\n-mov edi, dword ptr [eax + 4]\n-push ebx\n+mov ebx, dword ptr [eax]\n+mov edi, ecx\n+push eax\n+call dword ptr [ebx + 0x1c]\n+mov ecx, dword ptr [eax + 4]\n+mov ebp, dword ptr [eax + 8]\n+mov ebx, eax\n+test ebp, ebp\n mov eax, dword ptr [ebx]\n-call dword ptr [eax + 0x1c]\n-mov ecx, dword ptr [eax + 4]\n-mov esi, dword ptr [eax + 8]\n-mov ebp, eax\n-test esi, esi\n+mov dword ptr [esp + 0x14], eax\n+je 0x24\n mov eax, dword ptr [ebp]\n-mov dword ptr [esp + 0x14], eax\n-je 0x22\n-mov eax, dword ptr [esi]\n push ecx\n-push esi\n+push ebp\n mov edx, dword ptr [eax + 0x98]\n mov dword ptr [esp + 0x18], edx\n call dword ptr [esp + 0x18]\n mov ecx, dword ptr [esp + 0x14]\n push ecx\n+push ebp\n+call dword ptr [esp + 0x18]\n+push ebp\n+mov ebp, dword ptr [ebp]\n+call dword ptr [ebp + 8]\n push esi\n-call dword ptr [esp + 0x18]\n-push esi\n-mov esi, dword ptr [esi]\n-call dword ptr [esi + 8]\n-push edi\n-mov dword ptr [ebp + 4], edi\n-mov dword ptr [ebp + 8], 0\n-push ebx\n-mov eax, dword ptr [ebx]\n-call dword ptr [eax + 0x48]\n+mov dword ptr [ebx + 4], esi\n+mov dword ptr [ebx + 8], 0\n+mov eax, dword ptr [edi + 4]\n+push eax\n+mov ebx, dword ptr [eax]\n+call dword ptr [ebx + 0x48]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 8\n ret 4\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100a2e70", "name": "TglImpl::ViewImpl::SetProjection", "matching": 0.7, "diff": "--- \n\n+++ \n\n@@ -1,20 +1,20 @@\n\n-mov ecx, dword ptr [ecx + 4]\n mov eax, dword ptr [esp + 4]\n test eax, eax\n je 0x9\n cmp eax, 1\n je 0x8\n-xor eax, eax\n+xor edx, edx\n jmp 0x9\n-xor eax, eax\n+xor edx, edx\n jmp 0x5\n-mov eax, 1\n+mov edx, 1\n+mov eax, dword ptr [ecx + 4]\n+push edx\n push eax\n-push ecx\n-mov eax, dword ptr [ecx]\n+mov eax, dword ptr [eax]\n call dword ptr [eax + 0x4c]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n ret 4"}, {"address": "0x100a2eb0", "name": "TglImpl::ViewImpl::SetFrustrum", "matching": 0.594059405940594, "diff": "--- \n\n+++ \n\n@@ -1,53 +1,48 @@\n\n fld dword ptr [esp + 0xc]\n fmul dword ptr [0.5 (FLOAT)]\n fmul qword ptr [0.005555555555555556 (FLOAT)]\n-fmul qword ptr [3.141592653589793 (FLOAT)]\n+fmul dword ptr [3.1415927410125732 (FLOAT)]\n fptan \n sub esp, 4\n push esi\n-push edi\n-mov edi, dword ptr [ecx + 4]\n-mov eax, dword ptr [esp + 0x10]\n+mov esi, ecx\n+mov eax, dword ptr [esi + 4]\n+mov ecx, dword ptr [esp + 0xc]\n+push ecx\n push eax\n fstp st(0)\n fmul dword ptr [esp + 0x14]\n fstp dword ptr [esp + 0xc]\n-mov esi, dword ptr [edi]\n-push edi\n-call dword ptr [esi + 0x38]\n+mov eax, dword ptr [eax]\n+call dword ptr [eax + 0x38]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n cmp eax, 1\n-jne 0x2d\n-mov eax, dword ptr [esp + 0x14]\n+jne 0x37\n+mov eax, dword ptr [esi + 4]\n+mov ecx, dword ptr [esp + 0x10]\n+push ecx\n push eax\n-push edi\n-call dword ptr [esi + 0x3c]\n+mov eax, dword ptr [eax]\n+call dword ptr [eax + 0x3c]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n cmp eax, 1\n-jne 0x14\n-mov eax, dword ptr [esp + 8]\n+jne 0x19\n+mov eax, dword ptr [esi + 4]\n+mov ecx, dword ptr [esp + 4]\n+mov esi, dword ptr [eax]\n+push ecx\n push eax\n-push edi\n call dword ptr [esi + 0x40]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n-pop edi\n pop esi\n add esp, 4\n ret 0xc\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-push esi\n-mov eax, dword ptr [ecx + 4]"}, {"address": "0x100a2f30", "name": "TglImpl::ViewImpl::SetBackgroundColor", "matching": 1.0, "diff": ""}, {"address": "0x100a2f80", "name": "TglImpl::ViewImpl::GetBackgroundColor", "matching": 1.0, "diff": ""}, {"address": "0x100a2fb0", "name": "TglImpl::ViewImpl::Clear", "matching": 1.0, "diff": ""}, {"address": "0x100a2fd0", "name": "TglImpl::ViewImpl::Render", "matching": 0.2777777777777778, "diff": "--- \n\n+++ \n\n@@ -1,51 +1,57 @@\n\n-mov eax, dword ptr [esp + 4]\n-sub esp, 0xc\n push ebx\n push esi\n+mov eax, dword ptr [ecx + 4]\n push edi\n-mov esi, dword ptr [ecx + 4]\n push ebp\n-mov edi, dword ptr [eax + 4]\n-push esi\n-mov eax, dword ptr [esi]\n-call dword ptr [eax + 0x1c]\n+mov esi, ecx\n+push eax\n+mov ebx, dword ptr [eax]\n+call dword ptr [ebx + 0x1c]\n mov ebp, dword ptr [eax + 8]\n-mov ebx, eax\n-cmp edi, ebp\n-je 0x6d\n-mov eax, dword ptr [ebx]\n-mov ecx, dword ptr [ebx + 4]\n-mov dword ptr [esp + 0x10], eax\n+mov edi, eax\n+mov eax, dword ptr [esp + 0x14]\n+mov ebx, dword ptr [eax + 4]\n+cmp ebp, ebx\n+je 0x41\n test ebp, ebp\n-je 0x24\n+je 0x15\n+mov eax, dword ptr [edi + 4]\n+push eax\n+push ebp\n mov eax, dword ptr [ebp]\n-push ecx\n-push ebp\n-mov edx, dword ptr [eax + 0x98]\n-mov dword ptr [esp + 0x1c], edx\n-call dword ptr [esp + 0x1c]\n-mov ecx, dword ptr [esp + 0x10]\n-push ecx\n-push ebp\n-call dword ptr [esp + 0x1c]\n+call dword ptr [eax + 0x98]\n push ebp\n mov ebp, dword ptr [ebp]\n call dword ptr [ebp + 8]\n-mov dword ptr [ebx + 8], edi\n-test edi, edi\n-mov eax, dword ptr [ebx + 0x14]\n-mov ecx, dword ptr [ebx + 0x10]\n-mov edx, dword ptr [ebx + 0xc]\n+mov dword ptr [edi + 8], ebx\n+test ebx, ebx\n+je 0x21\n mov ebp, dword ptr [ebx]\n-mov ebx, dword ptr [ebx + 4]\n-je 0x27\n+mov eax, dword ptr [edi + 0x14]\n push eax\n+mov ecx, dword ptr [edi + 0x10]\n push ecx\n+mov edx, dword ptr [edi + 0xc]\n push edx\n-mov eax, dword ptr [edi]\n-push edi\n-call dword ptr [eax + 0xc4]\n-mov ecx, dword ptr [edi]\n push ebx\n-push edi\n-mov edx, dword ptr [ecx + 0x2c]\n+call dword ptr [ebp + 0xc4]\n+mov ecx, dword ptr [edi + 4]\n+push ecx\n+push ebx\n+call dword ptr [ebp + 0x2c]\n+push ebx\n+call dword ptr [ebp + 4]\n+mov eax, dword ptr [esi + 4]\n+push ebx\n+push eax\n+mov ebx, dword ptr [eax]\n+call dword ptr [ebx + 0x34]\n+test eax, eax\n+mov eax, 1\n+jge 0x2\n+xor eax, eax\n+pop ebp\n+pop edi\n+pop esi\n+pop ebx\n+ret 4"}, {"address": "0x100a3080", "name": "TglImpl::ViewImpl::ForceUpdate", "matching": 1.0, "diff": ""}, {"address": "0x100a30c0", "name": "TglImpl::ViewImpl::Pick", "matching": 1.0, "diff": ""}, {"address": "0x100a30f0", "name": "TglImpl::ViewImpl::TransformWorldToScreen", "matching": 0.7272727272727273, "diff": "--- \n\n+++ \n\n@@ -1,25 +1,25 @@\n\n+mov edx, dword ptr [esp + 4]\n sub esp, 0x1c\n-mov edx, dword ptr [ecx + 4]\n-mov ecx, dword ptr [esp + 0x20]\n-mov eax, dword ptr [ecx]\n+mov ecx, dword ptr [ecx + 4]\n+mov eax, dword ptr [edx]\n mov dword ptr [esp], eax\n-mov eax, dword ptr [ecx + 4]\n-mov ecx, dword ptr [ecx + 8]\n+mov eax, dword ptr [edx + 4]\n+mov edx, dword ptr [edx + 8]\n mov dword ptr [esp + 4], eax\n lea eax, [esp]\n-mov dword ptr [esp + 8], ecx\n-lea ecx, [esp + 0xc]\n+mov dword ptr [esp + 8], edx\n+lea edx, [esp + 0xc]\n push eax\n+push edx\n+mov eax, dword ptr [ecx]\n push ecx\n-mov eax, dword ptr [edx]\n-push edx\n call dword ptr [eax + 0x50]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n cmp eax, 1\n jne 0x1f\n mov edx, dword ptr [esp + 0x24]\n mov ecx, dword ptr [esp + 0xc]\n mov dword ptr [edx], ecx"}, {"address": "0x100a3160", "name": "TglImpl::ViewImpl::TransformScreenToWorld", "matching": 0.9090909090909091, "diff": "--- \n\n+++ \n\n@@ -1,27 +1,27 @@\n\n mov edx, dword ptr [esp + 4]\n sub esp, 0x1c\n-mov ecx, dword ptr [ecx + 4]\n mov eax, dword ptr [edx]\n mov dword ptr [esp + 0xc], eax\n mov eax, dword ptr [edx + 4]\n+mov ecx, dword ptr [ecx + 4]\n mov dword ptr [esp + 0x10], eax\n mov eax, dword ptr [edx + 8]\n mov edx, dword ptr [edx + 0xc]\n mov dword ptr [esp + 0x14], eax\n+mov dword ptr [esp + 0x18], edx\n lea eax, [esp + 0xc]\n-mov dword ptr [esp + 0x18], edx\n lea edx, [esp]\n push eax\n push edx\n+push ecx\n mov eax, dword ptr [ecx]\n-push ecx\n call dword ptr [eax + 0x54]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n cmp eax, 1\n jne 0x18\n mov edx, dword ptr [esp + 0x24]\n mov ecx, dword ptr [esp]\n mov dword ptr [edx], ecx"}, {"address": "0x100a31d0", "name": "TglImpl::GroupImpl::ImplementationDataPtr", "matching": 1.0, "diff": ""}, {"address": "0x100a31e0", "name": "TglImpl::GroupImpl::SetTransformation", "matching": 0.45161290322580644, "diff": "--- \n\n+++ \n\n@@ -1,31 +1,31 @@\n\n sub esp, 0x40\n-mov edx, dword ptr [ecx + 4]\n-mov ecx, dword ptr [esp + 0x44]\n+lea edx, [esp]\n push esi\n-lea esi, [esp + 4]\n-mov eax, dword ptr [ecx]\n+mov esi, dword ptr [esp + 0x48]\n+mov eax, dword ptr [esi]\n+add edx, 0x10\n add esi, 0x10\n-add ecx, 0x10\n-mov dword ptr [esi - 0x10], eax\n-mov eax, dword ptr [ecx - 0xc]\n-mov dword ptr [esi - 0xc], eax\n-mov eax, dword ptr [ecx - 8]\n-mov dword ptr [esi - 8], eax\n-mov eax, dword ptr [ecx - 4]\n-mov dword ptr [esi - 4], eax\n+mov dword ptr [edx - 0x10], eax\n+mov eax, dword ptr [esi - 0xc]\n+mov dword ptr [edx - 0xc], eax\n+mov eax, dword ptr [esi - 8]\n+mov dword ptr [edx - 8], eax\n+mov eax, dword ptr [esi - 4]\n+mov dword ptr [edx - 4], eax\n lea eax, [esp + 0x44]\n-cmp esi, eax\n+cmp edx, eax\n jb -0x25\n-lea eax, [esp + 4]\n-mov esi, dword ptr [edx]\n+mov eax, dword ptr [ecx + 4]\n+lea ecx, [esp + 4]\n+push ecx\n+push 0\n push eax\n-push 0\n-push edx\n+mov esi, dword ptr [eax]\n call dword ptr [esi + 0x38]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n pop esi\n add esp, 0x40\n ret 4"}, {"address": "0x100a3240", "name": "TglImpl::GroupImpl::SetColor", "matching": 0.6987951807228916, "diff": "--- \n\n+++ \n\n@@ -1,43 +1,40 @@\n\n cmp dword ptr [esp + 0x10], 0\n push esi\n-mov esi, dword ptr [ecx + 4]\n-jle 0x32\n+mov esi, ecx\n+jle 0x35\n mov eax, dword ptr [esp + 0x14]\n mov ecx, dword ptr [esp + 0x10]\n mov edx, dword ptr [esp + 0xc]\n push eax\n mov eax, dword ptr [esp + 0xc]\n push ecx\n push edx\n push eax\n call _D3DRMCreateColorRGBA@16 (FUNCTION)\n+mov ecx, dword ptr [esi + 4]\n push eax\n-push esi\n-mov esi, dword ptr [esi]\n+push ecx\n+mov esi, dword ptr [ecx]\n call dword ptr [esi + 0xe0]\n test eax, eax\n mov eax, 1\n-jge 0x29\n+jge 0x2c\n pop esi\n xor eax, eax\n ret 0x10\n+mov ecx, dword ptr [esi + 4]\n mov eax, dword ptr [esp + 0x10]\n-mov ecx, dword ptr [esp + 0xc]\n-mov edx, dword ptr [esp + 8]\n+mov edx, dword ptr [esp + 0x14]\n push eax\n-push ecx\n-mov eax, dword ptr [esi]\n+mov esi, dword ptr [esp + 0xc]\n push edx\n push esi\n+mov eax, dword ptr [ecx]\n+push ecx\n call dword ptr [eax + 0xe4]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n pop esi\n ret 0x10\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100a32b0", "name": "TglImpl::GroupImpl::SetTexture", "matching": 1.0, "diff": ""}, {"address": "0x100a32e0", "name": "TglImpl::GroupImpl::GetTexture", "matching": 0.7246376811594203, "diff": "--- \n\n+++ \n\n@@ -1,18 +1,18 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 4\n+sub esp, 8\n push ebx\n push esi\n push edi\n mov ebx, ecx\n push 8\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov edi, eax\n xor eax, eax\n@@ -22,49 +22,47 @@\n\n mov byte ptr [ebp - 4], 1\n mov esi, edi\n mov dword ptr [edi], Tgl::Object (VTABLE)\n mov byte ptr [ebp - 4], 2\n mov dword ptr [edi], Tgl::Texture (VTABLE)\n mov byte ptr [ebp - 4], al\n mov dword ptr [edi + 4], eax\n mov dword ptr [edi], TglImpl::TextureImpl (VTABLE)\n jmp 0x12\n mov ecx, dword ptr [ebp - 0x10]\n-jmp -0x1104\n+jmp Tgl::Object::~Object (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp -0xabc\n+jmp Tgl::Texture::~Texture (FUNCTION)\n xor esi, esi\n mov dword ptr [ebp - 4], 0xffffffff\n mov eax, dword ptr [ebx + 4]\n-lea ecx, [ebp - 0x10]\n+lea ecx, [ebp - 0x14]\n mov ebx, dword ptr [eax]\n push ecx\n push eax\n call dword ptr [ebx + 0x70]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n-cmp eax, 1\n-jne 0x1c\n-lea eax, [esi + 4]\n-mov ecx, dword ptr [ebp - 0x10]\n-push eax\n-push <OFFSET6>\n-push ecx\n-mov eax, dword ptr [ecx]\n-call dword ptr [eax]\n test eax, eax\n-mov eax, 1\n-jge 0x2\n-xor eax, eax\n-mov ecx, dword ptr [ebp + 8]\n-pop edi\n-mov dword ptr [ecx], esi\n+je 0x6\n+mov eax, dword ptr [ebp - 0x14]\n+mov dword ptr [esi + 4], eax\n+mov eax, dword ptr [ebp + 8]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n+pop edi\n+mov dword ptr [eax], esi\n+mov eax, 1\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n-mov eax, <OFFSET7>\n+mov eax, <OFFSET8>\n+jmp ___CxxFrameHandler (FUNCTION)\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret "}, {"address": "0x100a33c0", "name": "TglImpl::GroupImpl::SetMaterialMode", "matching": 0.5, "diff": "--- \n\n+++ \n\n@@ -1,26 +1,26 @@\n\n mov eax, dword ptr [esp + 4]\n sub esp, 4\n-mov ecx, dword ptr [ecx + 4]\n test eax, eax\n-je 0x29\n+je 0x2c\n cmp eax, 1\n-je 0x2b\n+je 0x2e\n cmp eax, 2\n-je 0x2d\n-mov eax, dword ptr [esp]\n+je 0x30\n+mov edx, dword ptr [esp]\n+mov eax, dword ptr [ecx + 4]\n+push edx\n push eax\n-push ecx\n-mov eax, dword ptr [ecx]\n+mov eax, dword ptr [eax]\n call dword ptr [eax + 0xec]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n add esp, 4\n ret 4\n-mov eax, 1\n-jmp -0x22\n-mov eax, 2\n-jmp -0x29\n-xor eax, eax\n-jmp -0x2d\n+mov edx, 1\n+jmp -0x25\n+mov edx, 2\n+jmp -0x2c\n+xor edx, edx\n+jmp -0x30"}, {"address": "0x100a3410", "name": "TglImpl::GroupImpl::Add", "matching": 0.7692307692307693, "diff": "--- \n\n+++ \n\n@@ -1,13 +1,13 @@\n\n mov ecx, dword ptr [ecx + 4]\n mov eax, dword ptr [esp + 4]\n mov edx, dword ptr [eax + 4]\n+mov eax, dword ptr [edx]\n+push eax\n+push ecx\n mov eax, dword ptr [ecx]\n-push edx\n-push ecx\n call dword ptr [eax + 0x48]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n ret 4\n-int3 "}, {"address": "0x100a3430", "name": "TglImpl::GroupImpl::Add", "matching": 1.0, "diff": ""}, {"address": "0x100a3450", "name": "TglImpl::GroupImpl::Remove", "matching": 1.0, "diff": ""}, {"address": "0x100a3480", "name": "TglImpl::GroupImpl::Remove", "matching": 0.7407407407407407, "diff": "--- \n\n+++ \n\n@@ -1,14 +1,13 @@\n\n mov ecx, dword ptr [ecx + 4]\n mov eax, dword ptr [esp + 4]\n mov edx, dword ptr [eax + 4]\n+mov eax, dword ptr [edx]\n+push eax\n+push ecx\n mov eax, dword ptr [ecx]\n-push edx\n-push ecx\n call dword ptr [eax + 0xa4]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n ret 4\n-int3 \n-int3 "}, {"address": "0x100a36f0", "name": "TglImpl::CameraImpl::ImplementationDataPtr", "matching": 1.0, "diff": ""}, {"address": "0x100a3700", "name": "TglImpl::CameraImpl::SetTransformation", "matching": 0.3300970873786408, "diff": "--- \n\n+++ \n\n@@ -1,54 +1,49 @@\n\n-mov edx, dword ptr [esp + 4]\n sub esp, 0x4c\n-push ebx\n+lea edx, [esp + 0xc]\n push esi\n push edi\n-mov esi, dword ptr [ecx + 4]\n-lea ecx, [esp + 0x18]\n-mov eax, dword ptr [edx]\n-mov ebx, dword ptr [edx + 4]\n-mov edi, dword ptr [edx + 8]\n-mov dword ptr [ecx], eax\n-mov eax, dword ptr [edx + 0xc]\n-mov dword ptr [ecx + 4], ebx\n-mov dword ptr [ecx + 8], edi\n+mov esi, ecx\n+mov ecx, dword ptr [esp + 0x58]\n+mov eax, dword ptr [ecx]\n+mov edi, dword ptr [ecx + 4]\n+mov dword ptr [edx], eax\n+add edx, 0x10\n+mov eax, dword ptr [ecx + 8]\n add ecx, 0x10\n-add edx, 0x10\n-mov dword ptr [ecx - 4], eax\n-lea eax, [esp + 0x58]\n-cmp ecx, eax\n+mov dword ptr [edx - 0xc], edi\n+mov edi, dword ptr [ecx - 4]\n+mov dword ptr [edx - 8], eax\n+lea eax, [esp + 0x54]\n+mov dword ptr [edx - 4], edi\n+cmp edx, eax\n jb -0x24\n-mov ebx, dword ptr [esi]\n-lea eax, [esp + 0xc]\n+mov eax, dword ptr [esi + 4]\n+lea ecx, [esp + 8]\n+push ecx\n+push 0\n push eax\n+mov edi, dword ptr [eax]\n+call dword ptr [edi + 0x60]\n+mov eax, dword ptr [esi + 4]\n+lea ecx, [esp + 0x14]\n+push ecx\n push 0\n-mov edi, dword ptr [ebx + 0x60]\n-push esi\n-call edi\n-lea eax, [esp + 0x18]\n push eax\n+mov edi, dword ptr [eax]\n+call dword ptr [edi + 0x38]\n+mov edi, eax\n+lea ecx, [esp + 8]\n+mov eax, dword ptr [esi + 4]\n+push ecx\n+mov esi, dword ptr [eax]\n push 0\n-push esi\n-call dword ptr [ebx + 0x38]\n-mov ebx, eax\n-lea eax, [esp + 0xc]\n push eax\n-push 0\n-push esi\n-call edi\n+call dword ptr [esi + 0x60]\n mov eax, 1\n-test ebx, ebx\n+test edi, edi\n jge 0x2\n xor eax, eax\n pop edi\n pop esi\n-pop ebx\n add esp, 0x4c\n ret 4\n-int3 \n-lea eax, [ecx + 4]\n-ret \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100a3770", "name": "TglImpl::LightImpl::ImplementationDataPtr", "matching": 1.0, "diff": ""}, {"address": "0x100a3780", "name": "TglImpl::LightImpl::SetTransformation", "matching": 0.45161290322580644, "diff": "--- \n\n+++ \n\n@@ -1,31 +1,31 @@\n\n sub esp, 0x40\n-mov edx, dword ptr [ecx + 4]\n-mov ecx, dword ptr [esp + 0x44]\n+lea edx, [esp]\n push esi\n-lea esi, [esp + 4]\n-mov eax, dword ptr [ecx]\n+mov esi, dword ptr [esp + 0x48]\n+mov eax, dword ptr [esi]\n+add edx, 0x10\n add esi, 0x10\n-add ecx, 0x10\n-mov dword ptr [esi - 0x10], eax\n-mov eax, dword ptr [ecx - 0xc]\n-mov dword ptr [esi - 0xc], eax\n-mov eax, dword ptr [ecx - 8]\n-mov dword ptr [esi - 8], eax\n-mov eax, dword ptr [ecx - 4]\n-mov dword ptr [esi - 4], eax\n+mov dword ptr [edx - 0x10], eax\n+mov eax, dword ptr [esi - 0xc]\n+mov dword ptr [edx - 0xc], eax\n+mov eax, dword ptr [esi - 8]\n+mov dword ptr [edx - 8], eax\n+mov eax, dword ptr [esi - 4]\n+mov dword ptr [edx - 4], eax\n lea eax, [esp + 0x44]\n-cmp esi, eax\n+cmp edx, eax\n jb -0x25\n-lea eax, [esp + 4]\n-mov esi, dword ptr [edx]\n+mov eax, dword ptr [ecx + 4]\n+lea ecx, [esp + 4]\n+push ecx\n+push 0\n push eax\n-push 0\n-push edx\n+mov esi, dword ptr [eax]\n call dword ptr [esi + 0x38]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n pop esi\n add esp, 0x40\n ret 4"}, {"address": "0x100a37e0", "name": "TglImpl::LightImpl::SetColor", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,14 +1,14 @@\n\n sub esp, 8\n mov eax, dword ptr [ecx + 4]\n-lea ecx, [esp]\n-push ecx\n+lea edx, [esp]\n+push edx\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 0x54]\n lea ecx, [esp + 4]\n mov edx, dword ptr [esp]\n push ecx\n push 0\n push edx\n mov eax, dword ptr [edx]\n call dword ptr [eax + 0x10]"}, {"address": "0x100a3830", "name": "TglImpl::UnkImpl::ImplementationDataPtr", "matching": 1.0, "diff": ""}, {"address": "0x100a3ae0", "name": "TglImpl::UnkImpl::GetBoundingBox", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,14 +1,14 @@\n\n sub esp, 0x18\n mov eax, dword ptr [ecx + 4]\n-lea ecx, [esp]\n-push ecx\n+lea edx, [esp]\n+push edx\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 0x34]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n cmp eax, 1\n jne 0x30\n mov edx, dword ptr [esp + 0x1c]"}, {"address": "0x100a3b40", "name": "TglImpl::UnkImpl::Clone", "matching": 0.7391304347826086, "diff": "--- \n\n+++ \n\n@@ -7,63 +7,63 @@\n\n mov dword ptr fs:[0], esp\n sub esp, 4\n push ebx\n push esi\n push edi\n mov ebx, ecx\n push 8\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n-mov edi, eax\n+mov esi, eax\n xor eax, eax\n mov dword ptr [ebp - 4], eax\n-test edi, edi\n+test esi, esi\n je 0x34\n mov byte ptr [ebp - 4], 1\n-mov esi, edi\n-mov dword ptr [edi], Tgl::Object (VTABLE)\n+mov edi, esi\n+mov dword ptr [esi], Tgl::Object (VTABLE)\n mov byte ptr [ebp - 4], 2\n-mov dword ptr [edi], Tgl::Unk (VTABLE)\n+mov dword ptr [esi], Tgl::Unk (VTABLE)\n mov byte ptr [ebp - 4], al\n-mov dword ptr [edi + 4], eax\n-mov dword ptr [edi], TglImpl::UnkImpl (VTABLE)\n+mov dword ptr [esi + 4], eax\n+mov dword ptr [esi], TglImpl::UnkImpl (VTABLE)\n jmp 0x12\n mov ecx, dword ptr [ebp - 0x10]\n-jmp -0x1964\n+jmp Tgl::Object::~Object (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp -0x13fc\n-xor esi, esi\n+jmp Tgl::Unk::~Unk (FUNCTION)\n+xor edi, edi\n mov dword ptr [ebp - 4], 0xffffffff\n mov eax, dword ptr [ebx + 4]\n-lea ecx, [esi + 4]\n+lea ecx, [edi + 4]\n push ecx\n-push <OFFSET6>\n+push IID_IDirect3DRMMeshBuilder (DATA)\n push 0\n mov ebx, dword ptr [eax]\n push eax\n call dword ptr [ebx + 0xc]\n test eax, eax\n jge 0xe\n-test esi, esi\n+test edi, edi\n je 0x8\n push 1\n-mov eax, dword ptr [esi]\n-mov ecx, esi\n+mov eax, dword ptr [edi]\n+mov ecx, edi\n call dword ptr [eax]\n-xor esi, esi\n-mov eax, esi\n+xor edi, edi\n+mov eax, edi\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n-mov eax, <OFFSET7>\n+mov eax, <OFFSET9>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret "}, {"address": "0x100a3c10", "name": "TglImpl::TextureImpl::SetTexels", "matching": 0.4375, "diff": "--- \n\n+++ \n\n@@ -1,33 +1,31 @@\n\n push esi\n-push edi\n-mov edi, dword ptr [ecx + 4]\n-push edi\n-mov esi, dword ptr [edi]\n-call dword ptr [esi + 0x1c]\n-mov ecx, dword ptr [esp + 0x1c]\n-mov edx, dword ptr [esp + 0x18]\n+mov eax, dword ptr [ecx + 4]\n+mov esi, ecx\n+push eax\n+mov eax, dword ptr [eax]\n+call dword ptr [eax + 0x1c]\n+mov ecx, dword ptr [esp + 0x14]\n+push 1\n+mov edx, dword ptr [esp + 0x14]\n+push ecx\n+mov ecx, dword ptr [esp + 0x14]\n+push edx\n+mov edx, dword ptr [esp + 0x14]\n push ecx\n push edx\n-mov ecx, dword ptr [esp + 0x1c]\n-mov edx, dword ptr [esp + 0x18]\n-push ecx\n-push edx\n-mov ecx, dword ptr [esp + 0x1c]\n-push ecx\n mov ecx, eax\n call TglImpl::TglD3DRMIMAGE::CreateBuffer (FUNCTION)\n cmp eax, 1\n-jne 0x13\n+jne 0x18\n+mov eax, dword ptr [esi + 4]\n push 0\n+mov esi, dword ptr [eax]\n push 1\n-push edi\n+push eax\n call dword ptr [esi + 0x38]\n test eax, eax\n mov eax, 1\n jge 0x2\n xor eax, eax\n-pop edi\n pop esi\n-ret 0x14\n-int3 \n-int3 \n+ret 0x10"}, {"address": "0x100a3c60", "name": "TglImpl::TextureImpl::FillRowsOfTexture", "matching": 1.0, "diff": ""}, {"address": "0x100a3c90", "name": "TglImpl::TextureImpl::Changed", "matching": 1.0, "diff": ""}, {"address": "0x100a3cc0", "name": "TglImpl::TextureImpl::GetBufferAndPalette", "matching": 0.5142857142857142, "diff": "--- \n\n+++ \n\n@@ -7,50 +7,43 @@\n\n call dword ptr [ebx + 0x1c]\n mov ebx, dword ptr [eax]\n mov ecx, dword ptr [esp + 0x10]\n mov dword ptr [ecx], ebx\n mov ebx, dword ptr [esp + 0x14]\n mov edx, dword ptr [eax + 4]\n mov ecx, dword ptr [esp + 0x18]\n mov dword ptr [ebx], edx\n mov ebx, dword ptr [esp + 0x1c]\n mov esi, dword ptr [eax + 0x10]\n-mov edi, dword ptr [esp + 0x20]\n mov dword ptr [ecx], esi\n-xor ecx, ecx\n+mov ecx, dword ptr [esp + 0x20]\n mov edx, dword ptr [eax + 0x1c]\n mov dword ptr [ebx], edx\n-xor edx, edx\n mov esi, dword ptr [eax + 0x34]\n-mov dword ptr [edi], esi\n-test esi, esi\n-jle 0x2c\n-mov esi, dword ptr [esp + 0x24]\n-mov ebx, dword ptr [eax + 0x38]\n-add esi, 3\n-mov bl, byte ptr [ebx + edx]\n-mov byte ptr [esi - 3], bl\n-mov ebx, dword ptr [eax + 0x38]\n+mov dword ptr [ecx], esi\n+xor esi, esi\n+xor ecx, ecx\n+cmp dword ptr [eax + 0x34], esi\n+jle 0x35\n+mov edx, dword ptr [esp + 0x24]\n+mov edi, dword ptr [eax + 0x38]\n+add esi, 4\n+mov bl, byte ptr [edi + esi - 4]\n+mov edi, dword ptr [edx]\n add edx, 4\n inc ecx\n-mov bl, byte ptr [ebx + edx - 3]\n-mov byte ptr [esi - 2], bl\n-mov ebx, dword ptr [eax + 0x38]\n-mov bl, byte ptr [ebx + edx - 2]\n-mov byte ptr [esi - 1], bl\n-cmp dword ptr [edi], ecx\n-jg -0x28\n+mov byte ptr [edi], bl\n+mov edi, dword ptr [eax + 0x38]\n+mov bl, byte ptr [edi + esi - 3]\n+mov edi, dword ptr [edx - 4]\n+mov byte ptr [edi + 1], bl\n+mov edi, dword ptr [eax + 0x38]\n+mov bl, byte ptr [edi + esi - 2]\n+mov edi, dword ptr [edx - 4]\n+mov byte ptr [edi + 2], bl\n+cmp dword ptr [eax + 0x34], ecx\n+jg -0x31\n mov eax, 1\n pop edi\n pop esi\n pop ebx\n ret 0x18\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-push esi"}, {"address": "0x100a3d40", "name": "TglImpl::TextureImpl::SetPalette", "matching": 0.5, "diff": "--- \n\n+++ \n\n@@ -1,23 +1,21 @@\n\n push esi\n-push edi\n-mov edi, dword ptr [ecx + 4]\n-push edi\n-mov esi, dword ptr [edi]\n-call dword ptr [esi + 0x1c]\n-mov ecx, dword ptr [esp + 0x10]\n-mov edx, dword ptr [esp + 0xc]\n+mov eax, dword ptr [ecx + 4]\n+mov esi, ecx\n+push eax\n+mov eax, dword ptr [eax]\n+call dword ptr [eax + 0x1c]\n+mov ecx, dword ptr [esp + 0xc]\n+mov edx, dword ptr [esp + 8]\n push ecx\n push edx\n mov ecx, eax\n call TglImpl::TglD3DRMIMAGE::InitializePalette (FUNCTION)\n+mov eax, dword ptr [esi + 4]\n push 1\n+mov esi, dword ptr [eax]\n push 0\n-push edi\n+push eax\n call dword ptr [esi + 0x38]\n mov eax, 1\n-pop edi\n pop esi\n ret 8\n-int3 \n-int3 \n-lea eax, [ecx + 4]"}, {"address": "0x100a3d70", "name": "TglImpl::TextureImpl::ImplementationDataPtr", "matching": 1.0, "diff": ""}, {"address": "0x100a4420", "name": "OrientableROI::OrientableROI", "matching": 0.6758620689655173, "diff": "--- \n\n+++ \n\n@@ -9,80 +9,72 @@\n\n push ebx\n push esi\n mov dword ptr [ebp - 0x10], ecx\n mov dword ptr [ecx], ROI (VTABLE)\n push edi\n mov esi, ecx\n xor edi, edi\n lea eax, [esi + 0x18]\n mov dword ptr [esi + 4], edi\n mov dword ptr [esi + 8], edi\n-lea ebx, [esi + 0x58]\n lea ecx, [esi + 0x60]\n-push ecx\n mov dword ptr [ebp - 4], edi\n+mov dword ptr [esi + 0x14], eax\n+mov dword ptr [esi + 0x5c], ecx\n+lea ebx, [esi + 0x6c]\n+lea eax, [esi + 0x74]\n+push eax\n mov ecx, ebx\n-mov dword ptr [esi + 0x14], eax\n mov byte ptr [esi + 0xc], 1\n mov dword ptr [esi + 0x10], Matrix4 (VTABLE)\n mov dword ptr [esi + 0x10], MxMatrix (VTABLE)\n-call Vector2::Vector2 (FUNCTION)\n-lea eax, [esi + 0x74]\n-mov dword ptr [ebx], Mx3DPointFloat (VTABLE)\n-lea ebx, [esi + 0x6c]\n-push eax\n-mov ecx, ebx\n+mov dword ptr [esi + 0x58], Vector2 (VTABLE)\n+mov dword ptr [esi + 0x58], Mx3DPointFloat (VTABLE)\n call Vector2::Vector2 (FUNCTION)\n lea eax, [esi + 0x88]\n+lea ecx, [esi + 0x9c]\n mov dword ptr [ebx], Mx3DPointFloat (VTABLE)\n-lea ebx, [esi + 0x80]\n-push eax\n-mov ecx, ebx\n-call Vector2::Vector2 (FUNCTION)\n-lea eax, [esi + 0x9c]\n-mov dword ptr [ebx], Mx3DPointFloat (VTABLE)\n-lea ebx, [esi + 0x94]\n-push eax\n-mov ecx, ebx\n-call Vector2::Vector2 (FUNCTION)\n-lea eax, [esi + 0xb0]\n-mov dword ptr [ebx], Mx3DPointFloat (VTABLE)\n-lea ebx, [esi + 0xa8]\n-push eax\n-mov ecx, ebx\n-call Vector3::Vector3 (FUNCTION)\n+mov dword ptr [esi + 0x84], eax\n+lea edx, [esi + 0xb0]\n+mov dword ptr [esi + 0x98], ecx\n+mov dword ptr [esi + 0x80], Vector2 (VTABLE)\n+mov dword ptr [esi + 0x80], Mx3DPointFloat (VTABLE)\n lea eax, [esi + 0xc8]\n-mov edx, dword ptr [esi + 0x5c]\n-mov ecx, 0x4959038d\n-mov dword ptr [ebx], Mx3DPointFloat (VTABLE)\n+mov dword ptr [esi + 0xac], edx\n+mov dword ptr [esi + 0x94], Vector2 (VTABLE)\n mov dword ptr [esi + 0xc4], eax\n mov dword ptr [esi], OrientableROI (VTABLE)\n+mov ebx, dword ptr [esi + 0x5c]\n+mov ecx, 0x4959038d\n+mov dword ptr [esi + 0x94], Mx3DPointFloat (VTABLE)\n+mov dword ptr [esi + 0xa8], Vector2 (VTABLE)\n+mov dword ptr [esi + 0xa8], Mx3DPointFloat (VTABLE)\n mov dword ptr [esi + 0xc0], Vector2 (VTABLE)\n mov dword ptr [esi + 0xc0], Mx3DPointFloat (VTABLE)\n-mov dword ptr [edx], ecx\n-mov edx, dword ptr [esi + 0x5c]\n-mov dword ptr [edx + 4], ecx\n-mov edx, dword ptr [esi + 0x5c]\n-mov dword ptr [edx + 8], ecx\n+mov dword ptr [ebx], ecx\n+mov ebx, dword ptr [esi + 0x5c]\n+mov dword ptr [ebx + 4], ecx\n+mov ebx, dword ptr [esi + 0x5c]\n+mov dword ptr [ebx + 8], ecx\n mov ecx, 0xc959038d\n mov eax, dword ptr [esi + 0x70]\n mov dword ptr [eax], ecx\n mov eax, dword ptr [esi + 0x70]\n mov dword ptr [eax + 4], ecx\n mov eax, dword ptr [esi + 0x70]\n mov dword ptr [eax + 8], ecx\n-mov ecx, dword ptr [esi + 0xac]\n-mov dword ptr [ecx], edi\n-mov ecx, dword ptr [esi + 0xac]\n-mov dword ptr [ecx + 4], edi\n-mov ecx, dword ptr [esi + 0xac]\n-mov dword ptr [ecx + 8], edi\n+mov edx, dword ptr [esi + 0xac]\n+mov dword ptr [edx], edi\n+mov edx, dword ptr [esi + 0xac]\n+mov dword ptr [edx + 4], edi\n+mov edx, dword ptr [esi + 0xac]\n+mov dword ptr [edx + 8], edi\n mov dword ptr [esi + 0xbc], edi\n mov eax, dword ptr [esi + 0xc4]\n mov dword ptr [eax], edi\n mov eax, dword ptr [esi + 0xc4]\n mov dword ptr [eax + 4], edi\n mov eax, dword ptr [esi + 0xc4]\n mov dword ptr [eax + 8], edi\n mov ecx, dword ptr [esi + 0x14]\n mov dword ptr [ecx], edi\n mov ecx, dword ptr [esi + 0x14]\n@@ -114,43 +106,29 @@\n\n mov dword ptr [eax + 0x2c], edi\n mov eax, dword ptr [esi + 0x14]\n mov dword ptr [eax + 0x28], ecx\n mov eax, dword ptr [esi + 0x14]\n mov dword ptr [eax + 0x30], edi\n mov eax, dword ptr [esi + 0x14]\n mov dword ptr [eax + 0x34], edi\n mov eax, dword ptr [esi + 0x14]\n mov dword ptr [eax + 0x38], edi\n mov eax, dword ptr [esi + 0x14]\n-mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [eax + 0x3c], edi\n mov eax, dword ptr [esi + 0x14]\n+mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [eax + 0x3c], ecx\n+or dword ptr [esi + 0xd8], 3\n+mov dword ptr [esi + 0xd4], edi\n mov eax, esi\n mov ecx, dword ptr [ebp - 0xc]\n-mov dword ptr [esi + 0xd4], edi\n-or dword ptr [esi + 0xd8], 3\n+pop edi\n mov dword ptr fs:[0], ecx\n-pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n-mov eax, <OFFSET10>\n+mov eax, <OFFSET9>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp ROI::~ROI (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100a4630", "name": "OrientableROI::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100a46a0", "name": "LegoROI::WrappedSetLocalTransform", "matching": 1.0, "diff": ""}, {"address": "0x100a5910", "name": "OrientableROI::VTable0x1c", "matching": 1.0, "diff": ""}, {"address": "0x100a5930", "name": "OrientableROI::SetLocalTransform", "matching": 1.0, "diff": ""}, {"address": "0x100a5960", "name": "OrientableROI::VTable0x24", "matching": 1.0, "diff": ""}, {"address": "0x100a59b0", "name": "OrientableROI::UpdateWorldData", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -21,21 +21,21 @@\n\n mov ecx, ebx\n call dword ptr [edi + 0x18]\n mov ecx, ebx\n call dword ptr [edi + 0x2c]\n mov eax, dword ptr [ebx + 4]\n test eax, eax\n je 0x2c\n mov eax, dword ptr [eax + 4]\n mov ecx, dword ptr [eax]\n mov dword ptr [esp + 0xc], ecx\n-cmp ecx, eax\n+cmp eax, ecx\n je 0x1f\n mov eax, dword ptr [esp + 0xc]\n push esi\n mov ecx, dword ptr [eax + 8]\n mov edi, dword ptr [ecx]\n call dword ptr [edi + 0x28]\n mov ecx, dword ptr [esp + 0xc]\n mov eax, dword ptr [ebx + 4]\n mov edi, dword ptr [ecx]\n mov dword ptr [esp + 0xc], edi"}, {"address": "0x100a5a50", "name": "OrientableROI::UpdateWorldVelocity", "matching": 1.0, "diff": ""}, {"address": "0x100a5b40", "name": "CalcLocalTransform", "matching": 0.9876543209876543, "diff": "--- \n\n+++ \n\n@@ -14,24 +14,24 @@\n\n fld dword ptr [eax]\n fdiv st(1)\n mov ecx, dword ptr [esp + 0x34]\n fstp dword ptr [esp + 0x1c]\n fld dword ptr [eax + 4]\n fdiv st(1)\n fstp dword ptr [esp + 0x20]\n fdivr dword ptr [eax + 8]\n mov eax, dword ptr [ecx + 4]\n fstp dword ptr [esp + 0x24]\n+fld dword ptr [eax + 4]\n+fmul dword ptr [eax + 4]\n fld dword ptr [eax + 8]\n fmul dword ptr [eax + 8]\n-fld dword ptr [eax + 4]\n-fmul dword ptr [eax + 4]\n faddp st(1)\n fld dword ptr [eax]\n fmul dword ptr [eax]\n faddp st(1)\n fsqrt \n fld dword ptr [eax]\n fdiv st(1)\n fstp dword ptr [esp + 4]\n fld dword ptr [eax + 4]\n fdiv st(1)"}, {"address": "0x100a5d50", "name": "ROI::~ROI", "matching": 1.0, "diff": ""}, {"address": "0x100a5d60", "name": "ROI::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100a5d80", "name": "OrientableROI::GetWorldVelocity", "matching": 1.0, "diff": ""}, {"address": "0x100a5d90", "name": "OrientableROI::GetWorldBoundingBox", "matching": 1.0, "diff": ""}, {"address": "0x100a5da0", "name": "OrientableROI::GetWorldBoundingSphere", "matching": 1.0, "diff": ""}, {"address": "0x100a5db0", "name": "OrientableROI::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x100a5de0", "name": "RealtimeView::SetUserMaxLOD", "matching": 1.0, "diff": ""}, {"address": "0x100a5df0", "name": "RealtimeView::SetPartsThreshold", "matching": 1.0, "diff": ""}, {"address": "0x100a5e00", "name": "RealtimeView::GetUserMaxLOD", "matching": 1.0, "diff": ""}, {"address": "0x100a5e10", "name": "RealtimeView::GetPartsThreshold", "matching": 1.0, "diff": ""}, {"address": "0x100a5e20", "name": "RealtimeView::UpdateMaxLOD", "matching": 1.0, "diff": ""}, {"address": "0x100a6000", "name": "ViewManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100a6fc0", "name": "MxStopWatch::~MxStopWatch", "matching": 1.0, "diff": ""}, {"address": "0x100a6fd0", "name": "ViewLODListManager::ViewLODListManager", "matching": 0.9393939393939394, "diff": "--- \n\n+++ \n\n@@ -8,34 +8,34 @@\n\n sub esp, 8\n mov al, byte ptr [ebp - 0xd]\n mov dword ptr [ebp - 0x14], ecx\n push esi\n mov byte ptr [ecx + 4], al\n mov al, byte ptr [ebp - 0xe]\n xor esi, esi\n mov byte ptr [ecx + 5], al\n mov dword ptr [ecx + 0xc], esi\n mov dword ptr [ebp - 4], esi\n-cmp dword ptr [<OFFSET2>], esi\n+cmp dword ptr [_Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::_Nil (DATA)], esi\n jne 0x23\n push 0x18\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [eax + 4], esi\n mov dword ptr [eax + 0x14], 1\n-mov dword ptr [<OFFSET2>], eax\n+mov dword ptr [_Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::_Nil (DATA)], eax\n mov dword ptr [eax], esi\n-mov eax, dword ptr [<OFFSET2>]\n+mov eax, dword ptr [_Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::_Nil (DATA)]\n mov dword ptr [eax + 8], esi\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET4>\n-mov esi, dword ptr [<OFFSET2>]\n+mov esi, dword ptr [_Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::_Nil (DATA)]\n push 0x18\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n xor ecx, ecx\n mov edx, dword ptr [ebp - 0x14]\n mov dword ptr [eax + 4], esi\n mov dword ptr [ebp - 4], 3\n mov dword ptr [eax + 0x14], ecx\n mov dword ptr [edx + 8], eax\n mov dword ptr [edx + 0x10], ecx"}, {"address": "0x100a70c0", "name": "ViewLODListManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100a70e0", "name": "Map<char const *,ViewLODList *,ROINameComparator>::~Map<char const *,ViewLODList *,ROINameComparator>", "matching": 1.0, "diff": ""}, {"address": "0x100a7890", "name": "_Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::~_Tree<char const *,pair<char const * const,ViewLODList *>,map<char c", "matching": 0.9242424242424242, "diff": "--- \n\n+++ \n\n@@ -9,54 +9,54 @@\n\n mov eax, dword ptr [ecx]\n mov dword ptr [esp + 0xc], eax\n mov dword ptr [esp + 0x14], eax\n je 0x4e\n cmp dword ptr [ecx], eax\n jne 0x4a\n cmp ecx, ecx\n jne 0x46\n mov ebx, dword ptr [ecx + 4]\n mov edi, ebx\n-cmp dword ptr [<OFFSET1>], edi\n+cmp edi, dword ptr [_Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::_Nil (DATA)]\n je 0x1a\n mov eax, dword ptr [edi + 8]\n mov ecx, esi\n push eax\n-call <OFFSET2>\n+call _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::_Erase (FUNCTION)\n mov edi, dword ptr [edi]\n push ebx\n mov ebx, edi\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n jmp -0x22\n-mov eax, dword ptr [<OFFSET1>]\n+mov eax, dword ptr [_Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::_Nil (DATA)]\n mov ecx, dword ptr [esi + 4]\n mov dword ptr [ecx + 4], eax\n mov eax, dword ptr [esi + 4]\n mov dword ptr [esi + 0xc], 0\n mov dword ptr [eax], eax\n mov eax, dword ptr [esi + 4]\n mov dword ptr [eax + 8], eax\n jmp 0x36\n mov eax, dword ptr [esp + 0x10]\n cmp dword ptr [esp + 0xc], eax\n je 0x2c\n mov eax, dword ptr [esp + 0x14]\n lea ecx, [esp + 0x14]\n mov dword ptr [esp + 0x18], eax\n-call <OFFSET4>\n+call _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::iterator::_Inc (FUNCTION)\n mov eax, dword ptr [esp + 0x18]\n lea ecx, [esp + 0xc]\n push eax\n push ecx\n mov ecx, esi\n-call <OFFSET5>\n+call _Tree<char const *,pair<char const * const,ViewLODList *>,map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::_Kfn,ROINameComparator,allocator<ViewLODList *> >::erase (FUNCTION)\n mov ecx, dword ptr [esp + 0x10]\n cmp dword ptr [esp + 0x14], ecx\n jne -0x2c\n mov eax, dword ptr [esi + 4]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [esi + 4], 0\n add esp, 4\n mov dword ptr [esi + 0xc], 0\n pop edi"}, {"address": "0x100a80a0", "name": "map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >::~map<char const *,ViewLODList *,ROINameComparator,allocator<ViewLODList *> >", "matching": 1.0, "diff": ""}, {"address": "0x100a81c0", "name": "LegoROI::configureLegoROI", "matching": 1.0, "diff": ""}, {"address": "0x100a9ad0", "name": "LegoROI::`scalar deleting destructor'", "matching": 0.9629629629629629, "diff": "--- \n\n+++ \n\n@@ -17,11 +17,11 @@\n\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n-jmp -0x1771\n+jmp ViewROI::~ViewROI (FUNCTION)"}, {"address": "0x100a9bf0", "name": "LegoROI::CallTheHandlerFunction", "matching": 1.0, "diff": ""}, {"address": "0x100a9c50", "name": "LegoROI::ColorAliasLookup", "matching": 0.8979591836734694, "diff": "--- \n\n+++ \n\n@@ -19,31 +19,31 @@\n\n xor al, al\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret \n shl edi, 2\n mov edx, dword ptr [esp + 0x18]\n mov eax, dword ptr [esp + 0x1c]\n lea ecx, [edi + edi*4]\n-fild dword ptr [ecx + 0x101011b4]\n+fild dword ptr [ecx + 0x1008e58c]\n fmul qword ptr [0.00392156862745098 (FLOAT)]\n mov ebx, dword ptr [esp + 0x20]\n fstp dword ptr [edx]\n-fild dword ptr [ecx + 0x101011b8]\n+fild dword ptr [ecx + 0x1008e590]\n fmul qword ptr [0.00392156862745098 (FLOAT)]\n fstp dword ptr [eax]\n-fild dword ptr [ecx + 0x101011bc]\n+fild dword ptr [ecx + 0x1008e594]\n fmul qword ptr [0.00392156862745098 (FLOAT)]\n fstp dword ptr [ebx]\n-fild dword ptr [ecx + 0x101011c0]\n-mov eax, dword ptr [ecx + 0x101011c0]\n+fild dword ptr [ecx + 0x1008e598]\n+mov eax, dword ptr [ecx + 0x1008e598]\n mov ecx, dword ptr [esp + 0x24]\n mov al, 1\n pop edi\n fmul qword ptr [0.00392156862745098 (FLOAT)]\n pop esi\n pop ebx\n fstp dword ptr [ecx]\n add esp, 4\n ret "}, {"address": "0x100a9d30", "name": "LegoROI::SetSomeHandlerFunction", "matching": 1.0, "diff": ""}, {"address": "0x100a9e10", "name": "LegoROI::SetDisplayBB", "matching": 1.0, "diff": ""}, {"address": "0x100a9eb0", "name": "ViewROI::IntrinsicImportance", "matching": 1.0, "diff": ""}, {"address": "0x100a9ec0", "name": "ViewROI::GetGeometry", "matching": 1.0, "diff": ""}, {"address": "0x100a9ed0", "name": "ViewROI::GetGeometry", "matching": 1.0, "diff": ""}, {"address": "0x100a9ee0", "name": "ViewROI::UpdateWorldData", "matching": 1.0, "diff": ""}, {"address": "0x100aa250", "name": "ViewROI::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100aa2f0", "name": "OrientableROI::~OrientableROI", "matching": 1.0, "diff": ""}, {"address": "0x100aa340", "name": "LegoROI::IntrinsicImportance", "matching": 1.0, "diff": ""}, {"address": "0x100aa500", "name": "ViewROI::SetUnk101013d8", "matching": 1.0, "diff": ""}, {"address": "0x100aae90", "name": "Lego3DView::Lego3DView", "matching": 1.0, "diff": ""}, {"address": "0x100aaf10", "name": "Lego3DView::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100aaf30", "name": "Lego3DView::~Lego3DView", "matching": 1.0, "diff": ""}, {"address": "0x100aaf90", "name": "Lego3DView::Create", "matching": 1.0, "diff": ""}, {"address": "0x100ab0b0", "name": "Lego3DView::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100ab270", "name": "Lego3DView::Render", "matching": 1.0, "diff": ""}, {"address": "0x100ab2d0", "name": "InitializeCreateStruct", "matching": 1.0, "diff": ""}, {"address": "0x100ab320", "name": "Lego3DManager::Lego3DManager", "matching": 1.0, "diff": ""}, {"address": "0x100ab340", "name": "Lego3DManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100ab360", "name": "Lego3DManager::~Lego3DManager", "matching": 1.0, "diff": ""}, {"address": "0x100ab370", "name": "Lego3DManager::Create", "matching": 1.0, "diff": ""}, {"address": "0x100ab460", "name": "Lego3DManager::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100ab4b0", "name": "Lego3DManager::Render", "matching": 1.0, "diff": ""}, {"address": "0x100ab510", "name": "LegoView::LegoView", "matching": 1.0, "diff": ""}, {"address": "0x100ab580", "name": "LegoView::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100ab5a0", "name": "LegoView::~LegoView", "matching": 1.0, "diff": ""}, {"address": "0x100ab600", "name": "LegoView::Create", "matching": 1.0, "diff": ""}, {"address": "0x100ab6c0", "name": "LegoView::CreateView", "matching": 1.0, "diff": ""}, {"address": "0x100ab6f0", "name": "LegoView::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100ab730", "name": "LegoView1::LegoView1", "matching": 1.0, "diff": ""}, {"address": "0x100ab7a0", "name": "LegoView1::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100ab7c0", "name": "LegoView1::~LegoView1", "matching": 1.0, "diff": ""}, {"address": "0x100ab820", "name": "LegoView1::AddLightsToViewport", "matching": 1.0, "diff": ""}, {"address": "0x100ab860", "name": "LegoView1::Create", "matching": 0.9595375722543352, "diff": "--- \n\n+++ \n\n@@ -38,40 +38,40 @@\n\n push edi\n mov ecx, ebx\n call ebp\n lea ecx, [esp + 0x18]\n mov dword ptr [esi + 0x80], eax\n lea eax, [esp + 0xc8]\n mov dword ptr [esp + 0x14], ecx\n mov ecx, Mx3DPointFloat (VTABLE)\n mov dword ptr [esp + 0x18], edi\n mov dword ptr [esp + 0x10], ecx\n-mov dword ptr [esp + 0x1c], edi\n mov dword ptr [esp + 0x20], edi\n mov dword ptr [esp + 0xc4], eax\n+mov dword ptr [esp + 0xc0], ecx\n lea edx, [esp + 0xb4]\n-mov dword ptr [esp + 0xc0], ecx\n mov dword ptr [esp + 0xc8], edi\n+mov dword ptr [esp + 0xcc], edi\n mov dword ptr [esp + 0xd0], edi\n mov dword ptr [esp + 0xb0], edx\n mov dword ptr [esp + 0xac], ecx\n lea ecx, [esp + 0x6c]\n mov dword ptr [esp + 0xb8], edi\n mov dword ptr [esp + 0xbc], edi\n mov dword ptr [esp + 0x68], ecx\n lea eax, [esp + 0x64]\n lea edx, [esp + 0xac]\n-lea ecx, [esp + 0xc0]\n+lea ecx, [esp + 0x10]\n push eax\n-lea eax, [esp + 0x14]\n+lea eax, [esp + 0xc4]\n push edx\n-mov dword ptr [esp + 0xd4], 0xbf800000\n+mov dword ptr [esp + 0x24], 0xbf800000\n mov dword ptr [esp + 0xbc], 0x3f800000\n mov dword ptr [esp + 0x6c], MxMatrix (VTABLE)\n push ecx\n push eax\n call CalcLocalTransform (FUNCTION)\n mov ecx, dword ptr [esp + 0x78]\n add esp, 0x10\n mov edx, dword ptr [ecx]\n mov dword ptr [esp + 0x24], edx\n mov eax, dword ptr [ecx + 4]\n@@ -109,25 +109,25 @@\n\n mov ecx, dword ptr [esi + 0x7c]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 8]\n mov ecx, dword ptr [esp + 0x14]\n lea eax, [esp + 0x64]\n lea edx, [esp + 0xac]\n push eax\n push edx\n mov dword ptr [ecx], edi\n mov ecx, dword ptr [esp + 0x1c]\n-lea eax, [esp + 0x18]\n+lea eax, [esp + 0xc8]\n mov dword ptr [ecx + 4], 0x43160000\n mov ecx, dword ptr [esp + 0x1c]\n mov dword ptr [ecx + 8], 0xc3160000\n-lea ecx, [esp + 0xc8]\n+lea ecx, [esp + 0x18]\n push ecx\n push eax\n call CalcLocalTransform (FUNCTION)\n mov ecx, dword ptr [esp + 0x78]\n add esp, 0x10\n mov edi, dword ptr [ecx]\n mov dword ptr [esp + 0x24], edi\n mov eax, dword ptr [ecx + 4]\n mov dword ptr [esp + 0x28], eax\n mov edx, dword ptr [ecx + 8]"}, {"address": "0x100abad0", "name": "LegoView1::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100abbf0", "name": "TglSurface::TglSurface", "matching": 1.0, "diff": ""}, {"address": "0x100abcf0", "name": "TglSurface::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100abd10", "name": "MxFrequencyMeter::~MxFrequencyMeter", "matching": 1.0, "diff": ""}, {"address": "0x100abd60", "name": "TglSurface::~TglSurface", "matching": 1.0, "diff": ""}, {"address": "0x100abde0", "name": "TglSurface::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100abe10", "name": "GetBitsPerPixel", "matching": 1.0, "diff": ""}, {"address": "0x100abe50", "name": "TglSurface::Create", "matching": 1.0, "diff": ""}, {"address": "0x100ac030", "name": "TglSurface::DestroyView", "matching": 1.0, "diff": ""}, {"address": "0x100ac050", "name": "TglSurface::Render", "matching": 0.9802631578947368, "diff": "--- \n\n+++ \n\n@@ -44,26 +44,26 @@\n\n lea ecx, [ebp - 0x14]\n push ecx\n call edi\n mov eax, dword ptr [ebp - 0x10]\n cmp dword ptr [ebp - 0x28], eax\n je 0x10\n mov dword ptr [ebp - 0x24], 0xffffffff\n mov dword ptr [ebp - 0x20], 0x7fefffff\n jmp 0x25\n mov eax, dword ptr [ebp - 0x14]\n+mov ecx, dword ptr [ebp - 0x1c]\n sub eax, dword ptr [ebp - 0x2c]\n mov dword ptr [ebp - 0x14], eax\n xor eax, eax\n mov dword ptr [ebp - 0x10], eax\n fild qword ptr [ebp - 0x14]\n-mov ecx, dword ptr [ebp - 0x1c]\n mov dword ptr [ebp - 0x14], ecx\n mov dword ptr [ebp - 0x10], eax\n fild qword ptr [ebp - 0x14]\n fdivp st(1)\n fadd qword ptr [ebp - 0x24]\n fstp qword ptr [ebp - 0x24]\n lea eax, [ebp - 0x14]\n lea ebx, [esi + 0x38]\n push eax\n call edi\n@@ -124,24 +124,24 @@\n\n mov dword ptr [esi + 0x48], eax\n mov dword ptr [ecx + 4], eax\n mov dword ptr [esi + 0x30], eax\n mov dword ptr [esi + 0x34], eax\n mov dword ptr [ebx], eax\n mov dword ptr [ebx + 4], eax\n mov dword ptr [esi + 0x28], eax\n add esi, 0x50\n push esi\n call edi\n+mov eax, dword ptr [ebp - 0x20]\n+mov ecx, dword ptr [ebp - 0x24]\n mov dword ptr [ebp - 4], 0xffffffff\n-mov eax, dword ptr [ebp - 0x20]\n mov dword ptr [ebp - 0x10], eax\n-mov ecx, dword ptr [ebp - 0x24]\n mov dword ptr [ebp - 0x14], ecx\n call <OFFSET4>\n fld qword ptr [ebp - 0x14]\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp"}, {"address": "0x100ac220", "name": "MxNotification::MxNotification", "matching": 1.0, "diff": ""}, {"address": "0x100ac240", "name": "MxNotification::~MxNotification", "matching": 1.0, "diff": ""}, {"address": "0x100ac250", "name": "MxNotificationManager::MxNotificationManager", "matching": 1.0, "diff": ""}, {"address": "0x100ac320", "name": "list<unsigned int,allocator<unsigned int> >::~list<unsigned int,allocator<unsigned int> >", "matching": 0.972972972972973, "diff": "--- \n\n+++ \n\n@@ -16,21 +16,21 @@\n\n mov eax, dword ptr [eax]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [edx]\n mov eax, dword ptr [esp + 8]\n push eax\n mov edx, dword ptr [eax]\n mov dword ptr [edx + 4], ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 8]\n-cmp edi, dword ptr [esp + 0x10]\n+cmp dword ptr [esp + 0x10], edi\n jne -0x2e\n mov eax, dword ptr [esi + 4]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [esi + 4], 0\n add esp, 4\n mov dword ptr [esi + 8], 0\n pop edi\n pop esi\n add esp, 0xc"}, {"address": "0x100ac390", "name": "MxNotificationManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100ac3b0", "name": "MxIdList::~MxIdList", "matching": 1.0, "diff": ""}, {"address": "0x100ac400", "name": "List<unsigned int>::~List<unsigned int>", "matching": 1.0, "diff": ""}, {"address": "0x100ac450", "name": "MxNotificationManager::~MxNotificationManager", "matching": 1.0, "diff": ""}, {"address": "0x100ac540", "name": "List<MxNotification *>::~List<MxNotification *>", "matching": 1.0, "diff": ""}, {"address": "0x100ac590", "name": "list<MxNotification *,allocator<MxNotification *> >::~list<MxNotification *,allocator<MxNotification *> >", "matching": 1.0, "diff": ""}, {"address": "0x100ac600", "name": "MxNotificationManager::Create", "matching": 1.0, "diff": ""}, {"address": "0x100ac6c0", "name": "MxNotificationManager::Send", "matching": 0.8543689320388349, "diff": "--- \n\n+++ \n\n@@ -1,93 +1,93 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 0x14\n push ebx\n push esi\n+lea eax, [ecx + 0x10]\n push edi\n-lea eax, [ecx + 0x10]\n-mov edi, ecx\n+mov esi, ecx\n push eax\n lea ecx, [ebp - 0x1c]\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n mov dword ptr [ebp - 4], 0\n-cmp byte ptr [edi + 0x3c], 0\n+cmp byte ptr [esi + 0x3c], 0\n jne 0x24\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n mov eax, 0xffffffff\n mov ecx, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], ecx\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 8\n mov ebx, dword ptr [ebp + 8]\n-mov ecx, dword ptr [edi + 0x34]\n+mov ecx, dword ptr [esi + 0x34]\n mov dword ptr [ebp - 0x14], ecx\n mov eax, dword ptr [ebx + 4]\n mov dword ptr [ebp - 0x20], eax\n mov edx, dword ptr [ecx]\n mov eax, edx\n-cmp edx, ecx\n+cmp ecx, edx\n je 0xf\n mov edx, dword ptr [ebp - 0x20]\n cmp dword ptr [eax + 8], edx\n je 0x7\n mov eax, dword ptr [eax]\n-cmp eax, dword ptr [ebp - 0x14]\n+cmp dword ptr [ebp - 0x14], eax\n jne -0xf\n cmp eax, ecx\n je -0x4e\n push 8\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x14], eax\n add esp, 4\n mov byte ptr [ebp - 4], 1\n-mov esi, eax\n-test esi, esi\n+mov edi, eax\n+test edi, edi\n je 0x11\n mov eax, dword ptr [ebp + 0xc]\n-mov ecx, esi\n+mov ecx, edi\n push eax\n push ebx\n call MxNotification::MxNotification (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n jmp 0x7\n mov dword ptr [ebp - 0x10], 0\n mov byte ptr [ebp - 4], 0\n cmp dword ptr [ebp - 0x10], 0\n je -0x8b\n-mov esi, dword ptr [edi + 8]\n+mov esi, dword ptr [esi + 8]\n push 0xc\n mov eax, dword ptr [esi + 4]\n mov dword ptr [ebp - 0x14], eax\n-lea ebx, [eax + 4]\n-mov edi, dword ptr [ebx]\n+lea edi, [eax + 4]\n+mov ebx, dword ptr [edi]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n-test edi, edi\n+test ebx, ebx\n je 0xa\n mov ecx, dword ptr [ebp - 0x14]\n mov dword ptr [eax], ecx\n-mov dword ptr [eax + 4], edi\n+mov dword ptr [eax + 4], ebx\n jmp 0x5\n mov dword ptr [eax], eax\n mov dword ptr [eax + 4], eax\n-mov dword ptr [ebx], eax\n+mov dword ptr [edi], eax\n mov ecx, dword ptr [eax + 4]\n mov dword ptr [ecx], eax\n add eax, 8\n je 0x5\n mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [eax], ecx\n mov dword ptr [ebp - 4], 0xffffffff\n inc dword ptr [esi + 8]\n call <OFFSET3>\n xor eax, eax"}, {"address": "0x100ac800", "name": "MxNotificationManager::Tickle", "matching": 1.0, "diff": ""}, {"address": "0x100ac990", "name": "MxNotificationManager::FlushPending", "matching": 0.9148418491484185, "diff": "--- \n\n+++ \n\n@@ -22,56 +22,56 @@\n\n mov eax, 0xffffffff\n lea ecx, [ebp - 0x2c]\n lea eax, [esi + 0x10]\n mov dword ptr [ebp - 4], edi\n mov dword ptr [ebp - 4], 2\n push eax\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n mov byte ptr [ebp - 4], 3\n mov eax, dword ptr [esi + 0xc]\n test eax, eax\n-je 0xa1\n+je 0xa0\n mov eax, dword ptr [eax + 4]\n+mov edi, dword ptr [ebp + 8]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n cmp ecx, eax\n-mov edi, dword ptr [ebp + 8]\n-je 0x91\n+je 0x90\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 8]\n mov dword ptr [ebp - 0x14], ecx\n mov ecx, dword ptr [edi + 4]\n mov eax, dword ptr [ebp - 0x14]\n mov edx, dword ptr [eax]\n cmp dword ptr [edx + 4], ecx\n je 0x19\n mov edx, dword ptr [eax + 4]\n mov eax, dword ptr [edx + 8]\n test eax, eax\n je 0x5\n cmp dword ptr [eax + 4], ecx\n je 0xa\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n-jmp 0x4e\n-mov eax, dword ptr [ebp - 0x10]\n+jmp 0x4d\n+mov eax, dword ptr [ebp - 0x10]\n+mov ebx, dword ptr [esi + 0xc]\n mov dword ptr [ebp - 0x18], eax\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n mov ecx, dword ptr [ebp - 0x18]\n-mov eax, dword ptr [ebp - 0x18]\n-mov edx, dword ptr [ecx + 4]\n-mov ebx, dword ptr [esi + 0xc]\n add ecx, 4\n+mov eax, dword ptr [ebp - 0x18]\n mov eax, dword ptr [eax]\n+mov edx, dword ptr [ecx]\n mov dword ptr [edx], eax\n mov edx, dword ptr [ecx]\n mov eax, dword ptr [ebp - 0x18]\n mov ecx, dword ptr [eax]\n mov dword ptr [ecx + 4], edx\n mov eax, dword ptr [ebp - 0x18]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n lea edx, [ebp - 0x14]\n@@ -79,58 +79,58 @@\n\n dec dword ptr [ebx + 8]\n mov ecx, dword ptr [ebp - 0x20]\n push edx\n push ecx\n push eax\n lea ecx, [ebp - 0x24]\n call list<MxNotification *,allocator<MxNotification *> >::insert (FUNCTION)\n mov eax, dword ptr [esi + 0xc]\n mov ecx, dword ptr [ebp - 0x10]\n cmp dword ptr [eax + 4], ecx\n-jne -0x8c\n+jne -0x8b\n jmp 0x3\n mov edi, dword ptr [ebp + 8]\n mov eax, dword ptr [esi + 8]\n mov eax, dword ptr [eax + 4]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n-cmp eax, ecx\n-je 0x8c\n+cmp ecx, eax\n+je 0x8b\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 8]\n mov dword ptr [ebp - 0x14], ecx\n mov ecx, dword ptr [edi + 4]\n mov eax, dword ptr [ebp - 0x14]\n mov edx, dword ptr [eax]\n cmp dword ptr [edx + 4], ecx\n je 0x19\n mov edx, dword ptr [eax + 4]\n mov eax, dword ptr [edx + 8]\n test eax, eax\n je 0x5\n cmp dword ptr [eax + 4], ecx\n je 0xa\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n-jmp 0x4e\n-mov eax, dword ptr [ebp - 0x10]\n+jmp 0x4d\n+mov eax, dword ptr [ebp - 0x10]\n+mov ebx, dword ptr [esi + 8]\n mov dword ptr [ebp - 0x18], eax\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n mov ecx, dword ptr [ebp - 0x18]\n-mov eax, dword ptr [ebp - 0x18]\n-mov edx, dword ptr [ecx + 4]\n-mov ebx, dword ptr [esi + 8]\n add ecx, 4\n+mov eax, dword ptr [ebp - 0x18]\n mov eax, dword ptr [eax]\n+mov edx, dword ptr [ecx]\n mov dword ptr [edx], eax\n mov edx, dword ptr [ecx]\n mov eax, dword ptr [ebp - 0x18]\n mov ecx, dword ptr [eax]\n mov dword ptr [ecx + 4], edx\n mov eax, dword ptr [ebp - 0x18]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n lea edx, [ebp - 0x14]\n@@ -138,21 +138,21 @@\n\n dec dword ptr [ebx + 8]\n mov ecx, dword ptr [ebp - 0x20]\n push edx\n push ecx\n push eax\n lea ecx, [ebp - 0x24]\n call list<MxNotification *,allocator<MxNotification *> >::insert (FUNCTION)\n mov eax, dword ptr [esi + 8]\n mov ecx, dword ptr [ebp - 0x10]\n cmp dword ptr [eax + 4], ecx\n-jne -0x8c\n+jne -0x8b\n mov byte ptr [ebp - 4], 2\n call <OFFSET6>\n cmp dword ptr [ebp - 0x1c], 0\n je 0x5b\n xor esi, esi\n lea eax, [ebp - 0x10]\n lea ecx, [ebp - 0x24]\n push eax\n call list<MxNotification *,allocator<MxNotification *> >::begin (FUNCTION)\n mov eax, dword ptr [eax]\n@@ -196,10 +196,11 @@\n\n ret 4\n lea ecx, [ebp - 0x2c]\n jmp MxAutoLocker::~MxAutoLocker (FUNCTION)\n lea ecx, [ebp - 0x24]\n jmp list<MxNotification *,allocator<MxNotification *> >::~list<MxNotification *,allocator<MxNotification *> > (FUNCTION)\n lea ecx, [ebp - 0x24]\n jmp List<MxNotification *>::~List<MxNotification *> (FUNCTION)\n mov eax, <OFFSET14>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x24]\n+jmp MxNotificationPtrList::~MxNotificationPtrList (FUNCTION)"}, {"address": "0x100acbf0", "name": "list<MxNotification *,allocator<MxNotification *> >::begin", "matching": 1.0, "diff": ""}, {"address": "0x100acc00", "name": "list<MxNotification *,allocator<MxNotification *> >::insert", "matching": 1.0, "diff": ""}, {"address": "0x100acc50", "name": "list<MxNotification *,allocator<MxNotification *> >::erase", "matching": 1.0, "diff": ""}, {"address": "0x100acca0", "name": "list<MxNotification *,allocator<MxNotification *> >::_Buynode", "matching": 1.0, "diff": ""}, {"address": "0x100accd0", "name": "MxNotificationPtrList::~MxNotificationPtrList", "matching": 1.0, "diff": ""}, {"address": "0x100acd20", "name": "MxNotificationManager::Register", "matching": 0.9852941176470589, "diff": "--- \n\n+++ \n\n@@ -20,21 +20,21 @@\n\n mov dword ptr [ebp - 0x14], edi\n mov ecx, dword ptr [eax + 4]\n mov dword ptr [ebp - 0x20], ecx\n mov eax, dword ptr [edi]\n cmp eax, edi\n je 0x31\n mov edx, dword ptr [ebp - 0x20]\n cmp dword ptr [eax + 8], edx\n je 0x7\n mov eax, dword ptr [eax]\n-cmp dword ptr [ebp - 0x14], eax\n+cmp eax, dword ptr [ebp - 0x14]\n jne -0xf\n cmp eax, edi\n je 0x1e\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax\n pop esi\n pop ebx"}, {"address": "0x100acdf0", "name": "MxNotificationManager::Unregister", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -22,21 +22,21 @@\n\n mov eax, dword ptr [ecx]\n mov edx, eax\n cmp eax, ecx\n je 0xf\n mov eax, dword ptr [ebp - 0x20]\n cmp dword ptr [edx + 8], eax\n je 0x7\n mov edx, dword ptr [edx]\n cmp dword ptr [ebp - 0x14], edx\n jne -0xf\n-cmp edx, ecx\n+cmp ecx, edx\n je 0x23\n mov ecx, dword ptr [edx]\n mov eax, dword ptr [edx + 4]\n push edx\n mov dword ptr [eax], ecx\n mov eax, dword ptr [edx + 4]\n mov ecx, dword ptr [edx]\n mov dword ptr [ecx + 4], eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4"}, {"address": "0x100acea0", "name": "ObjectFactory", "matching": 1.0, "diff": ""}, {"address": "0x100aceb0", "name": "NotificationManager", "matching": 1.0, "diff": ""}, {"address": "0x100acec0", "name": "TickleManager", "matching": 1.0, "diff": ""}, {"address": "0x100aced0", "name": "Timer", "matching": 1.0, "diff": ""}, {"address": "0x100acee0", "name": "AtomIdCounterSet", "matching": 1.0, "diff": ""}, {"address": "0x100acef0", "name": "Streamer", "matching": 1.0, "diff": ""}, {"address": "0x100acf00", "name": "MSoundManager", "matching": 1.0, "diff": ""}, {"address": "0x100acf10", "name": "MVideoManager", "matching": 1.0, "diff": ""}, {"address": "0x100acf20", "name": "VariableTable", "matching": 1.0, "diff": ""}, {"address": "0x100acf30", "name": "MusicManager", "matching": 1.0, "diff": ""}, {"address": "0x100acf40", "name": "EventManager", "matching": 1.0, "diff": ""}, {"address": "0x100acf50", "name": "Start", "matching": 1.0, "diff": ""}, {"address": "0x100acf70", "name": "DeleteObject", "matching": 1.0, "diff": ""}, {"address": "0x100acf90", "name": "MxAtomId::MxAtomId", "matching": 1.0, "diff": ""}, {"address": "0x100acfd0", "name": "MxAtomId::~MxAtomId", "matching": 1.0, "diff": ""}, {"address": "0x100acfe0", "name": "MxAtomId::Destroy", "matching": 0.9805825242718447, "diff": "--- \n\n+++ \n\n@@ -28,35 +28,35 @@\n\n call MxString::operator= (FUNCTION)\n mov word ptr [ebp - 0x1c], di\n lea eax, [ebp - 0x2c]\n mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebp - 4], 1\n mov dword ptr [ebp - 0x14], eax\n call AtomIdCounterSet (FUNCTION)\n mov edi, dword ptr [eax + 4]\n mov esi, eax\n mov ebx, dword ptr [edi + 4]\n-cmp ebx, dword ptr [<OFFSET6>]\n+cmp ebx, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n je 0x25\n lea eax, [ebp - 0x14]\n lea ecx, [ebx + 0xc]\n push eax\n push ecx\n lea ecx, [esi + 1]\n call MxAtomIdCounterCompare::operator() (FUNCTION)\n test eax, eax\n jne 0x6\n mov edi, ebx\n mov ebx, dword ptr [ebx]\n jmp 0x3\n mov ebx, dword ptr [ebx + 8]\n-cmp ebx, dword ptr [<OFFSET6>]\n+cmp ebx, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n jne -0x25\n mov dword ptr [ebp - 0x18], edi\n cmp dword ptr [esi + 4], edi\n je 0x38\n mov eax, dword ptr [ebp - 0x14]\n mov edx, dword ptr [edi + 0xc]\n mov ecx, dword ptr [eax + 8]\n mov eax, dword ptr [edx + 8]\n mov dl, byte ptr [ecx]\n cmp dl, byte ptr [eax]"}, {"address": "0x100ad120", "name": "MxAtomIdCounterCompare::operator()", "matching": 1.0, "diff": ""}, {"address": "0x100ad170", "name": "MxAtomIdCounter::~MxAtomIdCounter", "matching": 1.0, "diff": ""}, {"address": "0x100ad1c0", "name": "MxAtomId::operator=", "matching": 1.0, "diff": ""}, {"address": "0x100ad210", "name": "MxAtomId::GetCounter", "matching": 0.990909090909091, "diff": "--- \n\n+++ \n\n@@ -102,21 +102,21 @@\n\n mov ecx, dword ptr [eax + 0xc]\n mov dword ptr [ebp - 0x14], ecx\n jmp 0xee\n mov ecx, dword ptr [ebp - 0x18]\n jmp MxString::~MxString (FUNCTION)\n call AtomIdCounterSet (FUNCTION)\n mov edi, dword ptr [eax + 4]\n mov ebx, eax\n mov eax, 1\n mov esi, dword ptr [edi + 4]\n-cmp dword ptr [<OFFSET12>], esi\n+cmp dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)], esi\n je 0x51\n mov edi, esi\n mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [esi + 0xc]\n mov eax, dword ptr [eax + 8]\n mov edx, dword ptr [ecx + 8]\n mov cl, byte ptr [eax]\n cmp cl, byte ptr [edx]\n jne 0x1a\n or cl, cl\n@@ -134,21 +134,21 @@\n\n sbb eax, -1\n test eax, eax\n mov eax, 1\n jg 0x2\n xor eax, eax\n test eax, eax\n jne 0x5\n mov esi, dword ptr [esi + 8]\n jmp 0x2\n mov esi, dword ptr [esi]\n-cmp dword ptr [<OFFSET12>], esi\n+cmp dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)], esi\n jne -0x51\n cmp dword ptr [ebx + 8], 0\n je 0xb\n lea eax, [ebp - 0x14]\n lea ecx, [ebp - 0x20]\n push eax\n push edi\n push esi\n jmp 0x62\n mov dword ptr [ebp - 0x10], edi"}, {"address": "0x100ad480", "name": "_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::iterator::_Dec", "matching": 0.7272727272727273, "diff": "--- \n\n+++ \n\n@@ -3,31 +3,31 @@\n\n cmp dword ptr [esi + 0x10], 0\n jne 0xf\n mov eax, dword ptr [esi + 4]\n cmp dword ptr [eax + 4], esi\n jne 0x7\n mov eax, dword ptr [esi + 8]\n pop esi\n mov dword ptr [ecx], eax\n ret \n mov edx, dword ptr [esi]\n-cmp edx, dword ptr [<OFFSET1>]\n+cmp dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)], edx\n je 0x13\n mov eax, dword ptr [edx + 8]\n-cmp eax, dword ptr [<OFFSET1>]\n+cmp dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)], eax\n je 0x4\n mov edx, eax\n jmp -0xf\n pop esi\n mov dword ptr [ecx], edx\n ret \n-mov edx, dword ptr [esi + 4]\n-cmp dword ptr [edx], esi\n+mov eax, dword ptr [esi + 4]\n+cmp dword ptr [eax], esi\n jne 0xb\n-mov dword ptr [ecx], edx\n-mov eax, edx\n-mov edx, dword ptr [edx + 4]\n-cmp dword ptr [edx], eax\n+mov dword ptr [ecx], eax\n+mov edx, eax\n+mov eax, dword ptr [eax + 4]\n+cmp dword ptr [eax], edx\n je -0xb\n pop esi\n-mov dword ptr [ecx], edx\n+mov dword ptr [ecx], eax\n ret "}, {"address": "0x100ad4d0", "name": "_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Insert", "matching": 0.9613733905579399, "diff": "--- \n\n+++ \n\n@@ -4,34 +4,34 @@\n\n push edi\n mov esi, ecx\n push ebp\n push 0x14\n call ??2@YAPAXI@Z (FUNCTION)\n mov ecx, dword ptr [esp + 0x24]\n mov dword ptr [esp + 0x14], eax\n add esp, 4\n mov dword ptr [eax + 4], ecx\n mov dword ptr [eax + 0x10], 0\n-mov ebx, dword ptr [<OFFSET2>]\n+mov ebx, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n add eax, 0xc\n mov edi, dword ptr [esp + 0x24]\n mov dword ptr [eax - 0xc], ebx\n-mov ebx, dword ptr [<OFFSET2>]\n+mov ebx, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n mov dword ptr [eax - 4], ebx\n je 0x4\n mov edx, dword ptr [edi]\n mov dword ptr [eax], edx\n inc dword ptr [esi + 0xc]\n cmp dword ptr [esi + 4], ecx\n je 0x55\n mov eax, dword ptr [esp + 0x1c]\n-cmp eax, dword ptr [<OFFSET2>]\n+cmp dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)], eax\n jne 0x49\n mov eax, dword ptr [edi]\n mov edx, dword ptr [ecx + 0xc]\n mov edi, dword ptr [eax + 8]\n mov eax, dword ptr [edx + 8]\n mov dl, byte ptr [edi]\n cmp dl, byte ptr [eax]\n jne 0x1a\n or dl, dl\n je 0x12\n@@ -82,27 +82,27 @@\n\n mov ebp, dword ptr [edi]\n mov ebp, dword ptr [ebp]\n cmp ebp, eax\n jne 0xbb\n mov ebp, dword ptr [edi]\n mov ebp, dword ptr [ebp + 8]\n cmp dword ptr [ebp + 0x10], 0\n je 0x159\n lea ebx, [eax + 8]\n mov edx, dword ptr [ebx]\n-cmp ecx, edx\n+cmp edx, ecx\n jne 0x33\n mov ecx, eax\n mov eax, dword ptr [edx]\n mov dword ptr [ebx], eax\n mov eax, dword ptr [edx]\n-cmp eax, dword ptr [<OFFSET2>]\n+cmp dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], ecx\n mov eax, dword ptr [edi]\n mov dword ptr [edx + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], ecx\n je 0xb\n mov eax, dword ptr [edi]\n cmp dword ptr [eax], ecx\n@@ -116,21 +116,21 @@\n\n mov dword ptr [eax + 0x10], 1\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [eax + 4]\n mov dword ptr [edx + 0x10], 0\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [eax + 4]\n mov edi, dword ptr [edx]\n mov eax, dword ptr [edi + 8]\n mov dword ptr [edx], eax\n mov eax, dword ptr [edi + 8]\n-cmp eax, dword ptr [<OFFSET2>]\n+cmp dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], edx\n mov eax, dword ptr [edx + 4]\n mov dword ptr [edi + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], edx\n je 0x24\n mov ebx, dword ptr [edx + 4]\n lea eax, [ebx + 8]\n@@ -143,27 +143,27 @@\n\n mov dword ptr [eax], edi\n mov dword ptr [edi + 8], edx\n mov dword ptr [edx + 4], edi\n jmp 0xd5\n mov dword ptr [eax], edi\n mov dword ptr [edi + 8], edx\n jmp 0xa8\n cmp dword ptr [ebp + 0x10], 0\n je 0xa3\n mov edx, dword ptr [eax]\n-cmp ecx, edx\n+cmp edx, ecx\n jne 0x38\n mov ecx, eax\n mov eax, dword ptr [edx + 8]\n mov dword ptr [ecx], eax\n mov eax, dword ptr [edx + 8]\n-cmp eax, dword ptr [<OFFSET2>]\n+cmp dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], ecx\n mov eax, dword ptr [edi]\n mov dword ptr [edx + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], ecx\n je 0xd\n mov ebx, dword ptr [edi]\n lea eax, [ebx + 8]\n@@ -178,21 +178,21 @@\n\n mov dword ptr [eax + 0x10], 1\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [eax + 4]\n mov dword ptr [edx + 0x10], 0\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [eax + 4]\n mov edi, dword ptr [edx + 8]\n mov eax, dword ptr [edi]\n mov dword ptr [edx + 8], eax\n mov eax, dword ptr [edi]\n-cmp eax, dword ptr [<OFFSET2>]\n+cmp dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)], eax\n je 0x3\n mov dword ptr [eax + 4], edx\n mov eax, dword ptr [edx + 4]\n mov dword ptr [edi + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], edx\n je 0x1a\n mov eax, dword ptr [edx + 4]\n cmp dword ptr [eax], edx"}, {"address": "0x100ad780", "name": "_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Lbound", "matching": 0.775, "diff": "--- \n\n+++ \n\n@@ -1,40 +1,40 @@\n\n push ebx\n mov eax, dword ptr [ecx + 4]\n push esi\n push edi\n-mov esi, dword ptr [eax + 4]\n-cmp esi, dword ptr [<OFFSET1>]\n+mov edx, dword ptr [eax + 4]\n+cmp edx, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n je 0x49\n-mov edx, dword ptr [esp + 0x10]\n-mov ecx, dword ptr [esi + 0xc]\n+mov esi, dword ptr [esp + 0x10]\n+mov ecx, dword ptr [edx + 0xc]\n mov edi, dword ptr [ecx + 8]\n-mov ecx, dword ptr [edx]\n+mov ecx, dword ptr [esi]\n mov ebx, dword ptr [ecx + 8]\n mov cl, byte ptr [edi]\n cmp cl, byte ptr [ebx]\n jne 0x1a\n or cl, cl\n je 0x12\n mov cl, byte ptr [edi + 1]\n cmp cl, byte ptr [ebx + 1]\n jne 0xe\n add edi, 2\n add ebx, 2\n or cl, cl\n jne -0x1c\n xor ecx, ecx\n jmp 0x5\n sbb ecx, ecx\n sbb ecx, -1\n test ecx, ecx\n jg 0x6\n-mov eax, esi\n-mov esi, dword ptr [esi]\n+mov eax, edx\n+mov edx, dword ptr [edx]\n jmp 0x3\n-mov esi, dword ptr [esi + 8]\n-cmp esi, dword ptr [<OFFSET1>]\n+mov edx, dword ptr [edx + 8]\n+cmp edx, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n jne -0x45\n pop edi\n pop esi\n pop ebx\n ret 4"}, {"address": "0x100ad7e0", "name": "MxAtomId::Clear", "matching": 1.0, "diff": ""}, {"address": "0x100ad7f0", "name": "MxAtomIdCounter::Inc", "matching": 1.0, "diff": ""}, {"address": "0x100ad800", "name": "MxAtomIdCounter::Dec", "matching": 1.0, "diff": ""}, {"address": "0x100ad810", "name": "MxDSAction::MxDSAction", "matching": 1.0, "diff": ""}, {"address": "0x100ad940", "name": "MxDSAction::GetDuration", "matching": 1.0, "diff": ""}, {"address": "0x100ad950", "name": "MxDSAction::SetDuration", "matching": 1.0, "diff": ""}, {"address": "0x100ad960", "name": "MxDSAction::HasId", "matching": 1.0, "diff": ""}, {"address": "0x100ad980", "name": "MxDSAction::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100ad990", "name": "MxDSAction::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100ada40", "name": "MxDSAction::SetUnknown90", "matching": 1.0, "diff": ""}, {"address": "0x100ada50", "name": "MxDSAction::GetUnknown90", "matching": 1.0, "diff": ""}, {"address": "0x100ada60", "name": "MxDSAction::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100ada80", "name": "MxDSAction::~MxDSAction", "matching": 1.0, "diff": ""}, {"address": "0x100adaf0", "name": "MxDSAction::CopyFrom", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -11,56 +11,56 @@\n\n mov dword ptr [esi + 0x34], edx\n mov eax, dword ptr [edi + 0x38]\n mov dword ptr [esi + 0x38], eax\n mov ecx, dword ptr [edi + 0x3c]\n mov dword ptr [esi + 0x3c], ecx\n lea ecx, [esi + 0x40]\n mov eax, dword ptr [edi + 0x44]\n mov ebx, dword ptr [ecx]\n push eax\n call dword ptr [ebx + 0x20]\n-lea edx, [edi + 0x48]\n-lea ecx, [esi + 0x48]\n-mov eax, 3\n-mov ebx, dword ptr [edx]\n-add edx, 4\n-mov dword ptr [ecx], ebx\n+lea eax, [esi + 0x48]\n+lea ecx, [edi + 0x48]\n+mov edx, 3\n+mov ebx, dword ptr [ecx]\n add ecx, 4\n-dec eax\n+mov dword ptr [eax], ebx\n+add eax, 4\n+dec edx\n jne -0xd\n lea ecx, [esi + 0x54]\n mov eax, dword ptr [edi + 0x58]\n push eax\n mov ebx, dword ptr [ecx]\n call dword ptr [ebx + 0x20]\n+lea eax, [esi + 0x5c]\n lea ecx, [edi + 0x5c]\n-lea eax, [esi + 0x5c]\n mov edx, 3\n mov ebx, dword ptr [ecx]\n add ecx, 4\n mov dword ptr [eax], ebx\n add eax, 4\n dec edx\n jne -0xd\n lea ecx, [esi + 0x68]\n mov eax, dword ptr [edi + 0x6c]\n push eax\n mov ebx, dword ptr [ecx]\n call dword ptr [ebx + 0x20]\n-lea edx, [edi + 0x70]\n-lea ecx, [esi + 0x70]\n-mov eax, 3\n-mov ebx, dword ptr [edx]\n-add edx, 4\n-mov dword ptr [ecx], ebx\n+lea eax, [esi + 0x70]\n+lea ecx, [edi + 0x70]\n+mov edx, 3\n+mov ebx, dword ptr [ecx]\n add ecx, 4\n-dec eax\n+mov dword ptr [eax], ebx\n+add eax, 4\n+dec edx\n jne -0xd\n mov cx, word ptr [edi + 0x80]\n mov eax, dword ptr [edi + 0x7c]\n push eax\n push ecx\n mov ecx, esi\n call MxDSAction::AppendData (FUNCTION)\n mov ecx, dword ptr [edi + 0x84]\n mov dword ptr [esi + 0x84], ecx\n mov edx, dword ptr [edi + 0x88]"}, {"address": "0x100adbd0", "name": "MxDSAction::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x100adbe0", "name": "MxDSAction::GetSizeOnDisk", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,18 +1,18 @@\n\n push ebx\n push esi\n push edi\n mov ebx, ecx\n call MxDSObject::GetSizeOnDisk (FUNCTION)\n xor ecx, ecx\n mov cx, word ptr [ebx + 0x80]\n-lea esi, [eax + ecx + 0x5a]\n+lea esi, [ecx + eax + 0x5a]\n mov ecx, ebx\n mov edi, esi\n call MxDSObject::GetSizeOnDisk (FUNCTION)\n sub edi, eax\n mov eax, esi\n mov dword ptr [ebx + 0x2c], edi\n pop edi\n pop esi\n pop ebx\n ret "}, {"address": "0x100adc10", "name": "MxDSAction::operator=", "matching": 1.0, "diff": ""}, {"address": "0x100adc40", "name": "MxDSAction::Clone", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -2,40 +2,40 @@\n\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n push ebx\n push esi\n push edi\n-mov esi, ecx\n+mov ebx, ecx\n push 0x94\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov edi, eax\n-mov ebx, 0\n+mov esi, 0\n mov dword ptr [ebp - 4], 0\n test edi, edi\n je 0x9\n mov ecx, edi\n call MxDSAction::MxDSAction (FUNCTION)\n-mov ebx, eax\n+mov esi, eax\n mov dword ptr [ebp - 4], 0xffffffff\n-test ebx, ebx\n+test esi, esi\n je 0x8\n-push esi\n-mov ecx, ebx\n+push ebx\n+mov ecx, esi\n call MxDSAction::operator= (FUNCTION)\n-mov eax, ebx\n+mov eax, esi\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)"}, {"address": "0x100adcd0", "name": "MxDSAction::GetElapsedTime", "matching": 0.9333333333333333, "diff": "--- \n\n+++ \n\n@@ -1,15 +1,15 @@\n\n push esi\n mov esi, ecx\n call Timer (FUNCTION)\n cmp byte ptr [eax + 0xc], 0\n je 0xd\n mov eax, dword ptr [MxTimer::g_lastTimeTimerStarted (DATA)]\n sub eax, dword ptr [esi + 0x90]\n pop esi\n ret \n mov ecx, dword ptr [MxTimer::g_lastTimeCalculated (DATA)]\n-sub ecx, dword ptr [eax + 8]\n sub ecx, dword ptr [esi + 0x90]\n pop esi\n+sub ecx, dword ptr [eax + 8]\n mov eax, ecx\n ret "}, {"address": "0x100add00", "name": "MxDSAction::MergeFrom", "matching": 1.0, "diff": ""}, {"address": "0x100ade60", "name": "MxDSAction::AppendData", "matching": 0.9883720930232558, "diff": "--- \n\n+++ \n\n@@ -57,23 +57,23 @@\n\n mov dword ptr [ebx + 0x7c], edx\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret 8\n and ebp, 0xffff\n push ebp\n call ??2@YAPAXI@Z (FUNCTION)\n+mov dword ptr [ebx + 0x7c], eax\n add esp, 4\n mov edi, eax\n-mov dword ptr [ebx + 0x7c], eax\n test edi, edi\n je 0x1e\n mov ax, word ptr [esp + 0x18]\n mov esi, dword ptr [esp + 0x1c]\n mov word ptr [ebx + 0x80], ax\n mov ecx, ebp\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, ebp\n and ecx, 3"}, {"address": "0x100adf70", "name": "MxDSAction::Deserialize", "matching": 1.0, "diff": ""}, {"address": "0x100ae060", "name": "MxTimer::MxTimer", "matching": 1.0, "diff": ""}, {"address": "0x100ae0d0", "name": "MxTimer::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100ae140", "name": "MxTimer::GetRealTime", "matching": 1.0, "diff": ""}, {"address": "0x100ae160", "name": "MxTimer::Start", "matching": 1.0, "diff": ""}, {"address": "0x100ae180", "name": "MxTimer::Stop", "matching": 1.0, "diff": ""}, {"address": "0x100ae1a0", "name": "MxCore::MxCore", "matching": 1.0, "diff": ""}, {"address": "0x100ae1c0", "name": "MxCore::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100ae1e0", "name": "MxCore::~MxCore", "matching": 1.0, "diff": ""}, {"address": "0x100ae1f0", "name": "MxCore::Notify", "matching": 1.0, "diff": ""}, {"address": "0x100ae200", "name": "MxString::MxString", "matching": 1.0, "diff": ""}, {"address": "0x100ae280", "name": "MxString::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100ae2a0", "name": "MxString::MxString", "matching": 1.0, "diff": ""}, {"address": "0x100ae350", "name": "MxString::MxString", "matching": 1.0, "diff": ""}, {"address": "0x100ae420", "name": "MxString::~MxString", "matching": 1.0, "diff": ""}, {"address": "0x100ae490", "name": "MxString::ToUpperCase", "matching": 1.0, "diff": ""}, {"address": "0x100ae4a0", "name": "MxString::ToLowerCase", "matching": 1.0, "diff": ""}, {"address": "0x100ae4b0", "name": "MxString::operator=", "matching": 1.0, "diff": ""}, {"address": "0x100ae510", "name": "MxString::operator=", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,17 +1,17 @@\n\n push ebx\n push esi\n mov eax, dword ptr [ecx + 8]\n push edi\n mov ebx, ecx\n mov esi, dword ptr [esp + 0x10]\n-cmp eax, esi\n+cmp esi, eax\n je 0x4f\n push eax\n mov edi, esi\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov ecx, 0xffffffff\n sub eax, eax\n repne scasb al, byte ptr es:[edi]\n not ecx\n dec ecx"}, {"address": "0x100ae580", "name": "MxString::operator+", "matching": 1.0, "diff": ""}, {"address": "0x100ae690", "name": "MxString::operator+=", "matching": 1.0, "diff": ""}, {"address": "0x100ae740", "name": "MxSoundManager::MxSoundManager", "matching": 1.0, "diff": ""}, {"address": "0x100ae7b0", "name": "MxSoundManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100ae7d0", "name": "MxSoundManager::~MxSoundManager", "matching": 1.0, "diff": ""}, {"address": "0x100ae830", "name": "MxSoundManager::Init", "matching": 1.0, "diff": ""}, {"address": "0x100ae840", "name": "MxSoundManager::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100ae8b0", "name": "MxSoundManager::Create", "matching": 1.0, "diff": ""}, {"address": "0x100aeab0", "name": "MxSoundManager::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100aeac0", "name": "MxSoundManager::SetVolume", "matching": 1.0, "diff": ""}, {"address": "0x100aebd0", "name": "MxSoundManager::FUN_100aebd0", "matching": 1.0, "diff": ""}, {"address": "0x100aecf0", "name": "MxSoundManager::FUN_100aecf0", "matching": 0.8571428571428571, "diff": "--- \n\n+++ \n\n@@ -1,7 +1,7 @@\n\n mov eax, dword ptr [esp + 4]\n test eax, eax\n jne 0x8\n mov eax, 0xffffd8f0\n ret 4\n-mov eax, dword ptr [eax*4 + 0x1010141c]\n+mov eax, dword ptr [eax*4 + 0x1008b060]\n ret 4"}, {"address": "0x100aed10", "name": "MxSoundManager::Pause", "matching": 1.0, "diff": ""}, {"address": "0x100aee10", "name": "MxSoundManager::Resume", "matching": 1.0, "diff": ""}, {"address": "0x100aef10", "name": "MxOmni::MxOmni", "matching": 1.0, "diff": ""}, {"address": "0x100aefb0", "name": "MxOmni::AddToWorld", "matching": 1.0, "diff": ""}, {"address": "0x100aefc0", "name": "MxOmni::NotifyCurrentEntity", "matching": 1.0, "diff": ""}, {"address": "0x100aefd0", "name": "MxOmni::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100aeff0", "name": "MxOmni::~MxOmni", "matching": 1.0, "diff": ""}, {"address": "0x100af080", "name": "MxOmni::Init", "matching": 1.0, "diff": ""}, {"address": "0x100af0b0", "name": "MxOmni::SetInstance", "matching": 1.0, "diff": ""}, {"address": "0x100af0c0", "name": "MxOmni::Create", "matching": 0.9916666666666667, "diff": "--- \n\n+++ \n\n@@ -20,34 +20,34 @@\n\n cmp eax, esi\n je 0xa3\n mov al, byte ptr [ebp - 0x15]\n mov ecx, dword ptr [ebp - 0x1c]\n mov ebx, 1\n mov byte ptr [ecx], al\n mov dl, byte ptr [ebp - 0x1d]\n mov byte ptr [ebp - 4], bl\n mov byte ptr [ecx + 1], dl\n mov dword ptr [ecx + 8], esi\n-cmp dword ptr [<OFFSET3>], esi\n+cmp dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)], esi\n jne 0x1f\n push 0x14\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [eax + 4], esi\n mov dword ptr [eax + 0x10], ebx\n-mov dword ptr [<OFFSET3>], eax\n+mov dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)], eax\n mov dword ptr [eax], esi\n-mov eax, dword ptr [<OFFSET3>]\n+mov eax, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n mov dword ptr [eax + 8], esi\n mov byte ptr [ebp - 4], 0\n call <OFFSET4>\n-mov esi, dword ptr [<OFFSET3>]\n+mov esi, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n push 0x14\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov ecx, dword ptr [ebp - 0x1c]\n mov dword ptr [eax + 4], esi\n mov dword ptr [eax + 0x10], 0\n mov dword ptr [ecx + 4], eax\n mov dword ptr [ecx + 0xc], 0\n mov eax, dword ptr [ecx + 4]\n mov byte ptr [ebp - 4], 0"}, {"address": "0x100af6d0", "name": "_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::~_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCou", "matching": 0.8333333333333334, "diff": "--- \n\n+++ \n\n@@ -1,54 +1,54 @@\n\n sub esp, 0x10\n push ebx\n push esi\n push edi\n mov esi, ecx\n-cmp dword ptr [ecx + 0xc], 0\n-mov ecx, dword ptr [esi + 4]\n-mov dword ptr [esp + 0x10], ecx\n+mov ecx, dword ptr [ecx + 4]\n+mov dword ptr [esp + 0x14], ecx\n mov eax, dword ptr [ecx]\n mov dword ptr [esp + 0xc], eax\n-mov dword ptr [esp + 0x14], eax\n+mov dword ptr [esp + 0x10], eax\n+cmp dword ptr [esi + 0xc], 0\n je 0x4e\n cmp dword ptr [ecx], eax\n jne 0x4a\n cmp ecx, ecx\n jne 0x46\n mov edi, dword ptr [ecx + 4]\n mov ebx, edi\n-cmp ebx, dword ptr [<OFFSET1>]\n+cmp ebx, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n je 0x1a\n mov eax, dword ptr [ebx + 8]\n mov ecx, esi\n push eax\n call _Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Erase (FUNCTION)\n mov ebx, dword ptr [ebx]\n push edi\n mov edi, ebx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n jmp -0x22\n-mov eax, dword ptr [<OFFSET1>]\n+mov eax, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n mov ecx, dword ptr [esi + 4]\n mov dword ptr [ecx + 4], eax\n+mov dword ptr [esi + 0xc], 0\n mov eax, dword ptr [esi + 4]\n-mov dword ptr [esi + 0xc], 0\n mov dword ptr [eax], eax\n mov eax, dword ptr [esi + 4]\n mov dword ptr [eax + 8], eax\n jmp 0x36\n+mov eax, dword ptr [esp + 0xc]\n+cmp dword ptr [esp + 0x14], eax\n+je 0x2c\n mov eax, dword ptr [esp + 0x10]\n-cmp dword ptr [esp + 0xc], eax\n-je 0x2c\n-mov eax, dword ptr [esp + 0x14]\n-lea ecx, [esp + 0x14]\n+lea ecx, [esp + 0x10]\n mov dword ptr [esp + 0x18], eax\n call _Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::iterator::_Inc (FUNCTION)\n mov eax, dword ptr [esp + 0x18]\n lea ecx, [esp + 0xc]\n push eax\n push ecx\n mov ecx, esi\n call _Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::erase (FUNCTION)\n mov ecx, dword ptr [esp + 0x10]\n cmp dword ptr [esp + 0x14], ecx"}, {"address": "0x100af7a0", "name": "_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::iterator::_Inc", "matching": 0.9166666666666666, "diff": "--- \n\n+++ \n\n@@ -1,16 +1,16 @@\n\n mov eax, dword ptr [ecx]\n mov edx, dword ptr [eax + 8]\n-cmp edx, dword ptr [<OFFSET1>]\n+cmp edx, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n je 0x11\n mov eax, dword ptr [edx]\n-cmp eax, dword ptr [<OFFSET1>]\n+cmp eax, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n je 0x4\n mov edx, eax\n jmp -0xe\n mov dword ptr [ecx], edx\n ret \n mov edx, dword ptr [eax + 4]\n cmp dword ptr [edx + 8], eax\n jne 0xc\n mov dword ptr [ecx], edx\n mov eax, edx"}, {"address": "0x100af7e0", "name": "_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::erase", "matching": 0.7142857142857143, "diff": "--- \n\n+++ \n\n@@ -1,113 +1,115 @@\n\n mov eax, dword ptr [esp + 8]\n sub esp, 4\n mov dword ptr [esp], eax\n push ebx\n push esi\n push edi\n push ebp\n mov esi, ecx\n mov ecx, dword ptr [eax + 8]\n-cmp ecx, dword ptr [<OFFSET1>]\n-je 0xe\n+cmp ecx, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n+je 0x14\n mov eax, dword ptr [ecx]\n-cmp eax, dword ptr [<OFFSET1>]\n-je 0x29\n+cmp eax, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n+je 0x4\n mov ecx, eax\n jmp -0xe\n-mov eax, dword ptr [esp + 0x1c]\n-mov ecx, dword ptr [eax + 4]\n+mov dword ptr [esp + 0x1c], ecx\n+jmp 0x29\n+mov ecx, dword ptr [esp + 0x1c]\n+mov eax, dword ptr [ecx + 4]\n+cmp dword ptr [eax + 8], ecx\n+jne 0x10\n+mov dword ptr [esp + 0x1c], eax\n+mov eax, dword ptr [eax + 4]\n+mov ecx, dword ptr [esp + 0x1c]\n+cmp dword ptr [eax + 8], ecx\n+je -0x10\n+mov ecx, dword ptr [esp + 0x1c]\n cmp dword ptr [ecx + 8], eax\n-jne 0x10\n-mov dword ptr [esp + 0x1c], ecx\n-mov ecx, dword ptr [ecx + 4]\n-mov eax, dword ptr [esp + 0x1c]\n-cmp dword ptr [ecx + 8], eax\n-je -0x10\n-mov eax, dword ptr [esp + 0x1c]\n-cmp dword ptr [eax + 8], ecx\n-je 0x4\n-mov dword ptr [esp + 0x1c], ecx\n+je 0x4\n+mov dword ptr [esp + 0x1c], eax\n mov ecx, dword ptr [esp + 0x10]\n mov ebx, dword ptr [ecx]\n-cmp ebx, dword ptr [<OFFSET1>]\n+cmp ebx, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n je 0x26\n lea edi, [ecx + 8]\n mov edx, dword ptr [edi]\n-cmp edx, dword ptr [<OFFSET1>]\n+cmp edx, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n je 0x15\n mov eax, dword ptr [edx]\n-cmp eax, dword ptr [<OFFSET1>]\n+cmp eax, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n je 0x4\n mov edx, eax\n jmp -0xe\n mov ecx, edx\n mov edx, dword ptr [edx + 8]\n jmp 0xe\n mov edx, ebx\n jmp 0xa\n mov edi, dword ptr [esp + 0x10]\n mov edx, dword ptr [edi + 8]\n add edi, 8\n-cmp ecx, dword ptr [esp + 0x10]\n+cmp dword ptr [esp + 0x10], ecx\n jne 0x8f\n mov eax, dword ptr [ecx + 4]\n mov ebx, dword ptr [esp + 0x10]\n mov dword ptr [edx + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], ebx\n je 0xc\n mov eax, dword ptr [ebx + 4]\n cmp dword ptr [eax], ebx\n je 0x5\n mov dword ptr [eax + 8], edx\n jmp 0x2\n mov dword ptr [eax], edx\n mov ebx, dword ptr [esi + 4]\n mov eax, dword ptr [esp + 0x10]\n cmp dword ptr [ebx], eax\n jne 0x26\n-mov eax, dword ptr [<OFFSET1>]\n+mov eax, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n cmp dword ptr [edi], eax\n je 0x14\n-mov eax, edx\n-mov edi, dword ptr [eax]\n-cmp edi, dword ptr [<OFFSET1>]\n-je 0x4\n-mov eax, edi\n+mov edi, edx\n+mov eax, dword ptr [edi]\n+cmp eax, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n+je 0x4\n+mov edi, eax\n jmp -0xe\n-mov dword ptr [ebx], eax\n+mov dword ptr [ebx], edi\n jmp 0x9\n mov eax, dword ptr [esp + 0x10]\n mov ebp, dword ptr [eax + 4]\n mov dword ptr [ebx], ebp\n mov edi, dword ptr [esi + 4]\n mov eax, dword ptr [esp + 0x10]\n add edi, 8\n cmp dword ptr [edi], eax\n-jne 0x8a\n-mov ebx, dword ptr [<OFFSET1>]\n+jne 0x88\n+mov ebx, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n cmp dword ptr [eax], ebx\n je 0x15\n mov eax, edx\n mov ebx, dword ptr [eax + 8]\n-cmp ebx, dword ptr [<OFFSET1>]\n+cmp ebx, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n je 0x4\n mov eax, ebx\n jmp -0xf\n mov dword ptr [edi], eax\n-jmp 0x6b\n+jmp 0x69\n mov eax, dword ptr [esp + 0x10]\n mov ebx, dword ptr [eax + 4]\n mov dword ptr [edi], ebx\n-jmp 0x60\n+jmp 0x5e\n mov eax, dword ptr [esp + 0x10]\n mov dword ptr [ebx + 4], ecx\n mov ebx, dword ptr [eax]\n mov dword ptr [ecx], ebx\n cmp dword ptr [edi], ecx\n jne 0x5\n mov dword ptr [edx + 4], ecx\n jmp 0x15\n mov eax, dword ptr [ecx + 4]\n mov dword ptr [edx + 4], eax\n@@ -123,161 +125,161 @@\n\n cmp dword ptr [eax], edi\n je 0xc\n mov eax, dword ptr [edi + 4]\n cmp dword ptr [eax], edi\n je 0x5\n mov dword ptr [eax + 8], ecx\n jmp 0x2\n mov dword ptr [eax], ecx\n mov eax, dword ptr [esp + 0x10]\n mov ebx, dword ptr [eax + 4]\n-add eax, 0x10\n+lea edi, [eax + 0x10]\n mov dword ptr [ecx + 4], ebx\n-mov edi, dword ptr [ecx + 0x10]\n-mov ebx, dword ptr [eax]\n+mov ebx, dword ptr [edi]\n+mov ebp, dword ptr [ecx + 0x10]\n mov dword ptr [ecx + 0x10], ebx\n-mov ecx, dword ptr [esp + 0x10]\n-mov dword ptr [eax], edi\n+mov ecx, eax\n+mov dword ptr [edi], ebp\n cmp dword ptr [ecx + 0x10], 1\n-jne 0x29f\n+jne 0x29b\n mov eax, dword ptr [esi + 4]\n cmp dword ptr [eax + 4], edx\n-je 0x28c\n+je 0x288\n cmp dword ptr [edx + 0x10], 1\n-jne 0x282\n+jne 0x27e\n lea ebx, [edx + 4]\n mov eax, dword ptr [ebx]\n mov edi, dword ptr [eax]\n-cmp edx, edi\n-jne 0x76\n+cmp edi, edx\n+jne 0x73\n mov edi, dword ptr [eax + 8]\n cmp dword ptr [edi + 0x10], 0\n-jne 0x52\n+jne 0x4f\n mov dword ptr [edi + 0x10], 1\n mov eax, dword ptr [ebx]\n mov dword ptr [eax + 0x10], 0\n-mov eax, dword ptr [ebx]\n-mov ebp, dword ptr [eax + 8]\n-mov edi, dword ptr [ebp]\n-mov dword ptr [eax + 8], edi\n-mov edi, dword ptr [ebp]\n-cmp edi, dword ptr [<OFFSET1>]\n-je 0x3\n-mov dword ptr [edi + 4], eax\n-mov edi, dword ptr [eax + 4]\n-mov dword ptr [ebp + 4], edi\n+mov ebp, dword ptr [ebx]\n+mov eax, dword ptr [ebp + 8]\n+mov edi, dword ptr [eax]\n+mov dword ptr [ebp + 8], edi\n+mov edi, dword ptr [eax]\n+cmp edi, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n+je 0x3\n+mov dword ptr [edi + 4], ebp\n+mov edi, dword ptr [ebp + 4]\n+mov dword ptr [eax + 4], edi\n mov edi, dword ptr [esi + 4]\n add edi, 4\n-cmp dword ptr [edi], eax\n+cmp dword ptr [edi], ebp\n je 0xc\n-mov edi, dword ptr [eax + 4]\n-cmp dword ptr [edi], eax\n-je 0x5\n-mov dword ptr [edi + 8], ebp\n-jmp 0x2\n-mov dword ptr [edi], ebp\n-mov dword ptr [ebp], eax\n-mov dword ptr [eax + 4], ebp\n+mov edi, dword ptr [ebp + 4]\n+cmp dword ptr [edi], ebp\n+je 0x5\n+mov dword ptr [edi + 8], eax\n+jmp 0x2\n+mov dword ptr [edi], eax\n+mov dword ptr [eax], ebp\n+mov dword ptr [ebp + 4], eax\n mov eax, dword ptr [ebx]\n mov edi, dword ptr [eax + 8]\n mov eax, dword ptr [edi]\n cmp dword ptr [eax + 0x10], 1\n jne 0x98\n mov eax, dword ptr [edi + 8]\n cmp dword ptr [eax + 0x10], 1\n jne 0x8b\n jmp 0x6f\n cmp dword ptr [edi + 0x10], 0\n jne 0x50\n mov dword ptr [edi + 0x10], 1\n mov eax, dword ptr [ebx]\n mov dword ptr [eax + 0x10], 0\n-mov eax, dword ptr [ebx]\n-mov ebp, dword ptr [eax]\n-mov edi, dword ptr [ebp + 8]\n-mov dword ptr [eax], edi\n-mov edi, dword ptr [ebp + 8]\n-cmp edi, dword ptr [<OFFSET1>]\n-je 0x3\n-mov dword ptr [edi + 4], eax\n-mov edi, dword ptr [eax + 4]\n-mov dword ptr [ebp + 4], edi\n-mov edi, dword ptr [esi + 4]\n-add edi, 4\n-cmp dword ptr [edi], eax\n+mov edi, dword ptr [ebx]\n+mov ebp, dword ptr [edi]\n+mov eax, dword ptr [ebp + 8]\n+mov dword ptr [edi], eax\n+mov eax, dword ptr [ebp + 8]\n+cmp eax, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n+je 0x3\n+mov dword ptr [eax + 4], edi\n+mov eax, dword ptr [edi + 4]\n+mov dword ptr [ebp + 4], eax\n+mov eax, dword ptr [esi + 4]\n+add eax, 4\n+cmp dword ptr [eax], edi\n je 0xd\n-mov edi, dword ptr [eax + 4]\n-add edi, 8\n-cmp dword ptr [edi], eax\n-je 0x3\n-mov edi, dword ptr [eax + 4]\n-mov dword ptr [edi], ebp\n-mov dword ptr [ebp + 8], eax\n-mov dword ptr [eax + 4], ebp\n-mov eax, dword ptr [ebx]\n-mov edi, dword ptr [eax]\n-mov eax, dword ptr [edi + 8]\n-cmp dword ptr [eax + 0x10], 1\n-jne 0xf0\n-mov eax, dword ptr [edi]\n-cmp dword ptr [eax + 0x10], 1\n-jne 0xe4\n+mov eax, dword ptr [edi + 4]\n+add eax, 8\n+cmp dword ptr [eax], edi\n+je 0x3\n+mov eax, dword ptr [edi + 4]\n+mov dword ptr [eax], ebp\n+mov dword ptr [ebp + 8], edi\n+mov dword ptr [edi + 4], ebp\n+mov eax, dword ptr [ebx]\n+mov edi, dword ptr [eax]\n+mov eax, dword ptr [edi + 8]\n+cmp dword ptr [eax + 0x10], 1\n+jne 0xef\n+mov eax, dword ptr [edi]\n+cmp dword ptr [eax + 0x10], 1\n+jne 0xe3\n mov dword ptr [edi + 0x10], 0\n mov edx, dword ptr [ebx]\n mov eax, dword ptr [esi + 4]\n cmp dword ptr [eax + 4], edx\n-jne -0x10f\n-jmp 0x178\n-mov eax, dword ptr [edi + 8]\n-cmp dword ptr [eax + 0x10], 1\n-jne 0x53\n+jne -0x10c\n+jmp 0x177\n+mov eax, dword ptr [edi + 8]\n+cmp dword ptr [eax + 0x10], 1\n+jne 0x52\n mov eax, dword ptr [edi]\n mov dword ptr [eax + 0x10], 1\n mov dword ptr [edi + 0x10], 0\n mov ebx, dword ptr [edi]\n mov ebp, dword ptr [ebx + 8]\n mov dword ptr [edi], ebp\n mov eax, dword ptr [ebx + 8]\n-cmp eax, dword ptr [<OFFSET1>]\n+cmp eax, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n je 0x3\n mov dword ptr [eax + 4], edi\n mov eax, dword ptr [edi + 4]\n mov dword ptr [ebx + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], edi\n-je 0x10\n-mov eax, dword ptr [edi + 4]\n-lea ebp, [eax + 8]\n-cmp dword ptr [ebp], edi\n-jne 0x5\n+je 0xf\n+mov ebp, dword ptr [edi + 4]\n+lea eax, [ebp + 8]\n+cmp dword ptr [eax], edi\n+je 0x5\n mov dword ptr [ebp], ebx\n jmp 0x2\n mov dword ptr [eax], ebx\n mov dword ptr [ebx + 8], edi\n mov dword ptr [edi + 4], ebx\n mov eax, dword ptr [edx + 4]\n mov edi, dword ptr [eax + 8]\n mov eax, dword ptr [edx + 4]\n mov ebx, dword ptr [eax + 0x10]\n mov dword ptr [edi + 0x10], ebx\n mov ebx, 1\n mov eax, dword ptr [edx + 4]\n mov dword ptr [eax + 0x10], ebx\n mov ebp, dword ptr [edi + 8]\n mov dword ptr [ebp + 0x10], ebx\n mov edi, dword ptr [edx + 4]\n mov ebx, dword ptr [edi + 8]\n mov eax, dword ptr [ebx]\n mov dword ptr [edi + 8], eax\n mov eax, dword ptr [ebx]\n-cmp eax, dword ptr [<OFFSET1>]\n+cmp eax, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n je 0x3\n mov dword ptr [eax + 4], edi\n mov eax, dword ptr [edi + 4]\n mov dword ptr [ebx + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], edi\n je 0x20\n mov eax, dword ptr [edi + 4]\n cmp dword ptr [eax], edi\n@@ -297,21 +299,21 @@\n\n mov eax, dword ptr [edi]\n cmp dword ptr [eax + 0x10], 1\n jne 0x4e\n mov eax, dword ptr [edi + 8]\n mov dword ptr [eax + 0x10], 1\n mov dword ptr [edi + 0x10], 0\n mov ebx, dword ptr [edi + 8]\n mov ebp, dword ptr [ebx]\n mov dword ptr [edi + 8], ebp\n mov eax, dword ptr [ebx]\n-cmp eax, dword ptr [<OFFSET1>]\n+cmp eax, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n je 0x3\n mov dword ptr [eax + 4], edi\n mov eax, dword ptr [edi + 4]\n mov dword ptr [ebx + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], edi\n je 0xc\n mov eax, dword ptr [edi + 4]\n cmp dword ptr [eax], edi\n@@ -329,21 +331,21 @@\n\n mov ebx, 1\n mov eax, dword ptr [edx + 4]\n mov dword ptr [eax + 0x10], ebx\n mov ebp, dword ptr [edi]\n mov dword ptr [ebp + 0x10], ebx\n mov ebx, dword ptr [edx + 4]\n mov edi, dword ptr [ebx]\n mov eax, dword ptr [edi + 8]\n mov dword ptr [ebx], eax\n mov eax, dword ptr [edi + 8]\n-cmp eax, dword ptr [<OFFSET1>]\n+cmp eax, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n je 0x3\n mov dword ptr [eax + 4], ebx\n mov eax, dword ptr [ebx + 4]\n mov dword ptr [edi + 4], eax\n mov eax, dword ptr [esi + 4]\n add eax, 4\n cmp dword ptr [eax], ebx\n je 0xf\n mov ebp, dword ptr [ebx + 4]\n lea eax, [ebp + 8]"}, {"address": "0x100afc40", "name": "_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Erase", "matching": 0.5652173913043478, "diff": "--- \n\n+++ \n\n@@ -1,23 +1,23 @@\n\n push ebx\n push esi\n+mov esi, dword ptr [esp + 0xc]\n push edi\n-mov esi, ecx\n-mov ebx, dword ptr [esp + 0x10]\n-mov edi, ebx\n-cmp ebx, dword ptr [<OFFSET1>]\n+mov edi, ecx\n+mov ebx, esi\n+cmp esi, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n je 0x20\n-mov eax, dword ptr [edi + 8]\n-mov ecx, esi\n+mov eax, dword ptr [ebx + 8]\n+mov ecx, edi\n push eax\n call _Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Erase (FUNCTION)\n-mov edi, dword ptr [edi]\n-push ebx\n-mov ebx, edi\n+mov ebx, dword ptr [ebx]\n+push esi\n+mov esi, ebx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-cmp edi, dword ptr [<OFFSET1>]\n+cmp ebx, dword ptr [_Tree<MxAtomIdCounter *,MxAtomIdCounter *,set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Kfn,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::_Nil (DATA)]\n jne -0x20\n pop edi\n pop esi\n pop ebx\n ret 4"}, {"address": "0x100afc80", "name": "set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >::~set<MxAtomIdCounter *,MxAtomIdCounterCompare,allocator<MxAtomIdCounter *> >", "matching": 1.0, "diff": ""}, {"address": "0x100afcd0", "name": "MxCollection<MxVariable *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x100afce0", "name": "MxCollection<MxVariable *>::~MxCollection<MxVariable *>", "matching": 1.0, "diff": ""}, {"address": "0x100afd30", "name": "MxCollection<MxVariable *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100afd40", "name": "MxCollection<MxVariable *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100afdb0", "name": "MxVariableTable::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100afdc0", "name": "MxHashTable<MxVariable *>::Hash", "matching": 1.0, "diff": ""}, {"address": "0x100afdd0", "name": "MxVariableTable::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100afe40", "name": "Set<MxAtomIdCounter *,MxAtomIdCounterCompare>::~Set<MxAtomIdCounter *,MxAtomIdCounterCompare>", "matching": 1.0, "diff": ""}, {"address": "0x100afe90", "name": "MxOmni::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b0090", "name": "MxOmni::Start", "matching": 1.0, "diff": ""}, {"address": "0x100b00c0", "name": "MxOmni::DeleteObject", "matching": 1.0, "diff": ""}, {"address": "0x100b00e0", "name": "MxOmni::CreatePresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b0300", "name": "MxStartActionNotificationParam::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100b0430", "name": "MxStartActionNotificationParam::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b04a0", "name": "MxStartActionNotificationParam::~MxStartActionNotificationParam", "matching": 1.0, "diff": ""}, {"address": "0x100b04f0", "name": "MxType4NotificationParam::Clone", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -12,37 +12,37 @@\n\n push 0x18\n mov edi, ecx\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov esi, eax\n xor ecx, ecx\n mov dword ptr [ebp - 4], ecx\n test esi, esi\n je 0x5f\n-mov edx, dword ptr [edi + 0x14]\n-mov ebx, dword ptr [edi + 0xc]\n+mov ebx, dword ptr [edi + 0x14]\n+mov edx, dword ptr [edi + 0xc]\n mov byte ptr [ebp - 4], 1\n mov byte ptr [ebp - 4], 2\n mov eax, dword ptr [edi + 8]\n mov dword ptr [esi], MxParam (VTABLE)\n mov dword ptr [esi + 4], 4\n mov byte ptr [ebp - 4], 3\n mov dword ptr [esi + 8], eax\n mov byte ptr [ebp - 4], cl\n mov eax, esi\n mov dword ptr [esi], MxNotificationParam (VTABLE)\n mov dword ptr [esi], MxActionNotificationParam (VTABLE)\n mov byte ptr [esi + 0x10], cl\n-mov dword ptr [esi + 0xc], ebx\n+mov dword ptr [esi + 0xc], edx\n mov dword ptr [esi], MxType4NotificationParam (VTABLE)\n-mov dword ptr [esi + 0x14], edx\n+mov dword ptr [esi + 0x14], ebx\n jmp 0x1a\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxParam::~MxParam (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxNotificationParam::~MxNotificationParam (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxActionNotificationParam::~MxActionNotificationParam (FUNCTION)\n xor eax, eax\n mov dword ptr [ebp - 4], 0xffffffff\n mov ecx, dword ptr [ebp - 0xc]"}, {"address": "0x100b05c0", "name": "MxType4NotificationParam::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b0630", "name": "MxType4NotificationParam::~MxType4NotificationParam", "matching": 1.0, "diff": ""}, {"address": "0x100b0680", "name": "MxOmni::GetInstance", "matching": 1.0, "diff": ""}, {"address": "0x100b0690", "name": "MxOmni::DestroyInstance", "matching": 1.0, "diff": ""}, {"address": "0x100b06b0", "name": "MxOmni::ActionSourceEquals", "matching": 1.0, "diff": ""}, {"address": "0x100b07f0", "name": "MxOmni::Notify", "matching": 1.0, "diff": ""}, {"address": "0x100b0880", "name": "MxOmni::HandleActionEnd", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,39 +1,39 @@\n\n push ebx\n push esi\n mov esi, dword ptr [esp + 0xc]\n push edi\n-mov ebx, dword ptr [esi + 0xc]\n-mov eax, dword ptr [ebx + 0x20]\n+mov edi, dword ptr [esi + 0xc]\n+mov eax, dword ptr [edi + 0x20]\n push eax\n call Streamer (FUNCTION)\n mov ecx, eax\n call MxStreamer::GetOpenStream (FUNCTION)\n test eax, eax\n je 0x3b\n-lea edi, [eax + 0x54]\n+lea ebx, [eax + 0x54]\n push 0\n-push ebx\n-mov ecx, edi\n+push edi\n+mov ecx, ebx\n call MxStreamListMxDSAction::Find (FUNCTION)\n-mov ebx, eax\n-test ebx, ebx\n+mov edi, eax\n+test edi, edi\n je 0x28\n push 'LegoLoopingAnimPresenter' (STRING)\n-push ebx\n+push edi\n call MxOmni::ActionSourceEquals (FUNCTION)\n add esp, 8\n test al, al\n jne 0x16\n push 1\n-mov ecx, edi\n-push ebx\n+mov ecx, ebx\n+push edi\n call MxStreamListMxDSAction::Find (FUNCTION)\n test eax, eax\n je 0x8\n push 1\n mov edx, dword ptr [eax]\n mov ecx, eax\n call dword ptr [edx]\n mov ecx, dword ptr [esi + 8]\n test ecx, ecx\n je 0x6"}, {"address": "0x100b0900", "name": "MxOmni::GetHD", "matching": 1.0, "diff": ""}, {"address": "0x100b0910", "name": "MxOmni::SetHD", "matching": 1.0, "diff": ""}, {"address": "0x100b0940", "name": "MxOmni::GetCD", "matching": 1.0, "diff": ""}, {"address": "0x100b0950", "name": "MxOmni::SetCD", "matching": 1.0, "diff": ""}, {"address": "0x100b0980", "name": "MxOmni::IsSound3D", "matching": 1.0, "diff": ""}, {"address": "0x100b0990", "name": "MxOmni::SetSound3D", "matching": 1.0, "diff": ""}, {"address": "0x100b09a0", "name": "MxOmni::DoesEntityExist", "matching": 1.0, "diff": ""}, {"address": "0x100b09d0", "name": "MxOmni::StartTimer", "matching": 1.0, "diff": ""}, {"address": "0x100b0a00", "name": "MxOmni::StopTimer", "matching": 1.0, "diff": ""}, {"address": "0x100b0a30", "name": "MxOmniCreateFlags::MxOmniCreateFlags", "matching": 1.0, "diff": ""}, {"address": "0x100b0a70", "name": "MxOmniCreateParam::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b0b00", "name": "MxOmniCreateParam::MxOmniCreateParam", "matching": 1.0, "diff": ""}, {"address": "0x100b0bd0", "name": "MxHashTable<MxVariable *>::~MxHashTable<MxVariable *>", "matching": 1.0, "diff": ""}, {"address": "0x100b0ca0", "name": "MxHashTable<MxVariable *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b0d80", "name": "MxObjectFactory::MxObjectFactory", "matching": 0.969811320754717, "diff": "--- \n\n+++ \n\n@@ -8,25 +8,25 @@\n\n sub esp, 0x34\n mov dword ptr [ebp - 0x10], ecx\n push esi\n call MxCore::MxCore (FUNCTION)\n mov esi, dword ptr [ebp - 0x10]\n mov eax, dword ptr [ebp - 0x10]\n add esi, 8\n add eax, 0xc\n mov dword ptr [ebp - 4], 0\n mov byte ptr [ebp - 4], 1\n+mov byte ptr [ebp - 4], 2\n mov dword ptr [esi], 0\n-mov dword ptr [eax], 0\n-mov byte ptr [ebp - 4], 2\n mov byte ptr [ebp - 4], 3\n mov dword ptr [ebp - 0x38], eax\n+mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x10\n mov byte ptr [ebp - 4], 4\n mov dword ptr [ebp - 0x34], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x14\n mov byte ptr [ebp - 4], 5\n mov dword ptr [ebp - 0x30], eax\n mov dword ptr [eax], 0\n@@ -59,27 +59,27 @@\n\n mov dword ptr [ebp - 0x18], eax\n mov dword ptr [eax], 0\n mov byte ptr [ebp - 4], 0xa\n mov byte ptr [ebp - 4], 0xb\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x30\n mov byte ptr [ebp - 4], 0xc\n mov dword ptr [ebp - 0x14], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n-push 0\n add eax, 0x34\n+push 0\n+mov dword ptr [ebp - 0x40], eax\n+mov dword ptr [eax], 0\n+mov eax, dword ptr [ebp - 0x10]\n push 'MxPresenter' (STRING)\n lea ecx, [ebp - 0x3c]\n-mov dword ptr [ebp - 0x40], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n mov dword ptr [eax], MxObjectFactory (VTABLE)\n call MxAtomId::MxAtomId (FUNCTION)\n push eax\n mov ecx, esi\n mov byte ptr [ebp - 4], 0xd\n call MxAtomId::operator= (FUNCTION)\n mov byte ptr [ebp - 4], 0xc\n call <OFFSET7>\n push 0\n lea ecx, [ebp - 0x3c]\n@@ -178,23 +178,23 @@\n\n mov byte ptr [ebp - 4], 0x17\n push eax\n mov ecx, dword ptr [ebp - 0x14]\n call MxAtomId::operator= (FUNCTION)\n mov byte ptr [ebp - 4], 0xc\n call <OFFSET27>\n push 0\n lea ecx, [ebp - 0x14]\n push 'MxLoopingMIDIPresenter' (STRING)\n call MxAtomId::MxAtomId (FUNCTION)\n+push eax\n+mov ecx, dword ptr [ebp - 0x40]\n mov byte ptr [ebp - 4], 0x18\n-push eax\n-mov ecx, dword ptr [ebp - 0x40]\n call MxAtomId::operator= (FUNCTION)\n mov byte ptr [ebp - 4], 0xc\n call <OFFSET29>\n mov eax, dword ptr [ebp - 0x10]\n pop esi\n mov dword ptr [ebp - 4], 0xffffffff\n mov ecx, dword ptr [ebp - 0xc]\n mov esp, ebp\n mov dword ptr fs:[0], ecx\n pop ebp"}, {"address": "0x100b1160", "name": "MxObjectFactory::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b12c0", "name": "MxObjectFactory::Create", "matching": 1.0, "diff": ""}, {"address": "0x100b1830", "name": "MxLoopingMIDIPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b1840", "name": "MxLoopingMIDIPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100b19c0", "name": "MxLoopingMIDIPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b1a30", "name": "MxObjectFactory::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b1a50", "name": "MxSoundPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b1aa0", "name": "MxSoundPresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x100b1ad0", "name": "MxWavePresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x100b1af0", "name": "MxWavePresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x100b1b10", "name": "MxWavePresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b1b60", "name": "MxWavePresenter::GetPlayedChunks", "matching": 1.0, "diff": ""}, {"address": "0x100b1ba0", "name": "MxWavePresenter::FUN_100b1ba0", "matching": 1.0, "diff": ""}, {"address": "0x100b1bd0", "name": "MxWavePresenter::WriteToSoundBuffer", "matching": 0.981651376146789, "diff": "--- \n\n+++ \n\n@@ -62,22 +62,22 @@\n\n jne 0x67\n mov edi, dword ptr [esp + 0x14]\n mov esi, dword ptr [esp + 0x30]\n mov ecx, ebx\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, ebx\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n mov edx, dword ptr [ebp + 0x60]\n-cmp edx, ebx\n-jbe 0x31\n+cmp ebx, edx\n+jae 0x31\n mov eax, dword ptr [ebp + 0x1c]\n test byte ptr [eax + 0x30], 1\n jne 0x28\n movsx eax, byte ptr [ebp + 0x67]\n sub edx, ebx\n mov cl, al\n mov ch, cl\n mov edi, dword ptr [esp + 0x14]\n mov cl, al\n add edi, ebx"}, {"address": "0x100b1cf0", "name": "MxWavePresenter::ReadyTickle", "matching": 1.0, "diff": ""}, {"address": "0x100b1d50", "name": "MxWavePresenter::StartingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100b1ea0", "name": "MxWavePresenter::StreamingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100b1fe0", "name": "MxStreamChunk::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b1ff0", "name": "MxStreamChunk::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100b20a0", "name": "MxStreamChunk::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b20c0", "name": "MxWavePresenter::DoneTickle", "matching": 0.8941176470588236, "diff": "--- \n\n+++ \n\n@@ -1,42 +1,43 @@\n\n sub esp, 8\n push esi\n push edi\n mov esi, ecx\n mov ecx, dword ptr [ecx + 0x58]\n test ecx, ecx\n-je 0x50\n+je 0x4b\n lea eax, [esp + 0xc]\n lea edx, [esp + 8]\n push eax\n mov edi, dword ptr [ecx]\n push edx\n push ecx\n call dword ptr [edi + 0x10]\n mov edi, dword ptr [esi + 0x5c]\n mov eax, dword ptr [esp + 8]\n sub edx, edx\n mov ecx, dword ptr [esi + 0x1c]\n div edi\n mov ecx, dword ptr [ecx + 0x30]\n-test cl, 0x40\n-jne 0x1d\n-and ecx, 1\n+test cl, 0x41\n jne 0x18\n movsx eax, al\n xor ecx, ecx\n mov cl, byte ptr [esi + 0x64]\n cmp ecx, eax\n jne 0xc\n imul eax, edi\n add eax, dword ptr [esi + 0x60]\n cmp eax, dword ptr [esp + 8]\n ja 0x14\n mov ecx, esi\n call MxMediaPresenter::DoneTickle (FUNCTION)\n pop edi\n pop esi\n add esp, 8\n ret \n mov ecx, esi\n call MxMediaPresenter::DoneTickle (FUNCTION)\n pop edi\n+pop esi\n+add esp, 8\n+ret "}, {"address": "0x100b2130", "name": "MxWavePresenter::LoopChunk", "matching": 1.0, "diff": ""}, {"address": "0x100b2160", "name": "MxWavePresenter::PutData", "matching": 1.0, "diff": ""}, {"address": "0x100b2280", "name": "MxWavePresenter::EndAction", "matching": 1.0, "diff": ""}, {"address": "0x100b2300", "name": "MxWavePresenter::SetVolume", "matching": 1.0, "diff": ""}, {"address": "0x100b2360", "name": "MxWavePresenter::Enable", "matching": 1.0, "diff": ""}, {"address": "0x100b23a0", "name": "MxWavePresenter::ParseExtra", "matching": 0.9052631578947369, "diff": "--- \n\n+++ \n\n@@ -1,26 +1,25 @@\n\n sub esp, 0x400\n push ebx\n push esi\n push edi\n mov ebx, ecx\n call MxPresenter::ParseExtra (FUNCTION)\n mov eax, dword ptr [ebx + 0x1c]\n mov cx, word ptr [eax + 0x80]\n mov word ptr [esp + 0xc], cx\n-cmp word ptr [esp + 0xc], 0\n-mov edx, dword ptr [eax + 0x7c]\n-je 0x64\n+test cx, cx\n+mov esi, dword ptr [eax + 0x7c]\n+je 0x62\n mov eax, dword ptr [esp + 0xc]\n lea edi, [esp + 0xc]\n and eax, 0xffff\n-mov esi, edx\n mov ecx, eax\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n lea ecx, [esp + 0xc]\n mov edx, dword ptr [g_strSOUND (POINTER)]\n mov byte ptr [esp + eax + 0xc], 0\n lea eax, [esp + 0x20c]\n@@ -38,10 +37,12 @@\n\n add esp, 8\n test eax, eax\n jne 0x9\n push 0\n mov eax, dword ptr [ebx]\n mov ecx, ebx\n call dword ptr [eax + 0x54]\n pop edi\n pop esi\n pop ebx\n+add esp, 0x400\n+ret "}, {"address": "0x100b2440", "name": "MxWavePresenter::Pause", "matching": 1.0, "diff": ""}, {"address": "0x100b2470", "name": "MxWavePresenter::Resume", "matching": 1.0, "diff": ""}, {"address": "0x100b24f0", "name": "MxVideoPresenter::AlphaMask::AlphaMask", "matching": 0.697841726618705, "diff": "--- \n\n+++ \n\n@@ -31,111 +31,107 @@\n\n mov dword ptr [esi + 4], eax\n shr ecx, 2\n xor eax, eax\n rep stosd dword ptr es:[edi], eax\n mov ecx, ebp\n and ecx, 3\n rep stosb byte ptr es:[edi], al\n mov edx, dword ptr [ebx + 0xc]\n mov ecx, dword ptr [edx + 0x10]\n test ecx, ecx\n-jne 0x14\n+je 0x2a\n cmp ecx, 0x10\n-je 0x7\n-mov eax, dword ptr [edx + 8]\n-test eax, eax\n-jge 0x4\n-xor eax, eax\n-jmp 0x1e\n-jg 0x1b\n-jmp 0x17\n-cmp ecx, 0x10\n-jne 0x5\n-mov edi, dword ptr [ebx + 0x14]\n-jmp 0x1f\n+je 0x4a\n mov eax, dword ptr [edx + 8]\n test eax, eax\n jge 0x4\n xor eax, eax\n jmp 0x5\n jg 0x2\n neg eax\n dec eax\n mov edi, dword ptr [edx + 4]\n add edi, 3\n and edi, 0xfffffffc\n imul edi, eax\n add edi, dword ptr [ebx + 0x14]\n+mov dword ptr [esp + 0x10], edi\n+jmp 0x2c\n+mov eax, dword ptr [edx + 8]\n+test eax, eax\n+jge 0x4\n xor eax, eax\n-mov dword ptr [esp + 0x1c], edi\n+jmp 0x5\n+jg 0x2\n+neg eax\n+dec eax\n+mov edi, dword ptr [edx + 4]\n+add edi, 3\n+and edi, 0xfffffffc\n+imul edi, eax\n+add edi, dword ptr [ebx + 0x14]\n+mov dword ptr [esp + 0x10], edi\n+jmp 0x7\n+mov eax, dword ptr [ebx + 0x14]\n+mov dword ptr [esp + 0x10], eax\n+xor eax, eax\n mov ax, word ptr [esi + 8]\n add eax, 3\n and eax, 0xfffffffc\n cmp ecx, 0x10\n-mov dword ptr [esp + 0x14], eax\n+mov dword ptr [esp + 0x18], eax\n je 0xc\n cmp dword ptr [edx + 8], 0\n-jl 0x6\n+jle 0x6\n neg eax\n-mov dword ptr [esp + 0x14], eax\n+mov dword ptr [esp + 0x18], eax\n xor eax, eax\n cmp word ptr [esi + 0xa], ax\n-mov dword ptr [esp + 0x10], eax\n+mov dword ptr [esp + 0x14], eax\n mov dword ptr [esp + 0x20], eax\n-jbe 0x71\n-mov dword ptr [esp + 0x18], 0\n+jbe 0x72\n+mov dword ptr [esp + 0x1c], 0\n cmp word ptr [esi + 8], 0\n-jbe 0x46\n+mov edi, dword ptr [esp + 0x10]\n+jbe 0x47\n cmp byte ptr [edi], 0\n-je 0x2c\n-mov eax, dword ptr [esp + 0x10]\n+je 0x2d\n+mov eax, dword ptr [esp + 0x14]\n mov ecx, dword ptr [esi + 4]\n cdq \n and edx, 7\n mov bl, 1\n add eax, edx\n sar eax, 3\n lea ebp, [ecx + eax]\n-mov eax, dword ptr [esp + 0x10]\n+mov eax, dword ptr [esp + 0x14]\n cdq \n xor eax, edx\n sub eax, edx\n and eax, 7\n+cdq \n xor eax, edx\n sub eax, edx\n mov cl, al\n shl bl, cl\n or byte ptr [ebp], bl\n inc edi\n xor eax, eax\n mov ax, word ptr [esi + 8]\n-inc dword ptr [esp + 0x10]\n-inc dword ptr [esp + 0x18]\n-cmp eax, dword ptr [esp + 0x18]\n-jg -0x46\n-mov eax, dword ptr [esp + 0x14]\n+inc dword ptr [esp + 0x14]\n+inc dword ptr [esp + 0x1c]\n+cmp eax, dword ptr [esp + 0x1c]\n+jg -0x47\n+mov eax, dword ptr [esp + 0x18]\n inc dword ptr [esp + 0x20]\n-add dword ptr [esp + 0x1c], eax\n+add dword ptr [esp + 0x10], eax\n xor eax, eax\n mov ax, word ptr [esi + 0xa]\n-mov edi, dword ptr [esp + 0x1c]\n cmp eax, dword ptr [esp + 0x20]\n-jg -0x71\n+jg -0x72\n mov eax, esi\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 0x14\n ret 4\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-push esi\n-mov esi, ecx\n-call MxVideoPresenter::AlphaMask::~AlphaMask (FUNCTION)\n-test byte ptr [esp + 8], 1\n-je 0x9\n-push esi"}, {"address": "0x100b2650", "name": "MxVideoPresenter::AlphaMask::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b2670", "name": "MxVideoPresenter::AlphaMask::AlphaMask", "matching": 1.0, "diff": ""}, {"address": "0x100b26d0", "name": "MxVideoPresenter::AlphaMask::~AlphaMask", "matching": 1.0, "diff": ""}, {"address": "0x100b26f0", "name": "MxVideoPresenter::AlphaMask::IsHit", "matching": 0.8936170212765957, "diff": "--- \n\n+++ \n\n@@ -1,47 +1,47 @@\n\n mov eax, dword ptr [esp + 4]\n push ebx\n push esi\n push edi\n xor esi, esi\n mov si, word ptr [ecx + 8]\n-cmp esi, eax\n-jbe 0x4c\n+cmp eax, esi\n+jae 0x4d\n+xor edi, edi\n mov edx, dword ptr [esp + 0x14]\n-xor edi, edi\n mov di, word ptr [ecx + 0xa]\n cmp edi, edx\n-jbe 0x3e\n+jbe 0x3f\n imul edx, esi\n mov ecx, dword ptr [ecx + 4]\n lea edi, [edx + eax]\n mov eax, edi\n xor ebx, ebx\n cdq \n and edx, 7\n mov esi, 1\n add eax, edx\n sar eax, 3\n mov bl, byte ptr [ecx + eax]\n mov eax, edi\n cdq \n xor eax, edx\n sub eax, edx\n and eax, 7\n+cdq \n xor eax, edx\n sub eax, edx\n pop edi\n mov cl, al\n shl esi, cl\n and ebx, esi\n pop esi\n cmp ebx, 1\n pop ebx\n sbb eax, eax\n inc eax\n ret 8\n xor eax, eax\n pop edi\n pop esi\n pop ebx\n ret 8\n-int3 "}, {"address": "0x100b2760", "name": "MxVideoPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x100b27b0", "name": "MxVideoPresenter::Destroy", "matching": 0.8791208791208791, "diff": "--- \n\n+++ \n\n@@ -43,35 +43,35 @@\n\n mov dword ptr [esp + 0xc], ecx\n mov dword ptr [esp + 0x10], edx\n lea ecx, [esp + 0xc]\n mov dword ptr [esp + 0x14], eax\n mov dword ptr [esp + 0x18], edi\n push ecx\n call MVideoManager (FUNCTION)\n mov ecx, eax\n call MxVideoManager::InvalidateRect (FUNCTION)\n call MVideoManager (FUNCTION)\n-mov ecx, dword ptr [esp + 0x18]\n-sub ecx, dword ptr [esp + 0x10]\n+mov ecx, eax\n+mov eax, dword ptr [esp + 0x18]\n+sub eax, dword ptr [esp + 0x10]\n mov edx, dword ptr [esp + 0x10]\n-inc ecx\n+inc eax\n mov ebx, dword ptr [esp + 0xc]\n-push ecx\n-mov edi, dword ptr [eax]\n-mov ecx, dword ptr [esp + 0x18]\n-sub ecx, dword ptr [esp + 0x10]\n-inc ecx\n-push ecx\n+push eax\n+mov eax, dword ptr [esp + 0x18]\n+sub eax, dword ptr [esp + 0x10]\n+inc eax\n+push eax\n push edx\n push ebx\n-mov ecx, eax\n-call dword ptr [edi + 0x34]\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax + 0x34]\n mov ecx, dword ptr [esi + 0x50]\n test ecx, ecx\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov ecx, dword ptr [esi + 0x54]\n test ecx, ecx\n je 0x6\n push 1"}, {"address": "0x100b28b0", "name": "MxVideoPresenter::NextFrame", "matching": 1.0, "diff": ""}, {"address": "0x100b2900", "name": "MxVideoPresenter::IsHit", "matching": 0.45384615384615384, "diff": "--- \n\n+++ \n\n@@ -1,127 +1,133 @@\n\n-sub esp, 0x18\n+sub esp, 4\n push ebx\n push esi\n mov eax, dword ptr [ecx + 0x1c]\n push edi\n push ebp\n mov esi, ecx\n test eax, eax\n-je 0x146\n+je 0x130\n test byte ptr [eax + 0x31], 4\n jne 0xd\n call MxPresenter::IsEnabled (FUNCTION)\n test al, al\n-je 0x133\n-mov edx, dword ptr [esi + 0x50]\n-test edx, edx\n+je 0x11d\n+mov ecx, dword ptr [esi + 0x50]\n+test ecx, ecx\n jne 0x30\n cmp dword ptr [esi + 0x54], 0\n-je 0x122\n-test edx, edx\n+je 0x10c\n+test ecx, ecx\n jne 0x22\n-mov ecx, dword ptr [esp + 0x30]\n-mov eax, dword ptr [esp + 0x2c]\n-sub ecx, dword ptr [esi + 0x14]\n+mov edi, dword ptr [esp + 0x1c]\n+mov eax, dword ptr [esp + 0x18]\n+sub edi, dword ptr [esi + 0x14]\n sub eax, dword ptr [esi + 0x10]\n-push ecx\n+push edi\n+mov ecx, dword ptr [esi + 0x54]\n push eax\n-mov ecx, dword ptr [esi + 0x54]\n call MxVideoPresenter::AlphaMask::IsHit (FUNCTION)\n pop ebp\n pop edi\n pop esi\n pop ebx\n-add esp, 0x18\n+add esp, 4\n ret 8\n-mov ebp, dword ptr [edx + 0xc]\n+mov ebp, dword ptr [ecx + 0xc]\n mov eax, dword ptr [ebp + 8]\n-mov ecx, eax\n+mov edx, eax\n test eax, eax\n jg 0x4\n-mov ecx, eax\n-neg ecx\n-mov ebp, dword ptr [esi + 0x10]\n-mov edi, dword ptr [esi + 0x14]\n-add ecx, edi\n-mov dword ptr [esp + 0x10], ebp\n-mov ebp, dword ptr [edx + 0xc]\n-mov dword ptr [esp + 0x24], ecx\n-mov ecx, dword ptr [esp + 0x2c]\n-mov ebx, dword ptr [ebp + 4]\n-mov ebp, dword ptr [esp + 0x10]\n-add ebp, ebx\n-cmp dword ptr [esp + 0x10], ecx\n-jg 0xb6\n-cmp ebp, ecx\n-jle 0xae\n-mov ecx, dword ptr [esp + 0x30]\n-cmp edi, ecx\n-jg 0xa2\n-cmp dword ptr [esp + 0x24], ecx\n-jle 0x98\n-mov ebp, dword ptr [edx + 0xc]\n+mov edx, eax\n+neg edx\n+mov edi, dword ptr [esi + 0x10]\n+mov ebx, dword ptr [esi + 0x14]\n+add edx, ebx\n+mov ebp, dword ptr [ecx + 0xc]\n+mov dword ptr [esp + 0x10], edx\n+cmp edi, dword ptr [esp + 0x18]\n+mov edx, dword ptr [ebp + 4]\n+lea ebp, [edx + edi]\n+jg 0xab\n+cmp dword ptr [esp + 0x18], ebp\n+jge 0xa1\n+mov edi, dword ptr [esp + 0x1c]\n+cmp ebx, edi\n+jg 0x95\n+cmp dword ptr [esp + 0x10], edi\n+jle 0x8b\n+mov ebp, dword ptr [ecx + 0xc]\n mov ebp, dword ptr [ebp + 0x10]\n-mov dword ptr [esp + 0x18], ebp\n test ebp, ebp\n-jne 0x2d\n+jne 0x2c\n cmp ebp, 0x10\n-je 0x4\n+je 0x10\n test eax, eax\n-jge 0x4\n-sub ecx, edi\n-jmp 0xa\n+jl 0xc\n jg 0x2\n neg eax\n-sub eax, ecx\n-lea ecx, [eax + edi - 1]\n-add ebx, 3\n-and ebx, 0xfffffffc\n-imul ebx, ecx\n-add ebx, dword ptr [edx + 0x14]\n-sub ebx, dword ptr [esp + 0x10]\n-add ebx, dword ptr [esp + 0x2c]\n-jmp 0x25\n-cmp dword ptr [esp + 0x18], 0x10\n-jne 0x5\n-mov ebx, dword ptr [edx + 0x14]\n-jmp 0x19\n+sub eax, edi\n+lea edi, [eax + ebx - 1]\n+jmp 0x2\n+sub edi, ebx\n+add edx, 3\n+and edx, 0xfffffffc\n+imul edx, edi\n+add edx, dword ptr [ecx + 0x14]\n+sub edx, dword ptr [esi + 0x10]\n+add edx, dword ptr [esp + 0x18]\n+jmp 0x1d\n+cmp ebp, 0x10\n+je 0x15\n test eax, eax\n-jge 0x4\n-xor eax, eax\n-jmp 0x5\n jg 0x2\n neg eax\n+add edx, 3\n dec eax\n-add ebx, 3\n-and ebx, 0xfffffffc\n-imul ebx, eax\n-add ebx, dword ptr [edx + 0x14]\n+and edx, 0xfffffffc\n+imul edx, eax\n+add edx, dword ptr [ecx + 0x14]\n+jmp 0x3\n+mov edx, dword ptr [ecx + 0x14]\n test byte ptr [esi + 0x5e], 0x10\n je 0xc\n-mov al, byte ptr [ebx]\n+mov al, byte ptr [edx]\n pop ebp\n pop edi\n pop esi\n pop ebx\n-add esp, 0x18\n+add esp, 4\n ret 8\n mov eax, dword ptr [esi + 0x1c]\n test byte ptr [eax + 0x30], 8\n je 0x11\n-cmp byte ptr [ebx], 0\n+cmp byte ptr [edx], 0\n jne 0xc\n xor al, al\n pop ebp\n pop edi\n pop esi\n pop ebx\n-add esp, 0x18\n+add esp, 4\n ret 8\n mov al, 1\n pop ebp\n pop edi\n pop esi\n pop ebx\n-add esp, 0x18\n+add esp, 4\n ret 8\n xor al, al\n+pop ebp\n+pop edi\n+pop esi\n+pop ebx\n+add esp, 4\n+ret 8\n+xor al, al\n+pop ebp\n+pop edi\n+pop esi\n+pop ebx\n+add esp, 4\n+ret 8"}, {"address": "0x100b2a70", "name": "MxVideoPresenter::PutFrame", "matching": 0.38307873090481787, "diff": "--- \n\n+++ \n\n@@ -1,250 +1,364 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 0x58\n+sub esp, 0x50\n push ebx\n push esi\n push edi\n-mov esi, ecx\n+mov edi, ecx\n call MVideoManager (FUNCTION)\n mov eax, dword ptr [eax + 0x58]\n mov dword ptr [ebp - 0x30], eax\n call MVideoManager (FUNCTION)\n-mov edi, dword ptr [eax + 0x5c]\n-mov eax, dword ptr [esi]\n+mov ebx, dword ptr [eax + 0x5c]\n+mov eax, dword ptr [edi]\n mov ecx, dword ptr [eax + 0x84]\n-mov dword ptr [ebp - 0x10], ecx\n-mov ecx, esi\n-call dword ptr [ebp - 0x10]\n-mov ebx, eax\n-mov ecx, dword ptr [esi]\n+mov dword ptr [ebp - 0x48], ecx\n+mov ecx, edi\n+call dword ptr [ebp - 0x48]\n+mov esi, eax\n+mov ecx, dword ptr [edi]\n mov eax, dword ptr [ecx + 0x80]\n-mov ecx, esi\n-mov dword ptr [ebp - 0x20], eax\n+mov ecx, edi\n+mov dword ptr [ebp - 0x34], eax\n call eax\n-mov ecx, dword ptr [esi + 0x10]\n-mov edx, dword ptr [esi + 0x14]\n-add eax, ecx\n-mov dword ptr [ebp - 0x64], ecx\n+mov edx, dword ptr [edi + 0x10]\n+mov ecx, dword ptr [edi + 0x14]\n+add eax, edx\n+mov dword ptr [ebp - 0x44], edx\n dec eax\n-mov dword ptr [ebp - 0x60], edx\n-mov dword ptr [ebp - 0x5c], eax\n-lea eax, [edx + ebx]\n+mov dword ptr [ebp - 0x40], ecx\n+mov dword ptr [ebp - 0x3c], eax\n+lea eax, [ecx + esi]\n dec eax\n-mov dword ptr [ebp - 0x58], eax\n-mov eax, dword ptr [ebp - 0x30]\n-mov ebx, dword ptr [eax + 0x30]\n-mov eax, dword ptr [esi + 0x1c]\n+mov ecx, dword ptr [ebp - 0x30]\n+mov dword ptr [ebp - 0x38], eax\n+mov eax, dword ptr [edi + 0x1c]\n+mov esi, dword ptr [ecx + 0x30]\n test byte ptr [eax + 0x30], 0x10\n-je 0x169\n+je 0x166\n xor eax, eax\n-cmp dword ptr [esi + 0x58], eax\n-je 0x137\n-mov ecx, esi\n-mov dword ptr [ebp - 0x38], eax\n-mov dword ptr [ebp - 0x3c], eax\n-call dword ptr [ebp - 0x20]\n-mov ecx, esi\n-mov dword ptr [ebp - 0x34], eax\n-call dword ptr [ebp - 0x10]\n-mov dword ptr [ebp - 0x30], eax\n-mov ecx, dword ptr [esi + 0x14]\n-mov eax, dword ptr [esi + 0x10]\n-mov dword ptr [ebp - 0x4c], eax\n-mov dword ptr [ebp - 0x48], ecx\n-mov ecx, esi\n-call dword ptr [ebp - 0x20]\n-mov ecx, dword ptr [ebp - 0x4c]\n-add ecx, eax\n-mov dword ptr [ebp - 0x44], ecx\n-mov ecx, esi\n-call dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [ebp - 0x48]\n+cmp dword ptr [edi + 0x58], eax\n+je 0x12c\n+mov ecx, edi\n+mov dword ptr [ebp - 0x1c], eax\n+mov dword ptr [ebp - 0x18], eax\n+call dword ptr [ebp - 0x34]\n+mov ecx, edi\n+mov dword ptr [ebp - 0x14], eax\n+call dword ptr [ebp - 0x48]\n+mov ecx, dword ptr [edi + 0x14]\n+mov dword ptr [ebp - 0x10], eax\n+mov eax, dword ptr [edi + 0x10]\n+mov dword ptr [ebp - 0x28], ecx\n+mov ecx, edi\n+mov dword ptr [ebp - 0x2c], eax\n+call dword ptr [ebp - 0x34]\n+add eax, dword ptr [ebp - 0x2c]\n+mov ecx, edi\n+mov dword ptr [ebp - 0x24], eax\n+call dword ptr [ebp - 0x48]\n+mov ecx, dword ptr [ebp - 0x28]\n add ecx, eax\n mov eax, 0x1e0\n-mov dword ptr [ebp - 0x40], ecx\n-cmp dword ptr [ebp - 0x48], eax\n-jg 0x9a\n-mov ecx, 0x280\n-cmp dword ptr [ebp - 0x4c], ecx\n-jg 0x8c\n-cmp dword ptr [ebp - 0x38], eax\n+mov dword ptr [ebp - 0x20], ecx\n+cmp dword ptr [ebp - 0x28], eax\n+jg 0x91\n+mov edx, 0x280\n+cmp dword ptr [ebp - 0x2c], edx\n jg 0x83\n-cmp dword ptr [ebp - 0x3c], ecx\n+cmp dword ptr [ebp - 0x18], eax\n jg 0x7e\n-cmp dword ptr [ebp - 0x40], eax\n+cmp dword ptr [ebp - 0x1c], edx\n+jg 0x79\n+cmp ecx, eax\n jle 0x3\n-mov dword ptr [ebp - 0x40], eax\n+mov dword ptr [ebp - 0x20], eax\n mov eax, 0x280\n-cmp dword ptr [ebp - 0x44], eax\n+cmp dword ptr [ebp - 0x24], eax\n jle 0x3\n-mov dword ptr [ebp - 0x44], eax\n+mov dword ptr [ebp - 0x24], eax\n mov eax, 0x1e0\n-cmp dword ptr [ebp - 0x30], eax\n+cmp dword ptr [ebp - 0x10], eax\n jle 0x3\n-mov dword ptr [ebp - 0x30], eax\n+mov dword ptr [ebp - 0x10], eax\n mov eax, 0x280\n-cmp dword ptr [ebp - 0x34], eax\n+cmp dword ptr [ebp - 0x14], eax\n jle 0x3\n-mov dword ptr [ebp - 0x34], eax\n-mov ecx, dword ptr [ebp - 0x40]\n-sub ecx, dword ptr [ebp - 0x48]\n+mov dword ptr [ebp - 0x14], eax\n+mov ecx, dword ptr [ebp - 0x20]\n+sub ecx, dword ptr [ebp - 0x28]\n inc ecx\n cmp ecx, 1\n-jle 0x43\n-mov edx, dword ptr [ebp - 0x44]\n-sub edx, dword ptr [ebp - 0x4c]\n+jle 0x3f\n+mov edx, dword ptr [ebp - 0x24]\n+sub edx, dword ptr [ebp - 0x2c]\n inc edx\n cmp edx, 1\n-jle 0x37\n-mov eax, dword ptr [ebp - 0x34]\n+jle 0x33\n+mov eax, dword ptr [ebp - 0x14]\n+sub eax, dword ptr [ebp - 0x1c]\n sub eax, edx\n-sub eax, dword ptr [ebp - 0x3c]\n cmp eax, -1\n jne 0x14\n-mov eax, dword ptr [ebp - 0x30]\n+mov eax, dword ptr [ebp - 0x10]\n+sub eax, dword ptr [ebp - 0x18]\n sub eax, ecx\n-sub eax, dword ptr [ebp - 0x38]\n cmp eax, -1\n jne 0x7\n mov eax, 1\n-jmp 0x1b\n-mov eax, dword ptr [ebp - 0x3c]\n-add eax, edx\n-dec eax\n-mov dword ptr [ebp - 0x34], eax\n-mov eax, dword ptr [ebp - 0x38]\n-add eax, ecx\n-dec eax\n-mov dword ptr [ebp - 0x30], eax\n+jmp 0x17\n+add edx, dword ptr [ebp - 0x1c]\n+add ecx, dword ptr [ebp - 0x18]\n+dec edx\n+dec ecx\n xor eax, eax\n+mov dword ptr [ebp - 0x14], edx\n+mov dword ptr [ebp - 0x10], ecx\n jmp 0x5\n mov eax, 0xffffffff\n test eax, eax\n je 0x15\n cmp eax, 1\n je 0x2b\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n push 0\n-lea eax, [ebp - 0x3c]\n+lea eax, [ebp - 0x1c]\n push 0x8000\n-mov ecx, dword ptr [esi + 0x58]\n-push eax\n-lea edx, [ebp - 0x4c]\n-push ecx\n-mov eax, dword ptr [ebx]\n-push edx\n-push ebx\n+mov ecx, dword ptr [edi + 0x58]\n+push eax\n+lea edx, [ebp - 0x2c]\n+push ecx\n+mov eax, dword ptr [esi]\n+push edx\n+push esi\n call dword ptr [eax + 0x14]\n jmp -0x2b\n push 0x11\n-lea eax, [ebp - 0x3c]\n-push eax\n-mov ecx, dword ptr [esi + 0x58]\n-push ecx\n-mov edx, dword ptr [ebp - 0x48]\n-push edx\n-mov eax, dword ptr [ebp - 0x4c]\n-push eax\n-push ebx\n-mov ebx, dword ptr [ebx]\n+lea eax, [ebp - 0x1c]\n+push eax\n+mov ecx, dword ptr [edi + 0x58]\n+push ecx\n+mov edx, dword ptr [ebp - 0x28]\n+push edx\n+mov eax, dword ptr [ebp - 0x2c]\n+push eax\n+mov ebx, dword ptr [esi]\n+push esi\n call dword ptr [ebx + 0x1c]\n jmp -0x45\n-mov edi, dword ptr [esi + 0x50]\n-mov esi, dword ptr [edi + 0xc]\n-mov eax, dword ptr [esi + 8]\n+mov edx, dword ptr [edi + 0x50]\n+mov ecx, dword ptr [edx + 0xc]\n+mov eax, dword ptr [ecx + 8]\n test eax, eax\n jg 0x2\n neg eax\n push 1\n-push eax\n-mov eax, dword ptr [esi + 4]\n-push eax\n-push edx\n-push ecx\n-push 0\n-push 0\n-mov ecx, dword ptr [ebp - 0x30]\n-push edi\n-mov ebx, dword ptr [ecx]\n-call dword ptr [ebx + 0x30]\n-jmp -0x6c\n-push edi\n-lea ecx, [ebp - 0x54]\n+mov ebx, dword ptr [ebp - 0x44]\n+push eax\n+mov eax, dword ptr [ecx + 4]\n+push eax\n+mov ecx, dword ptr [ebp - 0x40]\n+push ecx\n+mov eax, dword ptr [ebp - 0x30]\n+push ebx\n+mov ecx, eax\n+push 0\n+mov esi, dword ptr [eax]\n+push 0\n+push edx\n+call dword ptr [esi + 0x30]\n+jmp -0x74\n+push ebx\n+lea ecx, [ebp - 0x5c]\n call MxRegionCursor::MxRegionCursor (FUNCTION)\n mov dword ptr [ebp - 4], 0\n-lea eax, [ebp - 0x64]\n-lea ecx, [ebp - 0x54]\n+lea eax, [ebp - 0x44]\n+lea ecx, [ebp - 0x5c]\n push eax\n call MxRegionCursor::VTable0x24 (FUNCTION)\n test eax, eax\n-je 0x2bc\n+je 0x2b3\n mov edx, dword ptr [eax]\n mov ecx, dword ptr [eax + 8]\n sub ecx, edx\n inc ecx\n cmp ecx, 1\n jl -0x21\n mov ecx, dword ptr [eax + 0xc]\n sub ecx, dword ptr [eax + 4]\n inc ecx\n cmp ecx, 1\n jl -0x2d\n-mov ecx, dword ptr [esi + 0x58]\n+mov ecx, dword ptr [edi + 0x58]\n test ecx, ecx\n-je 0x4c\n-sub edx, dword ptr [esi + 0x10]\n+je 0x4b\n+sub edx, dword ptr [edi + 0x10]\n mov dword ptr [ebp - 0x1c], edx\n mov edx, dword ptr [eax + 4]\n-sub edx, dword ptr [esi + 0x14]\n+sub edx, dword ptr [edi + 0x14]\n mov dword ptr [ebp - 0x18], edx\n mov edx, dword ptr [eax + 8]\n sub edx, dword ptr [eax]\n add edx, dword ptr [ebp - 0x1c]\n inc edx\n mov dword ptr [ebp - 0x14], edx\n mov edx, dword ptr [eax + 0xc]\n sub edx, dword ptr [eax + 4]\n add edx, dword ptr [ebp - 0x18]\n inc edx\n mov dword ptr [ebp - 0x10], edx\n-mov edi, dword ptr [eax]\n-mov dword ptr [ebp - 0x2c], edi\n+mov ebx, dword ptr [eax]\n+mov dword ptr [ebp - 0x2c], ebx\n mov edx, dword ptr [eax + 4]\n mov dword ptr [ebp - 0x28], edx\n mov edx, dword ptr [eax + 8]\n sub edx, dword ptr [eax]\n-add edx, dword ptr [ebp - 0x2c]\n+add edx, ebx\n inc edx\n mov dword ptr [ebp - 0x24], edx\n mov edx, dword ptr [eax + 0xc]\n sub edx, dword ptr [eax + 4]\n add edx, dword ptr [ebp - 0x28]\n inc edx\n mov dword ptr [ebp - 0x20], edx\n-mov edx, dword ptr [esi + 0x1c]\n+mov edx, dword ptr [edi + 0x1c]\n test byte ptr [edx + 0x30], 8\n-je 0x125\n+je 0x11f\n test ecx, ecx\n-je 0xeb\n+jne 0x32\n+mov edx, dword ptr [eax + 4]\n+mov ecx, dword ptr [eax]\n+push 0\n+mov ebx, dword ptr [eax + 0xc]\n+sub ebx, edx\n+mov eax, dword ptr [eax + 8]\n+inc ebx\n+sub eax, ecx\n+push ebx\n+inc eax\n+push eax\n+push edx\n+push ecx\n+sub edx, dword ptr [edi + 0x14]\n+push edx\n+sub ecx, dword ptr [edi + 0x10]\n+push ecx\n+mov eax, dword ptr [edi + 0x50]\n+push eax\n+mov edx, dword ptr [ebp - 0x30]\n+mov ecx, edx\n+mov ebx, dword ptr [edx]\n+call dword ptr [ebx + 0x30]\n+jmp -0xc2\n+cmp dword ptr [ebp - 0x28], 0x1e0\n+jg 0xb4\n+cmp dword ptr [ebp - 0x2c], 0x280\n+jg 0xa7\n+cmp dword ptr [ebp - 0x18], 0x1e0\n+jg 0x9a\n+cmp dword ptr [ebp - 0x1c], 0x280\n+jg 0x8d\n+cmp dword ptr [ebp - 0x20], 0x1e0\n+jle 0x7\n+mov dword ptr [ebp - 0x20], 0x1e0\n+cmp dword ptr [ebp - 0x24], 0x280\n+jle 0x7\n+mov dword ptr [ebp - 0x24], 0x280\n+cmp dword ptr [ebp - 0x10], 0x1e0\n+jle 0x7\n+mov dword ptr [ebp - 0x10], 0x1e0\n+cmp dword ptr [ebp - 0x14], 0x280\n+jle 0x7\n+mov dword ptr [ebp - 0x14], 0x280\n+mov eax, dword ptr [ebp - 0x20]\n+sub eax, dword ptr [ebp - 0x28]\n+inc eax\n+cmp eax, 1\n+jle 0x41\n+mov edx, dword ptr [ebp - 0x24]\n+sub edx, dword ptr [ebp - 0x2c]\n+inc edx\n+cmp edx, 1\n+jle 0x35\n+mov ebx, dword ptr [ebp - 0x14]\n+sub ebx, dword ptr [ebp - 0x1c]\n+sub ebx, edx\n+cmp ebx, -1\n+jne 0x14\n+mov ebx, dword ptr [ebp - 0x10]\n+sub ebx, dword ptr [ebp - 0x18]\n+sub ebx, eax\n+cmp ebx, -1\n+jne 0x7\n+mov eax, 1\n+jmp 0x19\n+mov ebx, dword ptr [ebp - 0x1c]\n+add eax, dword ptr [ebp - 0x18]\n+add ebx, edx\n+dec eax\n+dec ebx\n+mov dword ptr [ebp - 0x10], eax\n+xor eax, eax\n+mov dword ptr [ebp - 0x14], ebx\n+jmp 0x5\n+mov eax, 0xffffffff\n+test eax, eax\n+jl -0x190\n+push 0\n+lea eax, [ebp - 0x1c]\n+push 0x8000\n+mov ebx, dword ptr [esi]\n+push eax\n+push ecx\n+lea ecx, [ebp - 0x2c]\n+push ecx\n+push esi\n+call dword ptr [ebx + 0x14]\n+jmp -0x1ab\n+test ecx, ecx\n+jne 0x30\n+mov edx, dword ptr [eax + 4]\n+mov ecx, dword ptr [eax]\n+mov ebx, dword ptr [eax + 0xc]\n+mov eax, dword ptr [eax + 8]\n+sub ebx, edx\n+sub eax, ecx\n+inc ebx\n+inc eax\n+push ebx\n+push eax\n+push edx\n+mov eax, dword ptr [edi + 0x50]\n+push ecx\n+sub edx, dword ptr [edi + 0x14]\n+push edx\n+sub ecx, dword ptr [edi + 0x10]\n+push ecx\n+mov edx, dword ptr [ebp - 0x30]\n+mov ebx, dword ptr [edx]\n+push eax\n+mov ecx, edx\n+call dword ptr [ebx + 0x28]\n+jmp -0x1df\n cmp dword ptr [ebp - 0x28], 0x1e0\n jg 0xb6\n cmp dword ptr [ebp - 0x2c], 0x280\n jg 0xa9\n cmp dword ptr [ebp - 0x18], 0x1e0\n jg 0x9c\n cmp dword ptr [ebp - 0x1c], 0x280\n jg 0x8f\n cmp dword ptr [ebp - 0x20], 0x1e0\n jle 0x7\n@@ -261,164 +375,53 @@\n\n mov edx, dword ptr [ebp - 0x20]\n sub edx, dword ptr [ebp - 0x28]\n inc edx\n cmp edx, 1\n jle 0x43\n mov eax, dword ptr [ebp - 0x24]\n sub eax, dword ptr [ebp - 0x2c]\n inc eax\n cmp eax, 1\n jle 0x37\n-mov edi, dword ptr [ebp - 0x14]\n-sub edi, eax\n-sub edi, dword ptr [ebp - 0x1c]\n-cmp edi, -1\n+mov ebx, dword ptr [ebp - 0x14]\n+sub ebx, eax\n+sub ebx, dword ptr [ebp - 0x1c]\n+cmp ebx, -1\n jne 0x14\n-mov edi, dword ptr [ebp - 0x10]\n-sub edi, edx\n-sub edi, dword ptr [ebp - 0x18]\n-cmp edi, -1\n+mov ebx, dword ptr [ebp - 0x10]\n+sub ebx, dword ptr [ebp - 0x18]\n+sub ebx, edx\n+cmp ebx, -1\n jne 0x7\n mov eax, 1\n jmp 0x1b\n-mov edi, dword ptr [ebp - 0x1c]\n-add edi, eax\n-dec edi\n-mov dword ptr [ebp - 0x14], edi\n+mov ebx, dword ptr [ebp - 0x1c]\n+add ebx, eax\n mov eax, dword ptr [ebp - 0x18]\n+dec ebx\n add eax, edx\n dec eax\n+mov dword ptr [ebp - 0x14], ebx\n mov dword ptr [ebp - 0x10], eax\n xor eax, eax\n jmp 0x5\n mov eax, 0xffffffff\n test eax, eax\n-jl -0x165\n+jl -0x2af\n push 0\n lea eax, [ebp - 0x1c]\n-push 0x8000\n-mov edi, dword ptr [ebx]\n+push 0\n+mov ebx, dword ptr [esi]\n push eax\n push ecx\n lea ecx, [ebp - 0x2c]\n push ecx\n-push ebx\n-call dword ptr [edi + 0x14]\n-jmp -0x180\n-mov edx, dword ptr [eax + 4]\n-mov ecx, dword ptr [eax]\n-push 0\n-mov edi, dword ptr [eax + 0xc]\n-sub edi, edx\n-mov eax, dword ptr [eax + 8]\n-inc edi\n-sub eax, ecx\n-push edi\n-inc eax\n-push eax\n-push edx\n-push ecx\n-sub edx, dword ptr [esi + 0x14]\n-push edx\n-sub ecx, dword ptr [esi + 0x10]\n-push ecx\n-mov eax, dword ptr [esi + 0x50]\n-push eax\n-mov edx, dword ptr [ebp - 0x30]\n-mov ecx, edx\n-mov edi, dword ptr [edx]\n-call dword ptr [edi + 0x30]\n-jmp -0x1b2\n-test ecx, ecx\n-je 0xe8\n-cmp dword ptr [ebp - 0x28], 0x1e0\n-jg 0xb6\n-cmp dword ptr [ebp - 0x2c], 0x280\n-jg 0xa9\n-cmp dword ptr [ebp - 0x18], 0x1e0\n-jg 0x9c\n-cmp dword ptr [ebp - 0x1c], 0x280\n-jg 0x8f\n-cmp dword ptr [ebp - 0x20], 0x1e0\n-jle 0x7\n-mov dword ptr [ebp - 0x20], 0x1e0\n-cmp dword ptr [ebp - 0x24], 0x280\n-jle 0x7\n-mov dword ptr [ebp - 0x24], 0x280\n-cmp dword ptr [ebp - 0x10], 0x1e0\n-jle 0x7\n-mov dword ptr [ebp - 0x10], 0x1e0\n-cmp dword ptr [ebp - 0x14], 0x280\n-jle 0x7\n-mov dword ptr [ebp - 0x14], 0x280\n-mov edx, dword ptr [ebp - 0x20]\n-sub edx, dword ptr [ebp - 0x28]\n-inc edx\n-cmp edx, 1\n-jle 0x43\n-mov eax, dword ptr [ebp - 0x24]\n-sub eax, dword ptr [ebp - 0x2c]\n-inc eax\n-cmp eax, 1\n-jle 0x37\n-mov edi, dword ptr [ebp - 0x14]\n-sub edi, dword ptr [ebp - 0x1c]\n-sub edi, eax\n-cmp edi, -1\n-jne 0x14\n-mov edi, dword ptr [ebp - 0x10]\n-sub edi, dword ptr [ebp - 0x18]\n-sub edi, edx\n-cmp edi, -1\n-jne 0x7\n-mov eax, 1\n-jmp 0x1b\n-mov edi, dword ptr [ebp - 0x1c]\n-add edi, eax\n-dec edi\n-mov dword ptr [ebp - 0x14], edi\n-mov eax, dword ptr [ebp - 0x18]\n-add eax, edx\n-dec eax\n-mov dword ptr [ebp - 0x10], eax\n-xor eax, eax\n-jmp 0x5\n-mov eax, 0xffffffff\n-test eax, eax\n-jl -0x28a\n-push 0\n-lea eax, [ebp - 0x1c]\n-push 0\n-mov edi, dword ptr [ebx]\n-push eax\n-push ecx\n-lea ecx, [ebp - 0x2c]\n-push ecx\n-push ebx\n-call dword ptr [edi + 0x14]\n-jmp -0x2a2\n-mov ecx, dword ptr [eax + 4]\n-mov edx, dword ptr [eax]\n-mov edi, dword ptr [eax + 0xc]\n-mov eax, dword ptr [eax + 8]\n-sub edi, ecx\n-sub eax, edx\n-inc edi\n-inc eax\n-push edi\n-push eax\n-push ecx\n-mov eax, dword ptr [esi + 0x50]\n-push edx\n-sub ecx, dword ptr [esi + 0x14]\n-push ecx\n-sub edx, dword ptr [esi + 0x10]\n-push edx\n-mov ecx, dword ptr [ebp - 0x30]\n-push eax\n-mov edi, dword ptr [ecx]\n-call dword ptr [edi + 0x28]\n-jmp -0x2d0\n+push esi\n+call dword ptr [ebx + 0x14]\n+jmp -0x2c7\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET5>\n-jmp -0x35d\n+jmp -0x35c\n mov eax, <OFFSET6>\n+jmp ___CxxFrameHandler (FUNCTION)\n+lea ecx, [ebp - 0x5c]\n+jmp MxRegionCursor::~MxRegionCursor (FUNCTION)"}, {"address": "0x100b2f60", "name": "MxVideoPresenter::ReadyTickle", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,26 +1,26 @@\n\n push ebx\n push esi\n push edi\n mov ebx, ecx\n call MxMediaPresenter::NextChunk (FUNCTION)\n-mov esi, eax\n-test esi, esi\n+mov edi, eax\n+test edi, edi\n je 0x2a\n-mov edi, dword ptr [ebx]\n-push esi\n+mov esi, dword ptr [ebx]\n+push edi\n mov ecx, ebx\n-call dword ptr [edi + 0x5c]\n-push esi\n+call dword ptr [esi + 0x5c]\n+push edi\n mov ecx, dword ptr [ebx + 0x40]\n call MxDSSubscriber::DestroyChunk (FUNCTION)\n mov ecx, ebx\n-call dword ptr [edi + 0x30]\n+call dword ptr [esi + 0x30]\n mov eax, 1\n mov cl, byte ptr [ebx + 8]\n shl eax, cl\n mov dword ptr [ebx + 8], 2\n or dword ptr [ebx + 0xc], eax\n pop edi\n pop esi\n pop ebx\n ret "}, {"address": "0x100b2fa0", "name": "MxVideoPresenter::StartingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100b2fe0", "name": "MxVideoPresenter::StreamingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100b3080", "name": "MxVideoPresenter::RepeatingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100b3130", "name": "MxVideoPresenter::Unk5Tickle", "matching": 1.0, "diff": ""}, {"address": "0x100b31a0", "name": "MxVideoPresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x100b31d0", "name": "MxVideoPresenter::EndAction", "matching": 0.9423076923076923, "diff": "--- \n\n+++ \n\n@@ -21,27 +21,27 @@\n\n je 0x35\n mov eax, dword ptr [eax + 0xc]\n mov edx, dword ptr [eax + 8]\n test edx, edx\n jg 0x2\n neg edx\n mov eax, dword ptr [eax + 4]\n mov ecx, dword ptr [esi + 0x10]\n mov esi, dword ptr [esi + 0x14]\n add eax, ecx\n+add edx, esi\n mov dword ptr [ebp - 0x20], ecx\n+lea ecx, [ebp - 0x20]\n mov dword ptr [ebp - 0x1c], esi\n-add esi, edx\n-lea ecx, [ebp - 0x20]\n push ecx\n mov dword ptr [ebp - 0x18], eax\n-mov dword ptr [ebp - 0x14], esi\n+mov dword ptr [ebp - 0x14], edx\n call MVideoManager (FUNCTION)\n mov ecx, eax\n call MxVideoManager::InvalidateRect (FUNCTION)\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET6>\n mov eax, dword ptr [ebp - 0xc]\n pop esi\n mov dword ptr fs:[0], eax\n mov esp, ebp\n pop ebp"}, {"address": "0x100b3280", "name": "MxVideoPresenter::PutData", "matching": 1.0, "diff": ""}, {"address": "0x100b3300", "name": "MxVideoPresenter::VTable0x74", "matching": 1.0, "diff": ""}, {"address": "0x100b3310", "name": "MxFlcPresenter::MxFlcPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b33f0", "name": "MxFlcPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b3400", "name": "MxFlcPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b3420", "name": "MxFlcPresenter::~MxFlcPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b3490", "name": "MxFlcPresenter::LoadHeader", "matching": 1.0, "diff": ""}, {"address": "0x100b34d0", "name": "MxFlcPresenter::CreateBitmap", "matching": 1.0, "diff": ""}, {"address": "0x100b3570", "name": "MxFlcPresenter::LoadFrame", "matching": 1.0, "diff": ""}, {"address": "0x100b3620", "name": "MxFlcPresenter::RealizePalette", "matching": 1.0, "diff": ""}, {"address": "0x100b3650", "name": "MxSmkPresenter::MxSmkPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b3730", "name": "MxSmkPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b3740", "name": "MxSmkPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100b3850", "name": "MxSmkPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b3870", "name": "MxSmkPresenter::~MxSmkPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b38d0", "name": "MxSmkPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x100b3900", "name": "MxSmkPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b3940", "name": "MxSmkPresenter::LoadHeader", "matching": 1.0, "diff": ""}, {"address": "0x100b3960", "name": "MxSmkPresenter::CreateBitmap", "matching": 1.0, "diff": ""}, {"address": "0x100b3a00", "name": "MxSmkPresenter::LoadFrame", "matching": 1.0, "diff": ""}, {"address": "0x100b3c00", "name": "MxCollection<MxRect32 *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x100b3c10", "name": "MxCollection<MxRect32 *>::MxCollection<MxRect32 *>", "matching": 1.0, "diff": ""}, {"address": "0x100b3c80", "name": "MxCollection<MxRect32 *>::~MxCollection<MxRect32 *>", "matching": 1.0, "diff": ""}, {"address": "0x100b3cd0", "name": "MxCollection<MxRect32 *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b3ce0", "name": "MxList<MxRect32 *>::~MxList<MxRect32 *>", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -4,33 +4,33 @@\n\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n mov dword ptr [ecx], MxList<MxRect32 *> (VTABLE)\n sub esp, 4\n mov dword ptr [ebp - 0x10], ecx\n mov dword ptr [ebp - 4], 0\n push esi\n push edi\n-mov esi, dword ptr [ecx + 0x10]\n-test esi, esi\n+mov edi, dword ptr [ecx + 0x10]\n+test edi, edi\n je 0x1c\n-mov edi, dword ptr [esi + 8]\n-mov eax, dword ptr [esi]\n+mov esi, dword ptr [edi + 8]\n+mov eax, dword ptr [edi]\n push eax\n mov ecx, dword ptr [ebp - 0x10]\n call dword ptr [ecx + 0xc]\n add esp, 4\n-push esi\n+push edi\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-mov esi, edi\n+mov edi, esi\n jmp -0x20\n xor eax, eax\n mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ecx + 8], eax\n mov dword ptr [ecx + 0x14], eax\n mov dword ptr [ecx + 0x10], eax\n call <OFFSET4>\n mov eax, dword ptr [ebp - 0xc]\n pop edi"}, {"address": "0x100b3d70", "name": "MxPtrList<MxRect32>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b3d80", "name": "MxRectList::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b3df0", "name": "MxPtrList<MxRect32>::~MxPtrList<MxRect32>", "matching": 1.0, "diff": ""}, {"address": "0x100b3e40", "name": "MxCollection<MxRect32 *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b3eb0", "name": "MxList<MxRect32 *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b3f60", "name": "MxPtrList<MxRect32>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b3fd0", "name": "MxRectList::~MxRectList", "matching": 1.0, "diff": ""}, {"address": "0x100b4020", "name": "MxRectListCursor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b4090", "name": "MxPtrListCursor<MxRect32>::~MxPtrListCursor<MxRect32>", "matching": 1.0, "diff": ""}, {"address": "0x100b40e0", "name": "MxListCursor<MxRect32 *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b4150", "name": "MxPtrListCursor<MxRect32>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b41c0", "name": "MxListCursor<MxRect32 *>::~MxListCursor<MxRect32 *>", "matching": 1.0, "diff": ""}, {"address": "0x100b4210", "name": "MxRectListCursor::~MxRectListCursor", "matching": 1.0, "diff": ""}, {"address": "0x100b4260", "name": "MxSmkPresenter::VTable0x88", "matching": 1.0, "diff": ""}, {"address": "0x100b42c0", "name": "MxSmkPresenter::RealizePalette", "matching": 1.0, "diff": ""}, {"address": "0x100b42f0", "name": "MxSmkPresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x100b4300", "name": "MxSmkPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b4310", "name": "MxLoopingFlcPresenter::MxLoopingFlcPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b4380", "name": "MxLoopingFlcPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b4390", "name": "MxLoopingFlcPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b43b0", "name": "MxLoopingFlcPresenter::~MxLoopingFlcPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b4410", "name": "MxLoopingFlcPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x100b4430", "name": "MxLoopingFlcPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b4470", "name": "MxLoopingFlcPresenter::NextFrame", "matching": 1.0, "diff": ""}, {"address": "0x100b44c0", "name": "MxLoopingFlcPresenter::VTable0x88", "matching": 1.0, "diff": ""}, {"address": "0x100b4520", "name": "MxLoopingFlcPresenter::RepeatingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100b46e0", "name": "MxStreamChunkListCursor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b4750", "name": "MxListCursor<MxStreamChunk *>::~MxListCursor<MxStreamChunk *>", "matching": 1.0, "diff": ""}, {"address": "0x100b47a0", "name": "MxListCursor<MxStreamChunk *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b4810", "name": "MxStreamChunkListCursor::~MxStreamChunkListCursor", "matching": 1.0, "diff": ""}, {"address": "0x100b4860", "name": "MxLoopingFlcPresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x100b48a0", "name": "MxLoopingFlcPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b48b0", "name": "MxLoopingSmkPresenter::MxLoopingSmkPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b4920", "name": "MxLoopingSmkPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b4930", "name": "MxLoopingSmkPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b4950", "name": "MxLoopingSmkPresenter::~MxLoopingSmkPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b49b0", "name": "MxLoopingSmkPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x100b49d0", "name": "MxLoopingSmkPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b4a00", "name": "MxLoopingSmkPresenter::VTable0x88", "matching": 1.0, "diff": ""}, {"address": "0x100b4a30", "name": "MxLoopingSmkPresenter::NextFrame", "matching": 0.5757575757575758, "diff": "--- \n\n+++ \n\n@@ -1,33 +1,33 @@\n\n push ebx\n push esi\n push edi\n-mov esi, ecx\n+mov edi, ecx\n call MxMediaPresenter::NextChunk (FUNCTION)\n test byte ptr [eax + 8], 2\n-mov edi, eax\n+mov esi, eax\n je 0x16\n mov eax, 1\n-mov cl, byte ptr [esi + 8]\n+mov cl, byte ptr [edi + 8]\n shl eax, cl\n-mov dword ptr [esi + 8], 4\n-or dword ptr [esi + 0xc], eax\n+mov dword ptr [edi + 8], 4\n+or dword ptr [edi + 0xc], eax\n jmp 0x23\n-mov ebx, dword ptr [esi]\n-push edi\n-mov ecx, esi\n+mov ebx, dword ptr [edi]\n+push esi\n+mov ecx, edi\n call dword ptr [ebx + 0x68]\n-push edi\n-mov ecx, esi\n+push esi\n+mov ecx, edi\n call dword ptr [ebx + 0x58]\n-mov ecx, dword ptr [esi + 0x1c]\n+mov ecx, dword ptr [edi + 0x1c]\n mov eax, 0x3e8\n cdq \n idiv dword ptr [ecx + 0xa4]\n-add dword ptr [esi + 0x720], eax\n-push edi\n-mov ecx, dword ptr [esi + 0x40]\n+add dword ptr [edi + 0x720], eax\n+push esi\n+mov ecx, dword ptr [edi + 0x40]\n call MxDSSubscriber::DestroyChunk (FUNCTION)\n pop edi\n pop esi\n pop ebx\n ret "}, {"address": "0x100b4a90", "name": "MxLoopingSmkPresenter::VTable0x8c", "matching": 1.0, "diff": ""}, {"address": "0x100b4b00", "name": "MxLoopingSmkPresenter::RepeatingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100b4cd0", "name": "MxLoopingSmkPresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x100b4d40", "name": "MxLoopingSmkPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b4d50", "name": "MxPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x100b4d80", "name": "MxPresenter::StartAction", "matching": 1.0, "diff": ""}, {"address": "0x100b4e40", "name": "MxPresenter::EndAction", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -14,22 +14,22 @@\n\n je 0xfc\n lea eax, [ecx + 0x20]\n lea ecx, [ebp - 0x2c]\n push eax\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 4], 0\n cmp dword ptr [ecx + 0x3c], 0\n jne 0xaf\n call MxOmni::GetInstance (FUNCTION)\n-mov esi, dword ptr [eax]\n-mov edi, eax\n+mov edi, dword ptr [eax]\n+mov esi, eax\n mov ecx, dword ptr [ebp - 0x10]\n mov eax, 1\n mov dword ptr [ebp - 0x28], MxParam (VTABLE)\n mov ebx, dword ptr [ecx + 0x1c]\n mov byte ptr [ebp - 4], al\n mov dword ptr [ebp - 0x20], 0\n mov ecx, 2\n push 0x94\n mov dword ptr [ebp - 0x24], ecx\n mov byte ptr [ebp - 4], cl\n@@ -57,23 +57,23 @@\n\n mov ecx, dword ptr [ebp - 0x1c]\n mov byte ptr [ebp - 4], 4\n mov byte ptr [ebp - 4], 0\n mov byte ptr [ebp - 4], 5\n mov dword ptr [ecx + 0x1c], edx\n mov ecx, dword ptr [ebp - 0x1c]\n mov ax, word ptr [ebx + 0x24]\n mov word ptr [ecx + 0x24], ax\n lea eax, [ebp - 0x28]\n push eax\n-mov ecx, edi\n+mov ecx, esi\n mov dword ptr [ebp - 0x28], MxEndActionNotificationParam (VTABLE)\n-call dword ptr [esi + 0x34]\n+call dword ptr [edi + 0x34]\n mov byte ptr [ebp - 4], 0\n call <OFFSET10>\n mov ecx, dword ptr [ebp - 0x10]\n mov eax, 1\n mov dword ptr [ecx + 0x1c], 0\n mov cl, byte ptr [ecx + 8]\n shl eax, cl\n mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ecx + 8], 0"}, {"address": "0x100b4fc0", "name": "MxPresenter::ParseExtra", "matching": 0.9320388349514563, "diff": "--- \n\n+++ \n\n@@ -10,28 +10,25 @@\n\n push esi\n lea eax, [ecx + 0x20]\n push edi\n mov ebx, ecx\n push eax\n lea ecx, [ebp - 0x10]\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n mov dword ptr [ebp - 4], 0\n mov eax, dword ptr [ebx + 0x1c]\n mov cx, word ptr [eax + 0x80]\n-mov word ptr [ebp - 0x12], cx\n-cmp word ptr [ebp - 0x12], 0\n-mov edx, dword ptr [eax + 0x7c]\n-je 0xd9\n-mov eax, dword ptr [ebp - 0x12]\n+mov esi, dword ptr [eax + 0x7c]\n+test cx, cx\n+je 0xd2\n+movzx eax, cx\n lea edi, [ebp - 0x310]\n-and eax, 0xffff\n-mov esi, edx\n mov ecx, eax\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n lea ecx, [ebp - 0x310]\n mov edx, dword ptr [g_strWORLD (POINTER)]\n mov byte ptr [ebp + eax - 0x310], 0\n push ecx\n@@ -94,10 +91,13 @@\n\n call <OFFSET10>\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n mov eax, <OFFSET11>\n+jmp ___CxxFrameHandler (FUNCTION)\n+lea ecx, [ebp - 0x10]\n+jmp MxAutoLocker::~MxAutoLocker (FUNCTION)"}, {"address": "0x100b5120", "name": "MxPresenter::SendToCompositePresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b5200", "name": "MxPresenter::Tickle", "matching": 0.8163265306122449, "diff": "--- \n\n+++ \n\n@@ -10,21 +10,21 @@\n\n lea eax, [ecx + 0x20]\n mov esi, ecx\n push eax\n lea ecx, [ebp - 0x10]\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n mov dword ptr [ebp - 4], 0\n mov eax, dword ptr [esi + 8]\n dec eax\n cmp eax, 5\n ja 0x4f\n-jmp dword ptr [eax*4 + 0x100b52b8]\n+jmp dword ptr [eax*4 + 0x10039408]\n mov eax, dword ptr [esi]\n mov ecx, esi\n call dword ptr [eax + 0x18]\n cmp dword ptr [esi + 8], 2\n jne 0x3b\n mov eax, dword ptr [esi]\n mov ecx, esi\n call dword ptr [eax + 0x1c]\n cmp dword ptr [esi + 8], 3\n jne 0x2e\n@@ -52,23 +52,22 @@\n\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop esi\n mov esp, ebp\n pop ebp\n ret \n mov eax, <OFFSET4>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x10]\n jmp MxAutoLocker::~MxAutoLocker (FUNCTION)\n-inc ecx\n-push edx\n-or edx, dword ptr [eax]\n-dec esi\n-push edx\n-or edx, dword ptr [eax]\n-pop ebx\n-push edx\n-or edx, dword ptr [eax]\n-push 0x75100b52\n-push edx\n-or edx, dword ptr [eax]\n-adc byte ptr [edx + 0xb], 0x10\n+xchg ecx, eax\n+xchg ebx, eax\n+add edx, dword ptr [eax]\n+sahf \n+xchg ebx, eax\n+add edx, dword ptr [eax]\n+stosd dword ptr es:[edi], eax\n+xchg ebx, eax\n+add edx, dword ptr [eax]\n+mov eax, 0xc5100393\n+xchg ebx, eax\n+add edx, dword ptr [eax]"}, {"address": "0x100b52d0", "name": "MxPresenter::Enable", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,21 +1,21 @@\n\n push esi\n mov esi, ecx\n cmp dword ptr [ecx + 0x1c], 0\n je 0x28\n call MxPresenter::IsEnabled (FUNCTION)\n mov dl, byte ptr [esp + 8]\n cmp al, dl\n je 0x1b\n-mov ecx, dword ptr [esi + 0x1c]\n-mov eax, dword ptr [ecx + 0x30]\n-add ecx, 0x30\n+mov eax, dword ptr [esi + 0x1c]\n+mov ecx, dword ptr [eax + 0x30]\n+add eax, 0x30\n test dl, dl\n je 0x9\n-or eax, 0x20\n+or ecx, 0x20\n pop esi\n-mov dword ptr [ecx], eax\n+mov dword ptr [eax], ecx\n ret 4\n-and eax, 0xffffffdf\n-mov dword ptr [ecx], eax\n+and ecx, 0xffffffdf\n+mov dword ptr [eax], ecx\n pop esi\n ret 4"}, {"address": "0x100b5310", "name": "PresenterNameDispatch", "matching": 0.8307692307692308, "diff": "--- \n\n+++ \n\n@@ -9,21 +9,21 @@\n\n sub eax, eax\n repne scasb al, byte ptr es:[edi]\n not ecx\n dec ecx\n jne 0xad\n xor eax, eax\n mov ax, word ptr [edx + 0xc]\n sub eax, 3\n cmp eax, 7\n ja 0x9b\n-jmp dword ptr [eax*4 + 0x100b53e4]\n+jmp dword ptr [eax*4 + 0x10039534]\n mov eax, dword ptr [edx + 0xa8]\n cmp eax, 0x434c4620\n je 0xc\n cmp eax, 0x4b4d5320\n je 0x1a\n mov eax, esi\n pop edi\n pop esi\n ret \n test byte ptr [edx + 0x30], 1\n@@ -73,28 +73,23 @@\n\n pop edi\n mov eax, esi\n pop esi\n ret \n mov esi, 'MxStillPresenter' (STRING)\n mov eax, esi\n pop edi\n pop esi\n ret \n nop \n-dec edx\n-push ebx\n-or edx, dword ptr [eax]\n-lea edx, [ebx + 0xb]\n-adc dh, bl\n-push ebx\n-or edx, dword ptr [eax]\n-lds edx, ptr [ebx + 0xb]\n-adc ch, al\n-push ebx\n-or edx, dword ptr [eax]\n-iretd \n-push ebx\n-or edx, dword ptr [eax]\n-lds edx, ptr [ebx + 0xb]\n-adc cl, bl\n-push ebx\n-or edx, dword ptr [eax]\n+lcall 0x394, 0xdd100394\n+adc byte ptr [esi], ch\n+xchg ebp, eax\n+add edx, dword ptr [eax]\n+adc eax, 0x15100395\n+xchg ebp, eax\n+add edx, dword ptr [eax]\n+pop ds\n+xchg ebp, eax\n+add edx, dword ptr [eax]\n+adc eax, 0x29100395\n+xchg ebp, eax\n+add edx, dword ptr [eax]"}, {"address": "0x100b5410", "name": "MxPresenter::CreateEntity", "matching": 0.6407766990291263, "diff": "--- \n\n+++ \n\n@@ -1,51 +1,52 @@\n\n-sub esp, 0x404\n+sub esp, 0x400\n mov edx, ecx\n mov ecx, 0xffffffff\n sub eax, eax\n push esi\n push edi\n-mov edi, dword ptr [esp + 0x410]\n+mov edi, dword ptr [esp + 0x40c]\n repne scasb al, byte ptr es:[edi]\n not ecx\n sub edi, ecx\n mov eax, ecx\n shr ecx, 2\n mov esi, edi\n-lea edi, [esp + 0x20c]\n+lea edi, [esp + 8]\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n mov eax, dword ptr [edx + 0x1c]\n mov cx, word ptr [eax + 0x80]\n-mov edx, dword ptr [eax + 0x7c]\n-mov word ptr [esp + 0xa], cx\n test cx, cx\n-je 0x3e\n-mov eax, dword ptr [esp + 0xa]\n-lea edi, [esp + 0xc]\n-and eax, 0xffff\n-mov esi, edx\n-mov ecx, eax\n+mov byte ptr [esp + 8], cl\n+mov byte ptr [esp + 9], ch\n+je 0x3f\n+lea edi, [esp + 0x20a]\n+mov esi, dword ptr [eax + 0x7c]\n+movzx edx, cx\n+mov ecx, edx\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n-mov ecx, eax\n+mov ecx, edx\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-lea ecx, [esp + 0xc]\n-mov edx, dword ptr [g_strOBJECT (POINTER)]\n-mov byte ptr [esp + eax + 0xc], 0\n-lea eax, [esp + 0x20c]\n+lea eax, [esp + 0x20a]\n+mov ecx, dword ptr [g_strOBJECT (POINTER)]\n+mov byte ptr [esp + edx + 0x20a], 0\n+lea edx, [esp + 8]\n+push eax\n push ecx\n push edx\n-push eax\n call KeyValueStringParse (FUNCTION)\n add esp, 0xc\n call ObjectFactory (FUNCTION)\n mov ecx, eax\n-lea eax, [esp + 0x20c]\n+lea eax, [esp + 8]\n push eax\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x14]\n pop edi\n pop esi\n+add esp, 0x400\n+ret 4"}, {"address": "0x100b54c0", "name": "MxPresenter::IsEnabled", "matching": 1.0, "diff": ""}, {"address": "0x100b54e0", "name": "MxMediaPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x100b54f0", "name": "MxMediaPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b5650", "name": "MxMediaPresenter::CurrentChunk", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,30 +1,30 @@\n\n push esi\n push edi\n-mov edi, ecx\n-xor esi, esi\n-mov ecx, dword ptr [edi + 0x40]\n+mov esi, ecx\n+xor edi, edi\n+mov ecx, dword ptr [esi + 0x40]\n test ecx, ecx\n je 0x3f\n call MxDSSubscriber::CurrentChunk (FUNCTION)\n-mov esi, eax\n-test esi, esi\n+mov edi, eax\n+test edi, edi\n je 0x34\n-test byte ptr [esi + 8], 4\n+test byte ptr [edi + 8], 4\n je 0x2e\n-mov eax, dword ptr [edi + 0x1c]\n+mov eax, dword ptr [esi + 0x1c]\n or dword ptr [eax + 0x30], 0x40\n-mov ecx, dword ptr [edi + 0x40]\n+mov ecx, dword ptr [esi + 0x40]\n call MxDSSubscriber::NextChunk (FUNCTION)\n-push esi\n-mov ecx, dword ptr [edi + 0x40]\n-xor esi, esi\n+push edi\n+mov ecx, dword ptr [esi + 0x40]\n+xor edi, edi\n call MxDSSubscriber::DestroyChunk (FUNCTION)\n mov eax, 1\n-mov cl, byte ptr [edi + 8]\n+mov cl, byte ptr [esi + 8]\n shl eax, cl\n-mov dword ptr [edi + 8], 6\n-or dword ptr [edi + 0xc], eax\n-mov eax, esi\n+mov dword ptr [esi + 8], 6\n+or dword ptr [esi + 0xc], eax\n+mov eax, edi\n pop edi\n pop esi\n ret "}, {"address": "0x100b56b0", "name": "MxMediaPresenter::NextChunk", "matching": 1.0, "diff": ""}, {"address": "0x100b5700", "name": "MxMediaPresenter::StartAction", "matching": 1.0, "diff": ""}, {"address": "0x100b5900", "name": "MxStreamChunkList::Compare", "matching": 0.7, "diff": "--- \n\n+++ \n\n@@ -1,10 +1,10 @@\n\n+mov ecx, dword ptr [esp + 8]\n mov eax, dword ptr [esp + 4]\n-mov ecx, dword ptr [esp + 8]\n-cmp eax, ecx\n+cmp ecx, eax\n jne 0x5\n xor al, al\n ret 8\n mov al, 1\n-jae 0x2\n+jbe 0x2\n mov al, 0xff\n ret 8"}, {"address": "0x100b5920", "name": "MxStreamChunkList::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b5930", "name": "MxCollection<MxStreamChunk *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x100b5940", "name": "MxCollection<MxStreamChunk *>::~MxCollection<MxStreamChunk *>", "matching": 1.0, "diff": ""}, {"address": "0x100b5990", "name": "MxCollection<MxStreamChunk *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b59a0", "name": "MxList<MxStreamChunk *>::~MxList<MxStreamChunk *>", "matching": 1.0, "diff": ""}, {"address": "0x100b5a30", "name": "MxStreamChunkList::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b5aa0", "name": "MxCollection<MxStreamChunk *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b5b10", "name": "MxList<MxStreamChunk *>::`scalar deleting destructor'", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -4,33 +4,33 @@\n\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n mov dword ptr [ecx], MxList<MxStreamChunk *> (VTABLE)\n sub esp, 4\n mov dword ptr [ebp - 0x10], ecx\n mov dword ptr [ebp - 4], 0\n push esi\n push edi\n-mov esi, dword ptr [ecx + 0x10]\n-test esi, esi\n+mov edi, dword ptr [ecx + 0x10]\n+test edi, edi\n je 0x1c\n-mov edi, dword ptr [esi + 8]\n-mov eax, dword ptr [esi]\n+mov esi, dword ptr [edi + 8]\n+mov eax, dword ptr [edi]\n push eax\n mov ecx, dword ptr [ebp - 0x10]\n call dword ptr [ecx + 0xc]\n add esp, 4\n-push esi\n+push edi\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-mov esi, edi\n+mov edi, esi\n jmp -0x20\n xor eax, eax\n mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ecx + 8], eax\n mov dword ptr [ecx + 0x14], eax\n mov dword ptr [ecx + 0x10], eax\n call <OFFSET4>\n test byte ptr [ebp + 8], 1\n je 0xc"}, {"address": "0x100b5bc0", "name": "MxMediaPresenter::EndAction", "matching": 1.0, "diff": ""}, {"address": "0x100b5d10", "name": "MxMediaPresenter::Tickle", "matching": 1.0, "diff": ""}, {"address": "0x100b5d90", "name": "MxMediaPresenter::StreamingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100b5e10", "name": "MxMediaPresenter::RepeatingTickle", "matching": 0.9132947976878613, "diff": "--- \n\n+++ \n\n@@ -1,20 +1,20 @@\n\n push ebx\n push esi\n push edi\n mov esi, ecx\n push ebp\n call MxPresenter::IsEnabled (FUNCTION)\n test al, al\n-je 0xc1\n+je 0xc3\n cmp dword ptr [esi + 0x4c], 0\n-jne 0xb7\n+jne 0xb9\n mov ecx, dword ptr [esi + 0x48]\n test ecx, ecx\n je 0x51\n mov eax, dword ptr [ecx + 0xc]\n test eax, eax\n jne 0xb\n mov eax, dword ptr [ecx + 8]\n mov edx, dword ptr [eax + 0x10]\n mov dword ptr [ecx + 0xc], edx\n jmp 0x6\n@@ -35,30 +35,31 @@\n\n mov edx, dword ptr [eax + 0x10]\n mov dword ptr [ecx + 0xc], edx\n jmp 0x6\n mov eax, dword ptr [eax + 8]\n mov dword ptr [ecx + 0xc], eax\n mov eax, dword ptr [ecx + 0xc]\n test eax, eax\n je 0x5\n mov eax, dword ptr [eax]\n mov dword ptr [esi + 0x4c], eax\n-mov ebx, dword ptr [esi + 0x4c]\n-test ebx, ebx\n-je 0x2c\n+mov eax, dword ptr [esi + 0x4c]\n+test eax, eax\n+je 0x2e\n+mov ebx, dword ptr [eax + 0x10]\n mov edi, dword ptr [esi + 0x1c]\n mov ecx, edi\n mov eax, dword ptr [edi]\n call dword ptr [eax + 0x40]\n cdq \n idiv dword ptr [edi + 0x3c]\n-cmp edx, dword ptr [ebx + 0x10]\n+cmp edx, ebx\n jl 0x45\n mov eax, 1\n mov cl, byte ptr [esi + 8]\n shl eax, cl\n pop ebp\n or dword ptr [esi + 0xc], eax\n mov dword ptr [esi + 8], 5\n pop edi\n pop esi\n pop ebx\n@@ -76,12 +77,10 @@\n\n mov eax, 1\n mov cl, byte ptr [esi + 8]\n shl eax, cl\n mov dword ptr [esi + 8], 5\n or dword ptr [esi + 0xc], eax\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret \n-int3 \n-int3 "}, {"address": "0x100b5ef0", "name": "MxMediaPresenter::DoneTickle", "matching": 1.0, "diff": ""}, {"address": "0x100b5f10", "name": "MxMediaPresenter::LoopChunk", "matching": 0.8404255319148937, "diff": "--- \n\n+++ \n\n@@ -8,31 +8,31 @@\n\n sub esp, 8\n mov dword ptr [ebp - 0x14], ecx\n push ebx\n push esi\n push edi\n push 0x20\n xor ebx, ebx\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n-mov esi, eax\n+mov edi, eax\n mov dword ptr [ebp - 4], ebx\n-test esi, esi\n+test edi, edi\n je 0x23\n-mov ecx, esi\n+mov ecx, edi\n call MxDSChunk::MxDSChunk (FUNCTION)\n mov byte ptr [ebp - 4], 1\n-mov dword ptr [esi + 0x1c], ebx\n+mov dword ptr [edi + 0x1c], ebx\n mov byte ptr [ebp - 4], bl\n-mov ebx, esi\n-mov dword ptr [esi], MxStreamChunk (VTABLE)\n+mov ebx, edi\n+mov dword ptr [edi], MxStreamChunk (VTABLE)\n jmp 0xa\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxDSChunk::~MxDSChunk (FUNCTION)\n xor ebx, ebx\n mov esi, dword ptr [ebp + 8]\n mov dword ptr [ebp - 4], 0xffffffff\n mov eax, dword ptr [esi + 0x14]\n push eax\n mov dword ptr [ebx + 0x14], eax\n call ??2@YAPAXI@Z (FUNCTION)\n@@ -44,48 +44,48 @@\n\n mov edi, dword ptr [ebx + 0x18]\n mov esi, dword ptr [esi + 0x18]\n mov ecx, eax\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n push 0xc\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n mov ecx, dword ptr [ebp - 0x14]\n-mov edi, dword ptr [ecx + 0x44]\n-mov esi, dword ptr [edi + 0x14]\n+mov esi, dword ptr [ecx + 0x44]\n+mov edi, dword ptr [esi + 0x14]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [ebp - 0x10], eax\n mov dword ptr [ebp - 4], 2\n test eax, eax\n je 0xe\n mov dword ptr [eax], ebx\n-mov dword ptr [eax + 4], esi\n+mov dword ptr [eax + 4], edi\n mov dword ptr [eax + 8], 0\n jmp 0x2\n xor eax, eax\n mov dword ptr [ebp - 4], 0xffffffff\n-test esi, esi\n+test edi, edi\n je 0x1b\n-mov dword ptr [esi + 8], eax\n-mov dword ptr [edi + 0x14], eax\n+mov dword ptr [edi + 8], eax\n+pop edi\n+mov dword ptr [esi + 0x14], eax\n mov eax, dword ptr [ebp - 0xc]\n+inc dword ptr [esi + 8]\n mov dword ptr fs:[0], eax\n-inc dword ptr [edi + 8]\n-pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n-mov dword ptr [edi + 0x10], eax\n+mov dword ptr [esi + 0x10], eax\n jmp -0x1d\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n mov eax, <OFFSET7>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax"}, {"address": "0x100b6030", "name": "MxMediaPresenter::Enable", "matching": 1.0, "diff": ""}, {"address": "0x100b60b0", "name": "MxCompositePresenter::MxCompositePresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b61a0", "name": "list<MxPresenter *,allocator<MxPresenter *> >::~list<MxPresenter *,allocator<MxPresenter *> >", "matching": 1.0, "diff": ""}, {"address": "0x100b6210", "name": "MxCompositePresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b6220", "name": "MxCompositePresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100b62d0", "name": "MxCompositePresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b62f0", "name": "MxCompositePresenterList::~MxCompositePresenterList", "matching": 1.0, "diff": ""}, {"address": "0x100b6340", "name": "List<MxPresenter *>::~List<MxPresenter *>", "matching": 1.0, "diff": ""}, {"address": "0x100b6390", "name": "MxCompositePresenter::~MxCompositePresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b6410", "name": "MxCompositePresenter::StartAction", "matching": 1.0, "diff": ""}, {"address": "0x100b65e0", "name": "MxCompositePresenter::EndAction", "matching": 1.0, "diff": ""}, {"address": "0x100b6760", "name": "MxCompositePresenter::Notify", "matching": 1.0, "diff": ""}, {"address": "0x100b67f0", "name": "MxCompositePresenter::VTable0x58", "matching": 1.0, "diff": ""}, {"address": "0x100b69b0", "name": "MxCompositePresenter::VTable0x5c", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -5,35 +5,35 @@\n\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 0x18\n push ebx\n push esi\n push edi\n mov esi, ecx\n cmp dword ptr [ecx + 0x48], 0\n je 0x31\n-mov ecx, dword ptr [ebp + 8]\n-mov edx, dword ptr [esi + 0x44]\n-mov edi, dword ptr [ecx + 8]\n-mov eax, dword ptr [edx]\n+mov edx, dword ptr [ebp + 8]\n+mov ecx, dword ptr [esi + 0x44]\n+mov edi, dword ptr [edx + 8]\n+mov eax, dword ptr [ecx]\n mov dword ptr [ebp - 0x10], eax\n-cmp eax, edx\n+cmp eax, ecx\n je 0x11\n mov eax, dword ptr [ebp - 0x10]\n cmp dword ptr [eax + 8], edi\n je 0x29\n mov ebx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ebx\n-cmp ebx, edx\n+cmp ebx, ecx\n jne -0x11\n-push ecx\n+push edx\n push esi\n call NotificationManager (FUNCTION)\n mov ecx, eax\n call MxNotificationManager::Send (FUNCTION)\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax\n pop esi\n pop ebx\n mov esp, ebp"}, {"address": "0x100b6b40", "name": "MxCompositePresenter::VTable0x60", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,32 +1,32 @@\n\n sub esp, 4\n mov edx, dword ptr [ecx + 0x44]\n push esi\n mov eax, dword ptr [edx]\n mov dword ptr [esp + 4], eax\n-cmp edx, eax\n+cmp eax, edx\n je 0x67\n mov esi, dword ptr [esp + 0xc]\n mov eax, dword ptr [esp + 4]\n cmp dword ptr [eax + 8], esi\n je 0x11\n mov eax, dword ptr [eax]\n mov dword ptr [esp + 4], eax\n-cmp edx, eax\n+cmp eax, edx\n jne -0x13\n pop esi\n add esp, 4\n ret 4\n mov eax, dword ptr [esp + 4]\n mov esi, dword ptr [eax]\n mov dword ptr [esp + 4], esi\n-cmp edx, esi\n+cmp esi, edx\n jne 0x16\n mov eax, dword ptr [ecx + 0x3c]\n test eax, eax\n je 0x34\n push ecx\n mov edx, dword ptr [eax]\n mov ecx, eax\n call dword ptr [edx + 0x60]\n pop esi\n add esp, 4"}, {"address": "0x100b6bc0", "name": "MxCompositePresenter::SetTickleState", "matching": 1.0, "diff": ""}, {"address": "0x100b6c30", "name": "MxCompositePresenter::Enable", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,21 +1,21 @@\n\n sub esp, 4\n push ebx\n push esi\n mov esi, ecx\n mov bl, byte ptr [esp + 0x10]\n push ebx\n call MxPresenter::Enable (FUNCTION)\n mov eax, dword ptr [esi + 0x44]\n mov ecx, dword ptr [eax]\n mov dword ptr [esp + 8], ecx\n-cmp eax, ecx\n+cmp ecx, eax\n je 0x1c\n mov eax, dword ptr [esp + 8]\n push ebx\n mov ecx, dword ptr [eax + 8]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x54]\n mov ecx, dword ptr [esp + 8]\n mov edx, dword ptr [ecx]\n mov dword ptr [esp + 8], edx\n cmp dword ptr [esi + 0x44], edx"}, {"address": "0x100b6c80", "name": "MxCompositePresenter::HasTickleStatePassed", "matching": 1.0, "diff": ""}, {"address": "0x100b6cd0", "name": "MxList<MxDSAction *>::DeleteEntry", "matching": 1.0, "diff": ""}, {"address": "0x100b6d20", "name": "MxCriticalSection::MxCriticalSection", "matching": 1.0, "diff": ""}, {"address": "0x100b6d60", "name": "MxCriticalSection::~MxCriticalSection", "matching": 1.0, "diff": ""}, {"address": "0x100b6d80", "name": "MxCriticalSection::Enter", "matching": 1.0, "diff": ""}, {"address": "0x100b6de0", "name": "MxCriticalSection::Leave", "matching": 1.0, "diff": ""}, {"address": "0x100b6e00", "name": "MxCriticalSection::SetDoMutex", "matching": 1.0, "diff": ""}, {"address": "0x100b6e10", "name": "GetRectIntersection", "matching": 0.05714285714285714, "diff": "--- \n\n+++ \n\n@@ -1,110 +1,135 @@\n\n-mov ecx, dword ptr [esp + 0x14]\n-sub esp, 0x40\n+mov eax, dword ptr [esp + 0x14]\n+sub esp, 0x28\n+mov ecx, dword ptr [esp + 0x40]\n push ebx\n-mov eax, dword ptr [ecx]\n-mov edx, dword ptr [esp + 0x5c]\n push esi\n-mov dword ptr [esp + 8], eax\n push edi\n push ebp\n-mov ecx, dword ptr [edx]\n-mov eax, dword ptr [esp + 0x54]\n-mov edx, dword ptr [esp + 0x58]\n+mov esi, dword ptr [eax]\n+mov edi, dword ptr [ecx]\n+mov eax, dword ptr [esp + 0x3c]\n+mov ecx, dword ptr [esp + 0x40]\n+lea edx, [esp + 0x18]\n+mov dword ptr [esp + 0x18], eax\n+push edx\n+xor eax, eax\n+mov dword ptr [esp + 0x20], ecx\n+lea ecx, [esp + 0x14]\n+mov dword ptr [esp + 0x14], eax\n+mov dword ptr [esp + 0x18], eax\n+push ecx\n+lea ecx, [esp + 0x30]\n+call MxRect32::CopyFrom (FUNCTION)\n+mov ecx, dword ptr [esp + 0x54]\n+mov edx, dword ptr [ecx]\n+mov dword ptr [esp + 0x10], edx\n+mov eax, dword ptr [esp + 0x58]\n+mov ecx, dword ptr [eax]\n+mov eax, dword ptr [esp + 0x44]\n+dec eax\n+mov dword ptr [esp + 0x20], eax\n+mov eax, dword ptr [esp + 0x48]\n+dec eax\n+mov dword ptr [esp + 0x24], eax\n+mov eax, dword ptr [esp + 0x60]\n+mov edx, dword ptr [esp + 0x5c]\n+mov ebp, dword ptr [eax]\n+mov edx, dword ptr [edx]\n+lea ebx, [ebp + edi]\n+add edx, esi\n+cmp dword ptr [esp + 0x30], esi\n+jle 0xdc\n+cmp edx, dword ptr [esp + 0x28]\n+jle 0xd2\n+cmp dword ptr [esp + 0x34], edi\n+jle 0xc8\n+cmp ebx, dword ptr [esp + 0x2c]\n+jle 0xbe\n+mov eax, dword ptr [esp + 0x30]\n+cmp edx, eax\n+jl 0x2\n+mov edx, eax\n+mov eax, dword ptr [esp + 0x34]\n+cmp ebx, eax\n+jl 0x2\n+mov ebx, eax\n+sub edx, esi\n+sub ebx, edi\n+mov ebp, dword ptr [esp + 0x28]\n+cmp ebp, esi\n+jg 0x2\n+mov ebp, esi\n+sub ebp, esi\n+mov eax, dword ptr [esp + 0x2c]\n+mov esi, dword ptr [esp + 0x10]\n+add esi, ebp\n+cmp eax, edi\n+jg 0x2\n+mov eax, edi\n+sub eax, edi\n+add edx, dword ptr [esp + 0x10]\n+add ebx, ecx\n+lea edi, [eax + ecx]\n+cmp esi, dword ptr [esp + 0x20]\n+jge 0x6f\n+test edx, edx\n+jle 0x6b\n+cmp edi, dword ptr [esp + 0x24]\n+jge 0x65\n+test ebx, ebx\n+jle 0x61\n+test esi, esi\n+jg 0x2\n xor esi, esi\n-mov dword ptr [esp + 0x14], ecx\n-lea ecx, [esp + 0x28]\n-mov dword ptr [esp + 0x20], eax\n-lea eax, [esp + 0x20]\n-mov dword ptr [esp + 0x24], edx\n-mov dword ptr [esp + 0x28], esi\n-push eax\n-mov dword ptr [esp + 0x30], esi\n-push ecx\n-lea ecx, [esp + 0x38]\n-call MxRect32::CopyFrom (FUNCTION)\n-mov ecx, dword ptr [esp + 0x6c]\n-mov ebx, dword ptr [esp + 0x70]\n-mov edx, dword ptr [ecx]\n-mov eax, dword ptr [ebx]\n-mov ecx, dword ptr [esp + 0x5c]\n-mov dword ptr [esp + 0x18], edx\n-mov edx, dword ptr [esp + 0x60]\n-mov dword ptr [esp + 0x1c], eax\n-lea eax, [esp + 0x28]\n-mov dword ptr [esp + 0x20], ecx\n-lea ecx, [esp + 0x20]\n-mov dword ptr [esp + 0x24], edx\n-mov dword ptr [esp + 0x28], esi\n-push ecx\n-lea ecx, [esp + 0x44]\n-push eax\n-mov dword ptr [esp + 0x34], esi\n-call MxRect32::CopyFrom (FUNCTION)\n-mov edx, dword ptr [esp + 0x74]\n-mov esi, dword ptr [esp + 0x78]\n-mov ecx, dword ptr [esp + 0x10]\n-mov ebp, dword ptr [edx]\n-add ebp, dword ptr [esp + 0x10]\n-mov eax, dword ptr [esi]\n-add eax, dword ptr [esp + 0x14]\n-cmp dword ptr [esp + 0x38], ecx\n-jle 0xf8\n-cmp ebp, dword ptr [esp + 0x30]\n-jle 0xee\n-mov ecx, dword ptr [esp + 0x14]\n-cmp dword ptr [esp + 0x3c], ecx\n-jle 0xe0\n-cmp eax, dword ptr [esp + 0x34]\n-jle 0xd6\n-mov ecx, dword ptr [esp + 0x38]\n-cmp ebp, ecx\n+test edi, edi\n+jg 0x2\n+xor edi, edi\n+mov eax, dword ptr [esp + 0x20]\n+cmp edx, eax\n jl 0x2\n-mov ebp, ecx\n-mov ecx, dword ptr [esp + 0x3c]\n-cmp eax, ecx\n+mov edx, eax\n+mov eax, dword ptr [esp + 0x24]\n+cmp ebx, eax\n jl 0x2\n-mov eax, ecx\n-sub ebp, dword ptr [esp + 0x10]\n-sub eax, dword ptr [esp + 0x14]\n-mov edi, dword ptr [esp + 0x30]\n-mov ecx, dword ptr [esp + 0x10]\n-cmp edi, ecx\n-jg 0x2\n-mov edi, ecx\n-sub edi, dword ptr [esp + 0x10]\n-mov ebx, dword ptr [esp + 0x34]\n-add edi, dword ptr [esp + 0x18]\n-mov ecx, dword ptr [esp + 0x14]\n-cmp ebx, ecx\n-jg 0x2\n-mov ebx, ecx\n-sub ebx, dword ptr [esp + 0x14]\n-add ebp, dword ptr [esp + 0x18]\n-add ebx, dword ptr [esp + 0x1c]\n-add eax, dword ptr [esp + 0x1c]\n-cmp edi, dword ptr [esp + 0x48]\n-jge 0x76\n-cmp ebp, dword ptr [esp + 0x40]\n-jle 0x70\n-cmp ebx, dword ptr [esp + 0x4c]\n-jge 0x6a\n-cmp eax, dword ptr [esp + 0x44]\n-jle 0x64\n-mov ecx, dword ptr [esp + 0x40]\n-cmp edi, ecx\n-jg 0x2\n-mov edi, ecx\n-mov ecx, dword ptr [esp + 0x44]\n-cmp ebx, ecx\n-jg 0x2\n-mov ebx, ecx\n-mov ecx, dword ptr [esp + 0x48]\n-cmp ebp, ecx\n-jl 0x2\n-mov ebp, ecx\n-mov ecx, dword ptr [esp + 0x4c]\n-cmp eax, ecx\n-jl 0x2\n-mov eax, ecx\n-sub edi, dword ptr [esp + 0x18]\n-sub ebx, dword ptr [esp + 0x1c]\n+mov ebx, eax\n+sub esi, dword ptr [esp + 0x10]\n+sub edi, ecx\n+sub edx, dword ptr [esp + 0x10]\n+sub ebx, ecx\n+mov eax, dword ptr [esp + 0x4c]\n+mov ecx, dword ptr [esp + 0x50]\n+mov ebp, dword ptr [esp + 0x54]\n+sub edx, esi\n+inc edx\n+add dword ptr [eax], esi\n+sub ebx, edi\n+add dword ptr [ecx], edi\n+inc ebx\n+add dword ptr [ebp], esi\n+mov eax, dword ptr [esp + 0x58]\n+add dword ptr [eax], edi\n+mov eax, dword ptr [esp + 0x5c]\n+mov dword ptr [eax], edx\n+mov eax, dword ptr [esp + 0x60]\n+pop ebp\n+pop edi\n+pop esi\n+mov dword ptr [eax], ebx\n+mov al, 1\n+pop ebx\n+add esp, 0x28\n+ret \n+xor al, al\n+pop ebp\n+pop edi\n+pop esi\n+pop ebx\n+add esp, 0x28\n+ret \n+xor al, al\n+pop ebp\n+pop edi\n+pop esi\n+pop ebx\n+add esp, 0x28\n+ret "}, {"address": "0x100b6fc0", "name": "MxRect32::CopyFrom", "matching": 1.0, "diff": ""}, {"address": "0x100b6ff0", "name": "MakeSourceName", "matching": 1.0, "diff": ""}, {"address": "0x100b7050", "name": "KeyValueStringParse", "matching": 1.0, "diff": ""}, {"address": "0x100b7170", "name": "ContainsPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b7210", "name": "SetOmniUserMessage", "matching": 1.0, "diff": ""}, {"address": "0x100b7220", "name": "FUN_100b7220", "matching": 0.9397590361445783, "diff": "--- \n\n+++ \n\n@@ -2,32 +2,31 @@\n\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 0x14\n push ebx\n push esi\n push edi\n+mov bl, byte ptr [ebp + 0x10]\n mov esi, dword ptr [ebp + 8]\n-mov bl, byte ptr [ebp + 0x10]\n mov edi, dword ptr [ebp + 0xc]\n+test bl, bl\n mov eax, dword ptr [esi + 0x30]\n-test bl, bl\n je 0x4\n or eax, edi\n-jmp 0x8\n+jmp 0x6\n mov ecx, edi\n not ecx\n-and ecx, eax\n-mov eax, ecx\n+and eax, ecx\n mov dword ptr [esi + 0x30], eax\n mov eax, dword ptr [esi]\n push 'MxDSMultiAction' (STRING)\n mov ecx, esi\n call dword ptr [eax + 0x10]\n test al, al\n je 0x84\n mov eax, dword ptr [esi + 0x98]\n lea ecx, [ebp - 0x1c]\n xor esi, esi\n@@ -74,10 +73,11 @@\n\n mov esp, ebp\n pop ebp\n ret \n lea ecx, [ebp - 0x1c]\n jmp MxCore::~MxCore (FUNCTION)\n lea ecx, [ebp - 0x1c]\n jmp MxListCursor<MxDSAction *>::~MxListCursor<MxDSAction *> (FUNCTION)\n mov eax, <OFFSET10>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x1c]\n+jmp MxDSActionListCursor::~MxDSActionListCursor (FUNCTION)"}, {"address": "0x100b7330", "name": "MxVariableTable::Compare", "matching": 1.0, "diff": ""}, {"address": "0x100b7370", "name": "MxVariableTable::Hash", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,14 +1,14 @@\n\n mov eax, dword ptr [esp + 4]\n push esi\n xor edx, edx\n mov ecx, dword ptr [eax + 0xc]\n xor eax, eax\n cmp byte ptr [ecx], al\n je 0xd\n-movsx esi, byte ptr [edx + ecx]\n+movsx esi, byte ptr [ecx + edx]\n add eax, esi\n inc edx\n-cmp byte ptr [edx + ecx], 0\n+cmp byte ptr [ecx + edx], 0\n jne -0xd\n pop esi\n ret 4"}, {"address": "0x100b73a0", "name": "MxVariableTable::SetVariable", "matching": 0.991869918699187, "diff": "--- \n\n+++ \n\n@@ -53,23 +53,22 @@\n\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x14\n jmp MxString::~MxString (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 4\n jmp MxString::~MxString (FUNCTION)\n mov dword ptr [ebp - 0x14], 0\n mov byte ptr [ebp - 4], 1\n mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [ebp - 0x24]\n+push eax\n mov dword ptr [ebp - 0x18], eax\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n mov ebx, dword ptr [ecx]\n call dword ptr [ebx + 0x18]\n mov edi, eax\n mov ecx, dword ptr [ebp - 0x24]\n sub edx, edx\n div dword ptr [ecx + 0x14]\n mov eax, dword ptr [ecx + 0x10]\n mov ebx, dword ptr [eax + edx*4]\n test ebx, ebx\n je 0x24\n@@ -237,10 +236,11 @@\n\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n lea ecx, [ebp - 0x2c]\n jmp MxCore::~MxCore (FUNCTION)\n mov eax, <OFFSET17>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x2c]\n+jmp MxHashTableCursor<MxVariable *>::~MxHashTableCursor<MxVariable *> (FUNCTION)"}, {"address": "0x100b7680", "name": "MxHashTableCursor<MxVariable *>::~MxHashTableCursor<MxVariable *>", "matching": 1.0, "diff": ""}, {"address": "0x100b76d0", "name": "MxHashTableCursor<MxVariable *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b7740", "name": "MxVariableTable::SetVariable", "matching": 1.0, "diff": ""}, {"address": "0x100b78f0", "name": "MxVariableTable::GetVariable", "matching": 1.0, "diff": ""}, {"address": "0x100b7ab0", "name": "MxHashTable<MxVariable *>::Resize", "matching": 0.8187919463087249, "diff": "--- \n\n+++ \n\n@@ -30,45 +30,46 @@\n\n add esp, 4\n mov ecx, dword ptr [ebx + 0x14]\n shl ecx, 2\n mov edi, eax\n shr ecx, 2\n mov dword ptr [ebx + 0x10], eax\n xor eax, eax\n rep stosd dword ptr es:[edi], eax\n mov dword ptr [ebx + 8], eax\n test esi, esi\n-je 0x41\n-mov ebp, dword ptr [esp + 0x10]\n-mov ecx, dword ptr [ebp]\n-test ecx, ecx\n+je 0x40\n+mov edi, dword ptr [esp + 0x10]\n+mov ebp, dword ptr [edi]\n+test ebp, ebp\n je 0x30\n-mov edi, dword ptr [ecx + 0xc]\n-mov eax, dword ptr [ecx + 4]\n+mov ecx, dword ptr [ebp + 0xc]\n+mov eax, dword ptr [ebp + 4]\n sub edx, edx\n div dword ptr [ebx + 0x14]\n mov eax, dword ptr [ebx + 0x10]\n mov eax, dword ptr [eax + edx*4]\n-mov dword ptr [ecx + 0xc], eax\n+mov dword ptr [ebp + 0xc], eax\n mov eax, dword ptr [ebx + 0x10]\n mov eax, dword ptr [eax + edx*4]\n test eax, eax\n je 0x3\n-mov dword ptr [eax + 8], ecx\n+mov dword ptr [eax + 8], ebp\n mov eax, dword ptr [ebx + 0x10]\n-mov dword ptr [eax + edx*4], ecx\n-mov ecx, edi\n+mov dword ptr [eax + edx*4], ebp\n+mov ebp, ecx\n inc dword ptr [ebx + 8]\n-test edi, edi\n+test ecx, ecx\n jne -0x30\n-add ebp, 4\n+add edi, 4\n dec esi\n-jne -0x3d\n+jne -0x3c\n mov eax, dword ptr [esp + 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 0xc\n+ret "}, {"address": "0x100b7b80", "name": "MxHashTable<MxVariable *>::NodeInsert", "matching": 1.0, "diff": ""}, {"address": "0x100b7bb0", "name": "MxDSSubscriber::MxDSSubscriber", "matching": 1.0, "diff": ""}, {"address": "0x100b7d00", "name": "MxStreamChunkList::~MxStreamChunkList", "matching": 1.0, "diff": ""}, {"address": "0x100b7d50", "name": "MxDSSubscriber::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b7d60", "name": "MxDSSubscriber::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100b7de0", "name": "MxDSSubscriber::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b7e00", "name": "MxDSSubscriber::~MxDSSubscriber", "matching": 1.0, "diff": ""}, {"address": "0x100b7ed0", "name": "MxDSSubscriber::Create", "matching": 1.0, "diff": ""}, {"address": "0x100b8030", "name": "MxDSSubscriber::DeleteChunks", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,55 +1,55 @@\n\n sub esp, 8\n push ebx\n push esi\n push edi\n mov esi, ecx\n push ebp\n xor edi, edi\n cmp dword ptr [esi + 0x40], edi\n je 0xf5\n mov dword ptr [esp + 0x10], edi\n-mov eax, dword ptr [esi + 0x20]\n-mov ecx, dword ptr [eax + 8]\n-mov ecx, dword ptr [ecx + 0x10]\n-mov dword ptr [eax + 0xc], ecx\n-test ecx, ecx\n+mov ecx, dword ptr [esi + 0x20]\n+mov eax, dword ptr [ecx + 8]\n+mov eax, dword ptr [eax + 0x10]\n+mov dword ptr [ecx + 0xc], eax\n+test eax, eax\n je 0xa5\n-mov eax, dword ptr [ecx]\n-test ecx, ecx\n-mov dword ptr [esp + 0x10], eax\n+mov ecx, dword ptr [eax]\n+test eax, eax\n+mov dword ptr [esp + 0x10], ecx\n je 0x97\n-mov ebx, dword ptr [esi + 0x20]\n-mov ecx, dword ptr [ebx + 0xc]\n+mov ebp, dword ptr [esi + 0x20]\n+mov ecx, dword ptr [ebp + 0xc]\n test ecx, ecx\n je 0x3a\n-mov ebp, dword ptr [ebx + 8]\n+mov ebx, dword ptr [ebp + 8]\n mov edx, dword ptr [ecx + 8]\n cmp dword ptr [ecx + 4], edi\n je 0x8\n mov eax, dword ptr [ecx + 4]\n mov dword ptr [eax + 8], edx\n jmp 0x3\n-mov dword ptr [ebp + 0x10], edx\n+mov dword ptr [ebx + 0x10], edx\n mov eax, dword ptr [ecx + 8]\n test eax, eax\n je 0x8\n mov edx, dword ptr [ecx + 4]\n mov dword ptr [eax + 4], edx\n jmp 0x6\n mov eax, dword ptr [ecx + 4]\n-mov dword ptr [ebp + 0x14], eax\n+mov dword ptr [ebx + 0x14], eax\n push ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-dec dword ptr [ebp + 8]\n-mov dword ptr [ebx + 0xc], edi\n+dec dword ptr [ebx + 8]\n+mov dword ptr [ebp + 0xc], edi\n cmp dword ptr [esp + 0x10], edi\n je -0x6c\n mov eax, dword ptr [esp + 0x10]\n push 1\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx]\n jmp -0x7a\n mov eax, dword ptr [edx]\n mov dword ptr [ebx + 0x10], eax"}, {"address": "0x100b8150", "name": "MxDSSubscriber::AddChunk", "matching": 1.0, "diff": ""}, {"address": "0x100b8250", "name": "MxDSSubscriber::NextChunk", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -16,45 +16,45 @@\n\n je 0x12\n mov eax, dword ptr [ecx + 8]\n mov eax, dword ptr [eax + 0x10]\n mov dword ptr [ecx + 0xc], eax\n test eax, eax\n je 0x5\n mov eax, dword ptr [eax]\n mov dword ptr [ebp - 0x10], eax\n cmp dword ptr [ebp - 0x10], 0\n je 0x87\n-mov ebx, dword ptr [esi + 0x20]\n-mov ecx, dword ptr [ebx + 0xc]\n+mov edi, dword ptr [esi + 0x20]\n+mov ecx, dword ptr [edi + 0xc]\n test ecx, ecx\n je 0x3d\n-mov edi, dword ptr [ebx + 8]\n+mov ebx, dword ptr [edi + 8]\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [ecx + 8]\n test eax, eax\n je 0x5\n mov dword ptr [eax + 8], edx\n jmp 0x3\n-mov dword ptr [edi + 0x10], edx\n+mov dword ptr [ebx + 0x10], edx\n mov eax, dword ptr [ecx + 8]\n test eax, eax\n je 0x8\n mov edx, dword ptr [ecx + 4]\n mov dword ptr [eax + 4], edx\n jmp 0x6\n mov eax, dword ptr [ecx + 4]\n-mov dword ptr [edi + 0x14], eax\n+mov dword ptr [ebx + 0x14], eax\n push ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-dec dword ptr [edi + 8]\n-mov dword ptr [ebx + 0xc], 0\n+dec dword ptr [ebx + 8]\n+mov dword ptr [edi + 0xc], 0\n mov ebx, dword ptr [esi + 0x38]\n push 0xc\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x14], eax\n add esp, 4\n mov edi, eax\n xor eax, eax\n mov dword ptr [ebp - 4], eax\n test edi, edi\n je 0xf"}, {"address": "0x100b8360", "name": "MxDSSubscriber::CurrentChunk", "matching": 1.0, "diff": ""}, {"address": "0x100b8390", "name": "MxDSSubscriber::DestroyChunk", "matching": 0.7901234567901234, "diff": "--- \n\n+++ \n\n@@ -1,67 +1,67 @@\n\n push ebx\n push esi\n+mov esi, dword ptr [esp + 0xc]\n push edi\n-mov ebx, ecx\n-mov esi, dword ptr [esp + 0x10]\n push ebp\n+mov edi, ecx\n test esi, esi\n je 0xa5\n-mov edi, dword ptr [ebx + 0x3c]\n-mov eax, dword ptr [edi + 8]\n+mov ebx, dword ptr [edi + 0x3c]\n+mov eax, dword ptr [ebx + 8]\n mov eax, dword ptr [eax + 0x10]\n-mov dword ptr [edi + 0xc], eax\n+mov dword ptr [ebx + 0xc], eax\n test eax, eax\n je 0x20\n-mov ecx, dword ptr [edi + 8]\n+mov ecx, dword ptr [ebx + 8]\n push esi\n-mov eax, dword ptr [edi + 0xc]\n+mov eax, dword ptr [ebx + 0xc]\n mov ebp, dword ptr [ecx]\n mov edx, dword ptr [eax]\n push edx\n call dword ptr [ebp + 0x14]\n test al, al\n je 0xd\n-mov eax, dword ptr [edi + 0xc]\n+mov eax, dword ptr [ebx + 0xc]\n mov eax, dword ptr [eax + 8]\n-mov dword ptr [edi + 0xc], eax\n+mov dword ptr [ebx + 0xc], eax\n test eax, eax\n jne -0x20\n-cmp dword ptr [edi + 0xc], 0\n+cmp dword ptr [ebx + 0xc], 0\n je 0x5d\n-mov edi, dword ptr [ebx + 0x3c]\n-mov ecx, dword ptr [edi + 0xc]\n+mov ebx, dword ptr [edi + 0x3c]\n+mov ecx, dword ptr [ebx + 0xc]\n test ecx, ecx\n je 0x40\n-mov ebx, dword ptr [edi + 8]\n+mov edi, dword ptr [ebx + 8]\n mov eax, dword ptr [ecx + 4]\n lea edx, [ecx + 8]\n test eax, eax\n je 0x7\n mov ebp, dword ptr [edx]\n mov dword ptr [eax + 8], ebp\n jmp 0x5\n mov eax, dword ptr [edx]\n-mov dword ptr [ebx + 0x10], eax\n+mov dword ptr [edi + 0x10], eax\n mov eax, dword ptr [edx]\n test eax, eax\n je 0x8\n mov edx, dword ptr [ecx + 4]\n mov dword ptr [eax + 4], edx\n jmp 0x6\n mov eax, dword ptr [ecx + 4]\n-mov dword ptr [ebx + 0x14], eax\n+mov dword ptr [edi + 0x14], eax\n push ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-dec dword ptr [ebx + 8]\n-mov dword ptr [edi + 0xc], 0\n+dec dword ptr [edi + 8]\n+mov dword ptr [ebx + 0xc], 0\n test esi, esi\n je 0x21\n push 1\n mov eax, dword ptr [esi]\n mov ecx, esi\n call dword ptr [eax]\n pop ebp\n pop edi\n pop esi\n pop ebx"}, {"address": "0x100b8450", "name": "MxStreamListMxDSSubscriber::Find", "matching": 0.9714285714285714, "diff": "--- \n\n+++ \n\n@@ -1,17 +1,17 @@\n\n mov edx, dword ptr [esp + 4]\n sub esp, 4\n mov ecx, dword ptr [ecx + 4]\n push esi\n mov eax, dword ptr [ecx]\n mov dword ptr [esp + 4], eax\n-cmp ecx, dword ptr [esp + 4]\n+cmp dword ptr [esp + 4], ecx\n je 0x37\n mov esi, dword ptr [edx + 0x1c]\n cmp esi, -1\n je 0xc\n mov eax, dword ptr [esp + 4]\n mov eax, dword ptr [eax + 8]\n cmp dword ptr [eax + 0x44], esi\n jne 0x17\n mov si, word ptr [edx + 0x24]\n cmp si, -2"}, {"address": "0x100b84c0", "name": "MxMediaManager::MxMediaManager", "matching": 1.0, "diff": ""}, {"address": "0x100b8540", "name": "MxMediaManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b8560", "name": "MxMediaManager::~MxMediaManager", "matching": 1.0, "diff": ""}, {"address": "0x100b85d0", "name": "MxMediaManager::Init", "matching": 1.0, "diff": ""}, {"address": "0x100b85e0", "name": "MxMediaManager::InitPresenters", "matching": 1.0, "diff": ""}, {"address": "0x100b8710", "name": "MxMediaManager::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b8790", "name": "MxMediaManager::Tickle", "matching": 1.0, "diff": ""}, {"address": "0x100b88c0", "name": "MxMediaManager::RegisterPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b8980", "name": "MxMediaManager::UnregisterPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b8ac0", "name": "MxMediaManager::StopPresenters", "matching": 1.0, "diff": ""}, {"address": "0x100b8bb0", "name": "MxTickleThread::MxTickleThread", "matching": 1.0, "diff": ""}, {"address": "0x100b8c20", "name": "MxTickleThread::`scalar deleting destructor'", "matching": 0.819672131147541, "diff": "--- \n\n+++ \n\n@@ -1,33 +1,28 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n+mov dword ptr [ecx], MxTickleThread (VTABLE)\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebp - 0x10], ecx\n-call <OFFSET2>\n+call <OFFSET3>\n test byte ptr [ebp + 8], 1\n je 0xc\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret 4\n-mov eax, <OFFSET4>\n+mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxThread::~MxThread (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100b8c90", "name": "MxTickleThread::Run", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,43 +1,43 @@\n\n push ebx\n push esi\n push edi\n push ebp\n-mov ebp, ecx\n+mov edi, ecx\n call Timer (FUNCTION)\n-mov esi, eax\n-mov edi, dword ptr [ebp + 0x1c]\n-neg edi\n-cmp byte ptr [ebp + 0xc], 0\n+mov ebx, eax\n+mov ebp, dword ptr [edi + 0x1c]\n+neg ebp\n+cmp byte ptr [edi + 0xc], 0\n je 0x45\n-cmp byte ptr [esi + 0xc], 0\n+cmp byte ptr [ebx + 0xc], 0\n je 0x8\n-mov ebx, dword ptr [MxTimer::g_lastTimeTimerStarted (DATA)]\n+mov esi, dword ptr [MxTimer::g_lastTimeTimerStarted (DATA)]\n jmp 0x9\n-mov ebx, dword ptr [MxTimer::g_lastTimeCalculated (DATA)]\n-sub ebx, dword ptr [esi + 8]\n-cmp ebx, edi\n+mov esi, dword ptr [MxTimer::g_lastTimeCalculated (DATA)]\n+sub esi, dword ptr [ebx + 8]\n+cmp esi, ebp\n jge 0x5\n-mov edi, dword ptr [ebp + 0x1c]\n-neg edi\n-mov eax, dword ptr [ebp + 0x1c]\n-sub eax, ebx\n-add eax, edi\n+mov ebp, dword ptr [edi + 0x1c]\n+neg ebp\n+mov eax, dword ptr [edi + 0x1c]\n+sub eax, esi\n+add eax, ebp\n test eax, eax\n jg 0xc\n-mov ecx, dword ptr [ebp + 0x18]\n-mov edi, ebx\n+mov ecx, dword ptr [edi + 0x18]\n+mov ebp, esi\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 8]\n xor eax, eax\n push eax\n-mov ecx, ebp\n+mov ecx, edi\n call MxThread::Sleep (FUNCTION)\n-cmp byte ptr [ebp + 0xc], 0\n+cmp byte ptr [edi + 0xc], 0\n jne -0x45\n-mov ecx, ebp\n+mov ecx, edi\n call MxThread::Run (FUNCTION)\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret "}, {"address": "0x100b8d00", "name": "MxAudioManager::MxAudioManager", "matching": 1.0, "diff": ""}, {"address": "0x100b8d70", "name": "MxAudioManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b8d90", "name": "MxAudioManager::~MxAudioManager", "matching": 1.0, "diff": ""}, {"address": "0x100b8df0", "name": "MxAudioManager::Init", "matching": 1.0, "diff": ""}, {"address": "0x100b8e00", "name": "MxAudioManager::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b8e40", "name": "MxAudioManager::InitPresenters", "matching": 1.0, "diff": ""}, {"address": "0x100b8e90", "name": "MxAudioManager::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b8ea0", "name": "MxAudioManager::SetVolume", "matching": 1.0, "diff": ""}, {"address": "0x100b8ed0", "name": "MxAutoLocker::MxAutoLocker", "matching": 1.0, "diff": ""}, {"address": "0x100b8ef0", "name": "MxAutoLocker::~MxAutoLocker", "matching": 1.0, "diff": ""}, {"address": "0x100b8f00", "name": "MxStreamer::MxStreamer", "matching": 0.75, "diff": "--- \n\n+++ \n\n@@ -23,68 +23,56 @@\n\n mov dword ptr [eax + 4], eax\n mov dword ptr [esi + 0xc], eax\n mov dword ptr [esi + 0x10], ebx\n lea eax, [esi + 0x1c]\n mov dword ptr [esi + 0x14], ebx\n mov dword ptr [esi + 0x18], 0x40\n mov dword ptr [eax], 0\n sub eax, 4\n dec ebx\n jns -0xc\n-xor eax, eax\n-lea ecx, [esi + 0x28]\n-mov byte ptr [ebp - 4], 3\n+lea eax, [esi + 0x28]\n+xor ecx, ecx\n+mov byte ptr [ebp - 4], 4\n mov dword ptr [esi + 0x20], 0\n mov dword ptr [esi + 0x24], 0x80\n-mov dword ptr [ecx], 0\n-sub ecx, 4\n-dec eax\n+mov dword ptr [eax], 0\n+sub eax, 4\n+dec ecx\n jns -0xc\n-mov byte ptr [ebp - 4], 4\n+mov byte ptr [ebp - 4], 6\n push esi\n mov dword ptr [esi], MxStreamer (VTABLE)\n call NotificationManager (FUNCTION)\n mov ecx, eax\n call MxNotificationManager::Register (FUNCTION)\n mov dword ptr [ebp - 4], 0xffffffff\n mov eax, esi\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n mov ecx, dword ptr [ebp - 0x14]\n add ecx, 0x20\n jmp MxStreamerSubClass1::~MxStreamerSubClass1 (FUNCTION)\n mov ecx, dword ptr [ebp - 0x14]\n+add ecx, 0x20\n+jmp MxStreamerSubClass3::~MxStreamerSubClass3 (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x14]\n add ecx, 0x14\n-jmp 0x133\n+jmp MxStreamerSubClass1::~MxStreamerSubClass1 (FUNCTION)\n+mov ecx, dword ptr [ebp - 0x14]\n+add ecx, 0x14\n+jmp MxStreamerSubClass2::~MxStreamerSubClass2 (FUNCTION)\n mov ecx, dword ptr [ebp - 0x14]\n add ecx, 8\n jmp list<MxStreamController *,allocator<MxStreamController *> >::~list<MxStreamController *,allocator<MxStreamController *> > (FUNCTION)\n mov ecx, dword ptr [ebp - 0x14]\n add ecx, 8\n jmp List<MxStreamController *>::~List<MxStreamController *> (FUNCTION)\n-mov eax, <OFFSET10>\n+mov eax, <OFFSET12>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x14]\n jmp MxCore::~MxCore (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, 'MxStreamer' (STRING)\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100b9000", "name": "MxStreamer::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b9010", "name": "MxStreamer::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100b9090", "name": "list<MxStreamController *,allocator<MxStreamController *> >::~list<MxStreamController *,allocator<MxStreamController *> >", "matching": 0.9459459459459459, "diff": "--- \n\n+++ \n\n@@ -1,36 +1,36 @@\n\n sub esp, 0xc\n push esi\n push edi\n mov eax, dword ptr [ecx + 4]\n mov esi, ecx\n mov dword ptr [esp + 0x10], eax\n mov ecx, dword ptr [eax]\n mov edi, ecx\n-cmp eax, ecx\n+cmp ecx, eax\n je 0x2e\n lea edx, [edi + 4]\n mov dword ptr [esp + 8], edi\n mov eax, edi\n mov edi, dword ptr [edi]\n mov ecx, dword ptr [edx]\n mov eax, dword ptr [eax]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [edx]\n mov eax, dword ptr [esp + 8]\n push eax\n mov edx, dword ptr [eax]\n mov dword ptr [edx + 4], ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 8]\n-cmp edi, dword ptr [esp + 0x10]\n+cmp dword ptr [esp + 0x10], edi\n jne -0x2e\n mov eax, dword ptr [esi + 4]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [esi + 4], 0\n add esp, 4\n mov dword ptr [esi + 8], 0\n pop edi\n pop esi\n add esp, 0xc"}, {"address": "0x100b9110", "name": "MxStreamerSubClass1::~MxStreamerSubClass1", "matching": 1.0, "diff": ""}, {"address": "0x100b9120", "name": "MxStreamer::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b9140", "name": "List<MxStreamController *>::~List<MxStreamController *>", "matching": 1.0, "diff": ""}, {"address": "0x100b9190", "name": "MxStreamer::Create", "matching": 1.0, "diff": ""}, {"address": "0x100b91d0", "name": "MxStreamer::~MxStreamer", "matching": 0.9577464788732394, "diff": "--- \n\n+++ \n\n@@ -51,21 +51,21 @@\n\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET9>\n mov eax, dword ptr [ebp - 0xc]\n pop esi\n mov dword ptr fs:[0], eax\n mov esp, ebp\n pop ebp\n ret \n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x20\n-jmp MxStreamerSubClass1::~MxStreamerSubClass1 (FUNCTION)\n+jmp MxStreamerSubClass3::~MxStreamerSubClass3 (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x14\n-jmp -0x19b\n+jmp MxStreamerSubClass2::~MxStreamerSubClass2 (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 8\n jmp List<MxStreamController *>::~List<MxStreamController *> (FUNCTION)\n-mov eax, <OFFSET12>\n+mov eax, <OFFSET13>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxCore::~MxCore (FUNCTION)"}, {"address": "0x100b92c0", "name": "MxStreamer::Open", "matching": 0.821256038647343, "diff": "--- \n\n+++ \n\n@@ -4,95 +4,94 @@\n\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 8\n mov dword ptr [ebp - 0x14], ecx\n push ebx\n push esi\n xor ebx, ebx\n push edi\n-mov edi, dword ptr [ebp + 8]\n-push edi\n+mov esi, dword ptr [ebp + 8]\n+push esi\n call MxStreamer::GetOpenStream (FUNCTION)\n test eax, eax\n jne 0x38\n mov eax, dword ptr [ebp + 0xc]\n and eax, 0xffff\n je 0x43\n cmp eax, 1\n je 0x7f\n test ebx, ebx\n je 0x25\n-mov esi, dword ptr [ebx]\n-push edi\n+mov edi, dword ptr [ebx]\n+push esi\n mov ecx, ebx\n-call dword ptr [esi + 0x14]\n+call dword ptr [edi + 0x14]\n test eax, eax\n jne 0xd\n push ebx\n mov ecx, dword ptr [ebp - 0x14]\n call MxStreamer::AddStreamControllerToOpenList (FUNCTION)\n test eax, eax\n je 0xc\n test ebx, ebx\n je 0x6\n push 1\n mov ecx, ebx\n-call dword ptr [esi]\n+call dword ptr [edi]\n xor ebx, ebx\n mov eax, ebx\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 8\n push 0xc8\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov dword ptr [ebp - 4], 0\n-mov esi, eax\n+mov edi, eax\n mov eax, 0\n-test esi, esi\n+test edi, edi\n je 0x7\n-mov ecx, esi\n+mov ecx, edi\n call MxDiskStreamController::MxDiskStreamController (FUNCTION)\n mov dword ptr [ebp - 4], 0xffffffff\n mov ebx, eax\n jmp -0x72\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n push 0x98\n-mov ebx, 1\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n-mov esi, eax\n-mov dword ptr [ebp - 4], ebx\n-test esi, esi\n-je 0x37\n-mov ecx, esi\n+mov dword ptr [ebp - 4], 1\n+mov edi, eax\n+test edi, edi\n+je 0x38\n+mov ecx, edi\n call MxStreamController::MxStreamController (FUNCTION)\n+lea ecx, [edi + 0x64]\n+mov ebx, edi\n mov byte ptr [ebp - 4], 2\n-lea ecx, [esi + 0x64]\n call MxDSBuffer::MxDSBuffer (FUNCTION)\n mov byte ptr [ebp - 4], 3\n-mov dword ptr [esi], MxRAMStreamController (VTABLE)\n-mov byte ptr [ebp - 4], bl\n-mov ebx, esi\n+mov byte ptr [ebp - 4], 1\n+mov dword ptr [edi], MxRAMStreamController (VTABLE)\n jmp 0x15\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x64\n jmp MxDSBuffer::~MxDSBuffer (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxStreamController::~MxStreamController (FUNCTION)\n xor ebx, ebx\n mov dword ptr [ebp - 4], 0xffffffff\n jmp -0xe2\n mov eax, <OFFSET12>"}, {"address": "0x100b9400", "name": "MxStreamController::VTable0x18", "matching": 1.0, "diff": ""}, {"address": "0x100b9410", "name": "MxStreamController::VTable0x1c", "matching": 1.0, "diff": ""}, {"address": "0x100b9420", "name": "MxStreamController::VTable0x28", "matching": 1.0, "diff": ""}, {"address": "0x100b9430", "name": "MxRAMStreamController::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b9440", "name": "MxRAMStreamController::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100b94f0", "name": "MxRAMStreamController::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b9570", "name": "MxStreamer::Close", "matching": 0.975609756097561, "diff": "--- \n\n+++ \n\n@@ -10,29 +10,29 @@\n\n push esi\n push edi\n mov esi, ecx\n lea ecx, [ebp - 0xb0]\n call MxDSAction::MxDSAction (FUNCTION)\n mov dword ptr [ebp - 4], 0\n mov eax, dword ptr [esi + 0xc]\n mov word ptr [ebp - 0x8c], 0xfffe\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n-cmp ecx, eax\n+cmp eax, ecx\n je 0x48\n mov ebx, dword ptr [ebp + 8]\n mov eax, dword ptr [ebp - 0x10]\n test ebx, ebx\n mov edi, dword ptr [eax + 8]\n je 0x5f\n-mov eax, dword ptr [edi + 0x24]\n-mov edx, ebx\n+mov eax, ebx\n+mov edx, dword ptr [edi + 0x24]\n mov cl, byte ptr [eax]\n cmp cl, byte ptr [edx]\n jne 0x1a\n or cl, cl\n je 0x12\n mov cl, byte ptr [eax + 1]\n cmp cl, byte ptr [edx + 1]\n jne 0xe\n add eax, 2\n add edx, 2"}, {"address": "0x100b9700", "name": "MxStreamerNotification::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100b97b0", "name": "MxStreamerNotification::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100b9820", "name": "MxStreamerNotification::~MxStreamerNotification", "matching": 1.0, "diff": ""}, {"address": "0x100b9870", "name": "MxStreamer::GetOpenStream", "matching": 1.0, "diff": ""}, {"address": "0x100b98f0", "name": "MxStreamer::FUN_100b98f0", "matching": 1.0, "diff": ""}, {"address": "0x100b9930", "name": "MxStreamer::AddStreamControllerToOpenList", "matching": 0.8076923076923077, "diff": "--- \n\n+++ \n\n@@ -1,31 +1,31 @@\n\n sub esp, 0xc\n push ebx\n push esi\n+mov edx, dword ptr [ecx + 0xc]\n push edi\n mov esi, ecx\n-mov ecx, dword ptr [ecx + 0xc]\n-mov dword ptr [esp + 0x14], ecx\n-mov eax, dword ptr [ecx]\n-cmp eax, ecx\n+mov dword ptr [esp + 0x14], edx\n+mov eax, dword ptr [edx]\n+cmp edx, eax\n je 0x15\n-mov edx, dword ptr [esp + 0x1c]\n-cmp dword ptr [eax + 8], edx\n+mov ecx, dword ptr [esp + 0x1c]\n+cmp dword ptr [eax + 8], ecx\n je 0x8\n mov eax, dword ptr [eax]\n-cmp eax, dword ptr [esp + 0x14]\n+cmp dword ptr [esp + 0x14], eax\n jne -0x11\n-cmp eax, ecx\n+cmp edx, eax\n jne 0x47\n-lea ebx, [ecx + 4]\n+lea ebx, [edx + 4]\n push 0xc\n-mov dword ptr [esp + 0x10], ecx\n+mov dword ptr [esp + 0x10], edx\n mov edi, dword ptr [ebx]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n test edi, edi\n je 0xb\n mov ecx, dword ptr [esp + 0xc]\n mov dword ptr [eax], ecx\n mov dword ptr [eax + 4], edi\n jmp 0x5\n mov dword ptr [eax], eax"}, {"address": "0x100b99b0", "name": "MxStreamer::FUN_100b99b0", "matching": 1.0, "diff": ""}, {"address": "0x100b99f0", "name": "MxStreamer::DeleteObject", "matching": 1.0, "diff": ""}, {"address": "0x100b9b30", "name": "MxStreamer::FUN_100b9b30", "matching": 1.0, "diff": ""}, {"address": "0x100b9b60", "name": "MxStreamer::Notify", "matching": 0.9315068493150684, "diff": "--- \n\n+++ \n\n@@ -1,33 +1,33 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-mov eax, dword ptr [ebp + 8]\n sub esp, 0xa4\n-cmp dword ptr [eax + 4], 6\n push ebx\n push esi\n push edi\n mov esi, ecx\n+mov edi, dword ptr [ebp + 8]\n+cmp dword ptr [edi + 4], 6\n jne 0x96\n-mov edi, dword ptr [eax + 0xc]\n lea ecx, [ebp - 0xb0]\n call MxDSAction::MxDSAction (FUNCTION)\n+mov dword ptr [ebp - 4], 0\n+mov edi, dword ptr [edi + 0xc]\n lea eax, [ebp - 0xb0]\n+push eax\n mov ecx, edi\n-mov dword ptr [ebp - 4], 0\n mov word ptr [ebp - 0x8c], 0xfffe\n-push eax\n call MxStreamController::FUN_100c20d0 (FUNCTION)\n test al, al\n je 0xe\n test edi, edi\n je 0x56\n push 1\n mov eax, dword ptr [edi]\n mov ecx, edi\n call dword ptr [eax]\n jmp 0x4c"}, {"address": "0x100b9c70", "name": "MxStillPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b9cc0", "name": "MxStillPresenter::LoadHeader", "matching": 0.8771929824561403, "diff": "--- \n\n+++ \n\n@@ -5,24 +5,25 @@\n\n mov esi, ecx\n test eax, eax\n je 0x9\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov ebx, dword ptr [esp + 0x10]\n mov eax, dword ptr [ebx + 0x14]\n push eax\n call ??2@YAPAXI@Z (FUNCTION)\n+mov dword ptr [esi + 0x68], eax\n add esp, 4\n-mov dword ptr [esi + 0x68], eax\n+mov edi, eax\n+mov esi, dword ptr [ebx + 0x18]\n mov eax, dword ptr [ebx + 0x14]\n-mov edi, dword ptr [esi + 0x68]\n-mov esi, dword ptr [ebx + 0x18]\n mov ecx, eax\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n pop edi\n pop esi\n pop ebx\n+ret 4"}, {"address": "0x100b9d10", "name": "MxStillPresenter::CreateBitmap", "matching": 1.0, "diff": ""}, {"address": "0x100b9db0", "name": "MxStillPresenter::NextFrame", "matching": 1.0, "diff": ""}, {"address": "0x100b9dd0", "name": "MxStillPresenter::LoadFrame", "matching": 1.0, "diff": ""}, {"address": "0x100b9f30", "name": "MxStillPresenter::RealizePalette", "matching": 1.0, "diff": ""}, {"address": "0x100b9f60", "name": "MxStillPresenter::StartingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100b9f90", "name": "MxStillPresenter::StreamingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100b9ff0", "name": "MxStillPresenter::RepeatingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100ba040", "name": "MxStillPresenter::VTable0x88", "matching": 0.39759036144578314, "diff": "--- \n\n+++ \n\n@@ -1,80 +1,86 @@\n\n-sub esp, 0x28\n+sub esp, 0x20\n push ebx\n push esi\n-mov eax, dword ptr [ecx + 0x10]\n+mov esi, dword ptr [ecx + 0x14]\n push edi\n-mov esi, ecx\n-mov edx, dword ptr [esp + 0x38]\n-mov dword ptr [esp + 0xc], eax\n-mov ecx, dword ptr [esi + 0x14]\n-mov eax, dword ptr [esp + 0x3c]\n-mov dword ptr [esp + 0x10], ecx\n-mov ecx, esi\n-mov dword ptr [esi + 0x10], edx\n-mov dword ptr [esi + 0x14], eax\n+push ebp\n+mov ebx, ecx\n+mov eax, dword ptr [esp + 0x34]\n+mov ecx, dword ptr [esp + 0x38]\n+mov ebp, dword ptr [ebx + 0x10]\n+mov dword ptr [ebx + 0x14], ecx\n+mov ecx, ebx\n+mov dword ptr [ebx + 0x10], eax\n call MxPresenter::IsEnabled (FUNCTION)\n test al, al\n-je 0xc3\n-mov ebx, dword ptr [esi]\n-mov ecx, esi\n-call dword ptr [ebx + 0x84]\n+je 0xbc\n+mov ecx, ebx\n+mov eax, dword ptr [ebx]\n+call dword ptr [eax + 0x84]\n lea edi, [eax - 1]\n-mov ecx, esi\n-call dword ptr [ebx + 0x80]\n+mov ecx, ebx\n+mov eax, dword ptr [ebx]\n+call dword ptr [eax + 0x80]\n dec eax\n-mov ecx, dword ptr [esp + 0xc]\n-mov edx, dword ptr [esp + 0x10]\n-mov dword ptr [esp + 0x14], ecx\n-add ecx, eax\n-mov dword ptr [esp + 0x18], edx\n-mov dword ptr [esp + 0x1c], ecx\n-lea ecx, [edi + edx]\n-mov edx, dword ptr [esi + 0x14]\n+mov dword ptr [esp + 0x10], ebp\n+add ebp, eax\n+mov ecx, dword ptr [ebx + 0x10]\n+mov edx, dword ptr [ebx + 0x14]\n+mov dword ptr [esp + 0x14], esi\n+add esi, edi\n+add eax, ecx\n+mov dword ptr [esp + 0x18], ebp\n+mov dword ptr [esp + 0x1c], esi\n mov dword ptr [esp + 0x20], ecx\n-mov ecx, dword ptr [esi + 0x10]\n-mov dword ptr [esp + 0x28], edx\n-add eax, ecx\n+mov dword ptr [esp + 0x24], edx\n add edx, edi\n-mov dword ptr [esp + 0x24], ecx\n-mov dword ptr [esp + 0x2c], eax\n-lea ecx, [esp + 0x14]\n+lea ecx, [esp + 0x10]\n+mov dword ptr [esp + 0x28], eax\n+push ecx\n mov dword ptr [esp + 0x30], edx\n-push ecx\n call MVideoManager (FUNCTION)\n mov ecx, eax\n call MxVideoManager::InvalidateRect (FUNCTION)\n call MVideoManager (FUNCTION)\n-mov ecx, dword ptr [esp + 0x20]\n-sub ecx, dword ptr [esp + 0x18]\n-mov edx, dword ptr [esp + 0x18]\n+mov ecx, dword ptr [esp + 0x1c]\n+sub ecx, dword ptr [esp + 0x14]\n+mov edx, dword ptr [esp + 0x14]\n inc ecx\n-mov ebx, dword ptr [esp + 0x14]\n+mov ebx, dword ptr [esp + 0x10]\n push ecx\n-mov esi, dword ptr [eax]\n-mov ecx, dword ptr [esp + 0x20]\n-sub ecx, dword ptr [esp + 0x18]\n+mov ebp, dword ptr [eax]\n+mov ecx, dword ptr [esp + 0x1c]\n+sub ecx, dword ptr [esp + 0x14]\n inc ecx\n push ecx\n push edx\n push ebx\n mov ecx, eax\n-call dword ptr [esi + 0x34]\n-lea eax, [esp + 0x24]\n+call dword ptr [ebp + 0x34]\n+lea eax, [esp + 0x20]\n push eax\n call MVideoManager (FUNCTION)\n mov ecx, eax\n call MxVideoManager::InvalidateRect (FUNCTION)\n call MVideoManager (FUNCTION)\n mov ecx, eax\n-mov eax, dword ptr [esp + 0x30]\n-sub eax, dword ptr [esp + 0x28]\n-mov edx, dword ptr [esp + 0x28]\n+mov eax, dword ptr [esp + 0x2c]\n+sub eax, dword ptr [esp + 0x24]\n+mov edx, dword ptr [esp + 0x24]\n inc eax\n push eax\n-mov eax, dword ptr [esp + 0x30]\n-sub eax, dword ptr [esp + 0x28]\n+mov eax, dword ptr [esp + 0x2c]\n+sub eax, dword ptr [esp + 0x24]\n inc eax\n push eax\n push edx\n-mov ebx, dword ptr [esp + 0x30]\n+mov ebx, dword ptr [esp + 0x2c]\n+push ebx\n mov eax, dword ptr [ecx]\n+call dword ptr [eax + 0x34]\n+pop ebp\n+pop edi\n+pop esi\n+pop ebx\n+add esp, 0x20\n+ret 8"}, {"address": "0x100ba140", "name": "MxStillPresenter::Enable", "matching": 0.9272727272727272, "diff": "--- \n\n+++ \n\n@@ -15,27 +15,27 @@\n\n je 0x69\n mov ebx, dword ptr [edi]\n mov ecx, edi\n call dword ptr [ebx + 0x84]\n mov esi, eax\n mov ecx, edi\n call dword ptr [ebx + 0x80]\n mov ecx, dword ptr [edi + 0x10]\n mov edx, dword ptr [edi + 0x14]\n add eax, ecx\n+add esi, edx\n mov dword ptr [esp + 0xc], ecx\n+mov dword ptr [esp + 0x10], edx\n lea ecx, [esp + 0xc]\n-mov dword ptr [esp + 0x10], edx\n-add edx, esi\n+mov dword ptr [esp + 0x14], eax\n+mov dword ptr [esp + 0x18], esi\n push ecx\n-mov dword ptr [esp + 0x18], eax\n-mov dword ptr [esp + 0x1c], edx\n call MVideoManager (FUNCTION)\n mov ecx, eax\n call MxVideoManager::InvalidateRect (FUNCTION)\n call MVideoManager (FUNCTION)\n mov ecx, dword ptr [esp + 0x18]\n sub ecx, dword ptr [esp + 0x10]\n mov edx, dword ptr [esp + 0x10]\n inc ecx\n mov ebx, dword ptr [esp + 0xc]\n push ecx"}, {"address": "0x100ba1e0", "name": "MxStillPresenter::ParseExtra", "matching": 0.7384615384615385, "diff": "--- \n\n+++ \n\n@@ -1,42 +1,40 @@\n\n sub esp, 0x400\n push ebx\n push esi\n push edi\n mov ebx, ecx\n call MxPresenter::ParseExtra (FUNCTION)\n mov eax, dword ptr [ebx + 0x1c]\n test byte ptr [eax + 0x30], 0x10\n je 0x4\n or byte ptr [ebx + 0x5e], 8\n-mov cx, word ptr [eax + 0x80]\n-mov word ptr [esp + 0xc], cx\n-cmp word ptr [esp + 0xc], 0\n-mov edx, dword ptr [eax + 0x7c]\n-je 0x96\n-mov eax, dword ptr [esp + 0xc]\n+xor edx, edx\n+mov dx, word ptr [eax + 0x80]\n+test edx, edx\n+je 0x94\n+and edx, 0xffff\n lea edi, [esp + 0xc]\n-and eax, 0xffff\n-mov esi, edx\n-mov ecx, eax\n+mov esi, dword ptr [eax + 0x7c]\n+mov ecx, edx\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n-mov ecx, eax\n+mov ecx, edx\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-lea ecx, [esp + 0xc]\n-mov edx, dword ptr [g_strVISIBILITY (POINTER)]\n-mov byte ptr [esp + eax + 0xc], 0\n-lea eax, [esp + 0x20c]\n+lea eax, [esp + 0xc]\n+mov ecx, dword ptr [g_strVISIBILITY (POINTER)]\n+mov byte ptr [esp + edx + 0xc], 0\n+lea edx, [esp + 0x20c]\n+push eax\n push ecx\n push edx\n-push eax\n call KeyValueStringParse (FUNCTION)\n add esp, 0xc\n test al, al\n je 0x22\n lea eax, [esp + 0x20c]\n push 'FALSE' (STRING)\n push eax\n call __strcmpi (FUNCTION)\n add esp, 8\n test eax, eax\n@@ -54,10 +52,16 @@\n\n call KeyValueStringParse (FUNCTION)\n add esp, 0xc\n test al, al\n je 0x12\n mov al, byte ptr [ebx + 0x5e]\n or al, 0x10\n mov byte ptr [ebx + 0x5e], al\n and al, 0xfd\n mov byte ptr [ebx + 0x5e], al\n and al, 0xfb\n+mov byte ptr [ebx + 0x5e], al\n+pop edi\n+pop esi\n+pop ebx\n+add esp, 0x400\n+ret "}, {"address": "0x100ba2c0", "name": "MxStillPresenter::Clone", "matching": 0.7379679144385026, "diff": "--- \n\n+++ \n\n@@ -3,160 +3,160 @@\n\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 8\n mov dword ptr [ebp - 0x14], 0xffffffff\n push ebx\n push esi\n push edi\n-mov esi, ecx\n push 0x6c\n+mov edi, ecx\n xor ebx, ebx\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n-mov edi, eax\n+mov esi, eax\n mov dword ptr [ebp - 4], ebx\n-test edi, edi\n+test esi, esi\n je 0x85\n-mov ecx, edi\n+mov ecx, esi\n call MxCore::MxCore (FUNCTION)\n mov byte ptr [ebp - 4], 1\n-lea ecx, [edi + 0x20]\n+lea ecx, [esi + 0x20]\n call MxCriticalSection::MxCriticalSection (FUNCTION)\n mov byte ptr [ebp - 4], 2\n-mov ecx, edi\n-mov dword ptr [edi], MxPresenter (VTABLE)\n+mov ecx, esi\n+mov dword ptr [esi], MxPresenter (VTABLE)\n call MxPresenter::Init (FUNCTION)\n mov byte ptr [ebp - 4], 3\n-mov ecx, edi\n-mov dword ptr [edi], MxMediaPresenter (VTABLE)\n+mov ecx, esi\n+mov dword ptr [esi], MxMediaPresenter (VTABLE)\n call MxMediaPresenter::Init (FUNCTION)\n mov byte ptr [ebp - 4], 4\n-mov ecx, edi\n-mov dword ptr [edi], MxVideoPresenter (VTABLE)\n+mov ecx, esi\n+mov dword ptr [esi], MxVideoPresenter (VTABLE)\n call MxVideoPresenter::Init (FUNCTION)\n mov byte ptr [ebp - 4], 5\n-mov dword ptr [edi], MxStillPresenter (VTABLE)\n+mov dword ptr [esi], MxStillPresenter (VTABLE)\n mov byte ptr [ebp - 4], bl\n-mov dword ptr [edi + 0x68], ebx\n-mov ebx, edi\n+mov dword ptr [esi + 0x68], ebx\n+mov ebx, esi\n jmp 0x2d\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x20\n jmp MxCriticalSection::~MxCriticalSection (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxCore::~MxCore (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxPresenter::~MxPresenter (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxMediaPresenter::~MxMediaPresenter (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxVideoPresenter::~MxVideoPresenter (FUNCTION)\n xor ebx, ebx\n mov dword ptr [ebp - 4], 0xffffffff\n test ebx, ebx\n-je 0x11c\n-mov edi, dword ptr [ebx]\n+je 0x11d\n+mov esi, dword ptr [ebx]\n mov ecx, ebx\n-call dword ptr [edi + 0x34]\n+call dword ptr [esi + 0x34]\n test eax, eax\n-jne 0x10d\n-mov ecx, dword ptr [esi + 0x1c]\n+jne 0x10e\n+mov ecx, dword ptr [ebx + 0x1c]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x2c]\n test eax, eax\n-je 0xfd\n+je 0xfe\n push eax\n mov ecx, ebx\n push 0\n-call dword ptr [edi + 0x3c]\n+call dword ptr [esi + 0x3c]\n test eax, eax\n-jne 0xed\n-mov cl, byte ptr [ebx + 0x5e]\n-mov al, byte ptr [esi + 0x5e]\n+jne 0xee\n+mov al, byte ptr [ebx + 0x5e]\n+mov cl, byte ptr [edi + 0x5e]\n+xor cl, al\n+and cl, 1\n+xor cl, al\n+mov byte ptr [ebx + 0x5e], cl\n+mov al, byte ptr [edi + 0x5e]\n xor al, cl\n-and al, 1\n+and al, 2\n xor al, cl\n mov byte ptr [ebx + 0x5e], al\n-mov cl, byte ptr [esi + 0x5e]\n+mov cl, byte ptr [edi + 0x5e]\n xor cl, al\n-and cl, 2\n+and cl, 4\n xor cl, al\n mov byte ptr [ebx + 0x5e], cl\n-mov al, byte ptr [esi + 0x5e]\n+mov al, byte ptr [edi + 0x5e]\n xor al, cl\n-and al, 4\n+and al, 8\n xor al, cl\n mov byte ptr [ebx + 0x5e], al\n-mov cl, byte ptr [esi + 0x5e]\n+mov cl, byte ptr [edi + 0x5e]\n xor cl, al\n-and cl, 8\n+and cl, 0x10\n xor cl, al\n mov byte ptr [ebx + 0x5e], cl\n-mov al, byte ptr [esi + 0x5e]\n-xor al, cl\n-and al, 0x10\n-xor al, cl\n-mov byte ptr [ebx + 0x5e], al\n-cmp dword ptr [esi + 0x50], 0\n+cmp dword ptr [edi + 0x50], 0\n je 0x52\n push 0x20\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n-mov edi, eax\n+mov esi, eax\n mov ecx, 0\n mov dword ptr [ebp - 4], 6\n-test edi, edi\n+test esi, esi\n je 0x9\n-mov ecx, edi\n+mov ecx, esi\n call MxBitmap::MxBitmap (FUNCTION)\n mov ecx, eax\n mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebx + 0x50], ecx\n test ecx, ecx\n je 0x70\n-mov eax, dword ptr [esi + 0x50]\n-mov edi, dword ptr [ecx]\n+mov eax, dword ptr [edi + 0x50]\n+mov esi, dword ptr [ecx]\n push eax\n-call dword ptr [edi + 0x14]\n+call dword ptr [esi + 0x14]\n test eax, eax\n je 0xf\n jmp 0x61\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n-mov eax, dword ptr [esi + 0x58]\n+mov eax, dword ptr [edi + 0x58]\n test eax, eax\n je 0xc\n push eax\n call MxDisplaySurface::FUN_100bbfb0 (FUNCTION)\n add esp, 4\n mov dword ptr [ebx + 0x58], eax\n-cmp dword ptr [esi + 0x54], 0\n+cmp dword ptr [edi + 0x54], 0\n je 0x34\n push 0xc\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov dword ptr [ebp - 4], 7\n-mov edi, eax\n+mov esi, eax\n mov eax, 0\n-test edi, edi\n+test esi, esi\n je 0xb\n-mov eax, dword ptr [esi + 0x54]\n-mov ecx, edi\n+mov eax, dword ptr [edi + 0x54]\n+mov ecx, esi\n push eax\n call MxVideoPresenter::AlphaMask::AlphaMask (FUNCTION)\n mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebx + 0x54], eax\n mov dword ptr [ebp - 0x14], 0\n cmp dword ptr [ebp - 0x14], 0\n je 0xe\n test ebx, ebx\n je 0x8\n push 1"}, {"address": "0x100ba500", "name": "MxDisplaySurface::MxDisplaySurface", "matching": 1.0, "diff": ""}, {"address": "0x100ba580", "name": "MxDisplaySurface::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100ba5a0", "name": "MxDisplaySurface::~MxDisplaySurface", "matching": 1.0, "diff": ""}, {"address": "0x100ba610", "name": "MxDisplaySurface::Init", "matching": 1.0, "diff": ""}, {"address": "0x100ba640", "name": "MxDisplaySurface::ClearScreen", "matching": 1.0, "diff": ""}, {"address": "0x100ba750", "name": "MxDisplaySurface::CountTotalBitsSetTo1", "matching": 1.0, "diff": ""}, {"address": "0x100ba770", "name": "MxDisplaySurface::CountContiguousBitsSetTo1", "matching": 1.0, "diff": ""}, {"address": "0x100ba790", "name": "MxDisplaySurface::Init", "matching": 1.0, "diff": ""}, {"address": "0x100ba7f0", "name": "MxDisplaySurface::Create", "matching": 0.9952830188679245, "diff": "--- \n\n+++ \n\n@@ -137,22 +137,22 @@\n\n test eax, eax\n jne 0xc0\n lea edi, [esp + 0x1c]\n xor eax, eax\n mov ecx, 0x1b\n rep stosd dword ptr es:[edi], eax\n mov dword ptr [esp + 0x1c], 0x6c\n mov dword ptr [esp + 0x20], 7\n mov eax, dword ptr [esi + 0x10]\n sub eax, dword ptr [esi + 8]\n+mov dword ptr [esp + 0x84], 0x6040\n inc eax\n-mov dword ptr [esp + 0x84], 0x6040\n mov dword ptr [esp + 0x28], eax\n mov eax, dword ptr [esi + 0x14]\n sub eax, dword ptr [esi + 0xc]\n inc eax\n test byte ptr [esi + 0x20], 4\n mov dword ptr [esp + 0x24], eax\n jne 0xb\n mov dword ptr [esp + 0x84], 0x2840\n lea ecx, [esi + 0x30]\n push 0"}, {"address": "0x100baa90", "name": "MxDisplaySurface::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100baae0", "name": "MxDisplaySurface::SetPalette", "matching": 0.48859934853420195, "diff": "--- \n\n+++ \n\n@@ -1,156 +1,151 @@\n\n-sub esp, 0x414\n+sub esp, 0x420\n push ebx\n push esi\n push edi\n-mov ebx, ecx\n+mov esi, ecx\n push ebp\n-test byte ptr [ebx + 0x88], 0x20\n+test byte ptr [esi + 0x88], 0x20\n je 0x92\n-mov edi, dword ptr [ebx + 0x2c]\n-mov esi, dword ptr [esp + 0x428]\n-mov ecx, esi\n+mov edi, dword ptr [esi + 0x2c]\n+mov ebx, dword ptr [esp + 0x434]\n+mov ecx, ebx\n call MxPalette::CreateNativePalette (FUNCTION)\n push eax\n push edi\n mov eax, dword ptr [edi]\n call dword ptr [eax + 0x7c]\n-mov edi, dword ptr [ebx + 0x30]\n-mov ecx, esi\n+mov edi, dword ptr [esi + 0x30]\n+mov ecx, ebx\n call MxPalette::CreateNativePalette (FUNCTION)\n push eax\n push edi\n mov eax, dword ptr [edi]\n call dword ptr [eax + 0x7c]\n-test byte ptr [ebx + 0x20], 1\n+test byte ptr [esi + 0x20], 1\n jne 0x6a\n-lea edi, [esp + 0x24]\n+lea edi, [esp + 0x30]\n xor eax, eax\n-mov word ptr [esp + 0x20], 0x300\n-mov word ptr [esp + 0x22], 0x100\n+mov word ptr [esp + 0x2c], 0x300\n+mov word ptr [esp + 0x2e], 0x100\n mov ecx, 0x100\n rep stosd dword ptr es:[edi], eax\n-lea eax, [esp + 0x24]\n-mov ecx, esi\n+lea eax, [esp + 0x30]\n+mov ecx, ebx\n push eax\n call MxPalette::GetEntries (FUNCTION)\n-lea eax, [esp + 0x20]\n+lea eax, [esp + 0x2c]\n mov ebp, dword ptr [__imp__CreatePalette@4 (POINTER)]\n push eax\n call ebp\n mov edi, eax\n push 0\n call dword ptr [__imp__GetDC@4 (POINTER)]\n mov ebp, eax\n push 0\n push edi\n push ebp\n call dword ptr [__imp__SelectPalette@12 (POINTER)]\n push ebp\n call dword ptr [__imp__RealizePalette@4 (POINTER)]\n push ebp\n push 0\n call dword ptr [__imp__ReleaseDC@8 (POINTER)]\n push edi\n call dword ptr [__imp__DeleteObject@4 (POINTER)]\n jmp 0x7\n-mov esi, dword ptr [esp + 0x428]\n-cmp dword ptr [ebx + 0x90], 0x10\n-jne 0x10d\n-cmp dword ptr [ebx + 0xa8], 0\n+mov ebx, dword ptr [esp + 0x434]\n+cmp dword ptr [esi + 0x90], 0x10\n+jne 0x130\n+cmp dword ptr [esi + 0xa8], 0\n jne 0x13\n push 0x200\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n-mov dword ptr [ebx + 0xa8], eax\n-lea eax, [esp + 0x20]\n+mov dword ptr [esi + 0xa8], eax\n+lea eax, [esp + 0x2c]\n+mov ecx, ebx\n+push eax\n+call MxPalette::GetEntries (FUNCTION)\n+mov eax, dword ptr [esi + 0x94]\n mov ecx, esi\n push eax\n-call MxPalette::GetEntries (FUNCTION)\n-mov eax, dword ptr [ebx + 0x94]\n-mov ecx, ebx\n+call MxDisplaySurface::CountContiguousBitsSetTo1 (FUNCTION)\n+mov bl, al\n+mov ecx, esi\n+mov eax, dword ptr [esi + 0x94]\n+push eax\n+call MxDisplaySurface::CountTotalBitsSetTo1 (FUNCTION)\n+mov ecx, esi\n+mov byte ptr [esp + 0x14], al\n+mov eax, dword ptr [esi + 0x98]\n push eax\n call MxDisplaySurface::CountContiguousBitsSetTo1 (FUNCTION)\n-mov ecx, ebx\n-mov byte ptr [esp + 0x11], al\n-mov eax, dword ptr [ebx + 0x94]\n+mov ecx, esi\n+mov byte ptr [esp + 0x1c], al\n+mov eax, dword ptr [esi + 0x98]\n push eax\n call MxDisplaySurface::CountTotalBitsSetTo1 (FUNCTION)\n-mov ecx, ebx\n-mov byte ptr [esp + 0x10], al\n-mov eax, dword ptr [ebx + 0x98]\n+mov ecx, esi\n+mov byte ptr [esp + 0x18], al\n+mov eax, dword ptr [esi + 0x9c]\n push eax\n call MxDisplaySurface::CountContiguousBitsSetTo1 (FUNCTION)\n-mov ecx, ebx\n-mov byte ptr [esp + 0x12], al\n-mov eax, dword ptr [ebx + 0x98]\n+mov ecx, esi\n+mov byte ptr [esp + 0x13], al\n+mov eax, dword ptr [esi + 0x9c]\n push eax\n call MxDisplaySurface::CountTotalBitsSetTo1 (FUNCTION)\n-mov ecx, ebx\n-mov byte ptr [esp + 0x14], al\n-mov eax, dword ptr [ebx + 0x9c]\n-push eax\n-call MxDisplaySurface::CountContiguousBitsSetTo1 (FUNCTION)\n-mov ecx, ebx\n-mov byte ptr [esp + 0x13], al\n-mov eax, dword ptr [ebx + 0x9c]\n-push eax\n-call MxDisplaySurface::CountTotalBitsSetTo1 (FUNCTION)\n-lea esi, [esp + 0x22]\n+lea edi, [esp + 0x2c]\n xor edx, edx\n mov cl, 8\n+and bl, 0x1f\n+sub cl, byte ptr [esp + 0x14]\n+mov byte ptr [esp + 0x28], bl\n+and cl, 0x1f\n+mov byte ptr [esp + 0x24], cl\n+mov cl, 8\n+sub cl, byte ptr [esp + 0x18]\n+and cl, 0x1f\n+mov byte ptr [esp + 0x20], cl\n+mov cl, byte ptr [esp + 0x1c]\n+and cl, 0x1f\n+mov byte ptr [esp + 0x1c], cl\n+mov cl, 8\n sub cl, al\n-mov al, 8\n-sub al, byte ptr [esp + 0x14]\n-mov byte ptr [esp + 0x1c], cl\n+mov al, byte ptr [esp + 0x13]\n+and cl, 0x1f\n+and al, 0x1f\n+mov byte ptr [esp + 0x14], cl\n mov byte ptr [esp + 0x18], al\n-mov al, 8\n-sub al, byte ptr [esp + 0x10]\n-mov byte ptr [esp + 0x14], al\n-mov al, byte ptr [esi - 2]\n+mov al, byte ptr [edi + 2]\n mov cl, byte ptr [esp + 0x14]\n-add esi, 4\n+add edi, 4\n add edx, 2\n shr al, cl\n-movzx di, al\n-mov cl, byte ptr [esp + 0x11]\n-mov al, byte ptr [esi - 5]\n-shl di, cl\n+movzx bx, al\n mov cl, byte ptr [esp + 0x18]\n+mov al, byte ptr [edi - 3]\n+shl bx, cl\n+mov cl, byte ptr [esp + 0x20]\n shr al, cl\n-mov cl, byte ptr [esp + 0x12]\n+mov cl, byte ptr [esp + 0x1c]\n movzx ax, al\n shl ax, cl\n-or di, ax\n-mov cl, byte ptr [esp + 0x1c]\n-mov al, byte ptr [esi - 4]\n+or bx, ax\n+mov cl, byte ptr [esp + 0x24]\n+mov al, byte ptr [edi - 4]\n shr al, cl\n-mov cl, byte ptr [esp + 0x13]\n+mov cl, byte ptr [esp + 0x28]\n movzx ax, al\n shl ax, cl\n-or di, ax\n-mov ecx, dword ptr [ebx + 0xa8]\n-mov word ptr [ecx + edx - 2], di\n+or bx, ax\n+mov ecx, dword ptr [esi + 0xa8]\n+mov word ptr [ecx + edx - 2], bx\n cmp edx, 0x200\n jl -0x5b\n pop ebp\n pop edi\n pop esi\n pop ebx\n-add esp, 0x414\n+add esp, 0x420\n ret 4\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-sub esp, 0x80\n-mov dword ptr [esp], ecx\n-push ebx\n-push esi\n-push edi\n-mov esi, dword ptr [esp + 0x90]\n-push ebp\n-mov edi, dword ptr [esi + 0xc]\n-mov ecx, dword ptr [edi + 8]"}, {"address": "0x100bacc0", "name": "MxDisplaySurface::VTable0x28", "matching": 0.45466491458607095, "diff": "--- \n\n+++ \n\n@@ -1,378 +1,383 @@\n\n sub esp, 0x80\n mov dword ptr [esp], ecx\n push ebx\n push esi\n push edi\n mov esi, dword ptr [esp + 0x90]\n push ebp\n mov edi, dword ptr [esi + 0xc]\n-mov ecx, dword ptr [edi + 8]\n-test ecx, ecx\n+mov edx, dword ptr [edi + 8]\n+test edx, edx\n jg 0x2\n-neg ecx\n+neg edx\n lea eax, [esp + 0xac]\n-lea edx, [esp + 0xa8]\n+lea ecx, [esp + 0xa8]\n lea ebx, [esp + 0xa4]\n push eax\n lea eax, [esp + 0xa4]\n-push edx\n-lea edx, [esp + 0xa4]\n+push ecx\n+lea ecx, [esp + 0xa4]\n push ebx\n lea ebx, [esp + 0xa4]\n push eax\n mov ebp, dword ptr [esp + 0x20]\n-push edx\n-mov edx, dword ptr [esp + 0x24]\n+push ecx\n+mov ecx, dword ptr [esp + 0x24]\n push ebx\n mov eax, dword ptr [ebp + 0x14]\n sub eax, dword ptr [ebp + 0xc]\n inc eax\n push eax\n-mov eax, dword ptr [edx + 0x10]\n-sub eax, dword ptr [edx + 8]\n+mov eax, dword ptr [ecx + 0x10]\n+sub eax, dword ptr [ecx + 8]\n+mov ecx, dword ptr [edi + 4]\n inc eax\n push eax\n-push ecx\n-mov ecx, dword ptr [edi + 4]\n+push edx\n push ecx\n call GetRectIntersection (FUNCTION)\n add esp, 0x28\n test al, al\n-je 0x47d\n+je 0x471\n lea edi, [esp + 0x24]\n xor eax, eax\n mov ecx, 0x1b\n push 0\n rep stosd dword ptr es:[edi], eax\n-mov edx, dword ptr [esp + 0x14]\n+mov ecx, dword ptr [esp + 0x14]\n push 1\n mov dword ptr [esp + 0x2c], 0x6c\n-mov eax, dword ptr [edx + 0x30]\n-lea ecx, [esp + 0x2c]\n-push ecx\n+mov eax, dword ptr [ecx + 0x30]\n+lea edx, [esp + 0x2c]\n+push edx\n push 0\n push eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x64]\n cmp eax, 0x887601c2\n jne 0x25\n-mov edx, dword ptr [esp + 0x10]\n-mov eax, dword ptr [edx + 0x30]\n+mov ecx, dword ptr [esp + 0x10]\n+mov eax, dword ptr [ecx + 0x30]\n push eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x6c]\n-mov edx, dword ptr [esp + 0x10]\n+mov ecx, dword ptr [esp + 0x10]\n push 0\n-lea ecx, [esp + 0x28]\n+lea edx, [esp + 0x28]\n push 1\n-mov eax, dword ptr [edx + 0x30]\n-push ecx\n+mov eax, dword ptr [ecx + 0x30]\n+push edx\n mov ebx, dword ptr [eax]\n push 0\n push eax\n call dword ptr [ebx + 0x64]\n test eax, eax\n-jne 0x41c\n-mov edi, dword ptr [esi + 0xc]\n-lea ecx, [edi + 0x10]\n-mov eax, dword ptr [ecx]\n-test eax, eax\n+jne 0x410\n+mov eax, dword ptr [esi + 0xc]\n+lea edi, [eax + 0x10]\n+mov ebp, dword ptr [edi]\n+test ebp, ebp\n jne 0x39\n-cmp eax, 0x10\n-je 0x7\n-mov edx, dword ptr [edi + 8]\n-test edx, edx\n-jge 0x9\n-mov edx, dword ptr [esp + 0x9c]\n-jmp 0xc\n+cmp ebp, 0x10\n+je 0x15\n+mov ecx, dword ptr [eax + 8]\n+test ecx, ecx\n+jl 0xe\n jg 0x2\n-neg edx\n-sub edx, dword ptr [esp + 0x9c]\n-dec edx\n-mov ebx, dword ptr [edi + 4]\n-add ebx, 3\n-and ebx, 0xfffffffc\n-imul ebx, edx\n-add ebx, dword ptr [esi + 0x14]\n-add ebx, dword ptr [esp + 0x98]\n+neg ecx\n+sub ecx, dword ptr [esp + 0x9c]\n+dec ecx\n+jmp 0x7\n+mov ecx, dword ptr [esp + 0x9c]\n+mov edx, dword ptr [eax + 4]\n+add edx, 3\n+and edx, 0xfffffffc\n+imul edx, ecx\n+add edx, dword ptr [esi + 0x14]\n+add edx, dword ptr [esp + 0x98]\n jmp 0x29\n-cmp eax, 0x10\n+cmp ebp, 0x10\n jne 0x5\n-mov ebx, dword ptr [esi + 0x14]\n+mov edx, dword ptr [esi + 0x14]\n jmp 0x1f\n-mov edx, dword ptr [edi + 8]\n-test edx, edx\n-jge 0x4\n-xor edx, edx\n-jmp 0x5\n+mov ecx, dword ptr [eax + 8]\n+test ecx, ecx\n+jl 0x7\n jg 0x2\n-neg edx\n-dec edx\n-mov ebx, dword ptr [edi + 4]\n-add ebx, 3\n-and ebx, 0xfffffffc\n-imul ebx, edx\n-add ebx, dword ptr [esi + 0x14]\n-mov edx, dword ptr [esp + 0x10]\n-test byte ptr [edx + 0x20], 8\n-je 0x243\n+neg ecx\n+dec ecx\n+jmp 0x2\n+xor ecx, ecx\n+mov edx, dword ptr [eax + 4]\n+add edx, 3\n+and edx, 0xfffffffc\n+imul edx, ecx\n+add edx, dword ptr [esi + 0x14]\n+mov ecx, dword ptr [esp + 0x10]\n+test byte ptr [ecx + 0x20], 8\n+je 0x237\n shl dword ptr [esp + 0xa4], 1\n shl dword ptr [esp + 0xa0], 1\n-mov eax, dword ptr [edx + 0x90]\n-cmp eax, 8\n+mov ecx, dword ptr [ecx + 0x90]\n+cmp ecx, 8\n je 0xe\n-cmp eax, 0x10\n+cmp ecx, 0x10\n je 0xcc\n-jmp 0x362\n-mov edx, dword ptr [esp + 0x34]\n-imul edx, dword ptr [esp + 0xa4]\n-add edx, dword ptr [esp + 0x48]\n-add edx, dword ptr [esp + 0xa0]\n-cmp dword ptr [ecx], 0x10\n-je 0x6\n-cmp dword ptr [edi + 8], 0\n-jge 0xb\n-mov ebp, dword ptr [edi + 4]\n-add ebp, 3\n-and ebp, 0xfffffffc\n-jmp 0xb\n-mov ebp, dword ptr [edi + 4]\n+jmp 0x356\n+mov ebx, dword ptr [esp + 0xa4]\n+imul ebx, dword ptr [esp + 0x34]\n+add ebx, dword ptr [esp + 0xa0]\n+add ebx, dword ptr [esp + 0x48]\n+cmp dword ptr [edi], 0x10\n+je 0x13\n+cmp dword ptr [eax + 8], 0\n+jl 0xd\n+mov ebp, dword ptr [eax + 4]\n add ebp, 3\n and ebp, 0xfffffffc\n neg ebp\n+jmp 0x9\n+mov ebp, dword ptr [eax + 4]\n+add ebp, 3\n+and ebp, 0xfffffffc\n sub ebp, dword ptr [esp + 0xa8]\n mov eax, dword ptr [esp + 0x34]\n mov ecx, dword ptr [esp + 0xa8]\n mov esi, dword ptr [esp + 0xac]\n add ecx, ecx\n dec dword ptr [esp + 0xac]\n sub eax, ecx\n test esi, esi\n mov dword ptr [esp + 0x14], eax\n-je 0x2fa\n-mov esi, edx\n+je 0x2ee\n+mov esi, ebx\n xor ecx, ecx\n cmp dword ptr [esp + 0xa8], ecx\n jle 0x18\n-mov al, byte ptr [ebx]\n+mov al, byte ptr [edx]\n+inc ebx\n inc edx\n inc ebx\n-inc edx\n inc ecx\n-mov byte ptr [edx - 2], al\n-mov al, byte ptr [ebx - 1]\n-mov byte ptr [edx - 1], al\n+mov byte ptr [ebx - 2], al\n+mov al, byte ptr [edx - 1]\n+mov byte ptr [ebx - 1], al\n cmp dword ptr [esp + 0xa8], ecx\n jg -0x18\n-add ebx, ebp\n-add edx, dword ptr [esp + 0x14]\n+add edx, ebp\n+add ebx, dword ptr [esp + 0x14]\n mov eax, dword ptr [esp + 0xa8]\n-mov edi, edx\n+mov edi, ebx\n add eax, eax\n mov ecx, eax\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-add edx, dword ptr [esp + 0x34]\n+add ebx, dword ptr [esp + 0x34]\n mov ecx, dword ptr [esp + 0xac]\n dec dword ptr [esp + 0xac]\n test ecx, ecx\n jne -0x5a\n-jmp 0x29b\n+jmp 0x28f\n+mov ebx, dword ptr [esp + 0xa4]\n+mov ecx, dword ptr [esp + 0xa0]\n+imul ebx, dword ptr [esp + 0x34]\n+lea ebx, [ebx + ecx*2]\n+add ebx, dword ptr [esp + 0x48]\n+cmp dword ptr [edi], 0x10\n+je 0x13\n+cmp dword ptr [eax + 8], 0\n+jl 0xd\n+mov eax, dword ptr [eax + 4]\n+add eax, 3\n+and eax, 0xfffffffc\n+neg eax\n+jmp 0x9\n+mov eax, dword ptr [eax + 4]\n+add eax, 3\n+and eax, 0xfffffffc\n+mov dword ptr [esp + 0x20], eax\n+mov eax, dword ptr [esp + 0xa8]\n+mov ebp, eax\n+mov ecx, dword ptr [esp + 0xac]\n+shl ebp, 2\n+mov esi, dword ptr [esp + 0xa8]\n+mov edi, dword ptr [esp + 0x10]\n+sub dword ptr [esp + 0x20], eax\n mov eax, dword ptr [esp + 0x34]\n-mov edx, dword ptr [esp + 0xa0]\n-imul eax, dword ptr [esp + 0xa4]\n-lea eax, [eax + edx*2]\n-add eax, dword ptr [esp + 0x48]\n-cmp dword ptr [ecx], 0x10\n-je 0x6\n-cmp dword ptr [edi + 8], 0\n-jge 0xb\n-mov ecx, dword ptr [edi + 4]\n-add ecx, 3\n-and ecx, 0xfffffffc\n-jmp 0xb\n-mov ecx, dword ptr [edi + 4]\n-add ecx, 3\n-and ecx, 0xfffffffc\n-neg ecx\n-sub ecx, dword ptr [esp + 0xa8]\n-mov ebp, dword ptr [esp + 0xa8]\n-shl ebp, 2\n-mov edx, dword ptr [esp + 0xac]\n-mov esi, dword ptr [esp + 0xa8]\n-mov dword ptr [esp + 0x14], ecx\n-mov ecx, dword ptr [esp + 0x34]\n-mov dword ptr [esp + 0x18], edx\n-sub ecx, ebp\n+mov dword ptr [esp + 0x18], ecx\n+sub eax, ebp\n mov dword ptr [esp + 0x1c], esi\n-mov dword ptr [esp + 0x20], ecx\n-mov ecx, dword ptr [esp + 0x10]\n+cmp dword ptr [esp + 0x20], 0\n+mov dword ptr [esp + 0x14], eax\n+mov eax, dword ptr [edi + 0xa8]\n+jne 0x64\n cmp dword ptr [esp + 0x14], 0\n-mov edx, dword ptr [ecx + 0xa8]\n-jne 0x6d\n-cmp dword ptr [esp + 0x20], 0\n-jne 0x66\n-mov ecx, dword ptr [esp + 0xac]\n+jne 0x5d\n dec ecx\n cmp dword ptr [esp + 0xac], 0\n mov dword ptr [esp + 0x18], ecx\n-je 0x1f9\n-cmp dword ptr [esp + 0x1c], 0\n-mov esi, eax\n-jle 0x1e\n+je 0x1f5\n+mov esi, ebx\n mov edi, dword ptr [esp + 0x1c]\n+test edi, edi\n+jle 0x1b\n xor ecx, ecx\n-add eax, 2\n-mov cl, byte ptr [ebx]\n-inc ebx\n-mov cx, word ptr [edx + ecx*2]\n-add eax, 2\n-mov word ptr [eax - 4], cx\n+inc edx\n+add ebx, 2\n+mov cl, byte ptr [edx - 1]\n+mov cx, word ptr [eax + ecx*2]\n+add ebx, 2\n+mov word ptr [ebx - 4], cx\n dec edi\n-mov word ptr [eax - 2], cx\n-jne -0x1a\n-mov edi, eax\n+mov word ptr [ebx - 2], cx\n+jne -0x1b\n+mov edi, ebx\n mov ecx, ebp\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, ebp\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-add eax, dword ptr [esp + 0x34]\n+add ebx, dword ptr [esp + 0x34]\n mov ecx, dword ptr [esp + 0x18]\n dec dword ptr [esp + 0x18]\n test ecx, ecx\n-jne -0x47\n-jmp 0x1ad\n+jne -0x45\n+jmp 0x1ab\n mov ecx, dword ptr [esp + 0x18]\n dec dword ptr [esp + 0x18]\n test ecx, ecx\n-je 0x19d\n-cmp dword ptr [esp + 0x1c], 0\n-mov esi, eax\n-jle 0x1e\n+je 0x19b\n+mov esi, ebx\n mov edi, dword ptr [esp + 0x1c]\n+test edi, edi\n+jle 0x1b\n xor ecx, ecx\n-add eax, 2\n-mov cl, byte ptr [ebx]\n-inc ebx\n-mov cx, word ptr [edx + ecx*2]\n-add eax, 2\n-mov word ptr [eax - 4], cx\n+inc edx\n+add ebx, 2\n+mov cl, byte ptr [edx - 1]\n+mov cx, word ptr [eax + ecx*2]\n+add ebx, 2\n+mov word ptr [ebx - 4], cx\n dec edi\n-mov word ptr [eax - 2], cx\n-jne -0x1a\n+mov word ptr [ebx - 2], cx\n+jne -0x1b\n+add edx, dword ptr [esp + 0x20]\n add ebx, dword ptr [esp + 0x14]\n-add eax, dword ptr [esp + 0x20]\n mov ecx, dword ptr [esp + 0xa8]\n-mov edi, eax\n+mov edi, ebx\n shl ecx, 2\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n-add eax, dword ptr [esp + 0x34]\n+add ebx, dword ptr [esp + 0x34]\n mov ecx, dword ptr [esp + 0x18]\n dec dword ptr [esp + 0x18]\n test ecx, ecx\n-jne -0x50\n+jne -0x4e\n jmp 0x148\n-mov edx, dword ptr [esp + 0x10]\n-mov ecx, dword ptr [edx + 0x90]\n+mov ecx, dword ptr [esp + 0x10]\n+mov ecx, dword ptr [ecx + 0x90]\n cmp ecx, 8\n je 0xe\n cmp ecx, 0x10\n je 0x91\n jmp 0x12b\n-mov edx, dword ptr [esp + 0x34]\n-imul edx, dword ptr [esp + 0xa4]\n-add edx, dword ptr [esp + 0x48]\n-add edx, dword ptr [esp + 0xa0]\n-cmp eax, 0x10\n-je 0x6\n-cmp dword ptr [edi + 8], 0\n-jge 0xb\n-mov ebp, dword ptr [edi + 4]\n-add ebp, 3\n-and ebp, 0xfffffffc\n-jmp 0xb\n-mov ebp, dword ptr [edi + 4]\n+mov ebx, dword ptr [esp + 0xa4]\n+imul ebx, dword ptr [esp + 0x34]\n+add ebx, dword ptr [esp + 0xa0]\n+add ebx, dword ptr [esp + 0x48]\n+cmp ebp, 0x10\n+je 0x13\n+cmp dword ptr [eax + 8], 0\n+jl 0xd\n+mov ebp, dword ptr [eax + 4]\n add ebp, 3\n and ebp, 0xfffffffc\n neg ebp\n+jmp 0x9\n+mov ebp, dword ptr [eax + 4]\n+add ebp, 3\n+and ebp, 0xfffffffc\n mov eax, dword ptr [esp + 0x34]\n mov ecx, dword ptr [esp + 0xac]\n mov dword ptr [esp + 0x14], eax\n dec dword ptr [esp + 0xac]\n test ecx, ecx\n je 0xd5\n mov eax, dword ptr [esp + 0xa8]\n-mov edi, edx\n-mov esi, ebx\n+mov edi, ebx\n+mov esi, edx\n mov ecx, eax\n shr ecx, 2\n-add ebx, ebp\n+add edx, ebp\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-add edx, dword ptr [esp + 0x14]\n+add ebx, dword ptr [esp + 0x14]\n mov eax, dword ptr [esp + 0xac]\n dec dword ptr [esp + 0xac]\n test eax, eax\n jne -0x31\n jmp 0x9f\n-mov esi, dword ptr [esp + 0x34]\n+mov esi, dword ptr [esp + 0xa4]\n mov ecx, dword ptr [esp + 0xa0]\n-imul esi, dword ptr [esp + 0xa4]\n+imul esi, dword ptr [esp + 0x34]\n lea esi, [esi + ecx*2]\n add esi, dword ptr [esp + 0x48]\n-cmp eax, 0x10\n-je 0x6\n-cmp dword ptr [edi + 8], 0\n-jge 0xb\n-mov edi, dword ptr [edi + 4]\n-add edi, 3\n-and edi, 0xfffffffc\n-jmp 0xb\n-mov edi, dword ptr [edi + 4]\n+cmp ebp, 0x10\n+je 0x13\n+cmp dword ptr [eax + 8], 0\n+jl 0xd\n+mov edi, dword ptr [eax + 4]\n add edi, 3\n and edi, 0xfffffffc\n neg edi\n+jmp 0x9\n+mov edi, dword ptr [eax + 4]\n+add edi, 3\n+and edi, 0xfffffffc\n sub edi, dword ptr [esp + 0xa8]\n mov eax, dword ptr [esp + 0x34]\n mov ecx, dword ptr [esp + 0xa8]\n-xor ebp, ebp\n+xor ebx, ebx\n add ecx, ecx\n sub eax, ecx\n-cmp dword ptr [esp + 0xac], ebp\n+cmp dword ptr [esp + 0xac], ebx\n mov dword ptr [esp + 0x14], eax\n jle 0x3f\n-xor ecx, ecx\n-cmp dword ptr [esp + 0xa8], ecx\n+xor ebp, ebp\n+cmp dword ptr [esp + 0xa8], ebp\n jle 0x24\n xor eax, eax\n-mov edx, dword ptr [esp + 0x10]\n-mov al, byte ptr [ebx]\n+mov ecx, dword ptr [esp + 0x10]\n+mov al, byte ptr [edx]\n+inc edx\n+mov ecx, dword ptr [ecx + 0xa8]\n+add esi, 2\n+mov ax, word ptr [ecx + eax*2]\n+inc ebp\n+mov word ptr [esi - 2], ax\n+cmp dword ptr [esp + 0xa8], ebp\n+jg -0x24\n+add edx, edi\n+add esi, dword ptr [esp + 0x14]\n inc ebx\n-mov edx, dword ptr [edx + 0xa8]\n-add esi, 2\n-mov ax, word ptr [edx + eax*2]\n-inc ecx\n-mov word ptr [esi - 2], ax\n-cmp dword ptr [esp + 0xa8], ecx\n-jg -0x24\n-add ebx, edi\n-add esi, dword ptr [esp + 0x14]\n-inc ebp\n-cmp dword ptr [esp + 0xac], ebp\n+cmp dword ptr [esp + 0xac], ebx\n jg -0x3f\n-mov edx, dword ptr [esp + 0x10]\n-mov ecx, dword ptr [esp + 0x48]\n-push ecx\n-mov eax, dword ptr [edx + 0x30]\n+mov ecx, dword ptr [esp + 0x10]\n+mov edx, dword ptr [esp + 0x48]\n+push edx\n+mov eax, dword ptr [ecx + 0x30]\n push eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x80]\n pop ebp\n+pop edi\n+pop esi\n+pop ebx\n+add esp, 0x80\n+ret 0x1c"}, {"address": "0x100bba50", "name": "MxDisplaySurface::Display", "matching": 0.6993006993006993, "diff": "--- \n\n+++ \n\n@@ -1,18 +1,18 @@\n\n sub esp, 0x94\n push ebx\n push esi\n push edi\n mov esi, ecx\n push ebp\n test byte ptr [esi + 0x21], 2\n-je 0x19d\n+je 0x1a1\n test byte ptr [esi + 0x20], 2\n je 0xa8\n cmp dword ptr [g_unk0x1010215c (DATA)], 2\n jae 0x89\n lea edi, [esp + 0x38]\n xor eax, eax\n mov ecx, 0x1b\n push 0\n push 1\n inc dword ptr [g_unk0x1010215c (DATA)]\n@@ -20,125 +20,123 @@\n\n mov dword ptr [esp + 0x40], 0x6c\n mov eax, dword ptr [esi + 0x30]\n lea ecx, [esp + 0x40]\n push ecx\n push 0\n push eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 0x64]\n test eax, eax\n jne 0x4b\n-mov ebx, dword ptr [esp + 0x5c]\n-xor edx, edx\n-cmp dword ptr [esp + 0x40], edx\n+mov edx, dword ptr [esp + 0x5c]\n+xor ebx, ebx\n+cmp dword ptr [esp + 0x40], ebx\n jbe 0x2c\n mov ebp, dword ptr [esp + 0x44]\n-mov edi, ebx\n+mov edi, edx\n xor eax, eax\n-inc edx\n+inc ebx\n imul ebp, dword ptr [esp + 0x8c]\n shr ebp, 3\n mov ecx, ebp\n shr ecx, 2\n rep stosd dword ptr es:[edi], eax\n mov ecx, ebp\n and ecx, 3\n rep stosb byte ptr es:[edi], al\n-add ebx, dword ptr [esp + 0x48]\n-cmp edx, dword ptr [esp + 0x40]\n+add edx, dword ptr [esp + 0x48]\n+cmp ebx, dword ptr [esp + 0x40]\n jb -0x2c\n mov eax, dword ptr [esi + 0x30]\n mov ecx, dword ptr [esp + 0x5c]\n mov ebx, dword ptr [eax]\n push ecx\n push eax\n call dword ptr [ebx + 0x80]\n jmp 0xb\n push 'MxDisplaySurface::Display error\\n' (STRING)\n call dword ptr [__imp__OutputDebugStringA@4 (POINTER)]\n mov eax, dword ptr [esi + 0x2c]\n push 1\n mov ebx, dword ptr [eax]\n push 0\n push eax\n call dword ptr [ebx + 0x2c]\n-jmp 0xeb\n+jmp 0xef\n xor ebx, ebx\n mov dword ptr [esp + 0x10], ebx\n mov dword ptr [esp + 0x14], ebx\n call MxOmni::GetInstance (FUNCTION)\n lea ecx, [esp + 0x10]\n mov eax, dword ptr [eax + 0x18]\n push ecx\n mov ebp, dword ptr [__imp__ClientToScreen@8 (POINTER)]\n push eax\n call ebp\n-mov eax, dword ptr [esi + 8]\n-mov ecx, dword ptr [esp + 0xb0]\n-add eax, dword ptr [esp + 0x10]\n-mov edx, dword ptr [esp + 0xb4]\n-add ecx, eax\n+mov ecx, dword ptr [esi + 8]\n mov edi, dword ptr [esp + 0xa8]\n-mov eax, dword ptr [esi + 0xc]\n-mov ebp, dword ptr [esp + 0xb8]\n-add eax, dword ptr [esp + 0x14]\n-mov dword ptr [esp + 0x18], edi\n-add edx, eax\n-add edi, ebp\n+add ecx, dword ptr [esp + 0x10]\n+mov dword ptr [esp + 0x28], edi\n+add ecx, dword ptr [esp + 0xb0]\n+mov edx, dword ptr [esp + 0xb8]\n+add edi, edx\n+mov dword ptr [esp + 0x18], ecx\n+mov ecx, dword ptr [esi + 0xc]\n mov eax, dword ptr [esp + 0xac]\n-mov dword ptr [esp + 0x20], edi\n-mov edi, dword ptr [esp + 0xbc]\n-mov dword ptr [esp + 0x1c], eax\n-add eax, edi\n-mov dword ptr [esp + 0x28], ecx\n-add ecx, ebp\n+add ecx, dword ptr [esp + 0x14]\n+mov dword ptr [esp + 0x30], edi\n+add ecx, dword ptr [esp + 0xb4]\n+mov dword ptr [esp + 0x2c], eax\n+mov dword ptr [esp + 0x1c], ecx\n+mov ecx, dword ptr [esp + 0xbc]\n+add eax, ecx\n+mov dword ptr [esp + 0x34], eax\n+mov eax, dword ptr [esp + 0x18]\n+add eax, edx\n+lea edi, [esp + 0x38]\n+mov dword ptr [esp + 0x20], eax\n+mov eax, dword ptr [esp + 0x1c]\n+add eax, ecx\n+mov ecx, 0x19\n mov dword ptr [esp + 0x24], eax\n xor eax, eax\n-mov dword ptr [esp + 0x2c], edx\n-add edx, edi\n-mov dword ptr [esp + 0x30], ecx\n-lea edi, [esp + 0x38]\n-mov ecx, 0x19\n-mov dword ptr [esp + 0x34], edx\n rep stosd dword ptr es:[edi], eax\n-lea eax, [esp + 0x38]\n-lea edx, [esp + 0x18]\n+lea edx, [esp + 0x38]\n+lea eax, [esp + 0x28]\n mov ecx, dword ptr [esi + 0x2c]\n-push eax\n+push edx\n push ebx\n mov ebp, dword ptr [esi + 0x30]\n-lea eax, [esp + 0x30]\n-push edx\n+lea edx, [esp + 0x20]\n+push eax\n mov dword ptr [esp + 0x44], 0x64\n mov dword ptr [esp + 0x48], 8\n push ebp\n-mov edi, dword ptr [ecx]\n-push eax\n+mov eax, dword ptr [ecx]\n+push edx\n push ecx\n-call dword ptr [edi + 0x14]\n+call dword ptr [eax + 0x14]\n cmp eax, 0x887601c2\n jne 0x26\n mov eax, dword ptr [esi + 0x2c]\n push eax\n mov ebp, dword ptr [eax]\n call dword ptr [ebp + 0x6c]\n mov ecx, dword ptr [esi + 0x2c]\n lea eax, [esp + 0x38]\n-lea edx, [esp + 0x18]\n+lea edx, [esp + 0x28]\n push eax\n-lea eax, [esp + 0x2c]\n+lea eax, [esp + 0x1c]\n push ebx\n push edx\n mov ebx, dword ptr [esi + 0x30]\n push ebx\n mov ebp, dword ptr [ecx]\n push eax\n push ecx\n call dword ptr [ebp + 0x14]\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 0x94\n ret 0x18\n-push esi\n-mov eax, dword ptr [ecx + 0x30]"}, {"address": "0x100bbc10", "name": "MxDisplaySurface::GetDC", "matching": 1.0, "diff": ""}, {"address": "0x100bbc40", "name": "MxDisplaySurface::ReleaseDC", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,11 +1,11 @@\n\n-mov ecx, dword ptr [ecx + 0x30]\n+mov eax, dword ptr [ecx + 0x30]\n+test eax, eax\n+je 0xf\n+mov ecx, dword ptr [esp + 4]\n test ecx, ecx\n-je 0xf\n-mov eax, dword ptr [esp + 4]\n-test eax, eax\n je 0x7\n+push ecx\n push eax\n-push ecx\n-mov eax, dword ptr [ecx]\n+mov eax, dword ptr [eax]\n call dword ptr [eax + 0x68]\n ret 4"}, {"address": "0x100bbc60", "name": "MxDisplaySurface::VTable0x44", "matching": 0.47654784240150094, "diff": "--- \n\n+++ \n\n@@ -1,267 +1,266 @@\n\n-sub esp, 0x84\n+sub esp, 0x88\n mov dword ptr [esp], 0\n push ebx\n push esi\n push edi\n mov esi, ecx\n push ebp\n call MVideoManager (FUNCTION)\n-mov ebp, dword ptr [eax + 0x50]\n+mov ebx, dword ptr [eax + 0x50]\n call MVideoManager (FUNCTION)\n-lea edi, [esp + 0x28]\n+lea edi, [esp + 0x2c]\n xor eax, eax\n mov ecx, 0x1b\n rep stosd dword ptr es:[edi], eax\n-mov dword ptr [esp + 0x28], 0x6c\n-lea eax, [esp + 0x28]\n-mov ebx, dword ptr [ebp]\n-push eax\n-push ebp\n-call dword ptr [ebx + 0x30]\n+mov dword ptr [esp + 0x2c], 0x6c\n+lea eax, [esp + 0x2c]\n+mov ebp, dword ptr [ebx]\n+push eax\n+push ebx\n+call dword ptr [ebp + 0x30]\n test eax, eax\n je 0x7\n xor eax, eax\n-jmp 0x2f4\n-mov ebx, dword ptr [esp + 0x98]\n-mov dword ptr [esp + 0x2c], 0x1007\n-mov eax, dword ptr [ebx + 0xc]\n+jmp 0x2f5\n+mov ebp, dword ptr [esp + 0x9c]\n+mov dword ptr [esp + 0x30], 0x1007\n+mov eax, dword ptr [ebp + 0xc]\n mov ecx, dword ptr [eax + 4]\n-mov dword ptr [esp + 0x34], ecx\n+mov dword ptr [esp + 0x38], ecx\n mov eax, dword ptr [eax + 8]\n test eax, eax\n jg 0x2\n neg eax\n-mov edi, dword ptr [esp + 0x9c]\n-mov dword ptr [esp + 0x30], eax\n+mov edi, dword ptr [esp + 0xa0]\n+mov dword ptr [esp + 0x34], eax\n lea edx, [esp + 0x10]\n push 0\n push edx\n mov dword ptr [edi], 0\n-mov dword ptr [esp + 0x98], 0x840\n-mov eax, dword ptr [ebp]\n+mov dword ptr [esp + 0x9c], 0x840\n+mov eax, dword ptr [ebx]\n mov ecx, dword ptr [eax + 0x18]\n-lea eax, [esp + 0x30]\n+lea eax, [esp + 0x34]\n mov dword ptr [esp + 0x1c], ecx\n push eax\n-push ebp\n+push ebx\n call dword ptr [esp + 0x24]\n test eax, eax\n je 0x3e\n cmp dword ptr [edi], 0\n je 0x31\n lea eax, [esp + 0x10]\n push 0\n-lea ecx, [esp + 0x2c]\n+lea ecx, [esp + 0x30]\n push eax\n push ecx\n mov dword ptr [edi], 0\n-and dword ptr [esp + 0x9c], 0xffffbfff\n-or dword ptr [esp + 0x9c], 0x800\n-push ebp\n+and dword ptr [esp + 0xa0], 0xffffbfff\n+or dword ptr [esp + 0xa0], 0x800\n+push ebx\n call dword ptr [esp + 0x24]\n test eax, eax\n je 0x8\n mov dword ptr [esp + 0x10], 0\n cmp dword ptr [esp + 0x10], 0\n-je 0x24a\n-lea edi, [esp + 0x28]\n+je 0x24c\n+lea edi, [esp + 0x2c]\n xor eax, eax\n mov ecx, 0x1b\n push eax\n rep stosd dword ptr es:[edi], eax\n-lea eax, [esp + 0x2c]\n+lea eax, [esp + 0x30]\n push 1\n mov ecx, dword ptr [esp + 0x18]\n push eax\n-mov dword ptr [esp + 0x34], 0x6c\n+mov dword ptr [esp + 0x38], 0x6c\n push 0\n mov eax, dword ptr [ecx]\n push ecx\n call dword ptr [eax + 0x64]\n test eax, eax\n je 0x17\n mov eax, dword ptr [esp + 0x10]\n push eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 8]\n mov dword ptr [esp + 0x10], 0\n-jmp 0x206\n-cmp dword ptr [esp + 0xa0], 0\n-jne 0x1f8\n-mov ecx, dword ptr [ebx + 0xc]\n-mov edi, dword ptr [ecx + 0x10]\n-test edi, edi\n+jmp 0x208\n+cmp dword ptr [esp + 0xa4], 0\n+jne 0x1fa\n+mov edi, dword ptr [ebp + 0xc]\n+cmp dword ptr [edi + 0x10], 0\n jne 0x14\n-cmp edi, 0x10\n-je 0x7\n-mov eax, dword ptr [ecx + 8]\n-test eax, eax\n-jge 0x4\n-xor eax, eax\n-jmp 0x1e\n-jg 0x1b\n-jmp 0x17\n-cmp edi, 0x10\n+cmp dword ptr [edi + 0x10], 0x10\n+je 0x27\n+mov ecx, dword ptr [edi + 8]\n+test ecx, ecx\n+jl 0x20\n+jg 0x2\n+neg ecx\n+dec ecx\n+jmp 0x1b\n+cmp dword ptr [edi + 0x10], 0x10\n jne 0x5\n-mov edx, dword ptr [ebx + 0x14]\n+mov eax, dword ptr [ebp + 0x14]\n jmp 0x1f\n-mov eax, dword ptr [ecx + 8]\n-test eax, eax\n-jge 0x4\n-xor eax, eax\n-jmp 0x5\n-jg 0x2\n-neg eax\n-dec eax\n-mov edx, dword ptr [ecx + 4]\n-add edx, 3\n-and edx, 0xfffffffc\n-imul edx, eax\n-add edx, dword ptr [ebx + 0x14]\n-mov eax, dword ptr [esp + 0x4c]\n-mov ebp, dword ptr [ecx + 4]\n-mov ebx, dword ptr [ecx + 8]\n-test ebx, ebx\n-jle 0x6\n-mov dword ptr [esp + 0x14], ebx\n-jmp 0x8\n-mov ecx, ebx\n+mov ecx, dword ptr [edi + 8]\n+test ecx, ecx\n+jl 0x7\n+jg 0x2\n neg ecx\n+dec ecx\n+jmp 0x2\n+xor ecx, ecx\n+mov eax, dword ptr [edi + 4]\n+add eax, 3\n+and eax, 0xfffffffc\n+imul eax, ecx\n+add eax, dword ptr [ebp + 0x14]\n+mov edx, dword ptr [esp + 0x50]\n+mov ecx, dword ptr [edi + 4]\n+mov ebx, dword ptr [edi + 8]\n+mov dword ptr [esp + 0x20], ecx\n+cmp dword ptr [edi + 8], 0\n+mov dword ptr [esp + 0x24], ecx\n+jg 0x2\n+neg ebx\n+mov ecx, dword ptr [esp + 0x20]\n+add ecx, 3\n mov dword ptr [esp + 0x14], ecx\n-mov ecx, dword ptr [esp + 0x38]\n-mov dword ptr [esp + 0x20], ecx\n-lea ecx, [ebp + 3]\n-and ecx, 0xfffffffc\n-cmp edi, 0x10\n+and dword ptr [esp + 0x14], 0xfffffffc\n+cmp dword ptr [edi + 0x10], 0x10\n+mov ecx, dword ptr [esp + 0x14]\n mov dword ptr [esp + 0x1c], ecx\n-je 0xa\n-test ebx, ebx\n+je 0xc\n+cmp dword ptr [edi + 8], 0\n jl 0x6\n neg ecx\n mov dword ptr [esp + 0x1c], ecx\n-mov ecx, dword ptr [esp + 0x7c]\n+mov ecx, dword ptr [esp + 0x3c]\n+mov dword ptr [esp + 0x28], ecx\n+mov ecx, dword ptr [esp + 0x80]\n cmp ecx, 8\n je 0xa\n cmp ecx, 0x10\n-je 0x76\n-jmp 0x161\n-cmp dword ptr [esp + 0x14], 0\n-jle 0x21\n-mov ebx, dword ptr [esp + 0x14]\n-mov edi, eax\n-mov esi, edx\n-mov ecx, ebp\n+je 0x7d\n+jmp 0x151\n+test ebx, ebx\n+jle 0x2b\n+mov ecx, dword ptr [ebp + 0xc]\n+mov edi, edx\n+dec ebx\n+mov esi, dword ptr [ecx + 8]\n+mov dword ptr [esp + 0x14], esi\n+mov esi, eax\n+mov ecx, dword ptr [esp + 0x14]\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n-mov ecx, ebp\n+mov ecx, dword ptr [esp + 0x14]\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-add edx, dword ptr [esp + 0x1c]\n-add eax, dword ptr [esp + 0x20]\n-dec ebx\n-jne -0x1d\n-mov eax, dword ptr [esp + 0x4c]\n+add eax, dword ptr [esp + 0x1c]\n+add edx, dword ptr [esp + 0x28]\n+jmp -0x2f\n+mov eax, dword ptr [esp + 0x50]\n mov ecx, dword ptr [esp + 0x10]\n push eax\n push ecx\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x80]\n xor eax, eax\n-cmp dword ptr [esp + 0xa4], eax\n-je 0x118\n+cmp dword ptr [esp + 0xa8], eax\n+je 0x101\n cmp dword ptr [esp + 0x10], eax\n-je 0x10e\n+je 0xf7\n mov dword ptr [esp + 0x18], eax\n mov ecx, dword ptr [esp + 0x10]\n mov dword ptr [esp + 0x14], eax\n lea eax, [esp + 0x14]\n push eax\n push 8\n push ecx\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x74]\n-jmp 0xf0\n+jmp 0xd9\n cmp dword ptr [esi + 0xa8], 0\n jne 0x18\n cmp dword ptr [esp + 0x10], 0\n je 0xa\n mov eax, dword ptr [esp + 0x10]\n push eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx + 8]\n xor eax, eax\n-jmp 0xd3\n-lea ecx, [ebp*2]\n-sub dword ptr [esp + 0x1c], ebp\n-sub dword ptr [esp + 0x20], ecx\n-cmp dword ptr [esp + 0xa4], 0\n-je 0x68\n-cmp dword ptr [esp + 0x14], 0\n-jle 0x41\n-mov ecx, dword ptr [esp + 0x14]\n-mov dword ptr [esp + 0x24], ecx\n+jmp 0xbc\n+mov ecx, dword ptr [esp + 0x20]\n+mov ebp, dword ptr [esp + 0xa8]\n+sub dword ptr [esp + 0x1c], ecx\n+add ecx, ecx\n+sub dword ptr [esp + 0x28], ecx\n test ebp, ebp\n-jle 0x27\n-mov edi, ebp\n-mov cl, byte ptr [edx]\n-test cl, cl\n-jne 0x7\n-mov word ptr [eax], 0x7c1f\n-jmp 0x11\n-xor ebx, ebx\n-mov bl, cl\n-mov ecx, dword ptr [esi + 0xa8]\n-mov cx, word ptr [ecx + ebx*2]\n-mov word ptr [eax], cx\n-inc edx\n-add eax, 2\n+je 0x5c\n+test ebx, ebx\n+jle 0x38\n+mov edi, dword ptr [esp + 0x24]\n+test edi, edi\n+jle 0x25\n+cmp byte ptr [eax], 0\n+je 0x14\n+xor ecx, ecx\n+mov ebp, dword ptr [esi + 0xa8]\n+mov cl, byte ptr [eax]\n+mov cx, word ptr [ebp + ecx*2]\n+mov word ptr [edx], cx\n+jmp 0x5\n+mov word ptr [edx], 0x7c1f\n+inc eax\n+add edx, 2\n dec edi\n jne -0x25\n-add edx, dword ptr [esp + 0x1c]\n-add eax, dword ptr [esp + 0x20]\n-dec dword ptr [esp + 0x24]\n-jne -0x39\n+add eax, dword ptr [esp + 0x1c]\n+add edx, dword ptr [esp + 0x28]\n+dec ebx\n+jne -0x38\n mov eax, 0x7c1f\n mov ecx, dword ptr [esp + 0x10]\n mov dword ptr [esp + 0x18], eax\n mov dword ptr [esp + 0x14], eax\n lea eax, [esp + 0x14]\n push eax\n push 8\n push ecx\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x74]\n-jmp 0x3c\n-cmp dword ptr [esp + 0x14], 0\n-jle 0x35\n-mov ecx, dword ptr [esp + 0x14]\n-mov dword ptr [esp + 0x14], ecx\n-test ebp, ebp\n-jle 0x1b\n-mov edi, ebp\n+jmp 0x31\n+test ebx, ebx\n+jle 0x2d\n+mov edi, dword ptr [esp + 0x24]\n+test edi, edi\n+jle 0x1a\n xor ecx, ecx\n-mov ebx, dword ptr [esi + 0xa8]\n-mov cl, byte ptr [edx]\n-inc edx\n-mov cx, word ptr [ebx + ecx*2]\n-add eax, 2\n-mov word ptr [eax - 2], cx\n+mov ebp, dword ptr [esi + 0xa8]\n+mov cl, byte ptr [eax]\n+inc eax\n+mov cx, word ptr [ebp + ecx*2]\n+add edx, 2\n+mov word ptr [edx - 2], cx\n dec edi\n-jne -0x19\n-add edx, dword ptr [esp + 0x1c]\n-add eax, dword ptr [esp + 0x20]\n-dec dword ptr [esp + 0x14]\n+jne -0x1a\n+add eax, dword ptr [esp + 0x1c]\n+add edx, dword ptr [esp + 0x28]\n+dec ebx\n jne -0x2d\n-mov eax, dword ptr [esp + 0x4c]\n+mov eax, dword ptr [esp + 0x50]\n mov ecx, dword ptr [esp + 0x10]\n push eax\n push ecx\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x80]\n mov eax, dword ptr [esp + 0x10]\n pop ebp\n pop edi\n pop esi\n pop ebx\n-add esp, 0x84\n+add esp, 0x88\n ret 0x10"}, {"address": "0x100bc070", "name": "MxDisplaySurface::CreateCursorSurface", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -82,42 +82,42 @@\n\n call dword ptr [ebx + 8]\n xor eax, eax\n pop edi\n pop esi\n pop ebx\n add esp, 0x78\n ret \n mov edx, dword ptr [esp + 0x3c]\n mov esi, dword ptr [esp + 0x28]\n xor edi, edi\n-mov eax, edx\n-xor ebx, ebx\n-cmp ebx, 0xa\n+mov ebx, edx\n+xor eax, eax\n+cmp eax, 0xa\n jg 0x4\n test edi, edi\n je 0x21\n cmp edi, 0xa\n jg 0x4\n-test ebx, ebx\n+test eax, eax\n je 0x18\n-lea ecx, [edi + ebx]\n+lea ecx, [eax + edi]\n cmp ecx, 0xa\n je 0x10\n jle 0x7\n-mov word ptr [eax], 0x7c1f\n+mov word ptr [ebx], 0x7c1f\n jmp 0xc\n-mov word ptr [eax], 0xffff\n+mov word ptr [ebx], 0xffff\n jmp 0x5\n-mov word ptr [eax], 0\n-add eax, 2\n-inc ebx\n-cmp ebx, 0x10\n+mov word ptr [ebx], 0\n+add ebx, 2\n+inc eax\n+cmp eax, 0x10\n jl -0x38\n add edx, esi\n inc edi\n cmp edi, 0x10\n jl -0x44\n mov eax, dword ptr [esp + 0x3c]\n mov ecx, dword ptr [esp + 0xc]\n push eax\n push ecx\n mov eax, dword ptr [ecx]"}, {"address": "0x100bc980", "name": "MxBitmap::MxBitmap", "matching": 1.0, "diff": ""}, {"address": "0x100bc9f0", "name": "MxBitmap::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100bca10", "name": "MxBitmap::~MxBitmap", "matching": 1.0, "diff": ""}, {"address": "0x100bcaa0", "name": "MxBitmap::SetSize", "matching": 1.0, "diff": ""}, {"address": "0x100bcba0", "name": "MxBitmap::ImportBitmapInfo", "matching": 1.0, "diff": ""}, {"address": "0x100bcc40", "name": "MxBitmap::ImportBitmap", "matching": 1.0, "diff": ""}, {"address": "0x100bcd10", "name": "MxBitmap::Read", "matching": 1.0, "diff": ""}, {"address": "0x100bcd60", "name": "MxBitmap::LoadFile", "matching": 0.9633507853403142, "diff": "--- \n\n+++ \n\n@@ -8,23 +8,23 @@\n\n lea eax, [esp + 0x10]\n push 0\n lea ecx, [esp + 0x18]\n push eax\n mov ebx, dword ptr [esp + 0x30]\n push 0xe\n push ecx\n push ebx\n call dword ptr [__imp__ReadFile@20 (POINTER)]\n test eax, eax\n-je 0xa1\n-mov ax, word ptr [<OFFSET2>]\n-cmp word ptr [esp + 0x14], ax\n+je 0xa2\n+mov ax, word ptr [esp + 0x14]\n+cmp word ptr [g_bitmapSignature (DATA)], ax\n jne 0x90\n push 0x428\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [esi + 8], eax\n test eax, eax\n je 0x7c\n lea ecx, [esp + 0x10]\n push 0\n push ecx\n@@ -86,11 +86,10 @@\n\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [esi + 0x14], 0\n add esp, 4\n mov eax, edi\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 0x14\n ret 4\n-int3 "}, {"address": "0x100bce70", "name": "MxBitmap::BitBlt", "matching": 0.6746987951807228, "diff": "--- \n\n+++ \n\n@@ -1,151 +1,151 @@\n\n sub esp, 4\n push ebx\n push esi\n-mov eax, dword ptr [ecx + 0xc]\n push edi\n push ebp\n-mov esi, ecx\n+mov eax, dword ptr [ecx + 0xc]\n+mov edi, ecx\n mov ecx, dword ptr [eax + 8]\n test ecx, ecx\n jg 0x2\n neg ecx\n-mov edi, dword ptr [esp + 0x18]\n-mov ebx, dword ptr [edi + 0xc]\n-mov edx, dword ptr [ebx + 8]\n-test edx, edx\n+mov esi, dword ptr [esp + 0x18]\n+mov edx, dword ptr [esi + 0xc]\n+mov ebx, dword ptr [edx + 8]\n+test ebx, ebx\n jg 0x2\n-neg edx\n+neg ebx\n lea ebp, [esp + 0x30]\n push ebp\n lea ebp, [esp + 0x30]\n push ebp\n lea ebp, [esp + 0x30]\n push ebp\n lea ebp, [esp + 0x30]\n mov eax, dword ptr [eax + 4]\n push ebp\n lea ebp, [esp + 0x30]\n push ebp\n lea ebp, [esp + 0x30]\n push ebp\n push ecx\n push eax\n-mov ecx, dword ptr [ebx + 4]\n-push edx\n+mov ecx, dword ptr [edx + 4]\n+push ebx\n push ecx\n call GetRectIntersection (FUNCTION)\n add esp, 0x28\n test al, al\n je 0x142\n-mov ecx, dword ptr [edi + 0xc]\n+mov ecx, dword ptr [esi + 0xc]\n cmp dword ptr [ecx + 0x10], 0\n jne 0x31\n cmp dword ptr [ecx + 0x10], 0x10\n-je 0x7\n+je 0x12\n mov eax, dword ptr [ecx + 8]\n test eax, eax\n-jge 0x6\n-mov eax, dword ptr [esp + 0x20]\n-jmp 0x9\n+jl 0xb\n jg 0x2\n neg eax\n sub eax, dword ptr [esp + 0x20]\n dec eax\n+jmp 0x4\n+mov eax, dword ptr [esp + 0x20]\n mov edx, dword ptr [ecx + 4]\n add edx, 3\n and edx, 0xfffffffc\n imul edx, eax\n-add edx, dword ptr [edi + 0x14]\n+add edx, dword ptr [esi + 0x14]\n add edx, dword ptr [esp + 0x1c]\n jmp 0x2a\n cmp dword ptr [ecx + 0x10], 0x10\n jne 0x5\n-mov edx, dword ptr [edi + 0x14]\n+mov edx, dword ptr [esi + 0x14]\n jmp 0x1f\n mov eax, dword ptr [ecx + 8]\n test eax, eax\n-jge 0x4\n-xor eax, eax\n-jmp 0x5\n+jl 0x7\n jg 0x2\n neg eax\n dec eax\n+jmp 0x2\n+xor eax, eax\n mov edx, dword ptr [ecx + 4]\n add edx, 3\n and edx, 0xfffffffc\n imul edx, eax\n-add edx, dword ptr [edi + 0x14]\n-mov edi, dword ptr [esi + 0xc]\n-mov ebp, dword ptr [edi + 0x10]\n-test ebp, ebp\n+add edx, dword ptr [esi + 0x14]\n+mov ebp, dword ptr [edi + 0xc]\n+mov esi, dword ptr [ebp + 0x10]\n+test esi, esi\n jne 0x30\n-cmp ebp, 0x10\n-je 0x7\n-mov eax, dword ptr [edi + 8]\n+cmp esi, 0x10\n+je 0x12\n+mov eax, dword ptr [ebp + 8]\n test eax, eax\n-jge 0x6\n-mov eax, dword ptr [esp + 0x28]\n-jmp 0x9\n+jl 0xb\n jg 0x2\n neg eax\n sub eax, dword ptr [esp + 0x28]\n dec eax\n-mov ebx, dword ptr [edi + 4]\n+jmp 0x4\n+mov eax, dword ptr [esp + 0x28]\n+mov ebx, dword ptr [ebp + 4]\n add ebx, 3\n and ebx, 0xfffffffc\n imul ebx, eax\n-add ebx, dword ptr [esi + 0x14]\n+add ebx, dword ptr [edi + 0x14]\n add ebx, dword ptr [esp + 0x24]\n jmp 0x29\n-cmp ebp, 0x10\n+cmp esi, 0x10\n jne 0x5\n-mov ebx, dword ptr [esi + 0x14]\n+mov ebx, dword ptr [edi + 0x14]\n jmp 0x1f\n-mov eax, dword ptr [edi + 8]\n+mov eax, dword ptr [ebp + 8]\n test eax, eax\n-jge 0x4\n-xor eax, eax\n-jmp 0x5\n+jl 0x7\n jg 0x2\n neg eax\n dec eax\n-mov ebx, dword ptr [edi + 4]\n+jmp 0x2\n+xor eax, eax\n+mov ebx, dword ptr [ebp + 4]\n add ebx, 3\n and ebx, 0xfffffffc\n imul ebx, eax\n-add ebx, dword ptr [esi + 0x14]\n+add ebx, dword ptr [edi + 0x14]\n cmp dword ptr [ecx + 0x10], 0x10\n-je 0x6\n+je 0x13\n cmp dword ptr [ecx + 8], 0\n-jge 0xb\n-mov eax, dword ptr [ecx + 4]\n-add eax, 3\n-and eax, 0xfffffffc\n-jmp 0xb\n+jl 0xd\n mov eax, dword ptr [ecx + 4]\n add eax, 3\n and eax, 0xfffffffc\n neg eax\n+jmp 0x9\n+mov eax, dword ptr [ecx + 4]\n+add eax, 3\n+and eax, 0xfffffffc\n mov dword ptr [esp + 0x10], eax\n-cmp ebp, 0x10\n-je 0x6\n-cmp dword ptr [edi + 8], 0\n-jge 0xb\n-mov ebp, dword ptr [edi + 4]\n-add ebp, 3\n-and ebp, 0xfffffffc\n-jmp 0xb\n-mov ebp, dword ptr [edi + 4]\n+cmp esi, 0x10\n+je 0x13\n+cmp dword ptr [ebp + 8], 0\n+jl 0xd\n+mov ebp, dword ptr [ebp + 4]\n add ebp, 3\n and ebp, 0xfffffffc\n neg ebp\n+jmp 0x9\n+mov ebp, dword ptr [ebp + 4]\n+add ebp, 3\n+and ebp, 0xfffffffc\n mov eax, dword ptr [esp + 0x30]\n dec dword ptr [esp + 0x30]\n test eax, eax\n je 0x28\n mov eax, dword ptr [esp + 0x2c]\n mov edi, ebx\n mov esi, edx\n mov ecx, eax\n shr ecx, 2\n add ebx, ebp"}, {"address": "0x100bd020", "name": "MxBitmap::BitBltTransparent", "matching": 0.45103857566765576, "diff": "--- \n\n+++ \n\n@@ -1,169 +1,168 @@\n\n push ebx\n push esi\n-mov eax, dword ptr [ecx + 0xc]\n push edi\n+mov esi, ecx\n push ebp\n-mov esi, ecx\n-mov ecx, dword ptr [eax + 8]\n-test ecx, ecx\n+mov ecx, dword ptr [esi + 0xc]\n+mov eax, dword ptr [ecx + 8]\n+test eax, eax\n jg 0x2\n-neg ecx\n+neg eax\n mov edi, dword ptr [esp + 0x14]\n mov ebx, dword ptr [edi + 0xc]\n mov edx, dword ptr [ebx + 8]\n test edx, edx\n jg 0x2\n neg edx\n lea ebp, [esp + 0x2c]\n push ebp\n lea ebp, [esp + 0x2c]\n push ebp\n lea ebp, [esp + 0x2c]\n push ebp\n lea ebp, [esp + 0x2c]\n-mov eax, dword ptr [eax + 4]\n push ebp\n lea ebp, [esp + 0x2c]\n push ebp\n lea ebp, [esp + 0x2c]\n push ebp\n-push ecx\n push eax\n+mov eax, dword ptr [ecx + 4]\n mov ecx, dword ptr [ebx + 4]\n+push eax\n push edx\n push ecx\n call GetRectIntersection (FUNCTION)\n add esp, 0x28\n test al, al\n-je 0x13e\n-mov edx, dword ptr [edi + 0xc]\n-cmp dword ptr [edx + 0x10], 0\n+je 0x146\n+mov ecx, dword ptr [edi + 0xc]\n+cmp dword ptr [ecx + 0x10], 0\n jne 0x31\n-cmp dword ptr [edx + 0x10], 0x10\n-je 0x7\n-mov eax, dword ptr [edx + 8]\n+cmp dword ptr [ecx + 0x10], 0x10\n+je 0x12\n+mov eax, dword ptr [ecx + 8]\n test eax, eax\n-jge 0x6\n-mov eax, dword ptr [esp + 0x1c]\n-jmp 0x9\n+jl 0xb\n jg 0x2\n neg eax\n sub eax, dword ptr [esp + 0x1c]\n dec eax\n-mov ecx, dword ptr [edx + 4]\n-add ecx, 3\n-and ecx, 0xfffffffc\n-imul ecx, eax\n-add ecx, dword ptr [edi + 0x14]\n-add ecx, dword ptr [esp + 0x18]\n+jmp 0x4\n+mov eax, dword ptr [esp + 0x1c]\n+mov edx, dword ptr [ecx + 4]\n+add edx, 3\n+and edx, 0xfffffffc\n+imul edx, eax\n+add edx, dword ptr [edi + 0x14]\n+add edx, dword ptr [esp + 0x18]\n jmp 0x2a\n-cmp dword ptr [edx + 0x10], 0x10\n+cmp dword ptr [ecx + 0x10], 0x10\n jne 0x5\n-mov ecx, dword ptr [edi + 0x14]\n+mov edx, dword ptr [edi + 0x14]\n jmp 0x1f\n-mov eax, dword ptr [edx + 8]\n+mov eax, dword ptr [ecx + 8]\n test eax, eax\n-jge 0x4\n-xor eax, eax\n-jmp 0x5\n+jl 0x7\n jg 0x2\n neg eax\n dec eax\n-mov ecx, dword ptr [edx + 4]\n-add ecx, 3\n-and ecx, 0xfffffffc\n-imul ecx, eax\n-add ecx, dword ptr [edi + 0x14]\n-mov ebp, dword ptr [esi + 0xc]\n-mov eax, dword ptr [ebp + 0x10]\n+jmp 0x2\n+xor eax, eax\n+mov edx, dword ptr [ecx + 4]\n+add edx, 3\n+and edx, 0xfffffffc\n+imul edx, eax\n+add edx, dword ptr [edi + 0x14]\n+mov ebx, dword ptr [esi + 0xc]\n+mov eax, dword ptr [ebx + 0x10]\n test eax, eax\n jne 0x30\n cmp eax, 0x10\n-je 0x7\n-mov ebx, dword ptr [ebp + 8]\n-test ebx, ebx\n-jge 0x6\n-mov ebx, dword ptr [esp + 0x24]\n-jmp 0x9\n+je 0x12\n+mov ebp, dword ptr [ebx + 8]\n+test ebp, ebp\n+jl 0xb\n jg 0x2\n-neg ebx\n-sub ebx, dword ptr [esp + 0x24]\n-dec ebx\n-mov edi, dword ptr [ebp + 4]\n+neg ebp\n+sub ebp, dword ptr [esp + 0x24]\n+dec ebp\n+jmp 0x4\n+mov ebp, dword ptr [esp + 0x24]\n+mov edi, dword ptr [ebx + 4]\n add edi, 3\n and edi, 0xfffffffc\n-imul edi, ebx\n+imul edi, ebp\n add edi, dword ptr [esi + 0x14]\n add edi, dword ptr [esp + 0x20]\n jmp 0x29\n cmp eax, 0x10\n jne 0x5\n mov edi, dword ptr [esi + 0x14]\n jmp 0x1f\n-mov ebx, dword ptr [ebp + 8]\n-test ebx, ebx\n-jge 0x4\n-xor ebx, ebx\n-jmp 0x5\n+mov ebp, dword ptr [ebx + 8]\n+test ebp, ebp\n+jl 0x7\n jg 0x2\n-neg ebx\n-dec ebx\n-mov edi, dword ptr [ebp + 4]\n+neg ebp\n+dec ebp\n+jmp 0x2\n+xor ebp, ebp\n+mov edi, dword ptr [ebx + 4]\n add edi, 3\n and edi, 0xfffffffc\n-imul edi, ebx\n+imul edi, ebp\n add edi, dword ptr [esi + 0x14]\n-cmp dword ptr [edx + 0x10], 0x10\n-je 0x6\n-cmp dword ptr [edx + 8], 0\n-jge 0xb\n-mov ebx, dword ptr [edx + 4]\n-add ebx, 3\n-and ebx, 0xfffffffc\n-jmp 0xb\n-mov ebx, dword ptr [edx + 4]\n-add ebx, 3\n-and ebx, 0xfffffffc\n-neg ebx\n-sub ebx, dword ptr [esp + 0x28]\n+cmp dword ptr [ecx + 0x10], 0x10\n+je 0x17\n+cmp dword ptr [ecx + 8], 0\n+jl 0x11\n+mov esi, dword ptr [ecx + 4]\n+add esi, 3\n+and esi, 0xfffffffc\n+add esi, dword ptr [esp + 0x28]\n+neg esi\n+jmp 0xd\n+mov esi, dword ptr [ecx + 4]\n+add esi, 3\n+and esi, 0xfffffffc\n+sub esi, dword ptr [esp + 0x28]\n cmp eax, 0x10\n-je 0x6\n-cmp dword ptr [ebp + 8], 0\n-jge 0xb\n-mov eax, dword ptr [ebp + 4]\n+je 0x17\n+cmp dword ptr [ebx + 8], 0\n+jl 0x11\n+mov eax, dword ptr [ebx + 4]\n add eax, 3\n and eax, 0xfffffffc\n-jmp 0xb\n-mov eax, dword ptr [ebp + 4]\n+add eax, dword ptr [esp + 0x28]\n+neg eax\n+jmp 0xd\n+mov eax, dword ptr [ebx + 4]\n add eax, 3\n and eax, 0xfffffffc\n-neg eax\n sub eax, dword ptr [esp + 0x28]\n+xor ecx, ecx\n+cmp dword ptr [esp + 0x2c], ecx\n+jle 0x24\n xor ebp, ebp\n-cmp dword ptr [esp + 0x2c], ebp\n-jle 0x24\n-xor esi, esi\n-cmp dword ptr [esp + 0x28], esi\n+cmp dword ptr [esp + 0x28], ebp\n jle 0x11\n-mov dl, byte ptr [ecx]\n-test dl, dl\n+mov bl, byte ptr [edx]\n+test bl, bl\n je 0x2\n-mov byte ptr [edi], dl\n+mov byte ptr [edi], bl\n+inc edx\n+inc edi\n+inc ebp\n+cmp dword ptr [esp + 0x28], ebp\n+jg -0x11\n+add edx, esi\n+add edi, eax\n inc ecx\n-inc edi\n-inc esi\n-cmp dword ptr [esp + 0x28], esi\n-jg -0x11\n-add ecx, ebx\n-add edi, eax\n-inc ebp\n-cmp dword ptr [esp + 0x2c], ebp\n+cmp dword ptr [esp + 0x2c], ecx\n jg -0x24\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret 0x1c\n-int3 \n-mov eax, dword ptr fs:[0]\n-push ebp"}, {"address": "0x100bd1c0", "name": "MxBitmap::CreatePalette", "matching": 1.0, "diff": ""}, {"address": "0x100bd280", "name": "MxBitmap::ImportPalette", "matching": 1.0, "diff": ""}, {"address": "0x100bd2d0", "name": "MxBitmap::SetBitDepth", "matching": 0.8950276243093923, "diff": "--- \n\n+++ \n\n@@ -46,46 +46,45 @@\n\n push ecx\n mov ecx, esi\n call MxBitmap::ImportColorsToPalette (FUNCTION)\n mov ecx, dword ptr [esi + 0x1c]\n test ecx, ecx\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov dword ptr [esi + 0x1c], 0\n-jmp 0x55\n+jmp 0x56\n push 0x414\n mov edi, 0\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [ebp - 0x10], eax\n mov dword ptr [ebp - 4], 0\n test eax, eax\n je 0xe\n mov eax, dword ptr [esi + 0x10]\n mov ecx, dword ptr [ebp - 0x10]\n push eax\n call MxPalette::MxPalette (FUNCTION)\n mov edi, eax\n mov dword ptr [ebp - 4], 0xffffffff\n test edi, edi\n je -0x97\n-xor ax, ax\n-mov ecx, dword ptr [esi + 0x10]\n+xor cx, cx\n+mov eax, dword ptr [esi + 0x10]\n mov dword ptr [esi + 0x1c], edi\n-movzx edx, ax\n-mov word ptr [ecx + edx*2], ax\n-inc ax\n-cmp ax, 0x100\n-jb -0xf\n+movzx edx, cx\n+mov word ptr [eax + edx*2], cx\n+inc cx\n+cmp cx, 0x100\n+jb -0x10\n mov al, byte ptr [ebp + 8]\n mov byte ptr [esi + 0x18], al\n-jmp -0xbc\n+jmp -0xbd\n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n-int3 "}, {"address": "0x100bd3e0", "name": "MxBitmap::StretchBits", "matching": 1.0, "diff": ""}, {"address": "0x100bd450", "name": "MxBitmap::ImportColorsToPalette", "matching": 1.0, "diff": ""}, {"address": "0x100bd530", "name": "_FUN_100bd530", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -12,21 +12,21 @@\n\n cmp esi, edi\n jle 0x1c\n movsx eax, cx\n cmp dword ptr [edx + 8], eax\n jle 0x14\n add esi, 3\n mov cl, byte ptr [esp + 0x1c]\n and esi, 0xfffffffc\n imul esi, eax\n add esi, dword ptr [esp + 0x10]\n-mov byte ptr [esi + edi], cl\n+mov byte ptr [edi + esi], cl\n pop edi\n pop esi\n ret \n int3 \n int3 \n int3 \n int3 \n int3 \n int3 \n int3 "}, {"address": "0x100bd580", "name": "_FUN_100bd580", "matching": 1.0, "diff": ""}, {"address": "0x100bd600", "name": "_FUN_100bd600", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -2,21 +2,21 @@\n\n push ebx\n mov bx, word ptr [ecx]\n push esi\n mov eax, dword ptr [esp + 0x14]\n push edi\n mov ax, word ptr [eax]\n push ebp\n test ax, ax\n mov edx, dword ptr [esp + 0x20]\n mov si, word ptr [edx]\n-lea edi, [ebx + esi]\n+lea edi, [esi + ebx]\n jl 0x50\n movsx ebp, ax\n mov eax, dword ptr [esp + 0x14]\n cmp dword ptr [eax + 8], ebp\n jle 0x44\n test di, di\n jl 0x3f\n movsx ebp, bx\n cmp ebp, dword ptr [eax + 4]\n jge 0x37"}, {"address": "0x100bd680", "name": "_FUN_100bd680", "matching": 1.0, "diff": ""}, {"address": "0x100bd6e0", "name": "_FUN_100bd6e0", "matching": 0.9534883720930233, "diff": "--- \n\n+++ \n\n@@ -5,21 +5,21 @@\n\n lea edx, [esp + 0x14]\n push eax\n mov esi, dword ptr [esp + 0x10]\n push ecx\n shl word ptr [esp + 0x28], 1\n push edx\n push esi\n call _FUN_100bd600 (FUNCTION)\n add esp, 0x10\n test eax, eax\n-je 0x52\n+je 0x51\n mov dx, word ptr [esp + 0x20]\n mov ecx, dword ptr [esi + 4]\n and dx, 1\n add ecx, 3\n movsx eax, word ptr [esp + 0x18]\n movsx ebx, word ptr [esp + 0x14]\n and ecx, 0xfffffffc\n sar word ptr [esp + 0x20], 1\n imul ecx, eax\n add ecx, ebx\n@@ -33,10 +33,12 @@\n\n mov word ptr [eax - 2], cx\n dec word ptr [esp + 0x20]\n jns -0x13\n test dx, dx\n je 0x2\n mov byte ptr [eax], bl\n pop esi\n pop ebx\n ret \n int3 \n+int3 \n+int3 "}, {"address": "0x100bd760", "name": "_FUN_100bd760", "matching": 0.8557213930348259, "diff": "--- \n\n+++ \n\n@@ -14,22 +14,22 @@\n\n mov ebx, dword ptr [esp + 0x20]\n mov ebp, dword ptr [esp + 0x28]\n mov ecx, ebp\n xor edx, edx\n mov dx, word ptr [ecx + 4]\n add ebp, dword ptr [ebp]\n sub edx, 4\n cmp edx, 0xc\n ja 0x82\n xor eax, eax\n-mov al, byte ptr [edx + 0x100bd870]\n-jmp dword ptr [eax*4 + 0x100bd850]\n+mov al, byte ptr [edx + 0x1007633e]\n+jmp dword ptr [eax*4 + 0x1007631e]\n add ecx, 6\n push ecx\n push esi\n call _FUN_100bd880 (FUNCTION)\n mov eax, dword ptr [esp + 0x34]\n add esp, 8\n mov byte ptr [eax], 1\n jmp 0x5d\n push ebx\n add ecx, 6\n@@ -79,13 +79,32 @@\n\n mov cx, word ptr [esp + 0x12]\n cmp word ptr [eax + 6], cx\n jg -0xb1\n xor ax, ax\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret \n-mov edx, 0xd0100bd7\n-xlatb \n-or edx, dword ptr [eax]\n+mov byte ptr [edx + 7], ah\n+adc byte ptr [esi - 0x53eff89e], bl\n+bound eax, qword ptr [edi]\n+adc dl, al\n+bound eax, qword ptr [edi]\n+adc al, dl\n+bound eax, qword ptr [edi]\n+adc dh, bl\n+bound eax, qword ptr [edi]\n+adc ah, ch\n+bound eax, qword ptr [edi]\n+adc bl, bh\n+bound eax, qword ptr [edi]\n+adc byte ptr [eax], al\n+pop es\n+pop es\n+add dword ptr [edi], eax\n+pop es\n+pop es\n+add al, byte ptr [ebx]\n+add al, 7\n+add eax, 0xcccccc06"}, {"address": "0x100bd880", "name": "_FUN_100bd880", "matching": 1.0, "diff": ""}, {"address": "0x100bd8a0", "name": "_FUN_100bd8a0", "matching": 1.0, "diff": ""}, {"address": "0x100bd8f0", "name": "_FUN_100bd8f0", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,17 +1,17 @@\n\n mov dx, word ptr [esp + 0x10]\n push esi\n movsx ecx, word ptr [esp + 0x10]\n shl ecx, 2\n mov eax, dword ptr [esp + 8]\n add ecx, dword ptr [eax]\n-lea esi, [ecx + eax]\n+lea esi, [eax + ecx]\n mov ax, dx\n dec dx\n test ax, ax\n je 0x25\n mov eax, dword ptr [esp + 0xc]\n mov cl, byte ptr [eax]\n add esi, 4\n add eax, 3\n mov byte ptr [esi - 2], cl\n mov cl, byte ptr [eax - 2]"}, {"address": "0x100bd940", "name": "_FUN_100bd940", "matching": 1.0, "diff": ""}, {"address": "0x100bd960", "name": "_FUN_100bd960", "matching": 1.0, "diff": ""}, {"address": "0x100bda10", "name": "_FUN_100bda10", "matching": 1.0, "diff": ""}, {"address": "0x100bdac0", "name": "_FUN_100bdac0", "matching": 0.9585253456221198, "diff": "--- \n\n+++ \n\n@@ -34,21 +34,21 @@\n\n call _FUN_100bd530 (FUNCTION)\n mov ecx, dword ptr [esp + 0x28]\n add esp, 0x14\n mov bx, word ptr [ecx]\n add dword ptr [esp + 0x14], 2\n test bx, bx\n jne 0x15\n dec si\n dec word ptr [esp + 0x12]\n cmp word ptr [esp + 0x12], 0\n-jle 0xae\n+jle 0xad\n jmp -0x5a\n xor di, di\n mov ecx, dword ptr [esp + 0x14]\n movzx ax, byte ptr [ecx]\n add di, ax\n inc dword ptr [esp + 0x14]\n mov ecx, dword ptr [esp + 0x14]\n movsx bp, byte ptr [ecx]\n add bp, bp\n inc dword ptr [esp + 0x14]\n@@ -66,43 +66,44 @@\n\n push edx\n call _FUN_100bd580 (FUNCTION)\n movsx ecx, bp\n add dword ptr [esp + 0x2c], ecx\n add esp, 0x18\n dec bx\n jne -0x4b\n dec si\n dec word ptr [esp + 0x12]\n cmp word ptr [esp + 0x12], 0\n-jle 0x4f\n+jle 0x4e\n jmp -0xbc\n mov eax, dword ptr [esp + 0x14]\n mov edx, dword ptr [esp + 0x20]\n neg bp\n add dword ptr [esp + 0x14], 2\n mov cx, bp\n sar cx, 1\n mov ax, word ptr [eax]\n push ecx\n mov ecx, dword ptr [esp + 0x20]\n push eax\n push esi\n push edi\n add di, bp\n push edx\n push ecx\n call _FUN_100bd6e0 (FUNCTION)\n add esp, 0x18\n dec bx\n-jne -0x96\n+jne -0x95\n dec si\n dec word ptr [esp + 0x12]\n cmp word ptr [esp + 0x12], 0\n-jg -0x106\n+jg -0x105\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 8\n ret \n int3 \n int3 \n+int3 "}, {"address": "0x100bdc00", "name": "_FUN_100bdc00", "matching": 0.9763779527559056, "diff": "--- \n\n+++ \n\n@@ -4,21 +4,21 @@\n\n push ebx\n mov word ptr [esp + 6], cx\n push esi\n push edi\n xor ecx, ecx\n mov byte ptr [esp + 0xd], cl\n push ebp\n mov bp, word ptr [eax + 0xa]\n mov byte ptr [esp + 0x10], cl\n dec bp\n-js 0x56\n+js 0x55\n movsx eax, word ptr [esp + 0x12]\n mov si, word ptr [esp + 0x12]\n mov edi, dword ptr [esp + 0x1c]\n cdq \n and si, 1\n sub eax, edx\n sar eax, 1\n mov ebx, dword ptr [esp + 0x20]\n mov word ptr [esp + 0x14], ax\n mov eax, dword ptr [esp + 0x14]\n@@ -54,10 +54,11 @@\n\n int3 \n int3 \n int3 \n int3 \n int3 \n int3 \n int3 \n int3 \n int3 \n int3 \n+int3 "}, {"address": "0x100bdc90", "name": "_FUN_100bdc90", "matching": 1.0, "diff": ""}, {"address": "0x100bdce0", "name": "_DecodeFLCFrame", "matching": 1.0, "diff": ""}, {"address": "0x100bdd10", "name": "MxTickleClient::MxTickleClient", "matching": 1.0, "diff": ""}, {"address": "0x100bdd30", "name": "MxTickleManager::~MxTickleManager", "matching": 1.0, "diff": ""}, {"address": "0x100bdde0", "name": "MxTickleManager::Tickle", "matching": 0.5255474452554745, "diff": "--- \n\n+++ \n\n@@ -4,66 +4,65 @@\n\n push edi\n mov esi, ecx\n push ebp\n call Timer (FUNCTION)\n cmp byte ptr [eax + 0xc], 0\n je 0x8\n mov edi, dword ptr [MxTimer::g_lastTimeTimerStarted (DATA)]\n jmp 0x9\n mov edi, dword ptr [MxTimer::g_lastTimeCalculated (DATA)]\n sub edi, dword ptr [eax + 8]\n-mov ecx, dword ptr [esi + 0xc]\n-mov eax, dword ptr [ecx]\n-mov ebp, eax\n-cmp eax, ecx\n-je 0x66\n-mov ebx, dword ptr [ebp + 8]\n-test byte ptr [ebx + 0xc], 1\n-je 0x34\n-lea ecx, [ebp + 4]\n-mov dword ptr [esp + 0x10], ebp\n-mov eax, ebp\n-mov ebp, dword ptr [ebp]\n+mov eax, dword ptr [esi + 0xc]\n+mov ecx, dword ptr [eax]\n+mov dword ptr [esp + 0x10], ecx\n+cmp ecx, eax\n+je 0x7b\n+mov ebx, 1\n+mov eax, dword ptr [esp + 0x10]\n+mov ebp, dword ptr [eax + 8]\n+test byte ptr [ebp + 0xc], bl\n+je 0x35\n+mov ecx, dword ptr [eax]\n+mov dword ptr [esp + 0x14], eax\n+mov dword ptr [esp + 0x10], ecx\n+lea ecx, [eax + 4]\n+mov eax, dword ptr [eax]\n mov edx, dword ptr [ecx]\n-mov eax, dword ptr [eax]\n mov dword ptr [edx], eax\n mov edx, dword ptr [ecx]\n-mov eax, dword ptr [esp + 0x10]\n+mov eax, dword ptr [esp + 0x14]\n push eax\n mov ecx, dword ptr [eax]\n mov dword ptr [ecx + 4], edx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 0x10]\n-push ebx\n+push ebp\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-jmp 0x24\n-mov ebp, dword ptr [ebp]\n-cmp dword ptr [ebx + 8], edi\n+jmp 0x2c\n+mov eax, dword ptr [esp + 0x10]\n+cmp dword ptr [ebp + 8], edi\n+mov ecx, dword ptr [eax]\n+mov dword ptr [esp + 0x10], ecx\n jle 0x8\n-mov eax, dword ptr [ebx + 4]\n+mov eax, dword ptr [ebp + 4]\n neg eax\n-mov dword ptr [ebx + 8], eax\n-mov eax, dword ptr [ebx + 4]\n-add eax, dword ptr [ebx + 8]\n+mov dword ptr [ebp + 8], eax\n+mov eax, dword ptr [ebp + 4]\n+add eax, dword ptr [ebp + 8]\n cmp eax, edi\n-jge 0xa\n-mov ecx, dword ptr [ebx]\n+jge 0xb\n+mov ecx, dword ptr [ebp]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 8]\n-mov dword ptr [ebx + 8], edi\n-cmp dword ptr [esi + 0xc], ebp\n-jne -0x66\n+mov dword ptr [ebp + 8], edi\n+mov eax, dword ptr [esp + 0x10]\n+cmp dword ptr [esi + 0xc], eax\n+jne -0x76\n xor eax, eax\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 8\n ret \n-mov eax, dword ptr fs:[0]\n-push ebp\n-mov ebp, esp\n-push -1\n-push <OFFSET5>\n-push eax"}, {"address": "0x100bde80", "name": "MxTickleManager::RegisterClient", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -31,33 +31,33 @@\n\n call MxTickleClient::MxTickleClient (FUNCTION)\n mov dword ptr [ebp - 0x14], eax\n jmp 0x7\n mov dword ptr [ebp - 0x14], 0\n mov dword ptr [ebp - 4], 0xffffffff\n cmp dword ptr [ebp - 0x14], 0\n je 0x3c\n mov eax, dword ptr [esi + 0xc]\n push 0xc\n mov dword ptr [ebp - 0x10], eax\n-lea edi, [eax + 4]\n-mov ebx, dword ptr [edi]\n+lea ebx, [eax + 4]\n+mov edi, dword ptr [ebx]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n-test ebx, ebx\n+test edi, edi\n je 0xa\n mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [eax], ecx\n-mov dword ptr [eax + 4], ebx\n+mov dword ptr [eax + 4], edi\n jmp 0x5\n mov dword ptr [eax], eax\n mov dword ptr [eax + 4], eax\n-mov dword ptr [edi], eax\n+mov dword ptr [ebx], eax\n mov ecx, dword ptr [eax + 4]\n mov dword ptr [ecx], eax\n add eax, 8\n je 0x5\n mov ecx, dword ptr [ebp - 0x14]\n mov dword ptr [eax], ecx\n inc dword ptr [esi + 0x10]\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax"}, {"address": "0x100bdf60", "name": "MxTickleManager::UnregisterClient", "matching": 1.0, "diff": ""}, {"address": "0x100bdfa0", "name": "MxTickleManager::SetClientTickleInterval", "matching": 1.0, "diff": ""}, {"address": "0x100be000", "name": "MxTickleManager::GetClientTickleInterval", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,28 +1,28 @@\n\n sub esp, 4\n mov edx, dword ptr [ecx + 0xc]\n push esi\n mov eax, dword ptr [edx]\n mov dword ptr [esp + 4], eax\n-cmp eax, edx\n+cmp edx, eax\n je 0x28\n mov ecx, dword ptr [esp + 0xc]\n mov esi, 1\n mov eax, dword ptr [esp + 4]\n mov eax, dword ptr [eax + 8]\n cmp dword ptr [eax], ecx\n jne 0x6\n test word ptr [eax + 0xc], si\n je 0x1a\n mov eax, dword ptr [esp + 4]\n mov eax, dword ptr [eax]\n mov dword ptr [esp + 4], eax\n-cmp eax, edx\n+cmp edx, eax\n jne -0x1f\n mov eax, 0x80000000\n pop esi\n add esp, 4\n ret 4\n mov eax, dword ptr [eax + 4]\n pop esi\n add esp, 4\n ret 4"}, {"address": "0x100be050", "name": "MxDSChunk::MxDSChunk", "matching": 1.0, "diff": ""}, {"address": "0x100be0c0", "name": "MxDSChunk::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100be0d0", "name": "MxDSChunk::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100be150", "name": "MxDSChunk::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100be170", "name": "MxDSChunk::~MxDSChunk", "matching": 1.0, "diff": ""}, {"address": "0x100be1e0", "name": "MxDSChunk::GetHeaderSize", "matching": 1.0, "diff": ""}, {"address": "0x100be1f0", "name": "MxVideoManager::MxVideoManager", "matching": 1.0, "diff": ""}, {"address": "0x100be270", "name": "MxVideoManager::UpdateView", "matching": 1.0, "diff": ""}, {"address": "0x100be280", "name": "MxVideoManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100be2a0", "name": "MxVideoManager::~MxVideoManager", "matching": 1.0, "diff": ""}, {"address": "0x100be320", "name": "MxVideoManager::Init", "matching": 1.0, "diff": ""}, {"address": "0x100be340", "name": "MxVideoManager::Destroy", "matching": 0.7846153846153846, "diff": "--- \n\n+++ \n\n@@ -1,65 +1,65 @@\n\n push esi\n push edi\n-mov esi, ecx\n+mov edi, ecx\n mov ecx, dword ptr [ecx + 0xc]\n test ecx, ecx\n je 0x15\n call MxThread::Terminate (FUNCTION)\n-mov ecx, dword ptr [esi + 0xc]\n+mov ecx, dword ptr [edi + 0xc]\n test ecx, ecx\n je 0x16\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 4]\n jmp 0xd\n call TickleManager (FUNCTION)\n-push esi\n+push edi\n mov edx, dword ptr [eax]\n mov ecx, eax\n call dword ptr [edx + 0x18]\n-lea edi, [esi + 0x10]\n-mov ecx, edi\n+lea esi, [edi + 0x10]\n+mov ecx, esi\n call MxCriticalSection::Enter (FUNCTION)\n-mov ecx, dword ptr [esi + 0x58]\n+mov ecx, dword ptr [edi + 0x58]\n test ecx, ecx\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n-mov ecx, dword ptr [esi + 0x5c]\n+mov ecx, dword ptr [edi + 0x5c]\n test ecx, ecx\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n-mov ecx, dword ptr [esi + 0x3c]\n+mov ecx, dword ptr [edi + 0x3c]\n test ecx, ecx\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n-cmp byte ptr [esi + 0x60], 0\n+cmp byte ptr [edi + 0x60], 0\n je 0x1a\n-mov eax, dword ptr [esi + 0x50]\n+mov eax, dword ptr [edi + 0x50]\n test eax, eax\n je 0x6\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 8]\n-mov eax, dword ptr [esi + 0x54]\n+mov eax, dword ptr [edi + 0x54]\n test eax, eax\n je 0x6\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 8]\n+mov ecx, edi\n+call MxVideoManager::Init (FUNCTION)\n mov ecx, esi\n-call MxVideoManager::Init (FUNCTION)\n-mov ecx, edi\n call MxCriticalSection::Leave (FUNCTION)\n cmp byte ptr [esp + 0xc], 0\n jne 0x7\n-mov ecx, esi\n+mov ecx, edi\n call MxMediaManager::Destroy (FUNCTION)\n pop edi\n pop esi\n ret 4"}, {"address": "0x100be3e0", "name": "MxVideoManager::UpdateRegion", "matching": 1.0, "diff": ""}, {"address": "0x100be440", "name": "MxVideoManager::SortPresenterList", "matching": 0.9195402298850575, "diff": "--- \n\n+++ \n\n@@ -5,21 +5,21 @@\n\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 0x28\n push ebx\n push esi\n push edi\n mov esi, ecx\n mov edi, dword ptr [ecx + 8]\n cmp dword ptr [edi + 8], 1\n-jbe 0x12b\n+jbe 0x12c\n lea ecx, [ebp - 0x2c]\n xor ebx, ebx\n call MxCore::MxCore (FUNCTION)\n mov eax, 0xffffffff\n mov dword ptr [ebp - 4], ebx\n mov dword ptr [ebp - 0x24], edi\n mov dword ptr [ebp - 0x20], ebx\n mov dword ptr [ebp - 0x2c], MxListCursor<MxPresenter *> (VTABLE)\n mov dword ptr [ebp - 4], 1\n mov dword ptr [ebp - 0x2c], MxPtrListCursor<MxPresenter> (VTABLE)\n@@ -34,29 +34,29 @@\n\n mov dword ptr [ebp - 0x10], ebx\n mov dword ptr [ebp - 0x1c], MxListCursor<MxPresenter *> (VTABLE)\n mov byte ptr [ebp - 4], 5\n mov dword ptr [ebp - 0x1c], MxPtrListCursor<MxPresenter> (VTABLE)\n mov byte ptr [ebp - 4], 6\n mov dword ptr [ebp - 0x1c], MxPresenterListCursor (VTABLE)\n mov eax, dword ptr [esi + 8]\n mov byte ptr [ebp - 4], 7\n mov ecx, dword ptr [eax + 8]\n dec ecx\n-je 0x91\n+je 0x92\n mov eax, dword ptr [ebp - 0x14]\n mov dword ptr [ebp - 0x20], ebx\n test ecx, ecx\n mov edx, dword ptr [eax + 0x10]\n mov al, 1\n mov dword ptr [ebp - 0x10], edx\n mov edx, ecx\n-je 0x72\n+je 0x73\n cmp dword ptr [ebp - 0x20], ebx\n jne 0x8\n mov esi, dword ptr [ebp - 0x24]\n mov edi, dword ptr [esi + 0x10]\n jmp 0x6\n mov esi, dword ptr [ebp - 0x20]\n mov edi, dword ptr [esi + 8]\n mov dword ptr [ebp - 0x20], edi\n cmp dword ptr [ebp - 0x20], ebx\n je 0x8\n@@ -69,42 +69,42 @@\n\n mov edi, dword ptr [esi + 0x10]\n jmp 0x6\n mov esi, dword ptr [ebp - 0x10]\n mov edi, dword ptr [esi + 8]\n mov dword ptr [ebp - 0x10], edi\n cmp dword ptr [ebp - 0x10], ebx\n je 0x8\n mov esi, dword ptr [ebp - 0x10]\n mov edi, dword ptr [esi]\n mov dword ptr [ebp - 0x34], edi\n-mov esi, dword ptr [ebp - 0x34]\n-mov edi, dword ptr [ebp - 0x30]\n+mov esi, dword ptr [ebp - 0x30]\n+mov edi, dword ptr [ebp - 0x34]\n mov edi, dword ptr [edi + 0x18]\n cmp dword ptr [esi + 0x18], edi\n-jle 0x1b\n+jge 0x1c\n cmp dword ptr [ebp - 0x20], ebx\n-je 0x7\n-mov eax, esi\n+je 0x8\n+mov eax, dword ptr [ebp - 0x34]\n mov esi, dword ptr [ebp - 0x20]\n mov dword ptr [esi], eax\n cmp dword ptr [ebp - 0x10], ebx\n je 0x8\n mov eax, dword ptr [ebp - 0x30]\n mov esi, dword ptr [ebp - 0x10]\n mov dword ptr [esi], eax\n xor al, al\n dec edx\n-jne -0x72\n+jne -0x73\n test al, al\n jne 0x7\n dec ecx\n-jne -0x91\n+jne -0x92\n mov byte ptr [ebp - 4], 3\n call <OFFSET6>\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET7>\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax\n pop esi\n pop ebx\n mov esp, ebp\n@@ -121,11 +121,10 @@\n\n lea ecx, [ebp - 0x2c]\n jmp MxCore::~MxCore (FUNCTION)\n lea ecx, [ebp - 0x2c]\n jmp MxListCursor<MxPresenter *>::~MxListCursor<MxPresenter *> (FUNCTION)\n lea ecx, [ebp - 0x2c]\n jmp MxPtrListCursor<MxPresenter>::~MxPtrListCursor<MxPresenter> (FUNCTION)\n mov eax, <OFFSET12>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x2c]\n jmp MxPresenterListCursor::~MxPresenterListCursor (FUNCTION)\n-int3 "}, {"address": "0x100be600", "name": "MxVideoManager::VTable0x28", "matching": 1.0, "diff": ""}, {"address": "0x100be820", "name": "MxVideoManager::Create", "matching": 1.0, "diff": ""}, {"address": "0x100bea50", "name": "MxVideoManager::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100bea60", "name": "MxVideoManager::InvalidateRect", "matching": 1.0, "diff": ""}, {"address": "0x100bea90", "name": "MxVideoManager::Tickle", "matching": 1.0, "diff": ""}, {"address": "0x100bebe0", "name": "MxVideoManager::RealizePalette", "matching": 1.0, "diff": ""}, {"address": "0x100bec40", "name": "MxVideoParamFlags::MxVideoParamFlags", "matching": 1.0, "diff": ""}, {"address": "0x100bec70", "name": "MxVideoParam::MxVideoParam", "matching": 1.0, "diff": ""}, {"address": "0x100beca0", "name": "MxVideoParam::MxVideoParam", "matching": 1.0, "diff": ""}, {"address": "0x100becf0", "name": "MxVideoParam::MxVideoParam", "matching": 1.0, "diff": ""}, {"address": "0x100bed50", "name": "MxVideoParam::~MxVideoParam", "matching": 1.0, "diff": ""}, {"address": "0x100bed70", "name": "MxVideoParam::SetDeviceName", "matching": 1.0, "diff": ""}, {"address": "0x100bede0", "name": "MxVideoParam::operator=", "matching": 1.0, "diff": ""}, {"address": "0x100bee30", "name": "MxPalette::MxPalette", "matching": 1.0, "diff": ""}, {"address": "0x100beeb0", "name": "MxPalette::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100beed0", "name": "MxPalette::MxPalette", "matching": 1.0, "diff": ""}, {"address": "0x100bef90", "name": "MxPalette::~MxPalette", "matching": 1.0, "diff": ""}, {"address": "0x100bf000", "name": "MxPalette::CreateNativePalette", "matching": 1.0, "diff": ""}, {"address": "0x100bf0b0", "name": "MxPalette::Clone", "matching": 0.8297872340425532, "diff": "--- \n\n+++ \n\n@@ -2,45 +2,45 @@\n\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n push ebx\n push esi\n push edi\n-mov esi, ecx\n+mov ebx, ecx\n push 0x414\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov edi, eax\n-mov ebx, 0\n+mov esi, 0\n mov dword ptr [ebp - 4], 0\n test edi, edi\n je 0x9\n mov ecx, edi\n call MxPalette::MxPalette (FUNCTION)\n-mov ebx, eax\n-lea eax, [ebx + 0xc]\n-mov ecx, esi\n+mov esi, eax\n+lea eax, [esi + 0xc]\n+mov ecx, ebx\n mov dword ptr [ebp - 4], 0xffffffff\n push eax\n call MxPalette::GetEntries (FUNCTION)\n-mov al, byte ptr [esi + 0x40c]\n+mov al, byte ptr [ebx + 0x40c]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n+mov byte ptr [esi + 0x40c], al\n+mov eax, esi\n pop esi\n-mov byte ptr [ebx + 0x40c], al\n-mov eax, ebx\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4"}, {"address": "0x100bf150", "name": "MxPalette::GetEntries", "matching": 1.0, "diff": ""}, {"address": "0x100bf170", "name": "MxPalette::SetEntries", "matching": 0.4293193717277487, "diff": "--- \n\n+++ \n\n@@ -1,95 +1,96 @@\n\n push ebx\n push esi\n push edi\n push ebp\n xor ebp, ebp\n cmp dword ptr [ecx + 8], ebp\n-je 0x140\n+je 0x12e\n lea edx, [ecx + 0xf]\n mov eax, 0xa\n mov byte ptr [edx], 0x80\n add edx, 4\n dec eax\n jne -0x9\n-mov edx, dword ptr [esp + 0x14]\n+mov esi, dword ptr [esp + 0x14]\n lea eax, [ecx + 0x37]\n mov edi, 0x7e\n-lea esi, [edx + 0x28]\n+lea edx, [esi + 0x28]\n mov byte ptr [eax], 0x44\n-add esi, 4\n+add edx, 4\n add eax, 4\n-mov bl, byte ptr [esi - 4]\n+mov bl, byte ptr [edx - 4]\n dec edi\n mov byte ptr [eax - 7], bl\n-mov bl, byte ptr [esi - 3]\n+mov bl, byte ptr [edx - 3]\n mov byte ptr [eax - 6], bl\n-mov bl, byte ptr [esi - 2]\n+mov bl, byte ptr [edx - 2]\n mov byte ptr [eax - 5], bl\n jne -0x1e\n-lea eax, [edx + 0x220]\n-lea esi, [ecx + 0x22f]\n-mov edi, 4\n-mov byte ptr [esi], 0x84\n+lea eax, [esi + 0x220]\n+lea edi, [ecx + 0x22f]\n+mov ebx, 4\n+mov byte ptr [edi], 0x84\n add eax, 4\n-add esi, 4\n-mov bl, byte ptr [eax - 4]\n-dec edi\n-mov byte ptr [esi - 7], bl\n-mov bl, byte ptr [eax - 3]\n-mov byte ptr [esi - 6], bl\n-mov bl, byte ptr [eax - 2]\n-mov byte ptr [esi - 5], bl\n+add edi, 4\n+mov dl, byte ptr [eax - 4]\n+dec ebx\n+mov byte ptr [edi - 7], dl\n+mov dl, byte ptr [eax - 3]\n+mov byte ptr [edi - 6], dl\n+mov dl, byte ptr [eax - 2]\n+mov byte ptr [edi - 5], dl\n jne -0x1e\n cmp byte ptr [ecx + 0x40c], 0\n jne 0x56\n mov byte ptr [ecx + 0x23f], 0x44\n-mov al, byte ptr [edx + 0x230]\n+mov al, byte ptr [esi + 0x230]\n mov byte ptr [ecx + 0x23c], al\n-mov bl, byte ptr [edx + 0x231]\n-mov byte ptr [ecx + 0x23d], bl\n-mov al, byte ptr [edx + 0x232]\n-mov byte ptr [ecx + 0x23e], al\n+mov dl, byte ptr [esi + 0x231]\n+mov byte ptr [ecx + 0x23d], dl\n+mov bl, byte ptr [esi + 0x232]\n mov byte ptr [ecx + 0x243], 0x84\n-mov bl, byte ptr [edx + 0x234]\n-mov byte ptr [ecx + 0x240], bl\n-mov al, byte ptr [edx + 0x235]\n-mov byte ptr [ecx + 0x241], al\n-mov bl, byte ptr [edx + 0x236]\n+mov byte ptr [ecx + 0x23e], bl\n+mov al, byte ptr [esi + 0x234]\n+mov byte ptr [ecx + 0x240], al\n+mov dl, byte ptr [esi + 0x235]\n+mov byte ptr [ecx + 0x241], dl\n+mov bl, byte ptr [esi + 0x236]\n mov byte ptr [ecx + 0x242], bl\n-mov eax, 0x8e\n-cmp eax, 0xf6\n-jge 0x2e\n-lea esi, [edx + eax*4]\n-mov edi, 0xf6\n-lea edx, [ecx + eax*4 + 0xf]\n-sub edi, eax\n-add eax, edi\n-mov byte ptr [edx], 0x84\n+add esi, 0x238\n+lea edi, [ecx + 0x247]\n+mov eax, 0x68\n+mov byte ptr [edi], 0x84\n add esi, 4\n+add edi, 4\n+mov dl, byte ptr [esi - 4]\n+dec eax\n+mov byte ptr [edi - 7], dl\n+mov bl, byte ptr [esi - 3]\n+mov byte ptr [edi - 6], bl\n+mov dl, byte ptr [esi - 2]\n+mov byte ptr [edi - 5], dl\n+jne -0x1e\n+lea edx, [ecx + 0x3e7]\n+mov eax, 0xa\n+mov byte ptr [edx], 0x80\n add edx, 4\n-mov bl, byte ptr [esi - 4]\n-dec edi\n-mov byte ptr [edx - 7], bl\n-mov bl, byte ptr [esi - 3]\n-mov byte ptr [edx - 6], bl\n-mov bl, byte ptr [esi - 2]\n-mov byte ptr [edx - 5], bl\n-jne -0x1e\n-cmp eax, 0x100\n-jge 0x14\n-lea esi, [ecx + eax*4 + 0xf]\n-mov edx, 0x100\n-sub edx, eax\n-mov byte ptr [esi], 0x80\n-add esi, 4\n-dec edx\n+dec eax\n jne -0x9\n mov eax, dword ptr [ecx + 8]\n add ecx, 0xc\n push ecx\n push 0x100\n push 0\n mov ebx, dword ptr [eax]\n push 0\n push eax\n call dword ptr [ebx + 0x18]\n+test eax, eax\n+je 0x5\n+mov ebp, 0xffffffff\n+mov eax, ebp\n+pop ebp\n+pop edi\n+pop esi\n+pop ebx\n+ret 4"}, {"address": "0x100bf2d0", "name": "MxPalette::SetSkyColor", "matching": 1.0, "diff": ""}, {"address": "0x100bf330", "name": "MxPalette::Detach", "matching": 1.0, "diff": ""}, {"address": "0x100bf340", "name": "MxPalette::operator==", "matching": 1.0, "diff": ""}, {"address": "0x100bf390", "name": "MxPalette::ApplySystemEntriesToPalette", "matching": 1.0, "diff": ""}, {"address": "0x100bf420", "name": "MxPalette::GetDefaultPalette", "matching": 1.0, "diff": ""}, {"address": "0x100bf490", "name": "MxPalette::Reset", "matching": 1.0, "diff": ""}, {"address": "0x100bf4f0", "name": "MxScheduler::GetInstance", "matching": 1.0, "diff": ""}, {"address": "0x100bf500", "name": "MxScheduler::StartMultiTasking", "matching": 1.0, "diff": ""}, {"address": "0x100bf510", "name": "MxThread::MxThread", "matching": 1.0, "diff": ""}, {"address": "0x100bf580", "name": "MxThread::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100bf5a0", "name": "MxThread::~MxThread", "matching": 1.0, "diff": ""}, {"address": "0x100bf610", "name": "MxThread::Start", "matching": 1.0, "diff": ""}, {"address": "0x100bf660", "name": "MxThread::Sleep", "matching": 1.0, "diff": ""}, {"address": "0x100bf670", "name": "MxThread::Terminate", "matching": 1.0, "diff": ""}, {"address": "0x100bf680", "name": "MxThread::ThreadProc", "matching": 1.0, "diff": ""}, {"address": "0x100bf690", "name": "MxThread::Run", "matching": 1.0, "diff": ""}, {"address": "0x100bf6a0", "name": "MxDSObject::MxDSObject", "matching": 1.0, "diff": ""}, {"address": "0x100bf730", "name": "MxDSObject::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100bf740", "name": "MxDSObject::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100bf7c0", "name": "MxDSObject::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100bf7e0", "name": "MxDSObject::~MxDSObject", "matching": 1.0, "diff": ""}, {"address": "0x100bf870", "name": "MxDSObject::CopyFrom", "matching": 1.0, "diff": ""}, {"address": "0x100bf8c0", "name": "MxDSObject::operator=", "matching": 1.0, "diff": ""}, {"address": "0x100bf8e0", "name": "MxDSObject::SetObjectName", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,48 +1,48 @@\n\n push ebx\n push esi\n mov eax, dword ptr [ecx + 0x18]\n push edi\n-mov ebx, ecx\n-mov esi, dword ptr [esp + 0x10]\n-cmp esi, eax\n+mov esi, ecx\n+mov ebx, dword ptr [esp + 0x10]\n+cmp ebx, eax\n je 0x5a\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-test esi, esi\n+test ebx, ebx\n je 0x46\n-mov edi, esi\n+mov edi, ebx\n mov ecx, 0xffffffff\n sub eax, eax\n repne scasb al, byte ptr es:[edi]\n not ecx\n push ecx\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov edx, eax\n-mov dword ptr [ebx + 0x18], eax\n+mov dword ptr [esi + 0x18], eax\n test edx, edx\n je 0x2e\n-mov edi, esi\n+mov edi, ebx\n mov ecx, 0xffffffff\n sub eax, eax\n repne scasb al, byte ptr es:[edi]\n not ecx\n sub edi, ecx\n mov eax, ecx\n shr ecx, 2\n mov esi, edi\n mov edi, edx\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n pop edi\n pop esi\n pop ebx\n ret 4\n-mov dword ptr [ebx + 0x18], 0\n+mov dword ptr [esi + 0x18], 0\n pop edi\n pop esi\n pop ebx\n ret 4"}, {"address": "0x100bf950", "name": "MxDSObject::SetSourceName", "matching": 1.0, "diff": ""}, {"address": "0x100bf9c0", "name": "MxDSObject::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x100bf9d0", "name": "MxDSObject::GetSizeOnDisk", "matching": 1.0, "diff": ""}, {"address": "0x100bfa20", "name": "MxDSObject::Deserialize", "matching": 1.0, "diff": ""}, {"address": "0x100bfa80", "name": "MxStreamListMxDSAction::Find", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,21 +1,21 @@\n\n sub esp, 4\n push ebx\n push esi\n mov edx, dword ptr [ecx + 4]\n push edi\n push ebp\n mov esi, ecx\n xor edi, edi\n mov eax, dword ptr [edx]\n mov dword ptr [esp + 0x10], eax\n-cmp edx, eax\n+cmp eax, edx\n je 0x50\n mov ebx, dword ptr [esp + 0x18]\n mov ecx, dword ptr [ebx + 0x1c]\n cmp ecx, -1\n je 0xc\n mov eax, dword ptr [esp + 0x10]\n mov ebp, dword ptr [eax + 8]\n cmp dword ptr [ebp + 0x1c], ecx\n jne 0x2a\n mov bp, word ptr [ebx + 0x24]\n@@ -27,21 +27,21 @@\n\n mov eax, dword ptr [eax + 8]\n cmp word ptr [eax + 0x24], bp\n jne 0xd\n cmp bp, -3\n mov eax, dword ptr [esp + 0x10]\n mov edi, dword ptr [eax + 8]\n jne 0xe\n mov eax, dword ptr [esp + 0x10]\n mov ebp, dword ptr [eax]\n mov dword ptr [esp + 0x10], ebp\n-cmp edx, ebp\n+cmp ebp, edx\n jne -0x49\n cmp byte ptr [esp + 0x1c], 0\n je 0x29\n test edi, edi\n je 0x25\n mov edx, dword ptr [esp + 0x10]\n mov eax, dword ptr [esp + 0x10]\n push eax\n mov ecx, dword ptr [edx + 4]\n add edx, 4"}, {"address": "0x100bfb30", "name": "DeserializeDSObjectDispatch", "matching": 0.8955752212389381, "diff": "--- \n\n+++ \n\n@@ -3,28 +3,28 @@\n\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n push ebx\n push esi\n push edi\n mov esi, dword ptr [ebp + 8]\n-mov ecx, dword ptr [esi]\n-mov ax, word ptr [ecx]\n-add ecx, 2\n-movzx eax, ax\n-mov dword ptr [esi], ecx\n+mov eax, dword ptr [esi]\n+mov cx, word ptr [eax]\n+add eax, 2\n+mov dword ptr [esi], eax\n+movzx eax, cx\n cmp eax, 0xb\n ja 0x7\n-jmp dword ptr [eax*4 + 0x100bfea0]\n+jmp dword ptr [eax*4 + 0x10047ed0]\n xor eax, eax\n mov ecx, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], ecx\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n push 0x2c\n@@ -250,38 +250,29 @@\n\n mov eax, ebx\n jmp -0x31c\n mov eax, <OFFSET16>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n nop \n-jge -0x5\n-or edx, dword ptr [eax]\n-mov esi, 0x2100bfb\n-cld \n-or edx, dword ptr [eax]\n-inc esi\n-cld \n-or edx, dword ptr [eax]\n-mov bh, ah\n-or edx, dword ptr [eax]\n-into \n-cld \n-or edx, dword ptr [eax]\n-adc bh, ch\n-or edx, dword ptr [eax]\n-push ecx\n-std \n-or edx, dword ptr [eax]\n-nop \n-std \n-or edx, dword ptr [eax]\n-iretd \n-std \n-or edx, dword ptr [eax]\n-pop es\n-dec byte ptr [ebx]\n-adc byte ptr [edi], bh\n-dec byte ptr [ebx]\n+lodsd eax, dword ptr [esi]\n+jnp 0x4\n+adc dh, ch\n+jnp 0x4\n+adc byte ptr [edx], dh\n+jl 0x4\n+adc byte ptr [esi + 0x7c], dh\n+add al, 0x10\n+mov edx, 0xfe10047c\n+jl 0x4\n+adc byte ptr [edx + 0x7d], al\n+add al, 0x10\n+cmp dword ptr [ebp + 4], 0x47dc010\n+adc bh, bh\n+jge 0x4\n+adc byte ptr [edi], dh\n+jle 0x4\n+adc byte ptr [edi + 0x7e], ch\n+add al, 0x10"}, {"address": "0x100bfed0", "name": "MxDSFile::~MxDSFile", "matching": 1.0, "diff": ""}, {"address": "0x100bff60", "name": "MxDSSource::~MxDSSource", "matching": 1.0, "diff": ""}, {"address": "0x100bffd0", "name": "MxDSSource::ReadToBuffer", "matching": 1.0, "diff": ""}, {"address": "0x100bfff0", "name": "MxDSSource::GetLengthInDWords", "matching": 1.0, "diff": ""}, {"address": "0x100c0000", "name": "MxDSSource::GetBuffer", "matching": 1.0, "diff": ""}, {"address": "0x100c0010", "name": "MxDSSource::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c0020", "name": "MxDSSource::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c00a0", "name": "MxDSSource::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c0120", "name": "MxDSFile::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c0130", "name": "MxDSFile::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c01e0", "name": "MxDSFile::`scalar deleting destructor'", "matching": 0.0, "diff": "--- \n\n+++ \n\n@@ -1,8 +1,11 @@\n\n-mov eax, dword ptr fs:[0]\n-push ebp\n-mov ebp, esp\n-push -1\n-push <OFFSET1>\n-mov dword ptr [ecx], MxDSFile (VTABLE)\n-push eax\n-mov dword ptr fs:[0], esp\n+push esi\n+mov esi, ecx\n+call MxDSFile::~MxDSFile (FUNCTION)\n+test byte ptr [esp + 8], 1\n+je 0x9\n+push esi\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+mov eax, esi\n+pop esi\n+ret 4"}, {"address": "0x100c0280", "name": "CreateStreamObject", "matching": 1.0, "diff": ""}, {"address": "0x100c0360", "name": "MxEventManager::MxEventManager", "matching": 1.0, "diff": ""}, {"address": "0x100c03d0", "name": "MxEventManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c03f0", "name": "MxEventManager::~MxEventManager", "matching": 1.0, "diff": ""}, {"address": "0x100c0450", "name": "MxEventManager::Init", "matching": 1.0, "diff": ""}, {"address": "0x100c0460", "name": "MxEventManager::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c04a0", "name": "MxEventManager::Create", "matching": 1.0, "diff": ""}, {"address": "0x100c0590", "name": "MxEventManager::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c05a0", "name": "MxMusicManager::MxMusicManager", "matching": 1.0, "diff": ""}, {"address": "0x100c0610", "name": "MxMusicManager::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c0630", "name": "MxMusicManager::~MxMusicManager", "matching": 1.0, "diff": ""}, {"address": "0x100c0690", "name": "MxMusicManager::Init", "matching": 1.0, "diff": ""}, {"address": "0x100c06a0", "name": "MxMusicManager::InitData", "matching": 1.0, "diff": ""}, {"address": "0x100c06c0", "name": "MxMusicManager::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c0720", "name": "MxMusicManager::ResetStream", "matching": 1.0, "diff": ""}, {"address": "0x100c07e0", "name": "MxMusicManager::ResetBuffer", "matching": 1.0, "diff": ""}, {"address": "0x100c07f0", "name": "MxMusicManager::SetMIDIVolume", "matching": 1.0, "diff": ""}, {"address": "0x100c0820", "name": "MxMusicManager::MidiCallbackProc", "matching": 1.0, "diff": ""}, {"address": "0x100c0840", "name": "MxMusicManager::Create", "matching": 1.0, "diff": ""}, {"address": "0x100c0930", "name": "MxMusicManager::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c0940", "name": "MxMusicManager::SetVolume", "matching": 1.0, "diff": ""}, {"address": "0x100c0970", "name": "MxMusicManager::SetMultiplier", "matching": 1.0, "diff": ""}, {"address": "0x100c09a0", "name": "MxMusicManager::CalculateVolume", "matching": 1.0, "diff": ""}, {"address": "0x100c09c0", "name": "MxMusicManager::InitializeMIDI", "matching": 1.0, "diff": ""}, {"address": "0x100c0b20", "name": "MxMusicManager::DeinitializeMIDI", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,37 +1,37 @@\n\n push esi\n push edi\n-lea esi, [ecx + 0x10]\n-mov edi, ecx\n-mov ecx, esi\n+lea edi, [ecx + 0x10]\n+mov esi, ecx\n+mov ecx, edi\n call MxCriticalSection::Enter (FUNCTION)\n-cmp byte ptr [edi + 0x34], 0\n+cmp byte ptr [esi + 0x34], 0\n je 0x49\n-mov byte ptr [edi + 0x34], 0\n-mov eax, dword ptr [edi + 0x30]\n+mov byte ptr [esi + 0x34], 0\n+mov eax, dword ptr [esi + 0x30]\n push eax\n call dword ptr [__imp__midiStreamStop@4 (POINTER)]\n push 0x40\n-mov ecx, dword ptr [edi + 0x4c]\n+mov ecx, dword ptr [esi + 0x4c]\n push ecx\n-mov edx, dword ptr [edi + 0x30]\n+mov edx, dword ptr [esi + 0x30]\n push edx\n call dword ptr [__imp__midiOutUnprepareHeader@12 (POINTER)]\n-mov ecx, dword ptr [edi + 0x54]\n-mov edx, dword ptr [edi + 0x30]\n+mov ecx, dword ptr [esi + 0x54]\n+mov edx, dword ptr [esi + 0x30]\n push ecx\n push edx\n call dword ptr [__imp__midiOutSetVolume@8 (POINTER)]\n-mov ecx, dword ptr [edi + 0x30]\n+mov ecx, dword ptr [esi + 0x30]\n push ecx\n call dword ptr [__imp__midiStreamClose@4 (POINTER)]\n-mov ecx, dword ptr [edi + 0x4c]\n+mov ecx, dword ptr [esi + 0x4c]\n push ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n+mov ecx, esi\n+call MxMusicManager::InitData (FUNCTION)\n mov ecx, edi\n-call MxMusicManager::InitData (FUNCTION)\n-mov ecx, esi\n call MxCriticalSection::Leave (FUNCTION)\n pop edi\n pop esi\n ret "}, {"address": "0x100c0b90", "name": "MxStreamController::MxStreamController", "matching": 1.0, "diff": ""}, {"address": "0x100c0d60", "name": "list<MxDSAction *,allocator<MxDSAction *> >::~list<MxDSAction *,allocator<MxDSAction *> >", "matching": 1.0, "diff": ""}, {"address": "0x100c0dd0", "name": "list<MxDSSubscriber *,allocator<MxDSSubscriber *> >::~list<MxDSSubscriber *,allocator<MxDSSubscriber *> >", "matching": 0.972972972972973, "diff": "--- \n\n+++ \n\n@@ -16,21 +16,21 @@\n\n mov eax, dword ptr [eax]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [edx]\n mov eax, dword ptr [esp + 8]\n push eax\n mov edx, dword ptr [eax]\n mov dword ptr [edx + 4], ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 8]\n-cmp dword ptr [esp + 0x10], edi\n+cmp edi, dword ptr [esp + 0x10]\n jne -0x2e\n mov eax, dword ptr [esi + 4]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [esi + 4], 0\n add esp, 4\n mov dword ptr [esi + 8], 0\n pop edi\n pop esi\n add esp, 0xc"}, {"address": "0x100c0e40", "name": "list<MxDSSubscriber *,allocator<MxDSSubscriber *> >::_Buynode", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,13 +1,13 @@\n\n push 0xc\n call ??2@YAPAXI@Z (FUNCTION)\n-mov edx, dword ptr [esp + 0xc]\n+mov ecx, dword ptr [esp + 0xc]\n add esp, 4\n-test edx, edx\n+test ecx, ecx\n je 0xc\n-mov ecx, dword ptr [esp + 4]\n-mov dword ptr [eax], ecx\n-mov dword ptr [eax + 4], edx\n+mov edx, dword ptr [esp + 4]\n+mov dword ptr [eax], edx\n+mov dword ptr [eax + 4], ecx\n ret 8\n mov dword ptr [eax], eax\n mov dword ptr [eax + 4], eax\n ret 8"}, {"address": "0x100c0e70", "name": "list<MxNextActionDataStart *,allocator<MxNextActionDataStart *> >::~list<MxNextActionDataStart *,allocator<MxNextActionDataStart *> >", "matching": 1.0, "diff": ""}, {"address": "0x100c0ee0", "name": "list<MxNextActionDataStart *,allocator<MxNextActionDataStart *> >::_Buynode", "matching": 1.0, "diff": ""}, {"address": "0x100c0f10", "name": "MxStreamController::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c0f20", "name": "MxStreamController::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c0fa0", "name": "MxStreamController::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c0fc0", "name": "MxStreamListMxDSSubscriber::~MxStreamListMxDSSubscriber", "matching": 1.0, "diff": ""}, {"address": "0x100c1010", "name": "MxStreamListMxDSAction::~MxStreamListMxDSAction", "matching": 1.0, "diff": ""}, {"address": "0x100c1060", "name": "MxStreamListMxNextActionDataStart::~MxStreamListMxNextActionDataStart", "matching": 1.0, "diff": ""}, {"address": "0x100c10b0", "name": "MxStreamList<MxDSSubscriber *>::~MxStreamList<MxDSSubscriber *>", "matching": 1.0, "diff": ""}, {"address": "0x100c1100", "name": "MxStreamList<MxDSAction *>::~MxStreamList<MxDSAction *>", "matching": 1.0, "diff": ""}, {"address": "0x100c1150", "name": "MxStreamList<MxNextActionDataStart *>::~MxStreamList<MxNextActionDataStart *>", "matching": 1.0, "diff": ""}, {"address": "0x100c11a0", "name": "List<MxDSSubscriber *>::~List<MxDSSubscriber *>", "matching": 1.0, "diff": ""}, {"address": "0x100c11f0", "name": "List<MxDSAction *>::~List<MxDSAction *>", "matching": 1.0, "diff": ""}, {"address": "0x100c1240", "name": "List<MxNextActionDataStart *>::~List<MxNextActionDataStart *>", "matching": 1.0, "diff": ""}, {"address": "0x100c1290", "name": "MxStreamController::~MxStreamController", "matching": 0.5396825396825397, "diff": "--- \n\n+++ \n\n@@ -1,27 +1,27 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n mov dword ptr [ecx], MxStreamController (VTABLE)\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 0xa4\n+sub esp, 0xa8\n mov dword ptr [ebp - 0x10], ecx\n push esi\n xor esi, esi\n add ecx, 8\n push ecx\n mov dword ptr [ebp - 4], esi\n mov byte ptr [ebp - 4], 6\n-lea ecx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x20]\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n mov byte ptr [ebp - 4], 7\n mov eax, dword ptr [ebp - 0x10]\n cmp dword ptr [eax + 0x38], esi\n je 0x43\n mov ecx, dword ptr [eax + 0x34]\n mov eax, dword ptr [ecx]\n mov dword ptr [ebp - 0x14], eax\n mov edx, dword ptr [eax + 8]\n mov dword ptr [ebp - 0x18], edx\n@@ -42,151 +42,145 @@\n\n je -0x3d\n push 1\n mov eax, dword ptr [ebp - 0x18]\n mov ecx, dword ptr [ebp - 0x18]\n mov eax, dword ptr [eax]\n call dword ptr [eax]\n jmp -0x4b\n xor esi, esi\n mov eax, dword ptr [ebp - 0x10]\n cmp dword ptr [eax + 0x44], esi\n-je 0x2e\n+je 0x4e\n mov ecx, dword ptr [eax + 0x40]\n+push esi\n mov eax, dword ptr [ecx]\n-lea ecx, [ebp - 0x20]\n+lea ecx, [ebp - 0x24]\n+push ecx\n+mov edx, dword ptr [eax + 8]\n+lea ecx, [ebp - 0x18]\n+mov dword ptr [ebp - 0x14], edx\n+mov dword ptr [ebp - 0x18], eax\n+call list<MxDSAction *,allocator<MxDSAction *> >::iterator::operator++ (FUNCTION)\n+mov edx, dword ptr [eax]\n+mov ecx, dword ptr [edx + 4]\n+push edx\n+mov eax, dword ptr [edx]\n+mov dword ptr [ecx], eax\n+mov eax, dword ptr [edx + 4]\n+mov ecx, dword ptr [edx]\n+mov dword ptr [ecx + 4], eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+mov ecx, dword ptr [ebp - 0x10]\n+dec dword ptr [ecx + 0x44]\n+cmp dword ptr [ebp - 0x14], esi\n+je -0x48\n+push 1\n+mov eax, dword ptr [ebp - 0x14]\n+mov ecx, dword ptr [ebp - 0x14]\n+mov eax, dword ptr [eax]\n+call dword ptr [eax]\n+jmp -0x56\n+mov eax, dword ptr [ebp - 0x10]\n+mov eax, dword ptr [eax + 0x28]\n+test eax, eax\n+je 0x47\n+mov dword ptr [ebp - 0x18], eax\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0x18]\n+mov dword ptr [eax + 0x28], 0\n+mov edx, dword ptr [ecx]\n+lea ecx, [ebp - 0xb4]\n+mov dword ptr [ebp - 0x1c], edx\n+call MxDSAction::MxDSAction (FUNCTION)\n+mov byte ptr [ebp - 4], 8\n+mov esi, dword ptr [ebp - 0x1c]\n+push eax\n+mov ecx, dword ptr [ebp - 0x18]\n+call dword ptr [esi + 0x20]\n+mov byte ptr [ebp - 4], 7\n+call <OFFSET7>\n+cmp dword ptr [ebp - 0x18], 0\n+je 0xa\n+mov eax, dword ptr [ebp - 0x1c]\n+push 1\n+mov ecx, dword ptr [ebp - 0x18]\n+call dword ptr [eax]\n+mov eax, dword ptr [ebp - 0x10]\n+mov eax, dword ptr [eax + 0x2c]\n+test eax, eax\n+je 0x13\n+push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+mov eax, dword ptr [ebp - 0x10]\n+mov dword ptr [eax + 0x2c], 0\n+xor esi, esi\n+mov eax, dword ptr [ebp - 0x10]\n+cmp dword ptr [eax + 0x5c], esi\n+je 0x39\n+mov ecx, dword ptr [eax + 0x58]\n+mov eax, dword ptr [ecx]\n+lea ecx, [ebp - 0x1c]\n push eax\n push ecx\n mov edx, dword ptr [eax + 8]\n mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x3c\n+add ecx, 0x54\n mov dword ptr [ebp - 0x14], edx\n call list<MxDSAction *,allocator<MxDSAction *> >::erase (FUNCTION)\n cmp dword ptr [ebp - 0x14], esi\n je -0x28\n push 1\n mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [ebp - 0x14]\n mov eax, dword ptr [eax]\n call dword ptr [eax]\n jmp -0x36\n-mov eax, dword ptr [ebp - 0x10]\n-mov eax, dword ptr [eax + 0x28]\n-test eax, eax\n-je 0x47\n-mov dword ptr [ebp - 0x14], eax\n-mov eax, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [ebp - 0x14]\n-mov dword ptr [eax + 0x28], 0\n-mov edx, dword ptr [ecx]\n-lea ecx, [ebp - 0xb0]\n-mov dword ptr [ebp - 0x18], edx\n-call MxDSAction::MxDSAction (FUNCTION)\n-push eax\n-mov ecx, dword ptr [ebp - 0x14]\n-mov esi, dword ptr [ebp - 0x18]\n-mov byte ptr [ebp - 4], 8\n-call dword ptr [esi + 0x20]\n-mov byte ptr [ebp - 4], 7\n-call <OFFSET7>\n-cmp dword ptr [ebp - 0x14], 0\n-je 0xa\n-mov eax, dword ptr [ebp - 0x18]\n-push 1\n-mov ecx, dword ptr [ebp - 0x14]\n-call dword ptr [eax]\n-mov eax, dword ptr [ebp - 0x10]\n-mov eax, dword ptr [eax + 0x2c]\n-test eax, eax\n-je 0x13\n-push eax\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-mov eax, dword ptr [ebp - 0x10]\n-mov dword ptr [eax + 0x2c], 0\n-mov eax, dword ptr [ebp - 0x10]\n-cmp dword ptr [eax + 0x5c], 0\n-je 0x46\n-mov ecx, dword ptr [eax + 0x58]\n-mov eax, dword ptr [ecx]\n-mov dword ptr [ebp - 0x14], eax\n-mov esi, dword ptr [eax + 8]\n-lea edx, [eax + 4]\n-mov eax, dword ptr [eax]\n-mov ecx, dword ptr [edx]\n-mov dword ptr [ecx], eax\n-mov ecx, dword ptr [edx]\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n-mov edx, dword ptr [eax]\n-mov dword ptr [edx + 4], ecx\n-call ??3@YAXPAX@Z (FUNCTION)\n-add esp, 4\n-mov ecx, dword ptr [ebp - 0x10]\n-dec dword ptr [ecx + 0x5c]\n-test esi, esi\n-je -0x3a\n-push 1\n-mov eax, dword ptr [esi]\n-mov ecx, esi\n-call dword ptr [eax]\n-jmp -0x44\n-lea ecx, [ebp - 0xb0]\n+lea ecx, [ebp - 0xb4]\n jmp MxDSAction::~MxDSAction (FUNCTION)\n mov byte ptr [ebp - 4], 6\n-call <OFFSET9>\n+call <OFFSET10>\n mov byte ptr [ebp - 4], 5\n-call <OFFSET10>\n+call <OFFSET11>\n mov byte ptr [ebp - 4], 4\n-call <OFFSET11>\n+call <OFFSET12>\n mov byte ptr [ebp - 4], 3\n-call <OFFSET12>\n+call <OFFSET13>\n mov byte ptr [ebp - 4], 2\n-call <OFFSET13>\n+call <OFFSET14>\n mov byte ptr [ebp - 4], 1\n-call <OFFSET14>\n+call <OFFSET15>\n mov byte ptr [ebp - 4], 0\n-call <OFFSET15>\n+call <OFFSET16>\n mov dword ptr [ebp - 4], 0xffffffff\n-call <OFFSET16>\n+call <OFFSET17>\n mov eax, dword ptr [ebp - 0xc]\n pop esi\n mov dword ptr fs:[0], eax\n mov esp, ebp\n pop ebp\n ret \n-lea ecx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x20]\n jmp MxAutoLocker::~MxAutoLocker (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x54\n jmp MxStreamListMxDSAction::~MxStreamListMxDSAction (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x48\n jmp MxStreamListMxNextActionDataStart::~MxStreamListMxNextActionDataStart (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x3c\n jmp MxStreamListMxDSAction::~MxStreamListMxDSAction (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x30\n jmp MxStreamListMxDSSubscriber::~MxStreamListMxDSSubscriber (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x24\n jmp MxAtomId::~MxAtomId (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 8\n jmp MxCriticalSection::~MxCriticalSection (FUNCTION)\n-mov eax, <OFFSET23>\n+mov eax, <OFFSET24>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxCore::~MxCore (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, dword ptr [esp + 8]\n-sub esp, 4\n-push esi"}, {"address": "0x100c14d0", "name": "list<MxDSAction *,allocator<MxDSAction *> >::erase", "matching": 1.0, "diff": ""}, {"address": "0x100c1520", "name": "MxStreamController::Open", "matching": 1.0, "diff": ""}, {"address": "0x100c15d0", "name": "MxStreamController::AddSubscriber", "matching": 1.0, "diff": ""}, {"address": "0x100c1620", "name": "MxStreamController::RemoveSubscriber", "matching": 1.0, "diff": ""}, {"address": "0x100c1690", "name": "MxStreamController::VTable0x20", "matching": 1.0, "diff": ""}, {"address": "0x100c1740", "name": "MxStreamController::VTable0x24", "matching": 1.0, "diff": ""}, {"address": "0x100c1800", "name": "MxStreamController::FUN_100c1800", "matching": 0.975609756097561, "diff": "--- \n\n+++ \n\n@@ -18,26 +18,26 @@\n\n mov esi, eax\n test esi, esi\n je 0x38\n mov eax, dword ptr [ebp + 8]\n mov ecx, esi\n mov di, word ptr [eax + 0x24]\n mov ebx, dword ptr [eax + 0x1c]\n call MxCore::MxCore (FUNCTION)\n mov byte ptr [ebp - 4], 1\n mov eax, dword ptr [ebp + 0xc]\n+mov dword ptr [esi], MxNextActionDataStart (VTABLE)\n+mov byte ptr [ebp - 4], 0\n mov dword ptr [esi + 8], ebx\n-mov byte ptr [ebp - 4], 0\n mov word ptr [esi + 0xc], di\n mov edi, esi\n mov dword ptr [esi + 0x10], eax\n-mov dword ptr [esi], MxNextActionDataStart (VTABLE)\n jmp 0xa\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxCore::~MxCore (FUNCTION)\n xor edi, edi\n mov dword ptr [ebp - 4], 0xffffffff\n test edi, edi\n jne 0x18\n mov eax, 0xffffffff\n mov ecx, dword ptr [ebp - 0xc]\n pop edi"}, {"address": "0x100c1900", "name": "MxNextActionDataStart::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c1910", "name": "MxNextActionDataStart::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c1990", "name": "MxNextActionDataStart::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c1a00", "name": "MxStreamController::FUN_100c1a00", "matching": 0.4878048780487805, "diff": "--- \n\n+++ \n\n@@ -1,165 +1,163 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 0xc\n-mov dword ptr [ebp - 0x14], ecx\n+sub esp, 8\n push ebx\n push esi\n push edi\n-mov esi, dword ptr [ebp + 8]\n-cmp word ptr [esi + 0x24], -1\n-jne 0xd6\n+mov esi, ecx\n+mov edi, dword ptr [ebp + 8]\n+cmp word ptr [edi + 0x24], -1\n+jne 0xe1\n mov cx, 0xffff\n-mov eax, dword ptr [ebp - 0x14]\n-mov edx, dword ptr [eax + 0x58]\n-mov ebx, dword ptr [edx]\n-mov edi, ebx\n-cmp ebx, edx\n-je 0x20\n-mov ebx, dword ptr [edi + 8]\n-mov eax, dword ptr [esi + 0x1c]\n+mov edx, dword ptr [esi + 0x58]\n+mov eax, dword ptr [edx]\n+mov dword ptr [ebp - 0x10], eax\n+cmp eax, edx\n+je 0x29\n+mov eax, dword ptr [edi + 0x1c]\n+mov ebx, dword ptr [ebp - 0x10]\n+mov ebx, dword ptr [ebx + 8]\n cmp dword ptr [ebx + 0x1c], eax\n jne 0xf\n-mov ax, word ptr [ebx + 0x24]\n-cmp ax, cx\n+mov bx, word ptr [ebx + 0x24]\n+cmp bx, cx\n jg 0x3\n-mov ax, cx\n-mov cx, ax\n-mov edi, dword ptr [edi]\n-cmp edi, edx\n-jne -0x20\n+mov bx, cx\n+mov cx, bx\n+mov ebx, dword ptr [ebp - 0x10]\n+mov ebx, dword ptr [ebx]\n+mov dword ptr [ebp - 0x10], ebx\n+cmp ebx, edx\n+jne -0x26\n cmp cx, -1\n-jne 0x6c\n-mov eax, dword ptr [ebp - 0x14]\n-mov edx, dword ptr [eax + 0x40]\n-mov ebx, dword ptr [edx]\n-mov edi, ebx\n-cmp ebx, edx\n-je 0x20\n-mov ebx, dword ptr [edi + 8]\n-mov eax, dword ptr [esi + 0x1c]\n+jne 0x70\n+mov edx, dword ptr [esi + 0x40]\n+mov eax, dword ptr [edx]\n+mov dword ptr [ebp - 0x10], eax\n+cmp eax, edx\n+je 0x29\n+mov eax, dword ptr [edi + 0x1c]\n+mov ebx, dword ptr [ebp - 0x10]\n+mov ebx, dword ptr [ebx + 8]\n cmp dword ptr [ebx + 0x1c], eax\n jne 0xf\n-mov ax, word ptr [ebx + 0x24]\n-cmp ax, cx\n+mov bx, word ptr [ebx + 0x24]\n+cmp bx, cx\n jg 0x3\n-mov ax, cx\n-mov cx, ax\n-mov edi, dword ptr [edi]\n-cmp edi, edx\n-jne -0x20\n-cmp cx, -1\n-jne 0x38\n-mov eax, dword ptr [ebp - 0x14]\n-mov edx, dword ptr [eax + 0x34]\n-mov ebx, dword ptr [edx]\n+mov bx, cx\n+mov cx, bx\n+mov ebx, dword ptr [ebp - 0x10]\n+mov ebx, dword ptr [ebx]\n mov dword ptr [ebp - 0x10], ebx\n cmp ebx, edx\n+jne -0x26\n+cmp cx, -1\n+jne 0x35\n+mov edx, dword ptr [esi + 0x34]\n+mov eax, dword ptr [edx]\n+mov dword ptr [ebp - 0x10], eax\n+cmp eax, edx\n je 0x29\n-mov edi, dword ptr [esi + 0x1c]\n+mov ebx, dword ptr [edi + 0x1c]\n mov eax, dword ptr [ebp - 0x10]\n mov eax, dword ptr [eax + 8]\n-cmp dword ptr [eax + 0x44], edi\n+cmp dword ptr [eax + 0x44], ebx\n jne 0xf\n mov ax, word ptr [eax + 0x48]\n cmp ax, cx\n jg 0x3\n mov ax, cx\n mov cx, ax\n mov eax, dword ptr [ebp - 0x10]\n-mov ebx, dword ptr [eax]\n-mov dword ptr [ebp - 0x10], ebx\n-cmp ebx, edx\n+mov eax, dword ptr [eax]\n+mov dword ptr [ebp - 0x10], eax\n+cmp eax, edx\n jne -0x26\n inc cx\n-mov word ptr [esi + 0x24], cx\n+mov word ptr [edi + 0x24], cx\n push 0xb4\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [ebp - 0x10], eax\n mov dword ptr [ebp - 4], 0\n test eax, eax\n-je 0x3b\n+je 0x38\n mov eax, dword ptr [ebp + 0xc]\n mov ecx, dword ptr [ebp - 0x10]\n push eax\n-push esi\n+push edi\n call MxDSStreamingAction::MxDSStreamingAction (FUNCTION)\n-mov edi, eax\n-jmp 0x2c\n+mov ebx, eax\n+jmp 0x29\n push 0\n-mov ecx, dword ptr [ebp - 0x14]\n-push esi\n-add ecx, 0x3c\n+lea ecx, [esi + 0x3c]\n+push edi\n call MxStreamListMxDSAction::Find (FUNCTION)\n test eax, eax\n-je -0x3e\n+je -0x3b\n mov eax, 0xffffffff\n mov ecx, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], ecx\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 8\n-xor edi, edi\n+xor ebx, ebx\n mov dword ptr [ebp - 4], 0xffffffff\n-test edi, edi\n+test ebx, ebx\n je -0x25\n-mov eax, dword ptr [ebp - 0x14]\n-mov ecx, dword ptr [eax + 0x28]\n-mov ebx, dword ptr [ecx]\n-call dword ptr [ebx + 0x18]\n+mov ecx, dword ptr [esi + 0x28]\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax + 0x18]\n mov ecx, eax\n sub edx, edx\n mov eax, dword ptr [ebp + 0xc]\n div ecx\n imul eax, ecx\n-mov dword ptr [edi + 0x98], eax\n-mov ecx, dword ptr [esi + 0x1c]\n-mov dword ptr [edi + 0x1c], ecx\n+mov dword ptr [ebx + 0x98], eax\n+mov ecx, dword ptr [edi + 0x1c]\n+mov dword ptr [ebx + 0x1c], ecx\n call Timer (FUNCTION)\n cmp byte ptr [eax + 0xc], 0\n je 0x8\n mov ecx, dword ptr [MxTimer::g_lastTimeTimerStarted (DATA)]\n jmp 0x9\n mov ecx, dword ptr [MxTimer::g_lastTimeCalculated (DATA)]\n sub ecx, dword ptr [eax + 8]\n push ecx\n-mov eax, dword ptr [edi]\n-mov ecx, edi\n+mov eax, dword ptr [ebx]\n+mov ecx, ebx\n call dword ptr [eax + 0x38]\n-mov dword ptr [ebp - 0x18], edi\n-lea edi, [ebp - 0x18]\n-mov eax, dword ptr [ebp - 0x14]\n-push edi\n-mov ecx, dword ptr [eax + 0x40]\n-lea eax, [ebp - 0x14]\n+mov eax, dword ptr [esi + 0x40]\n+mov dword ptr [ebp - 0x14], ebx\n+lea edi, [eax + 4]\n+mov ecx, dword ptr [edi]\n push ecx\n push eax\n-mov ecx, dword ptr [ebp - 0x14]\n-add ecx, 0x3c\n-call <OFFSET8>\n+lea ecx, [esi + 0x3c]\n+call list<MxDSAction *,allocator<MxDSAction *> >::_Buynode (FUNCTION)\n+mov ecx, eax\n+mov dword ptr [edi], eax\n+mov edx, dword ptr [ecx + 4]\n+mov dword ptr [edx], ecx\n+add ecx, 8\n+je 0x5\n+mov eax, dword ptr [ebp - 0x14]\n+mov dword ptr [ecx], eax\n xor eax, eax\n-jmp -0x8b\n+inc dword ptr [esi + 0x44]\n+jmp -0x96\n mov eax, <OFFSET9>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n-int3 \n-int3 \n-push ebx\n-push esi\n-push edi\n-mov esi, ecx\n-mov ebx, dword ptr [esp + 0x14]\n-push 0xc\n-mov edi, dword ptr [ebx + 4]"}, {"address": "0x100c1c10", "name": "MxStreamController::VTable0x2c", "matching": 1.0, "diff": ""}, {"address": "0x100c1ce0", "name": "MxStreamController::VTable0x30", "matching": 1.0, "diff": ""}, {"address": "0x100c1da0", "name": "MxStreamController::InsertActionToList54", "matching": 1.0, "diff": ""}, {"address": "0x100c1e70", "name": "MxStreamController::FUN_100c1e70", "matching": 1.0, "diff": ""}, {"address": "0x100c1f00", "name": "MxStreamController::FUN_100c1f00", "matching": 1.0, "diff": ""}, {"address": "0x100c20b0", "name": "MxStreamController::FindNextActionDataStartFromStreamingAction", "matching": 1.0, "diff": ""}, {"address": "0x100c20d0", "name": "MxStreamController::FUN_100c20d0", "matching": 1.0, "diff": ""}, {"address": "0x100c21e0", "name": "MxStreamListMxNextActionDataStart::Find", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,29 +1,29 @@\n\n sub esp, 4\n mov edx, dword ptr [ecx + 4]\n push esi\n mov eax, dword ptr [edx]\n mov dword ptr [esp + 4], eax\n-cmp edx, eax\n+cmp eax, edx\n je 0x29\n mov si, word ptr [esp + 0x10]\n mov ecx, dword ptr [esp + 0xc]\n mov eax, dword ptr [esp + 4]\n mov eax, dword ptr [eax + 8]\n cmp dword ptr [eax + 8], ecx\n jne 0x6\n cmp word ptr [eax + 0xc], si\n je 0x17\n mov eax, dword ptr [esp + 4]\n mov eax, dword ptr [eax]\n mov dword ptr [esp + 4], eax\n-cmp edx, eax\n+cmp eax, edx\n jne -0x20\n xor eax, eax\n pop esi\n add esp, 4\n ret 8\n mov eax, dword ptr [esp + 4]\n pop esi\n mov eax, dword ptr [eax + 8]\n add esp, 4\n ret 8"}, {"address": "0x100c2240", "name": "MxStreamListMxNextActionDataStart::FindAndErase", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,35 +1,35 @@\n\n sub esp, 4\n push ebx\n push esi\n mov edx, dword ptr [ecx + 4]\n push edi\n mov esi, ecx\n xor edi, edi\n mov eax, dword ptr [edx]\n mov dword ptr [esp + 0xc], eax\n-cmp edx, eax\n+cmp eax, edx\n je 0x5d\n mov bx, word ptr [esp + 0x18]\n mov ecx, dword ptr [esp + 0x14]\n mov eax, dword ptr [esp + 0xc]\n mov eax, dword ptr [eax + 8]\n cmp dword ptr [eax + 8], ecx\n jne 0xc\n cmp bx, -2\n je 0x1f\n cmp word ptr [eax + 0xc], bx\n je 0x19\n mov eax, dword ptr [esp + 0xc]\n mov eax, dword ptr [eax]\n mov dword ptr [esp + 0xc], eax\n-cmp edx, eax\n+cmp eax, edx\n jne -0x26\n mov eax, edi\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret 8\n mov eax, dword ptr [esp + 0xc]\n mov edi, dword ptr [eax + 8]\n lea edx, [eax + 4]"}, {"address": "0x100c22c0", "name": "MxMusicPresenter::MxMusicPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100c23a0", "name": "MxMusicPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c23b0", "name": "MxMusicPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c24c0", "name": "MxMusicPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c24e0", "name": "MxMusicPresenter::~MxMusicPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100c2540", "name": "MxMusicPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x100c2550", "name": "MxMusicPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c25a0", "name": "MxMusicPresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x100c25d0", "name": "MxMusicPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c25e0", "name": "MxMIDIPresenter::MxMIDIPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100c2650", "name": "MxMIDIPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c2660", "name": "MxMIDIPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c27a0", "name": "MxMIDIPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c27c0", "name": "MxMIDIPresenter::~MxMIDIPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100c2820", "name": "MxMIDIPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x100c2830", "name": "MxMIDIPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c2890", "name": "MxMIDIPresenter::ReadyTickle", "matching": 1.0, "diff": ""}, {"address": "0x100c28d0", "name": "MxMIDIPresenter::StartingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100c2910", "name": "MxMIDIPresenter::StreamingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100c2940", "name": "MxMIDIPresenter::DoneTickle", "matching": 1.0, "diff": ""}, {"address": "0x100c2960", "name": "MxMIDIPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c2970", "name": "MxMIDIPresenter::PutData", "matching": 1.0, "diff": ""}, {"address": "0x100c29e0", "name": "MxMIDIPresenter::EndAction", "matching": 1.0, "diff": ""}, {"address": "0x100c2a60", "name": "MxMIDIPresenter::SetVolume", "matching": 1.0, "diff": ""}, {"address": "0x100c2a80", "name": "MxLoopingMIDIPresenter::StreamingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100c2ae0", "name": "MxLoopingMIDIPresenter::DoneTickle", "matching": 1.0, "diff": ""}, {"address": "0x100c2b00", "name": "MxLoopingMIDIPresenter::PutData", "matching": 1.0, "diff": ""}, {"address": "0x100c2b70", "name": "MxEventPresenter::MxEventPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100c2c30", "name": "MxEventPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c2c40", "name": "MxEventPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c2d20", "name": "MxEventPresenter::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c2d40", "name": "MxEventPresenter::~MxEventPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100c2da0", "name": "MxEventPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x100c2db0", "name": "MxEventPresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x100c2de0", "name": "MxEventPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c2e30", "name": "MxEventPresenter::CopyData", "matching": 1.0, "diff": ""}, {"address": "0x100c2e70", "name": "MxEventPresenter::ReadyTickle", "matching": 1.0, "diff": ""}, {"address": "0x100c2eb0", "name": "MxEventPresenter::StartingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100c2ef0", "name": "MxEventPresenter::PutData", "matching": 0.84, "diff": "--- \n\n+++ \n\n@@ -11,53 +11,52 @@\n\n lea eax, [ecx + 0x20]\n push edi\n mov esi, ecx\n push eax\n lea ecx, [ebp - 0x10]\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n mov dword ptr [ebp - 4], 0\n mov ecx, esi\n call MxPresenter::IsEnabled (FUNCTION)\n test al, al\n-je 0x72\n+je 0x71\n mov eax, dword ptr [esi + 8]\n cmp eax, 3\n-jl 0x6a\n+jl 0x69\n cmp eax, 4\n jle 0x5\n cmp eax, 6\n-jne 0x60\n+jne 0x5f\n mov eax, dword ptr [esi + 0x4c]\n test eax, eax\n-je 0x59\n+je 0x58\n cmp dword ptr [eax + 0x14], 0\n-je 0x53\n+je 0x52\n mov ecx, dword ptr [esi + 0x50]\n cmp byte ptr [ecx + 0xc], 2\n-jne 0x31\n+jne 0x30\n mov ebx, dword ptr [eax + 0x18]\n call VariableTable (FUNCTION)\n-mov edx, ebx\n mov edi, ebx\n mov ecx, 0xffffffff\n mov dword ptr [ebp - 0x14], eax\n sub eax, eax\n repne scasb al, byte ptr es:[edi]\n not ecx\n-add ebx, ecx\n+sub eax, eax\n+lea edx, [ecx + ebx]\n+mov edi, edx\n mov ecx, 0xffffffff\n-mov edi, ebx\n-sub eax, eax\n repne scasb al, byte ptr es:[edi]\n+push edx\n+mov ecx, dword ptr [ebp - 0x14]\n push ebx\n-mov ecx, dword ptr [ebp - 0x14]\n-push edx\n call MxVariableTable::SetVariable (FUNCTION)\n cmp dword ptr [esi + 8], 3\n jne 0xc\n mov eax, dword ptr [esi + 0x4c]\n mov ecx, dword ptr [esi + 0x40]\n push eax\n call MxDSSubscriber::DestroyChunk (FUNCTION)\n mov dword ptr [esi + 0x4c], 0\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET7>\n@@ -66,10 +65,11 @@\n\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n mov eax, <OFFSET8>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x10]\n+jmp MxAutoLocker::~MxAutoLocker (FUNCTION)"}, {"address": "0x100c2fe0", "name": "MxStreamChunk::~MxStreamChunk", "matching": 1.0, "diff": ""}, {"address": "0x100c3050", "name": "MxStreamChunk::ReadChunk", "matching": 1.0, "diff": ""}, {"address": "0x100c30a0", "name": "MxStreamChunk::ReadChunkHeader", "matching": 1.0, "diff": ""}, {"address": "0x100c30e0", "name": "MxStreamChunk::SendChunk", "matching": 1.0, "diff": ""}, {"address": "0x100c3170", "name": "MxStreamChunk::SetBuffer", "matching": 1.0, "diff": ""}, {"address": "0x100c3180", "name": "MxStreamChunk::IntoFlags", "matching": 1.0, "diff": ""}, {"address": "0x100c3190", "name": "MxStreamChunk::IntoObjectId", "matching": 1.0, "diff": ""}, {"address": "0x100c31a0", "name": "MxStreamChunk::IntoTime", "matching": 1.0, "diff": ""}, {"address": "0x100c31b0", "name": "MxStreamChunk::IntoLength", "matching": 1.0, "diff": ""}, {"address": "0x100c31c0", "name": "MxRegion::MxRegion", "matching": 1.0, "diff": ""}, {"address": "0x100c32e0", "name": "MxCollection<MxRegionTopBottom *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x100c32f0", "name": "MxCollection<MxRegionTopBottom *>::~MxCollection<MxRegionTopBottom *>", "matching": 1.0, "diff": ""}, {"address": "0x100c3340", "name": "MxCollection<MxRegionTopBottom *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c3350", "name": "MxList<MxRegionTopBottom *>::~MxList<MxRegionTopBottom *>", "matching": 1.0, "diff": ""}, {"address": "0x100c33e0", "name": "MxPtrList<MxRegionTopBottom>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c3410", "name": "MxRegionTopBottomList::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c3480", "name": "MxPtrList<MxRegionTopBottom>::~MxPtrList<MxRegionTopBottom>", "matching": 1.0, "diff": ""}, {"address": "0x100c34d0", "name": "MxCollection<MxRegionTopBottom *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c3540", "name": "MxList<MxRegionTopBottom *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c35f0", "name": "MxPtrList<MxRegionTopBottom>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c3660", "name": "MxRegion::VTable0x20", "matching": 1.0, "diff": ""}, {"address": "0x100c3670", "name": "MxRegion::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c3690", "name": "MxRegion::~MxRegion", "matching": 1.0, "diff": ""}, {"address": "0x100c3700", "name": "MxRegion::Reset", "matching": 1.0, "diff": ""}, {"address": "0x100c3750", "name": "MxRegion::VTable0x18", "matching": 0.8851174934725848, "diff": "--- \n\n+++ \n\n@@ -70,51 +70,51 @@\n\n mov ecx, esi\n push eax\n call MxRegionTopBottom::MxRegionTopBottom (FUNCTION)\n mov dword ptr [ebp - 0x2c], eax\n jmp 0x7\n mov dword ptr [ebp - 0x2c], 0\n mov byte ptr [ebp - 4], 3\n cmp dword ptr [ebp - 0x30], 0\n je 0x59\n mov eax, dword ptr [ebp - 0x30]\n-mov ebx, dword ptr [ebp - 0x34]\n-lea esi, [eax + 4]\n+mov edi, dword ptr [ebp - 0x34]\n+lea ebx, [eax + 4]\n push 0xc\n mov dword ptr [ebp - 0x40], eax\n-mov edi, dword ptr [esi]\n+mov esi, dword ptr [ebx]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [ebp - 0x10], eax\n mov byte ptr [ebp - 4], 5\n test eax, eax\n mov eax, 0\n je 0x11\n mov eax, dword ptr [ebp - 0x40]\n mov ecx, dword ptr [ebp - 0x2c]\n push eax\n-push edi\n+push esi\n push ecx\n mov ecx, dword ptr [ebp - 0x10]\n call MxListEntry<MxRegionTopBottom *>::MxListEntry<MxRegionTopBottom *> (FUNCTION)\n mov byte ptr [ebp - 4], 3\n-test edi, edi\n+test esi, esi\n je 0x5\n-mov dword ptr [edi + 8], eax\n-jmp 0x3\n-mov dword ptr [ebx + 0x10], eax\n+mov dword ptr [esi + 8], eax\n+jmp 0x3\n+mov dword ptr [edi + 0x10], eax\n cmp dword ptr [ebp - 0x40], 0\n je 0x4\n-mov dword ptr [esi], eax\n-jmp 0x3\n-mov dword ptr [ebx + 0x14], eax\n-inc dword ptr [ebx + 8]\n+mov dword ptr [ebx], eax\n+jmp 0x3\n+mov dword ptr [edi + 0x14], eax\n+inc dword ptr [edi + 8]\n mov eax, dword ptr [ebp - 0x1c]\n mov dword ptr [ebp - 0x24], eax\n jmp 0x1bf\n mov eax, dword ptr [ebp - 0x14]\n mov ebx, dword ptr [ebp - 0x24]\n add eax, 4\n mov dword ptr [ebp - 0x40], eax\n cmp dword ptr [eax], ebx\n jle 0x1ab\n cmp ebx, ecx\n@@ -141,100 +141,100 @@\n\n mov ecx, esi\n push eax\n call MxRegionTopBottom::MxRegionTopBottom (FUNCTION)\n mov dword ptr [ebp - 0x44], eax\n jmp 0x7\n mov dword ptr [ebp - 0x44], 0\n mov byte ptr [ebp - 4], 3\n cmp dword ptr [ebp - 0x30], 0\n je 0x59\n mov eax, dword ptr [ebp - 0x30]\n-mov edi, dword ptr [ebp - 0x34]\n-lea ebx, [eax + 4]\n+mov ebx, dword ptr [ebp - 0x34]\n+lea esi, [eax + 4]\n push 0xc\n mov dword ptr [ebp - 0x2c], eax\n-mov esi, dword ptr [ebx]\n+mov edi, dword ptr [esi]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [ebp - 0x10], eax\n mov byte ptr [ebp - 4], 7\n test eax, eax\n mov eax, 0\n je 0x11\n mov eax, dword ptr [ebp - 0x2c]\n mov ecx, dword ptr [ebp - 0x44]\n push eax\n-push esi\n+push edi\n push ecx\n mov ecx, dword ptr [ebp - 0x10]\n call MxListEntry<MxRegionTopBottom *>::MxListEntry<MxRegionTopBottom *> (FUNCTION)\n mov byte ptr [ebp - 4], 3\n-test esi, esi\n+test edi, edi\n je 0x5\n-mov dword ptr [esi + 8], eax\n-jmp 0x3\n-mov dword ptr [edi + 0x10], eax\n+mov dword ptr [edi + 8], eax\n+jmp 0x3\n+mov dword ptr [ebx + 0x10], eax\n cmp dword ptr [ebp - 0x2c], 0\n je 0x4\n-mov dword ptr [ebx], eax\n-jmp 0x3\n-mov dword ptr [edi + 0x14], eax\n-inc dword ptr [edi + 8]\n+mov dword ptr [esi], eax\n+jmp 0x3\n+mov dword ptr [ebx + 0x14], eax\n+inc dword ptr [ebx + 8]\n mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x24], ecx\n jmp 0x80\n cmp dword ptr [ebp - 0x24], ecx\n jle 0x7b\n mov ecx, dword ptr [ebp - 0x14]\n call MxRegionTopBottom::Clone (FUNCTION)\n mov edx, dword ptr [ebp - 0x14]\n mov dword ptr [ebp - 0x44], eax\n mov eax, dword ptr [ebp - 0x24]\n mov ecx, dword ptr [ebp - 0x44]\n mov dword ptr [ecx + 4], eax\n mov eax, dword ptr [ebp - 0x24]\n mov dword ptr [edx], eax\n cmp dword ptr [ebp - 0x30], 0\n je 0x59\n mov eax, dword ptr [ebp - 0x30]\n-mov edi, dword ptr [ebp - 0x34]\n-lea ebx, [eax + 4]\n+mov ebx, dword ptr [ebp - 0x34]\n+lea esi, [eax + 4]\n push 0xc\n mov dword ptr [ebp - 0x2c], eax\n-mov esi, dword ptr [ebx]\n+mov edi, dword ptr [esi]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [ebp - 0x10], eax\n mov byte ptr [ebp - 4], 8\n test eax, eax\n mov eax, 0\n je 0x11\n mov eax, dword ptr [ebp - 0x2c]\n mov ecx, dword ptr [ebp - 0x44]\n push eax\n-push esi\n+push edi\n push ecx\n mov ecx, dword ptr [ebp - 0x10]\n call MxListEntry<MxRegionTopBottom *>::MxListEntry<MxRegionTopBottom *> (FUNCTION)\n mov byte ptr [ebp - 4], 3\n-test esi, esi\n+test edi, edi\n je 0x5\n-mov dword ptr [esi + 8], eax\n-jmp 0x3\n-mov dword ptr [edi + 0x10], eax\n+mov dword ptr [edi + 8], eax\n+jmp 0x3\n+mov dword ptr [ebx + 0x10], eax\n cmp dword ptr [ebp - 0x2c], 0\n je 0x4\n-mov dword ptr [ebx], eax\n-jmp 0x3\n-mov dword ptr [edi + 0x14], eax\n-inc dword ptr [edi + 8]\n+mov dword ptr [esi], eax\n+jmp 0x3\n+mov dword ptr [ebx + 0x14], eax\n+inc dword ptr [ebx + 8]\n mov eax, dword ptr [ebp - 0x1c]\n mov edx, dword ptr [ebp - 0x40]\n cmp dword ptr [edx], eax\n jle 0x46\n mov ecx, dword ptr [ebp - 0x14]\n call MxRegionTopBottom::Clone (FUNCTION)\n mov esi, eax\n mov ecx, dword ptr [ebp - 0x14]\n mov eax, dword ptr [ebp - 0x1c]\n mov dword ptr [esi + 4], eax\n@@ -316,31 +316,31 @@\n\n ret \n xor eax, eax\n mov edx, dword ptr [ebp - 0x18]\n push 0\n mov ecx, dword ptr [edx + 8]\n mov byte ptr [ebp - 4], 3\n mov ebx, dword ptr [ecx + 0x14]\n push ebx\n push eax\n call MxList<MxRegionTopBottom *>::InsertEntry (FUNCTION)\n-mov eax, dword ptr [ebp + 8]\n-mov edx, dword ptr [ebp - 0x18]\n+mov edx, dword ptr [ebp - 0x18]\n+mov eax, dword ptr [ebp + 8]\n+mov ecx, dword ptr [edx + 0xc]\n mov eax, dword ptr [eax]\n-mov ecx, dword ptr [edx + 0xc]\n-cmp eax, ecx\n+cmp ecx, eax\n jl 0x2\n-mov eax, ecx\n-mov edx, dword ptr [ebp - 0x18]\n+mov ecx, eax\n+mov edx, dword ptr [ebp - 0x18]\n+mov eax, dword ptr [ebp + 8]\n+mov dword ptr [edx + 0xc], ecx\n mov ecx, dword ptr [edx + 0x10]\n-mov dword ptr [edx + 0xc], eax\n-mov eax, dword ptr [ebp + 8]\n mov eax, dword ptr [eax + 4]\n cmp eax, ecx\n jl 0x2\n mov eax, ecx\n mov edx, dword ptr [ebp - 0x18]\n mov ecx, dword ptr [edx + 0x14]\n mov dword ptr [edx + 0x10], eax\n mov eax, dword ptr [ebp + 8]\n mov eax, dword ptr [eax + 8]\n cmp ecx, eax"}, {"address": "0x100c3be0", "name": "MxRegionTopBottomListCursor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c3c50", "name": "MxPtrListCursor<MxRegionTopBottom>::~MxPtrListCursor<MxRegionTopBottom>", "matching": 1.0, "diff": ""}, {"address": "0x100c3ca0", "name": "MxListCursor<MxRegionTopBottom *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c3d10", "name": "MxPtrListCursor<MxRegionTopBottom>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c3d80", "name": "MxListCursor<MxRegionTopBottom *>::~MxListCursor<MxRegionTopBottom *>", "matching": 1.0, "diff": ""}, {"address": "0x100c3dd0", "name": "MxRegionTopBottomListCursor::~MxRegionTopBottomListCursor", "matching": 1.0, "diff": ""}, {"address": "0x100c3e20", "name": "MxRegion::VTable0x1c", "matching": 0.9680851063829787, "diff": "--- \n\n+++ \n\n@@ -45,23 +45,23 @@\n\n mov ecx, dword ptr [eax + 8]\n mov dword ptr [ebp - 0x10], ecx\n cmp dword ptr [ebp - 0x10], ebx\n je 0x49\n mov eax, dword ptr [ebp - 0x10]\n cmp dword ptr [ebp - 0x10], ebx\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x20], ecx\n je 0x3c\n mov eax, dword ptr [ebp - 0x20]\n-mov ecx, dword ptr [eax]\n-cmp dword ptr [esi + 0xc], ecx\n-jle 0x24\n+mov ecx, dword ptr [esi + 0xc]\n+cmp dword ptr [eax], ecx\n+jge 0x24\n mov ecx, dword ptr [esi + 4]\n cmp dword ptr [eax + 4], ecx\n jle -0x3a\n push esi\n mov ecx, eax\n call MxRegionTopBottom::FUN_100c57b0 (FUNCTION)\n test al, al\n je -0x46\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET7>"}, {"address": "0x100c3f70", "name": "MxRegionCursor::MxRegionCursor", "matching": 0.7361111111111112, "diff": "--- \n\n+++ \n\n@@ -1,68 +1,68 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 8\n push ebx\n push esi\n+mov dword ptr [ebp - 0x14], ecx\n push edi\n-mov dword ptr [ebp - 0x14], ecx\n-mov edi, ecx\n+mov esi, ecx\n call MxCore::MxCore (FUNCTION)\n mov eax, dword ptr [ebp + 8]\n push 0x10\n mov dword ptr [ebp - 4], 0\n-mov dword ptr [edi], MxRegionCursor (VTABLE)\n-mov dword ptr [edi + 8], eax\n-mov dword ptr [edi + 0xc], 0\n+mov dword ptr [esi], MxRegionCursor (VTABLE)\n+mov dword ptr [esi + 8], eax\n+mov dword ptr [esi + 0xc], 0\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov byte ptr [ebp - 4], 1\n-mov esi, eax\n-test esi, esi\n+mov edi, eax\n+test edi, edi\n je 0x55\n-mov eax, dword ptr [edi + 8]\n-mov ecx, esi\n+mov eax, dword ptr [esi + 8]\n+mov ecx, edi\n mov ebx, dword ptr [eax + 8]\n call MxCore::MxCore (FUNCTION)\n mov byte ptr [ebp - 4], 2\n mov byte ptr [ebp - 4], 3\n mov byte ptr [ebp - 4], 4\n-mov eax, esi\n-mov dword ptr [esi], MxListCursor<MxRegionTopBottom *> (VTABLE)\n+mov eax, edi\n+mov dword ptr [edi], MxListCursor<MxRegionTopBottom *> (VTABLE)\n mov byte ptr [ebp - 4], 1\n-mov dword ptr [esi + 8], ebx\n-mov dword ptr [esi + 0xc], 0\n-mov dword ptr [esi], MxPtrListCursor<MxRegionTopBottom> (VTABLE)\n-mov dword ptr [esi], MxRegionTopBottomListCursor (VTABLE)\n+mov dword ptr [edi + 8], ebx\n+mov dword ptr [edi + 0xc], 0\n+mov dword ptr [edi], MxPtrListCursor<MxRegionTopBottom> (VTABLE)\n+mov dword ptr [edi], MxRegionTopBottomListCursor (VTABLE)\n jmp 0x1a\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxCore::~MxCore (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxListCursor<MxRegionTopBottom *>::~MxListCursor<MxRegionTopBottom *> (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxPtrListCursor<MxRegionTopBottom>::~MxPtrListCursor<MxRegionTopBottom> (FUNCTION)\n xor eax, eax\n xor ecx, ecx\n mov byte ptr [ebp - 4], cl\n-mov dword ptr [edi + 0x10], eax\n-mov dword ptr [edi + 0x14], ecx\n+pop edi\n+mov dword ptr [esi + 0x10], eax\n+mov dword ptr [esi + 0x14], ecx\n mov dword ptr [ebp - 4], 0xffffffff\n-mov eax, edi\n+mov eax, esi\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n-pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret "}, {"address": "0x100c4070", "name": "MxRegionCursor::GetRect", "matching": 1.0, "diff": ""}, {"address": "0x100c4080", "name": "MxRegionCursor::HasRect", "matching": 1.0, "diff": ""}, {"address": "0x100c4090", "name": "MxRegionCursor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c40b0", "name": "MxRegionCursor::~MxRegionCursor", "matching": 1.0, "diff": ""}, {"address": "0x100c4140", "name": "MxRegionCursor::VTable0x18", "matching": 1.0, "diff": ""}, {"address": "0x100c41d0", "name": "MxRegionCursor::VTable0x20", "matching": 1.0, "diff": ""}, {"address": "0x100c4260", "name": "MxRegionCursor::VTable0x28", "matching": 1.0, "diff": ""}, {"address": "0x100c4360", "name": "MxRegionCursor::VTable0x30", "matching": 1.0, "diff": ""}, {"address": "0x100c4460", "name": "MxRegionCursor::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x100c4480", "name": "MxRegionCursor::VTable0x1c", "matching": 1.0, "diff": ""}, {"address": "0x100c44a0", "name": "MxRegionCursor::VTable0x24", "matching": 1.0, "diff": ""}, {"address": "0x100c4590", "name": "MxRegionCursor::VTable0x2c", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -51,22 +51,22 @@\n\n mov ecx, esi\n push ebp\n call MxRegionCursor::UpdateRect (FUNCTION)\n mov edx, dword ptr [esi + 0xc]\n mov eax, dword ptr [edi]\n mov ecx, dword ptr [edx]\n cmp eax, ecx\n jg 0x2\n mov eax, ecx\n mov dword ptr [edx], eax\n-mov eax, dword ptr [edx + 4]\n-mov ecx, dword ptr [edi + 4]\n+mov eax, dword ptr [edi + 4]\n+mov ecx, dword ptr [edx + 4]\n cmp eax, ecx\n jg 0x2\n mov eax, ecx\n mov dword ptr [edx + 4], eax\n mov eax, dword ptr [edi + 8]\n mov ecx, dword ptr [edx + 8]\n cmp eax, ecx\n jl 0x2\n mov eax, ecx\n mov dword ptr [edx + 8], eax"}, {"address": "0x100c4680", "name": "MxRegionCursor::Reset", "matching": 1.0, "diff": ""}, {"address": "0x100c46c0", "name": "MxRegionCursor::FUN_100c46c0", "matching": 1.0, "diff": ""}, {"address": "0x100c4790", "name": "MxRegionLeftRightListCursor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c4800", "name": "MxPtrListCursor<MxRegionLeftRight>::~MxPtrListCursor<MxRegionLeftRight>", "matching": 1.0, "diff": ""}, {"address": "0x100c4850", "name": "MxListCursor<MxRegionLeftRight *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c48c0", "name": "MxPtrListCursor<MxRegionLeftRight>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c4930", "name": "MxListCursor<MxRegionLeftRight *>::~MxListCursor<MxRegionLeftRight *>", "matching": 1.0, "diff": ""}, {"address": "0x100c4980", "name": "MxRegionCursor::UpdateRect", "matching": 1.0, "diff": ""}, {"address": "0x100c4a20", "name": "MxRegionCursor::FUN_100c4a20", "matching": 0.8786610878661087, "diff": "--- \n\n+++ \n\n@@ -9,77 +9,78 @@\n\n test eax, eax\n jne 0xb\n mov eax, dword ptr [ecx + 8]\n mov edx, dword ptr [eax + 0x10]\n mov dword ptr [ecx + 0xc], edx\n jmp 0x6\n mov eax, dword ptr [eax + 8]\n mov dword ptr [ecx + 0xc], eax\n mov eax, dword ptr [ecx + 0xc]\n test eax, eax\n-je 0xed\n+je 0xf1\n mov ecx, dword ptr [eax]\n test eax, eax\n mov dword ptr [esp + 0xc], ecx\n-je 0xdf\n-mov ecx, dword ptr [esp + 0xc]\n-mov eax, dword ptr [esi + 0xc]\n-cmp dword ptr [ecx], eax\n-jge 0xc0\n-lea ebx, [ecx + 4]\n+je 0xe3\n+mov eax, dword ptr [esp + 0xc]\n+mov ecx, dword ptr [eax]\n+cmp dword ptr [esi + 0xc], ecx\n+jle 0xc4\n+lea ebx, [eax + 4]\n mov eax, dword ptr [esi + 4]\n cmp dword ptr [ebx], eax\n jle -0x4d\n-mov ecx, dword ptr [ecx + 8]\n+mov eax, dword ptr [esp + 0xc]\n+mov ecx, dword ptr [eax + 8]\n push ecx\n mov ecx, edi\n call MxRegionCursor::FUN_100c46c0 (FUNCTION)\n mov ecx, dword ptr [edi + 0x14]\n mov eax, dword ptr [ecx + 0xc]\n test eax, eax\n jne 0xb\n mov eax, dword ptr [ecx + 8]\n mov edx, dword ptr [eax + 0x10]\n mov dword ptr [ecx + 0xc], edx\n jmp 0x6\n mov eax, dword ptr [eax + 8]\n mov dword ptr [ecx + 0xc], eax\n mov eax, dword ptr [ecx + 0xc]\n test eax, eax\n-je -0x7a\n+je -0x7e\n mov ecx, dword ptr [eax]\n test eax, eax\n mov dword ptr [esp + 0x10], ecx\n-je -0x88\n+je -0x8c\n mov eax, dword ptr [esp + 0x10]\n mov ecx, dword ptr [esi + 8]\n cmp dword ptr [eax], ecx\n-jge -0x97\n+jge -0x9b\n mov ecx, dword ptr [esi]\n cmp dword ptr [eax + 4], ecx\n jle -0x46\n mov eax, dword ptr [ebx]\n mov ecx, dword ptr [esp + 0x10]\n push eax\n mov edx, dword ptr [ecx + 4]\n mov eax, dword ptr [esp + 0x10]\n push edx\n mov edx, dword ptr [esp + 0x18]\n mov ecx, dword ptr [eax]\n push ecx\n mov eax, dword ptr [edx]\n push eax\n mov ecx, edi\n call MxRegionCursor::UpdateRect (FUNCTION)\n mov edx, dword ptr [edi + 0xc]\n-mov ecx, dword ptr [esi]\n-mov eax, dword ptr [edx]\n+mov eax, dword ptr [esi]\n+mov ecx, dword ptr [edx]\n cmp eax, ecx\n jg 0x2\n mov eax, ecx\n mov dword ptr [edx], eax\n mov eax, dword ptr [edx + 4]\n mov ecx, dword ptr [esi + 4]\n cmp eax, ecx\n jg 0x2\n mov eax, ecx\n mov dword ptr [edx + 4], eax\n@@ -109,12 +110,10 @@\n\n add esp, 8\n ret 4\n mov eax, dword ptr [edi]\n mov ecx, edi\n call dword ptr [eax + 0x3c]\n pop edi\n pop esi\n pop ebx\n add esp, 8\n ret 4\n-int3 \n-sub esp, 8"}, {"address": "0x100c4b50", "name": "MxRegionCursor::FUN_100c4b50", "matching": 0.8451882845188284, "diff": "--- \n\n+++ \n\n@@ -9,112 +9,111 @@\n\n test eax, eax\n jne 0xb\n mov eax, dword ptr [ecx + 8]\n mov edx, dword ptr [eax + 0x14]\n mov dword ptr [ecx + 0xc], edx\n jmp 0x6\n mov eax, dword ptr [eax + 4]\n mov dword ptr [ecx + 0xc], eax\n mov eax, dword ptr [ecx + 0xc]\n test eax, eax\n-je 0xf1\n+je 0xf2\n mov ecx, dword ptr [eax]\n test eax, eax\n mov dword ptr [esp + 0xc], ecx\n-je 0xe3\n+je 0xe4\n mov ebx, dword ptr [esp + 0xc]\n-mov eax, dword ptr [esi + 4]\n+mov eax, dword ptr [ebx + 4]\n add ebx, 4\n-cmp dword ptr [ebx], eax\n-jle 0xc1\n+cmp dword ptr [esi + 4], eax\n+jge 0xc1\n mov eax, dword ptr [esp + 0xc]\n mov ecx, dword ptr [eax]\n cmp dword ptr [esi + 0xc], ecx\n-jle -0x51\n+jle -0x52\n mov ecx, dword ptr [eax + 8]\n push ecx\n mov ecx, edi\n call MxRegionCursor::FUN_100c46c0 (FUNCTION)\n mov ecx, dword ptr [edi + 0x14]\n mov eax, dword ptr [ecx + 0xc]\n test eax, eax\n jne 0xb\n mov eax, dword ptr [ecx + 8]\n mov edx, dword ptr [eax + 0x14]\n mov dword ptr [ecx + 0xc], edx\n jmp 0x6\n mov eax, dword ptr [eax + 4]\n mov dword ptr [ecx + 0xc], eax\n mov eax, dword ptr [ecx + 0xc]\n test eax, eax\n-je -0x7e\n+je -0x7f\n mov ecx, dword ptr [eax]\n test eax, eax\n mov dword ptr [esp + 0x10], ecx\n-je -0x8c\n+je -0x8d\n mov eax, dword ptr [esp + 0x10]\n mov ecx, dword ptr [esi]\n cmp dword ptr [eax + 4], ecx\n-jle -0x9b\n+jle -0x9c\n mov ecx, dword ptr [esi + 8]\n cmp dword ptr [eax], ecx\n jge -0x46\n mov eax, dword ptr [ebx]\n mov ecx, dword ptr [esp + 0x10]\n push eax\n mov edx, dword ptr [ecx + 4]\n mov eax, dword ptr [esp + 0x10]\n push edx\n mov edx, dword ptr [esp + 0x18]\n mov ecx, dword ptr [eax]\n push ecx\n mov eax, dword ptr [edx]\n push eax\n mov ecx, edi\n call MxRegionCursor::UpdateRect (FUNCTION)\n mov edx, dword ptr [edi + 0xc]\n-mov ecx, dword ptr [esi]\n-mov eax, dword ptr [edx]\n+mov eax, dword ptr [esi]\n+mov ecx, dword ptr [edx]\n cmp eax, ecx\n jg 0x2\n mov eax, ecx\n mov dword ptr [edx], eax\n-mov eax, dword ptr [edx + 4]\n-mov ecx, dword ptr [esi + 4]\n+mov eax, dword ptr [esi + 4]\n+mov ecx, dword ptr [edx + 4]\n cmp eax, ecx\n jg 0x2\n mov eax, ecx\n mov dword ptr [edx + 4], eax\n-mov eax, dword ptr [edx + 8]\n-mov ecx, dword ptr [esi + 8]\n+mov eax, dword ptr [esi + 8]\n+mov ecx, dword ptr [edx + 8]\n cmp eax, ecx\n jl 0x2\n mov eax, ecx\n mov dword ptr [edx + 8], eax\n mov eax, dword ptr [esi + 0xc]\n mov ecx, dword ptr [edx + 0xc]\n-cmp ecx, eax\n+cmp eax, ecx\n jl 0x2\n-mov ecx, eax\n+mov eax, ecx\n pop edi\n-mov dword ptr [edx + 0xc], ecx\n+mov dword ptr [edx + 0xc], eax\n pop esi\n pop ebx\n add esp, 8\n ret 4\n mov eax, dword ptr [edi]\n mov ecx, edi\n call dword ptr [eax + 0x3c]\n pop edi\n pop esi\n pop ebx\n add esp, 8\n ret 4\n mov eax, dword ptr [edi]\n mov ecx, edi\n call dword ptr [eax + 0x3c]\n pop edi\n pop esi\n pop ebx\n add esp, 8\n ret 4\n-int3 "}, {"address": "0x100c4c90", "name": "MxRegionTopBottom::MxRegionTopBottom", "matching": 1.0, "diff": ""}, {"address": "0x100c4d80", "name": "MxCollection<MxRegionLeftRight *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x100c4d90", "name": "MxCollection<MxRegionLeftRight *>::~MxCollection<MxRegionLeftRight *>", "matching": 1.0, "diff": ""}, {"address": "0x100c4de0", "name": "MxCollection<MxRegionLeftRight *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c4df0", "name": "MxList<MxRegionLeftRight *>::~MxList<MxRegionLeftRight *>", "matching": 1.0, "diff": ""}, {"address": "0x100c4e80", "name": "MxPtrList<MxRegionLeftRight>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c4e90", "name": "MxRegionLeftRightList::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c4f00", "name": "MxPtrList<MxRegionLeftRight>::~MxPtrList<MxRegionLeftRight>", "matching": 1.0, "diff": ""}, {"address": "0x100c4f50", "name": "MxCollection<MxRegionLeftRight *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c4fc0", "name": "MxList<MxRegionLeftRight *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c5070", "name": "MxPtrList<MxRegionLeftRight>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c50e0", "name": "MxRegionTopBottom::MxRegionTopBottom", "matching": 0.9262295081967213, "diff": "--- \n\n+++ \n\n@@ -63,49 +63,49 @@\n\n je 0xf\n mov edx, dword ptr [esi + 8]\n mov ecx, dword ptr [esi]\n mov dword ptr [eax], ecx\n mov dword ptr [ebp - 0x10], eax\n mov dword ptr [eax + 4], edx\n jmp 0x7\n mov dword ptr [ebp - 0x10], 0\n mov ecx, dword ptr [ebp - 0x18]\n push 0xc\n-mov ebx, dword ptr [ecx + 8]\n+mov esi, dword ptr [ecx + 8]\n mov dword ptr [ebp - 4], 0xffffffff\n-mov esi, dword ptr [ebx + 0x14]\n+mov ebx, dword ptr [esi + 0x14]\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x1c], eax\n add esp, 4\n mov dword ptr [ebp - 4], 6\n mov edi, eax\n mov eax, 0\n test edi, edi\n je 0x11\n mov eax, dword ptr [ebp - 0x10]\n mov dword ptr [edi], eax\n mov eax, edi\n-mov dword ptr [edi + 4], esi\n+mov dword ptr [edi + 4], ebx\n mov dword ptr [edi + 8], 0\n mov dword ptr [ebp - 4], 0xffffffff\n-test esi, esi\n+test ebx, ebx\n je 0x5\n-mov dword ptr [esi + 8], eax\n+mov dword ptr [ebx + 8], eax\n jmp 0x3\n-mov dword ptr [ebx + 0x10], eax\n+mov dword ptr [esi + 0x10], eax\n mov ecx, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], ecx\n+mov dword ptr [esi + 0x14], eax\n+mov eax, dword ptr [ebp - 0x18]\n+inc dword ptr [esi + 8]\n pop esi\n-mov dword ptr [ebx + 0x14], eax\n-mov eax, dword ptr [ebp - 0x18]\n-inc dword ptr [ebx + 8]\n pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, dword ptr [ebp - 0x1c]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n mov eax, dword ptr [ebp - 0x14]"}, {"address": "0x100c5280", "name": "MxRegionTopBottom::FUN_100c5280", "matching": 0.9807692307692307, "diff": "--- \n\n+++ \n\n@@ -71,27 +71,27 @@\n\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n mov eax, dword ptr [ebp - 0x10]\n mov eax, dword ptr [eax]\n cmp esi, eax\n jle 0x2\n mov esi, eax\n mov ebx, dword ptr [ebp + 0xc]\n-cmp ebx, eax\n-jle 0x7e\n+cmp eax, ebx\n+jge 0x7e\n xor edi, edi\n mov eax, dword ptr [ebp - 0x10]\n mov eax, dword ptr [eax + 4]\n-cmp ebx, eax\n-jge 0x2\n+cmp eax, ebx\n+jle 0x2\n mov ebx, eax\n lea eax, [ebp - 0x20]\n lea ecx, [ebp - 0x34]\n push eax\n call MxListCursor<MxRegionLeftRight *>::operator= (FUNCTION)\n cmp dword ptr [ebp - 0x28], edi\n jne 0x8\n mov eax, dword ptr [ebp - 0x2c]\n mov ecx, dword ptr [eax + 0x10]\n jmp 0x6"}, {"address": "0x100c54f0", "name": "MxListCursor<MxRegionLeftRight *>::MxListCursor<MxRegionLeftRight *>", "matching": 1.0, "diff": ""}, {"address": "0x100c5560", "name": "MxRegionLeftRightListCursor::~MxRegionLeftRightListCursor", "matching": 1.0, "diff": ""}, {"address": "0x100c55b0", "name": "MxListCursor<MxRegionLeftRight *>::operator=", "matching": 1.0, "diff": ""}, {"address": "0x100c55d0", "name": "MxRegionTopBottom::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100c57b0", "name": "MxRegionTopBottom::FUN_100c57b0", "matching": 1.0, "diff": ""}, {"address": "0x100c58c0", "name": "MxList<MxRegionLeftRight *>::InsertEntry", "matching": 0.8214285714285714, "diff": "--- \n\n+++ \n\n@@ -11,39 +11,39 @@\n\n mov edi, ecx\n push 0xc\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov dword ptr [ebp - 4], 0\n mov esi, eax\n test esi, esi\n je 0x15\n mov eax, dword ptr [ebp + 8]\n-mov edx, dword ptr [ebp + 0xc]\n-mov ecx, dword ptr [ebp + 0x10]\n+mov ecx, dword ptr [ebp + 0xc]\n+mov edx, dword ptr [ebp + 0x10]\n mov dword ptr [esi], eax\n mov eax, esi\n-mov dword ptr [esi + 4], edx\n-mov dword ptr [esi + 8], ecx\n+mov dword ptr [esi + 4], ecx\n+mov dword ptr [esi + 8], edx\n jmp 0x8\n xor eax, eax\n-mov ecx, dword ptr [ebp + 0x10]\n-mov edx, dword ptr [ebp + 0xc]\n+mov ecx, dword ptr [ebp + 0xc]\n+mov edx, dword ptr [ebp + 0x10]\n mov dword ptr [ebp - 4], 0xffffffff\n-test edx, edx\n+test ecx, ecx\n je 0x5\n-mov dword ptr [edx + 8], eax\n+mov dword ptr [ecx + 8], eax\n jmp 0x3\n mov dword ptr [edi + 0x10], eax\n-test ecx, ecx\n+test edx, edx\n je 0x18\n-mov dword ptr [ecx + 4], eax\n+mov dword ptr [edx + 4], eax\n mov ecx, dword ptr [ebp - 0xc]\n inc dword ptr [edi + 8]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n mov esp, ebp\n pop ebp\n ret 0xc\n mov dword ptr [edi + 0x14], eax\n jmp -0x1a"}, {"address": "0x100c5970", "name": "MxList<MxRegionTopBottom *>::InsertEntry", "matching": 1.0, "diff": ""}, {"address": "0x100c5a20", "name": "MxListEntry<MxRegionTopBottom *>::MxListEntry<MxRegionTopBottom *>", "matching": 1.0, "diff": ""}, {"address": "0x100c5a40", "name": "MxList<MxRegionLeftRight *>::DeleteEntry", "matching": 1.0, "diff": ""}, {"address": "0x100c5a90", "name": "MxSmack::LoadHeader", "matching": 0.8285714285714286, "diff": "--- \n\n+++ \n\n@@ -1,23 +1,23 @@\n\n sub esp, 0xc\n push ebx\n push esi\n push edi\n push ebp\n xor ebp, ebp\n mov dword ptr [esp + 0x14], ebp\n mov dword ptr [esp + 0x10], ebp\n cmp dword ptr [esp + 0x20], ebp\n-je 0x283\n+je 0x26e\n mov ebx, dword ptr [esp + 0x24]\n cmp ebx, ebp\n-je 0x277\n+je 0x262\n mov edi, ebx\n mov dword ptr [ebx + 0x6a4], ebp\n mov esi, dword ptr [esp + 0x20]\n mov ecx, 0x1a\n mov dword ptr [ebx + 0x6a0], ebp\n mov dword ptr [ebx + 0x6a8], ebp\n mov dword ptr [ebx + 0x6ac], ebp\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, dword ptr [ebx + 0x14]\n mov eax, dword ptr [ebx + 0xc]\n@@ -25,113 +25,105 @@\n\n and ecx, 1\n add dword ptr [esp + 0x20], 0x68\n lea ecx, [eax + ecx*4]\n push ecx\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [esp + 0x1c], eax\n add esp, 4\n cmp eax, ebp\n jne 0xa\n mov ebp, 0xffffffff\n-jmp 0x1fb\n+jmp 0x1e6\n mov edx, dword ptr [ebx + 0x14]\n mov eax, dword ptr [ebx + 0xc]\n shl eax, 2\n and edx, 1\n mov edi, dword ptr [esp + 0x18]\n mov esi, dword ptr [esp + 0x20]\n lea edx, [eax + edx*4]\n mov ecx, edx\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, edx\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n-mov eax, dword ptr [ebx + 0x14]\n-mov ecx, dword ptr [ebx + 0xc]\n-shl ecx, 2\n-and eax, 1\n+mov ecx, dword ptr [ebx + 0x14]\n+mov eax, dword ptr [ebx + 0xc]\n+and ecx, 1\n+mov edx, dword ptr [esp + 0x20]\n+lea esi, [eax + ecx]\n+add ecx, eax\n mov dword ptr [ebx + 0x6b0], 0\n-lea eax, [ecx + eax*4]\n-xor edx, edx\n-add dword ptr [esp + 0x20], eax\n-mov eax, dword ptr [ebx + 0x14]\n-and eax, 1\n-add eax, dword ptr [ebx + 0xc]\n-je 0x25\n-mov ecx, dword ptr [esp + 0x18]\n-mov eax, dword ptr [ecx]\n+lea esi, [edx + esi*4]\n+mov dword ptr [esp + 0x20], esi\n+je 0x1c\n+mov esi, dword ptr [esp + 0x18]\n+mov edx, ecx\n+mov eax, dword ptr [esi]\n cmp dword ptr [ebx + 0x6b0], eax\n jae 0x6\n mov dword ptr [ebx + 0x6b0], eax\n-add ecx, 4\n-inc edx\n-mov eax, dword ptr [ebx + 0x14]\n-and eax, 1\n-add eax, dword ptr [ebx + 0xc]\n-cmp eax, edx\n-ja -0x21\n-mov eax, dword ptr [ebx + 0x14]\n-and eax, 1\n-add eax, dword ptr [ebx + 0xc]\n-push eax\n+add esi, 4\n+dec edx\n+jne -0x16\n+push ecx\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [esp + 0x18], eax\n add esp, 4\n test eax, eax\n jne 0xa\n mov ebp, 0xffffffff\n-jmp 0x163\n+jmp 0x165\n mov eax, dword ptr [ebx + 0x14]\n mov edi, dword ptr [esp + 0x14]\n and eax, 1\n mov esi, dword ptr [esp + 0x20]\n add eax, dword ptr [ebx + 0xc]\n mov ecx, eax\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n mov eax, dword ptr [ebx + 0x14]\n+mov ecx, dword ptr [ebx + 0x34]\n and eax, 1\n+add ecx, 0x1000\n add eax, dword ptr [ebx + 0xc]\n add dword ptr [esp + 0x20], eax\n-mov eax, dword ptr [ebx + 0x34]\n-add eax, 0x1000\n-cmp eax, 0x2000\n+cmp ecx, 0x2000\n ja 0x5\n-mov eax, 0x2000\n-push eax\n+mov ecx, 0x2000\n+push ecx\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [esp + 0x14], eax\n add esp, 4\n test eax, eax\n jne 0xa\n mov ebp, 0xffffffff\n jmp 0x108\n mov eax, dword ptr [ebx + 0x34]\n mov edi, dword ptr [esp + 0x10]\n add edi, 0x1000\n mov esi, dword ptr [esp + 0x20]\n mov ecx, eax\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n call _SmackGetSizeTables (FUNCTION)\n mov ecx, dword ptr [ebx + 0x38]\n+add ecx, eax\n add ecx, dword ptr [ebx + 0x3c]\n add ecx, dword ptr [ebx + 0x40]\n add ecx, dword ptr [ebx + 0x44]\n-add ecx, eax\n push ecx\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov ecx, eax\n mov dword ptr [ebx + 0x6ac], eax\n test ecx, ecx\n jne 0xa\n mov ebp, 0xffffffff\n jmp 0xb7\n mov eax, dword ptr [ebx + 0x44]\n@@ -199,10 +191,22 @@\n\n mov dword ptr [ecx + 4], eax\n mov eax, dword ptr [esp + 0x14]\n mov ecx, dword ptr [esp + 0x18]\n mov edx, dword ptr [esp + 0x10]\n mov dword ptr [ebx + 0x6a4], eax\n mov eax, ebp\n mov dword ptr [ebx + 0x6a0], ecx\n pop ebp\n mov dword ptr [ebx + 0x6a8], edx\n pop edi\n+pop esi\n+pop ebx\n+add esp, 0xc\n+ret \n+mov ebp, 0xffffffff\n+mov eax, ebp\n+pop ebp\n+pop edi\n+pop esi\n+pop ebx\n+add esp, 0xc\n+ret "}, {"address": "0x100c5d40", "name": "MxSmack::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c5db0", "name": "MxSmack::LoadFrame", "matching": 1.0, "diff": ""}, {"address": "0x100c6050", "name": "MxSmack::GetRect", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -28,54 +28,54 @@\n\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret \n mov eax, dword ptr [esp + 0x1c]\n mov word ptr [eax], 2\n mov ebp, dword ptr [esi]\n mov ecx, dword ptr [esi + 4]\n-mov edi, dword ptr [esi + 8]\n-mov ebx, dword ptr [esi + 0xc]\n-add edi, ebp\n-add ebx, ecx\n+mov ebx, dword ptr [esi + 8]\n+mov edi, dword ptr [esi + 0xc]\n+add ebx, ebp\n+add edi, ecx\n mov eax, dword ptr [esp + 0x18]\n push esi\n mov dword ptr [esp + 0x14], ecx\n push eax\n call _SmackGetRect (FUNCTION)\n add esp, 8\n test al, al\n je 0x29\n mov eax, dword ptr [esi]\n cmp ebp, eax\n jbe 0x2\n mov ebp, eax\n add eax, dword ptr [esi + 8]\n-cmp edi, eax\n+cmp ebx, eax\n jae 0x2\n-mov edi, eax\n-mov ebx, dword ptr [esi + 4]\n+mov ebx, eax\n+mov edi, dword ptr [esi + 4]\n push esi\n-add ebx, dword ptr [esi + 0xc]\n+add edi, dword ptr [esi + 0xc]\n mov eax, dword ptr [esp + 0x1c]\n push eax\n call _SmackGetRect (FUNCTION)\n add esp, 8\n test al, al\n jne -0x29\n mov eax, dword ptr [esp + 0x1c]\n mov ecx, dword ptr [esp + 0x24]\n mov word ptr [eax], 0\n mov edx, dword ptr [esp + 0x10]\n mov al, 1\n mov dword ptr [ecx], ebp\n pop ebp\n mov dword ptr [ecx + 4], edx\n-mov dword ptr [ecx + 8], edi\n-mov dword ptr [ecx + 0xc], ebx\n+mov dword ptr [ecx + 8], ebx\n+mov dword ptr [ecx + 0xc], edi\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret "}, {"address": "0x100c6110", "name": "MxRAMStreamController::Open", "matching": 1.0, "diff": ""}, {"address": "0x100c6210", "name": "MxRAMStreamController::VTable0x20", "matching": 1.0, "diff": ""}, {"address": "0x100c6320", "name": "MxRAMStreamController::VTable0x24", "matching": 1.0, "diff": ""}, {"address": "0x100c63c0", "name": "MxRAMStreamController::DeserializeObject", "matching": 1.0, "diff": ""}, {"address": "0x100c6470", "name": "MxDSBuffer::MxDSBuffer", "matching": 1.0, "diff": ""}, {"address": "0x100c6500", "name": "MxDSBuffer::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c6510", "name": "MxDSBuffer::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c6530", "name": "MxDSBuffer::~MxDSBuffer", "matching": 0.425531914893617, "diff": "--- \n\n+++ \n\n@@ -2,93 +2,93 @@\n\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n mov dword ptr [ecx], MxDSBuffer (VTABLE)\n sub esp, 4\n mov dword ptr [ebp - 0x10], ecx\n mov dword ptr [ebp - 4], 0\n-push ebx\n push esi\n+mov eax, dword ptr [ecx + 8]\n push edi\n-mov esi, dword ptr [ecx + 8]\n-test esi, esi\n-je 0x9d\n-mov eax, dword ptr [ecx + 0x24]\n test eax, eax\n-je 0x13\n-cmp eax, 1\n-je 0x84\n-cmp eax, 3\n-je 0x7f\n-jmp 0x83\n-mov eax, dword ptr [ebp - 0x10]\n-mov ebx, dword ptr [eax + 0x28]\n+je 0xb0\n+mov ecx, dword ptr [ecx + 0x24]\n+test ecx, ecx\n+je 0x17\n+cmp ecx, 1\n+je 0x97\n+cmp ecx, 3\n+je 0x8e\n+jmp 0x92\n+mov ecx, dword ptr [ebp - 0x10]\n+mov edi, dword ptr [ecx + 0x28]\n call Streamer (FUNCTION)\n-shr ebx, 0xa\n-mov edi, eax\n-cmp ebx, 0x40\n+shr edi, 0xa\n+mov esi, eax\n+cmp edi, 0x40\n je 0xa\n-cmp ebx, 0x80\n-je 0x30\n-jmp 0x64\n-sub esi, dword ptr [edi + 0x14]\n-mov ecx, dword ptr [edi + 0x18]\n+cmp edi, 0x80\n+je 0x37\n+jmp 0x73\n+mov ecx, dword ptr [ebp - 0x10]\n+sub edx, edx\n+mov eax, dword ptr [ecx + 8]\n+mov ecx, dword ptr [esi + 0x18]\n shl ecx, 0xa\n-mov eax, esi\n-sub edx, edx\n+sub eax, dword ptr [esi + 0x14]\n div ecx\n-mov esi, eax\n mov edx, 1\n-and esi, 0xffffffe7\n-and al, 0x1f\n-shr esi, 3\n-mov cl, al\n-shl edx, cl\n-test dword ptr [esi + edi + 0x1c], edx\n-je 0x3c\n-xor dword ptr [esi + edi + 0x1c], edx\n-jmp 0x36\n-mov eax, esi\n-mov ecx, dword ptr [edi + 0x24]\n-shl ecx, 0xa\n-sub eax, dword ptr [edi + 0x20]\n-sub edx, edx\n-div ecx\n mov ecx, eax\n-mov edx, 1\n+and cl, 0x1f\n and eax, 0xffffffe7\n-and cl, 0x1f\n shr eax, 3\n shl edx, cl\n-test dword ptr [eax + edi + 0x28], edx\n+lea ecx, [esi + eax + 0x1c]\n+mov eax, dword ptr [ecx]\n+test eax, edx\n+je 0x44\n+xor edx, eax\n+mov dword ptr [ecx], edx\n+jmp 0x3e\n+mov ecx, dword ptr [ebp - 0x10]\n+sub edx, edx\n+mov eax, dword ptr [ecx + 8]\n+mov ecx, dword ptr [esi + 0x18]\n+shl ecx, 0xa\n+sub eax, dword ptr [esi + 0x14]\n+div ecx\n+mov edx, 1\n+mov ecx, eax\n+and cl, 0x1f\n+and eax, 0xffffffe7\n+shr eax, 3\n+shl edx, cl\n+lea ecx, [esi + eax + 0x28]\n+mov eax, dword ptr [ecx]\n+test edx, eax\n je 0xf\n-xor dword ptr [edi + eax + 0x28], edx\n+xor eax, edx\n+mov dword ptr [ecx], eax\n jmp 0x9\n-push esi\n+push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n-xor ecx, ecx\n-mov eax, dword ptr [ebp - 0x10]\n+xor eax, eax\n+mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 4], 0xffffffff\n-mov dword ptr [eax + 0x14], ecx\n-mov dword ptr [eax + 0x1c], ecx\n+mov dword ptr [ecx + 0x14], eax\n+mov dword ptr [ecx + 0x1c], eax\n call <OFFSET5>\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax\n pop esi\n-pop ebx\n mov esp, ebp\n pop ebp\n ret \n mov eax, <OFFSET6>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxCore::~MxCore (FUNCTION)\n-int3 \n-sub esp, 4\n-mov dword ptr [esp], 0xffffffff\n-push ebx\n-push esi"}, {"address": "0x100c6640", "name": "MxDSBuffer::AllocateBuffer", "matching": 0.8450704225352113, "diff": "--- \n\n+++ \n\n@@ -2,77 +2,74 @@\n\n mov dword ptr [esp], 0xffffffff\n push ebx\n push esi\n mov esi, dword ptr [esp + 0x14]\n push edi\n push ebp\n mov edi, ecx\n test esi, esi\n je 0xe\n cmp esi, 1\n-je 0xcf\n-jmp 0xda\n+je 0xd5\n+jmp 0xe0\n call Streamer (FUNCTION)\n mov ecx, dword ptr [esp + 0x18]\n shr ecx, 0xa\n cmp ecx, 0x40\n-je 0x12\n+je 0x14\n cmp ecx, 0x80\n-je 0x5f\n-xor ecx, ecx\n-mov dword ptr [edi + 8], ecx\n-jmp 0xb7\n+je 0x63\n+mov dword ptr [edi + 8], 0\n+jmp 0xbb\n xor ebx, ebx\n mov edx, ebx\n mov ebp, 1\n and edx, 0xffffffe7\n mov ecx, ebx\n shr edx, 3\n and cl, 0x1f\n shl ebp, cl\n test dword ptr [edx + eax + 0x1c], ebp\n-je 0x10\n+je 0x12\n inc ebx\n cmp ebx, 0x16\n jb -0x20\n-xor ecx, ecx\n-mov dword ptr [edi + 8], ecx\n-jmp 0x8b\n+mov dword ptr [edi + 8], 0\n+jmp 0x8d\n mov ebp, ebx\n mov edx, 1\n and ebp, 0xffffffe7\n mov ecx, ebx\n shr ebp, 3\n and cl, 0x1f\n shl edx, cl\n xor dword ptr [ebp + eax + 0x1c], edx\n mov ecx, dword ptr [eax + 0x18]\n imul ecx, ebx\n shl ecx, 0xa\n add ecx, dword ptr [eax + 0x14]\n mov dword ptr [edi + 8], ecx\n-jmp 0x62\n+jmp 0x64\n xor ebx, ebx\n mov edx, ebx\n mov ebp, 1\n and edx, 0xffffffe7\n mov ecx, ebx\n shr edx, 3\n and cl, 0x1f\n shl ebp, cl\n test dword ptr [edx + eax + 0x28], ebp\n-je 0xd\n+je 0xf\n inc ebx\n cmp ebx, 2\n jb -0x20\n-xor ecx, ecx\n-mov dword ptr [edi + 8], ecx\n+mov dword ptr [edi + 8], 0\n jmp 0x39\n mov edx, ebx\n mov ebp, 1\n and edx, 0xffffffe7\n mov ecx, ebx\n shr edx, 3\n and cl, 0x1f\n shl ebp, cl\n xor dword ptr [edx + eax + 0x28], ebp\n mov ecx, dword ptr [eax + 0x24]\n@@ -96,16 +93,10 @@\n\n mov dword ptr [edi + 0x2c], eax\n mov dword ptr [edi + 0x28], eax\n mov dword ptr [esp + 0x10], 0\n mov eax, dword ptr [esp + 0x10]\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret 8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100c6780", "name": "MxDSBuffer::SetBufferPointer", "matching": 1.0, "diff": ""}, {"address": "0x100c67b0", "name": "MxDSBuffer::FUN_100c67b0", "matching": 0.7649769585253456, "diff": "--- \n\n+++ \n\n@@ -22,89 +22,86 @@\n\n pop ebx\n add esp, 4\n ret 0xc\n mov edi, dword ptr [esp + 0x20]\n mov ecx, dword ptr [esp + 0x10]\n call MxDSBuffer::SkipToData (FUNCTION)\n test eax, eax\n je 0x23\n mov ecx, dword ptr [edi]\n test ecx, ecx\n-jne 0x2b\n+jne 0x29\n mov ecx, dword ptr [esp + 0x1c]\n push edi\n push ecx\n push eax\n mov ecx, dword ptr [esp + 0x1c]\n push esi\n call MxDSBuffer::CreateObject (FUNCTION)\n cmp eax, -1\n mov ebx, eax\n-je 0x7\n+je 0x7b\n cmp ebx, 1\n jne -0x30\n-xor ebx, ebx\n-mov eax, ebx\n+xor eax, eax\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret 0xc\n mov ebp, dword ptr [ecx + 0xa0]\n push eax\n mov ecx, ebp\n call MxDSBuffer::CalcBytesRemaining (FUNCTION)\n test eax, eax\n-jne -0x1e\n+jne 0x64\n cmp dword ptr [ebp + 0x2c], 0\n-jne -0x56\n+jne -0x54\n mov ecx, dword ptr [esp + 0x10]\n push edi\n mov edx, dword ptr [esp + 0x20]\n mov eax, dword ptr [ecx + 0x30]\n push edx\n mov dword ptr [ebp + 0x30], eax\n mov ecx, dword ptr [ebp + 8]\n push ecx\n push esi\n mov ecx, ebp\n call MxDSBuffer::CreateObject (FUNCTION)\n mov ebx, eax\n test ebx, ebx\n-jne -0x46\n+jne 0x48\n cmp word ptr [ebp + 0x20], 0\n je 0x14\n push ebp\n mov ecx, esi\n call MxDiskStreamController::InsertToList74 (FUNCTION)\n mov eax, dword ptr [edi]\n mov dword ptr [eax + 0xa0], 0\n mov eax, dword ptr [edi]\n mov ecx, esi\n push eax\n call MxDiskStreamController::FUN_100c7cb0 (FUNCTION)\n mov dword ptr [edi], 0\n-jmp -0xa8\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-push ebx\n-push esi\n-push edi\n-mov ebx, ecx\n-mov esi, dword ptr [esp + 0x14]\n-push ebp\n-test esi, esi\n-jne 0xc\n-mov eax, 0xffffffff\n+jmp -0xa6\n+mov eax, ebx\n pop ebp\n pop edi\n pop esi\n pop ebx\n+add esp, 4\n+ret 0xc\n+mov eax, ebx\n+pop ebp\n+pop edi\n+pop esi\n+pop ebx\n+add esp, 4\n+ret 0xc\n+mov eax, ebx\n+pop ebp\n+pop edi\n+pop esi\n+pop ebx\n+add esp, 4\n+ret 0xc"}, {"address": "0x100c68a0", "name": "MxDSBuffer::CreateObject", "matching": 1.0, "diff": ""}, {"address": "0x100c6960", "name": "MxDSBuffer::StartPresenterFromAction", "matching": 1.0, "diff": ""}, {"address": "0x100c6a50", "name": "MxDSBuffer::ParseChunk", "matching": 0.7903930131004366, "diff": "--- \n\n+++ \n\n@@ -34,157 +34,158 @@\n\n mov esp, ebp\n pop ebp\n ret 0x14\n mov esi, dword ptr [ebp + 0x18]\n mov eax, dword ptr [eax + 0xa8]\n lea ecx, [esi + 8]\n add dword ptr [esi + 0x10], eax\n mov dword ptr [ebp - 0x18], ecx\n mov ax, word ptr [ecx]\n test al, 0x10\n-jne 0x10f\n+jne 0x110\n test al, 2\n-je 0xc7\n+je 0xc8\n mov ecx, dword ptr [edi + 0x30]\n lea ebx, [esi + 0xc]\n mov eax, dword ptr [ebx]\n push eax\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x34]\n test al, al\n-je 0xb1\n+je 0xb2\n mov ecx, dword ptr [edi + 0x30]\n test byte ptr [ecx + 0x30], 4\n-je 0x7a\n+je 0x7b\n cmp dword ptr [ecx + 0x3c], 1\n jg 0xa\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x24]\n cmp eax, -1\n-jne 0x6a\n-mov ecx, dword ptr [ebx]\n-mov eax, dword ptr [ebp + 0x10]\n-mov ebx, dword ptr [ebp + 8]\n-cmp dword ptr [eax + 0x1c], ecx\n-jne 0x4d\n-mov ecx, dword ptr [ebx + 0x28]\n+jne 0x6b\n+mov eax, dword ptr [ebx]\n+mov ebx, dword ptr [ebp + 0x10]\n+cmp dword ptr [ebx + 0x1c], eax\n+jne 0x51\n+mov eax, dword ptr [ebp + 8]\n+mov ecx, dword ptr [eax + 0x28]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x28]\n mov ecx, dword ptr [edi + 0x30]\n mov edx, dword ptr [ecx + 0x1c]\n mov eax, dword ptr [eax + edx*4]\n sub edx, edx\n mov dword ptr [ecx + 0x94], eax\n mov ecx, dword ptr [edi + 0x28]\n div ecx\n imul eax, ecx\n mov ecx, dword ptr [edi + 0x30]\n mov dword ptr [ecx + 0x98], eax\n mov ecx, dword ptr [edi + 0x30]\n push ecx\n-mov ecx, ebx\n+mov ecx, dword ptr [ebp + 8]\n call MxStreamController::FindNextActionDataStartFromStreamingAction (FUNCTION)\n test eax, eax\n je 0xc\n mov ecx, dword ptr [edi + 0x30]\n mov edx, dword ptr [ecx + 0x98]\n mov dword ptr [eax + 0x10], edx\n mov ecx, dword ptr [edi + 0x30]\n call MxDSStreamingAction::FUN_100cd2d0 (FUNCTION)\n test esi, esi\n je 0x8\n push 1\n mov eax, dword ptr [esi]\n mov ecx, esi\n call dword ptr [eax]\n xor esi, esi\n jmp 0x31\n-mov ecx, dword ptr [ebx]\n-mov eax, dword ptr [ebp + 0x10]\n-cmp dword ptr [eax + 0x1c], ecx\n-jne 0x24\n-push eax\n-mov ebx, dword ptr [ebp + 8]\n-mov ecx, ebx\n-mov edi, dword ptr [ebx]\n+mov eax, dword ptr [ebx]\n+mov ebx, dword ptr [ebp + 0x10]\n+cmp dword ptr [ebx + 0x1c], eax\n+jne 0x27\n+push ebx\n+mov eax, dword ptr [ebp + 8]\n+mov ecx, eax\n+mov edi, dword ptr [eax]\n call dword ptr [edi + 0x30]\n test eax, eax\n jne 0x18\n-mov ecx, dword ptr [ebx + 0x28]\n-mov eax, dword ptr [ebp + 0x10]\n-push eax\n+mov eax, dword ptr [ebp + 8]\n+push ebx\n+mov ecx, dword ptr [eax + 0x28]\n mov edi, dword ptr [ecx]\n call dword ptr [edi + 0x20]\n mov dword ptr [ebp - 0x14], 1\n jmp 0x3\n-mov ebx, dword ptr [ebp + 8]\n-test esi, esi\n-je 0x101\n-mov eax, dword ptr [ebp + 0x10]\n-add ebx, 0x30\n-mov ax, word ptr [eax + 0x24]\n-mov ecx, esi\n-push eax\n-push 1\n-push ebx\n+mov ebx, dword ptr [ebp + 0x10]\n+test esi, esi\n+je 0xff\n+mov ax, word ptr [ebx + 0x24]\n+mov ecx, esi\n+push eax\n+push 1\n+mov eax, dword ptr [ebp + 8]\n+add eax, 0x30\n+push eax\n call MxStreamChunk::SendChunk (FUNCTION)\n test eax, eax\n-je 0xe4\n-test esi, esi\n-je 0xdc\n+je 0xe2\n+test esi, esi\n+je 0xda\n push 1\n mov eax, dword ptr [esi]\n mov ecx, esi\n call dword ptr [eax]\n mov eax, dword ptr [ebp - 0x14]\n-jmp -0x13f\n+jmp -0x140\n call MxDSChunk::GetHeaderSize (FUNCTION)\n mov ecx, dword ptr [esi + 0x14]\n push 0x34\n mov edi, 0\n lea ebx, [ecx + eax + 8]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [ebp - 0x10], eax\n mov dword ptr [ebp - 4], 0\n test eax, eax\n je 0x9\n mov ecx, eax\n call MxDSBuffer::MxDSBuffer (FUNCTION)\n mov edi, eax\n mov dword ptr [ebp - 4], 0xffffffff\n test edi, edi\n-je 0xac\n+je 0xaa\n push 1\n mov ecx, edi\n push ebx\n call MxDSBuffer::AllocateBuffer (FUNCTION)\n test eax, eax\n-jne 0x8e\n+jne 0x8c\n mov eax, dword ptr [ebp + 0xc]\n mov ecx, edi\n push eax\n call MxDSBuffer::CalcBytesRemaining (FUNCTION)\n test eax, eax\n-jne 0x7f\n+jne 0x7d\n push 0xb4\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [ebp - 0x10], eax\n mov dword ptr [ebp - 4], 1\n test eax, eax\n-mov eax, 0\n-je 0xc\n-mov eax, dword ptr [ebp + 0x10]\n-mov ecx, dword ptr [ebp - 0x10]\n-push eax\n+je 0xd\n+mov ebx, dword ptr [ebp + 0x10]\n+mov ecx, eax\n+push ebx\n call MxDSStreamingAction::MxDSStreamingAction (FUNCTION)\n+jmp 0x2\n+xor eax, eax\n mov ebx, dword ptr [ebp + 0x14]\n test eax, eax\n mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebx], eax\n je 0x43\n mov eax, dword ptr [edi + 8]\n push eax\n call MxStreamChunk::IntoFlags (FUNCTION)\n add esp, 4\n mov ecx, dword ptr [ebp - 0x18]\n@@ -193,36 +194,37 @@\n\n mov word ptr [eax], cx\n mov ecx, esi\n test ecx, ecx\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov eax, dword ptr [ebx]\n mov dword ptr [eax + 0xa0], edi\n mov eax, dword ptr [ebp - 0x14]\n-jmp -0x213\n+jmp -0x212\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n test edi, edi\n je 0x8\n push 1\n mov eax, dword ptr [edi]\n mov ecx, edi\n call dword ptr [eax]\n mov ecx, esi\n test ecx, ecx\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov eax, 0xffffffff\n-jmp -0x242\n+jmp -0x241\n mov eax, <OFFSET13>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n+ret "}, {"address": "0x100c6d00", "name": "MxDSBuffer::ReadChunk", "matching": 1.0, "diff": ""}, {"address": "0x100c6df0", "name": "MxDSBuffer::SkipToData", "matching": 0.5857142857142857, "diff": "--- \n\n+++ \n\n@@ -1,71 +1,69 @@\n\n push esi\n xor eax, eax\n+push edi\n cmp dword ptr [ecx + 0xc], eax\n-je 0x83\n-mov esi, dword ptr [ecx + 0xc]\n-mov edx, dword ptr [esi]\n+je 0x85\n+mov edi, dword ptr [ecx + 0xc]\n+mov edx, dword ptr [edi]\n cmp edx, 0x5453494c\n-ja 0x18\n-je 0x44\n+ja 0x1d\n+je 0x49\n cmp edx, 0x46464952\n-je 0x3c\n+je 0x41\n xor eax, eax\n+pop edi\n+mov dword ptr [ecx + 0xc], 0\n+mov dword ptr [ecx + 0x10], 0\n pop esi\n-mov dword ptr [ecx + 0xc], 0\n-mov dword ptr [ecx + 0x10], eax\n ret \n cmp edx, 0x624f784d\n ja 0xc\n-je 0x59\n+je 0x57\n cmp edx, 0x6144784d\n je 0x24\n-jmp -0x22\n+jmp -0x27\n cmp edx, 0x6448784d\n je 0x22\n cmp edx, 0x6843784d\n-je 0x3f\n+je 0x3d\n cmp edx, 0x7453784d\n je 0xa\n-jmp -0x3c\n-add esi, 0xc\n-mov dword ptr [ecx + 0xc], esi\n+jmp -0x41\n+add edi, 0xc\n+mov dword ptr [ecx + 0xc], edi\n jmp 0x13\n-add esi, 8\n-mov dword ptr [ecx + 0xc], esi\n+add edi, 8\n+mov dword ptr [ecx + 0xc], edi\n jmp 0xb\n-mov edx, dword ptr [esi + 4]\n-add edx, esi\n+mov edx, dword ptr [edi + 4]\n+add edx, edi\n add edx, 8\n mov dword ptr [ecx + 0xc], edx\n mov edx, dword ptr [ecx + 0x28]\n add edx, dword ptr [ecx + 8]\n sub edx, 8\n cmp edx, dword ptr [ecx + 0xc]\n-jae -0x7c\n-mov dword ptr [ecx + 0xc], 0\n+jae -0x85\n+pop edi\n+mov dword ptr [ecx + 0x10], eax\n pop esi\n-mov dword ptr [ecx + 0x10], eax\n ret \n mov eax, dword ptr [ecx + 0xc]\n-mov edx, dword ptr [eax + 4]\n+mov edx, dword ptr [edi + 4]\n mov esi, edx\n and esi, 1\n add esi, edx\n-lea edx, [esi + eax]\n+lea edx, [esi + edi]\n mov esi, dword ptr [ecx + 0x28]\n add esi, dword ptr [ecx + 8]\n mov dword ptr [ecx + 0xc], edx\n add edx, 8\n sub esi, 8\n mov dword ptr [ecx + 0xc], edx\n cmp esi, edx\n-jae -0x2b\n-pop esi\n+jae -0x2c\n+pop edi\n mov dword ptr [ecx + 0x10], eax\n mov dword ptr [ecx + 0xc], 0\n+pop esi\n ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100c6ec0", "name": "MxDSBuffer::ReleaseRef", "matching": 1.0, "diff": ""}, {"address": "0x100c6ee0", "name": "MxDSBuffer::AddRef", "matching": 1.0, "diff": ""}, {"address": "0x100c6ef0", "name": "MxDSBuffer::CalcBytesRemaining", "matching": 1.0, "diff": ""}, {"address": "0x100c6f80", "name": "MxDSBuffer::FUN_100c6f80", "matching": 1.0, "diff": ""}, {"address": "0x100c6fa0", "name": "MxDSBuffer::FUN_100c6fa0", "matching": 0.1414141414141414, "diff": "--- \n\n+++ \n\n@@ -1,49 +1,50 @@\n\n mov edx, dword ptr [esp + 4]\n-sub esp, 4\n+push esi\n+mov eax, edx\n test edx, edx\n-push ebx\n-push esi\n-push edi\n-je 0x6\n-mov dword ptr [esp + 0xc], edx\n-jmp 0x7\n+jne 0x3\n mov eax, dword ptr [ecx + 8]\n-mov dword ptr [esp + 0xc], eax\n mov esi, dword ptr [ecx + 0x28]\n-mov eax, dword ptr [ecx + 8]\n-lea ecx, [esi + eax - 8]\n-cmp dword ptr [esp + 0xc], ecx\n-ja 0xa7\n-mov esi, 0xc\n-mov edi, 8\n-mov eax, dword ptr [esp + 0xc]\n-mov eax, dword ptr [eax]\n-cmp eax, 0x5453494c\n-ja 0x14\n-je 0x4d\n-cmp eax, 0x46464952\n-je 0x46\n+mov ecx, dword ptr [ecx + 8]\n+lea esi, [esi + ecx - 8]\n+cmp esi, eax\n+jb 0x6a\n+mov ecx, dword ptr [eax]\n+cmp ecx, 0x5453494c\n+ja 0xc\n+je 0x38\n+cmp ecx, 0x46464952\n+je 0x30\n+jmp 0x50\n+cmp ecx, 0x624f784d\n+ja 0xc\n+je 0x2e\n+cmp ecx, 0x6144784d\n+je 0x21\n+jmp 0x3c\n+cmp ecx, 0x6448784d\n+je 0x2c\n+cmp ecx, 0x6843784d\n+je 0x14\n+cmp ecx, 0x7453784d\n+je 0x7\n+jmp 0x22\n+add eax, 0xc\n+jmp 0x1d\n+add eax, 8\n+jmp 0x18\n+cmp eax, edx\n+jne 0x1a\n+mov ecx, eax\n+and ecx, 1\n+add eax, ecx\n+add eax, 8\n+jmp 0x8\n+mov ecx, dword ptr [eax + 4]\n+add ecx, 8\n+add eax, ecx\n+cmp esi, eax\n+jae -0x6a\n xor eax, eax\n-pop edi\n pop esi\n-pop ebx\n-add esp, 4\n ret 4\n-cmp eax, 0x624f784d\n-ja 0x14\n-je 0x3e\n-cmp eax, 0x6144784d\n-je 0x31\n-xor eax, eax\n-pop edi\n-pop esi\n-pop ebx\n-add esp, 4\n-ret 4\n-cmp eax, 0x6448784d\n-je 0x43\n-cmp eax, 0x6843784d\n-je 0x1e\n-cmp eax, 0x7453784d\n-je 0x11\n-xor eax, eax"}, {"address": "0x100c7090", "name": "MxDSBuffer::FUN_100c7090", "matching": 1.0, "diff": ""}, {"address": "0x100c70d0", "name": "MxDSBuffer::Append", "matching": 1.0, "diff": ""}, {"address": "0x100c7120", "name": "MxDiskStreamController::MxDiskStreamController", "matching": 1.0, "diff": ""}, {"address": "0x100c7330", "name": "list<MxDSAction *,allocator<MxDSAction *> >::_Buynode", "matching": 1.0, "diff": ""}, {"address": "0x100c7360", "name": "MxDiskStreamController::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c7370", "name": "MxDiskStreamController::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c7420", "name": "list<MxDSBuffer *,allocator<MxDSBuffer *> >::~list<MxDSBuffer *,allocator<MxDSBuffer *> >", "matching": 0.972972972972973, "diff": "--- \n\n+++ \n\n@@ -16,21 +16,21 @@\n\n mov eax, dword ptr [eax]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [edx]\n mov eax, dword ptr [esp + 8]\n push eax\n mov edx, dword ptr [eax]\n mov dword ptr [edx + 4], ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 8]\n-cmp dword ptr [esp + 0x10], edi\n+cmp edi, dword ptr [esp + 0x10]\n jne -0x2e\n mov eax, dword ptr [esi + 4]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n mov dword ptr [esi + 4], 0\n add esp, 4\n mov dword ptr [esi + 8], 0\n pop edi\n pop esi\n add esp, 0xc"}, {"address": "0x100c7490", "name": "list<MxDSBuffer *,allocator<MxDSBuffer *> >::_Buynode", "matching": 1.0, "diff": ""}, {"address": "0x100c74c0", "name": "MxDiskStreamController::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c74e0", "name": "List<MxDSBuffer *>::~List<MxDSBuffer *>", "matching": 1.0, "diff": ""}, {"address": "0x100c7530", "name": "MxDiskStreamController::~MxDiskStreamController", "matching": 0.9354838709677419, "diff": "--- \n\n+++ \n\n@@ -1,31 +1,34 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-mov dword ptr [ecx], MxDiskStreamController (VTABLE)\n sub esp, 0xa4\n-lea eax, [ecx + 8]\n mov dword ptr [ebp - 4], 6\n push ebx\n mov dword ptr [ebp - 0x10], ecx\n push esi\n+mov dword ptr [ecx], MxDiskStreamController (VTABLE)\n+mov eax, dword ptr [ebp - 0x10]\n lea ecx, [ebp - 0x1c]\n+add eax, 8\n push eax\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n mov byte ptr [ebp - 4], 7\n mov byte ptr [ecx + 0xc4], 0\n+mov ecx, dword ptr [ebp - 0x10]\n mov byte ptr [ecx + 0x70], 0\n+mov ecx, dword ptr [ebp - 0x10]\n mov esi, dword ptr [ecx + 0x28]\n test esi, esi\n je 0x20\n lea ecx, [ebp - 0xb0]\n call MxDSAction::MxDSAction (FUNCTION)\n push eax\n mov ecx, esi\n mov byte ptr [ebp - 4], 8\n mov eax, dword ptr [esi]\n call dword ptr [eax + 0x20]\n@@ -34,23 +37,23 @@\n\n xor esi, esi\n mov eax, dword ptr [ebp - 0x10]\n cmp dword ptr [eax + 0x44], esi\n je 0x38\n mov ecx, dword ptr [eax + 0x40]\n mov eax, dword ptr [ecx]\n lea ecx, [ebp - 0x18]\n push eax\n push ecx\n mov edx, dword ptr [eax + 8]\n+mov dword ptr [ebp - 0x20], edx\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x3c\n-mov dword ptr [ebp - 0x20], edx\n call list<MxDSAction *,allocator<MxDSAction *> >::erase (FUNCTION)\n cmp dword ptr [ebp - 0x20], esi\n je -0x28\n push 1\n mov eax, dword ptr [ebp - 0x20]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx]\n jmp -0x35\n lea ecx, [ebp - 0xb0]\n@@ -68,72 +71,72 @@\n\n call MxDiskStreamController::FUN_100c8720 (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n cmp dword ptr [eax + 0x88], 0\n je 0x2f\n mov ecx, dword ptr [eax + 0x84]\n mov eax, dword ptr [ecx]\n lea ecx, [ebp - 0x18]\n push eax\n push ecx\n mov edx, dword ptr [eax + 8]\n+mov dword ptr [ebp - 0x20], edx\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x80\n-mov dword ptr [ebp - 0x20], edx\n call list<MxDSAction *,allocator<MxDSAction *> >::erase (FUNCTION)\n mov ecx, dword ptr [ebp - 0x20]\n push ecx\n mov ecx, dword ptr [ebp - 0x10]\n call MxDiskStreamController::FUN_100c7cb0 (FUNCTION)\n jmp -0x3b\n mov eax, dword ptr [ebp - 0x10]\n cmp dword ptr [eax + 0x6c], 0\n je 0x29\n mov ecx, dword ptr [eax + 0x68]\n mov eax, dword ptr [ecx]\n lea ecx, [ebp - 0x18]\n push eax\n push ecx\n mov edx, dword ptr [eax + 8]\n+mov dword ptr [ebp - 0x20], edx\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x64\n-mov dword ptr [ebp - 0x20], edx\n call list<MxDSAction *,allocator<MxDSAction *> >::erase (FUNCTION)\n mov ecx, dword ptr [ebp - 0x20]\n push ecx\n mov ecx, dword ptr [ebp - 0x10]\n call MxDiskStreamController::FUN_100c7cb0 (FUNCTION)\n jmp -0x32\n mov eax, dword ptr [ebp - 0x10]\n cmp dword ptr [eax + 0x7c], 0\n-je 0x3a\n+je 0x3b\n mov ecx, dword ptr [eax + 0x78]\n mov eax, dword ptr [ecx]\n mov esi, dword ptr [eax + 8]\n lea edx, [eax + 4]\n mov dword ptr [ebp - 0x20], eax\n mov ebx, dword ptr [eax]\n mov ecx, dword ptr [edx]\n mov dword ptr [ecx], ebx\n mov ecx, dword ptr [edx]\n mov eax, dword ptr [ebp - 0x20]\n mov ebx, dword ptr [eax]\n mov dword ptr [ebx + 4], ecx\n mov eax, dword ptr [ebp - 0x20]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov eax, dword ptr [ebp - 0x10]\n-mov ecx, eax\n push esi\n dec dword ptr [eax + 0x7c]\n+mov ecx, dword ptr [ebp - 0x10]\n call MxDiskStreamController::FUN_100c7ce0 (FUNCTION)\n-jmp -0x43\n+jmp -0x44\n call TickleManager (FUNCTION)\n mov ebx, dword ptr [eax]\n mov ecx, eax\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call dword ptr [ebx + 0x18]\n mov byte ptr [ebp - 4], 6\n call <OFFSET13>\n mov byte ptr [ebp - 4], 5\n call <OFFSET14>\n@@ -173,15 +176,10 @@\n\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x74\n jmp List<MxDSBuffer *>::~List<MxDSBuffer *> (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x64\n jmp MxStreamListMxDSAction::~MxStreamListMxDSAction (FUNCTION)\n mov eax, <OFFSET25>\n jmp ___CxxFrameHandler (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n jmp MxStreamController::~MxStreamController (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100c7790", "name": "MxDiskStreamController::Open", "matching": 0.825, "diff": "--- \n\n+++ \n\n@@ -13,68 +13,68 @@\n\n push eax\n lea ecx, [ebp - 0x14]\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n mov eax, dword ptr [ebp + 8]\n mov ecx, esi\n mov dword ptr [ebp - 4], 0\n push eax\n call MxStreamController::Open (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n test eax, eax\n-jne 0x6b\n+jne 0x35\n push 0x60\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov byte ptr [ebp - 4], 1\n mov edi, eax\n mov eax, 0\n test edi, edi\n je 0x7\n mov ecx, edi\n call MxDiskStreamProvider::MxDiskStreamProvider (FUNCTION)\n mov byte ptr [ebp - 4], 0\n mov dword ptr [esi + 0x28], eax\n test eax, eax\n-jne 0x9\n+jne 0x28\n mov dword ptr [ebp - 0x10], 0xffffffff\n-jmp 0x34\n+mov dword ptr [ebp - 4], 0xffffffff\n+call <OFFSET6>\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr fs:[0], ecx\n+pop edi\n+pop esi\n+mov esp, ebp\n+pop ebp\n+ret 4\n push esi\n mov edx, dword ptr [eax]\n mov ecx, eax\n call dword ptr [edx + 0x14]\n mov dword ptr [ebp - 0x10], eax\n test eax, eax\n je 0x16\n mov ecx, dword ptr [esi + 0x28]\n test ecx, ecx\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov dword ptr [esi + 0x28], 0\n-jmp 0xf\n+jmp -0x46\n call TickleManager (FUNCTION)\n mov ecx, eax\n push 0xa\n push esi\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x14]\n-mov dword ptr [ebp - 4], 0xffffffff\n-call <OFFSET7>\n-mov eax, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [ebp - 0xc]\n-mov dword ptr fs:[0], ecx\n-pop edi\n-pop esi\n-mov esp, ebp\n-pop ebp\n-ret 4\n+jmp -0x57\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n mov eax, <OFFSET9>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x14]\n jmp MxAutoLocker::~MxAutoLocker (FUNCTION)"}, {"address": "0x100c7880", "name": "MxDiskStreamController::VTable0x18", "matching": 1.0, "diff": ""}, {"address": "0x100c7890", "name": "MxDiskStreamController::FUN_100c7890", "matching": 0.803030303030303, "diff": "--- \n\n+++ \n\n@@ -1,67 +1,65 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 8\n+sub esp, 0xc\n push ebx\n push esi\n lea eax, [ecx + 8]\n push edi\n mov esi, ecx\n push eax\n lea ecx, [ebp - 0x14]\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n mov dword ptr [ebp - 4], 0\n-cmp dword ptr [ebp + 8], 0\n+mov eax, dword ptr [ebp + 8]\n+test eax, eax\n jne 0x24\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n mov eax, 0xffffffff\n mov ecx, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], ecx\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n+push 0xc\n+mov dword ptr [ebp - 0x18], eax\n mov eax, dword ptr [esi + 0x84]\n-push 0xc\n mov dword ptr [ebp - 0x10], eax\n-lea ebx, [eax + 4]\n-mov edi, dword ptr [ebx]\n+lea edi, [eax + 4]\n+mov ebx, dword ptr [edi]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n-test edi, edi\n+test ebx, ebx\n je 0xa\n mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [eax], ecx\n-mov dword ptr [eax + 4], edi\n+mov dword ptr [eax + 4], ebx\n jmp 0x5\n mov dword ptr [eax], eax\n mov dword ptr [eax + 4], eax\n-mov dword ptr [ebx], eax\n+mov dword ptr [edi], eax\n mov ecx, dword ptr [eax + 4]\n mov dword ptr [ecx], eax\n add eax, 8\n je 0x5\n-mov ecx, dword ptr [ebp + 8]\n+mov ecx, dword ptr [ebp - 0x18]\n mov dword ptr [eax], ecx\n mov ecx, esi\n inc dword ptr [esi + 0x88]\n call MxDiskStreamController::FUN_100c7970 (FUNCTION)\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n xor eax, eax\n-jmp -0x6c\n+jmp -0x6f\n mov eax, <OFFSET6>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x14]\n jmp MxAutoLocker::~MxAutoLocker (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100c7960", "name": "MxDiskStreamController::VTable0x34", "matching": 1.0, "diff": ""}, {"address": "0x100c7970", "name": "MxDiskStreamController::FUN_100c7970", "matching": 1.0, "diff": ""}, {"address": "0x100c7980", "name": "MxDiskStreamController::FUN_100c7980", "matching": 1.0, "diff": ""}, {"address": "0x100c7ac0", "name": "MxDiskStreamController::VTable0x28", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -55,33 +55,33 @@\n\n mov byte ptr [ebp - 4], 0\n je 0x53\n mov ecx, dword ptr [eax + 0x98]\n mov edx, dword ptr [ebp - 0x14]\n add ecx, ebx\n push 0xc\n mov dword ptr [edx + 0x94], ecx\n mov dword ptr [edx + 0x98], ecx\n mov eax, dword ptr [esi + 0x40]\n mov dword ptr [ebp - 0x18], eax\n-lea edi, [eax + 4]\n-mov ebx, dword ptr [edi]\n+lea ebx, [eax + 4]\n+mov edi, dword ptr [ebx]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n-test ebx, ebx\n+test edi, edi\n je 0xa\n mov ecx, dword ptr [ebp - 0x18]\n mov dword ptr [eax], ecx\n-mov dword ptr [eax + 4], ebx\n+mov dword ptr [eax + 4], edi\n jmp 0x5\n mov dword ptr [eax], eax\n mov dword ptr [eax + 4], eax\n-mov dword ptr [edi], eax\n+mov dword ptr [ebx], eax\n mov ecx, dword ptr [eax + 4]\n mov dword ptr [ecx], eax\n add eax, 8\n je 0x5\n mov ecx, dword ptr [ebp - 0x14]\n mov dword ptr [eax], ecx\n inc dword ptr [esi + 0x44]\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET6>\n mov eax, dword ptr [ebp - 0x10]"}, {"address": "0x100c7c00", "name": "MxDiskStreamController::VTable0x30", "matching": 1.0, "diff": ""}, {"address": "0x100c7cb0", "name": "MxDiskStreamController::FUN_100c7cb0", "matching": 1.0, "diff": ""}, {"address": "0x100c7ce0", "name": "MxDiskStreamController::FUN_100c7ce0", "matching": 1.0, "diff": ""}, {"address": "0x100c7d10", "name": "MxDiskStreamController::FUN_100c7d10", "matching": 1.0, "diff": ""}, {"address": "0x100c7db0", "name": "MxDiskStreamController::FUN_100c7db0", "matching": 0.5, "diff": "--- \n\n+++ \n\n@@ -5,121 +5,119 @@\n\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 0x14\n push ebx\n push esi\n lea eax, [ecx + 8]\n push edi\n mov esi, ecx\n push eax\n-lea ecx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x20]\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n-mov eax, dword ptr [esi + 0x4c]\n+mov ecx, dword ptr [esi + 0x4c]\n mov dword ptr [ebp - 4], 0\n-mov ecx, dword ptr [eax]\n-mov dword ptr [ebp - 0x10], ecx\n-cmp ecx, eax\n-je 0x54\n-mov ecx, dword ptr [esi + 0x68]\n-mov eax, dword ptr [ebp - 0x10]\n-mov edx, dword ptr [ecx]\n-mov dword ptr [ebp - 0x14], edx\n-cmp ecx, edx\n-mov edi, dword ptr [eax + 8]\n-je 0x35\n-mov edx, dword ptr [edi + 8]\n+mov eax, dword ptr [ecx]\n+mov dword ptr [ebp - 0x14], eax\n+cmp eax, ecx\n+je 0x5f\n+mov edx, dword ptr [esi + 0x68]\n mov eax, dword ptr [ebp - 0x14]\n mov ebx, dword ptr [eax + 8]\n mov dword ptr [ebp - 0x18], ebx\n-cmp dword ptr [ebx + 0x1c], edx\n-jne 0x18\n-mov bx, word ptr [edi + 0xc]\n+mov edi, dword ptr [edx]\n+mov dword ptr [ebp - 0x10], edi\n+cmp edi, edx\n+je 0x3e\n+mov edi, dword ptr [ebx + 8]\n+mov eax, dword ptr [ebp - 0x10]\n+mov ebx, dword ptr [eax + 8]\n+mov dword ptr [ebp - 0x1c], ebx\n+cmp dword ptr [ebx + 0x1c], edi\n+jne 0x21\n mov eax, dword ptr [ebp - 0x18]\n+mov bx, word ptr [eax + 0xc]\n+mov eax, dword ptr [ebp - 0x1c]\n cmp word ptr [eax + 0x24], bx\n-jne 0xb\n-mov ebx, dword ptr [edi + 0x10]\n+jne 0x11\n+mov eax, dword ptr [ebp - 0x18]\n+mov ebx, dword ptr [eax + 0x10]\n+mov eax, dword ptr [ebp - 0x1c]\n cmp dword ptr [eax + 0x98], ebx\n-je 0x38\n+je 0x37\n+mov eax, dword ptr [ebp - 0x10]\n+mov ebx, dword ptr [eax]\n+mov dword ptr [ebp - 0x10], ebx\n+cmp ebx, edx\n+jne -0x3b\n mov eax, dword ptr [ebp - 0x14]\n mov ebx, dword ptr [eax]\n mov dword ptr [ebp - 0x14], ebx\n cmp ebx, ecx\n-jne -0x32\n-mov eax, dword ptr [ebp - 0x10]\n-mov edx, dword ptr [eax]\n-mov dword ptr [ebp - 0x10], edx\n-cmp edx, dword ptr [esi + 0x4c]\n-jne -0x51\n+jne -0x5c\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n xor eax, eax\n mov ecx, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], ecx\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n-mov edx, dword ptr [ebp - 0x10]\n+mov edx, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [edx + 4]\n push edx\n mov eax, dword ptr [edx]\n mov dword ptr [ecx], eax\n+mov ecx, dword ptr [edx + 4]\n mov eax, dword ptr [edx]\n-mov ebx, dword ptr [edx + 4]\n-mov dword ptr [eax + 4], ebx\n+mov dword ptr [eax + 4], ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n mov ecx, dword ptr [esi + 0x28]\n dec dword ptr [esi + 0x50]\n-mov eax, dword ptr [ecx]\n-call dword ptr [eax + 0x18]\n-add eax, dword ptr [edi + 0x10]\n-mov dword ptr [ebp - 0x20], edi\n-mov dword ptr [edi + 0x10], eax\n-lea edi, [ebp - 0x20]\n+mov ebx, dword ptr [ecx]\n+call dword ptr [ebx + 0x18]\n+mov ecx, dword ptr [ebp - 0x18]\n+add eax, dword ptr [ecx + 0x10]\n+mov dword ptr [ecx + 0x10], eax\n+lea ecx, [esi + 0x48]\n mov edx, dword ptr [esi + 0x4c]\n-push edi\n+lea edi, [edx + 4]\n+mov eax, dword ptr [edi]\n+push eax\n push edx\n-lea eax, [ebp - 0x10]\n+call list<MxNextActionDataStart *,allocator<MxNextActionDataStart *> >::_Buynode (FUNCTION)\n+mov ecx, eax\n+mov dword ptr [edi], eax\n+lea eax, [ebp - 0x18]\n+mov edx, dword ptr [ecx + 4]\n push eax\n-lea ecx, [esi + 0x48]\n-call <OFFSET5>\n-mov edx, dword ptr [ebp - 0x14]\n-mov eax, dword ptr [ebp - 0x14]\n+mov dword ptr [edx], ecx\n+add ecx, 8\n+push ecx\n+call _Construct (FUNCTION)\n+add esp, 8\n+mov edx, dword ptr [ebp - 0x10]\n+add edx, 4\n+mov eax, dword ptr [ebp - 0x10]\n+inc dword ptr [esi + 0x50]\n push eax\n-mov ecx, dword ptr [edx + 4]\n-add edx, 4\n mov ebx, dword ptr [eax]\n+mov ecx, dword ptr [edx]\n mov dword ptr [ecx], ebx\n mov ecx, dword ptr [edx]\n mov ebx, dword ptr [eax]\n mov dword ptr [ebx + 4], ecx\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n dec dword ptr [esi + 0x6c]\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET3>\n-mov eax, dword ptr [ebp - 0x18]\n-jmp -0x8b\n-mov eax, <OFFSET6>\n+mov eax, dword ptr [ebp - 0x1c]\n+jmp -0xa4\n+mov eax, <OFFSET7>\n jmp ___CxxFrameHandler (FUNCTION)\n-lea ecx, [ebp - 0x1c]\n+lea ecx, [ebp - 0x20]\n jmp MxAutoLocker::~MxAutoLocker (FUNCTION)\n-int3 \n-int3 \n-push ebx\n-push esi\n-push edi\n-mov esi, ecx\n-mov edi, dword ptr [esp + 0x14]\n-push 0xc\n-mov ebx, dword ptr [edi + 4]\n-call ??2@YAPAXI@Z (FUNCTION)\n-add esp, 4\n-test ebx, ebx\n-je 0x7\n-mov dword ptr [eax], edi\n-mov dword ptr [eax + 4], ebx\n-jmp 0x5"}, {"address": "0x100c7f40", "name": "MxDiskStreamController::FUN_100c7f40", "matching": 0.7796610169491526, "diff": "--- \n\n+++ \n\n@@ -1,60 +1,58 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 8\n+sub esp, 0xc\n push ebx\n push esi\n lea eax, [ecx + 8]\n push edi\n mov esi, ecx\n push eax\n lea ecx, [ebp - 0x14]\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n mov dword ptr [ebp - 4], 0\n-cmp dword ptr [ebp + 8], 0\n-je 0x3c\n+mov eax, dword ptr [ebp + 8]\n+test eax, eax\n+je 0x3f\n+push 0xc\n+mov dword ptr [ebp - 0x18], eax\n mov eax, dword ptr [esi + 0x68]\n-push 0xc\n mov dword ptr [ebp - 0x10], eax\n-lea ebx, [eax + 4]\n-mov edi, dword ptr [ebx]\n+lea edi, [eax + 4]\n+mov ebx, dword ptr [edi]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n-test edi, edi\n+test ebx, ebx\n je 0xa\n mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [eax], ecx\n-mov dword ptr [eax + 4], edi\n+mov dword ptr [eax + 4], ebx\n jmp 0x5\n mov dword ptr [eax], eax\n mov dword ptr [eax + 4], eax\n-mov dword ptr [ebx], eax\n+mov dword ptr [edi], eax\n mov ecx, dword ptr [eax + 4]\n mov dword ptr [ecx], eax\n add eax, 8\n je 0x5\n-mov ecx, dword ptr [ebp + 8]\n+mov ecx, dword ptr [ebp - 0x18]\n mov dword ptr [eax], ecx\n inc dword ptr [esi + 0x6c]\n mov dword ptr [ebp - 4], 0xffffffff\n call <OFFSET4>\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x14]\n jmp MxAutoLocker::~MxAutoLocker (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100c7ff0", "name": "MxDiskStreamController::VTable0x20", "matching": 1.0, "diff": ""}, {"address": "0x100c8120", "name": "MxDiskStreamController::FUN_100c8120", "matching": 1.0, "diff": ""}, {"address": "0x100c8160", "name": "MxDiskStreamController::VTable0x24", "matching": 1.0, "diff": ""}, {"address": "0x100c8360", "name": "MxDiskStreamController::FUN_100c8360", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -47,28 +47,28 @@\n\n push eax\n mov ecx, esi\n call MxDiskStreamController::FUN_100c7cb0 (FUNCTION)\n jmp 0x60\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x1c\n cmp dword ptr [eax], -1\n jne 0x5\n mov ecx, dword ptr [edi + 0x1c]\n mov dword ptr [eax], ecx\n-mov ecx, dword ptr [ebp - 0x10]\n-mov eax, dword ptr [esi + 0x94]\n-lea ebx, [eax + 4]\n-mov dword ptr [ebp - 0x18], eax\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [esi + 0x94]\n+lea ebx, [ecx + 4]\n+mov dword ptr [ebp - 0x18], ecx\n push 0xc\n-mov dword ptr [ebp - 0x20], ecx\n-mov ecx, dword ptr [ebx]\n-mov dword ptr [ebp - 0x14], ecx\n+mov dword ptr [ebp - 0x20], eax\n+mov eax, dword ptr [ebx]\n+mov dword ptr [ebp - 0x14], eax\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n cmp dword ptr [ebp - 0x14], 0\n je 0xd\n mov ecx, dword ptr [ebp - 0x18]\n mov edx, dword ptr [ebp - 0x14]\n mov dword ptr [eax], ecx\n mov dword ptr [eax + 4], edx\n jmp 0x5\n mov dword ptr [eax], eax"}, {"address": "0x100c84a0", "name": "MxDiskStreamController::InsertToList74", "matching": 1.0, "diff": ""}, {"address": "0x100c8540", "name": "MxDiskStreamController::FUN_100c8540", "matching": 0.9058823529411765, "diff": "--- \n\n+++ \n\n@@ -12,33 +12,30 @@\n\n push edi\n mov esi, ecx\n push eax\n lea ecx, [ebp - 0x18]\n xor edi, edi\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n mov eax, dword ptr [esi + 0x78]\n mov dword ptr [ebp - 4], edi\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n-cmp ecx, eax\n-je 0x59\n+cmp eax, ecx\n+je 0x50\n mov eax, dword ptr [ebp - 0x10]\n mov ebx, dword ptr [eax + 8]\n cmp word ptr [ebx + 0x20], di\n-jne 0x3d\n+jne 0x34\n mov dword ptr [ebp - 0x14], eax\n-mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n-mov ecx, dword ptr [ebp - 0x14]\n-add ecx, 4\n-mov eax, dword ptr [ebp - 0x14]\n+lea ecx, [eax + 4]\n mov eax, dword ptr [eax]\n mov edx, dword ptr [ecx]\n mov dword ptr [edx], eax\n mov edx, dword ptr [ecx]\n mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [eax]\n mov dword ptr [ecx + 4], edx\n mov eax, dword ptr [ebp - 0x14]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n@@ -46,21 +43,21 @@\n\n mov ecx, esi\n dec dword ptr [esi + 0x7c]\n push ebx\n call MxDiskStreamController::FUN_100c7ce0 (FUNCTION)\n jmp 0x8\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n mov eax, dword ptr [ebp - 0x10]\n cmp dword ptr [esi + 0x78], eax\n-jne -0x59\n+jne -0x50\n cmp dword ptr [esi + 0x50], 0\n jne 0x2b\n cmp dword ptr [esi + 0x6c], 0\n je 0x25\n lea edi, [esi + 0x64]\n mov eax, dword ptr [esi + 0x68]\n lea ecx, [ebp - 0x14]\n mov eax, dword ptr [eax]\n push eax\n push ecx\n@@ -76,10 +73,13 @@\n\n call <OFFSET7>\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n mov eax, <OFFSET8>\n+jmp ___CxxFrameHandler (FUNCTION)\n+lea ecx, [ebp - 0x18]\n+jmp MxAutoLocker::~MxAutoLocker (FUNCTION)"}, {"address": "0x100c8640", "name": "MxDiskStreamController::Tickle", "matching": 1.0, "diff": ""}, {"address": "0x100c8670", "name": "MxDiskStreamController::FUN_100c8670", "matching": 1.0, "diff": ""}, {"address": "0x100c8720", "name": "MxDiskStreamController::FUN_100c8720", "matching": 1.0, "diff": ""}, {"address": "0x100c87d0", "name": "MxSemaphore::MxSemaphore", "matching": 1.0, "diff": ""}, {"address": "0x100c87e0", "name": "MxSemaphore::~MxSemaphore", "matching": 1.0, "diff": ""}, {"address": "0x100c8800", "name": "MxSemaphore::Init", "matching": 1.0, "diff": ""}, {"address": "0x100c8830", "name": "MxSemaphore::Wait", "matching": 1.0, "diff": ""}, {"address": "0x100c8850", "name": "MxSemaphore::Release", "matching": 1.0, "diff": ""}, {"address": "0x100c8870", "name": "MxDSObjectAction::MxDSObjectAction", "matching": 1.0, "diff": ""}, {"address": "0x100c88e0", "name": "MxDSObjectAction::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c88f0", "name": "MxDSObjectAction::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c8a00", "name": "MxDSObjectAction::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c8a20", "name": "MxDSObjectAction::~MxDSObjectAction", "matching": 1.0, "diff": ""}, {"address": "0x100c8a70", "name": "MxDSObjectAction::CopyFrom", "matching": 1.0, "diff": ""}, {"address": "0x100c8a80", "name": "MxDSObjectAction::operator=", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,15 +1,15 @@\n\n push esi\n push edi\n mov edi, ecx\n mov esi, dword ptr [esp + 0xc]\n-cmp esi, edi\n+cmp edi, esi\n jne 0x7\n mov eax, edi\n pop edi\n pop esi\n ret 4\n push esi\n mov ecx, edi\n call MxDSMediaAction::operator= (FUNCTION)\n push esi\n mov eax, dword ptr [edi]"}, {"address": "0x100c8ab0", "name": "MxDSObjectAction::Clone", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -2,40 +2,40 @@\n\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n push ebx\n push esi\n push edi\n-mov ebx, ecx\n+mov esi, ecx\n push 0xb8\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov edi, eax\n-mov esi, 0\n+mov ebx, 0\n mov dword ptr [ebp - 4], 0\n test edi, edi\n je 0x9\n mov ecx, edi\n call MxDSObjectAction::MxDSObjectAction (FUNCTION)\n-mov esi, eax\n+mov ebx, eax\n mov dword ptr [ebp - 4], 0xffffffff\n-test esi, esi\n+test ebx, ebx\n je 0x8\n-push ebx\n-mov ecx, esi\n+push esi\n+mov ecx, ebx\n call MxDSObjectAction::operator= (FUNCTION)\n-mov eax, esi\n+mov eax, ebx\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)"}, {"address": "0x100c8b40", "name": "MxDSMediaAction::MxDSMediaAction", "matching": 1.0, "diff": ""}, {"address": "0x100c8be0", "name": "MxDSMediaAction::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c8bf0", "name": "MxDSMediaAction::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c8cd0", "name": "MxDSMediaAction::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c8cf0", "name": "MxDSMediaAction::~MxDSMediaAction", "matching": 1.0, "diff": ""}, {"address": "0x100c8d60", "name": "MxDSMediaAction::CopyFrom", "matching": 1.0, "diff": ""}, {"address": "0x100c8dc0", "name": "MxDSMediaAction::operator=", "matching": 1.0, "diff": ""}, {"address": "0x100c8df0", "name": "MxDSMediaAction::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100c8e80", "name": "MxDSMediaAction::CopyMediaSrcPath", "matching": 1.0, "diff": ""}, {"address": "0x100c8f00", "name": "MxDSMediaAction::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x100c8f10", "name": "MxDSMediaAction::GetSizeOnDisk", "matching": 1.0, "diff": ""}, {"address": "0x100c8f60", "name": "MxDSMediaAction::Deserialize", "matching": 1.0, "diff": ""}, {"address": "0x100c8ff0", "name": "MxDSAnim::MxDSAnim", "matching": 1.0, "diff": ""}, {"address": "0x100c9060", "name": "MxDSAnim::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c9070", "name": "MxDSAnim::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c9180", "name": "MxDSAnim::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c91a0", "name": "MxDSAnim::~MxDSAnim", "matching": 1.0, "diff": ""}, {"address": "0x100c91f0", "name": "MxDSAnim::CopyFrom", "matching": 1.0, "diff": ""}, {"address": "0x100c9200", "name": "MxDSAnim::operator=", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,15 +1,15 @@\n\n push esi\n push edi\n mov edi, ecx\n mov esi, dword ptr [esp + 0xc]\n-cmp esi, edi\n+cmp edi, esi\n jne 0x7\n mov eax, edi\n pop edi\n pop esi\n ret 4\n push esi\n mov ecx, edi\n call MxDSMediaAction::operator= (FUNCTION)\n push esi\n mov ecx, edi"}, {"address": "0x100c9230", "name": "MxDSAnim::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100c92c0", "name": "MxDSSound::MxDSSound", "matching": 1.0, "diff": ""}, {"address": "0x100c9330", "name": "MxDSSound::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c9340", "name": "MxDSSound::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c9450", "name": "MxDSSound::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c9470", "name": "MxDSSound::~MxDSSound", "matching": 1.0, "diff": ""}, {"address": "0x100c94c0", "name": "MxDSSound::CopyFrom", "matching": 1.0, "diff": ""}, {"address": "0x100c94e0", "name": "MxDSSound::operator=", "matching": 0.55, "diff": "--- \n\n+++ \n\n@@ -1,20 +1,20 @@\n\n push esi\n push edi\n-mov esi, ecx\n-mov edi, dword ptr [esp + 0xc]\n-cmp esi, edi\n+mov edi, ecx\n+mov esi, dword ptr [esp + 0xc]\n+cmp edi, esi\n jne 0x7\n-mov eax, esi\n+mov eax, edi\n pop edi\n pop esi\n ret 4\n-push edi\n-mov ecx, esi\n+push esi\n+mov ecx, edi\n call MxDSMediaAction::operator= (FUNCTION)\n-push edi\n-mov ecx, esi\n+push esi\n+mov ecx, edi\n call MxDSSound::CopyFrom (FUNCTION)\n-mov eax, esi\n+mov eax, edi\n pop edi\n pop esi\n ret 4"}, {"address": "0x100c9510", "name": "MxDSSound::Clone", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -2,40 +2,40 @@\n\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n push ebx\n push esi\n push edi\n-mov esi, ecx\n+mov ebx, ecx\n push 0xc0\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov edi, eax\n-mov ebx, 0\n+mov esi, 0\n mov dword ptr [ebp - 4], 0\n test edi, edi\n je 0x9\n mov ecx, edi\n call MxDSSound::MxDSSound (FUNCTION)\n-mov ebx, eax\n+mov esi, eax\n mov dword ptr [ebp - 4], 0xffffffff\n-test ebx, ebx\n+test esi, esi\n je 0x8\n-push esi\n-mov ecx, ebx\n+push ebx\n+mov ecx, esi\n call MxDSSound::operator= (FUNCTION)\n-mov eax, ebx\n+mov eax, esi\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)"}, {"address": "0x100c95a0", "name": "MxDSSound::Deserialize", "matching": 1.0, "diff": ""}, {"address": "0x100c95d0", "name": "MxDSSound::GetSizeOnDisk", "matching": 1.0, "diff": ""}, {"address": "0x100c95f0", "name": "MxDSEvent::MxDSEvent", "matching": 1.0, "diff": ""}, {"address": "0x100c9660", "name": "MxDSEvent::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c9670", "name": "MxDSEvent::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c9780", "name": "MxDSEvent::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c97a0", "name": "MxDSEvent::~MxDSEvent", "matching": 1.0, "diff": ""}, {"address": "0x100c97f0", "name": "MxDSEvent::CopyFrom", "matching": 1.0, "diff": ""}, {"address": "0x100c9800", "name": "MxDSEvent::operator=", "matching": 1.0, "diff": ""}, {"address": "0x100c9830", "name": "MxDSEvent::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100c98c0", "name": "MxDSStill::MxDSStill", "matching": 1.0, "diff": ""}, {"address": "0x100c9930", "name": "MxDSStill::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c9940", "name": "MxDSStill::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c9a50", "name": "MxDSStill::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c9a70", "name": "MxDSStill::~MxDSStill", "matching": 1.0, "diff": ""}, {"address": "0x100c9ac0", "name": "MxDSStill::CopyFrom", "matching": 1.0, "diff": ""}, {"address": "0x100c9ad0", "name": "MxDSStill::operator=", "matching": 1.0, "diff": ""}, {"address": "0x100c9b00", "name": "MxDSStill::Clone", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -2,40 +2,40 @@\n\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n push ebx\n push esi\n push edi\n-mov ebx, ecx\n+mov esi, ecx\n push 0xb8\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov edi, eax\n-mov esi, 0\n+mov ebx, 0\n mov dword ptr [ebp - 4], 0\n test edi, edi\n je 0x9\n mov ecx, edi\n call MxDSStill::MxDSStill (FUNCTION)\n-mov esi, eax\n+mov ebx, eax\n mov dword ptr [ebp - 4], 0xffffffff\n-test esi, esi\n+test ebx, ebx\n je 0x8\n-push ebx\n-mov ecx, esi\n+push esi\n+mov ecx, ebx\n call MxDSStill::operator= (FUNCTION)\n-mov eax, esi\n+mov eax, ebx\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)"}, {"address": "0x100c9b90", "name": "MxDSMultiAction::MxDSMultiAction", "matching": 1.0, "diff": ""}, {"address": "0x100c9c90", "name": "MxDSActionList::Compare", "matching": 1.0, "diff": ""}, {"address": "0x100c9cb0", "name": "MxDSActionList::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c9cc0", "name": "MxCollection<MxDSAction *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x100c9cd0", "name": "MxCollection<MxDSAction *>::~MxCollection<MxDSAction *>", "matching": 1.0, "diff": ""}, {"address": "0x100c9d20", "name": "MxCollection<MxDSAction *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c9d30", "name": "MxList<MxDSAction *>::~MxList<MxDSAction *>", "matching": 1.0, "diff": ""}, {"address": "0x100c9dc0", "name": "MxDSActionList::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c9e30", "name": "MxCollection<MxDSAction *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c9ea0", "name": "MxList<MxDSAction *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c9f50", "name": "MxDSMultiAction::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c9f60", "name": "MxDSMultiAction::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100ca040", "name": "MxDSMultiAction::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100ca060", "name": "MxDSMultiAction::~MxDSMultiAction", "matching": 1.0, "diff": ""}, {"address": "0x100ca0d0", "name": "MxDSMultiAction::CopyFrom", "matching": 1.0, "diff": ""}, {"address": "0x100ca260", "name": "MxDSMultiAction::operator=", "matching": 1.0, "diff": ""}, {"address": "0x100ca290", "name": "MxDSMultiAction::SetUnknown90", "matching": 1.0, "diff": ""}, {"address": "0x100ca370", "name": "MxDSMultiAction::MergeFrom", "matching": 1.0, "diff": ""}, {"address": "0x100ca450", "name": "MxDSMultiAction::HasId", "matching": 1.0, "diff": ""}, {"address": "0x100ca550", "name": "MxDSMultiAction::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100ca5e0", "name": "MxDSMultiAction::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x100ca6c0", "name": "MxDSMultiAction::GetSizeOnDisk", "matching": 1.0, "diff": ""}, {"address": "0x100ca7b0", "name": "MxDSMultiAction::Deserialize", "matching": 0.8636363636363636, "diff": "--- \n\n+++ \n\n@@ -19,24 +19,24 @@\n\n mov eax, dword ptr [ecx + 4]\n add ecx, 0xc\n and eax, 1\n mov dword ptr [ebp - 0x18], eax\n mov dword ptr [esi], ecx\n mov edx, dword ptr [ecx]\n add ecx, 4\n mov dword ptr [ebp - 0x14], edx\n mov dword ptr [esi], ecx\n test edx, edx\n-je 0x86\n+je 0x80\n dec dword ptr [ebp - 0x14]\n test edx, edx\n-je 0x7f\n+je 0x79\n mov eax, dword ptr [esi]\n mov ecx, dword ptr [ebp + 0xc]\n add eax, 8\n push ecx\n push esi\n mov edi, dword ptr [eax - 4]\n and edi, 1\n mov dword ptr [esi], eax\n call DeserializeDSObjectDispatch (FUNCTION)\n add esp, 8\n@@ -44,44 +44,46 @@\n\n mov dword ptr [ebp - 0x1c], eax\n add dword ptr [esi], edi\n mov edi, dword ptr [ecx + 0x98]\n push 0xc\n mov ebx, dword ptr [edi + 0x14]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n mov dword ptr [ebp - 0x10], eax\n mov dword ptr [ebp - 4], 0\n test eax, eax\n-mov eax, 0\n-je 0x14\n-mov eax, dword ptr [ebp - 0x1c]\n-mov ecx, dword ptr [ebp - 0x10]\n-mov dword ptr [ecx], eax\n-mov eax, ecx\n-mov dword ptr [ecx + 4], ebx\n-mov dword ptr [ecx + 8], 0\n+je 0x11\n+mov ecx, dword ptr [ebp - 0x1c]\n+mov dword ptr [eax], ecx\n+mov dword ptr [eax + 4], ebx\n+mov dword ptr [eax + 8], 0\n+jmp 0x2\n+xor eax, eax\n mov dword ptr [ebp - 4], 0xffffffff\n test ebx, ebx\n je 0x5\n mov dword ptr [ebx + 8], eax\n jmp 0x3\n mov dword ptr [edi + 0x10], eax\n mov dword ptr [edi + 0x14], eax\n mov eax, dword ptr [ebp - 0x14]\n inc dword ptr [edi + 8]\n dec dword ptr [ebp - 0x14]\n test eax, eax\n-jne -0x7f\n+jne -0x79\n mov eax, dword ptr [ebp - 0x18]\n pop edi\n add dword ptr [esi], eax\n mov eax, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], eax\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 8\n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n push eax\n+call ??3@YAXPAX@Z (FUNCTION)\n+add esp, 4\n+ret "}, {"address": "0x100ca8c0", "name": "MxDSMultiAction::SetAtomId", "matching": 1.0, "diff": ""}, {"address": "0x100ca9d0", "name": "MxDSSerialAction::MxDSSerialAction", "matching": 1.0, "diff": ""}, {"address": "0x100caac0", "name": "MxDSSerialAction::SetDuration", "matching": 1.0, "diff": ""}, {"address": "0x100caad0", "name": "MxDSSerialAction::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100caae0", "name": "MxDSSerialAction::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100cabf0", "name": "MxDSSerialAction::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100cac10", "name": "MxDSSerialAction::~MxDSSerialAction", "matching": 1.0, "diff": ""}, {"address": "0x100cac90", "name": "MxDSSerialAction::CopyFrom", "matching": 1.0, "diff": ""}, {"address": "0x100caca0", "name": "MxDSSerialAction::operator=", "matching": 1.0, "diff": ""}, {"address": "0x100cacd0", "name": "MxDSSerialAction::Clone", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -2,40 +2,40 @@\n\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n push ebx\n push esi\n push edi\n-mov ebx, ecx\n+mov esi, ecx\n push 0xa8\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov edi, eax\n-mov esi, 0\n+mov ebx, 0\n mov dword ptr [ebp - 4], 0\n test edi, edi\n je 0x9\n mov ecx, edi\n call MxDSSerialAction::MxDSSerialAction (FUNCTION)\n-mov esi, eax\n+mov ebx, eax\n mov dword ptr [ebp - 4], 0xffffffff\n-test esi, esi\n+test ebx, ebx\n je 0x8\n-push ebx\n-mov ecx, esi\n+push esi\n+mov ecx, ebx\n call MxDSSerialAction::operator= (FUNCTION)\n-mov eax, esi\n+mov eax, ebx\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret \n mov eax, <OFFSET5>\n jmp ___CxxFrameHandler (FUNCTION)"}, {"address": "0x100cad60", "name": "MxDSSerialAction::GetDuration", "matching": 1.0, "diff": ""}, {"address": "0x100cae80", "name": "MxDSParallelAction::MxDSParallelAction", "matching": 1.0, "diff": ""}, {"address": "0x100caef0", "name": "MxDSParallelAction::SetDuration", "matching": 1.0, "diff": ""}, {"address": "0x100caf00", "name": "MxDSParallelAction::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100caf10", "name": "MxDSParallelAction::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100cb020", "name": "MxDSParallelAction::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100cb040", "name": "MxDSParallelAction::~MxDSParallelAction", "matching": 1.0, "diff": ""}, {"address": "0x100cb090", "name": "MxDSParallelAction::CopyFrom", "matching": 1.0, "diff": ""}, {"address": "0x100cb0a0", "name": "MxDSParallelAction::operator=", "matching": 1.0, "diff": ""}, {"address": "0x100cb0d0", "name": "MxDSParallelAction::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100cb160", "name": "MxDSParallelAction::GetDuration", "matching": 1.0, "diff": ""}, {"address": "0x100cb2b0", "name": "MxDSSelectAction::MxDSSelectAction", "matching": 1.0, "diff": ""}, {"address": "0x100cb3c0", "name": "MxCollection<MxString>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x100cb420", "name": "MxCollection<MxString>::~MxCollection<MxString>", "matching": 1.0, "diff": ""}, {"address": "0x100cb470", "name": "MxCollection<MxString>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100cb4c0", "name": "MxList<MxString>::~MxList<MxString>", "matching": 1.0, "diff": ""}, {"address": "0x100cb590", "name": "MxCollection<MxString>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100cb600", "name": "MxList<MxString>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100cb6f0", "name": "MxDSSelectAction::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100cb700", "name": "MxDSSelectAction::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100cb840", "name": "MxDSSelectAction::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100cb860", "name": "MxStringList::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100cb8d0", "name": "MxDSSelectAction::~MxDSSelectAction", "matching": 1.0, "diff": ""}, {"address": "0x100cb950", "name": "MxDSSelectAction::CopyFrom", "matching": 1.0, "diff": ""}, {"address": "0x100cbb40", "name": "MxList<MxString>::Append", "matching": 1.0, "diff": ""}, {"address": "0x100cbbd0", "name": "MxStringListCursor::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100cbc40", "name": "MxListCursor<MxString>::~MxListCursor<MxString>", "matching": 1.0, "diff": ""}, {"address": "0x100cbc90", "name": "MxListCursor<MxString>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100cbd00", "name": "MxStringListCursor::~MxStringListCursor", "matching": 1.0, "diff": ""}, {"address": "0x100cbd50", "name": "MxDSSelectAction::operator=", "matching": 1.0, "diff": ""}, {"address": "0x100cbd80", "name": "MxDSSelectAction::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100cbe10", "name": "MxDSSelectAction::GetSizeOnDisk", "matching": 1.0, "diff": ""}, {"address": "0x100cbf60", "name": "MxDSSelectAction::Deserialize", "matching": 0.9469964664310954, "diff": "--- \n\n+++ \n\n@@ -108,26 +108,26 @@\n\n mov eax, dword ptr [ebp - 0x14]\n mov dword ptr [ebp - 0x30], 0xffffffff\n mov ecx, dword ptr [eax + 0xac]\n mov dword ptr [ebp - 0x10], ecx\n mov eax, dword ptr [ecx + 0x10]\n mov dword ptr [ebp - 0x1a], eax\n cmp dword ptr [ebp - 0x1a], 0\n je 0x4e\n mov eax, dword ptr [ebp - 0x1a]\n sub esp, 0x10\n+mov dword ptr [ebp - 0x28], esp\n mov ecx, dword ptr [eax + 0x14]\n+mov edx, dword ptr [ebp - 0x28]\n+push edx\n mov dword ptr [ebp - 0x38], ecx\n-mov dword ptr [ebp - 0x28], esp\n-mov edx, dword ptr [ebp - 0x28]\n mov ecx, dword ptr [ebp - 0x1a]\n-push edx\n call MxListEntry<MxString>::GetValue (FUNCTION)\n mov ebx, dword ptr [ebp - 0x10]\n mov byte ptr [ebp - 4], 0\n call dword ptr [ebx + 0xc]\n add esp, 0x10\n cmp dword ptr [ebp - 0x1a], 0\n je 0x1b\n mov byte ptr [ebp - 4], 0\n mov eax, dword ptr [ebp - 0x1a]\n mov dword ptr [ebp - 0x2c], eax\n@@ -200,51 +200,51 @@\n\n mov eax, dword ptr [edx + 4]\n add edx, 8\n and eax, 1\n mov dword ptr [ebp - 0x2c], eax\n mov dword ptr [ecx], edx\n mov eax, dword ptr [ebp + 0xc]\n push eax\n push ecx\n call DeserializeDSObjectDispatch (FUNCTION)\n add esp, 8\n-mov ecx, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [ebp - 0x30]\n mov dword ptr [ebp - 0x1a], eax\n-cmp dword ptr [ebp - 0x30], ecx\n+cmp dword ptr [ebp - 0x10], ecx\n jne 0x57\n mov eax, dword ptr [ebp - 0x14]\n push 0xc\n-mov ebx, dword ptr [eax + 0x98]\n-mov esi, dword ptr [ebx + 0x14]\n+mov esi, dword ptr [eax + 0x98]\n+mov ebx, dword ptr [esi + 0x14]\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x28], eax\n add esp, 4\n mov byte ptr [ebp - 4], 4\n mov edi, eax\n mov eax, 0\n test edi, edi\n je 0x11\n mov eax, dword ptr [ebp - 0x1a]\n mov dword ptr [edi], eax\n mov eax, edi\n-mov dword ptr [edi + 4], esi\n+mov dword ptr [edi + 4], ebx\n mov dword ptr [edi + 8], 0\n mov byte ptr [ebp - 4], 0\n-test esi, esi\n+test ebx, ebx\n je 0xb\n-mov dword ptr [esi + 8], eax\n-mov dword ptr [ebx + 0x14], eax\n-inc dword ptr [ebx + 8]\n+mov dword ptr [ebx + 8], eax\n+mov dword ptr [esi + 0x14], eax\n+inc dword ptr [esi + 8]\n jmp 0x1c\n-mov dword ptr [ebx + 0x10], eax\n-mov dword ptr [ebx + 0x14], eax\n-inc dword ptr [ebx + 8]\n+mov dword ptr [esi + 0x10], eax\n+mov dword ptr [esi + 0x14], eax\n+inc dword ptr [esi + 8]\n jmp 0x11\n cmp dword ptr [ebp - 0x1a], 0\n je 0xb\n push 1\n mov eax, dword ptr [ebp - 0x1a]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx]\n mov eax, dword ptr [ebp - 0x2c]\n mov ecx, dword ptr [ebp + 8]"}, {"address": "0x100cc2d0", "name": "MxList<MxString>::InsertEntry", "matching": 1.0, "diff": ""}, {"address": "0x100cc3c0", "name": "MxListEntry<MxString>::MxListEntry<MxString>", "matching": 1.0, "diff": ""}, {"address": "0x100cc450", "name": "MxListEntry<MxString>::GetValue", "matching": 1.0, "diff": ""}, {"address": "0x100cc4b0", "name": "MxDSFile::MxDSFile", "matching": 1.0, "diff": ""}, {"address": "0x100cc590", "name": "MxDSFile::Open", "matching": 1.0, "diff": ""}, {"address": "0x100cc620", "name": "MxDSFile::ReadChunks", "matching": 1.0, "diff": ""}, {"address": "0x100cc740", "name": "MxDSFile::Close", "matching": 1.0, "diff": ""}, {"address": "0x100cc780", "name": "MxDSFile::Read", "matching": 1.0, "diff": ""}, {"address": "0x100cc7b0", "name": "MxDSFile::Seek", "matching": 1.0, "diff": ""}, {"address": "0x100cc7e0", "name": "MxDSFile::GetBufferSize", "matching": 1.0, "diff": ""}, {"address": "0x100cc7f0", "name": "MxDSFile::GetStreamBuffersNum", "matching": 1.0, "diff": ""}, {"address": "0x100cc800", "name": "MXIOINFO::MXIOINFO", "matching": 1.0, "diff": ""}, {"address": "0x100cc820", "name": "MXIOINFO::~MXIOINFO", "matching": 1.0, "diff": ""}, {"address": "0x100cc830", "name": "MXIOINFO::Open", "matching": 1.0, "diff": ""}, {"address": "0x100cc8e0", "name": "MXIOINFO::Close", "matching": 1.0, "diff": ""}, {"address": "0x100cc930", "name": "MXIOINFO::Read", "matching": 0.9733333333333334, "diff": "--- \n\n+++ \n\n@@ -7,22 +7,22 @@\n\n push ebp\n cmp dword ptr [ebx + 0x18], 0\n je 0x58\n mov eax, dword ptr [ebx + 0x20]\n mov ebp, dword ptr [esp + 0x1c]\n sub eax, dword ptr [ebx + 0x1c]\n test ebp, ebp\n jle 0x91\n test eax, eax\n jle 0x24\n-cmp ebp, eax\n-jge 0x2\n+cmp eax, ebp\n+jle 0x2\n mov eax, ebp\n mov edi, dword ptr [esp + 0x18]\n mov esi, dword ptr [ebx + 0x1c]\n mov ecx, eax\n sub ebp, eax\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]"}, {"address": "0x100cca00", "name": "MXIOINFO::Seek", "matching": 1.0, "diff": ""}, {"address": "0x100ccbc0", "name": "MXIOINFO::SetBuffer", "matching": 1.0, "diff": ""}, {"address": "0x100ccc10", "name": "MXIOINFO::Flush", "matching": 1.0, "diff": ""}, {"address": "0x100ccd00", "name": "MXIOINFO::Advance", "matching": 0.9548872180451128, "diff": "--- \n\n+++ \n\n@@ -24,41 +24,41 @@\n\n jle 0x67\n mov eax, dword ptr [esi + 0x28]\n cmp dword ptr [esi + 0x2c], eax\n je 0x10\n push 0\n push eax\n mov eax, dword ptr [esi + 0x44]\n push eax\n call dword ptr [__imp___llseek@12 (POINTER)]\n mov dword ptr [esi + 0x2c], eax\n-mov eax, dword ptr [esi + 0x28]\n-cmp dword ptr [esi + 0x2c], eax\n+mov eax, dword ptr [esi + 0x2c]\n+cmp dword ptr [esi + 0x28], eax\n je 0x6\n mov di, 0x107\n jmp 0x30\n push ebx\n mov eax, dword ptr [esi + 0x18]\n push eax\n mov ecx, dword ptr [esi + 0x44]\n push ecx\n call dword ptr [__imp___hwrite@12 (POINTER)]\n cmp eax, -1\n je 0x18\n-cmp ebx, eax\n+cmp eax, ebx\n jne 0x14\n add dword ptr [esi + 0x2c], eax\n and dword ptr [esi], 0xefffffff\n mov eax, dword ptr [esi + 0x18]\n mov dword ptr [esi + 0x1c], eax\n mov dword ptr [esi + 0x20], eax\n-jmp 0x15\n+jmp 0x4\n mov di, 0x106\n push 1\n mov eax, dword ptr [esi + 0x44]\n push 0\n push eax\n call dword ptr [__imp___llseek@12 (POINTER)]\n mov dword ptr [esi + 0x2c], eax\n mov eax, dword ptr [esi + 0x28]\n add eax, ebx\n test ebp, ebp\n@@ -69,22 +69,22 @@\n\n test ebx, ebx\n jle 0x8b\n cmp dword ptr [esi + 0x2c], eax\n je 0x10\n push 0\n push eax\n mov eax, dword ptr [esi + 0x44]\n push eax\n call dword ptr [__imp___llseek@12 (POINTER)]\n mov dword ptr [esi + 0x2c], eax\n-mov eax, dword ptr [esi + 0x28]\n-cmp dword ptr [esi + 0x2c], eax\n+mov eax, dword ptr [esi + 0x2c]\n+cmp dword ptr [esi + 0x28], eax\n je 0x1f\n mov di, 0x107\n push 1\n push 0\n mov eax, dword ptr [esi + 0x44]\n push eax\n call dword ptr [__imp___llseek@12 (POINTER)]\n pop ebp\n mov dword ptr [esi + 0x2c], eax\n mov ax, di"}, {"address": "0x100cce60", "name": "MXIOINFO::Descend", "matching": 0.9857142857142858, "diff": "--- \n\n+++ \n\n@@ -78,22 +78,22 @@\n\n test eax, eax\n je 0xe\n mov ecx, dword ptr [esi + 0x1c]\n sub ecx, eax\n add ecx, dword ptr [esi + 0x28]\n mov dword ptr [esp + 0x24], ecx\n jmp 0x7\n mov eax, dword ptr [esi + 0x2c]\n mov dword ptr [esp + 0x24], eax\n mov eax, dword ptr [esp + 0x14]\n-cmp eax, dword ptr [esp + 0x24]\n-jae 0x6\n+cmp dword ptr [esp + 0x24], eax\n+jbe 0x6\n mov bx, 0x109\n jmp 0x6e\n cmp word ptr [esp + 0x38], 0x40\n jne 0xa\n cmp dword ptr [esp + 0x18], 0x5453494c\n je 0x12\n cmp word ptr [esp + 0x38], 0x20\n jne 0x2e\n cmp dword ptr [esp + 0x18], 0x46464952\n jne 0x24"}, {"address": "0x100cd010", "name": "MxDSStreamingAction::MxDSStreamingAction", "matching": 1.0, "diff": ""}, {"address": "0x100cd090", "name": "MxDSStreamingAction::HasId", "matching": 1.0, "diff": ""}, {"address": "0x100cd0b0", "name": "MxDSStreamingAction::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100cd0d0", "name": "MxDSStreamingAction::MxDSStreamingAction", "matching": 1.0, "diff": ""}, {"address": "0x100cd150", "name": "MxDSStreamingAction::~MxDSStreamingAction", "matching": 1.0, "diff": ""}, {"address": "0x100cd1e0", "name": "MxDSStreamingAction::Init", "matching": 1.0, "diff": ""}, {"address": "0x100cd220", "name": "MxDSStreamingAction::CopyFrom", "matching": 1.0, "diff": ""}, {"address": "0x100cd2a0", "name": "MxDSStreamingAction::SetInternalAction", "matching": 1.0, "diff": ""}, {"address": "0x100cd2d0", "name": "MxDSStreamingAction::FUN_100cd2d0", "matching": 1.0, "diff": ""}, {"address": "0x100cd782", "name": "_SmackGetSizeTables", "matching": 0.8571428571428571, "diff": "--- \n\n+++ \n\n@@ -1,12 +1,17 @@\n\n mov eax, 0x7468\n ret \n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n add esi, 0x7468\n shr eax, 2\n test byte ptr [esi], 1\n jne 0x8\n add esi, 4\n dec eax\n jne -0xb\n jmp 0x19\n movzx edx, word ptr [esi + 2]\n mov ch, 1\n@@ -30,18 +35,10 @@\n\n dec eax\n jne -0xe\n jmp 0xd\n mov dx, word ptr [esi + 2]\n mov word ptr [esi], dx\n add esi, 4\n dec eax\n jne -0x1d\n pop ebp\n ret \n-push ebp\n-mov ebp, esp\n-push es\n-push ebx\n-push ecx\n-push edx\n-push edi\n-push esi"}, {"address": "0x100cd7e8", "name": "_SmackDoTables", "matching": 0.9455445544554455, "diff": "--- \n\n+++ \n\n@@ -126,20 +126,28 @@\n\n add esi, ecx\n call <OFFSET14>\n pop esi\n pop edi\n pop edx\n pop ecx\n pop ebx\n pop es\n pop ebp\n ret \n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+nop \n push esi\n push ecx\n push edx\n push ebx\n mov edx, edi\n mov esi, dword ptr [edx + 2]\n mov edi, dword ptr [edx + 6]\n mov ebp, dword ptr [<OFFSET15>]\n movzx ebx, word ptr [edx + 0xa]\n cmp ebx, 0\n@@ -182,21 +190,13 @@\n\n movzx eax, word ptr [edi]\n add edi, 2\n mov dword ptr [<OFFSET22>], eax\n mov dword ptr [<OFFSET23>], edi\n mov edi, edx\n pop ebx\n pop edx\n pop ecx\n pop esi\n ret \n-push ebp\n-mov ebp, esp\n-push es\n-push ebx\n-push edi\n-push esi\n-push edx\n-mov ax, ds\n-mov es, eax\n-cld \n-mov esi, dword ptr [ebp + 0xc]\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx"}, {"address": "0x100cda83", "name": "_SmackDoFrameToBuffer", "matching": 0.7632005183025591, "diff": "--- \n\n+++ \n\n@@ -59,53 +59,67 @@\n\n mov eax, dword ptr [edi + 4]\n mov dword ptr [edi + 0x20], 0\n mov dword ptr [edi + 0x2c], 0\n mov dword ptr [edi + 0x30], 0\n add edi, 0x38\n mov dword ptr [<OFFSET15>], edi\n xor edi, edi\n mov dword ptr [<OFFSET16>], edi\n mov dword ptr [<OFFSET17>], edi\n mov edi, eax\n-jmp 0x1a\n-xchg ebx, ebx\n-xchg ecx, ecx\n-xchg ebx, ebx\n-xchg ecx, ecx\n-xchg ebx, ebx\n-push eax\n-fmul qword ptr [eax + edx]\n-shl dl, 1\n-or al, 0x10\n-mov al, 0xe8\n-or al, 0x10\n-push eax\n-jmp 0x10a0100c\n-daa \n-adc byte ptr [eax], dl\n-cmp al, 0x11\n-ja 0x17\n+jmp 0x1d\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+nop \n+shr byte ptr [ecx], 7\n+adc byte ptr [eax - 0x1feff8d0], dl\n+aaa \n+pop es\n+adc byte ptr [eax - 0x5feff8c8], al\n+mov al, 0xa0\n+or dword ptr [eax], edx\n+cmp al, 8\n+ja 0x47\n mov cl, al\n-movzx edx, word ptr [esi]\n+mov edx, dword ptr [esi]\n+dec cl\n add esi, 2\n-dec cl\n shl edx, cl\n+mov ecx, dword ptr [<OFFSET7>]\n+or edx, ebx\n+mov ebx, edx\n+and edx, 0xff\n add al, 0x10\n-or ebx, edx\n-jmp 0x5\n-xchg ebx, ebx\n-xchg ecx, ecx\n-nop \n-mov cx, bx\n-mov edx, dword ptr [<OFFSET7>]\n-and ecx, 0xff\n-mov ecx, dword ptr [edx + ecx*4]\n+mov ecx, dword ptr [ecx + edx*4]\n+shr ebx, cl\n+sub al, cl\n+shr ecx, 8\n+add ecx, dword ptr [<OFFSET1>]\n+mov edx, dword ptr [ecx]\n+cmp dx, word ptr [<OFFSET2>]\n+jne 0x63\n+jmp 0x37\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+nop \n+mov dx, bx\n+mov ecx, dword ptr [<OFFSET7>]\n+and edx, 0xff\n+mov ecx, dword ptr [ecx + edx*4]\n shr ebx, cl\n sub al, cl\n shr ecx, 8\n add ecx, dword ptr [<OFFSET1>]\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n jne 0x2a\n shr edx, 0xd\n dec al\n jne 0x7\n@@ -113,44 +127,44 @@\n\n add esi, 4\n mov al, 0x20\n and edx, 0xffff8\n shr ebx, 1\n jb 0x5\n mov edx, 4\n add ecx, edx\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n je -0x2a\n+mov ecx, dword ptr [<OFFSET18>]\n+ror edx, 0x10\n mov byte ptr [<OFFSET8>], al\n-shld ecx, edx, 0x10\n-mov ax, cx\n-mov ecx, dword ptr [<OFFSET18>]\n+mov ax, dx\n+ror edx, 0x10\n cmp dword ptr [ecx], edx\n je 0x20\n mov dword ptr [<OFFSET19>], eax\n mov eax, dword ptr [ecx]\n mov dword ptr [ecx], edx\n mov ecx, dword ptr [<OFFSET20>]\n mov edx, dword ptr [ecx]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [<OFFSET21>]\n-mov dword ptr [ecx], edx\n mov eax, dword ptr [<OFFSET19>]\n+mov dword ptr [ecx], edx\n mov edx, eax\n and edx, 0xfc\n mov ecx, eax\n-mov edx, dword ptr [edx + 0x10102730]\n+mov edx, dword ptr [edx + 0x1009a0d0]\n and ecx, 3\n mov dword ptr [<OFFSET22>], edx\n-jmp dword ptr cs:[ecx*4 + 0x100cdb70]\n-xchg ebx, ebx\n-xchg ecx, ecx\n+jmp dword ptr cs:[ecx*4 + 0x100728b0]\n+xchg ebx, ebx\n nop \n add dword ptr [<OFFSET16>], edx\n mov ecx, dword ptr [<OFFSET16>]\n cmp dword ptr [<OFFSET17>], ecx\n ja 0x35\n mov eax, dword ptr [<OFFSET17>]\n add ecx, 0xf\n shr ecx, 4\n shr eax, 4\n cmp eax, ecx\n@@ -158,40 +172,47 @@\n\n add eax, dword ptr [<OFFSET15>]\n add ecx, dword ptr [<OFFSET15>]\n mov byte ptr [eax], 1\n inc eax\n cmp eax, ecx\n jne -0x8\n sub ecx, dword ptr [<OFFSET15>]\n shl ecx, 4\n mov dword ptr [<OFFSET17>], ecx\n mov al, byte ptr [<OFFSET8>]\n-cmp al, 0x11\n-ja 0x1e\n+cmp al, 0xa\n+ja 0x3e\n mov cl, al\n-movzx edx, word ptr [esi]\n+mov edx, dword ptr [esi]\n+dec cl\n add esi, 2\n-dec cl\n shl edx, cl\n+mov ecx, dword ptr [<OFFSET5>]\n+or edx, ebx\n+mov ebx, edx\n+and edx, 0x3ff\n add al, 0x10\n-or ebx, edx\n-jmp 0xc\n-xchg ebx, ebx\n-xchg ecx, ecx\n-xchg ebx, ebx\n-xchg ecx, ecx\n-xchg ebx, ebx\n-xchg ecx, ecx\n-mov cx, bx\n-mov edx, dword ptr [<OFFSET5>]\n-and ecx, 0x3ff\n-mov ecx, dword ptr [edx + ecx*4]\n+mov ecx, dword ptr [ecx + edx*4]\n+shr ebx, cl\n+sub al, cl\n+shr ecx, 8\n+add ecx, dword ptr [<OFFSET1>]\n+mov edx, dword ptr [ecx]\n+cmp dx, word ptr [<OFFSET2>]\n+jne 0x5a\n+jmp 0x2e\n+xchg ebx, ebx\n+xchg ecx, ecx\n+mov dx, bx\n+mov ecx, dword ptr [<OFFSET5>]\n+and edx, 0x3ff\n+mov ecx, dword ptr [ecx + edx*4]\n shr ebx, cl\n sub al, cl\n shr ecx, 8\n add ecx, dword ptr [<OFFSET1>]\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n jne 0x2a\n shr edx, 0xd\n dec al\n jne 0x7\n@@ -199,49 +220,64 @@\n\n add esi, 4\n mov al, 0x20\n and edx, 0xffff8\n shr ebx, 1\n jb 0x5\n mov edx, 4\n add ecx, edx\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n je -0x2a\n+mov ecx, dword ptr [<OFFSET23>]\n mov byte ptr [<OFFSET8>], al\n mov eax, edx\n-mov ecx, dword ptr [<OFFSET23>]\n cmp dword ptr [ecx], edx\n je 0x20\n mov dword ptr [<OFFSET19>], eax\n mov eax, dword ptr [ecx]\n mov dword ptr [ecx], edx\n mov ecx, dword ptr [<OFFSET24>]\n mov edx, dword ptr [ecx]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [<OFFSET25>]\n-mov dword ptr [ecx], edx\n mov eax, dword ptr [<OFFSET19>]\n+mov dword ptr [ecx], edx\n mov al, byte ptr [<OFFSET8>]\n-cmp al, 0x11\n-ja 0x12\n+cmp al, 0xb\n+ja 0x42\n mov cl, al\n-movzx edx, word ptr [esi]\n+mov edx, dword ptr [esi]\n+dec cl\n add esi, 2\n-dec cl\n shl edx, cl\n+mov ecx, dword ptr [<OFFSET4>]\n+or edx, ebx\n+mov ebx, edx\n+and edx, 0x7ff\n add al, 0x10\n-or ebx, edx\n-jmp 0x0\n-mov cx, bx\n-mov edx, dword ptr [<OFFSET4>]\n-and ecx, 0x7ff\n-mov ecx, dword ptr [edx + ecx*4]\n+mov ecx, dword ptr [ecx + edx*4]\n+shr ebx, cl\n+sub al, cl\n+shr ecx, 8\n+add ecx, dword ptr [<OFFSET1>]\n+mov edx, dword ptr [ecx]\n+cmp dx, word ptr [<OFFSET2>]\n+jne 0x5e\n+jmp 0x32\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+mov dx, bx\n+mov ecx, dword ptr [<OFFSET4>]\n+and edx, 0x7ff\n+mov ecx, dword ptr [ecx + edx*4]\n shr ebx, cl\n sub al, cl\n shr ecx, 8\n add ecx, dword ptr [<OFFSET1>]\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n jne 0x2a\n shr edx, 0xd\n dec al\n jne 0x7\n@@ -249,49 +285,49 @@\n\n add esi, 4\n mov al, 0x20\n and edx, 0xffff8\n shr ebx, 1\n jb 0x5\n mov edx, 4\n add ecx, edx\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n je -0x2a\n+mov ecx, dword ptr [<OFFSET26>]\n+ror edx, 0x10\n mov byte ptr [<OFFSET8>], al\n-shld ecx, edx, 0x10\n-mov ax, cx\n-mov ecx, dword ptr [<OFFSET26>]\n+mov ax, dx\n+ror edx, 0x10\n cmp dword ptr [ecx], edx\n je 0x20\n mov dword ptr [<OFFSET19>], eax\n mov eax, dword ptr [ecx]\n mov dword ptr [ecx], edx\n mov ecx, dword ptr [<OFFSET27>]\n mov edx, dword ptr [ecx]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [<OFFSET28>]\n-mov dword ptr [ecx], edx\n mov eax, dword ptr [<OFFSET19>]\n+mov dword ptr [ecx], edx\n mov edx, eax\n mov ecx, eax\n ror eax, 0x10\n mov dx, ax\n shrd eax, ecx, 0x1c\n and eax, 0xf0\n add eax, <OFFSET29>\n jmp eax\n xchg ebx, ebx\n xchg ecx, ecx\n xchg ebx, ebx\n xchg ecx, ecx\n xchg ebx, ebx\n-xchg ecx, ecx\n mov al, dl\n mov ah, dl\n shl eax, 0x10\n mov al, dl\n mov ah, dl\n jmp 0xf0\n mov eax, edx\n mov ah, dl\n rol eax, 8\n jmp 0xe4\n@@ -768,37 +804,37 @@\n\n mov al, dh\n mov ah, dh\n jmp 0x3\n xchg ebx, ebx\n nop \n mov dword ptr [edi + ebp*2], eax\n sub edi, dword ptr [<OFFSET12>]\n dec dword ptr [<OFFSET10>]\n je 0x1f\n dec dword ptr [<OFFSET22>]\n-jne -0x5f4\n-jmp -0x712\n+jne -0x644\n+jmp -0x792\n xchg ebx, ebx\n xchg ecx, ecx\n xchg ebx, ebx\n xchg ecx, ecx\n xchg ebx, ebx\n xchg ecx, ecx\n xchg ebx, ebx\n dec dword ptr [<OFFSET11>]\n-je 0x794\n+je 0x904\n add edi, dword ptr [<OFFSET14>]\n mov eax, dword ptr [<OFFSET9>]\n mov dword ptr [<OFFSET10>], eax\n dec dword ptr [<OFFSET22>]\n-jne -0x62f\n-jmp -0x74d\n+jne -0x67f\n+jmp -0x7cd\n xchg ebx, ebx\n nop \n add dword ptr [<OFFSET16>], edx\n mov ecx, dword ptr [<OFFSET16>]\n cmp dword ptr [<OFFSET17>], ecx\n ja 0x35\n mov eax, dword ptr [<OFFSET17>]\n add ecx, 0xf\n shr ecx, 4\n shr eax, 4\n@@ -807,40 +843,47 @@\n\n add eax, dword ptr [<OFFSET15>]\n add ecx, dword ptr [<OFFSET15>]\n mov byte ptr [eax], 1\n inc eax\n cmp eax, ecx\n jne -0x8\n sub ecx, dword ptr [<OFFSET15>]\n shl ecx, 4\n mov dword ptr [<OFFSET17>], ecx\n mov al, byte ptr [<OFFSET8>]\n-cmp al, 0x11\n-ja 0x1e\n+cmp al, 0xc\n+ja 0x3e\n mov cl, al\n-movzx edx, word ptr [esi]\n+mov edx, dword ptr [esi]\n+dec cl\n add esi, 2\n-dec cl\n shl edx, cl\n+mov ecx, dword ptr [<OFFSET6>]\n+or edx, ebx\n+mov ebx, edx\n+and edx, 0xfff\n add al, 0x10\n-or ebx, edx\n-jmp 0xc\n-xchg ebx, ebx\n-xchg ecx, ecx\n-xchg ebx, ebx\n-xchg ecx, ecx\n-xchg ebx, ebx\n-xchg ecx, ecx\n-mov cx, bx\n-mov edx, dword ptr [<OFFSET6>]\n-and ecx, 0xfff\n-mov ecx, dword ptr [edx + ecx*4]\n+mov ecx, dword ptr [ecx + edx*4]\n+shr ebx, cl\n+sub al, cl\n+shr ecx, 8\n+add ecx, dword ptr [<OFFSET1>]\n+mov edx, dword ptr [ecx]\n+cmp dx, word ptr [<OFFSET2>]\n+jne 0x5a\n+jmp 0x2e\n+xchg ebx, ebx\n+xchg ecx, ecx\n+mov dx, bx\n+mov ecx, dword ptr [<OFFSET6>]\n+and edx, 0xfff\n+mov ecx, dword ptr [ecx + edx*4]\n shr ebx, cl\n sub al, cl\n shr ecx, 8\n add ecx, dword ptr [<OFFSET1>]\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n jne 0x2a\n shr edx, 0xd\n dec al\n jne 0x7\n@@ -848,49 +891,64 @@\n\n add esi, 4\n mov al, 0x20\n and edx, 0xffff8\n shr ebx, 1\n jb 0x5\n mov edx, 4\n add ecx, edx\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n je -0x2a\n+mov ecx, dword ptr [<OFFSET33>]\n mov byte ptr [<OFFSET8>], al\n mov eax, edx\n-mov ecx, dword ptr [<OFFSET33>]\n cmp dword ptr [ecx], edx\n je 0x20\n mov dword ptr [<OFFSET19>], eax\n mov eax, dword ptr [ecx]\n mov dword ptr [ecx], edx\n mov ecx, dword ptr [<OFFSET34>]\n mov edx, dword ptr [ecx]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [<OFFSET35>]\n-mov dword ptr [ecx], edx\n mov eax, dword ptr [<OFFSET19>]\n+mov dword ptr [ecx], edx\n mov al, byte ptr [<OFFSET8>]\n-cmp al, 0x11\n-ja 0x12\n+cmp al, 0xc\n+ja 0x42\n mov cl, al\n-movzx edx, word ptr [esi]\n+mov edx, dword ptr [esi]\n+dec cl\n add esi, 2\n-dec cl\n shl edx, cl\n+mov ecx, dword ptr [<OFFSET6>]\n+or edx, ebx\n+mov ebx, edx\n+and edx, 0xfff\n add al, 0x10\n-or ebx, edx\n-jmp 0x0\n-mov cx, bx\n-mov edx, dword ptr [<OFFSET6>]\n-and ecx, 0xfff\n-mov ecx, dword ptr [edx + ecx*4]\n+mov ecx, dword ptr [ecx + edx*4]\n+shr ebx, cl\n+sub al, cl\n+shr ecx, 8\n+add ecx, dword ptr [<OFFSET1>]\n+mov edx, dword ptr [ecx]\n+cmp dx, word ptr [<OFFSET2>]\n+jne 0x5e\n+jmp 0x32\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+mov dx, bx\n+mov ecx, dword ptr [<OFFSET6>]\n+and edx, 0xfff\n+mov ecx, dword ptr [ecx + edx*4]\n shr ebx, cl\n sub al, cl\n shr ecx, 8\n add ecx, dword ptr [<OFFSET1>]\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n jne 0x2a\n shr edx, 0xd\n dec al\n jne 0x7\n@@ -898,56 +956,71 @@\n\n add esi, 4\n mov al, 0x20\n and edx, 0xffff8\n shr ebx, 1\n jb 0x5\n mov edx, 4\n add ecx, edx\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n je -0x2a\n+mov ecx, dword ptr [<OFFSET33>]\n+ror edx, 0x10\n mov byte ptr [<OFFSET8>], al\n-shld ecx, edx, 0x10\n-mov ax, cx\n-mov ecx, dword ptr [<OFFSET33>]\n+mov ax, dx\n+ror edx, 0x10\n cmp dword ptr [ecx], edx\n je 0x20\n mov dword ptr [<OFFSET19>], eax\n mov eax, dword ptr [ecx]\n mov dword ptr [ecx], edx\n mov ecx, dword ptr [<OFFSET34>]\n mov edx, dword ptr [ecx]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [<OFFSET35>]\n-mov dword ptr [ecx], edx\n mov eax, dword ptr [<OFFSET19>]\n+mov dword ptr [ecx], edx\n mov dword ptr [edi], eax\n add edi, ebp\n mov al, byte ptr [<OFFSET8>]\n-cmp al, 0x11\n-ja 0x19\n+cmp al, 0xc\n+ja 0x47\n mov cl, al\n-movzx edx, word ptr [esi]\n+mov edx, dword ptr [esi]\n+dec cl\n add esi, 2\n-dec cl\n shl edx, cl\n+mov ecx, dword ptr [<OFFSET6>]\n+or edx, ebx\n+mov ebx, edx\n+and edx, 0xfff\n add al, 0x10\n-or ebx, edx\n-jmp 0x7\n-xchg ebx, ebx\n-xchg ecx, ecx\n-xchg ebx, ebx\n-nop \n-mov cx, bx\n-mov edx, dword ptr [<OFFSET6>]\n-and ecx, 0xfff\n-mov ecx, dword ptr [edx + ecx*4]\n+mov ecx, dword ptr [ecx + edx*4]\n+shr ebx, cl\n+sub al, cl\n+shr ecx, 8\n+add ecx, dword ptr [<OFFSET1>]\n+mov edx, dword ptr [ecx]\n+cmp dx, word ptr [<OFFSET2>]\n+jne 0x63\n+jmp 0x37\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+nop \n+mov dx, bx\n+mov ecx, dword ptr [<OFFSET6>]\n+and edx, 0xfff\n+mov ecx, dword ptr [ecx + edx*4]\n shr ebx, cl\n sub al, cl\n shr ecx, 8\n add ecx, dword ptr [<OFFSET1>]\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n jne 0x2a\n shr edx, 0xd\n dec al\n jne 0x7\n@@ -955,49 +1028,64 @@\n\n add esi, 4\n mov al, 0x20\n and edx, 0xffff8\n shr ebx, 1\n jb 0x5\n mov edx, 4\n add ecx, edx\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n je -0x2a\n+mov ecx, dword ptr [<OFFSET33>]\n mov byte ptr [<OFFSET8>], al\n mov eax, edx\n-mov ecx, dword ptr [<OFFSET33>]\n cmp dword ptr [ecx], edx\n je 0x20\n mov dword ptr [<OFFSET19>], eax\n mov eax, dword ptr [ecx]\n mov dword ptr [ecx], edx\n mov ecx, dword ptr [<OFFSET34>]\n mov edx, dword ptr [ecx]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [<OFFSET35>]\n-mov dword ptr [ecx], edx\n mov eax, dword ptr [<OFFSET19>]\n+mov dword ptr [ecx], edx\n mov al, byte ptr [<OFFSET8>]\n-cmp al, 0x11\n-ja 0x12\n+cmp al, 0xc\n+ja 0x42\n mov cl, al\n-movzx edx, word ptr [esi]\n+mov edx, dword ptr [esi]\n+dec cl\n add esi, 2\n-dec cl\n shl edx, cl\n+mov ecx, dword ptr [<OFFSET6>]\n+or edx, ebx\n+mov ebx, edx\n+and edx, 0xfff\n add al, 0x10\n-or ebx, edx\n-jmp 0x0\n-mov cx, bx\n-mov edx, dword ptr [<OFFSET6>]\n-and ecx, 0xfff\n-mov ecx, dword ptr [edx + ecx*4]\n+mov ecx, dword ptr [ecx + edx*4]\n+shr ebx, cl\n+sub al, cl\n+shr ecx, 8\n+add ecx, dword ptr [<OFFSET1>]\n+mov edx, dword ptr [ecx]\n+cmp dx, word ptr [<OFFSET2>]\n+jne 0x5e\n+jmp 0x32\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+mov dx, bx\n+mov ecx, dword ptr [<OFFSET6>]\n+and edx, 0xfff\n+mov ecx, dword ptr [ecx + edx*4]\n shr ebx, cl\n sub al, cl\n shr ecx, 8\n add ecx, dword ptr [<OFFSET1>]\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n jne 0x2a\n shr edx, 0xd\n dec al\n jne 0x7\n@@ -1005,56 +1093,71 @@\n\n add esi, 4\n mov al, 0x20\n and edx, 0xffff8\n shr ebx, 1\n jb 0x5\n mov edx, 4\n add ecx, edx\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n je -0x2a\n+mov ecx, dword ptr [<OFFSET33>]\n+ror edx, 0x10\n mov byte ptr [<OFFSET8>], al\n-shld ecx, edx, 0x10\n-mov ax, cx\n-mov ecx, dword ptr [<OFFSET33>]\n+mov ax, dx\n+ror edx, 0x10\n cmp dword ptr [ecx], edx\n je 0x20\n mov dword ptr [<OFFSET19>], eax\n mov eax, dword ptr [ecx]\n mov dword ptr [ecx], edx\n mov ecx, dword ptr [<OFFSET34>]\n mov edx, dword ptr [ecx]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [<OFFSET35>]\n-mov dword ptr [ecx], edx\n mov eax, dword ptr [<OFFSET19>]\n+mov dword ptr [ecx], edx\n mov dword ptr [edi], eax\n mov al, byte ptr [<OFFSET8>]\n-cmp al, 0x11\n-ja 0x1b\n+cmp al, 0xc\n+ja 0x49\n mov cl, al\n-movzx edx, word ptr [esi]\n+mov edx, dword ptr [esi]\n+dec cl\n add esi, 2\n-dec cl\n shl edx, cl\n+mov ecx, dword ptr [<OFFSET6>]\n+or edx, ebx\n+mov ebx, edx\n+and edx, 0xfff\n add al, 0x10\n-or ebx, edx\n-jmp 0x9\n-xchg ebx, ebx\n-xchg ecx, ecx\n-xchg ebx, ebx\n-xchg ecx, ecx\n-nop \n-mov cx, bx\n-mov edx, dword ptr [<OFFSET6>]\n-and ecx, 0xfff\n-mov ecx, dword ptr [edx + ecx*4]\n+mov ecx, dword ptr [ecx + edx*4]\n+shr ebx, cl\n+sub al, cl\n+shr ecx, 8\n+add ecx, dword ptr [<OFFSET1>]\n+mov edx, dword ptr [ecx]\n+cmp dx, word ptr [<OFFSET2>]\n+jne 0x65\n+jmp 0x39\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+nop \n+mov dx, bx\n+mov ecx, dword ptr [<OFFSET6>]\n+and edx, 0xfff\n+mov ecx, dword ptr [ecx + edx*4]\n shr ebx, cl\n sub al, cl\n shr ecx, 8\n add ecx, dword ptr [<OFFSET1>]\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n jne 0x2a\n shr edx, 0xd\n dec al\n jne 0x7\n@@ -1062,49 +1165,64 @@\n\n add esi, 4\n mov al, 0x20\n and edx, 0xffff8\n shr ebx, 1\n jb 0x5\n mov edx, 4\n add ecx, edx\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n je -0x2a\n+mov ecx, dword ptr [<OFFSET33>]\n mov byte ptr [<OFFSET8>], al\n mov eax, edx\n-mov ecx, dword ptr [<OFFSET33>]\n cmp dword ptr [ecx], edx\n je 0x20\n mov dword ptr [<OFFSET19>], eax\n mov eax, dword ptr [ecx]\n mov dword ptr [ecx], edx\n mov ecx, dword ptr [<OFFSET34>]\n mov edx, dword ptr [ecx]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [<OFFSET35>]\n-mov dword ptr [ecx], edx\n mov eax, dword ptr [<OFFSET19>]\n+mov dword ptr [ecx], edx\n mov al, byte ptr [<OFFSET8>]\n-cmp al, 0x11\n-ja 0x12\n+cmp al, 0xc\n+ja 0x42\n mov cl, al\n-movzx edx, word ptr [esi]\n+mov edx, dword ptr [esi]\n+dec cl\n add esi, 2\n-dec cl\n shl edx, cl\n+mov ecx, dword ptr [<OFFSET6>]\n+or edx, ebx\n+mov ebx, edx\n+and edx, 0xfff\n add al, 0x10\n-or ebx, edx\n-jmp 0x0\n-mov cx, bx\n-mov edx, dword ptr [<OFFSET6>]\n-and ecx, 0xfff\n-mov ecx, dword ptr [edx + ecx*4]\n+mov ecx, dword ptr [ecx + edx*4]\n+shr ebx, cl\n+sub al, cl\n+shr ecx, 8\n+add ecx, dword ptr [<OFFSET1>]\n+mov edx, dword ptr [ecx]\n+cmp dx, word ptr [<OFFSET2>]\n+jne 0x5e\n+jmp 0x32\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+mov dx, bx\n+mov ecx, dword ptr [<OFFSET6>]\n+and edx, 0xfff\n+mov ecx, dword ptr [ecx + edx*4]\n shr ebx, cl\n sub al, cl\n shr ecx, 8\n add ecx, dword ptr [<OFFSET1>]\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n jne 0x2a\n shr edx, 0xd\n dec al\n jne 0x7\n@@ -1112,55 +1230,70 @@\n\n add esi, 4\n mov al, 0x20\n and edx, 0xffff8\n shr ebx, 1\n jb 0x5\n mov edx, 4\n add ecx, edx\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n je -0x2a\n+mov ecx, dword ptr [<OFFSET33>]\n+ror edx, 0x10\n mov byte ptr [<OFFSET8>], al\n-shld ecx, edx, 0x10\n-mov ax, cx\n-mov ecx, dword ptr [<OFFSET33>]\n+mov ax, dx\n+ror edx, 0x10\n cmp dword ptr [ecx], edx\n je 0x20\n mov dword ptr [<OFFSET19>], eax\n mov eax, dword ptr [ecx]\n mov dword ptr [ecx], edx\n mov ecx, dword ptr [<OFFSET34>]\n mov edx, dword ptr [ecx]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [<OFFSET35>]\n-mov dword ptr [ecx], edx\n mov eax, dword ptr [<OFFSET19>]\n+mov dword ptr [ecx], edx\n mov dword ptr [edi + ebp], eax\n mov al, byte ptr [<OFFSET8>]\n-cmp al, 0x11\n-ja 0x1a\n+cmp al, 0xc\n+ja 0x48\n mov cl, al\n-movzx edx, word ptr [esi]\n+mov edx, dword ptr [esi]\n+dec cl\n add esi, 2\n-dec cl\n shl edx, cl\n+mov ecx, dword ptr [<OFFSET6>]\n+or edx, ebx\n+mov ebx, edx\n+and edx, 0xfff\n add al, 0x10\n-or ebx, edx\n-jmp 0x8\n-xchg ebx, ebx\n-xchg ecx, ecx\n-xchg ebx, ebx\n-xchg ecx, ecx\n-mov cx, bx\n-mov edx, dword ptr [<OFFSET6>]\n-and ecx, 0xfff\n-mov ecx, dword ptr [edx + ecx*4]\n+mov ecx, dword ptr [ecx + edx*4]\n+shr ebx, cl\n+sub al, cl\n+shr ecx, 8\n+add ecx, dword ptr [<OFFSET1>]\n+mov edx, dword ptr [ecx]\n+cmp dx, word ptr [<OFFSET2>]\n+jne 0x64\n+jmp 0x38\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+mov dx, bx\n+mov ecx, dword ptr [<OFFSET6>]\n+and edx, 0xfff\n+mov ecx, dword ptr [ecx + edx*4]\n shr ebx, cl\n sub al, cl\n shr ecx, 8\n add ecx, dword ptr [<OFFSET1>]\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n jne 0x2a\n shr edx, 0xd\n dec al\n jne 0x7\n@@ -1168,49 +1301,64 @@\n\n add esi, 4\n mov al, 0x20\n and edx, 0xffff8\n shr ebx, 1\n jb 0x5\n mov edx, 4\n add ecx, edx\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n je -0x2a\n+mov ecx, dword ptr [<OFFSET33>]\n mov byte ptr [<OFFSET8>], al\n mov eax, edx\n-mov ecx, dword ptr [<OFFSET33>]\n cmp dword ptr [ecx], edx\n je 0x20\n mov dword ptr [<OFFSET19>], eax\n mov eax, dword ptr [ecx]\n mov dword ptr [ecx], edx\n mov ecx, dword ptr [<OFFSET34>]\n mov edx, dword ptr [ecx]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [<OFFSET35>]\n-mov dword ptr [ecx], edx\n mov eax, dword ptr [<OFFSET19>]\n+mov dword ptr [ecx], edx\n mov al, byte ptr [<OFFSET8>]\n-cmp al, 0x11\n-ja 0x12\n+cmp al, 0xc\n+ja 0x42\n mov cl, al\n-movzx edx, word ptr [esi]\n+mov edx, dword ptr [esi]\n+dec cl\n add esi, 2\n-dec cl\n shl edx, cl\n+mov ecx, dword ptr [<OFFSET6>]\n+or edx, ebx\n+mov ebx, edx\n+and edx, 0xfff\n add al, 0x10\n-or ebx, edx\n-jmp 0x0\n-mov cx, bx\n-mov edx, dword ptr [<OFFSET6>]\n-and ecx, 0xfff\n-mov ecx, dword ptr [edx + ecx*4]\n+mov ecx, dword ptr [ecx + edx*4]\n+shr ebx, cl\n+sub al, cl\n+shr ecx, 8\n+add ecx, dword ptr [<OFFSET1>]\n+mov edx, dword ptr [ecx]\n+cmp dx, word ptr [<OFFSET2>]\n+jne 0x5e\n+jmp 0x32\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+mov dx, bx\n+mov ecx, dword ptr [<OFFSET6>]\n+and edx, 0xfff\n+mov ecx, dword ptr [ecx + edx*4]\n shr ebx, cl\n sub al, cl\n shr ecx, 8\n add ecx, dword ptr [<OFFSET1>]\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n jne 0x2a\n shr edx, 0xd\n dec al\n jne 0x7\n@@ -1218,52 +1366,52 @@\n\n add esi, 4\n mov al, 0x20\n and edx, 0xffff8\n shr ebx, 1\n jb 0x5\n mov edx, 4\n add ecx, edx\n mov edx, dword ptr [ecx]\n cmp dx, word ptr [<OFFSET2>]\n je -0x2a\n+mov ecx, dword ptr [<OFFSET33>]\n+ror edx, 0x10\n mov byte ptr [<OFFSET8>], al\n-shld ecx, edx, 0x10\n-mov ax, cx\n-mov ecx, dword ptr [<OFFSET33>]\n+mov ax, dx\n+ror edx, 0x10\n cmp dword ptr [ecx], edx\n je 0x20\n mov dword ptr [<OFFSET19>], eax\n mov eax, dword ptr [ecx]\n mov dword ptr [ecx], edx\n mov ecx, dword ptr [<OFFSET34>]\n mov edx, dword ptr [ecx]\n mov dword ptr [ecx], eax\n mov ecx, dword ptr [<OFFSET35>]\n-mov dword ptr [ecx], edx\n mov eax, dword ptr [<OFFSET19>]\n+mov dword ptr [ecx], edx\n mov dword ptr [edi + ebp*2], eax\n sub edi, dword ptr [<OFFSET12>]\n dec dword ptr [<OFFSET10>]\n-je 0x15\n+je 0x13\n dec dword ptr [<OFFSET22>]\n-jne -0x55e\n-jmp -0xcfc\n-xchg ebx, ebx\n-xchg ecx, ecx\n+jne -0x6d0\n+jmp -0xeee\n+xchg ebx, ebx\n dec dword ptr [<OFFSET11>]\n je 0x1b4\n add edi, dword ptr [<OFFSET14>]\n mov eax, dword ptr [<OFFSET9>]\n mov dword ptr [<OFFSET10>], eax\n dec dword ptr [<OFFSET22>]\n-jne -0x58f\n-jmp -0xd2d\n+jne -0x6ff\n+jmp -0xf1d\n xchg ebx, ebx\n nop \n mov ecx, dword ptr [<OFFSET16>]\n add ecx, edx\n mov dword ptr [<OFFSET16>], ecx\n mov eax, dword ptr [<OFFSET17>]\n cmp eax, ecx\n ja 0x2d\n shr ecx, 4\n shr eax, 4\n@@ -1280,35 +1428,35 @@\n\n mov dword ptr [<OFFSET17>], ecx\n mov ecx, dword ptr [<OFFSET10>]\n cmp edx, ecx\n jae 0x2\n mov ecx, edx\n lea edi, [edi + ecx*4]\n sub dword ptr [<OFFSET10>], ecx\n je 0x15\n sub edx, ecx\n jne -0x1b\n-jmp -0xd94\n+jmp -0xf84\n xchg ebx, ebx\n xchg ecx, ecx\n xchg ebx, ebx\n xchg ecx, ecx\n xchg ebx, ebx\n xchg ecx, ecx\n dec dword ptr [<OFFSET11>]\n je 0x114\n add edi, dword ptr [<OFFSET14>]\n mov eax, dword ptr [<OFFSET9>]\n mov dword ptr [<OFFSET10>], eax\n sub edx, ecx\n jne -0x4c\n-jmp -0xdc5\n+jmp -0xfb5\n xchg ebx, ebx\n xchg ecx, ecx\n xchg ebx, ebx\n xchg ecx, ecx\n xchg ebx, ebx\n nop \n add dword ptr [<OFFSET16>], edx\n mov ecx, dword ptr [<OFFSET16>]\n cmp dword ptr [<OFFSET17>], ecx\n ja 0x3f\n@@ -1350,199 +1498,42 @@\n\n rep stosd dword ptr es:[edi], eax\n add edi, ebp\n mov ecx, edx\n rep stosd dword ptr es:[edi], eax\n sub edi, dword ptr [<OFFSET13>]\n mov ebp, dword ptr [<OFFSET19>]\n sub dword ptr [<OFFSET10>], edx\n je 0x16\n sub dword ptr [<OFFSET22>], edx\n jne -0x55\n-jmp -0xe87\n+jmp -0x1077\n xchg ebx, ebx\n xchg ecx, ecx\n xchg ebx, ebx\n xchg ecx, ecx\n nop \n dec dword ptr [<OFFSET11>]\n je 0x28\n add edi, dword ptr [<OFFSET14>]\n sub dword ptr [<OFFSET22>], edx\n mov ecx, dword ptr [<OFFSET9>]\n mov dword ptr [<OFFSET10>], ecx\n jne -0x89\n-jmp -0xebb\n+jmp -0x10ab\n xchg ebx, ebx\n xchg ecx, ecx\n nop \n mov eax, dword ptr [<OFFSET17>]\n shr eax, 4\n add eax, dword ptr [<OFFSET15>]\n mov byte ptr [eax], 0\n pop edx\n pop esi\n pop edi\n pop ebx\n pop es\n pop ebp\n ret \n-push ebp\n-mov ebp, esp\n-push es\n-push ebx\n-push edi\n-push esi\n-push edx\n-mov ax, ds\n-mov es, eax\n-cld \n-mov esi, dword ptr [ebp + 0xc]\n-mov dword ptr [<OFFSET1>], esi\n-add esi, 0x7410\n-mov eax, dword ptr [esi]\n-add esi, 4\n-mov word ptr [<OFFSET2>], ax\n-mov edi, <OFFSET3>\n-mov ecx, 4\n-lodsd eax, dword ptr [esi]\n-stosd dword ptr es:[edi], eax\n-mov edx, eax\n-lodsd eax, dword ptr [esi]\n-stosd dword ptr es:[edi], eax\n-mov dword ptr [eax], edx\n-lodsd eax, dword ptr [esi]\n-stosd dword ptr es:[edi], eax\n-mov dword ptr [eax], edx\n-lodsd eax, dword ptr [esi]\n-stosd dword ptr es:[edi], eax\n-mov dword ptr [eax], edx\n-dec ecx\n-jne -0x13\n-mov eax, dword ptr [ebp + 0xc]\n-add eax, 0x10\n-mov dword ptr [<OFFSET4>], eax\n-add eax, 0x2000\n-mov dword ptr [<OFFSET5>], eax\n-add eax, 0x1000\n-mov dword ptr [<OFFSET6>], eax\n-add eax, 0x4000\n-mov dword ptr [<OFFSET7>], eax\n-mov esi, dword ptr [ebp + 8]\n-mov ebx, dword ptr [esi]\n-add esi, 4\n-mov byte ptr [<OFFSET8>], 0x21\n-mov edi, dword ptr [ebp + 0x10]\n-mov eax, dword ptr [edi + 4]\n-mov dword ptr [<OFFSET36>], eax\n-movzx eax, word ptr [edi + 8]\n-mov dword ptr [<OFFSET37>], eax\n-add edi, 0xa\n-mov dword ptr [<OFFSET38>], edi\n-push eax\n-mov edi, dword ptr [<OFFSET38>]\n-mov ax, word ptr [edi]\n-cmp ax, 0xfffd\n-jb 0x1e\n-cmp ax, 0xfffe\n-ja 0x1084\n-je 0x18\n-push <OFFSET39>\n-jmp -0x113f\n-xchg ebx, ebx\n-xchg ecx, ecx\n-xchg ebx, ebx\n-xchg ecx, ecx\n-call dword ptr [<OFFSET36>]\n-add edi, 2\n-movzx eax, word ptr [edi]\n-mov ebp, eax\n-movzx eax, word ptr [edi + 2]\n-mov dword ptr [<OFFSET9>], eax\n-mov dword ptr [<OFFSET10>], eax\n-movzx eax, word ptr [edi + 4]\n-mov dword ptr [<OFFSET12>], eax\n-movzx eax, word ptr [edi + 6]\n-mov dword ptr [<OFFSET13>], eax\n-movzx eax, word ptr [edi + 8]\n-mov dword ptr [<OFFSET14>], eax\n-add edi, 0xa\n-movzx eax, word ptr [edi + 4]\n-mov dword ptr [<OFFSET11>], eax\n-mov eax, dword ptr [edi]\n-add edi, 6\n-mov dword ptr [<OFFSET38>], edi\n-mov edi, eax\n-cmp dword ptr [<OFFSET11>], 0\n-je -0x8a\n-pop eax\n-jmp 0x10\n-pushal \n-in al, dx\n-or al, 0x10\n-xor bl, dh\n-or al, 0x10\n-pushal \n-stc \n-or al, 0x10\n-push eax\n-cli \n-or al, 0x10\n-mov al, byte ptr [<OFFSET8>]\n-cmp al, 0x11\n-ja 0x17\n-mov cl, al\n-movzx edx, word ptr [esi]\n-add esi, 2\n-dec cl\n-shl edx, cl\n-add al, 0x10\n-or ebx, edx\n-jmp 0x5\n-xchg ebx, ebx\n-xchg ecx, ecx\n-nop \n-mov cx, bx\n-mov edx, dword ptr [<OFFSET7>]\n-and ecx, 0xff\n-mov ecx, dword ptr [edx + ecx*4]\n-shr ebx, cl\n-sub al, cl\n-shr ecx, 8\n-add ecx, dword ptr [<OFFSET1>]\n-mov edx, dword ptr [ecx]\n-cmp dx, word ptr [<OFFSET2>]\n-jne 0x2a\n-shr edx, 0xd\n-dec al\n-jne 0x7\n-mov ebx, dword ptr [esi]\n-add esi, 4\n-mov al, 0x20\n-and edx, 0xffff8\n-shr ebx, 1\n-jb 0x5\n-mov edx, 4\n-add ecx, edx\n-mov edx, dword ptr [ecx]\n-cmp dx, word ptr [<OFFSET2>]\n-je -0x2a\n-mov byte ptr [<OFFSET8>], al\n-shld ecx, edx, 0x10\n-mov ax, cx\n-mov ecx, dword ptr [<OFFSET18>]\n-cmp dword ptr [ecx], edx\n-je 0x20\n-mov dword ptr [<OFFSET19>], eax\n-mov eax, dword ptr [ecx]\n-mov dword ptr [ecx], edx\n-mov ecx, dword ptr [<OFFSET20>]\n-mov edx, dword ptr [ecx]\n-mov dword ptr [ecx], eax\n-mov ecx, dword ptr [<OFFSET21>]\n-mov dword ptr [ecx], edx\n-mov eax, dword ptr [<OFFSET19>]\n-mov edx, eax\n-and edx, 0xfc\n-mov ecx, eax\n-mov edx, dword ptr [edx + 0x10102730]\n-and ecx, 3\n-mov dword ptr [<OFFSET22>], edx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx"}, {"address": "0x100d052c", "name": "_SmackGetSizeDeltas", "matching": 0.6666666666666666, "diff": "--- \n\n+++ \n\n@@ -4,18 +4,15 @@\n\n push ecx\n mov eax, dword ptr [ebp + 8]\n mov ecx, dword ptr [ebp + 0xc]\n mul ecx\n shr eax, 8\n add eax, 0x20\n pop ecx\n pop edx\n pop ebp\n ret \n-push ebp\n-mov ebp, esp\n-push esi\n-push edi\n-push ebx\n-push ecx\n-push edx\n-cld \n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+nop "}, {"address": "0x100d0543", "name": "_SmackGetRect", "matching": 0.9134615384615384, "diff": "--- \n\n+++ \n\n@@ -86,20 +86,18 @@\n\n jmp 0x8\n mov byte ptr [esi], 1\n mov eax, 0\n pop edx\n pop ecx\n pop ebx\n pop edi\n pop esi\n pop ebp\n ret \n-push ebp\n-mov ebp, esp\n-push edi\n-push esi\n-push ebx\n-push edx\n-push es\n-cld \n-mov edi, dword ptr [ebp + 0xc]\n-xor ebx, ebx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+xchg ecx, ecx\n+xchg ebx, ebx\n+nop "}, {"address": "0x100d0730", "name": "MxRAMStreamProvider::MxRAMStreamProvider", "matching": 1.0, "diff": ""}, {"address": "0x100d07c0", "name": "MxStreamProvider::SetResourceToGet", "matching": 1.0, "diff": ""}, {"address": "0x100d07d0", "name": "MxStreamProvider::VTable0x20", "matching": 1.0, "diff": ""}, {"address": "0x100d07e0", "name": "MxStreamProvider::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100d07f0", "name": "MxStreamProvider::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100d0870", "name": "MxStreamProvider::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100d08e0", "name": "MxStreamProvider::~MxStreamProvider", "matching": 1.0, "diff": ""}, {"address": "0x100d0930", "name": "MxRAMStreamProvider::GetFileSize", "matching": 1.0, "diff": ""}, {"address": "0x100d0940", "name": "MxRAMStreamProvider::GetStreamBuffersNum", "matching": 1.0, "diff": ""}, {"address": "0x100d0950", "name": "MxRAMStreamProvider::GetLengthInDWords", "matching": 1.0, "diff": ""}, {"address": "0x100d0960", "name": "MxRAMStreamProvider::GetBufferForDWords", "matching": 1.0, "diff": ""}, {"address": "0x100d0970", "name": "MxRAMStreamProvider::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100d0980", "name": "MxRAMStreamProvider::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100d0a30", "name": "MxRAMStreamProvider::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100d0a50", "name": "MxRAMStreamProvider::~MxRAMStreamProvider", "matching": 1.0, "diff": ""}, {"address": "0x100d0ae0", "name": "MxRAMStreamProvider::SetResourceToGet", "matching": 1.0, "diff": ""}, {"address": "0x100d0d80", "name": "ReadData", "matching": 0.9305555555555556, "diff": "--- \n\n+++ \n\n@@ -1,22 +1,22 @@\n\n mov eax, dword ptr [esp + 4]\n sub esp, 0xc\n mov dword ptr [esp], eax\n push ebx\n add eax, dword ptr [esp + 0x18]\n push esi\n mov ebx, dword ptr [esp + 0x10]\n push edi\n mov dword ptr [esp + 0x10], eax\n push ebp\n-cmp dword ptr [esp + 0x20], eax\n-jae 0x15b\n+cmp eax, dword ptr [esp + 0x20]\n+jbe 0x15b\n mov eax, dword ptr [esp + 0x10]\n cmp dword ptr [eax], 0x624f784d\n jne 0x139\n mov ebx, eax\n push -1\n add dword ptr [esp + 0x14], 8\n lea eax, [esp + 0x14]\n push eax\n call DeserializeDSObjectDispatch (FUNCTION)\n mov edx, dword ptr [eax + 0x1c]\n@@ -28,45 +28,45 @@\n\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov eax, dword ptr [ebx + 4]\n mov ecx, eax\n and ecx, 1\n add ecx, ebx\n add ecx, eax\n add ecx, 8\n mov dword ptr [esp + 0x10], ecx\n-cmp ecx, dword ptr [esp + 0x14]\n-jae 0xf7\n+cmp dword ptr [esp + 0x14], ecx\n+jbe 0xf7\n mov eax, dword ptr [esp + 0x10]\n cmp dword ptr [eax], 0x6843784d\n jne 0xcf\n mov esi, eax\n lea edi, [eax + 4]\n mov eax, dword ptr [edi]\n mov ecx, eax\n and ecx, 1\n add ecx, eax\n add ecx, 8\n add dword ptr [esp + 0x10], ecx\n cmp dword ptr [ebx], 0x6843784d\n jne 0x66\n push ebx\n call MxStreamChunk::IntoFlags (FUNCTION)\n add esp, 4\n test byte ptr [eax], 0x10\n je 0x58\n-push esi\n+push ebx\n call MxStreamChunk::IntoObjectId (FUNCTION)\n add esp, 4\n mov ebp, dword ptr [eax]\n-push ebx\n+push esi\n call MxStreamChunk::IntoObjectId (FUNCTION)\n add esp, 4\n cmp ebp, dword ptr [eax]\n jne 0x32\n push esi\n call MxStreamChunk::IntoFlags (FUNCTION)\n add esp, 4\n test byte ptr [eax], 0x10\n je 0x24\n push ebx\n@@ -112,27 +112,27 @@\n\n cmp dword ptr [eax], edx\n jne 0x14\n push ebx\n call MxStreamChunk::IntoFlags (FUNCTION)\n add esp, 4\n test byte ptr [eax], 2\n je 0x6\n jmp 0x18\n inc dword ptr [esp + 0x10]\n mov eax, dword ptr [esp + 0x14]\n-cmp dword ptr [esp + 0x10], eax\n-jb -0xf1\n+cmp eax, dword ptr [esp + 0x10]\n+ja -0xf1\n jmp 0x4\n inc dword ptr [esp + 0x10]\n mov eax, dword ptr [esp + 0x14]\n-cmp dword ptr [esp + 0x10], eax\n-jb -0x15b\n+cmp eax, dword ptr [esp + 0x10]\n+ja -0x15b\n push ebx\n call MxStreamChunk::IntoFlags (FUNCTION)\n and word ptr [eax], 0xffef\n add esp, 4\n mov eax, dword ptr [ebx + 4]\n mov ecx, eax\n and ecx, 1\n sub ecx, dword ptr [esp + 0x20]\n pop ebp\n add ecx, ebx"}, {"address": "0x100d0f30", "name": "MxDiskStreamProviderThread::Run", "matching": 1.0, "diff": ""}, {"address": "0x100d0f50", "name": "MxDiskStreamProviderThread::StartWithTarget", "matching": 1.0, "diff": ""}, {"address": "0x100d0f70", "name": "MxDiskStreamProvider::MxDiskStreamProvider", "matching": 1.0, "diff": ""}, {"address": "0x100d10a0", "name": "MxDiskStreamProviderThread::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100d1110", "name": "MxDiskStreamProviderThread::~MxDiskStreamProviderThread", "matching": 1.0, "diff": ""}, {"address": "0x100d1160", "name": "MxDiskStreamProvider::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100d1170", "name": "MxDiskStreamProvider::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100d1220", "name": "MxDiskStreamProvider::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100d1240", "name": "MxDiskStreamProvider::~MxDiskStreamProvider", "matching": 1.0, "diff": ""}, {"address": "0x100d13d0", "name": "MxDiskStreamProvider::SetResourceToGet", "matching": 0.9655172413793104, "diff": "--- \n\n+++ \n\n@@ -4,23 +4,23 @@\n\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 0x48\n mov dword ptr [ebp - 0x14], 0xffffffff\n push esi\n mov dword ptr [ebp - 0x10], ecx\n lea ecx, [ebp - 0x34]\n call MxString::MxString (FUNCTION)\n+mov dword ptr [ebp - 4], 0\n mov eax, dword ptr [ebp + 8]\n mov ecx, dword ptr [ebp - 0x10]\n-mov dword ptr [ebp - 4], 0\n push '.si' (STRING)\n mov dword ptr [ecx + 8], eax\n lea eax, [ebp - 0x24]\n mov ecx, dword ptr [ebp + 8]\n push eax\n mov edx, dword ptr [ecx + 0x24]\n push edx\n lea eax, [ebp - 0x44]\n push eax\n call MxOmni::GetHD (FUNCTION)\n@@ -54,21 +54,21 @@\n\n je 0xd\n push 0\n mov eax, dword ptr [ebp - 0x2c]\n push eax\n mov ecx, esi\n call MxDSFile::MxDSFile (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n test eax, eax\n mov byte ptr [ebp - 4], 0\n mov dword ptr [ecx + 0xc], eax\n-je 0xde\n+je 0xe1\n push 0\n mov edx, dword ptr [eax]\n mov ecx, eax\n call dword ptr [edx + 0x14]\n test eax, eax\n je 0x9d\n push '.si' (STRING)\n lea eax, [ebp - 0x24]\n push eax\n mov ecx, dword ptr [ebp + 8]\n@@ -102,33 +102,34 @@\n\n mov ecx, dword ptr [ecx + 0xc]\n add ecx, 0x14\n call MxString::operator= (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n push 0\n mov ecx, dword ptr [ecx + 0xc]\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x14]\n test eax, eax\n je 0x1a\n-jmp 0x48\n+jmp 0x4b\n lea ecx, [ebp - 0x54]\n jmp MxString::~MxString (FUNCTION)\n lea ecx, [ebp - 0x44]\n jmp MxString::~MxString (FUNCTION)\n lea ecx, [ebp - 0x24]\n jmp MxString::~MxString (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n push 0x64\n+push 0\n mov byte ptr [ecx + 0x34], 1\n+mov ecx, dword ptr [ebp - 0x10]\n mov eax, dword ptr [ecx + 0x2c]\n add ecx, 0x2c\n-push 0\n call dword ptr [eax]\n mov ecx, dword ptr [ebp - 0x10]\n push ecx\n add ecx, 0x10\n call MxDiskStreamProviderThread::StartWithTarget (FUNCTION)\n test eax, eax\n jne 0xd\n cmp dword ptr [ebp + 8], 0\n je 0x7\n mov dword ptr [ebp - 0x14], 0\n@@ -149,12 +150,10 @@\n\n lea ecx, [ebp - 0x54]\n jmp MxString::~MxString (FUNCTION)\n lea ecx, [ebp - 0x44]\n jmp MxString::~MxString (FUNCTION)\n lea ecx, [ebp - 0x24]\n jmp MxString::~MxString (FUNCTION)\n mov eax, <OFFSET22>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x34]\n jmp MxString::~MxString (FUNCTION)\n-int3 \n-int3 "}, {"address": "0x100d15e0", "name": "MxDiskStreamProvider::VTable0x20", "matching": 0.8962264150943396, "diff": "--- \n\n+++ \n\n@@ -59,50 +59,46 @@\n\n jne -0x99\n mov eax, dword ptr [ebp - 0xc]\n mov esp, ebp\n mov dword ptr fs:[0], eax\n pop ebp\n ret 4\n lea ecx, [ebp - 0x1c]\n jmp MxAutoLocker::~MxAutoLocker (FUNCTION)\n mov eax, dword ptr [ebp - 0x14]\n add eax, 0x38\n+mov dword ptr [ebp - 0x20], eax\n+mov eax, dword ptr [ebp - 0x14]\n+add eax, 0x54\n mov dword ptr [ebp - 0x1c], eax\n-mov eax, dword ptr [ebp - 0x1c]\n+mov eax, dword ptr [ebp - 0x20]\n lea ecx, [ebp - 0x18]\n push eax\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n push 1\n mov eax, dword ptr [ebp + 8]\n+mov dword ptr [ebp - 4], 1\n push eax\n-mov ecx, dword ptr [ebp - 0x14]\n-mov dword ptr [ebp - 4], 1\n-add ecx, 0x54\n+mov ecx, dword ptr [ebp - 0x1c]\n call MxStreamListMxDSAction::Find (FUNCTION)\n mov dword ptr [ebp - 4], 0xffffffff\n mov dword ptr [ebp - 0x10], eax\n call <OFFSET9>\n cmp dword ptr [ebp - 0x10], 0\n-je -0x59\n+je -0x5f\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 0xa0]\n cmp dword ptr [ecx + 0x28], 0x20000\n jae 0x6\n dec dword ptr [g_unk0x10102878 (DATA)]\n mov eax, dword ptr [ebp - 0x10]\n mov edx, dword ptr [ebp - 0x14]\n push eax\n mov ecx, dword ptr [edx + 8]\n call MxDiskStreamController::FUN_100c8670 (FUNCTION)\n cmp dword ptr [ebp - 0x10], 0\n-jne -0x66\n-jmp -0x8b\n+jne -0x63\n+jmp -0x91\n mov eax, <OFFSET10>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x18]\n jmp MxAutoLocker::~MxAutoLocker (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-push esi"}, {"address": "0x100d1750", "name": "MxDiskStreamProvider::WaitForWorkToComplete", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,19 +1,19 @@\n\n push esi\n push edi\n cmp byte ptr [ecx + 0x34], 0\n-mov edi, ecx\n+mov esi, ecx\n je 0x1f\n-lea esi, [edi + 0x2c]\n+lea edi, [esi + 0x2c]\n push -1\n+mov ecx, edi\n+call MxSemaphore::Wait (FUNCTION)\n+cmp byte ptr [esi + 0x35], 0\n+je 0x7\n mov ecx, esi\n-call MxSemaphore::Wait (FUNCTION)\n-cmp byte ptr [edi + 0x35], 0\n-je 0x7\n-mov ecx, edi\n call MxDiskStreamProvider::PerformWork (FUNCTION)\n-cmp byte ptr [edi + 0x34], 0\n+cmp byte ptr [esi + 0x34], 0\n jne -0x1c\n xor eax, eax\n pop edi\n pop esi\n ret "}, {"address": "0x100d1780", "name": "MxDiskStreamProvider::FUN_100d1780", "matching": 0.8974358974358975, "diff": "--- \n\n+++ \n\n@@ -1,18 +1,18 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 0xc\n+sub esp, 0x10\n cmp byte ptr [ecx + 0x34], 0\n push ebx\n mov dword ptr [ebp - 0x10], ecx\n push esi\n push edi\n jne 0x18\n mov eax, 0xffffffff\n mov ecx, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], ecx\n@@ -62,58 +62,54 @@\n\n mov eax, dword ptr [esi + 0xa0]\n cmp dword ptr [eax + 0x28], 0x20000\n jae 0x6\n inc dword ptr [g_unk0x10102878 (DATA)]\n mov eax, dword ptr [ebp - 0x10]\n lea ecx, [ebp - 0x18]\n add eax, 0x38\n push eax\n call MxAutoLocker::MxAutoLocker (FUNCTION)\n mov ecx, dword ptr [ebp - 0x10]\n+mov dword ptr [ebp - 0x1c], esi\n+mov edx, dword ptr [ecx + 0x58]\n push 0xc\n-mov edx, dword ptr [ecx + 0x58]\n mov dword ptr [ebp - 0x14], edx\n lea edi, [edx + 4]\n mov dword ptr [ebp - 4], 1\n-mov ebx, dword ptr [edi]\n+mov esi, dword ptr [edi]\n call ??2@YAPAXI@Z (FUNCTION)\n add esp, 4\n-test ebx, ebx\n+test esi, esi\n je 0x17\n mov ecx, dword ptr [ebp - 0x14]\n mov dword ptr [eax], ecx\n-mov dword ptr [eax + 4], ebx\n+mov dword ptr [eax + 4], esi\n jmp 0x12\n mov eax, dword ptr [ebp - 0x14]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n mov dword ptr [eax], eax\n mov dword ptr [eax + 4], eax\n mov dword ptr [edi], eax\n mov ecx, dword ptr [eax + 4]\n mov dword ptr [ecx], eax\n add eax, 8\n-je 0x2\n-mov dword ptr [eax], esi\n+je 0x5\n+mov ecx, dword ptr [ebp - 0x1c]\n+mov dword ptr [eax], ecx\n mov eax, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 4], 0xffffffff\n inc dword ptr [eax + 0x5c]\n call <OFFSET8>\n mov eax, dword ptr [ebp - 0x10]\n push 1\n mov byte ptr [eax + 0x35], 1\n lea ecx, [eax + 0x2c]\n call MxSemaphore::Release (FUNCTION)\n xor eax, eax\n-jmp -0x125\n+jmp -0x12b\n mov eax, <OFFSET10>\n jmp ___CxxFrameHandler (FUNCTION)\n lea ecx, [ebp - 0x18]\n jmp MxAutoLocker::~MxAutoLocker (FUNCTION)\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100d18f0", "name": "MxDiskStreamProvider::PerformWork", "matching": 1.0, "diff": ""}, {"address": "0x100d1af0", "name": "MxDiskStreamProvider::FUN_100d1af0", "matching": 1.0, "diff": ""}, {"address": "0x100d1b20", "name": "MxDiskStreamProvider::FUN_100d1b20", "matching": 0.5996533795493935, "diff": "--- \n\n+++ \n\n@@ -1,19 +1,19 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 0x10\n-mov dword ptr [ebp - 0x18], ecx\n+mov dword ptr [ebp - 0x1c], ecx\n push ebx\n push esi\n push edi\n push 0x34\n call ??2@YAPAXI@Z (FUNCTION)\n mov dword ptr [ebp - 0x14], eax\n add esp, 4\n mov dword ptr [ebp - 4], 0\n mov esi, eax\n test esi, esi\n@@ -58,238 +58,225 @@\n\n je -0x5f\n push 1\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, eax\n mov ebx, dword ptr [eax]\n call dword ptr [ebx]\n jmp -0x6c\n mov edx, dword ptr [ebp + 8]\n mov eax, dword ptr [edx + 0xa4]\n test eax, eax\n-jne 0x35\n-mov eax, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [edx + 0xa0]\n-add eax, 8\n-mov esi, dword ptr [ecx + 8]\n-sub esi, dword ptr [edx + 0x98]\n-mov dword ptr [ebp - 0x1c], eax\n-mov ebx, dword ptr [eax]\n-add esi, dword ptr [edx + 0x94]\n-mov eax, dword ptr [ebp - 0x14]\n-mov edi, ebx\n-mov ecx, eax\n-shr ecx, 2\n-rep movsd dword ptr es:[edi], dword ptr [esi]\n-mov ecx, eax\n-and ecx, 3\n-rep movsb byte ptr es:[edi], byte ptr [esi]\n-jmp 0x4f\n+je 0x51\n push eax\n mov ecx, dword ptr [ebp - 0x10]\n call MxDSBuffer::FUN_100c7090 (FUNCTION)\n mov eax, dword ptr [ebp - 0x10]\n mov edx, dword ptr [ebp + 8]\n add eax, 8\n mov ecx, dword ptr [edx + 0xa4]\n-mov dword ptr [ebp - 0x1c], eax\n+mov dword ptr [ebp - 0x18], eax\n mov ebx, dword ptr [ecx + 0x28]\n add ebx, dword ptr [eax]\n mov eax, dword ptr [edx + 0xa0]\n mov edi, ebx\n mov edx, dword ptr [eax + 0x28]\n mov esi, dword ptr [eax + 8]\n mov ecx, edx\n shr ecx, 2\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, edx\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n mov esi, dword ptr [ebp + 8]\n mov ecx, dword ptr [esi + 0xa4]\n test ecx, ecx\n-je 0x6\n-push 1\n-mov eax, dword ptr [ecx]\n-call dword ptr [eax]\n-mov eax, dword ptr [ebp - 0x10]\n-mov edx, dword ptr [ebp + 8]\n+je 0x3e\n+push 1\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax]\n+jmp 0x36\n+mov eax, dword ptr [ebp - 0x10]\n+mov edx, dword ptr [ebp + 8]\n+add eax, 8\n+mov ecx, dword ptr [edx + 0xa0]\n+mov dword ptr [ebp - 0x18], eax\n+mov ebx, dword ptr [eax]\n+mov eax, dword ptr [ebp - 0x14]\n+mov esi, dword ptr [ecx + 8]\n+sub esi, dword ptr [edx + 0x98]\n+mov edi, ebx\n+add esi, dword ptr [edx + 0x94]\n+mov ecx, eax\n+shr ecx, 2\n+rep movsd dword ptr es:[edi], dword ptr [esi]\n+mov ecx, eax\n+and ecx, 3\n+rep movsb byte ptr es:[edi], byte ptr [esi]\n+mov eax, dword ptr [ebp - 0x10]\n+mov edx, dword ptr [ebp + 8]\n+mov dword ptr [edx + 0xa4], eax\n test ebx, ebx\n-mov dword ptr [edx + 0xa4], eax\n-je 0x2d\n+je 0x2b\n cmp dword ptr [ebx], 0x624f784d\n je 0x16\n push ebx\n call MxStreamChunk::IntoTime (FUNCTION)\n add esp, 4\n mov edx, dword ptr [ebp + 8]\n mov ecx, dword ptr [edx + 0x9c]\n cmp dword ptr [eax], ecx\n-jg 0x4e\n+jg 0x4c\n push ebx\n mov ecx, dword ptr [ebp - 0x10]\n call MxDSBuffer::FUN_100c6fa0 (FUNCTION)\n mov ebx, eax\n-test ebx, ebx\n-jne -0x2d\n-mov eax, dword ptr [ebp - 0x18]\n+jmp -0x2f\n+mov eax, dword ptr [ebp - 0x1c]\n mov ecx, dword ptr [eax]\n mov esi, dword ptr [ecx + 0x18]\n mov ecx, eax\n call esi\n mov edx, dword ptr [ebp + 8]\n-mov ecx, dword ptr [ebp - 0x18]\n+mov ecx, dword ptr [ebp - 0x1c]\n add eax, dword ptr [edx + 0x98]\n mov dword ptr [edx + 0x94], eax\n call esi\n mov edx, dword ptr [ebp + 8]\n-mov ecx, dword ptr [ebp - 0x18]\n+mov ecx, dword ptr [ebp - 0x1c]\n push edx\n add eax, dword ptr [edx + 0x98]\n mov dword ptr [edx + 0x98], eax\n call MxDiskStreamProvider::FUN_100d1780 (FUNCTION)\n xor eax, eax\n-jmp -0x174\n-mov eax, dword ptr [ebp - 0x10]\n+jmp -0x175\n+mov eax, dword ptr [ebp - 0x18]\n+mov ecx, dword ptr [ebp - 0x10]\n+lea edi, [ebx + 8]\n mov dword ptr [ebx], 0x20646170\n-lea edi, [ebx + 8]\n-mov ecx, dword ptr [eax + 0x28]\n-sub ecx, ebx\n-mov eax, dword ptr [ebp - 0x1c]\n mov esi, dword ptr [eax]\n-xor eax, eax\n-lea edx, [ecx + esi - 8]\n-mov ecx, edx\n-mov dword ptr [ebx + 4], edx\n-shr ecx, 2\n-rep stosd dword ptr es:[edi], eax\n-mov ecx, edx\n-and ecx, 3\n-rep stosb byte ptr es:[edi], al\n-mov eax, dword ptr [ebp - 0x10]\n-mov edx, dword ptr [ebp - 0x1c]\n-mov ecx, dword ptr [eax + 0x28]\n-mov eax, dword ptr [edx]\n+mov eax, dword ptr [ecx + 0x28]\n+sub eax, ebx\n+add eax, esi\n+sub eax, 8\n+mov ecx, eax\n+shr ecx, 2\n+rep movsd dword ptr es:[edi], dword ptr [esi]\n+mov ecx, eax\n+and ecx, 3\n+rep movsb byte ptr es:[edi], byte ptr [esi]\n+mov ecx, dword ptr [ebp - 0x10]\n+mov edx, dword ptr [ebp - 0x18]\n+mov eax, dword ptr [ecx + 0x28]\n+mov ecx, dword ptr [edx]\n+push eax\n push ecx\n-push eax\n call ReadData (FUNCTION)\n add esp, 8\n mov dword ptr [ebp - 0x14], eax\n push 0x34\n call ??2@YAPAXI@Z (FUNCTION)\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n+mov dword ptr [ebp - 0x18], eax\n+add esp, 4\n+mov dword ptr [ebp - 4], 1\n mov esi, eax\n-mov ebx, 0\n-mov dword ptr [ebp - 4], 1\n test esi, esi\n-je 0x9\n+je 0xc\n mov ecx, esi\n call MxDSBuffer::MxDSBuffer (FUNCTION)\n-mov ebx, eax\n+mov dword ptr [ebp - 0x10], eax\n+jmp 0x7\n+mov dword ptr [ebp - 0x10], 0\n mov dword ptr [ebp - 4], 0xffffffff\n-test ebx, ebx\n-je -0x1f5\n-push 1\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n-mov ecx, ebx\n+cmp dword ptr [ebp - 0x10], 0\n+je -0x1f9\n+push 1\n+mov eax, dword ptr [ebp - 0x14]\n+push eax\n+mov ecx, dword ptr [ebp - 0x10]\n call MxDSBuffer::AllocateBuffer (FUNCTION)\n test eax, eax\n-jne 0xc8\n-mov eax, dword ptr [ebp - 0x14]\n-mov edx, dword ptr [ebp + 8]\n-mov edi, dword ptr [ebx + 8]\n-mov ecx, dword ptr [edx + 0xa4]\n-mov esi, dword ptr [ecx + 8]\n-mov ecx, eax\n-shr ecx, 2\n-rep movsd dword ptr es:[edi], dword ptr [esi]\n-mov ecx, eax\n-and ecx, 3\n-rep movsb byte ptr es:[edi], byte ptr [esi]\n-mov edx, dword ptr [ebp + 8]\n-mov ecx, dword ptr [edx + 0xa4]\n-mov dword ptr [ecx + 0x24], 1\n-mov ecx, dword ptr [edx + 0xa4]\n+jne 0xda\n+mov eax, dword ptr [ebp - 0x14]\n+mov edx, dword ptr [ebp + 8]\n+mov ecx, dword ptr [ebp - 0x10]\n+mov edx, dword ptr [edx + 0xa4]\n+mov edi, dword ptr [ecx + 8]\n+mov esi, dword ptr [edx + 8]\n+mov ecx, eax\n+shr ecx, 2\n+rep movsd dword ptr es:[edi], dword ptr [esi]\n+mov ecx, eax\n+and ecx, 3\n+rep movsb byte ptr es:[edi], byte ptr [esi]\n+mov esi, dword ptr [ebp + 8]\n+mov eax, dword ptr [esi + 0xa4]\n+mov dword ptr [eax + 0x24], 1\n+mov ecx, dword ptr [esi + 0xa4]\n test ecx, ecx\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n-mov edx, dword ptr [ebp + 8]\n-mov dword ptr [ebx + 0x24], 3\n+mov ecx, dword ptr [ebp - 0x10]\n+mov edx, dword ptr [ebp + 8]\n+mov dword ptr [ecx + 0x24], 3\n mov eax, dword ptr [edx + 0xa0]\n-mov dword ptr [edx + 0xa4], ebx\n+mov dword ptr [edx + 0xa4], ecx\n mov esi, dword ptr [eax + 0x14]\n mov edi, dword ptr [eax + 8]\n push edi\n call MxStreamChunk::IntoTime (FUNCTION)\n add esp, 4\n mov edx, dword ptr [ebp + 8]\n mov ecx, dword ptr [edx + 0x9c]\n cmp dword ptr [eax], ecx\n-jg 0x14\n-mov eax, dword ptr [edi + 4]\n+jg 0x20\n+mov eax, dword ptr [ebx + 4]\n mov ecx, eax\n and ecx, 1\n-add eax, ecx\n-lea esi, [eax + esi + 8]\n-lea edi, [eax + edi + 8]\n-jmp -0x2a\n+add ecx, eax\n+add ecx, 8\n+add ebx, ecx\n+mov eax, dword ptr [ebx + 4]\n+mov ecx, eax\n+and ecx, 1\n+add ecx, eax\n+add ecx, 8\n+add esi, ecx\n+jmp -0x36\n mov edx, dword ptr [ebp + 8]\n mov ecx, dword ptr [edx + 0xa0]\n mov dword ptr [edx + 0x94], esi\n test ecx, ecx\n mov eax, dword ptr [ecx + 0x14]\n mov dword ptr [edx + 0x98], eax\n je 0x6\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov edx, dword ptr [ebp + 8]\n-mov eax, dword ptr [ebp - 0x18]\n+mov eax, dword ptr [ebp - 0x1c]\n push edx\n mov dword ptr [edx + 0xa0], 0\n mov ecx, dword ptr [eax + 8]\n call MxDiskStreamController::FUN_100c7890 (FUNCTION)\n xor eax, eax\n-jmp -0x2cd\n-test ebx, ebx\n-je -0x2da\n-push 1\n-mov eax, dword ptr [ebx]\n-mov ecx, ebx\n-call dword ptr [eax]\n-jmp -0x2e7\n-mov eax, dword ptr [ebp - 0x10]\n+jmp -0x2e4\n+cmp dword ptr [ebp - 0x10], 0\n+je -0x2f3\n+push 1\n+mov ecx, dword ptr [ebp - 0x10]\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax]\n+jmp -0x301\n+mov eax, dword ptr [ebp - 0x18]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n mov eax, <OFFSET12>\n jmp ___CxxFrameHandler (FUNCTION)\n mov eax, dword ptr [ebp - 0x14]\n push eax\n call ??3@YAXPAX@Z (FUNCTION)\n add esp, 4\n ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov ecx, dword ptr [ecx + 0xc]\n-mov eax, dword ptr [ecx]\n-jmp dword ptr [eax + 0x28]\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100d1e90", "name": "MxDiskStreamProvider::GetFileSize", "matching": 1.0, "diff": ""}, {"address": "0x100d1ea0", "name": "MxDiskStreamProvider::GetStreamBuffersNum", "matching": 1.0, "diff": ""}, {"address": "0x100d1eb0", "name": "MxDiskStreamProvider::GetLengthInDWords", "matching": 1.0, "diff": ""}, {"address": "0x100d1ec0", "name": "MxDiskStreamProvider::GetBufferForDWords", "matching": 1.0, "diff": ""}, {"address": "0x100d1ed0", "name": "_strnicmp", "matching": 0.9215686274509803, "diff": "--- \n\n+++ \n\n@@ -1,21 +1,21 @@\n\n push ebp\n mov ebp, esp\n push edi\n push esi\n push ebx\n mov ecx, dword ptr [ebp + 0x10]\n or ecx, ecx\n je 0xdc\n mov esi, dword ptr [ebp + 8]\n mov edi, dword ptr [ebp + 0xc]\n-lea eax, [0x100fd478]\n+lea eax, [0x10090668]\n cmp dword ptr [eax + 8], 0\n jne 0x4b\n mov bh, 0x41\n mov bl, 0x5a\n mov dh, 0x20\n mov eax, eax\n mov ah, byte ptr [esi]\n or ah, ah\n mov al, byte ptr [edi]\n je 0x21\n@@ -37,66 +37,66 @@\n\n jne 0xd\n dec ecx\n jne -0x29\n xor ecx, ecx\n cmp ah, al\n je 0x8e\n mov ecx, 0xffffffff\n jb 0x83\n neg ecx\n jmp 0x7f\n-cmp dword ptr [<OFFSET1>], 0\n+cmp dword ptr [___setlc_active (UNK)], 0\n jg 0xa\n-inc dword ptr [<OFFSET2>]\n+inc dword ptr [___unguarded_readlc_active (UNK)]\n push 0\n jmp 0x12\n mov ebx, ecx\n push 0x13\n-call <OFFSET3>\n+call __lock (UNK)\n mov dword ptr [esp], 1\n mov ecx, ebx\n xor eax, eax\n xor ebx, ebx\n nop \n mov al, byte ptr [esi]\n or eax, eax\n mov bl, byte ptr [edi]\n je 0x23\n or ebx, ebx\n je 0x1f\n inc esi\n inc edi\n push ecx\n push eax\n push ebx\n-call <OFFSET4>\n+call __tolower_lk (UNK)\n mov ebx, eax\n add esp, 4\n-call <OFFSET4>\n+call __tolower_lk (UNK)\n add esp, 4\n pop ecx\n cmp eax, ebx\n jne 0x9\n dec ecx\n jne -0x2b\n xor ecx, ecx\n cmp eax, ebx\n je 0x9\n mov ecx, 0xffffffff\n jb 0x2\n neg ecx\n pop eax\n or eax, eax\n jne 0x8\n-dec dword ptr [<OFFSET2>]\n+dec dword ptr [___unguarded_readlc_active (UNK)]\n jmp 0xe\n mov ebx, ecx\n push 0x13\n-call <OFFSET5>\n+call __unlock (UNK)\n add esp, 4\n mov ecx, ebx\n mov eax, ecx\n pop ebx\n pop esi\n pop edi\n leave \n ret "}, {"address": "0x100d1fd0", "name": "_strupr", "matching": 0.9312977099236641, "diff": "--- \n\n+++ \n\n@@ -20,38 +20,38 @@\n\n inc eax\n cmp byte ptr [eax], 0\n jne -0x17\n mov eax, ebx\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret \n-cmp dword ptr [<OFFSET2>], 0\n+cmp dword ptr [___setlc_active (UNK)], 0\n je 0x14\n push 0x13\n-call <OFFSET3>\n+call __lock (UNK)\n mov dword ptr [esp + 0x14], 1\n add esp, 4\n jmp 0xe\n mov dword ptr [esp + 0x10], 0\n-inc dword ptr [<OFFSET4>]\n+inc dword ptr [___unguarded_readlc_active (UNK)]\n cmp dword ptr [<OFFSET1>], 0\n jne 0x45\n cmp dword ptr [esp + 0x10], 0\n je 0xc\n push 0x13\n-call <OFFSET5>\n+call __unlock (UNK)\n add esp, 4\n jmp 0x6\n-dec dword ptr [<OFFSET4>]\n+dec dword ptr [___unguarded_readlc_active (UNK)]\n mov ebx, dword ptr [esp + 0x18]\n mov eax, ebx\n cmp byte ptr [ebx], 0\n je 0x17\n mov cl, byte ptr [eax]\n cmp cl, 0x61\n jl 0xa\n cmp cl, 0x7a\n jg 0x5\n sub cl, 0x20\n@@ -68,64 +68,64 @@\n\n ret \n mov ebx, dword ptr [esp + 0x18]\n push 0\n push 0\n mov eax, dword ptr [<OFFSET1>]\n push 0\n push -1\n push ebx\n push 0x200\n push eax\n-call <OFFSET6>\n+call ___crtLCMapStringA (UNK)\n add esp, 0x1c\n mov esi, eax\n test esi, esi\n je 0x4e\n push esi\n call _malloc (FUNCTION)\n add esp, 4\n mov ebp, eax\n test ebp, ebp\n je 0x3f\n push 0\n mov eax, dword ptr [<OFFSET1>]\n push esi\n push ebp\n push -1\n push ebx\n push 0x200\n push eax\n-call <OFFSET6>\n+call ___crtLCMapStringA (UNK)\n add esp, 0x1c\n test eax, eax\n je 0x21\n mov edi, ebp\n mov ecx, 0xffffffff\n sub eax, eax\n repne scasb al, byte ptr es:[edi]\n not ecx\n sub edi, ecx\n mov eax, ecx\n shr ecx, 2\n mov esi, edi\n mov edi, ebx\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, eax\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n cmp dword ptr [esp + 0x10], 0\n je 0xc\n push 0x13\n-call <OFFSET5>\n+call __unlock (UNK)\n add esp, 4\n jmp 0x6\n-dec dword ptr [<OFFSET4>]\n+dec dword ptr [___unguarded_readlc_active (UNK)]\n push ebp\n call _free (FUNCTION)\n add esp, 4\n mov eax, ebx\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret "}, {"address": "0x100d2130", "name": "_vsprintf", "matching": 0.9411764705882353, "diff": "--- \n\n+++ \n\n@@ -4,31 +4,31 @@\n\n push esi\n mov edx, dword ptr [esp + 0x2c]\n push ecx\n mov dword ptr [esp + 0x14], 0x42\n mov dword ptr [esp + 0x10], eax\n push edx\n mov dword ptr [esp + 0xc], eax\n lea eax, [esp + 0xc]\n mov dword ptr [esp + 0x10], 0x7fffffff\n push eax\n-call <OFFSET1>\n+call __output (UNK)\n add esp, 0xc\n mov esi, eax\n dec dword ptr [esp + 8]\n js 0x12\n mov eax, dword ptr [esp + 4]\n mov byte ptr [eax], 0\n mov eax, esi\n inc dword ptr [esp + 4]\n pop esi\n add esp, 0x20\n ret \n lea eax, [esp + 4]\n push eax\n push 0\n-call <OFFSET2>\n+call __flsbuf (UNK)\n add esp, 8\n mov eax, esi\n pop esi\n add esp, 0x20\n ret "}, {"address": "0x100d21c2", "name": "__CIpow", "matching": 0.0, "diff": "--- \n\n+++ \n\n@@ -1,2 +1,2 @@\n\n-mov edx, <OFFSET1>\n-jmp -0x4443c\n+mov edx, __OP_POWjmptab (UNK)\n+jmp __cintrindisp2 (UNK)"}, {"address": "0x100d21f0", "name": "_strstr", "matching": 0.9848484848484849, "diff": "--- \n\n+++ \n\n@@ -46,21 +46,21 @@\n\n mov ah, byte ptr [esi - 1]\n add ecx, 2\n cmp al, ah\n je -0x21\n jmp -0x4f\n xor eax, eax\n pop esi\n pop ebx\n pop edi\n mov al, dl\n-jmp -0x3a74d\n+jmp ___from_strstr_to_strchr (UNK)\n lea eax, [edi - 1]\n pop esi\n pop ebx\n pop edi\n ret \n mov eax, edi\n pop esi\n pop ebx\n pop edi\n ret "}, {"address": "0x100d2270", "name": "__beginthreadex", "matching": 0.9333333333333333, "diff": "--- \n\n+++ \n\n@@ -1,22 +1,22 @@\n\n push esi\n push edi\n xor edi, edi\n push 0x74\n push 1\n-call <OFFSET1>\n+call _calloc (UNK)\n add esp, 8\n mov esi, eax\n cmp esi, edi\n je 0x4a\n push esi\n-call <OFFSET2>\n+call __initptd (UNK)\n mov eax, dword ptr [esp + 0x18]\n mov ecx, dword ptr [esp + 0x1c]\n mov edx, dword ptr [esp + 0x24]\n add esp, 4\n mov dword ptr [esi + 0x48], eax\n push edx\n mov eax, dword ptr [esp + 0x20]\n mov dword ptr [esi + 0x4c], ecx\n mov ecx, dword ptr [esp + 0x14]\n push eax\n@@ -30,16 +30,16 @@\n\n test eax, eax\n jne 0x20\n call dword ptr [__imp__GetLastError@0 (POINTER)]\n mov edi, eax\n push esi\n call _free (FUNCTION)\n add esp, 4\n test edi, edi\n je 0x9\n push edi\n-call <OFFSET7>\n+call __dosmaperr (UNK)\n add esp, 4\n xor eax, eax\n pop edi\n pop esi\n ret "}, {"address": "0x100d4018", "name": "Score::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d40f8", "name": "Helicopter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d41e8", "name": "Mx4DPointFloat::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4288", "name": "Vector2::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4300", "name": "MxMatrix::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4350", "name": "Matrix4::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4398", "name": "IslePathActor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4488", "name": "Mx3DPointFloat::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4518", "name": "Vector3::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d45a0", "name": "Vector4::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4650", "name": "GasStation::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d46c0", "name": "LegoState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d46e0", "name": "GasStationState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4718", "name": "LegoCacheSound::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4768", "name": "LegoObjectFactory::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4788", "name": "Doors::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4858", "name": "LegoEntity::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d48a8", "name": "RaceStandsEntity::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4900", "name": "LegoLoopingAnimPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d49a8", "name": "MxWavePresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4a18", "name": "BeachHouseEntity::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4a70", "name": "LegoAct2State::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4a90", "name": "JukeBoxState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4ab0", "name": "PoliceEntity::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4b08", "name": "MxSoundPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4b70", "name": "CarRaceState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4b90", "name": "InfoCenterEntity::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4be8", "name": "MxVideoPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4c70", "name": "MxAudioPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4cd8", "name": "MxMediaPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4d38", "name": "MxPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4d90", "name": "LegoTexturePresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4df0", "name": "LegoPartPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4e50", "name": "LegoModelPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4fa8", "name": "JetskiRaceState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d4fc8", "name": "Act3State::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5068", "name": "HospitalEntity::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5118", "name": "LegoActionControlPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5178", "name": "IsleActor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5258", "name": "GasStationEntity::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d52b0", "name": "Lego3DWavePresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5320", "name": "LegoActorPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5390", "name": "MxEntity::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d53a8", "name": "Act2PoliceStation::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d53f8", "name": "ScoreState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5418", "name": "HelicopterState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5520", "name": "Pizzeria::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d55f0", "name": "SkateBoard::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d56e0", "name": "MxNotificationParam::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d56e8", "name": "MxParam::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d57b0", "name": "LegoCameraController::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d58b8", "name": "LegoRaceCar::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5a40", "name": "LegoJetski::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5b88", "name": "LegoRaceActor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5c88", "name": "BuildingEntity::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5db0", "name": "LegoRace::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5e30", "name": "RaceState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5e50", "name": "CarRace::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5ee8", "name": "PizzeriaState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5f20", "name": "ElevatorBottom::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d5fa8", "name": "LegoLoadCacheSoundPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6280", "name": "LegoWorld::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d62f0", "name": "MxPtrList<MxPresenter>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6308", "name": "MxPresenterList::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6320", "name": "MxPtrList<LegoPathController>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6338", "name": "LegoPathControllerList::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6350", "name": "MxCollection<MxPresenter *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6368", "name": "MxList<MxPresenter *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6380", "name": "MxCollection<LegoPathController *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6398", "name": "MxList<LegoPathController *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d63b0", "name": "MxCollection<LegoCacheSound *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d63c8", "name": "MxList<LegoCacheSound *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d63e0", "name": "MxPtrList<LegoCacheSound>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d63f8", "name": "LegoCacheSoundList::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6410", "name": "MxCollection<LegoEntity *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6428", "name": "MxList<LegoEntity *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6440", "name": "MxPtrList<LegoEntity>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6458", "name": "LegoEntityList::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6470", "name": "MxPresenterListCursor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6488", "name": "MxListCursor<MxPresenter *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d64a0", "name": "MxListCursor<LegoCacheSound *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d64b8", "name": "MxPtrListCursor<LegoEntity>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d64d0", "name": "LegoEntityListCursor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d64e8", "name": "MxListCursor<LegoEntity *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6500", "name": "MxPtrListCursor<LegoCacheSound>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6518", "name": "LegoCacheSoundListCursor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6530", "name": "MxPtrListCursor<MxPresenter>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6658", "name": "LegoCarBuild::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d66e0", "name": "LegoVehicleBuildState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6758", "name": "LegoPlantManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6790", "name": "BumpBouy::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6918", "name": "RaceCar::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6a20", "name": "MxCollection<MxCore *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6a38", "name": "MxList<MxCore *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6a50", "name": "MxPtrList<MxCore>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6a68", "name": "LegoNotifyList::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6a80", "name": "LegoControlManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6a98", "name": "LegoControlManagerEvent::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6aa0", "name": "LegoEventNotificationParam::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6aa8", "name": "LegoNotifyListCursor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6ac0", "name": "MxListCursor<MxCore *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6ad8", "name": "MxPtrListCursor<MxCore>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6b10", "name": "LegoSoundManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6d10", "name": "Radio::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6d28", "name": "RadioState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6d68", "name": "LegoActor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6e28", "name": "LegoPathActor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6f50", "name": "LegoBuildingManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d6fb8", "name": "Isle::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7028", "name": "Act1State::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7090", "name": "Motocycle::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d71a8", "name": "Ambulance::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d72a0", "name": "AmbulanceMissionState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d72d8", "name": "InfocenterDoor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7380", "name": "Pizza::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7408", "name": "PizzaMissionState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7498", "name": "MxVariable::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d74a8", "name": "LegoBackgroundColor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d74b8", "name": "LegoFullScreenMovie::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7588", "name": "MxPtrListCursor<LegoWorld>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d75a0", "name": "LegoWorldListCursor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d75b8", "name": "MxListCursor<LegoWorld *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7920", "name": "Act3Shark::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7a38", "name": "MxStillPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7ac8", "name": "LegoMeterPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7b88", "name": "MxControlPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7c10", "name": "LegoPathPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7c88", "name": "LegoUnknown100d7c88::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7d60", "name": "LegoPathController::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7d80", "name": "LegoStorage::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7de8", "name": "LegoAnimMMPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7e50", "name": "MxDSActionListCursor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7e68", "name": "MxListCursor<MxDSAction *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7ea0", "name": "MxTransitionManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7ee0", "name": "TowTrack::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d7fd8", "name": "TowTrackMissionState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8040", "name": "LegoPhonemePresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d82e0", "name": "LegoAct2::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8350", "name": "MxActionNotificationParam::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8358", "name": "MxEndActionNotificationParam::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8398", "name": "LegoEntityPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d85b8", "name": "LegoNavController::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8638", "name": "LegoOmni::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8680", "name": "LegoWorldList::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d86d4", "name": "GifManagerBase::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d86d8", "name": "MxTickleManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d86fc", "name": "GifManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8700", "name": "MxCollection<LegoWorld *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8718", "name": "MxList<LegoWorld *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8730", "name": "MxPtrList<LegoWorld>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8760", "name": "LegoInputManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d87b8", "name": "MxCollection<LegoEventNotificationParam>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d87d0", "name": "MxList<LegoEventNotificationParam>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d87e8", "name": "MxQueue<LegoEventNotificationParam>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8800", "name": "LegoEventQueue::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8958", "name": "JukeBox::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d89e0", "name": "LegoFlcTexturePresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8a80", "name": "Police::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8af0", "name": "PoliceState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8c18", "name": "LegoAnimationManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8d80", "name": "AnimState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8dd8", "name": "LegoMouseController::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8e08", "name": "LegoPointOfViewController::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8ee0", "name": "LegoWorldPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d8f98", "name": "DuneBuggy::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d90c8", "name": "LegoAnimPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9170", "name": "LegoLocomotionAnimPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9278", "name": "LegoHideAnimPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9338", "name": "Infocenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d93a8", "name": "InfocenterState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9628", "name": "Act3::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d96b0", "name": "MxCompositeMediaPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9730", "name": "Hospital::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d97a0", "name": "HospitalState::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9808", "name": "Bike::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9928", "name": "RegistrationBook::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d99e0", "name": "LegoCarBuildAnimPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9aa0", "name": "LegoPalettePresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9b60", "name": "Act2Brick::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9c88", "name": "LegoVideoManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9cc8", "name": "MxDeviceEnumerate100d9cc8::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9cd0", "name": "MxCollection<LegoUnknown100d7c88 *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9ce8", "name": "MxList<LegoUnknown100d7c88 *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9d00", "name": "LegoUnknown100d9d00::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9ec8", "name": "Jetski::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100d9fe8", "name": "MxBackgroundAudioManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100da0d8", "name": "LegoCarRaceActor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100da240", "name": "LegoJetskiRaceActor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100da328", "name": "HistoryBook::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100da8a0", "name": "JukeBoxEntity::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db710", "name": "LegoMemory::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db730", "name": "LegoFile::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db764", "name": "LegoTreeNode::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db768", "name": "LegoTree::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db778", "name": "LegoTreeNodeData::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db800", "name": "MxDirect3D::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db814", "name": "MxDeviceEnumerate::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db818", "name": "MxDirectDraw::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db8d8", "name": "LegoAnimClass::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db910", "name": "TglImpl::RendererImpl::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db948", "name": "Tgl::Renderer::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db980", "name": "Tgl::Object::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db988", "name": "TglImpl::DeviceImpl::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db9b8", "name": "Tgl::Device::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100db9e8", "name": "TglImpl::ViewImpl::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dba28", "name": "Tgl::View::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dba68", "name": "TglImpl::GroupImpl::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbaa0", "name": "Tgl::Group::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbad8", "name": "TglImpl::CameraImpl::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbae8", "name": "Tgl::Camera::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbaf8", "name": "TglImpl::LightImpl::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbb08", "name": "Tgl::Light::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbb18", "name": "TglImpl::UnkImpl::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbb30", "name": "Tgl::Unk::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbb48", "name": "TglImpl::TextureImpl::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbb68", "name": "Tgl::Texture::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbc08", "name": "OrientableROI::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbc38", "name": "ROI::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbd88", "name": "ViewManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbdbc", "name": "ViewLODListManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbe70", "name": "ViewROI::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbea8", "name": "LegoROI::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbf78", "name": "Lego3DView::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dbfa4", "name": "Lego3DManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc000", "name": "LegoView::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc018", "name": "LegoView1::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc060", "name": "TglSurface::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc078", "name": "MxNotificationManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc098", "name": "MxDSAction::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc0e0", "name": "MxTimer::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc0f8", "name": "MxCore::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc110", "name": "MxString::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc128", "name": "MxSoundManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc168", "name": "MxOmni::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc1b0", "name": "MxCollection<MxVariable *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc1c8", "name": "MxVariableTable::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc1e8", "name": "MxHashTable<MxVariable *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc208", "name": "MxType4NotificationParam::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc210", "name": "MxStartActionNotificationParam::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc218", "name": "MxOmniCreateParam::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc220", "name": "MxObjectFactory::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc240", "name": "MxLoopingMIDIPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc2a8", "name": "MxStreamChunk::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc2bc", "name": "MxVideoPresenter::AlphaMask::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc2c0", "name": "MxFlcPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc348", "name": "MxSmkPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc3d8", "name": "MxPtrList<MxRect32>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc3f0", "name": "MxRectList::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc408", "name": "MxPtrListCursor<MxRect32>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc420", "name": "MxRectListCursor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc438", "name": "MxListCursor<MxRect32 *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc450", "name": "MxList<MxRect32 *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc468", "name": "MxCollection<MxRect32 *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc480", "name": "MxLoopingFlcPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc510", "name": "MxStreamChunkListCursor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc528", "name": "MxListCursor<MxStreamChunk *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc540", "name": "MxLoopingSmkPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc5d0", "name": "MxCollection<MxStreamChunk *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc5e8", "name": "MxList<MxStreamChunk *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc600", "name": "MxStreamChunkList::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc618", "name": "MxCompositePresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc680", "name": "MxHashTableCursor<MxVariable *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc698", "name": "MxDSSubscriber::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc6b0", "name": "MxMediaManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc6d8", "name": "MxTickleThread::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc6e0", "name": "MxAudioManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc710", "name": "MxStreamer::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc728", "name": "MxRAMStreamController::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc760", "name": "MxStreamerNotification::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc768", "name": "MxDisplaySurface::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc7b0", "name": "MxBitmap::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc7f8", "name": "MxDSChunk::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc810", "name": "MxVideoManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc848", "name": "MxPalette::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc860", "name": "MxThread::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc868", "name": "MxDSObject::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc890", "name": "MxDSFile::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc8c8", "name": "MxDSSource::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc900", "name": "MxEventManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc930", "name": "MxMusicManager::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc968", "name": "MxStreamController::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc9a0", "name": "MxNextActionDataStart::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dc9b8", "name": "MxMusicPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dca20", "name": "MxMIDIPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dca88", "name": "MxEventPresenter::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcae8", "name": "MxRegion::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcb10", "name": "MxCollection<MxRegionTopBottom *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcb28", "name": "MxList<MxRegionTopBottom *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcb40", "name": "MxPtrList<MxRegionTopBottom>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcb58", "name": "MxRegionTopBottomList::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcb70", "name": "MxPtrListCursor<MxRegionTopBottom>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcb88", "name": "MxRegionTopBottomListCursor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcba0", "name": "MxListCursor<MxRegionTopBottom *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcbb8", "name": "MxRegionCursor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcbf8", "name": "MxPtrListCursor<MxRegionLeftRight>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcc10", "name": "MxRegionLeftRightListCursor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcc28", "name": "MxListCursor<MxRegionLeftRight *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcc40", "name": "MxCollection<MxRegionLeftRight *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcc58", "name": "MxList<MxRegionLeftRight *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcc70", "name": "MxPtrList<MxRegionLeftRight>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcc88", "name": "MxRegionLeftRightList::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcca0", "name": "MxDSBuffer::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dccb8", "name": "MxDiskStreamController::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dccf0", "name": "MxSemaphore::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dccf8", "name": "MxDSObjectAction::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcd40", "name": "MxDSMediaAction::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcd88", "name": "MxDSAnim::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcdd0", "name": "MxDSSound::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dce18", "name": "MxDSEvent::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dce60", "name": "MxDSStill::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcea8", "name": "MxCollection<MxDSAction *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcec0", "name": "MxList<MxDSAction *>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dced8", "name": "MxDSActionList::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcef0", "name": "MxDSMultiAction::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcf38", "name": "MxDSSerialAction::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcf80", "name": "MxDSParallelAction::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dcfc8", "name": "MxDSSelectAction::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dd010", "name": "MxCollection<MxString>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dd028", "name": "MxList<MxString>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dd040", "name": "MxStringList::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dd058", "name": "MxStringListCursor::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dd070", "name": "MxListCursor<MxString>::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dd088", "name": "MxDSStreamingAction::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dd0d0", "name": "MxRAMStreamProvider::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dd100", "name": "MxStreamProvider::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dd130", "name": "MxDiskStreamProviderThread::`vftable'", "matching": 1.0, "diff": ""}, {"address": "0x100dd138", "name": "MxDiskStreamProvider::`vftable'", "matching": 1.0, "diff": ""}];
function diffCssClass(firstChar) {
return firstChar === '-' ? 'diffneg' : (firstChar === '+' ? 'diffpos' : '');
}
function asmLineToDiv(line) {
const diff_line = document.createElement('div');
diff_line.className = diffCssClass(line[0]);
diff_line.innerText = line;
return diff_line;
}
function formatAsm(asm) {
var lines = asm.split('\n');
return lines.filter(line => line.length > 0)
.map(asmLineToDiv);
}
function rowClick() {
if (this.dataset.expanded === 'true') {
this.nextSibling.remove();
this.dataset.expanded = false;
} else {
var row = this.parentNode.insertBefore(document.createElement('tr'), this.nextSibling);
row.classList.add('diff');
var decCel = row.appendChild(document.createElement('td'));
decCel.colSpan = 3;
var diff = data[this.dataset.index].diff;
if (diff == '') {
diff = document.createElement('div');
diff.className = 'identical';
diff.innerText = 'Identical function - no diff';
decCel.appendChild(diff);
} else {
diff = formatAsm(diff);
for (const el of diff) {
decCel.appendChild(el);
}
}
this.dataset.expanded = true;
}
}
function closeAllDiffs() {
const collection = document.getElementsByClassName("diff");
for (var ele of collection) {
ele.remove();
}
}
const filterOptions = { text: '', hidePerfect: false };
function filter() {
closeAllDiffs();
var ltext = filterOptions.text.toLowerCase();
const collection = document.getElementsByClassName("funcrow");
var searchCount = 0;
for (var ele of collection) {
var eledata = data[ele.dataset.index];
const textOk = (ltext == ''
|| eledata.address.toLowerCase().includes(ltext)
|| eledata.name.toLowerCase().includes(ltext));
const perfOk = (!filterOptions.hidePerfect || (eledata.matching < 1));
if (textOk && perfOk) {
ele.style.display = '';
searchCount++;
} else {
ele.style.display = 'none';
}
}
}
var lastSortedCol = -1;
var ascending = true;
function sortByColumn(column) {
closeAllDiffs();
if (column == lastSortedCol) {
ascending = !ascending;
}
lastSortedCol = column;
const collection = document.getElementsByClassName("funcrow");
var newOrder = [];
for (var ele of collection) {
var inserted = false;
for (var i = 0; i < newOrder.length; i++) {
var cmpEle = newOrder[i];
var ourCol = ele.childNodes[column];
var cmpCol = cmpEle.childNodes[column];
if ((cmpCol.dataset.value > ourCol.dataset.value) == ascending) {
newOrder.splice(i, 0, ele);
inserted = true;
break;
}
}
if (!inserted) {
newOrder.push(ele);
}
}
for (var i = 1; i < newOrder.length; i++) {
newOrder[i - 1].after(newOrder[i]);
}
var sortIndicator = document.getElementById('sortind');
if (!sortIndicator) {
sortIndicator = document.createElement('span');
sortIndicator.id = 'sortind';
}
sortIndicator.innerHTML = ascending ? '&#9650;' : '&#9660;';
var th = document.getElementById('listingheader').childNodes[column];
th.appendChild(sortIndicator);
}
document.addEventListener("DOMContentLoaded", () => {
var listing = document.getElementById('listing');
const headers = listing.getElementsByTagName('th');
var headerCount = 0;
for (const header of headers) {
header.addEventListener('click', function(){
sortByColumn(this.dataset.column, true);
});
header.dataset.column = headerCount;
headerCount++;
}
data.forEach((element, index) => {
var row = listing.appendChild(document.createElement('tr'));
var addrCel = row.appendChild(document.createElement('td'));
var nameCel = row.appendChild(document.createElement('td'));
var matchCel = row.appendChild(document.createElement('td'));
addrCel.innerText = addrCel.dataset.value = element.address;
nameCel.innerText = nameCel.dataset.value = element.name;
var effectiveNote = (element.matching == 1 && element.diff != '') ? '*' : '';
matchCel.innerHTML = (element.matching * 100).toFixed(2) + '%' + effectiveNote;
matchCel.dataset.value = element.matching;
row.classList.add('funcrow');
row.addEventListener('click', rowClick);
row.dataset.index = index;
row.dataset.expanded = false;
});
var search = document.getElementById('search');
search.addEventListener('input', function (evt) {
filterOptions.text = search.value;
filter();
});
const cbHidePerfect = document.getElementById('cbHidePerfect');
cbHidePerfect.addEventListener('change', evt => {
filterOptions.hidePerfect = evt.target.checked;
filter();
})
sortByColumn(0);
});
</script>
</head>
<body>
<div class="main">
<h1>Decompilation Status</h1>
<input id="search" type="search" placeholder="Search for offset or function name...">
<div class="filters">
<label for="cbHidePerfect">Hide 100% match</label>
<input type="checkbox" id="cbHidePerfect" />
</div>
<table id="listing">
<tr id='listingheader'><th style='width: 20%'>Address</th><th style="width:60%">Name</th><th style='width: 20%'>Matching</th></tr>
</table>
</div>
</body>
</html>