Files
isle/out.html
Christian Semmler afa0d4f296 Fix order
2023-11-28 09:30:38 -05:00

275 lines
352 KiB
HTML

<!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": "0x100338a0", "name": "Act1State::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100338b0", "name": "Act1State::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1007a360", "name": "Act2Brick::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1007a370", "name": "Act2Brick::IsA", "matching": 0.9666666666666667, "diff": "--- \n\n+++ \n\n@@ -1,15 +1,15 @@\n\n-mov edx, dword ptr [esp + 4]\n push ebx\n+mov eax, <OFFSET1>\n+mov edx, dword ptr [esp + 8]\n push esi\n-mov eax, edx\n-mov esi, <OFFSET1>\n+mov esi, edx\n mov bl, byte ptr [eax]\n cmp bl, byte ptr [esi]\n jne 0x2d\n or bl, bl\n je 0x29\n mov bl, byte ptr [eax + 1]\n cmp bl, byte ptr [esi + 1]\n jne 0x2d\n add eax, 2\n add esi, 2"}, {"address": "0x10072510", "name": "Act3::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10072520", "name": "Act3::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000e2f0", "name": "Act3State::VTable0x14", "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": "0x10037600", "name": "AmbulanceMissionState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10037610", "name": "AmbulanceMissionState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10065070", "name": "AnimState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10065080", "name": "AnimState::IsA", "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": "0x10014f20", "name": "BuildingEntity::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10014f30", "name": "BuildingEntity::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10016b20", "name": "CarRace::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10016b30", "name": "CarRace::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10091ee0", "name": "DllMain", "matching": 1.0, "diff": ""}, {"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": "0x10017f20", "name": "ElevatorBottom::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10017f30", "name": "ElevatorBottom::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10004780", "name": "GasStation::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10004790", "name": "GasStation::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10005eb0", "name": "GasStationState::GasStationState", "matching": 1.0, "diff": ""}, {"address": "0x100061d0", "name": "GasStationState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100061e0", "name": "GasStationState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10001cc0", "name": "GifMap::FindNode", "matching": 1.0, "diff": ""}, {"address": "0x10001e60", "name": "Helicopter::Helicopter", "matching": 0.5934065934065934, "diff": "--- \n\n+++ \n\n@@ -3,43 +3,44 @@\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 esi\n mov dword ptr [ebp - 0x10], ecx\n mov esi, ecx\n call <OFFSET2>\n-xor ecx, ecx\n+mov dword ptr [ebp - 4], 0\n+mov dword ptr [esi + 0x160], <OFFSET3>\n lea eax, [esi + 0x168]\n-mov dword ptr [ebp - 4], ecx\n-mov dword ptr [esi + 0x160], <OFFSET3>\n-mov dword ptr [esi + 0x160], <OFFSET4>\n-lea edx, [esi + 0x1fc]\n+lea ecx, [esi + 0x1fc]\n mov dword ptr [esi + 0x164], eax\n+mov dword ptr [esi + 0x1f8], ecx\n lea eax, [esi + 0x1b0]\n-mov dword ptr [esi + 0x1f8], edx\n+lea edx, [esi + 0x214]\n+mov dword ptr [esi + 0x1ac], eax\n+mov dword ptr [esi + 0x210], edx\n mov dword ptr [esi + 0x1a8], <OFFSET3>\n-mov dword ptr [esi + 0x1a8], <OFFSET4>\n+mov dword ptr [esi + 0x1f4], <OFFSET4>\n mov dword ptr [esi + 0x1f4], <OFFSET5>\n-mov dword ptr [esi + 0x1ac], eax\n-mov dword ptr [esi + 0x224], ecx\n-lea eax, [esi + 0x214]\n-mov dword ptr [esi + 0x22c], ecx\n-mov dword ptr [esi + 0x1f4], <OFFSET6>\n+mov dword ptr [esi + 0x20c], <OFFSET4>\n mov dword ptr [esi + 0x20c], <OFFSET5>\n-mov dword ptr [esi + 0x20c], <OFFSET6>\n+mov dword ptr [esi + 0x22c], 0\n mov byte ptr [ebp - 4], 1\n-mov dword ptr [esi + 0x210], eax\n-mov dword ptr [esi], <OFFSET7>\n-mov dword ptr [esi + 0x13c], <OFFSET8>\n-mov dword ptr [ebp - 4], <OFFSET9>\n mov eax, esi\n+mov dword ptr [esi], <OFFSET6>\n+mov dword ptr [esi + 0x13c], <OFFSET7>\n+mov dword ptr [ebp - 4], <OFFSET8>\n mov ecx, dword ptr [ebp - 0xc]\n+pop esi\n mov dword ptr fs:[0], ecx\n-pop esi\n mov esp, ebp\n pop ebp\n ret \n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x22c\n+jmp <OFFSET9>\n+mov eax, <OFFSET10>\n+jmp <OFFSET11>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET12>"}, {"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 <OFFSET1>\n mov edi, eax\n call <OFFSET2>\n+mov dword ptr [esi + 0x154], eax\n+mov edx, dword ptr [eax]\n+push <OFFSET3>\n mov ecx, eax\n-push <OFFSET3>\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 0x37\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 0x47\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": "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": "0x10082390", "name": "HistoryBook::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100823a0", "name": "HistoryBook::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100746b0", "name": "Hospital::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100746c0", "name": "Hospital::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10076400", "name": "HospitalState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10076410", "name": "HospitalState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1006eb40", "name": "Infocenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1006eb50", "name": "Infocenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100377b0", "name": "InfocenterDoor::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100377c0", "name": "InfocenterDoor::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10071840", "name": "InfocenterState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10071850", "name": "InfocenterState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10030910", "name": "Isle::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10030920", "name": "Isle::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000e660", "name": "IsleActor::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000e670", "name": "IsleActor::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1001a200", "name": "IslePathActor::IslePathActor", "matching": 1.0, "diff": ""}, {"address": "0x1001a280", "name": "IslePathActor::Create", "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": "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": "0x1005d6f0", "name": "JukeBox::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1005d700", "name": "JukeBox::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10085cc0", "name": "JukeBoxEntity::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10085cd0", "name": "JukeBoxEntity::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000f300", "name": "JukeBoxState::VTable0x14", "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.726027397260274, "diff": "--- \n\n+++ \n\n@@ -1,71 +1,75 @@\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 0xe8\n-mov eax, dword ptr [esp + 0xc]\n+test edx, edx\n+je 0xdc\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 [<OFFSET1>]\n-mov byte ptr [esp + eax + 0xc], 0\n-lea eax, [esp + 0x40c]\n+lea eax, [esp + 0xc]\n+mov ecx, dword ptr [<OFFSET1>]\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 <OFFSET2>\n add esp, 0xc\n test al, al\n-je 0xe8\n+je 0xdc\n mov eax, dword ptr [<OFFSET3>]\n lea ecx, [esp + 0x40c]\n push eax\n push ecx\n call <OFFSET4>\n add esp, 8\n push eax\n call <OFFSET5>\n add esp, 4\n mov dword ptr [ebx + 0x50], eax\n cmp eax, 7\n-je 0xe8\n+je 0xdc\n mov eax, dword ptr [<OFFSET3>]\n push eax\n push 0\n call <OFFSET4>\n add esp, 8\n lea esi, [ebx + 0x54]\n push eax\n lea eax, [esp + 0x10]\n push eax\n call <OFFSET6>\n lea eax, [esp + 0x14]\n add esp, 8\n mov ecx, esi\n push eax\n call <OFFSET7>\n mov ecx, esi\n call <OFFSET8>\n cmp dword ptr [ebx + 0x50], 6\n-je 0xe8\n+je 0xdc\n mov eax, dword ptr [<OFFSET3>]\n push eax\n push 0\n call <OFFSET4>\n add esp, 8\n push eax\n call <OFFSET9>\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": "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": "0x1002d110", "name": "LegoActor::LegoActor", "matching": 0.5233644859813084, "diff": "--- \n\n+++ \n\n@@ -2,53 +2,52 @@\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 mov dword ptr [ebp - 0x10], ecx\n-push edi\n mov esi, ecx\n xor ebx, ebx\n-mov edi, <OFFSET2>\n-call <OFFSET3>\n+call <OFFSET2>\n+lea eax, [esi + 0x1c]\n mov dword ptr [ebp - 4], ebx\n-lea eax, [esi + 0x1c]\n-mov byte ptr [ebp - 4], 1\n-mov dword ptr [esi + 0xc], ebx\n-mov dword ptr [esi], <OFFSET4>\n-lea ecx, [esi + 0x30]\n-mov dword ptr [esi + 8], edi\n-mov dword ptr [ebp - 4], 2\n+mov dword ptr [esi + 0x14], <OFFSET3>\n+mov dword ptr [esi + 0x14], <OFFSET4>\n+lea ecx, [esi + 0x44]\n mov dword ptr [esi + 0x18], eax\n-mov dword ptr [esi + 0x2c], ecx\n-mov dword ptr [esi + 0x14], <OFFSET5>\n-mov dword ptr [esi + 0x14], <OFFSET6>\n-lea edx, [esi + 0x44]\n-mov dword ptr [esi], <OFFSET7>\n+lea eax, [esi + 0x30]\n+mov dword ptr [esi + 0x40], ecx\n mov ecx, esi\n-mov dword ptr [esi + 0x40], edx\n-mov dword ptr [esi + 0x28], <OFFSET5>\n-mov dword ptr [esi + 0x28], <OFFSET6>\n-mov dword ptr [esi + 0x3c], <OFFSET5>\n-mov dword ptr [esi + 0x3c], <OFFSET6>\n-call <OFFSET8>\n-mov dword ptr [ebp - 4], 3\n-mov dword ptr [esi], <OFFSET9>\n+mov dword ptr [esi + 0x2c], eax\n+mov dword ptr [esi + 0x28], <OFFSET3>\n+mov dword ptr [esi + 0x28], <OFFSET4>\n+mov dword ptr [esi + 0x3c], <OFFSET3>\n+mov dword ptr [esi + 0x3c], <OFFSET4>\n+mov dword ptr [esi], <OFFSET5>\n+call <OFFSET6>\n+mov dword ptr [ebp - 4], 1\n+mov eax, <OFFSET7>\n+mov dword ptr [esi], <OFFSET8>\n mov dword ptr [esi + 0x68], ebx\n mov dword ptr [esi + 0x6c], ebx\n mov dword ptr [esi + 0x70], ebx\n-mov eax, esi\n mov byte ptr [esi + 0x10], bl\n mov byte ptr [esi + 0x74], bl\n-mov dword ptr [ebp - 4], edi\n+mov dword ptr [ebp - 4], eax\n+mov eax, esi\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 ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET9>\n+mov eax, <OFFSET10>\n+jmp <OFFSET11>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET12>"}, {"address": "0x1002d210", "name": "LegoActor::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1002d220", "name": "LegoActor::IsA", "matching": 1.0, "diff": ""}, {"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": "0x1004a950", "name": "LegoAnimMMPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1004a960", "name": "LegoAnimMMPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10068530", "name": "LegoAnimPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10068540", "name": "LegoAnimPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1003bfb0", "name": "LegoBackgroundColor::LegoBackgroundColor", "matching": 1.0, "diff": ""}, {"address": "0x1003c070", "name": "LegoBackgroundColor::SetValue", "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": "0x100064d0", "name": "LegoCacheSound::LegoCacheSound", "matching": 0.5283018867924528, "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 <OFFSET2>\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+mov ecx, esi\n+mov dword ptr [esi], <OFFSET3>\n call <OFFSET4>\n-mov byte ptr [ebp - 4], 2\n-lea ecx, [esi + 0x74]\n-call <OFFSET4>\n-mov byte ptr [ebp - 4], 3\n-mov ecx, esi\n-mov dword ptr [esi], <OFFSET5>\n-call <OFFSET6>\n+mov dword ptr [ebp - 4], <OFFSET5>\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, <OFFSET6>\n+jmp <OFFSET7>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET8>"}, {"address": "0x10006580", "name": "LegoCacheSound::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10006590", "name": "LegoCacheSound::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10011ec0", "name": "LegoCameraController::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10011ed0", "name": "LegoCameraController::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10022940", "name": "LegoCarBuild::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10022950", "name": "LegoCarBuild::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10078510", "name": "LegoCarBuildAnimPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10078520", "name": "LegoCarBuildAnimPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10028cb0", "name": "LegoControlManager::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10028cc0", "name": "LegoControlManager::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10001090", "name": "LegoEntity::SetWorldSpeed", "matching": 1.0, "diff": ""}, {"address": "0x1000c290", "name": "LegoEntity::~LegoEntity", "matching": 1.0, "diff": ""}, {"address": "0x100105f0", "name": "LegoEntity::Init", "matching": 1.0, "diff": ""}, {"address": "0x100107e0", "name": "LegoEntity::Create", "matching": 1.0, "diff": ""}, {"address": "0x10010880", "name": "LegoEntity::SetWorld", "matching": 1.0, "diff": ""}, {"address": "0x10010e10", "name": "LegoEntity::ParseAction", "matching": 1.0, "diff": ""}, {"address": "0x1000c2f0", "name": "LegoEntity::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000c300", "name": "LegoEntity::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10053440", "name": "LegoEntityPresenter::LegoEntityPresenter", "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::vtable6c", "matching": 1.0, "diff": ""}, {"address": "0x10053640", "name": "LegoEntityPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x10053670", "name": "LegoEntityPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100534b0", "name": "LegoEntityPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100534c0", "name": "LegoEntityPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1005def0", "name": "LegoFlcTexturePresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1003c500", "name": "LegoFullScreenMovie::LegoFullScreenMovie", "matching": 1.0, "diff": ""}, {"address": "0x1003c5c0", "name": "LegoFullScreenMovie::SetValue", "matching": 1.0, "diff": ""}, {"address": "0x10039550", "name": "LegoGameState::LegoGameState", "matching": 0.37254901960784315, "diff": "--- \n\n+++ \n\n@@ -1,98 +1,106 @@\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+mov ebx, ecx\n+xor esi, esi\n call <OFFSET2>\n-dec edi\n-jns 0x28\n-lea ecx, [esi + 0xa6]\n-xor ebx, ebx\n+mov word ptr [ebx + 4], si\n+push 0x30\n call <OFFSET3>\n-mov ecx, esi\n-call <OFFSET4>\n-mov ecx, esi\n-call <OFFSET5>\n-mov word ptr [esi + 4], bx\n-mov eax, <OFFSET6>\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-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 <OFFSET7>\n-push 0x30\n-call <OFFSET8>\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov edi, eax\n-mov dword ptr [ebp - 4], ebx\n+mov dword ptr [ebp - 4], esi\n mov eax, 0\n test edi, edi\n-je 0xba\n-push <OFFSET9>\n+je 0x57\n+push <OFFSET4>\n mov ecx, edi\n-push <OFFSET10>\n-call <OFFSET11>\n-mov dword ptr [ebp - 4], <OFFSET6>\n+push <OFFSET5>\n+call <OFFSET6>\n+mov dword ptr [ebp - 4], <OFFSET7>\n push eax\n-mov dword ptr [esi + 0x18], eax\n-call <OFFSET12>\n+mov dword ptr [ebx + 0x18], eax\n+call <OFFSET8>\n mov ecx, eax\n-call <OFFSET13>\n+call <OFFSET9>\n push 0x30\n-call <OFFSET8>\n+call <OFFSET3>\n mov dword ptr [ebp - 0x14], eax\n add esp, 4\n mov dword ptr [ebp - 4], 1\n-mov ebx, eax\n+mov esi, eax\n mov eax, 0\n-test ebx, ebx\n-je 0x101\n-push <OFFSET9>\n-mov ecx, ebx\n-push <OFFSET14>\n-call <OFFSET11>\n-mov dword ptr [ebp - 4], <OFFSET6>\n+test esi, esi\n+je 0x9e\n+push <OFFSET4>\n+mov ecx, esi\n+push <OFFSET10>\n+call <OFFSET6>\n+mov dword ptr [ebp - 4], <OFFSET7>\n push eax\n-mov dword ptr [esi + 0x1c], eax\n-call <OFFSET12>\n+mov dword ptr [ebx + 0x1c], eax\n+call <OFFSET8>\n mov ecx, eax\n-call <OFFSET13>\n+call <OFFSET9>\n push 0x24\n-call <OFFSET8>\n+call <OFFSET3>\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov dword ptr [ebp - 4], 2\n mov edi, eax\n mov eax, 0\n test edi, edi\n-je 0x148\n+je 0xe5\n+push <OFFSET11>\n+mov ecx, edi\n+push <OFFSET12>\n+call <OFFSET13>\n+mov dword ptr [ebp - 4], <OFFSET7>\n+push eax\n+mov dword ptr [ebx + 0x20], eax\n+call <OFFSET8>\n+mov ecx, eax\n+call <OFFSET9>\n+push <OFFSET14>\n push <OFFSET15>\n-mov ecx, edi\n-push <OFFSET16>\n+call <OFFSET8>\n+mov ecx, eax\n+call <OFFSET16>\n+push 1\n+mov ecx, ebx\n call <OFFSET17>\n-mov dword ptr [ebp - 4], <OFFSET6>\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 - 0x10]\n push eax\n-mov dword ptr [esi + 0x20], eax\n-call <OFFSET12>\n-mov ecx, eax\n-call <OFFSET13>\n+call <OFFSET18>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x14]\n+push eax\n+call <OFFSET18>\n+add esp, 4\n+ret \n+mov eax, <OFFSET19>\n+jmp <OFFSET20>\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET18>\n+add esp, 4\n+ret "}, {"address": "0x10039720", "name": "LegoGameState::~LegoGameState", "matching": 1.0, "diff": ""}, {"address": "0x10039980", "name": "LegoGameState::Save", "matching": 0.3574144486692015, "diff": "--- \n\n+++ \n\n@@ -1,137 +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, 0x28\n+sub esp, 0x24\n push ebx\n push esi\n push edi\n mov esi, ecx\n push <OFFSET2>\n-xor ebx, ebx\n call <OFFSET3>\n mov ecx, eax\n call <OFFSET4>\n test eax, eax\n-je 0x256\n-cmp dword ptr [eax + 0x78], ebx\n-je 0x256\n-mov dword ptr [ebp - 0x24], <OFFSET5>\n-lea ecx, [ebp - 0x20]\n+je 0x18c\n+cmp dword ptr [eax + 0x78], 0\n+je 0x18c\n+mov dword ptr [ebp - 0x1c], <OFFSET5>\n call <OFFSET6>\n-mov dword ptr [ebp - 4], ebx\n+mov edi, eax\n+lea ecx, [ebp - 0x30]\n call <OFFSET7>\n-mov word ptr [ebp - 0xe], bx\n-mov edi, eax\n-lea ecx, [ebp - 0x34]\n-call <OFFSET8>\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 <OFFSET8>\n+lea ecx, [ebp - 0x18]\n call <OFFSET9>\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 <OFFSET10>\n cmp eax, -1\n-je 0x222\n+je 0x15b\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 <OFFSET11>\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 <OFFSET11>\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, <OFFSET12>\n+call <OFFSET11>\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, <OFFSET11>\n+lea eax, [esi + 0xc]\n+push eax\n+lea ecx, [ebp - 0x18]\n+call <OFFSET11>\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 <OFFSET12>\n+call <OFFSET13>\n cmp eax, -1\n-je 0x222\n+je 0x13f\n add ebx, 8\n-cmp ebx, <OFFSET13>\n-jb 0xf0\n+cmp ebx, <OFFSET14>\n+jb 0xd6\n+push <OFFSET15>\n+lea eax, [ebp - 0x18]\n+push edi\n+push eax\n+call <OFFSET13>\n+cmp eax, -1\n+je 0x15b\n push <OFFSET14>\n-lea eax, [ebp - 0x20]\n+lea eax, [ebp - 0x18]\n push edi\n-mov ecx, esi\n push eax\n-call <OFFSET12>\n+call <OFFSET13>\n cmp eax, -1\n-je 0x222\n-push <OFFSET15>\n-lea eax, [ebp - 0x20]\n-push edi\n-mov ecx, esi\n-push eax\n-call <OFFSET12>\n-cmp eax, -1\n-je 0x222\n-lea eax, [ebp - 0x20]\n+je 0x15b\n+lea eax, [ebp - 0x18]\n mov ecx, esi\n push eax\n call <OFFSET16>\n-lea eax, [ebp - 0x20]\n-push eax\n+mov byte ptr [ebp - 4], 0\n call <OFFSET17>\n-mov ecx, eax\n+mov dword ptr [ebp - 4], <OFFSET5>\n call <OFFSET18>\n-lea eax, [ebp - 0x20]\n-push eax\n-call <OFFSET19>\n-mov ecx, eax\n-call <OFFSET20>\n-lea eax, [ebp - 0x20]\n-xor edi, edi\n-push eax\n-xor ebx, ebx\n-call <OFFSET21>\n-mov ecx, eax\n-call <OFFSET22>\n-cmp word ptr [esi + 4], di\n-mov dword ptr [ebp - 0x24], eax\n-jle 0x1ae\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 0x1a2\n-inc word ptr [ebp - 0xe]\n-add edi, 4\n-inc ebx\n+xor eax, eax\n+jmp <OFFSET19>\n+mov byte ptr [ebp - 4], 0\n+call <OFFSET17>\n+mov dword ptr [ebp - 4], <OFFSET5>\n+call <OFFSET18>\n+mov eax, <OFFSET5>\n+jmp <OFFSET19>\n+mov byte ptr [ebp - 4], 0\n+call <OFFSET17>\n+mov dword ptr [ebp - 4], <OFFSET5>\n+call <OFFSET18>\n+jmp <OFFSET20>\n+lea ecx, [ebp - 0x18]\n+jmp <OFFSET21>\n+mov eax, <OFFSET22>\n+jmp <OFFSET23>\n+lea ecx, [ebp - 0x30]\n+jmp <OFFSET24>\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": "0x1003a020", "name": "LegoGameState::WriteEndOfVariables", "matching": 1.0, "diff": ""}, {"address": "0x1003a170", "name": "LegoGameState::GetFileSavePath", "matching": 1.0, "diff": ""}, {"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 0x30\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 0x39\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 0x14\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": 0.9259259259259259, "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 0x47\n add edi, 4\n inc esi\n movsx eax, word ptr [ebx + 4]\n cmp eax, esi\n jg 0x20\n movsx eax, word ptr [ebx + 4]\n-cmp esi, eax\n+cmp eax, esi\n jne 0xa7\n lea eax, [eax*4 + 4]\n push eax\n call <OFFSET1>\n add esp, 4\n mov ebp, eax\n mov ax, word ptr [ebx + 4]\n test ax, ax\n je 0x8a\n movsx eax, ax\n@@ -53,31 +53,27 @@\n\n mov dword ptr [ebp + eax*4], ecx\n inc word ptr [ebx + 4]\n mov dword ptr [ebx + 8], ebp\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret 4\n mov eax, dword ptr [ebx + 8]\n+cmp dword ptr [eax + esi*4], 0\n+je 0xbd\n mov ecx, dword ptr [eax + esi*4]\n test ecx, ecx\n-je 0xb7\n+je 0xbd\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov eax, dword ptr [ebx + 8]\n mov ecx, dword ptr [esp + 0x18]\n pop ebp\n pop edi\n mov dword ptr [eax + esi*4], ecx\n pop esi\n pop ebx\n add esp, 4\n ret 4\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-push ebx"}, {"address": "0x1003cea0", "name": "LegoGameState::SetSomeEnumState", "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": "0x1005b790", "name": "LegoInputManager::LegoInputManager", "matching": 1.0, "diff": ""}, {"address": "0x1005b8f0", "name": "LegoInputManager::~LegoInputManager", "matching": 1.0, "diff": ""}, {"address": "0x1005b960", "name": "LegoInputManager::Create", "matching": 0.384, "diff": "--- \n\n+++ \n\n@@ -2,57 +2,66 @@\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 xor ebx, ebx\n-push 0x60\n-call <OFFSET2>\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 0x44\n-mov ecx, edi\n-call <OFFSET3>\n-mov dword ptr [ebp - 4], <OFFSET4>\n-cmp dword ptr [esi + 0x5c], 0\n-mov dword ptr [esi + 0x84], eax\n-jne 0xfb\n+cmp dword ptr [ecx + 0x68], ebx\n+mov edi, ecx\n+jne 0xb3\n push 0x18\n call <OFFSET2>\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n-mov dword ptr [ebp - 4], 1\n-mov edi, eax\n-test edi, edi\n-je 0xef\n-mov ecx, edi\n-call <OFFSET5>\n+mov esi, eax\n+mov dword ptr [ebp - 4], ebx\n+test esi, esi\n+je 0xa7\n+mov ecx, esi\n+call <OFFSET3>\n+mov byte ptr [ebp - 4], 1\n mov byte ptr [ebp - 4], 2\n mov byte ptr [ebp - 4], 3\n+mov dword ptr [esi], <OFFSET4>\n mov byte ptr [ebp - 4], 4\n-mov dword ptr [edi], <OFFSET6>\n-mov dword ptr [edi + 8], 0\n-mov dword ptr [edi + 0xc], <OFFSET7>\n-mov byte ptr [ebp - 4], 5\n-mov byte ptr [ebp - 4], 1\n-mov eax, edi\n-mov dword ptr [edi], <OFFSET8>\n-mov dword ptr [edi + 0x14], 0\n-mov dword ptr [edi + 0x10], 0\n-mov dword ptr [edi], <OFFSET9>\n-mov dword ptr [edi + 0xc], <OFFSET7>\n-mov dword ptr [edi], <OFFSET10>\n+mov dword ptr [esi + 8], ebx\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [esi + 0xc], <OFFSET5>\n+mov eax, esi\n+mov dword ptr [esi], <OFFSET6>\n+mov dword ptr [esi + 0x14], ebx\n+mov dword ptr [esi + 0x10], ebx\n+mov dword ptr [esi], <OFFSET7>\n+mov dword ptr [esi], <OFFSET8>\n+jmp <OFFSET9>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET10>\n+mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET11>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET12>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET13>\n+xor eax, eax\n+mov dword ptr [ebp - 4], <OFFSET14>\n+mov dword ptr [edi + 0x68], eax\n+xor eax, eax\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, <OFFSET15>\n+jmp <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET17>\n+add esp, 4\n+ret "}, {"address": "0x1005bb80", "name": "MxCollection<LegoEventNotificationParam>::Compare", "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": "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": 1.0, "diff": ""}, {"address": "0x1005c0a0", "name": "LegoInputManager::ReleaseDX", "matching": 1.0, "diff": ""}, {"address": "0x1005c240", "name": "LegoInputManager::GetJoystickId", "matching": 1.0, "diff": ""}, {"address": "0x1005c320", "name": "LegoInputManager::GetJoystickState", "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": 0.8360655737704918, "diff": "--- \n\n+++ \n\n@@ -23,21 +23,21 @@\n\n mov byte ptr [ebp - 4], 3\n mov eax, dword ptr [ebp - 0x1c]\n mov ecx, dword ptr [eax + 0x68]\n mov dword ptr [ebp - 0x18], ecx\n mov ecx, dword ptr [ecx + 0x10]\n cmp ecx, 1\n sbb al, al\n inc al\n test ecx, ecx\n mov byte ptr [ebp - 0xd], al\n-je 0x11c\n+je 0x11f\n lea eax, [ebp - 0x64]\n push eax\n call <OFFSET6>\n mov byte ptr [ebp - 4], 4\n mov byte ptr [ebp - 4], 3\n mov ecx, dword ptr [eax + 4]\n mov dword ptr [ebp - 0x38], ecx\n mov edx, dword ptr [eax + 8]\n mov dword ptr [ebp - 0x34], edx\n mov cl, byte ptr [eax + 0xc]\n@@ -47,55 +47,56 @@\n\n mov ecx, dword ptr [eax + 0x14]\n mov dword ptr [ebp - 0x28], ecx\n mov dl, byte ptr [eax + 0x18]\n mov byte ptr [ebp - 0x24], dl\n mov eax, dword ptr [eax + 0x1c]\n mov dword ptr [ebp - 0x20], eax\n call <OFFSET7>\n mov ecx, dword ptr [ebp - 0x18]\n mov edx, dword ptr [ecx + 0x10]\n mov dword ptr [ebp - 0x14], edx\n-mov ecx, dword ptr [edx + 0x20]\n-test ecx, ecx\n+mov eax, dword ptr [edx + 0x20]\n+test eax, eax\n je 0xcf\n-mov eax, dword ptr [edx + 0x24]\n+mov ecx, dword ptr [edx + 0x24]\n add edx, 0x24\n-mov dword ptr [ecx + 0x24], eax\n+mov dword ptr [eax + 0x24], ecx\n jmp <OFFSET8>\n mov edx, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [ebp - 0x18]\n mov eax, dword ptr [edx + 0x24]\n add edx, 0x24\n mov dword ptr [ecx + 0x10], eax\n-mov ecx, dword ptr [edx]\n-mov eax, dword ptr [ebp - 0x14]\n-test ecx, ecx\n-mov edx, dword ptr [eax + 0x20]\n+mov eax, dword ptr [edx]\n+mov ecx, dword ptr [ebp - 0x14]\n+test eax, eax\n je 0xef\n-mov dword ptr [ecx + 0x20], edx\n+mov edx, dword ptr [ecx + 0x20]\n+mov dword ptr [eax + 0x20], edx\n jmp <OFFSET9>\n-mov ecx, dword ptr [ebp - 0x18]\n-mov dword ptr [ecx + 0x14], edx\n+mov eax, dword ptr [ecx + 0x20]\n+mov edx, dword ptr [ebp - 0x18]\n+mov dword ptr [edx + 0x14], eax\n cmp dword ptr [ebp - 0x14], 0\n-je 0x116\n+je 0x119\n mov byte ptr [ebp - 4], 3\n-mov eax, dword ptr [ebp - 0x14]\n-mov dword ptr [ebp - 0x44], eax\n+mov ecx, dword ptr [ebp - 0x14]\n+mov dword ptr [ebp - 0x44], ecx\n call <OFFSET10>\n-mov eax, dword ptr [ebp - 0x14]\n-push eax\n+mov ecx, dword ptr [ebp - 0x14]\n+push ecx\n call <OFFSET11>\n add esp, 4\n mov ecx, dword ptr [ebp - 0x18]\n dec dword ptr [ecx + 8]\n cmp byte ptr [ebp - 0xd], 0\n-je 0x136\n+je 0x139\n lea eax, [ebp - 0x3c]\n mov ecx, dword ptr [ebp - 0x1c]\n push eax\n call <OFFSET12>\n test al, al\n je 0x56\n mov byte ptr [ebp - 4], 0\n call <OFFSET13>\n mov dword ptr [ebp - 4], <OFFSET14>\n call <OFFSET15>\n@@ -111,13 +112,10 @@\n\n lea ecx, [ebp - 0x3c]\n jmp <OFFSET17>\n lea ecx, [ebp - 0x3c]\n jmp <OFFSET18>\n lea ecx, [ebp - 0x3c]\n jmp <OFFSET16>\n mov eax, <OFFSET19>\n jmp <OFFSET20>\n lea ecx, [ebp - 0x40]\n jmp <OFFSET21>\n-int3 \n-int3 \n-int3 "}, {"address": "0x1005cfb0", "name": "LegoInputManager::SetTimer", "matching": 1.0, "diff": ""}, {"address": "0x1005cfd0", "name": "LegoInputManager::KillTimer", "matching": 1.0, "diff": ""}, {"address": "0x1005d010", "name": "MxListEntry<LegoEventNotificationParam>::GetValue", "matching": 1.0, "diff": ""}, {"address": "0x10018340", "name": "LegoLoadCacheSoundPresenter::LegoLoadCacheSoundPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10018450", "name": "LegoLoadCacheSoundPresenter::ClassName", "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": "0x1000c9a0", "name": "LegoLoopingAnimPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000c9b0", "name": "LegoLoopingAnimPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1007f660", "name": "LegoModelPresenter::configureLegoModelPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10054ac0", "name": "LegoNavController::LegoNavController", "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.9361702127659575, "diff": "--- \n\n+++ \n\n@@ -10,29 +10,29 @@\n\n test ah, 0x41\n je 0x2e\n mov edx, <OFFSET2>\n fld dword ptr [ecx + 0x14]\n fld dword ptr [esp + 4]\n fabs \n fcompp \n fnstsw ax\n test ah, 0x41\n jne 0x8c\n-fld dword ptr [esp + 0x18]\n-fmul dword ptr [esp + 0x14]\n+fld dword ptr [esp + 0x14]\n+fmul dword ptr [esp + 0x18]\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 0x7f\n test ah, 0x41\n je 0x6f\n fxch st(1)\n fstp st(0)\n fstp dword ptr [esp]\n fld dword ptr [esp]\n add esp, 8"}, {"address": "0x10054b80", "name": "LegoNavController::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10054b90", "name": "LegoNavController::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10006e40", "name": "LegoObjectFactory::LegoObjectFactory", "matching": 0.3181818181818182, "diff": "--- \n\n+++ \n\n@@ -1,43 +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, 0x194\n+sub esp, 8\n mov dword ptr [ebp - 0x10], ecx\n push esi\n call <OFFSET2>\n+mov esi, dword ptr [ebp - 0x10]\n+mov eax, dword ptr [ebp - 0x10]\n+add esi, 0x38\n+push 0\n+push <OFFSET3>\n+lea ecx, [ebp - 0x14]\n mov dword ptr [ebp - 4], 0\n mov byte ptr [ebp - 4], 1\n-mov esi, dword ptr [ebp - 0x10]\n+mov dword ptr [esi], 0\n+mov dword ptr [eax], <OFFSET4>\n+call <OFFSET5>\n+push eax\n+mov ecx, esi\n mov byte ptr [ebp - 4], 2\n-mov dword ptr [esi + 0x38], 0\n-add esi, 0x38\n+call <OFFSET6>\n+mov byte ptr [ebp - 4], 1\n+call <OFFSET7>\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 [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 [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 [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 [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 [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n+pop esi\n+mov dword ptr [ebp - 4], <OFFSET8>\n+mov ecx, dword ptr [ebp - 0xc]\n+mov esp, ebp\n+mov dword ptr fs:[0], ecx\n+pop ebp\n+ret \n+lea ecx, [ebp - 0x14]\n+jmp <OFFSET9>\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x38\n+jmp <OFFSET9>\n+mov eax, <OFFSET10>\n+jmp <OFFSET11>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET12>"}, {"address": "0x10009a90", "name": "LegoObjectFactory::Create", "matching": 0.2702702702702703, "diff": "--- \n\n+++ \n\n@@ -1,52 +1,59 @@\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-push ebx\n-mov eax, dword ptr [ebp + 8]\n-mov dword ptr [ebp - 0x14], 0\n+sub esp, 0xc\n push esi\n push edi\n-mov esi, ecx\n+mov edi, ecx\n push 0\n-push eax\n-lea ecx, [ebp - 0x18]\n+mov esi, dword ptr [ebp + 8]\n+lea ecx, [ebp - 0x14]\n+push esi\n call <OFFSET2>\n mov dword ptr [ebp - 4], 0\n+mov eax, dword ptr [ebp - 0x14]\n+cmp dword ptr [edi + 0x38], eax\n+jne 0x95\n+push 0x94\n+call <OFFSET3>\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], 1\n+test eax, eax\n+je 0x60\n+mov ecx, eax\n+call <OFFSET4>\n+mov dword ptr [ebp - 0x18], eax\n+jmp <OFFSET5>\n+mov dword ptr [ebp - 0x18], 0\n+mov dword ptr [ebp - 4], <OFFSET6>\n+call <OFFSET7>\n mov eax, dword ptr [ebp - 0x18]\n-cmp dword ptr [esi + 0x48], eax\n-jne 0x112\n-push 0x6c\n-mov ebx, 1\n-call <OFFSET3>\n+mov ecx, dword ptr [ebp - 0xc]\n+pop edi\n+mov dword ptr fs:[0], ecx\n+pop esi\n+mov esp, ebp\n+pop ebp\n+ret 4\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET8>\n+add esp, 4\n+ret \n+push esi\n+mov ecx, edi\n+call <OFFSET9>\n+mov dword ptr [ebp - 4], <OFFSET6>\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 0xfe\n-mov ecx, edi\n-call <OFFSET4>\n-mov byte ptr [ebp - 4], 2\n-lea ecx, [edi + 0x20]\n-call <OFFSET5>\n-mov byte ptr [ebp - 4], 3\n-mov ecx, edi\n-mov dword ptr [edi], <OFFSET6>\n call <OFFSET7>\n-mov byte ptr [ebp - 4], 4\n-mov ecx, edi\n-mov dword ptr [edi], <OFFSET8>\n-call <OFFSET9>\n-mov byte ptr [ebp - 4], 5\n-mov ecx, edi\n-mov dword ptr [edi], <OFFSET10>\n-call <OFFSET11>\n-mov byte ptr [ebp - 4], 6\n-mov eax, edi\n-mov dword ptr [edi], <OFFSET12>\n+mov eax, dword ptr [ebp - 0x10]\n+jmp <OFFSET10>\n+mov eax, <OFFSET11>\n+jmp <OFFSET12>\n+lea ecx, [ebp - 0x14]\n+jmp <OFFSET13>"}, {"address": "0x1000fb30", "name": "LegoObjectFactory::Destroy", "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": "0x100157e0", "name": "PlantManager", "matching": 1.0, "diff": ""}, {"address": "0x100157f0", "name": "BuildingManager", "matching": 1.0, "diff": ""}, {"address": "0x10015800", "name": "GetGifManager", "matching": 1.0, "diff": ""}, {"address": "0x100158e0", "name": "GetCurrentAction", "matching": 1.0, "diff": ""}, {"address": "0x10015900", "name": "TransitionManager", "matching": 1.0, "diff": ""}, {"address": "0x10015910", "name": "PlayMusic", "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": "0x10058a00", "name": "LegoOmni::LegoOmni", "matching": 1.0, "diff": ""}, {"address": "0x10058b50", "name": "LegoOmni::~LegoOmni", "matching": 1.0, "diff": ""}, {"address": "0x10058bd0", "name": "LegoOmni::Init", "matching": 1.0, "diff": ""}, {"address": "0x10058e70", "name": "LegoOmni::Create", "matching": 0.13127413127413126, "diff": "--- \n\n+++ \n\n@@ -1,394 +1,383 @@\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+sub esp, 0xc\n+push ebx\n+push esi\n+push edi\n lea eax, [ecx + 0x48]\n-mov dword ptr [ebp - 0x14], ecx\n-push ebx\n-lea ecx, [ebp - 0x2c]\n-push esi\n-xor ebx, ebx\n-mov dword ptr [ebp - 0x20], <OFFSET2>\n-push edi\n-push eax\n-call <OFFSET3>\n-mov esi, dword ptr [ebp + 8]\n-mov dword ptr [ebp - 4], ebx\n-mov al, byte ptr [esi + 0x3c]\n+mov edi, ecx\n+push eax\n+lea ecx, [ebp - 0x18]\n+call <OFFSET2>\n+mov ebx, dword ptr [ebp + 8]\n+mov dword ptr [ebp - 4], 0\n+mov al, byte ptr [ebx + 0x3c]\n and al, 0xfe\n-mov byte ptr [esi + 0x3c], al\n+mov byte ptr [ebx + 0x3c], al\n and al, 0xef\n push 0x14\n-mov byte ptr [esi + 0x3c], al\n+mov byte ptr [ebx + 0x3c], al\n and al, 0xdf\n-mov byte ptr [esi + 0x3c], al\n+mov byte ptr [ebx + 0x3c], al\n and al, 0xfb\n-mov byte ptr [esi + 0x3c], al\n+mov byte ptr [ebx + 0x3c], al\n+call <OFFSET3>\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+je 0xbe\n+mov ecx, esi\n call <OFFSET4>\n-mov dword ptr [ebp - 0x1c], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 1\n-mov edi, eax\n-test edi, edi\n-je 0xc0\n-mov ecx, edi\n-call <OFFSET5>\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-call <OFFSET4>\n+mov byte ptr [ebp - 4], 2\n+mov byte ptr [esi + 8], al\n+call <OFFSET3>\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], <OFFSET6>\n+mov dword ptr [esi + 0xc], eax\n+mov eax, esi\n+mov dword ptr [esi + 0x10], 0\n+mov dword ptr [esi], <OFFSET5>\n+jmp <OFFSET6>\n+mov ecx, dword ptr [ebp - 0x14]\n+add ecx, 8\n jmp <OFFSET7>\n-mov ecx, dword ptr [ebp - 0x1c]\n+mov ecx, dword ptr [ebp - 0x14]\n add ecx, 8\n jmp <OFFSET8>\n-mov ecx, dword ptr [ebp - 0x1c]\n-add ecx, 8\n+mov ecx, dword ptr [ebp - 0x14]\n jmp <OFFSET9>\n-mov ecx, dword ptr [ebp - 0x1c]\n-jmp <OFFSET10>\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 0x17f\n-push esi\n-mov ecx, edx\n+mov byte ptr [ebp - 4], 0\n+mov dword ptr [edi + 0x24], eax\n+test eax, eax\n+jne 0xef\n+mov dword ptr [ebp - 4], <OFFSET10>\n call <OFFSET11>\n-test eax, eax\n-jne 0x17f\n-push 0x1c8\n-call <OFFSET4>\n-mov dword ptr [ebp - 0x10], 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 0x10a\n-mov ecx, edi\n-call <OFFSET12>\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 0x17f\n-push 0x44\n-call <OFFSET4>\n-mov dword ptr [ebp - 0x10], 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 0x13b\n-mov ecx, edi\n-call <OFFSET13>\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 + 0x30], eax\n-je 0x15c\n-push ebx\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 0x161\n-mov ebx, 1\n-test ebx, ebx\n-je 0x1a1\n-mov edx, dword ptr [ebp - 0x14]\n-mov ecx, dword ptr [edx + 0x30]\n-test ecx, ecx\n-je 0x175\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], <OFFSET2>\n-call <OFFSET14>\n-mov eax, dword ptr [ebp - 0x20]\n+mov eax, <OFFSET10>\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-push 0x590\n-call <OFFSET4>\n-mov dword ptr [ebp - 0x10], 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 0x1c7\n+push ebx\n mov ecx, edi\n-call <OFFSET15>\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 + 0x2c], eax\n-je 0x1ec\n-push ebx\n-lea ecx, [esi + 0x18]\n-push 0x64\n+call <OFFSET12>\n+test eax, eax\n+jne 0xcb\n+push 0x3c\n+call <OFFSET3>\n+mov dword ptr [ebp - 0x10], eax\n+add esp, 4\n+mov byte ptr [ebp - 4], 5\n+mov esi, eax\n+mov eax, 0\n+test esi, esi\n+je 0x11e\n+mov ecx, esi\n+call <OFFSET13>\n+mov byte ptr [ebp - 4], 0\n+mov dword ptr [edi + 0x1c], eax\n+test eax, eax\n+je 0xcb\n+push 0x44\n+call <OFFSET3>\n+mov dword ptr [ebp - 0x10], eax\n+add esp, 4\n+mov byte ptr [ebp - 4], 6\n+mov esi, eax\n+mov eax, 0\n+test esi, esi\n+je 0x14c\n+mov ecx, esi\n+call <OFFSET14>\n+mov byte ptr [ebp - 4], 0\n+mov dword ptr [edi + 0x30], eax\n+test eax, eax\n+je 0x17f\n+push 0\n mov edx, dword ptr [eax]\n-push ecx\n+push 0xa\n mov ecx, eax\n-call dword ptr [edx + 0x2c]\n-cmp eax, 1\n-sbb eax, eax\n-inc eax\n-je 0x1f1\n-mov ebx, 1\n-test ebx, ebx\n-je 0x214\n-mov edx, dword ptr [ebp - 0x14]\n-mov ecx, dword ptr [edx + 0x2c]\n-test ecx, ecx\n-je 0x205\n+call dword ptr [edx + 0x30]\n+test eax, eax\n+je 0x17f\n+mov ecx, dword ptr [edi + 0x30]\n+test ecx, ecx\n+je 0x173\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 <OFFSET16>\n-push 0x338\n-call <OFFSET4>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 8\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x23a\n-mov ecx, edi\n-call <OFFSET17>\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 0x25c\n-mov ecx, dword ptr [esi + 0x14]\n-push ecx\n+mov dword ptr [edi + 0x30], 0\n+jmp <OFFSET15>\n+push 0x590\n+call <OFFSET3>\n+mov dword ptr [ebp - 0x10], eax\n+add esp, 4\n+mov esi, eax\n+mov ecx, 0\n+mov byte ptr [ebp - 4], 7\n+test esi, esi\n+je 0x1a7\n+mov ecx, esi\n+call <OFFSET16>\n mov ecx, eax\n-call <OFFSET18>\n-cmp eax, 1\n-sbb eax, eax\n-inc eax\n-je 0x261\n-mov ebx, 1\n-test ebx, ebx\n-je 0x284\n-mov edx, dword ptr [ebp - 0x14]\n-mov ecx, dword ptr [edx + 0x70]\n-test ecx, ecx\n-je 0x275\n+mov byte ptr [ebp - 4], 0\n+mov dword ptr [edi + 0x2c], ecx\n+test ecx, ecx\n+je 0x1d7\n+push 0\n+lea eax, [ebx + 0x18]\n+push 0x64\n+mov esi, dword ptr [ecx]\n+push eax\n+call dword ptr [esi + 0x2c]\n+test eax, eax\n+je 0x1d7\n+mov ecx, dword ptr [edi + 0x2c]\n+test ecx, ecx\n+je 0x1d0\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 <OFFSET16>\n-push 0x14\n-call <OFFSET4>\n-mov dword ptr [ebp - 0x10], 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 0x2a7\n-mov ecx, esi\n-call <OFFSET19>\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 <OFFSET4>\n-add esp, 4\n-mov dword ptr [ebp - 0x18], eax\n+mov dword ptr [edi + 0x2c], 0\n+push 0x338\n+call <OFFSET3>\n+mov dword ptr [ebp - 0x10], eax\n+add esp, 4\n+mov esi, eax\n+mov ecx, 0\n+mov byte ptr [ebp - 4], 8\n+test esi, esi\n+je 0x1ff\n+mov ecx, esi\n+call <OFFSET17>\n+mov ecx, eax\n+mov byte ptr [ebp - 4], 0\n+mov dword ptr [edi + 0x70], ecx\n+test ecx, ecx\n+je 0x22b\n+mov eax, dword ptr [ebx + 0x14]\n+push eax\n+call <OFFSET18>\n+test eax, eax\n+je 0x22b\n+mov ecx, dword ptr [edi + 0x70]\n+test ecx, ecx\n+je 0x224\n+push 1\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax]\n+mov dword ptr [edi + 0x70], 0\n+push 0x30\n+call <OFFSET3>\n+mov dword ptr [ebp - 0x10], eax\n+add esp, 4\n+mov esi, eax\n+mov eax, 9\n+mov byte ptr [ebp - 4], al\n+test esi, esi\n+je 0x265\n mov byte ptr [ebp - 4], 0xa\n-cmp dword ptr [ebp - 0x18], ebx\n-je 0x441\n-mov ecx, dword ptr [ebp - 0x18]\n-mov dl, byte ptr [ebp - 0xd]\n-add ecx, 8\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 byte ptr [edx + 9], al\n-mov edx, dword ptr [ebp - 0x18]\n+mov dword ptr [esi], <OFFSET19>\n+mov byte ptr [ebp - 4], al\n+mov eax, esi\n+mov dword ptr [esi], <OFFSET20>\n+jmp <OFFSET21>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET22>\n+xor eax, eax\n+mov byte ptr [ebp - 4], 0\n+push 8\n+mov dword ptr [edi + 0x74], eax\n+call <OFFSET3>\n+mov dword ptr [ebp - 0x14], eax\n+add esp, 4\n mov byte ptr [ebp - 4], 0xb\n-mov dword ptr [edx + 0x10], ebx\n-cmp dword ptr [<OFFSET20>], ebx\n-jne 0x329\n-push 0x18\n-call <OFFSET21>\n-push eax\n-mov esi, eax\n-call <OFFSET22>\n-add esp, 4\n-mov dword ptr [eax], ebx\n-push esi\n+mov ebx, eax\n+mov eax, 0\n+test ebx, ebx\n+je 0x291\n+mov ecx, ebx\n call <OFFSET23>\n-add esp, 4\n-mov dword ptr [eax], 1\n-mov dword ptr [<OFFSET20>], esi\n-mov dword ptr [esi], ebx\n-mov esi, dword ptr [<OFFSET20>]\n-mov dword ptr [esi + 8], ebx\n-mov byte ptr [ebp - 4], 0xa\n+mov byte ptr [ebp - 4], 0\n+push 8\n+mov dword ptr [edi + 0x90], eax\n+call <OFFSET3>\n+mov dword ptr [ebp - 0x10], eax\n+add esp, 4\n+mov byte ptr [ebp - 4], 0xc\n+mov esi, eax\n+mov eax, 0\n+test esi, esi\n+je 0x2be\n+mov ecx, esi\n call <OFFSET24>\n-mov esi, dword ptr [<OFFSET20>]\n-push 0x18\n-mov ecx, dword ptr [ebp - 0x24]\n-call <OFFSET21>\n-push eax\n-mov edi, eax\n-call <OFFSET22>\n-add esp, 4\n-mov dword ptr [eax], esi\n-xor esi, esi\n+mov byte ptr [ebp - 4], 0\n+push 8\n+mov dword ptr [edi + 0x94], eax\n+call <OFFSET3>\n+mov dword ptr [ebp - 0x14], eax\n+add esp, 4\n+mov byte ptr [ebp - 4], 0xd\n+mov ebx, eax\n+mov eax, 0\n+test ebx, ebx\n+je 0x2eb\n+mov ecx, ebx\n+call <OFFSET25>\n+mov byte ptr [ebp - 4], 0\n+push 0x430\n+mov dword ptr [edi + 0x98], eax\n+call <OFFSET3>\n+mov dword ptr [ebp - 0x10], eax\n+add esp, 4\n+mov byte ptr [ebp - 4], 0xe\n+mov esi, eax\n+mov eax, 0\n+test esi, esi\n+je 0x31b\n+mov ecx, esi\n+call <OFFSET26>\n+mov byte ptr [ebp - 4], 0\n+cmp dword ptr [edi + 0x6c], 0\n+mov dword ptr [edi + 0x9c], eax\n+je 0xcb\n+cmp dword ptr [edi + 0x74], 0\n+je 0xcb\n+cmp dword ptr [edi + 0x78], 0\n+je 0xcb\n+cmp dword ptr [edi + 0x90], 0\n+je 0xcb\n+cmp dword ptr [edi + 0x94], 0\n+je 0xcb\n+cmp dword ptr [edi + 0x98], 0\n+je 0xcb\n+call <OFFSET27>\n+call <OFFSET28>\n+push 0x150\n+call <OFFSET3>\n+mov dword ptr [ebp - 0x10], eax\n+add esp, 4\n+mov byte ptr [ebp - 4], 0xf\n+mov esi, eax\n+mov eax, 0\n+test esi, esi\n+je 0x39a\n+mov ecx, esi\n+call <OFFSET29>\n+mov byte ptr [ebp - 4], 0\n+mov dword ptr [edi + 0x134], eax\n+test eax, eax\n+je 0xcb\n+push 0x900\n+call <OFFSET3>\n+mov dword ptr [ebp - 0x10], eax\n+add esp, 4\n+mov esi, eax\n+mov ecx, 0\n+mov byte ptr [ebp - 4], 0x10\n+test esi, esi\n+je 0x3d4\n+mov ecx, esi\n+call <OFFSET30>\n+mov ecx, eax\n+mov byte ptr [ebp - 4], 0\n+mov dword ptr [edi + 0x138], ecx\n+test ecx, ecx\n+je 0xcb\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax + 0x14]\n+test eax, eax\n+jne 0xcb\n push edi\n-call <OFFSET23>\n-add esp, 4\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 <OFFSET25>\n-add esp, 4\n-mov ecx, dword ptr [ebp - 0x18]\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 <OFFSET26>\n-add esp, 4\n-mov ecx, dword ptr [ebp - 0x18]\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-mov dword ptr [eax], edi\n-mov byte ptr [ebp - 4], bl\n-mov ecx, dword ptr [ebp - 0x18]\n-push ebx\n-mov dword ptr [ecx], <OFFSET27>\n-mov ecx, dword ptr [ebp - 0x18]\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 <OFFSET4>\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], <OFFSET28>\n-mov eax, dword ptr [ebp - 0x18]\n-jmp <OFFSET29>\n-mov ecx, dword ptr [ebp - 0x18]\n-add ecx, 0x18\n-jmp <OFFSET30>\n-mov ecx, dword ptr [ebp - 0x18]\n-add ecx, 0x18\n-jmp <OFFSET31>\n-lea ecx, [ebp - 0x25]\n-jmp <OFFSET32>\n-mov ecx, dword ptr [ebp - 0x18]\n-add ecx, 8\n-jmp <OFFSET33>\n-mov ecx, dword ptr [ebp - 0x18]\n-add ecx, 8\n+mov ecx, dword ptr [edi + 0x28]\n+call <OFFSET31>\n+push 1\n+call <OFFSET32>\n+add esp, 4\n+mov ecx, dword ptr [edi + 0x9c]\n+push 0\n+call <OFFSET33>\n+mov dword ptr [ebp - 4], <OFFSET10>\n+call <OFFSET11>\n+xor eax, eax\n jmp <OFFSET34>\n-mov ecx, dword ptr [ebp - 0x18]\n-add ecx, 8\n-jmp <OFFSET35>\n-mov ecx, dword ptr [ebp - 0x18]\n-add ecx, 8\n-jmp <OFFSET36>\n-mov ecx, dword ptr [ebp - 0x18]\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET35>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET35>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET35>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x14]\n+push eax\n+call <OFFSET35>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET35>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x14]\n+push eax\n+call <OFFSET35>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET35>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET35>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET35>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET35>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET35>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x14]\n+push eax\n+call <OFFSET35>\n+add esp, 4\n+ret \n+mov eax, <OFFSET36>\n jmp <OFFSET37>\n-xor eax, eax\n-xor ebx, ebx\n-mov edx, dword ptr [ebp - 0x14]\n-mov byte ptr [ebp - 4], bl\n-mov dword ptr [edx + 0x74], eax\n-mov byte ptr [eax + 4], bl\n-call <OFFSET38>\n-push 8\n-call <OFFSET4>\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 0x479\n-mov ecx, edi\n-call <OFFSET39>\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 <OFFSET4>\n-mov dword ptr [ebp - 0x1c], 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 0x4a9\n-mov ecx, esi\n-call <OFFSET40>\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 <OFFSET4>\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+lea ecx, [ebp - 0x18]\n+jmp <OFFSET38>"}, {"address": "0x1005ac90", "name": "LegoOmni::CreateInstance", "matching": 1.0, "diff": ""}, {"address": "0x1005ad10", "name": "LegoOmni::GetInstance", "matching": 1.0, "diff": ""}, {"address": "0x1005b2f0", "name": "LegoOmni::FindWorld", "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 0x19\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 <OFFSET1>\n mov ecx, eax\n call <OFFSET2>\n ret 4"}, {"address": "0x1005b3c0", "name": "LegoOmni::DoesEntityExist", "matching": 1.0, "diff": ""}, {"address": "0x1005b560", "name": "LegoOmni::CreateBackgroundAudio", "matching": 1.0, "diff": ""}, {"address": "0x1005b580", "name": "LegoOmni::Start", "matching": 1.0, "diff": ""}, {"address": "0x1005b640", "name": "LegoOmni::StartTimer", "matching": 1.0, "diff": ""}, {"address": "0x1005b650", "name": "LegoOmni::StopTimer", "matching": 1.0, "diff": ""}, {"address": "0x100acf50", "name": "Start", "matching": 1.0, "diff": ""}, {"address": "0x100b6ff0", "name": "MakeSourceName", "matching": 1.0, "diff": ""}, {"address": "0x100b7050", "name": "KeyValueStringParse", "matching": 1.0, "diff": ""}, {"address": "0x100b7210", "name": "SetOmniUserMessage", "matching": 1.0, "diff": ""}, {"address": "0x100c0280", "name": "CreateStreamObject", "matching": 1.0, "diff": ""}, {"address": "0x10058aa0", "name": "LegoOmni::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10058ab0", "name": "LegoOmni::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10079e50", "name": "LegoPalettePresenter::LegoPalettePresenter", "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": "0x10079f30", "name": "LegoPalettePresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10079f40", "name": "LegoPalettePresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1007c990", "name": "LegoPartPresenter::configureLegoPartPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1000c430", "name": "LegoPathActor::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000c440", "name": "LegoPathActor::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10045110", "name": "LegoPathController::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10045120", "name": "LegoPathController::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1001d210", "name": "LegoPathControllerList::Compare", "matching": 0.7, "diff": "--- \n\n+++ \n\n@@ -1,10 +1,10 @@\n\n+mov eax, dword ptr [esp + 4]\n mov ecx, dword ptr [esp + 8]\n-mov eax, dword ptr [esp + 4]\n-cmp ecx, eax\n+cmp eax, ecx\n jne 0x11\n xor al, al\n ret 8\n mov al, 1\n-jbe 0x17\n+jae 0x17\n mov al, 0xff\n ret 8"}, {"address": "0x1001d230", "name": "MxCollection<LegoPathController *>::Compare", "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": "LegoPathControllerList::Destroy", "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": "0x100448d0", "name": "LegoPathPresenter::LegoPathPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10044ab0", "name": "LegoPathPresenter::Init", "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": "0x10044d40", "name": "LegoPathPresenter::RepeatingTickle", "matching": 1.0, "diff": ""}, {"address": "0x100449a0", "name": "LegoPathPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100449b0", "name": "LegoPathPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1004e180", "name": "LegoPhonemePresenter::LegoPhonemePresenter", "matching": 1.0, "diff": ""}, {"address": "0x1004e340", "name": "LegoPhonemePresenter::~LegoPhonemePresenter", "matching": 1.0, "diff": ""}, {"address": "0x1004e3b0", "name": "LegoPhonemePresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x1004e310", "name": "LegoPhonemePresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10026220", "name": "LegoPlantManager::LegoPlantManager", "matching": 1.0, "diff": ""}, {"address": "0x10026290", "name": "LegoPlantManager::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000dab0", "name": "LegoRace::VTable0x78", "matching": 1.0, "diff": ""}, {"address": "0x1000dae0", "name": "LegoRace::VTable0x5c", "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": "0x100a81c0", "name": "LegoROI::configureLegoROI", "matching": 1.0, "diff": ""}, {"address": "0x100a9bf0", "name": "LegoROI::CallTheHandlerFunction", "matching": 1.0, "diff": ""}, {"address": "0x100a9c50", "name": "LegoROI::ColorAliasLookup", "matching": 0.7346938775510204, "diff": "--- \n\n+++ \n\n@@ -1,49 +1,49 @@\n\n sub esp, 4\n push ebx\n push esi\n push edi\n-mov ebx, <OFFSET1>\n-xor edi, edi\n+xor ebx, ebx\n+mov edi, <OFFSET1>\n mov esi, dword ptr [esp + 0x14]\n push esi\n-mov eax, dword ptr [ebx]\n+mov eax, dword ptr [edi]\n push eax\n call <OFFSET2>\n add esp, 8\n test eax, eax\n je 0x36\n-add ebx, 0x14\n-inc edi\n-cmp ebx, <OFFSET3>\n+add edi, 0x14\n+inc ebx\n+cmp edi, <OFFSET3>\n jb 0x11\n xor al, al\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret \n-shl edi, 2\n+shl ebx, 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+lea ecx, [ebx + ebx*4]\n+fild dword ptr [ecx + 0x1005826c]\n fmul qword ptr [<OFFSET4>]\n mov ebx, dword ptr [esp + 0x20]\n fstp dword ptr [edx]\n-fild dword ptr [ecx + 0x101011b8]\n+fild dword ptr [ecx + 0x10058270]\n fmul qword ptr [<OFFSET4>]\n fstp dword ptr [eax]\n-fild dword ptr [ecx + 0x101011bc]\n+fild dword ptr [ecx + 0x10058274]\n fmul qword ptr [<OFFSET4>]\n fstp dword ptr [ebx]\n-fild dword ptr [ecx + 0x101011c0]\n-mov eax, dword ptr [ecx + 0x101011c0]\n+fild dword ptr [ecx + 0x10058278]\n+mov eax, dword ptr [ecx + 0x10058278]\n mov ecx, dword ptr [esp + 0x24]\n mov al, 1\n pop edi\n fmul qword ptr [<OFFSET4>]\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": "0x100298a0", "name": "LegoSoundManager::LegoSoundManager", "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": "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": "LegoFileStream::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": "0x10039f70", "name": "LegoStream::WriteVariable", "matching": 1.0, "diff": ""}, {"address": "0x1003a080", "name": "LegoStream::ReadVariable", "matching": 0.9506172839506173, "diff": "--- \n\n+++ \n\n@@ -56,26 +56,26 @@\n\n jne 0xd7\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 0xd7\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 <OFFSET4>\n mov eax, ebx\n pop edi\n pop esi\n pop ebx\n add esp, 0x204\n ret 8"}, {"address": "0x10045ae0", "name": "LegoStream::IsWriteMode", "matching": 1.0, "diff": ""}, {"address": "0x10045af0", "name": "LegoStream::IsReadMode", "matching": 1.0, "diff": ""}, {"address": "0x10099080", "name": "LegoMemoryStream::LegoMemoryStream", "matching": 1.0, "diff": ""}, {"address": "0x10099160", "name": "LegoMemoryStream::Read", "matching": 1.0, "diff": ""}, {"address": "0x10099190", "name": "LegoMemoryStream::Write", "matching": 1.0, "diff": ""}, {"address": "0x100991c0", "name": "LegoFileStream::LegoFileStream", "matching": 1.0, "diff": ""}, {"address": "0x10099250", "name": "LegoFileStream::~LegoFileStream", "matching": 1.0, "diff": ""}, {"address": "0x100992c0", "name": "LegoFileStream::Read", "matching": 1.0, "diff": ""}, {"address": "0x10099300", "name": "LegoFileStream::Write", "matching": 1.0, "diff": ""}, {"address": "0x10099340", "name": "LegoFileStream::Tell", "matching": 1.0, "diff": ""}, {"address": "0x10099370", "name": "LegoFileStream::Seek", "matching": 1.0, "diff": ""}, {"address": "0x100993a0", "name": "LegoFileStream::Open", "matching": 1.0, "diff": ""}, {"address": "0x100994a0", "name": "LegoMemoryStream::Tell", "matching": 1.0, "diff": ""}, {"address": "0x100994b0", "name": "LegoMemoryStream::Seek", "matching": 1.0, "diff": ""}, {"address": "0x1004eb40", "name": "LegoTexturePresenter::~LegoTexturePresenter", "matching": 1.0, "diff": ""}, {"address": "0x1004ebb0", "name": "LegoTexturePresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x1000ce50", "name": "LegoTexturePresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000ce60", "name": "LegoTexturePresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10083310", "name": "LegoUnkSaveDataWriter::WriteSaveData3", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,89 +1,89 @@\n\n push ebx\n push esi\n push edi\n mov ebx, <OFFSET1>\n push ebp\n-mov esi, <OFFSET2>\n-mov edi, dword ptr [esp + 0x14]\n-mov eax, dword ptr [edi]\n+mov edi, <OFFSET2>\n+mov esi, dword ptr [esp + 0x14]\n+mov eax, dword ptr [esi]\n mov ebp, dword ptr [eax + 8]\n push 4\n-lea eax, [esi + 0xc]\n+lea eax, [ebx + 0xc]\n push eax\n-mov ecx, edi\n+mov ecx, esi\n call ebp\n test eax, eax\n jne 0xcf\n push 4\n-lea eax, [esi + 0x10]\n+lea eax, [ebx + 0x10]\n push eax\n-mov ecx, edi\n+mov ecx, esi\n call ebp\n test eax, eax\n jne 0xcf\n push 1\n-lea eax, [esi + 0x14]\n+lea eax, [ebx + 0x14]\n push eax\n-mov ecx, edi\n+mov ecx, esi\n call ebp\n test eax, eax\n jne 0xcf\n push 1\n-lea eax, [esi + 0x38]\n+lea eax, [ebx + 0x38]\n push eax\n-mov ecx, edi\n+mov ecx, esi\n call ebp\n test eax, eax\n jne 0xcf\n push 1\n-lea eax, [esi + 0x44]\n+lea eax, [ebx + 0x44]\n push eax\n-mov ecx, edi\n+mov ecx, esi\n call ebp\n test eax, eax\n jne 0xcf\n push 1\n-lea eax, [esi + 0x5c]\n+lea eax, [ebx + 0x5c]\n push eax\n-mov ecx, edi\n+mov ecx, esi\n call ebp\n test eax, eax\n jne 0xcf\n push 1\n-lea eax, [esi + 0x8c]\n+lea eax, [ebx + 0x8c]\n push eax\n-mov ecx, edi\n+mov ecx, esi\n call ebp\n test eax, eax\n jne 0xcf\n push 1\n-lea eax, [esi + 0xa4]\n+lea eax, [ebx + 0xa4]\n push eax\n-mov ecx, edi\n+mov ecx, esi\n call ebp\n test eax, eax\n jne 0xcf\n push 1\n-lea eax, [esi + 0xec]\n+lea eax, [ebx + 0xec]\n push eax\n-mov ecx, edi\n+mov ecx, esi\n call ebp\n test eax, eax\n jne 0xcf\n push 1\n-lea eax, [esi + 0x104]\n+lea eax, [ebx + 0x104]\n push eax\n-mov ecx, edi\n+mov ecx, esi\n call ebp\n test eax, eax\n jne 0xcf\n-add esi, 0x108\n-cmp esi, <OFFSET3>\n+add ebx, 0x108\n+cmp ebx, <OFFSET3>\n jb 0x17\n-xor ebx, ebx\n-mov eax, ebx\n+xor edi, edi\n+mov eax, edi\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret 4"}, {"address": "0x1003e300", "name": "MatchActionString", "matching": 1.0, "diff": ""}, {"address": "0x1003eae0", "name": "ConvertHSVToRGB", "matching": 0.8951048951048951, "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 0x1b1\n-jmp dword ptr [eax*4 + 0x1003ec98]\n+jmp dword ptr [eax*4 + 0x1000e138]\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@@ -120,24 +120,24 @@\n\n mov ecx, dword ptr [esp + 0x34]\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 <OFFSET7>\n-adc cl, cl\n-jmp <OFFSET8>\n-adc bl, ch\n-jmp <OFFSET9>\n-adc byte ptr [<OFFSET10>], 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 0x1be\n-add edx, dword ptr [eax]\n+inc edi\n+loopne 0x1bb\n+adc byte ptr [ecx - 0x20], ch\n+add byte ptr [eax], dl\n+mov esp, eax\n+add byte ptr [eax], dl\n+lodsd eax, dword ptr [esi]\n+loopne 0x1c7\n+adc bh, cl\n+loopne 0x1cb\n+adc cl, dh\n+loopne 0x1cf\n+adc byte ptr [ebx], dl\n+loope 0x1d3"}, {"address": "0x1003ef40", "name": "SetAppCursor", "matching": 1.0, "diff": ""}, {"address": "0x10017c00", "name": "LegoVehicleBuildState::UnkStruct::UnkStruct", "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": "0x1007aa20", "name": "LegoVideoManager::LegoVideoManager", "matching": 1.0, "diff": ""}, {"address": "0x1007ab40", "name": "LegoVideoManager::~LegoVideoManager", "matching": 1.0, "diff": ""}, {"address": "0x1007b5e0", "name": "LegoVideoManager::Destroy", "matching": 0.3, "diff": "--- \n\n+++ \n\n@@ -1,20 +1,20 @@\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 0x1d\n+je 0x1e\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 0x37\n+call dword ptr [<OFFSET1>]\n+mov dword ptr [esi + 0x540], 0\n+mov eax, dword ptr [esi + 0x68]\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 0x52\n+call <OFFSET2>\n+add esp, 4\n+mov ecx, esi\n+call <OFFSET3>\n+mov eax, dword ptr [esi + 0x4f4]\n push eax\n+call <OFFSET2>\n+add esp, 4\n+pop esi\n+ret "}, {"address": "0x1007b6a0", "name": "LegoVideoManager::MoveCursor", "matching": 1.0, "diff": ""}, {"address": "0x1007c300", "name": "LegoVideoManager::EnableFullScreenMovie", "matching": 1.0, "diff": ""}, {"address": "0x1007c440", "name": "LegoVideoManager::SetSkyColor", "matching": 0.8979591836734694, "diff": "--- \n\n+++ \n\n@@ -12,13 +12,14 @@\n\n fmul dword ptr [<OFFSET1>]\n mov byte ptr [esp + 5], al\n call <OFFSET2>\n mov ecx, dword ptr [esi + 0x3c]\n mov byte ptr [esp + 6], al\n mov byte ptr [esp + 7], 0x84\n lea eax, [esp + 4]\n push eax\n call <OFFSET3>\n mov eax, dword ptr [esi + 0x3c]\n+pop esi\n mov byte ptr [eax + 0x40c], 1\n-mov ecx, dword ptr [esi + 0x68]\n-mov eax, dword ptr [esp + 0x14]\n+add esp, 4\n+ret 0xc"}, {"address": "0x100010a0", "name": "LegoWorld::VTable0x60", "matching": 1.0, "diff": ""}, {"address": "0x100159c0", "name": "SetIsWorldActive", "matching": 1.0, "diff": ""}, {"address": "0x1001d670", "name": "LegoWorld::VTable0x5c", "matching": 1.0, "diff": ""}, {"address": "0x1001d680", "name": "LegoWorld::VTable0x64", "matching": 1.0, "diff": ""}, {"address": "0x1001f5e0", "name": "LegoWorld::Notify", "matching": 1.0, "diff": ""}, {"address": "0x10022340", "name": "LegoWorld::Stop", "matching": 1.0, "diff": ""}, {"address": "0x1001d690", "name": "LegoWorld::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1001d6a0", "name": "LegoWorld::IsA", "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": "0x100357b0", "name": "Motorcycle::Motorcycle", "matching": 1.0, "diff": ""}, {"address": "0x10035840", "name": "Motorcycle::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10035850", "name": "Motorcycle::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100510c0", "name": "MxActionNotificationParam::Clone", "matching": 1.0, "diff": ""}, {"address": "0x10051270", "name": "MxEndActionNotificationParam::Clone", "matching": 1.0, "diff": ""}, {"address": "0x10051050", "name": "MxActionNotificationParam::~MxActionNotificationParam", "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 <OFFSET5>\n mov word ptr [ebp - 0x1c], di\n lea eax, [ebp - 0x2c]\n mov dword ptr [ebp - 4], <OFFSET6>\n mov dword ptr [ebp - 4], 1\n mov dword ptr [ebp - 0x14], eax\n call <OFFSET3>\n mov edi, dword ptr [eax + 4]\n mov esi, eax\n mov ebx, dword ptr [edi + 4]\n-cmp ebx, dword ptr [<OFFSET7>]\n+cmp dword ptr [<OFFSET7>], ebx\n je 0xac\n lea eax, [ebp - 0x14]\n lea ecx, [ebx + 0xc]\n push eax\n push ecx\n lea ecx, [esi + 1]\n call <OFFSET8>\n test eax, eax\n jne 0xa1\n mov edi, ebx\n mov ebx, dword ptr [ebx]\n jmp <OFFSET9>\n mov ebx, dword ptr [ebx + 8]\n-cmp ebx, dword ptr [<OFFSET7>]\n+cmp dword ptr [<OFFSET7>], ebx\n jne 0x87\n mov dword ptr [ebp - 0x18], edi\n cmp dword ptr [esi + 4], edi\n je 0xec\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": "0x100ad1c0", "name": "MxAtomId::operator=", "matching": 1.0, "diff": ""}, {"address": "0x100ad210", "name": "MxAtomId::GetCounter", "matching": 0.9954545454545455, "diff": "--- \n\n+++ \n\n@@ -29,22 +29,22 @@\n\n push eax\n call <OFFSET4>\n mov word ptr [esi + 0x10], di\n mov ecx, esi\n mov byte ptr [ebp - 4], bl\n jmp <OFFSET5>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET6>\n xor ecx, ecx\n mov byte ptr [ebp - 4], 0\n+mov dword ptr [ebp - 0x14], ecx\n mov eax, dword ptr [ebp + 0xc]\n-mov dword ptr [ebp - 0x14], ecx\n cmp eax, 1\n je 0x85\n cmp eax, 2\n je 0x8c\n cmp eax, 3\n jne 0x91\n call <OFFSET7>\n jmp <OFFSET8>\n call <OFFSET9>\n call <OFFSET10>"}, {"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": "0x100ad120", "name": "MxAtomIdCounterCompare::operator()", "matching": 1.0, "diff": ""}, {"address": "0x10029910", "name": "MxAudioManager::GetVolume", "matching": 1.0, "diff": ""}, {"address": "0x100b8d00", "name": "MxAudioManager::MxAudioManager", "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": "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": "0x100b8ed0", "name": "MxAutoLocker::MxAutoLocker", "matching": 1.0, "diff": ""}, {"address": "0x100b8ef0", "name": "MxAutoLocker::~MxAutoLocker", "matching": 1.0, "diff": ""}, {"address": "0x1007ea90", "name": "MxBackgroundAudioManager::MxBackgroundAudioManager", "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 0x13\n call <OFFSET1>\n mov esi, dword ptr [esp + 0x10]\n-mov ebx, <OFFSET2>\n+mov edi, <OFFSET2>\n push 0\n mov eax, dword ptr [esi]\n push eax\n call <OFFSET3>\n mov ecx, eax\n call <OFFSET4>\n test eax, eax\n je 0x3b\n push esi\n-mov ecx, edi\n-xor ebx, ebx\n+mov ecx, ebx\n+xor edi, edi\n call <OFFSET5>\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.7579908675799086, "diff": "--- \n\n+++ \n\n@@ -4,49 +4,44 @@\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 0x128\n+jne 0x114\n mov edx, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [edx + 0x138]\n test ecx, ecx\n-je 0x18e\n-cmp word ptr [edx + 0x148], 0\n+je 0x179\n+mov ax, word ptr [edx + 0x148]\n mov esi, 0x1e\n-jne 0x57\n-mov edx, dword ptr [ebp - 0x10]\n-mov esi, dword ptr [edx + 0x144]\n+test ax, ax\n+jne 0x53\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 0xa7\n+jae 0x93\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 0x93\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 0x7f\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 <OFFSET2>\n push esi\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x60]\n mov edx, dword ptr [ebp - 0x10]\n@@ -69,38 +64,50 @@\n\n mov dword ptr [ebp - 4], <OFFSET4>\n call <OFFSET5>\n mov edx, dword ptr [ebp - 0x10]\n mov dword ptr [edx + 0x13c], 0\n jmp <OFFSET2>\n mov eax, <OFFSET6>\n jmp <OFFSET7>\n lea ecx, [ebp - 0x14]\n jmp <OFFSET8>\n cmp dword ptr [ecx + 0x1c], 0\n-je 0x18e\n+je 0x179\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 0x17c\n+je 0x167\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 0x16b\n+xor eax, eax\n+mov esi, dword ptr [edx + 0x140]\n+cmp ecx, esi\n+je 0x156\n+sub ecx, esi\n+cmp ecx, -1\n+jbe 0x156\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 <OFFSET2>\n mov eax, dword ptr [edx + 0xa0]\n mov ecx, dword ptr [eax + 0x1c]\n push ecx\n+call <OFFSET9>\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 0x75\n+je 0x79\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 0x27\n-mov edx, dword ptr [esi + 0x144]\n-cmp edx, eax\n-jle 0x47\n+mov ecx, dword ptr [esi + 0x144]\n+cmp ecx, eax\n+jbe 0x45\n+add eax, dword ptr [esi + 0x140]\n+cmp ecx, eax\n+ja 0x37\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 0x3f\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 0x61\n+sub eax, dword ptr [esi + 0x140]\n+cmp ecx, eax\n+jb 0x53\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 0x63\n-sub eax, dword ptr [esi + 0x140]\n-cmp eax, edx\n-jg 0x5b\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": "0x1007eb70", "name": "MxBackgroundAudioManager::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1007eb80", "name": "MxBackgroundAudioManager::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1004e0d0", "name": "MxBitmap::vtable28", "matching": 1.0, "diff": ""}, {"address": "0x100bc980", "name": "MxBitmap::MxBitmap", "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": 0.9868421052631579, "diff": "--- \n\n+++ \n\n@@ -40,22 +40,22 @@\n\n add eax, 3\n mov esi, dword ptr [ebp + 0x14]\n and eax, <OFFSET3>\n imul eax, ecx\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+xor esi, esi\n mov eax, dword ptr [ebx + 8]\n-xor esi, esi\n mov dword ptr [ebx + 0xc], eax\n add eax, 0x28\n mov dword ptr [ebx + 0x10], eax\n test esi, esi\n je 0xc4\n mov eax, dword ptr [ebx + 8]\n test eax, eax\n je 0xad\n push eax\n call <OFFSET4>"}, {"address": "0x100bcd10", "name": "MxBitmap::Read", "matching": 1.0, "diff": ""}, {"address": "0x100bcd60", "name": "MxBitmap::LoadFile", "matching": 1.0, "diff": ""}, {"address": "0x100bd1c0", "name": "MxBitmap::CreatePalette", "matching": 0.9104477611940298, "diff": "--- \n\n+++ \n\n@@ -27,31 +27,31 @@\n\n mov esi, eax\n mov eax, 0\n test esi, esi\n je 0x61\n mov eax, dword ptr [edi + 0x10]\n mov ecx, esi\n push eax\n call <OFFSET4>\n mov dword ptr [ebp - 4], <OFFSET5>\n test eax, eax\n-jne 0x91\n-jmp <OFFSET2>\n-mov eax, <OFFSET6>\n-jmp <OFFSET7>\n+je 0x93\n+jmp <OFFSET6>\n+mov eax, <OFFSET7>\n+jmp <OFFSET8>\n mov eax, dword ptr [ebp - 0x10]\n push eax\n-call <OFFSET8>\n+call <OFFSET9>\n add esp, 4\n ret \n mov ecx, dword ptr [edi + 0x1c]\n-call <OFFSET9>\n+call <OFFSET10>\n test eax, eax\n je 0x93\n mov bl, 1\n test bl, bl\n jne 0xa5\n test eax, eax\n je 0xa5\n push 1\n mov edx, dword ptr [eax]\n mov ecx, eax"}, {"address": "0x100bd280", "name": "MxBitmap::ImportPalette", "matching": 1.0, "diff": ""}, {"address": "0x100bd2d0", "name": "MxBitmap::SetBitDepth", "matching": 0.850828729281768, "diff": "--- \n\n+++ \n\n@@ -46,46 +46,45 @@\n\n push ecx\n mov ecx, esi\n call <OFFSET4>\n mov ecx, dword ptr [esi + 0x1c]\n test ecx, ecx\n je 0x82\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov dword ptr [esi + 0x1c], 0\n-jmp <OFFSET5>\n+jmp <OFFSET3>\n push 0x414\n mov edi, 0\n-call <OFFSET6>\n+call <OFFSET5>\n add esp, 4\n mov dword ptr [ebp - 0x10], eax\n mov dword ptr [ebp - 4], 0\n test eax, eax\n je 0xb9\n mov eax, dword ptr [esi + 0x10]\n mov ecx, dword ptr [ebp - 0x10]\n push eax\n-call <OFFSET7>\n+call <OFFSET6>\n mov edi, eax\n mov dword ptr [ebp - 4], <OFFSET2>\n test edi, edi\n je 0x31\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+movzx edx, cx\n+mov word ptr [eax + edx*2], cx\n+inc cx\n+cmp cx, 0x100\n jb 0xd1\n mov al, byte ptr [ebp + 8]\n mov byte ptr [esi + 0x18], al\n-jmp <OFFSET8>\n-mov eax, <OFFSET9>\n-jmp <OFFSET10>\n+jmp <OFFSET7>\n+mov eax, <OFFSET8>\n+jmp <OFFSET9>\n mov eax, dword ptr [ebp - 0x10]\n push eax\n-call <OFFSET11>\n+call <OFFSET10>\n add esp, 4\n ret \n-int3 "}, {"address": "0x100bd3e0", "name": "MxBitmap::StretchBits", "matching": 1.0, "diff": ""}, {"address": "0x100bd450", "name": "MxBitmap::ImportColorsToPalette", "matching": 0.41379310344827586, "diff": "--- \n\n+++ \n\n@@ -1,57 +1,59 @@\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 ecx, dword ptr [ebp + 0xc]\n-sub esp, 0x818\n+sub esp, 0x814\n test ecx, ecx\n-mov dword ptr [ebp - 0x10], <OFFSET2>\n push ebx\n-je 0x51\n-lea eax, [ebp - 0x410]\n+je 0x4c\n+lea eax, [ebp - 0x40c]\n push eax\n-call <OFFSET3>\n+call <OFFSET2>\n test eax, eax\n-je 0x85\n-mov eax, dword ptr [ebp - 0x10]\n+je 0x87\n+mov eax, <OFFSET3>\n mov ecx, dword ptr [ebp - 0xc]\n+pop ebx\n mov dword ptr fs:[0], ecx\n-pop ebx\n mov esp, ebp\n pop ebp\n ret 8\n-lea ecx, [ebp - 0x824]\n+lea ecx, [ebp - 0x820]\n call <OFFSET4>\n-lea eax, [ebp - 0x410]\n-lea ecx, [ebp - 0x824]\n+lea eax, [ebp - 0x40c]\n+lea ecx, [ebp - 0x820]\n mov dword ptr [ebp - 4], 0\n push eax\n-call <OFFSET3>\n-mov dword ptr [ebp - 4], <OFFSET2>\n+call <OFFSET2>\n+mov dword ptr [ebp - 4], <OFFSET3>\n test eax, eax\n-jne 0xc0\n+je 0x82\n call <OFFSET5>\n-mov eax, dword ptr [ebp + 8]\n-lea ecx, [ebp - 0x410]\n-add eax, 2\n-xor ebx, ebx\n-mov dl, byte ptr [ecx]\n-add eax, 4\n-add ecx, 4\n-mov byte ptr [eax - 4], dl\n-mov dl, byte ptr [ecx - 3]\n-mov byte ptr [eax - 5], dl\n-mov dl, byte ptr [ecx - 2]\n-mov byte ptr [eax - 6], dl\n-lea edx, [ebp - 0x10]\n-mov byte ptr [eax - 3], bl\n-cmp ecx, edx\n-jb 0x93\n-mov dword ptr [ebp - 0x10], 0\n jmp <OFFSET6>\n call <OFFSET5>\n-jmp <OFFSET6>\n-mov eax, <OFFSET7>\n+mov ecx, dword ptr [ebp + 8]\n+lea eax, [ebp - 0x40c]\n+add ecx, 2\n+xor ebx, ebx\n+mov dl, byte ptr [eax]\n+add ecx, 4\n+add eax, 4\n+mov byte ptr [ecx - 4], dl\n+mov dl, byte ptr [eax - 3]\n+mov byte ptr [ecx - 5], dl\n+mov dl, byte ptr [eax - 2]\n+mov byte ptr [ecx - 6], dl\n+lea edx, [ebp - 0xc]\n+mov byte ptr [ecx - 3], bl\n+cmp eax, edx\n+jb 0x95\n+xor eax, eax\n+jmp <OFFSET7>\n+mov eax, <OFFSET8>\n+jmp <OFFSET9>\n+lea ecx, [ebp - 0x820]\n+jmp <OFFSET10>"}, {"address": "0x10073f10", "name": "MxCompositeMediaPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10073f20", "name": "MxCompositeMediaPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1000caf0", "name": "MxCompositePresenter::VTable0x64", "matching": 1.0, "diff": ""}, {"address": "0x100b60b0", "name": "MxCompositePresenter::MxCompositePresenter", "matching": 0.7961165048543689, "diff": "--- \n\n+++ \n\n@@ -1,52 +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, 8\n+sub esp, 4\n push esi\n-mov dword ptr [ebp - 0x14], ecx\n+mov dword ptr [ebp - 0x10], ecx\n mov esi, ecx\n call <OFFSET2>\n mov dword ptr [ebp - 4], 0\n lea ecx, [esi + 0x20]\n call <OFFSET3>\n mov byte ptr [ebp - 4], 1\n mov ecx, esi\n mov dword ptr [esi], <OFFSET4>\n call <OFFSET5>\n mov al, byte ptr [ebp - 0xd]\n push 0xc\n mov dword ptr [ebp - 4], 2\n mov byte ptr [esi + 0x40], al\n call <OFFSET6>\n add esp, 4\n mov dword ptr [eax], eax\n-mov byte ptr [ebp - 4], 5\n+mov dword ptr [eax + 4], eax\n push esi\n-mov dword ptr [eax + 4], eax\n mov dword ptr [esi + 0x44], eax\n mov dword ptr [esi], <OFFSET7>\n mov dword ptr [esi + 0x48], 0\n call <OFFSET8>\n mov ecx, eax\n call <OFFSET9>\n mov dword ptr [ebp - 4], <OFFSET10>\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 ecx, dword ptr [ebp - 0x14]\n-add ecx, 0x40\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n jmp <OFFSET11>\n-mov ecx, dword ptr [ebp - 0x14]\n-add ecx, 0x40\n+mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET12>\n-mov ecx, dword ptr [ebp - 0x14]\n-add ecx, 0x40\n-jmp <OFFSET13>\n+mov eax, <OFFSET13>\n+jmp <OFFSET14>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET15>"}, {"address": "0x100b6390", "name": "MxCompositePresenter::~MxCompositePresenter", "matching": 0.7692307692307693, "diff": "--- \n\n+++ \n\n@@ -1,26 +1,26 @@\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], <OFFSET2>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n-mov dword ptr [ebp - 4], 1\n+mov dword ptr [ebp - 4], 0\n push ecx\n mov dword ptr [ebp - 0x10], ecx\n call <OFFSET3>\n mov ecx, eax\n call <OFFSET4>\n-mov byte ptr [ebp - 4], 0\n-call <OFFSET5>\n-mov dword ptr [ebp - 4], <OFFSET6>\n-call <OFFSET7>\n+mov dword ptr [ebp - 4], <OFFSET5>\n+call <OFFSET6>\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 eax, <OFFSET7>\n+jmp <OFFSET8>\n mov ecx, dword ptr [ebp - 0x10]\n-add ecx, 0x40\n+jmp <OFFSET9>"}, {"address": "0x100b6210", "name": "MxCompositePresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b6220", "name": "MxCompositePresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10043f50", "name": "MxControlPresenter::MxControlPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10044110", "name": "MxControlPresenter::~MxControlPresenter", "matching": 1.0, "diff": ""}, {"address": "0x10044610", "name": "MxControlPresenter::ReadyTickle", "matching": 1.0, "diff": ""}, {"address": "0x10044000", "name": "MxControlPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10044010", "name": "MxControlPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10001f70", "name": "MxCore::Tickle", "matching": 1.0, "diff": ""}, {"address": "0x100ae1a0", "name": "MxCore::MxCore", "matching": 1.0, "diff": ""}, {"address": "0x100ae1e0", "name": "MxCore::~MxCore", "matching": 1.0, "diff": ""}, {"address": "0x100ae1f0", "name": "MxCore::Notify", "matching": 1.0, "diff": ""}, {"address": "0x100140d0", "name": "MxCore::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100144c0", "name": "MxCore::ClassName", "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": "0x1009b0a0", "name": "MxDirect3D::MxDirect3D", "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::Clear", "matching": 1.0, "diff": ""}, {"address": "0x1009b2d0", "name": "MxDirect3D::CreateIDirect3D", "matching": 1.0, "diff": ""}, {"address": "0x1009b8b0", "name": "MxDeviceModeFinder::MxDeviceModeFinder", "matching": 1.0, "diff": ""}, {"address": "0x1009b8d0", "name": "MxDeviceModeFinder::~MxDeviceModeFinder", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,15 +1,15 @@\n\n push esi\n push edi\n-mov edi, dword ptr [ecx + 0xe0]\n-mov esi, ecx\n-test edi, edi\n+mov esi, dword ptr [ecx + 0xe0]\n+mov edi, ecx\n+test esi, esi\n je 0x28\n-mov ecx, edi\n+mov ecx, esi\n call <OFFSET1>\n-push edi\n+push esi\n call <OFFSET2>\n-mov dword ptr [esi + 0xe0], 0\n+mov dword ptr [edi + 0xe0], 0\n add esp, 4\n pop edi\n pop esi\n ret "}, {"address": "0x1009c4c0", "name": "MxDirect3D::BuildErrorString", "matching": 1.0, "diff": ""}, {"address": "0x1009c6c0", "name": "MxDeviceEnumerate::_DoEnumerate", "matching": 1.0, "diff": ""}, {"address": "0x1009d490", "name": "MxDirectDraw::MxDirectDraw", "matching": 1.0, "diff": ""}, {"address": "0x1009d530", "name": "MxDirectDraw::~MxDirectDraw", "matching": 1.0, "diff": ""}, {"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": 1.0, "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 0x3b\n lea ecx, [edi + 0x57]\n mov eax, 0x84\n mov byte ptr [ecx], 0x44\n add ecx, 4\n dec eax\n jne 0x4c\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 0x60\n lea ecx, [edi + 0x407]\n mov eax, 0xa\n mov byte ptr [ecx], 0x80\n add ecx, 4\n dec eax\n jne 0x74\n mov edx, dword ptr [esp + 0x14]\n test edx, edx\n je 0xbb"}, {"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": ""}, {"address": "0x1009d9d0", "name": "MxDirectDraw::IsSupportedMode", "matching": 0.75, "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 0x37\n-mov eax, dword ptr [eax + 4]\n-mov ecx, dword ptr [esp + 0x10]\n-mov edx, dword ptr [esp + 0x14]\n-mov esi, dword ptr [esp + 0x18]\n-cmp dword ptr [eax], ecx\n+mov edx, dword ptr [eax + 4]\n+mov ecx, dword ptr [esp + 0x18]\n+mov eax, dword ptr [esp + 0x14]\n+mov esi, dword ptr [esp + 0x10]\n+cmp dword ptr [edx], esi\n jne 0x2f\n-cmp dword ptr [eax + 4], edx\n+cmp dword ptr [edx + 4], eax\n jne 0x2f\n-cmp dword ptr [eax + 8], esi\n+cmp dword ptr [edx + 8], ecx\n je 0x3f\n-add eax, 0xc\n+add edx, 0xc\n inc edi\n cmp edi, ebx\n jl 0x21\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.8699453551912568, "diff": "--- \n\n+++ \n\n@@ -143,22 +143,22 @@\n\n je 0x507\n mov eax, <OFFSET3>\n ret 4\n cmp eax, <OFFSET44>\n jg 0x2c4\n je 0x537\n add eax, <OFFSET45>\n cmp eax, 7\n ja 0x1c\n xor ecx, ecx\n-mov cl, byte ptr [eax + 0x1009ef34]\n-jmp dword ptr [ecx*4 + 0x1009ef20]\n+mov cl, byte ptr [eax + 0x100143b4]\n+jmp dword ptr [ecx*4 + 0x100143a0]\n cmp eax, <OFFSET46>\n jg 0x2e4\n je 0x547\n cmp eax, <OFFSET47>\n je 0x53f\n mov eax, <OFFSET3>\n ret 4\n cmp eax, <OFFSET48>\n jg 0x304\n je 0x557\n@@ -200,21 +200,21 @@\n\n cmp eax, <OFFSET59>\n je 0x59f\n mov eax, <OFFSET3>\n ret 4\n test eax, eax\n jg 0x1c\n je 0x697\n add eax, <OFFSET60>\n cmp eax, 0x1c\n ja 0x1c\n-jmp dword ptr [eax*4 + 0x1009ef3c]\n+jmp dword ptr [eax*4 + 0x100143bc]\n mov eax, <OFFSET61>\n ret 4\n mov eax, <OFFSET62>\n ret 4\n mov eax, <OFFSET63>\n ret 4\n mov eax, <OFFSET64>\n ret 4\n mov eax, <OFFSET65>\n ret 4\n@@ -384,58 +384,91 @@\n\n ret 4\n mov eax, <OFFSET147>\n ret 4\n mov eax, <OFFSET148>\n ret 4\n mov eax, <OFFSET149>\n ret 4\n mov eax, <OFFSET150>\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 <OFFSET151>\n-add dword ptr [edx + eax], eax\n+pop ss\n+inc edx\n+add dword ptr [eax], edx\n+pop ds\n+inc edx\n+add dword ptr [eax], edx\n+daa \n+inc edx\n+add dword ptr [eax], edx\n+das \n+inc edx\n+add dword ptr [eax], edx\n+sbb al, 0x3d\n+add dword ptr [eax], edx\n+add byte ptr [ecx + eax], al\n+add al, 2\n add al, 4\n-add ebp, dword ptr [edi]\n-out dx, al\n-or dword ptr [eax], edx\n+add ebp, dword ptr [edi - 0x48effebe]\n+inc edx\n+add dword ptr [eax], edx\n+mov edi, <OFFSET151>\n+inc edx\n+add dword ptr [eax], edx\n+iretd \n+inc edx\n+add dword ptr [eax], edx\n+xlatb \n+inc edx\n+add dword ptr [eax], edx\n+fild word ptr [edx + 1]\n+adc bh, ah\n+inc edx\n+add dword ptr [eax], edx\n+out dx, eax\n+inc edx\n+add dword ptr [eax], edx\n+test dword ptr [edx + 1], 0x142ff10\n+adc byte ptr [edi], al\n+inc ebx\n+add dword ptr [eax], edx\n+cmovae eax, dword ptr [ecx]\n+adc byte ptr [edi], dl\n+inc ebx\n+add dword ptr [eax], edx\n+pop ds\n+inc ebx\n+add dword ptr [eax], edx\n+daa \n+inc ebx\n+add dword ptr [eax], edx\n+das \n+inc ebx\n+add dword ptr [eax], edx\n aaa \n-out dx, al\n-or dword ptr [eax], edx\n+inc ebx\n+add dword ptr [eax], edx\n aas \n-out dx, al\n-or dword ptr [eax], edx\n+inc ebx\n+add dword ptr [eax], edx\n inc edi\n-out dx, al\n-or dword ptr [eax], edx\n+inc ebx\n+add dword ptr [eax], edx\n dec edi\n-out dx, al\n-or dword ptr [eax], edx\n+inc ebx\n+add dword ptr [eax], edx\n push edi\n-out dx, al\n-or dword ptr [eax], edx\n+inc ebx\n+add 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+inc ebx\n+add dword ptr [eax], edx\n+inc ebx\n+add dword ptr [eax], edx\n outsd dx, dword ptr [esi]\n-out dx, al\n-or dword ptr [eax], edx\n-ja 0x6d0\n-or dword ptr [eax], edx\n-jg 0x6d4\n-or dword ptr [eax], edx\n-xchg esi, ebp\n-or dword ptr [eax], edx\n+inc ebx\n+add dword ptr [eax], edx\n+ja 0x765\n+add dword ptr [eax], edx\n+jg 0x769\n+add dword ptr [eax], edx\n+xchg dword ptr [ebx + 1], eax"}, {"address": "0x1009efb0", "name": "MxDirectDraw::DeviceModesInfo::DeviceModesInfo", "matching": 1.0, "diff": ""}, {"address": "0x1009efd0", "name": "MxDirectDraw::DeviceModesInfo::~DeviceModesInfo", "matching": 1.0, "diff": ""}, {"address": "0x100c7120", "name": "MxDiskStreamController::MxDiskStreamController", "matching": 0.7714285714285715, "diff": "--- \n\n+++ \n\n@@ -1,85 +1,85 @@\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+lea edi, [ecx + 0x64]\n+mov esi, ecx\n xor ebx, ebx\n-lea esi, [ecx + 0x64]\n-mov dword ptr [ebp - 0x14], ecx\n-mov edi, ecx\n call <OFFSET2>\n mov al, byte ptr [ebp - 0xd]\n push ebx\n push ebx\n-mov ecx, esi\n+mov ecx, edi\n mov dword ptr [ebp - 4], ebx\n-mov byte ptr [esi], al\n+mov byte ptr [edi], al\n call <OFFSET3>\n push ebx\n-mov dword ptr [edi + 0x68], eax\n+mov dword ptr [esi + 0x68], eax\n mov al, byte ptr [ebp - 0xd]\n push ebx\n-lea ecx, [edi + 0x74]\n-mov dword ptr [edi + 0x6c], ebx\n+lea ecx, [esi + 0x74]\n+mov dword ptr [esi + 0x6c], ebx\n mov byte ptr [ebp - 4], 4\n-lea esi, [edi + 0x80]\n-mov byte ptr [edi + 0x74], al\n+lea edi, [esi + 0x80]\n+mov byte ptr [esi + 0x74], al\n call <OFFSET4>\n push ebx\n-mov dword ptr [edi + 0x78], eax\n+mov dword ptr [esi + 0x78], eax\n mov al, byte ptr [ebp - 0xd]\n push ebx\n-mov ecx, esi\n-mov dword ptr [edi + 0x7c], ebx\n+mov ecx, edi\n+mov dword ptr [esi + 0x7c], ebx\n mov byte ptr [ebp - 4], 6\n-mov byte ptr [esi], al\n+mov byte ptr [edi], al\n call <OFFSET3>\n push ebx\n-mov dword ptr [edi + 0x84], eax\n+mov dword ptr [esi + 0x84], eax\n mov al, byte ptr [ebp - 0xd]\n push ebx\n-lea ecx, [edi + 0x90]\n-mov dword ptr [edi + 0x88], ebx\n+lea ecx, [esi + 0x90]\n+mov dword ptr [esi + 0x88], ebx\n mov byte ptr [ebp - 4], 0xa\n-mov byte ptr [edi + 0x90], al\n+mov byte ptr [esi + 0x90], al\n call <OFFSET3>\n-lea ecx, [edi + 0x9c]\n-lea esi, [edi + 0xb8]\n-mov dword ptr [edi + 0x94], eax\n-mov dword ptr [edi + 0x98], ebx\n+lea ecx, [esi + 0x9c]\n+lea edi, [esi + 0xb8]\n+mov dword ptr [esi + 0x94], eax\n+mov dword ptr [esi + 0x98], ebx\n mov byte ptr [ebp - 4], 0xe\n call <OFFSET5>\n mov byte ptr [ebp - 4], 0xf\n mov al, byte ptr [ebp - 0xd]\n-mov byte ptr [esi], al\n+mov byte ptr [edi], al\n push ebx\n push ebx\n-mov ecx, esi\n+mov ecx, edi\n call <OFFSET3>\n-mov dword ptr [edi + 0xbc], eax\n-mov dword ptr [edi + 0xc0], ebx\n+mov dword ptr [esi + 0xbc], eax\n+mov dword ptr [esi + 0xc0], ebx\n mov byte ptr [ebp - 4], 0x13\n-mov word ptr [edi + 0x8c], bx\n-mov eax, edi\n-mov dword ptr [ebp - 4], <OFFSET6>\n+mov word ptr [esi + 0x8c], bx\n+mov eax, esi\n+pop edi\n+mov dword ptr [esi], <OFFSET6>\n+mov dword ptr [ebp - 4], <OFFSET7>\n mov ecx, dword ptr [ebp - 0xc]\n-mov dword ptr [edi], <OFFSET7>\n+pop esi\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 ecx, dword ptr [ebp - 0x14]\n add ecx, 0xb8\n jmp <OFFSET8>\n mov ecx, dword ptr [ebp - 0x14]\n add ecx, 0xb8\n jmp <OFFSET9>"}, {"address": "0x100c7330", "name": "list<MxDSAction *,allocator<MxDSAction *> >::_Buynode", "matching": 1.0, "diff": ""}, {"address": "0x100c7420", "name": "list<MxDSBuffer *,allocator<MxDSBuffer *> >::~list<MxDSBuffer *,allocator<MxDSBuffer *> >", "matching": 1.0, "diff": ""}, {"address": "0x100c7490", "name": "list<MxDSBuffer *,allocator<MxDSBuffer *> >::_Buynode", "matching": 1.0, "diff": ""}, {"address": "0x100c74e0", "name": "List<MxDSBuffer *>::~List<MxDSBuffer *>", "matching": 1.0, "diff": ""}, {"address": "0x100c7790", "name": "MxDiskStreamController::Open", "matching": 0.6875, "diff": "--- \n\n+++ \n\n@@ -13,68 +13,68 @@\n\n push eax\n lea ecx, [ebp - 0x14]\n call <OFFSET2>\n mov eax, dword ptr [ebp + 8]\n mov ecx, esi\n mov dword ptr [ebp - 4], 0\n push eax\n call <OFFSET3>\n mov dword ptr [ebp - 0x10], eax\n test eax, eax\n-jne 0xaf\n+jne 0x79\n push 0x60\n call <OFFSET4>\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 0x67\n mov ecx, edi\n call <OFFSET5>\n mov byte ptr [ebp - 4], 0\n mov dword ptr [esi + 0x28], eax\n test eax, eax\n-jne 0x7b\n+jne 0x9a\n mov dword ptr [ebp - 0x10], <OFFSET6>\n-jmp <OFFSET7>\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 0xa0\n-mov ecx, dword ptr [esi + 0x28]\n-test ecx, ecx\n-je 0x97\n-push 1\n-mov eax, dword ptr [ecx]\n-call dword ptr [eax]\n-mov dword ptr [esi + 0x28], 0\n-jmp <OFFSET7>\n-call <OFFSET8>\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], <OFFSET6>\n-call <OFFSET9>\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+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 0xbf\n+mov ecx, dword ptr [esi + 0x28]\n+test ecx, ecx\n+je 0xb6\n+push 1\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax]\n+mov dword ptr [esi + 0x28], 0\n+jmp <OFFSET8>\n+call <OFFSET9>\n+mov ecx, eax\n+push 0xa\n+push esi\n+mov eax, dword ptr [ecx]\n+call dword ptr [eax + 0x14]\n+jmp <OFFSET8>\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call <OFFSET10>\n add esp, 4\n ret \n mov eax, <OFFSET11>\n jmp <OFFSET12>\n lea ecx, [ebp - 0x14]\n jmp <OFFSET13>"}, {"address": "0x100c7880", "name": "MxDiskStreamController::vtable0x18", "matching": 1.0, "diff": ""}, {"address": "0x100c7960", "name": "MxDiskStreamController::vtable0x34", "matching": 1.0, "diff": ""}, {"address": "0x100c7360", "name": "MxDiskStreamController::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c7370", "name": "MxDiskStreamController::IsA", "matching": 1.0, "diff": ""}, {"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": "0x100d13d0", "name": "MxDiskStreamProvider::SetResourceToGet", "matching": 0.9655172413793104, "diff": "--- \n\n+++ \n\n@@ -54,21 +54,21 @@\n\n je 0xc7\n push 0\n mov eax, dword ptr [ebp - 0x2c]\n push eax\n mov ecx, esi\n call <OFFSET13>\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 0x1b7\n+je 0x1b9\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 0x187\n push <OFFSET4>\n lea eax, [ebp - 0x24]\n push eax\n mov ecx, dword ptr [ebp + 8]\n@@ -116,28 +116,29 @@\n\n jmp <OFFSET20>\n lea ecx, [ebp - 0x24]\n jmp <OFFSET20>\n mov ecx, dword ptr [ebp - 0x10]\n push 0x64\n mov byte ptr [ecx + 0x34], 1\n mov eax, dword ptr [ecx + 0x2c]\n add ecx, 0x2c\n push 0\n call dword ptr [eax]\n+mov esi, eax\n mov ecx, dword ptr [ebp - 0x10]\n push ecx\n add ecx, 0x10\n call <OFFSET21>\n-test eax, eax\n-jne 0x1b7\n+test esi, esi\n+jne 0x1b9\n cmp dword ptr [ebp + 8], 0\n-je 0x1b7\n+je 0x1b9\n mov dword ptr [ebp - 0x14], 0\n mov dword ptr [ebp - 4], <OFFSET2>\n call <OFFSET22>\n mov eax, dword ptr [ebp - 0x14]\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@@ -149,12 +150,10 @@\n\n lea ecx, [ebp - 0x54]\n jmp <OFFSET20>\n lea ecx, [ebp - 0x44]\n jmp <OFFSET20>\n lea ecx, [ebp - 0x24]\n jmp <OFFSET20>\n mov eax, <OFFSET24>\n jmp <OFFSET25>\n lea ecx, [ebp - 0x34]\n jmp <OFFSET20>\n-int3 \n-int3 "}, {"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 0x29\n-lea esi, [edi + 0x2c]\n+lea edi, [esi + 0x2c]\n push -1\n+mov ecx, edi\n+call <OFFSET1>\n+cmp byte ptr [esi + 0x35], 0\n+je 0x23\n mov ecx, esi\n-call <OFFSET1>\n-cmp byte ptr [edi + 0x35], 0\n-je 0x23\n-mov ecx, edi\n call <OFFSET2>\n-cmp byte ptr [edi + 0x34], 0\n+cmp byte ptr [esi + 0x34], 0\n jne 0xd\n xor eax, eax\n pop edi\n pop esi\n ret "}, {"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": "0x100d1160", "name": "MxDiskStreamProvider::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100d1170", "name": "MxDiskStreamProvider::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100ba500", "name": "MxDisplaySurface::MxDisplaySurface", "matching": 1.0, "diff": ""}, {"address": "0x100ba5a0", "name": "MxDisplaySurface::~MxDisplaySurface", "matching": 1.0, "diff": ""}, {"address": "0x100ba610", "name": "MxDisplaySurface::Reset", "matching": 1.0, "diff": ""}, {"address": "0x100ba790", "name": "MxDisplaySurface::Init", "matching": 1.0, "diff": ""}, {"address": "0x100ba7f0", "name": "MxDisplaySurface::Create", "matching": 0.9858490566037735, "diff": "--- \n\n+++ \n\n@@ -63,24 +63,24 @@\n\n push ebx\n call dword ptr [edi + 0x30]\n test eax, eax\n jne 0x286\n mov al, byte ptr [esi + 0x20]\n and al, 0x20\n cmp al, 1\n sbb ecx, ecx\n and ecx, <OFFSET7>\n add ecx, 0x10\n-cmp ebp, dword ptr [esp + 0x28]\n+cmp dword ptr [esp + 0x28], ebp\n jne 0xf7\n mov eax, dword ptr [esp + 0x10]\n-cmp eax, dword ptr [esp + 0x24]\n+cmp dword ptr [esp + 0x24], eax\n jne 0xf7\n cmp ecx, dword ptr [esp + 0x70]\n je 0x10c\n mov eax, dword ptr [esp + 0x10]\n push ecx\n push eax\n push ebp\n push ebx\n mov ebp, dword ptr [ebx]\n call dword ptr [ebp + 0x54]\n@@ -137,22 +137,22 @@\n\n test eax, eax\n jne 0x286\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 0x215\n mov dword ptr [esp + 0x84], 0x2840\n lea ecx, [esi + 0x30]\n push 0"}, {"address": "0x100baa90", "name": "MxDisplaySurface::Clear", "matching": 1.0, "diff": ""}, {"address": "0x100bbc10", "name": "MxDisplaySurface::GetDC", "matching": 1.0, "diff": ""}, {"address": "0x100bbc40", "name": "MxDisplaySurface::ReleaseDC", "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": "0x100ada40", "name": "MxDSAction::SetUnkTimingField", "matching": 1.0, "diff": ""}, {"address": "0x100ada50", "name": "MxDSAction::GetUnkTimingField", "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 0x3e\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 0x62\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 0x86\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 <OFFSET1>\n mov ecx, dword ptr [edi + 0x84]\n mov dword ptr [esi + 0x84], ecx\n mov edx, dword ptr [edi + 0x88]"}, {"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 <OFFSET1>\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 <OFFSET1>\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": ""}, {"address": "0x100adcd0", "name": "MxDSAction::GetElapsedTime", "matching": 1.0, "diff": ""}, {"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 <OFFSET1>\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 0x104\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": "0x100ad980", "name": "MxDSAction::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100ad990", "name": "MxDSAction::IsA", "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": "0x100c9d20", "name": "MxCollection<MxDSAction *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c9d30", "name": "MxList<MxDSAction *>::~MxList<MxDSAction *>", "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], <OFFSET2>\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 0x50\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 <OFFSET3>\n add esp, 4\n-mov esi, edi\n+mov edi, esi\n jmp <OFFSET4>\n xor eax, eax\n mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 4], <OFFSET5>\n mov dword ptr [ecx + 8], eax\n mov dword ptr [ecx + 0x14], eax\n mov dword ptr [ecx + 0x10], eax\n call <OFFSET6>\n mov eax, dword ptr [ebp - 0xc]\n pop edi"}, {"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": "0x100c8ff0", "name": "MxDSAnim::MxDSAnim", "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 0x13\n mov eax, edi\n pop edi\n pop esi\n ret 4\n push esi\n mov ecx, edi\n call <OFFSET1>\n push esi\n mov ecx, edi"}, {"address": "0x100c9230", "name": "MxDSAnim::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 0xb8\n call <OFFSET2>\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 0x4b\n mov ecx, edi\n call <OFFSET3>\n-mov ebx, eax\n+mov esi, eax\n mov dword ptr [ebp - 4], <OFFSET4>\n-test ebx, ebx\n+test esi, esi\n je 0x5e\n-push esi\n-mov ecx, ebx\n+push ebx\n+mov ecx, esi\n call <OFFSET5>\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, <OFFSET6>\n jmp <OFFSET7>"}, {"address": "0x100c9060", "name": "MxDSAnim::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c9070", "name": "MxDSAnim::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c6470", "name": "MxDSBuffer::MxDSBuffer", "matching": 1.0, "diff": ""}, {"address": "0x100c6530", "name": "MxDSBuffer::~MxDSBuffer", "matching": 0.3170731707317073, "diff": "--- \n\n+++ \n\n@@ -1,42 +1,40 @@\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], <OFFSET2>\n push eax\n mov dword ptr fs:[0], esp\n-mov dword ptr [ecx], <OFFSET2>\n sub esp, 4\n+mov dword ptr [ebp - 4], 0\n mov dword ptr [ebp - 0x10], ecx\n-mov dword ptr [ebp - 4], 0\n-push ebx\n-push esi\n-push edi\n-mov esi, dword ptr [ecx + 8]\n-test esi, esi\n-je 0xd6\n-mov eax, dword ptr [ecx + 0x24]\n+mov ecx, dword ptr [ecx + 8]\n+test ecx, ecx\n+je 0x4f\n+mov eax, dword ptr [ebp - 0x10]\n+mov eax, dword ptr [eax + 0x24]\n test eax, eax\n-je 0x53\n+je 0x4f\n cmp eax, 1\n-je 0xcd\n+je 0x46\n cmp eax, 3\n-je 0xcd\n-jmp <OFFSET3>\n+jne 0x4f\n+push ecx\n+call <OFFSET3>\n+add esp, 4\n+xor ecx, ecx\n mov eax, dword ptr [ebp - 0x10]\n-mov ebx, dword ptr [eax + 0x28]\n-call <OFFSET4>\n-shr ebx, 0xa\n-mov edi, eax\n-cmp ebx, 0x40\n-je 0x72\n-cmp ebx, 0x80\n-je 0xa0\n-jmp <OFFSET3>\n-sub esi, dword ptr [edi + 0x14]\n-mov ecx, dword ptr [edi + 0x18]\n-shl ecx, 0xa\n-mov eax, esi\n-sub edx, edx\n-div ecx\n-mov esi, eax\n+mov dword ptr [ebp - 4], <OFFSET4>\n+mov dword ptr [eax + 0x14], ecx\n+mov dword ptr [eax + 0x1c], ecx\n+call <OFFSET5>\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 eax, <OFFSET6>\n+jmp <OFFSET7>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET8>"}, {"address": "0x100c6640", "name": "MxDSBuffer::AllocateBuffer", "matching": 0.23931623931623933, "diff": "--- \n\n+++ \n\n@@ -1,123 +1,111 @@\n\n sub esp, 4\n mov dword ptr [esp], <OFFSET1>\n+cmp dword ptr [esp + 0xc], 1\n push ebx\n push esi\n-mov esi, dword ptr [esp + 0x14]\n push edi\n+mov esi, ecx\n push ebp\n-mov edi, ecx\n-test esi, esi\n-je 0x27\n-cmp esi, 1\n-je 0xf1\n-jmp <OFFSET2>\n-call <OFFSET3>\n+jne 0x2d\n+mov eax, dword ptr [esp + 0x18]\n+push eax\n+call <OFFSET2>\n+add esp, 4\n+mov dword ptr [esi + 8], eax\n+jmp <OFFSET3>\n+cmp dword ptr [esp + 0x1c], 0\n+jne 0x117\n+call <OFFSET4>\n mov ecx, dword ptr [esp + 0x18]\n-shr ecx, 0xa\n-cmp ecx, 0x40\n-je 0x4a\n-cmp ecx, 0x80\n-je 0x9f\n-xor ecx, ecx\n-mov dword ptr [edi + 8], ecx\n-jmp <OFFSET2>\n-xor ebx, ebx\n-mov edx, ebx\n+and ecx, <OFFSET5>\n+cmp ecx, 0x10000\n+jne 0xab\n+xor edi, edi\n+mov ebx, dword ptr [eax + 0x1c]\n+mov edx, edi\n mov ebp, 1\n-and edx, <OFFSET4>\n-mov ecx, ebx\n+and edx, <OFFSET6>\n+mov ecx, edi\n shr edx, 3\n and cl, 0x1f\n shl ebp, cl\n-test dword ptr [edx + eax + 0x1c], ebp\n-je 0x76\n-inc ebx\n-cmp ebx, 0x16\n-jb 0x4c\n-xor ecx, ecx\n-mov dword ptr [edi + 8], ecx\n-jmp <OFFSET2>\n-mov ebp, ebx\n+add edx, ebx\n+and edx, ebp\n+cmp dword ptr [edx], 0\n+je 0x79\n+inc edi\n+cmp edi, 0x16\n+jb 0x54\n+jmp <OFFSET7>\n mov edx, 1\n-and ebp, <OFFSET4>\n-mov ecx, ebx\n+mov ecx, edi\n+and cl, 0x1f\n+shl edx, cl\n+mov ecx, edi\n+and ecx, <OFFSET6>\n+shr ecx, 3\n+add ecx, ebx\n+and ecx, edx\n+xor dword ptr [ecx], edx\n+mov ecx, dword ptr [eax + 0x18]\n+imul ecx, edi\n+shl ecx, 0xa\n+add ecx, dword ptr [eax + 0x14]\n+mov dword ptr [esi + 8], ecx\n+mov dword ptr [esi + 8], 0\n+jmp <OFFSET3>\n+cmp ecx, 0x20000\n+jne 0x110\n+xor edi, edi\n+mov ebx, dword ptr [eax + 0x28]\n+mov ebp, edi\n+mov edx, 1\n+and ebp, <OFFSET6>\n+mov ecx, edi\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 <OFFSET2>\n-xor ebx, ebx\n-mov edx, ebx\n-mov ebp, 1\n-and edx, <OFFSET4>\n-mov ecx, ebx\n-shr edx, 3\n+add ebp, ebx\n+and ebp, edx\n+cmp dword ptr [ebp], 0\n+je 0xde\n+inc edi\n+cmp edi, 0x16\n+jb 0xb8\n+jmp <OFFSET8>\n+mov edx, 1\n+mov ecx, edi\n and cl, 0x1f\n-shl ebp, cl\n-test dword ptr [edx + eax + 0x28], ebp\n-je 0xc8\n-inc ebx\n-cmp ebx, 2\n-jb 0xa1\n-xor ecx, ecx\n-mov dword ptr [edi + 8], ecx\n-jmp <OFFSET2>\n-mov edx, ebx\n-mov ebp, 1\n-and edx, <OFFSET4>\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+shl edx, cl\n+mov ecx, edi\n+and ecx, <OFFSET6>\n+shr ecx, 3\n+add ecx, ebx\n+and ecx, edx\n+xor dword ptr [ecx], edx\n mov ecx, dword ptr [eax + 0x24]\n-imul ecx, ebx\n+imul ecx, edi\n shl ecx, 0xa\n add ecx, dword ptr [eax + 0x20]\n-mov dword ptr [edi + 8], ecx\n-jmp <OFFSET2>\n-mov eax, dword ptr [esp + 0x18]\n-push eax\n-call <OFFSET5>\n-add esp, 4\n-mov dword ptr [edi + 8], eax\n-mov eax, dword ptr [edi + 8]\n-mov dword ptr [edi + 0xc], eax\n-mov dword ptr [edi + 0x10], eax\n+mov dword ptr [esi + 8], ecx\n+mov dword ptr [esi + 8], 0\n+jmp <OFFSET3>\n+mov dword ptr [esi + 0xc], 0\n+mov eax, dword ptr [esi + 8]\n+mov dword ptr [esi + 0xc], eax\n+mov dword ptr [esi + 0x10], eax\n test eax, eax\n-je 0x123\n-mov eax, dword ptr [esp + 0x18]\n-mov dword ptr [edi + 0x24], esi\n-mov dword ptr [edi + 0x2c], eax\n-mov dword ptr [edi + 0x28], eax\n+je 0x13d\n+mov eax, dword ptr [esp + 0x1c]\n+mov ecx, dword ptr [esp + 0x18]\n+mov dword ptr [esi + 0x24], eax\n+mov dword ptr [esi + 0x2c], ecx\n mov dword ptr [esp + 0x10], 0\n+mov dword ptr [esi + 0x28], ecx\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 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, dword ptr [esp + 4]\n-mov dword ptr [ecx + 8], eax\n-mov dword ptr [ecx + 0xc], eax"}, {"address": "0x100c6780", "name": "MxDSBuffer::SetBufferPointer", "matching": 1.0, "diff": ""}, {"address": "0x100c6f80", "name": "MxDSBuffer::FUN_100c6f80", "matching": 1.0, "diff": ""}, {"address": "0x100c6500", "name": "MxDSBuffer::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100be050", "name": "MxDSChunk::MxDSChunk", "matching": 1.0, "diff": ""}, {"address": "0x100be170", "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": "0x100c95f0", "name": "MxDSEvent::MxDSEvent", "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": "--- \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 0xb8\n call <OFFSET2>\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 0x4b\n mov ecx, edi\n call <OFFSET3>\n-mov ebx, eax\n+mov esi, eax\n mov dword ptr [ebp - 4], <OFFSET4>\n-test ebx, ebx\n+test esi, esi\n je 0x5e\n-push esi\n-mov ecx, ebx\n+push ebx\n+mov ecx, esi\n call <OFFSET5>\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, <OFFSET6>\n jmp <OFFSET7>"}, {"address": "0x100c9660", "name": "MxDSEvent::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c9670", "name": "MxDSEvent::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100bfed0", "name": "MxDSFile::~MxDSFile", "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": 0.7, "diff": "--- \n\n+++ \n\n@@ -1,20 +1,20 @@\n\n mov eax, dword ptr [esp + 4]\n push esi\n-mov esi, dword ptr [esp + 0xc]\n push edi\n-mov edi, ecx\n-push esi\n+mov esi, ecx\n+mov edi, dword ptr [esp + 0x10]\n+lea ecx, [esi + 0x24]\n+push edi\n push eax\n-lea ecx, [edi + 0x24]\n call <OFFSET1>\n-cmp eax, esi\n+cmp eax, edi\n je 0x24\n mov eax, <OFFSET2>\n pop edi\n pop esi\n ret 8\n xor eax, eax\n-add dword ptr [edi + 0x10], esi\n+add dword ptr [esi + 0x10], edi\n pop edi\n pop esi\n ret 8"}, {"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": "0x100c0120", "name": "MxDSFile::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c0130", "name": "MxDSFile::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c8b40", "name": "MxDSMediaAction::MxDSMediaAction", "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": "0x100c8e80", "name": "MxDSMediaAction::CopyMediaSrcPath", "matching": 1.0, "diff": ""}, {"address": "0x100c8f10", "name": "MxDSMediaAction::GetSizeOnDisk", "matching": 1.0, "diff": ""}, {"address": "0x100c8f60", "name": "MxDSMediaAction::Deserialize", "matching": 0.9423076923076923, "diff": "--- \n\n+++ \n\n@@ -1,24 +1,24 @@\n\n mov eax, dword ptr [esp + 8]\n push ebx\n push esi\n mov ebx, ecx\n mov esi, dword ptr [esp + 0xc]\n push edi\n push eax\n push esi\n call <OFFSET1>\n-mov ecx, dword ptr [esi]\n-push ecx\n+mov edi, dword ptr [ebx + 0x98]\n+mov eax, dword ptr [esi]\n+push eax\n mov ecx, ebx\n call <OFFSET2>\n-mov edi, dword ptr [ebx + 0x98]\n mov ecx, <OFFSET3>\n sub eax, eax\n repne scasb al, byte ptr es:[edi]\n not ecx\n add dword ptr [esi], ecx\n mov eax, dword ptr [esi]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebx + 0x9c], ecx\n mov eax, dword ptr [esi]\n add eax, 4"}, {"address": "0x100c8be0", "name": "MxDSMediaAction::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c8bf0", "name": "MxDSMediaAction::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c9b90", "name": "MxDSMultiAction::MxDSMultiAction", "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::SetUnkTimingField", "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::unk14", "matching": 1.0, "diff": ""}, {"address": "0x100ca6c0", "name": "MxDSMultiAction::GetSizeOnDisk", "matching": 1.0, "diff": ""}, {"address": "0x100ca7b0", "name": "MxDSMultiAction::Deserialize", "matching": 0.8181818181818182, "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 0xd6\n+je 0xd0\n dec dword ptr [ebp - 0x14]\n test edx, edx\n-je 0xd6\n+je 0xd0\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 <OFFSET3>\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 <OFFSET4>\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 0xb3\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-mov dword ptr [ebp - 4], <OFFSET5>\n+je 0xab\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 <OFFSET5>\n+xor eax, eax\n+mov dword ptr [ebp - 4], <OFFSET6>\n test ebx, ebx\n-je 0xc3\n+je 0xbd\n mov dword ptr [ebx + 8], eax\n-jmp <OFFSET6>\n+jmp <OFFSET7>\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 0x57\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, <OFFSET7>\n-jmp <OFFSET8>\n+mov eax, <OFFSET8>\n+jmp <OFFSET9>\n mov eax, dword ptr [ebp - 0x10]\n push eax\n+call <OFFSET10>\n+add esp, 4\n+ret "}, {"address": "0x100ca8c0", "name": "MxDSMultiAction::SetAtomId", "matching": 1.0, "diff": ""}, {"address": "0x100c9f50", "name": "MxDSMultiAction::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c9f60", "name": "MxDSMultiAction::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100bf6a0", "name": "MxDSObject::MxDSObject", "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": ""}, {"address": "0x100bf950", "name": "MxDSObject::SetSourceName", "matching": 1.0, "diff": ""}, {"address": "0x100bf9c0", "name": "MxDSObject::unk14", "matching": 1.0, "diff": ""}, {"address": "0x100bf9d0", "name": "MxDSObject::GetSizeOnDisk", "matching": 1.0, "diff": ""}, {"address": "0x100bfa20", "name": "MxDSObject::Deserialize", "matching": 0.8461538461538461, "diff": "--- \n\n+++ \n\n@@ -1,39 +1,39 @@\n\n push ebx\n push esi\n push edi\n mov esi, ecx\n mov ebx, dword ptr [esp + 0x10]\n+mov edi, dword ptr [esi + 0x10]\n mov eax, dword ptr [ebx]\n push eax\n call <OFFSET1>\n-mov edi, dword ptr [esi + 0x10]\n mov ecx, <OFFSET2>\n sub eax, eax\n repne scasb al, byte ptr es:[edi]\n not ecx\n add dword ptr [ebx], ecx\n mov eax, dword ptr [ebx]\n mov ecx, dword ptr [eax]\n mov dword ptr [esi + 0x14], ecx\n mov ecx, esi\n mov eax, dword ptr [ebx]\n add eax, 4\n push eax\n mov dword ptr [ebx], eax\n+mov edi, dword ptr [esi + 0x18]\n call <OFFSET3>\n-mov edi, dword ptr [esi + 0x18]\n mov ecx, <OFFSET2>\n sub eax, eax\n repne scasb al, byte ptr es:[edi]\n-mov ax, word ptr [esp + 0x14]\n+mov dx, word ptr [esp + 0x14]\n not ecx\n pop edi\n add dword ptr [ebx], ecx\n mov ecx, dword ptr [ebx]\n-mov edx, dword ptr [ecx]\n-mov dword ptr [esi + 0x1c], edx\n+mov eax, dword ptr [ecx]\n+mov dword ptr [esi + 0x1c], eax\n add dword ptr [ebx], 4\n-mov word ptr [esi + 0x24], ax\n+mov word ptr [esi + 0x24], dx\n pop esi\n pop ebx\n ret 8"}, {"address": "0x100bfb30", "name": "DeserializeDSObjectDispatch", "matching": 0.911660777385159, "diff": "--- \n\n+++ \n\n@@ -10,21 +10,21 @@\n\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 cmp eax, 0xb\n ja 0x3a\n-jmp dword ptr [eax*4 + 0x100bfea0]\n+jmp dword ptr [eax*4 + 0x10018ef0]\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,30 @@\n\n mov eax, ebx\n jmp <OFFSET19>\n mov eax, <OFFSET20>\n jmp <OFFSET21>\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call <OFFSET6>\n add esp, 4\n ret \n nop \n-jge 0x36d\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+int 0x8b\n+add dword ptr [eax], edx\n+push cs\n+mov word ptr [ecx], es\n+adc byte ptr [edx - 0x74], dl\n+add dword ptr [eax], edx\n+xchg esi, eax\n+mov word ptr [ecx], es\n+adc dl, bl\n+mov word ptr [ecx], es\n+adc byte ptr [esi], bl\n+lea eax, [ecx]\n+adc byte ptr [edx - 0x73], ah\n+add dword ptr [eax], edx\n+mov eax, dword ptr [<OFFSET22>]\n+lea eax, [ecx]\n+adc byte ptr [edi], bl\n+mov es, word ptr [ecx]\n+adc byte ptr [edi - 0x72], dl\n+add dword ptr [eax], edx"}, {"address": "0x10005530", "name": "MxDSObject::SetAtomId", "matching": 1.0, "diff": ""}, {"address": "0x100bf730", "name": "MxDSObject::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100bf740", "name": "MxDSObject::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c8870", "name": "MxDSObjectAction::MxDSObjectAction", "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 0x13\n mov eax, edi\n pop edi\n pop esi\n ret 4\n push esi\n mov ecx, edi\n call <OFFSET1>\n push esi\n mov eax, dword ptr [edi]"}, {"address": "0x100c8ab0", "name": "MxDSObjectAction::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100c88e0", "name": "MxDSObjectAction::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c88f0", "name": "MxDSObjectAction::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100cae80", "name": "MxDSParallelAction::MxDSParallelAction", "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": "--- \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 0x9c\n call <OFFSET2>\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 0x4b\n mov ecx, edi\n call <OFFSET3>\n-mov esi, eax\n+mov ebx, eax\n mov dword ptr [ebp - 4], <OFFSET4>\n-test esi, esi\n+test ebx, ebx\n je 0x5e\n-push ebx\n-mov ecx, esi\n+push esi\n+mov ecx, ebx\n call <OFFSET5>\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, <OFFSET6>\n jmp <OFFSET7>"}, {"address": "0x100cb160", "name": "MxDSParallelAction::GetDuration", "matching": 1.0, "diff": ""}, {"address": "0x100caf00", "name": "MxDSParallelAction::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100caf10", "name": "MxDSParallelAction::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100cb2b0", "name": "MxDSSelectAction::MxDSSelectAction", "matching": 1.0, "diff": ""}, {"address": "0x100cb8d0", "name": "MxDSSelectAction::~MxDSSelectAction", "matching": 1.0, "diff": ""}, {"address": "0x100cb950", "name": "MxDSSelectAction::CopyFrom", "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.9823321554770318, "diff": "--- \n\n+++ \n\n@@ -108,26 +108,26 @@\n\n mov eax, dword ptr [ebp - 0x14]\n mov dword ptr [ebp - 0x30], <OFFSET6>\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 0x1b2\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 <OFFSET19>\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 0x1ad\n mov byte ptr [ebp - 4], 0\n mov eax, dword ptr [ebp - 0x1a]\n mov dword ptr [ebp - 0x2c], eax\n@@ -200,23 +200,23 @@\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 <OFFSET27>\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 0x2dc\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 call <OFFSET28>\n mov dword ptr [ebp - 0x28], eax\n add esp, 4\n mov byte ptr [ebp - 4], 4\n mov edi, eax"}, {"address": "0x100cb6f0", "name": "MxDSSelectAction::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100cb700", "name": "MxDSSelectAction::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100ca9d0", "name": "MxDSSerialAction::MxDSSerialAction", "matching": 1.0, "diff": ""}, {"address": "0x100caac0", "name": "MxDSSerialAction::SetDuration", "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 <OFFSET2>\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 0x4b\n mov ecx, edi\n call <OFFSET3>\n-mov esi, eax\n+mov ebx, eax\n mov dword ptr [ebp - 4], <OFFSET4>\n-test esi, esi\n+test ebx, ebx\n je 0x5e\n-push ebx\n-mov ecx, esi\n+push esi\n+mov ecx, ebx\n call <OFFSET5>\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, <OFFSET6>\n jmp <OFFSET7>"}, {"address": "0x100cad60", "name": "MxDSSerialAction::GetDuration", "matching": 1.0, "diff": ""}, {"address": "0x100caad0", "name": "MxDSSerialAction::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100caae0", "name": "MxDSSerialAction::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c92c0", "name": "MxDSSound::MxDSSound", "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": 1.0, "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 0x13\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 <OFFSET1>\n-push edi\n-mov ecx, esi\n+push esi\n+mov ecx, edi\n call <OFFSET2>\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 <OFFSET2>\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 0x4b\n mov ecx, edi\n call <OFFSET3>\n-mov ebx, eax\n+mov esi, eax\n mov dword ptr [ebp - 4], <OFFSET4>\n-test ebx, ebx\n+test esi, esi\n je 0x5e\n-push esi\n-mov ecx, ebx\n+push ebx\n+mov ecx, esi\n call <OFFSET5>\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, <OFFSET6>\n jmp <OFFSET7>"}, {"address": "0x100c95a0", "name": "MxDSSound::Deserialize", "matching": 1.0, "diff": ""}, {"address": "0x100c95d0", "name": "MxDSSound::GetSizeOnDisk", "matching": 1.0, "diff": ""}, {"address": "0x100c9330", "name": "MxDSSound::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c9340", "name": "MxDSSound::IsA", "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": "0x100c98c0", "name": "MxDSStill::MxDSStill", "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": ""}, {"address": "0x100c9930", "name": "MxDSStill::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c9940", "name": "MxDSStill::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100cd010", "name": "MxDSStreamingAction::MxDSStreamingAction", "matching": 1.0, "diff": ""}, {"address": "0x100cd090", "name": "MxDSStreamingAction::HasId", "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": "0x100b7d50", "name": "MxDSSubscriber::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b7d60", "name": "MxDSSubscriber::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10001070", "name": "MxEntity::Create", "matching": 1.0, "diff": ""}, {"address": "0x1000c110", "name": "MxEntity::~MxEntity", "matching": 1.0, "diff": ""}, {"address": "0x1001d190", "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": "0x100c0360", "name": "MxEventManager::MxEventManager", "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": "0x100c2b70", "name": "MxEventPresenter::MxEventPresenter", "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.8266666666666667, "diff": "--- \n\n+++ \n\n@@ -11,65 +11,65 @@\n\n lea eax, [ecx + 0x20]\n push edi\n mov esi, ecx\n push eax\n lea ecx, [ebp - 0x10]\n call <OFFSET2>\n mov dword ptr [ebp - 4], 0\n mov ecx, esi\n call <OFFSET3>\n test al, al\n-je 0xb0\n+je 0xaf\n mov eax, dword ptr [esi + 8]\n cmp eax, 3\n-jl 0xb0\n+jl 0xaf\n cmp eax, 4\n jle 0x50\n cmp eax, 6\n-jne 0xb0\n+jne 0xaf\n mov eax, dword ptr [esi + 0x4c]\n test eax, eax\n-je 0xb0\n+je 0xaf\n cmp dword ptr [eax + 0x14], 0\n-je 0xb0\n+je 0xaf\n mov ecx, dword ptr [esi + 0x50]\n cmp byte ptr [ecx + 0xc], 2\n-jne 0x97\n+jne 0x96\n mov ebx, dword ptr [eax + 0x18]\n call <OFFSET4>\n-mov edx, ebx\n mov edi, ebx\n mov ecx, <OFFSET5>\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, <OFFSET5>\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 <OFFSET6>\n cmp dword ptr [esi + 8], 3\n-jne 0xa9\n+jne 0xa8\n mov eax, dword ptr [esi + 0x4c]\n mov ecx, dword ptr [esi + 0x40]\n push eax\n call <OFFSET7>\n mov dword ptr [esi + 0x4c], 0\n mov dword ptr [ebp - 4], <OFFSET5>\n call <OFFSET8>\n xor eax, eax\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, <OFFSET9>\n jmp <OFFSET10>\n lea ecx, [ebp - 0x10]\n+jmp <OFFSET11>"}, {"address": "0x100c2c30", "name": "MxEventPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c2c40", "name": "MxEventPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100b3310", "name": "MxFlcPresenter::MxFlcPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b3420", "name": "MxFlcPresenter::~MxFlcPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b3620", "name": "MxFlcPresenter::VTable0x70", "matching": 1.0, "diff": ""}, {"address": "0x1004e200", "name": "MxFlcPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100b33f0", "name": "MxFlcPresenter::ClassName", "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": 1.0, "diff": ""}, {"address": "0x100cca00", "name": "MXIOINFO::Seek", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -80,21 +80,21 @@\n\n pop edi\n pop esi\n pop ebx\n ret 8\n mov ecx, esi\n mov eax, esi\n cdq \n idiv dword ptr [edi + 0x14]\n sub ecx, edx\n mov dword ptr [edi + 0x28], ecx\n-cmp esi, ecx\n+cmp ecx, esi\n je 0xf1\n push 0\n mov eax, dword ptr [edi + 0x44]\n push ecx\n push eax\n call ebp\n mov dword ptr [edi + 0x2c], eax\n cmp eax, -1\n jne 0xf1\n push 1"}, {"address": "0x100ccbc0", "name": "MXIOINFO::SetBuffer", "matching": 1.0, "diff": ""}, {"address": "0x100ccc10", "name": "MXIOINFO::Flush", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -45,21 +45,21 @@\n\n pop ebx\n ret 4\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 [<OFFSET3>]\n cmp eax, -1\n je 0xb1\n-cmp ebx, eax\n+cmp eax, ebx\n jne 0xb1\n pop ebp\n add dword ptr [esi + 0x2c], eax\n mov eax, dword ptr [esi + 0x18]\n and dword ptr [esi], <OFFSET4>\n mov dword ptr [esi + 0x1c], eax\n mov ax, di\n pop edi\n pop esi\n pop ebx"}, {"address": "0x100ccd00", "name": "MXIOINFO::Advance", "matching": 0.9473684210526315, "diff": "--- \n\n+++ \n\n@@ -24,41 +24,41 @@\n\n jle 0xa5\n mov eax, dword ptr [esi + 0x28]\n cmp dword ptr [esi + 0x2c], eax\n je 0x56\n push 0\n push eax\n mov eax, dword ptr [esi + 0x44]\n push eax\n call dword ptr [<OFFSET1>]\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 0x64\n mov di, 0x107\n jmp <OFFSET2>\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 [<OFFSET3>]\n cmp eax, -1\n je 0x90\n-cmp ebx, eax\n+cmp eax, ebx\n jne 0x90\n add dword ptr [esi + 0x2c], eax\n and dword ptr [esi], <OFFSET4>\n mov eax, dword ptr [esi + 0x18]\n mov dword ptr [esi + 0x1c], eax\n mov dword ptr [esi + 0x20], eax\n-jmp <OFFSET5>\n+jmp <OFFSET2>\n mov di, 0x106\n push 1\n mov eax, dword ptr [esi + 0x44]\n push 0\n push eax\n call dword ptr [<OFFSET1>]\n mov dword ptr [esi + 0x2c], eax\n mov eax, dword ptr [esi + 0x28]\n add eax, ebx\n test ebp, ebp\n@@ -69,42 +69,42 @@\n\n test ebx, ebx\n jle 0x14d\n cmp dword ptr [esi + 0x2c], eax\n je 0xd7\n push 0\n push eax\n mov eax, dword ptr [esi + 0x44]\n push eax\n call dword ptr [<OFFSET1>]\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 0xfe\n mov di, 0x107\n push 1\n push 0\n mov eax, dword ptr [esi + 0x44]\n push eax\n call dword ptr [<OFFSET1>]\n pop ebp\n mov dword ptr [esi + 0x2c], eax\n mov ax, di\n pop edi\n pop esi\n pop ebx\n ret 4\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 [<OFFSET6>]\n+call dword ptr [<OFFSET5>]\n cmp eax, -1\n jne 0x131\n mov di, 0x105\n push 1\n push 0\n mov eax, dword ptr [esi + 0x44]\n push eax\n call dword ptr [<OFFSET1>]\n pop ebp\n mov dword ptr [esi + 0x2c], eax"}, {"address": "0x100cce60", "name": "MXIOINFO::Descend", "matching": 0.9857142857142858, "diff": "--- \n\n+++ \n\n@@ -78,22 +78,22 @@\n\n test eax, eax\n je 0x103\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 <OFFSET9>\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 0x11a\n+cmp dword ptr [esp + 0x24], eax\n+jbe 0x11a\n mov bx, 0x109\n jmp <OFFSET8>\n cmp word ptr [esp + 0x38], 0x40\n jne 0x12c\n cmp dword ptr [esp + 0x18], <OFFSET5>\n je 0x13e\n cmp word ptr [esp + 0x38], 0x20\n jne 0x162\n cmp dword ptr [esp + 0x18], <OFFSET4>\n jne 0x162"}, {"address": "0x100b4310", "name": "MxLoopingFlcPresenter::MxLoopingFlcPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b43b0", "name": "MxLoopingFlcPresenter::~MxLoopingFlcPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b4410", "name": "MxLoopingFlcPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x100b4380", "name": "MxLoopingFlcPresenter::ClassName", "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": "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": "0x100b48b0", "name": "MxLoopingSmkPresenter::MxLoopingSmkPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b4950", "name": "MxLoopingSmkPresenter::~MxLoopingSmkPresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b49b0", "name": "MxLoopingSmkPresenter::Init", "matching": 1.0, "diff": ""}, {"address": "0x100b4920", "name": "MxLoopingSmkPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b84c0", "name": "MxMediaManager::MxMediaManager", "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::AddPresenter", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -7,46 +7,46 @@\n\n mov dword ptr fs:[0], esp\n sub esp, 8\n push ebx\n push esi\n lea eax, [ecx + 0x10]\n push edi\n mov esi, ecx\n push eax\n lea ecx, [ebp - 0x10]\n call <OFFSET2>\n-mov esi, dword ptr [esi + 8]\n+mov ebx, dword ptr [esi + 8]\n push 0xc\n mov dword ptr [ebp - 4], 0\n-mov ebx, dword ptr [esi + 0x14]\n+mov esi, dword ptr [ebx + 0x14]\n call <OFFSET3>\n mov dword ptr [ebp - 0x14], 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 0x66\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], 0\n mov byte ptr [ebp - 4], 0\n-test ebx, ebx\n+test esi, esi\n je 0x73\n-mov dword ptr [ebx + 8], eax\n+mov dword ptr [esi + 8], eax\n jmp <OFFSET4>\n-mov dword ptr [esi + 0x10], eax\n+mov dword ptr [ebx + 0x10], eax\n mov dword ptr [ebp - 4], <OFFSET5>\n-mov dword ptr [esi + 0x14], eax\n-inc dword ptr [esi + 8]\n+mov dword ptr [ebx + 0x14], eax\n+inc dword ptr [ebx + 8]\n call <OFFSET6>\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, dword ptr [ebp - 0x14]"}, {"address": "0x100b8980", "name": "MxMediaManager::RemovePresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b8ac0", "name": "MxMediaManager::StopPresenters", "matching": 1.0, "diff": ""}, {"address": "0x1000c550", "name": "MxMediaPresenter::~MxMediaPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1000c5b0", "name": "MxMediaPresenter::Destroy", "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::FUN_100b5650", "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 0x4c\n call <OFFSET1>\n-mov esi, eax\n-test esi, esi\n+mov edi, eax\n+test edi, edi\n je 0x4c\n-test byte ptr [esi + 8], 4\n+test byte ptr [edi + 8], 4\n je 0x4c\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 <OFFSET2>\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 <OFFSET3>\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": 0.6833855799373041, "diff": "--- \n\n+++ \n\n@@ -2,143 +2,143 @@\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, 0x10\n mov dword ptr [ebp - 0x18], <OFFSET2>\n push ebx\n push esi\n+lea eax, [ecx + 0x20]\n push edi\n-xor esi, esi\n-lea eax, [ecx + 0x20]\n-mov edi, ecx\n+mov esi, ecx\n push eax\n lea ecx, [ebp - 0x1c]\n call <OFFSET3>\n mov ecx, dword ptr [ebp + 0xc]\n mov eax, dword ptr [ebp + 8]\n+mov dword ptr [ebp - 4], 0\n push ecx\n-mov dword ptr [ebp - 4], esi\n push eax\n-mov ecx, edi\n+mov ecx, esi\n call <OFFSET4>\n test eax, eax\n-jne 0x1c9\n-mov eax, dword ptr [edi + 0x1c]\n-test byte ptr [eax + 0x30], 1\n-je 0x161\n+jne 0x1d9\n+mov eax, dword ptr [esi + 0x1c]\n+mov ebx, 1\n+test dword ptr [eax + 0x30], ebx\n+je 0x171\n push 0x18\n call <OFFSET5>\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n-mov byte ptr [ebp - 4], 1\n-mov ebx, eax\n-test ebx, ebx\n-je 0xcf\n-mov ecx, ebx\n+mov edi, eax\n+mov byte ptr [ebp - 4], bl\n+test edi, edi\n+je 0xdf\n+mov ecx, edi\n call <OFFSET6>\n mov byte ptr [ebp - 4], 2\n mov byte ptr [ebp - 4], 3\n mov byte ptr [ebp - 4], 4\n-mov dword ptr [ebx], <OFFSET7>\n-mov dword ptr [ebx + 8], esi\n-mov dword ptr [ebx + 0xc], <OFFSET8>\n-mov eax, ebx\n-mov dword ptr [ebx], <OFFSET9>\n-mov byte ptr [ebp - 4], 1\n-mov dword ptr [ebx + 0x14], esi\n-mov dword ptr [ebx + 0x10], esi\n-mov dword ptr [ebx], <OFFSET10>\n-mov dword ptr [ebx + 0xc], <OFFSET11>\n+mov dword ptr [edi], <OFFSET7>\n+mov dword ptr [edi + 8], 0\n+mov dword ptr [edi + 0xc], <OFFSET8>\n+mov eax, edi\n+mov dword ptr [edi], <OFFSET9>\n+mov dword ptr [edi + 0x14], 0\n+mov dword ptr [edi + 0x10], 0\n+mov dword ptr [edi], <OFFSET10>\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [edi + 0xc], <OFFSET11>\n jmp <OFFSET12>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET13>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET14>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET15>\n xor eax, eax\n mov byte ptr [ebp - 4], 0\n push 0x10\n-mov dword ptr [edi + 0x44], eax\n+mov dword ptr [esi + 0x44], eax\n call <OFFSET5>\n mov dword ptr [ebp - 0x14], eax\n add esp, 4\n mov byte ptr [ebp - 4], 5\n-mov esi, eax\n-test esi, esi\n-je 0x12f\n-mov ebx, dword ptr [edi + 0x44]\n-mov ecx, esi\n+mov ebx, eax\n+test ebx, ebx\n+je 0x13f\n+mov edi, dword ptr [esi + 0x44]\n+mov ecx, ebx\n call <OFFSET6>\n mov byte ptr [ebp - 4], 6\n-mov eax, esi\n-mov dword ptr [esi], <OFFSET16>\n+mov eax, ebx\n+mov dword ptr [ebx], <OFFSET16>\n mov byte ptr [ebp - 4], 7\n mov byte ptr [ebp - 4], 5\n-mov dword ptr [esi + 8], ebx\n-mov dword ptr [esi + 0xc], 0\n-mov dword ptr [esi], <OFFSET17>\n+mov dword ptr [ebx + 8], edi\n+mov dword ptr [ebx + 0xc], 0\n+mov dword ptr [ebx], <OFFSET17>\n jmp <OFFSET18>\n mov ecx, dword ptr [ebp - 0x14]\n jmp <OFFSET13>\n mov ecx, dword ptr [ebp - 0x14]\n jmp <OFFSET19>\n xor eax, eax\n mov byte ptr [ebp - 4], 0\n-cmp dword ptr [edi + 0x44], 0\n-mov dword ptr [edi + 0x48], eax\n-jne 0x161\n+cmp dword ptr [esi + 0x44], 0\n+mov dword ptr [esi + 0x48], eax\n+jne 0x171\n test eax, eax\n-jne 0x161\n+jne 0x171\n jmp <OFFSET20>\n mov eax, dword ptr [ebp - 0x14]\n push eax\n call <OFFSET21>\n add esp, 4\n ret \n mov eax, dword ptr [ebp - 0x10]\n push eax\n call <OFFSET21>\n add esp, 4\n ret \n cmp dword ptr [ebp + 8], 0\n-je 0x1c2\n+je 0x1d2\n push 0x4c\n call <OFFSET5>\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov byte ptr [ebp - 4], 8\n-mov esi, eax\n+mov edi, eax\n mov eax, 0\n-test esi, esi\n-je 0x18a\n-mov ecx, esi\n+test edi, edi\n+je 0x19a\n+mov ecx, edi\n call <OFFSET22>\n mov byte ptr [ebp - 4], 0\n-mov dword ptr [edi + 0x40], eax\n+mov dword ptr [esi + 0x40], eax\n test eax, eax\n-je 0x1c9\n+je 0x1d9\n mov ecx, dword ptr [ebp + 0xc]\n mov edx, dword ptr [ebp + 0xc]\n mov cx, word ptr [ecx + 0x24]\n mov ebx, dword ptr [edx + 0x1c]\n push ecx\n push ebx\n mov ecx, dword ptr [ebp + 8]\n push ecx\n mov ecx, eax\n call <OFFSET23>\n test eax, eax\n-je 0x1c2\n+je 0x1d2\n jmp <OFFSET20>\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call <OFFSET21>\n add esp, 4\n ret \n mov dword ptr [ebp - 0x18], 0\n mov dword ptr [ebp - 4], <OFFSET2>\n call <OFFSET24>\n mov eax, dword ptr [ebp - 0x18]\n@@ -147,17 +147,10 @@\n\n pop edi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 8\n mov eax, <OFFSET25>\n jmp <OFFSET26>\n lea ecx, [ebp - 0x1c]\n jmp <OFFSET27>\n-int3 \n-int3 \n-int3 \n-mov eax, dword ptr [esp + 4]\n-mov ecx, dword ptr [esp + 8]\n-cmp eax, ecx\n-jne 0x211"}, {"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.8901734104046243, "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 <OFFSET1>\n test al, al\n-je 0xd4\n+je 0xd6\n cmp dword ptr [esi + 0x4c], 0\n-jne 0xd4\n+jne 0xd6\n mov ecx, dword ptr [esi + 0x48]\n test ecx, ecx\n je 0x75\n mov eax, dword ptr [ecx + 0xc]\n test eax, eax\n jne 0x36\n mov eax, dword ptr [ecx + 8]\n mov edx, dword ptr [eax + 0x10]\n mov dword ptr [ecx + 0xc], edx\n jmp <OFFSET2>\n@@ -35,53 +35,52 @@\n\n mov edx, dword ptr [eax + 0x10]\n mov dword ptr [ecx + 0xc], edx\n jmp <OFFSET3>\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 0x75\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 0xa8\n+mov eax, dword ptr [esi + 0x4c]\n+test eax, eax\n+je 0xaa\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-jl 0xd4\n+cmp edx, ebx\n+jl 0xd6\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 ret \n mov ebx, dword ptr [esi + 0x1c]\n mov ecx, ebx\n mov edi, dword ptr [ebx]\n call dword ptr [edi + 0x24]\n mov ebp, dword ptr [ebx + 0x34]\n mov ecx, ebx\n add ebp, eax\n call dword ptr [edi + 0x40]\n cmp ebp, eax\n-jg 0xd4\n+jl 0xd6\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::AppendChunk", "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 <OFFSET2>\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 0x5c\n-mov ecx, esi\n+mov ecx, edi\n call <OFFSET3>\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], <OFFSET4>\n+mov ebx, edi\n+mov dword ptr [edi], <OFFSET4>\n jmp <OFFSET5>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET6>\n xor ebx, ebx\n mov esi, dword ptr [ebp + 8]\n mov dword ptr [ebp - 4], <OFFSET7>\n mov eax, dword ptr [esi + 0x14]\n push eax\n mov dword ptr [ebx + 0x14], eax\n call <OFFSET2>\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 <OFFSET2>\n add esp, 4\n mov dword ptr [ebp - 0x10], eax\n mov dword ptr [ebp - 4], 2\n test eax, eax\n je 0xc6\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 <OFFSET8>\n xor eax, eax\n mov dword ptr [ebp - 4], <OFFSET7>\n-test esi, esi\n+test edi, edi\n je 0xee\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 <OFFSET9>\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call <OFFSET10>\n add esp, 4\n ret \n mov eax, <OFFSET11>\n jmp <OFFSET12>\n mov eax, dword ptr [ebp - 0x10]\n push eax"}, {"address": "0x100b6030", "name": "MxMediaPresenter::Enable", "matching": 1.0, "diff": ""}, {"address": "0x1000c5c0", "name": "MxMediaPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000c5d0", "name": "MxMediaPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c25e0", "name": "MxMIDIPresenter::MxMIDIPresenter", "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": 0.7105263157894737, "diff": "--- \n\n+++ \n\n@@ -1,38 +1,38 @@\n\n push ebx\n push esi\n+push edi\n lea ebx, [ecx + 0x20]\n-push edi\n-mov esi, ecx\n+mov edi, ecx\n mov ecx, ebx\n call <OFFSET1>\n-cmp dword ptr [esi + 8], 3\n+cmp dword ptr [edi + 8], 3\n jne 0x55\n-cmp dword ptr [esi + 0x54], 0\n+cmp dword ptr [edi + 0x54], 0\n je 0x55\n call <OFFSET2>\n cmp byte ptr [eax + 0x34], 0\n jne 0x55\n-mov edi, dword ptr [esi]\n-mov eax, dword ptr [esi + 0x1c]\n+mov esi, dword ptr [edi]\n+mov eax, dword ptr [edi + 0x1c]\n mov ecx, dword ptr [eax + 0xbc]\n push ecx\n-mov ecx, esi\n-call dword ptr [edi + 0x60]\n+mov ecx, edi\n+call dword ptr [esi + 0x60]\n push 1\n-mov ecx, dword ptr [esi + 0x54]\n+mov ecx, dword ptr [edi + 0x54]\n mov edx, dword ptr [ecx + 0x18]\n push edx\n call <OFFSET2>\n mov ecx, eax\n call <OFFSET3>\n test eax, eax\n je 0x55\n-mov ecx, esi\n-call dword ptr [edi + 0x40]\n+mov ecx, edi\n+call dword ptr [esi + 0x40]\n mov ecx, ebx\n call <OFFSET4>\n xor eax, eax\n pop edi\n pop esi\n pop ebx\n ret "}, {"address": "0x100c29e0", "name": "MxMIDIPresenter::EndAction", "matching": 1.0, "diff": ""}, {"address": "0x100c2a60", "name": "MxMIDIPresenter::SetVolume", "matching": 1.0, "diff": ""}, {"address": "0x100c2650", "name": "MxMIDIPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c2660", "name": "MxMIDIPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c05a0", "name": "MxMusicManager::MxMusicManager", "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": "0x100c07f0", "name": "MxMusicManager::SetMIDIVolume", "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": "0x100c0b20", "name": "MxMusicManager::DeinitializeMIDI", "matching": 1.0, "diff": ""}, {"address": "0x100c22c0", "name": "MxMusicPresenter::MxMusicPresenter", "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": "0x100c23a0", "name": "MxMusicPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c23b0", "name": "MxMusicPresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c1900", "name": "MxNextActionDataStart::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c1910", "name": "MxNextActionDataStart::IsA", "matching": 1.0, "diff": ""}, {"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": "0x100ac450", "name": "MxNotificationManager::~MxNotificationManager", "matching": 1.0, "diff": ""}, {"address": "0x100ac600", "name": "MxNotificationManager::Create", "matching": 1.0, "diff": ""}, {"address": "0x100ac6c0", "name": "MxNotificationManager::Send", "matching": 0.9029126213592233, "diff": "--- \n\n+++ \n\n@@ -1,77 +1,77 @@\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 <OFFSET2>\n mov dword ptr [ebp - 4], 0\n-cmp byte ptr [edi + 0x3c], 0\n+cmp byte ptr [esi + 0x3c], 0\n jne 0x5d\n mov dword ptr [ebp - 4], <OFFSET3>\n call <OFFSET4>\n mov eax, <OFFSET3>\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 je 0x83\n mov edx, dword ptr [ebp - 0x20]\n cmp dword ptr [eax + 8], edx\n je 0x83\n mov eax, dword ptr [eax]\n-cmp eax, dword ptr [ebp - 0x14]\n+cmp dword ptr [ebp - 0x14], eax\n jne 0x74\n-cmp eax, ecx\n+cmp ecx, eax\n je 0x39\n push 8\n call <OFFSET5>\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 0xaf\n mov eax, dword ptr [ebp + 0xc]\n-mov ecx, esi\n+mov ecx, edi\n push eax\n push ebx\n call <OFFSET6>\n mov dword ptr [ebp - 0x10], eax\n jmp <OFFSET7>\n mov dword ptr [ebp - 0x10], 0\n mov byte ptr [ebp - 4], 0\n cmp dword ptr [ebp - 0x10], 0\n je 0x39\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 call <OFFSET5>\n add esp, 4\n test edi, edi\n je 0xea\n mov ecx, dword ptr [ebp - 0x14]"}, {"address": "0x100ac800", "name": "MxNotificationManager::Tickle", "matching": 1.0, "diff": ""}, {"address": "0x100ac990", "name": "MxNotificationManager::FlushPending", "matching": 0.9002433090024331, "diff": "--- \n\n+++ \n\n@@ -22,56 +22,56 @@\n\n mov eax, <OFFSET3>\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 <OFFSET4>\n mov byte ptr [ebp - 4], 3\n mov eax, dword ptr [esi + 0xc]\n test eax, eax\n-je 0x103\n+je 0x102\n mov eax, dword ptr [eax + 4]\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 0x106\n+mov ecx, dword ptr [eax]\n+mov dword ptr [ebp - 0x10], ecx\n+cmp eax, ecx\n+je 0x105\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 0xa4\n mov edx, dword ptr [eax + 4]\n mov eax, dword ptr [edx + 8]\n test eax, eax\n je 0x9a\n cmp dword ptr [eax + 4], ecx\n je 0xa4\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n jmp <OFFSET5>\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 <OFFSET6>\n add esp, 4\n lea edx, [ebp - 0x14]\n@@ -87,50 +87,50 @@\n\n mov ecx, dword ptr [ebp - 0x10]\n cmp dword ptr [eax + 4], ecx\n jne 0x75\n jmp <OFFSET8>\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 0x1a5\n+je 0x1a3\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 0x148\n+je 0x147\n mov edx, dword ptr [eax + 4]\n mov eax, dword ptr [edx + 8]\n test eax, eax\n-je 0x13e\n-cmp dword ptr [eax + 4], ecx\n-je 0x148\n+je 0x13d\n+cmp dword ptr [eax + 4], ecx\n+je 0x147\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n jmp <OFFSET9>\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 <OFFSET6>\n add esp, 4\n lea edx, [ebp - 0x14]\n@@ -138,25 +138,25 @@\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 <OFFSET7>\n mov eax, dword ptr [esi + 8]\n mov ecx, dword ptr [ebp - 0x10]\n cmp dword ptr [eax + 4], ecx\n-jne 0x119\n+jne 0x118\n mov byte ptr [ebp - 4], 2\n call <OFFSET10>\n cmp dword ptr [ebp - 0x1c], 0\n-je 0x20f\n+je 0x20d\n xor esi, esi\n lea eax, [ebp - 0x10]\n lea ecx, [ebp - 0x24]\n push eax\n call <OFFSET11>\n mov eax, dword ptr [eax]\n lea edx, [ebp - 0x18]\n push edx\n mov ecx, dword ptr [eax + 8]\n mov dword ptr [ebp - 0x14], ecx\n@@ -169,37 +169,38 @@\n\n lea ecx, [ebp - 0x24]\n call <OFFSET12>\n mov edx, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [edx]\n mov eax, dword ptr [edx + 4]\n push eax\n mov ebx, dword ptr [ecx]\n call dword ptr [ebx + 4]\n mov edi, dword ptr [ebp - 0x14]\n cmp edi, esi\n-je 0x20a\n+je 0x208\n mov ecx, edi\n call <OFFSET13>\n push edi\n call <OFFSET6>\n add esp, 4\n cmp dword ptr [ebp - 0x1c], esi\n-jne 0x1b6\n+jne 0x1b4\n mov dword ptr [ebp - 4], <OFFSET3>\n call <OFFSET14>\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 lea ecx, [ebp - 0x2c]\n jmp <OFFSET15>\n lea ecx, [ebp - 0x24]\n jmp <OFFSET16>\n lea ecx, [ebp - 0x24]\n jmp <OFFSET17>\n mov eax, <OFFSET18>\n jmp <OFFSET19>\n lea ecx, [ebp - 0x24]\n+jmp <OFFSET20>"}, {"address": "0x100acd20", "name": "MxNotificationManager::Register", "matching": 1.0, "diff": ""}, {"address": "0x100acdf0", "name": "MxNotificationManager::Unregister", "matching": 0.9830508474576272, "diff": "--- \n\n+++ \n\n@@ -20,21 +20,21 @@\n\n mov eax, dword ptr [edi + 4]\n mov dword ptr [ebp - 0x20], eax\n mov eax, dword ptr [ecx]\n mov edx, eax\n cmp eax, ecx\n je 0x58\n mov eax, dword ptr [ebp - 0x20]\n cmp dword ptr [edx + 8], eax\n je 0x58\n mov edx, dword ptr [edx]\n-cmp dword ptr [ebp - 0x14], edx\n+cmp edx, dword ptr [ebp - 0x14]\n jne 0x49\n cmp edx, ecx\n je 0x7f\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"}, {"address": "0x10010390", "name": "MxNotificationParam::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100b0d80", "name": "MxObjectFactory::MxObjectFactory", "matching": 0.9924528301886792, "diff": "--- \n\n+++ \n\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 <OFFSET6>\n mov byte ptr [ebp - 4], 0xc\n call <OFFSET27>\n push 0\n lea ecx, [ebp - 0x14]\n push <OFFSET28>\n call <OFFSET5>\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 <OFFSET6>\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], <OFFSET30>\n mov ecx, dword ptr [ebp - 0xc]\n mov esp, ebp\n mov dword ptr fs:[0], ecx\n pop ebp"}, {"address": "0x100b12c0", "name": "MxObjectFactory::Create", "matching": 1.0, "diff": ""}, {"address": "0x100b1a30", "name": "MxObjectFactory::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x10008f70", "name": "MxObjectFactory::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10008f80", "name": "MxObjectFactory::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100159e0", "name": "DeleteObjects", "matching": 1.0, "diff": ""}, {"address": "0x10058a90", "name": "MxOmni::IsTimerRunning", "matching": 1.0, "diff": ""}, {"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": "0x100acf70", "name": "DeleteObject", "matching": 1.0, "diff": ""}, {"address": "0x100aef10", "name": "MxOmni::MxOmni", "matching": 1.0, "diff": ""}, {"address": "0x100aefb0", "name": "MxOmni::FindWorld", "matching": 1.0, "diff": ""}, {"address": "0x100aefc0", "name": "MxOmni::NotifyCurrentEntity", "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": 1.0, "diff": ""}, {"address": "0x100afe90", "name": "MxOmni::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b0090", "name": "MxOmni::Start", "matching": 1.0, "diff": ""}, {"address": "0x100b0680", "name": "MxOmni::GetInstance", "matching": 1.0, "diff": ""}, {"address": "0x100b0690", "name": "MxOmni::DestroyInstance", "matching": 1.0, "diff": ""}, {"address": "0x100b07f0", "name": "MxOmni::Notify", "matching": 1.0, "diff": ""}, {"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": "0x100b0b00", "name": "MxOmniCreateParam::MxOmniCreateParam", "matching": 1.0, "diff": ""}, {"address": "0x100bee30", "name": "MxPalette::MxPalette", "matching": 1.0, "diff": ""}, {"address": "0x100beed0", "name": "MxPalette::MxPalette", "matching": 0.7238095238095238, "diff": "--- \n\n+++ \n\n@@ -12,42 +12,41 @@\n\n mov esi, ecx\n call <OFFSET2>\n lea eax, [esi + 0xc]\n mov ecx, esi\n mov dword ptr [ebp - 4], 0\n push eax\n mov dword ptr [esi], <OFFSET3>\n mov byte ptr [esi + 0x40c], 0\n mov dword ptr [esi + 8], 0\n call <OFFSET4>\n-mov eax, 0xa\n-lea edx, [esi + 0x34]\n-mov ecx, dword ptr [ebp + 8]\n-add ecx, 0x2a\n-mov bl, byte ptr [ecx]\n-add edx, 4\n+mov edx, 0xa\n+lea ecx, [esi + 0x34]\n+mov eax, dword ptr [ebp + 8]\n+add eax, 0x2a\n+mov bl, byte ptr [eax]\n add ecx, 4\n-inc eax\n-mov byte ptr [edx - 4], bl\n-cmp eax, 0xf6\n-mov bl, byte ptr [ecx - 5]\n-mov byte ptr [edx - 3], bl\n-mov bl, byte ptr [ecx - 6]\n-mov byte ptr [edx - 2], bl\n-mov byte ptr [edx - 1], 0\n+add eax, 4\n+inc edx\n+mov byte ptr [ecx - 4], bl\n+cmp edx, 0xf6\n+mov bl, byte ptr [eax - 5]\n+mov byte ptr [ecx - 3], bl\n+mov bl, byte ptr [eax - 6]\n+mov byte ptr [ecx - 2], bl\n+mov byte ptr [ecx - 1], 0\n jl 0x5b\n mov dword ptr [ebp - 4], <OFFSET5>\n mov eax, dword ptr [esi + 0x240]\n mov ecx, dword ptr [ebp - 0xc]\n mov dword ptr fs:[0], ecx\n mov dword ptr [esi + 0x40d], eax\n mov eax, esi\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, <OFFSET6>\n jmp <OFFSET7>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET8>\n-int3 "}, {"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 <OFFSET2>\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 0x4b\n mov ecx, edi\n call <OFFSET3>\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], <OFFSET4>\n push eax\n call <OFFSET5>\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, <OFFSET6>\n jmp <OFFSET7>\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call <OFFSET8>\n add esp, 4"}, {"address": "0x100bf150", "name": "MxPalette::GetEntries", "matching": 1.0, "diff": ""}, {"address": "0x100bf170", "name": "MxPalette::SetEntries", "matching": 0.418848167539267, "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 0x14f\n+je 0x13d\n lea edx, [ecx + 0xf]\n mov eax, 0xa\n mov byte ptr [edx], 0x80\n add edx, 4\n dec eax\n jne 0x17\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 0x2f\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 0x5e\n cmp byte ptr [ecx + 0x40c], 0\n jne 0xdb\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 0x115\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 0xec\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 0xf7\n-cmp eax, 0x100\n-jge 0x130\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-jne 0x127\n+dec eax\n+jne 0x115\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 0x13d\n+mov ebp, <OFFSET1>\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": 0.8709677419354839, "diff": "--- \n\n+++ \n\n@@ -1,26 +1,26 @@\n\n push ebx\n xor eax, eax\n+add ecx, 0xc\n mov edx, dword ptr [esp + 8]\n-add ecx, 0xc\n add edx, 0xc\n mov bl, byte ptr [edx]\n cmp byte ptr [ecx], bl\n jne 0x37\n mov bl, byte ptr [edx + 1]\n cmp byte ptr [ecx + 1], bl\n jne 0x3d\n-mov bl, byte ptr [edx + 2]\n-cmp byte ptr [ecx + 2], bl\n+mov bl, byte ptr [ecx + 2]\n+cmp byte ptr [edx + 2], bl\n jne 0x43\n+add ecx, 4\n add edx, 4\n-add ecx, 4\n inc eax\n cmp eax, 0x100\n jl 0xd\n mov al, 1\n pop ebx\n ret 4\n xor al, al\n pop ebx\n ret 4\n xor al, al"}, {"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": "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": "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,26 +14,26 @@\n\n je 0x127\n lea eax, [ecx + 0x20]\n lea ecx, [ebp - 0x2c]\n push eax\n call <OFFSET2>\n mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 4], 0\n cmp dword ptr [ecx + 0x3c], 0\n jne 0xfa\n call <OFFSET3>\n-mov esi, dword ptr [eax]\n-mov edi, eax\n+mov ebx, dword ptr [eax]\n+mov esi, eax\n mov ecx, dword ptr [ebp - 0x10]\n mov eax, 1\n mov dword ptr [ebp - 0x28], <OFFSET4>\n-mov ebx, dword ptr [ecx + 0x1c]\n+mov edi, 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 mov dword ptr [ebp - 0x28], <OFFSET5>\n mov dword ptr [ebp - 0x28], <OFFSET6>\n mov byte ptr [ebp - 0x18], al\n call <OFFSET7>\n@@ -41,39 +41,39 @@\n\n mov dword ptr [ebp - 0x14], eax\n mov byte ptr [ebp - 4], 3\n test eax, eax\n je 0xad\n mov ecx, eax\n call <OFFSET8>\n jmp <OFFSET9>\n xor eax, eax\n mov byte ptr [ebp - 4], 2\n mov dword ptr [ebp - 0x1c], eax\n-mov ecx, dword ptr [ebx + 0x20]\n+mov ecx, dword ptr [edi + 0x20]\n mov edx, dword ptr [eax]\n push ecx\n mov ecx, eax\n call dword ptr [edx + 0x20]\n-mov edx, dword ptr [ebx + 0x1c]\n+mov edx, dword ptr [edi + 0x1c]\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 ax, word ptr [edi + 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], <OFFSET10>\n-call dword ptr [esi + 0x34]\n+call dword ptr [ebx + 0x34]\n mov byte ptr [ebp - 4], 0\n call <OFFSET11>\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], <OFFSET12>\n mov dword ptr [ecx + 8], 0"}, {"address": "0x100b4fc0", "name": "MxPresenter::ParseExtra", "matching": 0.9029126213592233, "diff": "--- \n\n+++ \n\n@@ -10,45 +10,42 @@\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 <OFFSET2>\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 0x12b\n-mov eax, dword ptr [ebp - 0x12]\n+mov esi, dword ptr [eax + 0x7c]\n+test cx, cx\n+je 0x11e\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 [<OFFSET3>]\n mov byte ptr [ebp + eax - 0x310], 0\n push ecx\n lea eax, [ebp - 0x510]\n push edx\n push eax\n call <OFFSET4>\n add esp, 0xc\n test al, al\n-je 0x12b\n+je 0x11e\n mov eax, dword ptr [<OFFSET5>]\n lea ecx, [ebp - 0x510]\n push eax\n push ecx\n call <OFFSET6>\n add esp, 8\n mov edi, eax\n mov ecx, <OFFSET7>\n sub eax, eax\n repne scasb al, byte ptr es:[edi]\n@@ -62,42 +59,45 @@\n\n mov ecx, edx\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n mov eax, dword ptr [<OFFSET5>]\n mov esi, 0\n push eax\n push 0\n call <OFFSET6>\n add esp, 8\n test eax, eax\n-je 0xfb\n+je 0xee\n push eax\n call <OFFSET8>\n add esp, 4\n mov esi, eax\n call <OFFSET9>\n mov ecx, eax\n push ebx\n push esi\n lea eax, [ebp - 0x110]\n push eax\n mov esi, dword ptr [ecx]\n call dword ptr [esi + 0x30]\n mov ecx, dword ptr [ebx + 0x1c]\n or dword ptr [ecx + 0x30], 0x80\n test eax, eax\n-je 0x12b\n+je 0x11e\n call <OFFSET9>\n push eax\n mov ecx, ebx\n call <OFFSET10>\n mov dword ptr [ebp - 4], <OFFSET7>\n call <OFFSET11>\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, <OFFSET12>\n+jmp <OFFSET13>\n+lea ecx, [ebp - 0x10]\n+jmp <OFFSET14>"}, {"address": "0x100b5120", "name": "MxPresenter::SendToCompositePresenter", "matching": 1.0, "diff": ""}, {"address": "0x100b5200", "name": "MxPresenter::Tickle", "matching": 0.821917808219178, "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 <OFFSET2>\n mov dword ptr [ebp - 4], 0\n mov eax, dword ptr [esi + 8]\n dec eax\n cmp eax, 5\n ja 0x89\n-jmp dword ptr [eax*4 + 0x100b52b8]\n+jmp dword ptr [eax*4 + 0x10023758]\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 0x89\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 0x89\n@@ -52,23 +52,21 @@\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, <OFFSET5>\n jmp <OFFSET6>\n lea ecx, [ebp - 0x10]\n jmp <OFFSET7>\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 <OFFSET8>\n-push edx\n-or edx, dword ptr [eax]\n-adc byte ptr [edx + 0xb], 0x10\n+loope 0xf0\n+add dl, byte ptr [eax]\n+out dx, al\n+add dl, byte ptr ss:[eax]\n+sti \n+add dl, byte ptr ss:[eax]\n+or byte ptr [edi], dh\n+add dl, byte ptr [eax]\n+adc eax, <OFFSET8>\n+aaa \n+add dl, byte ptr [eax]"}, {"address": "0x100b52d0", "name": "MxPresenter::Enable", "matching": 1.0, "diff": ""}, {"address": "0x100b5310", "name": "PresenterNameDispatch", "matching": 0.8350515463917526, "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 0xce\n xor eax, eax\n mov ax, word ptr [edx + 0xc]\n sub eax, 3\n cmp eax, 7\n ja 0xce\n-jmp dword ptr [eax*4 + 0x100b53e4]\n+jmp dword ptr [eax*4 + 0x10023884]\n mov eax, dword ptr [edx + 0xa8]\n cmp eax, <OFFSET2>\n je 0x53\n cmp eax, <OFFSET3>\n je 0x68\n mov eax, esi\n pop edi\n pop esi\n ret \n test byte ptr [edx + 0x30], 1\n@@ -73,28 +73,22 @@\n\n pop edi\n mov eax, esi\n pop esi\n ret \n mov esi, <OFFSET15>\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+ljmp 0x238:0x2d100237\n+adc byte ptr [esi + 0x38], bh\n+add dl, byte ptr [eax]\n+cmp byte ptr gs:[edx], al\n+adc byte ptr [ebp + 0x38], ah\n+add dl, byte ptr [eax]\n+outsd dx, dword ptr [esi]\n+cmp byte ptr [edx], al\n+adc byte ptr [ebp + 0x38], ah\n+add dl, byte ptr [eax]\n+jns 0x12a\n+add dl, byte ptr [eax]"}, {"address": "0x100b54c0", "name": "MxPresenter::IsEnabled", "matching": 1.0, "diff": ""}, {"address": "0x1000bfe0", "name": "MxPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000bff0", "name": "MxPresenter::IsA", "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": "0x1001cdd0", "name": "MxCollection<MxPresenter *>::~MxCollection<MxPresenter *>", "matching": 1.0, "diff": ""}, {"address": "0x1001ce20", "name": "MxList<MxPresenter *>::~MxList<MxPresenter *>", "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], <OFFSET2>\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 0x50\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 <OFFSET3>\n add esp, 4\n-mov esi, edi\n+mov edi, esi\n jmp <OFFSET4>\n xor eax, eax\n mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 4], <OFFSET5>\n mov dword ptr [ecx + 8], eax\n mov dword ptr [ecx + 0x14], eax\n mov dword ptr [ecx + 0x10], eax\n call <OFFSET6>\n mov eax, dword ptr [ebp - 0xc]\n pop edi"}, {"address": "0x1001cf70", "name": "MxCollection<MxPresenter *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x1001cfe0", "name": "MxList<MxPresenter *>::`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], <OFFSET2>\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 0x50\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 <OFFSET3>\n add esp, 4\n-mov esi, edi\n+mov edi, esi\n jmp <OFFSET4>\n xor eax, eax\n mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 4], <OFFSET5>\n mov dword ptr [ecx + 8], eax\n mov dword ptr [ecx + 0x14], eax\n mov dword ptr [ecx + 0x10], eax\n call <OFFSET6>\n test byte ptr [ebp + 8], 1\n je 0x7c"}, {"address": "0x1001d090", "name": "MxPtrList<MxPresenter>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"address": "0x100c6110", "name": "MxRAMStreamController::Open", "matching": 1.0, "diff": ""}, {"address": "0x100b9430", "name": "MxRAMStreamController::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b9440", "name": "MxRAMStreamController::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100d0730", "name": "MxRAMStreamProvider::MxRAMStreamProvider", "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": "0x100d0a50", "name": "MxRAMStreamProvider::~MxRAMStreamProvider", "matching": 1.0, "diff": ""}, {"address": "0x100d0970", "name": "MxRAMStreamProvider::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100d0980", "name": "MxRAMStreamProvider::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100c31c0", "name": "MxRegion::MxRegion", "matching": 1.0, "diff": ""}, {"address": "0x100c3660", "name": "MxRegion::vtable20", "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::vtable18", "matching": 0.884020618556701, "diff": "--- \n\n+++ \n\n@@ -28,39 +28,39 @@\n\n mov dword ptr [ebp - 0x34], esi\n mov dword ptr [ebp - 0x3c], <OFFSET4>\n mov dword ptr [ebp - 0x30], 0\n mov dword ptr [ebp - 4], 1\n mov dword ptr [ebp - 0x3c], <OFFSET5>\n mov dword ptr [ebp - 4], 2\n mov dword ptr [ebp - 0x3c], <OFFSET6>\n mov dword ptr [ebp - 4], 3\n mov eax, dword ptr [ebp - 0x28]\n cmp dword ptr [ebp - 0x20], eax\n-jle 0x349\n+jle 0x350\n mov eax, dword ptr [ebp - 0x1c]\n cmp dword ptr [ebp - 0x24], eax\n-jge 0x349\n+jge 0x350\n cmp dword ptr [ebp - 0x30], 0\n jne 0xaf\n mov eax, dword ptr [ebp - 0x34]\n mov ecx, dword ptr [eax + 0x10]\n jmp <OFFSET7>\n mov eax, dword ptr [ebp - 0x30]\n mov ecx, dword ptr [eax + 8]\n mov dword ptr [ebp - 0x30], ecx\n cmp dword ptr [ebp - 0x30], 0\n-je 0x349\n+je 0x350\n mov eax, dword ptr [ebp - 0x30]\n cmp dword ptr [ebp - 0x30], 0\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x14], ecx\n-je 0x349\n+je 0x350\n mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [eax]\n cmp dword ptr [ebp - 0x1c], ecx\n jg 0x17e\n push 0xc\n call <OFFSET8>\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov byte ptr [ebp - 4], 4\n mov esi, eax\n@@ -71,190 +71,193 @@\n\n push eax\n call <OFFSET9>\n mov dword ptr [ebp - 0x2c], eax\n jmp <OFFSET10>\n mov dword ptr [ebp - 0x2c], 0\n mov byte ptr [ebp - 4], 3\n cmp dword ptr [ebp - 0x30], 0\n je 0x173\n mov eax, dword ptr [ebp - 0x30]\n mov ebx, dword ptr [ebp - 0x34]\n-lea esi, [eax + 4]\n+lea edi, [eax + 4]\n push 0xc\n mov dword ptr [ebp - 0x40], eax\n-mov edi, dword ptr [esi]\n+mov esi, dword ptr [edi]\n call <OFFSET8>\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 0x153\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 <OFFSET11>\n mov byte ptr [ebp - 4], 3\n-test edi, edi\n+test esi, esi\n je 0x160\n-mov dword ptr [edi + 8], eax\n+mov dword ptr [esi + 8], eax\n jmp <OFFSET12>\n mov dword ptr [ebx + 0x10], eax\n cmp dword ptr [ebp - 0x40], 0\n je 0x16d\n-mov dword ptr [esi], eax\n+mov dword ptr [edi], eax\n jmp <OFFSET13>\n mov dword ptr [ebx + 0x14], eax\n inc dword ptr [ebx + 8]\n mov eax, dword ptr [ebp - 0x1c]\n mov dword ptr [ebp - 0x24], eax\n jmp <OFFSET14>\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 0x33d\n+jle 0x344\n cmp ebx, ecx\n-jge 0x255\n-mov eax, dword ptr [ebp - 0x28]\n-mov edx, dword ptr [ebp - 0x20]\n-mov ecx, dword ptr [ebp - 0x14]\n-push 0xc\n-mov dword ptr [ebp - 0x54], eax\n-mov dword ptr [ebp - 0x50], ebx\n-mov eax, dword ptr [ebp - 0x1c]\n-mov dword ptr [ebp - 0x4c], edx\n-mov dword ptr [ebp - 0x48], eax\n+jge 0x25c\n+mov ebx, dword ptr [ebp - 0x24]\n+mov esi, dword ptr [ebp - 0x20]\n+lea ecx, [ebp - 0x28]\n+lea edx, [ebp - 0x54]\n+push 0xc\n+mov eax, dword ptr [ecx]\n+mov dword ptr [edx], eax\n+mov eax, dword ptr [ecx + 0xc]\n+mov ecx, dword ptr [ebp - 0x14]\n+mov dword ptr [edx + 4], ebx\n+mov dword ptr [edx + 8], esi\n+mov dword ptr [edx + 0xc], eax\n mov edx, dword ptr [ecx]\n mov dword ptr [ebp - 0x48], edx\n call <OFFSET8>\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov byte ptr [ebp - 4], 6\n mov esi, eax\n test esi, esi\n-je 0x1de\n+je 0x1e5\n lea eax, [ebp - 0x54]\n mov ecx, esi\n push eax\n call <OFFSET9>\n mov dword ptr [ebp - 0x44], eax\n jmp <OFFSET15>\n mov dword ptr [ebp - 0x44], 0\n mov byte ptr [ebp - 4], 3\n cmp dword ptr [ebp - 0x30], 0\n-je 0x248\n+je 0x24f\n mov eax, dword ptr [ebp - 0x30]\n mov edi, dword ptr [ebp - 0x34]\n lea ebx, [eax + 4]\n push 0xc\n mov dword ptr [ebp - 0x2c], eax\n mov esi, dword ptr [ebx]\n call <OFFSET8>\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 0x228\n+je 0x22f\n mov eax, dword ptr [ebp - 0x2c]\n mov ecx, dword ptr [ebp - 0x44]\n push eax\n push esi\n push ecx\n mov ecx, dword ptr [ebp - 0x10]\n call <OFFSET11>\n mov byte ptr [ebp - 4], 3\n test esi, esi\n-je 0x235\n+je 0x23c\n mov dword ptr [esi + 8], eax\n jmp <OFFSET16>\n mov dword ptr [edi + 0x10], eax\n cmp dword ptr [ebp - 0x2c], 0\n-je 0x242\n+je 0x249\n mov dword ptr [ebx], eax\n jmp <OFFSET17>\n mov dword ptr [edi + 0x14], eax\n inc dword ptr [edi + 8]\n mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x24], ecx\n jmp <OFFSET18>\n cmp dword ptr [ebp - 0x24], ecx\n-jle 0x2d5\n+jle 0x2dc\n mov ecx, dword ptr [ebp - 0x14]\n call <OFFSET19>\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 0x2d5\n+je 0x2dc\n mov eax, dword ptr [ebp - 0x30]\n mov edi, dword ptr [ebp - 0x34]\n lea ebx, [eax + 4]\n push 0xc\n mov dword ptr [ebp - 0x2c], eax\n mov esi, dword ptr [ebx]\n call <OFFSET8>\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 0x2b5\n+je 0x2bc\n mov eax, dword ptr [ebp - 0x2c]\n mov ecx, dword ptr [ebp - 0x44]\n push eax\n push esi\n push ecx\n mov ecx, dword ptr [ebp - 0x10]\n call <OFFSET11>\n mov byte ptr [ebp - 4], 3\n test esi, esi\n-je 0x2c2\n+je 0x2c9\n mov dword ptr [esi + 8], eax\n jmp <OFFSET20>\n mov dword ptr [edi + 0x10], eax\n cmp dword ptr [ebp - 0x2c], 0\n-je 0x2cf\n+je 0x2d6\n mov dword ptr [ebx], eax\n jmp <OFFSET21>\n mov dword ptr [edi + 0x14], eax\n inc dword ptr [edi + 8]\n mov eax, dword ptr [ebp - 0x1c]\n mov edx, dword ptr [ebp - 0x40]\n cmp dword ptr [edx], eax\n-jle 0x325\n+jle 0x32c\n mov ecx, dword ptr [ebp - 0x14]\n call <OFFSET19>\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 mov eax, dword ptr [ebp - 0x1c]\n mov dword ptr [ecx], eax\n mov eax, dword ptr [ebp - 0x28]\n mov edx, dword ptr [ebp - 0x20]\n mov ecx, esi\n push edx\n push eax\n call <OFFSET22>\n cmp dword ptr [ebp - 0x30], 0\n-je 0x31d\n+je 0x324\n mov eax, dword ptr [ebp - 0x30]\n push eax\n mov ecx, dword ptr [eax + 4]\n push ecx\n push esi\n mov ecx, dword ptr [ebp - 0x34]\n call <OFFSET23>\n mov eax, dword ptr [ebp - 0x1c]\n mov dword ptr [ebp - 0x24], eax\n jmp <OFFSET14>\n@@ -265,32 +268,32 @@\n\n mov ecx, dword ptr [ebp - 0x14]\n call <OFFSET22>\n mov edx, dword ptr [ebp - 0x40]\n mov ecx, dword ptr [edx]\n mov dword ptr [ebp - 0x24], ecx\n mov eax, dword ptr [ebp - 0x28]\n cmp dword ptr [ebp - 0x20], eax\n jg 0x95\n mov eax, dword ptr [ebp - 0x28]\n cmp dword ptr [ebp - 0x20], eax\n-jle 0x3da\n+jle 0x3e1\n mov eax, dword ptr [ebp - 0x1c]\n cmp dword ptr [ebp - 0x24], eax\n-jge 0x3da\n+jge 0x3e1\n push 0xc\n call <OFFSET8>\n mov dword ptr [ebp - 0x14], eax\n add esp, 4\n mov byte ptr [ebp - 4], 9\n mov esi, eax\n test esi, esi\n-je 0x3c2\n+je 0x3c9\n lea eax, [ebp - 0x28]\n mov ecx, esi\n push eax\n call <OFFSET9>\n jmp <OFFSET24>\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call <OFFSET25>\n add esp, 4\n ret \n@@ -321,45 +324,45 @@\n\n mov byte ptr [ebp - 4], 3\n mov ebx, dword ptr [ecx + 0x14]\n push ebx\n push eax\n call <OFFSET23>\n mov eax, dword ptr [ebp + 8]\n mov edx, dword ptr [ebp - 0x18]\n mov eax, dword ptr [eax]\n mov ecx, dword ptr [edx + 0xc]\n cmp eax, ecx\n-jl 0x3eb\n+jl 0x3f2\n mov eax, ecx\n mov edx, dword ptr [ebp - 0x18]\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 0x400\n+jl 0x407\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\n-jg 0x415\n+jg 0x41c\n mov ecx, eax\n mov edx, dword ptr [ebp - 0x18]\n mov eax, dword ptr [ebp + 8]\n mov dword ptr [edx + 0x14], ecx\n mov ecx, dword ptr [edx + 0x18]\n mov eax, dword ptr [eax + 0xc]\n cmp ecx, eax\n-jg 0x42a\n+jg 0x431\n mov ecx, eax\n mov edx, dword ptr [ebp - 0x18]\n mov dword ptr [ebp - 4], <OFFSET3>\n mov dword ptr [edx + 0x18], ecx\n call <OFFSET26>\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax\n pop esi\n pop ebx\n@@ -374,17 +377,10 @@\n\n lea ecx, [ebp - 0x3c]\n jmp <OFFSET27>\n lea ecx, [ebp - 0x3c]\n jmp <OFFSET28>\n lea ecx, [ebp - 0x3c]\n jmp <OFFSET29>\n mov eax, <OFFSET30>\n jmp <OFFSET31>\n lea ecx, [ebp - 0x3c]\n jmp <OFFSET32>\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100c3e20", "name": "MxRegion::vtable1c", "matching": 1.0, "diff": ""}, {"address": "0x100c4c90", "name": "MxRegionTopBottom::MxRegionTopBottom", "matching": 1.0, "diff": ""}, {"address": "0x100c50e0", "name": "MxRegionTopBottom::MxRegionTopBottom", "matching": 1.0, "diff": ""}, {"address": "0x100c5280", "name": "MxRegionTopBottom::FUN_100c5280", "matching": 1.0, "diff": ""}, {"address": "0x100c55d0", "name": "MxRegionTopBottom::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100c57b0", "name": "MxRegionTopBottom::FUN_100c57b0", "matching": 1.0, "diff": ""}, {"address": "0x100c32e0", "name": "MxCollection<MxRegionTopBottom *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x100c3340", "name": "MxCollection<MxRegionTopBottom *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c33e0", "name": "MxRegionList::Destroy", "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": "0x100c4d80", "name": "MxCollection<MxRegionLeftRight *>::Compare", "matching": 1.0, "diff": ""}, {"address": "0x100c4de0", "name": "MxCollection<MxRegionLeftRight *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c4e80", "name": "MxRegionLeftRightList::Destroy", "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": "0x100c54f0", "name": "MxListCursor<MxRegionLeftRight *>::MxListCursor<MxRegionLeftRight *>", "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 <OFFSET2>\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 0x4e\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 <OFFSET3>\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], <OFFSET4>\n-test edx, edx\n+test ecx, ecx\n je 0x66\n-mov dword ptr [edx + 8], eax\n+mov dword ptr [ecx + 8], eax\n jmp <OFFSET5>\n mov dword ptr [edi + 0x10], eax\n-test ecx, ecx\n+test edx, edx\n je 0x85\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 <OFFSET6>"}, {"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": "0x100bf4f0", "name": "MxScheduler::GetInstance", "matching": 1.0, "diff": ""}, {"address": "0x100bf500", "name": "MxScheduler::StartMultiTasking", "matching": 1.0, "diff": ""}, {"address": "0x100c87d0", "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": "0x100b3650", "name": "MxSmkPresenter::MxSmkPresenter", "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": "0x100b3960", "name": "MxSmkPresenter::CreateBitmap", "matching": 1.0, "diff": ""}, {"address": "0x100b4260", "name": "MxSmkPresenter::VTable0x88", "matching": 0.36363636363636365, "diff": "--- \n\n+++ \n\n@@ -1,40 +1,37 @@\n\n test byte ptr [ecx + 0x78], 1\n+push ebx\n push esi\n push edi\n-je 0x2c\n-mov esi, dword ptr [ecx + 0x71c]\n+mov ebx, dword ptr [ecx + 0x71c]\n+je 0x3a\n+mov edi, dword ptr [ecx + 0x70]\n+mov eax, ebx\n sub edx, edx\n+div edi\n+mov esi, eax\n+cmp ebx, 1\n+jbe 0x34\n+mov eax, ebx\n+sub edx, edx\n+div edi\n+cmp edx, 1\n+jne 0x34\n+mov dword ptr [ecx + 0x71c], 1\n mov eax, esi\n-div dword ptr [ecx + 0x70]\n-cmp esi, 1\n-jbe 0x50\n-cmp edx, 1\n-jne 0x50\n-mov dword ptr [ecx + 0x71c], 1\n pop edi\n pop esi\n+pop ebx\n ret \n-mov eax, dword ptr [ecx + 0x71c]\n-cmp dword ptr [ecx + 0x70], eax\n-jne 0x50\n-lea edi, [ecx + 0xd4]\n+cmp dword ptr [ecx + 0x70], ebx\n+jne 0x5a\n+xor ebx, ebx\n+lea edi, [ecx + 0xd0]\n+mov dword ptr [ecx + 0x71c], 0\n xor eax, eax\n-mov dword ptr [ecx + 0x71c], 0\n mov ecx, 0xc1\n rep stosd dword ptr es:[edi], eax\n+mov eax, ebx\n pop edi\n pop esi\n+pop ebx\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 "}, {"address": "0x100b42c0", "name": "MxSmkPresenter::VTable0x70", "matching": 1.0, "diff": ""}, {"address": "0x100b4300", "name": "MxSmkPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100c5d40", "name": "MxSmkPresenter::FUN_100c5d40", "matching": 1.0, "diff": ""}, {"address": "0x100b3730", "name": "MxSmkPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b3740", "name": "MxSmkPresenter::IsA", "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 0x10\n mov eax, <OFFSET1>\n ret 4\n-mov eax, dword ptr [eax*4 + 0x1010141c]\n+mov eax, dword ptr [eax*4 + 0x10057428]\n ret 4"}, {"address": "0x100aed10", "name": "MxSoundManager::Pause", "matching": 1.0, "diff": ""}, {"address": "0x100aee10", "name": "MxSoundManager::Resume", "matching": 1.0, "diff": ""}, {"address": "0x1000d430", "name": "MxSoundPresenter::~MxSoundPresenter", "matching": 1.0, "diff": ""}, {"address": "0x1000d490", "name": "MxSoundPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b1a50", "name": "MxSoundPresenter::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b1aa0", "name": "MxSoundPresenter::AddToManager", "matching": 1.0, "diff": ""}, {"address": "0x1000d4a0", "name": "MxSoundPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000d4b0", "name": "MxSoundPresenter::IsA", "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": "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 0x15\n push eax\n call <OFFSET1>\n add esp, 4\n mov ebx, dword ptr [esp + 0x10]\n mov eax, dword ptr [ebx + 0x14]\n push eax\n call <OFFSET2>\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": "0x100ba1e0", "name": "MxStillPresenter::ParseExtra", "matching": 0.6923076923076923, "diff": "--- \n\n+++ \n\n@@ -1,63 +1,67 @@\n\n sub esp, 0x400\n push ebx\n push esi\n push edi\n mov ebx, ecx\n call <OFFSET1>\n mov eax, dword ptr [ebx + 0x1c]\n test byte ptr [eax + 0x30], 0x10\n je 0x1d\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 0xce\n-mov eax, dword ptr [esp + 0xc]\n+xor edx, edx\n+mov dx, word ptr [eax + 0x80]\n+test edx, edx\n+je 0xc2\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 [<OFFSET2>]\n-mov byte ptr [esp + eax + 0xc], 0\n-lea eax, [esp + 0x20c]\n+lea eax, [esp + 0xc]\n+mov ecx, dword ptr [<OFFSET2>]\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 <OFFSET3>\n add esp, 0xc\n test al, al\n-je 0x9c\n+je 0x90\n lea eax, [esp + 0x20c]\n push <OFFSET4>\n push eax\n call <OFFSET5>\n add esp, 8\n test eax, eax\n-jne 0x9c\n+jne 0x90\n push 0\n mov eax, dword ptr [ebx]\n mov ecx, ebx\n call dword ptr [eax + 0x54]\n lea eax, [esp + 0xc]\n mov ecx, dword ptr [<OFFSET6>]\n lea edx, [esp + 0x20c]\n push eax\n push ecx\n push edx\n call <OFFSET3>\n add esp, 0xc\n test al, al\n-je 0xce\n+je 0xc2\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": "0x100b1fe0", "name": "MxStreamChunk::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b1ff0", "name": "MxStreamChunk::IsA", "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 0x11\n xor al, al\n ret 8\n mov al, 1\n-jae 0x17\n+jbe 0x17\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": "0x100b5990", "name": "MxCollection<MxStreamChunk *>::Destroy", "matching": 1.0, "diff": ""}, {"address": "0x100b59a0", "name": "MxList<MxStreamChunk *>::~MxList<MxStreamChunk *>", "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": ""}, {"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": "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": 1.0, "diff": ""}, {"address": "0x100c0e40", "name": "list<MxDSSubscriber *,allocator<MxDSSubscriber *> >::_Buynode", "matching": 1.0, "diff": ""}, {"address": "0x100c0e70", "name": "list<MxNextActionDataStart *,allocator<MxNextActionDataStart *> >::~list<MxNextActionDataStart *,allocator<MxNextActionDataStart *> >", "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 <OFFSET1>\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 0x16\n mov eax, dword ptr [esi + 4]\n push eax\n call <OFFSET1>\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": "0x100c0ee0", "name": "list<MxNextActionDataStart *,allocator<MxNextActionDataStart *> >::_Buynode", "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": "0x100c1520", "name": "MxStreamController::Open", "matching": 1.0, "diff": ""}, {"address": "0x100c1690", "name": "MxStreamController::vtable0x20", "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 0x73\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 <OFFSET3>\n mov byte ptr [ebp - 4], 1\n mov eax, dword ptr [ebp + 0xc]\n+mov dword ptr [esi], <OFFSET4>\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], <OFFSET4>\n jmp <OFFSET5>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET6>\n xor edi, edi\n mov dword ptr [ebp - 4], <OFFSET7>\n test edi, edi\n jne 0x98\n mov eax, <OFFSET7>\n mov ecx, dword ptr [ebp - 0xc]\n pop edi"}, {"address": "0x100c1c10", "name": "MxStreamController::vtable0x2c", "matching": 1.0, "diff": ""}, {"address": "0x100c0f10", "name": "MxStreamController::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100c0f20", "name": "MxStreamController::IsA", "matching": 1.0, "diff": ""}, {"address": "0x100b8f00", "name": "MxStreamer::MxStreamer", "matching": 0.7261904761904762, "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 0x58\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 0x7b\n-mov byte ptr [ebp - 4], 4\n+mov byte ptr [ebp - 4], 6\n push esi\n mov dword ptr [esi], <OFFSET4>\n call <OFFSET5>\n mov ecx, eax\n call <OFFSET6>\n mov dword ptr [ebp - 4], <OFFSET7>\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 <OFFSET8>\n mov ecx, dword ptr [ebp - 0x14]\n-add ecx, 0x14\n+add ecx, 0x20\n jmp <OFFSET9>\n mov ecx, dword ptr [ebp - 0x14]\n-add ecx, 8\n+add ecx, 0x14\n+jmp <OFFSET8>\n+mov ecx, dword ptr [ebp - 0x14]\n+add ecx, 0x14\n jmp <OFFSET10>\n mov ecx, dword ptr [ebp - 0x14]\n add ecx, 8\n jmp <OFFSET11>\n-mov eax, <OFFSET12>\n-jmp <OFFSET13>\n mov ecx, dword ptr [ebp - 0x14]\n+add ecx, 8\n+jmp <OFFSET12>\n+mov eax, <OFFSET13>\n jmp <OFFSET14>\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, <OFFSET15>\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n+mov ecx, dword ptr [ebp - 0x14]\n+jmp <OFFSET15>"}, {"address": "0x100b9190", "name": "MxStreamer::Create", "matching": 1.0, "diff": ""}, {"address": "0x100b91d0", "name": "MxStreamer::~MxStreamer", "matching": 1.0, "diff": ""}, {"address": "0x100b92c0", "name": "MxStreamer::Open", "matching": 0.8558139534883721, "diff": "--- \n\n+++ \n\n@@ -8,82 +8,83 @@\n\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 call <OFFSET2>\n test eax, eax\n-jne 0x68\n+jne 0x6e\n mov eax, dword ptr [ebp + 0xc]\n and eax, 0xffff\n-je 0x7d\n+je 0x83\n cmp eax, 1\n-je 0xbe\n+je 0xc4\n test ebx, ebx\n-je 0x68\n-mov esi, dword ptr [ebx]\n+je 0x6c\n push edi\n+mov eax, dword ptr [ebx]\n mov ecx, ebx\n-call dword ptr [esi + 0x14]\n+call dword ptr [eax + 0x14]\n test eax, eax\n-jne 0x5c\n+jne 0x60\n push ebx\n mov ecx, dword ptr [ebp - 0x14]\n call <OFFSET3>\n test eax, eax\n-je 0x68\n+je 0x6e\n test ebx, ebx\n-je 0x66\n+je 0x6c\n push 1\n+mov eax, dword ptr [ebx]\n mov ecx, ebx\n-call dword ptr [esi]\n+call dword ptr [eax]\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 <OFFSET4>\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov dword ptr [ebp - 4], 0\n mov esi, eax\n mov eax, 0\n test esi, esi\n-je 0xa6\n+je 0xac\n mov ecx, esi\n call <OFFSET5>\n mov dword ptr [ebp - 4], <OFFSET6>\n mov ebx, eax\n jmp <OFFSET7>\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call <OFFSET8>\n add esp, 4\n ret \n push 0x98\n mov ebx, 1\n call <OFFSET4>\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 0x113\n+je 0x119\n mov ecx, esi\n call <OFFSET9>\n mov byte ptr [ebp - 4], 2\n lea ecx, [esi + 0x64]\n call <OFFSET10>\n mov byte ptr [ebp - 4], 3\n mov dword ptr [esi], <OFFSET11>\n mov byte ptr [ebp - 4], bl\n mov ebx, esi\n jmp <OFFSET12>\n@@ -95,16 +96,10 @@\n\n xor ebx, ebx\n mov dword ptr [ebp - 4], <OFFSET6>\n jmp <OFFSET7>\n mov eax, <OFFSET15>\n jmp <OFFSET16>\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call <OFFSET8>\n add esp, 4\n ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100b9570", "name": "MxStreamer::Close", "matching": 0.8114754098360656, "diff": "--- \n\n+++ \n\n@@ -17,22 +17,22 @@\n\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 je 0x92\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 0xb6\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 0x7c\n or cl, cl\n je 0x78\n mov cl, byte ptr [eax + 1]\n cmp cl, byte ptr [edx + 1]\n jne 0x7c\n add eax, 2\n add edx, 2\n@@ -73,50 +73,50 @@\n\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call <OFFSET6>\n add esp, 4\n lea eax, [ebp - 0xb0]\n mov ecx, edi\n dec dword ptr [esi + 0x10]\n push eax\n call <OFFSET7>\n test al, al\n-je 0xff\n-test edi, edi\n-je 0x14b\n-push 1\n-mov eax, dword ptr [edi]\n-mov ecx, edi\n-call dword ptr [eax]\n-jmp <OFFSET8>\n-mov dword ptr [ebp - 0x1c], <OFFSET9>\n+jne 0x154\n+mov dword ptr [ebp - 0x1c], <OFFSET8>\n mov byte ptr [ebp - 4], 1\n mov dword ptr [ebp - 0x18], 6\n mov byte ptr [ebp - 4], 2\n xor ebx, ebx\n lea eax, [ebp - 0x1c]\n push eax\n mov dword ptr [ebp - 0x14], ebx\n+mov dword ptr [ebp - 0x1c], <OFFSET9>\n+mov dword ptr [ebp - 0x1c], <OFFSET10>\n push esi\n+mov dword ptr [ebp - 0x10], edi\n+mov byte ptr [ebp - 4], 3\n+call <OFFSET11>\n+mov ecx, eax\n+call <OFFSET12>\n mov byte ptr [ebp - 4], bl\n-mov dword ptr [ebp - 0x1c], <OFFSET10>\n-mov dword ptr [ebp - 0x1c], <OFFSET11>\n-mov byte ptr [ebp - 4], 3\n-mov dword ptr [ebp - 0x10], edi\n-call <OFFSET12>\n-mov ecx, eax\n call <OFFSET13>\n-mov byte ptr [ebp - 4], bl\n-call <OFFSET14>\n-mov dword ptr [ebp - 4], <OFFSET4>\n-call <OFFSET5>\n-xor eax, eax\n+jmp <OFFSET14>\n+lea ecx, [ebp - 0x1c]\n jmp <OFFSET15>\n lea ecx, [ebp - 0x1c]\n jmp <OFFSET16>\n lea ecx, [ebp - 0x1c]\n jmp <OFFSET17>\n-lea ecx, [ebp - 0x1c]\n+test edi, edi\n+je 0x160\n+push 1\n+mov eax, dword ptr [edi]\n+mov ecx, edi\n+call dword ptr [eax]\n+mov dword ptr [ebp - 4], <OFFSET4>\n+call <OFFSET5>\n+xor eax, eax\n jmp <OFFSET18>\n mov eax, <OFFSET19>\n jmp <OFFSET20>\n lea ecx, [ebp - 0xb0]\n+jmp <OFFSET21>"}, {"address": "0x100b9700", "name": "MxStreamerNotification::Clone", "matching": 1.0, "diff": ""}, {"address": "0x100b9870", "name": "MxStreamer::GetOpenStream", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,17 +1,17 @@\n\n sub esp, 4\n mov eax, dword ptr [ecx + 0xc]\n push ebx\n mov edx, dword ptr [eax]\n mov dword ptr [esp + 4], edx\n push esi\n-cmp edx, eax\n+cmp eax, edx\n je 0x60\n mov edx, dword ptr [esp + 0x10]\n mov eax, dword ptr [esp + 8]\n mov eax, dword ptr [eax + 8]\n add eax, 0x24\n test edx, edx\n je 0x51\n mov eax, dword ptr [eax]\n mov esi, edx\n mov bl, byte ptr [eax]"}, {"address": "0x100b9930", "name": "MxStreamer::AddStreamControllerToOpenList", "matching": 0.8269230769230769, "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 eax, edx\n je 0x2a\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 0x26\n mov eax, dword ptr [eax]\n cmp eax, dword ptr [esp + 0x14]\n jne 0x15\n-cmp eax, ecx\n+cmp eax, edx\n jne 0x71\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 <OFFSET1>\n add esp, 4\n test edi, edi\n je 0x4c\n mov ecx, dword ptr [esp + 0xc]\n mov dword ptr [eax], ecx\n mov dword ptr [eax + 4], edi\n jmp <OFFSET2>\n mov dword ptr [eax], eax"}, {"address": "0x100b99b0", "name": "MxStreamer::FUN_100b99b0", "matching": 1.0, "diff": ""}, {"address": "0x100b9b30", "name": "MxStreamer::FUN_100b9b30", "matching": 1.0, "diff": ""}, {"address": "0x100b9b60", "name": "MxStreamer::Notify", "matching": 0.46153846153846156, "diff": "--- \n\n+++ \n\n@@ -1,71 +1,72 @@\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-jne 0xc6\n-mov edi, dword ptr [eax + 0xc]\n+mov esi, dword ptr [ebp + 8]\n+mov edi, ecx\n+cmp dword ptr [esi + 4], 6\n+jne 0xd7\n lea ecx, [ebp - 0xb0]\n+xor ebx, ebx\n call <OFFSET2>\n lea eax, [ebp - 0xb0]\n-mov ecx, edi\n-mov dword ptr [ebp - 4], 0\n+mov dword ptr [ebp - 4], ebx\n+mov esi, dword ptr [esi + 0xc]\n+push eax\n mov word ptr [ebp - 0x8c], 0xfffe\n-push eax\n+mov ecx, esi\n call <OFFSET3>\n test al, al\n-je 0x6e\n-test edi, edi\n-je 0xba\n-push 1\n-mov eax, dword ptr [edi]\n-mov ecx, edi\n-call dword ptr [eax]\n-jmp <OFFSET4>\n-mov dword ptr [ebp - 0x1c], <OFFSET5>\n+jne 0xbf\n+mov dword ptr [ebp - 0x1c], <OFFSET4>\n mov byte ptr [ebp - 4], 1\n mov dword ptr [ebp - 0x18], 6\n+lea eax, [ebp - 0x1c]\n+mov dword ptr [ebp - 0x14], ebx\n+mov dword ptr [ebp - 0x1c], <OFFSET5>\n+mov byte ptr [ebp - 4], 2\n+push eax\n+mov dword ptr [ebp - 0x10], esi\n mov dword ptr [ebp - 0x1c], <OFFSET6>\n-xor ebx, ebx\n-lea eax, [ebp - 0x1c]\n-push eax\n-mov dword ptr [ebp - 0x14], ebx\n-mov byte ptr [ebp - 4], 2\n-push esi\n-mov dword ptr [ebp - 0x10], edi\n-mov dword ptr [ebp - 0x1c], <OFFSET7>\n+mov byte ptr [ebp - 4], 3\n+push edi\n+call <OFFSET7>\n+mov ecx, eax\n+call <OFFSET8>\n mov byte ptr [ebp - 4], bl\n-mov byte ptr [ebp - 4], 3\n-call <OFFSET8>\n-mov ecx, eax\n call <OFFSET9>\n-mov byte ptr [ebp - 4], bl\n-call <OFFSET10>\n-mov dword ptr [ebp - 4], <OFFSET11>\n-call <OFFSET12>\n+jmp <OFFSET10>\n+lea ecx, [ebp - 0x1c]\n+jmp <OFFSET11>\n+lea ecx, [ebp - 0x1c]\n+jmp <OFFSET12>\n+lea ecx, [ebp - 0x1c]\n+jmp <OFFSET13>\n+test esi, esi\n+je 0xcb\n+push 1\n+mov eax, dword ptr [esi]\n+mov ecx, esi\n+call dword ptr [eax]\n+mov dword ptr [ebp - 4], <OFFSET14>\n+call <OFFSET15>\n xor eax, eax\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-lea ecx, [ebp - 0x1c]\n-jmp <OFFSET13>\n-lea ecx, [ebp - 0x1c]\n-jmp <OFFSET14>\n-lea ecx, [ebp - 0x1c]\n-jmp <OFFSET15>\n mov eax, <OFFSET16>\n jmp <OFFSET17>\n+lea ecx, [ebp - 0xb0]\n+jmp <OFFSET18>"}, {"address": "0x100b9000", "name": "MxStreamer::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x100b9010", "name": "MxStreamer::IsA", "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 0x68\n mov ebx, dword ptr [esp + 0x18]\n mov ecx, dword ptr [ebx + 0x1c]\n cmp ecx, -1\n je 0x30\n mov eax, dword ptr [esp + 0x10]\n mov ebp, dword ptr [eax + 8]\n cmp dword ptr [ebp + 0x1c], ecx\n jne 0x5a\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 0x5a\n cmp bp, -3\n mov eax, dword ptr [esp + 0x10]\n mov edi, dword ptr [eax + 8]\n jne 0x68\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 0x1f\n cmp byte ptr [esp + 0x1c], 0\n je 0x98\n test edi, edi\n je 0x98\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": "0x100c2240", "name": "MxStreamListMxNextActionDataStart::Find", "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 0x74\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 0x38\n cmp bx, -2\n je 0x51\n cmp word ptr [eax + 0xc], bx\n je 0x51\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 0x20\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": "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": "0x100ae200", "name": "MxString::MxString", "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 0x5f\n push eax\n mov edi, esi\n call <OFFSET1>\n add esp, 4\n mov ecx, <OFFSET2>\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": "0x100cb3c0", "name": "MxCollection<MxString>::Compare", "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": "0x100cbb40", "name": "MxList<MxString>::Append", "matching": 1.0, "diff": ""}, {"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": "0x100b8bb0", "name": "MxTickleThread::MxTickleThread", "matching": 1.0, "diff": ""}, {"address": "0x100b8c90", "name": "MxTickleThread::Run", "matching": 0.5348837209302325, "diff": "--- \n\n+++ \n\n@@ -1,43 +1,43 @@\n\n push ebx\n push esi\n push edi\n+mov esi, ecx\n push ebp\n-mov ebp, ecx\n call <OFFSET1>\n-mov esi, eax\n-mov edi, dword ptr [ebp + 0x1c]\n-neg edi\n-cmp byte ptr [ebp + 0xc], 0\n+mov edi, eax\n+mov ebx, dword ptr [esi + 0x1c]\n+neg ebx\n+cmp byte ptr [esi + 0xc], 0\n je 0x5d\n-cmp byte ptr [esi + 0xc], 0\n+cmp byte ptr [edi + 0xc], 0\n je 0x26\n-mov ebx, dword ptr [<OFFSET2>]\n+mov ebp, dword ptr [<OFFSET2>]\n jmp <OFFSET3>\n-mov ebx, dword ptr [<OFFSET4>]\n-sub ebx, dword ptr [esi + 8]\n-cmp ebx, edi\n+mov ebp, dword ptr [<OFFSET4>]\n+sub ebp, dword ptr [edi + 8]\n+cmp ebp, ebx\n jge 0x38\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 ebx, dword ptr [esi + 0x1c]\n+neg ebx\n+mov eax, dword ptr [esi + 0x1c]\n+sub eax, ebp\n+add eax, ebx\n test eax, eax\n jg 0x4f\n-mov ecx, dword ptr [ebp + 0x18]\n-mov edi, ebx\n+mov ecx, dword ptr [esi + 0x18]\n+mov ebx, ebp\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, esi\n call <OFFSET5>\n-cmp byte ptr [ebp + 0xc], 0\n+cmp byte ptr [esi + 0xc], 0\n jne 0x18\n-mov ecx, ebp\n+mov ecx, esi\n call <OFFSET6>\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret "}, {"address": "0x100bf510", "name": "MxThread::MxThread", "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": "0x100bdd10", "name": "MxTickleClient::MxTickleClient", "matching": 1.0, "diff": ""}, {"address": "0x100bdd30", "name": "MxTickleManager::~MxTickleManager", "matching": 1.0, "diff": ""}, {"address": "0x100bdde0", "name": "MxTickleManager::Tickle", "matching": 0.5362318840579711, "diff": "--- \n\n+++ \n\n@@ -4,67 +4,65 @@\n\n push edi\n mov esi, ecx\n push ebp\n call <OFFSET1>\n cmp byte ptr [eax + 0xc], 0\n je 0x1c\n mov edi, dword ptr [<OFFSET2>]\n jmp <OFFSET3>\n mov edi, dword ptr [<OFFSET4>]\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+mov eax, dword ptr [esi + 0xc]\n+mov ecx, dword ptr [eax]\n+mov dword ptr [esp + 0x10], ecx\n cmp eax, ecx\n-je 0x96\n-mov ebx, dword ptr [ebp + 8]\n-test byte ptr [ebx + 0xc], 1\n-je 0x6d\n-lea ecx, [ebp + 4]\n-mov dword ptr [esp + 0x10], ebp\n-mov eax, ebp\n-mov ebp, dword ptr [ebp]\n+je 0xae\n+mov ebx, 1\n+mov eax, dword ptr [esp + 0x10]\n+mov ebp, dword ptr [eax + 8]\n+test word ptr [ebp + 0xc], bx\n+je 0x79\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 <OFFSET5>\n add esp, 4\n dec dword ptr [esi + 0x10]\n-push ebx\n+push ebp\n call <OFFSET5>\n add esp, 4\n jmp <OFFSET6>\n-mov ebp, dword ptr [ebp]\n-cmp dword ptr [ebx + 8], edi\n-jle 0x7d\n-mov eax, dword ptr [ebx + 4]\n+cmp dword ptr [ebp + 8], edi\n+jl 0x86\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 0x91\n-mov ecx, dword ptr [ebx]\n+jge 0x9b\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 0x30\n+mov dword ptr [ebp + 8], edi\n+mov eax, dword ptr [esp + 0x10]\n+mov ecx, dword ptr [eax]\n+mov dword ptr [esp + 0x10], ecx\n+mov eax, dword ptr [esp + 0x10]\n+cmp dword ptr [esi + 0xc], eax\n+jne 0x37\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 <OFFSET7>\n-push eax\n-mov dword ptr fs:[0], esp"}, {"address": "0x100bde80", "name": "MxTickleManager::RegisterClient", "matching": 1.0, "diff": ""}, {"address": "0x100bdf60", "name": "MxTickleManager::UnregisterClient", "matching": 1.0, "diff": ""}, {"address": "0x100bdfa0", "name": "MxTickleManager::SetClientTickleInterval", "matching": 0.2413793103448276, "diff": "--- \n\n+++ \n\n@@ -1,30 +1,28 @@\n\n sub esp, 4\n+mov edx, dword ptr [ecx + 0xc]\n push esi\n-push edi\n-mov esi, dword ptr [ecx + 0xc]\n-mov eax, dword ptr [esi]\n-mov dword ptr [esp + 8], eax\n-cmp esi, eax\n-je 0x49\n-mov edx, dword ptr [esp + 0x10]\n-mov edi, 1\n-mov eax, dword ptr [esp + 8]\n-mov ecx, dword ptr [eax + 8]\n-cmp dword ptr [ecx], edx\n-jne 0x2c\n-test word ptr [ecx + 0xc], di\n-je 0x42\n-mov eax, dword ptr [esp + 8]\n-mov ecx, dword ptr [eax]\n-mov dword ptr [esp + 8], ecx\n-cmp esi, ecx\n-jne 0x1b\n-pop edi\n+mov eax, dword ptr [edx]\n+mov dword ptr [esp + 4], eax\n+cmp edx, eax\n+je 0x47\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 0x2b\n+test word ptr [eax + 0xc], si\n+je 0x40\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+jne 0x1a\n pop esi\n add esp, 4\n ret 8\n-mov eax, dword ptr [esp + 0x14]\n-mov dword ptr [ecx + 4], eax\n-pop edi\n+mov ecx, dword ptr [esp + 0x10]\n+mov dword ptr [eax + 4], ecx\n pop esi\n add esp, 4\n+ret 8"}, {"address": "0x100be000", "name": "MxTickleManager::GetClientTickleInterval", "matching": 1.0, "diff": ""}, {"address": "0x100ae060", "name": "MxTimer::MxTimer", "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": "0x1004b8d0", "name": "MxTransitionManager::MxTransitionManager", "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.8951048951048951, "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 0x83\n-jmp dword ptr [eax*4 + 0x1004bb4c]\n+jmp dword ptr [eax*4 + 0x1002948c]\n mov ecx, ebx\n call <OFFSET2>\n xor eax, eax\n pop edi\n pop esi\n pop ebx\n ret \n mov ecx, ebx\n call <OFFSET3>\n xor eax, eax\n@@ -56,18 +56,15 @@\n\n pop ebx\n ret \n mov ecx, ebx\n call <OFFSET7>\n xor eax, eax\n pop edi\n pop esi\n pop ebx\n ret \n lea ecx, [ecx]\n-sti \n-mov edx, <OFFSET8>\n-add al, 0x10\n-adc eax, <OFFSET9>\n-mov ebx, <OFFSET10>\n-add al, 0x10\n-cmp al, 0xbb\n-add al, 0x10\n+cmp edx, dword ptr [edx + eax + 0x2944810]\n+adc byte ptr [ebp - 0x6c], dl\n+add dl, byte ptr [eax]\n+bound edx, qword ptr [edx + eax + 0x2946f10]\n+adc byte ptr [esp + edx*4 + 2], bh"}, {"address": "0x1004bb70", "name": "MxTransitionManager::StartTransition", "matching": 0.8070175438596491, "diff": "--- \n\n+++ \n\n@@ -1,33 +1,33 @@\n\n push esi\n push edi\n cmp dword ptr [ecx + 0x2c], 0\n mov esi, ecx\n-jne 0xb2\n+jne 0xb4\n cmp byte ptr [esp + 0x18], 0\n jne 0x21\n call <OFFSET1>\n mov ecx, eax\n call <OFFSET2>\n mov eax, dword ptr [esp + 0xc]\n-mov cl, byte ptr [esi + 0x20]\n+mov dl, byte ptr [esi + 0x20]\n+mov cl, dl\n mov dword ptr [esi + 0x2c], eax\n-mov al, byte ptr [esp + 0x14]\n-xor al, cl\n-and al, 1\n-xor al, cl\n-mov byte ptr [esi + 0x20], al\n-test al, 1\n-je 0x5e\n+xor cl, byte ptr [esp + 0x14]\n+and cl, 1\n+xor cl, dl\n+test cl, 1\n+mov byte ptr [esi + 0x20], cl\n+je 0x60\n mov ecx, dword ptr [esi + 8]\n test ecx, ecx\n-je 0x5e\n+je 0x60\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x54]\n mov eax, dword ptr [esi + 8]\n mov eax, dword ptr [eax + 0x1c]\n mov dword ptr [eax + 0x3c], 0x2710\n or dword ptr [eax + 0x30], 0x200\n call dword ptr [<OFFSET3>]\n mov edi, dword ptr [esp + 0x10]\n mov dword ptr [esi + 0x8f8], eax\n@@ -47,12 +47,10 @@\n\n call <OFFSET7>\n add esp, 4\n xor eax, eax\n pop edi\n pop esi\n ret 0x10\n mov eax, <OFFSET8>\n pop edi\n pop esi\n ret 0x10\n-int3 \n-int3 "}, {"address": "0x1004bc30", "name": "MxTransitionManager::EndTransition", "matching": 1.0, "diff": ""}, {"address": "0x1004bcf0", "name": "MxTransitionManager::Transition_None", "matching": 1.0, "diff": ""}, {"address": "0x1004bd10", "name": "MxTransitionManager::Transition_Dissolve", "matching": 0.875, "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 0x44\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 <OFFSET2>\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 0x74\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,82 +70,84 @@\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 0x1ae\n+jne 0x1ab\n lea eax, [esp + 0x10]\n mov ecx, esi\n push eax\n xor edi, edi\n call <OFFSET4>\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 0x159\n+jl 0x156\n add eax, 0xf\n cmp eax, ecx\n-jl 0x159\n+jl 0x156\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 0x13b\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+jne 0x13e\n+imul ebp, ecx\n+add ebp, edx\n+mov eax, dword ptr [esp + 0x34]\n+mov byte ptr [ebp + eax], 0\n jmp <OFFSET5>\n-mov ebp, dword ptr [esp + 0x20]\n+imul ebp, ecx\n+add ebp, edx\n mov eax, dword ptr [esp + 0x34]\n-imul ebp, ecx\n-lea edx, [ebp + edx*2]\n-mov word ptr [edx + eax], 0\n+mov word ptr [eax + ebp*2], 0\n inc ecx\n cmp ecx, 0x1e0\n jl 0x110\n inc edi\n cmp edi, 0x280\n jl 0xee\n lea eax, [esp + 0x10]\n mov ecx, esi\n push eax\n call <OFFSET6>\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 call <OFFSET7>\n test byte ptr [eax + 0x44], 2\n-je 0x1aa\n+je 0x1a7\n call <OFFSET7>\n mov eax, dword ptr [eax + 0x58]\n push 0x10\n push <OFFSET8>\n mov ecx, dword ptr [esi + 0x30]\n mov eax, dword ptr [eax + 0x2c]\n push ecx\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::Transition_Pixelation", "matching": 0.8089887640449438, "diff": "--- \n\n+++ \n\n@@ -81,105 +81,107 @@\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 0x289\n+jne 0x28e\n lea eax, [esp + 0x20]\n mov ecx, dword ptr [esp + 0x10]\n push eax\n call <OFFSET4>\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 0x220\n+jl 0x225\n add eax, 3\n cmp eax, ecx\n-jl 0x220\n+jl 0x225\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 + 0x30]\n+imul ebx, dword ptr [esp + 0x1c]\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 0x1a3\n xor edx, edx\n-mov dl, byte ptr [edi]\n+mov dl, byte ptr [ebx]\n jmp <OFFSET5>\n xor edx, edx\n-mov dx, word ptr [edi]\n-lea edi, [ecx - 0xa]\n-cmp edi, ecx\n-jge 0x208\n+mov dx, word ptr [ebx]\n+lea ebx, [ecx - 0xa]\n+cmp ebx, ecx\n+jge 0x20d\n cmp dword ptr [esp + 0x74], 8\n-jne 0x1dc\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-imul eax, dword ptr [esp + 0x30]\n+jne 0x1e4\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, dword ptr [esp + 0x30]\n+imul eax, ebx\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+add eax, edi\n+mov dword ptr [eax], ebp\n+mov dword ptr [eax + 4], ebp\n+mov word ptr [eax + 8], bp\n jmp <OFFSET6>\n-movzx ebx, dx\n-mov eax, edi\n-mov ebp, ebx\n-imul eax, dword ptr [esp + 0x30]\n+movzx eax, dx\n+mov ebp, eax\n shl ebp, 0x10\n+or ebp, eax\n+mov eax, dword ptr [esp + 0x30]\n+imul eax, ebx\n lea eax, [eax + esi*2]\n-mov bp, bx\n-add eax, dword ptr [esp + 0x44]\n+add eax, edi\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+inc ebx\n+cmp ebx, ecx\n jl 0x1af\n add ecx, 0xa\n inc dword ptr [esp + 0x1c]\n add dword ptr [esp + 0x18], 2\n cmp ecx, 0x1ea\n jl 0x154\n inc dword ptr [esp + 0x14]\n cmp dword ptr [esp + 0x14], 0x40\n jl 0x112\n lea eax, [esp + 0x20]\n@@ -188,21 +190,21 @@\n\n call <OFFSET7>\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 call dword ptr [ebx + 0x80]\n call <OFFSET8>\n test byte ptr [eax + 0x44], 2\n-je 0x281\n+je 0x286\n call <OFFSET8>\n mov eax, dword ptr [eax + 0x58]\n push 0x10\n mov edx, dword ptr [esp + 0x14]\n push <OFFSET9>\n mov eax, dword ptr [eax + 0x2c]\n mov ecx, dword ptr [edx + 0x30]\n push ecx\n push 0\n push 0\n@@ -210,15 +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 "}, {"address": "0x1004c170", "name": "MxTransitionManager::Transition_Wipe", "matching": 1.0, "diff": ""}, {"address": "0x1004c270", "name": "MxTransitionManager::Transition_Windows", "matching": 1.0, "diff": ""}, {"address": "0x1004c3e0", "name": "MxTransitionManager::Transition_Broken", "matching": 1.0, "diff": ""}, {"address": "0x1004c470", "name": "MxTransitionManager::SetWaitIndicator", "matching": 1.0, "diff": ""}, {"address": "0x1004c4d0", "name": "MxTransitionManager::SubmitCopyRect", "matching": 0.7666666666666667, "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 0x97\n cmp dword ptr [ebx + 8], 0\n je 0x97\n mov edx, dword ptr [ebx + 0x1c]\n test edx, edx\n je 0x97\n-mov esi, dword ptr [esp + 0x18]\n-mov eax, dword ptr [ebx + 0xc]\n+mov ecx, dword ptr [esp + 0x18]\n+mov edi, dword ptr [ebx + 0xc]\n mov ebp, dword ptr [ebx + 0x14]\n-mov ecx, dword ptr [esi + 0x54]\n-shr ecx, 3\n-sub ebp, eax\n+mov esi, dword ptr [ecx + 0x54]\n+shr esi, 3\n+sub ebp, edi\n inc ebp\n-mov edi, dword ptr [esi + 0x10]\n+mov eax, dword ptr [ecx + 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 ebp, esi\n+imul eax, dword ptr [ebx + 0x10]\n+imul esi, edi\n+add eax, esi\n+add eax, dword ptr [ecx + 0x24]\n mov ecx, dword ptr [ebx + 0x18]\n-add eax, edi\n sub ecx, dword ptr [ebx + 0x10]\n inc ecx\n test ecx, ecx\n jle 0x84\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 ecx, dword ptr [esp + 0x18]\n+inc dword ptr [esp + 0x10]\n+add eax, dword ptr [ecx + 0x10]\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 inc ecx\n cmp ecx, dword ptr [esp + 0x10]\n jg 0x58\n mov eax, dword ptr [ebx + 0x1c]\n push eax\n call <OFFSET1>\n mov dword ptr [ebx + 0x1c], 0\n add esp, 4\n pop ebp\n pop edi"}, {"address": "0x1004c580", "name": "MxTransitionManager::SetupCopyRect", "matching": 0.5551601423487544, "diff": "--- \n\n+++ \n\n@@ -1,138 +1,143 @@\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 0x192\n+je 0x180\n mov ecx, dword ptr [ebx + 8]\n test ecx, ecx\n-je 0x192\n+je 0x180\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 0x103\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 0xf2\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 <OFFSET1>\n add esp, 4\n mov dword ptr [ebx + 0x1c], eax\n test eax, eax\n-je 0x192\n-xor edx, edx\n+je 0x180\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 0x103\n+jle 0xf2\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 0xd6\n+cmp ecx, dword ptr [esp + 0x10]\n+jg 0xc4\n mov eax, dword ptr [ebx + 8]\n mov ecx, dword ptr [eax + 0x1c]\n test byte ptr [ecx + 0x30], 0x10\n-je 0x157\n+je 0x145\n call <OFFSET2>\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 push eax\n mov ecx, esi\n call dword ptr [ebx + 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-mov esi, dword ptr [esp + 0x30]\n+mov esi, dword ptr [esp + 0x28]\n push eax\n push ecx\n+mov eax, dword ptr [edi]\n push 0\n+mov ecx, edi\n push 0\n-mov ecx, ebp\n push edx\n push esi\n-call dword ptr [edi + 0x2c]\n+call dword ptr [eax + 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 <OFFSET2>\n mov edi, dword ptr [eax + 0x58]\n mov esi, dword ptr [ebx + 8]\n+mov ecx, esi\n mov ebx, dword ptr [esi]\n-mov ecx, esi\n-mov ebp, dword ptr [edi]\n call dword ptr [ebx + 0x84]\n push eax\n mov ecx, esi\n call dword ptr [ebx + 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-mov esi, dword ptr [esp + 0x2c]\n+mov esi, dword ptr [esp + 0x24]\n push eax\n push ecx\n+mov eax, dword ptr [edi]\n push 0\n+mov ecx, edi\n+push 0\n+push edx\n+push esi\n+call dword ptr [eax + 0x24]\n+pop ebp\n+pop edi\n+pop esi\n+pop ebx\n+add esp, 8\n+ret 4"}, {"address": "0x1004b950", "name": "MxTransitionManager::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1004b960", "name": "MxTransitionManager::IsA", "matching": 1.0, "diff": ""}, {"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": "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": "0x100b0bd0", "name": "MxHashTable<MxVariable *>::~MxHashTable<MxVariable *>", "matching": 1.0, "diff": ""}, {"address": "0x100b0ca0", "name": "MxHashTable<MxVariable *>::`scalar deleting destructor'", "matching": 1.0, "diff": ""}, {"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 0x1d\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 0x10\n pop esi\n ret 4"}, {"address": "0x100b73a0", "name": "MxVariableTable::SetVariable", "matching": 0.9227642276422764, "diff": "--- \n\n+++ \n\n@@ -53,95 +53,94 @@\n\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x14\n jmp <OFFSET10>\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 4\n jmp <OFFSET10>\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 0x112\n+je 0x10f\n cmp dword ptr [ebx + 4], edi\n-jne 0x10b\n+jne 0x108\n mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [ebx]\n push eax\n mov edx, dword ptr [ebp - 0x24]\n push ecx\n mov eax, dword ptr [edx]\n mov ecx, edx\n call dword ptr [eax + 0x14]\n test al, al\n-jne 0x10b\n+jne 0x108\n mov dword ptr [ebp - 0x20], ebx\n mov ebx, dword ptr [ebx + 0xc]\n test ebx, ebx\n-jne 0xee\n+jne 0xeb\n cmp dword ptr [ebp - 0x20], 0\n-je 0x175\n+je 0x172\n cmp dword ptr [ebp - 0x14], 0\n-je 0x140\n+je 0x13d\n mov eax, 5\n mov byte ptr [ebp - 4], al\n call <OFFSET11>\n mov byte ptr [ebp - 4], 1\n call <OFFSET12>\n mov eax, dword ptr [ebp - 0x14]\n push eax\n call <OFFSET13>\n add esp, 4\n cmp dword ptr [ebp - 0x20], 0\n-je 0x14e\n+je 0x14b\n mov eax, dword ptr [ebp - 0x20]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x18], ecx\n mov eax, dword ptr [ebp + 0xc]\n mov ecx, dword ptr [ebp - 0x18]\n push eax\n mov ebx, dword ptr [ecx]\n call dword ptr [ebx + 4]\n jmp <OFFSET14>\n mov ecx, dword ptr [ebp - 0x14]\n add ecx, 0x14\n jmp <OFFSET10>\n mov ecx, dword ptr [ebp - 0x14]\n add ecx, 4\n jmp <OFFSET10>\n mov ecx, dword ptr [esi + 0x1c]\n test ecx, ecx\n-je 0x222\n+je 0x21f\n mov ebx, dword ptr [esi + 0x14]\n mov eax, dword ptr [esi + 8]\n inc eax\n sub edx, edx\n div ebx\n cmp eax, dword ptr [esi + 0x18]\n-jbe 0x222\n+jbe 0x21f\n mov eax, dword ptr [esi + 0x10]\n cmp ecx, 1\n mov dword ptr [ebp - 0x10], eax\n-je 0x1a6\n+je 0x1a3\n cmp ecx, 2\n-je 0x1ad\n+je 0x1aa\n jmp <OFFSET15>\n mov eax, dword ptr [esi + 0x20]\n add eax, ebx\n jmp <OFFSET16>\n fld qword ptr [esi + 0x20]\n mov dword ptr [ebp - 0x1c], ebx\n mov dword ptr [ebp - 0x18], 0\n fild qword ptr [ebp - 0x1c]\n fmulp st(1)\n call <OFFSET17>\n@@ -153,75 +152,75 @@\n\n add esp, 4\n mov ecx, dword ptr [esi + 0x14]\n shl ecx, 2\n mov edi, eax\n shr ecx, 2\n mov dword ptr [esi + 0x10], eax\n xor eax, eax\n rep stosd dword ptr es:[edi], eax\n test ebx, ebx\n mov dword ptr [esi + 8], eax\n-je 0x216\n+je 0x213\n mov eax, dword ptr [ebp - 0x10]\n mov dword ptr [ebp - 0x18], eax\n mov eax, dword ptr [ebp - 0x18]\n mov eax, dword ptr [eax]\n test eax, eax\n-je 0x20f\n+je 0x20c\n mov edi, dword ptr [eax + 0xc]\n push eax\n mov ecx, esi\n call <OFFSET18>\n mov eax, edi\n test edi, edi\n-jne 0x1fe\n+jne 0x1fb\n add dword ptr [ebp - 0x18], 4\n dec ebx\n-jne 0x1f5\n+jne 0x1f2\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call <OFFSET13>\n add esp, 4\n mov eax, dword ptr [ebp - 0x14]\n mov ebx, dword ptr [esi]\n push eax\n mov ecx, esi\n call dword ptr [ebx + 0x18]\n mov ebx, eax\n push 0x10\n call <OFFSET4>\n mov dword ptr [ebp - 0x10], eax\n add esp, 4\n mov edi, eax\n xor ecx, ecx\n mov byte ptr [ebp - 4], 7\n test edi, edi\n-je 0x25a\n+je 0x257\n mov eax, dword ptr [ebp - 0x14]\n mov dword ptr [edi], eax\n mov dword ptr [edi + 4], ebx\n mov dword ptr [edi + 8], ecx\n mov dword ptr [edi + 0xc], ecx\n mov ecx, edi\n jmp <OFFSET19>\n xor ecx, ecx\n mov eax, dword ptr [ecx + 4]\n sub edx, edx\n div dword ptr [esi + 0x14]\n mov eax, dword ptr [esi + 0x10]\n mov byte ptr [ebp - 4], 1\n mov ebx, dword ptr [eax + edx*4]\n mov dword ptr [ecx + 0xc], ebx\n mov eax, dword ptr [esi + 0x10]\n mov eax, dword ptr [eax + edx*4]\n test eax, eax\n-je 0x27e\n+je 0x27b\n mov dword ptr [eax + 8], ecx\n mov eax, dword ptr [esi + 0x10]\n mov dword ptr [eax + edx*4], ecx\n inc dword ptr [esi + 8]\n mov dword ptr [ebp - 4], <OFFSET20>\n call <OFFSET21>\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax\n pop esi\n@@ -237,10 +236,11 @@\n\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call <OFFSET13>\n add esp, 4\n ret \n lea ecx, [ebp - 0x2c]\n jmp <OFFSET22>\n mov eax, <OFFSET23>\n jmp <OFFSET24>\n lea ecx, [ebp - 0x2c]\n+jmp <OFFSET25>"}, {"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.7516778523489933, "diff": "--- \n\n+++ \n\n@@ -20,55 +20,56 @@\n\n mov dword ptr [esp + 0x14], esi\n mov dword ptr [esp + 0x18], 0\n fild qword ptr [esp + 0x14]\n fmulp st(1)\n call <OFFSET3>\n mov dword ptr [ebx + 0x14], eax\n mov eax, dword ptr [ebx + 0x14]\n shl eax, 2\n push eax\n call <OFFSET4>\n+mov dword ptr [ebx + 0x10], eax\n add esp, 4\n+mov edi, eax\n mov ecx, dword ptr [ebx + 0x14]\n shl ecx, 2\n-mov edi, eax\n+xor eax, 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 0xaf\n-mov ebp, dword ptr [esp + 0x10]\n-mov ecx, dword ptr [ebp]\n-test ecx, ecx\n-je 0xa9\n-mov edi, dword ptr [ecx + 0xc]\n-mov eax, dword ptr [ecx + 4]\n+je 0xae\n+mov ecx, dword ptr [esp + 0x10]\n+mov edi, dword ptr [ecx]\n+test edi, edi\n+je 0xa8\n+mov ebp, dword ptr [edi + 0xc]\n+mov eax, dword ptr [edi + 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 [edi + 0xc], eax\n mov eax, dword ptr [ebx + 0x10]\n mov eax, dword ptr [eax + edx*4]\n test eax, eax\n-je 0x9a\n-mov dword ptr [eax + 8], ecx\n+je 0x99\n+mov dword ptr [eax + 8], edi\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], edi\n+mov edi, ebp\n inc dword ptr [ebx + 8]\n-test edi, edi\n-jne 0x79\n-add ebp, 4\n+test ebp, ebp\n+jne 0x78\n+add ecx, 4\n dec esi\n jne 0x72\n mov eax, dword ptr [esp + 0x10]\n push eax\n call <OFFSET5>\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": "0x100be1f0", "name": "MxVideoManager::MxVideoManager", "matching": 1.0, "diff": ""}, {"address": "0x100be270", "name": "MxVideoManager::vtable0x34", "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": 1.0, "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 0x20\n call <OFFSET1>\n-mov ecx, dword ptr [esi + 0xc]\n+mov ecx, dword ptr [edi + 0xc]\n test ecx, ecx\n je 0x2d\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 4]\n jmp <OFFSET2>\n call <OFFSET3>\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 <OFFSET4>\n-mov ecx, dword ptr [esi + 0x58]\n+mov ecx, dword ptr [edi + 0x58]\n test ecx, ecx\n je 0x44\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 0x51\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 0x5e\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 0x7e\n-mov eax, dword ptr [esi + 0x50]\n+mov eax, dword ptr [edi + 0x50]\n test eax, eax\n je 0x71\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 0x7e\n push eax\n mov eax, dword ptr [eax]\n call dword ptr [eax + 8]\n+mov ecx, edi\n+call <OFFSET5>\n mov ecx, esi\n-call <OFFSET5>\n-mov ecx, edi\n call <OFFSET6>\n cmp byte ptr [esp + 0xc], 0\n jne 0x9a\n-mov ecx, esi\n+mov ecx, edi\n call <OFFSET7>\n pop edi\n pop esi\n ret 4"}, {"address": "0x100be3e0", "name": "MxVideoManager::UpdateRegion", "matching": 1.0, "diff": ""}, {"address": "0x100be440", "name": "MxVideoManager::SortPresenterList", "matching": 1.0, "diff": ""}, {"address": "0x100be600", "name": "MxVideoManager::vtable0x28", "matching": 1.0, "diff": ""}, {"address": "0x100be820", "name": "MxVideoManager::Create", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -3,57 +3,57 @@\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 byte ptr [ebp - 0xd], 0\n push ebx\n push esi\n push edi\n-mov esi, ecx\n-mov ebx, <OFFSET2>\n-mov byte ptr [esi + 0x60], 1\n+mov ebx, ecx\n+mov esi, <OFFSET2>\n+mov byte ptr [ebx + 0x60], 1\n call <OFFSET3>\n test eax, eax\n jne 0x1de\n-lea ecx, [esi + 0x10]\n+lea ecx, [ebx + 0x10]\n call <OFFSET4>\n mov edi, dword ptr [ebp + 8]\n-lea ecx, [esi + 0x2c]\n+lea ecx, [ebx + 0x2c]\n mov byte ptr [ebp - 0xd], 1\n push edi\n call <OFFSET5>\n push 0x1c\n call <OFFSET6>\n add esp, 4\n mov dword ptr [ebp - 0x14], eax\n mov dword ptr [ebp - 4], 0\n test eax, eax\n je 0x73\n mov ecx, eax\n call <OFFSET7>\n jmp <OFFSET8>\n xor eax, eax\n mov dword ptr [ebp - 4], <OFFSET2>\n-mov dword ptr [esi + 0x5c], eax\n+mov dword ptr [ebx + 0x5c], eax\n test eax, eax\n je 0x1de\n push 0\n-lea eax, [esi + 0x50]\n+lea eax, [ebx + 0x50]\n push eax\n push 0\n call <OFFSET9>\n test eax, eax\n jne 0x1de\n call <OFFSET10>\n-mov ecx, dword ptr [esi + 0x50]\n+mov ecx, dword ptr [ebx + 0x50]\n push 8\n mov eax, dword ptr [eax + 0x18]\n push eax\n push ecx\n mov eax, dword ptr [ecx]\n call dword ptr [eax + 0x50]\n test eax, eax\n jne 0x1de\n mov ecx, dword ptr [edi + 0x10]\n test ecx, ecx\n@@ -63,110 +63,110 @@\n\n mov dword ptr [ebp - 0x14], eax\n add esp, 4\n mov dword ptr [ebp - 4], 1\n mov edi, eax\n mov eax, 0\n test edi, edi\n je 0xe8\n mov ecx, edi\n call <OFFSET11>\n mov dword ptr [ebp - 4], <OFFSET2>\n-mov dword ptr [esi + 0x3c], eax\n+mov dword ptr [ebx + 0x3c], eax\n test eax, eax\n jne 0x118\n jmp <OFFSET12>\n mov eax, dword ptr [ebp - 0x14]\n push eax\n call <OFFSET13>\n add esp, 4\n ret \n call <OFFSET14>\n-mov dword ptr [esi + 0x3c], eax\n+mov dword ptr [ebx + 0x3c], eax\n test eax, eax\n je 0x1de\n push 0xac\n call <OFFSET6>\n mov dword ptr [ebp - 0x14], eax\n add esp, 4\n mov edi, eax\n mov ecx, 0\n mov dword ptr [ebp - 4], 2\n test edi, edi\n je 0x143\n mov ecx, edi\n call <OFFSET15>\n mov ecx, eax\n mov dword ptr [ebp - 4], <OFFSET2>\n-mov dword ptr [esi + 0x58], ecx\n+mov dword ptr [ebx + 0x58], ecx\n test ecx, ecx\n je 0x1de\n-lea eax, [esi + 0x2c]\n+lea eax, [ebx + 0x2c]\n mov edi, dword ptr [ecx]\n push eax\n call dword ptr [edi + 0x18]\n test eax, eax\n jne 0x1de\n-mov ecx, dword ptr [esi + 0x58]\n-mov eax, dword ptr [esi + 0x3c]\n+mov ecx, dword ptr [ebx + 0x58]\n+mov eax, dword ptr [ebx + 0x3c]\n push eax\n mov edi, dword ptr [ecx]\n call dword ptr [edi + 0x20]\n cmp byte ptr [ebp + 0x10], 0\n je 0x1cb\n push 0x20\n call <OFFSET6>\n mov dword ptr [ebp - 0x14], eax\n add esp, 4\n mov edi, eax\n mov ecx, 0\n mov dword ptr [ebp - 4], 3\n test edi, edi\n je 0x1a1\n mov eax, dword ptr [ebp + 0xc]\n mov ecx, edi\n push eax\n-push esi\n+push ebx\n call <OFFSET16>\n mov ecx, eax\n mov dword ptr [ebp - 4], <OFFSET2>\n-mov dword ptr [esi + 0xc], ecx\n+mov dword ptr [ebx + 0xc], ecx\n test ecx, ecx\n je 0x1de\n push 0\n push 0\n call <OFFSET17>\n test eax, eax\n je 0x1dc\n jmp <OFFSET12>\n mov eax, dword ptr [ebp - 0x14]\n push eax\n call <OFFSET13>\n add esp, 4\n ret \n call <OFFSET18>\n-mov ebx, dword ptr [eax]\n+mov esi, dword ptr [eax]\n mov ecx, eax\n mov eax, dword ptr [ebp + 0xc]\n push eax\n-push esi\n-call dword ptr [ebx + 0x14]\n-xor ebx, ebx\n-test ebx, ebx\n+push ebx\n+call dword ptr [esi + 0x14]\n+xor esi, esi\n+test esi, esi\n je 0x1e9\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 + 0x18]\n cmp byte ptr [ebp - 0xd], 0\n je 0x1f7\n-lea ecx, [esi + 0x10]\n+lea ecx, [ebx + 0x10]\n call <OFFSET19>\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 0xc\n mov eax, dword ptr [ebp - 0x14]\n push eax"}, {"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": "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": "0x100bec40", "name": "MxVideoParamFlags::MxVideoParamFlags", "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::VTable0x70", "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 0x11\n+je 0xe\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.6, "diff": "--- \n\n+++ \n\n@@ -1,10 +1,10 @@\n\n mov edx, dword ptr [ecx + 0x54]\n test edx, edx\n-jne 0x17\n+je 0xe\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 0x1d\n-neg eax\n ret "}, {"address": "0x100b24f0", "name": "MxVideoPresenter::AlphaMask::AlphaMask", "matching": 0.623574144486692, "diff": "--- \n\n+++ \n\n@@ -28,106 +28,103 @@\n\n add esp, 4\n mov edi, eax\n mov ecx, ebp\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+mov ecx, dword ptr [ebx + 0xc]\n+mov eax, dword ptr [ecx + 0x10]\n+test eax, eax\n jne 0x7f\n-cmp ecx, 0x10\n-je 0x77\n-mov eax, dword ptr [edx + 8]\n+cmp eax, 0x10\n+je 0x7b\n+mov eax, dword ptr [ecx + 8]\n test eax, eax\n-jge 0x7b\n+jl 0x7b\n+jg 0x93\n+jmp <OFFSET3>\n xor eax, eax\n-jmp <OFFSET3>\n-jg 0x98\n jmp <OFFSET4>\n-cmp ecx, 0x10\n-jne 0x89\n-mov edi, dword ptr [ebx + 0x14]\n-jmp <OFFSET5>\n-mov eax, dword ptr [edx + 8]\n+cmp eax, 0x10\n+je 0xa9\n+mov eax, dword ptr [ecx + 8]\n test eax, eax\n-jge 0x94\n+jge 0x8f\n xor eax, eax\n-jmp <OFFSET3>\n-jg 0x98\n+jmp <OFFSET4>\n+jg 0x93\n neg eax\n dec eax\n-mov edi, dword ptr [edx + 4]\n-add edi, 3\n-and edi, <OFFSET6>\n-imul edi, eax\n-add edi, dword ptr [ebx + 0x14]\n+mov edx, dword ptr [ecx + 4]\n+add edx, 3\n+and edx, <OFFSET5>\n+imul edx, eax\n+add edx, dword ptr [ebx + 0x14]\n+mov dword ptr [esp + 0x10], edx\n+jmp <OFFSET6>\n+mov eax, dword ptr [ebx + 0x14]\n+mov dword ptr [esp + 0x10], eax\n xor eax, eax\n-mov dword ptr [esp + 0x1c], edi\n mov ax, word ptr [esi + 8]\n add eax, 3\n-and eax, <OFFSET6>\n-cmp ecx, 0x10\n+and eax, <OFFSET5>\n+cmp dword ptr [ecx + 8], 0\n+mov dword ptr [esp + 0x18], eax\n+jge 0xcc\n+neg eax\n+mov dword ptr [esp + 0x18], eax\n+xor eax, eax\n+mov edi, dword ptr [esp + 0x10]\n+cmp word ptr [esi + 0xa], ax\n mov dword ptr [esp + 0x14], eax\n-je 0xcd\n-cmp dword ptr [edx + 8], 0\n-jl 0xcd\n-neg eax\n-mov dword ptr [esp + 0x14], eax\n-xor eax, eax\n-cmp word ptr [esi + 0xa], ax\n-mov dword ptr [esp + 0x10], eax\n mov dword ptr [esp + 0x20], eax\n-jbe 0x14e\n-mov dword ptr [esp + 0x18], 0\n+jbe 0x152\n+mov dword ptr [esp + 0x1c], 0\n cmp word ptr [esi + 8], 0\n-jbe 0x132\n+jbe 0x136\n cmp byte ptr [edi], 0\n-je 0x11d\n-mov eax, dword ptr [esp + 0x10]\n+je 0x121\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 0xec\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 0xef\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+mov edi, dword ptr [esp + 0x10]\n cmp eax, dword ptr [esp + 0x20]\n-jg 0xdd\n+jg 0xe0\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 "}, {"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.851063829787234, "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 0x5d\n+cmp eax, esi\n+jae 0x5e\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 0x5d\n-imul edx, esi\n+jbe 0x5e\n+imul esi, edx\n mov ecx, dword ptr [ecx + 4]\n-lea edi, [edx + eax]\n+lea edi, [esi + 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.8351648351648352, "diff": "--- \n\n+++ \n\n@@ -32,46 +32,46 @@\n\n je 0xbd\n mov ebx, dword ptr [esi]\n mov ecx, esi\n call dword ptr [ebx + 0x84]\n mov edi, eax\n mov ecx, esi\n call dword ptr [ebx + 0x80]\n mov ecx, dword ptr [esi + 0x10]\n mov edx, dword ptr [esi + 0x14]\n add eax, ecx\n-add edi, edx\n mov dword ptr [esp + 0xc], ecx\n+lea ecx, [esp + 0xc]\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+add edx, edi\n push ecx\n+mov dword ptr [esp + 0x18], eax\n+mov dword ptr [esp + 0x1c], edx\n call <OFFSET1>\n mov ecx, eax\n call <OFFSET2>\n call <OFFSET1>\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 0xca\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 0xd7\n push 1"}, {"address": "0x100b28b0", "name": "MxVideoPresenter::NextFrame", "matching": 1.0, "diff": ""}, {"address": "0x100b2900", "name": "MxVideoPresenter::IsHit", "matching": 0.41509433962264153, "diff": "--- \n\n+++ \n\n@@ -1,131 +1,134 @@\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 0x15a\n+je 0x14a\n test byte ptr [eax + 0x31], 4\n jne 0x27\n call <OFFSET1>\n test al, al\n-je 0x15a\n-mov edx, dword ptr [esi + 0x50]\n-test edx, edx\n+je 0x14a\n+mov edi, dword ptr [esi + 0x50]\n+test edi, edi\n jne 0x5e\n cmp dword ptr [esi + 0x54], 0\n-je 0x15a\n-test edx, edx\n+je 0x14a\n+test edi, edi\n jne 0x5e\n-mov ecx, dword ptr [esp + 0x30]\n-mov eax, dword ptr [esp + 0x2c]\n-sub ecx, dword ptr [esi + 0x14]\n+mov ebp, dword ptr [esp + 0x1c]\n+mov eax, dword ptr [esp + 0x18]\n+sub ebp, dword ptr [esi + 0x14]\n sub eax, dword ptr [esi + 0x10]\n-push ecx\n+push ebp\n+mov ecx, dword ptr [esi + 0x54]\n push eax\n-mov ecx, dword ptr [esi + 0x54]\n call <OFFSET2>\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 eax, dword ptr [ebp + 8]\n-mov ecx, eax\n+mov eax, dword ptr [edi + 0xc]\n+mov edx, dword ptr [eax + 8]\n+mov eax, edx\n+test edx, edx\n+jg 0x6e\n+mov eax, edx\n+neg eax\n+mov ebp, dword ptr [esi + 0x10]\n+mov ecx, dword ptr [esi + 0x14]\n+add eax, ecx\n+cmp dword ptr [esp + 0x18], ebp\n+mov dword ptr [esp + 0x10], eax\n+mov eax, dword ptr [edi + 0xc]\n+mov ebx, dword ptr [eax + 4]\n+lea eax, [ebx + ebp]\n+jl 0x13e\n+cmp dword ptr [esp + 0x18], eax\n+jge 0x13e\n+mov ebp, dword ptr [esp + 0x1c]\n+cmp ebp, ecx\n+jl 0x13e\n+cmp ebp, dword ptr [esp + 0x10]\n+jge 0x13e\n+mov eax, dword ptr [edi + 0xc]\n+mov eax, dword ptr [eax + 0x10]\n+mov dword ptr [esp + 0x10], eax\n test eax, eax\n-jg 0x6e\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 0x14e\n-cmp ebp, ecx\n-jle 0x14e\n-mov ecx, dword ptr [esp + 0x30]\n-cmp edi, ecx\n-jg 0x14e\n-cmp dword ptr [esp + 0x24], ecx\n-jle 0x14e\n-mov ebp, dword ptr [edx + 0xc]\n-mov ebp, dword ptr [ebp + 0x10]\n-mov dword ptr [esp + 0x18], ebp\n-test ebp, ebp\n-jne 0xf1\n-cmp ebp, 0x10\n-je 0xcd\n-test eax, eax\n-jge 0xd1\n-sub ecx, edi\n+jne 0xe7\n+cmp eax, 0x10\n+je 0xd0\n+test edx, edx\n+jl 0xd0\n+jg 0xc8\n+neg edx\n+sub edx, ebp\n+lea ebp, [edx + ecx - 1]\n jmp <OFFSET3>\n-jg 0xd5\n-neg eax\n-sub eax, ecx\n-lea ecx, [eax + edi - 1]\n+sub ebp, ecx\n add ebx, 3\n and ebx, <OFFSET4>\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+imul ebx, ebp\n+add ebx, dword ptr [edi + 0x14]\n+sub ebx, dword ptr [esi + 0x10]\n+add ebx, dword ptr [esp + 0x18]\n jmp <OFFSET5>\n-cmp dword ptr [esp + 0x18], 0x10\n-jne 0xfd\n-mov ebx, dword ptr [edx + 0x14]\n+cmp dword ptr [esp + 0x10], 0x10\n+je 0x103\n+test edx, edx\n+jg 0xf4\n+neg edx\n+add ebx, 3\n+dec edx\n+and ebx, <OFFSET4>\n+imul ebx, edx\n+add ebx, dword ptr [edi + 0x14]\n jmp <OFFSET5>\n-test eax, eax\n-jge 0x105\n-xor eax, eax\n-jmp <OFFSET6>\n-jg 0x109\n-neg eax\n-dec eax\n-add ebx, 3\n-and ebx, <OFFSET4>\n-imul ebx, eax\n-add ebx, dword ptr [edx + 0x14]\n+mov ebx, dword ptr [edi + 0x14]\n test byte ptr [esi + 0x5e], 0x10\n-je 0x128\n+je 0x118\n mov al, byte ptr [ebx]\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 0x142\n+je 0x132\n cmp byte ptr [ebx], 0\n-jne 0x142\n+jne 0x132\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": "0x100b2f60", "name": "MxVideoPresenter::ReadyTickle", "matching": 1.0, "diff": ""}, {"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 0x78\n mov eax, dword ptr [eax + 0xc]\n mov edx, dword ptr [eax + 8]\n test edx, edx\n jg 0x4f\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 <OFFSET4>\n mov ecx, eax\n call <OFFSET5>\n mov dword ptr [ebp - 4], <OFFSET6>\n call <OFFSET7>\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": "0x1000c820", "name": "MxVideoPresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000c830", "name": "MxVideoPresenter::IsA", "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": "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 0x107\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 0xee\n+cmp ebx, edx\n+jae 0xee\n mov eax, dword ptr [ebp + 0x1c]\n test byte ptr [eax + 0x30], 1\n jne 0xee\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": 0.8247422680412371, "diff": "--- \n\n+++ \n\n@@ -2,90 +2,90 @@\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, 8\n push ebx\n push esi\n push edi\n-mov esi, ecx\n+mov ebx, ecx\n cmp dword ptr [ecx + 0x4c], 0\n jne 0x114\n-mov eax, dword ptr [esi + 0x1c]\n+mov eax, dword ptr [ebx + 0x1c]\n test byte ptr [eax + 0x30], 1\n jne 0x10d\n call <OFFSET2>\n-mov ebx, eax\n-test ebx, ebx\n+mov esi, eax\n+test esi, esi\n je 0x10d\n-mov ax, word ptr [ebx + 8]\n+mov ax, word ptr [esi + 8]\n test al, 2\n je 0x10d\n test ah, 0x80\n jne 0x10d\n or ah, 0x80\n push 0x20\n-mov word ptr [ebx + 8], ax\n+mov word ptr [esi + 8], ax\n call <OFFSET3>\n add esp, 4\n mov dword ptr [ebp - 0x10], eax\n mov dword ptr [ebp - 4], 0\n test eax, eax\n je 0xa3\n mov ecx, eax\n call <OFFSET4>\n mov byte ptr [ebp - 4], 1\n mov eax, dword ptr [ebp - 0x10]\n mov byte ptr [ebp - 4], 0\n mov dword ptr [eax + 0x1c], 0\n mov dword ptr [eax], <OFFSET5>\n jmp <OFFSET6>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET7>\n xor eax, eax\n mov dword ptr [ebp - 4], <OFFSET8>\n-mov dword ptr [esi + 0x4c], eax\n-mov eax, dword ptr [esi + 0x5c]\n+mov dword ptr [ebx + 0x4c], eax\n+mov eax, dword ptr [ebx + 0x5c]\n push eax\n call <OFFSET3>\n add esp, 4\n-mov edx, dword ptr [esi + 0x5c]\n+mov edx, dword ptr [ebx + 0x5c]\n mov dword ptr [ebp - 0x14], eax\n-movsx eax, byte ptr [esi + 0x67]\n+movsx eax, byte ptr [ebx + 0x67]\n mov cl, al\n mov edi, dword ptr [ebp - 0x14]\n mov ch, cl\n mov cl, al\n mov eax, ecx\n shl eax, 0x10\n mov ax, cx\n mov ecx, 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 ecx, dword ptr [esi + 0x4c]\n+mov edx, dword ptr [ebx + 0x5c]\n+mov ecx, dword ptr [ebx + 0x4c]\n mov eax, dword ptr [ebp - 0x14]\n-mov edx, dword ptr [esi + 0x5c]\n mov dword ptr [ecx + 0x14], edx\n-mov ecx, dword ptr [esi + 0x4c]\n+mov ecx, dword ptr [ebx + 0x4c]\n mov dword ptr [ecx + 0x18], eax\n-mov eax, dword ptr [ebx + 0x10]\n+mov eax, dword ptr [esi + 0x10]\n add eax, 0x3e8\n-mov ecx, dword ptr [esi + 0x4c]\n+mov ecx, dword ptr [ebx + 0x4c]\n mov dword ptr [ecx + 0x10], eax\n-mov ecx, dword ptr [esi + 0x4c]\n+mov ecx, dword ptr [ebx + 0x4c]\n mov word ptr [ecx + 8], 1\n-mov ecx, esi\n+mov ecx, ebx\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 \n mov eax, <OFFSET10>"}, {"address": "0x100b20c0", "name": "MxWavePresenter::DoneTickle", "matching": 0.8235294117647058, "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 0x5e\n+je 0x59\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 0x51\n-and ecx, 1\n-jne 0x51\n+test cl, 0x41\n+jne 0x4c\n movsx eax, al\n xor ecx, ecx\n mov cl, byte ptr [esi + 0x64]\n cmp ecx, eax\n-jne 0x51\n+jne 0x4c\n imul eax, edi\n add eax, dword ptr [esi + 0x60]\n cmp eax, dword ptr [esp + 8]\n-ja 0x65\n+ja 0x60\n mov ecx, esi\n call <OFFSET1>\n pop edi\n pop esi\n add esp, 8\n ret \n mov ecx, esi\n call <OFFSET1>\n pop edi\n+pop esi\n+add esp, 8\n+ret "}, {"address": "0x100b2130", "name": "MxWavePresenter::AppendChunk", "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.8631578947368421, "diff": "--- \n\n+++ \n\n@@ -1,47 +1,48 @@\n\n sub esp, 0x400\n push ebx\n push esi\n push edi\n mov ebx, ecx\n call <OFFSET1>\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 0x8e\n+test cx, cx\n+mov esi, dword ptr [eax + 0x7c]\n+je 0x89\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 [<OFFSET2>]\n mov byte ptr [esp + eax + 0xc], 0\n lea eax, [esp + 0x20c]\n push ecx\n push edx\n push eax\n call <OFFSET3>\n add esp, 0xc\n test al, al\n-je 0x8e\n+je 0x89\n lea eax, [esp + 0x20c]\n push <OFFSET4>\n push eax\n call <OFFSET5>\n add esp, 8\n test eax, eax\n-jne 0x8e\n+jne 0x89\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": "0x1000d6c0", "name": "MxWavePresenter::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1000d6d0", "name": "MxWavePresenter::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10037ef0", "name": "Pizza::Pizza", "matching": 1.0, "diff": ""}, {"address": "0x10038100", "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": "0x10039510", "name": "PizzaMissionState::GetState", "matching": 1.0, "diff": ""}, {"address": "0x10017c20", "name": "PizzeriaState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10017c30", "name": "PizzeriaState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1005e1e0", "name": "Police::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1005e1f0", "name": "Police::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1005e860", "name": "PoliceState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1005e870", "name": "PoliceState::IsA", "matching": 1.0, "diff": ""}, {"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": "0x10016280", "name": "RaceState::GetState", "matching": 1.0, "diff": ""}, {"address": "0x10016010", "name": "RaceState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10016020", "name": "RaceState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1002c8e0", "name": "Radio::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1002c8f0", "name": "Radio::IsA", "matching": 1.0, "diff": ""}, {"address": "0x1002cf60", "name": "RadioState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1002cf70", "name": "RadioState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10076e10", "name": "RegistrationBook::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x10076e20", "name": "RegistrationBook::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10001000", "name": "Score::Score", "matching": 1.0, "diff": ""}, {"address": "0x100010b0", "name": "Score::VTable0x5c", "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.8409090909090909, "diff": "--- \n\n+++ \n\n@@ -6,24 +6,24 @@\n\n mov esi, dword ptr [esp + 0x10]\n push esi\n call <OFFSET1>\n cmp byte ptr [ebx + 0xf6], 0\n je 0xba\n mov ecx, dword ptr [esi + 4]\n dec ecx\n cmp ecx, 0x17\n ja 0xba\n xor eax, eax\n-mov al, byte ptr [ecx + 0x100014ec]\n-jmp dword ptr [eax*4 + 0x100014d4]\n+mov al, byte ptr [ecx + 0x1002f3ec]\n+jmp dword ptr [eax*4 + 0x1002f3d4]\n+mov edi, 1\n mov ecx, ebx\n-mov edi, 1\n call <OFFSET2>\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 <OFFSET3>\n mov edi, eax\n@@ -65,23 +65,25 @@\n\n mov ecx, eax\n call <OFFSET9>\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 dec edx\n-adc al, 0\n-adc byte ptr [esi + 0x14], bl\n-add byte ptr [eax], dl\n-jo 0xe2\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-add byte ptr [ecx], al\n-add eax, 0x2050505\n+add dl, byte ptr [eax]\n+pop esi\n+add dl, byte ptr [eax]\n+jo 0xc1\n+add dl, byte ptr [eax]\n+mov dh, bl\n+add dl, byte ptr [eax]\n+pushfd \n+add dl, byte ptr [eax]\n+retf 0x2f3\n+adc byte ptr [eax], al\n+add dword ptr [<OFFSET10>], eax\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::Stop", "matching": 0.8170731707317073, "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 <OFFSET2>\n-lea ecx, [ebp - 0x138]\n+lea ecx, [ebp - 0xa4]\n call <OFFSET3>\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 <OFFSET4>\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 <OFFSET6>\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 0xfa\n-lea ecx, [ebp - 0xa4]\n+je 0xfd\n+lea ecx, [ebp - 0x138]\n call <OFFSET3>\n mov byte ptr [ebp - 4], 2\n mov dword ptr [ebp - 0x88], 0x1f5\n mov eax, dword ptr [<OFFSET7>]\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 <OFFSET6>\n mov byte ptr [ebp - 4], 0\n add esp, 4\n call <OFFSET9>\n jmp <OFFSET10>\n lea ecx, [ebp - 0x10]\n jmp <OFFSET11>\n-lea ecx, [ebp - 0xa4]\n+lea ecx, [ebp - 0x138]\n jmp <OFFSET12>\n push 0xb\n call <OFFSET13>\n add esp, 4\n push 7\n push 0\n call <OFFSET14>\n mov dword ptr [ebp - 4], <OFFSET15>\n add esp, 8\n call <OFFSET16>\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 <OFFSET11>\n mov eax, <OFFSET17>\n jmp <OFFSET18>\n-lea ecx, [ebp - 0x138]\n+lea ecx, [ebp - 0xa4]\n jmp <OFFSET12>\n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "}, {"address": "0x100016d0", "name": "Score::FUN_100016d0", "matching": 0.9759036144578314, "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 0x35\n cmp dword ptr [eax + 0x20], 4\n jne 0x6a\n mov eax, dword ptr [eax + 0x20]\n dec eax\n cmp eax, 3\n ja 0x6a\n-jmp dword ptr [eax*4 + 0x10001970]\n+jmp dword ptr [eax*4 + 0x1002f870]\n mov dword ptr [esi + 0xf8], 2\n mov ecx, esi\n call <OFFSET2>\n push 0\n push 0\n push 0x32\n push 3\n call <OFFSET3>\n mov ecx, eax\n call <OFFSET4>\n@@ -153,15 +153,13 @@\n\n add esp, 4\n call <OFFSET22>\n jmp <OFFSET14>\n lea ecx, [ebp - 0x10]\n jmp <OFFSET15>\n mov eax, <OFFSET23>\n jmp <OFFSET24>\n lea ecx, [ebp - 0xa4]\n jmp <OFFSET16>\n adc eax, <OFFSET25>\n-pop ss\n-add byte ptr [eax], dl\n+test byte ptr [edx], 0x10\n pop ebp\n-pop ss\n-add byte ptr [eax], dl\n+test byte ptr [edx], 0x10"}, {"address": "0x10001980", "name": "Score::VTable0x68", "matching": 1.0, "diff": ""}, {"address": "0x100019d0", "name": "Score::Paint", "matching": 0.683982683982684, "diff": "--- \n\n+++ \n\n@@ -1,78 +1,74 @@\n\n sub esp, 0x84\n mov dword ptr [esp + 4], ecx\n push ebx\n-mov dword ptr [esp + 0x10], <OFFSET1>\n push esi\n push edi\n push ebp\n-call <OFFSET2>\n-lea ecx, [eax + 8]\n+call <OFFSET1>\n+lea ecx, [eax + 0xc]\n mov esi, eax\n+mov dword ptr [esp + 0x28], <OFFSET2>\n mov dword ptr [esp + 0x18], 0\n-lea eax, [esp + 0x1c]\n+lea eax, [esp + 0x28]\n push eax\n call <OFFSET3>\n-mov dword ptr [esp + 0x28], eax\n-cmp dword ptr [esi + 0xc], eax\n-je 0x6f\n-mov ecx, dword ptr [esp + 0x1c]\n-mov eax, dword ptr [eax + 0xc]\n+cmp dword ptr [esi + 0x10], eax\n+je 0x69\n+mov ecx, dword ptr [esp + 0x28]\n+mov edi, dword ptr [eax + 0xc]\n mov dl, byte ptr [ecx]\n-cmp dl, byte ptr [eax]\n-jne 0x62\n+cmp dl, byte ptr [edi]\n+jne 0x5e\n or dl, dl\n-je 0x5e\n+je 0x5a\n mov dl, byte ptr [ecx + 1]\n-cmp dl, byte ptr [eax + 1]\n-jne 0x62\n+cmp dl, byte ptr [edi + 1]\n+jne 0x5e\n add ecx, 2\n-add eax, 2\n+add edi, 2\n or dl, dl\n-jne 0x42\n-xor eax, eax\n+jne 0x3e\n+xor ecx, ecx\n jmp <OFFSET4>\n-sbb eax, eax\n-sbb eax, -1\n-test eax, eax\n-lea eax, [esp + 0x28]\n-jle 0x7a\n-mov eax, dword ptr [esi + 0xc]\n-mov dword ptr [esp + 0x24], eax\n-lea eax, [esp + 0x24]\n-mov eax, dword ptr [eax]\n-cmp dword ptr [esi + 0xc], eax\n-je 0x88\n-mov ecx, dword ptr [eax + 0x10]\n-mov dword ptr [esp + 0x18], ecx\n+sbb ecx, ecx\n+sbb ecx, -1\n+test ecx, ecx\n+mov ecx, eax\n+jle 0x6c\n+mov ecx, dword ptr [esi + 0x10]\n+cmp eax, ecx\n+je 0x77\n+mov eax, dword ptr [eax + 0x10]\n+mov dword ptr [esp + 0x18], eax\n cmp dword ptr [esp + 0x18], 0\n-je 0x2b4\n+je 0x2a6\n push <OFFSET5>\n call <OFFSET6>\n mov ecx, eax\n call <OFFSET7>\n+mov dword ptr [esp + 0x20], eax\n+push <OFFSET8>\n+call <OFFSET6>\n+mov ecx, eax\n+call <OFFSET7>\n mov dword ptr [esp + 0x1c], eax\n-push <OFFSET8>\n-call <OFFSET6>\n-mov ecx, eax\n-call <OFFSET7>\n-mov dword ptr [esp + 0x24], eax\n push <OFFSET9>\n call <OFFSET6>\n mov ecx, eax\n call <OFFSET7>\n mov esi, eax\n push <OFFSET10>\n call <OFFSET6>\n mov ecx, eax\n call <OFFSET7>\n-mov dword ptr [esp + 0x20], eax\n+mov dword ptr [esp + 0x24], eax\n push <OFFSET11>\n call <OFFSET6>\n mov ecx, eax\n call <OFFSET7>\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 +76,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 0x2b4\n+jne 0x2a6\n mov eax, dword ptr [esp + 0x38]\n cmp dword ptr [esp + 0x34], eax\n-je 0x157\n+je 0x146\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-je 0x187\n+xor ax, ax\n+cmp dword ptr [esp + 0x1c], 0\n+je 0x175\n mov eax, dword ptr [esp + 0x13]\n-mov ecx, dword ptr [esp + 0x24]\n+mov ecx, dword ptr [esp + 0x1c]\n push eax\n call <OFFSET12>\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 <OFFSET13>\n-cmp dword ptr [esp + 0x1c], 0\n-mov ax, 0\n-je 0x1ba\n+xor ax, ax\n+cmp dword ptr [esp + 0x20], 0\n+je 0x1a7\n mov eax, dword ptr [esp + 0x13]\n-mov ecx, dword ptr [esp + 0x1c]\n+mov ecx, dword ptr [esp + 0x20]\n push eax\n call <OFFSET12>\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 <OFFSET13>\n-cmp dword ptr [esp + 0x20], 0\n-mov ax, 0\n-je 0x1e4\n+xor ax, ax\n+cmp dword ptr [esp + 0x24], 0\n+je 0x1d0\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 <OFFSET14>\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 <OFFSET13>\n+xor ax, ax\n test esi, esi\n-je 0x222\n+je 0x214\n lea eax, [ebx - 1]\n cmp eax, 4\n-ja 0x222\n-jmp dword ptr [eax*4 + 0x10001c90]\n+ja 0x1f3\n+jmp dword ptr [eax*4 + 0x1002fb84]\n+xor ax, ax\n+jmp <OFFSET15>\n mov ax, word ptr [esi + 0x1c]\n jmp <OFFSET15>\n mov ax, word ptr [esi + 0x1e]\n jmp <OFFSET15>\n mov ax, word ptr [esi + 0x20]\n jmp <OFFSET15>\n mov ax, word ptr [esi + 0x22]\n jmp <OFFSET15>\n mov ax, word ptr [esi + 0x24]\n-jmp <OFFSET15>\n-xor ax, ax\n mov ecx, dword ptr [esp + 0x14]\n push eax\n push edi\n push 3\n call <OFFSET13>\n+xor ax, ax\n test ebp, ebp\n-je 0x261\n+je 0x256\n dec ebx\n cmp ebx, 4\n-ja 0x261\n-jmp dword ptr [ebx*4 + 0x10001ca4]\n+ja 0x235\n+jmp dword ptr [ebx*4 + 0x1002fb98]\n+xor ax, ax\n+jmp <OFFSET16>\n mov ax, word ptr [ebp + 0x1a]\n jmp <OFFSET16>\n mov ax, word ptr [ebp + 0x1c]\n jmp <OFFSET16>\n mov ax, word ptr [ebp + 0x1e]\n jmp <OFFSET16>\n mov ax, word ptr [ebp + 0x20]\n jmp <OFFSET16>\n mov ax, word ptr [ebp + 0x22]\n-jmp <OFFSET16>\n-xor ax, ax\n mov ecx, dword ptr [esp + 0x14]\n push eax\n push edi\n push 4\n call <OFFSET13>\n inc byte ptr [esp + 0x13]\n cmp byte ptr [esp + 0x13], 5\n-jbe 0x16a\n+jbe 0x14b\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,25 +210,17 @@\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 0x2e5\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+lea ecx, [ecx]\n+enter 0x2fa, 0x10\n+into \n+cli \n+add dl, byte ptr [eax]\n+aam 0xfa\n+add dl, byte ptr [eax]"}, {"address": "0x10001d20", "name": "Score::FillArea", "matching": 0.6865671641791045, "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 0x109\n+test ebp, ebp\n+jle 0x10a\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+inc esi\n+add esi, 0x100\n+dec ebp\n jne 0xe2\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": "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": "0x1000de20", "name": "ScoreState::VTable0x14", "matching": 1.0, "diff": ""}, {"address": "0x1000de30", "name": "ScoreState::SetFlag", "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": "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": "0x1004dfa0", "name": "TowTrackMissionState::ClassName", "matching": 1.0, "diff": ""}, {"address": "0x1004dfb0", "name": "TowTrackMissionState::IsA", "matching": 1.0, "diff": ""}, {"address": "0x10002320", "name": "Matrix4Impl::EqualsMatrixData", "matching": 1.0, "diff": ""}, {"address": "0x10002340", "name": "Matrix4Impl::EqualsMatrixImpl", "matching": 1.0, "diff": ""}, {"address": "0x10002360", "name": "Matrix4Impl::AnotherSetData", "matching": 1.0, "diff": ""}, {"address": "0x10002370", "name": "Matrix4Impl::SetData", "matching": 1.0, "diff": ""}, {"address": "0x10002380", "name": "Matrix4Impl::GetData", "matching": 1.0, "diff": ""}, {"address": "0x10002390", "name": "Matrix4Impl::GetData", "matching": 1.0, "diff": ""}, {"address": "0x100023a0", "name": "Matrix4Impl::Element", "matching": 1.0, "diff": ""}, {"address": "0x100023c0", "name": "Matrix4Impl::Element", "matching": 1.0, "diff": ""}, {"address": "0x100023e0", "name": "Matrix4Impl::Clear", "matching": 1.0, "diff": ""}, {"address": "0x100023f0", "name": "Matrix4Impl::SetIdentity", "matching": 1.0, "diff": ""}, {"address": "0x10002430", "name": "Matrix4Impl::operator+=", "matching": 1.0, "diff": ""}, {"address": "0x10002460", "name": "Matrix4Impl::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": "Matrix4Impl::SetTranslation", "matching": 1.0, "diff": ""}, {"address": "0x100024d0", "name": "Matrix4Impl::EqualsDataProduct", "matching": 0.7567567567567568, "diff": "--- \n\n+++ \n\n@@ -1,37 +1,37 @@\n\n sub esp, 4\n mov dword ptr [esp], 4\n push ebx\n push esi\n-mov ebx, dword ptr [esp + 0x10]\n push edi\n+mov ebx, dword ptr [ecx + 4]\n+mov edi, dword ptr [esp + 0x14]\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 esi, edi\n mov edx, eax\n mov ecx, 4\n-mov dword ptr [edi], 0\n+mov dword ptr [ebx], 0\n jmp <OFFSET1>\n-fstp dword ptr [edi]\n+fstp dword ptr [ebx]\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+fadd dword ptr [ebx]\n jne 0x30\n-fstp dword ptr [edi]\n-add edi, 4\n+fstp dword ptr [ebx]\n+add ebx, 4\n add eax, 4\n dec ebp\n jne 0x1f\n-add ebx, 0x10\n+add edi, 0x10\n dec dword ptr [esp + 0x10]\n jne 0x16\n pop ebp\n pop edi\n pop esi\n pop ebx\n add esp, 4\n ret 8"}, {"address": "0x10002530", "name": "Matrix4Impl::EqualsMxProduct", "matching": 1.0, "diff": ""}, {"address": "0x10002850", "name": "Matrix4Impl::operator=", "matching": 1.0, "diff": ""}, {"address": "0x10002860", "name": "Matrix4Data::operator=", "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": ""}, {"address": "0x100a5a50", "name": "OrientableROI::UpdateWorldVelocity", "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": "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": "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": "0x10001f80", "name": "Vector2Impl::AddVectorImpl", "matching": 1.0, "diff": ""}, {"address": "0x10001fa0", "name": "Vector2Impl::AddScalarImpl", "matching": 1.0, "diff": ""}, {"address": "0x10001fc0", "name": "Vector2Impl::SubVectorImpl", "matching": 1.0, "diff": ""}, {"address": "0x10001fe0", "name": "Vector2Impl::MullVectorImpl", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,11 +1,11 @@\n\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [esp + 4]\n-fld dword ptr [eax]\n-fmul dword ptr [edx]\n+fld dword ptr [edx]\n+fmul 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 fmul dword ptr [eax]\n fstp dword ptr [eax]\n ret 4"}, {"address": "0x10002000", "name": "Vector2Impl::MullScalarImpl", "matching": 0.6363636363636364, "diff": "--- \n\n+++ \n\n@@ -1,11 +1,11 @@\n\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [esp + 4]\n-fld dword ptr [eax]\n-fmul dword ptr [edx]\n+fld dword ptr [edx]\n+fmul dword ptr [eax]\n fstp dword ptr [eax]\n+fld dword ptr [edx]\n mov eax, dword ptr [ecx + 4]\n add eax, 4\n-fld dword ptr [eax]\n-fmul dword ptr [edx]\n+fmul dword ptr [eax]\n fstp dword ptr [eax]\n ret 4"}, {"address": "0x10002020", "name": "Vector2Impl::DivScalarImpl", "matching": 1.0, "diff": ""}, {"address": "0x10002040", "name": "Vector2Impl::DotImpl", "matching": 1.0, "diff": ""}, {"address": "0x10002060", "name": "Vector2Impl::SetData", "matching": 1.0, "diff": ""}, {"address": "0x10002070", "name": "Vector2Impl::EqualsImpl", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,7 +1,7 @@\n\n-mov edx, dword ptr [esp + 4]\n-mov ecx, dword ptr [ecx + 4]\n-mov eax, dword ptr [edx]\n-mov dword ptr [ecx], eax\n-mov edx, dword ptr [edx + 4]\n-mov dword ptr [ecx + 4], edx\n+mov edx, dword ptr [ecx + 4]\n+mov eax, dword ptr [esp + 4]\n+mov ecx, dword ptr [eax]\n+mov dword ptr [edx], ecx\n+mov eax, dword ptr [eax + 4]\n+mov dword ptr [edx + 4], eax\n ret 4"}, {"address": "0x10002090", "name": "Vector2Impl::GetData", "matching": 1.0, "diff": ""}, {"address": "0x100020a0", "name": "Vector2Impl::GetData", "matching": 1.0, "diff": ""}, {"address": "0x100020b0", "name": "Vector2Impl::Clear", "matching": 1.0, "diff": ""}, {"address": "0x100020d0", "name": "Vector2Impl::Dot", "matching": 1.0, "diff": ""}, {"address": "0x100020f0", "name": "Vector2Impl::Dot", "matching": 1.0, "diff": ""}, {"address": "0x10002110", "name": "Vector2Impl::Dot", "matching": 1.0, "diff": ""}, {"address": "0x10002130", "name": "Vector2Impl::Dot", "matching": 1.0, "diff": ""}, {"address": "0x10002150", "name": "Vector2Impl::LenSquared", "matching": 1.0, "diff": ""}, {"address": "0x10002160", "name": "Vector2Impl::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 [<OFFSET1>]\n fstp dword ptr [esp + 8]\n fnstsw ax\n test ah, 0x41\n jne 0x46\n fld dword ptr [esp + 8]\n fsqrt \n fcom dword ptr [<OFFSET1>]\n fstp dword ptr [esp + 8]\n fnstsw ax\n test ah, 0x41\n jne 0x46\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, <OFFSET2>\n pop edi\n pop esi\n add esp, 4\n ret "}, {"address": "0x100021c0", "name": "Vector2Impl::AddScalar", "matching": 1.0, "diff": ""}, {"address": "0x100021d0", "name": "Vector2Impl::AddVector", "matching": 1.0, "diff": ""}, {"address": "0x100021e0", "name": "Vector2Impl::AddVector", "matching": 1.0, "diff": ""}, {"address": "0x100021f0", "name": "Vector2Impl::SubVector", "matching": 1.0, "diff": ""}, {"address": "0x10002200", "name": "Vector2Impl::SubVector", "matching": 1.0, "diff": ""}, {"address": "0x10002210", "name": "Vector2Impl::MullVector", "matching": 1.0, "diff": ""}, {"address": "0x10002220", "name": "Vector2Impl::MullVector", "matching": 1.0, "diff": ""}, {"address": "0x10002230", "name": "Vector2Impl::MullScalar", "matching": 1.0, "diff": ""}, {"address": "0x10002240", "name": "Vector2Impl::DivScalar", "matching": 1.0, "diff": ""}, {"address": "0x10002250", "name": "Vector2Impl::SetVector", "matching": 1.0, "diff": ""}, {"address": "0x10002260", "name": "Vector2Impl::SetVector", "matching": 1.0, "diff": ""}, {"address": "0x10002270", "name": "Vector3Impl::EqualsCrossImpl", "matching": 0.9230769230769231, "diff": "--- \n\n+++ \n\n@@ -1,18 +1,18 @@\n\n mov edx, dword ptr [esp + 4]\n push esi\n mov esi, dword ptr [esp + 0xc]\n mov eax, dword ptr [ecx + 4]\n fld dword ptr [edx + 4]\n fmul dword ptr [esi + 8]\n-fld dword ptr [edx + 8]\n-fmul dword ptr [esi + 4]\n+fld dword ptr [esi + 4]\n+fmul dword ptr [edx + 8]\n fsubp st(1)\n fstp dword ptr [eax]\n fld dword ptr [edx + 8]\n fmul dword ptr [esi]\n fld dword ptr [esi + 8]\n fmul dword ptr [edx]\n mov eax, dword ptr [ecx + 4]\n fsubp st(1)\n fstp dword ptr [eax + 4]\n fld dword ptr [esi + 4]"}, {"address": "0x100022c0", "name": "Vector3Impl::EqualsCross", "matching": 1.0, "diff": ""}, {"address": "0x100022e0", "name": "Vector3Impl::EqualsCross", "matching": 1.0, "diff": ""}, {"address": "0x10002300", "name": "Vector3Impl::EqualsCross", "matching": 1.0, "diff": ""}, {"address": "0x10002870", "name": "Vector4Impl::AddVectorImpl", "matching": 1.0, "diff": ""}, {"address": "0x100028b0", "name": "Vector4Impl::AddScalarImpl", "matching": 1.0, "diff": ""}, {"address": "0x100028f0", "name": "Vector4Impl::SubVectorImpl", "matching": 1.0, "diff": ""}, {"address": "0x10002930", "name": "Vector4Impl::MullVectorImpl", "matching": 1.0, "diff": ""}, {"address": "0x10002970", "name": "Vector4Impl::MullScalarImpl", "matching": 1.0, "diff": ""}, {"address": "0x100029b0", "name": "Vector4Impl::DivScalarImpl", "matching": 1.0, "diff": ""}, {"address": "0x100029f0", "name": "Vector4Impl::DotImpl", "matching": 0.5, "diff": "--- \n\n+++ \n\n@@ -1,14 +1,14 @@\n\n+mov eax, dword ptr [esp + 4]\n mov ecx, dword ptr [esp + 8]\n-mov eax, dword ptr [esp + 4]\n-fld dword ptr [ecx + 4]\n-fmul dword ptr [eax + 4]\n-fld dword ptr [ecx + 0xc]\n-fmul dword ptr [eax + 0xc]\n+fld dword ptr [eax + 4]\n+fmul dword ptr [ecx + 4]\n+fld dword ptr [eax + 0xc]\n+fmul dword ptr [ecx + 0xc]\n faddp st(1)\n-fld dword ptr [ecx + 8]\n-fmul dword ptr [eax + 8]\n+fld dword ptr [eax + 8]\n+fmul dword ptr [ecx + 8]\n faddp st(1)\n fld dword ptr [ecx]\n fmul dword ptr [eax]\n faddp st(1)\n ret 8"}, {"address": "0x10002a20", "name": "Vector4Impl::EqualsImpl", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,11 +1,11 @@\n\n-mov edx, dword ptr [esp + 4]\n-mov ecx, dword ptr [ecx + 4]\n-mov eax, dword ptr [edx]\n-mov dword ptr [ecx], eax\n-mov eax, dword ptr [edx + 4]\n-mov dword ptr [ecx + 4], eax\n-mov eax, dword ptr [edx + 8]\n-mov dword ptr [ecx + 8], eax\n-mov edx, dword ptr [edx + 0xc]\n-mov dword ptr [ecx + 0xc], edx\n+mov edx, dword ptr [ecx + 4]\n+mov ecx, dword ptr [esp + 4]\n+mov eax, dword ptr [ecx]\n+mov dword ptr [edx], eax\n+mov eax, dword ptr [ecx + 4]\n+mov dword ptr [edx + 4], eax\n+mov eax, dword ptr [ecx + 8]\n+mov dword ptr [edx + 8], eax\n+mov ecx, dword ptr [ecx + 0xc]\n+mov dword ptr [edx + 0xc], ecx\n ret 4"}, {"address": "0x10002a40", "name": "Vector4Impl::SetMatrixProductImpl", "matching": 0.631578947368421, "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 + 8]\n+fmul dword ptr [edx]\n fld dword ptr [esi + 0x38]\n-fmul dword ptr [edx + 0xc]\n+fmul dword ptr [edx + 0x10]\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+fmul dword ptr [edx + 0x10]\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 + 0x2c]\n+fmul dword ptr [edx + 8]\n pop esi\n faddp st(1)\n fstp dword ptr [eax + 0xc]\n ret 8"}, {"address": "0x10002ae0", "name": "Vector4Impl::SetMatrixProduct", "matching": 1.0, "diff": ""}, {"address": "0x10002b00", "name": "Vector4Impl::Clear", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,7 +1,7 @@\n\n-mov ecx, dword ptr [ecx + 4]\n-xor eax, eax\n-mov dword ptr [ecx], eax\n-mov dword ptr [ecx + 4], eax\n-mov dword ptr [ecx + 8], eax\n-mov dword ptr [ecx + 0xc], eax\n+mov eax, dword ptr [ecx + 4]\n+xor ecx, ecx\n+mov dword ptr [eax], ecx\n+mov dword ptr [eax + 4], ecx\n+mov dword ptr [eax + 8], ecx\n+mov dword ptr [eax + 0xc], ecx\n ret "}, {"address": "0x10002b20", "name": "Vector4Impl::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": "Vector4Impl::EqualsScalar", "matching": 1.0, "diff": ""}, {"address": "0x10002bf0", "name": "Vector4Impl::UnknownQuaternionOp", "matching": 0.631578947368421, "diff": "--- \n\n+++ \n\n@@ -1,37 +1,35 @@\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 esi, dword ptr [esp + 0x14]\n+mov ebx, dword ptr [edx + 4]\n+fld dword ptr [ebx + 4]\n+fmul dword ptr [ebx + 4]\n+fld dword ptr [ebx + 8]\n mov edi, dword ptr [esi + 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 + 8]\n faddp st(1)\n-fld dword ptr [eax]\n+fld dword ptr [ebx]\n fmul dword ptr [edi]\n-mov ebx, dword ptr [ecx + 4]\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-mov eax, dword ptr [ecx + 4]\n-fld dword ptr [edi + 8]\n-fmul dword ptr [ebx + 4]\n+fstp dword ptr [eax + 0xc]\n+fld dword ptr [ebx + 4]\n+fmul dword ptr [edi + 8]\n fld dword ptr [edi + 4]\n fmul dword ptr [ebx + 8]\n+mov eax, dword ptr [ecx + 4]\n fsubp st(1)\n fstp dword ptr [eax]\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 [edi + 4]\n@@ -44,32 +42,36 @@\n\n mov ebx, dword ptr [ecx + 4]\n mov edi, dword ptr [esi + 4]\n mov eax, dword ptr [edx + 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": "0x10003a60", "name": "Vector3Impl::AddVectorImpl", "matching": 1.0, "diff": ""}, {"address": "0x10003a90", "name": "Vector3Impl::AddScalarImpl", "matching": 1.0, "diff": ""}, {"address": "0x10003ac0", "name": "Vector3Impl::SubVectorImpl", "matching": 1.0, "diff": ""}, {"address": "0x10003af0", "name": "Vector3Impl::MullVectorImpl", "matching": 1.0, "diff": ""}, {"address": "0x10003b20", "name": "Vector3Impl::MullScalarImpl", "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": "Vector3Impl::DivScalarImpl", "matching": 1.0, "diff": ""}, {"address": "0x10003b80", "name": "Vector3Impl::DotImpl", "matching": 1.0, "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 + 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": "Vector3Impl::EqualsImpl", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,9 +1,9 @@\n\n-mov edx, dword ptr [esp + 4]\n-mov ecx, dword ptr [ecx + 4]\n-mov eax, dword ptr [edx]\n-mov dword ptr [ecx], eax\n-mov eax, dword ptr [edx + 4]\n-mov dword ptr [ecx + 4], eax\n-mov edx, dword ptr [edx + 8]\n-mov dword ptr [ecx + 8], edx\n+mov edx, dword ptr [ecx + 4]\n+mov ecx, dword ptr [esp + 4]\n+mov eax, dword ptr [ecx]\n+mov dword ptr [edx], eax\n+mov eax, dword ptr [ecx + 4]\n+mov dword ptr [edx + 4], eax\n+mov ecx, dword ptr [ecx + 8]\n+mov dword ptr [edx + 8], ecx\n ret 4"}, {"address": "0x10003bc0", "name": "Vector3Impl::Clear", "matching": 1.0, "diff": "--- \n\n+++ \n\n@@ -1,6 +1,6 @@\n\n-mov ecx, dword ptr [ecx + 4]\n-xor eax, eax\n-mov dword ptr [ecx], eax\n-mov dword ptr [ecx + 4], eax\n-mov dword ptr [ecx + 8], eax\n+mov eax, dword ptr [ecx + 4]\n+xor ecx, ecx\n+mov dword ptr [eax], ecx\n+mov dword ptr [eax + 4], ecx\n+mov dword ptr [eax + 8], ecx\n ret "}, {"address": "0x10003bd0", "name": "Vector3Impl::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": "Vector3Impl::EqualsScalar", "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": ""}];
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>