mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-20 23:01:16 +00:00
265 lines
192 KiB
HTML
265 lines
192 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;
|
|
}
|
|
|
|
#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: "0x100061d0", name: "GasStationState::ClassName", matching: 1.0, diff: ""},{address: "0x100061e0", name: "GasStationState::IsA", matching: 1.0, diff: ""},{address: "0x10003070", name: "Helicopter::ClassName", matching: 1.0, diff: ""},{address: "0x10003080", name: "Helicopter::IsA", 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: "0x10002e10", name: "IslePathActor::~IslePathActor", matching: 0.7317073170731707, diff: "--- \n\n+++ \n\n@@ -1,20 +1,21 @@\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], 0\n-push 1\n+mov dword ptr [ebp - 4], <OFFSET3>\n mov dword ptr [ebp - 0x10], ecx\n-call <OFFSET3>\n-mov dword ptr [ebp - 4], <OFFSET4>\n-call <OFFSET5>\n+call <OFFSET4>\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, <OFFSET5>\n+jmp <OFFSET6>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET7>"},{address: "0x10002ea0", name: "IslePathActor::ClassName", matching: 1.0, diff: ""},{address: "0x10002eb0", name: "IslePathActor::IsA", 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: "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: "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: "0x1000c290", name: "LegoEntity::~LegoEntity", matching: 0.9565217391304348, diff: "--- \n\n+++ \n\n@@ -1,23 +1,23 @@\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], 0\n-push 1\n mov dword ptr [ebp - 0x10], ecx\n call <OFFSET3>\n mov dword ptr [ebp - 4], <OFFSET4>\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: "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: "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: "0x10039550", name: "LegoGameState::LegoGameState", matching: 0.0, diff: "--- \n\n+++ \n\n@@ -0,0 +1,2 @@\n\n+mov eax, ecx\n+ret "},{address: "0x10039720", name: "LegoGameState::~LegoGameState", matching: 0.0, diff: "--- \n\n+++ \n\n@@ -1 +1 @@\n\n-push esi\n+ret "},{address: "0x10039c60", name: "LegoGameState::Load", matching: 0.0, diff: "--- \n\n+++ \n\n@@ -0,0 +1,2 @@\n\n+xor eax, eax\n+ret 4"},{address: "0x10039980", name: "LegoGameState::Save", matching: 0.0, diff: "--- \n\n+++ \n\n@@ -0,0 +1,2 @@\n\n+xor eax, eax\n+ret 4"},{address: "0x1003a2e0", name: "LegoGameState::SerializePlayersInfo", matching: 0.0, diff: "--- \n\n+++ \n\n@@ -0,0 +1 @@\n\n+ret 4"},{address: "0x1003cdd0", name: "LegoGameState::SerializeScoreHistory", matching: 0.0, diff: "--- \n\n+++ \n\n@@ -0,0 +1 @@\n\n+ret 4"},{address: "0x10039f00", name: "LegoGameState::SetSavePath", 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: "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: "0x10054d40", name: "LegoNavController::GetDefaults", matching: 1.0, diff: ""},{address: "0x10054dd0", name: "LegoNavController::SetDefaults", matching: 1.0, diff: ""},{address: "0x10054ac0", name: "LegoNavController::LegoNavController", matching: 0.8952380952380953, diff: "--- \n\n+++ \n\n@@ -30,24 +30,23 @@\n\n mov dword ptr [esi + 0x60], ebx\n call <OFFSET5>\n cmp byte ptr [eax + 0xc], bl\n je 0x71\n mov eax, dword ptr [<OFFSET6>]\n mov dword ptr [esi + 0x58], eax\n jmp <OFFSET7>\n mov ecx, dword ptr [<OFFSET8>]\n sub ecx, dword ptr [eax + 8]\n mov dword ptr [esi + 0x58], ecx\n-push esi\n-call <OFFSET9>\n-mov ecx, eax\n-call <OFFSET10>\n-mov dword ptr [ebp - 4], <OFFSET11>\n+mov dword ptr [ebp - 4], <OFFSET9>\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 eax, <OFFSET12>\n+mov eax, <OFFSET10>\n+jmp <OFFSET11>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET12>"},{address: "0x10054ca0", name: "LegoNavController::SetControlMax", matching: 1.0, diff: ""},{address: "0x10054cd0", name: "LegoNavController::ResetToDefault", 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: 1.0, diff: ""},{address: "0x10054b80", name: "LegoNavController::ClassName", matching: 1.0, diff: ""},{address: "0x10054b90", name: "LegoNavController::IsA", matching: 1.0, diff: ""},{address: "0x10058a00", name: "LegoOmni::LegoOmni", matching: 1.0, diff: ""},{address: "0x10058b50", name: "LegoOmni::~LegoOmni", matching: 1.0, diff: ""},{address: "0x100b7050", name: "KeyValueStringParse", matching: 0.9150943396226415, diff: "--- \n\n+++ \n\n@@ -30,55 +30,55 @@\n\n mov edi, dword ptr [esp + 0x14]\n rep movsd dword ptr es:[edi], dword ptr [esi]\n mov ecx, edx\n push <OFFSET3>\n and ecx, 3\n rep movsb byte ptr es:[edi], byte ptr [esi]\n mov eax, dword ptr [esp + 0x18]\n push eax\n call <OFFSET4>\n add esp, 8\n-mov ebp, eax\n-test ebp, ebp\n+mov esi, eax\n+test esi, esi\n je 0xf9\n-mov esi, dword ptr [esp + 0x20]\n-mov edi, ebp\n+mov ebp, dword ptr [esp + 0x20]\n+mov edi, esi\n mov ecx, <OFFSET1>\n sub eax, eax\n+push ebp\n repne scasb al, byte ptr es:[edi]\n not ecx\n sub bx, cx\n push esi\n-push ebp\n call <OFFSET5>\n add esp, 8\n test eax, eax\n je 0xaa\n push <OFFSET3>\n push 0\n call <OFFSET4>\n add esp, 8\n-mov ebp, eax\n-test ebp, ebp\n+mov esi, eax\n+test esi, esi\n jne 0x75\n jmp <OFFSET6>\n mov edx, dword ptr [esp + 0x1c]\n test edx, edx\n je 0xf4\n test bx, bx\n jle 0xf4\n-mov edi, esi\n+mov edi, ebp\n mov ecx, <OFFSET1>\n sub eax, eax\n repne scasb al, byte ptr es:[edi]\n not ecx\n-lea eax, [ecx + ebp - 1]\n+lea eax, [ecx + esi - 1]\n inc eax\n cmp byte ptr [eax], 0x2c\n je 0xf1\n mov cl, byte ptr [eax]\n cmp cl, 0x20\n je 0xf1\n test cl, cl\n je 0xf1\n cmp cl, 9\n je 0xf1"},{address: "0x100b7210", name: "SetOmniUserMessage", matching: 1.0, diff: ""},{address: "0x1005ad10", name: "LegoOmni::GetInstance", matching: 1.0, diff: ""},{address: "0x1005ac90", name: "LegoOmni::CreateInstance", 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: "0x100157f0", name: "BuildingManager", matching: 1.0, diff: ""},{address: "0x10015790", name: "GetIsle", matching: 1.0, diff: ""},{address: "0x100157e0", name: "PlantManager", matching: 1.0, diff: ""},{address: "0x10015730", name: "BackgroundAudioManager", matching: 1.0, diff: ""},{address: "0x10015740", name: "InputManager", matching: 1.0, diff: ""},{address: "0x10015760", name: "GameState", matching: 1.0, diff: ""},{address: "0x10015780", name: "NavController", matching: 1.0, diff: ""},{address: "0x10015900", name: "TransitionManager", matching: 1.0, diff: ""},{address: "0x10053430", name: "GetNoCD_SourceName", matching: 0.6666666666666666, diff: "--- \n\n+++ \n\n@@ -1 +1,2 @@\n\n mov eax, dword ptr [<OFFSET1>]\n+ret "},{address: "0x1005b5f0", name: "LegoOmni::Notify", matching: 0.0, diff: "--- \n\n+++ \n\n@@ -1,4 +1,2 @@\n\n-push ebx\n-push esi\n-push edi\n-xor bl, bl\n+xor eax, eax\n+ret 4"},{address: "0x10058bd0", name: "LegoOmni::Init", matching: 0.0, diff: "--- \n\n+++ \n\n@@ -1 +1 @@\n\n-push esi\n+ret "},{address: "0x10058e70", name: "LegoOmni::Create", matching: 0.0, diff: "--- \n\n+++ \n\n@@ -0,0 +1,2 @@\n\n+xor eax, eax\n+ret 4"},{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: "0x1007a0d0", name: "LegoPalettePresenter::Init", 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: "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: "0x1004e3b0", name: "LegoPhonemePresenter::Init", matching: 1.0, diff: ""},{address: "0x1004e340", name: "LegoPhonemePresenter::~LegoPhonemePresenter", 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: "0x10015ba0", name: "LegoRace::ClassName", matching: 1.0, diff: ""},{address: "0x10015bb0", name: "LegoRace::IsA", matching: 1.0, diff: ""},{address: "0x100a9e10", name: "LegoROI::SetDisplayBB", matching: 1.0, diff: ""},{address: "0x100a81c0", name: "LegoROI::configureLegoROI", matching: 1.0, diff: ""},{address: "0x10005f40", name: "LegoState::~LegoState", matching: 1.0, diff: ""},{address: "0x10005f90", name: "LegoState::VTable0x14", matching: 1.0, diff: ""},{address: "0x100060d0", name: "LegoState::ClassName", matching: 1.0, diff: ""},{address: "0x100060e0", name: "LegoState::IsA", matching: 1.0, diff: ""},{address: "0x10045ae0", name: "LegoStream::IsWriteMode", matching: 1.0, diff: ""},{address: "0x10045af0", name: "LegoStream::IsReadMode", 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: "--- \n\n+++ \n\n@@ -1,15 +1,15 @@\n\n-mov ecx, dword ptr [ecx + 8]\n-test ecx, ecx\n+mov eax, dword ptr [ecx + 8]\n+test eax, eax\n jne 0xf\n mov eax, <OFFSET1>\n ret 4\n-mov eax, dword ptr [esp + 4]\n+mov ecx, dword ptr [esp + 4]\n push 0\n+push ecx\n push eax\n-push ecx\n call <OFFSET2>\n add esp, 0xc\n cmp eax, 1\n mov eax, 0\n adc eax, -1\n ret 4"},{address: "0x100993a0", name: "LegoFileStream::Open", 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: "0x100994a0", name: "LegoMemoryStream::Tell", matching: 1.0, diff: ""},{address: "0x100994b0", name: "LegoMemoryStream::Seek", matching: 1.0, diff: ""},{address: "0x1000ce50", name: "LegoTexturePresenter::ClassName", matching: 1.0, diff: ""},{address: "0x1000ce60", name: "LegoTexturePresenter::IsA", matching: 1.0, diff: ""},{address: "0x1003eae0", name: "ConvertHSVToRGB", matching: 0.9078014184397163, 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 + 0x100092a8]\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,20 @@\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+mov bh, 0x91\n+add byte ptr [eax], dl\n+fst dword ptr [ecx - 0x6e04f000]\n+add byte ptr [eax], dl\n+sbb eax, <OFFSET7>\n+xchg edx, eax\n+add byte ptr [eax], dl\n+popal \n+xchg edx, eax\n+add byte ptr [eax], dl"},{address: "0x1007c440", name: "LegoVideoManager::SetSkyColor", matching: 0.0, diff: "--- \n\n+++ \n\n@@ -0,0 +1 @@\n\n+ret 0xc"},{address: "0x1001d690", name: "LegoWorld::ClassName", matching: 1.0, diff: ""},{address: "0x1001d6a0", name: "LegoWorld::IsA", matching: 1.0, diff: ""},{address: "0x10066630", name: "LegoWorldPresenter::ClassName", matching: 1.0, diff: ""},{address: "0x10066640", name: "LegoWorldPresenter::IsA", matching: 1.0, diff: ""},{address: "0x10035840", name: "Motorcycle::ClassName", matching: 1.0, diff: ""},{address: "0x10035850", name: "Motorcycle::IsA", 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: 1.0, diff: ""},{address: "0x100ad1c0", name: "MxAtomId::operator=", matching: 1.0, diff: ""},{address: "0x100ad210", name: "MxAtomId::GetCounter", matching: 0.990909090909091, diff: "--- \n\n+++ \n\n@@ -102,21 +102,21 @@\n\n mov ecx, dword ptr [eax + 0xc]\n mov dword ptr [ebp - 0x14], ecx\n jmp <OFFSET15>\n mov ecx, dword ptr [ebp - 0x18]\n jmp <OFFSET6>\n call <OFFSET10>\n mov edi, dword ptr [eax + 4]\n mov ebx, eax\n mov eax, 1\n mov esi, dword ptr [edi + 4]\n-cmp dword ptr [<OFFSET16>], esi\n+cmp esi, dword ptr [<OFFSET16>]\n je 0x1a0\n mov edi, esi\n mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [esi + 0xc]\n mov eax, dword ptr [eax + 8]\n mov edx, dword ptr [ecx + 8]\n mov cl, byte ptr [eax]\n cmp cl, byte ptr [edx]\n jne 0x17d\n or cl, cl\n@@ -134,21 +134,21 @@\n\n sbb eax, -1\n test eax, eax\n mov eax, 1\n jg 0x18d\n xor eax, eax\n test eax, eax\n jne 0x196\n mov esi, dword ptr [esi + 8]\n jmp <OFFSET18>\n mov esi, dword ptr [esi]\n-cmp dword ptr [<OFFSET16>], esi\n+cmp esi, dword ptr [<OFFSET16>]\n jne 0x14f\n cmp dword ptr [ebx + 8], 0\n je 0x1b1\n lea eax, [ebp - 0x14]\n lea ecx, [ebp - 0x20]\n push eax\n push edi\n push esi\n jmp <OFFSET19>\n mov dword ptr [ebp - 0x10], edi"},{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: "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: 0.6666666666666666, diff: "--- \n\n+++ \n\n@@ -1,43 +1,41 @@\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], 3\n+push ecx\n mov dword ptr [ebp - 0x10], ecx\n call <OFFSET3>\n-mov ecx, dword ptr [ebp - 0x10]\n-mov edx, dword ptr [eax]\n-push ecx\n mov ecx, eax\n-call dword ptr [edx + 0x18]\n-mov ecx, dword ptr [ebp - 0x10]\n-push ecx\n call <OFFSET4>\n-mov ecx, eax\n+mov byte ptr [ebp - 4], 2\n call <OFFSET5>\n-mov ecx, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], 1\n call <OFFSET6>\n-mov byte ptr [ebp - 4], 2\n+mov byte ptr [ebp - 4], 0\n call <OFFSET7>\n-mov byte ptr [ebp - 4], 1\n-call <OFFSET8>\n-mov byte ptr [ebp - 4], 0\n+mov dword ptr [ebp - 4], <OFFSET8>\n call <OFFSET9>\n-mov dword ptr [ebp - 4], <OFFSET10>\n-call <OFFSET11>\n mov eax, dword ptr [ebp - 0xc]\n mov esp, ebp\n mov dword ptr fs:[0], eax\n pop ebp\n ret \n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x14c\n-jmp <OFFSET12>\n+jmp <OFFSET10>\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0xa4\n+jmp <OFFSET11>\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0xc\n+jmp <OFFSET11>\n+mov eax, <OFFSET12>\n jmp <OFFSET13>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET14>"},{address: "0x1007f470", name: "MxBackgroundAudioManager::Stop", matching: 0.0, diff: "--- \n\n+++ \n\n@@ -0,0 +1 @@\n\n+ret "},{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: "0x100bc980", name: "MxBitmap::MxBitmap", matching: 1.0, diff: ""},{address: "0x100bca10", name: "MxBitmap::~MxBitmap", matching: 1.0, diff: ""},{address: "0x100bcc40", name: "MxBitmap::ImportBitmap", matching: 0.8552631578947368, diff: "--- \n\n+++ \n\n@@ -23,39 +23,39 @@\n\n push eax\n call <OFFSET2>\n add esp, 4\n mov dword ptr [ebx + 0x14], eax\n test eax, eax\n je 0x92\n mov edi, dword ptr [ebx + 8]\n mov esi, dword ptr [ebp + 8]\n mov ecx, 0x10a\n rep movsd dword ptr es:[edi], dword ptr [esi]\n-mov eax, dword ptr [ebp + 0xc]\n-mov ecx, dword ptr [eax + 8]\n-test ecx, ecx\n+mov ecx, dword ptr [ebp + 0xc]\n+mov eax, dword ptr [ecx + 8]\n+test eax, eax\n jg 0x64\n-neg ecx\n-mov eax, dword ptr [eax + 4]\n+neg eax\n+mov edx, dword ptr [ecx + 4]\n mov edi, dword ptr [ebx + 0x14]\n-add eax, 3\n+add edx, 3\n mov esi, dword ptr [ebp + 0x14]\n-and eax, <OFFSET3>\n-imul eax, ecx\n-mov ecx, eax\n+and edx, <OFFSET3>\n+imul edx, eax\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+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: "0x100bcba0", name: "MxBitmap::ImportBitmapInfo", 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: "0x100bcaa0", name: "MxBitmap::SetSize", matching: 1.0, diff: ""},{address: "0x100bcd60", name: "MxBitmap::LoadFile", matching: 1.0, diff: ""},{address: "0x100bcd10", name: "MxBitmap::Read", matching: 1.0, diff: ""},{address: "0x1004e0d0", name: "MxBitmap::vtable28", 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: "0x10073f10", name: "MxCompositeMediaPresenter::ClassName", matching: 1.0, diff: ""},{address: "0x10073f20", name: "MxCompositeMediaPresenter::IsA", matching: 1.0, diff: ""},{address: "0x100b6210", name: "MxCompositePresenter::ClassName", matching: 1.0, diff: ""},{address: "0x100b6220", name: "MxCompositePresenter::IsA", matching: 1.0, diff: ""},{address: "0x10044000", name: "MxControlPresenter::ClassName", matching: 1.0, diff: ""},{address: "0x10044010", name: "MxControlPresenter::IsA", 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: "0x10001f70", name: "MxCore::Tickle", matching: 1.0, diff: ""},{address: "0x100144c0", name: "MxCore::ClassName", matching: 1.0, diff: ""},{address: "0x100140d0", name: "MxCore::IsA", matching: 1.0, diff: ""},{address: "0x100b6d20", name: "MxCriticalSection::MxCriticalSection", matching: 1.0, diff: ""},{address: "0x100b6d60", name: "MxCriticalSection::~MxCriticalSection", matching: 1.0, diff: ""},{address: "0x100b6e00", name: "MxCriticalSection::SetDoMutex", matching: 1.0, diff: ""},{address: "0x100b6d80", name: "MxCriticalSection::Enter", matching: 1.0, diff: ""},{address: "0x100b6de0", name: "MxCriticalSection::Leave", 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: "0x1009da20", name: "EnableResizing", matching: 1.0, diff: ""},{address: "0x1009efb0", name: "MxDirectDraw::DeviceModesInfo::DeviceModesInfo", matching: 1.0, diff: ""},{address: "0x1009efd0", name: "MxDirectDraw::DeviceModesInfo::~DeviceModesInfo", matching: 1.0, diff: ""},{address: "0x1009d490", name: "MxDirectDraw::MxDirectDraw", matching: 1.0, diff: ""},{address: "0x1009d530", name: "MxDirectDraw::~MxDirectDraw", matching: 1.0, diff: "--- \n\n+++ \n\n@@ -1,17 +1,17 @@\n\n push esi\n push edi\n mov dword ptr [ecx], <OFFSET1>\n-mov edi, ecx\n+mov esi, ecx\n call <OFFSET2>\n-mov esi, dword ptr [edi + 0x870]\n-test esi, esi\n+mov edi, dword ptr [esi + 0x870]\n+test edi, edi\n je 0x33\n-mov ecx, esi\n+mov ecx, edi\n call <OFFSET3>\n-push esi\n+push edi\n call <OFFSET4>\n-mov dword ptr [edi + 0x870], 0\n+mov dword ptr [esi + 0x870], 0\n add esp, 4\n pop edi\n pop esi\n ret "},{address: "0x1009d570", name: "MxDirectDraw::GetPrimaryBitDepth", matching: 1.0, diff: ""},{address: "0x1009d5e0", name: "MxDirectDraw::Create", matching: 1.0, diff: ""},{address: "0x1009d800", name: "MxDirectDraw::Destroy", matching: 1.0, diff: ""},{address: "0x1009d860", name: "MxDirectDraw::DestroyButNotDirectDraw", matching: 1.0, diff: ""},{address: "0x1009e6a0", name: "MxDirectDraw::Pause", matching: 1.0, diff: ""},{address: "0x1009e880", name: "MxDirectDraw::ErrorToString", matching: 0.8726467331118494, 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 + 0x1000c364]\n+jmp dword ptr [ecx*4 + 0x1000c350]\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 + 0x1000c36c]\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,79 @@\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+mov ecx, <OFFSET151>\n+add byte ptr [eax], dl\n+xlatb \n+rol dword ptr [eax], 0x10\n+ffreep st(1)\n+add byte ptr [eax], dl\n+int3 \n+mov esp, 0x4001000\n add dword ptr [edx + eax], eax\n add al, 4\n-add ebp, dword ptr [edi]\n-out dx, al\n-or dword ptr [eax], edx\n+add ebx, dword ptr [edi - 0x3e]\n+add byte ptr [eax], dl\n+ret 0x1000\n+outsd dx, dword ptr [esi]\n+ret 0x1000\n+ja 0x68c\n+add byte ptr [eax], dl\n+jg 0x690\n+add byte ptr [eax], dl\n+xchg edx, eax\n+add byte ptr [eax], dl\n+pop edx\n+add byte ptr [eax], dl\n+xchg edi, eax\n+ret 0x1000\n+lahf \n+ret 0x1000\n+cmpsd dword ptr [esi], dword ptr es:[edi]\n+ret 0x1000\n+scasd eax, dword ptr es:[edi]\n+ret 0x1000\n+mov bh, 0xc2\n+add byte ptr [eax], dl\n+mov edi, <OFFSET152>\n+ret 0x1000\n+iretd \n+ret 0x1000\n+xlatb \n+ret 0x1000\n+ffreep st(2)\n+add byte ptr [eax], dl\n+out 0xc2, eax\n+add byte ptr [eax], dl\n+out dx, eax\n+ret 0x1000\n+test edx, <OFFSET153>\n+add byte ptr [eax], dl\n+pop es\n+ret \n+add byte ptr [eax], dl\n+movnti dword ptr [eax], eax\n+adc byte ptr [edi], dl\n+ret \n+add byte ptr [eax], dl\n+pop ds\n+ret \n+add byte ptr [eax], dl\n+daa \n+ret \n+add byte ptr [eax], dl\n+das \n+ret \n+add byte ptr [eax], dl\n aaa \n-out dx, al\n-or dword ptr [eax], edx\n+ret \n+add byte ptr [eax], dl\n aas \n-out dx, al\n-or dword ptr [eax], edx\n-inc edi\n-out dx, al\n-or dword ptr [eax], edx\n-dec edi\n-out dx, al\n-or dword ptr [eax], edx\n-push edi\n-out dx, al\n-or dword ptr [eax], edx\n-pop edi\n-out dx, al\n-or dword ptr [eax], edx\n-out dx, al\n-or dword ptr [eax], edx\n-outsd dx, dword ptr [esi]\n-out dx, al\n-or dword ptr [eax], edx\n-ja 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+ret \n+add byte ptr [eax], dl"},{address: "0x1009d6c0", name: "MxDirectDraw::CacheOriginalPaletteEntries", matching: 1.0, diff: ""},{address: "0x1009dd80", name: "MxDirectDraw::CreateDDSurface", matching: 1.0, diff: ""},{address: "0x1009e250", name: "MxDirectDraw::CreateTextSurfaces", matching: 1.0, diff: ""},{address: "0x1009e5e0", name: "MxDirectDraw::CreateZBuffer", matching: 1.0, diff: ""},{address: "0x1009ddf0", name: "MxDirectDraw::DDCreateSurfaces", matching: 1.0, diff: ""},{address: "0x1009d960", name: "MxDirectDraw::DDInit", matching: 1.0, diff: ""},{address: "0x1009da80", name: "MxDirectDraw::DDSetMode", matching: 1.0, diff: ""},{address: "0x1009e830", name: "MxDirectDraw::Error", matching: 1.0, diff: ""},{address: "0x1009dda0", name: "MxDirectDraw::GetDDSurfaceDesc", matching: 1.0, diff: ""},{address: "0x1009d9d0", name: "MxDirectDraw::IsSupportedMode", matching: 0.9375, diff: "--- \n\n+++ \n\n@@ -11,22 +11,22 @@\n\n mov edx, dword ptr [esp + 0x14]\n mov esi, dword ptr [esp + 0x18]\n cmp dword ptr [eax], ecx\n jne 0x2f\n cmp dword ptr [eax + 4], edx\n jne 0x2f\n cmp dword ptr [eax + 8], esi\n je 0x3f\n add eax, 0xc\n inc edi\n-cmp edi, ebx\n-jl 0x21\n+cmp ebx, edi\n+jg 0x21\n xor eax, eax\n pop edi\n pop esi\n pop ebx\n ret 0xc\n mov eax, 1\n pop edi\n pop esi\n pop ebx\n ret 0xc"},{address: "0x1009d690", name: "MxDirectDraw::RecreateDirectDraw", matching: 1.0, diff: ""},{address: "0x1009e7a0", name: "MxDirectDraw::RestoreOriginalPaletteEntries", matching: 1.0, diff: ""},{address: "0x1009e750", name: "MxDirectDraw::RestorePaletteEntries", matching: 1.0, diff: ""},{address: "0x1009e7f0", name: "MxDirectDraw::FlipToGDISurface", matching: 1.0, diff: ""},{address: "0x1009e4d0", name: "MxDirectDraw::RestoreSurfaces", 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: "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: "0x1009e020", name: "MxDirectDraw::FUN_1009E020", matching: 1.0, diff: ""},{address: "0x1009d920", name: "MxDirectDraw::FUN_1009D920", 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: "0x100d0f70", name: "MxDiskStreamProvider::MxDiskStreamProvider", matching: 0.5, diff: "--- \n\n+++ \n\n@@ -1,62 +1,54 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 8\n-push ebx\n+sub esp, 4\n push esi\n-mov dword ptr [ebp - 0x14], ecx\n+mov dword ptr [ebp - 0x10], ecx\n mov esi, ecx\n-xor ebx, ebx\n call <OFFSET2>\n+mov dword ptr [ebp - 4], 0\n lea ecx, [esi + 0x10]\n-mov dword ptr [ebp - 4], ebx\n-mov dword ptr [esi + 8], ebx\n-mov dword ptr [esi + 0xc], ebx\n+mov dword ptr [esi], <OFFSET3>\n mov dword ptr [ebp - 4], 1\n-mov dword ptr [esi], <OFFSET3>\n call <OFFSET4>\n mov byte ptr [ebp - 4], 2\n-lea ecx, [esi + 0x2c]\n-mov dword ptr [esi + 0x28], ebx\n+mov dword ptr [esi + 0x28], 0\n mov dword ptr [esi + 0x10], <OFFSET5>\n mov byte ptr [ebp - 4], 3\n+lea ecx, [esi + 0x2c]\n call <OFFSET6>\n mov byte ptr [ebp - 4], 4\n lea ecx, [esi + 0x38]\n call <OFFSET7>\n-mov al, byte ptr [ebp - 0xd]\n-push 0xc\n mov byte ptr [ebp - 4], 5\n-mov byte ptr [esi + 0x54], al\n-call <OFFSET8>\n-add esp, 4\n-mov dword ptr [eax], eax\n-mov byte ptr [ebp - 4], 9\n-mov dword ptr [eax + 4], eax\n-mov dword ptr [esi + 0x58], eax\n-mov dword ptr [esi + 0x5c], ebx\n-mov dword ptr [esi], <OFFSET9>\n-mov dword ptr [esi + 0xc], ebx\n mov eax, esi\n-mov byte ptr [esi + 0x34], bl\n-mov dword ptr [ebp - 4], <OFFSET10>\n+mov dword ptr [esi], <OFFSET8>\n+mov dword ptr [ebp - 4], <OFFSET9>\n mov ecx, dword ptr [ebp - 0xc]\n-mov byte ptr [esi + 0x35], bl\n+pop esi\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, 0x54\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x38\n+jmp <OFFSET10>\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x2c\n jmp <OFFSET11>\n-mov ecx, dword ptr [ebp - 0x14]\n-add ecx, 0x54\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x10\n jmp <OFFSET12>\n-mov ecx, dword ptr [ebp - 0x14]\n-add ecx, 0x54\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x10\n+jmp <OFFSET13>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET14>\n+mov eax, <OFFSET15>\n+jmp <OFFSET16>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET17>"},{address: "0x100d1240", name: "MxDiskStreamProvider::~MxDiskStreamProvider", matching: 0.2891566265060241, diff: "--- \n\n+++ \n\n@@ -1,45 +1,38 @@\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-lea eax, [ecx + 0x38]\n+mov eax, 2\n mov dword ptr fs:[0], esp\n-sub esp, 0x14\n+sub esp, 4\n+mov dword ptr [ebp - 4], 1\n mov dword ptr [ebp - 0x10], ecx\n-mov dword ptr [ebp - 0x20], eax\n-mov dword ptr [ebp - 4], 4\n-mov byte ptr [ecx + 0x35], 0\n-mov eax, dword ptr [ebp - 0x20]\n-lea ecx, [ebp - 0x1c]\n-mov dword ptr [ebp - 0x14], 0\n-push eax\n+mov byte ptr [ebp - 4], al\n call <OFFSET3>\n-mov eax, dword ptr [ebp - 0x10]\n-mov byte ptr [ebp - 4], 5\n-cmp dword ptr [eax + 0x5c], 0\n-je 0x85\n-mov ecx, dword ptr [eax + 0x58]\n-mov eax, dword ptr [ecx]\n-mov dword ptr [ebp - 0x18], eax\n-mov edx, dword ptr [eax + 8]\n-mov dword ptr [ebp - 0x14], edx\n-lea edx, [eax + 4]\n-mov eax, dword ptr [eax]\n-mov ecx, dword ptr [edx]\n-mov dword ptr [ecx], eax\n-mov ecx, dword ptr [edx]\n-mov eax, dword ptr [ebp - 0x18]\n-push eax\n-mov edx, dword ptr [eax]\n-mov dword ptr [edx + 4], ecx\n+mov byte ptr [ebp - 4], 1\n call <OFFSET4>\n-add esp, 4\n+mov byte ptr [ebp - 4], 0\n+call <OFFSET5>\n+mov dword ptr [ebp - 4], <OFFSET6>\n+call <OFFSET7>\n+mov eax, dword ptr [ebp - 0xc]\n+mov esp, ebp\n+mov dword ptr fs:[0], eax\n+pop ebp\n+ret \n mov ecx, dword ptr [ebp - 0x10]\n-dec dword ptr [ecx + 0x5c]\n-mov byte ptr [ebp - 4], 4\n-call <OFFSET5>\n-cmp dword ptr [ebp - 0x14], 0\n-je 0xc5\n+add ecx, 0x38\n+jmp <OFFSET8>\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x2c\n+jmp <OFFSET9>\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x10\n+jmp <OFFSET10>\n+mov eax, <OFFSET11>\n+jmp <OFFSET12>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET13>"},{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: "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.9952830188679245, diff: "--- \n\n+++ \n\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: "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: "0x100adc10", name: "MxDSAction::operator=", matching: 1.0, diff: ""},{address: "0x100adbe0", name: "MxDSAction::GetSizeOnDisk", matching: 1.0, diff: "--- \n\n+++ \n\n@@ -1,18 +1,18 @@\n\n push ebx\n push esi\n push edi\n mov ebx, ecx\n call <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: "0x100adf70", name: "MxDSAction::Deserialize", matching: 1.0, diff: ""},{address: "0x100ad940", name: "MxDSAction::GetDuration", matching: 1.0, diff: ""},{address: "0x100ad950", name: "MxDSAction::SetDuration", matching: 1.0, diff: ""},{address: "0x100adc40", name: "MxDSAction::Clone", matching: 1.0, diff: ""},{address: "0x100add00", name: "MxDSAction::MergeFrom", matching: 0.7064220183486238, diff: "--- \n\n+++ \n\n@@ -1,107 +1,111 @@\n\n-sub esp, 8\n push ebx\n push esi\n push edi\n mov esi, ecx\n-mov edi, dword ptr [esp + 0x18]\n+mov edi, dword ptr [esp + 0x10]\n mov eax, dword ptr [edi + 0x34]\n cmp eax, <OFFSET1>\n-je 0x19\n+je 0x16\n mov dword ptr [esi + 0x34], eax\n mov eax, dword ptr [edi]\n mov ecx, edi\n mov ebx, dword ptr [eax + 0x24]\n call ebx\n cmp eax, <OFFSET1>\n-je 0x30\n+je 0x2d\n mov ecx, edi\n call ebx\n mov dword ptr [esi + 0x38], eax\n mov eax, dword ptr [edi + 0x3c]\n cmp eax, -1\n-je 0x3b\n+je 0x38\n mov dword ptr [esi + 0x3c], eax\n mov eax, dword ptr [edi + 0x44]\n cmp dword ptr [eax], <OFFSET2>\n-je 0x4d\n+je 0x4a\n mov ecx, dword ptr [esi + 0x44]\n mov eax, dword ptr [eax]\n mov dword ptr [ecx], eax\n mov eax, dword ptr [edi + 0x44]\n add eax, 4\n cmp dword ptr [eax], <OFFSET2>\n-je 0x63\n+je 0x60\n mov ecx, dword ptr [esi + 0x44]\n mov eax, dword ptr [eax]\n mov dword ptr [ecx + 4], eax\n mov eax, dword ptr [edi + 0x44]\n add eax, 8\n cmp dword ptr [eax], <OFFSET2>\n-je 0x79\n+je 0x76\n mov ecx, dword ptr [esi + 0x44]\n mov eax, dword ptr [eax]\n mov dword ptr [ecx + 8], eax\n mov eax, dword ptr [edi + 0x58]\n cmp dword ptr [eax], <OFFSET2>\n-je 0x8b\n+je 0x88\n mov ecx, dword ptr [esi + 0x58]\n mov eax, dword ptr [eax]\n mov dword ptr [ecx], eax\n mov eax, dword ptr [edi + 0x58]\n add eax, 4\n cmp dword ptr [eax], <OFFSET2>\n-je 0xa1\n+je 0x9e\n mov ecx, dword ptr [esi + 0x58]\n mov eax, dword ptr [eax]\n mov dword ptr [ecx + 4], eax\n mov eax, dword ptr [edi + 0x58]\n-cmp dword ptr [eax + 8], <OFFSET2>\n-je 0xb9\n-mov eax, dword ptr [edi + 0x6c]\n+add eax, 8\n+cmp dword ptr [eax], <OFFSET2>\n+je 0xb4\n mov ecx, dword ptr [esi + 0x58]\n-mov edx, dword ptr [eax + 8]\n-mov dword ptr [ecx + 8], edx\n+mov eax, dword ptr [eax]\n+mov dword ptr [ecx + 8], eax\n mov eax, dword ptr [edi + 0x6c]\n cmp dword ptr [eax], <OFFSET2>\n-je 0xcb\n+je 0xc6\n mov ecx, dword ptr [esi + 0x6c]\n mov eax, dword ptr [eax]\n mov dword ptr [ecx], eax\n mov eax, dword ptr [edi + 0x6c]\n add eax, 4\n cmp dword ptr [eax], <OFFSET2>\n-je 0xe1\n+je 0xdc\n mov ecx, dword ptr [esi + 0x6c]\n mov eax, dword ptr [eax]\n mov dword ptr [ecx + 4], eax\n mov eax, dword ptr [edi + 0x6c]\n add eax, 8\n cmp dword ptr [eax], <OFFSET2>\n-je 0xf7\n+je 0xf2\n mov ecx, dword ptr [esi + 0x6c]\n mov eax, dword ptr [eax]\n mov dword ptr [ecx + 8], eax\n-mov ax, word ptr [edi + 0x80]\n-mov ecx, dword ptr [edi + 0x7c]\n-mov word ptr [esp + 0xe], ax\n-mov dword ptr [esp + 0x10], ecx\n-test ax, ax\n-je 0x154\n-test ecx, ecx\n-je 0x154\n+mov bx, word ptr [edi + 0x80]\n+mov edi, dword ptr [edi + 0x7c]\n+test bx, bx\n+je 0x13e\n+test edi, edi\n+je 0x13e\n mov eax, dword ptr [esi + 0x7c]\n test eax, eax\n-je 0x12e\n+je 0x120\n push 3\n push eax\n push <OFFSET3>\n call <OFFSET4>\n add esp, 0xc\n test eax, eax\n-jne 0x154\n+jne 0x13e\n mov eax, dword ptr [esi + 0x7c]\n push eax\n call <OFFSET5>\n-mov eax, dword ptr [esp + 0x14]\n-mov ecx, dword ptr [esp + 0x12]\n add esp, 4\n+mov ecx, esi\n+mov word ptr [esi + 0x80], 0\n+push edi\n+push ebx\n+call <OFFSET6>\n+pop edi\n+pop esi\n+pop ebx\n+ret 4"},{address: "0x100ad960", name: "MxDSAction::HasId", matching: 1.0, diff: ""},{address: "0x100ada40", name: "MxDSAction::SetSomeTimingField", matching: 1.0, diff: ""},{address: "0x100ada50", name: "MxDSAction::GetSomeTimingField", matching: 1.0, diff: ""},{address: "0x100adcd0", name: "MxDSAction::GetTickCount", matching: 0.9333333333333333, diff: "--- \n\n+++ \n\n@@ -1,15 +1,15 @@\n\n push esi\n mov esi, ecx\n call <OFFSET1>\n cmp byte ptr [eax + 0xc], 0\n je 0x1b\n mov eax, dword ptr [<OFFSET2>]\n sub eax, dword ptr [esi + 0x90]\n pop esi\n ret \n mov ecx, dword ptr [<OFFSET3>]\n-sub ecx, dword ptr [eax + 8]\n sub ecx, dword ptr [esi + 0x90]\n pop esi\n+sub ecx, dword ptr [eax + 8]\n mov eax, ecx\n ret "},{address: "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: "0x100ad980", name: "MxDSAction::ClassName", matching: 1.0, diff: ""},{address: "0x100ad990", name: "MxDSAction::IsA", 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: "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: "0x100cc4b0", name: "MxDSFile::MxDSFile", matching: 1.0, diff: ""},{address: "0x100bfed0", name: "MxDSFile::~MxDSFile", matching: 1.0, diff: ""},{address: "0x100cc590", name: "MxDSFile::Open", matching: 1.0, diff: ""},{address: "0x100cc780", name: "MxDSFile::Read", matching: 1.0, diff: ""},{address: "0x100cc620", name: "MxDSFile::ReadChunks", matching: 1.0, diff: ""},{address: "0x100cc7b0", name: "MxDSFile::Seek", matching: 1.0, diff: ""},{address: "0x100cc7e0", name: "MxDSFile::GetBufferSize", matching: 1.0, diff: ""},{address: "0x100cc7f0", name: "MxDSFile::GetStreamBuffersNum", matching: 1.0, diff: ""},{address: "0x100cc740", name: "MxDSFile::Close", 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: 0.75, diff: "--- \n\n+++ \n\n@@ -1,26 +1,22 @@\n\n push esi\n push edi\n mov esi, ecx\n mov edi, dword ptr [esp + 0xc]\n mov eax, dword ptr [edi + 0x98]\n push eax\n call <OFFSET1>\n-lea eax, [edi + 0x9c]\n-lea ecx, [esi + 0x9c]\n-mov edx, dword ptr [eax]\n-mov eax, dword ptr [eax + 4]\n-mov dword ptr [ecx], edx\n-mov dword ptr [ecx + 4], eax\n+mov eax, dword ptr [edi + 0x9c]\n+mov dword ptr [esi + 0x9c], eax\n+mov ecx, dword ptr [edi + 0xa0]\n+mov dword ptr [esi + 0xa0], ecx\n mov edx, dword ptr [edi + 0xa4]\n mov dword ptr [esi + 0xa4], edx\n mov eax, dword ptr [edi + 0xa8]\n mov dword ptr [esi + 0xa8], eax\n mov ecx, dword ptr [edi + 0xac]\n mov dword ptr [esi + 0xac], ecx\n mov edx, dword ptr [edi + 0xb0]\n pop edi\n mov dword ptr [esi + 0xb0], edx\n pop esi\n ret 4\n-int3 \n-push esi"},{address: "0x100c8dc0", name: "MxDSMediaAction::operator=", matching: 1.0, diff: ""},{address: "0x100c8f10", name: "MxDSMediaAction::GetSizeOnDisk", matching: 1.0, diff: ""},{address: "0x100c8f60", name: "MxDSMediaAction::Deserialize", matching: 0.5192307692307693, diff: "--- \n\n+++ \n\n@@ -1,52 +1,52 @@\n\n mov eax, dword ptr [esp + 8]\n push ebx\n+mov ebx, dword ptr [esp + 8]\n push esi\n-mov ebx, ecx\n-mov esi, dword ptr [esp + 0xc]\n push edi\n+mov esi, ecx\n push eax\n-push esi\n+push ebx\n call <OFFSET1>\n-mov ecx, dword ptr [esi]\n+mov ecx, dword ptr [ebx]\n push ecx\n-mov ecx, ebx\n+mov ecx, esi\n call <OFFSET2>\n-mov edi, dword ptr [ebx + 0x98]\n+mov edi, dword ptr [esi + 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+add dword ptr [ebx], ecx\n+mov eax, dword ptr [ebx]\n mov ecx, dword ptr [eax]\n-mov dword ptr [ebx + 0x9c], ecx\n-mov eax, dword ptr [esi]\n+mov dword ptr [esi + 0x9c], ecx\n+mov eax, dword ptr [ebx]\n add eax, 4\n-mov dword ptr [esi], eax\n+mov dword ptr [ebx], eax\n mov ecx, dword ptr [eax]\n-mov dword ptr [ebx + 0xa0], ecx\n-mov eax, dword ptr [esi]\n+mov dword ptr [esi + 0xa0], ecx\n+mov eax, dword ptr [ebx]\n add eax, 4\n-mov dword ptr [esi], eax\n+mov dword ptr [ebx], eax\n mov ecx, dword ptr [eax]\n-mov dword ptr [ebx + 0xa4], ecx\n-mov eax, dword ptr [esi]\n+mov dword ptr [esi + 0xa4], ecx\n+mov eax, dword ptr [ebx]\n add eax, 4\n-mov dword ptr [esi], eax\n+mov dword ptr [ebx], eax\n mov ecx, dword ptr [eax]\n-mov dword ptr [ebx + 0xa8], ecx\n-mov eax, dword ptr [esi]\n+mov dword ptr [esi + 0xa8], ecx\n+mov eax, dword ptr [ebx]\n add eax, 4\n-mov dword ptr [esi], eax\n+mov dword ptr [ebx], eax\n mov ecx, dword ptr [eax]\n-mov dword ptr [ebx + 0xac], ecx\n+mov dword ptr [esi + 0xac], ecx\n pop edi\n-mov eax, dword ptr [esi]\n+mov eax, dword ptr [ebx]\n add eax, 4\n-mov dword ptr [esi], eax\n+mov dword ptr [ebx], eax\n mov ecx, dword ptr [eax]\n-mov dword ptr [ebx + 0xb0], ecx\n-add dword ptr [esi], 4\n+mov dword ptr [esi + 0xb0], ecx\n pop esi\n+add dword ptr [ebx], 4\n pop ebx\n ret 8"},{address: "0x100c8e80", name: "MxDSMediaAction::CopyMediaSrcPath", matching: 1.0, diff: ""},{address: "0x100c8be0", name: "MxDSMediaAction::ClassName", matching: 1.0, diff: ""},{address: "0x100c8bf0", name: "MxDSMediaAction::IsA", matching: 1.0, diff: ""},{address: "0x100c9b90", name: "MxDSMultiAction::MxDSMultiAction", matching: 0.3103448275862069, diff: "--- \n\n+++ \n\n@@ -1,31 +1,27 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 8\n-push ebx\n+sub esp, 4\n push esi\n-push edi\n-xor ebx, ebx\n-mov dword ptr [ebp - 0x14], ecx\n-mov edi, ecx\n+mov dword ptr [ebp - 0x10], ecx\n+mov esi, ecx\n call <OFFSET2>\n-push 0x1c\n-mov dword ptr [ebp - 4], ebx\n-mov word ptr [edi + 0xc], 5\n-mov dword ptr [edi], <OFFSET3>\n-call <OFFSET4>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 1\n-mov esi, eax\n-test esi, esi\n-je 0xa8\n-mov ecx, esi\n-call <OFFSET5>\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 [ebp - 4], 0\n+mov eax, esi\n+mov dword ptr [esi], <OFFSET3>\n+mov dword ptr [ebp - 4], <OFFSET4>\n+mov word ptr [esi + 0xc], 5\n+mov ecx, dword ptr [ebp - 0xc]\n+pop esi\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n+ret \n+mov eax, <OFFSET5>\n+jmp <OFFSET6>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET7>"},{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: "--- \n\n+++ \n\n@@ -1,17 +1,17 @@\n\n push ebx\n push esi\n mov eax, dword ptr [ecx + 0x18]\n push edi\n mov ebx, ecx\n mov esi, dword ptr [esp + 0x10]\n-cmp esi, eax\n+cmp eax, esi\n je 0x6a\n push eax\n call <OFFSET1>\n add esp, 4\n test esi, esi\n je 0x63\n mov edi, esi\n mov ecx, <OFFSET2>\n sub eax, eax\n repne scasb al, byte ptr es:[edi]"},{address: "0x100bf950", name: "MxDSObject::SetSourceName", matching: 1.0, diff: ""},{address: "0x100bf9c0", name: "MxDSObject::unk14", matching: 1.0, diff: ""},{address: "0x100bf9d0", name: "MxDSObject::GetSizeOnDisk", matching: 0.6, diff: "--- \n\n+++ \n\n@@ -1,35 +1,35 @@\n\n push esi\n-mov edx, ecx\n push edi\n-mov edi, dword ptr [edx + 0x10]\n+mov edi, dword ptr [ecx + 0x10]\n+mov esi, ecx\n test edi, edi\n je 0x1b\n mov ecx, <OFFSET1>\n sub eax, eax\n repne scasb al, byte ptr es:[edi]\n not ecx\n-lea esi, [ecx + 2]\n+lea edx, [ecx + 2]\n jmp <OFFSET2>\n-mov esi, 3\n-add esi, 4\n-mov edi, dword ptr [edx + 0x18]\n+mov edx, 3\n+add edx, 4\n+mov edi, dword ptr [esi + 0x18]\n test edi, edi\n je 0x42\n mov ecx, <OFFSET1>\n sub eax, eax\n repne scasb al, byte ptr es:[edi]\n not ecx\n-add esi, ecx\n+add edx, ecx\n pop edi\n-add esi, 4\n-mov eax, esi\n-mov dword ptr [edx + 8], esi\n+add edx, 4\n+mov eax, edx\n+mov dword ptr [esi + 8], edx\n pop esi\n ret \n-inc esi\n+inc edx\n pop edi\n-add esi, 4\n-mov eax, esi\n-mov dword ptr [edx + 8], esi\n+add edx, 4\n+mov eax, edx\n+mov dword ptr [esi + 8], edx\n pop esi\n ret "},{address: "0x100bfa20", name: "MxDSObject::Deserialize", matching: 1.0, diff: ""},{address: "0x100bf730", name: "MxDSObject::ClassName", matching: 1.0, diff: ""},{address: "0x100bf740", name: "MxDSObject::IsA", matching: 1.0, diff: ""},{address: "0x10005530", name: "MxDSObject::SetAtomId", 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: "0x100caf00", name: "MxDSParallelAction::ClassName", matching: 1.0, diff: ""},{address: "0x100caf10", name: "MxDSParallelAction::IsA", matching: 1.0, diff: ""},{address: "0x100cb2b0", name: "MxDSSelectAction::MxDSSelectAction", matching: 0.3157894736842105, diff: "--- \n\n+++ \n\n@@ -1,30 +1,27 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 8\n-push ebx\n+sub esp, 4\n push esi\n-push edi\n-xor ebx, ebx\n-mov dword ptr [ebp - 0x14], ecx\n-mov edi, ecx\n+mov dword ptr [ebp - 0x10], ecx\n+mov esi, ecx\n call <OFFSET2>\n-lea ecx, [edi + 0x9c]\n-mov dword ptr [ebp - 4], ebx\n-call <OFFSET3>\n-mov byte ptr [ebp - 4], 1\n-push 0x18\n-mov dword ptr [edi], <OFFSET4>\n-mov word ptr [edi + 0xc], 9\n-call <OFFSET5>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 2\n-mov esi, eax\n-test esi, esi\n-je 0xb4\n-mov ecx, esi\n+mov dword ptr [ebp - 4], 0\n+mov eax, esi\n+mov dword ptr [esi], <OFFSET3>\n+mov dword ptr [ebp - 4], <OFFSET4>\n+mov word ptr [esi + 0xc], 9\n+mov ecx, dword ptr [ebp - 0xc]\n+pop esi\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n+ret \n+mov eax, <OFFSET5>\n+jmp <OFFSET6>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET7>"},{address: "0x100cb6f0", name: "MxDSSelectAction::ClassName", matching: 1.0, diff: ""},{address: "0x100cb700", name: "MxDSSelectAction::IsA", matching: 1.0, diff: ""},{address: "0x100ca9d0", name: "MxDSSerialAction::MxDSSerialAction", matching: 0.35714285714285715, diff: "--- \n\n+++ \n\n@@ -1,29 +1,27 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 8\n-push ebx\n+sub esp, 4\n push esi\n-push edi\n-mov dword ptr [ebp - 0x14], ecx\n-mov edi, ecx\n+mov dword ptr [ebp - 0x10], ecx\n+mov esi, ecx\n call <OFFSET2>\n mov dword ptr [ebp - 4], 0\n-push 0x10\n-mov dword ptr [edi], <OFFSET3>\n-mov word ptr [edi + 0xc], 6\n-call <OFFSET4>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov byte ptr [ebp - 4], 1\n-mov esi, eax\n-test esi, esi\n-je 0x95\n-mov ebx, dword ptr [edi + 0x98]\n-mov ecx, esi\n-call <OFFSET5>\n-mov byte ptr [ebp - 4], 2\n+mov eax, esi\n+mov dword ptr [esi], <OFFSET3>\n+mov dword ptr [ebp - 4], <OFFSET4>\n+mov word ptr [esi + 0xc], 6\n+mov ecx, dword ptr [ebp - 0xc]\n+pop esi\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n+ret \n+mov eax, <OFFSET5>\n+jmp <OFFSET6>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET7>"},{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: "0x100c95d0", name: "MxDSSound::GetSizeOnDisk", matching: 1.0, diff: ""},{address: "0x100c95a0", name: "MxDSSound::Deserialize", matching: 1.0, diff: ""},{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: "0x100c9330", name: "MxDSSound::ClassName", matching: 1.0, diff: ""},{address: "0x100c9340", name: "MxDSSound::IsA", matching: 1.0, diff: ""},{address: "0x100bffd0", name: "MxDSSource::SomethingWhichCallsRead", matching: 0.0, diff: "--- \n\n+++ \n\n@@ -1,5 +1,5 @@\n\n-mov eax, dword ptr [esp + 4]\n-mov edx, dword ptr [eax + 0x28]\n-mov eax, dword ptr [eax + 8]\n-push edx\n-push eax\n+push 0\n+mov eax, dword ptr [ecx]\n+push 0\n+call dword ptr [eax + 0x20]\n+ret 4"},{address: "0x100bfff0", name: "MxDSSource::GetLengthInDWords", 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: "0x100cd0d0", name: "MxDSStreamingAction::MxDSStreamingAction", matching: 1.0, diff: ""},{address: "0x100cd150", name: "MxDSStreamingAction::~MxDSStreamingAction", matching: 0.47191011235955055, diff: "--- \n\n+++ \n\n@@ -1,47 +1,42 @@\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], 0\n+mov eax, dword ptr [ecx + 0xa0]\n mov dword ptr [ebp - 0x10], ecx\n-mov ecx, dword ptr [ecx + 0xa0]\n+test eax, eax\n+je 0x3e\n+push eax\n+call <OFFSET3>\n+add esp, 4\n+mov eax, dword ptr [ebp - 0x10]\n+mov eax, dword ptr [eax + 0xa4]\n+test eax, eax\n+je 0x54\n+push eax\n+call <OFFSET3>\n+add esp, 4\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [eax + 0xb0]\n test ecx, ecx\n-je 0x3b\n+je 0x67\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n-mov eax, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [eax + 0xa4]\n-test ecx, ecx\n-je 0x4e\n-push 1\n-mov eax, dword ptr [ecx]\n-call dword ptr [eax]\n-mov eax, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [eax + 0xb0]\n-test ecx, ecx\n-je 0x61\n-push 1\n-mov eax, dword ptr [ecx]\n-call dword ptr [eax]\n-mov dword ptr [ebp - 4], <OFFSET3>\n-call <OFFSET4>\n+mov dword ptr [ebp - 4], <OFFSET4>\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, <OFFSET5>\n-jmp <OFFSET6>\n+mov eax, <OFFSET6>\n+jmp <OFFSET7>\n mov ecx, dword ptr [ebp - 0x10]\n-jmp <OFFSET7>\n-int3 \n-int3 \n-int3 \n-int3 \n-xor eax, eax\n+jmp <OFFSET8>"},{address: "0x100cd220", name: "MxDSStreamingAction::CopyFrom", matching: 1.0, diff: ""},{address: "0x100cd090", name: "MxDSStreamingAction::HasId", matching: 1.0, diff: ""},{address: "0x100cd1e0", name: "MxDSStreamingAction::Init", matching: 1.0, diff: ""},{address: "0x100cd2a0", name: "MxDSStreamingAction::SetInternalAction", matching: 1.0, diff: ""},{address: "0x100cd2d0", name: "MxDSStreamingAction::FUN_100CD2D0", matching: 1.0, diff: ""},{address: "0x100b7bb0", name: "MxDSSubscriber::MxDSSubscriber", matching: 0.4528301886792453, diff: "--- \n\n+++ \n\n@@ -1,27 +1,26 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n sub esp, 4\n-push ebx\n push esi\n mov dword ptr [ebp - 0x10], ecx\n-push edi\n-lea edi, [ecx + 8]\n mov esi, ecx\n-xor ebx, ebx\n call <OFFSET2>\n-mov ecx, edi\n-mov dword ptr [ebp - 4], ebx\n-call <OFFSET2>\n-mov byte ptr [ebp - 4], 1\n-mov dword ptr [edi], <OFFSET3>\n-mov dword ptr [esi + 0x10], ebx\n-mov dword ptr [esi + 0x14], <OFFSET4>\n-mov byte ptr [ebp - 4], 2\n-mov dword ptr [edi], <OFFSET5>\n-mov dword ptr [esi + 0x1c], ebx\n-lea ecx, [esi + 0x24]\n+mov dword ptr [ebp - 4], 0\n+mov eax, esi\n+mov dword ptr [esi], <OFFSET3>\n+mov dword ptr [ebp - 4], <OFFSET4>\n+mov ecx, dword ptr [ebp - 0xc]\n+pop esi\n+mov dword ptr fs:[0], ecx\n+mov esp, ebp\n+pop ebp\n+ret \n+mov eax, <OFFSET5>\n+jmp <OFFSET6>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET7>"},{address: "0x100b7e00", name: "MxDSSubscriber::~MxDSSubscriber", matching: 0.4888888888888889, diff: "--- \n\n+++ \n\n@@ -1,24 +1,21 @@\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], 2\n+mov dword ptr [ebp - 4], <OFFSET3>\n mov dword ptr [ebp - 0x10], ecx\n-mov ecx, dword ptr [ecx + 0x40]\n-test ecx, ecx\n-je 0x3b\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call <OFFSET3>\n+call <OFFSET4>\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, <OFFSET5>\n+jmp <OFFSET6>\n mov ecx, dword ptr [ebp - 0x10]\n-call <OFFSET4>\n-mov eax, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [eax + 0x20]\n-test ecx, ecx\n-je 0x53\n-push 1\n+jmp <OFFSET7>"},{address: "0x100b7d50", name: "MxDSSubscriber::ClassName", matching: 1.0, diff: ""},{address: "0x100b7d60", name: "MxDSSubscriber::IsA", matching: 1.0, diff: ""},{address: "0x1001d190", name: "MxEntity::MxEntity", matching: 1.0, diff: ""},{address: "0x1000c110", name: "MxEntity::~MxEntity", matching: 1.0, diff: ""},{address: "0x10001070", name: "MxEntity::SetEntityId", 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: 0.7317073170731707, diff: "--- \n\n+++ \n\n@@ -1,20 +1,21 @@\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], 0\n-push 1\n+mov dword ptr [ebp - 4], <OFFSET3>\n mov dword ptr [ebp - 0x10], ecx\n-call <OFFSET3>\n-mov dword ptr [ebp - 4], <OFFSET4>\n-call <OFFSET5>\n+call <OFFSET4>\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, <OFFSET5>\n+jmp <OFFSET6>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET7>"},{address: "0x100c0450", name: "MxEventManager::Init", matching: 1.0, diff: ""},{address: "0x100c2b70", name: "MxEventPresenter::MxEventPresenter", matching: 1.0, diff: ""},{address: "0x100c2da0", name: "MxEventPresenter::Init", matching: 1.0, diff: ""},{address: "0x100c2c30", name: "MxEventPresenter::ClassName", matching: 1.0, diff: ""},{address: "0x100c2c40", name: "MxEventPresenter::IsA", matching: 1.0, diff: ""},{address: "0x100b33f0", name: "MxFlcPresenter::ClassName", matching: 1.0, diff: ""},{address: "0x1004e200", name: "MxFlcPresenter::IsA", matching: 1.0, diff: ""},{address: "0x100afd30", name: "HashTableParent<MxVariable>::Destroy", matching: 1.0, diff: ""},{address: "0x100b0bd0", name: "MxHashTable<MxVariable>::~MxHashTable<MxVariable>", matching: 1.0, diff: ""},{address: "0x100b7ab0", name: "MxHashTable<MxVariable>::Resize", matching: 0.5369127516778524, diff: "--- \n\n+++ \n\n@@ -1,74 +1,75 @@\n\n sub esp, 0xc\n push ebx\n push esi\n-mov esi, dword ptr [ecx + 0x14]\n+mov ebx, dword ptr [ecx + 0x14]\n mov eax, dword ptr [ecx + 0x10]\n push edi\n-mov ebx, ecx\n+mov esi, ecx\n mov dword ptr [esp + 0xc], eax\n push ebp\n-mov eax, dword ptr [ebx + 0x1c]\n+mov eax, dword ptr [esi + 0x1c]\n cmp eax, 1\n je 0x22\n cmp eax, 2\n je 0x29\n jmp <OFFSET1>\n-mov eax, dword ptr [ebx + 0x20]\n-add eax, esi\n+mov eax, dword ptr [esi + 0x20]\n+add eax, ebx\n jmp <OFFSET2>\n-fld qword ptr [ebx + 0x20]\n-mov dword ptr [esp + 0x14], esi\n+fld qword ptr [esi + 0x20]\n+mov dword ptr [esp + 0x14], ebx\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+mov dword ptr [esi + 0x14], eax\n+mov eax, dword ptr [esi + 0x14]\n shl eax, 2\n push eax\n call <OFFSET4>\n add esp, 4\n-mov ecx, dword ptr [ebx + 0x14]\n+mov ecx, dword ptr [esi + 0x14]\n shl ecx, 2\n mov edi, eax\n shr ecx, 2\n-mov dword ptr [ebx + 0x10], eax\n+mov dword ptr [esi + 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+test ebx, ebx\n+mov dword ptr [esi + 8], eax\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+div dword ptr [esi + 0x14]\n+mov eax, dword ptr [esi + 0x10]\n mov eax, dword ptr [eax + edx*4]\n-mov dword ptr [ecx + 0xc], eax\n-mov eax, dword ptr [ebx + 0x10]\n+mov dword ptr [edi + 0xc], eax\n+mov eax, dword ptr [esi + 0x10]\n mov eax, dword ptr [eax + edx*4]\n test eax, eax\n-je 0x9a\n-mov dword ptr [eax + 8], ecx\n-mov eax, dword ptr [ebx + 0x10]\n-mov dword ptr [eax + edx*4], ecx\n-mov ecx, edi\n-inc dword ptr [ebx + 8]\n-test edi, edi\n-jne 0x79\n-add ebp, 4\n-dec esi\n+je 0x99\n+mov dword ptr [eax + 8], edi\n+mov eax, dword ptr [esi + 0x10]\n+mov dword ptr [eax + edx*4], edi\n+mov edi, ebp\n+inc dword ptr [esi + 8]\n+test ebp, ebp\n+jne 0x78\n+add ecx, 4\n+dec ebx\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: "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: "--- \n\n+++ \n\n@@ -1,28 +1,28 @@\n\n push esi\n push edi\n-xor di, di\n-mov esi, ecx\n+xor si, si\n+mov edi, ecx\n cmp dword ptr [ecx + 0x44], 0\n je 0x47\n push 0\n call <OFFSET1>\n-mov di, ax\n-mov eax, dword ptr [esi + 0x44]\n+mov si, ax\n+mov eax, dword ptr [edi + 0x44]\n push eax\n call dword ptr [<OFFSET2>]\n-mov dword ptr [esi + 0x44], 0\n-test byte ptr [esi + 2], 1\n+mov dword ptr [edi + 0x44], 0\n+test byte ptr [edi + 2], 1\n je 0x3a\n-mov eax, dword ptr [esi + 0x18]\n+mov eax, dword ptr [edi + 0x18]\n push eax\n call <OFFSET3>\n add esp, 4\n xor eax, eax\n-mov dword ptr [esi + 0x24], eax\n-mov dword ptr [esi + 0x20], eax\n-mov dword ptr [esi + 0x18], eax\n-mov dword ptr [esi], eax\n-mov ax, di\n+mov dword ptr [edi + 0x24], eax\n+mov dword ptr [edi + 0x20], eax\n+mov dword ptr [edi + 0x18], eax\n+mov dword ptr [edi], eax\n+mov ax, si\n pop edi\n pop esi\n ret 4"},{address: "0x100cc930", name: "MXIOINFO::Read", matching: 1.0, diff: ""},{address: "0x100cca00", name: "MXIOINFO::Seek", matching: 0.8375634517766497, diff: "--- \n\n+++ \n\n@@ -1,19 +1,19 @@\n\n push ebx\n push esi\n push edi\n mov ebx, <OFFSET1>\n push ebp\n mov edi, ecx\n mov ecx, dword ptr [ecx + 0x18]\n test ecx, ecx\n-je 0x16f\n+je 0x16d\n mov ebp, dword ptr [esp + 0x18]\n cmp ebp, 1\n jne 0x41\n mov esi, dword ptr [esp + 0x14]\n mov eax, dword ptr [edi + 0x1c]\n test esi, esi\n jne 0x36\n sub eax, ecx\n pop ebp\n add eax, dword ptr [edi + 0x28]\n@@ -28,170 +28,170 @@\n\n jmp <OFFSET2>\n cmp ebp, 2\n jne 0x52\n mov eax, <OFFSET1>\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret 8\n mov esi, dword ptr [esp + 0x14]\n-mov edx, dword ptr [edi + 0x28]\n-cmp esi, edx\n-jl 0x7a\n-mov eax, dword ptr [edi + 0x14]\n-add eax, edx\n+mov eax, dword ptr [edi + 0x28]\n cmp eax, esi\n-jle 0x7a\n-mov eax, esi\n+jg 0x78\n+mov edx, dword ptr [edi + 0x14]\n+add edx, eax\n+cmp edx, esi\n+jle 0x78\n+sub ecx, eax\n mov ebx, esi\n-sub eax, edx\n+add ecx, esi\n+mov eax, ebx\n pop ebp\n-add eax, ecx\n-mov dword ptr [edi + 0x1c], eax\n-mov eax, ebx\n+mov dword ptr [edi + 0x1c], ecx\n pop edi\n pop esi\n pop ebx\n ret 8\n cmp dword ptr [edi + 0x44], 0\n-je 0x1b3\n+je 0x1b1\n push 0\n mov ecx, edi\n call <OFFSET3>\n test ax, ax\n-jne 0x1b3\n+jne 0x1b1\n push ebp\n mov eax, dword ptr [edi + 0x44]\n push esi\n mov ebp, dword ptr [<OFFSET4>]\n push eax\n call ebp\n mov dword ptr [edi + 0x2c], eax\n cmp eax, -1\n-jne 0xc2\n+jne 0xc0\n push 1\n mov eax, dword ptr [edi + 0x44]\n push 0\n push eax\n call ebp\n pop ebp\n mov dword ptr [edi + 0x2c], eax\n mov eax, ebx\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-je 0xf1\n+cmp ecx, esi\n+je 0xef\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+jne 0xef\n push 1\n mov eax, dword ptr [edi + 0x44]\n push 0\n push eax\n call ebp\n mov dword ptr [edi + 0x2c], eax\n mov ecx, dword ptr [edi + 0x28]\n cmp dword ptr [edi + 0x2c], ecx\n-jne 0x1b3\n+jne 0x1b1\n mov eax, dword ptr [edi]\n and eax, 3\n-je 0x11e\n+je 0x11c\n cmp eax, 2\n-je 0x11e\n+je 0x11c\n mov eax, dword ptr [edi + 0x18]\n mov ebx, esi\n sub eax, ecx\n pop ebp\n add eax, esi\n mov dword ptr [edi + 0x1c], eax\n mov eax, ebx\n pop edi\n pop esi\n pop ebx\n ret 8\n mov eax, dword ptr [edi + 0x14]\n mov ecx, dword ptr [edi + 0x18]\n push eax\n mov edx, dword ptr [edi + 0x44]\n push ecx\n push edx\n call dword ptr [<OFFSET5>]\n cmp eax, -1\n-jne 0x14b\n+jne 0x149\n push 1\n mov eax, dword ptr [edi + 0x44]\n push 0\n push eax\n call ebp\n pop ebp\n mov dword ptr [edi + 0x2c], eax\n mov eax, ebx\n pop edi\n pop esi\n pop ebx\n ret 8\n mov edx, dword ptr [edi + 0x18]\n-mov ecx, esi\n+add dword ptr [edi + 0x2c], eax\n+mov ecx, edx\n+add eax, edx\n sub ecx, dword ptr [edi + 0x28]\n-add dword ptr [edi + 0x2c], eax\n-add ecx, edx\n-add eax, edx\n+mov dword ptr [edi + 0x20], eax\n+add ecx, esi\n mov dword ptr [edi + 0x1c], ecx\n-mov dword ptr [edi + 0x20], eax\n cmp ecx, eax\n-jae 0x1b3\n+jae 0x1b1\n mov eax, esi\n mov ebx, esi\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret 8\n mov eax, dword ptr [edi + 0x44]\n test eax, eax\n-je 0x1b3\n+je 0x1b1\n mov ebp, dword ptr [esp + 0x18]\n mov esi, dword ptr [esp + 0x14]\n cmp ebp, 1\n-jne 0x191\n+jne 0x18f\n test esi, esi\n-jne 0x191\n+jne 0x18f\n mov eax, dword ptr [edi + 0x2c]\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret 8\n push ebp\n push esi\n push eax\n mov ebp, dword ptr [<OFFSET4>]\n call ebp\n cmp eax, -1\n mov ebx, eax\n mov dword ptr [edi + 0x2c], eax\n-jne 0x1b3\n+jne 0x1b1\n push 1\n mov eax, dword ptr [edi + 0x44]\n push 0\n push eax\n call ebp\n mov dword ptr [edi + 0x2c], eax\n mov eax, ebx\n pop ebp\n pop edi\n pop esi\n pop ebx\n+ret 8"},{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.631578947368421, diff: "--- \n\n+++ \n\n@@ -1,133 +1,133 @@\n\n push ebx\n push esi\n+xor si, si\n+push edi\n mov eax, dword ptr [ecx]\n-push edi\n-xor di, di\n push ebp\n-mov esi, ecx\n+mov edi, ecx\n mov ebp, eax\n and ebp, 3\n-cmp dword ptr [esi + 0x18], 0\n+cmp dword ptr [edi + 0x18], 0\n je 0x149\n-mov ebx, dword ptr [esi + 0x14]\n+mov ebx, dword ptr [edi + 0x14]\n cmp ebp, 1\n je 0x27\n cmp ebp, 2\n jne 0xa5\n test eax, 0x10000000\n je 0xa5\n test byte ptr [esp + 0x14], 1\n jne 0x3a\n cmp ebp, 2\n jne 0xa5\n test ebx, ebx\n jle 0xa5\n-mov eax, dword ptr [esi + 0x28]\n-cmp dword ptr [esi + 0x2c], eax\n+mov eax, dword ptr [edi + 0x28]\n+cmp dword ptr [edi + 0x2c], eax\n je 0x56\n push 0\n push eax\n-mov eax, dword ptr [esi + 0x44]\n+mov eax, dword ptr [edi + 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 dword ptr [edi + 0x2c], eax\n+mov eax, dword ptr [edi + 0x2c]\n+cmp dword ptr [edi + 0x28], eax\n je 0x64\n-mov di, 0x107\n+mov si, 0x107\n jmp <OFFSET2>\n push ebx\n-mov eax, dword ptr [esi + 0x18]\n+mov eax, dword ptr [edi + 0x18]\n push eax\n-mov ecx, dword ptr [esi + 0x44]\n+mov ecx, dword ptr [edi + 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-mov di, 0x106\n+add dword ptr [edi + 0x2c], eax\n+and dword ptr [edi], <OFFSET4>\n+mov eax, dword ptr [edi + 0x18]\n+mov dword ptr [edi + 0x1c], eax\n+mov dword ptr [edi + 0x20], eax\n+jmp <OFFSET2>\n+mov si, 0x106\n push 1\n-mov eax, dword ptr [esi + 0x44]\n+mov eax, dword ptr [edi + 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+mov dword ptr [edi + 0x2c], eax\n+mov eax, dword ptr [edi + 0x28]\n add eax, ebx\n test ebp, ebp\n-mov dword ptr [esi + 0x28], eax\n+mov dword ptr [edi + 0x28], eax\n je 0xba\n cmp ebp, 2\n jne 0x14d\n test ebx, ebx\n jle 0x14d\n-cmp dword ptr [esi + 0x2c], eax\n+cmp dword ptr [edi + 0x2c], eax\n je 0xd7\n push 0\n push eax\n-mov eax, dword ptr [esi + 0x44]\n+mov eax, dword ptr [edi + 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 dword ptr [edi + 0x2c], eax\n+mov eax, dword ptr [edi + 0x2c]\n+cmp dword ptr [edi + 0x28], eax\n je 0xfe\n-mov di, 0x107\n+mov si, 0x107\n push 1\n push 0\n-mov eax, dword ptr [esi + 0x44]\n+mov eax, dword ptr [edi + 0x44]\n push eax\n call dword ptr [<OFFSET1>]\n pop ebp\n-mov dword ptr [esi + 0x2c], eax\n-mov ax, di\n+mov dword ptr [edi + 0x2c], eax\n+mov ax, si\n pop edi\n pop esi\n pop ebx\n ret 4\n push ebx\n-mov eax, dword ptr [esi + 0x18]\n+mov eax, dword ptr [edi + 0x18]\n push eax\n-mov ecx, dword ptr [esi + 0x44]\n+mov ecx, dword ptr [edi + 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+mov si, 0x105\n push 1\n push 0\n-mov eax, dword ptr [esi + 0x44]\n+mov eax, dword ptr [edi + 0x44]\n push eax\n call dword ptr [<OFFSET1>]\n pop ebp\n-mov dword ptr [esi + 0x2c], eax\n-mov ax, di\n+mov dword ptr [edi + 0x2c], eax\n+mov ax, si\n pop edi\n pop esi\n pop ebx\n ret 4\n-mov ecx, dword ptr [esi + 0x18]\n+mov ecx, dword ptr [edi + 0x18]\n pop ebp\n-add dword ptr [esi + 0x2c], eax\n-mov dword ptr [esi + 0x1c], ecx\n+add dword ptr [edi + 0x2c], eax\n+mov dword ptr [edi + 0x1c], ecx\n add eax, ecx\n-mov dword ptr [esi + 0x20], eax\n-mov ax, di\n+mov dword ptr [edi + 0x20], eax\n pop edi\n+mov ax, si\n pop esi\n pop ebx\n ret 4\n-mov di, 0x10a\n-mov ax, di\n+mov si, 0x10a\n+mov ax, si\n pop ebp\n pop edi\n pop esi\n pop ebx\n ret 4"},{address: "0x100cce60", name: "MXIOINFO::Descend", matching: 1.0, diff: ""},{address: "0x1001cdd0", name: "MxListParent<MxPresenter>::~MxListParent<MxPresenter>", matching: 1.0, diff: ""},{address: "0x1001cd30", name: "MxListParent<MxPresenter>::Destroy", matching: 1.0, diff: ""},{address: "0x1001ce20", name: "MxList<MxPresenter>::~MxList<MxPresenter>", 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: 0.7570093457943925, diff: "--- \n\n+++ \n\n@@ -13,92 +13,98 @@\n\n jne 0x2d\n add eax, 2\n add esi, 2\n or bl, bl\n jne 0xd\n xor eax, eax\n jmp <OFFSET2>\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x16b\n+je 0x103\n mov eax, edx\n mov ecx, <OFFSET3>\n mov bl, byte ptr [eax]\n cmp bl, byte ptr [ecx]\n jne 0x61\n or bl, bl\n je 0x5d\n mov bl, byte ptr [eax + 1]\n cmp bl, byte ptr [ecx + 1]\n jne 0x61\n add eax, 2\n add ecx, 2\n or bl, bl\n jne 0x41\n xor eax, eax\n jmp <OFFSET4>\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x16b\n+je 0x103\n mov eax, edx\n mov ecx, <OFFSET5>\n mov bl, byte ptr [eax]\n cmp bl, byte ptr [ecx]\n jne 0x95\n or bl, bl\n je 0x91\n mov bl, byte ptr [eax + 1]\n cmp bl, byte ptr [ecx + 1]\n jne 0x95\n add eax, 2\n add ecx, 2\n or bl, bl\n jne 0x75\n xor eax, eax\n jmp <OFFSET6>\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x16b\n+je 0x103\n mov eax, edx\n mov ecx, <OFFSET7>\n mov bl, byte ptr [eax]\n cmp bl, byte ptr [ecx]\n-jne 0xc9\n+jne 0xc5\n or bl, bl\n-je 0xc5\n+je 0xc1\n mov bl, byte ptr [eax + 1]\n cmp bl, byte ptr [ecx + 1]\n-jne 0xc9\n+jne 0xc5\n add eax, 2\n add ecx, 2\n or bl, bl\n-jne 0xa9\n+jne 0xa5\n xor eax, eax\n jmp <OFFSET8>\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x16b\n-mov eax, edx\n-mov ecx, <OFFSET9>\n-mov bl, byte ptr [eax]\n-cmp bl, byte ptr [ecx]\n-jne 0xfd\n-or bl, bl\n-je 0xf9\n-mov bl, byte ptr [eax + 1]\n-cmp bl, byte ptr [ecx + 1]\n-jne 0xfd\n+je 0x103\n+mov eax, <OFFSET9>\n+mov cl, byte ptr [edx]\n+cmp cl, byte ptr [eax]\n+jne 0xf3\n+or cl, cl\n+je 0xef\n+mov cl, byte ptr [edx + 1]\n+cmp cl, byte ptr [eax + 1]\n+jne 0xf3\n+add edx, 2\n add eax, 2\n-add ecx, 2\n-or bl, bl\n-jne 0xdd\n+or cl, cl\n+jne 0xd3\n xor eax, eax\n jmp <OFFSET10>\n sbb eax, eax\n sbb eax, -1\n test eax, eax\n-je 0x16b\n-mov ecx, edx\n+je 0x103\n+xor al, al\n+pop esi\n+pop ebx\n+ret 4\n+mov al, 1\n+pop esi\n+pop ebx\n+ret 4"},{address: "0x100b48b0", name: "MxLoopingSmkPresenter::MxLoopingSmkPresenter", matching: 1.0, diff: ""},{address: "0x100b4920", name: "MxLoopingSmkPresenter::ClassName", matching: 1.0, diff: ""},{address: "0x10002340", name: "MxMatrix::EqualsMxMatrix", matching: 1.0, diff: ""},{address: "0x10002320", name: "MxMatrix::EqualsMatrixData", matching: 1.0, diff: ""},{address: "0x10002370", name: "MxMatrix::SetData", matching: 1.0, diff: ""},{address: "0x10002360", name: "MxMatrix::AnotherSetData", matching: 1.0, diff: ""},{address: "0x10002390", name: "MxMatrix::GetData", matching: 1.0, diff: ""},{address: "0x10002380", name: "MxMatrix::GetData", matching: 1.0, diff: ""},{address: "0x100023c0", name: "MxMatrix::Element", matching: 1.0, diff: ""},{address: "0x100023a0", name: "MxMatrix::Element", matching: 1.0, diff: ""},{address: "0x100023e0", name: "MxMatrix::Clear", matching: 1.0, diff: ""},{address: "0x100023f0", name: "MxMatrix::SetIdentity", matching: 1.0, diff: ""},{address: "0x10002850", name: "MxMatrix::operator=", matching: 1.0, diff: ""},{address: "0x10002430", name: "MxMatrix::operator+=", matching: 1.0, diff: ""},{address: "0x10002460", name: "MxMatrix::TranslateBy", matching: 0.6842105263157895, 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 mov eax, dword ptr [esp + 8]\n fstp dword ptr [edx]\n fld dword ptr [eax]\n mov edx, dword ptr [ecx + 4]\n+mov eax, dword ptr [esp + 0xc]\n add edx, 0x34\n fadd dword ptr [edx]\n fstp dword ptr [edx]\n-mov eax, dword ptr [ecx + 4]\n-mov ecx, dword ptr [esp + 0xc]\n-add eax, 0x38\n-fld dword ptr [ecx]\n-fadd dword ptr [eax]\n-fstp dword ptr [eax]\n+fld dword ptr [eax]\n+mov ecx, dword ptr [ecx + 4]\n+add ecx, 0x38\n+fadd dword ptr [ecx]\n+fstp dword ptr [ecx]\n ret 0xc"},{address: "0x100024a0", name: "MxMatrix::SetTranslation", matching: 1.0, diff: ""},{address: "0x10002530", name: "MxMatrix::EqualsMxProduct", matching: 1.0, diff: ""},{address: "0x10002860", name: "MxMatrixData::operator=", matching: 1.0, diff: ""},{address: "0x100b84c0", name: "MxMediaManager::MxMediaManager", matching: 1.0, diff: ""},{address: "0x100b8560", name: "MxMediaManager::~MxMediaManager", matching: 0.9180327868852459, diff: "--- \n\n+++ \n\n@@ -2,30 +2,29 @@\n\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 - 0x10], ecx\n+call <OFFSET3>\n+mov ecx, dword ptr [ebp - 0x10]\n call <OFFSET3>\n mov byte ptr [ebp - 4], 0\n call <OFFSET4>\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 ecx, dword ptr [ebp - 0x10]\n add ecx, 0x10\n jmp <OFFSET7>\n mov eax, <OFFSET8>\n jmp <OFFSET9>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET10>\n-int3 \n-xor eax, eax\n-mov dword ptr [ecx + 8], eax"},{address: "0x100b85d0", name: "MxMediaManager::Init", matching: 0.26666666666666666, diff: "--- \n\n+++ \n\n@@ -1,11 +1,4 @@\n\n+mov dword ptr [ecx + 8], 0\n+mov dword ptr [ecx + 0xc], 0\n xor eax, eax\n-mov dword ptr [ecx + 8], eax\n-mov dword ptr [ecx + 0xc], eax\n ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 "},{address: "0x100b85e0", name: "MxMediaManager::InitPresenters", matching: 1.0, diff: ""},{address: "0x100b8710", name: "MxMediaManager::Destroy", 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: "0x100b54e0", name: "MxMediaPresenter::Init", 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: "0x100c2820", name: "MxMIDIPresenter::Init", 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: "0x100ac800", name: "MxNotificationManager::Tickle", matching: 1.0, diff: ""},{address: "0x100ac600", name: "MxNotificationManager::Create", matching: 1.0, diff: ""},{address: "0x100acd20", name: "MxNotificationManager::Register", matching: 0.9558823529411765, diff: "--- \n\n+++ \n\n@@ -14,29 +14,29 @@\n\n push eax\n lea ecx, [ebp - 0x1c]\n call <OFFSET2>\n mov dword ptr [ebp - 4], 0\n mov eax, dword ptr [ebp + 8]\n mov edi, dword ptr [esi + 0x34]\n mov dword ptr [ebp - 0x14], edi\n mov ecx, dword ptr [eax + 4]\n mov dword ptr [ebp - 0x20], ecx\n mov eax, dword ptr [edi]\n-cmp eax, edi\n+cmp edi, eax\n je 0x79\n mov edx, dword ptr [ebp - 0x20]\n cmp dword ptr [eax + 8], edx\n je 0x57\n mov eax, dword ptr [eax]\n-cmp dword ptr [ebp - 0x14], eax\n+cmp eax, dword ptr [ebp - 0x14]\n jne 0x48\n-cmp eax, edi\n+cmp edi, eax\n je 0x79\n mov dword ptr [ebp - 4], <OFFSET3>\n call <OFFSET4>\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax\n pop esi\n pop ebx\n mov esp, ebp\n pop ebp"},{address: "0x100acdf0", name: "MxNotificationManager::Unregister", matching: 1.0, diff: ""},{address: "0x100ac990", name: "MxNotificationManager::FlushPending", matching: 0.9051094890510949, 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 edi, dword ptr [ebp + 8]\n mov ecx, dword ptr [eax]\n mov dword ptr [ebp - 0x10], ecx\n cmp ecx, eax\n-mov edi, dword ptr [ebp + 8]\n-je 0x106\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@@ -86,51 +86,51 @@\n\n mov eax, dword ptr [esi + 0xc]\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+cmp ecx, eax\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: "0x100ac6c0", name: "MxNotificationManager::Send", matching: 1.0, diff: "--- \n\n+++ \n\n@@ -36,21 +36,21 @@\n\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 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 je 0xaf\n mov eax, dword ptr [ebp + 0xc]\n@@ -61,33 +61,33 @@\n\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 push 0xc\n mov eax, dword ptr [esi + 4]\n mov dword ptr [ebp - 0x14], eax\n-lea ebx, [eax + 4]\n-mov edi, dword ptr [ebx]\n+lea edi, [eax + 4]\n+mov ebx, dword ptr [edi]\n call <OFFSET5>\n add esp, 4\n-test edi, edi\n+test ebx, ebx\n je 0xea\n mov ecx, dword ptr [ebp - 0x14]\n mov dword ptr [eax], ecx\n-mov dword ptr [eax + 4], edi\n+mov dword ptr [eax + 4], ebx\n jmp <OFFSET8>\n mov dword ptr [eax], eax\n mov dword ptr [eax + 4], eax\n-mov dword ptr [ebx], eax\n+mov dword ptr [edi], eax\n mov ecx, dword ptr [eax + 4]\n mov dword ptr [ecx], eax\n add eax, 8\n je 0x100\n mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [eax], ecx\n mov dword ptr [ebp - 4], <OFFSET3>\n inc dword ptr [esi + 8]\n call <OFFSET4>\n xor eax, eax"},{address: "0x100b0d80", name: "MxObjectFactory::MxObjectFactory", matching: 0.969811320754717, diff: "--- \n\n+++ \n\n@@ -8,25 +8,25 @@\n\n sub esp, 0x34\n mov dword ptr [ebp - 0x10], ecx\n push esi\n call <OFFSET2>\n mov esi, dword ptr [ebp - 0x10]\n mov eax, dword ptr [ebp - 0x10]\n add esi, 8\n add eax, 0xc\n mov dword ptr [ebp - 4], 0\n mov byte ptr [ebp - 4], 1\n+mov byte ptr [ebp - 4], 2\n mov dword ptr [esi], 0\n-mov dword ptr [eax], 0\n-mov byte ptr [ebp - 4], 2\n mov byte ptr [ebp - 4], 3\n mov dword ptr [ebp - 0x38], eax\n+mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x10\n mov byte ptr [ebp - 4], 4\n mov dword ptr [ebp - 0x34], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x14\n mov byte ptr [ebp - 4], 5\n mov dword ptr [ebp - 0x30], eax\n mov dword ptr [eax], 0\n@@ -59,27 +59,27 @@\n\n mov dword ptr [ebp - 0x18], eax\n mov dword ptr [eax], 0\n mov byte ptr [ebp - 4], 0xa\n mov byte ptr [ebp - 4], 0xb\n mov eax, dword ptr [ebp - 0x10]\n add eax, 0x30\n mov byte ptr [ebp - 4], 0xc\n mov dword ptr [ebp - 0x14], eax\n mov dword ptr [eax], 0\n mov eax, dword ptr [ebp - 0x10]\n-push 0\n add eax, 0x34\n+push 0\n+mov dword ptr [ebp - 0x40], eax\n+mov dword ptr [eax], 0\n+mov eax, dword ptr [ebp - 0x10]\n push <OFFSET3>\n lea ecx, [ebp - 0x3c]\n-mov dword ptr [ebp - 0x40], eax\n-mov dword ptr [eax], 0\n-mov eax, dword ptr [ebp - 0x10]\n mov dword ptr [eax], <OFFSET4>\n call <OFFSET5>\n push eax\n mov ecx, esi\n mov byte ptr [ebp - 4], 0xd\n call <OFFSET6>\n mov byte ptr [ebp - 4], 0xc\n call <OFFSET7>\n push 0\n lea ecx, [ebp - 0x3c]\n@@ -178,23 +178,23 @@\n\n mov byte ptr [ebp - 4], 0x17\n push eax\n mov ecx, dword ptr [ebp - 0x14]\n call <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: 0.27176220806794055, diff: "--- \n\n+++ \n\n@@ -1,496 +1,446 @@\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, 0xc\n-mov dword ptr [ebp - 0x18], 0\n push ebx\n-mov eax, dword ptr [ebp + 8]\n push esi\n+mov esi, ecx\n push 0\n-mov esi, ecx\n-push eax\n-lea ecx, [ebp - 0x14]\n+push eax\n+lea ecx, [ebp - 0x18]\n call <OFFSET2>\n mov dword ptr [ebp - 4], 0\n-mov eax, dword ptr [ebp - 0x14]\n+mov eax, dword ptr [ebp - 0x18]\n cmp dword ptr [esi + 8], eax\n-jne 0xd8\n+jne 0xd4\n push 0x40\n mov ebx, 1\n call <OFFSET3>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0xa1\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x9f\n+mov ecx, eax\n call <OFFSET4>\n mov byte ptr [ebp - 4], 2\n-lea ecx, [esi + 0x20]\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n call <OFFSET5>\n+mov ecx, dword ptr [ebp - 0x10]\n mov byte ptr [ebp - 4], 3\n-mov ecx, esi\n-mov dword ptr [esi], <OFFSET6>\n+mov dword ptr [ecx], <OFFSET6>\n call <OFFSET7>\n-mov eax, esi\n-mov byte ptr [ebp - 4], bl\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n jmp <OFFSET8>\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x20\n jmp <OFFSET9>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET10>\n-ret \n-xor eax, eax\n-mov byte ptr [ebp - 4], 0\n-mov dword ptr [ebp - 0x18], eax\n-mov dword ptr [ebp - 4], <OFFSET11>\n-call <OFFSET12>\n-mov eax, dword ptr [ebp - 0x18]\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], <OFFSET11>\n+call <OFFSET12>\n+mov eax, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [ebp - 0xc]\n+pop esi\n mov dword ptr fs:[0], ecx\n-pop esi\n pop ebx\n mov esp, ebp\n pop ebp\n ret 4\n mov eax, dword ptr [ebp - 0x10]\n push eax\n call <OFFSET13>\n add esp, 4\n ret \n-mov eax, dword ptr [ebp - 0x14]\n+mov eax, dword ptr [ebp - 0x18]\n cmp dword ptr [esi + 0xc], eax\n-jne 0x112\n+jne 0x122\n push 0x4c\n call <OFFSET3>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n mov byte ptr [ebp - 4], 4\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0xa3\n-mov ecx, esi\n+test eax, eax\n+je 0xfd\n+mov ecx, eax\n call <OFFSET14>\n-jmp <OFFSET8>\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call <OFFSET13>\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x14]\n+mov dword ptr [ebp - 0x14], eax\n+jmp <OFFSET15>\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], <OFFSET11>\n+call <OFFSET12>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET13>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n cmp dword ptr [esi + 0x10], eax\n-jne 0x1c2\n+jne 0x1ed\n push 0x64\n mov ebx, 5\n call <OFFSET3>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0xa1\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x1c5\n+mov ecx, eax\n call <OFFSET4>\n mov byte ptr [ebp - 4], 6\n-lea ecx, [esi + 0x20]\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n call <OFFSET5>\n+mov ecx, dword ptr [ebp - 0x10]\n mov byte ptr [ebp - 4], 7\n-mov ecx, esi\n-mov dword ptr [esi], <OFFSET6>\n+mov dword ptr [ecx], <OFFSET6>\n call <OFFSET7>\n mov byte ptr [ebp - 4], 8\n-mov ecx, esi\n-mov dword ptr [esi], <OFFSET15>\n-call <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], <OFFSET17>\n+call <OFFSET18>\n mov byte ptr [ebp - 4], 9\n-mov ecx, esi\n-mov dword ptr [esi], <OFFSET17>\n-call <OFFSET18>\n-mov eax, esi\n-mov byte ptr [ebp - 4], bl\n-jmp <OFFSET8>\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], <OFFSET19>\n+call <OFFSET20>\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+jmp <OFFSET21>\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x20\n jmp <OFFSET9>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET10>\n mov ecx, dword ptr [ebp - 0x10]\n-jmp <OFFSET19>\n-mov ecx, dword ptr [ebp - 0x10]\n-call <OFFSET20>\n-jmp <OFFSET21>\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call <OFFSET13>\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x14]\n+jmp <OFFSET22>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET23>\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], <OFFSET11>\n+call <OFFSET12>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET13>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n cmp dword ptr [esi + 0x14], eax\n-jne 0x203\n+jne 0x23e\n push 0x68\n call <OFFSET3>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n mov byte ptr [ebp - 4], 0xa\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0xa3\n-mov ecx, esi\n-call <OFFSET22>\n-jmp <OFFSET8>\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call <OFFSET13>\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x14]\n+test eax, eax\n+je 0x216\n+mov ecx, eax\n+call <OFFSET24>\n+mov dword ptr [ebp - 0x14], eax\n+jmp <OFFSET25>\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], <OFFSET11>\n+call <OFFSET12>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET13>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n cmp dword ptr [esi + 0x18], eax\n-jne 0x247\n+jne 0x292\n push 0x720\n call <OFFSET3>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n mov byte ptr [ebp - 4], 0xb\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0xa3\n-mov ecx, esi\n-call <OFFSET23>\n-jmp <OFFSET8>\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call <OFFSET13>\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x14]\n+test eax, eax\n+je 0x26a\n+mov ecx, eax\n+call <OFFSET26>\n+mov dword ptr [ebp - 0x14], eax\n+jmp <OFFSET27>\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], <OFFSET11>\n+call <OFFSET12>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET13>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n cmp dword ptr [esi + 0x1c], eax\n-jne 0x310\n+jne 0x37a\n push 0x6c\n mov ebx, 0xc\n call <OFFSET3>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0xa1\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x352\n+mov ecx, eax\n call <OFFSET4>\n mov byte ptr [ebp - 4], 0xd\n-lea ecx, [esi + 0x20]\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n call <OFFSET5>\n+mov ecx, dword ptr [ebp - 0x10]\n mov byte ptr [ebp - 4], 0xe\n-mov ecx, esi\n-mov dword ptr [esi], <OFFSET6>\n+mov dword ptr [ecx], <OFFSET6>\n call <OFFSET7>\n mov byte ptr [ebp - 4], 0xf\n-mov ecx, esi\n-mov dword ptr [esi], <OFFSET15>\n-call <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], <OFFSET17>\n+call <OFFSET18>\n mov byte ptr [ebp - 4], 0x10\n-mov ecx, esi\n-mov dword ptr [esi], <OFFSET17>\n-call <OFFSET18>\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], <OFFSET19>\n+call <OFFSET20>\n mov byte ptr [ebp - 4], 0x11\n-mov eax, esi\n-mov dword ptr [esi], <OFFSET24>\n-mov dword ptr [esi + 0x68], 0\n-mov byte ptr [ebp - 4], bl\n-jmp <OFFSET8>\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], <OFFSET28>\n+mov dword ptr [eax + 0x68], 0\n+jmp <OFFSET29>\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x20\n jmp <OFFSET9>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET10>\n mov ecx, dword ptr [ebp - 0x10]\n-jmp <OFFSET19>\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp <OFFSET20>\n-mov ecx, dword ptr [ebp - 0x10]\n-call <OFFSET25>\n-jmp <OFFSET21>\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call <OFFSET13>\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x14]\n+jmp <OFFSET22>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET23>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET30>\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], <OFFSET11>\n+call <OFFSET12>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET13>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n cmp dword ptr [esi + 0x20], eax\n-jne 0x3eb\n+jne 0x474\n push 0x6c\n mov ebx, 0x12\n call <OFFSET3>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0xa1\n-mov ecx, esi\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x44c\n+mov ecx, eax\n call <OFFSET4>\n mov byte ptr [ebp - 4], 0x13\n-lea ecx, [esi + 0x20]\n+mov ecx, dword ptr [ebp - 0x10]\n+add ecx, 0x20\n call <OFFSET5>\n+mov ecx, dword ptr [ebp - 0x10]\n mov byte ptr [ebp - 4], 0x14\n-mov ecx, esi\n-mov dword ptr [esi], <OFFSET6>\n+mov dword ptr [ecx], <OFFSET6>\n call <OFFSET7>\n mov byte ptr [ebp - 4], 0x15\n-mov ecx, esi\n-mov dword ptr [esi], <OFFSET15>\n-call <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], <OFFSET17>\n+call <OFFSET18>\n mov byte ptr [ebp - 4], 0x16\n-mov ecx, esi\n-mov dword ptr [esi], <OFFSET26>\n-mov dword ptr [esi + 0x50], 0x64\n mov byte ptr [ebp - 4], 0x17\n mov byte ptr [ebp - 4], 0x18\n-mov dword ptr [esi], <OFFSET27>\n-mov dword ptr [esi], <OFFSET28>\n-call <OFFSET29>\n-mov eax, esi\n-mov byte ptr [ebp - 4], bl\n-jmp <OFFSET8>\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, eax\n+mov dword ptr [eax], <OFFSET31>\n+mov dword ptr [eax + 0x50], 0x64\n+mov dword ptr [eax], <OFFSET32>\n+mov dword ptr [eax], <OFFSET33>\n+call <OFFSET34>\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+jmp <OFFSET35>\n mov ecx, dword ptr [ebp - 0x10]\n add ecx, 0x20\n jmp <OFFSET9>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET10>\n mov ecx, dword ptr [ebp - 0x10]\n-jmp <OFFSET19>\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp <OFFSET20>\n-mov ecx, dword ptr [ebp - 0x10]\n-jmp <OFFSET30>\n-mov ecx, dword ptr [ebp - 0x10]\n-call <OFFSET31>\n-jmp <OFFSET21>\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call <OFFSET13>\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x14]\n+jmp <OFFSET22>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET23>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET36>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET37>\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], <OFFSET11>\n+call <OFFSET12>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET13>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n cmp dword ptr [esi + 0x24], eax\n-jne 0x42c\n+jne 0x4c5\n push 0x58\n call <OFFSET3>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n mov byte ptr [ebp - 4], 0x19\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0xa3\n-mov ecx, esi\n-call <OFFSET32>\n-jmp <OFFSET8>\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call <OFFSET13>\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x14]\n+test eax, eax\n+je 0x49d\n+mov ecx, eax\n+call <OFFSET38>\n+mov dword ptr [ebp - 0x14], eax\n+jmp <OFFSET39>\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], <OFFSET11>\n+call <OFFSET12>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET13>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n cmp dword ptr [esi + 0x28], eax\n-jne 0x46d\n+jne 0x516\n push 0x54\n call <OFFSET3>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n mov byte ptr [ebp - 4], 0x1a\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0xa3\n-mov ecx, esi\n-call <OFFSET33>\n-jmp <OFFSET8>\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call <OFFSET13>\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x14]\n+test eax, eax\n+je 0x4ee\n+mov ecx, eax\n+call <OFFSET40>\n+mov dword ptr [ebp - 0x14], eax\n+jmp <OFFSET41>\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], <OFFSET11>\n+call <OFFSET12>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET13>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n cmp dword ptr [esi + 0x2c], eax\n-jne 0x4ae\n+jne 0x567\n push 0x6c\n call <OFFSET3>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n mov byte ptr [ebp - 4], 0x1b\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0xa3\n-mov ecx, esi\n-call <OFFSET34>\n-jmp <OFFSET8>\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call <OFFSET13>\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x14]\n+test eax, eax\n+je 0x53f\n+mov ecx, eax\n+call <OFFSET42>\n+mov dword ptr [ebp - 0x14], eax\n+jmp <OFFSET43>\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], <OFFSET11>\n+call <OFFSET12>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET13>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n cmp dword ptr [esi + 0x30], eax\n-jne 0x4f2\n+jne 0x5bb\n push 0x724\n call <OFFSET3>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n mov byte ptr [ebp - 4], 0x1c\n-mov esi, eax\n-mov eax, 0\n-test esi, esi\n-je 0xa3\n-mov ecx, esi\n-call <OFFSET35>\n-jmp <OFFSET8>\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call <OFFSET13>\n-add esp, 4\n-ret \n-mov eax, dword ptr [ebp - 0x14]\n+test eax, eax\n+je 0x593\n+mov ecx, eax\n+call <OFFSET44>\n+mov dword ptr [ebp - 0x14], eax\n+jmp <OFFSET45>\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], <OFFSET11>\n+call <OFFSET12>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET13>\n+add esp, 4\n+ret \n+mov eax, dword ptr [ebp - 0x18]\n cmp dword ptr [esi + 0x34], eax\n-jne 0xaa\n+jne 0x628\n push 0x58\n mov ebx, 0x1d\n call <OFFSET3>\n-mov dword ptr [ebp - 0x10], eax\n-add esp, 4\n-mov esi, eax\n-mov byte ptr [ebp - 4], bl\n-test esi, esi\n-je 0xa1\n-mov ecx, esi\n-call <OFFSET32>\n+add esp, 4\n+mov dword ptr [ebp - 0x10], eax\n+mov byte ptr [ebp - 4], bl\n+test eax, eax\n+je 0x600\n+mov ecx, eax\n+call <OFFSET38>\n mov byte ptr [ebp - 4], 0x1e\n-mov eax, esi\n-mov dword ptr [esi], <OFFSET36>\n-mov byte ptr [ebp - 4], bl\n-jmp <OFFSET8>\n-mov ecx, dword ptr [ebp - 0x10]\n-call <OFFSET37>\n-jmp <OFFSET21>\n-mov eax, dword ptr [ebp - 0x10]\n-push eax\n-call <OFFSET13>\n-add esp, 4\n-ret \n-mov eax, <OFFSET38>\n-jmp <OFFSET39>\n-lea ecx, [ebp - 0x14]\n-jmp <OFFSET40>\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, <OFFSET41>\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov edx, dword ptr [esp + 4]\n-push ebx\n-push esi\n-mov eax, edx\n-mov esi, <OFFSET41>\n-mov bl, byte ptr [eax]\n-cmp bl, byte ptr [esi]\n-jne 0x5ad\n-or bl, bl\n-je 0x5a9\n-mov bl, byte ptr [eax + 1]\n-cmp bl, byte ptr [esi + 1]\n-jne 0x5ad\n-add eax, 2\n-add esi, 2\n-or bl, bl\n-jne 0x58d\n+mov eax, dword ptr [ebp - 0x10]\n+mov byte ptr [ebp - 4], bl\n+mov dword ptr [ebp - 0x14], eax\n+mov dword ptr [eax], <OFFSET46>\n+jmp <OFFSET47>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET48>\n+mov dword ptr [ebp - 0x14], 0\n+mov dword ptr [ebp - 4], <OFFSET11>\n+call <OFFSET12>\n+mov eax, dword ptr [ebp - 0x14]\n+jmp <OFFSET16>\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET13>\n+add esp, 4\n+ret \n+mov dword ptr [ebp - 4], <OFFSET11>\n+call <OFFSET12>\n xor eax, eax\n-jmp <OFFSET42>\n-sbb eax, eax\n-sbb eax, -1\n-test eax, eax\n-je 0x6eb\n-mov eax, edx\n-mov ecx, <OFFSET43>\n-mov bl, byte ptr [eax]\n-cmp bl, byte ptr [ecx]\n-jne 0x5e1\n-or bl, bl\n-je 0x5dd\n-mov bl, byte ptr [eax + 1]\n-cmp bl, byte ptr [ecx + 1]\n-jne 0x5e1\n-add eax, 2\n-add ecx, 2\n-or bl, bl\n-jne 0x5c1\n-xor eax, eax\n-jmp <OFFSET44>\n-sbb eax, eax\n-sbb eax, -1\n-test eax, eax\n-je 0x6eb\n-mov eax, edx\n-mov ecx, <OFFSET45>\n-mov bl, byte ptr [eax]\n-cmp bl, byte ptr [ecx]\n-jne 0x615\n-or bl, bl\n-je 0x611\n-mov bl, byte ptr [eax + 1]\n-cmp bl, byte ptr [ecx + 1]\n-jne 0x615\n-add eax, 2\n-add ecx, 2\n-or bl, bl\n-jne 0x5f5\n-xor eax, eax\n-jmp <OFFSET46>\n-sbb eax, eax\n-sbb eax, -1\n-test eax, eax\n-je 0x6eb\n-mov eax, edx\n-mov ecx, <OFFSET47>\n-mov bl, byte ptr [eax]\n-cmp bl, byte ptr [ecx]\n-jne 0x649\n-or bl, bl\n-je 0x645\n-mov bl, byte ptr [eax + 1]\n-cmp bl, byte ptr [ecx + 1]\n-jne 0x649\n-add eax, 2\n-add ecx, 2\n-or bl, bl\n-jne 0x629\n-xor eax, eax\n-jmp <OFFSET48>\n-sbb eax, eax\n+jmp <OFFSET16>\n+mov eax, <OFFSET49>\n+jmp <OFFSET50>\n+lea ecx, [ebp - 0x18]\n+jmp <OFFSET51>"},{address: "0x100aef10", name: "MxOmni::MxOmni", matching: 1.0, diff: ""},{address: "0x100aeff0", name: "MxOmni::~MxOmni", matching: 1.0, diff: ""},{address: "0x100af080", name: "MxOmni::Init", matching: 1.0, diff: ""},{address: "0x100b0690", name: "MxOmni::DestroyInstance", matching: 1.0, diff: ""},{address: "0x100b0900", name: "MxOmni::GetHD", matching: 1.0, diff: ""},{address: "0x100b0940", name: "MxOmni::GetCD", matching: 1.0, diff: ""},{address: "0x100b0980", name: "MxOmni::IsSound3D", matching: 1.0, diff: ""},{address: "0x100b0910", name: "MxOmni::SetHD", matching: 1.0, diff: ""},{address: "0x100b0950", name: "MxOmni::SetCD", matching: 1.0, diff: ""},{address: "0x100b0990", name: "MxOmni::SetSound3D", matching: 1.0, diff: ""},{address: "0x100b0680", name: "MxOmni::GetInstance", matching: 1.0, diff: ""},{address: "0x100af0b0", name: "MxOmni::SetInstance", matching: 1.0, diff: ""},{address: "0x100af0c0", name: "MxOmni::Create", matching: 0.38153846153846155, diff: "--- \n\n+++ \n\n@@ -1,160 +1,165 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 0x18\n-mov dword ptr [ebp - 0x24], <OFFSET2>\n+sub esp, 0x10\n+mov dword ptr [ebp - 0x1c], ecx\n push ebx\n-mov dword ptr [ebp - 0x14], ecx\n push esi\n push edi\n push 0x10\n xor esi, esi\n-call <OFFSET3>\n+call <OFFSET2>\n add esp, 4\n-mov dword ptr [ebp - 0x1c], eax\n+mov dword ptr [ebp - 0x14], eax\n mov dword ptr [ebp - 4], esi\n cmp eax, esi\n-je 0xe5\n+je 0xde\n mov al, byte ptr [ebp - 0x15]\n-mov ecx, dword ptr [ebp - 0x1c]\n+mov ecx, dword ptr [ebp - 0x14]\n mov ebx, 1\n mov byte ptr [ecx], al\n-mov dl, byte ptr [ebp - 0x1d]\n+mov dl, byte ptr [ebp - 0xd]\n mov byte ptr [ebp - 4], bl\n mov byte ptr [ecx + 1], dl\n mov dword ptr [ecx + 8], esi\n-cmp dword ptr [<OFFSET4>], esi\n-jne 0x82\n+cmp dword ptr [<OFFSET3>], esi\n+jne 0x7b\n push 0x14\n-call <OFFSET3>\n+call <OFFSET2>\n add esp, 4\n mov dword ptr [eax + 4], esi\n mov dword ptr [eax + 0x10], ebx\n-mov dword ptr [<OFFSET4>], eax\n+mov dword ptr [<OFFSET3>], eax\n mov dword ptr [eax], esi\n-mov eax, dword ptr [<OFFSET4>]\n+mov eax, dword ptr [<OFFSET3>]\n mov dword ptr [eax + 8], esi\n mov byte ptr [ebp - 4], 0\n-call <OFFSET5>\n-mov esi, dword ptr [<OFFSET4>]\n+call <OFFSET4>\n+mov esi, dword ptr [<OFFSET3>]\n push 0x14\n-call <OFFSET3>\n+call <OFFSET2>\n add esp, 4\n-mov ecx, dword ptr [ebp - 0x1c]\n+mov ecx, dword ptr [ebp - 0x14]\n mov dword ptr [eax + 4], esi\n mov dword ptr [eax + 0x10], 0\n mov dword ptr [ecx + 4], eax\n mov dword ptr [ecx + 0xc], 0\n mov eax, dword ptr [ecx + 4]\n mov byte ptr [ebp - 4], 0\n mov dword ptr [eax], eax\n mov eax, dword ptr [ecx + 4]\n mov dword ptr [eax + 8], eax\n mov eax, ecx\n+jmp <OFFSET5>\n+lea ecx, [ebp - 0xe]\n jmp <OFFSET6>\n-lea ecx, [ebp - 0xd]\n+mov ecx, dword ptr [ebp - 0x14]\n jmp <OFFSET7>\n+mov ecx, dword ptr [ebp - 0x14]\n+jmp <OFFSET8>\n+mov ecx, dword ptr [ebp - 0x14]\n+jmp <OFFSET9>\n+xor eax, eax\n mov ecx, dword ptr [ebp - 0x1c]\n-jmp <OFFSET8>\n-mov ecx, dword ptr [ebp - 0x1c]\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 dword ptr [ebp - 4], <OFFSET2>\n-mov dword ptr [edx + 0x44], eax\n-je 0x5ba\n-mov esi, dword ptr [ebp + 8]\n-lea ecx, [edx + 8]\n-lea eax, [esi + 4]\n-push eax\n-call <OFFSET11>\n-mov eax, dword ptr [esi + 0x14]\n-mov edx, dword ptr [ebp - 0x14]\n-mov dword ptr [edx + 0x18], eax\n-test byte ptr [esi + 0x3c], 1\n-je 0x163\n-push 0x38\n-call <OFFSET3>\n+mov ebx, dword ptr [ebp + 8]\n+mov dword ptr [ebp - 4], <OFFSET10>\n+mov dword ptr [ecx + 0x44], eax\n+test byte ptr [ebx + 0x3c], 2\n+je 0x1d3\n+push 0x28\n+call <OFFSET2>\n mov dword ptr [ebp - 0x18], eax\n add esp, 4\n mov dword ptr [ebp - 4], 5\n-mov edi, eax\n-mov eax, 0\n-test edi, edi\n-je 0x140\n-mov ecx, edi\n-call <OFFSET12>\n-mov edx, dword ptr [ebp - 0x14]\n-test eax, eax\n-mov dword ptr [ebp - 4], <OFFSET2>\n-mov dword ptr [edx + 0x1c], eax\n-jne 0x163\n-jmp <OFFSET13>\n-mov eax, dword ptr [ebp - 0x18]\n-push eax\n-call <OFFSET14>\n-add esp, 4\n-ret \n-test byte ptr [esi + 0x3c], 2\n-je 0x233\n-push 0x28\n-call <OFFSET3>\n-mov dword ptr [ebp - 0x18], eax\n-add esp, 4\n-mov dword ptr [ebp - 4], 6\n-mov ebx, eax\n-test ebx, ebx\n-je 0x20e\n-mov ecx, ebx\n-call <OFFSET15>\n+mov esi, eax\n+test esi, esi\n+je 0x19b\n+mov ecx, esi\n+call <OFFSET11>\n+mov byte ptr [ebp - 4], 6\n+push 0x200\n+mov dword ptr [esi], <OFFSET12>\n+mov dword ptr [esi + 8], 0\n+mov dword ptr [esi + 0xc], <OFFSET13>\n mov byte ptr [ebp - 4], 7\n-push 0x200\n-mov dword ptr [ebx], <OFFSET16>\n-mov dword ptr [ebx + 8], 0\n-mov dword ptr [ebx + 0xc], <OFFSET17>\n-mov byte ptr [ebp - 4], 8\n-mov dword ptr [ebx], <OFFSET18>\n-mov dword ptr [ebx + 0x14], 0x80\n-call <OFFSET3>\n+mov dword ptr [esi], <OFFSET14>\n+mov dword ptr [esi + 0x14], 0x80\n+call <OFFSET2>\n add esp, 4\n mov edi, eax\n-mov dword ptr [ebx + 0x10], eax\n+mov dword ptr [esi + 0x10], eax\n xor eax, eax\n-mov ecx, dword ptr [ebx + 0x14]\n+mov ecx, dword ptr [esi + 0x14]\n shl ecx, 2\n shr ecx, 2\n rep stosd dword ptr es:[edi], eax\n-mov byte ptr [ebp - 4], 9\n-mov byte ptr [ebp - 4], 6\n-mov dword ptr [ebx + 0x1c], eax\n-mov eax, ebx\n-mov dword ptr [ebx], <OFFSET19>\n-mov dword ptr [ebx + 0xc], <OFFSET20>\n-jmp <OFFSET21>\n+mov byte ptr [ebp - 4], 8\n+mov byte ptr [ebp - 4], 5\n+mov dword ptr [esi + 0x1c], eax\n+mov eax, esi\n+mov dword ptr [esi], <OFFSET15>\n+mov dword ptr [esi + 0xc], <OFFSET16>\n+jmp <OFFSET17>\n mov ecx, dword ptr [ebp - 0x18]\n-jmp <OFFSET22>\n+jmp <OFFSET18>\n mov ecx, dword ptr [ebp - 0x18]\n-jmp <OFFSET23>\n+jmp <OFFSET19>\n mov ecx, dword ptr [ebp - 0x18]\n-jmp <OFFSET24>\n+jmp <OFFSET20>\n xor eax, eax\n-mov edx, dword ptr [ebp - 0x14]\n+mov ecx, dword ptr [ebp - 0x1c]\n test eax, eax\n-mov dword ptr [ebp - 4], <OFFSET2>\n-mov dword ptr [edx + 0x20], eax\n-jne 0x233\n-jmp <OFFSET13>\n+mov dword ptr [ebp - 4], <OFFSET10>\n+mov dword ptr [ecx + 0x20], eax\n+jne 0x1d3\n+mov eax, <OFFSET10>\n+mov ecx, dword ptr [ebp - 0xc]\n+pop edi\n+mov dword ptr fs:[0], ecx\n+pop esi\n+pop ebx\n+mov esp, ebp\n+pop ebp\n+ret 4\n mov eax, dword ptr [ebp - 0x18]\n push eax\n-call <OFFSET14>\n+call <OFFSET21>\n add esp, 4\n ret \n-test byte ptr [esi + 0x3d], 2\n-je 0x282\n+test byte ptr [ebx + 0x3d], 2\n+je 0x21f\n+push 0x10\n+call <OFFSET2>\n+mov dword ptr [ebp - 0x18], eax\n+add esp, 4\n+mov dword ptr [ebp - 4], 9\n+mov esi, eax\n+mov eax, 0\n+test esi, esi\n+je 0x1ff\n+mov ecx, esi\n+call <OFFSET22>\n+mov ecx, dword ptr [ebp - 0x1c]\n+test eax, eax\n+mov dword ptr [ebp - 4], <OFFSET10>\n+mov dword ptr [ecx + 0x3c], eax\n+jne 0x21f\n+jmp <OFFSET23>\n+mov eax, dword ptr [ebp - 0x18]\n+push eax\n+call <OFFSET21>\n+add esp, 4\n+ret \n+xor eax, eax\n+jmp <OFFSET24>\n+mov eax, <OFFSET25>\n+jmp <OFFSET26>\n+mov eax, dword ptr [ebp - 0x14]\n+push eax\n+call <OFFSET21>\n+add esp, 4\n+ret "},{address: "0x100afe90", name: "MxOmni::Destroy", matching: 0.5868725868725869, diff: "--- \n\n+++ \n\n@@ -1,129 +1,130 @@\n\n mov eax, dword ptr fs:[0]\n push ebp\n mov ebp, esp\n push -1\n push <OFFSET1>\n push eax\n mov dword ptr fs:[0], esp\n-sub esp, 0xa8\n+sub esp, 0x14\n mov dword ptr [ebp - 0x10], ecx\n-push esi\n-lea ecx, [ebp - 0xb4]\n-mov esi, <OFFSET2>\n-call <OFFSET3>\n-mov eax, dword ptr [ebp - 0x10]\n-lea edx, [ebp - 0xb4]\n-mov dword ptr [ebp - 4], 0\n-push edx\n-mov dword ptr [ebp - 0x98], esi\n-mov word ptr [ebp - 0x90], 0xfffe\n-mov ecx, dword ptr [eax]\n-mov dword ptr [ebp - 0x14], ecx\n-mov ecx, eax\n-mov eax, dword ptr [ebp - 0x14]\n-call dword ptr [eax + 0x24]\n-mov dword ptr [ebp - 4], esi\n-call <OFFSET4>\n-mov ecx, dword ptr [ebp - 0x10]\n-mov eax, dword ptr [ecx + 0x28]\n-test eax, eax\n-je 0xa1\n-cmp dword ptr [eax + 8], 0\n-je 0x97\n-xor esi, esi\n-mov eax, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [eax + 0x28]\n-mov edx, dword ptr [ecx + 8]\n-cmp dword ptr [edx + 8], esi\n-je 0x97\n-mov eax, dword ptr [ecx]\n-call dword ptr [eax + 8]\n-mov eax, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [eax + 0x28]\n-cmp dword ptr [ecx + 8], esi\n-jne 0x79\n-mov eax, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [eax + 0x28]\n-mov byte ptr [ecx + 0x3c], 0\n-mov eax, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [eax + 0x38]\n+mov ecx, dword ptr [ecx + 0x38]\n test ecx, ecx\n-je 0xb1\n+je 0x2b\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 0x30]\n test ecx, ecx\n-je 0xc1\n+je 0x3b\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 0x34]\n test ecx, ecx\n-je 0xd1\n+je 0x4b\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 0x2c]\n test ecx, ecx\n-je 0xe1\n+je 0x5b\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 0x40]\n test ecx, ecx\n-je 0xf1\n+je 0x6b\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 0x3c]\n test ecx, ecx\n-je 0x101\n+je 0x7b\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 0x1c]\n test ecx, ecx\n-je 0x111\n+je 0x8b\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 0x20]\n test ecx, ecx\n-je 0x121\n+je 0x9b\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 0x28]\n test ecx, ecx\n-je 0x131\n+je 0xab\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 0x24]\n test ecx, ecx\n-je 0x141\n+je 0xbb\n push 1\n mov eax, dword ptr [ecx]\n call dword ptr [eax]\n mov eax, dword ptr [ebp - 0x10]\n mov eax, dword ptr [eax + 0x44]\n test eax, eax\n-je 0x1c1\n+je 0x13b\n cmp dword ptr [eax + 0xc], 0\n-je 0x19c\n+je 0x116\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 0x44]\n mov edx, dword ptr [ecx + 4]\n mov eax, dword ptr [edx]\n push eax\n mov edx, dword ptr [eax + 0xc]\n+mov dword ptr [ebp - 0x14], edx\n+lea edx, [ebp - 0x20]\n+push edx\n+call <OFFSET2>\n+cmp dword ptr [ebp - 0x14], 0\n+je 0x10a\n+mov dword ptr [ebp - 4], <OFFSET3>\n+mov eax, dword ptr [ebp - 0x14]\n+mov dword ptr [ebp - 0x1c], eax\n+call <OFFSET4>\n+mov eax, dword ptr [ebp - 0x14]\n+push eax\n+call <OFFSET5>\n+add esp, 4\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [eax + 0x44]\n+cmp dword ptr [ecx + 0xc], 0\n+jne 0xcb\n+mov eax, dword ptr [ebp - 0x10]\n+mov ecx, dword ptr [eax + 0x44]\n+mov dword ptr [ebp - 0x10], ecx\n+test ecx, ecx\n+je 0x13b\n+mov dword ptr [ebp - 4], <OFFSET3>\n+call <OFFSET6>\n+mov eax, dword ptr [ebp - 0x10]\n+push eax\n+call <OFFSET5>\n+add esp, 4\n+mov eax, dword ptr [ebp - 0xc]\n+mov esp, ebp\n+mov dword ptr fs:[0], eax\n+pop ebp\n+ret \n+mov ecx, dword ptr [ebp - 0x1c]\n+jmp <OFFSET7>\n+mov eax, <OFFSET8>\n+jmp <OFFSET9>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET10>"},{address: "0x100b07f0", name: "MxOmni::Notify", matching: 0.0, diff: "--- \n\n+++ \n\n@@ -0,0 +1,2 @@\n\n+xor eax, eax\n+ret 4"},{address: "0x100acea0", name: "ObjectFactory", matching: 1.0, diff: ""},{address: "0x100aceb0", name: "NotificationManager", matching: 1.0, diff: ""},{address: "0x100acec0", name: "TickleManager", matching: 1.0, diff: ""},{address: "0x100aced0", name: "Timer", matching: 1.0, diff: ""},{address: "0x100acee0", name: "AtomIdCounterSet", matching: 1.0, diff: ""},{address: "0x100acef0", name: "Streamer", matching: 1.0, diff: ""},{address: "0x100acf00", name: "MSoundManager", matching: 1.0, diff: ""},{address: "0x100acf10", name: "MVideoManager", matching: 1.0, diff: ""},{address: "0x100acf20", name: "VariableTable", matching: 1.0, diff: ""},{address: "0x100acf30", name: "MusicManager", matching: 1.0, diff: ""},{address: "0x100acf40", name: "EventManager", matching: 1.0, diff: ""},{address: "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: 1.0, diff: ""},{address: "0x100bef90", name: "MxPalette::~MxPalette", matching: 1.0, diff: ""},{address: "0x100bf390", name: "MxPalette::ApplySystemEntriesToPalette", 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: "0x100bf420", name: "MxPalette::GetDefaultPalette", matching: 1.0, diff: ""},{address: "0x100bf150", name: "MxPalette::GetEntries", matching: 1.0, diff: ""},{address: "0x100bf340", name: "MxPalette::operator==", matching: 1.0, diff: ""},{address: "0x100bf330", name: "MxPalette::Detach", 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: "0x100bf490", name: "MxPalette::Reset", matching: 1.0, diff: ""},{address: "0x100bf000", name: "MxPalette::CreateNativePalette", matching: 1.0, diff: ""},{address: "0x10010390", name: "MxParam::Clone", matching: 1.0, diff: ""},{address: "0x100b4d50", name: "MxPresenter::Init", matching: 0.5555555555555556, diff: "--- \n\n+++ \n\n@@ -1,9 +1,9 @@\n\n-sub esp, 8\n xor eax, eax\n mov dword ptr [ecx + 8], eax\n mov dword ptr [ecx + 0x1c], eax\n-push esi\n mov dword ptr [ecx + 0x18], eax\n-push edi\n mov dword ptr [ecx + 0x3c], eax\n-lea edi, [ecx + 0x10]\n+mov dword ptr [ecx + 0xc], eax\n+mov dword ptr [ecx + 0x10], eax\n+mov dword ptr [ecx + 0x14], eax\n+ret "},{address: "0x100b4fc0", name: "MxPresenter::ParseExtra", matching: 0.821256038647343, diff: "--- \n\n+++ \n\n@@ -9,46 +9,44 @@\n\n push ebx\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+xor edx, edx\n+mov dx, word ptr [eax + 0x80]\n+mov esi, dword ptr [eax + 0x7c]\n+test edx, edx\n+je 0x122\n+and edx, 0xffff\n lea edi, [ebp - 0x310]\n-and eax, 0xffff\n-mov esi, edx\n-mov ecx, eax\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, [ebp - 0x310]\n-mov edx, dword ptr [<OFFSET3>]\n-mov byte ptr [ebp + eax - 0x310], 0\n+lea eax, [ebp - 0x310]\n+mov ecx, dword ptr [<OFFSET3>]\n+mov byte ptr [ebp + edx - 0x310], 0\n+push eax\n+lea edx, [ebp - 0x510]\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 0x122\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 +60,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 0xf2\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 0x122\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::SendTo_unkPresenter", matching: 1.0, diff: ""},{address: "0x1000bf00", name: "MxPresenter::~MxPresenter", 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 + 0x10016f78]\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+add dword ptr [edi + 1], ebp\n+adc byte ptr [esi], cl\n+outsd dx, dword ptr [esi]\n+add dword ptr [eax], edx\n+sbb ebp, dword ptr [edi + 1]\n+adc byte ptr [eax], ch\n+outsd dx, dword ptr [esi]\n+add dword ptr [eax], edx\n+xor eax, <OFFSET8>\n+outsd dx, dword ptr [esi]\n+add dword ptr [eax], edx"},{address: "0x100b52d0", name: "MxPresenter::Enable", matching: 1.0, diff: "--- \n\n+++ \n\n@@ -1,21 +1,21 @@\n\n push esi\n mov esi, ecx\n cmp dword ptr [ecx + 0x1c], 0\n je 0x31\n call <OFFSET1>\n mov dl, byte ptr [esp + 8]\n cmp al, dl\n je 0x31\n-mov ecx, dword ptr [esi + 0x1c]\n-mov eax, dword ptr [ecx + 0x30]\n-add ecx, 0x30\n+mov eax, dword ptr [esi + 0x1c]\n+mov ecx, dword ptr [eax + 0x30]\n+add eax, 0x30\n test dl, dl\n je 0x2c\n-or eax, 0x20\n+or ecx, 0x20\n pop esi\n-mov dword ptr [ecx], eax\n+mov dword ptr [eax], ecx\n ret 4\n-and eax, <OFFSET2>\n-mov dword ptr [ecx], eax\n+and ecx, <OFFSET2>\n+mov dword ptr [eax], ecx\n pop esi\n ret 4"},{address: "0x100b54c0", name: "MxPresenter::IsEnabled", 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: "0x1000bf70", name: "MxPresenter::VTable0x34", matching: 1.0, diff: ""},{address: "0x1000bf80", name: "MxPresenter::InitVirtual", 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::VTable0x4c", matching: 1.0, diff: ""},{address: "0x1000bfd0", name: "MxPresenter::VTable0x50", 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: "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: "0x100ae740", name: "MxSoundManager::MxSoundManager", matching: 1.0, diff: ""},{address: "0x100ae830", name: "MxSoundManager::Init", matching: 1.0, diff: ""},{address: "0x1000d4a0", name: "MxSoundPresenter::ClassName", matching: 1.0, diff: ""},{address: "0x1000d4b0", name: "MxSoundPresenter::IsA", matching: 1.0, diff: ""},{address: "0x100c0f10", name: "MxStreamController::ClassName", matching: 1.0, diff: ""},{address: "0x100c0f20", name: "MxStreamController::IsA", 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: "0x100bf690", name: "MxThread::Run", matching: 1.0, diff: ""},{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: "0x100bf670", name: "MxThread::Terminate", matching: 1.0, diff: ""},{address: "0x100bf680", name: "MxThread::ThreadProc", matching: 1.0, diff: ""},{address: "0x100bf660", name: "MxThread::Sleep", matching: 1.0, diff: ""},{address: "0x100b8bb0", name: "MxTickleThread::MxTickleThread", matching: 1.0, diff: ""},{address: "0x100d0f50", name: "MxTickleThread::StartWithTarget", 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: "0x100bdd10", name: "MxTickleClient::MxTickleClient", matching: 1.0, diff: ""},{address: "0x100bdd30", name: "MxTickleManager::~MxTickleManager", matching: 1.0, diff: ""},{address: "0x100bdde0", name: "MxTickleManager::Tickle", matching: 0.5217391304347826, 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-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+mov eax, dword ptr [esi + 0xc]\n+mov ecx, dword ptr [eax]\n+mov dword ptr [esp + 0x10], ecx\n+cmp ecx, eax\n+je 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: "--- \n\n+++ \n\n@@ -31,33 +31,33 @@\n\n call <OFFSET4>\n mov dword ptr [ebp - 0x14], eax\n jmp <OFFSET5>\n mov dword ptr [ebp - 0x14], 0\n mov dword ptr [ebp - 4], <OFFSET6>\n cmp dword ptr [ebp - 0x14], 0\n je 0xab\n mov eax, dword ptr [esi + 0xc]\n push 0xc\n mov dword ptr [ebp - 0x10], eax\n-lea edi, [eax + 4]\n-mov ebx, dword ptr [edi]\n+lea ebx, [eax + 4]\n+mov edi, dword ptr [ebx]\n call <OFFSET3>\n add esp, 4\n-test ebx, ebx\n+test edi, edi\n je 0x92\n mov ecx, dword ptr [ebp - 0x10]\n mov dword ptr [eax], ecx\n-mov dword ptr [eax + 4], ebx\n+mov dword ptr [eax + 4], edi\n jmp <OFFSET7>\n mov dword ptr [eax], eax\n mov dword ptr [eax + 4], eax\n-mov dword ptr [edi], eax\n+mov dword ptr [ebx], eax\n mov ecx, dword ptr [eax + 4]\n mov dword ptr [ecx], eax\n add eax, 8\n je 0xa8\n mov ecx, dword ptr [ebp - 0x14]\n mov dword ptr [eax], ecx\n inc dword ptr [esi + 0x10]\n mov eax, dword ptr [ebp - 0xc]\n pop edi\n mov dword ptr fs:[0], eax"},{address: "0x100bdf60", name: "MxTickleManager::UnregisterClient", matching: 1.0, diff: "--- \n\n+++ \n\n@@ -1,21 +1,21 @@\n\n sub esp, 4\n mov edx, dword ptr [ecx + 0xc]\n mov eax, dword ptr [edx]\n mov dword ptr [esp], eax\n-cmp edx, eax\n+cmp eax, edx\n je 0x37\n mov ecx, dword ptr [esp + 8]\n mov eax, dword ptr [esp]\n mov eax, dword ptr [eax + 8]\n cmp dword ptr [eax], ecx\n je 0x33\n mov eax, dword ptr [esp]\n mov eax, dword ptr [eax]\n mov dword ptr [esp], eax\n-cmp edx, eax\n+cmp eax, edx\n jne 0x14\n add esp, 4\n ret 4\n or byte ptr [eax + 0xc], 1\n add esp, 4\n ret 4"},{address: "0x100bdfa0", name: "MxTickleManager::SetClientTickleInterval", matching: 1.0, diff: "--- \n\n+++ \n\n@@ -1,30 +1,30 @@\n\n sub esp, 4\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+cmp eax, esi\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+cmp ecx, esi\n jne 0x1b\n pop edi\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 pop esi\n add esp, 4"},{address: "0x100be000", name: "MxTickleManager::GetClientTickleInterval", matching: 1.0, diff: ""},{address: "0x100ae060", name: "MxTimer::MxTimer", matching: 1.0, diff: ""},{address: "0x100ae160", name: "MxTimer::Start", matching: 1.0, diff: ""},{address: "0x100ae180", name: "MxTimer::Stop", matching: 1.0, diff: ""},{address: "0x100ae140", name: "MxTimer::GetRealTime", matching: 1.0, diff: ""},{address: "0x100b8d00", name: "MxUnknown100dc6e0::MxUnknown100dc6e0", matching: 1.0, diff: ""},{address: "0x100b8df0", name: "MxUnknown100dc6e0::Init", 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: "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: "--- \n\n+++ \n\n@@ -49,27 +49,27 @@\n\n cmp dword ptr [ebp - 0x10], 0\n je 0xec\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 8]\n test ecx, ecx\n je 0xa4\n mov edx, dword ptr [eax + 0xc]\n mov dword ptr [ecx + 0xc], edx\n jmp <OFFSET4>\n mov eax, dword ptr [ebp - 0x10]\n-mov ecx, dword ptr [ebp - 0x14]\n+mov esi, dword ptr [ebp - 0x14]\n sub edx, edx\n-mov esi, dword ptr [eax + 0xc]\n+mov ecx, dword ptr [eax + 0xc]\n mov eax, dword ptr [eax + 4]\n-div dword ptr [ecx + 0x14]\n-mov eax, dword ptr [ecx + 0x10]\n-mov dword ptr [eax + edx*4], esi\n+div dword ptr [esi + 0x14]\n+mov eax, dword ptr [esi + 0x10]\n+mov dword ptr [eax + edx*4], ecx\n mov eax, dword ptr [ebp - 0x10]\n mov ecx, dword ptr [eax + 0xc]\n test ecx, ecx\n je 0xcb\n mov edx, dword ptr [eax + 8]\n mov dword ptr [ecx + 8], edx\n mov eax, dword ptr [ebp - 0x10]\n mov esi, dword ptr [ebp - 0x14]\n mov ecx, dword ptr [eax]\n push ecx"},{address: "0x100b78f0", name: "MxVariableTable::GetVariable", matching: 1.0, diff: ""},{address: "0x100afdb0", name: "MxVariableTable::Destroy", matching: 1.0, diff: ""},{address: "0x100020a0", name: "MxVector2::GetData", matching: 1.0, diff: ""},{address: "0x10002090", name: "MxVector2::GetData", matching: 1.0, diff: ""},{address: "0x10002130", name: "MxVector2::Dot", matching: 1.0, diff: ""},{address: "0x10002110", name: "MxVector2::Dot", matching: 1.0, diff: ""},{address: "0x100020f0", name: "MxVector2::Dot", matching: 1.0, diff: ""},{address: "0x100020d0", name: "MxVector2::Dot", matching: 1.0, diff: ""},{address: "0x10002160", name: "MxVector2::Unitize", matching: 1.0, diff: ""},{address: "0x100021e0", name: "MxVector2::AddVector", matching: 1.0, diff: ""},{address: "0x100021d0", name: "MxVector2::AddVector", matching: 1.0, diff: ""},{address: "0x100021c0", name: "MxVector2::AddScalar", matching: 1.0, diff: ""},{address: "0x10002200", name: "MxVector2::SubVector", matching: 1.0, diff: ""},{address: "0x100021f0", name: "MxVector2::SubVector", matching: 1.0, diff: ""},{address: "0x10002230", name: "MxVector2::MullScalar", matching: 1.0, diff: ""},{address: "0x10002220", name: "MxVector2::MullVector", matching: 1.0, diff: ""},{address: "0x10002210", name: "MxVector2::MullVector", matching: 1.0, diff: ""},{address: "0x10002240", name: "MxVector2::DivScalar", matching: 1.0, diff: ""},{address: "0x10002260", name: "MxVector2::SetVector", matching: 1.0, diff: ""},{address: "0x10002250", name: "MxVector2::SetVector", matching: 1.0, diff: ""},{address: "0x10001fa0", name: "MxVector2::AddScalarImpl", matching: 1.0, diff: ""},{address: "0x10001f80", name: "MxVector2::AddVectorImpl", matching: 1.0, diff: ""},{address: "0x10001fc0", name: "MxVector2::SubVectorImpl", matching: 1.0, diff: ""},{address: "0x10002000", name: "MxVector2::MullScalarImpl", matching: 1.0, diff: ""},{address: "0x10001fe0", name: "MxVector2::MullVectorImpl", matching: 1.0, diff: ""},{address: "0x10002020", name: "MxVector2::DivScalarImpl", matching: 1.0, diff: ""},{address: "0x10002040", name: "MxVector2::DotImpl", matching: 1.0, diff: ""},{address: "0x10002070", name: "MxVector2::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: "0x100020b0", name: "MxVector2::Clear", matching: 1.0, diff: ""},{address: "0x10002150", name: "MxVector2::LenSquared", matching: 1.0, diff: ""},{address: "0x10003a90", name: "MxVector3::AddScalarImpl", matching: 1.0, diff: ""},{address: "0x10003a60", name: "MxVector3::AddVectorImpl", matching: 1.0, diff: "--- \n\n+++ \n\n@@ -1,14 +1,14 @@\n\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [esp + 4]\n-fld dword ptr [eax]\n-fadd dword ptr [edx]\n+fld dword ptr [edx]\n+fadd dword ptr [eax]\n fstp dword ptr [eax]\n fld dword ptr [edx + 4]\n mov eax, dword ptr [ecx + 4]\n add eax, 4\n fadd dword ptr [eax]\n fstp dword ptr [eax]\n fld dword ptr [edx + 8]\n mov eax, dword ptr [ecx + 4]\n add eax, 8\n fadd dword ptr [eax]"},{address: "0x10003ac0", name: "MxVector3::SubVectorImpl", matching: 1.0, diff: ""},{address: "0x10003b20", name: "MxVector3::MullScalarImpl", matching: 1.0, diff: ""},{address: "0x10003af0", name: "MxVector3::MullVectorImpl", matching: 1.0, diff: "--- \n\n+++ \n\n@@ -1,14 +1,14 @@\n\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [esp + 4]\n-fld dword ptr [edx]\n-fmul dword ptr [eax]\n+fld dword ptr [eax]\n+fmul dword ptr [edx]\n fstp dword ptr [eax]\n fld dword ptr [edx + 4]\n mov eax, dword ptr [ecx + 4]\n add eax, 4\n fmul dword ptr [eax]\n fstp dword ptr [eax]\n fld dword ptr [edx + 8]\n mov eax, dword ptr [ecx + 4]\n add eax, 8\n fmul dword ptr [eax]"},{address: "0x10003b50", name: "MxVector3::DivScalarImpl", matching: 1.0, diff: ""},{address: "0x10003b80", name: "MxVector3::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: "MxVector3::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: "MxVector3::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: "MxVector3::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: "0x10002270", name: "MxVector3::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: "0x10002300", name: "MxVector3::EqualsCross", matching: 1.0, diff: ""},{address: "0x100022e0", name: "MxVector3::EqualsCross", matching: 1.0, diff: ""},{address: "0x100022c0", name: "MxVector3::EqualsCross", matching: 1.0, diff: ""},{address: "0x10003bf0", name: "MxVector3::EqualsScalar", matching: 1.0, diff: ""},{address: "0x100028b0", name: "MxVector4::AddScalarImpl", matching: 1.0, diff: ""},{address: "0x10002870", name: "MxVector4::AddVectorImpl", matching: 1.0, diff: "--- \n\n+++ \n\n@@ -1,14 +1,14 @@\n\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [esp + 4]\n-fld dword ptr [eax]\n-fadd dword ptr [edx]\n+fld dword ptr [edx]\n+fadd dword ptr [eax]\n fstp dword ptr [eax]\n fld dword ptr [edx + 4]\n mov eax, dword ptr [ecx + 4]\n add eax, 4\n fadd dword ptr [eax]\n fstp dword ptr [eax]\n fld dword ptr [edx + 8]\n mov eax, dword ptr [ecx + 4]\n add eax, 8\n fadd dword ptr [eax]"},{address: "0x100028f0", name: "MxVector4::SubVectorImpl", matching: 1.0, diff: ""},{address: "0x10002970", name: "MxVector4::MullScalarImpl", matching: 1.0, diff: ""},{address: "0x10002930", name: "MxVector4::MullVectorImpl", matching: 1.0, diff: "--- \n\n+++ \n\n@@ -1,14 +1,14 @@\n\n mov eax, dword ptr [ecx + 4]\n mov edx, dword ptr [esp + 4]\n-fld dword ptr [edx]\n-fmul dword ptr [eax]\n+fld dword ptr [eax]\n+fmul dword ptr [edx]\n fstp dword ptr [eax]\n fld dword ptr [edx + 4]\n mov eax, dword ptr [ecx + 4]\n add eax, 4\n fmul dword ptr [eax]\n fstp dword ptr [eax]\n fld dword ptr [edx + 8]\n mov eax, dword ptr [ecx + 4]\n add eax, 8\n fmul dword ptr [eax]"},{address: "0x100029b0", name: "MxVector4::DivScalarImpl", matching: 1.0, diff: ""},{address: "0x100029f0", name: "MxVector4::DotImpl", matching: 1.0, diff: ""},{address: "0x10002a20", name: "MxVector4::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: "0x10002b00", name: "MxVector4::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: "MxVector4::LenSquared", matching: 0.7692307692307693, diff: "--- \n\n+++ \n\n@@ -1,13 +1,13 @@\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 + 0xc]\n+fmul dword ptr [eax + 0xc]\n+faddp st(1)\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: "MxVector4::EqualsScalar", matching: 1.0, diff: ""},{address: "0x10002a40", name: "MxVector4::SetMatrixProduct", matching: 0.7017543859649122, 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 + 0x24]\n fmul dword ptr [edx + 8]\n+fld dword ptr [esi + 4]\n+fmul dword ptr [edx]\n+faddp st(1)\n fld dword ptr [esi + 0x14]\n fmul dword ptr [edx + 4]\n-faddp st(1)\n-fld dword ptr [esi + 4]\n-fmul dword ptr [edx]\n mov eax, dword ptr [ecx + 4]\n faddp st(1)\n fld dword ptr [esi + 0x34]\n-fmul dword ptr [edx + 0xc]\n+fmul dword ptr [edx + 0x10]\n faddp st(1)\n fstp dword ptr [eax + 4]\n fld dword ptr [esi + 0x38]\n-fmul dword ptr [edx + 0xc]\n+fmul dword ptr [edx + 0x10]\n+fld dword ptr [esi + 0x28]\n+fmul dword ptr [edx + 8]\n+faddp st(1)\n fld dword ptr [esi + 0x18]\n fmul dword ptr [edx + 4]\n+mov eax, dword ptr [ecx + 4]\n faddp st(1)\n fld dword ptr [esi + 8]\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 + 0x1c]\n+fmul dword ptr [edx + 4]\n fld dword ptr [esi + 0x3c]\n-fmul dword ptr [edx + 0xc]\n+fmul dword ptr [edx + 0x10]\n+faddp st(1)\n fld dword ptr [esi + 0x2c]\n fmul dword ptr [edx + 8]\n-faddp st(1)\n-fld dword ptr [esi + 0x1c]\n-fmul dword ptr [edx + 4]\n mov eax, dword ptr [ecx + 4]\n faddp st(1)\n fld dword ptr [esi + 0xc]\n fmul dword ptr [edx]\n pop esi\n faddp st(1)\n fstp dword ptr [eax + 0xc]\n ret 8"},{address: "0x10002060", name: "MxVector2::SetData", matching: 1.0, diff: ""},{address: "0x100be1f0", name: "MxVideoManager::MxVideoManager", matching: 1.0, diff: ""},{address: "0x100be320", name: "MxVideoManager::Init", 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: "0x100bede0", name: "MxVideoParam::operator=", matching: 1.0, diff: ""},{address: "0x100bed70", name: "MxVideoParam::SetDeviceName", matching: 1.0, diff: ""},{address: "0x100bed50", name: "MxVideoParam::~MxVideoParam", matching: 1.0, diff: ""},{address: "0x100bec40", name: "MxVideoParamFlags::MxVideoParamFlags", matching: 1.0, diff: ""},{address: "0x1000c820", name: "MxVideoPresenter::ClassName", matching: 1.0, diff: ""},{address: "0x1000c830", name: "MxVideoPresenter::IsA", matching: 1.0, diff: ""},{address: "0x100b1ad0", name: "MxWavePresenter::Init", matching: 1.0, diff: ""},{address: "0x10037ef0", name: "Pizza::Pizza", matching: 0.42201834862385323, diff: "--- \n\n+++ \n\n@@ -3,61 +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 eax, <OFFSET3>\n+xor eax, eax\n+mov ecx, <OFFSET3>\n+mov dword ptr [ebp - 4], eax\n+mov dword ptr [ebp - 4], 1\n+mov dword ptr [ebp - 4], 2\n+mov dword ptr [ebp - 4], 3\n+mov dword ptr [esi], <OFFSET4>\n+mov dword ptr [esi + 0x80], eax\n+mov dword ptr [esi], <OFFSET5>\n+mov dword ptr [esi + 0x84], eax\n+mov dword ptr [esi], <OFFSET6>\n+mov dword ptr [esi + 0x88], eax\n+mov dword ptr [esi], <OFFSET7>\n+mov dword ptr [esi + 0x8c], ecx\n+mov dword ptr [esi + 0x98], eax\n mov dword ptr [ebp - 4], ecx\n-mov dword ptr [ebp - 4], 1\n-mov dword ptr [esi], <OFFSET4>\n-mov dword ptr [esi + 0x7c], ecx\n-mov dword ptr [esi], <OFFSET5>\n-mov dword ptr [esi + 0x80], ecx\n-mov dword ptr [esi + 0x84], ecx\n-mov dword ptr [esi + 0x88], ecx\n-mov dword ptr [esi + 0x8c], eax\n-mov byte ptr [esi + 0x98], cl\n-mov dword ptr [esi + 0x90], <OFFSET6>\n-mov dword ptr [ebp - 4], eax\n mov eax, esi\n mov ecx, dword ptr [ebp - 0xc]\n+mov dword ptr [esi + 0x90], <OFFSET8>\n+mov dword ptr fs:[0], ecx\n pop esi\n-mov dword ptr fs:[0], ecx\n mov esp, ebp\n pop ebp\n ret \n mov ecx, dword ptr [ebp - 0x10]\n-jmp <OFFSET7>\n-mov eax, <OFFSET8>\n jmp <OFFSET9>\n mov ecx, dword ptr [ebp - 0x10]\n jmp <OFFSET10>\n-int3 \n-int3 \n-int3 \n-int3 \n-mov eax, <OFFSET11>\n-ret \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-int3 \n-mov edx, dword ptr [esp + 4]\n-push ebx\n-push esi\n-mov eax, edx\n-mov esi, <OFFSET11>\n-mov bl, byte ptr [eax]\n-cmp bl, byte ptr [esi]\n-jne 0xdd\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET11>\n+mov eax, <OFFSET12>\n+jmp <OFFSET13>\n+mov ecx, dword ptr [ebp - 0x10]\n+jmp <OFFSET14>"},{address: "0x10038100", name: "Pizza::~Pizza", matching: 1.0, diff: ""},{address: "0x100388a0", name: "Pizza::Tickle", matching: 0.0, diff: "--- \n\n+++ \n\n@@ -1,3 +1,2 @@\n\n-push ebx\n-push esi\n-push edi\n+xor eax, eax\n+ret "},{address: "0x10037f90", name: "Pizza::ClassName", matching: 1.0, diff: ""},{address: "0x10037fa0", name: "Pizza::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: "0x10016010", name: "RaceState::ClassName", matching: 1.0, diff: ""},{address: "0x10016020", name: "RaceState::IsA", matching: 1.0, diff: ""},{address: "0x1002cf60", name: "RadioState::ClassName", matching: 1.0, diff: ""},{address: "0x1002cf70", name: "RadioState::IsA", 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: "0x100a5de0", name: "RealtimeView::SetUserMaxLOD", matching: 1.0, diff: ""},{address: "0x100a5df0", name: "RealtimeView::SetPartsThreshold", 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: ""}];
|
|
|
|
function formatAsm(asm) {
|
|
var lines = asm.split('\n');
|
|
|
|
for (var i = 0; i < lines.length; i++) {
|
|
var l = lines[i];
|
|
if (l.length > 0) {
|
|
if (l[0] == '-') {
|
|
lines[i] = '<span class="diffneg">' + l + '</span>';
|
|
} else if (l[0] == '+') {
|
|
lines[i] = '<span class="diffpos">' + l + '</span>';
|
|
}
|
|
}
|
|
}
|
|
|
|
return lines.join('<br>');
|
|
}
|
|
|
|
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 = '<center><i>Identical function - no diff</i></center>';
|
|
} else {
|
|
diff = formatAsm(diff);
|
|
}
|
|
decCel.innerHTML = diff;
|
|
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 ? '▲' : '▼';
|
|
|
|
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.innerHTML = addrCel.dataset.value = element.address;
|
|
nameCel.innerHTML = 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>
|