{
  "method": "Reachable disassembly normalised by source-unit/symbol addresses, constant bytes, string contents and local instruction indices; inline jump tables followed and alignment omitted. Changed entries still require instruction review: anonymous data and altered compiler scheduling can differ without behaviour changes.",
  "pairs": [
    {
      "first": "extracted/cd_1998_09/files/FILES/3DFX/APACHE95.EXE",
      "second": "extracted/cd_1998_09/files/FILES/SOFTWARE/APACHE95.EXE",
      "normalised_identical": 2227,
      "changed": [
        {
          "symbol": "2dcore.c::set_2d_rotation_",
          "source": "E:\\library\\2dvisual\\2dcore.c",
          "first": "0x4679c0",
          "second": "0x467b60",
          "first_instruction_count": 14,
          "second_instruction_count": 14,
          "diff": [
            "--- 0x4679c0",
            "+++ 0x467b60",
            "@@ -8,7 +8,7 @@",
            " mov eax,edx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[None+None*1+2dcore.c::_cos_theta_2d],eax",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "2dline.c::draw_2d_line_",
          "source": "E:\\library\\2dvisual\\2dline.c",
          "first": "0x467d30",
          "second": "0x467ed0",
          "first_instruction_count": 52,
          "second_instruction_count": 27,
          "diff": [
            "--- 0x467d30",
            "+++ 0x467ed0",
            "@@ -1,5 +1,3 @@",
            "-push esi",
            "-push edi",
            " sub esp,0x10",
            " mov m4[esp+None*1+0x0],eax",
            " mov m4[esp+None*1+0x4],edx",
            "@@ -11,42 +9,19 @@",
            " mov eax,esp",
            " call 2dline.c::clip_2d_line_",
            " test eax,eax",
            "-je local:37",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:41",
            "-push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "-push 0x4",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbLock@24",
            "-mov esi,m4[esp+None*1+0xc]",
            "-mov eax,m4[None+None*1+0x724310]",
            "-mov edx,m4[esp+None*1+0x8]",
            "-mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "-mov eax,m4[None+None*1+0x724314]",
            "-mov ebx,m4[esp+None*1+0x4]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+jne local:14",
            "+add esp,0x10",
            "+ret 0x4",
            "+push edi",
            "+push esi",
            "+mov esi,m4[esp+None*1+0x14]",
            "+mov edx,m4[esp+None*1+0x10]",
            "+mov ebx,m4[esp+None*1+0xc]",
            " xor eax,eax",
            "-mov ecx,m4[esp+None*1+0x0]",
            "-mov al,m1[esp+None*1+0x1c]",
            "-call line.asm::_draw_glide_line",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbUnlock@8",
            "-add esp,0x10",
            "-pop edi",
            "-pop esi",
            "-ret 0x4",
            "-mov esi,m4[esp+None*1+0xc]",
            "-mov edx,m4[esp+None*1+0x8]",
            "-mov ebx,m4[esp+None*1+0x4]",
            "-xor eax,eax",
            "-mov ecx,m4[esp+None*1+0x0]",
            "+mov ecx,m4[esp+None*1+0x8]",
            " mov al,m1[esp+None*1+0x1c]",
            " call line.asm::_draw_line",
            "+pop esi",
            "+pop edi",
            " add esp,0x10",
            "-pop edi",
            "-pop esi",
            " ret 0x4"
          ]
        },
        {
          "symbol": "2dwrap.c::set_2d_point_",
          "source": "E:\\library\\2dvisual\\2dwrap.c",
          "first": "0x468630",
          "second": "0x468770",
          "first_instruction_count": 73,
          "second_instruction_count": 74,
          "diff": [
            "--- 0x468630",
            "+++ 0x468770",
            "@@ -3,8 +3,8 @@",
            " push edi",
            " push ebp",
            " sub esp,0x4",
            "-mov esi,eax",
            "-mov edi,edx",
            "+mov edi,eax",
            "+mov esi,edx",
            " mov m1[esp+None*1+0x0],bl",
            " mov ebx,edx",
            " mov ecx,eax",
            "@@ -26,8 +26,8 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,m4[None+None*1+2dcore.c::_viewport_x_min_2d]",
            "-mov ebx,edi",
            "-mov ecx,esi",
            "+mov ebx,esi",
            "+mov ecx,edi",
            " mov ebp,edx",
            " add ecx,m4[None+None*1+2dcore.c::_xt1_2d]",
            " add ebx,m4[None+None*1+2dcore.c::_yt1_2d]",
            "@@ -61,10 +61,11 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "-xor ebx,ebx",
            "-mov eax,ebp",
            "-mov bl,m1[esp+None*1+0x0]",
            "-call fxpoly1.c::set_point_",
            "+mov al,m1[esp+None*1+0x0]",
            "+mov ebx,edx",
            "+mov ecx,ebp",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            " add esp,0x4",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "3dbuild.c::recurse_construct_3d_object_",
          "source": "E:\\library\\3dvisual\\3dbuild.c",
          "first": "0x48b498",
          "second": "0x4881b8",
          "first_instruction_count": 146,
          "second_instruction_count": 146,
          "diff": [
            "--- 0x48b498",
            "+++ 0x4881b8",
            "@@ -7,7 +7,7 @@",
            " mov m4[esp+None*1+0x4],ebx",
            " mov m4[esp+None*1+0x10],ecx",
            " mov ecx,m4[esp+None*1+0x28]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ebp,m4[edx+eax*4+0x0]",
            " mov ebp,m4[ebp+None*1+0x2c]",
            " test ebp,ebp"
          ]
        },
        {
          "symbol": "3dconfig.c::set_3d_visual_configuration_",
          "source": "E:\\library\\3dvisual\\3dconfig.c",
          "first": "0x48b9c0",
          "second": "0x4886e0",
          "first_instruction_count": 47,
          "second_instruction_count": 47,
          "diff": [
            "--- 0x48b9c0",
            "+++ 0x4886e0",
            "@@ -12,18 +12,18 @@",
            " and cl,0x3",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            "-cmp m4[None+None*1+0xafaedc],0x2",
            "+cmp m4[None+None*1+0xae558c],0x2",
            " je local:34",
            "-cmp m4[None+None*1+0xafaed8],0x1",
            "+cmp m4[None+None*1+0xae5588],0x1",
            " jne local:41",
            " mov eax,m4[None+None*1+3dconfig.c::_random_cloud_modifier]",
            " add eax,0x32c8",
            " shl eax,0x8",
            "-mov m4[None+None*1+0xafaec8],eax",
            "+mov m4[None+None*1+0xae5578],eax",
            " mov eax,m4[None+None*1+3dconfig.c::_random_cloud_modifier]",
            " add eax,0x3a98",
            " shl eax,0x8",
            "-mov m4[None+None*1+0xafaecc],eax",
            "+mov m4[None+None*1+0xae557c],eax",
            " mov eax,m4[None+None*1+3dconfig.c::_random_cloud_modifier]",
            " add eax,0x36b0",
            " mov m4[None+None*1+clouds.c::_CLOUD_HEIGHT],eax",
            "@@ -33,11 +33,11 @@",
            " pop ecx",
            " ret ",
            " xor ecx,ecx",
            "-mov ah,m1[None+None*1+0xafaee4]",
            "-mov m4[None+None*1+0xafaed4],ecx",
            "+mov ah,m1[None+None*1+0xae5594]",
            "+mov m4[None+None*1+0xae5584],ecx",
            " and ah,0xfd",
            "-mov m4[None+None*1+0xafaed0],ecx",
            "-mov m1[None+None*1+0xafaee4],ah",
            "+mov m4[None+None*1+0xae5580],ecx",
            "+mov m1[None+None*1+0xae5594],ah",
            " jmp local:16",
            " mov m4[None+None*1+clouds.c::_CLOUD_HEIGHT],0x6590",
            " call 3dcore.c::get_light_source_unit_vector_"
          ]
        },
        {
          "symbol": "3dcore.c::get_light_source_unit_vector_",
          "source": "E:\\library\\3dvisual\\3dcore.c",
          "first": "0x48c644",
          "second": "0x489360",
          "first_instruction_count": 118,
          "second_instruction_count": 118,
          "diff": [
            "--- 0x48c644",
            "+++ 0x489360",
            "@@ -3,37 +3,37 @@",
            " push ebp",
            " sub esp,0x8",
            " mov edx,m4[None+None*1+constant:00000000]",
            "-cmp edx,m4[None+None*1+0xafaebc]",
            "+cmp edx,m4[None+None*1+0xae556c]",
            " jne local:12",
            " mov ecx,m4[None+None*1+constant:00000040]",
            "-cmp ecx,m4[None+None*1+0xafaec0]",
            "+cmp ecx,m4[None+None*1+0xae5570]",
            " jne local:12",
            "-cmp m4[None+None*1+fx3dobj1.c::_compute_grid_object_intensities],0x0",
            "+cmp m4[None+None*1+3dobjs1.c::_compute_grid_object_intensities],0x0",
            " je local:113",
            " push edi",
            " push esi",
            " push ebx",
            "-mov eax,m4[None+None*1+0xafaebc]",
            "+mov eax,m4[None+None*1+0xae556c]",
            " shr eax,0x13",
            " adc eax,0x0",
            " mov eax,m4[None+eax*4+trig.c::_sin_cos_table]",
            " mov ebp,eax",
            " mov m4[esp+None*1+0xc],eax",
            "-mov eax,m4[None+None*1+0xafaebc]",
            "+mov eax,m4[None+None*1+0xae556c]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ebx,eax",
            " mov m4[esp+None*1+0x10],eax",
            "-mov eax,m4[None+None*1+0xafaec0]",
            "+mov eax,m4[None+None*1+0xae5570]",
            " shr eax,0x13",
            " adc eax,0x0",
            " mov eax,m4[None+eax*4+trig.c::_sin_cos_table]",
            " mov edi,eax",
            "-mov eax,m4[None+None*1+0xafaec0]",
            "+mov eax,m4[None+None*1+0xae5570]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ecx,eax",
            " mov esi,eax",
            " mov edx,eax",
            "@@ -53,18 +53,18 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,edx",
            "-mov m4[None+None*1+0xafd4b8],edx",
            "+mov m4[None+None*1+0xae975c],edx",
            " neg eax",
            "-mov m4[None+None*1+0xafd4b8],eax",
            "+mov m4[None+None*1+0xae975c],eax",
            " mov eax,edi",
            " mov edx,eax",
            "-mov m4[None+None*1+0xafd4bc],eax",
            "+mov m4[None+None*1+0xae9760],eax",
            " neg edx",
            "-mov m4[None+None*1+0xafd4bc],edx",
            "-call fx3dobj1.c::get_grid_object_intensity_values_",
            "-mov eax,m4[None+None*1+0xafaebc]",
            "+mov m4[None+None*1+0xae9760],edx",
            "+call 3dobjs1.c::get_grid_object_intensity_values_",
            "+mov eax,m4[None+None*1+0xae556c]",
            " mov m4[None+None*1+constant:00000000],eax",
            "-mov eax,m4[None+None*1+0xafaec0]",
            "+mov eax,m4[None+None*1+0xae5570]",
            " mov m4[None+None*1+constant:00000040],eax",
            " cmp eax,0xf8e38e39",
            " jle local:80",
            "@@ -76,7 +76,7 @@",
            " mov eax,0xf8e38e39",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov esi,eax",
            " mov eax,m4[esp+None*1+0xc]",
            " mov ebx,edi"
          ]
        },
        {
          "symbol": "3dcore.c::get_object_transformation_matrix_",
          "source": "E:\\library\\3dvisual\\3dcore.c",
          "first": "0x48c5d8",
          "second": "0x4892f4",
          "first_instruction_count": 27,
          "second_instruction_count": 27,
          "diff": [
            "--- 0x48c5d8",
            "+++ 0x4892f4",
            "@@ -3,23 +3,23 @@",
            " mov edx,m4[eax+None*1+0xc]",
            " mov m4[None+None*1+3dcore.c::_b_factors],edx",
            " mov edx,m4[eax+None*1+0x18]",
            "-mov m4[None+None*1+0xaff698],edx",
            "+mov m4[None+None*1+0xae9d18],edx",
            " mov edx,m4[eax+None*1+0x24]",
            "-mov m4[None+None*1+0xaff69c],edx",
            "+mov m4[None+None*1+0xae9d1c],edx",
            " mov edx,m4[eax+None*1+0x10]",
            "-mov m4[None+None*1+0xaff6a0],edx",
            "+mov m4[None+None*1+0xae9d20],edx",
            " mov edx,m4[eax+None*1+0x1c]",
            "-mov m4[None+None*1+0xaff6a4],edx",
            "+mov m4[None+None*1+0xae9d24],edx",
            " mov edx,m4[eax+None*1+0x28]",
            "-mov m4[None+None*1+0xaff6a8],edx",
            "+mov m4[None+None*1+0xae9d28],edx",
            " mov edx,m4[eax+None*1+0x14]",
            "-mov m4[None+None*1+0xaff6ac],edx",
            "+mov m4[None+None*1+0xae9d2c],edx",
            " mov edx,m4[eax+None*1+0x20]",
            " mov ebx,3dcore.c::_c_factors",
            "-mov m4[None+None*1+0xaff6b0],edx",
            "+mov m4[None+None*1+0xae9d30],edx",
            " mov eax,m4[eax+None*1+0x2c]",
            " mov edx,3dcore.c::_b_factors",
            "-mov m4[None+None*1+0xaff6b4],eax",
            "+mov m4[None+None*1+0xae9d34],eax",
            " mov eax,3dcore.c::_a_factors",
            " call matrix.c::mat_mul_3x3_3x3_",
            " pop edx"
          ]
        },
        {
          "symbol": "3dcore.c::initialise_3d_viewpoint_",
          "source": "E:\\library\\3dvisual\\3dcore.c",
          "first": "0x48bb74",
          "second": "0x488890",
          "first_instruction_count": 457,
          "second_instruction_count": 457,
          "diff": [
            "--- 0x48bb74",
            "+++ 0x488890",
            "@@ -16,15 +16,15 @@",
            " and cl,0x3",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            "-mov edx,m4[None+None*1+0xafaef4]",
            "+mov edx,m4[None+None*1+0xae55a4]",
            " mov eax,m4[None+None*1+3dcore.c::_vp]",
            "-call fxterr.c::get_terrain_elevation_",
            "-mov edx,m4[None+None*1+0xafaef8]",
            "+call terrain.c::get_terrain_elevation_",
            "+mov edx,m4[None+None*1+0xae55a8]",
            " mov m4[None+None*1+3dcore.c::_vp_elevation],eax",
            " cmp eax,edx",
            " jge local:413",
            " mov ecx,m4[None+None*1+3dcore.c::_vp_elevation]",
            "-mov eax,m4[None+None*1+0xafaef8]",
            "+mov eax,m4[None+None*1+0xae55a8]",
            " sub eax,ecx",
            " mov ebx,m4[None+None*1+3dcore.c::_vp]",
            " mov m4[None+None*1+3dcore.c::_vp_rel_alt],eax",
            "@@ -32,7 +32,7 @@",
            " jl local:416",
            " cmp ebx,0xfffffff",
            " jg local:416",
            "-mov edi,m4[None+None*1+0xafaef4]",
            "+mov edi,m4[None+None*1+0xae55a4]",
            " test edi,edi",
            " jl local:416",
            " cmp edi,0xfffffff",
            "@@ -43,14 +43,14 @@",
            " sar eax,0x16",
            " mov edx,m4[None+None*1+3dcore.c::_vp_x_sector]",
            " mov m4[None+None*1+3dcore.c::_vp_x_sector],eax",
            "-mov eax,m4[None+None*1+0xafaef4]",
            "+mov eax,m4[None+None*1+0xae55a4]",
            " sar eax,0x16",
            " mov ecx,m4[None+None*1+3dcore.c::_vp_y_sector]",
            " mov m4[None+None*1+3dcore.c::_vp_y_sector],eax",
            " mov eax,m4[None+None*1+3dcore.c::_vp]",
            " and eax,0x3fffff",
            " mov m4[None+None*1+3dcore.c::_vp_x_offset],eax",
            "-mov eax,m4[None+None*1+0xafaef4]",
            "+mov eax,m4[None+None*1+0xae55a4]",
            " and eax,0x3fffff",
            " mov m4[None+None*1+3dcore.c::_vp_y_offset],eax",
            " cmp edx,m4[None+None*1+3dcore.c::_vp_x_sector]",
            "@@ -62,7 +62,7 @@",
            " jl local:424",
            " cmp eax,0x3fffffff",
            " jg local:424",
            "-mov eax,m4[None+None*1+0xafaef4]",
            "+mov eax,m4[None+None*1+0xae55a4]",
            " add eax,0x18000000",
            " test eax,eax",
            " jl local:424",
            "@@ -77,7 +77,7 @@",
            " sar edx,0x1a",
            " mov ecx,m4[None+None*1+3dcore.c::_vp_y_sector_ss]",
            " mov m4[None+None*1+3dcore.c::_vp_x_sector_ss],edx",
            "-mov edx,m4[None+None*1+0xafaef4]",
            "+mov edx,m4[None+None*1+0xae55a4]",
            " and eax,0x3ffffff",
            " add edx,0x18000000",
            " mov m4[None+None*1+3dcore.c::_vp_x_offset_ss],eax",
            "@@ -91,7 +91,7 @@",
            " je local:426",
            " mov m4[None+None*1+3dcore.c::_new_super_sector],0x1",
            " mov ecx,0x24",
            "-mov esi,0xafaefc",
            "+mov esi,0xae55ac",
            " mov edi,3dcore.c::_a_factors",
            " mov ebx,3dcore.c::_vp_pitch",
            " mov edx,3dcore.c::_vp_heading",
            "@@ -104,7 +104,7 @@",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            " mov ecx,3dcore.c::_vp_roll",
            "-mov eax,0xafaefc",
            "+mov eax,0xae55ac",
            " call 3dcore.c::get_heading_pitch_roll_",
            " mov eax,m4[None+None*1+3dcore.c::_vp_heading]",
            " shr eax,0x13",
            "@@ -114,7 +114,7 @@",
            " mov eax,m4[None+None*1+3dcore.c::_vp_heading]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[None+None*1+3dcore.c::_vp_cosh],eax",
            " mov eax,m4[None+None*1+3dcore.c::_vp_pitch]",
            " shr eax,0x13",
            "@@ -124,7 +124,7 @@",
            " mov eax,m4[None+None*1+3dcore.c::_vp_pitch]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[None+None*1+3dcore.c::_vp_cosp],eax",
            " mov eax,m4[None+None*1+3dcore.c::_vp_roll]",
            " shr eax,0x13",
            "@@ -135,105 +135,105 @@",
            " mov edi,3dcore.c::_xgx_h",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,m4[None+None*1+3dcore.c::_a_factors]",
            " mov m4[None+None*1+3dcore.c::_vp_cosr],eax",
            " call 3dcore.asm::_subdiv_huge_grid",
            " mov edi,3dcore.c::_xgy_h",
            "-mov edx,m4[None+None*1+0xaff634]",
            "+mov edx,m4[None+None*1+0xae972c]",
            " call 3dcore.asm::_subdiv_huge_grid",
            " mov edi,3dcore.c::_ygx_h",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " call 3dcore.asm::_subdiv_huge_grid",
            " mov edi,3dcore.c::_ygy_h",
            "-mov edx,m4[None+None*1+0xaff640]",
            "+mov edx,m4[None+None*1+0xae9738]",
            " call 3dcore.asm::_subdiv_huge_grid",
            " mov edi,3dcore.c::_zgx_h",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xae9740]",
            " call 3dcore.asm::_subdiv_huge_grid",
            " mov edi,3dcore.c::_zgy_h",
            "-mov edx,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xae9744]",
            " call 3dcore.asm::_subdiv_huge_grid",
            " mov edi,3dcore.c::_xgx_l",
            " mov edx,m4[None+None*1+3dcore.c::_a_factors]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_xgy_l",
            "-mov edx,m4[None+None*1+0xaff634]",
            "+mov edx,m4[None+None*1+0xae972c]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_xgz_l",
            "-mov edx,m4[None+None*1+0xaff638]",
            "+mov edx,m4[None+None*1+0xae9730]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_ygx_l",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_ygy_l",
            "-mov edx,m4[None+None*1+0xaff640]",
            "+mov edx,m4[None+None*1+0xae9738]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_ygz_l",
            "-mov edx,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xae973c]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_zgx_l",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xae9740]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_zgy_l",
            "-mov edx,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xae9744]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_zgz_l",
            "-mov edx,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xae9748]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_xgx_m",
            " mov edx,m4[None+None*1+3dcore.c::_a_factors]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_xgy_m",
            "-mov edx,m4[None+None*1+0xaff634]",
            "+mov edx,m4[None+None*1+0xae972c]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_xgz_m",
            "-mov edx,m4[None+None*1+0xaff638]",
            "+mov edx,m4[None+None*1+0xae9730]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_ygx_m",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_ygy_m",
            "-mov edx,m4[None+None*1+0xaff640]",
            "+mov edx,m4[None+None*1+0xae9738]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_ygz_m",
            "-mov edx,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xae973c]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_zgx_m",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xae9740]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_zgy_m",
            "-mov edx,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xae9744]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_zgz_m",
            "-mov edx,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xae9748]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_xgx_s",
            " mov edx,m4[None+None*1+3dcore.c::_a_factors]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_xgy_s",
            "-mov edx,m4[None+None*1+0xaff634]",
            "+mov edx,m4[None+None*1+0xae972c]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_xgz_s",
            "-mov edx,m4[None+None*1+0xaff638]",
            "+mov edx,m4[None+None*1+0xae9730]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_ygx_s",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_ygy_s",
            "-mov edx,m4[None+None*1+0xaff640]",
            "+mov edx,m4[None+None*1+0xae9738]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_ygz_s",
            "-mov edx,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xae973c]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_zgx_s",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xae9740]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_zgy_s",
            "-mov edx,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xae9744]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_zgz_s",
            "-mov edx,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xae9748]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov ebp,m4[None+None*1+3dcore.c::_vp_x_offset]",
            " mov eax,m4[None+None*1+3dcore.c::_vp_y_offset]",
            "@@ -241,7 +241,7 @@",
            " mov edx,eax",
            " mov m4[esp+None*1+0x0],eax",
            " neg edx",
            "-mov eax,m4[None+None*1+0xafaef8]",
            "+mov eax,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x0],edx",
            " mov m4[esp+None*1+0x4],eax",
            " mov ecx,eax",
            "@@ -253,11 +253,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae972c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -270,15 +270,15 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " mov eax,ebp",
            " mov m4[None+None*1+3dcore.c::_vp_xeo],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xae9734]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -291,15 +291,15 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " mov eax,ebp",
            " mov m4[None+None*1+3dcore.c::_vp_yeo],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xae9740]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -315,7 +315,7 @@",
            " mov ebx,eax",
            " mov m4[esp+None*1+0x0],eax",
            " neg ebx",
            "-mov eax,m4[None+None*1+0xafaef8]",
            "+mov eax,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x0],ebx",
            " mov esi,eax",
            " mov m4[esp+None*1+0x4],eax",
            "@@ -327,11 +327,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae972c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -344,15 +344,15 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " mov eax,ebp",
            " mov m4[None+None*1+3dcore.c::_vp_xeo_ss],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xae9734]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -365,43 +365,43 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " mov eax,ebp",
            " mov m4[None+None*1+3dcore.c::_vp_yeo_ss],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov eax,m4[None+None*1+0xafaef8]",
            "-mov edi,m4[None+None*1+0xafaec8]",
            "+mov edx,m4[None+None*1+0xae9740]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov eax,m4[None+None*1+0xae55a8]",
            "+mov edi,m4[None+None*1+0xae5578]",
            " mov m4[None+None*1+3dcore.c::_vp_zeo_ss],edx",
            " cmp eax,edi",
            " jge local:431",
            " xor ecx,ecx",
            " mov m4[None+None*1+3dcore.c::_cloud_mode],ecx",
            " xor ebx,ebx",
            "-mov ah,m1[None+None*1+0xafaee4]",
            "+mov ah,m1[None+None*1+0xae5594]",
            " mov m4[None+None*1+3dcore.c::_draw_shadows],ebx",
            " test ah,0x8",
            " je local:405",
            "-cmp m4[None+None*1+0xafaec4],0x0",
            "+cmp m4[None+None*1+0xae5574],0x0",
            " jne local:405",
            "-cmp m4[None+None*1+0xafaec0],0xf8e38e39",
            "+cmp m4[None+None*1+0xae5570],0xf8e38e39",
            " jg local:405",
            " mov ebp,m4[None+None*1+3dcore.c::_cloud_mode]",
            " test ebp,ebp",
            " jne local:446",
            "-cmp m4[None+None*1+0xafaed8],0x0",
            "+cmp m4[None+None*1+0xae5588],0x0",
            " je local:437",
            " add esp,0x8",
            " pop ebp",
            "@@ -412,7 +412,7 @@",
            " pop ebx",
            " ret ",
            " add eax,0x100",
            "-mov m4[None+None*1+0xafaef8],eax",
            "+mov m4[None+None*1+0xae55a8],eax",
            " jmp local:25",
            " xor eax,eax",
            " jmp local:40",
            "@@ -429,7 +429,7 @@",
            " xor ebp,esi",
            " mov m4[None+None*1+3dcore.c::_new_super_sector],ebp",
            " jmp local:92",
            "-cmp eax,m4[None+None*1+0xafaecc]",
            "+cmp eax,m4[None+None*1+0xae557c]",
            " jge local:435",
            " mov m4[None+None*1+3dcore.c::_cloud_mode],0x1",
            " jmp local:391"
          ]
        },
        {
          "symbol": "3dline.c::clip_raw_3d_line_",
          "source": "E:\\library\\3dvisual\\3dline.c",
          "first": "0x48ca90",
          "second": "0x489760",
          "first_instruction_count": 131,
          "second_instruction_count": 131,
          "diff": [
            "--- 0x48ca90",
            "+++ 0x489760",
            "@@ -22,7 +22,7 @@",
            " cmp m4[eax+None*1+0x20],0x0",
            " je local:66",
            " mov ecx,0x28",
            "-mov edi,0x719128",
            "+mov edi,0x70b308",
            " mov esi,eax",
            " mov edx,m4[esp+None*1+0x4]",
            " push edi",
            "@@ -36,8 +36,8 @@",
            " mov eax,edi",
            " mov edx,m4[edx+None*1+0x0]",
            " call 3dline.c::clip_line_end_",
            "-mov ebx,m4[None+None*1+0x71912c]",
            "-mov eax,m4[None+None*1+0x719128]",
            "+mov ebx,m4[None+None*1+0x70b30c]",
            "+mov eax,m4[None+None*1+0x70b308]",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            " imul edx",
            "@@ -48,9 +48,9 @@",
            " cmp eax,m4[None+None*1+3dcore.c::_viewport_x_max_3d]",
            " jle local:50",
            " mov eax,m4[None+None*1+3dcore.c::_viewport_x_max_3d]",
            "-mov ebx,m4[None+None*1+0x71912c]",
            "-mov m4[None+None*1+0x719134],eax",
            "-mov eax,m4[None+None*1+0x719130]",
            "+mov ebx,m4[None+None*1+0x70b30c]",
            "+mov m4[None+None*1+0x70b314],eax",
            "+mov eax,m4[None+None*1+0x70b310]",
            " mov m4[esp+None*1+0x8],edi",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            "@@ -63,7 +63,7 @@",
            " cmp edx,m4[None+None*1+3dcore.c::_viewport_y_min_3d]",
            " jge local:65",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_y_min_3d]",
            "-mov m4[None+None*1+0x719138],edx",
            "+mov m4[None+None*1+0x70b318],edx",
            " mov eax,m4[esp+None*1+0x4]",
            " mov m4[eax+None*1+0x0],ebp",
            " mov eax,m4[esp+None*1+0x0]",
            "@@ -100,7 +100,7 @@",
            " mov eax,edi",
            " mov edx,m4[edx+None*1+0x0]",
            " call 3dline.c::clip_line_end_",
            "-mov ebx,m4[None+None*1+0x719104]",
            "+mov ebx,m4[None+None*1+0x70b2e4]",
            " mov eax,m4[None+None*1+vertex.c::_vertex_buffer]",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            "@@ -112,9 +112,9 @@",
            " cmp eax,m4[None+None*1+3dcore.c::_viewport_x_max_3d]",
            " jle local:114",
            " mov eax,m4[None+None*1+3dcore.c::_viewport_x_max_3d]",
            "-mov ebx,m4[None+None*1+0x719104]",
            "-mov m4[None+None*1+0x71910c],eax",
            "-mov eax,m4[None+None*1+0x719108]",
            "+mov ebx,m4[None+None*1+0x70b2e4]",
            "+mov m4[None+None*1+0x70b2ec],eax",
            "+mov eax,m4[None+None*1+0x70b2e8]",
            " mov ebp,edi",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            "@@ -127,5 +127,5 @@",
            " cmp edx,m4[None+None*1+3dcore.c::_viewport_y_min_3d]",
            " jge local:129",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_y_min_3d]",
            "-mov m4[None+None*1+0x719110],edx",
            "+mov m4[None+None*1+0x70b2f0],edx",
            " jmp local:20"
          ]
        },
        {
          "symbol": "3dline.c::draw_3d_line_",
          "source": "E:\\library\\3dvisual\\3dline.c",
          "first": "0x48c860",
          "second": "0x489580",
          "first_instruction_count": 51,
          "second_instruction_count": 25,
          "diff": [
            "--- 0x48c860",
            "+++ 0x489580",
            "@@ -1,51 +1,25 @@",
            " push ecx",
            " push esi",
            "-push edi",
            "-push ebp",
            "-mov esi,eax",
            "-mov edi,edx",
            "+mov ecx,eax",
            "+mov esi,edx",
            " call 3dline.c::clip_3d_line_",
            " test eax,eax",
            "-je local:33",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:38",
            "-push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "-push 0x4",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbLock@24",
            "-mov eax,m4[None+None*1+0x724310]",
            "-mov ebp,m4[edi+None*1+0x10]",
            "-mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "-mov eax,m4[None+None*1+0x724314]",
            "-mov edx,m4[edi+None*1+0xc]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+jne local:10",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+push edi",
            "+mov edx,m4[esi+None*1+0x10]",
            " xor eax,eax",
            "-mov ecx,m4[esi+None*1+0xc]",
            "+mov edi,m4[ecx+None*1+0x10]",
            " mov al,bl",
            "-mov ebx,m4[esi+None*1+0x10]",
            "-mov esi,ebp",
            "-call line.asm::_draw_glide_line",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbUnlock@8",
            "-pop ebp",
            "+mov ecx,m4[ecx+None*1+0xc]",
            "+mov ebx,m4[esi+None*1+0xc]",
            "+mov esi,edx",
            "+mov edx,ebx",
            "+mov ebx,edi",
            "+call line.asm::_draw_line",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            "-mov ebp,m4[edi+None*1+0x10]",
            "-mov edx,m4[edi+None*1+0xc]",
            "-xor eax,eax",
            "-mov ecx,m4[esi+None*1+0xc]",
            "-mov al,bl",
            "-mov ebx,m4[esi+None*1+0x10]",
            "-mov esi,ebp",
            "-call line.asm::_draw_line",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret "
          ]
        },
        {
          "symbol": "3dpal.c::get_light_adjusted_colours_",
          "source": "E:\\library\\3dvisual\\3dpal.c",
          "first": "0x48df4c",
          "second": "0x48ac04",
          "first_instruction_count": 33,
          "second_instruction_count": 33,
          "diff": [
            "--- 0x48df4c",
            "+++ 0x48ac04",
            "@@ -17,13 +17,13 @@",
            " fmul st(1)",
            " xor eax,eax",
            " fstp m4[ebx+None*1+0x0]",
            "-mov al,m1[edx+None*1+0x707491]",
            "+mov al,m1[edx+None*1+0x6f9ca1]",
            " mov m4[esp+None*1+0x8],eax",
            " fild m2[esp+None*1+0x8]",
            " fmul st(1)",
            " xor eax,eax",
            " fstp m4[ebx+None*1+0x4]",
            "-mov al,m1[edx+None*1+0x707492]",
            "+mov al,m1[edx+None*1+0x6f9ca2]",
            " mov m4[esp+None*1+0x8],eax",
            " fild m2[esp+None*1+0x8]",
            " fmulp st(1)"
          ]
        },
        {
          "symbol": "3dpal.c::initialise_3d_palette_",
          "source": "E:\\library\\3dvisual\\3dpal.c",
          "first": "0x48d044",
          "second": "0x489d14",
          "first_instruction_count": 778,
          "second_instruction_count": 779,
          "diff": [
            "--- 0x48d044",
            "+++ 0x489d14",
            "@@ -210,7 +210,7 @@",
            " mov m4[esp+None*1+0xcc],ecx",
            " cmp ecx,0xc",
            " jl local:202",
            "-call fxterr.c::initialise_terrain_palette_",
            "+call terrain.c::initialise_terrain_palette_",
            " mov ebx,text:'GLASS.CMP'",
            " mov edx,m4[None+None*1+3dconfig.c::_visual_initialisation]",
            " mov eax,esp",
            "@@ -225,7 +225,7 @@",
            " call file.c::load_file_verbose_",
            " mov ah,0x9b",
            " mov m4[esp+None*1+0xcc],esi",
            "-mov m1[None+None*1+0xaffabb],ah",
            "+mov m1[None+None*1+0xaea16b],ah",
            " mov eax,m4[esp+None*1+0xcc]",
            " mov dl,m1[esp+None*1+0xcc]",
            " lea edi,m4[eax+None*1+0x1]",
            "@@ -248,11 +248,11 @@",
            " call memset::memset_",
            " mov dl,0xca",
            " xor ebx,ebx",
            "-mov m1[None+None*1+0xaffc2b],dl",
            "+mov m1[None+None*1+0xaea2db],dl",
            " mov dh,0xc8",
            " mov m4[esp+None*1+0xcc],ebx",
            "-mov m1[None+None*1+0xaffc9f],dh",
            "-mov m1[None+None*1+0xaffc8f],dh",
            "+mov m1[None+None*1+0xaea34f],dh",
            "+mov m1[None+None*1+0xaea33f],dh",
            " mov eax,m4[esp+None*1+0xcc]",
            " mov dl,m1[esp+None*1+0xcc]",
            " lea esi,m4[eax+None*1+0x1]",
            "@@ -268,9 +268,9 @@",
            " mov m4[esp+None*1+0xcc],ebp",
            " mov ebp,0x6",
            " mov ah,m1[ebp+None*1+palette.c::_original_rgb_values]",
            "-mov dl,m1[ebp+None*1+0x707792]",
            "-xor ebx,ebx",
            "-mov al,m1[ebp+None*1+0x707791]",
            "+mov dl,m1[ebp+None*1+0x6f9fa2]",
            "+xor ebx,ebx",
            "+mov al,m1[ebp+None*1+0x6f9fa1]",
            " movzx esi,dl",
            " mov bl,al",
            " mov al,ah",
            "@@ -293,7 +293,7 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " cmp dl,0x20",
            "-jae local:522",
            "+jae local:514",
            " mov eax,0x20",
            " sub eax,0x20",
            " xor edx,edx",
            "@@ -319,12 +319,12 @@",
            " mov m4[esp+None*1+0xcc],ecx",
            " mov ebx,m4[esp+None*1+0xcc]",
            " mov dh,m1[ebp+None*1+palette.c::_original_rgb_values]",
            "-mov al,m1[ebp+None*1+0x707791]",
            "-mov dl,m1[ebp+None*1+0x707792]",
            "+mov al,m1[ebp+None*1+0x6f9fa1]",
            "+mov dl,m1[ebp+None*1+0x6f9fa2]",
            " cmp ebx,0x2",
            "-jl local:535",
            "+jl local:527",
            " cmp ebx,0x47",
            "-jg local:535",
            "+jg local:527",
            " mov edi,0xe147ae1",
            " xor ebx,ebx",
            " mov ecx,0x4b851eb7",
            "@@ -350,7 +350,7 @@",
            " mov al,dl",
            " add al,0x5a",
            " cmp al,0xaa",
            "-jae local:529",
            "+jae local:521",
            " mov eax,0xaa",
            " sub eax,0x20",
            " xor ecx,ecx",
            "@@ -381,13 +381,13 @@",
            " mov eax,m4[esp+None*1+0xc8]",
            " mov ecx,m4[esp+None*1+0xc8]",
            " mov ebx,m4[esp+None*1+0xcc]",
            "-mov dh,m1[edx+None*1+0x707791]",
            "+mov dh,m1[edx+None*1+0x6f9fa1]",
            " mov al,m1[eax+None*1+palette.c::_original_rgb_values]",
            "-mov dl,m1[ecx+None*1+0x707792]",
            "+mov dl,m1[ecx+None*1+0x6f9fa2]",
            " cmp ebx,0x2",
            "-jl local:668",
            "+jl local:660",
            " cmp ebx,0x47",
            "-jg local:668",
            "+jg local:660",
            " xor ebx,ebx",
            " movzx esi,dl",
            " mov bl,dh",
            "@@ -412,7 +412,7 @@",
            " mov al,dl",
            " sub al,0x3c",
            " cmp al,0x96",
            "-jae local:661",
            "+jae local:653",
            " mov edx,0x96",
            " lea eax,m4[edx+None*1+0xffffffe0]",
            " xor ecx,ecx",
            "@@ -497,21 +497,13 @@",
            " mov ebx,0x2",
            " call palette.c::create_fader_",
            " mov m4[None+None*1+3dpal.c::_weather_fader],eax",
            "-cmp m4[None+None*1+0xafaed8],0x0",
            "-jne local:774",
            "+cmp m4[None+None*1+0xae5588],0x0",
            "+jne local:766",
            " mov ebx,0x14",
            " mov edx,0x87",
            " mov eax,3dpal.c::_clear_fog_colours",
            " xor ecx,ecx",
            " call palette.c::set_palette_colours_",
            "-mov eax,m4[None+None*1+0x707cb8]",
            "-mov m4[None+None*1+0x707cb0],eax",
            "-mov eax,m4[None+None*1+0x707cbc]",
            "-mov m4[None+None*1+0x707cb4],eax",
            "-mov eax,m4[None+None*1+0x707cb0]",
            "-mov m4[None+None*1+palette.c::_average_rgb_values],eax",
            "-mov eax,m4[None+None*1+0x707cb4]",
            "-mov m4[None+None*1+0x707cac],eax",
            " add esp,0xd4",
            " pop ebp",
            " pop edi",
            "@@ -521,23 +513,23 @@",
            " pop ebx",
            " ret ",
            " cmp dl,0xdf",
            "-jbe local:526",
            "+jbe local:518",
            " mov eax,0xdf",
            " jmp local:297",
            " xor eax,eax",
            " mov al,dl",
            " jmp local:297",
            " cmp al,0xdf",
            "-jbe local:533",
            "+jbe local:525",
            " mov eax,0xdf",
            " jmp local:354",
            " and eax,0xff",
            " jmp local:354",
            " mov edi,m4[esp+None*1+0xcc]",
            " cmp edi,0x9b",
            "-jl local:572",
            "+jl local:564",
            " cmp edi,0xa8",
            "-jg local:572",
            "+jg local:564",
            " mov edi,0xe147ae1",
            " xor ebx,ebx",
            " mov ecx,0x4b851eb7",
            "@@ -563,18 +555,18 @@",
            " mov al,dl",
            " sub al,0x82",
            " cmp al,0x20",
            "-jae local:568",
            "+jae local:560",
            " mov eax,0x20",
            " jmp local:354",
            " cmp al,0xdf",
            "-jbe local:533",
            "+jbe local:525",
            " mov eax,0xdf",
            " jmp local:354",
            " mov ebx,m4[esp+None*1+0xcc]",
            " cmp ebx,0xa8",
            "-jl local:613",
            "+jl local:605",
            " cmp ebx,0xc0",
            "-jg local:613",
            "+jg local:605",
            " mov edi,0xe147ae1",
            " xor ebx,ebx",
            " mov ecx,0x4b851eb7",
            "@@ -600,17 +592,17 @@",
            " mov al,dl",
            " add al,0xe8",
            " cmp al,0x20",
            "-jae local:606",
            "+jae local:598",
            " mov edx,0x20",
            " lea eax,m4[edx+None*1+0xffffffe0]",
            " jmp local:355",
            " cmp al,0xdf",
            "-jbe local:610",
            "+jbe local:602",
            " mov edx,0xdf",
            "-jmp local:604",
            "-xor edx,edx",
            "-mov dl,al",
            "-jmp local:604",
            "+jmp local:596",
            "+xor edx,edx",
            "+mov dl,al",
            "+jmp local:596",
            " mov edi,0xe147ae1",
            " xor ebx,ebx",
            " mov ecx,0x4b851eb7",
            "@@ -634,7 +626,7 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " cmp dl,0x20",
            "-jae local:644",
            "+jae local:636",
            " mov eax,0x20",
            " sub eax,0x20",
            " xor edx,edx",
            "@@ -643,7 +635,7 @@",
            " mov eax,edx",
            " jmp local:360",
            " cmp dl,0xdf",
            "-jbe local:653",
            "+jbe local:645",
            " mov eax,0xdf",
            " sub eax,0x20",
            " xor edx,edx",
            "@@ -660,7 +652,7 @@",
            " mov eax,edx",
            " jmp local:360",
            " cmp al,0xdf",
            "-jbe local:665",
            "+jbe local:657",
            " mov edx,0xdf",
            " jmp local:416",
            " xor edx,edx",
            "@@ -668,9 +660,9 @@",
            " jmp local:416",
            " mov edi,m4[esp+None*1+0xcc]",
            " cmp edi,0x9b",
            "-jl local:679",
            "+jl local:671",
            " cmp edi,0xa8",
            "-jg local:679",
            "+jg local:671",
            " mov edx,ebp",
            " mov eax,ebp",
            " sar edx,0x1f",
            "@@ -679,9 +671,9 @@",
            " jmp local:424",
            " mov ebx,m4[esp+None*1+0xcc]",
            " cmp ebx,0xa8",
            "-jl local:718",
            "+jl local:710",
            " cmp ebx,0xc0",
            "-jg local:718",
            "+jg local:710",
            " xor ebx,ebx",
            " movzx esi,dl",
            " mov bl,dh",
            "@@ -706,21 +698,21 @@",
            " mov al,dl",
            " add al,0xe8",
            " cmp al,0x20",
            "-jae local:712",
            "+jae local:704",
            " mov eax,0x20",
            " sub eax,0x20",
            " jmp local:417",
            " cmp al,0xdf",
            "-jbe local:716",
            "+jbe local:708",
            " mov eax,0xdf",
            "-jmp local:710",
            "+jmp local:702",
            " and eax,0xff",
            "-jmp local:710",
            "+jmp local:702",
            " mov edi,m4[esp+None*1+0xcc]",
            " cmp edi,0x87",
            "-jl local:726",
            "+jl local:718",
            " cmp edi,0x8a",
            "-jg local:726",
            "+jg local:718",
            " mov al,m1[esp+None*1+0xcc]",
            " sub al,0x84",
            " jmp local:424",
            "@@ -748,7 +740,7 @@",
            " mov al,dl",
            " sub al,0x3c",
            " cmp al,0x20",
            "-jae local:758",
            "+jae local:750",
            " mov eax,0x20",
            " sub eax,0x20",
            " xor edx,edx",
            "@@ -757,7 +749,7 @@",
            " mov eax,edx",
            " jmp local:422",
            " cmp al,0xdf",
            "-jbe local:767",
            "+jbe local:759",
            " mov eax,0xdf",
            " sub eax,0x20",
            " xor edx,edx",
            "@@ -775,4 +767,13 @@",
            " mov ebx,0x14",
            " mov edx,0x87",
            " mov eax,3dpal.c::_overcast_fog_colours",
            "-jmp local:504",
            "+xor ecx,ecx",
            "+call palette.c::set_palette_colours_",
            "+add esp,0xd4",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret "
          ]
        },
        {
          "symbol": "3dpal.c::sort_infra_red_colours_",
          "source": "E:\\library\\3dvisual\\3dpal.c",
          "first": "0x48dcf4",
          "second": "0x48a9ac",
          "first_instruction_count": 33,
          "second_instruction_count": 33,
          "diff": [
            "--- 0x48dcf4",
            "+++ 0x48a9ac",
            "@@ -1,5 +1,5 @@",
            " push edx",
            "-cmp m4[None+None*1+0xafaedc],0x2",
            "+cmp m4[None+None*1+0xae558c],0x2",
            " jne local:8",
            " mov edx,3dpal.c::_remap_mfd_ir_colours",
            " cmp edx,m4[None+None*1+3dpal.c::_current_remap_visual_colours]"
          ]
        },
        {
          "symbol": "3dpal.c::sort_sky_colours_",
          "source": "E:\\library\\3dvisual\\3dpal.c",
          "first": "0x48dc80",
          "second": "0x48a938",
          "first_instruction_count": 36,
          "second_instruction_count": 36,
          "diff": [
            "--- 0x48dc80",
            "+++ 0x48a938",
            "@@ -1,10 +1,10 @@",
            " push esi",
            "-cmp m4[None+None*1+0xafaed8],0x0",
            "+cmp m4[None+None*1+0xae5588],0x0",
            " jne local:13",
            " mov esi,3dpal.c::_clear_sky_colours",
            " cmp m4[None+None*1+3dcore.c::_cloud_mode],0x2",
            " jne local:9",
            "-test m1[None+None*1+0xafaee4],0x2",
            "+test m1[None+None*1+0xae5594],0x2",
            " je local:16",
            " mov esi,3dpal.c::_above_clouds_colours",
            " cmp esi,m4[None+None*1+3dpal.c::_current_sky_colours]",
            "@@ -14,7 +14,7 @@",
            " mov esi,m4[None+None*1+3dcore.c::_cloud_mode]",
            " mov esi,m4[None+esi*4+3dpal.c::_lookup_overcast_sky_colours]",
            " jmp local:4",
            "-cmp m4[None+None*1+0xafaed8],0x1",
            "+cmp m4[None+None*1+0xae5588],0x1",
            " je local:8",
            " cmp esi,m4[None+None*1+3dpal.c::_current_sky_colours]",
            " jne local:22"
          ]
        },
        {
          "symbol": "3dpal.c::update_infra_red_fader_",
          "source": "E:\\library\\3dvisual\\3dpal.c",
          "first": "0x48dd48",
          "second": "0x48aa00",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x48dd48",
            "+++ 0x48aa00",
            "@@ -1,6 +1,6 @@",
            " push ecx",
            " push edx",
            "-mov edx,m4[None+None*1+0xafaedc]",
            "+mov edx,m4[None+None*1+0xae558c]",
            " cmp edx,0x1",
            " jne local:11",
            " mov ecx,m4[None+None*1+3dpal.c::_infra_red_fader]"
          ]
        },
        {
          "symbol": "3dpal.c::update_time_of_day_fader_",
          "source": "E:\\library\\3dvisual\\3dpal.c",
          "first": "0x48dd80",
          "second": "0x48aa38",
          "first_instruction_count": 65,
          "second_instruction_count": 65,
          "diff": [
            "--- 0x48dd80",
            "+++ 0x48aa38",
            "@@ -7,11 +7,11 @@",
            " mov ebp,esp",
            " sub esp,0x1c",
            " and esp,0xfffffff8",
            "-cmp m4[None+None*1+0xafaedc],0x1",
            "+cmp m4[None+None*1+0xae558c],0x1",
            " je local:41",
            "-cmp m4[None+None*1+0xafaec4],0x0",
            "+cmp m4[None+None*1+0xae5574],0x0",
            " jl local:44",
            "-fild m4[None+None*1+0xafaec4]",
            "+fild m4[None+None*1+0xae5574]",
            " fst m8[esp+None*1+0x0]",
            " fcomp m8[None+None*1+constant:ec514014ae47dd41]",
            " fnstsw ax"
          ]
        },
        {
          "symbol": "3dpal.c::update_weather_fader_",
          "source": "E:\\library\\3dvisual\\3dpal.c",
          "first": "0x48dbd4",
          "second": "0x48a88c",
          "first_instruction_count": 53,
          "second_instruction_count": 53,
          "diff": [
            "--- 0x48dbd4",
            "+++ 0x48a88c",
            "@@ -3,7 +3,7 @@",
            " push edx",
            " push esi",
            " push ebp",
            "-mov ah,m1[None+None*1+0xafaee4]",
            "+mov ah,m1[None+None*1+0xae5594]",
            " xor esi,esi",
            " test ah,0x2",
            " je 3dpal.c::update_sun_glare_fader_+0x34",
            "@@ -13,8 +13,8 @@",
            " test eax,eax",
            " jne local:35",
            " mov dl,0xbb",
            "-mov eax,m4[None+None*1+0xafaec8]",
            "-mov ebp,m4[None+None*1+0xafaef8]",
            "+mov eax,m4[None+None*1+0xae5578]",
            "+mov ebp,m4[None+None*1+0xae55a8]",
            " mov bl,dl",
            " sub eax,ebp",
            " mov dh,dl",
            "@@ -23,7 +23,7 @@",
            " mov esi,0x1ffff",
            " sub esi,eax",
            " shl esi,0xe",
            "-mov eax,m4[None+None*1+0xafaed8]",
            "+mov eax,m4[None+None*1+0xae5588]",
            " cmp eax,0x2",
            " jne 3dpal.c::update_sun_glare_fader_+0xd5",
            " sar esi,0x1"
          ]
        },
        {
          "symbol": "3dpoint.c::set_3d_point_",
          "source": "E:\\library\\3dvisual\\3dpoint.c",
          "first": "0x48e130",
          "second": "0x48adf0",
          "first_instruction_count": 59,
          "second_instruction_count": 60,
          "diff": [
            "--- 0x48e130",
            "+++ 0x48adf0",
            "@@ -25,7 +25,6 @@",
            " ret ",
            " mov ebx,esi",
            " mov eax,ecx",
            "-movzx ebp,m1[esp+None*1+0x0]",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            " imul edx",
            "@@ -35,10 +34,10 @@",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_y_max_3d]",
            " sub edx,eax",
            " cmp edx,m4[None+None*1+3dcore.c::_viewport_y_min_3d]",
            "-jge local:39",
            "+jge local:38",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_y_min_3d]",
            " mov eax,edi",
            "-mov ecx,edx",
            "+mov ebp,edx",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            " imul edx",
            "@@ -47,11 +46,13 @@",
            " idiv ebx",
            " add eax,m4[None+None*1+3dcore.c::_viewport_x_min_3d]",
            " cmp eax,m4[None+None*1+3dcore.c::_viewport_x_max_3d]",
            "-jle local:51",
            "+jle local:50",
            " mov eax,m4[None+None*1+3dcore.c::_viewport_x_max_3d]",
            "+mov ecx,eax",
            " mov ebx,ebp",
            "-mov edx,ecx",
            "-call fxpoly1.c::set_point_",
            "+mov al,m1[esp+None*1+0x0]",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            " add esp,0x4",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "3dtext.c::fill_3d_perfect_textured_polygon_",
          "source": "E:\\library\\3dvisual\\3dtext.c",
          "first": "0x48e1e8",
          "second": "0x48aeb8",
          "first_instruction_count": 649,
          "second_instruction_count": 649,
          "diff": [
            "--- 0x48e1e8",
            "+++ 0x48aeb8",
            "@@ -6,7 +6,7 @@",
            " mov m4[esp+None*1+0xc],edx",
            " mov m4[esp+None*1+0x8],ebx",
            " mov eax,ecx",
            "-call fx3dpoly.c::clip_3d_polygon_",
            "+call 3dpoly.c::clip_3d_polygon_",
            " mov esi,eax",
            " test eax,eax",
            " jne local:16",
            "@@ -77,7 +77,7 @@",
            " mov eax,m4[ebp+None*1+0x0]",
            " cmp eax,0x5",
            " ja local:175",
            "-jmp m4[None+eax*4+3dpoint.c::set_3d_point_+0xa0]",
            "+jmp m4[None+eax*4+3dpoint.c::set_3d_point_+0xb0]",
            " mov eax,m4[ebp+None*1+0x8]",
            " mov m4[esp+None*1+0x50],eax",
            " mov eax,m4[None+None*1+polygon.asm::_scan_y_min]",
            "@@ -173,7 +173,7 @@",
            " mov m4[esp+None*1+0x18],edi",
            " cmp edi,ebp",
            " jbe local:89",
            "-inc m4[None+None*1+fxpoly1.c::_polygons_per_frame]",
            "+inc m4[None+None*1+polygon.c::_polygons_per_frame]",
            " pop edi",
            " add esp,0x88",
            " pop ebp"
          ]
        },
        {
          "symbol": "_clsewnt::__close_",
          "source": "_clsewnt",
          "first": "0x4cd0b1",
          "second": "0x4c04d0",
          "first_instruction_count": 52,
          "second_instruction_count": 52,
          "diff": [
            "--- 0x4cd0b1",
            "+++ 0x4c04d0",
            "@@ -32,7 +32,7 @@",
            " test edi,edi",
            " jne local:41",
            " push ecx",
            "-call m4[None+None*1+constant:d84a0d00]",
            "+call m4[None+None*1+constant:a0790c00]",
            " test eax,eax",
            " jne local:41",
            " mov eax,0x4"
          ]
        },
        {
          "symbol": "accsswnt::access_",
          "source": "accsswnt",
          "first": "0x4cfa82",
          "second": "0x4c2ed0",
          "first_instruction_count": 24,
          "second_instruction_count": 24,
          "diff": [
            "--- 0x4cfa82",
            "+++ 0x4c2ed0",
            "@@ -2,7 +2,7 @@",
            " push ecx",
            " mov ebx,edx",
            " push eax",
            "-call m4[None+None*1+constant:244d0d00]",
            "+call m4[None+None*1+constant:027c0c00]",
            " cmp eax,0xffffffff",
            " jne local:11",
            " call dosret::__set_errno_nt_"
          ]
        },
        {
          "symbol": "acquire.c::get_closest_air_target_in_sector_",
          "source": "E:\\apache\\source\\warmodel\\acquire.c",
          "first": "0x4635c4",
          "second": "0x463764",
          "first_instruction_count": 68,
          "second_instruction_count": 68,
          "diff": [
            "--- 0x4635c4",
            "+++ 0x463764",
            "@@ -49,7 +49,7 @@",
            " pop edx",
            " pop ecx",
            " ret 0x10",
            "-mov ecx,m4[ecx+None*1+0x6ab694]",
            "+mov ecx,m4[ecx+None*1+0x69e6a4]",
            " jmp local:18",
            " xor edx,edx",
            " jmp local:43"
          ]
        },
        {
          "symbol": "acquire.c::get_closest_ground_target_in_sector_",
          "source": "E:\\apache\\source\\warmodel\\acquire.c",
          "first": "0x46368c",
          "second": "0x46382c",
          "first_instruction_count": 65,
          "second_instruction_count": 65,
          "diff": [
            "--- 0x46368c",
            "+++ 0x46382c",
            "@@ -56,7 +56,7 @@",
            " pop edx",
            " pop ecx",
            " ret 0x10",
            "-mov ecx,m4[ecx+None*1+0x6ab694]",
            "+mov ecx,m4[ecx+None*1+0x69e6a4]",
            " jmp local:18",
            " xor edx,edx",
            " jmp local:50"
          ]
        },
        {
          "symbol": "acquire.c::get_closest_mobile_air_defense_target_in_sector_",
          "source": "E:\\apache\\source\\warmodel\\acquire.c",
          "first": "0x463890",
          "second": "0x463a30",
          "first_instruction_count": 79,
          "second_instruction_count": 79,
          "diff": [
            "--- 0x463890",
            "+++ 0x463a30",
            "@@ -62,7 +62,7 @@",
            " pop ecx",
            " pop ebx",
            " ret 0x10",
            "-mov ecx,m4[ecx+None*1+0x6ab694]",
            "+mov ecx,m4[ecx+None*1+0x69e6a4]",
            " jmp local:20",
            " xor eax,eax",
            " jmp local:57"
          ]
        },
        {
          "symbol": "acquire.c::get_random_air_target_in_sector_",
          "source": "E:\\apache\\source\\warmodel\\acquire.c",
          "first": "0x463750",
          "second": "0x4638f0",
          "first_instruction_count": 42,
          "second_instruction_count": 42,
          "diff": [
            "--- 0x463750",
            "+++ 0x4638f0",
            "@@ -33,7 +33,7 @@",
            " pop edx",
            " pop ecx",
            " ret 0x10",
            "-mov ecx,m4[ecx+None*1+0x6ab694]",
            "+mov ecx,m4[ecx+None*1+0x69e6a4]",
            " jmp local:11",
            " xor edx,edx",
            " jmp local:31"
          ]
        },
        {
          "symbol": "acquire.c::get_random_ground_target_in_sector_",
          "source": "E:\\apache\\source\\warmodel\\acquire.c",
          "first": "0x4637c4",
          "second": "0x463964",
          "first_instruction_count": 40,
          "second_instruction_count": 40,
          "diff": [
            "--- 0x4637c4",
            "+++ 0x463964",
            "@@ -29,7 +29,7 @@",
            " pop edx",
            " pop ecx",
            " ret 0x10",
            "-mov ecx,m4[ecx+None*1+0x6ab694]",
            "+mov ecx,m4[ecx+None*1+0x69e6a4]",
            " jmp local:11",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "acquire.c::get_random_mobile_air_defense_target_in_sector_",
          "source": "E:\\apache\\source\\warmodel\\acquire.c",
          "first": "0x463b5c",
          "second": "0x463cfc",
          "first_instruction_count": 78,
          "second_instruction_count": 78,
          "diff": [
            "--- 0x463b5c",
            "+++ 0x463cfc",
            "@@ -50,7 +50,7 @@",
            " pop ecx",
            " pop ebx",
            " ret 0x10",
            "-mov edx,m4[edx+None*1+0x6ab694]",
            "+mov edx,m4[edx+None*1+0x69e6a4]",
            " jmp local:20",
            " xor eax,eax",
            " mov al,m1[edx+None*1+0x2d]"
          ]
        },
        {
          "symbol": "airradar.c::draw_air_radar_object_",
          "source": "E:\\apache\\source\\radar\\airradar.c",
          "first": "0x440750",
          "second": "0x440ad0",
          "first_instruction_count": 88,
          "second_instruction_count": 88,
          "diff": [
            "--- 0x440750",
            "+++ 0x440ad0",
            "@@ -6,9 +6,9 @@",
            " lea ebx,m4[None+eax*4+0x0]",
            " sub ebx,eax",
            " shl ebx,0x4",
            "-mov eax,m4[ebx+None*1+0x5a4b68]",
            "-mov edi,m4[ebx+None*1+0x5a4b84]",
            "-mov edx,m4[ebx+None*1+0x5a4b6c]",
            "+mov eax,m4[ebx+None*1+0x597b78]",
            "+mov edi,m4[ebx+None*1+0x597b94]",
            "+mov edx,m4[ebx+None*1+0x597b7c]",
            " cmp edi,0x1",
            " jae local:24",
            " dec esi",
            "@@ -23,9 +23,9 @@",
            " pop ebx",
            " ret ",
            " ja local:35",
            "-mov ebx,m4[ebx+None*1+0x5a4b8c]",
            "+mov ebx,m4[ebx+None*1+0x597b9c]",
            " mov bx,m2[ebx+None*1+0x0]",
            "-mov esi,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov esi,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " and ebx,0xffff",
            " mov esi,m4[esi+ebx*4+0x0]",
            " mov esi,m4[esi+None*1+0xb4]",
            "@@ -35,8 +35,8 @@",
            " jmp m4[None+esi*4+airradar.c::reinsert_air_targets_into_target_list_+0x30]",
            " cmp edi,0x2",
            " jne local:13",
            "-mov ebx,m4[ebx+None*1+0x5a4b8c]",
            "-mov edi,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ebx,m4[ebx+None*1+0x597b9c]",
            "+mov edi,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov esi,m4[ebx+None*1+0x0]",
            " mov esi,m4[edi+esi*4+0x0]",
            " mov esi,m4[esi+None*1+0xb4]"
          ]
        },
        {
          "symbol": "airradar.c::plot_air_radar_",
          "source": "E:\\apache\\source\\radar\\airradar.c",
          "first": "0x440688",
          "second": "0x440a08",
          "first_instruction_count": 53,
          "second_instruction_count": 53,
          "diff": [
            "--- 0x440688",
            "+++ 0x440a08",
            "@@ -4,7 +4,7 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-mov eax,m4[None+None*1+0x5b3c6c]",
            "+mov eax,m4[None+None*1+0x5a6c7c]",
            " cmp eax,0x1",
            " jb local:38",
            " ja local:36",
            "@@ -14,8 +14,8 @@",
            " test ebx,ebx",
            " jle local:27",
            " xor ebx,ebx",
            "-mov ebp,m4[None+None*1+0x5b3c74]",
            "-cmp ebp,m4[ebx+None*1+0x5a4b8c]",
            "+mov ebp,m4[None+None*1+0x5a6c84]",
            "+cmp ebp,m4[ebx+None*1+0x597b9c]",
            " je local:41",
            " mov edx,0xd7",
            " mov eax,ecx",
            "@@ -37,7 +37,7 @@",
            " cmp eax,0x2",
            " je local:10",
            " xor edx,edx",
            "-mov m4[None+None*1+0x5b3c74],edx",
            "+mov m4[None+None*1+0x5a6c84],edx",
            " jmp local:10",
            " mov esi,ecx",
            " jmp local:22"
          ]
        },
        {
          "symbol": "airradar.c::scan_air_radar_",
          "source": "E:\\apache\\source\\radar\\airradar.c",
          "first": "0x440510",
          "second": "0x440890",
          "first_instruction_count": 104,
          "second_instruction_count": 104,
          "diff": [
            "--- 0x440510",
            "+++ 0x440890",
            "@@ -27,16 +27,16 @@",
            " shl ebp,0x4",
            " add ebp,airradar.c::_air_radar_targets",
            " imul esi,ecx,0x1c",
            "-cmp m4[esi+None*1+0x5b80b4],0x2",
            "+cmp m4[esi+None*1+0x5ab0c4],0x2",
            " jne local:78",
            "-mov eax,m4[esi+None*1+0x5b80a8]",
            "+mov eax,m4[esi+None*1+0x5ab0b8]",
            " sub eax,m4[ebx+None*1+0x0]",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            " cmp eax,m4[None+None*1+initrad.c::_air_radar_range]",
            " jge local:78",
            "-mov eax,m4[esi+None*1+0x5b80ac]",
            "+mov eax,m4[esi+None*1+0x5ab0bc]",
            " sub eax,m4[ebx+None*1+0x4]",
            " cdq ",
            " xor eax,edx",
            "@@ -47,28 +47,28 @@",
            " je local:98",
            " imul esi,ecx,0x1c",
            " mov edx,m4[ebx+None*1+0x0]",
            "-mov eax,m4[esi+None*1+0x5b80a8]",
            "+mov eax,m4[esi+None*1+0x5ab0b8]",
            " sub eax,edx",
            " mov edx,eax",
            " imul eax,edi,0x30",
            "-mov m4[eax+None*1+0x5a4b68],edx",
            "-mov edx,m4[esi+None*1+0x5b80ac]",
            "+mov m4[eax+None*1+0x597b78],edx",
            "+mov edx,m4[esi+None*1+0x5ab0bc]",
            " mov m4[esp+None*1+0x8],edx",
            " mov edx,m4[ebx+None*1+0x4]",
            " sub m4[esp+None*1+0x8],edx",
            " mov edx,m4[esp+None*1+0x8]",
            "-mov m4[eax+None*1+0x5a4b6c],edx",
            "-mov edx,m4[esi+None*1+0x5b80b0]",
            "+mov m4[eax+None*1+0x597b7c],edx",
            "+mov edx,m4[esi+None*1+0x5ab0c0]",
            " mov m4[esp+None*1+0x8],edx",
            " mov edx,m4[ebx+None*1+0x8]",
            " sub m4[esp+None*1+0x8],edx",
            " mov edx,m4[esp+None*1+0x8]",
            "-mov m4[eax+None*1+0x5a4b70],edx",
            "+mov m4[eax+None*1+0x597b80],edx",
            " mov edx,0x2",
            "-mov m4[eax+None*1+0x5a4b84],edx",
            "-mov m4[eax+None*1+0x5a4b88],edx",
            "-mov edx,m4[esi+None*1+0x5b80b8]",
            "-mov m4[eax+None*1+0x5a4b8c],edx",
            "+mov m4[eax+None*1+0x597b94],edx",
            "+mov m4[eax+None*1+0x597b98],edx",
            "+mov edx,m4[esi+None*1+0x5ab0c8]",
            "+mov m4[eax+None*1+0x597b9c],edx",
            " mov eax,ebp",
            " inc edi",
            " call tgtlist.c::insert_radar_target_",
            "@@ -96,7 +96,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov eax,m4[esi+None*1+0x5b80b8]",
            "+mov eax,m4[esi+None*1+0x5ab0c8]",
            " mov eax,m4[eax+None*1+0x40]",
            " and eax,0x6",
            " cmp eax,0x4"
          ]
        },
        {
          "symbol": "anim.c::InitInstance_",
          "source": "E:\\library\\animplay\\anim.c",
          "first": "0x46b510",
          "second": "0x46b6d0",
          "first_instruction_count": 214,
          "second_instruction_count": 214,
          "diff": [
            "--- 0x46b510",
            "+++ 0x46b6d0",
            "@@ -112,10 +112,10 @@",
            " mov ebx,m4[None+None*1+anim.c::_mhandle]",
            " push edi",
            " mov m4[None+None*1+anim.c::_Rect],edi",
            "-mov m4[None+None*1+0x6b3c14],edi",
            "-push ebx",
            "-mov m4[None+None*1+0x6b3c18],eax",
            "-mov m4[None+None*1+0x6b3c1c],edx",
            "+mov m4[None+None*1+0x6a6b24],edi",
            "+push ebx",
            "+mov m4[None+None*1+0x6a6b28],eax",
            "+mov m4[None+None*1+0x6a6b2c],edx",
            " call LINKER MODULE::_Movie_GetYSize",
            " add esp,0x4",
            " push eax"
          ]
        },
        {
          "symbol": "anim.c::anim_play_",
          "source": "E:\\library\\animplay\\anim.c",
          "first": "0x46ad80",
          "second": "0x46af40",
          "first_instruction_count": 159,
          "second_instruction_count": 159,
          "diff": [
            "--- 0x46ad80",
            "+++ 0x46af40",
            "@@ -40,7 +40,7 @@",
            " xor eax,eax",
            " add eax,0x10",
            " xor edx,edx",
            "-mov m4[eax+None*1+0x6b3c24],edx",
            "+mov m4[eax+None*1+0x6a6c34],edx",
            " cmp eax,0x12c0",
            " jne local:40",
            " call anim.c::allocate_preread_data_",
            "@@ -49,7 +49,7 @@",
            " call timer.c::fast_clock_",
            " mov eax,m4[None+None*1+anim.c::_CurrentIndex]",
            " shl eax,0x4",
            "-mov eax,m4[eax+None*1+0x6b3c34]",
            "+mov eax,m4[eax+None*1+0x6a6c44]",
            " mov m4[None+None*1+anim.c::_current_frame_data],eax",
            " mov ebp,0x80",
            " mov ebx,0x1",
            "@@ -69,16 +69,16 @@",
            " je local:66",
            " mov eax,m4[None+None*1+anim.c::_CurrentIndex]",
            " shl eax,0x4",
            "-mov ecx,m4[eax+None*1+0x6b3c34]",
            "+mov ecx,m4[eax+None*1+0x6a6c44]",
            " mov m4[None+None*1+anim.c::_current_frame_data],ecx",
            " mov cl,m1[eax+None*1+anim.c::_preframes]",
            " mov m1[None+None*1+anim.c::_anim_flags],cl",
            "-mov ecx,m4[eax+None*1+0x6b3c34]",
            "+mov ecx,m4[eax+None*1+0x6a6c44]",
            " mov m4[None+None*1+anim.c::_BufData],ecx",
            " test m1[eax+None*1+anim.c::_preframes],0x20",
            " je local:117",
            " mov ecx,m4[None+None*1+anim.c::_BufData]",
            "-mov eax,m4[eax+None*1+0x6b3c30]",
            "+mov eax,m4[eax+None*1+0x6a6c40]",
            " mov m4[None+None*1+anim.c::_run_palette],ecx",
            " add ecx,eax",
            " mov m4[None+None*1+anim.c::_BufData],ecx"
          ]
        },
        {
          "symbol": "anim.c::preread_first_frames_",
          "source": "E:\\library\\animplay\\anim.c",
          "first": "0x46b0a0",
          "second": "0x46b260",
          "first_instruction_count": 113,
          "second_instruction_count": 113,
          "diff": [
            "--- 0x46b0a0",
            "+++ 0x46b260",
            "@@ -31,7 +31,7 @@",
            " jne local:56",
            " mov ebx,m4[None+None*1+anim.c::_preread_buffer_data]",
            " mov ebp,m4[None+None*1+anim.c::_current_write_data]",
            "-mov eax,m4[esi+None*1+0x6b3c2c]",
            "+mov eax,m4[esi+None*1+0x6a6c3c]",
            " sub ebp,ebx",
            " add eax,ebp",
            " cmp eax,0x100000",
            "@@ -39,11 +39,11 @@",
            " mov eax,m4[esp+None*1+0x0]",
            " mov edi,0x2",
            " mov m4[None+None*1+anim.c::_current_write_data],ebx",
            "-mov m4[esi+None*1+0x6b3c34],ebx",
            "+mov m4[esi+None*1+0x6a6c44],ebx",
            " mov m4[None+None*1+anim.c::_CurrentPreread],eax",
            " mov m4[None+None*1+anim.c::_NumberPreread],eax",
            " mov m4[None+None*1+anim.c::_Totalread],eax",
            "-mov eax,m4[esi+None*1+0x6b3c2c]",
            "+mov eax,m4[esi+None*1+0x6a6c3c]",
            " mov m4[None+None*1+anim.c::_preread_state],edi",
            " mov m4[None+None*1+anim.c::_preread_length_left],eax",
            " add esp,0x4",
            "@@ -64,13 +64,13 @@",
            " push 0x15c",
            " mov ecx,text:'\\\\library\\\\animplay\\\\anim.c'",
            " mov eax,m4[None+None*1+anim.c::_current_write_data]",
            "-mov ebx,m4[esi+None*1+0x6b3c2c]",
            "+mov ebx,m4[esi+None*1+0x6a6c3c]",
            " mov edx,eax",
            "-mov m4[esi+None*1+0x6b3c34],eax",
            "+mov m4[esi+None*1+0x6a6c44],eax",
            " mov eax,m4[None+None*1+anim.c::_anim_file]",
            " call file.c::read_file_verbose_",
            " mov ebp,m4[None+None*1+anim.c::_current_write_data]",
            "-mov eax,m4[esi+None*1+0x6b3c2c]",
            "+mov eax,m4[esi+None*1+0x6a6c3c]",
            " add edi,0x10",
            " add ebp,eax",
            " mov eax,m4[esp+None*1+0x0]"
          ]
        },
        {
          "symbol": "animsys.c::AnimUnblock_",
          "source": "E:\\library\\animplay\\animsys.c",
          "first": "0x46bdb0",
          "second": "0x46bf70",
          "first_instruction_count": 1689,
          "second_instruction_count": 1689,
          "diff": [
            "--- 0x46bdb0",
            "+++ 0x46bf70",
            "@@ -10,21 +10,21 @@",
            " mov m4[esp+None*1+0x8],eax",
            " xor eax,eax",
            " mov ecx,m4[None+None*1+anim.c::_BufData]",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " xor edx,edx",
            " shl eax,0x3",
            " mov m4[esp+None*1+0x4],edx",
            " mov m4[esp+None*1+0x0],eax",
            " xor eax,eax",
            " mov ebx,m4[esp+None*1+0x4]",
            "-mov ax,m2[None+None*1+0x6b3c24]",
            "+mov ax,m2[None+None*1+0x6a6c34]",
            " cmp eax,ebx",
            " jle local:1680",
            " xor esi,esi",
            " mov m4[esp+None*1+0xc],esi",
            " xor eax,eax",
            " mov edi,m4[esp+None*1+0xc]",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " cmp eax,edi",
            " jg local:37",
            " mov eax,m4[esp+None*1+0x0]",
            "@@ -51,42 +51,42 @@",
            " mov eax,esi",
            " call memset::memset_",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " mov ebx,0x8",
            " add esi,eax",
            " mov edx,ebp",
            " mov eax,esi",
            " call memset::memset_",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " mov ebx,0x8",
            " add esi,eax",
            " mov edx,ebp",
            " mov eax,esi",
            " call memset::memset_",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " mov ebx,0x8",
            " add esi,eax",
            " mov edx,ebp",
            " mov eax,esi",
            " call memset::memset_",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " mov ebx,0x8",
            " add esi,eax",
            " mov edx,ebp",
            " mov eax,esi",
            " call memset::memset_",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " mov ebx,0x8",
            " add esi,eax",
            " mov edx,ebp",
            " mov eax,esi",
            " call memset::memset_",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " mov ebx,0x8",
            " add esi,eax",
            " mov edx,ebp",
            "@@ -94,7 +94,7 @@",
            " call memset::memset_",
            " xor eax,eax",
            " mov ebx,0x8",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " mov edx,ebp",
            " add eax,esi",
            " call memset::memset_",
            "@@ -147,7 +147,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " inc ebp",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -192,7 +192,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " inc ebp",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -237,7 +237,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " inc ebp",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -282,7 +282,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " inc ebp",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -327,7 +327,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " inc ebp",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -372,7 +372,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " inc ebp",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -417,7 +417,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " inc ebp",
            " lea edi,m4[esi+eax*1+0x0]",
            " mov eax,ebp",
            "@@ -510,7 +510,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x2",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -555,7 +555,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x2",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -600,7 +600,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x2",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -645,7 +645,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x2",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -690,7 +690,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x2",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -735,7 +735,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x2",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -782,7 +782,7 @@",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            " add ecx,0x14",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x2",
            " lea edi,m4[esi+eax*1+0x0]",
            " mov eax,ebp",
            "@@ -873,7 +873,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x3",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -918,7 +918,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x3",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -963,7 +963,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x3",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -1008,7 +1008,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x3",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -1053,7 +1053,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x3",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -1098,7 +1098,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x3",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -1143,7 +1143,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x3",
            " lea edi,m4[esi+eax*1+0x0]",
            " mov eax,ebp",
            "@@ -1236,7 +1236,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x4",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -1281,7 +1281,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x4",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -1326,7 +1326,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x4",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -1371,7 +1371,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x4",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -1416,7 +1416,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x4",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -1461,7 +1461,7 @@",
            " mov al,m1[ebx+edx*1+0x0]",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x4",
            " add esi,eax",
            " mov eax,ebp",
            "@@ -1508,7 +1508,7 @@",
            " mov m1[edi+None*1+0x7],al",
            " xor eax,eax",
            " add ecx,0x30",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " add ebp,0x4",
            " lea edi,m4[esi+eax*1+0x0]",
            " mov eax,ebp",
            "@@ -1614,7 +1614,7 @@",
            " mov m1[esi+None*1+0x7],dl",
            " inc eax",
            " xor edx,edx",
            "-mov dx,m2[None+None*1+0x6b3c22]",
            "+mov dx,m2[None+None*1+0x6a6c32]",
            " add ebx,ebx",
            " add esi,edx",
            " cmp ebx,0x100",
            "@@ -1667,7 +1667,7 @@",
            " mov m1[esi+None*1+0x7],dl",
            " xor edx,edx",
            " inc eax",
            "-mov dx,m2[None+None*1+0x6b3c22]",
            "+mov dx,m2[None+None*1+0x6a6c32]",
            " inc ebx",
            " add esi,edx",
            " cmp ebx,0x8"
          ]
        },
        {
          "symbol": "animsys.c::AnimUndelta_",
          "source": "E:\\library\\animplay\\animsys.c",
          "first": "0x46ba88",
          "second": "0x46bc48",
          "first_instruction_count": 314,
          "second_instruction_count": 314,
          "diff": [
            "--- 0x46ba88",
            "+++ 0x46bc48",
            "@@ -7,8 +7,8 @@",
            " sub esp,0x4",
            " xor edx,edx",
            " xor eax,eax",
            "-mov dx,m2[None+None*1+0x6b3c22]",
            "-mov ax,m2[None+None*1+0x6b3c24]",
            "+mov dx,m2[None+None*1+0x6a6c32]",
            "+mov ax,m2[None+None*1+0x6a6c34]",
            " sar edx,0x3",
            " imul eax,edx",
            " mov edi,m4[None+None*1+anim.c::_BufData]",
            "@@ -18,12 +18,12 @@",
            " xor ebp,ebp",
            " mov eax,m4[eax+None*1+0x14]",
            " xor ecx,ecx",
            "-mov cx,m2[None+None*1+0x6b3c24]",
            "+mov cx,m2[None+None*1+0x6a6c34]",
            " cmp ebp,ecx",
            " jge local:302",
            " xor ecx,ecx",
            " xor ebx,ebx",
            "-mov bx,m2[None+None*1+0x6b3c22]",
            "+mov bx,m2[None+None*1+0x6a6c32]",
            " cmp ecx,ebx",
            " jl local:30",
            " inc ebp"
          ]
        },
        {
          "symbol": "animsys.c::OpenAnimScreen_",
          "source": "E:\\library\\animplay\\animsys.c",
          "first": "0x46b8c0",
          "second": "0x46ba80",
          "first_instruction_count": 20,
          "second_instruction_count": 20,
          "diff": [
            "--- 0x46b8c0",
            "+++ 0x46ba80",
            "@@ -1,11 +1,11 @@",
            " push edx",
            " mov eax,0x4",
            " call video.c::set_video_mode_",
            "-cmp m2[None+None*1+0x6b3c24],0xc8",
            "+cmp m2[None+None*1+0x6a6c34],0xc8",
            " jae local:16",
            " xor eax,eax",
            " mov edx,0xc8",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " call screen.c::create_screen_",
            " mov m4[None+None*1+animsys.c::_anim_screen],eax",
            " mov eax,m4[None+None*1+animsys.c::_anim_screen]",
            "@@ -16,5 +16,5 @@",
            " ret ",
            " xor edx,edx",
            " xor eax,eax",
            "-mov dx,m2[None+None*1+0x6b3c24]",
            "+mov dx,m2[None+None*1+0x6a6c34]",
            " jmp local:7"
          ]
        },
        {
          "symbol": "animsys.c::PlotWholeAnimScreen_",
          "source": "E:\\library\\animplay\\animsys.c",
          "first": "0x46d010",
          "second": "0x46d1d0",
          "first_instruction_count": 24,
          "second_instruction_count": 24,
          "diff": [
            "--- 0x46d010",
            "+++ 0x46d1d0",
            "@@ -3,8 +3,8 @@",
            " push edi",
            " xor ecx,ecx",
            " xor eax,eax",
            "-mov cx,m2[None+None*1+0x6b3c24]",
            "-mov ax,m2[None+None*1+0x6b3c22]",
            "+mov cx,m2[None+None*1+0x6a6c34]",
            "+mov ax,m2[None+None*1+0x6a6c32]",
            " imul ecx,eax",
            " mov edi,m4[None+None*1+animsys.c::_anim_screen]",
            " mov esi,m4[None+None*1+anim.c::_BufData]"
          ]
        },
        {
          "symbol": "apnet.c::apnet_receive_",
          "source": "E:\\apache\\source\\apnet\\apnet.c",
          "first": "0x4309c8",
          "second": "0x430d48",
          "first_instruction_count": 2359,
          "second_instruction_count": 2359,
          "diff": [
            "--- 0x4309c8",
            "+++ 0x430d48",
            "@@ -23,7 +23,7 @@",
            " jne local:25",
            " cmp ecx,0xffffffff",
            " jne local:91",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " jne local:91",
            " cmp m4[None+None*1+apnet.c::_remote_connection_number],0xffffffff",
            " jne local:32",
            "@@ -57,16 +57,16 @@",
            " add eax,edx",
            " xor bh,bh",
            " mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            "-mov m1[eax+None*1+0x5a15e1],bh",
            "+mov m1[eax+None*1+0x5945f1],bh",
            " and edx,0xff",
            "-mov ecx,m4[eax+None*1+0x5a15e0]",
            "+mov ecx,m4[eax+None*1+0x5945f0]",
            " shl edx,0x8",
            "-mov m1[eax+None*1+0x5a1440],bh",
            "+mov m1[eax+None*1+0x594450],bh",
            " or ecx,edx",
            " mov edx,m4[esp+None*1+0x140]",
            "-mov m4[eax+None*1+0x5a15e0],ecx",
            "+mov m4[eax+None*1+0x5945f0],ecx",
            " mov edx,m4[edx+None*1+0x4c]",
            "-mov m4[eax+None*1+0x5a1484],edx",
            "+mov m4[eax+None*1+0x594494],edx",
            " mov eax,m4[esp+None*1+0x140]",
            " cmp m4[eax+None*1+0x4c],0x40",
            " jne local:99",
            "@@ -109,7 +109,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " jne local:91",
            " call net.c::check_network_",
            " call net.c::count_nodes_",
            "@@ -122,7 +122,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " jne local:91",
            " call net.c::check_network_",
            " call net.c::count_nodes_",
            "@@ -137,7 +137,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " jne local:91",
            " mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            " cmp edx,0xffffffff",
            "@@ -168,7 +168,7 @@",
            " shl eax,0x3",
            " mov edx,eax",
            " xor ch,ch",
            "-mov m1[edx+eax*4+0x5a1440],ch",
            "+mov m1[edx+eax*4+0x594450],ch",
            " mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            "@@ -179,13 +179,13 @@",
            " shl eax,0x2",
            " add eax,edx",
            " mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            "-mov m1[eax+None*1+0x5a15e1],ch",
            "+mov m1[eax+None*1+0x5945f1],ch",
            " and edx,0xff",
            "-mov ebx,m4[eax+None*1+0x5a15e0]",
            "+mov ebx,m4[eax+None*1+0x5945f0]",
            " shl edx,0x8",
            " or ebx,edx",
            " mov edx,m4[esp+None*1+0x140]",
            "-mov m4[eax+None*1+0x5a15e0],ebx",
            "+mov m4[eax+None*1+0x5945f0],ebx",
            " mov eax,m4[esp+None*1+0x13c]",
            " add edx,0x4",
            " mov eax,m4[eax+None*1+0x8]",
            "@@ -204,7 +204,7 @@",
            " call sprintf::sprintf_",
            " mov eax,m4[None+None*1+modemprf.c::_modem_messages_cursor_line_number]",
            " add esp,0x8",
            "-mov eax,m4[None+eax*4+0x518b84]",
            "+mov eax,m4[None+eax*4+0x50bb94]",
            " mov edx,esp",
            " call uoaccess.c::get_object_text_",
            " call _strcmp::strcmp_",
            "@@ -230,7 +230,7 @@",
            " jle local:214",
            " mov eax,text:'Found more than one other player. Select another channel'",
            " jmp local:213",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " jne local:91",
            " call gameflow.c::get_game_flow_",
            " cmp eax,0x5",
            "@@ -271,15 +271,15 @@",
            " pop ebx",
            " ret ",
            " xor esi,esi",
            "-mov m4[None+None*1+0x5a2fd4],esi",
            "+mov m4[None+None*1+0x595fe4],esi",
            " xor ecx,ecx",
            "-mov eax,m4[None+None*1+0x5a2fd4]",
            "+mov eax,m4[None+None*1+0x595fe4]",
            " mov edx,ecx",
            " mov eax,m4[None+eax*4+modemprf.c::_weather_buttons]",
            " call uoaccess.c::set_object_on_",
            "-mov edx,m4[None+None*1+0x5a2fd4]",
            "+mov edx,m4[None+None*1+0x595fe4]",
            " inc edx",
            "-mov m4[None+None*1+0x5a2fd4],edx",
            "+mov m4[None+None*1+0x595fe4],edx",
            " cmp edx,0x4",
            " jl local:275",
            " mov edx,0x1",
            "@@ -298,22 +298,22 @@",
            " pop ebx",
            " ret ",
            " xor ebx,ebx",
            "-mov m4[None+None*1+0x5a2fd4],ebx",
            "+mov m4[None+None*1+0x595fe4],ebx",
            " xor ecx,ecx",
            "-mov eax,m4[None+None*1+0x5a2fd4]",
            "+mov eax,m4[None+None*1+0x595fe4]",
            " mov edx,ecx",
            " mov eax,m4[None+eax*4+modemprf.c::_weather_buttons]",
            " call uoaccess.c::set_object_on_",
            "-mov edi,m4[None+None*1+0x5a2fd4]",
            "+mov edi,m4[None+None*1+0x595fe4]",
            " inc edi",
            "-mov m4[None+None*1+0x5a2fd4],edi",
            "+mov m4[None+None*1+0x595fe4],edi",
            " cmp edi,0x4",
            " jl local:302",
            " mov edx,0x1",
            "-mov eax,m4[None+None*1+0x518b7c]",
            "+mov eax,m4[None+None*1+0x50bb8c]",
            " call uoaccess.c::set_object_on_",
            " mov edx,m4[esp+None*1+0x140]",
            "-mov eax,m4[None+None*1+0x518b7c]",
            "+mov eax,m4[None+None*1+0x50bb8c]",
            " add edx,0x30",
            " call object.c::notify_",
            " mov esp,ebp",
            "@@ -325,21 +325,21 @@",
            " pop ebx",
            " ret ",
            " xor ecx,ecx",
            "-mov m4[None+None*1+0x5a2fd4],ecx",
            "-mov eax,m4[None+None*1+0x5a2fd4]",
            "+mov m4[None+None*1+0x595fe4],ecx",
            "+mov eax,m4[None+None*1+0x595fe4]",
            " mov edx,ecx",
            " mov eax,m4[None+eax*4+modemprf.c::_weather_buttons]",
            " call uoaccess.c::set_object_on_",
            "-mov ebx,m4[None+None*1+0x5a2fd4]",
            "+mov ebx,m4[None+None*1+0x595fe4]",
            " inc ebx",
            "-mov m4[None+None*1+0x5a2fd4],ebx",
            "+mov m4[None+None*1+0x595fe4],ebx",
            " cmp ebx,0x4",
            " jl local:328",
            " mov edx,0x1",
            "-mov eax,m4[None+None*1+0x518b80]",
            "+mov eax,m4[None+None*1+0x50bb90]",
            " call uoaccess.c::set_object_on_",
            " mov edx,m4[esp+None*1+0x140]",
            "-mov eax,m4[None+None*1+0x518b80]",
            "+mov eax,m4[None+None*1+0x50bb90]",
            " add edx,0x30",
            " call object.c::notify_",
            " mov esp,ebp",
            "@@ -351,22 +351,22 @@",
            " pop ebx",
            " ret ",
            " xor edx,edx",
            "-mov m4[None+None*1+0x5a2fd4],edx",
            "+mov m4[None+None*1+0x595fe4],edx",
            " xor ecx,ecx",
            "-mov eax,m4[None+None*1+0x5a2fd4]",
            "+mov eax,m4[None+None*1+0x595fe4]",
            " mov edx,ecx",
            " mov eax,m4[None+eax*4+modemprf.c::_weather_buttons]",
            " call uoaccess.c::set_object_on_",
            "-mov eax,m4[None+None*1+0x5a2fd4]",
            "+mov eax,m4[None+None*1+0x595fe4]",
            " inc eax",
            "-mov m4[None+None*1+0x5a2fd4],eax",
            "+mov m4[None+None*1+0x595fe4],eax",
            " cmp eax,0x4",
            " jl local:355",
            " mov edx,0x1",
            "-mov eax,m4[None+None*1+0x518b84]",
            "+mov eax,m4[None+None*1+0x50bb94]",
            " call uoaccess.c::set_object_on_",
            " mov edx,m4[esp+None*1+0x140]",
            "-mov eax,m4[None+None*1+0x518b84]",
            "+mov eax,m4[None+None*1+0x50bb94]",
            " add edx,0x30",
            " call object.c::notify_",
            " mov esp,ebp",
            "@@ -527,7 +527,7 @@",
            " pop ebx",
            " ret ",
            " mov edx,m4[esp+None*1+0x140]",
            "-mov eax,m4[None+None*1+0x5a2fd8]",
            "+mov eax,m4[None+None*1+0x595fe8]",
            " mov m4[edx+None*1+0x38],eax",
            " add edx,0x30",
            " mov eax,m4[None+None*1+misssel.c::_mission_selection_load_button]",
            "@@ -544,7 +544,7 @@",
            " mov edx,m4[esp+None*1+0x140]",
            " mov eax,m4[eax+None*1+0x38]",
            " add edx,0x30",
            "-mov m4[None+None*1+0x5a2fd8],eax",
            "+mov m4[None+None*1+0x595fe8],eax",
            " call misssel.c::update_mission_select_info_box_",
            " mov eax,m4[None+None*1+misssel.c::_mission_selection_list]",
            " call misssel.c::notify_mission_selection_list_",
            "@@ -601,7 +601,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-or m1[edx+eax*4+0x5a15e2],0x1",
            "+or m1[edx+eax*4+0x5945f2],0x1",
            " xor eax,eax",
            " call network.c::set_network_buttons_",
            " mov esp,ebp",
            "@@ -617,7 +617,7 @@",
            " mov edi,m4[None+None*1+apnet.c::_my_connection_number]",
            " cmp edi,m4[None+None*1+apnet.c::_remote_connection_number]",
            " je local:91",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " mov eax,m4[None+None*1+apnet.c::_remote_connection_number]",
            " cmp m4[None+eax*4+apnet.c::_connections_init_synced],0x0",
            "@@ -653,7 +653,7 @@",
            " shl eax,0x3",
            " mov edx,eax",
            " xor bl,bl",
            "-mov m1[edx+eax*4+0x5a1440],bl",
            "+mov m1[edx+eax*4+0x594450],bl",
            " mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            "@@ -664,13 +664,13 @@",
            " shl eax,0x2",
            " add eax,edx",
            " mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            "-mov m1[eax+None*1+0x5a15e1],bl",
            "+mov m1[eax+None*1+0x5945f1],bl",
            " and edx,0xff",
            "-mov edi,m4[eax+None*1+0x5a15e0]",
            "+mov edi,m4[eax+None*1+0x5945f0]",
            " shl edx,0x8",
            " or edi,edx",
            " mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            "-mov m4[eax+None*1+0x5a15e0],edi",
            "+mov m4[eax+None*1+0x5945f0],edi",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            " shl eax,0x2",
            "@@ -715,7 +715,7 @@",
            " mov eax,m4[None+None*1+apnet.c::_remote_connection_number]",
            " cmp eax,esi",
            " je local:91",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " cmp m4[None+eax*4+apnet.c::_connections_synced],0x0",
            " jne local:91",
            "@@ -759,15 +759,15 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x140]",
            " mov eax,m4[eax+None*1+0x48]",
            "-mov m4[edx+None*1+0x5a1480],eax",
            "-mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            "-lea eax,m4[None+edx*4+0x0]",
            "-sub eax,edx",
            "-shl eax,0x2",
            "-sub eax,edx",
            "-shl eax,0x3",
            "-mov edx,eax",
            "-mov ecx,m4[edx+eax*4+0x5a1434]",
            "+mov m4[edx+None*1+0x594490],eax",
            "+mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            "+lea eax,m4[None+edx*4+0x0]",
            "+sub eax,edx",
            "+shl eax,0x2",
            "+sub eax,edx",
            "+shl eax,0x3",
            "+mov edx,eax",
            "+mov ecx,m4[edx+eax*4+0x594444]",
            " test ecx,ecx",
            " je local:823",
            " mov eax,m4[esp+None*1+0x140]",
            "@@ -842,7 +842,7 @@",
            " mov eax,m4[None+None*1+apnet.c::_remote_connection_number]",
            " cmp eax,esi",
            " je local:91",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " mov edx,eax",
            " shl eax,0x2",
            "@@ -855,7 +855,7 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x140]",
            " mov eax,m4[eax+None*1+0x188]",
            "-mov m4[edx+None*1+0x5a15c0],eax",
            "+mov m4[edx+None*1+0x5945d0],eax",
            " mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            "@@ -867,7 +867,7 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x140]",
            " mov eax,m4[eax+None*1+0x60]",
            "-mov m4[edx+None*1+0x5a1498],eax",
            "+mov m4[edx+None*1+0x5944a8],eax",
            " mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            "@@ -879,7 +879,7 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x140]",
            " mov eax,m4[eax+None*1+0x70]",
            "-mov m4[edx+None*1+0x5a14a8],eax",
            "+mov m4[edx+None*1+0x5944b8],eax",
            " mov eax,m4[esp+None*1+0x140]",
            " mov edx,m4[eax+None*1+0x60]",
            " cmp edx,0x1",
            "@@ -893,7 +893,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov eax,m4[edx+eax*4+0x5a15c0]",
            "+mov eax,m4[edx+eax*4+0x5945d0]",
            " cmp eax,0x1",
            " jb local:91",
            " jbe local:964",
            "@@ -910,7 +910,7 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x140]",
            " mov eax,m4[eax+None*1+0x18c]",
            "-mov m4[edx+None*1+0x5a15c4],eax",
            "+mov m4[edx+None*1+0x5945d4],eax",
            " mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            "@@ -922,7 +922,7 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x140]",
            " mov eax,m4[eax+None*1+0x190]",
            "-mov m4[edx+None*1+0x5a15c8],eax",
            "+mov m4[edx+None*1+0x5945d8],eax",
            " mov esp,ebp",
            " pop ebp",
            " pop edi",
            "@@ -996,7 +996,7 @@",
            " mov esi,m4[None+None*1+apnet.c::_my_connection_number]",
            " cmp esi,m4[None+None*1+apnet.c::_remote_connection_number]",
            " je local:91",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " cmp m4[None+None*1+gamedata.c::_game_mode],0x3",
            " jne local:1018",
            "@@ -1006,7 +1006,7 @@",
            " sub eax,esi",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov eax,m4[edx+eax*4+0x5a1434]",
            "+mov eax,m4[edx+eax*4+0x594444]",
            " call dweapons.c::drone_do_chaff_",
            " mov esp,ebp",
            " pop ebp",
            "@@ -1023,7 +1023,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov eax,m4[edx+eax*4+0x5a1434]",
            "+mov eax,m4[edx+eax*4+0x594444]",
            " call dweapons.c::drone_do_chaff_",
            " mov esp,ebp",
            " pop ebp",
            "@@ -1037,7 +1037,7 @@",
            " mov eax,m4[None+None*1+apnet.c::_remote_connection_number]",
            " cmp eax,edx",
            " je local:91",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " cmp m4[None+None*1+gamedata.c::_game_mode],0x3",
            " jne local:1059",
            "@@ -1047,7 +1047,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov eax,m4[edx+eax*4+0x5a1434]",
            "+mov eax,m4[edx+eax*4+0x594444]",
            " call dweapons.c::drone_do_flare_",
            " mov esp,ebp",
            " pop ebp",
            "@@ -1064,7 +1064,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov eax,m4[edx+eax*4+0x5a1434]",
            "+mov eax,m4[edx+eax*4+0x594444]",
            " call dweapons.c::drone_do_flare_",
            " mov esp,ebp",
            " pop ebp",
            "@@ -1077,7 +1077,7 @@",
            " mov eax,m4[esp+None*1+0x140]",
            " mov eax,m4[eax+None*1+0x18c]",
            " mov esi,m4[None+None*1+server.c::_server_connection_number]",
            "-mov m4[None+None*1+0x5a2fdc],eax",
            "+mov m4[None+None*1+0x595fec],eax",
            " cmp esi,m4[None+None*1+apnet.c::_my_connection_number]",
            " jne local:1110",
            " cmp m4[None+None*1+server.c::_client_server],0x0",
            "@@ -1111,9 +1111,9 @@",
            " mov ecx,m4[None+None*1+apnet.c::_my_connection_number]",
            " cmp ecx,m4[None+None*1+apnet.c::_remote_connection_number]",
            " je local:91",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "-je local:91",
            "-mov edx,m4[None+None*1+0x5a2fdc]",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            "+je local:91",
            "+mov edx,m4[None+None*1+0x595fec]",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            " shl eax,0x2",
            "@@ -1122,13 +1122,13 @@",
            " mov edx,eax",
            " shl eax,0x2",
            " add eax,edx",
            "-mov esi,m4[eax+None*1+0x5a1434]",
            "+mov esi,m4[eax+None*1+0x594444]",
            " test esi,esi",
            " je local:91",
            " mov edi,m4[esi+None*1+0x180]",
            " test edi,edi",
            " jne local:91",
            "-cmp ecx,m4[None+None*1+0x5a2fdc]",
            "+cmp ecx,m4[None+None*1+0x595fec]",
            " je local:1152",
            " cmp m4[None+None*1+server.c::_client_server],0x0",
            " jne local:1164",
            "@@ -1137,11 +1137,11 @@",
            " jae local:1177",
            " cmp eax,0x2",
            " jne local:91",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je local:1198",
            " xor eax,eax",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],eax",
            "-mov m4[None+None*1+fxgloop.c::_following_mate],eax",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],eax",
            "+mov m4[None+None*1+gameloop.c::_following_mate],eax",
            " mov esp,ebp",
            " pop ebp",
            " pop edi",
            "@@ -1153,7 +1153,7 @@",
            " call links.c::general_user_killed_",
            " cmp m4[None+None*1+gamedata.c::_game_mode],0x3",
            " jne local:91",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],edi",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],edi",
            " mov esp,ebp",
            " pop ebp",
            " pop edi",
            "@@ -1187,23 +1187,23 @@",
            " pop ebx",
            " ret ",
            " xor esi,esi",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],esi",
            "-mov esp,ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,m4[None+None*1+0x5a2fdc]",
            "-lea eax,m4[None+edx*4+0x0]",
            "-sub eax,edx",
            "-shl eax,0x2",
            "-sub eax,edx",
            "-shl eax,0x3",
            "-mov edx,eax",
            "-mov eax,m4[edx+eax*4+0x5a1434]",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],esi",
            "+mov esp,ebp",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+mov edx,m4[None+None*1+0x595fec]",
            "+lea eax,m4[None+edx*4+0x0]",
            "+sub eax,edx",
            "+shl eax,0x2",
            "+sub eax,edx",
            "+shl eax,0x3",
            "+mov edx,eax",
            "+mov eax,m4[edx+eax*4+0x594444]",
            " call multidr.c::remove_multi_drone_",
            " mov esp,ebp",
            " pop ebp",
            "@@ -1215,7 +1215,7 @@",
            " ret ",
            " cmp m4[None+None*1+server.c::_client_server],0x0",
            " jne local:91",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " mov edx,m4[None+None*1+apnet.c::_my_connection_number]",
            " cmp edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            "@@ -1256,15 +1256,15 @@",
            " ja local:1259",
            " jmp m4[None+eax*4+apnet.c::broadcast_find_connections_+0x174]",
            " xor ebx,ebx",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],ebx",
            "-mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            "-lea eax,m4[None+edx*4+0x0]",
            "-sub eax,edx",
            "-shl eax,0x2",
            "-sub eax,edx",
            "-shl eax,0x3",
            "-mov edx,eax",
            "-mov edx,m4[edx+eax*4+0x5a1434]",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],ebx",
            "+mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            "+lea eax,m4[None+edx*4+0x0]",
            "+sub eax,edx",
            "+shl eax,0x2",
            "+sub eax,edx",
            "+shl eax,0x3",
            "+mov edx,eax",
            "+mov edx,m4[edx+eax*4+0x594444]",
            " test edx,edx",
            " je local:91",
            " cmp m4[edx+None*1+0x180],0x0",
            "@@ -1285,22 +1285,22 @@",
            " mov eax,text:'No players!'",
            " jmp local:1251",
            " xor edi,edi",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],edi",
            "-mov esp,ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],edi",
            "+mov esp,ebp",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je local:1259",
            " xor edx,edx",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],edx",
            "-mov m4[None+None*1+fxgloop.c::_following_mate],edx",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],edx",
            "+mov m4[None+None*1+gameloop.c::_following_mate],edx",
            " jmp local:1259",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " mov esi,m4[None+None*1+apnet.c::_my_connection_number]",
            " cmp esi,m4[None+None*1+apnet.c::_remote_connection_number]",
            "@@ -1339,11 +1339,11 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-or m1[edx+eax*4+0x5a15e1],0xff",
            "+or m1[edx+eax*4+0x5945f1],0xff",
            " cmp m4[None+None*1+gamedata.c::_game_mode],0x3",
            " jne local:1346",
            " xor ecx,ecx",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],ecx",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],ecx",
            " mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            "@@ -1353,21 +1353,21 @@",
            " mov edx,eax",
            " shl eax,0x2",
            " add eax,edx",
            "-mov edx,m4[eax+None*1+0x5a1434]",
            "+mov edx,m4[eax+None*1+0x594444]",
            " test edx,edx",
            " je local:91",
            " cmp m4[edx+None*1+0x180],0x0",
            " jne local:91",
            "-mov ecx,m4[eax+None*1+0x5a15e0]",
            "+mov ecx,m4[eax+None*1+0x5945f0]",
            " shl ecx,0x10",
            " sar ecx,0x18",
            " cmp ecx,0xffffffff",
            " je local:91",
            " xor cl,cl",
            "-mov m1[eax+None*1+0x5a15e1],cl",
            "+mov m1[eax+None*1+0x5945f1],cl",
            " mov ch,cl",
            " or ch,0xfe",
            "-mov m1[eax+None*1+0x5a15e1],ch",
            "+mov m1[eax+None*1+0x5945f1],ch",
            " lea eax,m4[edx+None*1+0x8]",
            " call mobobjs.c::remove_mobile_object_",
            " mov esp,ebp",
            "@@ -1382,7 +1382,7 @@",
            " mov edx,0x3",
            " mov eax,text:'No players!'",
            " jmp local:1333",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " cmp m4[None+None*1+gamedata.c::_game_mode],0x3",
            " je local:1449",
            "@@ -1397,7 +1397,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov ebx,m4[edx+eax*4+0x5a1434]",
            "+mov ebx,m4[edx+eax*4+0x594444]",
            " test ebx,ebx",
            " je local:91",
            " mov esi,m4[esp+None*1+0x140]",
            "@@ -1424,7 +1424,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov edx,m4[edx+eax*4+0x5a1484]",
            "+mov edx,m4[edx+eax*4+0x594494]",
            " mov eax,ebx",
            " call multidr.c::revive_multi_drone_",
            " mov eax,m4[esp+None*1+0x140]",
            "@@ -1448,11 +1448,11 @@",
            " pop ebx",
            " ret ",
            " xor edi,edi",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],edi",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],edi",
            " jmp local:1388",
            " mov ecx,0x30",
            " jmp local:1411",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " mov edx,m4[None+None*1+apnet.c::_my_connection_number]",
            " cmp edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            "@@ -1481,7 +1481,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov eax,m4[edx+eax*4+0x5a1434]",
            "+mov eax,m4[edx+eax*4+0x594444]",
            " test eax,eax",
            " je local:91",
            " mov edi,m4[None+None*1+drone.c::_user_drone]",
            "@@ -1501,20 +1501,20 @@",
            " mov eax,0x3",
            " call dieflag.c::set_die_flag_",
            " jmp local:1476",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je local:1476",
            " xor ebx,ebx",
            "-mov m4[None+None*1+fxgloop.c::_following_mate],ebx",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],ebx",
            "+mov m4[None+None*1+gameloop.c::_following_mate],ebx",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],ebx",
            " jmp local:1476",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " mov ecx,m4[None+None*1+apnet.c::_my_connection_number]",
            " cmp ecx,m4[None+None*1+apnet.c::_remote_connection_number]",
            " je local:91",
            " mov eax,m4[esp+None*1+0x140]",
            " mov eax,m4[eax+None*1+0x18c]",
            "-mov m4[None+None*1+0x5a2fdc],eax",
            "+mov m4[None+None*1+0x595fec],eax",
            " cmp eax,ecx",
            " je local:1553",
            " mov eax,m4[esp+None*1+0x140]",
            "@@ -1560,7 +1560,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " mov edx,m4[None+None*1+apnet.c::_my_connection_number]",
            " cmp edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            "@@ -1570,11 +1570,11 @@",
            " jae local:1600",
            " cmp eax,0x2",
            " jne local:1577",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je local:1577",
            " xor esi,esi",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],esi",
            "-mov m4[None+None*1+fxgloop.c::_following_mate],esi",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],esi",
            "+mov m4[None+None*1+gameloop.c::_following_mate],esi",
            " mov edx,m4[esp+None*1+0x140]",
            " mov eax,m4[esp+None*1+0x140]",
            " mov edx,m4[edx+None*1+0x10]",
            "@@ -1600,14 +1600,14 @@",
            " ret ",
            " ja local:1604",
            " xor ecx,ecx",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],ecx",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],ecx",
            " jmp local:1577",
            " cmp eax,0x6",
            " je local:1572",
            " jmp local:1577",
            " cmp m4[None+None*1+server.c::_client_server],0x0",
            " jne local:91",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " mov edx,m4[None+None*1+apnet.c::_my_connection_number]",
            " mov eax,m4[None+None*1+apnet.c::_remote_connection_number]",
            "@@ -1644,7 +1644,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " mov ecx,m4[None+None*1+apnet.c::_my_connection_number]",
            " mov eax,m4[None+None*1+apnet.c::_remote_connection_number]",
            "@@ -1684,7 +1684,7 @@",
            " add eax,edx",
            " mov edx,m4[esp+None*1+0x140]",
            " mov edx,m4[edx+None*1+0x48]",
            "-mov m4[eax+None*1+0x5a1480],edx",
            "+mov m4[eax+None*1+0x594490],edx",
            " mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            "@@ -1696,9 +1696,9 @@",
            " add eax,edx",
            " mov edx,m4[esp+None*1+0x140]",
            " mov ecx,m4[edx+None*1+0x50]",
            "-mov m4[eax+None*1+0x5a1488],ecx",
            "+mov m4[eax+None*1+0x594498],ecx",
            " mov ecx,m4[edx+None*1+0x54]",
            "-mov m4[eax+None*1+0x5a148c],ecx",
            "+mov m4[eax+None*1+0x59449c],ecx",
            " mov eax,m4[esp+None*1+0x13c]",
            " mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            " fild m4[eax+None*1+0x234]",
            "@@ -1711,15 +1711,15 @@",
            " fxch st(0),st(1)",
            " fsub st(1)",
            " mov edx,eax",
            "-fstp m8[edx+eax*4+0x5a15d0]",
            "-mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            "-lea eax,m4[None+edx*4+0x0]",
            "-sub eax,edx",
            "-shl eax,0x2",
            "-sub eax,edx",
            "-shl eax,0x3",
            "-mov edx,eax",
            "-or m1[edx+eax*4+0x5a15e2],0x4",
            "+fstp m8[edx+eax*4+0x5945e0]",
            "+mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            "+lea eax,m4[None+edx*4+0x0]",
            "+sub eax,edx",
            "+shl eax,0x2",
            "+sub eax,edx",
            "+shl eax,0x3",
            "+mov edx,eax",
            "+or m1[edx+eax*4+0x5945f2],0x4",
            " mov edx,m4[esp+None*1+0x140]",
            " mov eax,m4[None+None*1+apnet.c::_remote_connection_number]",
            " mov ebx,m4[None+None*1+server.c::_client_average_frame_counter]",
            "@@ -1763,8 +1763,8 @@",
            " mov m4[edi+None*1+0x0],eax",
            " mov eax,m4[ebx+None*1+0xe]",
            " sar eax,0x10",
            "-mov esi,m4[None+None*1+fxgloop.c::_game_loop_active]",
            "-mov m4[edx+None*1+0x5a1484],eax",
            "+mov esi,m4[None+None*1+gameloop.c::_game_loop_active]",
            "+mov m4[edx+None*1+0x594494],eax",
            " test esi,esi",
            " jne local:1786",
            " add ebx,0x20",
            "@@ -1786,44 +1786,44 @@",
            " ret ",
            " mov eax,m4[esp+None*1+0x12c]",
            " shl eax,0x4",
            "-mov m4[edx+None*1+0x5a1450],eax",
            "+mov m4[edx+None*1+0x594460],eax",
            " mov eax,m4[esp+None*1+0x130]",
            " shl eax,0x4",
            "-mov m4[edx+None*1+0x5a1454],eax",
            "+mov m4[edx+None*1+0x594464],eax",
            " mov eax,m4[esp+None*1+0x134]",
            " shl eax,0x4",
            "-mov m4[edx+None*1+0x5a1458],eax",
            "+mov m4[edx+None*1+0x594468],eax",
            " mov eax,m4[esp+None*1+0x138]",
            "-mov m4[edx+None*1+0x5a1480],eax",
            "+mov m4[edx+None*1+0x594490],eax",
            " mov eax,m4[ebx+None*1+0x10]",
            " sar eax,0x10",
            "-mov m4[edx+None*1+0x5a145c],eax",
            "+mov m4[edx+None*1+0x59446c],eax",
            " mov eax,m4[ebx+None*1+0x12]",
            " sar eax,0x10",
            "-mov m4[edx+None*1+0x5a1460],eax",
            "+mov m4[edx+None*1+0x594470],eax",
            " mov eax,m4[ebx+None*1+0x14]",
            " sar eax,0x10",
            "-mov m4[edx+None*1+0x5a1464],eax",
            "+mov m4[edx+None*1+0x594474],eax",
            " mov eax,m4[ebx+None*1+0x16]",
            " sar eax,0x10",
            "-mov m4[edx+None*1+0x5a1468],eax",
            "+mov m4[edx+None*1+0x594478],eax",
            " mov eax,m4[ebx+None*1+0x18]",
            " sar eax,0x10",
            "-mov m4[edx+None*1+0x5a146c],eax",
            "+mov m4[edx+None*1+0x59447c],eax",
            " mov eax,m4[ebx+None*1+0x1a]",
            " sar eax,0x10",
            "-mov m4[edx+None*1+0x5a1470],eax",
            "+mov m4[edx+None*1+0x594480],eax",
            " mov eax,m4[ebx+None*1+0x1c]",
            " sar eax,0x10",
            "-mov m4[edx+None*1+0x5a1474],eax",
            "+mov m4[edx+None*1+0x594484],eax",
            " mov eax,m4[ebx+None*1+0x1e]",
            " sar eax,0x10",
            "-mov m4[edx+None*1+0x5a1478],eax",
            "+mov m4[edx+None*1+0x594488],eax",
            " mov eax,m4[ebx+None*1+0x20]",
            " mov esi,apnet.c::_multi_player_list",
            " sar eax,0x10",
            " add esi,edx",
            "-mov m4[edx+None*1+0x5a147c],eax",
            "+mov m4[edx+None*1+0x59448c],eax",
            " lea eax,m4[esi+None*1+0x2c]",
            " call vector.c::get_3d_normalised_unit_vector_",
            " lea eax,m4[esi+None*1+0x38]",
            "@@ -1857,7 +1857,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:1914",
            " mov eax,m4[None+None*1+server.c::_server_connection_number]",
            " call net.c::unregister_connection_",
            "@@ -1873,12 +1873,12 @@",
            " mov edx,eax",
            " shl eax,0x2",
            " add edx,eax",
            "-mov eax,m4[edx+None*1+0x5a1434]",
            "+mov eax,m4[edx+None*1+0x594444]",
            " test eax,eax",
            " je local:1899",
            " cmp m4[eax+None*1+0x180],0x0",
            " jne local:1899",
            "-mov edx,m4[edx+None*1+0x5a15e0]",
            "+mov edx,m4[edx+None*1+0x5945f0]",
            " shl edx,0x10",
            " sar edx,0x18",
            " cmp edx,0xffffffff",
            "@@ -1893,10 +1893,10 @@",
            " shl eax,0x3",
            " mov edx,eax",
            " xor cl,cl",
            "-mov m1[edx+eax*4+0x5a15e1],cl",
            "+mov m1[edx+eax*4+0x5945f1],cl",
            " mov ch,cl",
            " or ch,0xfe",
            "-mov m1[edx+eax*4+0x5a15e1],ch",
            "+mov m1[edx+eax*4+0x5945f1],ch",
            " mov eax,m4[None+None*1+server.c::_server_connection_number]",
            " call server.c::get_next_server_",
            " mov m4[None+None*1+server.c::_server_connection_number],eax",
            "@@ -1921,7 +1921,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " mov edx,m4[None+None*1+apnet.c::_remote_connection_number]",
            " lea eax,m4[None+edx*4+0x0]",
            "@@ -1932,12 +1932,12 @@",
            " mov edx,eax",
            " shl eax,0x2",
            " add edx,eax",
            "-mov eax,m4[edx+None*1+0x5a1434]",
            "+mov eax,m4[edx+None*1+0x594444]",
            " test eax,eax",
            " je local:1958",
            " cmp m4[eax+None*1+0x180],0x0",
            " jne local:1958",
            "-mov edx,m4[edx+None*1+0x5a15e0]",
            "+mov edx,m4[edx+None*1+0x5945f0]",
            " shl edx,0x10",
            " sar edx,0x18",
            " cmp edx,0xffffffff",
            "@@ -1952,10 +1952,10 @@",
            " shl eax,0x3",
            " mov edx,eax",
            " xor bl,bl",
            "-mov m1[edx+eax*4+0x5a15e1],bl",
            "+mov m1[edx+eax*4+0x5945f1],bl",
            " mov bh,bl",
            " or bh,0xfe",
            "-mov m1[edx+eax*4+0x5a15e1],bh",
            "+mov m1[edx+eax*4+0x5945f1],bh",
            " mov eax,m4[esp+None*1+0x140]",
            " add eax,0x4",
            " push eax",
            "@@ -1976,7 +1976,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:91",
            " mov eax,m4[None+None*1+apnet.c::_my_connection_number]",
            " mov m4[None+None*1+server.c::_server_connection_number],eax",
            "@@ -1997,7 +1997,7 @@",
            " add eax,0x8",
            " xor ecx,ecx",
            " mov m4[eax+None*1+server.c::_interpolated_frame_time],ecx",
            "-mov m4[eax+None*1+0x5a34d4],ecx",
            "+mov m4[eax+None*1+0x5964e4],ecx",
            " cmp eax,0x80",
            " jne local:1996",
            " call server.c::maintain_multi_player_list_",
            "@@ -2013,7 +2013,7 @@",
            " mov edx,m4[eax+None*1+0x50]",
            " mov m4[None+None*1+apnet.c::_network_ping_timer],edx",
            " mov edx,m4[eax+None*1+0x54]",
            "-mov m4[None+None*1+0x5a2fb4],edx",
            "+mov m4[None+None*1+0x595fc4],edx",
            " jmp local:1995",
            " call links.c::general_initialise_connection_",
            " mov eax,m4[esp+None*1+0x140]",
            "@@ -2085,7 +2085,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov eax,m4[edx+eax*4+0x5a15e0]",
            "+mov eax,m4[edx+eax*4+0x5945f0]",
            " shl eax,0xe",
            " sar eax,0x1f",
            " test eax,eax",
            "@@ -2099,15 +2099,15 @@",
            " mov edx,eax",
            " shl eax,0x2",
            " add eax,edx",
            "-mov edx,m4[eax+None*1+0x5a15e0]",
            "+mov edx,m4[eax+None*1+0x5945f0]",
            " shl edx,0xe",
            " sar edx,0x1f",
            " test edx,edx",
            " jne local:91",
            "-or m1[eax+None*1+0x5a15e2],0x2",
            "+or m1[eax+None*1+0x5945f2],0x2",
            " mov edx,m4[esp+None*1+0x140]",
            " mov edx,m4[edx+None*1+0x4c]",
            "-mov m4[eax+None*1+0x5a1484],edx",
            "+mov m4[eax+None*1+0x594494],edx",
            " mov esp,ebp",
            " pop ebp",
            " pop edi",
            "@@ -2224,14 +2224,14 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov eax,m4[edx+eax*4+0x5a15e0]",
            "+mov eax,m4[edx+eax*4+0x5945f0]",
            " mov ecx,text:'Flag'",
            " shl eax,0x18",
            " xor esi,esi",
            " sar eax,0x18",
            " mov edx,ecx",
            " mov eax,m4[None+eax*4+network.c::_login_slot_flag_result]",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],esi",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],esi",
            " call utext.c::set_object_text_",
            " mov esp,ebp",
            " pop ebp"
          ]
        },
        {
          "symbol": "apnet.c::broadcast_find_connections_",
          "source": "E:\\apache\\source\\apnet\\apnet.c",
          "first": "0x430824",
          "second": "0x430ba4",
          "first_instruction_count": 36,
          "second_instruction_count": 36,
          "diff": [
            "--- 0x430824",
            "+++ 0x430ba4",
            "@@ -17,7 +17,7 @@",
            " shl eax,0x3",
            " mov edx,eax",
            " push apnet.c::_my_current_apnet_name",
            "-mov eax,m4[edx+eax*4+0x5a1484]",
            "+mov eax,m4[edx+eax*4+0x594494]",
            " push text:'%s'",
            " mov m4[esp+None*1+0x5c],eax",
            " lea eax,m4[esp+None*1+0x14]"
          ]
        },
        {
          "symbol": "apnet.c::check_network_in_background_",
          "source": "E:\\apache\\source\\apnet\\apnet.c",
          "first": "0x4307b0",
          "second": "0x430b30",
          "first_instruction_count": 33,
          "second_instruction_count": 33,
          "diff": [
            "--- 0x4307b0",
            "+++ 0x430b30",
            "@@ -4,7 +4,7 @@",
            " push esi",
            " push edi",
            " sub esp,0x4",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " jne local:21",
            " mov eax,0x1",
            " mov m4[esp+None*1+0x0],eax",
            "@@ -21,7 +21,7 @@",
            " jmp local:17",
            " xor eax,eax",
            " jmp local:9",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " jne local:31",
            " mov eax,0x1",
            " mov m4[esp+None*1+0x0],eax"
          ]
        },
        {
          "symbol": "apnet.c::initialise_apnet_",
          "source": "E:\\apache\\source\\apnet\\apnet.c",
          "first": "0x430668",
          "second": "0x4309e8",
          "first_instruction_count": 79,
          "second_instruction_count": 79,
          "diff": [
            "--- 0x430668",
            "+++ 0x4309e8",
            "@@ -25,7 +25,7 @@",
            " mov eax,apnet.c::_my_current_apnet_name",
            " call strncpy::strncpy_",
            " xor ah,ah",
            "-mov m1[None+None*1+0x5a2fd1],ah",
            "+mov m1[None+None*1+0x595fe1],ah",
            " mov esi,0xffffffff",
            " mov ebx,apnet.c::_my_connection_number",
            " mov edx,0x2",
            "@@ -36,12 +36,12 @@",
            " xor eax,eax",
            " xor edx,edx",
            " add ecx,0x4",
            "-mov bl,m1[eax+None*1+0x5a15e2]",
            "+mov bl,m1[eax+None*1+0x5945f2]",
            " add eax,0x1b8",
            "-mov m4[ecx+None*1+0x5a13ec],edx",
            "+mov m4[ecx+None*1+0x5943fc],edx",
            " and bl,0xfc",
            "-mov m4[ecx+None*1+0x5a13ac],edx",
            "-mov m1[eax+None*1+0x5a142a],bl",
            "+mov m4[ecx+None*1+0x5943bc],edx",
            "+mov m1[eax+None*1+0x59443a],bl",
            " cmp ecx,0x40",
            " jne local:37",
            " mov ebx,server.c::_client_server"
          ]
        },
        {
          "symbol": "apnet.c::network_send_capture_the_flag_won_",
          "source": "E:\\apache\\source\\apnet\\apnet.c",
          "first": "0x433ab8",
          "second": "0x433e38",
          "first_instruction_count": 41,
          "second_instruction_count": 41,
          "diff": [
            "--- 0x433ab8",
            "+++ 0x433e38",
            "@@ -13,7 +13,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov eax,m4[edx+eax*4+0x5a15e0]",
            "+mov eax,m4[edx+eax*4+0x5945f0]",
            " shl eax,0x18",
            " mov ecx,0x1",
            " sar eax,0x18"
          ]
        },
        {
          "symbol": "apnet.c::network_send_player_position_",
          "source": "E:\\apache\\source\\apnet\\apnet.c",
          "first": "0x433020",
          "second": "0x4333a0",
          "first_instruction_count": 65,
          "second_instruction_count": 65,
          "diff": [
            "--- 0x433020",
            "+++ 0x4333a0",
            "@@ -27,7 +27,7 @@",
            " mov eax,m4[None+None*1+apnet.c::_my_connection_number]",
            " sub ebx,0x900",
            " mov m4[esp+None*1+0x24],eax",
            "-mov eax,m4[None+None*1+0x5b3c6c]",
            "+mov eax,m4[None+None*1+0x5a6c7c]",
            " mov m4[esp+None*1+0x34],ebx",
            " mov m4[esp+None*1+0x19c],eax",
            " test eax,eax",
            "@@ -35,7 +35,7 @@",
            " cmp eax,0x1",
            " jne local:57",
            " mov ecx,0xc",
            "-mov esi,0x5b3c5c",
            "+mov esi,0x5a6c6c",
            " lea edi,m4[esp+None*1+0x1a0]",
            " push edi",
            " mov eax,ecx",
            "@@ -55,7 +55,7 @@",
            " pop edi",
            " add esp,0x198",
            " ret ",
            "-mov esi,m4[None+None*1+0x5b3c74]",
            "+mov esi,m4[None+None*1+0x5a6c84]",
            " mov esi,m4[esi+None*1+0x3c]",
            " mov eax,m4[esi+None*1+0x5c]",
            " mov m4[esp+None*1+0x1a0],eax"
          ]
        },
        {
          "symbol": "apnet.c::network_wait_for_sync_",
          "source": "E:\\apache\\source\\apnet\\apnet.c",
          "first": "0x432e1c",
          "second": "0x43319c",
          "first_instruction_count": 50,
          "second_instruction_count": 50,
          "diff": [
            "--- 0x432e1c",
            "+++ 0x43319c",
            "@@ -38,7 +38,7 @@",
            " pop edx",
            " add eax,0x4",
            " xor edi,edi",
            "-mov m4[eax+None*1+0x5a13ac],edi",
            "+mov m4[eax+None*1+0x5943bc],edi",
            " cmp eax,0x40",
            " jne local:38",
            " mov m4[None+None*1+apnet.c::_number_synced],edi"
          ]
        },
        {
          "symbol": "apnet.c::notify_users_that_left_network_",
          "source": "E:\\apache\\source\\apnet\\apnet.c",
          "first": "0x43334c",
          "second": "0x4336cc",
          "first_instruction_count": 44,
          "second_instruction_count": 44,
          "diff": [
            "--- 0x43334c",
            "+++ 0x4336cc",
            "@@ -31,7 +31,7 @@",
            " call net.c::check_network_",
            " xor edx,edx",
            " pop ebx",
            "-cmp m4[ecx+None*1+0x744604],0x0",
            "+cmp m4[ecx+None*1+0x72f0d4],0x0",
            " jne local:37",
            " mov eax,edx",
            " call net.c::unregister_connection_"
          ]
        },
        {
          "symbol": "apnet.c::set_my_name_is_",
          "source": "E:\\apache\\source\\apnet\\apnet.c",
          "first": "0x432c84",
          "second": "0x433004",
          "first_instruction_count": 81,
          "second_instruction_count": 81,
          "diff": [
            "--- 0x432c84",
            "+++ 0x433004",
            "@@ -53,15 +53,15 @@",
            " add eax,edx",
            " xor dl,dl",
            " xor bl,bl",
            "-mov m1[eax+None*1+0x5a1440],dl",
            "+mov m1[eax+None*1+0x594450],dl",
            " mov edx,m4[None+None*1+apnet.c::_my_connection_number]",
            "-mov m1[eax+None*1+0x5a15e1],bl",
            "+mov m1[eax+None*1+0x5945f1],bl",
            " and edx,0xff",
            "-mov esi,m4[eax+None*1+0x5a15e0]",
            "+mov esi,m4[eax+None*1+0x5945f0]",
            " shl edx,0x8",
            " or esi,edx",
            " mov edx,apnet.c::_my_current_apnet_name",
            "-mov m4[eax+None*1+0x5a15e0],esi",
            "+mov m4[eax+None*1+0x5945f0],esi",
            " mov eax,m4[None+None*1+apnet.c::_my_connection_number]",
            " call net.c::set_connection_name_",
            " call network.c::update_network_logins_",
            "@@ -77,5 +77,5 @@",
            " mov eax,apnet.c::_my_current_apnet_name",
            " call strncpy::strncpy_",
            " xor ah,ah",
            "-mov m1[None+None*1+0x5a2fd1],ah",
            "+mov m1[None+None*1+0x595fe1],ah",
            " jmp local:30"
          ]
        },
        {
          "symbol": "apser.c::blow_him_up_like_the_whore_that_he_is_",
          "source": "E:\\apache\\source\\apnet\\apser.c",
          "first": "0x4350cc",
          "second": "0x43544c",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x4350cc",
            "+++ 0x43544c",
            "@@ -8,7 +8,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov eax,m4[edx+eax*4+0x5a1434]",
            "+mov eax,m4[edx+eax*4+0x594444]",
            " test eax,eax",
            " je local:22",
            " cmp m4[eax+None*1+0x180],0x0"
          ]
        },
        {
          "symbol": "apser.c::get_tx_leader_wingman_packet_",
          "source": "E:\\apache\\source\\apnet\\apser.c",
          "first": "0x434a1c",
          "second": "0x434d9c",
          "first_instruction_count": 154,
          "second_instruction_count": 154,
          "diff": [
            "--- 0x434a1c",
            "+++ 0x434d9c",
            "@@ -20,67 +20,67 @@",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            " mov eax,m4[None+None*1+model.c::_model_airspeed]",
            "-mov edx,m4[None+None*1+0x5a3118]",
            "-mov m4[None+None*1+0x5a3140],eax",
            "-mov al,m1[None+None*1+fxgloop.c::_actual_frame_ticks]",
            "+mov edx,m4[None+None*1+0x596128]",
            "+mov m4[None+None*1+0x596150],eax",
            "+mov al,m1[None+None*1+gameloop.c::_actual_frame_ticks]",
            " sub edx,0x900",
            "-mov m1[None+None*1+0x5a316c],al",
            "-mov eax,m4[None+None*1+0x5b3c6c]",
            "-mov m4[None+None*1+0x5a3118],edx",
            "-mov m4[None+None*1+0x5a3158],eax",
            "+mov m1[None+None*1+0x59617c],al",
            "+mov eax,m4[None+None*1+0x5a6c7c]",
            "+mov m4[None+None*1+0x596128],edx",
            "+mov m4[None+None*1+0x596168],eax",
            " cmp eax,0x1",
            " jae local:108",
            "-cmp m4[None+None*1+fxgloop.c::_two_player_going_to_quit],0x0",
            "+cmp m4[None+None*1+gameloop.c::_two_player_going_to_quit],0x0",
            " je local:35",
            "-or m1[None+None*1+0x5a316d],0x2",
            "+or m1[None+None*1+0x59617d],0x2",
            " cmp m4[None+None*1+apser.c::_message_chosen],0x0",
            " je local:41",
            " mov al,m1[None+None*1+apser.c::_message_chosen]",
            " xor esi,esi",
            "-mov m1[None+None*1+0x5a316b],al",
            "+mov m1[None+None*1+0x59617b],al",
            " mov m4[None+None*1+apser.c::_message_chosen],esi",
            " cmp m4[None+None*1+apser.c::_weapon_fired],0x0",
            " je local:63",
            " mov eax,m4[None+None*1+apser.c::_two_player_round]",
            "-mov dl,m1[None+None*1+0x5a316d]",
            "+mov dl,m1[None+None*1+0x59617d]",
            " mov ebp,m4[None+None*1+apser.c::_two_player_round]",
            "-mov m4[None+None*1+0x5a3144],eax",
            "+mov m4[None+None*1+0x596154],eax",
            " or dl,0x4",
            "-mov eax,m4[None+None*1+0x5a33b4]",
            "-mov m1[None+None*1+0x5a316d],dl",
            "-mov m4[None+None*1+0x5a3154],eax",
            "+mov eax,m4[None+None*1+0x5963ac]",
            "+mov m1[None+None*1+0x59617d],dl",
            "+mov m4[None+None*1+0x596164],eax",
            " cmp ebp,0x1",
            " jne local:61",
            " mov eax,m4[None+None*1+elevate.c::_chain_gun_barrel_object]",
            " mov eax,m4[eax+None*1+0x8]",
            " mov edx,m4[eax+None*1+0x18]",
            "-mov m4[None+None*1+0x5a315c],edx",
            "+mov m4[None+None*1+0x59616c],edx",
            " mov edx,m4[eax+None*1+0x1c]",
            " mov eax,m4[eax+None*1+0x20]",
            "-mov m4[None+None*1+0x5a3160],edx",
            "-mov m4[None+None*1+0x5a3164],eax",
            "+mov m4[None+None*1+0x596170],edx",
            "+mov m4[None+None*1+0x596174],eax",
            " xor eax,eax",
            " mov m4[None+None*1+apser.c::_weapon_fired],eax",
            " cmp m4[None+None*1+apser.c::_chaff_released],0x0",
            " je local:70",
            "-mov dh,m1[None+None*1+0x5a316d]",
            "+mov dh,m1[None+None*1+0x59617d]",
            " xor ecx,ecx",
            " or dh,0x20",
            " mov m4[None+None*1+apser.c::_chaff_released],ecx",
            "-mov m1[None+None*1+0x5a316d],dh",
            "+mov m1[None+None*1+0x59617d],dh",
            " cmp m4[None+None*1+apser.c::_flare_released],0x0",
            " je local:77",
            "-mov bl,m1[None+None*1+0x5a316d]",
            "+mov bl,m1[None+None*1+0x59617d]",
            " xor esi,esi",
            " or bl,0x40",
            " mov m4[None+None*1+apser.c::_flare_released],esi",
            "-mov m1[None+None*1+0x5a316d],bl",
            "+mov m1[None+None*1+0x59617d],bl",
            " mov al,m1[None+None*1+dieflag.c::_die_flag]",
            "-mov m1[None+None*1+0x5a316a],al",
            "+mov m1[None+None*1+0x59617a],al",
            " call apser.c::analyse_tx_serial_die_flag_",
            " cmp m4[None+None*1+dieflag.c::_die_flag],0x0",
            " je local:83",
            "-or m1[None+None*1+0x5a316d],0x8",
            "+or m1[None+None*1+0x59617d],0x8",
            " call dtask.c::get_user_task_",
            " mov edx,0x1",
            " sub edx,m4[None+None*1+apnet.c::_my_connection_number]",
            "@@ -90,13 +90,13 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov eax,m4[edx+eax*4+0x5a1434]",
            "+mov eax,m4[edx+eax*4+0x594444]",
            " test eax,eax",
            " je local:142",
            " mov edx,m4[eax+None*1+0x180]",
            " cmp edx,0x1",
            " jne local:101",
            "-or m1[None+None*1+0x5a316d],0x10",
            "+or m1[None+None*1+0x59617d],0x10",
            " cmp edx,m4[None+None*1+gamedata.c::_game_mode]",
            " je local:133",
            " pop ebp",
            "@@ -107,16 +107,16 @@",
            " pop ebx",
            " ret ",
            " ja local:116",
            "-mov eax,m4[None+None*1+0x5b3c5c]",
            "-mov m4[None+None*1+0x5a3148],eax",
            "-mov eax,m4[None+None*1+0x5b3c60]",
            "-mov m4[None+None*1+0x5a314c],eax",
            "-mov eax,m4[None+None*1+0x5b3c64]",
            "-mov m4[None+None*1+0x5a3150],eax",
            "+mov eax,m4[None+None*1+0x5a6c6c]",
            "+mov m4[None+None*1+0x596158],eax",
            "+mov eax,m4[None+None*1+0x5a6c70]",
            "+mov m4[None+None*1+0x59615c],eax",
            "+mov eax,m4[None+None*1+0x5a6c74]",
            "+mov m4[None+None*1+0x596160],eax",
            " jmp local:32",
            " cmp eax,0x2",
            " jne local:32",
            "-mov edx,m4[None+None*1+0x5b3c74]",
            "+mov edx,m4[None+None*1+0x5a6c84]",
            " mov edx,m4[edx+None*1+0x3c]",
            " test edx,edx",
            " jne local:127",
            "@@ -127,9 +127,9 @@",
            " add esp,0xc",
            " mov eax,m4[edx+None*1+0x4c]",
            " mov eax,m4[eax+None*1+0x8]",
            "-mov m4[None+None*1+0x5a3148],eax",
            "+mov m4[None+None*1+0x596158],eax",
            " mov eax,m4[edx+None*1+0x5c]",
            "-mov m4[None+None*1+0x5a314c],eax",
            "+mov m4[None+None*1+0x59615c],eax",
            " jmp local:32",
            " mov eax,0x9",
            " call dieflag.c::set_die_flag_"
          ]
        },
        {
          "symbol": "apser.c::get_tx_pilot_gunner_packet_",
          "source": "E:\\apache\\source\\apnet\\apser.c",
          "first": "0x434124",
          "second": "0x4344a4",
          "first_instruction_count": 201,
          "second_instruction_count": 201,
          "diff": [
            "--- 0x434124",
            "+++ 0x4344a4",
            "@@ -14,7 +14,7 @@",
            " push edi",
            " push esi",
            " mov ecx,0xc",
            "-mov edi,0x5a3074",
            "+mov edi,0x596084",
            " mov esi,m4[None+None*1+model.c::_model_vp]",
            " push edi",
            " mov eax,ecx",
            "@@ -29,29 +29,29 @@",
            " mov m4[None+None*1+apser.c::_tx_pilot_gunner_packet],eax",
            " mov eax,m4[None+None*1+model.c::_model_pitch]",
            " fld m8[None+None*1+model_a.c::_model_engine_torque_2]",
            "-mov m4[None+None*1+0x5a3044],eax",
            "+mov m4[None+None*1+0x596054],eax",
            " mov eax,m4[None+None*1+model.c::_model_roll]",
            " fld m8[None+None*1+model_a.c::_model_engine_temp_1]",
            "-mov m4[None+None*1+0x5a3048],eax",
            "+mov m4[None+None*1+0x596058],eax",
            " mov eax,m4[None+None*1+model.c::_model_rate_of_climb]",
            " fld m8[None+None*1+model_a.c::_model_engine_temp_2]",
            "-mov m4[None+None*1+0x5a3050],eax",
            "+mov m4[None+None*1+0x596060],eax",
            " mov al,m1[None+None*1+model.c::_model_sidespeed]",
            " fld m8[None+None*1+model_a.c::_model_engine_rpm_1]",
            "-mov m1[None+None*1+0x5a306d],al",
            "+mov m1[None+None*1+0x59607d],al",
            " mov al,m1[None+None*1+model.c::_model_airspeed]",
            " fld m8[None+None*1+model_a.c::_model_engine_rpm_2]",
            "-mov m1[None+None*1+0x5a306e],al",
            "+mov m1[None+None*1+0x59607e],al",
            " mov ax,m2[None+None*1+model.c::_model_fuel]",
            " fld m8[None+None*1+model_a.c::_model_rotor_rpm]",
            "-mov m2[None+None*1+0x5a3058],ax",
            "+mov m2[None+None*1+0x596068],ax",
            " mov al,m1[None+None*1+model.c::_model_combined_torque]",
            " fxch st(0),st(6)",
            " call fchop::__CHP",
            "-mov m1[None+None*1+0x5a3062],al",
            "+mov m1[None+None*1+0x596072],al",
            " mov ax,m2[None+None*1+model.c::_model_weight]",
            " fistp m4[esp+None*1+0xd0]",
            "-mov m2[None+None*1+0x5a305a],ax",
            "+mov m2[None+None*1+0x59606a],ax",
            " fld m8[None+None*1+model_a.c::_model_collective]",
            " fxch st(0),st(5)",
            " call fchop::__CHP",
            "@@ -70,67 +70,67 @@",
            " mov al,m1[esp+None*1+0xd0]",
            " fxch st(0),st(4)",
            " fistp m4[esp+None*1+0xd0]",
            "-mov m1[None+None*1+0x5a3063],al",
            "+mov m1[None+None*1+0x596073],al",
            " mov al,m1[esp+None*1+0xd0]",
            " fxch st(0),st(2)",
            " fistp m4[esp+None*1+0xd0]",
            "-mov m1[None+None*1+0x5a3064],al",
            "-mov al,m1[esp+None*1+0xd0]",
            "-fistp m4[esp+None*1+0xd0]",
            "-mov m1[None+None*1+0x5a3065],al",
            "-mov al,m1[esp+None*1+0xd0]",
            "-fistp m4[esp+None*1+0xd0]",
            "-mov m1[None+None*1+0x5a3066],al",
            "+mov m1[None+None*1+0x596074],al",
            "+mov al,m1[esp+None*1+0xd0]",
            "+fistp m4[esp+None*1+0xd0]",
            "+mov m1[None+None*1+0x596075],al",
            "+mov al,m1[esp+None*1+0xd0]",
            "+fistp m4[esp+None*1+0xd0]",
            "+mov m1[None+None*1+0x596076],al",
            " mov al,m1[esp+None*1+0xd0]",
            " fxch st(0),st(2)",
            " fistp m4[esp+None*1+0xd0]",
            "-mov m1[None+None*1+0x5a3067],al",
            "-mov al,m1[esp+None*1+0xd0]",
            "-fistp m4[esp+None*1+0xd0]",
            "-mov m1[None+None*1+0x5a3068],al",
            "-mov al,m1[esp+None*1+0xd0]",
            "-fistp m4[esp+None*1+0xd0]",
            "-mov m1[None+None*1+0x5a3069],al",
            "+mov m1[None+None*1+0x596077],al",
            "+mov al,m1[esp+None*1+0xd0]",
            "+fistp m4[esp+None*1+0xd0]",
            "+mov m1[None+None*1+0x596078],al",
            "+mov al,m1[esp+None*1+0xd0]",
            "+fistp m4[esp+None*1+0xd0]",
            "+mov m1[None+None*1+0x596079],al",
            " mov al,m1[esp+None*1+0xd0]",
            " mov ebx,m4[None+None*1+model.c::_apache_landed]",
            "-mov m1[None+None*1+0x5a306a],al",
            "+mov m1[None+None*1+0x59607a],al",
            " test ebx,ebx",
            " je local:99",
            "-or m1[None+None*1+0x5a3072],0x4",
            "+or m1[None+None*1+0x596082],0x4",
            " cmp m4[None+None*1+apser.c::_two_player_landing_type],0x0",
            " je local:105",
            " mov al,m1[None+None*1+apser.c::_two_player_landing_type]",
            " xor edi,edi",
            "-mov m1[None+None*1+0x5a3071],al",
            "+mov m1[None+None*1+0x596081],al",
            " mov m4[None+None*1+apser.c::_two_player_landing_type],edi",
            " fld m8[None+None*1+model_a.c::_projected_flight_time]",
            "-mov al,m1[None+None*1+fxgloop.c::_actual_frame_ticks]",
            "-call fchop::__CHP",
            "-fistp m4[None+None*1+0x5a304c]",
            "-mov m1[None+None*1+0x5a3070],al",
            "+mov al,m1[None+None*1+gameloop.c::_actual_frame_ticks]",
            "+call fchop::__CHP",
            "+fistp m4[None+None*1+0x59605c]",
            "+mov m1[None+None*1+0x596080],al",
            " pop esi",
            " pop edi",
            "-cmp m4[None+None*1+fxgloop.c::_two_player_going_to_quit],0x0",
            "+cmp m4[None+None*1+gameloop.c::_two_player_going_to_quit],0x0",
            " je local:115",
            "-or m1[None+None*1+0x5a3072],0x2",
            "+or m1[None+None*1+0x596082],0x2",
            " cmp m4[None+None*1+apser.c::_message_chosen],0x0",
            " je local:121",
            " mov al,m1[None+None*1+apser.c::_message_chosen]",
            " xor edx,edx",
            "-mov m1[None+None*1+0x5a306f],al",
            "+mov m1[None+None*1+0x59607f],al",
            " mov m4[None+None*1+apser.c::_message_chosen],edx",
            " mov al,m1[None+None*1+dieflag.c::_die_flag]",
            "-mov m1[None+None*1+0x5a306b],al",
            "+mov m1[None+None*1+0x59607b],al",
            " mov al,m1[None+None*1+netevent.c::_key_event_index]",
            " mov ecx,m4[None+None*1+netevent.c::_key_event_index]",
            "-mov m1[None+None*1+0x5a306c],al",
            "+mov m1[None+None*1+0x59607c],al",
            " test ecx,ecx",
            " jle local:136",
            " add ecx,ecx",
            " xor eax,eax",
            " add eax,0x2",
            "-mov dx,m2[eax+None*1+0x5a349e]",
            "-mov m2[eax+None*1+0x5a3092],dx",
            "+mov dx,m2[eax+None*1+0x5964ae]",
            "+mov m2[eax+None*1+0x5960a2],dx",
            " cmp eax,ecx",
            " jl local:130",
            " lea eax,m4[eax+None*1+0x0]",
            "@@ -141,26 +141,26 @@",
            " pop ebx",
            " ret ",
            " ja local:179",
            "-mov eax,m4[None+None*1+0x5b3c50]",
            "-mov m4[None+None*1+0x5a3074],eax",
            "-mov eax,m4[None+None*1+0x5b3c54]",
            "-mov m4[None+None*1+0x5a3078],eax",
            "-mov eax,m4[None+None*1+0x5b3c58]",
            "-mov m4[None+None*1+0x5a307c],eax",
            "-mov eax,m4[None+None*1+0x5b3c5c]",
            "-mov m4[None+None*1+0x5a3080],eax",
            "-mov eax,m4[None+None*1+0x5b3c60]",
            "-mov m4[None+None*1+0x5a3084],eax",
            "-mov eax,m4[None+None*1+0x5b3c64]",
            "-mov m4[None+None*1+0x5a3088],eax",
            "-mov eax,m4[None+None*1+0x5b3c6c]",
            "-mov m4[None+None*1+0x5a308c],eax",
            "-mov eax,m4[None+None*1+0x5b3c70]",
            "-mov edx,m4[None+None*1+0x5b3c6c]",
            "-mov m4[None+None*1+0x5a3090],eax",
            "+mov eax,m4[None+None*1+0x5a6c60]",
            "+mov m4[None+None*1+0x596084],eax",
            "+mov eax,m4[None+None*1+0x5a6c64]",
            "+mov m4[None+None*1+0x596088],eax",
            "+mov eax,m4[None+None*1+0x5a6c68]",
            "+mov m4[None+None*1+0x59608c],eax",
            "+mov eax,m4[None+None*1+0x5a6c6c]",
            "+mov m4[None+None*1+0x596090],eax",
            "+mov eax,m4[None+None*1+0x5a6c70]",
            "+mov m4[None+None*1+0x596094],eax",
            "+mov eax,m4[None+None*1+0x5a6c74]",
            "+mov m4[None+None*1+0x596098],eax",
            "+mov eax,m4[None+None*1+0x5a6c7c]",
            "+mov m4[None+None*1+0x59609c],eax",
            "+mov eax,m4[None+None*1+0x5a6c80]",
            "+mov edx,m4[None+None*1+0x5a6c7c]",
            "+mov m4[None+None*1+0x5960a0],eax",
            " cmp edx,0x2",
            " jne local:176",
            "-mov ecx,m4[None+None*1+0x5b3c74]",
            "+mov ecx,m4[None+None*1+0x5a6c84]",
            " mov ecx,m4[ecx+None*1+0x3c]",
            " test ecx,ecx",
            " jne local:171",
            "@@ -171,11 +171,11 @@",
            " add esp,0xc",
            " mov eax,m4[ecx+None*1+0x4c]",
            " mov ax,m2[eax+None*1+0x8]",
            "-mov m2[None+None*1+0x5a305e],ax",
            "+mov m2[None+None*1+0x59606e],ax",
            " mov ax,m2[ecx+None*1+0x5c]",
            "-mov m2[None+None*1+0x5a305c],ax",
            "+mov m2[None+None*1+0x59606c],ax",
            " mov eax,m4[None+None*1+apweapon.c::_hydra_elevation_angle]",
            "-mov m4[None+None*1+0x5a3054],eax",
            "+mov m4[None+None*1+0x596064],eax",
            " jmp local:112",
            " cmp eax,0x2",
            " jne local:187"
          ]
        },
        {
          "symbol": "apser.c::initialise_leader_wingman_game_",
          "source": "E:\\apache\\source\\apnet\\apser.c",
          "first": "0x4348cc",
          "second": "0x434c4c",
          "first_instruction_count": 48,
          "second_instruction_count": 48,
          "diff": [
            "--- 0x4348cc",
            "+++ 0x434c4c",
            "@@ -13,17 +13,17 @@",
            " push text:'Player 1'",
            " mov edi,0x1",
            " xor ah,ah",
            "-push 0x5a1438",
            "+push 0x594448",
            " mov m4[None+None*1+apnet.c::_number_of_players],edi",
            " mov dh,ah",
            "-mov m1[None+None*1+0x5a1799],ah",
            "+mov m1[None+None*1+0x5947a9],ah",
            " or dh,0x1",
            "-mov m1[None+None*1+0x5a15e1],ah",
            "-mov m1[None+None*1+0x5a1799],dh",
            "+mov m1[None+None*1+0x5945f1],ah",
            "+mov m1[None+None*1+0x5947a9],dh",
            " call sprintf::sprintf_",
            " add esp,0x8",
            " push text:'Player 2'",
            "-push 0x5a15f0",
            "+push 0x594600",
            " call sprintf::sprintf_",
            " mov ebp,m4[None+None*1+gamedata.c::_rank_mode]",
            " add esp,0x8"
          ]
        },
        {
          "symbol": "apser.c::rx_leader_wingman_serial_packet_",
          "source": "E:\\apache\\source\\apnet\\apser.c",
          "first": "0x4349a4",
          "second": "0x434d24",
          "first_instruction_count": 37,
          "second_instruction_count": 37,
          "diff": [
            "--- 0x4349a4",
            "+++ 0x434d24",
            "@@ -16,8 +16,8 @@",
            " call apser.c::set_rx_leader_wingman_packet_",
            " xor edx,edx",
            " xor eax,eax",
            "-mov dl,m1[None+None*1+0x5a3039]",
            "-mov al,m1[None+None*1+0x5a3038]",
            "+mov dl,m1[None+None*1+0x596049]",
            "+mov al,m1[None+None*1+0x596048]",
            " call apser.c::receive_kills_",
            " pop edx",
            " pop ebx"
          ]
        },
        {
          "symbol": "apser.c::rx_pilot_gunner_serial_packet_",
          "source": "E:\\apache\\source\\apnet\\apser.c",
          "first": "0x4340ac",
          "second": "0x43442c",
          "first_instruction_count": 37,
          "second_instruction_count": 37,
          "diff": [
            "--- 0x4340ac",
            "+++ 0x43442c",
            "@@ -16,8 +16,8 @@",
            " call apser.c::set_rx_pilot_gunner_packet_",
            " xor edx,edx",
            " xor eax,eax",
            "-mov dl,m1[None+None*1+0x5a30c9]",
            "-mov al,m1[None+None*1+0x5a30c8]",
            "+mov dl,m1[None+None*1+0x5960d9]",
            "+mov al,m1[None+None*1+0x5960d8]",
            " call apser.c::receive_kills_",
            " pop edx",
            " pop ebx"
          ]
        },
        {
          "symbol": "apser.c::set_rx_leader_wingman_packet_",
          "source": "E:\\apache\\source\\apnet\\apser.c",
          "first": "0x434c64",
          "second": "0x434fe4",
          "first_instruction_count": 248,
          "second_instruction_count": 248,
          "diff": [
            "--- 0x434c64",
            "+++ 0x434fe4",
            "@@ -35,9 +35,9 @@",
            " shl eax,0x3",
            " lea edx,m4[None+eax*4+0x0]",
            " add edx,eax",
            "-mov eax,m4[None+None*1+0x5a3010]",
            "+mov eax,m4[None+None*1+0x596020]",
            " mov esi,m4[None+None*1+gamedata.c::_rank_mode]",
            "-mov m4[edx+None*1+0x5a1480],eax",
            "+mov m4[edx+None*1+0x594490],eax",
            " cmp esi,0x2",
            " je local:181",
            " mov ecx,0x1",
            "@@ -48,22 +48,22 @@",
            " sub eax,ecx",
            " shl eax,0x3",
            " mov ecx,eax",
            "-mov ecx,m4[ecx+eax*4+0x5a1434]",
            "+mov ecx,m4[ecx+eax*4+0x594444]",
            " test ecx,ecx",
            " je local:65",
            " mov eax,m4[ecx+None*1+0x114]",
            " call targets.c::release_target_sanely_",
            "-mov ebp,m4[None+None*1+0x5a3028]",
            "+mov ebp,m4[None+None*1+0x596038]",
            " test ebp,ebp",
            " je local:192",
            " cmp ebp,0x1",
            " jne local:185",
            "-mov eax,0x5a3018",
            "-mov edx,0x5a3018",
            "+mov eax,0x596028",
            "+mov edx,0x596028",
            " call gndobjs.c::locate_ground_object_",
            " call targets.c::designate_ground_target_",
            " mov m4[ecx+None*1+0x114],eax",
            "-test m1[None+None*1+0x5a303d],0x4",
            "+test m1[None+None*1+0x59604d],0x4",
            " je local:100",
            " mov ecx,0x1",
            " sub ecx,m4[None+None*1+apnet.c::_my_connection_number]",
            "@@ -75,13 +75,13 @@",
            " mov ecx,eax",
            " shl eax,0x2",
            " add eax,ecx",
            "-mov edx,m4[None+None*1+0x5a3028]",
            "-mov m4[eax+None*1+0x5a15c0],edx",
            "-mov edx,m4[None+None*1+0x5a3014]",
            "-mov m4[eax+None*1+0x5a1498],edx",
            "-mov edx,m4[None+None*1+0x5a3024]",
            "-mov ecx,m4[None+None*1+0x5a3014]",
            "-mov m4[eax+None*1+0x5a14a8],edx",
            "+mov edx,m4[None+None*1+0x596038]",
            "+mov m4[eax+None*1+0x5945d0],edx",
            "+mov edx,m4[None+None*1+0x596024]",
            "+mov m4[eax+None*1+0x5944a8],edx",
            "+mov edx,m4[None+None*1+0x596034]",
            "+mov ecx,m4[None+None*1+0x596024]",
            "+mov m4[eax+None*1+0x5944b8],edx",
            " cmp ecx,0x1",
            " jne local:194",
            " mov ecx,0x1",
            "@@ -92,13 +92,13 @@",
            " sub eax,ecx",
            " shl eax,0x3",
            " mov ecx,eax",
            "-mov edx,m4[None+None*1+0x5a302c]",
            "-mov m4[ecx+eax*4+0x5a15c4],edx",
            "-mov edx,m4[None+None*1+0x5a3030]",
            "-mov m4[ecx+eax*4+0x5a15c8],edx",
            "-mov edx,m4[None+None*1+0x5a3034]",
            "-mov m4[ecx+eax*4+0x5a15cc],edx",
            "-test m1[None+None*1+0x5a303d],0x20",
            "+mov edx,m4[None+None*1+0x59603c]",
            "+mov m4[ecx+eax*4+0x5945d4],edx",
            "+mov edx,m4[None+None*1+0x596040]",
            "+mov m4[ecx+eax*4+0x5945d8],edx",
            "+mov edx,m4[None+None*1+0x596044]",
            "+mov m4[ecx+eax*4+0x5945dc],edx",
            "+test m1[None+None*1+0x59604d],0x20",
            " je local:112",
            " mov ecx,0x1",
            " sub ecx,m4[None+None*1+apnet.c::_my_connection_number]",
            "@@ -108,9 +108,9 @@",
            " sub eax,ecx",
            " shl eax,0x3",
            " mov ecx,eax",
            "-mov eax,m4[ecx+eax*4+0x5a1434]",
            "+mov eax,m4[ecx+eax*4+0x594444]",
            " call dweapons.c::drone_do_chaff_",
            "-test m1[None+None*1+0x5a303d],0x40",
            "+test m1[None+None*1+0x59604d],0x40",
            " je local:124",
            " mov ecx,0x1",
            " sub ecx,m4[None+None*1+apnet.c::_my_connection_number]",
            "@@ -120,9 +120,9 @@",
            " sub eax,ecx",
            " shl eax,0x3",
            " mov ecx,eax",
            "-mov eax,m4[ecx+eax*4+0x5a1434]",
            "+mov eax,m4[ecx+eax*4+0x594444]",
            " call dweapons.c::drone_do_flare_",
            "-mov bl,m1[None+None*1+0x5a303b]",
            "+mov bl,m1[None+None*1+0x59604b]",
            " test bl,bl",
            " je local:156",
            " xor eax,eax",
            "@@ -146,7 +146,7 @@",
            " mov edx,m4[None+None*1+apser.c::_two_player_message_type]",
            " xor ecx,ecx",
            " lea eax,m4[None+edx*4+0x0]",
            "-mov cl,m1[None+None*1+0x5a303b]",
            "+mov cl,m1[None+None*1+0x59604b]",
            " add eax,edx",
            " mov al,m1[ecx+eax*2+constant:00]",
            " mov ecx,0x8000",
            "@@ -155,22 +155,22 @@",
            " and eax,0xff",
            " call sound.c::play_sound_effect_",
            " xor eax,eax",
            "-mov al,m1[None+None*1+0x5a303a]",
            "+mov al,m1[None+None*1+0x59604a]",
            " call apser.c::analyse_rx_serial_die_flag_",
            "-test m1[None+None*1+0x5a303d],0x8",
            "+test m1[None+None*1+0x59604d],0x8",
            " je local:166",
            " cmp m4[None+None*1+gamedata.c::_game_mode],0x1",
            " jne local:224",
            " mov eax,0x9",
            " call dieflag.c::set_die_flag_",
            " call apser.c::blow_him_up_like_the_whore_that_he_is_",
            "-test m1[None+None*1+0x5a303d],0x10",
            "+test m1[None+None*1+0x59604d],0x10",
            " je local:172",
            " mov eax,m4[None+None*1+drone.c::_user_drone]",
            " or m1[eax+None*1+0x48],0x1",
            " mov eax,0xa",
            " call dieflag.c::set_die_flag_",
            "-test m1[None+None*1+0x5a303d],0x2",
            "+test m1[None+None*1+0x59604d],0x2",
            " jne local:240",
            " pop ebp",
            " pop edi",
            "@@ -180,11 +180,11 @@",
            " pop ebx",
            " ret ",
            " xor eax,eax",
            "-mov al,m1[None+None*1+0x5a303c]",
            "-mov m4[None+None*1+fxgloop.c::_next_frame_ticks],eax",
            "+mov al,m1[None+None*1+0x59604c]",
            "+mov m4[None+None*1+gameloop.c::_next_frame_ticks],eax",
            " jmp local:42",
            "-mov edx,m4[None+None*1+0x5a301c]",
            "-mov eax,m4[None+None*1+0x5a3018]",
            "+mov edx,m4[None+None*1+0x59602c]",
            "+mov eax,m4[None+None*1+0x596028]",
            " call multidr.c::find_drone_given_droneid_and_taskid_",
            " test eax,eax",
            " je local:64",
            "@@ -194,12 +194,12 @@",
            " jmp local:65",
            " cmp ecx,0x13",
            " je local:86",
            "-mov ecx,m4[None+None*1+0x5a3028]",
            "+mov ecx,m4[None+None*1+0x596038]",
            " cmp ecx,0x1",
            " jae local:209",
            " test ecx,ecx",
            " je local:100",
            "-mov esi,m4[None+None*1+0x5a3028]",
            "+mov esi,m4[None+None*1+0x596038]",
            " push esi",
            " push 0x626",
            " push text:'\\\\apache\\\\source\\\\apnet\\\\apser.c'",
            "@@ -208,19 +208,19 @@",
            " add esp,0x10",
            " jmp local:100",
            " ja local:217",
            "-mov edx,m4[None+None*1+0x5a3018]",
            "-mov m4[eax+None*1+0x5a15c4],edx",
            "-mov edx,m4[None+None*1+0x5a301c]",
            "-mov m4[eax+None*1+0x5a15c8],edx",
            "-mov edx,m4[None+None*1+0x5a3020]",
            "-mov m4[eax+None*1+0x5a15cc],edx",
            "+mov edx,m4[None+None*1+0x596028]",
            "+mov m4[eax+None*1+0x5945d4],edx",
            "+mov edx,m4[None+None*1+0x59602c]",
            "+mov m4[eax+None*1+0x5945d8],edx",
            "+mov edx,m4[None+None*1+0x596030]",
            "+mov m4[eax+None*1+0x5945dc],edx",
            " jmp local:100",
            " cmp ecx,0x2",
            " jne local:201",
            "-mov edx,m4[None+None*1+0x5a3018]",
            "-mov m4[eax+None*1+0x5a15c8],edx",
            "-mov edx,m4[None+None*1+0x5a301c]",
            "-mov m4[eax+None*1+0x5a15c4],edx",
            "+mov edx,m4[None+None*1+0x596028]",
            "+mov m4[eax+None*1+0x5945d8],edx",
            "+mov edx,m4[None+None*1+0x59602c]",
            "+mov m4[eax+None*1+0x5945d4],edx",
            " jmp local:100",
            " cmp m4[None+None*1+apser.c::_displayed_mate_dead],0x0",
            " jne local:165",
            "@@ -238,7 +238,7 @@",
            " call commspan.c::add_comms_panel_message_",
            " mov m4[None+None*1+apser.c::_displayed_mate_dead],0x1",
            " jmp local:165",
            "-mov m4[None+None*1+fxgloop.c::_two_player_exit_countdown],0x1",
            "+mov m4[None+None*1+gameloop.c::_two_player_exit_countdown],0x1",
            " pop ebp",
            " pop edi",
            " pop esi"
          ]
        },
        {
          "symbol": "apser.c::set_rx_pilot_gunner_packet_",
          "source": "E:\\apache\\source\\apnet\\apser.c",
          "first": "0x434498",
          "second": "0x434818",
          "first_instruction_count": 247,
          "second_instruction_count": 247,
          "diff": [
            "--- 0x434498",
            "+++ 0x434818",
            "@@ -10,36 +10,36 @@",
            " jae local:96",
            " test eax,eax",
            " jne local:225",
            "-mov eax,m4[None+None*1+0x5a30dc]",
            "-mov m4[None+None*1+0x5b3c50],eax",
            "-mov eax,m4[None+None*1+0x5a30e0]",
            "-mov m4[None+None*1+0x5b3c54],eax",
            "-mov eax,m4[None+None*1+0x5a30e4]",
            "-mov m4[None+None*1+0x5b3c58],eax",
            "-mov eax,m4[None+None*1+0x5a30e8]",
            "-mov m4[None+None*1+0x5b3c5c],eax",
            "-mov eax,m4[None+None*1+0x5a30ec]",
            "-mov m4[None+None*1+0x5b3c60],eax",
            "-mov eax,m4[None+None*1+0x5a30f0]",
            "-mov m4[None+None*1+0x5b3c64],eax",
            "-mov eax,m4[None+None*1+0x5a30f4]",
            "-mov m4[None+None*1+0x5b3c6c],eax",
            "-mov eax,m4[None+None*1+0x5a30f8]",
            "-mov ebp,m4[None+None*1+0x5b3c6c]",
            "-mov m4[None+None*1+0x5b3c70],eax",
            "+mov eax,m4[None+None*1+0x5960ec]",
            "+mov m4[None+None*1+0x5a6c60],eax",
            "+mov eax,m4[None+None*1+0x5960f0]",
            "+mov m4[None+None*1+0x5a6c64],eax",
            "+mov eax,m4[None+None*1+0x5960f4]",
            "+mov m4[None+None*1+0x5a6c68],eax",
            "+mov eax,m4[None+None*1+0x5960f8]",
            "+mov m4[None+None*1+0x5a6c6c],eax",
            "+mov eax,m4[None+None*1+0x5960fc]",
            "+mov m4[None+None*1+0x5a6c70],eax",
            "+mov eax,m4[None+None*1+0x596100]",
            "+mov m4[None+None*1+0x5a6c74],eax",
            "+mov eax,m4[None+None*1+0x596104]",
            "+mov m4[None+None*1+0x5a6c7c],eax",
            "+mov eax,m4[None+None*1+0x596108]",
            "+mov ebp,m4[None+None*1+0x5a6c7c]",
            "+mov m4[None+None*1+0x5a6c80],eax",
            " cmp ebp,0x2",
            " jne local:214",
            "-mov eax,m4[None+None*1+0x5a30c4]",
            "-mov edx,m4[None+None*1+0x5a30c2]",
            "+mov eax,m4[None+None*1+0x5960d4]",
            "+mov edx,m4[None+None*1+0x5960d2]",
            " sar eax,0x10",
            " sar edx,0x10",
            " call multidr.c::find_drone_given_droneid_and_taskid_",
            " test eax,eax",
            " jne local:211",
            "-mov m4[None+None*1+0x5b3c6c],eax",
            "-mov eax,m4[None+None*1+0x5a30bc]",
            "+mov m4[None+None*1+0x5a6c7c],eax",
            "+mov eax,m4[None+None*1+0x5960cc]",
            " mov m4[None+None*1+apweapon.c::_hydra_elevation_angle],eax",
            "-mov dh,m1[None+None*1+0x5a30d7]",
            "+mov dh,m1[None+None*1+0x5960e7]",
            " test dh,dh",
            " je local:73",
            " xor eax,eax",
            "@@ -63,7 +63,7 @@",
            " mov edx,m4[None+None*1+apser.c::_two_player_message_type]",
            " xor ecx,ecx",
            " lea eax,m4[None+edx*4+0x0]",
            "-mov cl,m1[None+None*1+0x5a30d7]",
            "+mov cl,m1[None+None*1+0x5960e7]",
            " add eax,edx",
            " mov al,m1[ecx+eax*2+constant:00]",
            " mov ecx,0x8000",
            "@@ -71,18 +71,18 @@",
            " mov edx,0x2",
            " and eax,0xff",
            " call sound.c::play_sound_effect_",
            "-test m1[None+None*1+0x5a30da],0x2",
            "+test m1[None+None*1+0x5960ea],0x2",
            " jne local:239",
            " mov esi,0x2",
            " xor eax,eax",
            " xor edx,edx",
            "-mov al,m1[None+None*1+0x5a30d3]",
            "+mov al,m1[None+None*1+0x5960e3]",
            " xor ecx,ecx",
            " call dieflag.c::set_die_flag_",
            " mov ebx,m4[None+None*1+gamedata.c::_control_mode]",
            " mov m4[None+None*1+gamedata.c::_control_mode],esi",
            " xor eax,eax",
            "-mov al,m1[None+None*1+0x5a30d4]",
            "+mov al,m1[None+None*1+0x5960e4]",
            " cmp edx,eax",
            " jl local:241",
            " mov m4[None+None*1+gamedata.c::_control_mode],ebx",
            "@@ -97,9 +97,9 @@",
            " ja local:203",
            " mov eax,m4[None+None*1+apser.c::_rx_pilot_gunner_packet]",
            " mov m4[None+None*1+model.c::_model_heading],eax",
            "-mov eax,m4[None+None*1+0x5a30ac]",
            "+mov eax,m4[None+None*1+0x5960bc]",
            " mov m4[None+None*1+model.c::_model_pitch],eax",
            "-mov eax,m4[None+None*1+0x5a30b0]",
            "+mov eax,m4[None+None*1+0x5960c0]",
            " mov edx,m4[None+None*1+dieflag.c::_die_flag]",
            " mov m4[None+None*1+model.c::_model_roll],eax",
            " test edx,edx",
            "@@ -109,7 +109,7 @@",
            " jne local:130",
            " mov ecx,0xc",
            " mov eax,m4[None+None*1+model.c::_model_3d]",
            "-mov esi,0x5a30dc",
            "+mov esi,0x5960ec",
            " call mobobjs.c::remove_mobile_object_",
            " mov edi,m4[None+None*1+model.c::_model_vp]",
            " push edi",
            "@@ -128,78 +128,78 @@",
            " call matrix.c::get_transformation_matrix_",
            " mov eax,m4[None+None*1+model.c::_model_3d]",
            " call mobobjs.c::place_mobile_object_",
            "-mov eax,m4[None+None*1+0x5a30b8]",
            "+mov eax,m4[None+None*1+0x5960c8]",
            " mov m4[None+None*1+model.c::_model_rate_of_climb],eax",
            " xor eax,eax",
            "-mov al,m1[None+None*1+0x5a30d5]",
            "+mov al,m1[None+None*1+0x5960e5]",
            " mov m4[None+None*1+model.c::_model_sidespeed],eax",
            " xor eax,eax",
            "-mov al,m1[None+None*1+0x5a30d6]",
            "+mov al,m1[None+None*1+0x5960e6]",
            " mov m4[None+None*1+model.c::_model_airspeed],eax",
            "-mov eax,m4[None+None*1+0x5a30be]",
            "+mov eax,m4[None+None*1+0x5960ce]",
            " sar eax,0x10",
            " mov m4[None+None*1+model.c::_model_fuel],eax",
            " xor eax,eax",
            "-mov al,m1[None+None*1+0x5a30ca]",
            "+mov al,m1[None+None*1+0x5960da]",
            " mov m4[None+None*1+model.c::_model_combined_torque],eax",
            "-mov eax,m4[None+None*1+0x5a30c0]",
            "+mov eax,m4[None+None*1+0x5960d0]",
            " sar eax,0x10",
            " mov m4[None+None*1+model.c::_model_weight],eax",
            " xor eax,eax",
            "-mov al,m1[None+None*1+0x5a30cb]",
            "-mov m4[esp+None*1+0xc8],eax",
            "-xor eax,eax",
            "-mov al,m1[None+None*1+0x5a30cc]",
            "+mov al,m1[None+None*1+0x5960db]",
            "+mov m4[esp+None*1+0xc8],eax",
            "+xor eax,eax",
            "+mov al,m1[None+None*1+0x5960dc]",
            " fild m2[esp+None*1+0xc8]",
            " mov m4[esp+None*1+0xc8],eax",
            " xor eax,eax",
            " fstp m8[None+None*1+model_a.c::_model_engine_torque_1]",
            "-mov al,m1[None+None*1+0x5a30cd]",
            "+mov al,m1[None+None*1+0x5960dd]",
            " fild m2[esp+None*1+0xc8]",
            " mov m4[esp+None*1+0xc8],eax",
            " xor eax,eax",
            " fstp m8[None+None*1+model_a.c::_model_engine_torque_2]",
            "-mov al,m1[None+None*1+0x5a30ce]",
            "+mov al,m1[None+None*1+0x5960de]",
            " fild m2[esp+None*1+0xc8]",
            " mov m4[esp+None*1+0xc8],eax",
            " xor eax,eax",
            " fstp m8[None+None*1+model_a.c::_model_engine_temp_1]",
            "-mov al,m1[None+None*1+0x5a30cf]",
            "+mov al,m1[None+None*1+0x5960df]",
            " fild m2[esp+None*1+0xc8]",
            " mov m4[esp+None*1+0xc8],eax",
            " xor eax,eax",
            " fstp m8[None+None*1+model_a.c::_model_engine_temp_2]",
            "-mov al,m1[None+None*1+0x5a30d0]",
            "+mov al,m1[None+None*1+0x5960e0]",
            " fild m2[esp+None*1+0xc8]",
            " mov m4[esp+None*1+0xc8],eax",
            " xor eax,eax",
            " fstp m8[None+None*1+model_a.c::_model_engine_rpm_1]",
            "-mov al,m1[None+None*1+0x5a30d1]",
            "+mov al,m1[None+None*1+0x5960e1]",
            " fild m2[esp+None*1+0xc8]",
            " mov m4[esp+None*1+0xc8],eax",
            " xor eax,eax",
            " fstp m8[None+None*1+model_a.c::_model_engine_rpm_2]",
            "-mov al,m1[None+None*1+0x5a30d2]",
            "+mov al,m1[None+None*1+0x5960e2]",
            " fild m2[esp+None*1+0xc8]",
            " mov m4[esp+None*1+0xc8],eax",
            " fstp m8[None+None*1+model_a.c::_model_rotor_rpm]",
            " fild m2[esp+None*1+0xc8]",
            "-mov ah,m1[None+None*1+0x5a30da]",
            "+mov ah,m1[None+None*1+0x5960ea]",
            " fstp m8[None+None*1+model_a.c::_model_collective]",
            " test ah,0x4",
            " je local:222",
            " mov m4[None+None*1+model.c::_apache_landed],0x1",
            "-mov dl,m1[None+None*1+0x5a30d9]",
            "+mov dl,m1[None+None*1+0x5960e9]",
            " test dl,dl",
            " je local:197",
            " xor eax,eax",
            " mov al,dl",
            " call dbrecord.c::record_landing_evaluation_",
            " xor eax,eax",
            "-fild m4[None+None*1+0x5a30b4]",
            "-mov al,m1[None+None*1+0x5a30d8]",
            "+fild m4[None+None*1+0x5960c4]",
            "+mov al,m1[None+None*1+0x5960e8]",
            " fstp m8[None+None*1+model_a.c::_projected_flight_time]",
            "-mov m4[None+None*1+fxgloop.c::_next_frame_ticks],eax",
            "+mov m4[None+None*1+gameloop.c::_next_frame_ticks],eax",
            " jmp local:41",
            " cmp eax,0x2",
            " jne local:225",
            "@@ -210,13 +210,13 @@",
            " add esp,0xc",
            " jmp local:41",
            " add eax,0x8",
            "-mov m4[None+None*1+0x5b3c74],eax",
            "+mov m4[None+None*1+0x5a6c84],eax",
            " jmp local:39",
            " cmp ebp,0x1",
            " jne local:39",
            "-mov eax,0x5b3c5c",
            "+mov eax,0x5a6c6c",
            " call gndobjs.c::locate_ground_object_",
            "-mov m4[None+None*1+0x5b3c74],eax",
            "+mov m4[None+None*1+0x5a6c84],eax",
            " test eax,eax",
            " jne local:39",
            " jmp local:38",
            "@@ -237,11 +237,11 @@",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            " jmp local:41",
            "-mov m4[None+None*1+fxgloop.c::_two_player_exit_countdown],0x1",
            "+mov m4[None+None*1+gameloop.c::_two_player_exit_countdown],0x1",
            " jmp local:75",
            " add ecx,0x2",
            " xor eax,eax",
            "-mov ax,m2[ecx+None*1+0x5a30fa]",
            "+mov ax,m2[ecx+None*1+0x59610a]",
            " inc edx",
            " call key.c::dispatch_key_",
            " jmp local:83"
          ]
        },
        {
          "symbol": "apser.c::tx_leader_wingman_serial_packet_",
          "source": "E:\\apache\\source\\apnet\\apser.c",
          "first": "0x434974",
          "second": "0x434cf4",
          "first_instruction_count": 12,
          "second_instruction_count": 12,
          "diff": [
            "--- 0x434974",
            "+++ 0x434cf4",
            "@@ -1,10 +1,10 @@",
            " push edx",
            " call apser.c::get_tx_leader_wingman_packet_",
            " mov al,m1[None+None*1+killpass.c::_num_kills_this_frame]",
            "-mov m1[None+None*1+0x5a3168],al",
            "+mov m1[None+None*1+0x596178],al",
            " mov al,m1[None+None*1+killpass.c::_num_gobs_this_frame]",
            " mov edx,0x60",
            "-mov m1[None+None*1+0x5a3169],al",
            "+mov m1[None+None*1+0x596179],al",
            " mov eax,apser.c::_tx_leader_wingman_packet",
            " call secure.c::tx_secure_",
            " call apser.c::transmit_kills_"
          ]
        },
        {
          "symbol": "apser.c::tx_pilot_gunner_serial_packet_",
          "source": "E:\\apache\\source\\apnet\\apser.c",
          "first": "0x43407c",
          "second": "0x4343fc",
          "first_instruction_count": 12,
          "second_instruction_count": 12,
          "diff": [
            "--- 0x43407c",
            "+++ 0x4343fc",
            "@@ -1,10 +1,10 @@",
            " push edx",
            " call apser.c::get_tx_pilot_gunner_packet_",
            " mov al,m1[None+None*1+killpass.c::_num_kills_this_frame]",
            "-mov m1[None+None*1+0x5a3060],al",
            "+mov m1[None+None*1+0x596070],al",
            " mov al,m1[None+None*1+killpass.c::_num_gobs_this_frame]",
            " mov edx,0x68",
            "-mov m1[None+None*1+0x5a3061],al",
            "+mov m1[None+None*1+0x596071],al",
            " mov eax,apser.c::_tx_pilot_gunner_packet",
            " call secure.c::tx_secure_",
            " call apser.c::transmit_kills_"
          ]
        },
        {
          "symbol": "apweapon.c::apache_weapon_available_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x447598",
          "second": "0x447918",
          "first_instruction_count": 15,
          "second_instruction_count": 15,
          "diff": [
            "--- 0x447598",
            "+++ 0x447918",
            "@@ -1,11 +1,11 @@",
            " push ecx",
            " shl eax,0x2",
            "-cmp m4[eax+None*1+0x62e634],0xffffffff",
            "+cmp m4[eax+None*1+0x62162c],0xffffffff",
            " je local:12",
            " mov ecx,m4[None+None*1+gamedata.c::_game_clock_time]",
            "-cmp ecx,m4[eax+None*1+0x62e658]",
            "+cmp ecx,m4[eax+None*1+0x621650]",
            " jl local:12",
            "-cmp m4[eax+None*1+0x62e610],0x0",
            "+cmp m4[eax+None*1+0x621608],0x0",
            " jle local:12",
            " mov eax,0x1",
            " pop ecx"
          ]
        },
        {
          "symbol": "apweapon.c::current_weapon_can_hit_target_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x447c08",
          "second": "0x447f88",
          "first_instruction_count": 416,
          "second_instruction_count": 416,
          "diff": [
            "--- 0x447c08",
            "+++ 0x447f88",
            "@@ -18,10 +18,10 @@",
            " pop ebx",
            " ret ",
            " mov ecx,0x30",
            "-mov esi,0x62e758",
            "+mov esi,0x621768",
            " mov eax,m4[None+None*1+constant:02000000]",
            "-mov edi,0x62e788",
            "-mov m4[None+None*1+0x62e754],eax",
            "+mov edi,0x621798",
            "+mov m4[None+None*1+0x621764],eax",
            " push edi",
            " mov eax,ecx",
            " shr ecx,0x2",
            "@@ -32,7 +32,7 @@",
            " pop edi",
            " mov ecx,0x30",
            " mov esi,target.c::_current_target",
            "-mov edi,0x62e758",
            "+mov edi,0x621768",
            " push edi",
            " mov eax,ecx",
            " shr ecx,0x2",
            "@@ -43,7 +43,7 @@",
            " pop edi",
            " cmp m4[None+None*1+apweapon.c::_armed],0x0",
            " je local:58",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " jne local:69",
            " mov edx,0x1",
            " mov eax,edx",
            "@@ -75,14 +75,14 @@",
            " shl eax,0x2",
            " add eax,ecx",
            " shl eax,0x3",
            "-cmp edx,m4[eax+None*1+0x672a98]",
            "+cmp edx,m4[eax+None*1+0x665aa8]",
            " jle local:105",
            "-mov eax,0x62e788",
            "+mov eax,0x621798",
            " mov edx,edi",
            " call targets.c::targets_equivalent_",
            " test eax,eax",
            " je local:91",
            "-mov eax,m4[None+None*1+0x62e754]",
            "+mov eax,m4[None+None*1+0x621764]",
            " cmp eax,0x6",
            " jae local:101",
            " cmp eax,0x3",
            "@@ -103,7 +103,7 @@",
            " cmp eax,0x8",
            " je local:89",
            " jmp local:91",
            "-cmp edx,m4[eax+None*1+0x672a94]",
            "+cmp edx,m4[eax+None*1+0x665aa4]",
            " jge local:118",
            " mov ebp,0x5",
            " mov eax,ebp",
            "@@ -125,10 +125,10 @@",
            " shl eax,0x2",
            " add eax,edx",
            " shl eax,0x3",
            "-mov ebp,m4[eax+None*1+0x672a64]",
            "+mov ebp,m4[eax+None*1+0x665a74]",
            " cmp ebp,0x3",
            " jne local:207",
            "-mov edi,m4[None+None*1+0xafaed8]",
            "+mov edi,m4[None+None*1+0xae5588]",
            " cmp edi,0x2",
            " je local:185",
            " cmp edi,ebp",
            "@@ -136,39 +136,39 @@",
            " cmp edi,0x1",
            " jne local:168",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            "-mov ecx,m4[None+None*1+0xafaec8]",
            "+mov ecx,m4[None+None*1+0xae5578]",
            " mov edx,m4[eax+None*1+0x8]",
            " cmp edx,ecx",
            " jle local:144",
            "-cmp edx,m4[None+None*1+0xafaecc]",
            "+cmp edx,m4[None+None*1+0xae557c]",
            " jl local:196",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            "-mov esi,m4[None+None*1+0xafaec8]",
            "+mov esi,m4[None+None*1+0xae5578]",
            " cmp esi,m4[eax+None*1+0x8]",
            " jle local:150",
            " cmp esi,m4[esp+None*1+0x14]",
            " jl local:196",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            "-mov ebp,m4[None+None*1+0xafaec8]",
            "+mov ebp,m4[None+None*1+0xae5578]",
            " cmp ebp,m4[eax+None*1+0x8]",
            " jge local:156",
            " cmp ebp,m4[esp+None*1+0x14]",
            " jg local:196",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            "-mov ecx,m4[None+None*1+0xafaecc]",
            "+mov ecx,m4[None+None*1+0xae557c]",
            " cmp ecx,m4[eax+None*1+0x8]",
            " jle local:162",
            " cmp ecx,m4[esp+None*1+0x14]",
            " jl local:196",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            "-mov esi,m4[None+None*1+0xafaecc]",
            "+mov esi,m4[None+None*1+0xae557c]",
            " cmp esi,m4[eax+None*1+0x8]",
            " jge local:168",
            " cmp esi,m4[esp+None*1+0x14]",
            " jg local:196",
            " xor ebp,ebp",
            " mov eax,target.c::_current_target",
            "-mov m4[None+None*1+0x5b3c70],ebp",
            "+mov m4[None+None*1+0x5a6c80],ebp",
            " call targets.c::get_target_classification_",
            " cmp eax,0x2",
            " je local:214",
            "@@ -207,7 +207,7 @@",
            " ret ",
            " cmp ebp,0x1",
            " jne local:214",
            "-mov ecx,m4[None+None*1+0xafaed8]",
            "+mov ecx,m4[None+None*1+0xae5588]",
            " cmp ecx,0x2",
            " je local:196",
            " cmp ecx,0x3",
            "@@ -252,7 +252,7 @@",
            " mov ecx,m4[ecx+None*1+0x18]",
            " add eax,edx",
            " mov edx,ecx",
            "-mov eax,m4[None+eax*8+0x672a7c]",
            "+mov eax,m4[None+eax*8+0x665a8c]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            "@@ -270,7 +270,7 @@",
            " mov ebx,m4[ecx+None*1+0x1c]",
            " add eax,edx",
            " mov edx,ebx",
            "-mov eax,m4[None+eax*8+0x672a7c]",
            "+mov eax,m4[None+eax*8+0x665a8c]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            "@@ -288,7 +288,7 @@",
            " mov ebx,m4[ecx+None*1+0x20]",
            " add eax,edx",
            " mov edx,ebx",
            "-mov eax,m4[None+eax*8+0x672a7c]",
            "+mov eax,m4[None+eax*8+0x665a8c]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            "@@ -338,14 +338,14 @@",
            " sub eax,edx",
            " cmp eax,ecx",
            " jg local:369",
            "-cmp m4[None+None*1+0x62e754],0x3",
            "+cmp m4[None+None*1+0x621764],0x3",
            " je local:351",
            "-mov edx,0x62e758",
            "-mov eax,0x62e788",
            "+mov edx,0x621768",
            "+mov eax,0x621798",
            " call targets.c::targets_equivalent_",
            " test eax,eax",
            " je local:351",
            "-cmp m4[None+None*1+0x62e754],0x4",
            "+cmp m4[None+None*1+0x621764],0x4",
            " jne local:380",
            " mov eax,0x3d",
            " call sound.c::play_cockpit_effect_",
            "@@ -361,11 +361,11 @@",
            " ret ",
            " cmp edx,0x4",
            " je local:317",
            "-mov ecx,m4[eax+None*1+0x672ab8]",
            "+mov ecx,m4[eax+None*1+0x665ac8]",
            " jmp local:318",
            " cmp ebx,0x4",
            " je local:333",
            "-mov ecx,m4[eax+None*1+0x672ab8]",
            "+mov ecx,m4[eax+None*1+0x665ac8]",
            " jmp local:334",
            " mov edx,0x8",
            " mov eax,edx"
          ]
        },
        {
          "symbol": "apweapon.c::fire_weapon_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x446fdc",
          "second": "0x44735c",
          "first_instruction_count": 386,
          "second_instruction_count": 386,
          "diff": [
            "--- 0x446fdc",
            "+++ 0x44735c",
            "@@ -53,7 +53,7 @@",
            " je local:28",
            " mov eax,m4[None+None*1+drone.c::_user_drone]",
            " call dweapons.c::get_drone_as_target_",
            "-mov ebp,m4[None+None*1+0x5b3c6c]",
            "+mov ebp,m4[None+None*1+0x5a6c7c]",
            " mov edi,eax",
            " test ebp,ebp",
            " jne local:180",
            "@@ -61,11 +61,11 @@",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            " mov ebp,m4[None+None*1+apweapon.c::_current_weapon]",
            " lea ecx,m4[eax+None*1+0xffffffff]",
            "-mov ebp,m4[None+ebp*4+0x62e634]",
            "+mov ebp,m4[None+ebp*4+0x62162c]",
            " cmp ecx,0x5",
            " ja local:337",
            " jmp m4[None+ecx*4+apweapon.c::announce_weapon_+0x4c]",
            "-test m1[None+None*1+0x6748c6],0x8",
            "+test m1[None+None*1+0x6678d6],0x8",
            " jne local:27",
            " call apweapon.c::get_apache_weapon_launch_viewpoint_",
            " mov esi,m4[None+None*1+gamedata.c::_game_mode]",
            "@@ -77,7 +77,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-fild m4[None+eax*8+0x672ab0]",
            "+fild m4[None+eax*8+0x665ac0]",
            " fld m8[None+None*1+gamedata.c::_frame_time]",
            " fmul m8[None+None*1+constant:0000000000006940]",
            " fdivrp st(1)",
            "@@ -86,8 +86,8 @@",
            " cmp m4[esp+None*1+0x30],0x0",
            " jne local:88",
            " mov m4[esp+None*1+0x30],0x1",
            "-mov edx,m4[None+None*1+0x672b0c]",
            "-mov esi,m4[None+None*1+0x672b18]",
            "+mov edx,m4[None+None*1+0x665b1c]",
            "+mov esi,m4[None+None*1+0x665b28]",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv esi",
            "@@ -98,8 +98,8 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov m4[esp+None*1+0x24],edx",
            "-mov edx,m4[None+None*1+0x672b0c]",
            "-mov esi,m4[None+None*1+0x672b18]",
            "+mov edx,m4[None+None*1+0x665b1c]",
            "+mov esi,m4[None+None*1+0x665b28]",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv esi",
            "@@ -110,8 +110,8 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov m4[esp+None*1+0x28],edx",
            "-mov edx,m4[None+None*1+0x672b0c]",
            "-mov esi,m4[None+None*1+0x672b18]",
            "+mov edx,m4[None+None*1+0x665b1c]",
            "+mov esi,m4[None+None*1+0x665b28]",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv esi",
            "@@ -130,7 +130,7 @@",
            " mov edx,m4[None+None*1+apweapon.c::_current_weapon]",
            " shl edx,0x2",
            " mov eax,m4[esp+None*1+0x30]",
            "-mov esi,m4[edx+None*1+0x62e610]",
            "+mov esi,m4[edx+None*1+0x621608]",
            " cmp eax,esi",
            " jle local:136",
            " mov eax,esi",
            "@@ -144,7 +144,7 @@",
            " test esi,esi",
            " jle local:214",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "-cmp m4[None+eax*4+0x62e610],0x0",
            "+cmp m4[None+eax*4+0x621608],0x0",
            " jle local:214",
            " mov eax,m4[esp+None*1+0x24]",
            " mov ebx,m4[ecx+None*1+0x0]",
            "@@ -167,16 +167,16 @@",
            " mov ebx,eax",
            " test eax,eax",
            " je local:143",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " jne local:172",
            " or m1[eax+None*1+0x14],0x4",
            " cmp m4[None+None*1+apweapon.c::_infinite_weapons],0x0",
            " jne local:143",
            "-mov edx,m4[ebp+None*1+0x62e560]",
            "+mov edx,m4[ebp+None*1+0x621558]",
            " dec edx",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov m4[ebp+None*1+0x62e560],edx",
            "-dec m4[None+eax*4+0x62e610]",
            "+mov m4[ebp+None*1+0x621558],edx",
            "+dec m4[None+eax*4+0x621608]",
            " jmp local:143",
            " mov edx,target.c::_current_target",
            " jmp local:60",
            "@@ -207,20 +207,20 @@",
            " lea edx,m4[None+ebp*4+0x0]",
            " add edx,ebp",
            " shl edx,0x2",
            "-mov ebp,m4[edx+None*1+0x62e560]",
            "+mov ebp,m4[edx+None*1+0x621558]",
            " dec ebp",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov m4[edx+None*1+0x62e560],ebp",
            "-dec m4[None+eax*4+0x62e610]",
            "+mov m4[edx+None*1+0x621558],ebp",
            "+dec m4[None+eax*4+0x621608]",
            " test ebx,ebx",
            " je local:218",
            " mov eax,ebx",
            " call multidr.c::notify_remote_users_of_fire_",
            "-cmp m4[None+None*1+0x5b3c6c],0x2",
            "+cmp m4[None+None*1+0x5a6c7c],0x2",
            " jne local:227",
            " mov eax,m4[None+None*1+drone.c::_user_drone]",
            " call dweapons.c::get_drone_as_target_",
            "-mov ecx,m4[None+None*1+0x5b3c74]",
            "+mov ecx,m4[None+None*1+0x5a6c84]",
            " mov ecx,m4[ecx+None*1+0x3c]",
            " mov edx,eax",
            " mov eax,ecx",
            "@@ -232,12 +232,12 @@",
            " add edx,eax",
            " shl edx,0x3",
            " mov eax,m4[None+None*1+gamedata.c::_game_clock_time]",
            "-mov ebx,m4[edx+None*1+0x672ab0]",
            "+mov ebx,m4[edx+None*1+0x665ac0]",
            " mov edx,m4[None+None*1+apweapon.c::_current_weapon]",
            " add eax,ebx",
            "-mov m4[None+edx*4+0x62e658],eax",
            "+mov m4[None+edx*4+0x621650],eax",
            " mov esi,m4[None+None*1+apweapon.c::_infinite_weapons]",
            "-mov edx,m4[None+edx*4+0x62e634]",
            "+mov edx,m4[None+edx*4+0x62162c]",
            " test esi,esi",
            " jne local:259",
            " mov edi,m4[None+None*1+apweapon.c::_current_weapon]",
            "@@ -251,23 +251,23 @@",
            " lea ebx,m4[edx+eax*1+0x0]",
            " shl ebx,0x2",
            " mov eax,m4[ecx+None*1+0x1c]",
            "-mov esi,m4[ebx+None*1+0x62e560]",
            "+mov esi,m4[ebx+None*1+0x621558]",
            " mov eax,m4[eax+esi*4+0x0]",
            " call 3dbuild.c::destruct_3d_object_",
            "-mov eax,m4[ebx+None*1+0x62e560]",
            "+mov eax,m4[ebx+None*1+0x621558]",
            " mov ecx,m4[ecx+None*1+0x1c]",
            " mov m4[ecx+eax*4+0x0],0x0",
            " lea eax,m4[None+edx*4+0x0]",
            " mov edx,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov eax,m4[eax+None*1+0x62e67c]",
            "-mov m4[None+edx*4+0x62e634],eax",
            "+mov eax,m4[eax+None*1+0x621674]",
            "+mov m4[None+edx*4+0x62162c],eax",
            " mov edx,eax",
            " shl eax,0x2",
            " add eax,edx",
            "-cmp m4[None+eax*4+0x62e560],0x0",
            "+cmp m4[None+eax*4+0x621558],0x0",
            " jle local:350",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "-cmp m4[None+eax*4+0x62e610],0x0",
            "+cmp m4[None+eax*4+0x621608],0x0",
            " jle local:372",
            " mov eax,0x1",
            " add esp,0x34",
            "@@ -302,11 +302,11 @@",
            " jne local:214",
            " lea eax,m4[None+ebp*4+0x0]",
            " add eax,ebp",
            "-mov ecx,m4[None+eax*4+0x62e560]",
            "+mov ecx,m4[None+eax*4+0x621558]",
            " dec ecx",
            " mov edx,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov m4[None+eax*4+0x62e560],ecx",
            "-dec m4[None+edx*4+0x62e610]",
            "+mov m4[None+eax*4+0x621558],ecx",
            "+dec m4[None+edx*4+0x621608]",
            " jmp local:214",
            " call sound.c::play_missile3_sound_",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "@@ -320,7 +320,7 @@",
            " mov ebx,eax",
            " test eax,eax",
            " je local:214",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " jne local:325",
            " or m1[eax+None*1+0x14],0x4",
            " mov eax,ebx",
            "@@ -330,10 +330,10 @@",
            " lea edx,m4[None+ebp*4+0x0]",
            " add edx,ebp",
            " shl edx,0x2",
            "-mov edi,m4[edx+None*1+0x62e560]",
            "+mov edi,m4[edx+None*1+0x621558]",
            " dec edi",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov m4[edx+None*1+0x62e560],edi",
            "+mov m4[edx+None*1+0x621558],edi",
            " jmp local:213",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            " push eax",
            "@@ -361,10 +361,10 @@",
            " mov esi,m4[esp+edx*1+0x0]",
            " cmp ebx,esi",
            " jne local:367",
            "-cmp esi,m4[eax+None*1+0x62e560]",
            "+cmp esi,m4[eax+None*1+0x621558]",
            " jge local:367",
            " mov m4[esp+edx*1+0x0],ebp",
            "-mov m4[edx+None*1+0x62e634],ecx",
            "+mov m4[edx+None*1+0x62162c],ecx",
            " inc ecx",
            " add eax,0x14",
            " cmp ecx,0x9",
            "@@ -374,7 +374,7 @@",
            " mov edx,m4[None+None*1+gamedata.c::_game_clock_time]",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            " add edx,0x64",
            "-mov m4[None+eax*4+0x62e658],edx",
            "+mov m4[None+eax*4+0x621650],edx",
            " mov eax,0x1",
            " add esp,0x34",
            " pop ebp"
          ]
        },
        {
          "symbol": "apweapon.c::get_apache_current_weapon_rounds_left_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x44772c",
          "second": "0x447aac",
          "first_instruction_count": 3,
          "second_instruction_count": 3,
          "diff": [
            "--- 0x44772c",
            "+++ 0x447aac",
            "@@ -1,3 +1,3 @@",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov eax,m4[None+eax*4+0x62e610]",
            "+mov eax,m4[None+eax*4+0x621608]",
            " ret "
          ]
        },
        {
          "symbol": "apweapon.c::get_apache_target_in_range_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x447968",
          "second": "0x447ce8",
          "first_instruction_count": 22,
          "second_instruction_count": 22,
          "diff": [
            "--- 0x447968",
            "+++ 0x447ce8",
            "@@ -8,9 +8,9 @@",
            " shl eax,0x2",
            " add eax,edx",
            " shl eax,0x3",
            "-cmp ecx,m4[eax+None*1+0x672a98]",
            "+cmp ecx,m4[eax+None*1+0x665aa8]",
            " jg local:14",
            "-cmp ecx,m4[eax+None*1+0x672a94]",
            "+cmp ecx,m4[eax+None*1+0x665aa4]",
            " jge local:18",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "apweapon.c::get_apache_weapon_launch_viewpoint_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x44775c",
          "second": "0x447adc",
          "first_instruction_count": 157,
          "second_instruction_count": 157,
          "diff": [
            "--- 0x44775c",
            "+++ 0x447adc",
            "@@ -21,7 +21,7 @@",
            " pop ebx",
            " ret ",
            " mov ebx,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov ebx,m4[None+ebx*4+0x62e634]",
            "+mov ebx,m4[None+ebx*4+0x62162c]",
            " mov esi,m4[None+ebx*4+apweapon.c::_apache_pod_indicies]",
            " mov esi,m4[None+esi*4+apweapon.c::_apache_pod_pointers]",
            " test esi,esi",
            "@@ -30,12 +30,12 @@",
            " jle local:35",
            " lea ecx,m4[None+ebx*4+0x0]",
            " add ecx,ebx",
            "-mov eax,m4[None+ecx*4+0x62e560]",
            "+mov eax,m4[None+ecx*4+0x621558]",
            " mov ecx,m4[esi+None*1+0x1c]",
            " mov ecx,m4[ecx+eax*4+0xfffffffc]",
            " test ecx,ecx",
            " je local:75",
            "-mov edi,0x62e724",
            "+mov edi,0x621734",
            " mov esi,m4[ecx+None*1+0x8]",
            " mov ecx,0x30",
            " push edi",
            "@@ -46,7 +46,7 @@",
            " and cl,0x3",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            "-mov ecx,0x62e724",
            "+mov ecx,0x621734",
            " mov eax,ecx",
            " pop edi",
            " pop esi",
            "@@ -55,7 +55,7 @@",
            " pop ebx",
            " ret ",
            " mov ecx,0x30",
            "-mov edi,0x62e724",
            "+mov edi,0x621734",
            " mov esi,m4[None+None*1+model.c::_model_vp]",
            " push edi",
            " mov eax,ecx",
            "@@ -74,11 +74,11 @@",
            " pop ebx",
            " ret ",
            " mov ecx,0x30",
            "-mov edi,0x62e724",
            "+mov edi,0x621734",
            " mov esi,m4[esi+None*1+0x8]",
            " jmp local:40",
            " mov ecx,0x30",
            "-mov edi,0x62e724",
            "+mov edi,0x621734",
            " mov esi,m4[None+None*1+model.c::_model_vp]",
            " push edi",
            " mov eax,ecx",
            "@@ -88,10 +88,10 @@",
            " and cl,0x3",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            "-mov edx,m4[None+None*1+0x62e72c]",
            "+mov edx,m4[None+None*1+0x62173c]",
            " sub edx,0x500",
            " mov ecx,edi",
            "-mov m4[None+None*1+0x62e72c],edx",
            "+mov m4[None+None*1+0x62173c],edx",
            " mov eax,ecx",
            " pop edi",
            " pop esi",
            "@@ -100,13 +100,13 @@",
            " pop ebx",
            " ret ",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov esi,m4[None+eax*4+0x62e634]",
            "+mov esi,m4[None+eax*4+0x62162c]",
            " mov esi,m4[None+esi*4+apweapon.c::_apache_pod_indicies]",
            " mov esi,m4[None+esi*4+apweapon.c::_apache_pod_pointers]",
            " test esi,esi",
            " je local:136",
            " mov ecx,0x30",
            "-mov edi,0x62e724",
            "+mov edi,0x621734",
            " mov esi,m4[esi+None*1+0x8]",
            " push edi",
            " mov eax,ecx",
            "@@ -118,15 +118,15 @@",
            " pop edi",
            " cmp ebx,0x6",
            " je local:128",
            "-mov eax,0x62e730",
            "-mov ecx,m4[None+None*1+0x62e72c]",
            "+mov eax,0x621740",
            "+mov ecx,m4[None+None*1+0x62173c]",
            " mov ebx,m4[None+None*1+apweapon.c::_hydra_elevation_angle]",
            " sub ecx,0x100",
            " xor edx,edx",
            "-mov m4[None+None*1+0x62e72c],ecx",
            "+mov m4[None+None*1+0x62173c],ecx",
            " xor ecx,ecx",
            " call matrix.c::rotate_matrix_3x3_",
            "-mov ecx,0x62e724",
            "+mov ecx,0x621734",
            " mov eax,ecx",
            " pop edi",
            " pop esi",
            "@@ -135,7 +135,7 @@",
            " pop ebx",
            " ret ",
            " mov ecx,0x30",
            "-mov edi,0x62e724",
            "+mov edi,0x621734",
            " mov esi,m4[None+None*1+model.c::_model_vp]",
            " jmp local:110",
            " push 0x3fe",
            "@@ -145,8 +145,8 @@",
            " xor edx,edx",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-mov eax,0x62e724",
            "-mov ecx,0x62e724",
            "+mov eax,0x621734",
            "+mov ecx,0x621734",
            " call memset::memset_",
            " mov eax,ecx",
            " pop edi"
          ]
        },
        {
          "symbol": "apweapon.c::get_chain_gun_impact_point_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x4479a8",
          "second": "0x447d28",
          "first_instruction_count": 199,
          "second_instruction_count": 199,
          "diff": [
            "--- 0x4479a8",
            "+++ 0x447d28",
            "@@ -9,13 +9,13 @@",
            " and esp,0xfffffff8",
            " mov ecx,eax",
            " call elevate.c::position_chain_gun_",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " je local:27",
            " mov eax,m4[None+None*1+elevate.c::_chain_gun_intercept]",
            " mov m4[ecx+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x62e804]",
            "+mov eax,m4[None+None*1+0x621814]",
            " mov m4[ecx+None*1+0x4],eax",
            "-mov eax,m4[None+None*1+0x62e808]",
            "+mov eax,m4[None+None*1+0x621818]",
            " mov m4[ecx+None*1+0x8],eax",
            " mov esp,ebp",
            " pop ebp",
            "@@ -28,11 +28,11 @@",
            " mov ebx,m4[None+None*1+apweapon.c::_chain_gun_vp]",
            " mov edx,m4[ebx+None*1+0x4]",
            " mov eax,m4[ebx+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " cmp eax,m4[ebx+None*1+0x8]",
            " jge local:111",
            " mov eax,m4[None+None*1+apweapon.c::_chain_gun_vp]",
            "-mov edx,m4[None+None*1+0x672b08]",
            "+mov edx,m4[None+None*1+0x665b18]",
            " mov eax,m4[eax+None*1+0x20]",
            " imul edx",
            " shld edx,eax,0x1",
            "@@ -49,7 +49,7 @@",
            " mov ebx,m4[None+None*1+apweapon.c::_chain_gun_vp]",
            " mov edx,m4[ebx+None*1+0x4]",
            " mov eax,m4[ebx+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,m4[ebx+None*1+0x8]",
            " sub edx,eax",
            " mov eax,edx",
            "@@ -69,7 +69,7 @@",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x0]",
            " mov eax,m4[None+None*1+apweapon.c::_chain_gun_vp]",
            "-mov edx,m4[None+None*1+0x672b08]",
            "+mov edx,m4[None+None*1+0x665b18]",
            " mov eax,m4[eax+None*1+0x18]",
            " imul edx",
            " shld edx,eax,0x1",
            "@@ -77,7 +77,7 @@",
            " adc edx,0x0",
            " mov eax,m4[None+None*1+apweapon.c::_chain_gun_vp]",
            " mov ebx,edx",
            "-mov edx,m4[None+None*1+0x672b08]",
            "+mov edx,m4[None+None*1+0x665b18]",
            " mov eax,m4[eax+None*1+0x1c]",
            " imul edx",
            " shld edx,eax,0x1",
            "@@ -99,7 +99,7 @@",
            " mov m4[ecx+None*1+0x4],eax",
            " mov edx,eax",
            " mov eax,m4[ecx+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov m4[ecx+None*1+0x8],eax",
            " mov esp,ebp",
            " pop ebp",
            "@@ -123,7 +123,7 @@",
            " mov esi,m4[None+None*1+apweapon.c::_chain_gun_vp]",
            " mov edx,m4[esi+None*1+0x4]",
            " mov eax,m4[esi+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov esi,m4[esi+None*1+0x8]",
            " sub esi,eax",
            " lea eax,m4[None+esi*4+0x0]",
            "@@ -176,7 +176,7 @@",
            " add ebx,edx",
            " mov edx,m4[eax+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " sub ebx,eax",
            " mov eax,ebx",
            " cdq "
          ]
        },
        {
          "symbol": "apweapon.c::get_iti_current_impact_time_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x44843c",
          "second": "0x4487c4",
          "first_instruction_count": 16,
          "second_instruction_count": 16,
          "diff": [
            "--- 0x44843c",
            "+++ 0x4487c4",
            "@@ -2,7 +2,7 @@",
            " cmp m4[None+None*1+apweapon.c::_missiles_in_iti],0x0",
            " jle local:10",
            " mov ecx,m4[None+None*1+gamedata.c::_game_clock_time]",
            "-mov eax,m4[None+None*1+0x62e484]",
            "+mov eax,m4[None+None*1+0x621494]",
            " sub eax,ecx",
            " test eax,eax",
            " jl local:13"
          ]
        },
        {
          "symbol": "apweapon.c::initialise_apache_weapons_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x446a14",
          "second": "0x446d94",
          "first_instruction_count": 72,
          "second_instruction_count": 72,
          "diff": [
            "--- 0x446a14",
            "+++ 0x446d94",
            "@@ -12,49 +12,49 @@",
            " mov esi,0x7",
            " xor ecx,ecx",
            " mov m4[None+None*1+apweapon.c::_unit_x],edx",
            "-mov m4[None+None*1+0x62e554],ecx",
            "-mov m4[None+None*1+0x62e558],ecx",
            "+mov m4[None+None*1+0x6216d0],ecx",
            "+mov m4[None+None*1+0x6216d4],ecx",
            " call vector.c::get_3d_normalised_unit_vector_",
            " mov eax,apweapon.c::_unit_y",
            " mov m4[None+None*1+apweapon.c::_unit_y],ecx",
            "-mov m4[None+None*1+0x62e548],edx",
            "-mov m4[None+None*1+0x62e54c],ecx",
            "+mov m4[None+None*1+0x6216c4],edx",
            "+mov m4[None+None*1+0x6216c8],ecx",
            " call vector.c::get_3d_normalised_unit_vector_",
            " mov eax,apweapon.c::_unit_z",
            " mov m4[None+None*1+apweapon.c::_unit_z],ecx",
            "-mov m4[None+None*1+0x62e53c],ecx",
            "-mov m4[None+None*1+0x62e540],edx",
            "+mov m4[None+None*1+0x62154c],ecx",
            "+mov m4[None+None*1+0x621550],edx",
            " call vector.c::get_3d_normalised_unit_vector_",
            " mov eax,0x5",
            "-mov m4[None+None*1+0x62e67c],edx",
            "-mov m4[None+None*1+0x62e680],ecx",
            "-mov m4[None+None*1+0x62e684],edi",
            "-mov m4[None+None*1+0x62e688],ebp",
            "-mov m4[None+None*1+0x62e69c],ebx",
            "-mov m4[None+None*1+0x62e698],esi",
            "+mov m4[None+None*1+0x621674],edx",
            "+mov m4[None+None*1+0x621678],ecx",
            "+mov m4[None+None*1+0x62167c],edi",
            "+mov m4[None+None*1+0x621680],ebp",
            "+mov m4[None+None*1+0x621694],ebx",
            "+mov m4[None+None*1+0x621690],esi",
            " mov edx,0x4",
            " mov ecx,0x6",
            "-mov m4[None+None*1+0x62e68c],eax",
            "-mov m4[None+None*1+0x62e690],edx",
            "-mov m4[None+None*1+0x62e694],ecx",
            "+mov m4[None+None*1+0x621684],eax",
            "+mov m4[None+None*1+0x621688],edx",
            "+mov m4[None+None*1+0x62168c],ecx",
            " xor eax,eax",
            " xor edx,edx",
            " xor edi,edi",
            "-mov m4[eax+None*1+0x62e560],edi",
            "+mov m4[eax+None*1+0x621558],edi",
            " add edx,0x4",
            " mov m4[eax+None*1+apweapon.c::_apache_weapons],edi",
            " add eax,0x14",
            "-mov m4[edx+None*1+0x62e654],edi",
            "+mov m4[edx+None*1+0x62164c],edi",
            " cmp edx,0x24",
            " jne local:41",
            " mov ebx,0x7",
            " mov esi,0x20",
            " mov edi,0x8",
            " mov eax,0x1",
            "-mov m4[None+None*1+0x62e5fc],ebx",
            "-mov m4[None+None*1+0x62e600],esi",
            "-mov m4[None+None*1+0x62e5e8],edi",
            "-mov m4[None+None*1+0x62e5ec],esi",
            "+mov m4[None+None*1+0x6215f4],ebx",
            "+mov m4[None+None*1+0x6215f8],esi",
            "+mov m4[None+None*1+0x6215e0],edi",
            "+mov m4[None+None*1+0x6215e4],esi",
            " mov m4[None+None*1+apweapon.c::_auto_chaff],eax",
            " call apweapon.c::reinitialise_apache_weapons_",
            " xor eax,eax",
            "@@ -64,7 +64,7 @@",
            " pop edi",
            " add eax,0x4",
            " xor edx,edx",
            "-mov m4[eax+None*1+0x62e4bc],edx",
            "+mov m4[eax+None*1+0x6214cc],edx",
            " cmp eax,0x60",
            " jne local:64",
            " pop ebp"
          ]
        },
        {
          "symbol": "apweapon.c::next_weapon_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x446e7c",
          "second": "0x4471fc",
          "first_instruction_count": 68,
          "second_instruction_count": 68,
          "diff": [
            "--- 0x446e7c",
            "+++ 0x4471fc",
            "@@ -46,9 +46,9 @@",
            " mov ebx,0x2",
            " jmp local:12",
            " lea edx,m4[None+ecx*4+0x0]",
            "-cmp m4[edx+None*1+0x62e610],0x0",
            "+cmp m4[edx+None*1+0x621608],0x0",
            " jle local:13",
            "-cmp m4[edx+None*1+0x62e634],0xffffffff",
            "+cmp m4[edx+None*1+0x62162c],0xffffffff",
            " je local:13",
            " mov ebp,0x1",
            " mov eax,m4[None+None*1+ihadss.c::_ihadss_mode]"
          ]
        },
        {
          "symbol": "apweapon.c::notify_iti_missile_destroyed_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x448394",
          "second": "0x44871c",
          "first_instruction_count": 56,
          "second_instruction_count": 56,
          "diff": [
            "--- 0x448394",
            "+++ 0x44871c",
            "@@ -21,7 +21,7 @@",
            " je local:28",
            " cmp eax,ebx",
            " jge local:28",
            "-mov edi,m4[eax+None*1+0x62e488]",
            "+mov edi,m4[eax+None*1+0x621498]",
            " add eax,0x8",
            " inc edx",
            " cmp ecx,edi",
            "@@ -34,9 +34,9 @@",
            " lea ebx,m4[None+esi*8+0x0]",
            " lea eax,m4[None+edx*8+0x0]",
            " add eax,0x8",
            "-mov ecx,m4[eax+None*1+0x62e478]",
            "+mov ecx,m4[eax+None*1+0x621488]",
            " mov m4[eax+None*1+weapons.c::_random],ecx",
            "-mov ecx,m4[eax+None*1+0x62e47c]",
            "+mov ecx,m4[eax+None*1+0x62148c]",
            " inc edx",
            " mov m4[eax+None*1+weapons.c::_play_next_random_effect_time],ecx",
            " cmp eax,ebx",
            "@@ -45,7 +45,7 @@",
            " dec esi",
            " xor eax,eax",
            " mov m4[None+esi*8+apweapon.c::_iti],eax",
            "-mov m4[None+esi*8+0x62e484],eax",
            "+mov m4[None+esi*8+0x621494],eax",
            " mov m4[None+None*1+apweapon.c::_missiles_in_iti],esi",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "apweapon.c::notify_iti_missile_launch_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x4482b0",
          "second": "0x448638",
          "first_instruction_count": 79,
          "second_instruction_count": 79,
          "diff": [
            "--- 0x4482b0",
            "+++ 0x448638",
            "@@ -36,7 +36,7 @@",
            " add ebx,edx",
            " shl ebx,0x3",
            " mov esi,eax",
            "-mov eax,m4[ebx+None*1+0x672aa0]",
            "+mov eax,m4[ebx+None*1+0x665ab0]",
            " mov edx,eax",
            " sar edx,0x1f",
            " sub eax,edx",
            "@@ -44,7 +44,7 @@",
            " mov edi,eax",
            " cmp esi,eax",
            " jge local:66",
            "-mov edx,m4[ebx+None*1+0x672a74]",
            "+mov edx,m4[ebx+None*1+0x665a84]",
            " imul edx,esi",
            " mov eax,edx",
            " sar edx,0x1f",
            "@@ -52,7 +52,7 @@",
            " mov ebp,m4[None+None*1+gamedata.c::_game_clock_time]",
            " mov edx,m4[None+None*1+apweapon.c::_missiles_in_iti]",
            " add eax,ebp",
            "-mov m4[None+edx*8+0x62e484],eax",
            "+mov m4[None+edx*8+0x621494],eax",
            " lea eax,m4[edx+None*1+0x1]",
            " mov m4[None+edx*8+apweapon.c::_iti],ecx",
            " mov m4[None+None*1+apweapon.c::_missiles_in_iti],eax",
            "@@ -71,9 +71,9 @@",
            " shl eax,0x3",
            " add edx,eax",
            " shl edx,0x3",
            "-mov esi,m4[ebx+None*1+0x672aa0]",
            "+mov esi,m4[ebx+None*1+0x665ab0]",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv esi",
            "-add eax,m4[ebx+None*1+0x672a74]",
            "+add eax,m4[ebx+None*1+0x665a84]",
            " jmp local:51"
          ]
        },
        {
          "symbol": "apweapon.c::notify_user_missile_locked_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x448478",
          "second": "0x448800",
          "first_instruction_count": 81,
          "second_instruction_count": 81,
          "diff": [
            "--- 0x448478",
            "+++ 0x448800",
            "@@ -22,20 +22,20 @@",
            " jae local:64",
            " test ecx,ecx",
            " jne local:67",
            "-push 0x62e6e6",
            "+push 0x6216f6",
            " push text:'%s'",
            "-push 0x62e704",
            "+push 0x621714",
            " call sprintf::sprintf_",
            " add esp,0xc",
            " push apweapon.c::_warnings",
            " push text:'%s'",
            "-push 0x62e6e6",
            "+push 0x6216f6",
            " call sprintf::sprintf_",
            "-mov eax,m4[None+None*1+0x62e524]",
            "-mov m4[None+None*1+0x62e528],eax",
            "+mov eax,m4[None+None*1+0x621534]",
            "+mov m4[None+None*1+0x621538],eax",
            " mov eax,m4[None+None*1+apweapon.c::_rounds]",
            " add esp,0xc",
            "-mov m4[None+None*1+0x62e524],eax",
            "+mov m4[None+None*1+0x621534],eax",
            " mov edi,0xc8",
            " mov edx,ebx",
            " mov eax,ebx",
            "@@ -71,11 +71,11 @@",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            " jmp local:38",
            "-push 0x62e6e6",
            "+push 0x6216f6",
            " push text:'%s'",
            "-push 0x62e704",
            "+push 0x621714",
            " call sprintf::sprintf_",
            "-mov eax,m4[None+None*1+0x62e524]",
            "+mov eax,m4[None+None*1+0x621534]",
            " add esp,0xc",
            "-mov m4[None+None*1+0x62e528],eax",
            "+mov m4[None+None*1+0x621538],eax",
            " jmp local:38"
          ]
        },
        {
          "symbol": "apweapon.c::reinitialise_apache_weapons_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x446b64",
          "second": "0x446ee4",
          "first_instruction_count": 132,
          "second_instruction_count": 132,
          "diff": [
            "--- 0x446b64",
            "+++ 0x446ee4",
            "@@ -8,18 +8,18 @@",
            " xor edx,edx",
            " mov edi,m4[None+None*1+elevate.c::_chain_gun_flash_object]",
            " mov m4[None+None*1+elevate.c::_chain_gun_barrel_object],edx",
            "-mov m4[None+None*1+0x5b3c6c],edx",
            "+mov m4[None+None*1+0x5a6c7c],edx",
            " mov m4[None+None*1+apweapon.c::_hydra_elevation_angle],edx",
            " mov m4[None+None*1+elevate.c::_chain_gun_mount_object],edx",
            " test edi,edi",
            " jne local:39",
            " mov ebx,0x24",
            "-mov eax,0x62e610",
            "+mov eax,0x621608",
            " xor edx,edx",
            " call memset::memset_",
            " mov ebx,0x24",
            " mov edx,0xffffffff",
            "-mov eax,0x62e634",
            "+mov eax,0x62162c",
            " call memset::memset_",
            " mov ebx,0x60",
            " mov eax,apweapon.c::_apache_pod_object_numbers",
            "@@ -41,23 +41,23 @@",
            " call 3dbuild.c::destruct_3d_object_",
            " mov m4[None+None*1+elevate.c::_chain_gun_flash_object],edx",
            " jmp local:15",
            "-mov m4[edx+None*1+0x62e560],0x4b0",
            "+mov m4[edx+None*1+0x621558],0x4b0",
            " jmp local:69",
            " mov eax,m4[ebx+None*1+apweapon.c::_apache_pod_indicies]",
            " mov ebp,0x88",
            "-mov m4[edx+None*1+0x62e560],edi",
            "+mov m4[edx+None*1+0x621558],edi",
            " mov m4[None+eax*4+apweapon.c::_apache_pod_object_numbers],ebp",
            " jmp local:69",
            "-mov m4[edx+None*1+0x62e560],0x13",
            "+mov m4[edx+None*1+0x621558],0x13",
            " mov eax,m4[ebx+None*1+apweapon.c::_apache_pod_indicies]",
            " mov m4[None+eax*4+apweapon.c::_apache_pod_object_numbers],0x89",
            " jmp local:69",
            " mov ebp,0x2",
            " mov eax,m4[ebx+None*1+apweapon.c::_apache_pod_indicies]",
            "-mov m4[edx+None*1+0x62e560],ebp",
            "+mov m4[edx+None*1+0x621558],ebp",
            " mov m4[None+eax*4+apweapon.c::_apache_pod_object_numbers],0x93",
            " jmp local:69",
            "-mov m4[edx+None*1+0x62e560],0x20",
            "+mov m4[edx+None*1+0x621558],0x20",
            " jmp local:69",
            " push ecx",
            " mov eax,m4[None+ecx*4+winfo.c::_weapon_names]",
            "@@ -68,22 +68,22 @@",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0x14",
            " lea eax,m4[None+ecx*4+0x0]",
            "-mov ecx,m4[edx+None*1+0x62e560]",
            "-mov ebp,m4[eax+None*1+0x62e610]",
            "+mov ecx,m4[edx+None*1+0x621558]",
            "+mov ebp,m4[eax+None*1+0x621608]",
            " add ebp,ecx",
            " mov ecx,m4[esp+eax*1+0x0]",
            "-mov m4[eax+None*1+0x62e610],ebp",
            "+mov m4[eax+None*1+0x621608],ebp",
            " test ecx,ecx",
            " jne local:80",
            " mov ebp,0x1",
            "-mov m4[eax+None*1+0x62e634],esi",
            "+mov m4[eax+None*1+0x62162c],esi",
            " mov m4[esp+eax*1+0x0],ebp",
            " add edx,0x14",
            " inc esi",
            " add ebx,0x4",
            " cmp esi,0x9",
            " jl local:35",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[eax+None*1+0x220]",
            " cmp m4[eax+None*1+0x2c],0x0",
            " je local:102",
            "@@ -118,15 +118,15 @@",
            " cmp ecx,eax",
            " jge local:124",
            " sub eax,0x4",
            "-mov edx,m4[eax+None*1+0x62e4b4]",
            "-mov m4[eax+None*1+0x62e4c4],edx",
            "+mov edx,m4[eax+None*1+0x6214c4]",
            "+mov m4[eax+None*1+0x6214d4],edx",
            " cmp eax,ecx",
            " jg local:119",
            " mov edx,edi",
            " lea eax,m4[ebx+None*1+0x4]",
            " add eax,0x4",
            " xor ecx,ecx",
            "-mov m4[eax+None*1+0x62e4bc],ecx",
            "+mov m4[eax+None*1+0x6214cc],ecx",
            " cmp eax,edx",
            " je local:96",
            " jmp local:126"
          ]
        },
        {
          "symbol": "apweapon.c::release_chaff_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x44767c",
          "second": "0x4479fc",
          "first_instruction_count": 46,
          "second_instruction_count": 46,
          "diff": [
            "--- 0x44767c",
            "+++ 0x4479fc",
            "@@ -6,26 +6,26 @@",
            " jbe local:33",
            " cmp eax,0x1",
            " je local:37",
            "-test m1[None+None*1+0x6748c6],0x1",
            "+test m1[None+None*1+0x6678d6],0x1",
            " jne local:42",
            " mov edx,m4[None+None*1+gamedata.c::_game_clock_time]",
            "-cmp edx,m4[None+None*1+0x62e674]",
            "+cmp edx,m4[None+None*1+0x62166c]",
            " jl local:42",
            "-cmp m4[None+None*1+0x62e62c],0x0",
            "+cmp m4[None+None*1+0x621624],0x0",
            " jle local:42",
            " mov eax,m4[None+None*1+drone.c::_user_drone]",
            " call dweapons.c::drone_do_chaff_",
            " cmp m4[None+None*1+apweapon.c::_infinite_weapons],0x0",
            " jne local:24",
            "-mov edx,m4[None+None*1+0x62e650]",
            "+mov edx,m4[None+None*1+0x621648]",
            " lea eax,m4[None+edx*4+0x0]",
            " add eax,edx",
            "-dec m4[None+eax*4+0x62e560]",
            "-dec m4[None+None*1+0x62e62c]",
            "+dec m4[None+eax*4+0x621558]",
            "+dec m4[None+None*1+0x621624]",
            " mov eax,m4[None+None*1+gamedata.c::_game_clock_time]",
            "-mov ebp,m4[None+None*1+0x672d88]",
            "+mov ebp,m4[None+None*1+0x665d98]",
            " add eax,ebp",
            "-mov m4[None+None*1+0x62e674],eax",
            "+mov m4[None+None*1+0x62166c],eax",
            " call multidr.c::notify_remote_users_of_chaff_",
            " mov eax,0x1",
            " pop ebp"
          ]
        },
        {
          "symbol": "apweapon.c::release_flare_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x4475c8",
          "second": "0x447948",
          "first_instruction_count": 46,
          "second_instruction_count": 46,
          "diff": [
            "--- 0x4475c8",
            "+++ 0x447948",
            "@@ -5,30 +5,30 @@",
            " jbe local:35",
            " cmp eax,0x1",
            " je local:38",
            "-test m1[None+None*1+0x6748c6],0x1",
            "+test m1[None+None*1+0x6678d6],0x1",
            " jne local:43",
            " mov edx,m4[None+None*1+gamedata.c::_game_clock_time]",
            "-cmp edx,m4[None+None*1+0x62e678]",
            "+cmp edx,m4[None+None*1+0x621670]",
            " jl local:43",
            "-cmp m4[None+None*1+0x62e630],0x0",
            "+cmp m4[None+None*1+0x621628],0x0",
            " jle local:43",
            " mov eax,m4[None+None*1+drone.c::_user_drone]",
            " call dweapons.c::drone_do_flare_",
            " cmp m4[None+None*1+apweapon.c::_infinite_weapons],0x0",
            " jne local:23",
            "-mov edx,m4[None+None*1+0x62e654]",
            "+mov edx,m4[None+None*1+0x62164c]",
            " lea eax,m4[None+edx*4+0x0]",
            " add eax,edx",
            "-dec m4[None+eax*4+0x62e560]",
            "-dec m4[None+None*1+0x62e630]",
            "-mov eax,m4[None+None*1+0x672df0]",
            "+dec m4[None+eax*4+0x621558]",
            "+dec m4[None+None*1+0x621628]",
            "+mov eax,m4[None+None*1+0x665e00]",
            " mov edx,eax",
            " sar edx,0x1f",
            " sub eax,edx",
            " sar eax,0x1",
            " mov edx,m4[None+None*1+gamedata.c::_game_clock_time]",
            " add eax,edx",
            "-mov m4[None+None*1+0x62e678],eax",
            "+mov m4[None+None*1+0x621670],eax",
            " call multidr.c::notify_remote_users_of_flare_",
            " mov eax,0x1",
            " pop edx"
          ]
        },
        {
          "symbol": "apweapon.c::reset_incoming_missile_warnings_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x44869c",
          "second": "0x448a24",
          "first_instruction_count": 19,
          "second_instruction_count": 19,
          "diff": [
            "--- 0x44869c",
            "+++ 0x448a24",
            "@@ -9,8 +9,8 @@",
            " xor eax,eax",
            " add eax,0x4",
            " xor ebx,ebx",
            "-mov m4[eax+None*1+0x62e528],ecx",
            "-mov m4[eax+None*1+0x62e51c],ebx",
            "+mov m4[eax+None*1+0x621538],ecx",
            "+mov m4[eax+None*1+0x62152c],ebx",
            " cmp eax,0xc",
            " jne local:9",
            " pop edx"
          ]
        },
        {
          "symbol": "apweapon.c::select_or_unarm_weapon_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x446dd8",
          "second": "0x447158",
          "first_instruction_count": 54,
          "second_instruction_count": 54,
          "diff": [
            "--- 0x446dd8",
            "+++ 0x447158",
            "@@ -7,7 +7,7 @@",
            " je local:27",
            " test dh,0x20",
            " je local:35",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " je local:15",
            " cmp m4[None+None*1+apweapon.c::_armed],0x1",
            " jne local:15"
          ]
        },
        {
          "symbol": "apweapon.c::transmit_recon_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x4480f4",
          "second": "0x448474",
          "first_instruction_count": 130,
          "second_instruction_count": 135,
          "diff": [
            "--- 0x4480f4",
            "+++ 0x448474",
            "@@ -13,22 +13,22 @@",
            " jbe local:55",
            " cmp eax,0x1",
            " je local:63",
            "-test m1[None+None*1+0x6748c6],0x2",
            "+test m1[None+None*1+0x6678d6],0x2",
            " jne local:55",
            "-mov ecx,m4[None+None*1+model.c::_model_vp]",
            "-mov edx,m4[ecx+None*1+0x0]",
            "-sar edx,0x16",
            "-lea eax,m4[None+edx*4+0x0]",
            "-mov ebx,gameplay.c::_gameplay_data",
            "-sub eax,edx",
            "-mov edx,m4[ecx+None*1+0x4]",
            "+mov edx,m4[None+None*1+model.c::_model_vp]",
            "+mov ecx,m4[edx+None*1+0x0]",
            "+sar ecx,0x16",
            "+lea eax,m4[None+ecx*4+0x0]",
            "+mov edx,m4[edx+None*1+0x4]",
            "+sub eax,ecx",
            "+mov ecx,gameplay.c::_gameplay_data",
            " shl eax,0xb",
            " sar edx,0x16",
            "-add ebx,eax",
            "+add ecx,eax",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            " shl eax,0x5",
            "-lea ecx,m4[ebx+eax*1+0x0]",
            "+add ecx,eax",
            " cmp m4[ecx+None*1+0x34],0x0",
            " je local:69",
            " mov ebx,0xc8",
            "@@ -52,7 +52,7 @@",
            " jne local:45",
            " mov esi,m4[esp+None*1+0x0]",
            " test esi,esi",
            "-jne local:117",
            "+jne local:122",
            " add esp,0x4",
            " pop ebp",
            " pop edi",
            "@@ -99,16 +99,21 @@",
            " sub eax,m4[edx+None*1+0x0]",
            " mov edx,ebp",
            " call range.c::get_approx_3d_range_",
            "-mov edx,eax",
            "+mov ebx,eax",
            " mov eax,m4[ecx+None*1+0x8]",
            " call dinfo.c::get_drone_header_main_weapon_type_",
            "-imul eax,eax,0x68",
            "-cmp edx,m4[eax+None*1+0x672a94]",
            "+mov edx,eax",
            "+shl eax,0x2",
            "+sub eax,edx",
            "+shl eax,0x2",
            "+add eax,edx",
            "+shl eax,0x3",
            "+cmp ebx,m4[eax+None*1+0x665aa4]",
            " jl local:83",
            "-cmp edx,m4[eax+None*1+0x672a98]",
            "+cmp ebx,m4[eax+None*1+0x665aa8]",
            " jg local:83",
            " cmp m4[ecx+None*1+0x114],0x0",
            "-je local:113",
            "+je local:118",
            " mov m4[esp+None*1+0x0],ecx",
            " jmp local:83",
            " mov eax,edi"
          ]
        },
        {
          "symbol": "apweapon.c::update_incoming_missile_warnings_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x448594",
          "second": "0x44891c",
          "first_instruction_count": 91,
          "second_instruction_count": 91,
          "diff": [
            "--- 0x448594",
            "+++ 0x44891c",
            "@@ -64,7 +64,7 @@",
            " call commspan.c::add_comms_panel_changing_message_",
            " mov eax,m4[ebx+None*1+apweapon.c::_rounds]",
            " imul eax,m4[eax+None*1+0x0],0x68",
            "-mov eax,m4[eax+None*1+0x672a64]",
            "+mov eax,m4[eax+None*1+0x665a74]",
            " cmp eax,0x2",
            " jae local:74",
            " add ebx,0x4"
          ]
        },
        {
          "symbol": "apweapon.c::wipe_iti_data_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x448284",
          "second": "0x44860c",
          "first_instruction_count": 13,
          "second_instruction_count": 13,
          "diff": [
            "--- 0x448284",
            "+++ 0x44860c",
            "@@ -4,8 +4,8 @@",
            " xor eax,eax",
            " add eax,0x8",
            " xor ecx,ecx",
            "-mov m4[eax+None*1+0x62e47c],ecx",
            "-mov m4[eax+None*1+0x62e478],ecx",
            "+mov m4[eax+None*1+0x62148c],ecx",
            "+mov m4[eax+None*1+0x621488],ecx",
            " cmp eax,0x40",
            " jne local:4",
            " mov m4[None+None*1+apweapon.c::_missiles_in_iti],ecx"
          ]
        },
        {
          "symbol": "arcade.c::fuel_calculations_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x43a268",
          "second": "0x43a5e8",
          "first_instruction_count": 108,
          "second_instruction_count": 108,
          "diff": [
            "--- 0x43a268",
            "+++ 0x43a5e8",
            "@@ -13,7 +13,7 @@",
            " jb local:37",
            " push edi",
            " push edx",
            "-mov ah,m1[None+None*1+0x6748c6]",
            "+mov ah,m1[None+None*1+0x6678d6]",
            " test ah,0x10",
            " jne local:96",
            " mov ebx,0x7d0",
            "@@ -21,13 +21,13 @@",
            " mov eax,text:'OUT OF FUEL'",
            " call commspan.c::add_comms_panel_message_",
            " xor edi,edi",
            "-mov dh,m1[None+None*1+0x6748c6]",
            "+mov dh,m1[None+None*1+0x6678d6]",
            " mov m4[None+None*1+model_a.c::_projected_flight_time],edi",
            "-mov m4[None+None*1+0x5a4964],edi",
            "+mov m4[None+None*1+0x597974],edi",
            " or dh,0x30",
            " mov m4[None+None*1+arcade.c::_fuel],edi",
            "-mov m4[None+None*1+0x5a4424],edi",
            "-mov m1[None+None*1+0x6748c6],dh",
            "+mov m4[None+None*1+0x597414],edi",
            "+mov m1[None+None*1+0x6678d6],dh",
            " pop edx",
            " pop edi",
            " add esp,0x8",
            "@@ -72,7 +72,7 @@",
            " fnstsw ax",
            " sahf ",
            " jae local:90",
            "-or m1[None+None*1+0x6748c5],0x4",
            "+or m1[None+None*1+0x6678d5],0x4",
            " add esp,0x8",
            " pop esi",
            " pop ecx",
            "@@ -88,7 +88,7 @@",
            " fmul m8[None+None*1+constant:1cc7711cc771ac3f]",
            " faddp st(1)",
            " jmp local:59",
            "-and m1[None+None*1+0x6748c5],0xfb",
            "+and m1[None+None*1+0x6678d5],0xfb",
            " add esp,0x8",
            " pop esi",
            " pop ecx",
            "@@ -100,7 +100,7 @@",
            " xor ebx,ebx",
            " mov esi,0x40a77000",
            " mov m4[None+None*1+arcade.c::_fuel],ebx",
            "-mov m4[None+None*1+0x5a4424],esi",
            "+mov m4[None+None*1+0x597414],esi",
            " add esp,0x8",
            " pop esi",
            " pop ecx"
          ]
        },
        {
          "symbol": "arcade.c::get_arcade_model_predicted_viewpoint_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x43a53c",
          "second": "0x43a8bc",
          "first_instruction_count": 116,
          "second_instruction_count": 116,
          "diff": [
            "--- 0x43a53c",
            "+++ 0x43a8bc",
            "@@ -24,8 +24,8 @@",
            " fxch st(0),st(1)",
            " call fchop::__CHP",
            " fxch st(0),st(2)",
            "-fistp m4[None+None*1+0x5a4568]",
            "-fistp m4[None+None*1+0x5a456c]",
            "+fistp m4[None+None*1+0x597578]",
            "+fistp m4[None+None*1+0x59757c]",
            " fxch st(0),st(3)",
            " fadd m8[None+None*1+arcade.c::_roll]",
            " fxch st(0),st(1)",
            "@@ -50,7 +50,7 @@",
            " sub esp,0x8",
            " mov eax,m4[esp+None*1+0xc]",
            " fxch st(0),st(1)",
            "-fistp m4[None+None*1+0x5a4570]",
            "+fistp m4[None+None*1+0x597580]",
            " mov m4[esp+None*1+0x18],eax",
            " fstp m8[esp+None*1+0x0]",
            " fild m4[esp+None*1+0x18]",
            "@@ -64,29 +64,29 @@",
            " call model.c::get_mat_",
            " fld m8[None+None*1+arcade.c::_mat_attitude]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-fld m8[None+None*1+0x5a44a0]",
            "+fld m8[None+None*1+0x597470]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-fld m8[None+None*1+0x5a44a8]",
            "+fld m8[None+None*1+0x597478]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-fld m8[None+None*1+0x5a44b0]",
            "+fld m8[None+None*1+0x597480]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-fld m8[None+None*1+0x5a44b8]",
            "+fld m8[None+None*1+0x597488]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-fld m8[None+None*1+0x5a44c0]",
            "+fld m8[None+None*1+0x597490]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-fld m8[None+None*1+0x5a44c8]",
            "+fld m8[None+None*1+0x597498]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            " fxch st(0),st(6)",
            " call fchop::__CHP",
            "-fistp m4[None+None*1+0x5a4574]",
            "-fld m8[None+None*1+0x5a44d0]",
            "+fistp m4[None+None*1+0x597584]",
            "+fld m8[None+None*1+0x5974a0]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            " fxch st(0),st(5)",
            " call fchop::__CHP",
            "-fistp m4[None+None*1+0x5a4578]",
            "-fld m8[None+None*1+0x5a44d8]",
            "+fistp m4[None+None*1+0x597588]",
            "+fld m8[None+None*1+0x5974a8]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-mov eax,0x5a4568",
            "+mov eax,0x597578",
            " fxch st(0),st(4)",
            " call fchop::__CHP",
            " fxch st(0),st(3)",
            "@@ -102,15 +102,15 @@",
            " fxch st(0),st(4)",
            " call fchop::__CHP",
            " fxch st(0),st(3)",
            "-fistp m4[None+None*1+0x5a457c]",
            "+fistp m4[None+None*1+0x59758c]",
            " fxch st(0),st(1)",
            "-fistp m4[None+None*1+0x5a4580]",
            "-fistp m4[None+None*1+0x5a4584]",
            "+fistp m4[None+None*1+0x597590]",
            "+fistp m4[None+None*1+0x597594]",
            " fxch st(0),st(3)",
            "-fistp m4[None+None*1+0x5a4588]",
            "+fistp m4[None+None*1+0x597598]",
            " fxch st(0),st(1)",
            "-fistp m4[None+None*1+0x5a458c]",
            "-fistp m4[None+None*1+0x5a4590]",
            "-fistp m4[None+None*1+0x5a4594]",
            "+fistp m4[None+None*1+0x59759c]",
            "+fistp m4[None+None*1+0x5975a0]",
            "+fistp m4[None+None*1+0x5975a4]",
            " add esp,0x10",
            " ret "
          ]
        },
        {
          "symbol": "arcade.c::get_relative_ground_height_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x43abf4",
          "second": "0x43af74",
          "first_instruction_count": 14,
          "second_instruction_count": 14,
          "diff": [
            "--- 0x43abf4",
            "+++ 0x43af74",
            "@@ -9,6 +9,6 @@",
            " add eax,0x900",
            " pop ecx",
            " ret ",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "arcade.c::initialise_arcade_flight_model_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x438308",
          "second": "0x438688",
          "first_instruction_count": 236,
          "second_instruction_count": 236,
          "diff": [
            "--- 0x438308",
            "+++ 0x438688",
            "@@ -17,31 +17,31 @@",
            " mov m4[None+None*1+arcade.c::_overheat_message],ecx",
            " mov m4[None+None*1+arcade.c::_reset_altitude],edx",
            " mov m4[None+None*1+arcade.c::_lateral_velocity],ecx",
            "-mov m4[None+None*1+0x5a4504],ecx",
            "+mov m4[None+None*1+0x597504],ecx",
            " mov m4[None+None*1+arcade.c::_vertical_velocity],ecx",
            "-mov m4[None+None*1+0x5a44ec],ecx",
            "+mov m4[None+None*1+0x5974c4],ecx",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],ecx",
            "-mov m4[None+None*1+0x5a450c],ecx",
            "+mov m4[None+None*1+0x59750c],ecx",
            " mov m4[None+None*1+arcade.c::_pitch],ecx",
            "-mov m4[None+None*1+0x5a441c],ecx",
            "+mov m4[None+None*1+0x5974d4],ecx",
            " mov m4[None+None*1+arcade.c::_delta_pitch],ecx",
            "-mov m4[None+None*1+0x5a448c],ecx",
            "+mov m4[None+None*1+0x59753c],ecx",
            " mov m4[None+None*1+arcade.c::_roll],ecx",
            "-mov m4[None+None*1+0x5a444c],ecx",
            "+mov m4[None+None*1+0x5974ec],ecx",
            " mov m4[None+None*1+arcade.c::_delta_roll],ecx",
            "-mov m4[None+None*1+0x5a43e4],ecx",
            "+mov m4[None+None*1+0x5974b4],ecx",
            " mov m4[None+None*1+arcade.c::_Wt],ecx",
            " fstp m8[esp+None*1+0x0]",
            " mov edx,0x40cb7500",
            " mov ecx,0x9999999a",
            "-mov m4[None+None*1+0x5a4414],edx",
            "+mov m4[None+None*1+0x59740c],edx",
            " call model.c::set_fuel_",
            " fld m8[None+None*1+arcade.c::_fuel]",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            " mov m4[None+None*1+arcade.c::_max_fuel_consumption],ecx",
            "-mov m4[None+None*1+0x5a43dc],ebx",
            "+mov m4[None+None*1+0x5973e4],ebx",
            " mov m4[None+None*1+arcade.c::_engine_timer],esi",
            "-mov m4[None+None*1+0x5a4404],esi",
            "+mov m4[None+None*1+0x597404],esi",
            " fild m4[eax+None*1+0x0]",
            " fild m4[eax+None*1+0x4]",
            " fild m4[eax+None*1+0x8]",
            "@@ -58,7 +58,7 @@",
            " cmp eax,0x1",
            " je local:226",
            " xor ebp,ebp",
            "-mov m4[None+None*1+0x5a4544],esi",
            "+mov m4[None+None*1+0x597554],esi",
            " mov m4[None+None*1+arcade.c::_forward_velocity],ebp",
            " fld m8[None+None*1+arcade.c::_x]",
            " fld m8[None+None*1+arcade.c::_y]",
            "@@ -228,9 +228,9 @@",
            " xor edx,edx",
            " mov ecx,0x40ed8800",
            " mov m4[None+None*1+arcade.c::_z],edx",
            "-mov m4[None+None*1+0x5a43d4],esi",
            "+mov m4[None+None*1+0x597444],esi",
            " mov m4[None+None*1+arcade.c::_forward_velocity],edx",
            "-mov m4[None+None*1+0x5a4544],ecx",
            "+mov m4[None+None*1+0x597554],ecx",
            " jmp local:62",
            " mov m4[None+None*1+model.c::_apache_landed],0x1",
            " jmp local:91"
          ]
        },
        {
          "symbol": "arcade.c::model_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x4395f8",
          "second": "0x439978",
          "first_instruction_count": 714,
          "second_instruction_count": 714,
          "diff": [
            "--- 0x4395f8",
            "+++ 0x439978",
            "@@ -50,7 +50,7 @@",
            " mov eax,m4[esp+None*1+0x90]",
            " mov m4[None+None*1+arcade.c::_pitch],eax",
            " mov eax,m4[esp+None*1+0x94]",
            "-mov m4[None+None*1+0x5a441c],eax",
            "+mov m4[None+None*1+0x5974d4],eax",
            " fld m8[None+None*1+arcade.c::_delta_pitch]",
            " fabs ",
            " fcomp m8[None+None*1+constant:fca9f1d24d62503f]",
            "@@ -85,7 +85,7 @@",
            " mov m4[None+None*1+arcade.c::_roll],eax",
            " mov eax,m4[esp+None*1+0x6c]",
            " fld m8[None+None*1+arcade.c::_forward_velocity]",
            "-mov m4[None+None*1+0x5a444c],eax",
            "+mov m4[None+None*1+0x5974ec],eax",
            " fabs ",
            " fld m8[esp+None*1+0x68]",
            " fmul m8[None+None*1+constant:0000000000405540]",
            "@@ -117,7 +117,7 @@",
            " jbe local:120",
            " xor edx,edx",
            " mov m4[None+None*1+arcade.c::_lateral_vmax],edx",
            "-mov m4[None+None*1+0x5a44f4],edx",
            "+mov m4[None+None*1+0x5974f4],edx",
            " fld m8[None+None*1+arcade.c::_lateral_velocity]",
            " fld m8[None+None*1+arcade.c::_lateral_vmax]",
            " fchs ",
            "@@ -138,7 +138,7 @@",
            " mov m4[None+None*1+arcade.c::_lateral_velocity],eax",
            " mov eax,m4[esp+None*1+0x9c]",
            " fldz ",
            "-mov m4[None+None*1+0x5a4504],eax",
            "+mov m4[None+None*1+0x597504],eax",
            " fxch st(0),st(1)",
            " fstp m8[None+None*1+arcade.c::_max_heading]",
            " fcomp m8[None+None*1+arcade.c::_max_heading]",
            "@@ -147,7 +147,7 @@",
            " jbe local:150",
            " xor ebx,ebx",
            " mov m4[None+None*1+arcade.c::_max_heading],ebx",
            "-mov m4[None+None*1+0x5a440c],ebx",
            "+mov m4[None+None*1+0x5974cc],ebx",
            " fld m8[None+None*1+arcade.c::_delta_heading]",
            " fmul m8[None+None*1+constant:ea2e4454fb21f93f]",
            " fld m8[None+None*1+arcade.c::_max_heading]",
            "@@ -166,7 +166,7 @@",
            " mov m4[None+None*1+arcade.c::_delta_heading],eax",
            " mov eax,m4[esp+None*1+0x7c]",
            " fld m8[None+None*1+arcade.c::_forward_velocity]",
            "-mov m4[None+None*1+0x5a4444],eax",
            "+mov m4[None+None*1+0x5974e4],eax",
            " fcomp m8[None+None*1+constant:0000000000e0a040]",
            " fnstsw ax",
            " sahf ",
            "@@ -175,7 +175,7 @@",
            " je local:492",
            " cmp m4[None+None*1+control.c::_control_input_type],0x1",
            " je local:492",
            "-mov dh,m1[None+None*1+0x6748c6]",
            "+mov dh,m1[None+None*1+0x6678d6]",
            " test dh,0x10",
            " je local:482",
            " test dh,0x20",
            "@@ -188,7 +188,7 @@",
            " jae local:191",
            " xor ecx,ecx",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],ecx",
            "-mov m4[None+None*1+0x5a450c],ecx",
            "+mov m4[None+None*1+0x59750c],ecx",
            " mov esi,m4[None+None*1+model.c::_apache_landed]",
            " test esi,esi",
            " je local:501",
            "@@ -203,17 +203,17 @@",
            " xor ebx,ebx",
            " fldz ",
            " mov m4[None+None*1+arcade.c::_roll],ebx",
            "-mov m4[None+None*1+0x5a444c],ebx",
            "+mov m4[None+None*1+0x5974ec],ebx",
            " mov m4[None+None*1+arcade.c::_delta_roll],ebx",
            "-mov m4[None+None*1+0x5a43e4],ebx",
            "+mov m4[None+None*1+0x5974b4],ebx",
            " mov m4[None+None*1+arcade.c::_delta_roll_ss],ebx",
            "-mov m4[None+None*1+0x5a44fc],ebx",
            "+mov m4[None+None*1+0x5974fc],ebx",
            " mov m4[None+None*1+arcade.c::_pitch],ebx",
            "-mov m4[None+None*1+0x5a441c],ebx",
            "+mov m4[None+None*1+0x5974d4],ebx",
            " mov m4[None+None*1+arcade.c::_delta_pitch],ebx",
            "-mov m4[None+None*1+0x5a448c],ebx",
            "+mov m4[None+None*1+0x59753c],ebx",
            " mov m4[None+None*1+arcade.c::_delta_pitch_ss],ebx",
            "-mov m4[None+None*1+0x5a453c],ebx",
            "+mov m4[None+None*1+0x597544],ebx",
            " fxch st(0),st(3)",
            " fstp m8[None+None*1+arcade.c::_delta_heading]",
            " fstp m8[None+None*1+arcade.c::_forward_velocity]",
            "@@ -223,10 +223,10 @@",
            " sahf ",
            " jbe local:552",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],ebx",
            "-mov m4[None+None*1+0x5a450c],ebx",
            "+mov m4[None+None*1+0x59750c],ebx",
            " mov eax,m4[None+None*1+arcade.c::_delta_vertical_velocity]",
            " mov m4[esp+None*1+0xd8],eax",
            "-mov eax,m4[None+None*1+0x5a450c]",
            "+mov eax,m4[None+None*1+0x59750c]",
            " mov m4[esp+None*1+0xdc],eax",
            " mov eax,m4[esp+None*1+0xd8]",
            " mov m4[esp+None*1+0x80],eax",
            "@@ -236,7 +236,7 @@",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],eax",
            " mov eax,m4[esp+None*1+0x84]",
            " fld m8[None+None*1+arcade.c::_z]",
            "-mov m4[None+None*1+0x5a450c],eax",
            "+mov m4[None+None*1+0x59750c],eax",
            " fcomp m8[None+None*1+constant:0000000000944141]",
            " fnstsw ax",
            " sahf ",
            "@@ -244,7 +244,7 @@",
            " fld m8[None+None*1+arcade.c::_delta_vertical_velocity]",
            " fmul m8[None+None*1+constant:000000000000c440]",
            " fstp m8[None+None*1+arcade.c::_vertical_velocity]",
            "-mov bh,m1[None+None*1+0x6748c6]",
            "+mov bh,m1[None+None*1+0x6678d6]",
            " test bh,0x10",
            " je local:600",
            " fld m8[None+None*1+arcade.c::_vertical_velocity]",
            "@@ -259,8 +259,8 @@",
            " mov eax,m4[esp+None*1+0x10]",
            " mov m4[None+None*1+arcade.c::_vertical_velocity],eax",
            " mov eax,m4[esp+None*1+0x14]",
            "-mov m4[None+None*1+0x5a44ec],eax",
            "-mov ch,m1[None+None*1+0x6748c6]",
            "+mov m4[None+None*1+0x5974c4],eax",
            "+mov ch,m1[None+None*1+0x6678d6]",
            " test ch,0x10",
            " je local:680",
            " test ch,0x20",
            "@@ -279,7 +279,7 @@",
            " mov eax,m4[esp+None*1+0xd0]",
            " mov m4[None+None*1+arcade.c::_engine_rpm],eax",
            " mov eax,m4[esp+None*1+0xd4]",
            "-mov m4[None+None*1+0x5a443c],eax",
            "+mov m4[None+None*1+0x597424],eax",
            " fldz ",
            " fcomp m8[None+None*1+arcade.c::_rotor_rpm]",
            " fnstsw ax",
            "@@ -295,10 +295,10 @@",
            " xor esi,esi",
            " fmul m8[None+None*1+constant:4e1be8b4814e7b3f]",
            " mov m4[None+None*1+model_a.c::_model_engine_torque_2],esi",
            "-mov m4[None+None*1+0x5a4994],esi",
            "+mov m4[None+None*1+0x5979a4],esi",
            " mov m4[None+None*1+model_a.c::_model_engine_torque_1],esi",
            " fadd m8[None+None*1+constant:000000000000f0bf]",
            "-mov m4[None+None*1+0x5a498c],esi",
            "+mov m4[None+None*1+0x59799c],esi",
            " fstp m8[None+None*1+arcade.c::_delta_vertical_velocity]",
            " fldz ",
            " fcomp m8[None+None*1+arcade.c::_engine_rpm]",
            "@@ -312,7 +312,7 @@",
            " mov m4[None+None*1+arcade.c::_engine_rpm],eax",
            " mov eax,m4[esp+None*1+0x54]",
            " fldz ",
            "-mov m4[None+None*1+0x5a443c],eax",
            "+mov m4[None+None*1+0x597424],eax",
            " fcomp m8[None+None*1+arcade.c::_rotor_rpm]",
            " fnstsw ax",
            " sahf ",
            "@@ -333,7 +333,7 @@",
            " mov eax,m4[esp+None*1+0x58]",
            " mov m4[None+None*1+arcade.c::_rotor_rpm],eax",
            " mov eax,m4[esp+None*1+0x5c]",
            "-mov m4[None+None*1+0x5a442c],eax",
            "+mov m4[None+None*1+0x59741c],eax",
            " call arcade.c::fuel_calculations_",
            " call arcade.c::auto_hover_",
            " mov esp,ebp",
            "@@ -364,7 +364,7 @@",
            " jmp local:49",
            " mov eax,m4[None+None*1+arcade.c::_pitch]",
            " mov m4[esp+None*1+0xa0],eax",
            "-mov eax,m4[None+None*1+0x5a441c]",
            "+mov eax,m4[None+None*1+0x5974d4]",
            " jmp local:358",
            " fld m8[None+None*1+arcade.c::_pitch]",
            " fcomp m8[None+None*1+constant:9b742d3852c1d0bf]",
            "@@ -395,7 +395,7 @@",
            " jmp local:377",
            " mov eax,m4[None+None*1+arcade.c::_pitch]",
            " mov m4[esp+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x5a441c]",
            "+mov eax,m4[None+None*1+0x5974d4]",
            " mov m4[esp+None*1+0x4],eax",
            " jmp local:390",
            " fld m8[None+None*1+arcade.c::_roll]",
            "@@ -413,7 +413,7 @@",
            " jmp local:82",
            " mov eax,m4[None+None*1+arcade.c::_roll]",
            " mov m4[esp+None*1+0xb0],eax",
            "-mov eax,m4[None+None*1+0x5a444c]",
            "+mov eax,m4[None+None*1+0x5974ec]",
            " mov m4[esp+None*1+0xb4],eax",
            " jmp local:409",
            " fld m8[None+None*1+arcade.c::_lateral_velocity]",
            "@@ -423,7 +423,7 @@",
            " jbe local:431",
            " mov eax,m4[None+None*1+arcade.c::_lateral_vmax]",
            " mov m4[esp+None*1+0x88],eax",
            "-mov eax,m4[None+None*1+0x5a44f4]",
            "+mov eax,m4[None+None*1+0x5974f4]",
            " mov m4[esp+None*1+0x8c],eax",
            " mov eax,m4[esp+None*1+0x88]",
            " mov m4[esp+None*1+0x98],eax",
            "@@ -431,7 +431,7 @@",
            " jmp local:131",
            " mov eax,m4[None+None*1+arcade.c::_lateral_velocity]",
            " mov m4[esp+None*1+0x88],eax",
            "-mov eax,m4[None+None*1+0x5a4504]",
            "+mov eax,m4[None+None*1+0x597504]",
            " jmp local:426",
            " fld m8[esp+None*1+0x70]",
            " fcomp m8[None+None*1+arcade.c::_max_heading]",
            "@@ -440,7 +440,7 @@",
            " jbe local:448",
            " mov eax,m4[None+None*1+arcade.c::_max_heading]",
            " mov m4[esp+None*1+0x48],eax",
            "-mov eax,m4[None+None*1+0x5a440c]",
            "+mov eax,m4[None+None*1+0x5974cc]",
            " mov m4[esp+None*1+0x4c],eax",
            " mov eax,m4[esp+None*1+0x48]",
            " mov m4[esp+None*1+0x78],eax",
            "@@ -490,7 +490,7 @@",
            " fchs ",
            " fstp m8[None+None*1+arcade.c::_delta_vertical_velocity]",
            " jmp local:182",
            "-mov ah,m1[None+None*1+0x6748c6]",
            "+mov ah,m1[None+None*1+0x6678d6]",
            " test ah,0x10",
            " je local:497",
            " test ah,0x20",
            "@@ -527,7 +527,7 @@",
            " mov eax,m4[esp+None*1+0xac]",
            " fxch st(0),st(1)",
            " fadd m8[None+None*1+arcade.c::_heading]",
            "-mov m4[None+None*1+0x5a4544],eax",
            "+mov m4[None+None*1+0x597554],eax",
            " fstp m8[None+None*1+arcade.c::_heading]",
            " fadd m8[None+None*1+arcade.c::_lateral_velocity]",
            " mov eax,m4[esp+None*1+0xe8]",
            "@@ -574,7 +574,7 @@",
            " jmp local:512",
            " mov eax,m4[None+None*1+arcade.c::_forward_velocity]",
            " mov m4[esp+None*1+0xc8],eax",
            "-mov eax,m4[None+None*1+0x5a4544]",
            "+mov eax,m4[None+None*1+0x597554]",
            " jmp local:568",
            " fld1 ",
            " fcomp m8[None+None*1+arcade.c::_delta_vertical_velocity]",
            "@@ -629,7 +629,7 @@",
            " jmp local:258",
            " mov eax,m4[None+None*1+arcade.c::_vertical_velocity]",
            " mov m4[esp+None*1+0x18],eax",
            "-mov eax,m4[None+None*1+0x5a44ec]",
            "+mov eax,m4[None+None*1+0x5974c4]",
            " mov m4[esp+None*1+0x1c],eax",
            " jmp local:624",
            " fld m8[None+None*1+arcade.c::_vertical_velocity]",
            "@@ -647,7 +647,7 @@",
            " jmp local:610",
            " mov eax,m4[None+None*1+arcade.c::_vertical_velocity]",
            " mov m4[esp+None*1+0x28],eax",
            "-mov eax,m4[None+None*1+0x5a44ec]",
            "+mov eax,m4[None+None*1+0x5974c4]",
            " mov m4[esp+None*1+0x2c],eax",
            " mov eax,m4[esp+None*1+0x28]",
            " mov m4[esp+None*1+0x20],eax",
            "@@ -656,11 +656,11 @@",
            " xor esi,esi",
            " fldz ",
            " mov m4[None+None*1+model_a.c::_model_engine_torque_2],esi",
            "-mov m4[None+None*1+0x5a4994],esi",
            "+mov m4[None+None*1+0x5979a4],esi",
            " mov m4[None+None*1+model_a.c::_model_engine_torque_1],esi",
            "-mov m4[None+None*1+0x5a498c],esi",
            "+mov m4[None+None*1+0x59799c],esi",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],esi",
            "-mov m4[None+None*1+0x5a450c],esi",
            "+mov m4[None+None*1+0x59750c],esi",
            " fcomp m8[None+None*1+arcade.c::_engine_rpm]",
            " fnstsw ax",
            " sahf ",
            "@@ -668,7 +668,7 @@",
            " mov eax,m4[esp+None*1+0xd0]",
            " mov m4[None+None*1+arcade.c::_engine_rpm],eax",
            " mov eax,m4[esp+None*1+0xd4]",
            "-mov m4[None+None*1+0x5a443c],eax",
            "+mov m4[None+None*1+0x597424],eax",
            " fldz ",
            " fcomp m8[None+None*1+arcade.c::_rotor_rpm]",
            " fnstsw ax",
            "@@ -681,12 +681,12 @@",
            " xor edi,edi",
            " mov eax,0x40590000",
            " mov m4[None+None*1+arcade.c::_rotor_rpm],edi",
            "-mov m4[None+None*1+0x5a442c],eax",
            "+mov m4[None+None*1+0x59741c],eax",
            " mov m4[None+None*1+arcade.c::_engine_rpm],edi",
            "-mov m4[None+None*1+0x5a443c],eax",
            "+mov m4[None+None*1+0x597424],eax",
            " mov eax,m4[None+None*1+arcade.c::_engine_rpm]",
            " mov m4[esp+None*1+0xb8],eax",
            "-mov eax,m4[None+None*1+0x5a443c]",
            "+mov eax,m4[None+None*1+0x597424]",
            " mov m4[esp+None*1+0xbc],eax",
            " mov eax,m4[esp+None*1+0xb8]",
            " mov m4[esp+None*1+0x50],eax",
            "@@ -709,6 +709,6 @@",
            " jmp local:332",
            " mov eax,m4[None+None*1+arcade.c::_rotor_rpm]",
            " mov m4[esp+None*1+0x40],eax",
            "-mov eax,m4[None+None*1+0x5a442c]",
            "+mov eax,m4[None+None*1+0x59741c]",
            " mov m4[esp+None*1+0x44],eax",
            " jmp local:328"
          ]
        },
        {
          "symbol": "arcade.c::set_arcade_fuel_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x43a3fc",
          "second": "0x43a77c",
          "first_instruction_count": 31,
          "second_instruction_count": 31,
          "diff": [
            "--- 0x43a3fc",
            "+++ 0x43a77c",
            "@@ -11,7 +11,7 @@",
            " fadd m8[None+None*1+arcade.c::_Wt]",
            " mov eax,m4[esp+None*1+0x14]",
            " fstp m8[None+None*1+arcade.c::_Wt]",
            "-mov m4[None+None*1+0x5a4424],eax",
            "+mov m4[None+None*1+0x597414],eax",
            " fcomp m8[esp+None*1+0x10]",
            " fnstsw ax",
            " sahf "
          ]
        },
        {
          "symbol": "arcade.c::set_arcade_model_collective_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x43a74c",
          "second": "0x43aacc",
          "first_instruction_count": 135,
          "second_instruction_count": 135,
          "diff": [
            "--- 0x43a74c",
            "+++ 0x43aacc",
            "@@ -17,7 +17,7 @@",
            " mov edi,0x9999999a",
            " mov ebp,0xbfe99999",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],edi",
            "-mov m4[None+None*1+0x5a450c],ebp",
            "+mov m4[None+None*1+0x59750c],ebp",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -38,7 +38,7 @@",
            " mov ebx,0x33333333",
            " mov esi,0xbfe33333",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],ebx",
            "-mov m4[None+None*1+0x5a450c],esi",
            "+mov m4[None+None*1+0x59750c],esi",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -50,7 +50,7 @@",
            " mov edx,0x9999999a",
            " mov ecx,0xbfd99999",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],edx",
            "-mov m4[None+None*1+0x5a450c],ecx",
            "+mov m4[None+None*1+0x59750c],ecx",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -62,7 +62,7 @@",
            " mov ebp,0x9999999a",
            " mov eax,0xbfc99999",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],ebp",
            "-mov m4[None+None*1+0x5a450c],eax",
            "+mov m4[None+None*1+0x59750c],eax",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -73,7 +73,7 @@",
            " ret ",
            " xor esi,esi",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],esi",
            "-mov m4[None+None*1+0x5a450c],esi",
            "+mov m4[None+None*1+0x59750c],esi",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -85,7 +85,7 @@",
            " mov ecx,0x9999999a",
            " mov ebx,0x3fc99999",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],ecx",
            "-mov m4[None+None*1+0x5a450c],ebx",
            "+mov m4[None+None*1+0x59750c],ebx",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -97,7 +97,7 @@",
            " mov eax,0x9999999a",
            " mov edx,0x3fd99999",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],eax",
            "-mov m4[None+None*1+0x5a450c],edx",
            "+mov m4[None+None*1+0x59750c],edx",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -112,7 +112,7 @@",
            " mov ebx,0x9999999a",
            " mov esi,0x3fe99999",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],ebx",
            "-mov m4[None+None*1+0x5a450c],esi",
            "+mov m4[None+None*1+0x59750c],esi",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -124,7 +124,7 @@",
            " xor edx,edx",
            " mov ecx,0x3ff00000",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],edx",
            "-mov m4[None+None*1+0x5a450c],ecx",
            "+mov m4[None+None*1+0x59750c],ecx",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx"
          ]
        },
        {
          "symbol": "arcade.c::set_arcade_variables_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x43a8bc",
          "second": "0x43ac3c",
          "first_instruction_count": 104,
          "second_instruction_count": 104,
          "diff": [
            "--- 0x43a8bc",
            "+++ 0x43ac3c",
            "@@ -75,11 +75,11 @@",
            " fxch st(0),st(1)",
            " fmulp st(2)",
            " mov m4[None+None*1+arcade.c::_delta_pitch],edx",
            "-mov m4[None+None*1+0x5a448c],edx",
            "+mov m4[None+None*1+0x59753c],edx",
            " mov m4[None+None*1+arcade.c::_delta_heading],edx",
            "-mov m4[None+None*1+0x5a4444],edx",
            "+mov m4[None+None*1+0x5974e4],edx",
            " mov m4[None+None*1+arcade.c::_delta_roll],edx",
            "-mov m4[None+None*1+0x5a43e4],edx",
            "+mov m4[None+None*1+0x5974b4],edx",
            " fxch st(0),st(3)",
            " fstp m8[None+None*1+arcade.c::_pitch]",
            " mov eax,m4[None+None*1+model.c::_model_vp]"
          ]
        },
        {
          "symbol": "arcade.c::update_arcade_flight_model_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x438768",
          "second": "0x438ae8",
          "first_instruction_count": 547,
          "second_instruction_count": 547,
          "diff": [
            "--- 0x438768",
            "+++ 0x438ae8",
            "@@ -25,15 +25,15 @@",
            " call arcade.c::update_control_rates_",
            " call arcade.c::model_",
            " push arcade.c::_mat_attitude",
            "-mov edx,m4[None+None*1+0x5a444c]",
            "+mov edx,m4[None+None*1+0x5974ec]",
            " push edx",
            " mov ecx,m4[None+None*1+arcade.c::_roll]",
            " push ecx",
            "-mov ebx,m4[None+None*1+0x5a441c]",
            "+mov ebx,m4[None+None*1+0x5974d4]",
            " push ebx",
            " mov esi,m4[None+None*1+arcade.c::_pitch]",
            " push esi",
            "-mov edi,m4[None+None*1+0x5a4494]",
            "+mov edi,m4[None+None*1+0x59754c]",
            " push edi",
            " mov eax,m4[None+None*1+arcade.c::_heading]",
            " push eax",
            "@@ -46,49 +46,49 @@",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0xc],eax",
            "-fld m8[None+None*1+0x5a44a0]",
            "+fld m8[None+None*1+0x597470]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x10],eax",
            "-fld m8[None+None*1+0x5a44a8]",
            "+fld m8[None+None*1+0x597478]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x14],eax",
            "-fld m8[None+None*1+0x5a44b0]",
            "+fld m8[None+None*1+0x597480]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x18],eax",
            "-fld m8[None+None*1+0x5a44b8]",
            "+fld m8[None+None*1+0x597488]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x1c],eax",
            "-fld m8[None+None*1+0x5a44c0]",
            "+fld m8[None+None*1+0x597490]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x20],eax",
            "-fld m8[None+None*1+0x5a44c8]",
            "+fld m8[None+None*1+0x597498]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x24],eax",
            "-fld m8[None+None*1+0x5a44d0]",
            "+fld m8[None+None*1+0x5974a0]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x28],eax",
            "-fmul m8[None+None*1+0x5a44d8]",
            "+fmul m8[None+None*1+0x5974a8]",
            " fld m8[None+None*1+gamedata.c::_frame_time]",
            " fld m8[None+None*1+arcade.c::_vertical_velocity]",
            " fmul st(1)",
            "@@ -98,14 +98,14 @@",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x2c],eax",
            " fld m8[None+None*1+arcade.c::_forward_velocity]",
            "-fld m8[None+None*1+0x5a44b0]",
            "-fmul st(1)",
            "-fld m8[None+None*1+0x5a44b8]",
            "+fld m8[None+None*1+0x597480]",
            "+fmul st(1)",
            "+fld m8[None+None*1+0x597488]",
            " fmulp st(2)",
            " fld m8[None+None*1+arcade.c::_lateral_velocity]",
            " fld m8[None+None*1+arcade.c::_mat_attitude]",
            " fmul st(1)",
            "-fld m8[None+None*1+0x5a44a0]",
            "+fld m8[None+None*1+0x597470]",
            " fmulp st(2)",
            " fmul st(4)",
            " fxch st(0),st(1)",
            "@@ -117,7 +117,7 @@",
            " fxch st(0),st(4)",
            " fstp m8[None+None*1+arcade.c::_dz]",
            " mov ecx,m4[None+None*1+arcade.c::_dz]",
            "-mov edx,m4[None+None*1+0x5a43fc]",
            "+mov edx,m4[None+None*1+0x5973fc]",
            " fstp m8[None+None*1+arcade.c::_dx]",
            " fstp m8[None+None*1+arcade.c::_dy]",
            " fxch st(0),st(1)",
            "@@ -131,7 +131,7 @@",
            " jne local:414",
            " test ecx,ecx",
            " jne local:414",
            "-mov ah,m1[None+None*1+0x6748c6]",
            "+mov ah,m1[None+None*1+0x6678d6]",
            " test ah,0x10",
            " jne local:414",
            " test ah,0x20",
            "@@ -168,7 +168,7 @@",
            " mov m4[None+None*1+arcade.c::_x],eax",
            " mov eax,m4[esp+None*1+0x1c]",
            " fldz ",
            "-mov m4[None+None*1+0x5a445c],eax",
            "+mov m4[None+None*1+0x597434],eax",
            " fcomp m8[None+None*1+arcade.c::_y]",
            " fnstsw ax",
            " sahf ",
            "@@ -180,7 +180,7 @@",
            " mov m4[None+None*1+arcade.c::_y],eax",
            " mov eax,m4[esp+None*1+0x2c]",
            " fld m8[None+None*1+arcade.c::_z]",
            "-mov m4[None+None*1+0x5a4464],eax",
            "+mov m4[None+None*1+0x59743c],eax",
            " fcomp m8[None+None*1+arcade.c::_height]",
            " fnstsw ax",
            " sahf ",
            "@@ -273,7 +273,7 @@",
            " fld m8[None+None*1+arcade.c::_lateral_velocity]",
            " fmulp st(2)",
            " fld m8[None+None*1+arcade.c::_vertical_velocity]",
            "-mov dh,m1[None+None*1+0x6748c6]",
            "+mov dh,m1[None+None*1+0x6678d6]",
            " call fchop::__CHP",
            " fistp m4[None+None*1+model.c::_model_rate_of_climb]",
            " call fchop::__CHP",
            "@@ -292,7 +292,7 @@",
            " mov esi,0x2",
            " call sound.c::start_rotor2_sound_",
            " mov m4[None+None*1+arcade.c::_rotor_sound],esi",
            "-test m1[None+None*1+0x6748c6],0x10",
            "+test m1[None+None*1+0x6678d6],0x10",
            " jne local:487",
            " fld1 ",
            " fadd m8[None+None*1+arcade.c::_delta_vertical_velocity]",
            "@@ -300,8 +300,8 @@",
            " fld m8[None+None*1+arcade.c::_engine_rpm]",
            " mov eax,m4[None+None*1+arcade.c::_left_engine_temperature]",
            " mov m4[None+None*1+model_a.c::_model_engine_temp_1],eax",
            "-mov eax,m4[None+None*1+0x5a4484]",
            "-mov m4[None+None*1+0x5a496c],eax",
            "+mov eax,m4[None+None*1+0x597464]",
            "+mov m4[None+None*1+0x59797c],eax",
            " call fchop::__CHP",
            " fxch st(0),st(1)",
            " call fchop::__CHP",
            "@@ -315,7 +315,7 @@",
            " fstp m8[None+None*1+model_a.c::_model_engine_torque_1]",
            " fild m4[esp+None*1+0x40]",
            " fstp m8[None+None*1+model_a.c::_model_engine_rpm_1]",
            "-test m1[None+None*1+0x6748c6],0x20",
            "+test m1[None+None*1+0x6678d6],0x20",
            " jne local:511",
            " fld1 ",
            " fadd m8[None+None*1+arcade.c::_delta_vertical_velocity]",
            "@@ -323,8 +323,8 @@",
            " fld m8[None+None*1+arcade.c::_engine_rpm]",
            " mov eax,m4[None+None*1+arcade.c::_right_engine_temperature]",
            " mov m4[None+None*1+model_a.c::_model_engine_temp_2],eax",
            "-mov eax,m4[None+None*1+0x5a4454]",
            "-mov m4[None+None*1+0x5a4974],eax",
            "+mov eax,m4[None+None*1+0x59742c]",
            "+mov m4[None+None*1+0x597984],eax",
            " call fchop::__CHP",
            " fxch st(0),st(1)",
            " call fchop::__CHP",
            "@@ -345,7 +345,7 @@",
            " jbe local:535",
            " mov eax,m4[None+None*1+model_a.c::_model_engine_torque_1]",
            " mov m4[esp+None*1+0x30],eax",
            "-mov eax,m4[None+None*1+0x5a498c]",
            "+mov eax,m4[None+None*1+0x59799c]",
            " mov m4[esp+None*1+0x34],eax",
            " fld1 ",
            " fadd m8[None+None*1+arcade.c::_delta_vertical_velocity]",
            "@@ -391,7 +391,7 @@",
            " mov m4[None+None*1+model_a.c::_model_collective],eax",
            " mov eax,m4[esp+None*1+0x24]",
            " fistp m4[esp+None*1+0x38]",
            "-mov m4[None+None*1+0x5a4984],eax",
            "+mov m4[None+None*1+0x597994],eax",
            " mov eax,m4[esp+None*1+0x38]",
            " mov m4[esp+None*1+0x40],eax",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            "@@ -402,7 +402,7 @@",
            " call dbrecord.c::record_player_position_",
            " mov eax,m4[None+None*1+arcade.c::_height]",
            " mov m4[None+None*1+arcade.c::_last_frame_ground_height],eax",
            "-mov eax,m4[None+None*1+0x5a447c]",
            "+mov eax,m4[None+None*1+0x59745c]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov esp,ebp",
            " pop ebp",
            "@@ -430,7 +430,7 @@",
            " jmp local:166",
            " mov eax,m4[None+None*1+arcade.c::_x]",
            " mov m4[esp+None*1+0x10],eax",
            "-mov eax,m4[None+None*1+0x5a445c]",
            "+mov eax,m4[None+None*1+0x597434]",
            " mov m4[esp+None*1+0x14],eax",
            " jmp local:425",
            " fld m8[None+None*1+arcade.c::_y]",
            "@@ -448,7 +448,7 @@",
            " jmp local:177",
            " mov eax,m4[None+None*1+arcade.c::_y]",
            " mov m4[esp+None*1+0x8],eax",
            "-mov eax,m4[None+None*1+0x5a4464]",
            "+mov eax,m4[None+None*1+0x59743c]",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[esp+None*1+0x28],eax",
            "@@ -475,7 +475,7 @@",
            " call trig.c::iarctan360f_",
            " mov m4[None+None*1+model.c::_model_roll],eax",
            " jmp local:269",
            "-mov bh,m1[None+None*1+0x6748c6]",
            "+mov bh,m1[None+None*1+0x6678d6]",
            " test bh,0x10",
            " jne local:294",
            " test bh,0x20",
            "@@ -535,7 +535,7 @@",
            " jmp local:339",
            " mov eax,m4[None+None*1+model_a.c::_model_engine_torque_2]",
            " mov m4[esp+None*1+0x30],eax",
            "-mov eax,m4[None+None*1+0x5a4994]",
            "+mov eax,m4[None+None*1+0x5979a4]",
            " jmp local:348",
            " xor edx,edx",
            " mov m4[esp+None*1+0x20],edx",
            "@@ -543,5 +543,5 @@",
            " jmp local:387",
            " mov eax,m4[None+None*1+model_a.c::_model_collective]",
            " mov m4[esp+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x5a4984]",
            "+mov eax,m4[None+None*1+0x597994]",
            " jmp local:382"
          ]
        },
        {
          "symbol": "arcade.c::update_control_rates_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x439174",
          "second": "0x4394f4",
          "first_instruction_count": 271,
          "second_instruction_count": 271,
          "diff": [
            "--- 0x439174",
            "+++ 0x4394f4",
            "@@ -155,7 +155,7 @@",
            " mov m4[None+None*1+arcade.c::_left_engine_temperature],eax",
            " mov eax,m4[esp+None*1+0x14]",
            " fldz ",
            "-mov m4[None+None*1+0x5a4484],eax",
            "+mov m4[None+None*1+0x597464],eax",
            " fcomp m8[None+None*1+arcade.c::_right_engine_temperature]",
            " fnstsw ax",
            " sahf ",
            "@@ -176,7 +176,7 @@",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[None+None*1+arcade.c::_right_engine_temperature],eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov m4[None+None*1+0x5a4454],eax",
            "+mov m4[None+None*1+0x59742c],eax",
            " mov m4[None+None*1+faults.c::_apache_faults],ecx",
            " mov esp,ebp",
            " pop ebp",
            "@@ -236,12 +236,12 @@",
            " xor edx,edx",
            " mov ebx,0x40890000",
            " mov m4[None+None*1+arcade.c::_right_engine_temperature],edx",
            "-mov m4[None+None*1+0x5a4454],ebx",
            "+mov m4[None+None*1+0x59742c],ebx",
            " mov m4[None+None*1+arcade.c::_left_engine_temperature],edx",
            "-mov m4[None+None*1+0x5a4484],ebx",
            "+mov m4[None+None*1+0x597464],ebx",
            " mov eax,m4[None+None*1+arcade.c::_left_engine_temperature]",
            " mov m4[esp+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x5a4484]",
            "+mov eax,m4[None+None*1+0x597464]",
            " mov m4[esp+None*1+0x4],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x10],eax",
            "@@ -266,6 +266,6 @@",
            " jmp local:175",
            " mov eax,m4[None+None*1+arcade.c::_right_engine_temperature]",
            " mov m4[esp+None*1+0x18],eax",
            "-mov eax,m4[None+None*1+0x5a4454]",
            "+mov eax,m4[None+None*1+0x59742c]",
            " mov m4[esp+None*1+0x1c],eax",
            " jmp local:171"
          ]
        },
        {
          "symbol": "arcade.c::update_model_inputs_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x439064",
          "second": "0x4393e4",
          "first_instruction_count": 70,
          "second_instruction_count": 70,
          "diff": [
            "--- 0x439064",
            "+++ 0x4393e4",
            "@@ -29,7 +29,7 @@",
            " fxch st(0),st(1)",
            " fstp m8[None+None*1+arcade.c::_delta_pitch]",
            " fstp m8[None+None*1+arcade.c::_delta_heading]",
            "-fcomp m8[None+None*1+0x5a4548]",
            "+fcomp m8[None+None*1+0x597558]",
            " fnstsw ax",
            " sahf ",
            " je local:51",
            "@@ -40,27 +40,27 @@",
            " fld m8[None+None*1+arcade.c::_delta_roll_ss]",
            " mov ecx,0x1",
            " fxch st(0),st(3)",
            "-fstp m8[None+None*1+0x5a4548]",
            "+fstp m8[None+None*1+0x597558]",
            " fxch st(0),st(1)",
            "-fstp m8[None+None*1+0x5a4550]",
            "-fstp m8[None+None*1+0x5a4558]",
            "-fstp m8[None+None*1+0x5a4560]",
            "+fstp m8[None+None*1+0x597560]",
            "+fstp m8[None+None*1+0x597568]",
            "+fstp m8[None+None*1+0x597570]",
            " mov m4[None+None*1+arcade.c::_user_input],ecx",
            " pop ecx",
            " pop edx",
            " ret ",
            " fld m8[None+None*1+arcade.c::_delta_heading_ss]",
            "-fcomp m8[None+None*1+0x5a4550]",
            "+fcomp m8[None+None*1+0x597560]",
            " fnstsw ax",
            " sahf ",
            " jne local:35",
            " fld m8[None+None*1+arcade.c::_delta_pitch_ss]",
            "-fcomp m8[None+None*1+0x5a4558]",
            "+fcomp m8[None+None*1+0x597568]",
            " fnstsw ax",
            " sahf ",
            " jne local:35",
            " fld m8[None+None*1+arcade.c::_delta_roll_ss]",
            "-fcomp m8[None+None*1+0x5a4560]",
            "+fcomp m8[None+None*1+0x597570]",
            " fnstsw ax",
            " sahf ",
            " jne local:35"
          ]
        },
        {
          "symbol": "atarget.c::laser_bomber_aquire_target_",
          "source": "E:\\apache\\source\\warmodel\\atarget.c",
          "first": "0x464638",
          "second": "0x4647d8",
          "first_instruction_count": 114,
          "second_instruction_count": 114,
          "diff": [
            "--- 0x464638",
            "+++ 0x4647d8",
            "@@ -49,7 +49,7 @@",
            " mov eax,m4[eax+None*1+0xb8]",
            " cmp m4[eax+None*1+0xc],0x4",
            " jne local:93",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " je local:99",
            " mov eax,target.c::_current_target",
            " call targets.c::get_target_classification_"
          ]
        },
        {
          "symbol": "atarget.c::strategic_bomber_aquire_target_",
          "source": "E:\\apache\\source\\warmodel\\atarget.c",
          "first": "0x464368",
          "second": "0x464508",
          "first_instruction_count": 112,
          "second_instruction_count": 112,
          "diff": [
            "--- 0x464368",
            "+++ 0x464508",
            "@@ -97,7 +97,7 @@",
            " mov m4[esp+None*1+0x4],eax",
            " mov edx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov m4[esp+None*1+0x8],eax",
            " mov eax,esp",
            " call targets.c::designate_fixed_point_target_"
          ]
        },
        {
          "symbol": "avionics.c::draw_accelerated_time_",
          "source": "E:\\apache\\source\\avionics\\avionics.c",
          "first": "0x454630",
          "second": "0x453e8c",
          "first_instruction_count": 100,
          "second_instruction_count": 17,
          "diff": [
            "--- 0x454630",
            "+++ 0x453e8c",
            "@@ -6,7 +6,7 @@",
            " push ebp",
            " sub esp,0x4",
            " cmp m4[None+None*1+gamedata.c::_accelerated_time],0x1",
            "-jne local:17",
            "+jne avionics.c::update_next_waypoint_+0xf4",
            " add esp,0x4",
            " pop ebp",
            " pop edi",
            "@@ -15,86 +15,3 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-call screen.c::reset_screen_extent_",
            "-cmp m4[None+None*1+video.c::_video_screen_width],0x280",
            "-jne local:77",
            "-mov ecx,0x6",
            "-mov eax,text.c::_standard_5x9",
            "-mov edx,0x9",
            "-call text.c::set_text_font_",
            "-lea ebp,m4[edx+None*1+0x1]",
            "-mov ebx,m4[None+None*1+gamedata.c::_accelerated_time]",
            "-add edx,0x3",
            "-cmp ebx,0xa",
            "-jl local:81",
            "-lea eax,m4[None+ecx*4+0x0]",
            "-sub eax,ecx",
            "-mov ebx,0xe",
            "-mov m4[esp+None*1+0x0],eax",
            "-lea ecx,m4[eax+None*1+0x3]",
            "-mov esi,ebx",
            "-xor eax,eax",
            "-call fillblk.asm::_fill_block",
            "-mov ecx,m4[esp+None*1+0x0]",
            "-mov eax,0x1010101",
            "-mov ebx,0xf",
            "-mov edx,ebp",
            "-inc ecx",
            "-mov esi,ebx",
            "-call fillblk.asm::_fill_block",
            "-xor ah,ah",
            "-mov esi,0x10",
            "-mov m1[None+None*1+text.c::_text_colour],ah",
            "-mov m4[None+None*1+text.c::_text_x_position],esi",
            "-mov eax,0x78",
            "-mov m4[None+None*1+text.c::_text_y_position],esi",
            "-call text.c::print_text_character_",
            "-mov ebp,m4[None+None*1+gamedata.c::_accelerated_time]",
            "-cmp ebp,0xa",
            "-jl local:88",
            "-mov ecx,0xa",
            "-mov edx,ebp",
            "-mov eax,ebp",
            "-sar edx,0x1f",
            "-idiv ecx",
            "-add eax,0x30",
            "-and eax,0xff",
            "-call text.c::print_text_character_",
            "-mov eax,m4[None+None*1+gamedata.c::_accelerated_time]",
            "-mov edx,eax",
            "-sar edx,0x1f",
            "-idiv ecx",
            "-lea eax,m4[edx+None*1+0x30]",
            "-and eax,0xff",
            "-call text.c::print_text_character_",
            "-add esp,0x4",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov ecx,0x4",
            "-mov eax,text.c::_standard_3x5",
            "-mov edx,0x6",
            "-jmp local:23",
            "-mov ebx,0xe",
            "-add ecx,ecx",
            "-xor eax,eax",
            "-mov m4[esp+None*1+0x0],ecx",
            "-mov esi,ebx",
            "-add ecx,0x3",
            "-jmp local:36",
            "-mov al,m1[None+None*1+gamedata.c::_accelerated_time]",
            "-add al,0x30",
            "-and eax,0xff",
            "-call text.c::print_text_character_",
            "-add esp,0x4",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret "
          ]
        },
        {
          "symbol": "avionics.c::draw_avionics_displays_",
          "source": "E:\\apache\\source\\avionics\\avionics.c",
          "first": "0x453a9c",
          "second": "0x453e1c",
          "first_instruction_count": 38,
          "second_instruction_count": 24,
          "diff": [
            "--- 0x453a9c",
            "+++ 0x453e1c",
            "@@ -1,11 +1,6 @@",
            "-push edx",
            "-call screen.c::get_active_screen_",
            "-mov edx,eax",
            "-mov eax,m4[None+None*1+cockpits.c::_cockpit_screen]",
            "-call screen.c::set_active_screen_",
            " mov eax,m4[None+None*1+views.c::_view_mode]",
            " cmp eax,0x13",
            "-ja local:28",
            "+ja local:19",
            " jmp m4[None+eax*4+avionics.c::update_avionics_systems_+0x7c]",
            " call avionics.c::draw_pilot_artificial_horizon_",
            " call avionics.c::draw_mechanical_compass_",
            "@@ -16,23 +11,14 @@",
            " call mfd.c::draw_pilot_mfds_",
            " call commspan.c::draw_comms_panel_",
            " call avionics.c::draw_warning_lights_",
            "-call avionics.c::draw_accelerated_time_",
            "-mov eax,edx",
            "-call screen.c::set_active_screen_",
            "-pop edx",
            "-ret ",
            "+jmp avionics.c::draw_accelerated_time_",
            " call ihadss.c::draw_ihadss_display_",
            "-jmp local:18",
            "+jmp avionics.c::draw_accelerated_time_",
            " call ihadss.c::draw_ihadss_display_",
            " call mfd.c::draw_co_pilot_mfds_",
            "-jmp local:16",
            "+jmp local:11",
            " push 0x1c9",
            " push text:'\\\\apache\\\\source\\\\avionics\\\\avionics.c'",
            " push text:'Unknown view mode.'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-call avionics.c::draw_accelerated_time_",
            "-mov eax,edx",
            "-call screen.c::set_active_screen_",
            "-pop edx",
            "-ret "
          ]
        },
        {
          "symbol": "avionics.c::draw_warning_lights_",
          "source": "E:\\apache\\source\\avionics\\avionics.c",
          "first": "0x454a0c",
          "second": "0x454d68",
          "first_instruction_count": 319,
          "second_instruction_count": 319,
          "diff": [
            "--- 0x454a0c",
            "+++ 0x454d68",
            "@@ -34,7 +34,7 @@",
            " jne local:69",
            " mov ebp,m4[None+None*1+constant:00000000]",
            " lea eax,m4[edi+ebp*1+0x0]",
            "-mov bh,m1[None+None*1+0x6748c6]",
            "+mov bh,m1[None+None*1+0x6678d6]",
            " mov m4[esp+None*1+0xc],eax",
            " add ebp,esi",
            " test bh,0x10",
            "@@ -46,7 +46,7 @@",
            " mov eax,0x85",
            " mov ebx,edx",
            " call setblock.asm::_set_block",
            "-test m1[None+None*1+0x6748c6],0x20",
            "+test m1[None+None*1+0x6678d6],0x20",
            " je local:271",
            " mov edi,0x13a",
            " mov edx,0x6",
            "@@ -55,7 +55,7 @@",
            " mov esi,ebp",
            " mov ebx,edx",
            " call setblock.asm::_set_block",
            "-mov ch,m1[None+None*1+0x6748c6]",
            "+mov ch,m1[None+None*1+0x6678d6]",
            " test ch,0x40",
            " jne local:62",
            " test ch,0x80",
            "@@ -82,7 +82,7 @@",
            " jne local:69",
            " mov ebp,m4[None+None*1+constant:00000000]",
            " lea eax,m4[edi+ebp*1+0x0]",
            "-mov bh,m1[None+None*1+0x6748c6]",
            "+mov bh,m1[None+None*1+0x6678d6]",
            " mov m4[esp+None*1+0x8],eax",
            " add ebp,esi",
            " test bh,0x10",
            "@@ -94,7 +94,7 @@",
            " mov eax,0x88",
            " mov ebx,edx",
            " call setblock.asm::_set_block",
            "-test m1[None+None*1+0x6748c6],0x20",
            "+test m1[None+None*1+0x6678d6],0x20",
            " je local:174",
            " mov edi,0x13a",
            " mov edx,0x6",
            "@@ -103,7 +103,7 @@",
            " mov esi,ebp",
            " mov ebx,edx",
            " call setblock.asm::_set_block",
            "-mov ch,m1[None+None*1+0x6748c6]",
            "+mov ch,m1[None+None*1+0x6678d6]",
            " test ch,0x40",
            " jne local:110",
            " test ch,0x80",
            "@@ -128,7 +128,7 @@",
            " lea ebp,m4[eax+ecx*1+0x0]",
            " add eax,ebx",
            " mov m4[esp+None*1+0x4],eax",
            "-test m1[None+None*1+0x6748c6],0x10",
            "+test m1[None+None*1+0x6678d6],0x10",
            " jne local:195",
            " mov edi,0x275",
            " mov edx,0xb",
            "@@ -137,7 +137,7 @@",
            " mov esi,ebp",
            " mov ebx,edx",
            " call setblock.asm::_set_block",
            "-test m1[None+None*1+0x6748c6],0x20",
            "+test m1[None+None*1+0x6678d6],0x20",
            " je local:201",
            " mov edi,0x275",
            " mov esi,m4[esp+None*1+0x4]",
            "@@ -146,7 +146,7 @@",
            " mov ecx,0x100",
            " mov ebx,edx",
            " call setblock.asm::_set_block",
            "-mov dh,m1[None+None*1+0x6748c6]",
            "+mov dh,m1[None+None*1+0x6678d6]",
            " test dh,0x40",
            " jne local:153",
            " test dh,0x80",
            "@@ -225,7 +225,7 @@",
            " lea ebp,m4[eax+ecx*1+0x0]",
            " add eax,ebx",
            " mov m4[esp+None*1+0x0],eax",
            "-test m1[None+None*1+0x6748c6],0x10",
            "+test m1[None+None*1+0x6678d6],0x10",
            " jne local:292",
            " mov edi,0x275",
            " mov edx,0xb",
            "@@ -234,7 +234,7 @@",
            " mov esi,ebp",
            " mov ebx,edx",
            " call setblock.asm::_set_block",
            "-test m1[None+None*1+0x6748c6],0x20",
            "+test m1[None+None*1+0x6678d6],0x20",
            " je local:298",
            " mov edi,0x275",
            " mov esi,m4[esp+None*1+0x0]",
            "@@ -243,7 +243,7 @@",
            " mov ecx,0xa2",
            " mov ebx,edx",
            " call setblock.asm::_set_block",
            "-mov dh,m1[None+None*1+0x6748c6]",
            "+mov dh,m1[None+None*1+0x6678d6]",
            " test dh,0x40",
            " jne local:250",
            " test dh,0x80"
          ]
        },
        {
          "symbol": "avionics.c::get_display_values_",
          "source": "E:\\apache\\source\\avionics\\avionics.c",
          "first": "0x453b34",
          "second": "0x453eac",
          "first_instruction_count": 123,
          "second_instruction_count": 123,
          "diff": [
            "--- 0x453b34",
            "+++ 0x453eac",
            "@@ -25,7 +25,7 @@",
            " mov m4[None+None*1+avionics.c::_display_clock_time],eax",
            " mov edx,m4[ecx+None*1+0x4]",
            " mov eax,m4[ecx+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,m4[None+None*1+avionics.c::_display_barometric_altitude]",
            " sub edx,eax",
            " test edx,edx",
            "@@ -63,7 +63,7 @@",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            " mov edx,m4[eax+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,m4[None+None*1+avionics.c::_display_barometric_altitude]",
            " sub edx,eax",
            " mov eax,edx"
          ]
        },
        {
          "symbol": "avionics.c::update_avionics_systems_",
          "source": "E:\\apache\\source\\avionics\\avionics.c",
          "first": "0x4539d0",
          "second": "0x453d50",
          "first_instruction_count": 32,
          "second_instruction_count": 32,
          "diff": [
            "--- 0x4539d0",
            "+++ 0x453d50",
            "@@ -5,7 +5,7 @@",
            " mov eax,m4[eax+None*1+0x8]",
            " mov m4[None+None*1+tgtlist.c::_radar_list],edx",
            " call tarscan.c::scan_target_lists_",
            "-test m1[None+None*1+0x6748c5],0x2",
            "+test m1[None+None*1+0x6678d5],0x2",
            " jne local:14",
            " cmp m4[None+None*1+initrad.c::_ground_radar_active],0x0",
            " je local:22"
          ]
        },
        {
          "symbol": "avionics.c::update_next_waypoint_",
          "source": "E:\\apache\\source\\avionics\\avionics.c",
          "first": "0x45453c",
          "second": "0x4548b4",
          "first_instruction_count": 86,
          "second_instruction_count": 86,
          "diff": [
            "--- 0x45453c",
            "+++ 0x4548b4",
            "@@ -41,7 +41,7 @@",
            " jne local:9",
            " mov edx,m4[eax+None*1+0x14]",
            " mov eax,m4[eax+None*1+0x10]",
            "-call fxfeatur.c::get_surface_type_",
            "+call features.c::get_surface_type_",
            " cmp eax,0x3",
            " jne local:77",
            " mov m4[None+None*1+avionics.c::_played_landing_message],0x1"
          ]
        },
        {
          "symbol": "battle.c::fill_in_battle_cell_data_",
          "source": "E:\\apache\\source\\drone\\battle.c",
          "first": "0x426900",
          "second": "0x426c80",
          "first_instruction_count": 128,
          "second_instruction_count": 128,
          "diff": [
            "--- 0x426900",
            "+++ 0x426c80",
            "@@ -27,7 +27,7 @@",
            " mov eax,m4[ebx+None*1+0x5c]",
            " mov edi,m4[ebx+None*1+0x8]",
            " push eax",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[eax+edi*4+0x0]",
            " add eax,0x58",
            " push eax",
            "@@ -42,7 +42,7 @@",
            " test edx,edx",
            " jne local:57",
            " mov eax,m4[ebx+None*1+0x5c]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " push eax",
            " mov eax,m4[ebx+None*1+0x8]",
            " mov eax,m4[edx+eax*4+0x0]",
            "@@ -71,7 +71,7 @@",
            " jne local:61",
            " test edx,edx",
            " jne local:87",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ebx+None*1+0x8]",
            " mov edi,m4[ebx+None*1+0x5c]",
            " mov eax,m4[edx+eax*4+0x0]",
            "@@ -106,7 +106,7 @@",
            " add esp,0x10",
            " jmp local:17",
            " mov eax,m4[ebx+None*1+0x5c]",
            "-mov edi,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edi,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " push eax",
            " mov eax,m4[ebx+None*1+0x8]",
            " mov eax,m4[edi+eax*4+0x0]"
          ]
        },
        {
          "symbol": "battle.c::find_battle_cells_",
          "source": "E:\\apache\\source\\drone\\battle.c",
          "first": "0x426a84",
          "second": "0x426e04",
          "first_instruction_count": 104,
          "second_instruction_count": 104,
          "diff": [
            "--- 0x426a84",
            "+++ 0x426e04",
            "@@ -64,14 +64,14 @@",
            " push text:'Battle cell has allied but no enemy task'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-mov eax,m4[edx+None*1+0x538c5c]",
            "-mov ecx,m4[edx+None*1+0x538c44]",
            "-mov m4[edx+None*1+0x538c44],eax",
            "-mov m4[edx+None*1+0x538c5c],ecx",
            "-mov eax,m4[edx+None*1+0x538c60]",
            "-mov ebx,m4[edx+None*1+0x538c48]",
            "-mov m4[edx+None*1+0x538c48],eax",
            "-mov m4[edx+None*1+0x538c60],ebx",
            "+mov eax,m4[edx+None*1+0x52bc6c]",
            "+mov ecx,m4[edx+None*1+0x52bc54]",
            "+mov m4[edx+None*1+0x52bc54],eax",
            "+mov m4[edx+None*1+0x52bc6c],ecx",
            "+mov eax,m4[edx+None*1+0x52bc70]",
            "+mov ebx,m4[edx+None*1+0x52bc58]",
            "+mov m4[edx+None*1+0x52bc58],eax",
            "+mov m4[edx+None*1+0x52bc70],ebx",
            " add edx,0x34",
            " cmp edx,0x104",
            " jne local:50"
          ]
        },
        {
          "symbol": "battles.c::battle_drone_aquire_target_",
          "source": "E:\\apache\\source\\warmodel\\battles.c",
          "first": "0x465adc",
          "second": "0x465c7c",
          "first_instruction_count": 210,
          "second_instruction_count": 210,
          "diff": [
            "--- 0x465adc",
            "+++ 0x465c7c",
            "@@ -140,7 +140,7 @@",
            " shl eax,0x3",
            " cmp m4[eax+None*1+winfo.c::_weapons_data],0x3",
            " jne local:208",
            "-mov edx,m4[eax+None*1+0x672ab8]",
            "+mov edx,m4[eax+None*1+0x665ac8]",
            " mov eax,ecx",
            " lea ebx,m4[None+edx*4+0x0]",
            " call drone.c::get_drone_random_",
            "@@ -175,7 +175,7 @@",
            " mov eax,m4[esp+None*1+0x0]",
            " mov edx,ebp",
            " mov m4[esp+None*1+0x4],ebp",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov m4[esp+None*1+0x8],eax",
            " mov eax,esp",
            " call targets.c::designate_fixed_point_target_"
          ]
        },
        {
          "symbol": "battles.c::set_battle_formation_end_condition_",
          "source": "E:\\apache\\source\\warmodel\\battles.c",
          "first": "0x46586c",
          "second": "0x465a0c",
          "first_instruction_count": 134,
          "second_instruction_count": 134,
          "diff": [
            "--- 0x46586c",
            "+++ 0x465a0c",
            "@@ -77,7 +77,7 @@",
            " mov edx,m4[ebp+None*1+0x9c]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2"
          ]
        },
        {
          "symbol": "battles.c::update_battle_cells_",
          "source": "E:\\apache\\source\\warmodel\\battles.c",
          "first": "0x465610",
          "second": "0x4657b0",
          "first_instruction_count": 94,
          "second_instruction_count": 94,
          "diff": [
            "--- 0x465610",
            "+++ 0x4657b0",
            "@@ -22,7 +22,7 @@",
            " ret ",
            " mov eax,battle.c::_battle_cells",
            " add eax,ecx",
            "-mov esi,m4[ecx+None*1+0x538c54]",
            "+mov esi,m4[ecx+None*1+0x52bc64]",
            " mov m4[esp+None*1+0x0],eax",
            " lea edx,m4[eax+None*1+0x4]",
            " mov eax,esi",
            "@@ -30,7 +30,7 @@",
            " mov edx,m4[esp+None*1+0x0]",
            " mov edi,eax",
            " mov m4[esp+None*1+0x4],eax",
            "-mov ebx,m4[ecx+None*1+0x538c6c]",
            "+mov ebx,m4[ecx+None*1+0x52bc7c]",
            " add edx,0x1c",
            " mov eax,ebx",
            " call battles.c::battle_formation_survival_ratio_",
            "@@ -40,7 +40,7 @@",
            " cmp eax,0xffffffff",
            " je local:11",
            " mov edi,m4[None+None*1+gamedata.c::_game_clock_time]",
            "-cmp edi,m4[ecx+None*1+0x538c4c]",
            "+cmp edi,m4[ecx+None*1+0x52bc5c]",
            " jle local:54",
            " mov eax,esi",
            " call battles.c::release_battle_formation_targets_",
            "@@ -51,9 +51,9 @@",
            " idiv edi",
            " mov eax,m4[None+None*1+gamedata.c::_game_clock_time]",
            " add edx,eax",
            "-mov m4[ecx+None*1+0x538c4c],edx",
            "+mov m4[ecx+None*1+0x52bc5c],edx",
            " mov edx,m4[None+None*1+gamedata.c::_game_clock_time]",
            "-cmp edx,m4[ecx+None*1+0x538c64]",
            "+cmp edx,m4[ecx+None*1+0x52bc74]",
            " jle local:67",
            " mov eax,ebx",
            " call battles.c::release_battle_formation_targets_",
            "@@ -64,7 +64,7 @@",
            " idiv edi",
            " mov edi,m4[None+None*1+gamedata.c::_game_clock_time]",
            " add edx,edi",
            "-mov m4[ecx+None*1+0x538c64],edx",
            "+mov m4[ecx+None*1+0x52bc74],edx",
            " mov eax,esi",
            " call battles.c::update_battle_formation_combat_systems_",
            " mov eax,ebx"
          ]
        },
        {
          "symbol": "brief.c::add_briefing_command_",
          "source": "E:\\apache\\source\\menus\\brief\\brief.c",
          "first": "0x4110d0",
          "second": "0x411450",
          "first_instruction_count": 550,
          "second_instruction_count": 550,
          "diff": [
            "--- 0x4110d0",
            "+++ 0x411450",
            "@@ -51,7 +51,7 @@",
            " lea eax,m4[None+edx*4+0x0]",
            " add eax,edx",
            " mov edi,ecx",
            "-mov m4[None+eax*4+0x519194],ecx",
            "+mov m4[None+eax*4+0x50c1a4],ecx",
            " push edi",
            " mov al,m1[esi+None*1+0x0]",
            " mov m1[edi+None*1+0x0],al",
            "@@ -76,7 +76,7 @@",
            " mov edx,m4[None+None*1+brief.c::_number_briefing_commands]",
            " lea eax,m4[None+edx*4+0x0]",
            " add eax,edx",
            "-mov m4[None+eax*4+0x519194],ecx",
            "+mov m4[None+eax*4+0x50c1a4],ecx",
            " inc m4[None+None*1+brief.c::_number_briefing_commands]",
            " add esp,0x6c",
            " pop ebp",
            "@@ -132,7 +132,7 @@",
            " mov ecx,eax",
            " lea eax,m4[None+edx*4+0x0]",
            " add eax,edx",
            "-mov m4[None+eax*4+0x519194],ecx",
            "+mov m4[None+eax*4+0x50c1a4],ecx",
            " lea eax,m4[edx+None*1+0x1]",
            " mov m4[None+None*1+brief.c::_number_briefing_commands],eax",
            " add esp,0x6c",
            "@@ -154,7 +154,7 @@",
            " lea eax,m4[None+edx*4+0x0]",
            " add eax,edx",
            " lea edi,m4[edx+None*1+0x1]",
            "-mov m4[None+eax*4+0x519194],ecx",
            "+mov m4[None+eax*4+0x50c1a4],ecx",
            " mov m4[None+None*1+brief.c::_number_briefing_commands],edi",
            " add esp,0x6c",
            " pop ebp",
            "@@ -237,14 +237,14 @@",
            " mov esi,eax",
            " lea eax,m4[None+edi*4+0x0]",
            " add eax,edi",
            "-mov m4[None+eax*4+0x519194],esi",
            "+mov m4[None+eax*4+0x50c1a4],esi",
            " mov eax,ecx",
            " call wayget.c::get_waypoint_y_",
            " mov esi,m4[None+None*1+brief.c::_number_briefing_commands]",
            " mov ecx,eax",
            " lea eax,m4[None+esi*4+0x0]",
            " add eax,esi",
            "-mov m4[None+eax*4+0x519198],ecx",
            "+mov m4[None+eax*4+0x50c1a8],ecx",
            " cmp m1[edx+None*1+0x0],0x0",
            " je local:250",
            " inc edx",
            "@@ -259,7 +259,7 @@",
            " mov esi,eax",
            " lea eax,m4[None+edx*4+0x0]",
            " add eax,edx",
            "-mov m4[None+eax*4+0x51919c],esi",
            "+mov m4[None+eax*4+0x50c1ac],esi",
            " mov eax,ecx",
            " call wayget.c::get_waypoint_y_",
            " mov edx,m4[None+None*1+brief.c::_number_briefing_commands]",
            "@@ -267,7 +267,7 @@",
            " lea eax,m4[None+edx*4+0x0]",
            " add eax,edx",
            " lea ebx,m4[edx+None*1+0x1]",
            "-mov m4[None+eax*4+0x5191a0],ecx",
            "+mov m4[None+eax*4+0x50c1b0],ecx",
            " mov m4[None+None*1+brief.c::_number_briefing_commands],ebx",
            " add esp,0x6c",
            " pop ebp",
            "@@ -336,7 +336,7 @@",
            " mov esi,eax",
            " lea eax,m4[None+edx*4+0x0]",
            " add eax,edx",
            "-mov m4[None+eax*4+0x519194],esi",
            "+mov m4[None+eax*4+0x50c1a4],esi",
            " mov eax,ecx",
            " call wayget.c::get_waypoint_y_",
            " mov ecx,m4[None+None*1+brief.c::_number_briefing_commands]",
            "@@ -344,7 +344,7 @@",
            " lea eax,m4[None+ecx*4+0x0]",
            " add eax,ecx",
            " inc ecx",
            "-mov m4[None+eax*4+0x519198],edx",
            "+mov m4[None+eax*4+0x50c1a8],edx",
            " mov m4[None+None*1+brief.c::_number_briefing_commands],ecx",
            " add esp,0x6c",
            " pop ebp",
            "@@ -399,7 +399,7 @@",
            " mov bh,m1[eax+None*1+0x0]",
            " cmp bh,0x41",
            " jne local:409",
            "-mov m4[edi+None*1+0x519194],0x1",
            "+mov m4[edi+None*1+0x50c1a4],0x1",
            " inc eax",
            " mov dl,m1[eax+None*1+0x0]",
            " inc dl",
            "@@ -411,7 +411,7 @@",
            " je local:401",
            " cmp bh,0x45",
            " jne local:415",
            "-mov m4[ecx+None*1+0x519194],0x2",
            "+mov m4[ecx+None*1+0x50c1a4],0x2",
            " jmp local:402",
            " cmp bh,0x65",
            " je local:413",
            "@@ -420,7 +420,7 @@",
            " cmp dl,0x41",
            " jne local:430",
            " mov edx,m4[esp+None*1+0x68]",
            "-mov m4[edx+None*1+0x519198],0x1",
            "+mov m4[edx+None*1+0x50c1a8],0x1",
            " inc eax",
            " mov dl,m1[eax+None*1+0x0]",
            " inc dl",
            "@@ -432,14 +432,14 @@",
            " je local:421",
            " cmp dl,0x53",
            " jne local:436",
            "-mov m4[ebp+None*1+0x519198],0x2",
            "+mov m4[ebp+None*1+0x50c1a8],0x2",
            " jmp local:423",
            " cmp dl,0x73",
            " je local:434",
            " cmp dl,0x45",
            " jne local:443",
            " mov edx,m4[esp+None*1+0x64]",
            "-mov m4[edx+None*1+0x519198],0x3",
            "+mov m4[edx+None*1+0x50c1a8],0x3",
            " jmp local:423",
            " cmp dl,0x65",
            " je local:440",
            "@@ -447,7 +447,7 @@",
            " mov bh,m1[eax+None*1+0x0]",
            " cmp bh,0x2b",
            " jne local:461",
            "-mov m4[esi+None*1+0x51919c],0x1",
            "+mov m4[esi+None*1+0x50c1ac],0x1",
            " cmp m1[eax+None*1+0x0],0x0",
            " jne local:391",
            " inc m4[None+None*1+brief.c::_number_briefing_commands]",
            "@@ -462,7 +462,7 @@",
            " cmp bh,0x2d",
            " jne local:450",
            " xor edx,edx",
            "-mov m4[esi+None*1+0x51919c],edx",
            "+mov m4[esi+None*1+0x50c1ac],edx",
            " jmp local:450",
            " mov ebx,0x4",
            " mov edx,text:'NO3D'"
          ]
        },
        {
          "symbol": "brief.c::add_briefing_text_",
          "source": "E:\\apache\\source\\menus\\brief\\brief.c",
          "first": "0x410f8c",
          "second": "0x41130c",
          "first_instruction_count": 113,
          "second_instruction_count": 113,
          "diff": [
            "--- 0x410f8c",
            "+++ 0x41130c",
            "@@ -65,7 +65,7 @@",
            " lea eax,m4[None+ecx*4+0x0]",
            " add eax,ecx",
            " shl eax,0x2",
            "-mov m4[eax+None*1+0x519194],edx",
            "+mov m4[eax+None*1+0x50c1a4],edx",
            " test edi,edi",
            " je local:110",
            " sub ecx,ecx",
            "@@ -77,13 +77,13 @@",
            " mov edx,m4[None+None*1+brief.c::_number_briefing_commands]",
            " lea eax,m4[None+edx*4+0x0]",
            " add eax,edx",
            "-mov m4[None+eax*4+0x519198],ecx",
            "+mov m4[None+eax*4+0x50c1a8],ecx",
            " mov edx,m4[None+None*1+brief.c::_number_briefing_commands]",
            " lea eax,m4[None+edx*4+0x0]",
            " lea ecx,m4[esi+None*1+0x1]",
            " add eax,edx",
            " mov esi,ebp",
            "-mov edi,m4[None+eax*4+0x519194]",
            "+mov edi,m4[None+eax*4+0x50c1a4]",
            " push edi",
            " mov eax,ecx",
            " shr ecx,0x2",
            "@@ -109,5 +109,5 @@",
            " pop ecx",
            " ret ",
            " xor ecx,ecx",
            "-mov m4[eax+None*1+0x519198],ecx",
            "+mov m4[eax+None*1+0x50c1a8],ecx",
            " jmp local:80"
          ]
        },
        {
          "symbol": "brief.c::briefing_",
          "source": "E:\\apache\\source\\menus\\brief\\brief.c",
          "first": "0x411e64",
          "second": "0x4121e4",
          "first_instruction_count": 184,
          "second_instruction_count": 184,
          "diff": [
            "--- 0x411e64",
            "+++ 0x4121e4",
            "@@ -40,7 +40,7 @@",
            " ja local:44",
            " jmp m4[None+eax*4+brief.c::move_end_briefing_+0x34]",
            " mov eax,m4[None+None*1+umap.c::_map_briefing_subtitle_text]",
            "-mov edx,m4[edx+None*1+0x519198]",
            "+mov edx,m4[edx+None*1+0x50c1a8]",
            " call utext.c::set_object_text_start_character_",
            " inc m4[None+None*1+brief.c::_current_briefing_command]",
            " call thread.c::yield_",
            "@@ -54,7 +54,7 @@",
            " idiv ebx",
            " mov ebx,m4[None+None*1+brief.c::_current_briefing_command]",
            " imul edx,ebx,0x14",
            "-mov edx,m4[edx+None*1+0x519194]",
            "+mov edx,m4[edx+None*1+0x50c1a4]",
            " sub edx,eax",
            " mov m4[esp+None*1+0x4],edx",
            " test edx,edx",
            "@@ -72,7 +72,7 @@",
            " mov edx,m4[None+None*1+brief.c::_current_briefing_command]",
            " mov m4[None+None*1+brief.c::_briefing_time],eax",
            " imul eax,edx,0x14",
            "-mov ecx,m4[eax+None*1+0x519194]",
            "+mov ecx,m4[eax+None*1+0x50c1a4]",
            " test ecx,ecx",
            " je local:83",
            " mov eax,m4[None+None*1+umap.c::_map_briefing_subtitle_title]",
            "@@ -98,8 +98,8 @@",
            " mov eax,m4[None+None*1+umap.c::_map_3d_view_box]",
            " call uoaccess.c::set_object_displayable_",
            " imul esi,m4[None+None*1+brief.c::_current_briefing_command],0x14",
            "-mov edi,m4[esi+None*1+0x519194]",
            "-mov esi,m4[esi+None*1+0x519198]",
            "+mov edi,m4[esi+None*1+0x50c1a4]",
            "+mov esi,m4[esi+None*1+0x50c1a8]",
            " mov eax,edi",
            " mov edx,esi",
            " xor ebp,ebp",
            "@@ -118,8 +118,8 @@",
            " mov eax,m4[None+None*1+umap.c::_map_3d_view_box]",
            " call uoaccess.c::set_object_displayable_",
            " imul eax,m4[None+None*1+brief.c::_current_briefing_command],0x14",
            "-mov esi,m4[eax+None*1+0x519194]",
            "-mov eax,m4[eax+None*1+0x519198]",
            "+mov esi,m4[eax+None*1+0x50c1a4]",
            "+mov eax,m4[eax+None*1+0x50c1a8]",
            " mov m4[None+None*1+brief.c::_map_exclusion_point_count],edi",
            " mov m4[esp+None*1+0x0],eax",
            " mov edx,eax",
            "@@ -129,8 +129,8 @@",
            " imul edi,m4[None+None*1+brief.c::_current_briefing_command],0x14",
            " mov edx,m4[esp+None*1+0x0]",
            " mov eax,esi",
            "-mov ebp,m4[edi+None*1+0x51919c]",
            "-mov edi,m4[edi+None*1+0x5191a0]",
            "+mov ebp,m4[edi+None*1+0x50c1ac]",
            "+mov edi,m4[edi+None*1+0x50c1b0]",
            " mov ebx,ebp",
            " mov ecx,edi",
            " call brief.c::map_exclusion_from_3d_line_"
          ]
        },
        {
          "symbol": "brief.c::clear_briefing_information_",
          "source": "E:\\apache\\source\\menus\\brief\\brief.c",
          "first": "0x410f20",
          "second": "0x4112a0",
          "first_instruction_count": 33,
          "second_instruction_count": 33,
          "diff": [
            "--- 0x410f20",
            "+++ 0x4112a0",
            "@@ -5,7 +5,7 @@",
            " xor ecx,ecx",
            " cmp m4[ecx+None*1+brief.c::_briefing_data],0x1",
            " jne local:14",
            "-mov ebx,m4[ecx+None*1+0x519194]",
            "+mov ebx,m4[ecx+None*1+0x50c1a4]",
            " test ebx,ebx",
            " je local:14",
            " mov edx,text:'\\\\apache\\\\source\\\\menus\\\\brief\\\\brief.c'"
          ]
        },
        {
          "symbol": "campaign.c::play_campaign_animation_",
          "source": "E:\\apache\\source\\menus\\missions\\campaign.c",
          "first": "0x422ea0",
          "second": "0x423220",
          "first_instruction_count": 80,
          "second_instruction_count": 80,
          "diff": [
            "--- 0x422ea0",
            "+++ 0x423220",
            "@@ -38,11 +38,11 @@",
            " jne local:26",
            " mov esi,m4[eax+None*1+0x54]",
            " mov edi,esp",
            "-mov esi,m4[None+esi*4+constant:c4b74d00]",
            "+mov esi,m4[None+esi*4+constant:a8e84c00]",
            " jmp local:14",
            " mov esi,m4[eax+None*1+0x54]",
            " mov edi,esp",
            "-mov esi,m4[None+esi*4+constant:60b84d00]",
            "+mov esi,m4[None+esi*4+constant:44e94c00]",
            " jmp local:14",
            " call music.c::save_and_stop_music_",
            " call mouse.c::mouse_off_"
          ]
        },
        {
          "symbol": "cap.c::cap_drone_aquire_target_",
          "source": "E:\\apache\\source\\warmodel\\cap.c",
          "first": "0x46526c",
          "second": "0x46540c",
          "first_instruction_count": 284,
          "second_instruction_count": 284,
          "diff": [
            "--- 0x46526c",
            "+++ 0x46540c",
            "@@ -38,7 +38,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-fild m4[None+eax*8+0x672a98]",
            "+fild m4[None+eax*8+0x665aa8]",
            " fmul m8[None+None*1+constant:000000000000f83f]",
            " mov eax,m4[ecx+None*1+0x48]",
            " call fchop::__CHP",
            "@@ -121,7 +121,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-fild m4[None+eax*8+0x672a98]",
            "+fild m4[None+eax*8+0x665aa8]",
            " fmul m8[None+None*1+constant:000000000000f83f]",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x1c]"
          ]
        },
        {
          "symbol": "cap.c::do_cap_scan_",
          "source": "E:\\apache\\source\\warmodel\\cap.c",
          "first": "0x464f3c",
          "second": "0x4650dc",
          "first_instruction_count": 145,
          "second_instruction_count": 145,
          "diff": [
            "--- 0x464f3c",
            "+++ 0x4650dc",
            "@@ -21,7 +21,7 @@",
            " mov eax,m4[esp+None*1+0x20]",
            " mov esi,m4[esp+None*1+0x20]",
            " mov eax,m4[eax+None*1+war.c::_war_model]",
            "-mov esi,m4[esi+None*1+0x6ab694]",
            "+mov esi,m4[esi+None*1+0x69e6a4]",
            " mov m4[esp+None*1+0x28],eax",
            " test eax,eax",
            " je local:106"
          ]
        },
        {
          "symbol": "cap.c::initialise_CAP_system_",
          "source": "E:\\apache\\source\\warmodel\\cap.c",
          "first": "0x464dc0",
          "second": "0x464f60",
          "first_instruction_count": 105,
          "second_instruction_count": 105,
          "diff": [
            "--- 0x464dc0",
            "+++ 0x464f60",
            "@@ -64,8 +64,8 @@",
            " pop esi",
            " pop edi",
            " add eax,0x4",
            "-mov m4[eax+None*1+0x6b39dc],edx",
            "-mov m4[eax+None*1+0x6b37f4],edx",
            "+mov m4[eax+None*1+0x6a66bc],edx",
            "+mov m4[eax+None*1+0x6a68a4],edx",
            " cmp eax,0xa0",
            " jne local:65",
            " xor edx,edx"
          ]
        },
        {
          "symbol": "cap.c::insert_target_in_allied_cap_",
          "source": "E:\\apache\\source\\warmodel\\cap.c",
          "first": "0x46511c",
          "second": "0x4652bc",
          "first_instruction_count": 12,
          "second_instruction_count": 12,
          "diff": [
            "--- 0x46511c",
            "+++ 0x4652bc",
            "@@ -6,7 +6,7 @@",
            " pop ecx",
            " ret ",
            " inc ecx",
            "-mov m4[None+ecx*4+0x6b37f4],eax",
            "+mov m4[None+ecx*4+0x6a68a4],eax",
            " mov m4[None+None*1+cap.c::_allied_target_count],ecx",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "cap.c::insert_target_in_enemy_cap_",
          "source": "E:\\apache\\source\\warmodel\\cap.c",
          "first": "0x465140",
          "second": "0x4652e0",
          "first_instruction_count": 12,
          "second_instruction_count": 12,
          "diff": [
            "--- 0x465140",
            "+++ 0x4652e0",
            "@@ -6,7 +6,7 @@",
            " pop ecx",
            " ret ",
            " inc ecx",
            "-mov m4[None+ecx*4+0x6b39dc],eax",
            "+mov m4[None+ecx*4+0x6a66bc],eax",
            " mov m4[None+None*1+cap.c::_enemy_target_count],ecx",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "ccc.c::blow_up_ground_object_",
          "source": "E:\\apache\\source\\weapons\\ccc.c",
          "first": "0x4489a8",
          "second": "0x448d28",
          "first_instruction_count": 40,
          "second_instruction_count": 40,
          "diff": [
            "--- 0x4489a8",
            "+++ 0x448d28",
            "@@ -7,12 +7,12 @@",
            " mov ecx,eax",
            " mov ebp,edx",
            " mov edi,esp",
            "-mov esi,apweapon.c::reset_incoming_missile_warnings_+0x44",
            "+mov esi,apweapon.c::reset_incoming_missile_warnings_+0x3c",
            " xor eax,eax",
            " movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            " movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            " movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            "-mov ebx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ebx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ax,m2[ecx+None*1+0x0]",
            " mov esi,m4[ebx+eax*4+0x0]",
            " mov eax,ecx"
          ]
        },
        {
          "symbol": "ccc.c::blow_up_mobile_object_",
          "source": "E:\\apache\\source\\weapons\\ccc.c",
          "first": "0x448a04",
          "second": "0x448d84",
          "first_instruction_count": 55,
          "second_instruction_count": 55,
          "diff": [
            "--- 0x448a04",
            "+++ 0x448d84",
            "@@ -6,7 +6,7 @@",
            " mov esi,eax",
            " mov ecx,edx",
            " mov edx,m4[eax+None*1+0x0]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edi,m4[eax+edx*4+0x0]",
            " mov eax,m4[esi+None*1+0x8]",
            " mov edx,ecx"
          ]
        },
        {
          "symbol": "ccc.c::blow_up_weapon_object_",
          "source": "E:\\apache\\source\\weapons\\ccc.c",
          "first": "0x448d64",
          "second": "0x4490e4",
          "first_instruction_count": 87,
          "second_instruction_count": 87,
          "diff": [
            "--- 0x448d64",
            "+++ 0x4490e4",
            "@@ -6,7 +6,7 @@",
            " mov m4[esp+None*1+0xc],ebx",
            " mov m4[esp+None*1+0x10],ecx",
            " mov edi,esp",
            "-mov esi,apweapon.c::reset_incoming_missile_warnings_+0x5c",
            "+mov esi,apweapon.c::reset_incoming_missile_warnings_+0x54",
            " movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            " movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            " movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            "@@ -25,7 +25,7 @@",
            " lea ecx,m4[ebp+None*1+0x60]",
            " mov edx,m4[ecx+None*1+0x4]",
            " mov eax,m4[ecx+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " add eax,0x1400",
            " cmp eax,m4[ecx+None*1+0x8]",
            " jg local:62",
            "@@ -35,7 +35,7 @@",
            " shl eax,0x2",
            " add eax,edx",
            " mov ebx,esp",
            "-mov edx,m4[None+eax*8+0x672a80]",
            "+mov edx,m4[None+eax*8+0x665a90]",
            " mov eax,ecx",
            " call ccc.c::create_creative_air_explosion_",
            " mov edx,m4[ebp+None*1+0x0]",
            "@@ -44,7 +44,7 @@",
            " shl eax,0x2",
            " add eax,edx",
            " mov edx,ecx",
            "-mov eax,m4[None+eax*8+0x672a80]",
            "+mov eax,m4[None+eax*8+0x665a90]",
            " call ccc.c::create_explosion_sound_",
            " add esp,0x14",
            " pop ebp",
            "@@ -65,7 +65,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov edx,m4[None+eax*8+0x672a80]",
            "+mov edx,m4[None+eax*8+0x665a90]",
            " mov eax,ecx",
            " mov esi,m4[esp+None*1+0xc]",
            " call ccc.c::create_creative_ground_explosion_",
            "@@ -77,7 +77,7 @@",
            " shl eax,0x2",
            " add edx,eax",
            " shl edx,0x3",
            "-mov eax,m4[edx+None*1+0x672a80]",
            "+mov eax,m4[edx+None*1+0x665a90]",
            " mov edx,eax",
            " sar edx,0x1f",
            " sub eax,edx"
          ]
        },
        {
          "symbol": "ccc.c::calculate_random_explosion_point_in_object_",
          "source": "E:\\apache\\source\\weapons\\ccc.c",
          "first": "0x448f10",
          "second": "0x449290",
          "first_instruction_count": 170,
          "second_instruction_count": 170,
          "diff": [
            "--- 0x448f10",
            "+++ 0x449290",
            "@@ -5,13 +5,13 @@",
            " mov m4[esp+None*1+0x14],eax",
            " mov m4[esp+None*1+0xc],ebx",
            " mov esi,ecx",
            "-mov edi,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edi,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " lea ebx,m4[None+edx*4+0x0]",
            " mov edi,m4[edi+ebx*1+0x0]",
            " call weapons.c::get_weapon_random_",
            " mov ecx,eax",
            " mov m4[esp+None*1+0x10],eax",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ebx+eax*1+0x0]",
            " mov ebp,m4[eax+None*1+0x24]",
            " call weapons.c::get_weapon_random_",
            "@@ -19,7 +19,7 @@",
            " sub ebp,0x12c00",
            " sar edx,0x1f",
            " idiv ebp",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " lea ebp,m4[edx+None*1+0x12c00]",
            " mov ebx,m4[ebx+eax*1+0x0]",
            " call weapons.c::get_weapon_random_",
            "@@ -30,7 +30,7 @@",
            " mov m4[esp+None*1+0x0],edx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[esp+None*1+0x4],eax",
            " mov eax,ecx",
            " xor ebx,ebx",
            "@@ -97,7 +97,7 @@",
            " mov eax,edx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " xor ebx,ebx",
            " mov m4[esp+None*1+0x8],eax",
            " mov eax,edx"
          ]
        },
        {
          "symbol": "ccc.c::create_creative_air_explosion_",
          "source": "E:\\apache\\source\\weapons\\ccc.c",
          "first": "0x4487f0",
          "second": "0x448b70",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x4487f0",
            "+++ 0x448b70",
            "@@ -15,7 +15,7 @@",
            " pop edi",
            " pop ecx",
            " ret ",
            "-call fxexplod.c::create_air_explosion_",
            "+call explode.c::create_air_explosion_",
            " pop edi",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "ccc.c::create_creative_crater_",
          "source": "E:\\apache\\source\\weapons\\ccc.c",
          "first": "0x448724",
          "second": "0x448aa4",
          "first_instruction_count": 78,
          "second_instruction_count": 78,
          "diff": [
            "--- 0x448724",
            "+++ 0x448aa4",
            "@@ -21,10 +21,10 @@",
            " ret ",
            " mov edx,ebp",
            " mov eax,edi",
            "-call fxfeatur.c::get_surface_type_",
            "+call features.c::get_surface_type_",
            " cmp eax,0x7",
            " ja local:16",
            "-jmp m4[None+eax*4+apweapon.c::reset_incoming_missile_warnings_+0x68]",
            "+jmp m4[None+eax*4+apweapon.c::reset_incoming_missile_warnings_+0x60]",
            " test esi,esi",
            " je local:49",
            " cmp esi,0x4b00"
          ]
        },
        {
          "symbol": "ccc.c::create_creative_ground_explosion_",
          "source": "E:\\apache\\source\\weapons\\ccc.c",
          "first": "0x448820",
          "second": "0x448ba0",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x448820",
            "+++ 0x448ba0",
            "@@ -15,7 +15,7 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "-call fxexplod.c::create_ground_explosion_",
            "+call explode.c::create_ground_explosion_",
            " pop esi",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "ccc.c::create_explosion_",
          "source": "E:\\apache\\source\\weapons\\ccc.c",
          "first": "0x448ce8",
          "second": "0x449068",
          "first_instruction_count": 34,
          "second_instruction_count": 34,
          "diff": [
            "--- 0x448ce8",
            "+++ 0x449068",
            "@@ -5,7 +5,7 @@",
            " mov edi,ebx",
            " mov edx,m4[eax+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " add eax,0x1400",
            " cmp eax,m4[esi+None*1+0x8]",
            " jg local:23"
          ]
        },
        {
          "symbol": "ccc.c::partly_blow_up_ground_object_",
          "source": "E:\\apache\\source\\weapons\\ccc.c",
          "first": "0x448a98",
          "second": "0x448e18",
          "first_instruction_count": 37,
          "second_instruction_count": 37,
          "diff": [
            "--- 0x448a98",
            "+++ 0x448e18",
            "@@ -6,12 +6,12 @@",
            " sub esp,0x10",
            " mov ebp,edx",
            " mov edi,esp",
            "-mov esi,apweapon.c::reset_incoming_missile_warnings_+0x50",
            "+mov esi,apweapon.c::reset_incoming_missile_warnings_+0x48",
            " xor ebx,ebx",
            " movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            " movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            " movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov bx,m2[eax+None*1+0x0]",
            " mov edx,m4[edx+ebx*4+0x0]",
            " xor ecx,ecx"
          ]
        },
        {
          "symbol": "ccc.c::partly_blow_up_mobile_object_",
          "source": "E:\\apache\\source\\weapons\\ccc.c",
          "first": "0x448af8",
          "second": "0x448e78",
          "first_instruction_count": 57,
          "second_instruction_count": 57,
          "diff": [
            "--- 0x448af8",
            "+++ 0x448e78",
            "@@ -4,7 +4,7 @@",
            " sub esp,0x10",
            " mov esi,eax",
            " mov ecx,edx",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[eax+None*1+0x0]",
            " mov eax,m4[edx+eax*4+0x0]",
            " fild m4[eax+None*1+0xac]"
          ]
        },
        {
          "symbol": "char3x5.asm::_print_3x5_character",
          "source": "\\library\\graphics\\char3x5.asm",
          "first": "0x4bcf20",
          "second": "0x4b1ab4",
          "first_instruction_count": 366,
          "second_instruction_count": 159,
          "diff": [
            "--- 0x4bcf20",
            "+++ 0x4b1ab4",
            "@@ -1,152 +1,150 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-jne local:161",
            " mov esi,eax",
            " lea esi,m4[esi+esi*4+cell3x5.asm::_character_cells_3x5]",
            " mov al,cl",
            " lea ecx,m4[edx+None*1+0x2]",
            " lea edi,m4[ebx+None*1+0x4]",
            " cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:103",
            "+jl local:101",
            " cmp ebx,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:103",
            "+jl local:101",
            " cmp ecx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:103",
            "+jg local:101",
            " cmp edi,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:103",
            "+jg local:101",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " mov ah,m1[esi+None*1+0x0]",
            " or ah,ah",
            "-je local:35",
            "+je local:33",
            " shl ah,0x1",
            "-jae local:25",
            "+jae local:23",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " shl ah,0x1",
            "-jae local:29",
            "+jae local:27",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " shl ah,0x1",
            "-jae local:33",
            "+jae local:31",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " sub edx,0x3",
            " add edi,m4[None+None*1+screen.c::_screen_y_inc]",
            " mov ah,m1[esi+None*1+0x1]",
            " or ah,ah",
            "-je local:52",
            "+je local:50",
            " shl ah,0x1",
            "-jae local:42",
            "+jae local:40",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " shl ah,0x1",
            "-jae local:46",
            "+jae local:44",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " shl ah,0x1",
            "-jae local:50",
            "+jae local:48",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " sub edx,0x3",
            " add edi,m4[None+None*1+screen.c::_screen_y_inc]",
            " mov ah,m1[esi+None*1+0x2]",
            " or ah,ah",
            "-je local:69",
            "+je local:67",
            " shl ah,0x1",
            "-jae local:59",
            "+jae local:57",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " shl ah,0x1",
            "-jae local:63",
            "+jae local:61",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " shl ah,0x1",
            "-jae local:67",
            "+jae local:65",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " sub edx,0x3",
            " add edi,m4[None+None*1+screen.c::_screen_y_inc]",
            " mov ah,m1[esi+None*1+0x3]",
            " or ah,ah",
            "-je local:86",
            "+je local:84",
            " shl ah,0x1",
            "-jae local:76",
            "+jae local:74",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " shl ah,0x1",
            "-jae local:80",
            "+jae local:78",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " shl ah,0x1",
            "-jae local:84",
            "+jae local:82",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " sub edx,0x3",
            " add edi,m4[None+None*1+screen.c::_screen_y_inc]",
            " mov ah,m1[esi+None*1+0x4]",
            " or ah,ah",
            "-je local:157",
            "+je local:155",
            " shl ah,0x1",
            "-jae local:93",
            "+jae local:91",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " shl ah,0x1",
            "-jae local:97",
            "+jae local:95",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " shl ah,0x1",
            "-jae local:101",
            "+jae local:99",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            "-jmp local:157",
            "+jmp local:155",
            " cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:157",
            "+jg local:155",
            " cmp ebx,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:157",
            "+jg local:155",
            " cmp ecx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:157",
            "+jl local:155",
            " cmp edi,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:157",
            "+jl local:155",
            " mov ecx,0x5",
            " cmp ebx,m4[None+None*1+screen.c::_screen_y_min]",
            "-jge local:119",
            "+jge local:117",
            " mov ebp,m4[None+None*1+screen.c::_screen_y_min]",
            " sub ebp,ebx",
            " add ebx,ebp",
            " sub ecx,ebp",
            " add esi,ebp",
            " cmp edi,m4[None+None*1+screen.c::_screen_y_max]",
            "-jle local:123",
            "+jle local:121",
            " sub edi,m4[None+None*1+screen.c::_screen_y_max]",
            " sub ecx,edi",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " mov ah,m1[esi+None*1+0x0]",
            " or ah,ah",
            "-je local:152",
            "+je local:150",
            " shl ah,0x1",
            "-jae local:134",
            "+jae local:132",
            " cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:134",
            "+jl local:132",
            " cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:134",
            "+jg local:132",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " shl ah,0x1",
            "-jae local:142",
            "+jae local:140",
            " cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:142",
            "+jl local:140",
            " cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:142",
            "+jg local:140",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " shl ah,0x1",
            "-jae local:150",
            "+jae local:148",
            " cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:150",
            "+jl local:148",
            " cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:150",
            "+jg local:148",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " sub edx,0x3",
            "@@ -154,213 +152,8 @@",
            " inc esi",
            " add edi,m4[None+None*1+screen.c::_screen_y_inc]",
            " dec ecx",
            "-jne local:124",
            "+jne local:122",
            " pop ebp",
            " pop edi",
            " pop esi",
            " ret ",
            "-lea esi,m4[eax+eax*4+cell3x5.asm::_character_cells_3x5]",
            "-mov al,cl",
            "-lea ecx,m4[edx+None*1+0x2]",
            "-lea edi,m4[ebx+None*1+0x4]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:290",
            "-cmp ebx,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:290",
            "-cmp ecx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:290",
            "-cmp edi,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:290",
            "-push eax",
            "-push edx",
            "-mov eax,ebx",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov edi,eax",
            "-pop edx",
            "-pop eax",
            "-add edi,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-mov ah,m1[esi+None*1+0x0]",
            "-push ecx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-or ah,ah",
            "-je local:201",
            "-shl ah,0x1",
            "-jae local:191",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:195",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:199",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-sub edx,0x3",
            "-add edi,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-pop ecx",
            "-mov ah,m1[esi+None*1+0x1]",
            "-push ecx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-or ah,ah",
            "-je local:223",
            "-shl ah,0x1",
            "-jae local:213",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:217",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:221",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-sub edx,0x3",
            "-add edi,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-pop ecx",
            "-mov ah,m1[esi+None*1+0x2]",
            "-push ecx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-or ah,ah",
            "-je local:245",
            "-shl ah,0x1",
            "-jae local:235",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:239",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:243",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-sub edx,0x3",
            "-add edi,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-pop ecx",
            "-mov ah,m1[esi+None*1+0x3]",
            "-push ecx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-or ah,ah",
            "-je local:267",
            "-shl ah,0x1",
            "-jae local:257",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:261",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:265",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-sub edx,0x3",
            "-add edi,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-pop ecx",
            "-mov ah,m1[esi+None*1+0x4]",
            "-push ecx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-or ah,ah",
            "-je local:288",
            "-shl ah,0x1",
            "-jae local:279",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:283",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:287",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-pop ecx",
            "-jmp local:362",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:362",
            "-cmp ebx,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:362",
            "-cmp ecx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:362",
            "-cmp edi,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:362",
            "-mov ecx,0x5",
            "-cmp ebx,m4[None+None*1+screen.c::_screen_y_min]",
            "-jge local:306",
            "-mov ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-sub ebp,ebx",
            "-add ebx,ebp",
            "-sub ecx,ebp",
            "-add esi,ebp",
            "-cmp edi,m4[None+None*1+screen.c::_screen_y_max]",
            "-jle local:310",
            "-sub edi,m4[None+None*1+screen.c::_screen_y_max]",
            "-sub ecx,edi",
            "-push eax",
            "-push edx",
            "-mov eax,ebx",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov edi,eax",
            "-pop edx",
            "-pop eax",
            "-add edi,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-push ecx",
            "-mov ah,m1[esi+None*1+0x0]",
            "-or ah,ah",
            "-je local:356",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:332",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:332",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:332",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:343",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:343",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:343",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:354",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:354",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:354",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-sub edx,0x3",
            "-inc ebx",
            "-inc esi",
            "-add edi,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-pop ecx",
            "-dec ecx",
            "-jne local:318",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-ret "
          ]
        },
        {
          "symbol": "char5x9.asm::_print_5x9_character",
          "source": "\\library\\graphics\\char5x9.asm",
          "first": "0x4bd34c",
          "second": "0x4b1c88",
          "first_instruction_count": 822,
          "second_instruction_count": 315,
          "diff": [
            "--- 0x4bd34c",
            "+++ 0x4b1c88",
            "@@ -1,308 +1,306 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-jne local:317",
            " mov esi,eax",
            " lea esi,m4[esi+esi*8+cell5x9.asm::_character_cells_5x9]",
            " mov al,cl",
            " lea ecx,m4[edx+None*1+0x4]",
            " lea edi,m4[ebx+None*1+0x8]",
            " cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:243",
            "+jl local:241",
            " cmp ebx,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:243",
            "+jl local:241",
            " cmp ecx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:243",
            "+jg local:241",
            " cmp edi,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:243",
            "+jg local:241",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " mov ah,m1[esi+None*1+0x0]",
            " or ah,ah",
            "-je local:43",
            "-shl ah,0x1",
            "-jae local:25",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:29",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:33",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:37",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:41",
            "+je local:41",
            "+shl ah,0x1",
            "+jae local:23",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:27",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:31",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:35",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:39",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " sub edx,0x5",
            " add edi,m4[None+None*1+screen.c::_screen_y_inc]",
            " mov ah,m1[esi+None*1+0x1]",
            " or ah,ah",
            "-je local:68",
            "-shl ah,0x1",
            "-jae local:50",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:54",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:58",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:62",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:66",
            "+je local:66",
            "+shl ah,0x1",
            "+jae local:48",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:52",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:56",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:60",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:64",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " sub edx,0x5",
            " add edi,m4[None+None*1+screen.c::_screen_y_inc]",
            " mov ah,m1[esi+None*1+0x2]",
            " or ah,ah",
            "-je local:93",
            "-shl ah,0x1",
            "-jae local:75",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:79",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:83",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:87",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:91",
            "+je local:91",
            "+shl ah,0x1",
            "+jae local:73",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:77",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:81",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:85",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:89",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " sub edx,0x5",
            " add edi,m4[None+None*1+screen.c::_screen_y_inc]",
            " mov ah,m1[esi+None*1+0x3]",
            " or ah,ah",
            "-je local:118",
            "-shl ah,0x1",
            "-jae local:100",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:104",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:108",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:112",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:116",
            "+je local:116",
            "+shl ah,0x1",
            "+jae local:98",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:102",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:106",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:110",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:114",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " sub edx,0x5",
            " add edi,m4[None+None*1+screen.c::_screen_y_inc]",
            " mov ah,m1[esi+None*1+0x4]",
            " or ah,ah",
            "-je local:143",
            "-shl ah,0x1",
            "-jae local:125",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:129",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:133",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:137",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:141",
            "+je local:141",
            "+shl ah,0x1",
            "+jae local:123",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:127",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:131",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:135",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:139",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " sub edx,0x5",
            " add edi,m4[None+None*1+screen.c::_screen_y_inc]",
            " mov ah,m1[esi+None*1+0x5]",
            " or ah,ah",
            "-je local:168",
            "-shl ah,0x1",
            "-jae local:150",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:154",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:158",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:162",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:166",
            "+je local:166",
            "+shl ah,0x1",
            "+jae local:148",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:152",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:156",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:160",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:164",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " sub edx,0x5",
            " add edi,m4[None+None*1+screen.c::_screen_y_inc]",
            " mov ah,m1[esi+None*1+0x6]",
            " or ah,ah",
            "-je local:193",
            "-shl ah,0x1",
            "-jae local:175",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:179",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:183",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:187",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:191",
            "+je local:191",
            "+shl ah,0x1",
            "+jae local:173",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:177",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:181",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:185",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:189",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " sub edx,0x5",
            " add edi,m4[None+None*1+screen.c::_screen_y_inc]",
            " mov ah,m1[esi+None*1+0x7]",
            " or ah,ah",
            "-je local:218",
            "-shl ah,0x1",
            "-jae local:200",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:204",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:208",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:212",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:216",
            "+je local:216",
            "+shl ah,0x1",
            "+jae local:198",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:202",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:206",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:210",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:214",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " sub edx,0x5",
            " add edi,m4[None+None*1+screen.c::_screen_y_inc]",
            " mov ah,m1[esi+None*1+0x8]",
            " or ah,ah",
            "-je local:313",
            "-shl ah,0x1",
            "-jae local:225",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:229",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:233",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:237",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:241",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-jmp local:313",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:313",
            "+je local:311",
            "+shl ah,0x1",
            "+jae local:223",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:227",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:231",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:235",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:239",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+jmp local:311",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:311",
            " cmp ebx,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:313",
            "+jg local:311",
            " cmp ecx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:313",
            "+jl local:311",
            " cmp edi,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:313",
            "+jl local:311",
            " mov ecx,0x9",
            " cmp ebx,m4[None+None*1+screen.c::_screen_y_min]",
            "-jge local:259",
            "+jge local:257",
            " mov ebp,m4[None+None*1+screen.c::_screen_y_min]",
            " sub ebp,ebx",
            " add ebx,ebp",
            " sub ecx,ebp",
            " add esi,ebp",
            " cmp edi,m4[None+None*1+screen.c::_screen_y_max]",
            "-jle local:263",
            "+jle local:261",
            " sub edi,m4[None+None*1+screen.c::_screen_y_max]",
            " sub ecx,edi",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " mov ah,m1[esi+None*1+0x0]",
            " or ah,ah",
            "-je local:308",
            "-shl ah,0x1",
            "-jae local:274",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:274",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:274",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:282",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:282",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:282",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:290",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:290",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:290",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:298",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:298",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:298",
            "-mov m1[edx+edi*1+0x0],al",
            "-inc edx",
            "-shl ah,0x1",
            "-jae local:306",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:306",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:306",
            "+je local:306",
            "+shl ah,0x1",
            "+jae local:272",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:272",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:272",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:280",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:280",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:280",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:288",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:288",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:288",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:296",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:296",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:296",
            "+mov m1[edx+edi*1+0x0],al",
            "+inc edx",
            "+shl ah,0x1",
            "+jae local:304",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:304",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:304",
            " mov m1[edx+edi*1+0x0],al",
            " inc edx",
            " sub edx,0x5",
            "@@ -310,513 +308,8 @@",
            " inc esi",
            " add edi,m4[None+None*1+screen.c::_screen_y_inc]",
            " dec ecx",
            "-jne local:264",
            "+jne local:262",
            " pop ebp",
            " pop edi",
            " pop esi",
            " ret ",
            "-mov esi,eax",
            "-lea esi,m4[esi+esi*8+cell5x9.asm::_character_cells_5x9]",
            "-mov al,cl",
            "-lea ecx,m4[edx+None*1+0x4]",
            "-lea edi,m4[ebx+None*1+0x8]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:724",
            "-cmp ebx,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:724",
            "-cmp ecx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:724",
            "-cmp edi,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:724",
            "-push eax",
            "-push edx",
            "-mov eax,ebx",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov edi,eax",
            "-pop edx",
            "-pop eax",
            "-add edi,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-mov ah,m1[esi+None*1+0x0]",
            "-push ecx",
            "-xor ecx,ecx",
            "-or ah,ah",
            "-je local:379",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:349",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:356",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:363",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:370",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:377",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-sub edx,0x5",
            "-add edi,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-pop ecx",
            "-mov ah,m1[esi+None*1+0x1]",
            "-push ecx",
            "-xor ecx,ecx",
            "-or ah,ah",
            "-je local:422",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:392",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:399",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:406",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:413",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:420",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-sub edx,0x5",
            "-add edi,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-pop ecx",
            "-mov ah,m1[esi+None*1+0x2]",
            "-push ecx",
            "-xor ecx,ecx",
            "-or ah,ah",
            "-je local:465",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:435",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:442",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:449",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:456",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:463",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-sub edx,0x5",
            "-add edi,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-pop ecx",
            "-mov ah,m1[esi+None*1+0x3]",
            "-push ecx",
            "-xor ecx,ecx",
            "-or ah,ah",
            "-je local:508",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:478",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:485",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:492",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:499",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:506",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-sub edx,0x5",
            "-add edi,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-pop ecx",
            "-mov ah,m1[esi+None*1+0x4]",
            "-push ecx",
            "-xor ecx,ecx",
            "-or ah,ah",
            "-je local:551",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:521",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:528",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:535",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:542",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:549",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-sub edx,0x5",
            "-add edi,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-pop ecx",
            "-mov ah,m1[esi+None*1+0x5]",
            "-push ecx",
            "-xor ecx,ecx",
            "-or ah,ah",
            "-je local:594",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:564",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:571",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:578",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:585",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:592",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-sub edx,0x5",
            "-add edi,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-pop ecx",
            "-mov ah,m1[esi+None*1+0x6]",
            "-push ecx",
            "-xor ecx,ecx",
            "-or ah,ah",
            "-je local:637",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:607",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:614",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:621",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:628",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:635",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-sub edx,0x5",
            "-add edi,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-pop ecx",
            "-mov ah,m1[esi+None*1+0x7]",
            "-push ecx",
            "-xor ecx,ecx",
            "-or ah,ah",
            "-je local:680",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:650",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:657",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:664",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:671",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:678",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-sub edx,0x5",
            "-add edi,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-pop ecx",
            "-mov ah,m1[esi+None*1+0x8]",
            "-push ecx",
            "-xor ecx,ecx",
            "-or ah,ah",
            "-je local:722",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:693",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:700",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:707",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:714",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:721",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-pop ecx",
            "-jmp local:818",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:818",
            "-cmp ebx,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:818",
            "-cmp ecx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:818",
            "-cmp edi,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:818",
            "-mov ecx,0x9",
            "-cmp ebx,m4[None+None*1+screen.c::_screen_y_min]",
            "-jge local:740",
            "-mov ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-sub ebp,ebx",
            "-add ebx,ebp",
            "-sub ecx,ebp",
            "-add esi,ebp",
            "-cmp edi,m4[None+None*1+screen.c::_screen_y_max]",
            "-jle local:744",
            "-sub edi,m4[None+None*1+screen.c::_screen_y_max]",
            "-sub ecx,edi",
            "-push eax",
            "-push edx",
            "-mov eax,ebx",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov edi,eax",
            "-pop edx",
            "-pop eax",
            "-add edi,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-push ecx",
            "-mov ah,m1[esi+None*1+0x0]",
            "-or ah,ah",
            "-je local:812",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:766",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:766",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:766",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:777",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:777",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:777",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:788",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:788",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:788",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:799",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:799",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:799",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-xor ecx,ecx",
            "-mov cl,al",
            "-shl ah,0x1",
            "-jae local:810",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:810",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:810",
            "-mov ecx,m4[None+ecx*4+palette.c::_ARGBColour]",
            "-mov m4[edi+edx*4+0x0],ecx",
            "-inc edx",
            "-sub edx,0x5",
            "-inc ebx",
            "-inc esi",
            "-add edi,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-pop ecx",
            "-dec ecx",
            "-jne local:752",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-ret "
          ]
        },
        {
          "symbol": "chdirwnt::chdir_",
          "source": "chdirwnt",
          "first": "0x4c8cab",
          "second": "0x4bc2d1",
          "first_instruction_count": 14,
          "second_instruction_count": 14,
          "diff": [
            "--- 0x4c8cab",
            "+++ 0x4bc2d1",
            "@@ -1,7 +1,7 @@",
            " push ecx",
            " push edx",
            " push eax",
            "-call m4[None+None*1+constant:384f0d00]",
            "+call m4[None+None*1+constant:267e0c00]",
            " test eax,eax",
            " jne local:10",
            " call dosret::__set_errno_nt_"
          ]
        },
        {
          "symbol": "chipa32::__fpatan_chk",
          "source": "chipa32",
          "first": "0x4cf5e0",
          "second": "0x4c2a50",
          "first_instruction_count": 184,
          "second_instruction_count": 184,
          "diff": [
            "--- 0x4cf5e0",
            "+++ 0x4c2a50",
            "@@ -109,7 +109,7 @@",
            " faddp st(1)",
            " fld m10[ecx+None*1+constant:00000000000000000000]",
            " faddp st(1)",
            "-jmp m4[None+edx*4+constant:40f74c00]",
            "+jmp m4[None+edx*4+constant:b02b4c00]",
            " fldcw m2[esp+None*1+0x18]",
            " add esp,0x24",
            " pop edx"
          ]
        },
        {
          "symbol": "chipd32::__fdiv_fpr",
          "source": "chipd32",
          "first": "0x4d103b",
          "second": "0x4c44c3",
          "first_instruction_count": 411,
          "second_instruction_count": 411,
          "diff": [
            "--- 0x4d103b",
            "+++ 0x4c44c3",
            "@@ -1,5 +1,5 @@",
            " sub esp,0x2c",
            "-jmp m4[None+eax*4+constant:45104d00]",
            "+jmp m4[None+eax*4+constant:cd444c00]",
            " fdiv st(0)",
            " add esp,0x2c",
            " ret "
          ]
        },
        {
          "symbol": "circle.asm::_draw_circle",
          "source": "\\library\\graphics\\circle.asm",
          "first": "0x4bdc30",
          "second": "0x4b1fc0",
          "first_instruction_count": 1369,
          "second_instruction_count": 584,
          "diff": [
            "--- 0x4bdc30",
            "+++ 0x4b1fc0",
            "@@ -1,1369 +1,584 @@",
            " push ebp",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-jne local:586",
            " cmp edx,0x0",
            "-jle local:584",
            "+jle local:582",
            " mov esi,ecx",
            " sub esi,edx",
            " cmp esi,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:584",
            "+jg local:582",
            " lea ebp,m4[edx+ecx*1+0x0]",
            " cmp ebp,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:584",
            "+jl local:582",
            " mov edi,ebx",
            " sub edi,edx",
            " cmp edi,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:584",
            "+jg local:582",
            " lea ebp,m4[edx+ebx*1+0x0]",
            " cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:584",
            "+jl local:582",
            " cmp edi,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:77",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:77",
            "+jl local:75",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:75",
            " cmp esi,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:77",
            "+jl local:75",
            " lea ebp,m4[edx+ecx*1+0x0]",
            " cmp ebp,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:77",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:73",
            "-push ebp",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-lea ebp,m4[edi+ebx*1+0x0]",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov ebp,ebx",
            "-sub ebp,edi",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-lea ebp,m4[esi+ebx*1+0x0]",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov ebp,ebx",
            "-sub ebp,esi",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:67",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:72",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:34",
            "+jg local:75",
            "+xor esi,esi",
            "+mov edi,edx",
            "+mov ebp,0x3",
            "+sub ebp,edx",
            "+sub ebp,edx",
            "+jmp local:71",
            "+push ebp",
            "+lea edx,m4[esi+ecx*1+0x0]",
            "+lea ebp,m4[edi+ebx*1+0x0]",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov edx,ecx",
            "+sub edx,esi",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov ebp,ebx",
            "+sub ebp,edi",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+lea edx,m4[esi+ecx*1+0x0]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+lea edx,m4[edi+ecx*1+0x0]",
            "+lea ebp,m4[esi+ebx*1+0x0]",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov edx,ecx",
            "+sub edx,edi",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov ebp,ebx",
            "+sub ebp,esi",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+lea edx,m4[edi+ecx*1+0x0]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+pop ebp",
            "+cmp ebp,0x0",
            "+jge local:65",
            "+lea edx,m4[None+esi*4+0x6]",
            "+add ebp,edx",
            "+jmp local:70",
            "+mov edx,esi",
            "+sub edx,edi",
            "+lea edx,m4[None+edx*4+0xa]",
            "+add ebp,edx",
            "+dec edi",
            "+inc esi",
            "+cmp esi,edi",
            "+jle local:32",
            " pop ebp",
            " ret ",
            " xor ebp,ebp",
            " cmp ebx,m4[None+None*1+screen.c::_screen_y_min]",
            "-jge local:81",
            "+jge local:79",
            " or ebp,0x8",
            " cmp ebx,m4[None+None*1+screen.c::_screen_y_max]",
            "-jle local:84",
            "+jle local:82",
            " or ebp,0x4",
            " cmp ecx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jle local:87",
            "+jle local:85",
            " or ebp,0x2",
            " cmp ecx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jge local:90",
            "+jge local:88",
            " or ebp,0x1",
            "-jmp m4[None+ebp*4+constant:79dd4b00]",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:164",
            "-push ebp",
            "-lea ebp,m4[edi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:111",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:106",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:111",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov ebp,ebx",
            "-sub ebp,edi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:125",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:120",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:125",
            "-mov m1[edx+ebp*1+0x0],al",
            "-lea ebp,m4[esi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:138",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:133",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:138",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov ebp,ebx",
            "-sub ebp,esi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:152",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:147",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:152",
            "-mov m1[edx+ebp*1+0x0],al",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:158",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:163",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:97",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:217",
            "-push ebp",
            "-lea ebp,m4[edi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:190",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:190",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:185",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:190",
            "-mov m1[edx+ebp*1+0x0],al",
            "-lea ebp,m4[esi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:205",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:205",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:200",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:205",
            "-mov m1[edx+ebp*1+0x0],al",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:211",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:216",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:174",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:272",
            "-push ebp",
            "-mov ebp,ebx",
            "-sub ebp,edi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:244",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:244",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:239",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:244",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov ebp,ebx",
            "-sub ebp,esi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:260",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:260",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:255",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:260",
            "-mov m1[edx+ebp*1+0x0],al",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:266",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:271",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:227",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:329",
            "-push ebp",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:300",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:300",
            "-lea ebp,m4[edi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:294",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov ebp,ebx",
            "-sub ebp,edi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:300",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:317",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:317",
            "-lea ebp,m4[esi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:311",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov ebp,ebx",
            "-sub ebp,esi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:317",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:323",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:328",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:282",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:384",
            "-push ebp",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:356",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:356",
            "-lea ebp,m4[edi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:350",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov ebp,ebx",
            "-sub ebp,edi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:356",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:372",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:372",
            "-lea ebp,m4[esi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:366",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov ebp,ebx",
            "-sub ebp,esi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:372",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:378",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:383",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:339",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:433",
            "-push ebp",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:408",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:408",
            "-lea ebp,m4[edi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:408",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:408",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:421",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:421",
            "-lea ebp,m4[esi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:421",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:421",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:427",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:432",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:394",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:480",
            "-push ebp",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:456",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:456",
            "-lea ebp,m4[edi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:456",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:456",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:468",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:468",
            "-lea ebp,m4[esi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:468",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:468",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:474",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:479",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:443",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:531",
            "-push ebp",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:505",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:505",
            "-mov ebp,ebx",
            "-sub ebp,edi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:505",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:505",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:519",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:519",
            "-mov ebp,ebx",
            "-sub ebp,esi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:519",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:519",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:525",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:530",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:490",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:580",
            "-push ebp",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:555",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:555",
            "-mov ebp,ebx",
            "-sub ebp,edi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:555",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:555",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:568",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:568",
            "-mov ebp,ebx",
            "-sub ebp,esi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:568",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:568",
            "-mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "-mov m1[edx+ebp*1+0x0],al",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:574",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:579",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:541",
            "-pop ebp",
            "-ret ",
            "-pop ebp",
            "-ret ",
            "-cmp edx,0x0",
            "-jle local:1367",
            "-mov esi,ecx",
            "-sub esi,edx",
            "-cmp esi,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:1367",
            "-lea ebp,m4[edx+ecx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:1367",
            "-mov edi,ebx",
            "-sub edi,edx",
            "-cmp edi,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:1367",
            "-lea ebp,m4[edx+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:1367",
            "-cmp edi,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:690",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:690",
            "-cmp esi,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:690",
            "-lea ebp,m4[edx+ecx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:690",
            "-and eax,0xff",
            "-mov eax,m4[None+eax*4+palette.c::_ARGBColour]",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:686",
            "-push ebp",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-lea ebp,m4[edi+ebx*1+0x0]",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov ebp,ebx",
            "-sub ebp,edi",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-lea ebp,m4[esi+ebx*1+0x0]",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov ebp,ebx",
            "-sub ebp,esi",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:680",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:685",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:619",
            "-pop ebp",
            "-ret ",
            "-and eax,0xff",
            "-mov eax,m4[None+eax*4+palette.c::_ARGBColour]",
            "-xor ebp,ebp",
            "-cmp ebx,m4[None+None*1+screen.c::_screen_y_min]",
            "-jge local:696",
            "-or ebp,0x8",
            "-cmp ebx,m4[None+None*1+screen.c::_screen_y_max]",
            "-jle local:699",
            "-or ebp,0x4",
            "-cmp ecx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jle local:702",
            "-or ebp,0x2",
            "-cmp ecx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jge local:705",
            "-or ebp,0x1",
            "-jmp m4[None+ebp*4+constant:56e54b00]",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:807",
            "-push ebp",
            "-lea ebp,m4[edi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:733",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:728",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:733",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov ebp,ebx",
            "-sub ebp,edi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:754",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:749",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:754",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-lea ebp,m4[esi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:774",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:769",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:774",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov ebp,ebx",
            "-sub ebp,esi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:795",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:790",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:795",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:801",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:806",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:712",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:874",
            "-push ebp",
            "-lea ebp,m4[edi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:840",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:840",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:835",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:840",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-lea ebp,m4[esi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:862",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:862",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:857",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:862",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:868",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:873",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:817",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:943",
            "-push ebp",
            "-mov ebp,ebx",
            "-sub ebp,edi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:908",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:908",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:903",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:908",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov ebp,ebx",
            "-sub ebp,esi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:931",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:931",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:926",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:931",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:937",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:942",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:884",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:1028",
            "-push ebp",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:985",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:985",
            "-lea ebp,m4[edi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:972",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov ebp,ebx",
            "-sub ebp,edi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:985",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:1016",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:1016",
            "-lea ebp,m4[esi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:1003",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov ebp,ebx",
            "-sub ebp,esi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:1016",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:1022",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:1027",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:953",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:1111",
            "-push ebp",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:1069",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:1069",
            "-lea ebp,m4[edi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:1056",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov ebp,ebx",
            "-sub ebp,edi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:1069",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:1099",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:1099",
            "-lea ebp,m4[esi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:1086",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov ebp,ebx",
            "-sub ebp,esi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:1099",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:1105",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:1110",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:1038",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:1174",
            "-push ebp",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:1142",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:1142",
            "-lea ebp,m4[edi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:1142",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:1142",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:1162",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:1162",
            "-lea ebp,m4[esi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:1162",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:1162",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:1168",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:1173",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:1121",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:1235",
            "-push ebp",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:1204",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:1204",
            "-lea ebp,m4[edi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:1204",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:1204",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:1223",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:1223",
            "-lea ebp,m4[esi+ebx*1+0x0]",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:1223",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:1223",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:1229",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:1234",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:1184",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:1300",
            "-push ebp",
            "-mov edx,ecx",
            "-sub edx,esi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:1267",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:1267",
            "-mov ebp,ebx",
            "-sub ebp,edi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:1267",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:1267",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-mov edx,ecx",
            "-sub edx,edi",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:1288",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:1288",
            "-mov ebp,ebx",
            "-sub ebp,esi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:1288",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:1288",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:1294",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:1299",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:1245",
            "-pop ebp",
            "-ret ",
            "-xor esi,esi",
            "-mov edi,edx",
            "-mov ebp,0x3",
            "-sub ebp,edx",
            "-sub ebp,edx",
            "-jmp local:1363",
            "-push ebp",
            "-lea edx,m4[esi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:1331",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:1331",
            "-mov ebp,ebx",
            "-sub ebp,edi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:1331",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:1331",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-lea edx,m4[edi+ecx*1+0x0]",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:1351",
            "-cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:1351",
            "-mov ebp,ebx",
            "-sub ebp,esi",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:1351",
            "-cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "-jl local:1351",
            "-push eax",
            "-push edx",
            "-mov eax,ebp",
            "-imul m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "-mov ebp,eax",
            "-add ebp,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "-pop edx",
            "-pop eax",
            "-mov m4[ebp+edx*4+0x0],eax",
            "-pop ebp",
            "-cmp ebp,0x0",
            "-jge local:1357",
            "-lea edx,m4[None+esi*4+0x6]",
            "-add ebp,edx",
            "-jmp local:1362",
            "-mov edx,esi",
            "-sub edx,edi",
            "-lea edx,m4[None+edx*4+0xa]",
            "-add ebp,edx",
            "-dec edi",
            "-inc esi",
            "-cmp esi,edi",
            "-jle local:1310",
            "-pop ebp",
            "-ret ",
            "-pop ebp",
            "-ret ",
            "+jmp m4[None+ebp*4+constant:fc204b00]",
            "+xor esi,esi",
            "+mov edi,edx",
            "+mov ebp,0x3",
            "+sub ebp,edx",
            "+sub ebp,edx",
            "+jmp local:162",
            "+push ebp",
            "+lea ebp,m4[edi+ebx*1+0x0]",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:109",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+lea edx,m4[esi+ecx*1+0x0]",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:104",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov edx,ecx",
            "+sub edx,esi",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:109",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov ebp,ebx",
            "+sub ebp,edi",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:123",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+lea edx,m4[esi+ecx*1+0x0]",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:118",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov edx,ecx",
            "+sub edx,esi",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:123",
            "+mov m1[edx+ebp*1+0x0],al",
            "+lea ebp,m4[esi+ebx*1+0x0]",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:136",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+lea edx,m4[edi+ecx*1+0x0]",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:131",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov edx,ecx",
            "+sub edx,edi",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:136",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov ebp,ebx",
            "+sub ebp,esi",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:150",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+lea edx,m4[edi+ecx*1+0x0]",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:145",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov edx,ecx",
            "+sub edx,edi",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:150",
            "+mov m1[edx+ebp*1+0x0],al",
            "+pop ebp",
            "+cmp ebp,0x0",
            "+jge local:156",
            "+lea edx,m4[None+esi*4+0x6]",
            "+add ebp,edx",
            "+jmp local:161",
            "+mov edx,esi",
            "+sub edx,edi",
            "+lea edx,m4[None+edx*4+0xa]",
            "+add ebp,edx",
            "+dec edi",
            "+inc esi",
            "+cmp esi,edi",
            "+jle local:95",
            "+pop ebp",
            "+ret ",
            "+xor esi,esi",
            "+mov edi,edx",
            "+mov ebp,0x3",
            "+sub ebp,edx",
            "+sub ebp,edx",
            "+jmp local:215",
            "+push ebp",
            "+lea ebp,m4[edi+ebx*1+0x0]",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:188",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:188",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+lea edx,m4[esi+ecx*1+0x0]",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:183",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov edx,ecx",
            "+sub edx,esi",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:188",
            "+mov m1[edx+ebp*1+0x0],al",
            "+lea ebp,m4[esi+ebx*1+0x0]",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:203",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:203",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+lea edx,m4[edi+ecx*1+0x0]",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:198",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov edx,ecx",
            "+sub edx,edi",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:203",
            "+mov m1[edx+ebp*1+0x0],al",
            "+pop ebp",
            "+cmp ebp,0x0",
            "+jge local:209",
            "+lea edx,m4[None+esi*4+0x6]",
            "+add ebp,edx",
            "+jmp local:214",
            "+mov edx,esi",
            "+sub edx,edi",
            "+lea edx,m4[None+edx*4+0xa]",
            "+add ebp,edx",
            "+dec edi",
            "+inc esi",
            "+cmp esi,edi",
            "+jle local:172",
            "+pop ebp",
            "+ret ",
            "+xor esi,esi",
            "+mov edi,edx",
            "+mov ebp,0x3",
            "+sub ebp,edx",
            "+sub ebp,edx",
            "+jmp local:270",
            "+push ebp",
            "+mov ebp,ebx",
            "+sub ebp,edi",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:242",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:242",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+lea edx,m4[esi+ecx*1+0x0]",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:237",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov edx,ecx",
            "+sub edx,esi",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:242",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov ebp,ebx",
            "+sub ebp,esi",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:258",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:258",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+lea edx,m4[edi+ecx*1+0x0]",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:253",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov edx,ecx",
            "+sub edx,edi",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:258",
            "+mov m1[edx+ebp*1+0x0],al",
            "+pop ebp",
            "+cmp ebp,0x0",
            "+jge local:264",
            "+lea edx,m4[None+esi*4+0x6]",
            "+add ebp,edx",
            "+jmp local:269",
            "+mov edx,esi",
            "+sub edx,edi",
            "+lea edx,m4[None+edx*4+0xa]",
            "+add ebp,edx",
            "+dec edi",
            "+inc esi",
            "+cmp esi,edi",
            "+jle local:225",
            "+pop ebp",
            "+ret ",
            "+xor esi,esi",
            "+mov edi,edx",
            "+mov ebp,0x3",
            "+sub ebp,edx",
            "+sub ebp,edx",
            "+jmp local:327",
            "+push ebp",
            "+mov edx,ecx",
            "+sub edx,esi",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:298",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:298",
            "+lea ebp,m4[edi+ebx*1+0x0]",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:292",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov ebp,ebx",
            "+sub ebp,edi",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:298",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov edx,ecx",
            "+sub edx,edi",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:315",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:315",
            "+lea ebp,m4[esi+ebx*1+0x0]",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:309",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov ebp,ebx",
            "+sub ebp,esi",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:315",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+pop ebp",
            "+cmp ebp,0x0",
            "+jge local:321",
            "+lea edx,m4[None+esi*4+0x6]",
            "+add ebp,edx",
            "+jmp local:326",
            "+mov edx,esi",
            "+sub edx,edi",
            "+lea edx,m4[None+edx*4+0xa]",
            "+add ebp,edx",
            "+dec edi",
            "+inc esi",
            "+cmp esi,edi",
            "+jle local:280",
            "+pop ebp",
            "+ret ",
            "+xor esi,esi",
            "+mov edi,edx",
            "+mov ebp,0x3",
            "+sub ebp,edx",
            "+sub ebp,edx",
            "+jmp local:382",
            "+push ebp",
            "+lea edx,m4[esi+ecx*1+0x0]",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:354",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:354",
            "+lea ebp,m4[edi+ebx*1+0x0]",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:348",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov ebp,ebx",
            "+sub ebp,edi",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:354",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+lea edx,m4[edi+ecx*1+0x0]",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:370",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:370",
            "+lea ebp,m4[esi+ebx*1+0x0]",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:364",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov ebp,ebx",
            "+sub ebp,esi",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:370",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+pop ebp",
            "+cmp ebp,0x0",
            "+jge local:376",
            "+lea edx,m4[None+esi*4+0x6]",
            "+add ebp,edx",
            "+jmp local:381",
            "+mov edx,esi",
            "+sub edx,edi",
            "+lea edx,m4[None+edx*4+0xa]",
            "+add ebp,edx",
            "+dec edi",
            "+inc esi",
            "+cmp esi,edi",
            "+jle local:337",
            "+pop ebp",
            "+ret ",
            "+xor esi,esi",
            "+mov edi,edx",
            "+mov ebp,0x3",
            "+sub ebp,edx",
            "+sub ebp,edx",
            "+jmp local:431",
            "+push ebp",
            "+mov edx,ecx",
            "+sub edx,esi",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:406",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:406",
            "+lea ebp,m4[edi+ebx*1+0x0]",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:406",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:406",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov edx,ecx",
            "+sub edx,edi",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:419",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:419",
            "+lea ebp,m4[esi+ebx*1+0x0]",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:419",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:419",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+pop ebp",
            "+cmp ebp,0x0",
            "+jge local:425",
            "+lea edx,m4[None+esi*4+0x6]",
            "+add ebp,edx",
            "+jmp local:430",
            "+mov edx,esi",
            "+sub edx,edi",
            "+lea edx,m4[None+edx*4+0xa]",
            "+add ebp,edx",
            "+dec edi",
            "+inc esi",
            "+cmp esi,edi",
            "+jle local:392",
            "+pop ebp",
            "+ret ",
            "+xor esi,esi",
            "+mov edi,edx",
            "+mov ebp,0x3",
            "+sub ebp,edx",
            "+sub ebp,edx",
            "+jmp local:478",
            "+push ebp",
            "+lea edx,m4[esi+ecx*1+0x0]",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:454",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:454",
            "+lea ebp,m4[edi+ebx*1+0x0]",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:454",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:454",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+lea edx,m4[edi+ecx*1+0x0]",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:466",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:466",
            "+lea ebp,m4[esi+ebx*1+0x0]",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:466",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:466",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+pop ebp",
            "+cmp ebp,0x0",
            "+jge local:472",
            "+lea edx,m4[None+esi*4+0x6]",
            "+add ebp,edx",
            "+jmp local:477",
            "+mov edx,esi",
            "+sub edx,edi",
            "+lea edx,m4[None+edx*4+0xa]",
            "+add ebp,edx",
            "+dec edi",
            "+inc esi",
            "+cmp esi,edi",
            "+jle local:441",
            "+pop ebp",
            "+ret ",
            "+xor esi,esi",
            "+mov edi,edx",
            "+mov ebp,0x3",
            "+sub ebp,edx",
            "+sub ebp,edx",
            "+jmp local:529",
            "+push ebp",
            "+mov edx,ecx",
            "+sub edx,esi",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:503",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:503",
            "+mov ebp,ebx",
            "+sub ebp,edi",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:503",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:503",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+mov edx,ecx",
            "+sub edx,edi",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:517",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:517",
            "+mov ebp,ebx",
            "+sub ebp,esi",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:517",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:517",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+pop ebp",
            "+cmp ebp,0x0",
            "+jge local:523",
            "+lea edx,m4[None+esi*4+0x6]",
            "+add ebp,edx",
            "+jmp local:528",
            "+mov edx,esi",
            "+sub edx,edi",
            "+lea edx,m4[None+edx*4+0xa]",
            "+add ebp,edx",
            "+dec edi",
            "+inc esi",
            "+cmp esi,edi",
            "+jle local:488",
            "+pop ebp",
            "+ret ",
            "+xor esi,esi",
            "+mov edi,edx",
            "+mov ebp,0x3",
            "+sub ebp,edx",
            "+sub ebp,edx",
            "+jmp local:578",
            "+push ebp",
            "+lea edx,m4[esi+ecx*1+0x0]",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:553",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:553",
            "+mov ebp,ebx",
            "+sub ebp,edi",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:553",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:553",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+lea edx,m4[edi+ecx*1+0x0]",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_min]",
            "+jl local:566",
            "+cmp edx,m4[None+None*1+screen.c::_screen_x_max]",
            "+jg local:566",
            "+mov ebp,ebx",
            "+sub ebp,esi",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_max]",
            "+jg local:566",
            "+cmp ebp,m4[None+None*1+screen.c::_screen_y_min]",
            "+jl local:566",
            "+mov ebp,m4[None+ebp*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ebp*1+0x0],al",
            "+pop ebp",
            "+cmp ebp,0x0",
            "+jge local:572",
            "+lea edx,m4[None+esi*4+0x6]",
            "+add ebp,edx",
            "+jmp local:577",
            "+mov edx,esi",
            "+sub edx,edi",
            "+lea edx,m4[None+edx*4+0xa]",
            "+add ebp,edx",
            "+dec edi",
            "+inc esi",
            "+cmp esi,edi",
            "+jle local:539",
            "+pop ebp",
            "+ret ",
            "+pop ebp",
            "+ret "
          ]
        },
        {
          "symbol": "circle.c::fill_circle_",
          "source": "E:\\library\\graphics\\circle.c",
          "first": "0x46df00",
          "second": "0x46e0c0",
          "first_instruction_count": 77,
          "second_instruction_count": 11,
          "diff": [
            "--- 0x46df00",
            "+++ 0x46e0c0",
            "@@ -1,77 +1,11 @@",
            "-push gs",
            " push ebp",
            "-mov ebp,esp",
            "-sub esp,0x804",
            "-and esp,0xfffffff8",
            "-mov esi,ecx",
            "-mov m4[esp+None*1+0x7f8],eax",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:67",
            "-mov eax,0x40768000",
            "-mov m4[esp+None*1+0x7fc],edx",
            "-xor edi,edi",
            "-fild m4[esp+None*1+0x7fc]",
            "-lea edx,m4[esp+None*1+0x10]",
            "-fstp m8[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x8],edi",
            "-mov m4[esp+None*1+0xc],eax",
            "-fld m8[esp+None*1+0x8]",
            "-fld st(0)",
            "-fmul m8[None+None*1+constant:10a35ca246df913f]",
            "-fld st(0)",
            "-fcos ",
            "-fxch st(0),st(1)",
            "-fsin ",
            "-fxch st(0),st(1)",
            "-fmul m8[esp+None*1+0x0]",
            "-fxch st(0),st(1)",
            "-fmul m8[esp+None*1+0x0]",
            "-fld st(2)",
            "-fldz ",
            "-mov m4[esp+None*1+0x7fc],esi",
            "-mov m4[esp+None*1+0x800],ebx",
            "-mov ecx,edx",
            "-fild m4[esp+None*1+0x7fc]",
            "-fild m4[esp+None*1+0x800]",
            "-add edx,0x28",
            "-fxch st(0),st(3)",
            "-fadd m8[None+None*1+constant:00000000000034c0]",
            "-fxch st(0),st(5)",
            "-fstp m8[esp+None*1+0x7f0]",
            "-fadd m8[esp+None*1+0x7f0]",
            "-fxch st(0),st(2)",
            "-faddp st(3)",
            "-fxch st(0),st(1)",
            "-call fchop::__CHP",
            "-fxch st(0),st(2)",
            "-call fchop::__CHP",
            "-fxch st(0),st(2)",
            "-fistp m4[edx+None*1+0xffffffe4]",
            "-fxch st(0),st(1)",
            "-fistp m4[edx+None*1+0xffffffe8]",
            "-mov m4[ecx+None*1+0x24],edx",
            "-fxch st(0),st(1)",
            "-fstp st(2)",
            "-fcomp st(1)",
            "-fnstsw ax",
            "-sahf ",
            "-jb local:18",
            "-fstp m8[esp+None*1+0x8]",
            "-mov edx,m4[esp+None*1+0x7f8]",
            "-lea eax,m4[esp+None*1+0x10]",
            "-mov m4[ecx+None*1+0x24],0x0",
            "-call fxpoly1.c::fill_unfogged_polygon_",
            "-mov esp,ebp",
            "-pop ebp",
            "-pop gs",
            "-ret ",
            "-mov ecx,esi",
            "+mov ebp,eax",
            " call scancirc.asm::_scan_convert_circle",
            " test eax,eax",
            "-je local:63",
            "-mov eax,m4[esp+None*1+0x7f8]",
            "+jne local:7",
            "+pop ebp",
            "+ret ",
            "+mov eax,ebp",
            " call drawscan.asm::_draw_scan_lines",
            "-mov esp,ebp",
            " pop ebp",
            "-pop gs",
            " ret "
          ]
        },
        {
          "symbol": "circle.c::fill_translucent_circle_",
          "source": "E:\\library\\graphics\\circle.c",
          "first": "0x46e040",
          "second": "0x46e108",
          "first_instruction_count": 71,
          "second_instruction_count": 11,
          "diff": [
            "--- 0x46e040",
            "+++ 0x46e108",
            "@@ -1,71 +1,11 @@",
            "-push gs",
            " push ebp",
            "-mov ebp,esp",
            "-sub esp,0x804",
            "-and esp,0xfffffff8",
            "-mov esi,ecx",
            "-mov ecx,0x26",
            "-mov edi,0xe0e0e0e0",
            "-mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[esp+None*1+0x7f8],ecx",
            "+mov ebp,eax",
            "+call scancirc.asm::_scan_convert_circle",
            " test eax,eax",
            "-je local:67",
            "-mov eax,0x40768000",
            "-mov m4[esp+None*1+0x7fc],edx",
            "-xor ecx,ecx",
            "-fild m4[esp+None*1+0x7fc]",
            "-lea edx,m4[esp+None*1+0x10]",
            "-fstp m8[esp+None*1+0x8]",
            "-mov m4[esp+None*1+0x0],ecx",
            "-mov m4[esp+None*1+0x4],eax",
            "-fld m8[esp+None*1+0x0]",
            "-fld st(0)",
            "-fmul m8[None+None*1+constant:10a35ca246df913f]",
            "-fld st(0)",
            "-fcos ",
            "-fxch st(0),st(1)",
            "-fsin ",
            "-fxch st(0),st(1)",
            "-fmul m8[esp+None*1+0x8]",
            "-fxch st(0),st(1)",
            "-fmul m8[esp+None*1+0x8]",
            "-fld st(2)",
            "-fldz ",
            "-mov m4[esp+None*1+0x7fc],esi",
            "-mov m4[esp+None*1+0x800],ebx",
            "-mov ecx,edx",
            "-fild m4[esp+None*1+0x7fc]",
            "-fild m4[esp+None*1+0x800]",
            "-add edx,0x28",
            "-fxch st(0),st(3)",
            "-fadd m8[None+None*1+constant:00000000000034c0]",
            "-fxch st(0),st(5)",
            "-fstp m8[esp+None*1+0x7f0]",
            "-fadd m8[esp+None*1+0x7f0]",
            "-fxch st(0),st(2)",
            "-faddp st(3)",
            "-fxch st(0),st(1)",
            "-call fchop::__CHP",
            "-fxch st(0),st(2)",
            "-call fchop::__CHP",
            "-fxch st(0),st(2)",
            "-fistp m4[edx+None*1+0xffffffe4]",
            "-fxch st(0),st(1)",
            "-fistp m4[edx+None*1+0xffffffe8]",
            "-mov m4[ecx+None*1+0x24],edx",
            "-fxch st(0),st(1)",
            "-fstp st(2)",
            "-fcomp st(1)",
            "-fnstsw ax",
            "-sahf ",
            "-jb local:21",
            "-fstp m8[esp+None*1+0x0]",
            "-mov ebx,m4[esp+None*1+0x7f8]",
            "-lea eax,m4[esp+None*1+0x10]",
            "-mov edx,edi",
            "-mov m4[ecx+None*1+0x24],0x0",
            "-call fxpoly1.c::_3dfx_fill_translucent_polygon_",
            "-mov esp,ebp",
            "+jne local:7",
            " pop ebp",
            "-pop gs",
            " ret ",
            "+mov eax,ebp",
            "+call drawtran.asm::_draw_translucent_scan_lines",
            "+pop ebp",
            "+ret "
          ]
        },
        {
          "symbol": "clip.c::set_clipped_point_",
          "source": "E:\\library\\ui\\clip.c",
          "first": "0x480b10",
          "second": "0x47ecb0",
          "first_instruction_count": 9,
          "second_instruction_count": 18,
          "diff": [
            "--- 0x480b10",
            "+++ 0x47ecb0",
            "@@ -1,9 +1,18 @@",
            "+push ecx",
            "+mov ecx,eax",
            " cmp eax,m4[None+None*1+screen.c::_screen_x_max]",
            "-jg local:8",
            "+jg local:10",
            " cmp eax,m4[None+None*1+screen.c::_screen_x_min]",
            "-jl local:8",
            "+jl local:10",
            " cmp edx,m4[None+None*1+screen.c::_screen_y_max]",
            "-jg local:8",
            "+jg local:10",
            " cmp edx,m4[None+None*1+screen.c::_screen_y_min]",
            "-jge fxpoly1.c::set_point_",
            "+jge local:12",
            "+pop ecx",
            " ret ",
            "+mov al,bl",
            "+mov ebx,edx",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+pop ecx",
            "+ret "
          ]
        },
        {
          "symbol": "clouds.c::draw_cloud_object_",
          "source": "E:\\library\\3dvisual\\clouds.c",
          "first": "0x4904a8",
          "second": "0x48d228",
          "first_instruction_count": 979,
          "second_instruction_count": 615,
          "diff": [
            "--- 0x4904a8",
            "+++ 0x48d228",
            "@@ -3,497 +3,307 @@",
            " push edx",
            " push esi",
            " push edi",
            "-push ebp",
            "-mov ebx,0xa6a7a6a7",
            " mov edx,m4[None+None*1+3dcore.c::_cloud_mode]",
            " mov ecx,m4[eax+None*1+0x8]",
            " test edx,edx",
            "-jne local:502",
            "+jne local:312",
            " mov eax,m4[eax+None*1+0xc]",
            " dec eax",
            " cmp eax,0xa",
            "-ja local:490",
            "+ja local:301",
            " jmp m4[None+eax*4+clouds.c::draw_clouds_+0x1298]",
            "+lea esi,m4[ecx+None*1+0xa0]",
            "+mov m4[ecx+None*1+0x24],edx",
            "+mov m4[ecx+None*1+0xc4],ecx",
            "+lea ebx,m4[ecx+None*1+0xa000]",
            "+mov edx,0xa6a7a6a7",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0xa024],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+lea eax,m4[ecx+None*1+0xa0a0]",
            "+mov m4[ecx+None*1+0xc4],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0xa024],eax",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0xa0c4],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+lea esi,m4[ecx+None*1+0xa000]",
            "+mov m4[ecx+None*1+0x74],edx",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0x50]",
            "+mov m4[ecx+None*1+0x24],esi",
            "+mov eax,ecx",
            "+mov m4[ecx+None*1+0xa024],ebx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+mov m4[ecx+None*1+0xa0c4],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x74],esi",
            "+lea esi,m4[ecx+None*1+0xa0a0]",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0xa024],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            " lea eax,m4[ecx+None*1+0xa0]",
            "-mov m4[ecx+None*1+0x24],edx",
            "-mov m4[ecx+None*1+0xa024],eax",
            "-mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov m4[ecx+None*1+0xc4],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0xa0c4],eax",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x74],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+lea eax,m4[ecx+None*1+0xa000]",
            "+mov m4[ecx+None*1+0xa0c4],edx",
            "+lea esi,m4[ecx+None*1+0xa0a0]",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0x5000]",
            "+mov m4[ecx+None*1+0x5024],eax",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0xa024],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+mov m4[ecx+None*1+0xc4],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x5024],esi",
            "+lea esi,m4[ecx+None*1+0xa0]",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0xa0c4],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+mov m4[ecx+None*1+0x24],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x5024],esi",
            "+mov eax,ebx",
            " mov m4[ecx+None*1+0xc4],ecx",
            "-test eax,eax",
            "-jne local:44",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0xa0a0]",
            "-mov m4[ecx+None*1+0xc4],0x0",
            "-mov m4[ecx+None*1+0xa024],eax",
            "-lea eax,m4[ecx+None*1+0xa0]",
            "-mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xa0c4],eax",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-test edx,edx",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:26",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-mov m4[ecx+None*1+0x74],edx",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-mov esi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xa024],eax",
            "-test esi,esi",
            "-jne local:97",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-mov m4[ecx+None*1+0xa0c4],0x0",
            "-mov m4[ecx+None*1+0x74],eax",
            "-lea eax,m4[ecx+None*1+0xa0a0]",
            "-mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xa024],eax",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-test edi,edi",
            "-je local:101",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0xa0a0]",
            "-mov m4[ecx+None*1+0xc4],0x0",
            "-mov m4[ecx+None*1+0x74],eax",
            "-lea eax,m4[ecx+None*1+0xa0]",
            "-mov ebp,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xa0c4],eax",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-test ebp,ebp",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:68",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:79",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-mov m4[ecx+None*1+0x5024],eax",
            "-lea eax,m4[ecx+None*1+0xa0a0]",
            "-mov m4[ecx+None*1+0xa024],eax",
            "-mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xa0c4],edx",
            "-test eax,eax",
            "-jne local:142",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0xa0a0]",
            "-mov m4[ecx+None*1+0xc4],0x0",
            "-mov m4[ecx+None*1+0x5024],eax",
            "-lea eax,m4[ecx+None*1+0xa0]",
            "-mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xa0c4],eax",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-test edx,edx",
            "-je local:146",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0xa0]",
            "-mov m4[ecx+None*1+0xc4],ecx",
            "-mov m4[ecx+None*1+0x5024],eax",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-mov m4[ecx+None*1+0x24],0x0",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:115",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:126",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            " mov m4[ecx+None*1+0xa074],ecx",
            " mov m4[ecx+None*1+0xa024],edx",
            " lea eax,m4[ecx+None*1+0xa000]",
            "-mov esi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0xa050]",
            " mov m4[ecx+None*1+0x24],eax",
            "-test esi,esi",
            "-jne local:187",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0xa050]",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "+mov eax,ebx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+lea esi,m4[ecx+None*1+0xa0]",
            "+mov m4[ecx+None*1+0x24],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0xa074],esi",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0xc4],ecx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+lea eax,m4[ecx+None*1+0xa0a0]",
            "+mov m4[ecx+None*1+0xc4],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0xa074],eax",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0xa0c4],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+lea esi,m4[ecx+None*1+0xa000]",
            "+mov m4[ecx+None*1+0x50c4],edx",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0x50a0]",
            "+mov m4[ecx+None*1+0x24],esi",
            "+mov eax,ecx",
            "+mov m4[ecx+None*1+0xa024],ebx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            " lea eax,m4[ecx+None*1+0xa0]",
            "-mov m4[ecx+None*1+0x24],0x0",
            "-mov m4[ecx+None*1+0xc4],ecx",
            "-mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xa074],eax",
            "-lea eax,m4[ecx+None*1+0xa050]",
            "-test edi,edi",
            "-je local:191",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0xa0a0]",
            "-mov m4[ecx+None*1+0xc4],0x0",
            "-mov m4[ecx+None*1+0xa074],eax",
            "-lea eax,m4[ecx+None*1+0xa0]",
            "-mov ebp,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xa0c4],eax",
            "-lea eax,m4[ecx+None*1+0xa050]",
            "-test ebp,ebp",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0xa050]",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:159",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:169",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-mov m4[ecx+None*1+0x50c4],edx",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0x50a0]",
            "-mov ebp,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xa024],eax",
            "-test ebp,ebp",
            "-jne local:234",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x50a0]",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0xa0]",
            "+mov m4[ecx+None*1+0xc4],0x0",
            "+mov edx,0xa6a7a6a7",
            " mov m4[ecx+None*1+0x50c4],eax",
            "-mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xc4],0x0",
            "-test eax,eax",
            "-je local:238",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "+mov eax,ecx",
            "+mov m4[ecx+None*1+0x24],ebx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            " lea eax,m4[ecx+None*1+0xa0a0]",
            " mov m4[ecx+None*1+0x50c4],0x0",
            "+mov edx,0xa6a7a6a7",
            " mov m4[ecx+None*1+0xa024],eax",
            "-lea eax,m4[ecx+None*1+0x50a0]",
            "-mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xa0c4],eax",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-test edx,edx",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:205",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:216",
            "-lea eax,m4[ecx+None*1+0x50]",
            "+mov eax,esi",
            "+mov m4[ecx+None*1+0xa0c4],ebx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+lea esi,m4[ecx+None*1+0x50]",
            " mov m4[ecx+None*1+0x24],edx",
            " mov m4[ecx+None*1+0x74],ecx",
            "-mov esi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+lea ebx,m4[ecx+None*1+0x5000]",
            "+mov edx,0xa6a7a6a7",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x5024],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+lea eax,m4[ecx+None*1+0x5050]",
            "+mov m4[ecx+None*1+0x74],0x0",
            "+mov edx,0xa6a7a6a7",
            " mov m4[ecx+None*1+0x5024],eax",
            "-test esi,esi",
            "-jne local:270",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x5050]",
            "-mov m4[ecx+None*1+0x74],0x0",
            "-mov m4[ecx+None*1+0x5024],eax",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x5074],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+lea esi,m4[ecx+None*1+0x5000]",
            "+mov m4[ecx+None*1+0x4c],edx",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0x28]",
            "+mov m4[ecx+None*1+0x24],esi",
            "+mov eax,ecx",
            "+mov m4[ecx+None*1+0x5024],ebx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+mov m4[ecx+None*1+0x5074],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x4c],esi",
            "+lea esi,m4[ecx+None*1+0x5050]",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x5024],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            " lea eax,m4[ecx+None*1+0x50]",
            "-mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov m4[ecx+None*1+0x74],0x0",
            "+mov edx,0xa6a7a6a7",
            " mov m4[ecx+None*1+0x5074],eax",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-test edi,edi",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:252",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0x28]",
            "-mov m4[ecx+None*1+0x5024],eax",
            "-mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x4c],edx",
            "-test eax,eax",
            "-jne local:313",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-mov m4[ecx+None*1+0x5074],0x0",
            "-mov m4[ecx+None*1+0x4c],eax",
            "-lea eax,m4[ecx+None*1+0x5050]",
            "-mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x5024],eax",
            "-lea eax,m4[ecx+None*1+0x28]",
            "-test edx,edx",
            "-je local:317",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x5050]",
            "-mov m4[ecx+None*1+0x4c],eax",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-mov m4[ecx+None*1+0x5074],eax",
            "-lea eax,m4[ecx+None*1+0x28]",
            "-mov m4[ecx+None*1+0x74],0x0",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:285",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:296",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x4c],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            " lea eax,m4[ecx+None*1+0x5000]",
            " mov m4[ecx+None*1+0x5074],edx",
            "+lea esi,m4[ecx+None*1+0x5050]",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0x2800]",
            " mov m4[ecx+None*1+0x2824],eax",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x5024],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+mov m4[ecx+None*1+0x74],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x2824],esi",
            "+lea esi,m4[ecx+None*1+0x50]",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x5074],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+mov m4[ecx+None*1+0x24],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x2824],esi",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x74],ecx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+mov m4[ecx+None*1+0x504c],ecx",
            "+mov m4[ecx+None*1+0x5024],edx",
            "+lea eax,m4[ecx+None*1+0x5000]",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0x5028]",
            "+mov m4[ecx+None*1+0x24],eax",
            "+mov eax,ebx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+lea esi,m4[ecx+None*1+0x50]",
            "+mov m4[ecx+None*1+0x24],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x504c],esi",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x74],ecx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            " lea eax,m4[ecx+None*1+0x5050]",
            "-mov esi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x5024],eax",
            "-test esi,esi",
            "-jne local:359",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0x2800]",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x5050]",
            "-mov m4[ecx+None*1+0x74],0x0",
            "-mov m4[ecx+None*1+0x2824],eax",
            "+mov m4[ecx+None*1+0x74],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x504c],eax",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x5074],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+lea esi,m4[ecx+None*1+0x5000]",
            "+mov m4[ecx+None*1+0x2874],edx",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0x2850]",
            "+mov m4[ecx+None*1+0x24],esi",
            "+mov eax,ecx",
            "+mov m4[ecx+None*1+0x5024],ebx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            " lea eax,m4[ecx+None*1+0x50]",
            "-mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x5074],eax",
            "-lea eax,m4[ecx+None*1+0x2800]",
            "-test edi,edi",
            "-je local:363",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-mov m4[ecx+None*1+0x24],0x0",
            "-mov m4[ecx+None*1+0x74],ecx",
            "-mov ebp,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x2824],eax",
            "-lea eax,m4[ecx+None*1+0x2800]",
            "-test ebp,ebp",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0x2800]",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:331",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:342",
            "-mov m4[ecx+None*1+0x504c],ecx",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-mov m4[ecx+None*1+0x24],eax",
            "-mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x5024],edx",
            "-test eax,eax",
            "-jne local:403",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0x5028]",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-mov m4[ecx+None*1+0x24],0x0",
            "-mov m4[ecx+None*1+0x74],ecx",
            "-mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x504c],eax",
            "-lea eax,m4[ecx+None*1+0x5028]",
            "-test edx,edx",
            "-je local:407",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x5050]",
            "-mov m4[ecx+None*1+0x504c],eax",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-mov m4[ecx+None*1+0x5074],eax",
            "-lea eax,m4[ecx+None*1+0x5028]",
            "-mov m4[ecx+None*1+0x74],0x0",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0x5028]",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:376",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:386",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-mov m4[ecx+None*1+0x2874],edx",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0x2850]",
            "-mov esi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x5024],eax",
            "-test esi,esi",
            "-jne local:450",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x2850]",
            "-mov m4[ecx+None*1+0x74],0x0",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov m4[ecx+None*1+0x74],0x0",
            "+mov edx,0xa6a7a6a7",
            " mov m4[ecx+None*1+0x2874],eax",
            "-test edi,edi",
            "-je local:454",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "+mov eax,ecx",
            "+mov m4[ecx+None*1+0x24],ebx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            " lea eax,m4[ecx+None*1+0x5050]",
            " mov m4[ecx+None*1+0x2874],0x0",
            "+mov edx,0xa6a7a6a7",
            " mov m4[ecx+None*1+0x5024],eax",
            "-lea eax,m4[ecx+None*1+0x2850]",
            "-mov ebp,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x5074],eax",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-test ebp,ebp",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:421",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:432",
            "-lea eax,m4[ecx+None*1+0x28]",
            "+mov eax,esi",
            "+mov m4[ecx+None*1+0x5074],ebx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+lea esi,m4[ecx+None*1+0x28]",
            " mov m4[ecx+None*1+0x24],edx",
            " mov m4[ecx+None*1+0x4c],ecx",
            "-mov ebp,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x2824],eax",
            "-test ebp,ebp",
            "-jne local:486",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0x2800]",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "+lea ebx,m4[ecx+None*1+0x2800]",
            "+mov edx,0xa6a7a6a7",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x2824],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            " lea eax,m4[ecx+None*1+0x2828]",
            " mov m4[ecx+None*1+0x4c],0x0",
            "+mov edx,0xa6a7a6a7",
            " mov m4[ecx+None*1+0x2824],eax",
            "-lea eax,m4[ecx+None*1+0x28]",
            "-mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x284c],eax",
            "-lea eax,m4[ecx+None*1+0x2800]",
            "-test edx,edx",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0x2800]",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:468",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x284c],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            " push 0x51d",
            " push text:'\\\\library\\\\3dvisual\\\\clouds.c'",
            " push text:'Illegal cloud polygon type.'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-pop ebp",
            " pop edi",
            " pop esi",
            " pop edx",
            "@@ -503,477 +313,303 @@",
            " mov eax,m4[eax+None*1+0xc]",
            " dec eax",
            " cmp eax,0xa",
            "-ja local:967",
            "+ja local:604",
            " jmp m4[None+eax*4+clouds.c::draw_clouds_+0x12c4]",
            "-mov m4[ecx+None*1+0xc4],0x0",
            " mov m4[ecx+None*1+0xa024],ecx",
            "-lea eax,m4[ecx+None*1+0xa0]",
            "-mov esi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x24],eax",
            "-test esi,esi",
            "-jne local:535",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "+lea esi,m4[ecx+None*1+0xa0]",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0xa000]",
            "+mov m4[ecx+None*1+0xc4],0x0",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x24],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+lea eax,m4[ecx+None*1+0xa0a0]",
            "+mov m4[ecx+None*1+0xa0c4],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0xc4],eax",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0xa024],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0x50]",
            "+mov m4[ecx+None*1+0xa024],0x0",
            "+lea edi,m4[ecx+None*1+0xa000]",
            "+mov m4[ecx+None*1+0x24],ebx",
            "+mov eax,ecx",
            "+mov m4[ecx+None*1+0x74],edi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0xa024],0x0",
            "+lea esi,m4[ecx+None*1+0xa0a0]",
            "+mov m4[ecx+None*1+0xa0c4],edi",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x74],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            " lea eax,m4[ecx+None*1+0xa0]",
            " mov m4[ecx+None*1+0xa0c4],0x0",
            "-mov m4[ecx+None*1+0xa024],eax",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x74],eax",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0xc4],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+lea edi,m4[ecx+None*1+0xa0a0]",
            "+mov edx,0xa6a7a6a7",
            "+lea eax,m4[ecx+None*1+0xa000]",
            "+mov m4[ecx+None*1+0xa024],0x0",
            "+lea ebx,m4[ecx+None*1+0x5000]",
            "+mov m4[ecx+None*1+0xa0c4],eax",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x5024],edi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+lea esi,m4[ecx+None*1+0xa0]",
            "+mov m4[ecx+None*1+0xa0c4],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x5024],esi",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0xc4],edi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+mov m4[ecx+None*1+0xc4],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x5024],ecx",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x24],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+lea eax,m4[ecx+None*1+0xa000]",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0xa024],ecx",
            "+lea ebx,m4[ecx+None*1+0xa050]",
            "+mov m4[ecx+None*1+0xa074],eax",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x24],0x0",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+mov m4[ecx+None*1+0xc4],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0xa074],ecx",
            "+lea esi,m4[ecx+None*1+0xa0]",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x24],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            " lea eax,m4[ecx+None*1+0xa0a0]",
            "-mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov m4[ecx+None*1+0xa0c4],0x0",
            "+mov edx,0xa6a7a6a7",
            " mov m4[ecx+None*1+0xc4],eax",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-test edi,edi",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:517",
            "-lea eax,m4[ecx+None*1+0x50]",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0xa074],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0x50a0]",
            " mov m4[ecx+None*1+0xa024],0x0",
            "+lea esi,m4[ecx+None*1+0xa000]",
            "+mov m4[ecx+None*1+0x24],ebx",
            "+mov eax,ecx",
            "+mov m4[ecx+None*1+0x50c4],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+lea eax,m4[ecx+None*1+0xa0]",
            "+mov m4[ecx+None*1+0x50c4],0x0",
            "+mov edx,0xa6a7a6a7",
            " mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-mov ebp,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov eax,ecx",
            "+mov m4[ecx+None*1+0xc4],ebx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+lea eax,m4[ecx+None*1+0xa0a0]",
            "+mov m4[ecx+None*1+0xa0c4],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x50c4],eax",
            "+mov eax,esi",
            "+mov m4[ecx+None*1+0xa024],ebx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+mov m4[ecx+None*1+0x5024],ecx",
            "+lea esi,m4[ecx+None*1+0x50]",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0x5000]",
            "+mov m4[ecx+None*1+0x74],0x0",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x24],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+lea eax,m4[ecx+None*1+0x5050]",
            "+mov m4[ecx+None*1+0x5074],0x0",
            "+mov edx,0xa6a7a6a7",
            " mov m4[ecx+None*1+0x74],eax",
            "-test ebp,ebp",
            "-jne local:578",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0xa0a0]",
            "-mov m4[ecx+None*1+0xa024],0x0",
            "-mov m4[ecx+None*1+0x74],eax",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xa0c4],eax",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-test edx,edx",
            "-je local:582",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0xa0]",
            "-mov m4[ecx+None*1+0x74],eax",
            "-lea eax,m4[ecx+None*1+0xa0a0]",
            "-mov m4[ecx+None*1+0xc4],eax",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-mov m4[ecx+None*1+0xa0c4],0x0",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:550",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:561",
            "-lea eax,m4[ecx+None*1+0xa0a0]",
            "-mov m4[ecx+None*1+0xa024],0x0",
            "-mov m4[ecx+None*1+0x5024],eax",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xa0c4],eax",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-test edx,edx",
            "-jne local:624",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0xa0]",
            "-mov m4[ecx+None*1+0xa0c4],0x0",
            "-mov m4[ecx+None*1+0x5024],eax",
            "-lea eax,m4[ecx+None*1+0xa0a0]",
            "-mov esi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xc4],eax",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-test esi,esi",
            "-je local:627",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-mov m4[ecx+None*1+0xc4],0x0",
            "-mov m4[ecx+None*1+0x5024],ecx",
            "-lea eax,m4[ecx+None*1+0xa0]",
            "-mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-test edi,edi",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:596",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:607",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-mov m4[ecx+None*1+0x24],0x0",
            "-mov m4[ecx+None*1+0xa024],ecx",
            "-mov esi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xa074],eax",
            "-lea eax,m4[ecx+None*1+0xa050]",
            "-test esi,esi",
            "-jne local:668",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-mov m4[ecx+None*1+0xc4],0x0",
            "-mov m4[ecx+None*1+0xa074],ecx",
            "-lea eax,m4[ecx+None*1+0xa0]",
            "-mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0xa050]",
            "-test edi,edi",
            "-je local:671",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0xa0]",
            "-mov m4[ecx+None*1+0xa0c4],0x0",
            "-mov m4[ecx+None*1+0xa074],eax",
            "-lea eax,m4[ecx+None*1+0xa0a0]",
            "-mov ebp,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0xc4],eax",
            "-lea eax,m4[ecx+None*1+0xa050]",
            "-test ebp,ebp",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:640",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:650",
            "-lea eax,m4[ecx+None*1+0x50a0]",
            "-mov m4[ecx+None*1+0xa024],0x0",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-mov ebp,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x50c4],eax",
            "-test ebp,ebp",
            "-jne local:714",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0xa0]",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0x50a0]",
            "-mov m4[ecx+None*1+0xc4],eax",
            "-mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x50c4],0x0",
            "-test eax,eax",
            "-je local:718",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x50a0]",
            "-mov m4[ecx+None*1+0xa0c4],0x0",
            "-mov m4[ecx+None*1+0xa024],eax",
            "-lea eax,m4[ecx+None*1+0xa0a0]",
            "-mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x50c4],eax",
            "-lea eax,m4[ecx+None*1+0xa000]",
            "-test edx,edx",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:685",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:696",
            "-mov m4[ecx+None*1+0x74],0x0",
            "-mov m4[ecx+None*1+0x5024],ecx",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-mov esi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-test esi,esi",
            "-jne local:750",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x5024],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0x28]",
            "+mov m4[ecx+None*1+0x5024],0x0",
            "+lea esi,m4[ecx+None*1+0x5000]",
            "+mov m4[ecx+None*1+0x24],ebx",
            "+mov eax,ecx",
            "+mov m4[ecx+None*1+0x4c],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x5024],0x0",
            "+lea edi,m4[ecx+None*1+0x5050]",
            "+mov m4[ecx+None*1+0x5074],esi",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x4c],edi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            " lea eax,m4[ecx+None*1+0x50]",
            " mov m4[ecx+None*1+0x5074],0x0",
            "-mov m4[ecx+None*1+0x5024],eax",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x4c],eax",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x74],edi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+lea edi,m4[ecx+None*1+0x5050]",
            "+mov edx,0xa6a7a6a7",
            "+lea eax,m4[ecx+None*1+0x5000]",
            "+mov m4[ecx+None*1+0x5024],0x0",
            "+lea ebx,m4[ecx+None*1+0x2800]",
            "+mov m4[ecx+None*1+0x5074],eax",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x2824],edi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+lea esi,m4[ecx+None*1+0x50]",
            "+mov m4[ecx+None*1+0x5074],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x2824],esi",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x74],edi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+mov m4[ecx+None*1+0x74],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x2824],ecx",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x24],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+lea eax,m4[ecx+None*1+0x5000]",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x5024],ecx",
            "+lea ebx,m4[ecx+None*1+0x5028]",
            "+mov m4[ecx+None*1+0x504c],eax",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x24],0x0",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+mov m4[ecx+None*1+0x74],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x504c],ecx",
            "+lea esi,m4[ecx+None*1+0x50]",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x24],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            " lea eax,m4[ecx+None*1+0x5050]",
            "-mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov m4[ecx+None*1+0x5074],0x0",
            "+mov edx,0xa6a7a6a7",
            " mov m4[ecx+None*1+0x74],eax",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-test edi,edi",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:732",
            "-lea eax,m4[ecx+None*1+0x28]",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x504c],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0x2850]",
            " mov m4[ecx+None*1+0x5024],0x0",
            "+lea esi,m4[ecx+None*1+0x5000]",
            "+mov m4[ecx+None*1+0x24],ebx",
            "+mov eax,ecx",
            "+mov m4[ecx+None*1+0x2874],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+lea eax,m4[ecx+None*1+0x50]",
            "+mov m4[ecx+None*1+0x2874],0x0",
            "+mov edx,0xa6a7a6a7",
            " mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-mov ebp,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov eax,ecx",
            "+mov m4[ecx+None*1+0x74],ebx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+lea eax,m4[ecx+None*1+0x5050]",
            "+mov m4[ecx+None*1+0x5074],0x0",
            "+mov edx,0xa6a7a6a7",
            "+mov m4[ecx+None*1+0x2874],eax",
            "+mov eax,esi",
            "+mov m4[ecx+None*1+0x5024],ebx",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+mov m4[ecx+None*1+0x2824],ecx",
            "+lea esi,m4[ecx+None*1+0x28]",
            "+mov edx,0xa6a7a6a7",
            "+lea ebx,m4[ecx+None*1+0x2800]",
            "+mov m4[ecx+None*1+0x4c],0x0",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x24],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+lea eax,m4[ecx+None*1+0x2828]",
            "+mov m4[ecx+None*1+0x284c],0x0",
            "+mov edx,0xa6a7a6a7",
            " mov m4[ecx+None*1+0x4c],eax",
            "-test ebp,ebp",
            "-jne local:792",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x5050]",
            "-mov m4[ecx+None*1+0x5024],0x0",
            "-mov m4[ecx+None*1+0x4c],eax",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x5074],eax",
            "-lea eax,m4[ecx+None*1+0x28]",
            "-test edx,edx",
            "-je local:796",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-mov m4[ecx+None*1+0x4c],eax",
            "-lea eax,m4[ecx+None*1+0x5050]",
            "-mov m4[ecx+None*1+0x74],eax",
            "-lea eax,m4[ecx+None*1+0x28]",
            "-mov m4[ecx+None*1+0x5074],0x0",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:764",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:775",
            "-lea eax,m4[ecx+None*1+0x5050]",
            "-mov m4[ecx+None*1+0x5024],0x0",
            "-mov m4[ecx+None*1+0x2824],eax",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x5074],eax",
            "-lea eax,m4[ecx+None*1+0x2800]",
            "-test edx,edx",
            "-jne local:838",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-mov m4[ecx+None*1+0x5074],0x0",
            "-mov m4[ecx+None*1+0x2824],eax",
            "-lea eax,m4[ecx+None*1+0x5050]",
            "-mov esi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x74],eax",
            "-lea eax,m4[ecx+None*1+0x2800]",
            "-test esi,esi",
            "-je local:841",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-mov m4[ecx+None*1+0x74],0x0",
            "-mov m4[ecx+None*1+0x2824],ecx",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0x2800]",
            "-test edi,edi",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:810",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:821",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-mov m4[ecx+None*1+0x24],0x0",
            "-mov m4[ecx+None*1+0x5024],ecx",
            "-mov esi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x504c],eax",
            "-lea eax,m4[ecx+None*1+0x5028]",
            "-test esi,esi",
            "-jne local:882",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-mov m4[ecx+None*1+0x74],0x0",
            "-mov m4[ecx+None*1+0x504c],ecx",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0x5028]",
            "-test edi,edi",
            "-je local:885",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-mov m4[ecx+None*1+0x5074],0x0",
            "-mov m4[ecx+None*1+0x504c],eax",
            "-lea eax,m4[ecx+None*1+0x5050]",
            "-mov ebp,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x74],eax",
            "-lea eax,m4[ecx+None*1+0x5028]",
            "-test ebp,ebp",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:854",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:864",
            "-lea eax,m4[ecx+None*1+0x2850]",
            "-mov m4[ecx+None*1+0x5024],0x0",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-mov ebp,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x2874],eax",
            "-test ebp,ebp",
            "-jne local:928",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x50]",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0x2850]",
            "-mov m4[ecx+None*1+0x74],eax",
            "-mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x2874],0x0",
            "-test eax,eax",
            "-je local:932",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x2850]",
            "-mov m4[ecx+None*1+0x5074],0x0",
            "-mov m4[ecx+None*1+0x5024],eax",
            "-lea eax,m4[ecx+None*1+0x5050]",
            "-mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x2874],eax",
            "-lea eax,m4[ecx+None*1+0x5000]",
            "-test edx,edx",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:899",
            "-mov edx,ebx",
            "-mov eax,ecx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-jmp local:910",
            "-mov m4[ecx+None*1+0x4c],0x0",
            "-mov m4[ecx+None*1+0x2824],ecx",
            "-lea eax,m4[ecx+None*1+0x28]",
            "-mov esi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x24],eax",
            "-lea eax,m4[ecx+None*1+0x2800]",
            "-test esi,esi",
            "-jne local:964",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
            "-lea eax,m4[ecx+None*1+0x28]",
            "-mov m4[ecx+None*1+0x284c],0x0",
            "-mov m4[ecx+None*1+0x2824],eax",
            "-lea eax,m4[ecx+None*1+0x2828]",
            "-mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[ecx+None*1+0x4c],eax",
            "-lea eax,m4[ecx+None*1+0x2800]",
            "-test edi,edi",
            "-je local:48",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,ebx",
            "-call fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
            "-jmp local:946",
            "+mov eax,ebx",
            "+mov m4[ecx+None*1+0x2824],esi",
            "+call 3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            " push 0x6da",
            " push text:'\\\\library\\\\3dvisual\\\\clouds.c'",
            " push text:'Illegal cloud polygon type.'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret "
          ]
        },
        {
          "symbol": "clouds.c::draw_clouds_",
          "source": "E:\\library\\3dvisual\\clouds.c",
          "first": "0x48f1b8",
          "second": "0x48bf38",
          "first_instruction_count": 1120,
          "second_instruction_count": 1120,
          "diff": [
            "--- 0x48f1b8",
            "+++ 0x48bf38",
            "@@ -32,7 +32,7 @@",
            " mov eax,ebp",
            " mov m4[esp+None*1+0xc],ebx",
            " mov m4[esp+None*1+0x1c],eax",
            "-mov eax,m4[None+None*1+0xafaef8]",
            "+mov eax,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x10],edx",
            " mov edx,eax",
            " mov ebx,0xfa000",
            "@@ -185,8 +185,8 @@",
            " mov m4[esp+None*1+0x84],eax",
            " mov m4[esp+None*1+0x80],edx",
            " mov eax,m4[esp+None*1+0x74]",
            "-mov esi,m4[ebp+None*1+0xb000b4]",
            "-mov ebx,m4[ebp+None*1+0xb000b8]",
            "+mov esi,m4[ebp+None*1+0xaea764]",
            "+mov ebx,m4[ebp+None*1+0xaea768]",
            " mov m4[esp+None*1+0x24],eax",
            " mov edx,esi",
            " mov eax,m4[ebp+None*1+clouds.c::_cloud_data]",
            "@@ -197,7 +197,7 @@",
            " mov esi,m4[esp+None*1+0x18]",
            " cmp esi,0xfffffffc",
            " jge local:333",
            "-call fx3dobbf.c::get_object_buffer_space_",
            "+call 3dobjbuf.c::get_object_buffer_space_",
            " mov esi,eax",
            " mov eax,m4[esp+None*1+0x4]",
            " add eax,0x4",
            "@@ -252,7 +252,7 @@",
            " idiv ecx",
            " imul eax,eax,0x12",
            " mov ecx,m4[esp+None*1+0x78]",
            "-mov ecx,m4[ecx+None*1+0xb000cc]",
            "+mov ecx,m4[ecx+None*1+0xaea77c]",
            " sar ecx,0x17",
            " add ecx,eax",
            " cmp ecx,0xe6",
            "@@ -265,23 +265,23 @@",
            " jle local:273",
            " mov eax,m4[esp+None*1+0x80]",
            " mov edx,0x73000000",
            "-mov m4[eax+None*1+0xb000cc],edx",
            "+mov m4[eax+None*1+0xaea77c],edx",
            " mov eax,m4[esp+None*1+0x7c]",
            "-mov m4[eax+None*1+0xb000cc],edx",
            "+mov m4[eax+None*1+0xaea77c],edx",
            " mov eax,m4[esp+None*1+0x80]",
            " mov ecx,0xe6",
            "-mov m4[eax+None*1+0xb0016c],edx",
            "+mov m4[eax+None*1+0xaea81c],edx",
            " mov eax,ecx",
            " mov edx,m4[esp+None*1+0x84]",
            " shl eax,0x17",
            "-mov m4[edx+None*1+0xb000cc],eax",
            "-mov m4[esi+None*1+0x0],0x9",
            "+mov m4[edx+None*1+0xaea77c],eax",
            "+mov m4[esi+None*1+0x0],0x8",
            " mov eax,m4[esp+None*1+0x24]",
            " mov m4[esi+None*1+0xc],0x1",
            " mov m4[esi+None*1+0x8],eax",
            " mov eax,esi",
            " mov m4[esi+None*1+0x4],ebx",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " mov ebx,m4[esp+None*1+0x1c]",
            " mov esi,m4[esp+None*1+0x74]",
            " mov eax,m4[esp+None*1+0x78]",
            "@@ -343,11 +343,11 @@",
            " jmp local:228",
            " mov ebx,0x73000000",
            " mov edx,m4[esp+None*1+0x6c]",
            "-mov m4[edi+None*1+0xb000cc],ebx",
            "-mov m4[edx+None*1+0xb000cc],eax",
            "+mov m4[edi+None*1+0xaea77c],ebx",
            "+mov m4[edx+None*1+0xaea77c],eax",
            " mov edx,m4[esp+None*1+0x68]",
            "-mov m4[edi+None*1+0xb0016c],eax",
            "-mov m4[edx+None*1+0xb000cc],eax",
            "+mov m4[edi+None*1+0xaea81c],eax",
            "+mov m4[edx+None*1+0xaea77c],eax",
            " jmp local:284",
            " imul edx,eax,0x28",
            " mov ecx,m4[esp+None*1+0x12c]",
            "@@ -414,8 +414,8 @@",
            " mov m4[esp+None*1+0x114],edx",
            " mov m4[esp+None*1+0x124],edx",
            " mov eax,m4[esp+None*1+0x94]",
            "-mov ecx,m4[esi+None*1+0xb000b4]",
            "-mov ebx,m4[esi+None*1+0xb000b8]",
            "+mov ecx,m4[esi+None*1+0xaea764]",
            "+mov ebx,m4[esi+None*1+0xaea768]",
            " mov m4[esp+None*1+0x178],eax",
            " mov edx,ecx",
            " mov eax,m4[esi+None*1+clouds.c::_cloud_data]",
            "@@ -426,7 +426,7 @@",
            " mov eax,m4[esp+None*1+0x98]",
            " cmp m4[eax+None*1+clouds.c::_cloud_poly_lookup],0x0",
            " je local:499",
            "-call fx3dobbf.c::get_object_buffer_space_",
            "+call 3dobjbuf.c::get_object_buffer_space_",
            " mov ecx,eax",
            " test eax,eax",
            " je local:499",
            "@@ -446,7 +446,7 @@",
            " mov ebp,m4[None+None*1+clouds.c::_MAX_CLOUD_SECTOR_RANGE]",
            " mov eax,m4[esp+None*1+0x9c]",
            " dec ebp",
            "-mov eax,m4[eax+None*1+0xb000cc]",
            "+mov eax,m4[eax+None*1+0xaea77c]",
            " shl ebp,0x16",
            " sar eax,0x17",
            " sub ebp,ebx",
            "@@ -463,11 +463,11 @@",
            " mov eax,0xe6",
            " mov ebx,m4[esp+None*1+0xa0]",
            " shl eax,0x17",
            "-mov m4[ebx+None*1+0xb000cc],eax",
            "+mov m4[ebx+None*1+0xaea77c],eax",
            " mov eax,m4[esp+None*1+0x178]",
            " mov m4[ecx+None*1+0x8],eax",
            " mov eax,m4[esp+None*1+0xa4]",
            "-mov m4[ecx+None*1+0x0],0x9",
            "+mov m4[ecx+None*1+0x0],0x8",
            " mov eax,m4[eax+None*1+clouds.c::_cloud_poly_lookup]",
            " dec eax",
            " cmp eax,0xa",
            "@@ -475,14 +475,14 @@",
            " jmp m4[None+eax*4+clouds.c::update_cloud_positions_+0xc]",
            " mov eax,m4[esp+None*1+0x128]",
            " mov m4[ecx+None*1+0xc],0x1",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            " mov edx,m4[esp+None*1+0x120]",
            " mov m4[esp+None*1+0x14c],eax",
            " mov eax,m4[esp+None*1+0x11c]",
            " mov ebx,m4[esp+None*1+0x124]",
            "-mov edx,m4[edx+None*1+0xb000b4]",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "-mov ebx,m4[ebx+None*1+0xb000b4]",
            "+mov edx,m4[edx+None*1+0xaea764]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            "+mov ebx,m4[ebx+None*1+0xaea764]",
            " cmp edx,eax",
            " jle local:634",
            " mov ebp,edx",
            "@@ -496,7 +496,7 @@",
            " mov edx,eax",
            " mov eax,ecx",
            " mov m4[ecx+None*1+0x4],edx",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " mov ebp,m4[esp+None*1+0x98]",
            " mov eax,m4[esp+None*1+0xa4]",
            " mov edx,m4[esp+None*1+0x174]",
            "@@ -660,14 +660,14 @@",
            " jmp local:495",
            " mov eax,m4[esp+None*1+0x118]",
            " mov m4[ecx+None*1+0xc],0x2",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            " mov edx,m4[esp+None*1+0x110]",
            " mov m4[esp+None*1+0x150],eax",
            " mov eax,m4[esp+None*1+0x114]",
            " mov ebx,m4[esp+None*1+0x114]",
            "-mov edx,m4[edx+None*1+0xb000b4]",
            "-mov eax,m4[eax+None*1+0xb00154]",
            "-mov ebx,m4[ebx+None*1+0xb000b4]",
            "+mov edx,m4[edx+None*1+0xaea764]",
            "+mov eax,m4[eax+None*1+0xaea804]",
            "+mov ebx,m4[ebx+None*1+0xaea764]",
            " cmp edx,eax",
            " jle local:680",
            " mov ebp,edx",
            "@@ -705,14 +705,14 @@",
            " jmp local:495",
            " mov eax,m4[esp+None*1+0x10c]",
            " mov m4[ecx+None*1+0xc],0x3",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            " mov edx,m4[esp+None*1+0x108]",
            " mov m4[esp+None*1+0x154],eax",
            " mov eax,m4[esp+None*1+0x104]",
            " mov ebx,m4[esp+None*1+0x108]",
            "-mov edx,m4[edx+None*1+0xb00154]",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "-mov ebx,m4[ebx+None*1+0xb000b4]",
            "+mov edx,m4[edx+None*1+0xaea804]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            "+mov ebx,m4[ebx+None*1+0xaea764]",
            " cmp eax,edx",
            " jle local:725",
            " mov ebp,eax",
            "@@ -750,14 +750,14 @@",
            " jmp local:495",
            " mov eax,m4[esp+None*1+0x100]",
            " mov m4[ecx+None*1+0xc],0x4",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            " mov edx,m4[esp+None*1+0xf8]",
            " mov m4[esp+None*1+0x158],eax",
            " mov eax,m4[esp+None*1+0xfc]",
            " mov ebx,m4[esp+None*1+0xfc]",
            "-mov edx,m4[edx+None*1+0xb000b4]",
            "-mov eax,m4[eax+None*1+0xb00154]",
            "-mov ebx,m4[ebx+None*1+0xb000b4]",
            "+mov edx,m4[edx+None*1+0xaea764]",
            "+mov eax,m4[eax+None*1+0xaea804]",
            "+mov ebx,m4[ebx+None*1+0xaea764]",
            " cmp edx,eax",
            " jle local:771",
            " mov ebp,edx",
            "@@ -797,11 +797,11 @@",
            " mov eax,m4[esp+None*1+0xf4]",
            " mov m4[ecx+None*1+0xc],0x5",
            " mov edx,m4[esp+None*1+0xf0]",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "-mov edx,m4[edx+None*1+0xb000b4]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            "+mov edx,m4[edx+None*1+0xaea764]",
            " mov m4[esp+None*1+0x15c],eax",
            "-mov eax,m4[edi+None*1+0xb00154]",
            "-mov ebx,m4[edi+None*1+0xb000b4]",
            "+mov eax,m4[edi+None*1+0xaea804]",
            "+mov ebx,m4[edi+None*1+0xaea764]",
            " cmp edx,eax",
            " jle local:815",
            " mov ebp,edx",
            "@@ -840,14 +840,14 @@",
            " jmp local:495",
            " mov eax,m4[esp+None*1+0xec]",
            " mov m4[ecx+None*1+0xc],0x6",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            " mov edx,m4[esp+None*1+0xe4]",
            " mov m4[esp+None*1+0x160],eax",
            " mov eax,m4[esp+None*1+0xe8]",
            " mov ebx,m4[esp+None*1+0xe8]",
            "-mov edx,m4[edx+None*1+0xb000b4]",
            "-mov eax,m4[eax+None*1+0xb00104]",
            "-mov ebx,m4[ebx+None*1+0xb000b4]",
            "+mov edx,m4[edx+None*1+0xaea764]",
            "+mov eax,m4[eax+None*1+0xaea7b4]",
            "+mov ebx,m4[ebx+None*1+0xaea764]",
            " cmp edx,eax",
            " jle local:861",
            " mov ebp,edx",
            "@@ -886,14 +886,14 @@",
            " jmp local:495",
            " mov eax,m4[esp+None*1+0xe0]",
            " mov m4[ecx+None*1+0xc],0x7",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            " mov edx,m4[esp+None*1+0xdc]",
            " mov m4[esp+None*1+0x164],eax",
            " mov eax,m4[esp+None*1+0xd8]",
            " mov ebx,m4[esp+None*1+0xdc]",
            "-mov edx,m4[edx+None*1+0xb00104]",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "-mov ebx,m4[ebx+None*1+0xb000b4]",
            "+mov edx,m4[edx+None*1+0xaea7b4]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            "+mov ebx,m4[ebx+None*1+0xaea764]",
            " cmp eax,edx",
            " jle local:906",
            " mov ebp,eax",
            "@@ -931,14 +931,14 @@",
            " jmp local:495",
            " mov eax,m4[esp+None*1+0xd4]",
            " mov m4[ecx+None*1+0xc],0x8",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            " mov edx,m4[esp+None*1+0xd0]",
            " mov m4[esp+None*1+0x168],eax",
            " mov eax,m4[esp+None*1+0xcc]",
            " mov ebx,m4[esp+None*1+0xd0]",
            "-mov edx,m4[edx+None*1+0xb00104]",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "-mov ebx,m4[ebx+None*1+0xb000b4]",
            "+mov edx,m4[edx+None*1+0xaea7b4]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            "+mov ebx,m4[ebx+None*1+0xaea764]",
            " cmp eax,edx",
            " jle local:952",
            " mov ebp,eax",
            "@@ -976,14 +976,14 @@",
            " jmp local:496",
            " mov eax,m4[esp+None*1+0xc8]",
            " mov m4[ecx+None*1+0xc],0x9",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            " mov edx,m4[esp+None*1+0xc0]",
            " mov m4[esp+None*1+0x16c],eax",
            " mov eax,m4[esp+None*1+0xc4]",
            " mov ebx,m4[esp+None*1+0xc4]",
            "-mov edx,m4[edx+None*1+0xb000b4]",
            "-mov eax,m4[eax+None*1+0xb00104]",
            "-mov ebx,m4[ebx+None*1+0xb000b4]",
            "+mov edx,m4[edx+None*1+0xaea764]",
            "+mov eax,m4[eax+None*1+0xaea7b4]",
            "+mov ebx,m4[ebx+None*1+0xaea764]",
            " cmp edx,eax",
            " jle local:996",
            " mov ebp,edx",
            "@@ -1021,14 +1021,14 @@",
            " jmp local:495",
            " mov eax,m4[esp+None*1+0xbc]",
            " mov m4[ecx+None*1+0xc],0xa",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            " mov edx,m4[esp+None*1+0xb8]",
            " mov m4[esp+None*1+0x170],eax",
            " mov eax,m4[esp+None*1+0xb4]",
            " mov ebx,m4[esp+None*1+0xb8]",
            "-mov edx,m4[edx+None*1+0xb00104]",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "-mov ebx,m4[ebx+None*1+0xb000b4]",
            "+mov edx,m4[edx+None*1+0xaea7b4]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            "+mov ebx,m4[ebx+None*1+0xaea764]",
            " cmp eax,edx",
            " jle local:1042",
            " mov ebp,eax",
            "@@ -1063,14 +1063,14 @@",
            " jmp local:496",
            " mov eax,m4[esp+None*1+0xb0]",
            " mov m4[ecx+None*1+0xc],0xb",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            " mov edx,m4[esp+None*1+0xac]",
            " mov m4[esp+None*1+0x14],eax",
            " mov eax,m4[esp+None*1+0xa8]",
            " mov ebx,m4[esp+None*1+0xac]",
            "-mov edx,m4[edx+None*1+0xb000dc]",
            "-mov eax,m4[eax+None*1+0xb000b4]",
            "-mov ebx,m4[ebx+None*1+0xb000b4]",
            "+mov edx,m4[edx+None*1+0xaea78c]",
            "+mov eax,m4[eax+None*1+0xaea764]",
            "+mov ebx,m4[ebx+None*1+0xaea764]",
            " cmp eax,edx",
            " jle local:1084",
            " mov ebp,eax"
          ]
        },
        {
          "symbol": "clouds.c::draw_fractal_clouds_",
          "source": "E:\\library\\3dvisual\\clouds.c",
          "first": "0x48ecd4",
          "second": "0x48b9a8",
          "first_instruction_count": 400,
          "second_instruction_count": 431,
          "diff": [
            "--- 0x48ecd4",
            "+++ 0x48b9a8",
            "@@ -2,32 +2,32 @@",
            " push edi",
            " push ebp",
            " mov ebp,esp",
            "-sub esp,0x38",
            "+sub esp,0x3c",
            " and esp,0xfffffff8",
            "-mov m4[esp+None*1+0x10],eax",
            "-mov m4[esp+None*1+0xc],edx",
            "-mov m4[esp+None*1+0x4],ebx",
            "+mov m4[esp+None*1+0x4],eax",
            "+mov m4[esp+None*1+0x8],edx",
            "+mov m4[esp+None*1+0x30],ebx",
            " mov eax,m4[ebp+None*1+0x14]",
            "-mov m4[esp+None*1+0x8],ecx",
            "+mov m4[esp+None*1+0x2c],ecx",
            " mov m4[esp+None*1+0x0],eax",
            " mov edx,m4[ebp+None*1+0x10]",
            "-mov eax,m4[esp+None*1+0x4]",
            "-mov ecx,m4[esp+None*1+0x10]",
            "-mov esi,m4[esp+None*1+0xc]",
            "+mov eax,m4[esp+None*1+0x30]",
            "+mov ecx,m4[esp+None*1+0x4]",
            "+mov ebx,m4[esp+None*1+0x8]",
            " inc edx",
            " sub eax,ecx",
            " mov m4[ebp+None*1+0x10],edx",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x8]",
            "-sub eax,esi",
            "-cdq ",
            "-xor eax,edx",
            "-sub eax,edx",
            "-mov esi,eax",
            "-cmp ebx,0x1",
            "+mov ecx,eax",
            "+mov eax,m4[esp+None*1+0x2c]",
            "+sub eax,ebx",
            "+cdq ",
            "+xor eax,edx",
            "+sub eax,edx",
            "+mov edi,eax",
            "+cmp ecx,0x1",
            " jle local:33",
            " cmp m4[ebp+None*1+0x10],0x9",
            " jle local:38",
            "@@ -36,365 +36,396 @@",
            " pop edi",
            " pop esi",
            " ret 0x8",
            "-mov edx,ebx",
            "-mov eax,ebx",
            "-sar edx,0x1f",
            "-sub eax,edx",
            "-sar eax,0x1",
            "-cdq ",
            "-xor eax,edx",
            "-sub eax,edx",
            "-mov edx,esi",
            "-lea edi,m4[ecx+eax*1+0x0]",
            "-mov eax,esi",
            "-sar edx,0x1f",
            "-sub eax,edx",
            "-sar eax,0x1",
            "-mov ebx,m4[esp+None*1+0xc]",
            "-mov esi,m4[esp+None*1+0xc]",
            "-cdq ",
            "-xor eax,edx",
            "-sub eax,edx",
            "+mov edx,ecx",
            "+mov eax,ecx",
            "+sar edx,0x1f",
            "+sub eax,edx",
            "+sar eax,0x1",
            "+mov esi,m4[esp+None*1+0x4]",
            "+cdq ",
            "+xor eax,edx",
            "+sub eax,edx",
            "+mov edx,edi",
            " add esi,eax",
            "-mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "-mov al,m1[edx+ecx*1+0x0]",
            "-and eax,0xff",
            "+mov eax,edi",
            "+sar edx,0x1f",
            "+sub eax,edx",
            "+sar eax,0x1",
            " mov ecx,m4[esp+None*1+0x4]",
            "+cdq ",
            "+xor eax,edx",
            "+sub eax,edx",
            "+lea edi,m4[ebx+eax*1+0x0]",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov al,m1[edx+ecx*1+0x0]",
            "+and eax,0xff",
            "+mov ecx,m4[esp+None*1+0x30]",
            "+mov m4[esp+None*1+0x1c],eax",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov al,m1[edx+ecx*1+0x0]",
            "+and eax,0xff",
            "+mov ebx,m4[esp+None*1+0x2c]",
            "+mov m4[esp+None*1+0x20],eax",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov al,m1[edx+ecx*1+0x0]",
            "+and eax,0xff",
            "+mov ecx,m4[esp+None*1+0x4]",
            "+mov m4[esp+None*1+0x28],eax",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov al,m1[edx+ecx*1+0x0]",
            "+mov ebx,m4[esp+None*1+0x8]",
            "+and eax,0xff",
            "+mov ecx,esi",
            " mov m4[esp+None*1+0x24],eax",
            " mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            " mov al,m1[edx+ecx*1+0x0]",
            "-and eax,0xff",
            "+mov ecx,m4[esp+None*1+0x30]",
            "+and eax,0xff",
            "+mov ebx,edi",
            "+mov m4[esp+None*1+0x10],eax",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov al,m1[edx+ecx*1+0x0]",
            "+mov ebx,m4[esp+None*1+0x2c]",
            "+and eax,0xff",
            "+mov ecx,esi",
            "+mov m4[esp+None*1+0x18],eax",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov al,m1[edx+ecx*1+0x0]",
            "+mov ecx,m4[esp+None*1+0x4]",
            "+and eax,0xff",
            "+mov ebx,edi",
            "+mov m4[esp+None*1+0xc],eax",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov al,m1[edx+ecx*1+0x0]",
            "+and eax,0xff",
            "+mov ecx,esi",
            "+mov m4[esp+None*1+0x34],eax",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov al,m1[edx+ecx*1+0x0]",
            "+and eax,0xff",
            "+mov m4[esp+None*1+0x14],eax",
            "+cmp m4[esp+None*1+0x10],0x0",
            "+jne local:163",
            "+cmp m4[esp+None*1+0x0],0x2000",
            "+jge local:142",
            "+call rand::rand_",
            "+mov edx,eax",
            "+mov ecx,m4[esp+None*1+0x0]",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+mov ecx,eax",
            "+mov eax,0x4000",
            "+mov edx,eax",
            "+mov ebx,m4[esp+None*1+0x0]",
            "+sar edx,0x1f",
            "+idiv ebx",
            "+sub ecx,eax",
            "+mov edx,m4[esp+None*1+0x1c]",
            "+mov eax,m4[esp+None*1+0x20]",
            "+add edx,eax",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+sub eax,edx",
            "+sar eax,0x1",
            "+add eax,ecx",
            "+cdq ",
            "+xor eax,edx",
            "+sub eax,edx",
            "+mov m4[esp+None*1+0x10],eax",
            "+cmp eax,0xff",
            "+jle local:150",
            "+mov edx,m4[esp+None*1+0x10]",
            "+cmp edx,0xff",
            "+jle local:150",
            "+lea ecx,m4[edx+None*1+0xffffffff]",
            "+mov m4[esp+None*1+0x10],ecx",
            "+jmp local:136",
            "+call rand::rand_",
            "+mov edx,eax",
            "+sar edx,0x1f",
            "+shl edx,0xd",
            "+sbb eax,edx",
            "+sar eax,0xd",
            "+mov ecx,eax",
            "+jmp local:122",
            "+cmp m4[esp+None*1+0x10],0x1",
            "+jge local:158",
            "+mov eax,m4[esp+None*1+0x10]",
            "+cmp eax,0x1",
            "+jge local:158",
            "+lea edx,m4[eax+None*1+0x1]",
            "+mov m4[esp+None*1+0x10],edx",
            "+jmp local:152",
            "+mov al,m1[esp+None*1+0x10]",
            " mov ebx,m4[esp+None*1+0x8]",
            "-mov m4[esp+None*1+0x28],eax",
            "-mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "-mov al,m1[edx+ecx*1+0x0]",
            "-and eax,0xff",
            "-mov ecx,m4[esp+None*1+0x10]",
            "-mov m4[esp+None*1+0x30],eax",
            "-mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "-mov al,m1[edx+ecx*1+0x0]",
            "-mov ebx,m4[esp+None*1+0xc]",
            "-and eax,0xff",
            "-mov ecx,edi",
            "-mov m4[esp+None*1+0x2c],eax",
            "-mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "-mov al,m1[edx+ecx*1+0x0]",
            "-mov ecx,m4[esp+None*1+0x4]",
            "-and eax,0xff",
            "-mov ebx,esi",
            "-mov m4[esp+None*1+0x1c],eax",
            "-mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "-mov al,m1[edx+ecx*1+0x0]",
            "-mov ebx,m4[esp+None*1+0x8]",
            "-and eax,0xff",
            "-mov ecx,edi",
            "-mov m4[esp+None*1+0x20],eax",
            "-mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "-mov al,m1[edx+ecx*1+0x0]",
            "-mov ecx,m4[esp+None*1+0x10]",
            "-and eax,0xff",
            "-mov ebx,esi",
            "-mov m4[esp+None*1+0x18],eax",
            "-mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "-mov al,m1[edx+ecx*1+0x0]",
            "-and eax,0xff",
            "-mov ecx,edi",
            "-mov m4[esp+None*1+0x14],eax",
            "-mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "-mov al,m1[edx+ecx*1+0x0]",
            "-xor ecx,edi",
            "-mov cl,al",
            "-cmp m4[esp+None*1+0x1c],0x0",
            "-jne local:156",
            "-cmp m4[esp+None*1+0x0],0x2000",
            "-jge local:139",
            "-call rand::rand_",
            "-mov edx,eax",
            "-mov ebx,m4[esp+None*1+0x0]",
            "-sar edx,0x1f",
            "-idiv ebx",
            "-mov ebx,eax",
            "-mov eax,0x4000",
            "-mov edx,eax",
            "-sar edx,0x1f",
            "-idiv m4[esp+None*1+0x0]",
            "-sub ebx,eax",
            "-mov edx,m4[esp+None*1+0x24]",
            "-mov eax,m4[esp+None*1+0x28]",
            "-add edx,eax",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-sub eax,edx",
            "-sar eax,0x1",
            "-add eax,ebx",
            "-cdq ",
            "-xor eax,edx",
            "-sub eax,edx",
            "-mov ebx,eax",
            "-cmp eax,0xff",
            "-jle local:147",
            "-cmp ebx,0xff",
            "-jle local:147",
            "-dec ebx",
            "-jmp local:135",
            "-call rand::rand_",
            "-mov edx,eax",
            "-sar edx,0x1f",
            "-shl edx,0xd",
            "-sbb eax,edx",
            "-sar eax,0xd",
            "-mov ebx,eax",
            "-jmp local:121",
            "-cmp ebx,0x1",
            "-jge local:153",
            "-cmp ebx,0x1",
            "-jge local:153",
            "-inc ebx",
            "-jmp local:149",
            "-mov edx,m4[esp+None*1+0xc]",
            "-mov eax,edi",
            "-call fxpoly1.c::set_point_",
            "-cmp m4[esp+None*1+0x20],0x0",
            "-jne local:206",
            "+mov ecx,esi",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+cmp m4[esp+None*1+0x18],0x0",
            "+jne local:219",
            " mov ebx,m4[esp+None*1+0x0]",
            " cmp ebx,0x2000",
            "-jge local:189",
            "-call rand::rand_",
            "-mov edx,eax",
            "-sar edx,0x1f",
            "-idiv ebx",
            "-mov ebx,eax",
            "+jge local:198",
            "+call rand::rand_",
            "+mov edx,eax",
            "+sar edx,0x1f",
            "+idiv ebx",
            "+mov ecx,eax",
            " mov eax,0x4000",
            " mov edx,eax",
            " sar edx,0x1f",
            "-idiv m4[esp+None*1+0x0]",
            "-sub ebx,eax",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov eax,m4[esp+None*1+0x30]",
            "+idiv ebx",
            "+sub ecx,eax",
            "+mov edx,m4[esp+None*1+0x20]",
            "+mov eax,m4[esp+None*1+0x28]",
            " add edx,eax",
            " mov eax,edx",
            " sar edx,0x1f",
            " sub eax,edx",
            " sar eax,0x1",
            "-add eax,ebx",
            "-cdq ",
            "-xor eax,edx",
            "-sub eax,edx",
            "-mov ebx,eax",
            "+add eax,ecx",
            "+cdq ",
            "+xor eax,edx",
            "+sub eax,edx",
            "+mov m4[esp+None*1+0x18],eax",
            " cmp eax,0xff",
            "-jle local:197",
            "-cmp ebx,0xff",
            "-jle local:197",
            "-dec ebx",
            "-jmp local:185",
            "+jle local:206",
            "+mov edx,m4[esp+None*1+0x18]",
            "+cmp edx,0xff",
            "+jle local:206",
            "+lea ecx,m4[edx+None*1+0xffffffff]",
            "+mov m4[esp+None*1+0x18],ecx",
            "+jmp local:192",
            " call rand::rand_",
            " mov edx,eax",
            " sar edx,0x1f",
            " shl edx,0xd",
            " sbb eax,edx",
            " sar eax,0xd",
            "-mov ebx,eax",
            "-jmp local:171",
            "-cmp ebx,0x1",
            "-jge local:203",
            "-cmp ebx,0x1",
            "-jge local:203",
            "-inc ebx",
            "-jmp local:199",
            "-mov eax,m4[esp+None*1+0x4]",
            "-mov edx,esi",
            "-call fxpoly1.c::set_point_",
            "-cmp m4[esp+None*1+0x18],0x0",
            "-jne local:256",
            "+mov ecx,eax",
            "+jmp local:178",
            "+cmp m4[esp+None*1+0x18],0x1",
            "+jge local:214",
            "+mov eax,m4[esp+None*1+0x18]",
            "+cmp eax,0x1",
            "+jge local:214",
            "+lea edx,m4[eax+None*1+0x1]",
            "+mov m4[esp+None*1+0x18],edx",
            "+jmp local:208",
            "+mov al,m1[esp+None*1+0x18]",
            "+mov ecx,m4[esp+None*1+0x30]",
            "+mov ebx,edi",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+cmp m4[esp+None*1+0xc],0x0",
            "+jne local:275",
            " mov ebx,m4[esp+None*1+0x0]",
            " cmp ebx,0x2000",
            "-jge local:239",
            "-call rand::rand_",
            "-mov edx,eax",
            "-sar edx,0x1f",
            "-idiv ebx",
            "-mov ebx,eax",
            "+jge local:254",
            "+call rand::rand_",
            "+mov edx,eax",
            "+sar edx,0x1f",
            "+idiv ebx",
            "+mov ecx,eax",
            " mov eax,0x4000",
            " mov edx,eax",
            " sar edx,0x1f",
            "-idiv m4[esp+None*1+0x0]",
            "-sub ebx,eax",
            "-mov edx,m4[esp+None*1+0x30]",
            "-mov eax,m4[esp+None*1+0x2c]",
            "+idiv ebx",
            "+sub ecx,eax",
            "+mov edx,m4[esp+None*1+0x28]",
            "+mov eax,m4[esp+None*1+0x24]",
            " add edx,eax",
            " mov eax,edx",
            " sar edx,0x1f",
            " sub eax,edx",
            " sar eax,0x1",
            "-add eax,ebx",
            "-cdq ",
            "-xor eax,edx",
            "-sub eax,edx",
            "-mov ebx,eax",
            "+add eax,ecx",
            "+cdq ",
            "+xor eax,edx",
            "+sub eax,edx",
            "+mov m4[esp+None*1+0xc],eax",
            " cmp eax,0xff",
            "-jle local:247",
            "-cmp ebx,0xff",
            "-jle local:247",
            "-dec ebx",
            "-jmp local:235",
            "+jle local:262",
            "+mov edx,m4[esp+None*1+0xc]",
            "+cmp edx,0xff",
            "+jle local:262",
            "+lea ecx,m4[edx+None*1+0xffffffff]",
            "+mov m4[esp+None*1+0xc],ecx",
            "+jmp local:248",
            " call rand::rand_",
            " mov edx,eax",
            " sar edx,0x1f",
            " shl edx,0xd",
            " sbb eax,edx",
            " sar eax,0xd",
            "-mov ebx,eax",
            "-jmp local:221",
            "-cmp ebx,0x1",
            "-jge local:253",
            "-cmp ebx,0x1",
            "-jge local:253",
            "-inc ebx",
            "-jmp local:249",
            "-mov edx,m4[esp+None*1+0x8]",
            "-mov eax,edi",
            "-call fxpoly1.c::set_point_",
            "-cmp m4[esp+None*1+0x14],0x0",
            "-jne local:306",
            "+mov ecx,eax",
            "+jmp local:234",
            "+cmp m4[esp+None*1+0xc],0x1",
            "+jge local:270",
            "+mov eax,m4[esp+None*1+0xc]",
            "+cmp eax,0x1",
            "+jge local:270",
            "+lea edx,m4[eax+None*1+0x1]",
            "+mov m4[esp+None*1+0xc],edx",
            "+jmp local:264",
            "+mov al,m1[esp+None*1+0xc]",
            "+mov ebx,m4[esp+None*1+0x2c]",
            "+mov ecx,esi",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+cmp m4[esp+None*1+0x34],0x0",
            "+jne local:331",
            " mov ebx,m4[esp+None*1+0x0]",
            " cmp ebx,0x2000",
            "-jge local:289",
            "-call rand::rand_",
            "-mov edx,eax",
            "-sar edx,0x1f",
            "-idiv ebx",
            "-mov ebx,eax",
            "+jge local:310",
            "+call rand::rand_",
            "+mov edx,eax",
            "+sar edx,0x1f",
            "+idiv ebx",
            "+mov ecx,eax",
            " mov eax,0x4000",
            " mov edx,eax",
            " sar edx,0x1f",
            "-idiv m4[esp+None*1+0x0]",
            "-sub ebx,eax",
            "-mov edx,m4[esp+None*1+0x2c]",
            "+idiv ebx",
            "+sub ecx,eax",
            "+mov edx,m4[esp+None*1+0x24]",
            "+mov eax,m4[esp+None*1+0x1c]",
            "+add edx,eax",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+sub eax,edx",
            "+sar eax,0x1",
            "+add eax,ecx",
            "+cdq ",
            "+xor eax,edx",
            "+sub eax,edx",
            "+mov m4[esp+None*1+0x34],eax",
            "+cmp eax,0xff",
            "+jle local:318",
            "+mov edx,m4[esp+None*1+0x34]",
            "+cmp edx,0xff",
            "+jle local:318",
            "+lea ecx,m4[edx+None*1+0xffffffff]",
            "+mov m4[esp+None*1+0x34],ecx",
            "+jmp local:304",
            "+call rand::rand_",
            "+mov edx,eax",
            "+sar edx,0x1f",
            "+shl edx,0xd",
            "+sbb eax,edx",
            "+sar eax,0xd",
            "+mov ecx,eax",
            "+jmp local:290",
            "+cmp m4[esp+None*1+0x34],0x1",
            "+jge local:326",
            "+mov eax,m4[esp+None*1+0x34]",
            "+cmp eax,0x1",
            "+jge local:326",
            "+lea edx,m4[eax+None*1+0x1]",
            "+mov m4[esp+None*1+0x34],edx",
            "+jmp local:320",
            "+mov al,m1[esp+None*1+0x34]",
            "+mov ecx,m4[esp+None*1+0x4]",
            "+mov ebx,edi",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+cmp m4[esp+None*1+0x14],0x0",
            "+jne local:392",
            "+mov ebx,m4[esp+None*1+0x0]",
            "+cmp ebx,0x2000",
            "+jge local:371",
            "+call rand::rand_",
            "+mov edx,eax",
            "+sar edx,0x1f",
            "+idiv ebx",
            "+mov ecx,eax",
            "+mov eax,0x4000",
            "+mov edx,eax",
            "+sar edx,0x1f",
            "+idiv ebx",
            "+sub ecx,eax",
            "+mov edx,m4[esp+None*1+0x1c]",
            "+mov eax,m4[esp+None*1+0x20]",
            "+mov ebx,m4[esp+None*1+0x28]",
            "+add edx,eax",
            " mov eax,m4[esp+None*1+0x24]",
            "+add edx,ebx",
            " add edx,eax",
            " mov eax,edx",
            " sar edx,0x1f",
            "-sub eax,edx",
            "-sar eax,0x1",
            "-add eax,ebx",
            "-cdq ",
            "-xor eax,edx",
            "-sub eax,edx",
            "-mov ebx,eax",
            "+shl edx,0x2",
            "+sbb eax,edx",
            "+sar eax,0x2",
            "+add eax,ecx",
            "+cdq ",
            "+xor eax,edx",
            "+sub eax,edx",
            "+mov m4[esp+None*1+0x14],eax",
            " cmp eax,0xff",
            "-jle local:297",
            "-cmp ebx,0xff",
            "-jle local:297",
            "-dec ebx",
            "-jmp local:285",
            "+jle local:379",
            "+mov edx,m4[esp+None*1+0x14]",
            "+cmp edx,0xff",
            "+jle local:379",
            "+lea ecx,m4[edx+None*1+0xffffffff]",
            "+mov m4[esp+None*1+0x14],ecx",
            "+jmp local:365",
            " call rand::rand_",
            " mov edx,eax",
            " sar edx,0x1f",
            " shl edx,0xd",
            " sbb eax,edx",
            " sar eax,0xd",
            "-mov ebx,eax",
            "-jmp local:271",
            "-cmp ebx,0x1",
            "-jge local:303",
            "-cmp ebx,0x1",
            "-jge local:303",
            "-inc ebx",
            "-jmp local:299",
            "-mov eax,m4[esp+None*1+0x10]",
            "-mov edx,esi",
            "-call fxpoly1.c::set_point_",
            "-test ecx,ecx",
            "-jne local:361",
            "-cmp m4[esp+None*1+0x0],0x2000",
            "-jge local:344",
            "-call rand::rand_",
            "-mov edx,eax",
            "-mov ecx,m4[esp+None*1+0x0]",
            "-sar edx,0x1f",
            "-idiv ecx",
            "-mov ebx,eax",
            "-mov eax,0x4000",
            "-mov edx,eax",
            "-sar edx,0x1f",
            "-idiv ecx",
            "-sub ebx,eax",
            "-mov eax,m4[esp+None*1+0x24]",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov ecx,m4[esp+None*1+0x30]",
            "-add eax,edx",
            "-mov edx,m4[esp+None*1+0x2c]",
            "-add eax,ecx",
            "-add edx,eax",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-shl edx,0x2",
            "-sbb eax,edx",
            "-sar eax,0x2",
            "-add eax,ebx",
            "-cdq ",
            "-xor eax,edx",
            "-sub eax,edx",
            "-mov ebx,eax",
            "-cmp eax,0xff",
            "-jle local:352",
            "-cmp ebx,0xff",
            "-jle local:352",
            "-dec ebx",
            "-jmp local:340",
            "-call rand::rand_",
            "-mov edx,eax",
            "-sar edx,0x1f",
            "-shl edx,0xd",
            "-sbb eax,edx",
            "-sar eax,0xd",
            "-mov ebx,eax",
            "-jmp local:321",
            "-cmp ebx,0x1",
            "-jge local:358",
            "-cmp ebx,0x1",
            "-jge local:358",
            "-inc ebx",
            "-jmp local:354",
            "-mov edx,esi",
            "-mov eax,edi",
            "-call fxpoly1.c::set_point_",
            "+mov ecx,eax",
            "+jmp local:346",
            "+cmp m4[esp+None*1+0x14],0x1",
            "+jge local:387",
            "+mov eax,m4[esp+None*1+0x14]",
            "+cmp eax,0x1",
            "+jge local:387",
            "+lea edx,m4[eax+None*1+0x1]",
            "+mov m4[esp+None*1+0x14],edx",
            "+jmp local:381",
            "+mov al,m1[esp+None*1+0x14]",
            "+mov ebx,edi",
            "+mov ecx,esi",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x34],eax",
            "-fild m4[esp+None*1+0x34]",
            "+mov m4[esp+None*1+0x38],eax",
            "+fild m4[esp+None*1+0x38]",
            " fmul m8[None+None*1+constant:696969696969f93f]",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x0]",
            " cmp m4[esp+None*1+0x0],0x1",
            "-jge local:370",
            "+jge local:401",
            " mov m4[esp+None*1+0x0],0x1",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov ecx,m4[ebp+None*1+0x10]",
            "+mov eax,m4[esp+None*1+0x0]",
            "+mov edx,m4[ebp+None*1+0x10]",
            "+push eax",
            "+mov ecx,edi",
            "+mov ebx,esi",
            " push edx",
            "-mov eax,m4[esp+None*1+0x14]",
            "-mov ebx,edi",
            "+mov eax,m4[esp+None*1+0xc]",
            "+mov edx,m4[esp+None*1+0x10]",
            "+call local:0",
            "+mov ecx,m4[esp+None*1+0x0]",
            "+mov ebx,m4[ebp+None*1+0x10]",
            " push ecx",
            "-mov edx,m4[esp+None*1+0x14]",
            "-mov ecx,esi",
            "+mov edx,m4[esp+None*1+0xc]",
            "+mov eax,esi",
            "+push ebx",
            "+mov ecx,edi",
            "+mov ebx,m4[esp+None*1+0x38]",
            "+mov m4[esp+None*1+0x10],edi",
            " call local:0",
            "-mov ebx,m4[esp+None*1+0x0]",
            "-mov eax,m4[ebp+None*1+0x10]",
            "-mov edx,m4[esp+None*1+0xc]",
            "-push ebx",
            "-mov ecx,esi",
            "-mov ebx,m4[esp+None*1+0x8]",
            "+mov eax,m4[esp+None*1+0x0]",
            "+mov edx,m4[ebp+None*1+0x10]",
            " push eax",
            "-mov eax,edi",
            "-mov m4[esp+None*1+0x14],esi",
            "-call local:0",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov ecx,m4[ebp+None*1+0x10]",
            "+mov ecx,m4[esp+None*1+0x30]",
            "+mov ebx,m4[esp+None*1+0x34]",
            " push edx",
            "-mov ebx,m4[esp+None*1+0x8]",
            "-mov eax,edi",
            "-push ecx",
            "-mov edx,esi",
            "-mov ecx,m4[esp+None*1+0x10]",
            "-mov m4[esp+None*1+0xc],edi",
            "+mov eax,esi",
            "+mov edx,edi",
            "+mov m4[esp+None*1+0x38],esi",
            " call local:0",
            " jmp local:12"
          ]
        },
        {
          "symbol": "clouds.c::initialise_clouds_",
          "source": "E:\\library\\3dvisual\\clouds.c",
          "first": "0x48eb40",
          "second": "0x48b810",
          "first_instruction_count": 116,
          "second_instruction_count": 120,
          "diff": [
            "--- 0x48eb40",
            "+++ 0x48b810",
            "@@ -14,102 +14,106 @@",
            " call 2dcore.c::clear_2d_viewport_",
            " call rand::rand_",
            " mov edx,eax",
            "-mov ebx,0x81",
            "+mov ecx,0x81",
            " sar edx,0x1f",
            "-idiv ebx",
            "-lea ebx,m4[eax+None*1+0x1]",
            "-xor edx,edx",
            "-xor eax,eax",
            "-call fxpoly1.c::set_point_",
            "+idiv ecx",
            "+xor ebx,ebx",
            "+inc eax",
            "+xor ecx,ecx",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            " call rand::rand_",
            " mov edx,eax",
            "-mov ebx,0x81",
            "+mov ecx,0x81",
            " sar edx,0x1f",
            "-idiv ebx",
            "-lea ebx,m4[eax+None*1+0x1]",
            "-xor edx,edx",
            "-mov eax,0x27f",
            "-call fxpoly1.c::set_point_",
            "+idiv ecx",
            "+mov ecx,0x27f",
            "+inc eax",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            " call rand::rand_",
            " mov edx,eax",
            "-mov ebx,0x81",
            "+mov ecx,0x81",
            " sar edx,0x1f",
            "-idiv ebx",
            "-lea ebx,m4[eax+None*1+0x1]",
            "-mov edx,0x1df",
            "-mov eax,0x27f",
            "-call fxpoly1.c::set_point_",
            "+idiv ecx",
            "+mov ebx,0x1df",
            "+mov ecx,0x27f",
            "+inc eax",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            " call rand::rand_",
            " mov edx,eax",
            "-mov ebx,0x81",
            "+mov ecx,0x81",
            " sar edx,0x1f",
            "-idiv ebx",
            "-lea ebx,m4[eax+None*1+0x1]",
            "-mov edx,0x1df",
            "+idiv ecx",
            "+inc eax",
            "+xor ecx,ecx",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+push 0x80",
            "+mov ecx,ebx",
            "+xor edx,edx",
            "+push 0xffffffff",
            " xor eax,eax",
            "-call fxpoly1.c::set_point_",
            "-push 0x80",
            "-mov ecx,0x1df",
            " mov ebx,0x27f",
            "-push 0xffffffff",
            "-xor edx,edx",
            "-xor eax,eax",
            " call clouds.c::draw_fractal_clouds_",
            " call screen.c::down_load_screen_",
            " call clouds.c::check_usr_interaction_",
            " cmp eax,0x7",
            "-je local:112",
            "+je local:116",
            " xor eax,eax",
            " call 2dcore.c::clear_2d_viewport_",
            " call rand::rand_",
            " mov edx,eax",
            "-mov ebx,0x81",
            "+mov ecx,0x81",
            " sar edx,0x1f",
            "-idiv ebx",
            "-lea ebx,m4[eax+None*1+0x1]",
            "-xor edx,edx",
            "-xor eax,eax",
            "-call fxpoly1.c::set_point_",
            "+idiv ecx",
            "+xor ebx,ebx",
            "+inc eax",
            "+xor ecx,ecx",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            " call rand::rand_",
            " mov edx,eax",
            "-mov ebx,0x81",
            "+mov ecx,0x81",
            " sar edx,0x1f",
            "-idiv ebx",
            "-lea ebx,m4[eax+None*1+0x1]",
            "-xor edx,edx",
            "-mov eax,0x27f",
            "-call fxpoly1.c::set_point_",
            "+idiv ecx",
            "+mov ecx,0x27f",
            "+inc eax",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            " call rand::rand_",
            " mov edx,eax",
            "-mov ebx,0x81",
            "+mov ecx,0x81",
            " sar edx,0x1f",
            "-idiv ebx",
            "-lea ebx,m4[eax+None*1+0x1]",
            "-mov edx,0x1df",
            "-mov eax,0x27f",
            "-call fxpoly1.c::set_point_",
            "+idiv ecx",
            "+mov ebx,0x1df",
            "+mov ecx,0x27f",
            "+inc eax",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            " call rand::rand_",
            " mov edx,eax",
            "-mov ebx,0x81",
            "+mov ecx,0x81",
            " sar edx,0x1f",
            "-idiv ebx",
            "-lea ebx,m4[eax+None*1+0x1]",
            "-mov edx,0x1df",
            "+idiv ecx",
            "+inc eax",
            "+xor ecx,ecx",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+push 0x80",
            "+mov ecx,ebx",
            "+xor edx,edx",
            "+push 0xffffffff",
            " xor eax,eax",
            "-call fxpoly1.c::set_point_",
            "-push 0x80",
            "-mov ecx,0x1df",
            " mov ebx,0x27f",
            "-push 0xffffffff",
            "-xor edx,edx",
            "-xor eax,eax",
            " call clouds.c::draw_fractal_clouds_",
            " call screen.c::down_load_screen_",
            " call clouds.c::check_usr_interaction_",
            " test eax,eax",
            "-je local:107",
            "+je local:111",
            " cmp eax,0x7",
            "-jne local:61",
            "+jne local:63",
            " pop edx",
            " pop ecx",
            " pop ebx"
          ]
        },
        {
          "symbol": "cockpits.c::draw_cockpit_",
          "source": "E:\\apache\\source\\avionics\\cockpits.c",
          "first": "0x4569c4",
          "second": "0x456d10",
          "first_instruction_count": 542,
          "second_instruction_count": 476,
          "diff": [
            "--- 0x4569c4",
            "+++ 0x456d10",
            "@@ -3,9 +3,8 @@",
            " push edx",
            " push esi",
            " push edi",
            "-push ebp",
            " cmp m4[None+None*1+pnvs.c::_pnvs_status],0x0",
            "-je local:76",
            "+je local:74",
            " xor ecx,ecx",
            " mov edx,0x40000000",
            " mov eax,ecx",
            "@@ -36,16 +35,16 @@",
            " call palette.c::set_fader_level_",
            " mov eax,m4[None+None*1+views.c::_view_mode]",
            " cmp eax,0x13",
            "-ja local:528",
            "+ja local:463",
            " jmp m4[None+eax*4+cockpits.c::deinitialise_cockpits_+0x30]",
            " call screen.c::reset_screen_extent_",
            " mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            " cmp eax,0x1",
            "-jae local:78",
            "-test eax,eax",
            "-jne local:67",
            "-cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "-je local:55",
            "+jae local:76",
            "+test eax,eax",
            "+jne local:66",
            "+cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "+je local:54",
            " mov eax,0x7c",
            " mov esi,m4[None+None*1+constant:00000000]",
            " mov edx,m4[None+None*1+constant:00000000]",
            "@@ -65,100 +64,73 @@",
            " mov esi,cockpits.c::_pilot_front_4",
            " xor ebx,ebx",
            " call sprite.asm::_draw_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov ecx,m4[None+None*1+0xafaec4]",
            "-jmp local:9",
            "-jbe local:98",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+mov ecx,m4[None+None*1+0xae5574]",
            "+jmp local:8",
            "+ja local:96",
            "+cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "+je local:86",
            "+mov eax,0xf8",
            "+mov esi,m4[None+None*1+constant:00000000]",
            "+mov edx,m4[None+None*1+constant:00000000]",
            "+mov ebx,m4[None+None*1+cockpits.c::_pilot_front_1]",
            "+xor edi,edi",
            "+xor ecx,ecx",
            "+call setblock.asm::_set_block",
            "+mov ebx,0xf0",
            "+mov esi,cockpits.c::_pilot_front_2",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_sprite",
            "+mov esi,cockpits.c::_pilot_front_3",
            "+xor ebx,ebx",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_sprite",
            "+mov ecx,0x1d5",
            "+jmp local:63",
            " cmp eax,0x2",
            "-jne local:67",
            "-cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "-je local:67",
            "+jne local:66",
            "+cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "+je local:66",
            " mov edx,0x122",
            " mov ecx,0x320",
            " mov ebx,0x136",
            " xor eax,eax",
            " xor esi,esi",
            " call fillblk.asm::_fill_block",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::get_active_screen_",
            "-mov ebp,eax",
            "-xor edi,edi",
            "-mov eax,m4[None+None*1+cockpits.c::_cockpit_screen]",
            "-xor ecx,ecx",
            "-call screen.c::set_active_screen_",
            "-mov eax,0xf8",
            "-mov esi,m4[None+None*1+constant:00000000]",
            "-mov edx,m4[None+None*1+constant:00000000]",
            "-mov ebx,m4[None+None*1+cockpits.c::_pilot_front_1]",
            "-call setblock.asm::_set_block",
            "-mov ebx,0xf0",
            "-mov esi,cockpits.c::_pilot_front_2",
            "-mov eax,ebp",
            "-xor ecx,ecx",
            "-call screen.c::set_active_screen_",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov esi,cockpits.c::_pilot_front_3",
            "-xor ebx,ebx",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov ecx,0x1d5",
            "-mov esi,cockpits.c::_pilot_front_4",
            "-xor ebx,ebx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:141",
            "-test eax,eax",
            "-jne local:67",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:123",
            "+test eax,eax",
            "+jne local:66",
            " mov ecx,0x106",
            " mov esi,cockpits.c::_pilot_left_45_1",
            "-jmp local:65",
            "-ja local:67",
            "+jmp local:64",
            "+ja local:66",
            " mov ecx,0x20c",
            " mov esi,cockpits.c::_pilot_left_45_1",
            "-xor ebx,ebx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:176",
            "-test eax,eax",
            "-jne local:67",
            "+jmp local:64",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:148",
            "+test eax,eax",
            "+jne local:66",
            " mov ebx,0xb",
            " mov esi,cockpits.c::_pilot_left_90_1",
            " xor ecx,ecx",
            "@@ -173,72 +145,60 @@",
            " call sprite.asm::_draw_sprite",
            " mov ecx,0xe9",
            " mov esi,cockpits.c::_pilot_left_90_4",
            "-jmp local:65",
            "-ja local:67",
            "+jmp local:64",
            "+ja local:66",
            " mov ebx,0xe",
            " mov esi,cockpits.c::_pilot_left_90_1",
            " xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x195",
            " mov esi,cockpits.c::_pilot_left_90_2",
            " xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x1bf",
            " mov ecx,0x4e",
            " mov esi,cockpits.c::_pilot_left_90_3",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ecx,0x1c7",
            " mov esi,cockpits.c::_pilot_left_90_4",
            "-xor ebx,ebx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:221",
            "-test eax,eax",
            "-jne local:67",
            "+jmp local:64",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:182",
            "+test eax,eax",
            "+jne local:66",
            " mov esi,cockpits.c::_pilot_right_45_1",
            " xor ebx,ebx",
            " xor ecx,ecx",
            " call sprite.asm::_draw_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-ja local:67",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+ja local:66",
            " mov esi,cockpits.c::_pilot_right_45_1",
            " xor ebx,ebx",
            " xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:266",
            "-test eax,eax",
            "-jne local:67",
            "+call sprite.asm::_draw_sprite",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:225",
            "+test eax,eax",
            "+jne local:66",
            " mov ebx,0xb",
            " mov ecx,0x12f",
            " mov esi,cockpits.c::_pilot_right_90_1",
            "@@ -255,49 +215,47 @@",
            " xor ebx,ebx",
            " xor ecx,ecx",
            " call sprite.asm::_draw_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-ja local:67",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+ja local:66",
            " mov ebx,0xe",
            " mov ecx,0x25d",
            " mov esi,cockpits.c::_pilot_right_90_1",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x195",
            " mov ecx,0x232",
            " mov esi,cockpits.c::_pilot_right_90_2",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x1bf",
            " mov ecx,0x9e",
            " mov esi,cockpits.c::_pilot_right_90_3",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov esi,cockpits.c::_pilot_right_90_4",
            " xor ebx,ebx",
            " xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:324",
            "-test eax,eax",
            "-jne local:67",
            "-cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "-je local:307",
            "+call sprite.asm::_draw_sprite",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:281",
            "+test eax,eax",
            "+jne local:66",
            "+cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "+je local:265",
            " mov eax,0x78",
            " mov esi,m4[None+None*1+constant:00000000]",
            " mov edx,m4[None+None*1+constant:00000000]",
            "@@ -313,71 +271,64 @@",
            " mov ecx,0x126",
            " mov esi,cockpits.c::_co_pilot_front_3",
            " call sprite.asm::_draw_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-jbe local:344",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+ja local:307",
            "+cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "+je local:291",
            "+mov eax,0xf0",
            "+mov esi,m4[None+None*1+constant:00000000]",
            "+mov edx,m4[None+None*1+constant:00000000]",
            "+mov ebx,m4[None+None*1+cockpits.c::_co_pilot_front_1]",
            "+xor edi,edi",
            "+xor ecx,ecx",
            "+call setblock.asm::_set_block",
            "+mov ebx,0xbc",
            "+mov esi,cockpits.c::_co_pilot_front_2",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_sprite",
            "+mov ebx,0xbc",
            "+mov ecx,0x24c",
            "+mov esi,cockpits.c::_co_pilot_front_3",
            "+call sprite.asm::_draw_sprite",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            " cmp eax,0x2",
            "-jne local:67",
            "-cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "-je local:67",
            "+jne local:66",
            "+cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "+je local:66",
            " mov edx,0x12c",
            " mov ecx,0x320",
            " xor eax,eax",
            " xor esi,esi",
            " mov ebx,edx",
            " call fillblk.asm::_fill_block",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::get_active_screen_",
            "-mov ebp,eax",
            "-xor edi,edi",
            "-mov eax,m4[None+None*1+cockpits.c::_cockpit_screen]",
            "-xor ecx,ecx",
            "-call screen.c::set_active_screen_",
            "-mov eax,0xf0",
            "-mov esi,m4[None+None*1+constant:00000000]",
            "-mov edx,m4[None+None*1+constant:00000000]",
            "-mov ebx,m4[None+None*1+cockpits.c::_co_pilot_front_1]",
            "-call setblock.asm::_set_block",
            "-mov ebx,0xbc",
            "-mov esi,cockpits.c::_co_pilot_front_2",
            "-mov eax,ebp",
            "-xor ecx,ecx",
            "-call screen.c::set_active_screen_",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov ebx,0xbc",
            "-mov ecx,0x24c",
            "-mov esi,cockpits.c::_co_pilot_front_3",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:401",
            "-test eax,eax",
            "-jne local:67",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:351",
            "+test eax,eax",
            "+jne local:66",
            " mov ecx,0xe0",
            " mov esi,cockpits.c::_co_pilot_left_45_1",
            " xor ebx,ebx",
            "@@ -390,66 +341,54 @@",
            " mov ecx,0x7a",
            " mov esi,cockpits.c::_co_pilot_left_45_3",
            " call sprite.asm::_draw_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-ja local:67",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+ja local:66",
            " mov ecx,0x1c0",
            " mov esi,cockpits.c::_co_pilot_left_45_1",
            " xor ebx,ebx",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0xf0",
            " mov ecx,0x216",
            " mov esi,cockpits.c::_co_pilot_left_45_2",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x1b3",
            " mov ecx,0xf2",
            " mov esi,cockpits.c::_co_pilot_left_45_3",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:432",
            "-test eax,eax",
            "-jne local:67",
            "+call sprite.asm::_draw_sprite",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:381",
            "+test eax,eax",
            "+jne local:66",
            " mov ecx,0xaf",
            " mov esi,cockpits.c::_co_pilot_left_90_1",
            "-jmp local:65",
            "-ja local:67",
            "+jmp local:64",
            "+ja local:66",
            " mov ecx,0x15d",
            " mov esi,cockpits.c::_co_pilot_left_90_1",
            "-xor ebx,ebx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:473",
            "-test eax,eax",
            "-jne local:67",
            "+jmp local:64",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:411",
            "+test eax,eax",
            "+jne local:66",
            " mov esi,cockpits.c::_co_pilot_right_45_1",
            " xor ebx,ebx",
            " xor ecx,ecx",
            "@@ -462,64 +401,60 @@",
            " mov esi,cockpits.c::_co_pilot_right_45_3",
            " xor ecx,ecx",
            " call sprite.asm::_draw_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-ja local:67",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+ja local:66",
            " mov esi,cockpits.c::_co_pilot_right_45_1",
            " xor ebx,ebx",
            " xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0xf0",
            " mov esi,cockpits.c::_co_pilot_right_45_2",
            " xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x1b3",
            " mov esi,cockpits.c::_co_pilot_right_45_3",
            " xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:514",
            "-test eax,eax",
            "-jne local:67",
            "+call sprite.asm::_draw_sprite",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:450",
            "+test eax,eax",
            "+jne local:66",
            " mov esi,cockpits.c::_co_pilot_right_90_1",
            " xor ebx,ebx",
            " xor ecx,ecx",
            " call sprite.asm::_draw_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-ja local:67",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+ja local:66",
            " mov esi,cockpits.c::_co_pilot_right_90_1",
            " xor ebx,ebx",
            " xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "+call sprite.asm::_draw_sprite",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            " pop edi",
            " pop esi",
            " pop edx",
            "@@ -531,12 +466,11 @@",
            " push text:'Unknown view mode.'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "+xor edx,edx",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret "
          ]
        },
        {
          "symbol": "cockpits.c::initialise_cockpits_",
          "source": "E:\\apache\\source\\avionics\\cockpits.c",
          "first": "0x454ea0",
          "second": "0x455200",
          "first_instruction_count": 1473,
          "second_instruction_count": 1469,
          "diff": [
            "--- 0x454ea0",
            "+++ 0x455200",
            "@@ -416,7 +416,7 @@",
            " cmp eax,0x1",
            " jae local:434",
            " test eax,eax",
            "-je local:1053",
            "+je local:1049",
            " add esp,0xcc",
            " pop ebp",
            " pop edi",
            "@@ -1038,11 +1038,7 @@",
            " mov m4[None+None*1+constant:00000000],ebx",
            " mov ebx,text:'\\\\apache\\\\source\\\\avionics\\\\cockpits.c'",
            " call file.c::load_variable_length_file_verbose_",
            "-mov edx,0x1e0",
            "-mov m4[None+None*1+constant:00000000],eax",
            "-mov eax,0x280",
            "-call screen.c::create_screen_",
            "-mov m4[None+None*1+cockpits.c::_cockpit_screen],eax",
            "+mov m4[None+None*1+constant:00000000],eax",
            " add esp,0xcc",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "colour.c::initialise_colour_intensity_",
          "source": "E:\\library\\graphics\\colour.c",
          "first": "0x46e140",
          "second": "0x46e120",
          "first_instruction_count": 20,
          "second_instruction_count": 20,
          "diff": [
            "--- 0x46e140",
            "+++ 0x46e120",
            "@@ -7,7 +7,7 @@",
            " mov ecx,ebx",
            " shl eax,0x8",
            " inc eax",
            "-mov m1[eax+None*1+0x6b666f],dl",
            "+mov m1[eax+None*1+0x6a907f],dl",
            " cmp eax,ecx",
            " jne local:8",
            " inc edx"
          ]
        },
        {
          "symbol": "colour.c::initialise_solid_colours_",
          "source": "E:\\library\\graphics\\colour.c",
          "first": "0x46e170",
          "second": "0x46e150",
          "first_instruction_count": 27,
          "second_instruction_count": 27,
          "diff": [
            "--- 0x46e170",
            "+++ 0x46e150",
            "@@ -16,7 +16,7 @@",
            " add edx,0x100",
            " add edi,eax",
            " inc eax",
            "-mov m4[esi+None*1+0x6b626c],edi",
            "+mov m4[esi+None*1+0x6b907c],edi",
            " cmp eax,0x100",
            " jb local:10",
            " pop edi"
          ]
        },
        {
          "symbol": "colour.c::spread_colour_intensity_",
          "source": "E:\\library\\graphics\\colour.c",
          "first": "0x46e1cc",
          "second": "0x46e1ac",
          "first_instruction_count": 16,
          "second_instruction_count": 16,
          "diff": [
            "--- 0x46e1cc",
            "+++ 0x46e1ac",
            "@@ -8,7 +8,7 @@",
            " inc eax",
            " sar ecx,0x10",
            " add edx,ebx",
            "-mov m1[eax+None*1+0x6b666f],cl",
            "+mov m1[eax+None*1+0x6a907f],cl",
            " cmp eax,esi",
            " jne local:6",
            " pop esi"
          ]
        },
        {
          "symbol": "commspan.c::add_comms_panel_changing_message_",
          "source": "E:\\apache\\source\\avionics\\commspan.c",
          "first": "0x457ba4",
          "second": "0x457d84",
          "first_instruction_count": 30,
          "second_instruction_count": 30,
          "diff": [
            "--- 0x457ba4",
            "+++ 0x457d84",
            "@@ -5,24 +5,24 @@",
            " je local:27",
            " push edi",
            " push esi",
            "-mov esi,m4[None+None*1+0x674518]",
            "+mov esi,m4[None+None*1+0x667528]",
            " xor eax,eax",
            " test esi,esi",
            " jle local:15",
            "-mov edi,m4[eax+None*1+0x674554]",
            "+mov edi,m4[eax+None*1+0x667564]",
            " add eax,0x3c",
            " test edi,edi",
            " jg local:11",
            " mov ebp,0x1",
            "-mov m4[eax+None*1+0x674524],edx",
            "+mov m4[eax+None*1+0x667534],edx",
            " mov esi,m4[None+None*1+commspan.c::_number_comms_messages]",
            "-mov m4[eax+None*1+0x674528],ecx",
            "+mov m4[eax+None*1+0x667538],ecx",
            " xor edx,edx",
            "-mov m4[eax+None*1+0x674520],ebp",
            "+mov m4[eax+None*1+0x667530],ebp",
            " add esi,ebp",
            "-mov m4[eax+None*1+0x674518],ebp",
            "+mov m4[eax+None*1+0x667528],ebp",
            " mov m4[None+None*1+commspan.c::_number_comms_messages],esi",
            "-mov m4[eax+None*1+0x67451c],edx",
            "+mov m4[eax+None*1+0x66752c],edx",
            " pop esi",
            " pop edi",
            " pop ebp"
          ]
        },
        {
          "symbol": "commspan.c::add_comms_panel_message_",
          "source": "E:\\apache\\source\\avionics\\commspan.c",
          "first": "0x457b30",
          "second": "0x457d10",
          "first_instruction_count": 39,
          "second_instruction_count": 39,
          "diff": [
            "--- 0x457b30",
            "+++ 0x457d10",
            "@@ -4,20 +4,20 @@",
            " cmp m4[None+None*1+commspan.c::_number_comms_messages],0x10",
            " je local:37",
            " push edi",
            "-mov edi,m4[None+None*1+0x674518]",
            "+mov edi,m4[None+None*1+0x667528]",
            " xor eax,eax",
            " test edi,edi",
            " jle local:15",
            "-mov ebp,m4[eax+None*1+0x674554]",
            "+mov ebp,m4[eax+None*1+0x667564]",
            " add eax,0x3c",
            " test ebp,ebp",
            " jg local:10",
            "-mov m4[eax+None*1+0x674518],ebx",
            "-mov m4[eax+None*1+0x674524],edx",
            "+mov m4[eax+None*1+0x667528],ebx",
            "+mov m4[eax+None*1+0x667534],edx",
            " xor edx,edx",
            "-mov m4[eax+None*1+0x67451c],edx",
            "-mov m4[eax+None*1+0x674520],edx",
            "-mov m4[eax+None*1+0x674528],edx",
            "+mov m4[eax+None*1+0x66752c],edx",
            "+mov m4[eax+None*1+0x667530],edx",
            "+mov m4[eax+None*1+0x667538],edx",
            " add eax,commspan.c::_comms_panel",
            " lea edi,m4[eax+None*1+0x8]",
            " push edi"
          ]
        },
        {
          "symbol": "commspan.c::construct_comms_list_",
          "source": "E:\\apache\\source\\avionics\\commspan.c",
          "first": "0x457ce8",
          "second": "0x457ec8",
          "first_instruction_count": 18,
          "second_instruction_count": 18,
          "diff": [
            "--- 0x457ce8",
            "+++ 0x457ec8",
            "@@ -1,7 +1,7 @@",
            " push edx",
            " xor edx,edx",
            " mov m4[None+None*1+commspan.c::_comms_first_message],edx",
            "-cmp m4[edx+None*1+0x674518],0x0",
            "+cmp m4[edx+None*1+0x667528],0x0",
            " jg local:10",
            " add edx,0x3c",
            " cmp edx,0x3c0"
          ]
        },
        {
          "symbol": "commspan.c::draw_comms_panel_",
          "source": "E:\\apache\\source\\avionics\\commspan.c",
          "first": "0x457208",
          "second": "0x4573e8",
          "first_instruction_count": 242,
          "second_instruction_count": 242,
          "diff": [
            "--- 0x457208",
            "+++ 0x4573e8",
            "@@ -160,7 +160,7 @@",
            " add esi,eax",
            " mov eax,0x110",
            " mov ebp,0x144",
            "-call setblock.asm::_set_lfb_block",
            "+call setblock.asm::_set_block",
            " mov ecx,0x12c",
            " mov ebx,0x1a8",
            " mov edx,0x110"
          ]
        },
        {
          "symbol": "commspan.c::initialise_comms_panel_",
          "source": "E:\\apache\\source\\avionics\\commspan.c",
          "first": "0x4571d0",
          "second": "0x4573b0",
          "first_instruction_count": 14,
          "second_instruction_count": 14,
          "diff": [
            "--- 0x4571d0",
            "+++ 0x4573b0",
            "@@ -4,10 +4,10 @@",
            " mov m4[None+None*1+commspan.c::_comms_first_message],edx",
            " mov m4[None+None*1+commspan.c::_number_comms_messages],edx",
            " add eax,0x3c",
            "-mov m4[eax+None*1+0x6744dc],edx",
            "-mov m4[eax+None*1+0x6744e4],edx",
            "-mov m4[eax+None*1+0x6744ec],edx",
            "-mov m4[eax+None*1+0x6744e0],edx",
            "+mov m4[eax+None*1+0x6674ec],edx",
            "+mov m4[eax+None*1+0x6674f4],edx",
            "+mov m4[eax+None*1+0x6674fc],edx",
            "+mov m4[eax+None*1+0x6674f0],edx",
            " cmp eax,0x3c0",
            " jne local:5",
            " pop edx"
          ]
        },
        {
          "symbol": "commspan.c::remove_comms_panel_changing_message_",
          "source": "E:\\apache\\source\\avionics\\commspan.c",
          "first": "0x457c04",
          "second": "0x457de4",
          "first_instruction_count": 30,
          "second_instruction_count": 30,
          "diff": [
            "--- 0x457c04",
            "+++ 0x457de4",
            "@@ -7,15 +7,15 @@",
            " xor eax,eax",
            " xor edx,edx",
            " xor esi,esi",
            "-cmp esi,m4[eax+None*1+0x674520]",
            "+cmp esi,m4[eax+None*1+0x667530]",
            " je local:19",
            "-cmp ebx,m4[eax+None*1+0x674528]",
            "+cmp ebx,m4[eax+None*1+0x667538]",
            " jne local:19",
            "-mov m4[eax+None*1+0x674518],esi",
            "-mov m4[eax+None*1+0x67451c],esi",
            "-mov m4[eax+None*1+0x674520],esi",
            "+mov m4[eax+None*1+0x667528],esi",
            "+mov m4[eax+None*1+0x66752c],esi",
            "+mov m4[eax+None*1+0x667530],esi",
            " mov edx,0x1",
            "-mov m4[eax+None*1+0x674528],esi",
            "+mov m4[eax+None*1+0x667538],esi",
            " sub ecx,edx",
            " add eax,0x3c",
            " cmp eax,0x3c0"
          ]
        },
        {
          "symbol": "commspan.c::set_up_strings_",
          "source": "E:\\apache\\source\\avionics\\commspan.c",
          "first": "0x457604",
          "second": "0x4577e4",
          "first_instruction_count": 481,
          "second_instruction_count": 481,
          "diff": [
            "--- 0x457604",
            "+++ 0x4577e4",
            "@@ -5,9 +5,9 @@",
            " push edi",
            " push ebp",
            " sub esp,0x24",
            "-test m1[None+None*1+0x6748c6],0x2",
            "+test m1[None+None*1+0x6678d6],0x2",
            " je local:75",
            "-mov esi,0x6748b8",
            "+mov esi,0x6678c8",
            " mov ecx,0x3b",
            " xor edi,edi",
            " mov edx,esi",
            "@@ -21,13 +21,13 @@",
            " idiv ecx",
            " inc edi",
            " add edx,0x20",
            "-mov m1[edi+None*1+0x6741ef],dl",
            "+mov m1[edi+None*1+0x6671ff],dl",
            " cmp edi,0x11",
            " jl local:12",
            " xor cl,cl",
            " mov ebx,0x3b",
            " mov m1[edi+None*1+commspan.c::_comms_panel_string1],cl",
            "-mov ecx,0x6748b8",
            "+mov ecx,0x6678c8",
            " xor edi,edi",
            " mov edx,ecx",
            " imul eax,m4[edx+None*1+0x0],0x41c64e6d",
            "@@ -40,13 +40,13 @@",
            " idiv ebx",
            " inc edi",
            " add edx,0x20",
            "-mov m1[edi+None*1+0x6742ef],dl",
            "+mov m1[edi+None*1+0x6672ff],dl",
            " cmp edi,0x11",
            " jl local:31",
            " xor ch,ch",
            " mov ebx,0x3b",
            " mov m1[edi+None*1+commspan.c::_comms_panel_string2],ch",
            "-mov ecx,0x6748b8",
            "+mov ecx,0x6678c8",
            " xor edi,edi",
            " mov edx,ecx",
            " imul eax,m4[edx+None*1+0x0],0x41c64e6d",
            "@@ -59,7 +59,7 @@",
            " idiv ebx",
            " inc edi",
            " add edx,0x20",
            "-mov m1[edi+None*1+0x6743ef],dl",
            "+mov m1[edi+None*1+0x6673ff],dl",
            " cmp edi,0x11",
            " jl local:50",
            " xor al,al"
          ]
        },
        {
          "symbol": "commspan.c::update_comms_panel_",
          "source": "E:\\apache\\source\\avionics\\commspan.c",
          "first": "0x457c60",
          "second": "0x457e40",
          "first_instruction_count": 44,
          "second_instruction_count": 44,
          "diff": [
            "--- 0x457c60",
            "+++ 0x457e40",
            "@@ -16,19 +16,19 @@",
            " xor edx,edx",
            " mov eax,m4[esp+None*1+0x0]",
            " xor ebx,ebx",
            "-cmp ebx,m4[edx+None*1+0x67451c]",
            "+cmp ebx,m4[edx+None*1+0x66752c]",
            " je local:31",
            "-mov edi,m4[edx+None*1+0x674520]",
            "+mov edi,m4[edx+None*1+0x667530]",
            " cmp ebx,edi",
            " jne local:31",
            "-mov ebp,m4[edx+None*1+0x674518]",
            "+mov ebp,m4[edx+None*1+0x667528]",
            " sub ebp,eax",
            "-mov m4[edx+None*1+0x674518],ebp",
            "+mov m4[edx+None*1+0x667528],ebp",
            " cmp edi,ebp",
            " jl local:31",
            "-mov m4[edx+None*1+0x67451c],edi",
            "+mov m4[edx+None*1+0x66752c],edi",
            " dec ecx",
            "-mov m4[edx+None*1+0x674518],edi",
            "+mov m4[edx+None*1+0x667528],edi",
            " add edx,0x3c",
            " cmp edx,0x3c0",
            " jne local:18"
          ]
        },
        {
          "symbol": "conutwnt::initConsoleHandles_",
          "source": "conutwnt",
          "first": "0x4d02af",
          "second": "0x4c3737",
          "first_instruction_count": 31,
          "second_instruction_count": 31,
          "diff": [
            "--- 0x4d02af",
            "+++ 0x4c3737",
            "@@ -11,7 +11,7 @@",
            " push 0x1",
            " push 0x80000000",
            " push text:'conin$'",
            "-call m4[None+None*1+constant:f64a0d00]",
            "+call m4[None+None*1+constant:be790c00]",
            " mov m4[None+None*1+conutwnt::_console_in],eax",
            " cmp m4[None+None*1+conutwnt::_console_out],0xffffffff",
            " jne local:26",
            "@@ -22,7 +22,7 @@",
            " push 0x2",
            " push 0x40000000",
            " push text:'conout$'",
            "-call m4[None+None*1+constant:f64a0d00]",
            "+call m4[None+None*1+constant:be790c00]",
            " mov m4[None+None*1+conutwnt::_console_out],eax",
            " xor eax,eax",
            " call m4[None+None*1+mainwnt::__ReleaseFileH]"
          ]
        },
        {
          "symbol": "craters.c::crater_object_line_collision_test_",
          "source": "E:\\library\\3dvisual\\craters.c",
          "first": "0x491cec",
          "second": "0x48e58c",
          "first_instruction_count": 144,
          "second_instruction_count": 144,
          "diff": [
            "--- 0x491cec",
            "+++ 0x48e58c",
            "@@ -42,11 +42,11 @@",
            " ret ",
            " mov edx,esi",
            " mov eax,ebx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov m4[esp+None*1+0x0],eax",
            " mov edx,ecx",
            " mov eax,m4[esp+None*1+0xc]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,m4[esp+None*1+0x0]",
            " add edx,m4[None+None*1+craters.c::_tallest_crater]",
            " mov m4[esp+None*1+0x0],edx",
            "@@ -96,7 +96,7 @@",
            " jl local:115",
            " cmp eax,m4[esp+None*1+0x20]",
            " jg local:115",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ecx+None*1+0xc]",
            " mov eax,m4[edx+eax*4+0x0]",
            " mov edx,m4[esp+None*1+0x24]"
          ]
        },
        {
          "symbol": "craters.c::crater_object_point_collision_test_",
          "source": "E:\\library\\3dvisual\\craters.c",
          "first": "0x491c0c",
          "second": "0x48e4ac",
          "first_instruction_count": 93,
          "second_instruction_count": 93,
          "diff": [
            "--- 0x491c0c",
            "+++ 0x48e4ac",
            "@@ -28,7 +28,7 @@",
            " ret ",
            " mov eax,m4[esp+None*1+0x8]",
            " mov edx,ebp",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " add eax,m4[None+None*1+craters.c::_tallest_crater]",
            " cmp edi,eax",
            " jg local:19",
            "@@ -52,7 +52,7 @@",
            " sar eax,0x16",
            " cmp eax,esi",
            " jne local:71",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov esi,m4[ecx+None*1+0xc]",
            " mov esi,m4[eax+esi*4+0x0]",
            " mov eax,m4[ecx+None*1+0x8]"
          ]
        },
        {
          "symbol": "craters.c::create_long_life_crater_",
          "source": "E:\\library\\3dvisual\\craters.c",
          "first": "0x4918c4",
          "second": "0x48e164",
          "first_instruction_count": 40,
          "second_instruction_count": 40,
          "diff": [
            "--- 0x4918c4",
            "+++ 0x48e164",
            "@@ -23,7 +23,7 @@",
            " mov m4[edx+None*1+0x4],esi",
            " mov edx,esi",
            " mov eax,m4[eax+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,eax",
            " mov eax,m4[None+None*1+craters.c::_next_long_life_crater]",
            " add eax,0x24"
          ]
        },
        {
          "symbol": "craters.c::create_scalable_crater_",
          "source": "E:\\library\\3dvisual\\craters.c",
          "first": "0x4914ac",
          "second": "0x48dd4c",
          "first_instruction_count": 189,
          "second_instruction_count": 189,
          "diff": [
            "--- 0x4914ac",
            "+++ 0x48dd4c",
            "@@ -69,7 +69,7 @@",
            " mov edx,m4[ecx+None*1+0x4]",
            " mov m4[eax+None*1+0x4],edx",
            " mov eax,m4[ecx+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,eax",
            " mov eax,m4[None+None*1+craters.c::_next_long_life_crater]",
            " mov m4[eax+None*1+0x8],edx"
          ]
        },
        {
          "symbol": "craters.c::create_short_life_crater_",
          "source": "E:\\library\\3dvisual\\craters.c",
          "first": "0x491850",
          "second": "0x48e0f0",
          "first_instruction_count": 41,
          "second_instruction_count": 41,
          "diff": [
            "--- 0x491850",
            "+++ 0x48e0f0",
            "@@ -23,7 +23,7 @@",
            " mov m4[edx+None*1+0x4],esi",
            " mov edx,esi",
            " mov eax,m4[eax+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,eax",
            " mov eax,m4[None+None*1+craters.c::_next_short_life_crater]",
            " add eax,0x24"
          ]
        },
        {
          "symbol": "craters.c::draw_crater_",
          "source": "E:\\library\\3dvisual\\craters.c",
          "first": "0x491b80",
          "second": "0x48e420",
          "first_instruction_count": 38,
          "second_instruction_count": 38,
          "diff": [
            "--- 0x491b80",
            "+++ 0x48e420",
            "@@ -3,36 +3,36 @@",
            " mov edx,eax",
            " mov edx,m4[edx+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x8]",
            "-mov m4[None+None*1+0xd824f4],edx",
            "+mov m4[None+None*1+0xd6cba4],edx",
            " mov edx,m4[eax+None*1+0x18]",
            "-mov m4[None+None*1+0xd82514],edx",
            "+mov m4[None+None*1+0xd6cbc4],edx",
            " mov edx,m4[eax+None*1+0x1c]",
            " mov ecx,m4[eax+None*1+0xc]",
            "-mov m4[None+None*1+0xd82518],edx",
            "+mov m4[None+None*1+0xd6cbc8],edx",
            " mov edx,m4[eax+None*1+0x20]",
            " mov m4[None+None*1+craters.c::_crater_instance],ecx",
            "-mov m4[None+None*1+0xd8251c],edx",
            "+mov m4[None+None*1+0xd6cbcc],edx",
            " cmp ecx,0x180",
            " jne local:33",
            " cmp m4[eax+None*1+0x14],0x3",
            " jge local:33",
            "-mov m4[None+None*1+0xd82500],0x1",
            "+mov m4[None+None*1+0xd6cbb0],0x1",
            " mov edx,m4[eax+None*1+0x0]",
            " mov m4[None+None*1+craters.c::_crater_viewpoint],edx",
            " mov edx,m4[eax+None*1+0x4]",
            "-mov m4[None+None*1+0xd800c4],edx",
            "+mov m4[None+None*1+0xd6a774],edx",
            " mov edx,m4[eax+None*1+0x8]",
            "-mov m4[None+None*1+0xd800c8],edx",
            "+mov m4[None+None*1+0xd6a778],edx",
            " mov eax,m4[eax+None*1+0x10]",
            "-mov edx,0xd800cc",
            "+mov edx,0xd6a77c",
            " call matrix.c::get_skew_only_transformation_matrix_",
            " mov eax,craters.c::_crater_instance",
            "-call fx3dobj1.c::draw_3d_object_",
            "+call 3dobjs1.c::draw_3d_object_",
            " pop edx",
            " pop ecx",
            " ret ",
            " push ebx",
            " xor ebx,ebx",
            "-mov m4[None+None*1+0xd82500],ebx",
            "+mov m4[None+None*1+0xd6cbb0],ebx",
            " pop ebx",
            " jmp local:19"
          ]
        },
        {
          "symbol": "craters.c::initialise_craters_",
          "source": "E:\\library\\3dvisual\\craters.c",
          "first": "0x4913a0",
          "second": "0x48dc40",
          "first_instruction_count": 85,
          "second_instruction_count": 85,
          "diff": [
            "--- 0x4913a0",
            "+++ 0x48dc40",
            "@@ -4,11 +4,11 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-mov ecx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ecx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edx,0xffffffff",
            " xor eax,eax",
            " add eax,0x24",
            "-mov m4[eax+None*1+0xd812d8],edx",
            "+mov m4[eax+None*1+0xd6b988],edx",
            " cmp eax,0x1200",
            " jne local:9",
            " mov ebx,craters.c::_short_life_crater_buffer",
            "@@ -16,27 +16,27 @@",
            " xor eax,eax",
            " mov m4[None+None*1+craters.c::_next_short_life_crater],ebx",
            " add eax,0x24",
            "-mov m4[eax+None*1+0xd800d8],esi",
            "+mov m4[eax+None*1+0xd6a788],esi",
            " cmp eax,0x1200",
            " jne local:17",
            " xor eax,eax",
            " mov ebp,craters.c::_crater_viewpoint",
            "-mov m4[None+None*1+0xd8250c],eax",
            "-mov m4[None+None*1+0xd82510],eax",
            "-mov m4[None+None*1+0xd82514],eax",
            "-mov m4[None+None*1+0xd82518],eax",
            "-mov m4[None+None*1+0xd8251c],eax",
            "-mov m4[None+None*1+0xd82524],eax",
            "-mov ah,m1[None+None*1+0xd82530]",
            "+mov m4[None+None*1+0xd6cbbc],eax",
            "+mov m4[None+None*1+0xd6cbc0],eax",
            "+mov m4[None+None*1+0xd6cbc4],eax",
            "+mov m4[None+None*1+0xd6cbc8],eax",
            "+mov m4[None+None*1+0xd6cbcc],eax",
            "+mov m4[None+None*1+0xd6cbd4],eax",
            "+mov ah,m1[None+None*1+0xd6cbe0]",
            " mov edi,craters.c::_long_life_crater_buffer",
            " and ah,0xef",
            "-mov m4[None+None*1+0xd824f8],ebp",
            "-mov m1[None+None*1+0xd82530],ah",
            "+mov m4[None+None*1+0xd6cba8],ebp",
            "+mov m1[None+None*1+0xd6cbe0],ah",
            " mov eax,m4[ecx+None*1+0x2c]",
            " mov m4[None+None*1+craters.c::_next_long_life_crater],edi",
            " mov ebp,0x1",
            " mov edx,m4[eax+None*1+0x28]",
            "-mov m4[None+None*1+0xd82520],ebp",
            "+mov m4[None+None*1+0xd6cbd0],ebp",
            " test edx,edx",
            " jl local:67",
            " mov eax,edx",
            "@@ -57,7 +57,7 @@",
            " cmp eax,ebp",
            " jle local:75",
            " mov m4[None+None*1+craters.c::_tallest_crater],eax",
            "-mov m4[None+None*1+fx3dobj1.c::_object_3d_headers],ecx",
            "+mov m4[None+None*1+3dobjs1.c::_object_3d_headers],ecx",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -75,7 +75,7 @@",
            " jmp local:54",
            " mov eax,ebp",
            " mov m4[None+None*1+craters.c::_tallest_crater],eax",
            "-mov m4[None+None*1+fx3dobj1.c::_object_3d_headers],ecx",
            "+mov m4[None+None*1+3dobjs1.c::_object_3d_headers],ecx",
            " pop ebp",
            " pop edi",
            " pop esi"
          ]
        },
        {
          "symbol": "craters.c::scan_craters_",
          "source": "E:\\library\\3dvisual\\craters.c",
          "first": "0x491974",
          "second": "0x48e214",
          "first_instruction_count": 159,
          "second_instruction_count": 159,
          "diff": [
            "--- 0x491974",
            "+++ 0x48e214",
            "@@ -40,11 +40,11 @@",
            " mov esi,m4[None+None*1+3dcore.c::_vp]",
            " mov eax,m4[ebp+None*1+0x0]",
            " sub eax,esi",
            "-mov edi,m4[None+None*1+0xafaef4]",
            "+mov edi,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x0],eax",
            " mov eax,m4[ebp+None*1+0x4]",
            " sub eax,edi",
            "-mov edx,m4[None+None*1+0xafaef8]",
            "+mov edx,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x8],eax",
            " mov eax,m4[ebp+None*1+0x8]",
            " sub eax,edx",
            "@@ -52,15 +52,15 @@",
            " mov m4[esp+None*1+0x4],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -69,13 +69,13 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ecx,m4[None+None*1+0xafaeb4]",
            "+mov ecx,m4[None+None*1+0xae5564]",
            " mov esi,edx",
            " cmp edx,ecx",
            " jle local:14",
            "-cmp edx,m4[None+None*1+0xafaeb8]",
            "+cmp edx,m4[None+None*1+0xae5568]",
            " jge local:14",
            "-call fx3dobbf.c::get_object_buffer_space_",
            "+call 3dobjbuf.c::get_object_buffer_space_",
            " mov ecx,eax",
            " test eax,eax",
            " je local:20",
            "@@ -89,22 +89,22 @@",
            " mov m4[ecx+None*1+0x4],eax",
            " mov eax,ecx",
            " mov m4[ecx+None*1+0x8],ebp",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " jmp local:14",
            " neg eax",
            " mov m4[ecx+None*1+0x4],eax",
            " mov eax,ecx",
            " mov m4[ecx+None*1+0x8],ebp",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " jmp local:14",
            " mov ecx,m4[None+None*1+3dcore.c::_vp]",
            " mov eax,m4[ebp+None*1+0x0]",
            " sub eax,ecx",
            "-mov ebx,m4[None+None*1+0xafaef4]",
            "+mov ebx,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,m4[ebp+None*1+0x4]",
            " sub eax,ebx",
            "-mov esi,m4[None+None*1+0xafaef8]",
            "+mov esi,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x10],eax",
            " mov eax,m4[ebp+None*1+0x8]",
            " sub eax,esi",
            "@@ -112,15 +112,15 @@",
            " mov m4[esp+None*1+0x14],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -129,13 +129,13 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov edi,m4[None+None*1+0xafaeb4]",
            "+mov edi,m4[None+None*1+0xae5564]",
            " mov esi,edx",
            " cmp edx,edi",
            " jle local:25",
            "-cmp edx,m4[None+None*1+0xafaeb8]",
            "+cmp edx,m4[None+None*1+0xae5568]",
            " jge local:25",
            "-call fx3dobbf.c::get_object_buffer_space_",
            "+call 3dobjbuf.c::get_object_buffer_space_",
            " mov ecx,eax",
            " test eax,eax",
            " je local:31",
            "@@ -149,11 +149,11 @@",
            " mov m4[ecx+None*1+0x4],eax",
            " mov eax,ecx",
            " mov m4[ecx+None*1+0x8],ebp",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " jmp local:25",
            " neg eax",
            " mov m4[ecx+None*1+0x4],eax",
            " mov eax,ecx",
            " mov m4[ecx+None*1+0x8],ebp",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " jmp local:25"
          ]
        },
        {
          "symbol": "damage.c::auxillary_effects_",
          "source": "E:\\apache\\source\\weapons\\damage.c",
          "first": "0x44a3e8",
          "second": "0x44a768",
          "first_instruction_count": 149,
          "second_instruction_count": 149,
          "diff": [
            "--- 0x44a3e8",
            "+++ 0x44a768",
            "@@ -3,7 +3,7 @@",
            " mov edi,eax",
            " mov esi,edx",
            " mov edx,ebx",
            "-mov ebx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ebx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ebx+edx*4+0x0]",
            " test m1[eax+None*1+0xb8],0x1",
            " jne local:12"
          ]
        },
        {
          "symbol": "damage.c::calculate_damage_",
          "source": "E:\\apache\\source\\weapons\\damage.c",
          "first": "0x449b78",
          "second": "0x449ef8",
          "first_instruction_count": 190,
          "second_instruction_count": 190,
          "diff": [
            "--- 0x449b78",
            "+++ 0x449ef8",
            "@@ -13,7 +13,7 @@",
            " add eax,ebx",
            " shl eax,0x3",
            " mov ebx,m4[None+None*1+damage.c::_max_damage_radius]",
            "-mov edx,m4[eax+None*1+0x672a80]",
            "+mov edx,m4[eax+None*1+0x665a90]",
            " cmp edx,ebx",
            " jle local:117",
            " mov eax,edx",
            "@@ -21,7 +21,7 @@",
            " add eax,eax",
            " cmp ebp,eax",
            " jg local:119",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edx,m4[eax+ecx*4+0x0]",
            " test m1[edx+None*1+0xb8],0x2",
            " je local:126",
            "@@ -31,7 +31,7 @@",
            " shl ebx,0x2",
            " add ebx,eax",
            " xor ecx,ecx",
            "-mov cl,m1[None+ebx*8+0x672a69]",
            "+mov cl,m1[None+ebx*8+0x665a79]",
            " sub ecx,m4[edx+None*1+0xa4]",
            " mov eax,m4[esi+None*1+0x0]",
            " lea ebx,m4[None+eax*4+0x0]",
            "@@ -40,7 +40,7 @@",
            " add ebx,eax",
            " xor eax,eax",
            " mov edx,m4[None+None*1+damage.c::_max_damage]",
            "-mov al,m1[None+ebx*8+0x672a6c]",
            "+mov al,m1[None+ebx*8+0x665a7c]",
            " cmp eax,edx",
            " jle local:133",
            " mov m4[esp+None*1+0x4],eax",
            "@@ -51,7 +51,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov dl,m1[None+eax*8+0x672a6b]",
            "+mov dl,m1[None+eax*8+0x665a7b]",
            " mov ebx,m4[esp+None*1+0x4]",
            " cmp dl,0x2",
            " jne local:68",
            "@@ -129,7 +129,7 @@",
            " sub ebx,eax",
            " shl ebx,0x2",
            " add ebx,eax",
            "-mov ecx,m4[None+ebx*8+0x672a90]",
            "+mov ecx,m4[None+ebx*8+0x665aa0]",
            " jmp local:34",
            " mov m4[esp+None*1+0x4],edx",
            " jmp local:46"
          ]
        },
        {
          "symbol": "damage.c::calculate_max_damage_",
          "source": "E:\\apache\\source\\weapons\\damage.c",
          "first": "0x449db4",
          "second": "0x44a134",
          "first_instruction_count": 31,
          "second_instruction_count": 31,
          "diff": [
            "--- 0x449db4",
            "+++ 0x44a134",
            "@@ -1,7 +1,7 @@",
            " push ecx",
            " push edx",
            " lea edx,m4[None+eax*4+0x0]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ecx,m4[edx+eax*1+0x0]",
            " mov edx,m4[ecx+None*1+0xa8]",
            " cmp edx,0xff"
          ]
        },
        {
          "symbol": "damage.c::damage_anything_in_range_",
          "source": "E:\\apache\\source\\weapons\\damage.c",
          "first": "0x4495f8",
          "second": "0x449978",
          "first_instruction_count": 41,
          "second_instruction_count": 41,
          "diff": [
            "--- 0x4495f8",
            "+++ 0x449978",
            "@@ -16,7 +16,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov edx,m4[None+eax*8+0x672a80]",
            "+mov edx,m4[None+eax*8+0x665a90]",
            " xor ebx,ebx",
            " lea ecx,m4[None+edx*4+0x0]",
            " mov eax,edi",
            "@@ -30,7 +30,7 @@",
            " add eax,edx",
            " xor ebx,ebx",
            " mov edx,esi",
            "-mov ecx,m4[None+eax*8+0x672a80]",
            "+mov ecx,m4[None+eax*8+0x665a90]",
            " mov eax,edi",
            " add ecx,ecx",
            " call damage.c::damage_ground_objects_in_range_exclusive_"
          ]
        },
        {
          "symbol": "damage.c::damage_ground_object_",
          "source": "E:\\apache\\source\\weapons\\damage.c",
          "first": "0x4492f8",
          "second": "0x449678",
          "first_instruction_count": 101,
          "second_instruction_count": 101,
          "diff": [
            "--- 0x4492f8",
            "+++ 0x449678",
            "@@ -60,7 +60,7 @@",
            " and edx,0xffff",
            " add eax,edx",
            " xor edx,edx",
            "-mov esi,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov esi,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov dx,m2[ebp+None*1+0x0]",
            " mov ebx,m4[esi+edx*4+0x0]",
            " cmp eax,m4[ebx+None*1+0xa8]"
          ]
        },
        {
          "symbol": "damage.c::damage_ground_objects_in_range_exclusive_",
          "source": "E:\\apache\\source\\weapons\\damage.c",
          "first": "0x4496b0",
          "second": "0x449a30",
          "first_instruction_count": 41,
          "second_instruction_count": 41,
          "diff": [
            "--- 0x4496b0",
            "+++ 0x449a30",
            "@@ -19,7 +19,7 @@",
            " xor edx,edx",
            " mov dx,m2[eax+None*1+0x0]",
            " lea ebx,m4[None+edx*4+0x0]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edx,m4[edx+ebx*1+0x0]",
            " cmp m4[edx+None*1+0xa8],0xff",
            " je local:29"
          ]
        },
        {
          "symbol": "damage.c::damage_mobile_object_",
          "source": "E:\\apache\\source\\weapons\\damage.c",
          "first": "0x449418",
          "second": "0x449798",
          "first_instruction_count": 175,
          "second_instruction_count": 175,
          "diff": [
            "--- 0x449418",
            "+++ 0x449798",
            "@@ -80,7 +80,7 @@",
            " shl edx,0x2",
            " mov m4[esp+None*1+0x4],edx",
            " mov ebp,m4[esp+None*1+0x4]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " xor eax,eax",
            " add edx,ebp",
            " mov al,m1[edi+None*1+0xdc]"
          ]
        },
        {
          "symbol": "damage.c::do_damage_to_ground_object_",
          "source": "E:\\apache\\source\\weapons\\damage.c",
          "first": "0x449150",
          "second": "0x4494d0",
          "first_instruction_count": 79,
          "second_instruction_count": 79,
          "diff": [
            "--- 0x449150",
            "+++ 0x4494d0",
            "@@ -14,7 +14,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov eax,m4[None+eax*8+0x672a80]",
            "+mov eax,m4[None+eax*8+0x665a90]",
            " add eax,eax",
            " mov edx,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x4],eax",
            "@@ -26,7 +26,7 @@",
            " cmp dx,0x1",
            " jne local:58",
            " xor eax,eax",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ax,m2[esi+None*1+0x0]",
            " mov eax,m4[edx+eax*4+0x0]",
            " mov eax,m4[eax+None*1+0xac]"
          ]
        },
        {
          "symbol": "damage.c::do_damage_to_mobile_object_",
          "source": "E:\\apache\\source\\weapons\\damage.c",
          "first": "0x449230",
          "second": "0x4495b0",
          "first_instruction_count": 74,
          "second_instruction_count": 74,
          "diff": [
            "--- 0x449230",
            "+++ 0x4495b0",
            "@@ -15,7 +15,7 @@",
            " add eax,ebp",
            " mov m4[None+None*1+damage.c::_max_damage_radius],edx",
            " mov edx,edi",
            "-mov ebp,m4[None+eax*8+0x672a80]",
            "+mov ebp,m4[None+eax*8+0x665a90]",
            " mov eax,esi",
            " call damage.c::damage_mobile_object_",
            " mov edx,m4[esi+None*1+0x40]",
            "@@ -23,7 +23,7 @@",
            " add ebp,ebp",
            " cmp edx,0x1",
            " jne local:54",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov eax,m4[eax+edx*4+0x0]",
            " mov eax,m4[eax+None*1+0xac]"
          ]
        },
        {
          "symbol": "damage.c::do_damage_to_user_",
          "source": "E:\\apache\\source\\weapons\\damage.c",
          "first": "0x449e2c",
          "second": "0x44a1ac",
          "first_instruction_count": 77,
          "second_instruction_count": 77,
          "diff": [
            "--- 0x449e2c",
            "+++ 0x44a1ac",
            "@@ -33,7 +33,7 @@",
            " sar edx,0x1f",
            " idiv ecx",
            " mov esi,m4[None+None*1+drone.c::_user_drone]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ecx,edx",
            " mov edx,m4[esi+None*1+0x8]",
            " mov eax,m4[eax+edx*4+0x0]"
          ]
        },
        {
          "symbol": "damage.c::do_scoring_",
          "source": "E:\\apache\\source\\weapons\\damage.c",
          "first": "0x44a350",
          "second": "0x44a6d0",
          "first_instruction_count": 38,
          "second_instruction_count": 38,
          "diff": [
            "--- 0x44a350",
            "+++ 0x44a6d0",
            "@@ -1,7 +1,7 @@",
            " push ebx",
            " push ecx",
            " push edx",
            "-mov ebx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ebx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edx,m4[ebx+eax*4+0x0]",
            " mov bl,m1[edx+None*1+0xb8]",
            " xor ecx,ecx"
          ]
        },
        {
          "symbol": "damage.c::kill_3d_instance_",
          "source": "E:\\apache\\source\\weapons\\damage.c",
          "first": "0x44988c",
          "second": "0x449c0c",
          "first_instruction_count": 157,
          "second_instruction_count": 157,
          "diff": [
            "--- 0x44988c",
            "+++ 0x449c0c",
            "@@ -128,7 +128,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-cmp ebp,m4[edx+eax*4+0x5a1434]",
            "+cmp ebp,m4[edx+eax*4+0x594444]",
            " jne local:143",
            " mov ebx,0x3",
            " mov eax,esi"
          ]
        },
        {
          "symbol": "damage.c::kill_ground_object_",
          "source": "E:\\apache\\source\\weapons\\damage.c",
          "first": "0x449724",
          "second": "0x449aa4",
          "first_instruction_count": 101,
          "second_instruction_count": 101,
          "diff": [
            "--- 0x449724",
            "+++ 0x449aa4",
            "@@ -74,7 +74,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-cmp edi,m4[edx+eax*4+0x5a1434]",
            "+cmp edi,m4[edx+eax*4+0x594444]",
            " jne local:88",
            " mov ebx,0x3",
            " mov edx,m4[esi+None*1+0x4]"
          ]
        },
        {
          "symbol": "daytime.c::set_sun_position_",
          "source": "E:\\apache\\source\\daytime.c",
          "first": "0x402054",
          "second": "0x402054",
          "first_instruction_count": 84,
          "second_instruction_count": 84,
          "diff": [
            "--- 0x402054",
            "+++ 0x402054",
            "@@ -1,4 +1,4 @@",
            "-cmp eax,umapway.c::display_rubber_waypoint_line_+0x124",
            "+cmp eax,umapway.c::add_waypoint_redraw_clear_triangle_+0xc",
            " jl local:20",
            " cmp eax,0xdbba00",
            " jg local:20",
            "@@ -7,7 +7,7 @@",
            " push ebx",
            " cmp eax,0x8ed280",
            " jge local:58",
            "-cmp eax,model_a.c::initialise_apache_flight_model_+0x6a8",
            "+cmp eax,model_a.c::initialise_apache_flight_model_+0x328",
            " jge local:21",
            " mov ebx,0x55555555",
            " xor edx,edx",
            "@@ -20,7 +20,7 @@",
            " pop edx",
            " ret ",
            " mov edx,0x8ed280",
            "-mov ebx,excptwnt::___ExceptionFilter+0x141",
            "+mov ebx,text:'fg'",
            " sub edx,eax",
            " xor eax,eax",
            " sar edx,0x1",
            "@@ -60,7 +60,7 @@",
            " jle local:62",
            " mov ebx,0xaaaaaaab",
            " jmp local:12",
            "-mov ebx,excptwnt::___ExceptionFilter+0x141",
            "+mov ebx,text:'fg'",
            " lea edx,m4[eax+None*1+0xff712d80]",
            " xor eax,eax",
            " sar edx,0x1"
          ]
        },
        {
          "symbol": "ddraw.c::deinitialise_direct_draw_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x47461c",
          "second": "0x47280c",
          "first_instruction_count": 56,
          "second_instruction_count": 56,
          "diff": [
            "--- 0x47461c",
            "+++ 0x47280c",
            "@@ -33,15 +33,15 @@",
            " call m4[eax+None*1+0x8]",
            " mov edi,m4[None+None*1+start.c::_main_window]",
            " push edi",
            "-call m4[None+None*1+constant:7e490d00]",
            "+call m4[None+None*1+constant:46780c00]",
            " push 0x1",
            " push eax",
            " mov ebx,eax",
            "-call m4[None+None*1+constant:a2480d00]",
            "+call m4[None+None*1+constant:6a770c00]",
            " push ebx",
            " mov ebp,m4[None+None*1+start.c::_main_window]",
            " push ebp",
            "-call m4[None+None*1+constant:0a4a0d00]",
            "+call m4[None+None*1+constant:d2780c00]",
            " xor eax,eax",
            " mov m4[None+None*1+ddraw.c::_direct_draw],eax",
            " pop ebx"
          ]
        },
        {
          "symbol": "ddraw.c::display_windows_screen_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x474ae4",
          "second": "0x472cd4",
          "first_instruction_count": 11,
          "second_instruction_count": 11,
          "diff": [
            "--- 0x474ae4",
            "+++ 0x472cd4",
            "@@ -5,7 +5,7 @@",
            " push 0x400",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " pop edx",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "ddraw.c::down_load_windows_screen_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x4746c4",
          "second": "0x4728b4",
          "first_instruction_count": 30,
          "second_instruction_count": 30,
          "diff": [
            "--- 0x4746c4",
            "+++ 0x4728b4",
            "@@ -8,18 +8,18 @@",
            " push 0x400",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " cmp m4[esp+None*1+0x0],0x0",
            " jne local:25",
            " push 0x3e8",
            "-call m4[None+None*1+constant:00500d00]",
            "+call m4[None+None*1+constant:ee7e0c00]",
            " mov eax,esp",
            " push eax",
            " push 0x9",
            " push 0x400",
            " mov ebx,m4[None+None*1+start.c::_main_window]",
            " push ebx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " cmp m4[esp+None*1+0x0],0x0",
            " je local:13",
            " mov eax,eax"
          ]
        },
        {
          "symbol": "ddraw.c::draw_windows_mouse_pointer_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x47563c",
          "second": "0x4737d8",
          "first_instruction_count": 196,
          "second_instruction_count": 196,
          "diff": [
            "--- 0x47563c",
            "+++ 0x4737d8",
            "@@ -91,9 +91,9 @@",
            " mov edx,m4[eax+None*1+0x0]",
            " push eax",
            " call m4[edx+None*1+0x64]",
            "-mov edx,m4[None+None*1+0x725274]",
            "+mov edx,m4[None+None*1+0x70fccc]",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0x725288]",
            "+mov edx,m4[None+None*1+0x70fce0]",
            " mov m4[esp+None*1+0x4],edx",
            " test eax,eax",
            " jne local:46",
            "@@ -176,9 +176,9 @@",
            " mov edx,m4[eax+None*1+0x0]",
            " push eax",
            " call m4[edx+None*1+0x64]",
            "-mov edx,m4[None+None*1+0x7250b0]",
            "+mov edx,m4[None+None*1+0x70fb80]",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0x7250c4]",
            "+mov edx,m4[None+None*1+0x70fb94]",
            " jmp local:96",
            " push 0x0",
            " mov eax,m4[None+None*1+ddraw.c::_primary_surface]"
          ]
        },
        {
          "symbol": "ddraw.c::draw_windows_textured_xored_video_line_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x475080",
          "second": "0x47321c",
          "first_instruction_count": 14,
          "second_instruction_count": 14,
          "diff": [
            "--- 0x475080",
            "+++ 0x47321c",
            "@@ -9,6 +9,6 @@",
            " push edx",
            " mov m4[esp+None*1+0x1c],ecx",
            " mov m4[esp+None*1+0x18],ebx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " add esp,0x10",
            " ret "
          ]
        },
        {
          "symbol": "ddraw.c::draw_windows_xored_video_line_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x474fe0",
          "second": "0x47317c",
          "first_instruction_count": 14,
          "second_instruction_count": 14,
          "diff": [
            "--- 0x474fe0",
            "+++ 0x47317c",
            "@@ -9,6 +9,6 @@",
            " push edx",
            " mov m4[esp+None*1+0x1c],ecx",
            " mov m4[esp+None*1+0x18],ebx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " add esp,0x10",
            " ret "
          ]
        },
        {
          "symbol": "ddraw.c::get_windows_palette_registers_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x474f40",
          "second": "0x4730dc",
          "first_instruction_count": 15,
          "second_instruction_count": 15,
          "diff": [
            "--- 0x474f40",
            "+++ 0x4730dc",
            "@@ -9,7 +9,7 @@",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            " mov m4[esp+None*1+0x18],ebx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " add esp,0xc",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "ddraw.c::internal_display_windows_screen_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x474b00",
          "second": "0x472cf0",
          "first_instruction_count": 57,
          "second_instruction_count": 57,
          "diff": [
            "--- 0x474b00",
            "+++ 0x472cf0",
            "@@ -33,7 +33,7 @@",
            " mov edx,m4[None+None*1+ddraw.c::_secondary_surface]",
            " push 0x0",
            " mov m4[esp+None*1+0xc],eax",
            "-mov eax,m4[None+None*1+0x725094]",
            "+mov eax,m4[None+None*1+0x70fb64]",
            " push 0x0",
            " mov m4[esp+None*1+0x14],eax",
            " add eax,edi"
          ]
        },
        {
          "symbol": "ddraw.c::internal_down_load_windows_screen_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x47471c",
          "second": "0x47290c",
          "first_instruction_count": 291,
          "second_instruction_count": 291,
          "diff": [
            "--- 0x47471c",
            "+++ 0x47290c",
            "@@ -57,8 +57,8 @@",
            " mov edx,m4[eax+None*1+0x0]",
            " push eax",
            " call m4[edx+None*1+0x64]",
            "-mov edx,m4[None+None*1+0x725274]",
            "-mov edi,m4[None+None*1+0x725288]",
            "+mov edx,m4[None+None*1+0x70fccc]",
            "+mov edi,m4[None+None*1+0x70fce0]",
            " mov m4[esp+None*1+0x4],edx",
            " test eax,eax",
            " je local:69",
            "@@ -132,8 +132,8 @@",
            " mov edx,m4[eax+None*1+0x0]",
            " push eax",
            " call m4[edx+None*1+0x64]",
            "-mov edx,m4[None+None*1+0x7250b0]",
            "-mov edi,m4[None+None*1+0x7250c4]",
            "+mov edx,m4[None+None*1+0x70fb80]",
            "+mov edi,m4[None+None*1+0x70fb94]",
            " jmp local:61",
            " jbe local:166",
            " cmp eax,0x887601c2"
          ]
        },
        {
          "symbol": "ddraw.c::internal_draw_windows_textured_xored_video_line_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x4750b0",
          "second": "0x47324c",
          "first_instruction_count": 44,
          "second_instruction_count": 44,
          "diff": [
            "--- 0x4750b0",
            "+++ 0x47324c",
            "@@ -25,11 +25,11 @@",
            " call m4[edx+None*1+0x64]",
            " test eax,eax",
            " jne local:14",
            "-mov eax,m4[None+None*1+0x725134]",
            "+mov eax,m4[None+None*1+0x70fd50]",
            " mov edx,ebx",
            " mov ecx,edi",
            " mov m4[None+None*1+ddraw.c::_windows_primary_buffer],eax",
            "-mov eax,m4[None+None*1+0x725120]",
            "+mov eax,m4[None+None*1+0x70fd3c]",
            " mov ebx,ebp",
            " mov m4[None+None*1+ddraw.c::_windows_primary_buffer_pitch],eax",
            " call vstxline.asm::_draw_textured_xored_video_line"
          ]
        },
        {
          "symbol": "ddraw.c::internal_draw_windows_xored_video_line_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x475010",
          "second": "0x4731ac",
          "first_instruction_count": 44,
          "second_instruction_count": 44,
          "diff": [
            "--- 0x475010",
            "+++ 0x4731ac",
            "@@ -25,11 +25,11 @@",
            " call m4[edx+None*1+0x64]",
            " test eax,eax",
            " jne local:14",
            "-mov eax,m4[None+None*1+0x725134]",
            "+mov eax,m4[None+None*1+0x70fd50]",
            " mov edx,ebx",
            " mov ecx,edi",
            " mov m4[None+None*1+ddraw.c::_windows_primary_buffer],eax",
            "-mov eax,m4[None+None*1+0x725120]",
            "+mov eax,m4[None+None*1+0x70fd3c]",
            " mov ebx,ebp",
            " mov m4[None+None*1+ddraw.c::_windows_primary_buffer_pitch],eax",
            " call vsxline.asm::_draw_xored_video_line"
          ]
        },
        {
          "symbol": "ddraw.c::internal_get_windows_palette_registers_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x474f6c",
          "second": "0x473108",
          "first_instruction_count": 49,
          "second_instruction_count": 49,
          "diff": [
            "--- 0x474f6c",
            "+++ 0x473108",
            "@@ -34,10 +34,10 @@",
            " mov dl,m1[eax+None*1+ddraw.c::_windows_colour_table]",
            " mov m1[esi+None*1+0xffffffff],dl",
            " inc esi",
            "-mov dl,m1[eax+None*1+0x724331]",
            "+mov dl,m1[eax+None*1+0x70ee01]",
            " mov m1[esi+None*1+0xffffffff],dl",
            " inc esi",
            "-mov dl,m1[eax+None*1+0x724332]",
            "+mov dl,m1[eax+None*1+0x70ee02]",
            " add eax,0x4",
            " mov m1[esi+None*1+0xffffffff],dl",
            " cmp eax,ecx"
          ]
        },
        {
          "symbol": "ddraw.c::internal_quick_set_windows_palette_registers_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x474d24",
          "second": "0x472ec0",
          "first_instruction_count": 74,
          "second_instruction_count": 74,
          "diff": [
            "--- 0x474d24",
            "+++ 0x472ec0",
            "@@ -21,12 +21,12 @@",
            " mov bl,m1[eax+None*1+0x1]",
            " shl bl,0x2",
            " inc eax",
            "-mov m1[edx+None*1+0x724331],bl",
            "+mov m1[edx+None*1+0x70ee01],bl",
            " mov bl,m1[eax+None*1+0x1]",
            " inc eax",
            " shl bl,0x2",
            " inc eax",
            "-mov m1[edx+None*1+0x724332],bl",
            "+mov m1[edx+None*1+0x70ee02],bl",
            " inc ecx",
            " add edx,0x4",
            " cmp ecx,esi"
          ]
        },
        {
          "symbol": "ddraw.c::internal_quick_set_windows_palette_registers_using_run_list_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x474e2c",
          "second": "0x472fc8",
          "first_instruction_count": 104,
          "second_instruction_count": 104,
          "diff": [
            "--- 0x474e2c",
            "+++ 0x472fc8",
            "@@ -36,12 +36,12 @@",
            " mov cl,m1[ebx+None*1+0x1]",
            " shl cl,0x2",
            " inc ebx",
            "-mov m1[eax+None*1+0x724331],cl",
            "+mov m1[eax+None*1+0x70ee01],cl",
            " mov cl,m1[ebx+None*1+0x1]",
            " inc ebx",
            " shl cl,0x2",
            " inc ebx",
            "-mov m1[eax+None*1+0x724332],cl",
            "+mov m1[eax+None*1+0x70ee02],cl",
            " inc esi",
            " add eax,0x4",
            " jmp local:27"
          ]
        },
        {
          "symbol": "ddraw.c::internal_set_windows_palette_registers_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x474c1c",
          "second": "0x472db8",
          "first_instruction_count": 73,
          "second_instruction_count": 73,
          "diff": [
            "--- 0x474c1c",
            "+++ 0x472db8",
            "@@ -22,10 +22,10 @@",
            " mov m1[ecx+None*1+ddraw.c::_windows_colour_table],bl",
            " mov bl,m1[eax+None*1+0x0]",
            " inc eax",
            "-mov m1[ecx+None*1+0x724331],bl",
            "+mov m1[ecx+None*1+0x70ee01],bl",
            " mov bl,m1[eax+None*1+0x0]",
            " inc eax",
            "-mov m1[ecx+None*1+0x724332],bl",
            "+mov m1[ecx+None*1+0x70ee02],bl",
            " inc edx",
            " add ecx,0x4",
            " cmp edx,esi"
          ]
        },
        {
          "symbol": "ddraw.c::internal_set_windows_video_mode_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x473e8c",
          "second": "0x47207c",
          "first_instruction_count": 390,
          "second_instruction_count": 390,
          "diff": [
            "--- 0x473e8c",
            "+++ 0x47207c",
            "@@ -42,9 +42,9 @@",
            " mov esi,0x1",
            " mov ebp,0x218",
            " mov ebx,0x21",
            "-mov m4[None+None*1+0x725124],esi",
            "-mov m4[None+None*1+0x725178],ebp",
            "-mov m4[None+None*1+0x725114],ebx",
            "+mov m4[None+None*1+0x70fd40],esi",
            "+mov m4[None+None*1+0x70fd94],ebp",
            "+mov m4[None+None*1+0x70fd30],ebx",
            " push 0x0",
            " push ddraw.c::_primary_surface",
            " mov eax,m4[None+None*1+ddraw.c::_direct_draw]",
            "@@ -72,15 +72,15 @@",
            " call m4[edx+None*1+0x58]",
            " mov esi,m4[None+None*1+start.c::_main_window]",
            " push esi",
            "-call m4[None+None*1+constant:7e490d00]",
            "+call m4[None+None*1+constant:46780c00]",
            " push 0x2",
            " push eax",
            " mov esi,eax",
            "-call m4[None+None*1+constant:a2480d00]",
            "+call m4[None+None*1+constant:6a770c00]",
            " push esi",
            " mov ebp,m4[None+None*1+start.c::_main_window]",
            " push ebp",
            "-call m4[None+None*1+constant:0a4a0d00]",
            "+call m4[None+None*1+constant:d2780c00]",
            " cmp m4[None+None*1+ddraw.c::_base_windows_palette],0x0",
            " jne local:93",
            " push 0x0",
            "@@ -102,11 +102,11 @@",
            " xor eax,eax",
            " test edi,edi",
            " jle local:116",
            "-mov ebp,m4[None+None*1+0x725274]",
            "+mov ebp,m4[None+None*1+0x70fccc]",
            " mov ebx,m4[None+None*1+vesabios.c::_vesa_double_buffer]",
            " lea edx,m4[None+edi*4+0x0]",
            " xor esi,esi",
            "-mov edi,m4[None+None*1+0x7250b0]",
            "+mov edi,m4[None+None*1+0x70fb80]",
            " mov m4[esi+None*1+ddraw.c::_windows_buffer_steps],eax",
            " test ebx,ebx",
            " je local:148",
            "@@ -136,8 +136,8 @@",
            " jmp local:13",
            " mov ecx,0x200",
            " mov edx,0x1",
            "-mov m4[None+None*1+0x725178],ecx",
            "-mov m4[None+None*1+0x725114],edx",
            "+mov m4[None+None*1+0x70fd94],ecx",
            "+mov m4[None+None*1+0x70fd30],edx",
            " jmp local:47",
            " push ddraw.c::_primary_surface_description",
            " mov eax,m4[None+None*1+ddraw.c::_primary_surface]",
            "@@ -178,28 +178,28 @@",
            " push eax",
            " mov m4[esp+None*1+0xc],ecx",
            " mov m4[esp+None*1+0x8],ecx",
            "-call m4[None+None*1+constant:a8490d00]",
            "+call m4[None+None*1+constant:70780c00]",
            " and eax,0x7f39ffff",
            " or eax,0xc60000",
            " push eax",
            " push 0xfffffff0",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            "-call m4[None+None*1+constant:4e4a0d00]",
            "+call m4[None+None*1+constant:16790c00]",
            " push 0xffffffec",
            " mov ecx,m4[None+None*1+start.c::_main_window]",
            " push ecx",
            "-call m4[None+None*1+constant:a8490d00]",
            "+call m4[None+None*1+constant:70780c00]",
            " push eax",
            " push 0x1",
            " push 0xfffffff0",
            " mov ebx,m4[None+None*1+start.c::_main_window]",
            " push ebx",
            "-call m4[None+None*1+constant:a8490d00]",
            "+call m4[None+None*1+constant:70780c00]",
            " push eax",
            " lea eax,m4[esp+None*1+0xc]",
            " push eax",
            "-call m4[None+None*1+constant:b8480d00]",
            "+call m4[None+None*1+constant:80770c00]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov edx,m4[esp+None*1+0x4]",
            " push 0x16",
            "@@ -214,7 +214,7 @@",
            " push 0x0",
            " mov ebx,m4[None+None*1+start.c::_main_window]",
            " push ebx",
            "-call m4[None+None*1+constant:604a0d00]",
            "+call m4[None+None*1+constant:28790c00]",
            " push 0x13",
            " push 0x0",
            " push 0x0",
            "@@ -223,18 +223,18 @@",
            " push 0xfffffffe",
            " mov eax,m4[None+None*1+start.c::_main_window]",
            " push eax",
            "-call m4[None+None*1+constant:604a0d00]",
            "+call m4[None+None*1+constant:28790c00]",
            " push 0x0",
            " lea eax,m4[esp+None*1+0x14]",
            " push eax",
            " push 0x0",
            " push 0x30",
            "-call m4[None+None*1+constant:8c4a0d00]",
            "+call m4[None+None*1+constant:54790c00]",
            " mov eax,esp",
            " push eax",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            "-call m4[None+None*1+constant:ba490d00]",
            "+call m4[None+None*1+constant:82780c00]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov ecx,m4[esp+None*1+0x10]",
            " cmp eax,ecx",
            "@@ -254,16 +254,16 @@",
            " push 0x0",
            " mov ecx,m4[None+None*1+start.c::_main_window]",
            " push ecx",
            "-call m4[None+None*1+constant:604a0d00]",
            "+call m4[None+None*1+constant:28790c00]",
            " push 0x0",
            " mov ebx,0x6c",
            " mov eax,0x1",
            " push ddraw.c::_primary_surface",
            " mov edx,0x200",
            "-mov m4[None+None*1+0x72518c],eax",
            "+mov m4[None+None*1+0x70fbe8],eax",
            " push ddraw.c::_ddsd",
            " mov eax,m4[None+None*1+ddraw.c::_direct_draw]",
            "-mov m4[None+None*1+0x7251f0],edx",
            "+mov m4[None+None*1+0x70fc4c],edx",
            " push eax",
            " mov edx,m4[eax+None*1+0x0]",
            " mov m4[None+None*1+ddraw.c::_ddsd],ebx",
            "@@ -277,14 +277,14 @@",
            " mov eax,0x840",
            " push ddraw.c::_secondary_surface",
            " mov m4[None+None*1+ddraw.c::_ddsd],ecx",
            "-mov m4[None+None*1+0x7251f0],eax",
            "+mov m4[None+None*1+0x70fc4c],eax",
            " push ddraw.c::_ddsd",
            " mov eax,m4[None+None*1+ddraw.c::_direct_draw]",
            "-mov m4[None+None*1+0x725190],edi",
            "-push eax",
            "-mov edx,m4[eax+None*1+0x0]",
            "-mov m4[None+None*1+0x725194],ebp",
            "-mov m4[None+None*1+0x72518c],ebx",
            "+mov m4[None+None*1+0x70fbec],edi",
            "+push eax",
            "+mov edx,m4[eax+None*1+0x0]",
            "+mov m4[None+None*1+0x70fbf0],ebp",
            "+mov m4[None+None*1+0x70fbe8],ebx",
            " call m4[edx+None*1+0x18]",
            " push ddraw.c::_secondary_surface_description",
            " mov eax,m4[None+None*1+ddraw.c::_secondary_surface]",
            "@@ -315,35 +315,35 @@",
            " call m4[edx+None*1+0x70]",
            " mov ebp,m4[None+None*1+start.c::_main_window]",
            " push ebp",
            "-call m4[None+None*1+constant:7e490d00]",
            "+call m4[None+None*1+constant:46780c00]",
            " push ddraw.c::_windows_colour_table",
            " push 0x100",
            " push 0x0",
            " push eax",
            " mov ebp,eax",
            "-call m4[None+None*1+constant:4a480d00]",
            "+call m4[None+None*1+constant:12770c00]",
            " push 0x2",
            " push ebp",
            "-call m4[None+None*1+constant:a2480d00]",
            "+call m4[None+None*1+constant:6a770c00]",
            " push ebp",
            " mov eax,m4[None+None*1+start.c::_main_window]",
            " push eax",
            "-call m4[None+None*1+constant:0a4a0d00]",
            "+call m4[None+None*1+constant:d2780c00]",
            " xor eax,eax",
            " add eax,0x4",
            " xor dl,dl",
            "-mov m1[eax+None*1+0x72432f],dl",
            "+mov m1[eax+None*1+0x70edff],dl",
            " cmp eax,0x28",
            " jne local:332",
            " mov dh,0x5",
            " add eax,0x4",
            "-mov m1[eax+None*1+0x72432f],dh",
            "+mov m1[eax+None*1+0x70edff],dh",
            " cmp eax,0x3d8",
            " jne local:338",
            " mov eax,0x3dc",
            " add eax,0x4",
            " xor bl,bl",
            "-mov m1[eax+None*1+0x72432f],bl",
            "+mov m1[eax+None*1+0x70edff],bl",
            " cmp eax,0x400",
            " jne local:343",
            " push 0x0",
            "@@ -362,8 +362,8 @@",
            " call m4[edx+None*1+0x7c]",
            " test edi,edi",
            " jle local:376",
            "-mov ecx,m4[None+None*1+0x725274]",
            "-mov ebp,m4[None+None*1+0x7250b0]",
            "+mov ecx,m4[None+None*1+0x70fccc]",
            "+mov ebp,m4[None+None*1+0x70fb80]",
            " lea edx,m4[None+edi*4+0x0]",
            " xor eax,eax",
            " mov edi,m4[None+None*1+vesabios.c::_vesa_double_buffer]"
          ]
        },
        {
          "symbol": "ddraw.c::quick_set_windows_palette_registers_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x474cf8",
          "second": "0x472e94",
          "first_instruction_count": 15,
          "second_instruction_count": 15,
          "diff": [
            "--- 0x474cf8",
            "+++ 0x472e94",
            "@@ -9,7 +9,7 @@",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            " mov m4[esp+None*1+0x18],ebx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " add esp,0xc",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "ddraw.c::quick_set_windows_palette_registers_using_run_list_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x474e00",
          "second": "0x472f9c",
          "first_instruction_count": 16,
          "second_instruction_count": 16,
          "diff": [
            "--- 0x474e00",
            "+++ 0x472f9c",
            "@@ -8,7 +8,7 @@",
            " push 0x400",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " mov eax,m4[esp+None*1+0x0]",
            " add esp,0xc",
            " pop edx"
          ]
        },
        {
          "symbol": "ddraw.c::restore_windows_mouse_pointer_background_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x4753d8",
          "second": "0x473574",
          "first_instruction_count": 196,
          "second_instruction_count": 196,
          "diff": [
            "--- 0x4753d8",
            "+++ 0x473574",
            "@@ -93,9 +93,9 @@",
            " mov edx,m4[eax+None*1+0x0]",
            " push eax",
            " call m4[edx+None*1+0x64]",
            "-mov edx,m4[None+None*1+0x725274]",
            "+mov edx,m4[None+None*1+0x70fccc]",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0x725288]",
            "+mov edx,m4[None+None*1+0x70fce0]",
            " mov m4[esp+None*1+0x1c],edx",
            " test eax,eax",
            " jne local:48",
            "@@ -176,9 +176,9 @@",
            " mov edx,m4[eax+None*1+0x0]",
            " push eax",
            " call m4[edx+None*1+0x64]",
            "-mov edx,m4[None+None*1+0x7250b0]",
            "+mov edx,m4[None+None*1+0x70fb80]",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0x7250c4]",
            "+mov edx,m4[None+None*1+0x70fb94]",
            " jmp local:98",
            " push 0x0",
            " mov eax,m4[None+None*1+ddraw.c::_primary_surface]"
          ]
        },
        {
          "symbol": "ddraw.c::set_windows_palette_registers_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x474b9c",
          "second": "0x472d8c",
          "first_instruction_count": 43,
          "second_instruction_count": 15,
          "diff": [
            "--- 0x474b9c",
            "+++ 0x472d8c",
            "@@ -1,43 +1,15 @@",
            " push ecx",
            "-push esi",
            " sub esp,0xc",
            "-mov ecx,eax",
            "-mov eax,edx",
            "-mov m4[esp+None*1+0x4],edx",
            "-mov m4[esp+None*1+0x0],ecx",
            "-lea esi,m4[edx+ebx*1+0x0]",
            "-mov m4[esp+None*1+0x8],ebx",
            "-lea ecx,m4[None+edx*4+0x0]",
            "-mov ebx,eax",
            "-shl esi,0x2",
            "-shl eax,0x2",
            "-mov edx,ecx",
            "-sub eax,ebx",
            "-cmp ecx,esi",
            "-jge local:32",
            "-xor ebx,ebx",
            "-xor ecx,ecx",
            "-mov bl,m1[eax+None*1+0x707491]",
            "-mov cl,m1[eax+None*1+palette.c::_modified_rgb_values]",
            "-shl ebx,0x8",
            "-shl ecx,0x10",
            "-or ebx,ecx",
            "-xor ecx,ecx",
            "-mov cl,m1[eax+None*1+0x707492]",
            "-add edx,0x4",
            "-or ecx,ebx",
            "-add eax,0x3",
            "-mov m4[edx+None*1+0x707cbc],ecx",
            "-cmp edx,esi",
            "-jl local:17",
            "+mov m4[esp+None*1+0x0],eax",
            " mov eax,esp",
            " push eax",
            " push 0x5",
            " push 0x400",
            "+mov m4[esp+None*1+0x10],edx",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+mov m4[esp+None*1+0x18],ebx",
            "+call m4[None+None*1+constant:de780c00]",
            " add esp,0xc",
            "-pop esi",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "ddraw.c::set_windows_video_mode_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x473d34",
          "second": "0x471f24",
          "first_instruction_count": 109,
          "second_instruction_count": 109,
          "diff": [
            "--- 0x473d34",
            "+++ 0x471f24",
            "@@ -20,10 +20,10 @@",
            " push 0x400",
            " mov ecx,m4[None+None*1+start.c::_main_window]",
            " push ecx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " cmp ebx,0x4",
            " ja local:96",
            "-jmp m4[None+ebx*4+fxpoly1.c::fade_the_grey_map_+0x354]",
            "+jmp m4[None+ebx*4+polygon.c::fill_translucent_heat_hazed_polygon_+0x24]",
            " mov esi,0x1",
            " mov edi,m4[None+None*1+ddraw.c::_windows_320_240]",
            " mov m4[None+None*1+vesabios.c::_vesa_double_buffer],esi",
            "@@ -47,7 +47,7 @@",
            " push 0x400",
            " mov ebp,m4[None+None*1+start.c::_main_window]",
            " push ebp",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " cmp m4[None+None*1+ddraw.c::_windows_window],0x0",
            " jne local:53",
            " call start.c::set_window_screen_"
          ]
        },
        {
          "symbol": "ddraw.c::store_windows_mouse_pointer_background_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x475164",
          "second": "0x473300",
          "first_instruction_count": 197,
          "second_instruction_count": 197,
          "diff": [
            "--- 0x475164",
            "+++ 0x473300",
            "@@ -94,9 +94,9 @@",
            " mov edx,m4[eax+None*1+0x0]",
            " push eax",
            " call m4[edx+None*1+0x64]",
            "-mov edx,m4[None+None*1+0x725274]",
            "+mov edx,m4[None+None*1+0x70fccc]",
            " mov m4[esp+None*1+0x8],edx",
            "-mov edx,m4[None+None*1+0x725288]",
            "+mov edx,m4[None+None*1+0x70fce0]",
            " mov m4[esp+None*1+0x18],edx",
            " test eax,eax",
            " jne local:49",
            "@@ -177,9 +177,9 @@",
            " mov edx,m4[eax+None*1+0x0]",
            " push eax",
            " call m4[edx+None*1+0x64]",
            "-mov edx,m4[None+None*1+0x7250b0]",
            "+mov edx,m4[None+None*1+0x70fb80]",
            " mov m4[esp+None*1+0x8],edx",
            "-mov edx,m4[None+None*1+0x7250c4]",
            "+mov edx,m4[None+None*1+0x70fb94]",
            " jmp local:99",
            " push 0x0",
            " mov eax,m4[None+None*1+ddraw.c::_primary_surface]"
          ]
        },
        {
          "symbol": "ddraw.c::wait_for_windows_vertical_retrace_",
          "source": "E:\\library\\graphics\\ddraw.c",
          "first": "0x475120",
          "second": "0x4732bc",
          "first_instruction_count": 11,
          "second_instruction_count": 11,
          "diff": [
            "--- 0x475120",
            "+++ 0x4732bc",
            "@@ -5,7 +5,7 @@",
            " push 0x400",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " pop edx",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "debrief.c::debrief_check_for_extra_objects_",
          "source": "E:\\apache\\source\\menus\\debrief\\debrief.c",
          "first": "0x413e7c",
          "second": "0x4141fc",
          "first_instruction_count": 54,
          "second_instruction_count": 54,
          "diff": [
            "--- 0x413e7c",
            "+++ 0x4141fc",
            "@@ -13,7 +13,7 @@",
            " imul ecx,esi,0x1800",
            " mov ebx,edi",
            " add ecx,ebp",
            "-mov eax,m4[ecx+None*1+0x5bc910]",
            "+mov eax,m4[ecx+None*1+0x5af920]",
            " test eax,eax",
            " jne local:38",
            " add ecx,0x4"
          ]
        },
        {
          "symbol": "debrief.c::debrief_check_for_keep_objects_",
          "source": "E:\\apache\\source\\menus\\debrief\\debrief.c",
          "first": "0x413d3c",
          "second": "0x4140bc",
          "first_instruction_count": 57,
          "second_instruction_count": 57,
          "diff": [
            "--- 0x413d3c",
            "+++ 0x4140bc",
            "@@ -13,7 +13,7 @@",
            " imul ecx,esi,0x1800",
            " mov ebx,edi",
            " add ecx,ebp",
            "-mov eax,m4[ecx+None*1+0x5bc900]",
            "+mov eax,m4[ecx+None*1+0x5af910]",
            " test eax,eax",
            " jne local:38",
            " add ecx,0x4"
          ]
        },
        {
          "symbol": "debrief.c::debrief_count_object_kills_",
          "source": "E:\\apache\\source\\menus\\debrief\\debrief.c",
          "first": "0x4131c4",
          "second": "0x413544",
          "first_instruction_count": 175,
          "second_instruction_count": 175,
          "diff": [
            "--- 0x4131c4",
            "+++ 0x413544",
            "@@ -96,11 +96,11 @@",
            " call debrief.c::get_destroyer_",
            " jmp local:37",
            " ja local:100",
            "-inc m4[eax+None*1+0x51ff20]",
            "+inc m4[eax+None*1+0x511aa8]",
            " jmp local:54",
            " cmp ebx,0x3",
            " jne local:54",
            "-inc m4[eax+None*1+0x523cb8]",
            "+inc m4[eax+None*1+0x515840]",
            " jmp local:48",
            " cmp esi,0x9",
            " jne local:54",
            "@@ -147,11 +147,11 @@",
            " call debrief.c::get_destroyer_",
            " jmp local:122",
            " ja local:151",
            "-inc m4[eax+None*1+0x51ff20]",
            "+inc m4[eax+None*1+0x511aa8]",
            " jmp local:54",
            " cmp esi,0x3",
            " jne local:54",
            "-inc m4[eax+None*1+0x523cb8]",
            "+inc m4[eax+None*1+0x515840]",
            " mov edi,m4[None+None*1+drone.c::_user_drone]",
            " cmp edi,m4[ecx+None*1+0x8]",
            " jne local:54",
            "@@ -164,12 +164,12 @@",
            " add m4[edi+eax*1+debrief.c::_debrief_count],edx",
            " xor edx,edx",
            " mov m4[ecx+None*1+debrief.c::_debrief_count],edx",
            "-mov edx,m4[ecx+None*1+0x51ff20]",
            "-add m4[edi+eax*1+0x51ff20],edx",
            "+mov edx,m4[ecx+None*1+0x511aa8]",
            "+add m4[edi+eax*1+0x511aa8],edx",
            " xor edx,edx",
            "-mov m4[ecx+None*1+0x51ff20],edx",
            "-mov edx,m4[ecx+None*1+0x523cb8]",
            "-add m4[edi+eax*1+0x523cb8],edx",
            "+mov m4[ecx+None*1+0x511aa8],edx",
            "+mov edx,m4[ecx+None*1+0x515840]",
            "+add m4[edi+eax*1+0x515840],edx",
            " xor eax,eax",
            "-mov m4[ecx+None*1+0x523cb8],eax",
            "+mov m4[ecx+None*1+0x515840],eax",
            " jmp local:74"
          ]
        },
        {
          "symbol": "debrief.c::debrief_final_position_",
          "source": "E:\\apache\\source\\menus\\debrief\\debrief.c",
          "first": "0x413ddc",
          "second": "0x41415c",
          "first_instruction_count": 60,
          "second_instruction_count": 60,
          "diff": [
            "--- 0x413ddc",
            "+++ 0x41415c",
            "@@ -43,7 +43,7 @@",
            " mov edx,ecx",
            " mov m1[None+None*1+debrief.c::_mission_aborted],ah",
            " mov eax,ebx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " cmp ebp,eax",
            " jg local:49",
            " mov m1[None+None*1+debrief.c::_landed_in_enemy],0x1"
          ]
        },
        {
          "symbol": "debrief.c::display_debrief_count_",
          "source": "E:\\apache\\source\\menus\\debrief\\debrief.c",
          "first": "0x413464",
          "second": "0x4137e4",
          "first_instruction_count": 148,
          "second_instruction_count": 148,
          "diff": [
            "--- 0x413464",
            "+++ 0x4137e4",
            "@@ -62,7 +62,7 @@",
            " call debrief.c::add_explanation_",
            " add esp,0x4",
            " mov m4[esp+None*1+0x10],0x1",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[esi+eax*1+0x0]",
            " add eax,0x58",
            " push eax"
          ]
        },
        {
          "symbol": "debrief.c::initialise_debrief_",
          "source": "E:\\apache\\source\\menus\\debrief\\debrief.c",
          "first": "0x412860",
          "second": "0x412be0",
          "first_instruction_count": 106,
          "second_instruction_count": 106,
          "diff": [
            "--- 0x412860",
            "+++ 0x412be0",
            "@@ -26,77 +26,77 @@",
            " mov eax,0x198",
            " xor edx,edx",
            " mov edi,0x111",
            "-mov m4[None+None*1+0x51ad34],edx",
            "-mov m4[None+None*1+0x51af40],edx",
            "-mov m4[None+None*1+0x51ad4c],edx",
            "-mov m4[None+None*1+0x51af34],edx",
            "-mov m4[None+None*1+0x51ad64],edx",
            "-mov m4[None+None*1+0x51ad70],edx",
            "-mov m4[None+None*1+0x51ae98],edx",
            "+mov m4[None+None*1+0x51960c],edx",
            "+mov m4[None+None*1+0x519818],edx",
            "+mov m4[None+None*1+0x519624],edx",
            "+mov m4[None+None*1+0x51980c],edx",
            "+mov m4[None+None*1+0x51963c],edx",
            "+mov m4[None+None*1+0x519648],edx",
            "+mov m4[None+None*1+0x519770],edx",
            " mov m4[None+None*1+debrief.c::_debrief_collection],edx",
            "-mov m4[None+None*1+0x51ae9c],ecx",
            "-mov m4[None+None*1+0x51adb8],ebx",
            "-mov m4[None+None*1+0x51af74],esi",
            "-mov m4[None+None*1+0x51af78],esi",
            "-mov m4[None+None*1+0x51af7c],esi",
            "-mov m4[None+None*1+0x51af80],esi",
            "-mov m4[None+None*1+0x51af84],esi",
            "-mov m4[None+None*1+0x51af88],esi",
            "-mov m4[None+None*1+0x51af8c],esi",
            "-mov m4[None+None*1+0x51af90],esi",
            "-mov m4[None+None*1+0x51af94],esi",
            "-mov m4[None+None*1+0x51af98],esi",
            "-mov m4[None+None*1+0x51af9c],esi",
            "-mov m4[None+None*1+0x51afa0],esi",
            "-mov m4[None+None*1+0x51afe4],esi",
            "-mov m4[None+None*1+0x51afe8],esi",
            "-mov m4[None+None*1+0x51afec],esi",
            "-mov m4[None+None*1+0x51aff0],esi",
            "-mov m4[None+None*1+0x51b27c],ebp",
            "-mov m4[None+None*1+0x51b280],ebp",
            "-mov m4[None+None*1+0x51b284],ebp",
            "-mov m4[None+None*1+0x51b288],ebp",
            "-mov m4[None+None*1+0x51b28c],ebp",
            "-mov m4[None+None*1+0x51b290],ebp",
            "-mov m4[None+None*1+0x51b294],ebp",
            "-mov m4[None+None*1+0x51b298],ebp",
            "-mov m4[None+None*1+0x51b29c],ebp",
            "-mov m4[None+None*1+0x51b2a0],ebp",
            "-mov m4[None+None*1+0x51b2a4],ebp",
            "-mov m4[None+None*1+0x51b2a8],ebp",
            "-mov m4[None+None*1+0x51b2ac],ebp",
            "-mov m4[None+None*1+0x51b2b0],ebp",
            "-mov m4[None+None*1+0x51b2b4],ebp",
            "-mov m4[None+None*1+0x51b2b8],ebp",
            "-mov m4[None+None*1+0x51b2bc],ebp",
            "-mov m4[None+None*1+0x51b2c0],ebp",
            "-mov m4[None+None*1+0x51b2c4],ebp",
            "-mov m4[None+None*1+0x51b2d8],ebp",
            "-mov m4[None+None*1+0x51b2dc],ebp",
            "-mov m4[None+None*1+0x51b2e0],ebp",
            "-mov m4[None+None*1+0x51b2e4],ebp",
            "-mov m4[None+None*1+0x51b2e8],ebp",
            "-mov m4[None+None*1+0x51b2ec],ebp",
            "-mov m4[None+None*1+0x51b2f0],ebp",
            "-mov m4[None+None*1+0x51b2f4],ebp",
            "-mov m4[None+None*1+0x51b2f8],ebp",
            "-mov m4[None+None*1+0x51b2fc],ebp",
            "-mov m4[None+None*1+0x51b370],eax",
            "-mov m4[None+None*1+0x51ad98],edi",
            "+mov m4[None+None*1+0x519774],ecx",
            "+mov m4[None+None*1+0x519690],ebx",
            "+mov m4[None+None*1+0x51984c],esi",
            "+mov m4[None+None*1+0x519850],esi",
            "+mov m4[None+None*1+0x519854],esi",
            "+mov m4[None+None*1+0x519858],esi",
            "+mov m4[None+None*1+0x51985c],esi",
            "+mov m4[None+None*1+0x519860],esi",
            "+mov m4[None+None*1+0x519864],esi",
            "+mov m4[None+None*1+0x519868],esi",
            "+mov m4[None+None*1+0x51986c],esi",
            "+mov m4[None+None*1+0x519870],esi",
            "+mov m4[None+None*1+0x519874],esi",
            "+mov m4[None+None*1+0x519878],esi",
            "+mov m4[None+None*1+0x5198bc],esi",
            "+mov m4[None+None*1+0x5198c0],esi",
            "+mov m4[None+None*1+0x5198c4],esi",
            "+mov m4[None+None*1+0x5198c8],esi",
            "+mov m4[None+None*1+0x519b54],ebp",
            "+mov m4[None+None*1+0x519b58],ebp",
            "+mov m4[None+None*1+0x519b5c],ebp",
            "+mov m4[None+None*1+0x519b60],ebp",
            "+mov m4[None+None*1+0x519b64],ebp",
            "+mov m4[None+None*1+0x519b68],ebp",
            "+mov m4[None+None*1+0x519b6c],ebp",
            "+mov m4[None+None*1+0x519b70],ebp",
            "+mov m4[None+None*1+0x519b74],ebp",
            "+mov m4[None+None*1+0x519b78],ebp",
            "+mov m4[None+None*1+0x519b7c],ebp",
            "+mov m4[None+None*1+0x519b80],ebp",
            "+mov m4[None+None*1+0x519b84],ebp",
            "+mov m4[None+None*1+0x519b88],ebp",
            "+mov m4[None+None*1+0x519b8c],ebp",
            "+mov m4[None+None*1+0x519b90],ebp",
            "+mov m4[None+None*1+0x519b94],ebp",
            "+mov m4[None+None*1+0x519b98],ebp",
            "+mov m4[None+None*1+0x519b9c],ebp",
            "+mov m4[None+None*1+0x519bb0],ebp",
            "+mov m4[None+None*1+0x519bb4],ebp",
            "+mov m4[None+None*1+0x519bb8],ebp",
            "+mov m4[None+None*1+0x519bbc],ebp",
            "+mov m4[None+None*1+0x519bc0],ebp",
            "+mov m4[None+None*1+0x519bc4],ebp",
            "+mov m4[None+None*1+0x519bc8],ebp",
            "+mov m4[None+None*1+0x519bcc],ebp",
            "+mov m4[None+None*1+0x519bd0],ebp",
            "+mov m4[None+None*1+0x519bd4],ebp",
            "+mov m4[None+None*1+0x519c48],eax",
            "+mov m4[None+None*1+0x519670],edi",
            " mov edx,0x99",
            " mov ebx,0x10b",
            " mov ebp,0xd8",
            " mov eax,0xb",
            "-mov m4[None+None*1+0x51af68],edx",
            "-mov m4[None+None*1+0x51af6c],edx",
            "-mov m4[None+None*1+0x51b120],ebx",
            "-mov m4[None+None*1+0x51b470],ebx",
            "-mov m4[None+None*1+0x51b3a8],ebp",
            "-mov m4[None+None*1+0x51b104],eax",
            "-mov m4[None+None*1+0x51adf8],eax",
            "-mov m4[None+None*1+0x51ada4],eax",
            "-mov m4[None+None*1+0x51b00c],eax",
            "-mov m4[None+None*1+0x51b014],eax",
            "+mov m4[None+None*1+0x519840],edx",
            "+mov m4[None+None*1+0x519844],edx",
            "+mov m4[None+None*1+0x5199f8],ebx",
            "+mov m4[None+None*1+0x519d48],ebx",
            "+mov m4[None+None*1+0x519c80],ebp",
            "+mov m4[None+None*1+0x5199dc],eax",
            "+mov m4[None+None*1+0x5196d0],eax",
            "+mov m4[None+None*1+0x51967c],eax",
            "+mov m4[None+None*1+0x5198e4],eax",
            "+mov m4[None+None*1+0x5198ec],eax",
            " pop ebp",
            " pop edi",
            " pop esi"
          ]
        },
        {
          "symbol": "debug.c::display_debug_information_",
          "source": "E:\\apache\\source\\debug.c",
          "first": "0x4024e8",
          "second": "0x4024e8",
          "first_instruction_count": 72,
          "second_instruction_count": 72,
          "diff": [
            "--- 0x4024e8",
            "+++ 0x4024e8",
            "@@ -25,17 +25,17 @@",
            " push edx",
            " push ecx",
            " push ebx",
            "-mov ecx,m4[None+None*1+fx3dobbf.c::_num_behind_objects]",
            "+mov ecx,m4[None+None*1+3dobjbuf.c::_num_behind_objects]",
            " push ecx",
            "-mov ebx,m4[None+None*1+fx3dobbf.c::_num_buffered_objects]",
            "+mov ebx,m4[None+None*1+3dobjbuf.c::_num_buffered_objects]",
            " push ebx",
            "-mov esi,m4[None+None*1+fxpoly1.c::_polygons_per_frame]",
            "+mov esi,m4[None+None*1+polygon.c::_polygons_per_frame]",
            " push esi",
            "-mov edi,m4[None+None*1+0x5080b4]",
            "+mov edi,m4[None+None*1+0x4fb0b4]",
            " push edi",
            " mov ebp,m4[None+None*1+gamedata.c::_average_frame_rate]",
            " push ebp",
            "-mov eax,m4[None+None*1+0x5080c4]",
            "+mov eax,m4[None+None*1+0x4fb0c4]",
            " push eax",
            " mov edx,m4[None+None*1+gamedata.c::_frame_rate]",
            " push edx"
          ]
        },
        {
          "symbol": "debug.c::initialise_debug_information_",
          "source": "E:\\apache\\source\\debug.c",
          "first": "0x402160",
          "second": "0x402160",
          "first_instruction_count": 187,
          "second_instruction_count": 187,
          "diff": [
            "--- 0x402160",
            "+++ 0x402160",
            "@@ -14,7 +14,7 @@",
            " mov edx,0x8",
            " mov eax,text:'delta_time ... '",
            " call monitor.c::add_monitor_",
            "-mov ebx,fxpoly1.c::_polygons_per_frame",
            "+mov ebx,polygon.c::_polygons_per_frame",
            " mov edx,0x2",
            " mov eax,text:'polygons_per_frame ... '",
            " call monitor.c::add_monitor_"
          ]
        },
        {
          "symbol": "debug.c::set_visual_configuration_",
          "source": "E:\\apache\\source\\debug.c",
          "first": "0x4026e8",
          "second": "0x4026e8",
          "first_instruction_count": 270,
          "second_instruction_count": 280,
          "diff": [
            "--- 0x4026e8",
            "+++ 0x4026e8",
            "@@ -1,270 +1,280 @@",
            " push ebx",
            "-push ecx",
            " push edx",
            "+push esi",
            " push edi",
            " push ebp",
            "+mov edx,m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan]",
            " cmp eax,0x100a",
            "-jae local:19",
            "+jae local:21",
            " cmp eax,0x1005",
            "-jae local:89",
            "+jae local:96",
            " cmp eax,0x1003",
            "-jae local:113",
            "+jae local:112",
            " cmp eax,0x1002",
            "-je local:125",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-ja local:31",
            "+je local:123",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret ",
            "+ja local:34",
            " mov eax,m4[None+None*1+constant:03000000]",
            " cmp eax,0x3",
            "-ja local:13",
            "+ja local:14",
            " jmp m4[None+eax*4+debug.c::screen_shot_+0x8]",
            " mov m4[None+None*1+constant:03000000],0x2",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            " pop ebx",
            " ret ",
            " cmp eax,0x103e",
            "-jae local:48",
            "+jae local:52",
            " cmp eax,0x103b",
            "-jae local:79",
            "+jae local:85",
            " cmp eax,0x100b",
            "-jne local:13",
            "+jne local:14",
            " mov eax,m4[None+None*1+constant:03000000]",
            " cmp eax,0x3",
            "-ja local:13",
            "+ja local:14",
            " jmp m4[None+eax*4+debug.c::screen_shot_+0x18]",
            " mov m4[None+None*1+constant:03000000],0x1",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-jbe local:230",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret ",
            "+jbe local:236",
            " cmp eax,0x1040",
            "-jb local:248",
            "-jbe local:255",
            "+jb local:255",
            "+jbe local:263",
            " cmp eax,0x1041",
            "-ja local:65",
            "+ja local:70",
            " mov eax,m4[None+None*1+constant:abaaaaea]",
            " sub eax,0x38e38e4",
            " cmp eax,0xc0000000",
            "-jle local:262",
            "+jle local:271",
            " mov m4[None+None*1+constant:abaaaaea],eax",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            " pop ebx",
            " ret ",
            " cmp eax,0x1042",
            "-jne local:13",
            "+jne local:14",
            " mov eax,m4[None+None*1+constant:abaaaaea]",
            " add eax,0x38e38e4",
            " test eax,eax",
            "-jl local:72",
            "+jl local:77",
            " xor eax,eax",
            " mov m4[None+None*1+constant:abaaaaea],eax",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret ",
            "+jbe local:219",
            "+cmp eax,0x103c",
            "+ja local:228",
            "+mov m4[None+None*1+constant:02000000],0x1",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret ",
            "+jbe local:145",
            "+cmp eax,0x1007",
            "+jb local:154",
            "+jbe local:164",
            "+cmp eax,0x1008",
            "+ja local:174",
            "+mov edi,0x7",
            "+mov edx,edi",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],edi",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret ",
            "+ja local:133",
            "+mov ebx,0x2",
            "+mov edx,ebx",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],ebx",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret ",
            "+mov esi,0x1",
            "+mov edx,esi",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],esi",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret ",
            "+push ecx",
            "+mov ecx,0x3",
            "+mov edx,ecx",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],ecx",
            " pop ecx",
            "-pop ebx",
            "-ret ",
            "-jbe local:215",
            "-cmp eax,0x103c",
            "-ja local:223",
            "-mov m4[None+None*1+constant:02000000],0x1",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-jbe local:146",
            "-cmp eax,0x1007",
            "-jb local:157",
            "-jbe local:168",
            "-cmp eax,0x1008",
            "-jbe local:181",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret ",
            "+mov edx,0x4",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],edx",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret ",
            "+mov eax,0x5",
            "+mov edx,eax",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],eax",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret ",
            "+mov ebp,0x6",
            "+mov edx,ebp",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],ebp",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret ",
            " mov eax,m4[None+None*1+constant:0a000000]",
            " shl eax,0x1e",
            "-mov dh,m1[None+None*1+constant:0a]",
            "+mov bh,m1[None+None*1+constant:0a]",
            " shr eax,0x1f",
            "-and dh,0xfd",
            "+and bh,0xfd",
            " xor al,0x1",
            "-mov m1[None+None*1+constant:0a],dh",
            "+mov m1[None+None*1+constant:0a],bh",
            " and eax,0x1",
            "-mov edx,m4[None+None*1+constant:0a000000]",
            "+mov esi,m4[None+None*1+constant:0a000000]",
            " add eax,eax",
            "-or edx,eax",
            "-mov m4[None+None*1+constant:0a000000],edx",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-ja local:135",
            "-mov edi,0x2",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],edi",
            "-mov eax,edi",
            "-mov m4[None+None*1+fxgloop.c::_do_not_exceed_map_sector_scan],edi",
            "-call fxpoly1.c::set_max_fogging_range_",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov eax,0x1",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],eax",
            "-mov m4[None+None*1+fxgloop.c::_do_not_exceed_map_sector_scan],eax",
            "-call fxpoly1.c::set_max_fogging_range_",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov ebx,0x3",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],ebx",
            "-mov eax,ebx",
            "-mov m4[None+None*1+fxgloop.c::_do_not_exceed_map_sector_scan],ebx",
            "-call fxpoly1.c::set_max_fogging_range_",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov edx,0x4",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],edx",
            "-mov eax,edx",
            "-mov m4[None+None*1+fxgloop.c::_do_not_exceed_map_sector_scan],edx",
            "-call fxpoly1.c::set_max_fogging_range_",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov ebp,0x5",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],ebp",
            "-mov eax,ebp",
            "-mov m4[None+None*1+fxgloop.c::_do_not_exceed_map_sector_scan],ebp",
            "-call fxpoly1.c::set_max_fogging_range_",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-push esi",
            "-mov esi,0x6",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],esi",
            "-mov eax,esi",
            "-mov m4[None+None*1+fxgloop.c::_do_not_exceed_map_sector_scan],esi",
            "-call fxpoly1.c::set_max_fogging_range_",
            "-pop esi",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov ecx,0x7",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],ecx",
            "-mov eax,ecx",
            "-mov m4[None+None*1+fxgloop.c::_do_not_exceed_map_sector_scan],ecx",
            "-call fxpoly1.c::set_max_fogging_range_",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "+or esi,eax",
            "+mov m4[None+None*1+constant:0a000000],esi",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            " pop ebx",
            " ret ",
            " mov m4[None+None*1+constant:03000000],0x3",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-xor edi,edi",
            "-mov m4[None+None*1+constant:03000000],edi",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-xor ecx,ecx",
            "-mov m4[None+None*1+constant:03000000],ecx",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+constant:02000000],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret ",
            "+xor eax,eax",
            "+mov m4[None+None*1+constant:03000000],eax",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret ",
            "+xor esi,esi",
            "+mov m4[None+None*1+constant:03000000],esi",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret ",
            "+xor eax,eax",
            "+mov m4[None+None*1+constant:02000000],eax",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            " pop ebx",
            " ret ",
            " mov m4[None+None*1+constant:02000000],0x2",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            " pop ebx",
            " ret ",
            " mov eax,m4[None+None*1+constant:0a000000]",
            " shl eax,0x1c",
            "-mov dl,m1[None+None*1+constant:0a]",
            "+mov bl,m1[None+None*1+constant:0a]",
            " shr eax,0x1f",
            "-and dl,0xf7",
            "+and bl,0xf7",
            " xor al,0x1",
            "-mov m1[None+None*1+constant:0a],dl",
            "+mov m1[None+None*1+constant:0a],bl",
            " and eax,0x1",
            "-mov ebx,m4[None+None*1+constant:0a000000]",
            "+mov esi,m4[None+None*1+constant:0a000000]",
            " shl eax,0x3",
            "-or ebx,eax",
            "-mov m4[None+None*1+constant:0a000000],ebx",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "+or esi,eax",
            "+mov m4[None+None*1+constant:0a000000],esi",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            " pop ebx",
            " ret ",
            " sub m4[None+None*1+constant:00000000],0x38e38e4",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            " pop ebx",
            " ret ",
            " add m4[None+None*1+constant:00000000],0x38e38e4",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            " pop ebx",
            " ret ",
            " mov eax,0xc0000000",
            " mov m4[None+None*1+constant:abaaaaea],eax",
            "-pop ebp",
            "-pop edi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "+mov m4[None+None*1+gameloop.c::_do_not_exceed_map_sector_scan],edx",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ebx",
            "+ret "
          ]
        },
        {
          "symbol": "debuglog.c::debug_log_fatal_long_",
          "source": "E:\\library\\debug\\debuglog.c",
          "first": "0x46daec",
          "second": "0x46dcac",
          "first_instruction_count": 89,
          "second_instruction_count": 89,
          "diff": [
            "--- 0x46daec",
            "+++ 0x46dcac",
            "@@ -58,7 +58,7 @@",
            " mov esi,0x1",
            " push edi",
            " mov m4[None+None*1+thread.c::_end_threading],esi",
            "-call m4[None+None*1+constant:d8490d00]",
            "+call m4[None+None*1+constant:a0780c00]",
            " mov eax,0xa",
            " call exit::exit_",
            " add esp,0x68",
            "@@ -76,7 +76,7 @@",
            " mov ebx,0x1",
            " push esi",
            " mov m4[None+None*1+thread.c::_end_threading],ebx",
            "-call m4[None+None*1+constant:d8490d00]",
            "+call m4[None+None*1+constant:a0780c00]",
            " mov eax,0xff",
            " call exit::exit_",
            " add esp,0x68"
          ]
        },
        {
          "symbol": "debuglog.c::install_debug_log_",
          "source": "E:\\library\\debug\\debuglog.c",
          "first": "0x46da60",
          "second": "0x46dc20",
          "first_instruction_count": 50,
          "second_instruction_count": 50,
          "diff": [
            "--- 0x46da60",
            "+++ 0x46dc20",
            "@@ -6,7 +6,7 @@",
            " push 0x1",
            " push 0x0",
            " push 0x0",
            "-call m4[None+None*1+constant:044b0d00]",
            "+call m4[None+None*1+constant:e2790c00]",
            " mov esi,m4[None+None*1+argcv::__argv]",
            " mov edi,debuglog.c::_debug_filename",
            " mov esi,m4[esi+None*1+0x0]"
          ]
        },
        {
          "symbol": "destroy.c::add_destroy_marker_",
          "source": "E:\\apache\\source\\menus\\missions\\destroy.c",
          "first": "0x422fac",
          "second": "0x42332c",
          "first_instruction_count": 17,
          "second_instruction_count": 17,
          "diff": [
            "--- 0x422fac",
            "+++ 0x42332c",
            "@@ -9,8 +9,8 @@",
            " pop ebx",
            " ret ",
            " inc ebx",
            "-mov m4[None+ebx*4+0x53856c],eax",
            "-mov m4[None+ebx*4+0x53876c],edx",
            "+mov m4[None+ebx*4+0x52b57c],eax",
            "+mov m4[None+ebx*4+0x52b77c],edx",
            " mov m4[None+None*1+destroy.c::_destroy_count],ebx",
            " pop ecx",
            " pop ebx"
          ]
        },
        {
          "symbol": "dieflag.c::set_die_flag_",
          "source": "E:\\apache\\source\\dieflag.c",
          "first": "0x402a28",
          "second": "0x402a68",
          "first_instruction_count": 67,
          "second_instruction_count": 67,
          "diff": [
            "--- 0x402a28",
            "+++ 0x402a68",
            "@@ -13,11 +13,11 @@",
            " test dl,dl",
            " jne local:19",
            " xor esi,esi",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],esi",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],esi",
            " pop esi",
            " pop edx",
            " ret ",
            "-call fxgloop.c::two_player_exit_gameloop_",
            "+call gameloop.c::two_player_exit_gameloop_",
            " pop esi",
            " pop edx",
            " ret ",
            "@@ -48,13 +48,13 @@",
            " ret ",
            " push ebx",
            " xor ebx,ebx",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],ebx",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],ebx",
            " pop ebx",
            " mov m4[None+None*1+dieflag.c::_die_flag],eax",
            " cmp m1[None+None*1+modemprf.c::_rods_connect],0x0",
            " jne local:19",
            " xor esi,esi",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],esi",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],esi",
            " pop esi",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "dinfo.c::get_drone_header_aircraft_type_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x429814",
          "second": "0x429b94",
          "first_instruction_count": 8,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x429814",
            "+++ 0x429b94",
            "@@ -3,6 +3,6 @@",
            " mov edx,eax",
            " shl eax,0x4",
            " sub eax,edx",
            "-mov eax,m4[eax+None*1+0x566938]",
            "+mov eax,m4[eax+None*1+0x559948]",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "dinfo.c::get_drone_header_class_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x429800",
          "second": "0x429b80",
          "first_instruction_count": 8,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x429800",
            "+++ 0x429b80",
            "@@ -3,6 +3,6 @@",
            " mov edx,eax",
            " shl eax,0x4",
            " sub eax,edx",
            "-mov eax,m4[eax+None*1+0x566934]",
            "+mov eax,m4[eax+None*1+0x559944]",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "dinfo.c::get_drone_header_main_weapon_type_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x4298bc",
          "second": "0x429c3c",
          "first_instruction_count": 9,
          "second_instruction_count": 9,
          "diff": [
            "--- 0x4298bc",
            "+++ 0x429c3c",
            "@@ -3,7 +3,7 @@",
            " mov edx,eax",
            " shl eax,0x4",
            " sub eax,edx",
            "-mov edx,m4[eax+None*1+0x566968]",
            "-mov eax,m4[eax+edx*4+0x566940]",
            "+mov edx,m4[eax+None*1+0x559978]",
            "+mov eax,m4[eax+edx*4+0x559950]",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "dinfo.c::get_drone_header_ship_type_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x429828",
          "second": "0x429ba8",
          "first_instruction_count": 8,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x429828",
            "+++ 0x429ba8",
            "@@ -3,6 +3,6 @@",
            " mov edx,eax",
            " shl eax,0x4",
            " sub eax,edx",
            "-mov eax,m4[eax+None*1+0x56693c]",
            "+mov eax,m4[eax+None*1+0x55994c]",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "dinfo.c::get_drone_header_weapon_initial_load_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x429854",
          "second": "0x429bd4",
          "first_instruction_count": 10,
          "second_instruction_count": 10,
          "diff": [
            "--- 0x429854",
            "+++ 0x429bd4",
            "@@ -5,6 +5,6 @@",
            " shl eax,0x4",
            " sub eax,edx",
            " mov edx,eax",
            "-mov eax,m4[edx+ecx*4+0x566954]",
            "+mov eax,m4[edx+ecx*4+0x559964]",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "dinfo.c::get_drone_header_weapon_type_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x42983c",
          "second": "0x429bbc",
          "first_instruction_count": 10,
          "second_instruction_count": 10,
          "diff": [
            "--- 0x42983c",
            "+++ 0x429bbc",
            "@@ -5,6 +5,6 @@",
            " shl eax,0x4",
            " sub eax,edx",
            " mov edx,eax",
            "-mov eax,m4[edx+ecx*4+0x566940]",
            "+mov eax,m4[edx+ecx*4+0x559950]",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "dinfo.c::initialise_drone_base_data_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x429a98",
          "second": "0x429e18",
          "first_instruction_count": 399,
          "second_instruction_count": 399,
          "diff": [
            "--- 0x429a98",
            "+++ 0x429e18",
            "@@ -285,114 +285,114 @@",
            " mov edx,0x3e3",
            " mov eax,0xd6",
            " call dinfo.c::like_base_",
            "-mov ah,m1[None+None*1+0x567128]",
            "-mov dl,m1[None+None*1+0x5675d8]",
            "-mov bl,m1[None+None*1+0x567a88]",
            "-mov cl,m1[None+None*1+0x567ce0]",
            "+mov ah,m1[None+None*1+0x55a138]",
            "+mov dl,m1[None+None*1+0x55a5e8]",
            "+mov bl,m1[None+None*1+0x55aa98]",
            "+mov cl,m1[None+None*1+0x55acf0]",
            " or ah,0x2",
            " or dl,0x2",
            " or bl,0x2",
            " or cl,0x2",
            "-mov m1[None+None*1+0x567128],ah",
            "-mov m1[None+None*1+0x5675d8],dl",
            "-mov m1[None+None*1+0x567a88],bl",
            "-mov m1[None+None*1+0x567ce0],cl",
            "-mov dh,m1[None+None*1+0x5679d4]",
            "-mov bh,m1[None+None*1+0x567b3c]",
            "-mov ch,m1[None+None*1+0x567d94]",
            "-mov al,m1[None+None*1+0x567e48]",
            "+mov m1[None+None*1+0x55a138],ah",
            "+mov m1[None+None*1+0x55a5e8],dl",
            "+mov m1[None+None*1+0x55aa98],bl",
            "+mov m1[None+None*1+0x55acf0],cl",
            "+mov dh,m1[None+None*1+0x55a9e4]",
            "+mov bh,m1[None+None*1+0x55ab4c]",
            "+mov ch,m1[None+None*1+0x55ada4]",
            "+mov al,m1[None+None*1+0x55ae58]",
            " or dh,0x2",
            " or bh,0x2",
            " or ch,0x2",
            " or al,0x2",
            "-mov m1[None+None*1+0x5679d4],dh",
            "-mov m1[None+None*1+0x567b3c],bh",
            "-mov m1[None+None*1+0x567d94],ch",
            "-mov m1[None+None*1+0x567e48],al",
            "-mov ah,m1[None+None*1+0x567efc]",
            "-mov dl,m1[None+None*1+0x568064]",
            "-mov bl,m1[None+None*1+0x5698c4]",
            "-mov cl,m1[None+None*1+0x56993c]",
            "+mov m1[None+None*1+0x55a9e4],dh",
            "+mov m1[None+None*1+0x55ab4c],bh",
            "+mov m1[None+None*1+0x55ada4],ch",
            "+mov m1[None+None*1+0x55ae58],al",
            "+mov ah,m1[None+None*1+0x55af0c]",
            "+mov dl,m1[None+None*1+0x55b074]",
            "+mov bl,m1[None+None*1+0x55c8d4]",
            "+mov cl,m1[None+None*1+0x55c94c]",
            " or ah,0x2",
            " or dl,0x2",
            " or bl,0x2",
            " or cl,0x2",
            "-mov m1[None+None*1+0x567efc],ah",
            "-mov m1[None+None*1+0x568064],dl",
            "-mov m1[None+None*1+0x5698c4],bl",
            "-mov m1[None+None*1+0x56993c],cl",
            "-mov dh,m1[None+None*1+0x56984c]",
            "-mov bh,m1[None+None*1+0x569900]",
            "+mov m1[None+None*1+0x55af0c],ah",
            "+mov m1[None+None*1+0x55b074],dl",
            "+mov m1[None+None*1+0x55c8d4],bl",
            "+mov m1[None+None*1+0x55c94c],cl",
            "+mov dh,m1[None+None*1+0x55c85c]",
            "+mov bh,m1[None+None*1+0x55c910]",
            " or dh,0x2",
            " or bh,0x2",
            "-mov m1[None+None*1+0x56984c],dh",
            "-mov m1[None+None*1+0x569900],bh",
            "-mov al,m1[None+None*1+0x569aa4]",
            "-mov dl,m1[None+None*1+0x569d38]",
            "-mov bl,m1[None+None*1+0x569ea0]",
            "-mov ch,m1[None+None*1+0x5699f0]",
            "+mov m1[None+None*1+0x55c85c],dh",
            "+mov m1[None+None*1+0x55c910],bh",
            "+mov al,m1[None+None*1+0x55cab4]",
            "+mov dl,m1[None+None*1+0x55cd48]",
            "+mov bl,m1[None+None*1+0x55ceb0]",
            "+mov ch,m1[None+None*1+0x55ca00]",
            " or al,0x2",
            " or dl,0x2",
            " or bl,0x2",
            " or ch,0x2",
            "-mov m1[None+None*1+0x569aa4],al",
            "-mov m1[None+None*1+0x569d38],dl",
            "-mov m1[None+None*1+0x569ea0],bl",
            "-mov m1[None+None*1+0x5699f0],ch",
            "-mov ah,m1[None+None*1+0x569c84]",
            "-mov dh,m1[None+None*1+0x575138]",
            "-mov bh,m1[None+None*1+0x56a0bc]",
            "-mov cl,m1[None+None*1+0x56a170]",
            "+mov m1[None+None*1+0x55cab4],al",
            "+mov m1[None+None*1+0x55cd48],dl",
            "+mov m1[None+None*1+0x55ceb0],bl",
            "+mov m1[None+None*1+0x55ca00],ch",
            "+mov ah,m1[None+None*1+0x55cc94]",
            "+mov dh,m1[None+None*1+0x568148]",
            "+mov bh,m1[None+None*1+0x55d0cc]",
            "+mov cl,m1[None+None*1+0x55d180]",
            " or ah,0x2",
            " or dh,0x2",
            " or bh,0x2",
            " or cl,0x2",
            "-mov m1[None+None*1+0x569c84],ah",
            "-mov m1[None+None*1+0x575138],dh",
            "-mov m1[None+None*1+0x56a0bc],bh",
            "-mov m1[None+None*1+0x56a170],cl",
            "-mov ch,m1[None+None*1+0x56a530]",
            "-mov al,m1[None+None*1+0x56af44]",
            "-mov dl,m1[None+None*1+0x56cab0]",
            "-mov bl,m1[None+None*1+0x56d410]",
            "+mov m1[None+None*1+0x55cc94],ah",
            "+mov m1[None+None*1+0x568148],dh",
            "+mov m1[None+None*1+0x55d0cc],bh",
            "+mov m1[None+None*1+0x55d180],cl",
            "+mov ch,m1[None+None*1+0x55d540]",
            "+mov al,m1[None+None*1+0x55df54]",
            "+mov dl,m1[None+None*1+0x55fac0]",
            "+mov bl,m1[None+None*1+0x560420]",
            " or ch,0x2",
            " or al,0x2",
            " or dl,0x2",
            " or bl,0x2",
            "-mov m1[None+None*1+0x56a530],ch",
            "-mov m1[None+None*1+0x56af44],al",
            "-mov m1[None+None*1+0x56cab0],dl",
            "-mov m1[None+None*1+0x56d410],bl",
            "-mov ah,m1[None+None*1+0x56c678]",
            "-mov dh,m1[None+None*1+0x56d2a8]",
            "-mov bh,m1[None+None*1+0x56d500]",
            "-mov cl,m1[None+None*1+0x56d5f0]",
            "+mov m1[None+None*1+0x55d540],ch",
            "+mov m1[None+None*1+0x55df54],al",
            "+mov m1[None+None*1+0x55fac0],dl",
            "+mov m1[None+None*1+0x560420],bl",
            "+mov ah,m1[None+None*1+0x55f688]",
            "+mov dh,m1[None+None*1+0x5602b8]",
            "+mov bh,m1[None+None*1+0x560510]",
            "+mov cl,m1[None+None*1+0x560600]",
            " or ah,0x2",
            " or dh,0x2",
            " or bh,0x2",
            " or cl,0x2",
            "-mov m1[None+None*1+0x56c678],ah",
            "-mov m1[None+None*1+0x56d2a8],dh",
            "-mov m1[None+None*1+0x56d500],bh",
            "-mov m1[None+None*1+0x56d5f0],cl",
            "-mov ch,m1[None+None*1+0x56d71c]",
            "-mov al,m1[None+None*1+0x56dd70]",
            "-mov dl,m1[None+None*1+0x56e478]",
            "-mov bl,m1[None+None*1+0x56ec34]",
            "+mov m1[None+None*1+0x55f688],ah",
            "+mov m1[None+None*1+0x5602b8],dh",
            "+mov m1[None+None*1+0x560510],bh",
            "+mov m1[None+None*1+0x560600],cl",
            "+mov ch,m1[None+None*1+0x56072c]",
            "+mov al,m1[None+None*1+0x560d80]",
            "+mov dl,m1[None+None*1+0x561488]",
            "+mov bl,m1[None+None*1+0x561c44]",
            " or ch,0x2",
            " or al,0x2",
            " or dl,0x2",
            " or bl,0x2",
            "-mov m1[None+None*1+0x56d71c],ch",
            "-mov m1[None+None*1+0x56dd70],al",
            "-mov m1[None+None*1+0x56e478],dl",
            "-mov m1[None+None*1+0x56ec34],bl",
            "-mov ah,m1[None+None*1+0x56e004]",
            "-mov dh,m1[None+None*1+0x56e5e0]",
            "-or ah,0x2",
            "-or dh,0x2",
            "-mov m1[None+None*1+0x56e004],ah",
            "-mov m1[None+None*1+0x56e5e0],dh",
            "+mov m1[None+None*1+0x56072c],ch",
            "+mov m1[None+None*1+0x560d80],al",
            "+mov m1[None+None*1+0x561488],dl",
            "+mov m1[None+None*1+0x561c44],bl",
            "+mov ah,m1[None+None*1+0x561014]",
            "+mov dh,m1[None+None*1+0x5615f0]",
            "+or ah,0x2",
            "+or dh,0x2",
            "+mov m1[None+None*1+0x561014],ah",
            "+mov m1[None+None*1+0x5615f0],dh",
            " pop edx",
            " pop ecx",
            " pop ebx"
          ]
        },
        {
          "symbol": "dinfo.c::initialise_drone_headers_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x429780",
          "second": "0x429b00",
          "first_instruction_count": 38,
          "second_instruction_count": 38,
          "diff": [
            "--- 0x429780",
            "+++ 0x429b00",
            "@@ -5,11 +5,11 @@",
            " mov ebx,0x6",
            " mov ah,m1[None+None*1+dinfo.c::_drone_headers]",
            " xor edx,edx",
            "-mov m4[None+None*1+0x566938],ecx",
            "+mov m4[None+None*1+0x559948],ecx",
            " and ah,0xfc",
            "-mov m4[None+None*1+0x566934],edx",
            "-mov m4[None+None*1+0x56693c],ebx",
            "-mov m4[None+None*1+0x566968],edx",
            "+mov m4[None+None*1+0x559944],edx",
            "+mov m4[None+None*1+0x55994c],ebx",
            "+mov m4[None+None*1+0x559978],edx",
            " mov ecx,dinfo.c::_drone_headers",
            " mov m1[None+None*1+dinfo.c::_drone_headers],ah",
            " lea eax,m4[ecx+None*1+0x14]"
          ]
        },
        {
          "symbol": "dinfo.c::initialise_drone_weapons_data_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x42a22c",
          "second": "0x42a5ac",
          "first_instruction_count": 371,
          "second_instruction_count": 371,
          "diff": [
            "--- 0x42a22c",
            "+++ 0x42a5ac",
            "@@ -10,9 +10,9 @@",
            " push 0x0",
            " mov eax,0xd0",
            " mov esi,0x2",
            "-mov m4[None+None*1+0x569864],edx",
            "-mov m4[None+None*1+0x569878],ecx",
            "-mov m4[None+None*1+0x569884],ebx",
            "+mov m4[None+None*1+0x55c874],edx",
            "+mov m4[None+None*1+0x55c888],ecx",
            "+mov m4[None+None*1+0x55c894],ebx",
            " push edx",
            " mov ecx,0x17",
            " xor ebx,ebx",
            "@@ -29,15 +29,15 @@",
            " call dinfo.c::set_drone_weapon_loads_",
            " mov ecx,0x17",
            " mov ebx,0x31",
            "-mov m4[None+None*1+0x569a28],esi",
            "+mov m4[None+None*1+0x55ca38],esi",
            " xor eax,eax",
            "-mov m4[None+None*1+0x56af54],edi",
            "+mov m4[None+None*1+0x55df64],edi",
            " push eax",
            " xor edx,edx",
            "-mov m4[None+None*1+0x56af7c],eax",
            "+mov m4[None+None*1+0x55df8c],eax",
            " push 0x26",
            " mov eax,0x13c",
            "-mov m4[None+None*1+0x56af68],ebp",
            "+mov m4[None+None*1+0x55df78],ebp",
            " call dinfo.c::set_drone_weapon_types_",
            " push 0x0",
            " mov ebx,0x4",
            "@@ -52,7 +52,7 @@",
            " mov ebx,0x33",
            " mov eax,0x140",
            " push 0x0",
            "-mov m4[None+None*1+0x56b378],edx",
            "+mov m4[None+None*1+0x55e388],edx",
            " mov edx,0x17",
            " call dinfo.c::set_drone_weapon_types_",
            " push 0x0",
            "@@ -65,7 +65,7 @@",
            " mov edx,0x202",
            " xor ecx,ecx",
            " mov eax,0x140",
            "-mov m4[None+None*1+0x56b468],ecx",
            "+mov m4[None+None*1+0x55e478],ecx",
            " call dinfo.c::like_weapons_",
            " mov edx,0x1e9",
            " mov eax,0x140",
            "@@ -74,11 +74,11 @@",
            " mov edx,0x1e",
            " mov eax,0x3",
            " push ecx",
            "-mov m4[None+None*1+0x56b148],ebp",
            "-mov m4[None+None*1+0x56b13c],ebx",
            "+mov m4[None+None*1+0x55e158],ebp",
            "+mov m4[None+None*1+0x55e14c],ebx",
            " push ecx",
            " mov ebx,0x1c",
            "-mov m4[None+None*1+0x56b15c],esi",
            "+mov m4[None+None*1+0x55e16c],esi",
            " call dinfo.c::set_drone_weapon_types_",
            " push 0x0",
            " mov ebx,0x4",
            "@@ -94,7 +94,7 @@",
            " mov edx,0x1e",
            " push ebp",
            " mov eax,0xe1",
            "-mov m4[None+None*1+0x566a1c],ebp",
            "+mov m4[None+None*1+0x559a2c],ebp",
            " call dinfo.c::set_drone_weapon_types_",
            " push ebp",
            " mov ecx,0x4",
            "@@ -105,7 +105,7 @@",
            " call dinfo.c::set_drone_weapon_loads_",
            " mov edx,0x241",
            " mov eax,0xe1",
            "-mov m4[None+None*1+0x569e24],ebp",
            "+mov m4[None+None*1+0x55ce34],ebp",
            " call dinfo.c::like_weapons_",
            " push ebp",
            " mov ecx,0x2a",
            "@@ -123,7 +123,7 @@",
            " call dinfo.c::set_drone_weapon_loads_",
            " mov edx,0x1c5",
            " mov eax,0xe7",
            "-mov m4[None+None*1+0x569f8c],ebp",
            "+mov m4[None+None*1+0x55cf9c],ebp",
            " call dinfo.c::like_weapons_",
            " push ebp",
            " mov ecx,0x2e",
            "@@ -145,7 +145,7 @@",
            " xor ebx,ebx",
            " push 0x2c",
            " xor edx,edx",
            "-mov m4[None+None*1+0x569ed8],ebp",
            "+mov m4[None+None*1+0x55cee8],ebp",
            " call dinfo.c::set_drone_weapon_types_",
            " push ebp",
            " mov ecx,0x4",
            "@@ -160,7 +160,7 @@",
            " mov eax,0xed",
            " push ebp",
            " xor ebx,ebx",
            "-mov m4[None+None*1+0x56a040],ebp",
            "+mov m4[None+None*1+0x55d050],ebp",
            " call dinfo.c::set_drone_weapon_types_",
            " push ebp",
            " mov edx,0xfa",
            "@@ -175,7 +175,7 @@",
            " mov edx,0x1e",
            " push 0x5",
            " mov eax,0xde",
            "-mov m4[None+None*1+0x56a0f4],ebp",
            "+mov m4[None+None*1+0x55d104],ebp",
            " call dinfo.c::set_drone_weapon_types_",
            " push ebp",
            " mov ecx,0xfa0",
            "@@ -190,7 +190,7 @@",
            " mov edx,0x13",
            " push 0x2e",
            " mov eax,0x3de",
            "-mov m4[None+None*1+0x569d70],ebp",
            "+mov m4[None+None*1+0x55cd80],ebp",
            " call dinfo.c::set_drone_weapon_types_",
            " push ebp",
            " mov ecx,0x1f4",
            "@@ -205,7 +205,7 @@",
            " xor ecx,ecx",
            " push ebp",
            " xor ebx,ebx",
            "-mov m4[None+None*1+0x575170],ebp",
            "+mov m4[None+None*1+0x568180],ebp",
            " call dinfo.c::set_drone_weapon_types_",
            " push ebp",
            " mov edx,0x28",
            "@@ -220,7 +220,7 @@",
            " mov edx,0x1e",
            " push 0x5",
            " mov eax,0x25f",
            "-mov m4[None+None*1+0x570a30],ebp",
            "+mov m4[None+None*1+0x563a40],ebp",
            " call dinfo.c::set_drone_weapon_types_",
            " push ebp",
            " mov ecx,0xfa0",
            "@@ -235,7 +235,7 @@",
            " mov edx,0x1",
            " push ebp",
            " mov eax,0x40",
            "-mov m4[None+None*1+0x56f7ac],ebp",
            "+mov m4[None+None*1+0x5627bc],ebp",
            " call dinfo.c::set_drone_weapon_types_",
            " push ebp",
            " mov ecx,0x4",
            "@@ -248,11 +248,11 @@",
            " mov eax,0x40",
            " mov ebx,0x258",
            " mov ecx,0x17",
            "-mov m4[None+None*1+0x567868],ebp",
            "+mov m4[None+None*1+0x55a878],ebp",
            " call dinfo.c::like_weapons_",
            " push ebp",
            " mov eax,0x36",
            "-mov m4[None+None*1+0x56e028],ebx",
            "+mov m4[None+None*1+0x561038],ebx",
            " push ebp",
            " xor edx,edx",
            " mov ebx,0x1f",
            "@@ -265,31 +265,31 @@",
            " xor edx,edx",
            " mov esi,0x1",
            " call dinfo.c::set_drone_weapon_loads_",
            "-mov m4[None+None*1+0x567610],esi",
            "+mov m4[None+None*1+0x55a620],esi",
            " mov edi,0x1f",
            " mov ebp,0x4",
            " mov ecx,0xb",
            " mov edx,0x7fffffff",
            " mov ebx,0x25",
            " mov eax,esi",
            "-mov m4[None+None*1+0x567fe8],esi",
            "-mov m4[None+None*1+0x56a568],esi",
            "-mov m4[None+None*1+0x567fc4],edi",
            "-mov m4[None+None*1+0x567fd8],ebp",
            "-mov m4[None+None*1+0x56a544],edi",
            "-mov m4[None+None*1+0x56a558],ecx",
            "-mov m4[None+None*1+0x567ac0],eax",
            "-mov m4[None+None*1+0x567e70],edx",
            "+mov m4[None+None*1+0x55aff8],esi",
            "+mov m4[None+None*1+0x55d578],esi",
            "+mov m4[None+None*1+0x55afd4],edi",
            "+mov m4[None+None*1+0x55afe8],ebp",
            "+mov m4[None+None*1+0x55d554],edi",
            "+mov m4[None+None*1+0x55d568],ecx",
            "+mov m4[None+None*1+0x55aad0],eax",
            "+mov m4[None+None*1+0x55ae80],edx",
            " mov edi,0xc",
            " mov eax,0x14",
            " mov edx,0xf0",
            " mov ecx,esi",
            " mov esi,0x15",
            "-mov m4[None+None*1+0x567ab0],edi",
            "-mov m4[None+None*1+0x567e5c],eax",
            "-mov m4[None+None*1+0x567e80],ecx",
            "-mov eax,0x5a",
            "-mov m4[None+None*1+0x567a9c],esi",
            "+mov m4[None+None*1+0x55aac0],edi",
            "+mov m4[None+None*1+0x55ae6c],eax",
            "+mov m4[None+None*1+0x55ae90],ecx",
            "+mov eax,0x5a",
            "+mov m4[None+None*1+0x55aaac],esi",
            " call dinfo.c::like_weapons_",
            " mov edx,0x5d",
            " mov eax,0x5a",
            "@@ -308,53 +308,53 @@",
            " mov esi,0x7fffffff",
            " call dinfo.c::like_weapons_",
            " mov eax,0x36",
            "-mov m4[None+None*1+0x567c08],ebx",
            "-mov m4[None+None*1+0x567c1c],esi",
            "-mov m4[None+None*1+0x567c28],edi",
            "-mov m4[None+None*1+0x567cf8],ebp",
            "-mov m4[None+None*1+0x567d0c],esi",
            "+mov m4[None+None*1+0x55ac18],ebx",
            "+mov m4[None+None*1+0x55ac2c],esi",
            "+mov m4[None+None*1+0x55ac38],edi",
            "+mov m4[None+None*1+0x55ad08],ebp",
            "+mov m4[None+None*1+0x55ad1c],esi",
            " mov edx,edi",
            "-mov m4[None+None*1+0x567d18],edi",
            "-mov m4[None+None*1+0x567dac],ecx",
            "-mov m4[None+None*1+0x567dc0],esi",
            "-mov m4[None+None*1+0x567dcc],edi",
            "-mov m4[None+None*1+0x5698f0],esi",
            "-mov m4[None+None*1+0x56d748],esi",
            "+mov m4[None+None*1+0x55ad28],edi",
            "+mov m4[None+None*1+0x55adbc],ecx",
            "+mov m4[None+None*1+0x55add0],esi",
            "+mov m4[None+None*1+0x55addc],edi",
            "+mov m4[None+None*1+0x55c900],esi",
            "+mov m4[None+None*1+0x560758],esi",
            " mov edi,0x22",
            " mov ebp,0x35",
            " mov ecx,esi",
            " mov ebx,edx",
            "-mov m4[None+None*1+0x5698fc],edx",
            "-mov m4[None+None*1+0x5699c8],eax",
            "+mov m4[None+None*1+0x55c90c],edx",
            "+mov m4[None+None*1+0x55c9d8],eax",
            " mov edx,0x26",
            " mov esi,0x1a",
            " mov eax,0xcc",
            "-mov m4[None+None*1+0x5698dc],edi",
            "-mov m4[None+None*1+0x56d754],ebx",
            "+mov m4[None+None*1+0x55c8ec],edi",
            "+mov m4[None+None*1+0x560764],ebx",
            " mov edi,0x1",
            " mov ebx,0x29",
            "-mov m4[None+None*1+0x56d734],edx",
            "-mov m4[None+None*1+0x5679e8],esi",
            "+mov m4[None+None*1+0x560744],edx",
            "+mov m4[None+None*1+0x55a9f8],esi",
            " mov edx,0xcd",
            "-mov m4[None+None*1+0x5679fc],edi",
            "-mov m4[None+None*1+0x567a0c],edi",
            "-mov m4[None+None*1+0x5699dc],edi",
            "-mov m4[None+None*1+0x5699ec],edi",
            "-mov m4[None+None*1+0x569914],ebx",
            "+mov m4[None+None*1+0x55aa0c],edi",
            "+mov m4[None+None*1+0x55aa1c],edi",
            "+mov m4[None+None*1+0x55c9ec],edi",
            "+mov m4[None+None*1+0x55c9fc],edi",
            "+mov m4[None+None*1+0x55c924],ebx",
            " mov esi,ecx",
            "-mov m4[None+None*1+0x569938],edi",
            "+mov m4[None+None*1+0x55c948],edi",
            " mov ecx,0x20",
            "-mov m4[None+None*1+0x569928],esi",
            "+mov m4[None+None*1+0x55c938],esi",
            " call dinfo.c::like_weapons_",
            " mov edx,0x63",
            " mov eax,0x82",
            "-mov m4[None+None*1+0x56998c],ebp",
            "-mov m4[None+None*1+0x5699a0],esi",
            "-mov m4[None+None*1+0x5699b0],edi",
            "-mov m4[None+None*1+0x5687d4],esi",
            "+mov m4[None+None*1+0x55c99c],ebp",
            "+mov m4[None+None*1+0x55c9b0],esi",
            "+mov m4[None+None*1+0x55c9c0],edi",
            "+mov m4[None+None*1+0x55b7e4],esi",
            " mov esi,0x2",
            "-mov m4[None+None*1+0x5687c0],ecx",
            "-mov m4[None+None*1+0x5687e0],esi",
            "+mov m4[None+None*1+0x55b7d0],ecx",
            "+mov m4[None+None*1+0x55b7f0],esi",
            " call dinfo.c::like_weapons_",
            " mov edx,0xd3",
            " mov eax,0x82"
          ]
        },
        {
          "symbol": "dinfo.c::set_drone_base_data_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x42999c",
          "second": "0x429d1c",
          "first_instruction_count": 14,
          "second_instruction_count": 14,
          "diff": [
            "--- 0x42999c",
            "+++ 0x429d1c",
            "@@ -4,10 +4,10 @@",
            " mov edx,eax",
            " shl eax,0x4",
            " sub eax,edx",
            "-mov m4[eax+None*1+0x566934],esi",
            "-mov m4[eax+None*1+0x566938],ebx",
            "+mov m4[eax+None*1+0x559944],esi",
            "+mov m4[eax+None*1+0x559948],ebx",
            " mov dl,m1[eax+None*1+dinfo.c::_drone_headers]",
            "-mov m4[eax+None*1+0x56693c],ecx",
            "+mov m4[eax+None*1+0x55994c],ecx",
            " or dl,0x1",
            " mov m1[eax+None*1+dinfo.c::_drone_headers],dl",
            " pop esi"
          ]
        },
        {
          "symbol": "dinfo.c::set_drone_main_weapon_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x429a6c",
          "second": "0x429dec",
          "first_instruction_count": 9,
          "second_instruction_count": 9,
          "diff": [
            "--- 0x429a6c",
            "+++ 0x429dec",
            "@@ -4,6 +4,6 @@",
            " mov edx,eax",
            " shl eax,0x4",
            " sub eax,edx",
            "-mov m4[eax+None*1+0x566968],ecx",
            "+mov m4[eax+None*1+0x559978],ecx",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "dinfo.c::set_drone_weapon_initial_load_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x429a54",
          "second": "0x429dd4",
          "first_instruction_count": 10,
          "second_instruction_count": 10,
          "diff": [
            "--- 0x429a54",
            "+++ 0x429dd4",
            "@@ -5,6 +5,6 @@",
            " shl eax,0x4",
            " sub eax,edx",
            " mov edx,eax",
            "-mov m4[edx+ecx*4+0x566954],ebx",
            "+mov m4[edx+ecx*4+0x559964],ebx",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "dinfo.c::set_drone_weapon_loads_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x429a04",
          "second": "0x429d84",
          "first_instruction_count": 15,
          "second_instruction_count": 15,
          "diff": [
            "--- 0x429a04",
            "+++ 0x429d84",
            "@@ -4,12 +4,12 @@",
            " mov edx,eax",
            " shl eax,0x4",
            " sub eax,edx",
            "-mov m4[eax+None*1+0x566954],esi",
            "-mov m4[eax+None*1+0x566958],ebx",
            "+mov m4[eax+None*1+0x559964],esi",
            "+mov m4[eax+None*1+0x559968],ebx",
            " mov edx,m4[esp+None*1+0x8]",
            "-mov m4[eax+None*1+0x56695c],ecx",
            "-mov m4[eax+None*1+0x566960],edx",
            "+mov m4[eax+None*1+0x55996c],ecx",
            "+mov m4[eax+None*1+0x559970],edx",
            " mov edx,m4[esp+None*1+0xc]",
            "-mov m4[eax+None*1+0x566964],edx",
            "+mov m4[eax+None*1+0x559974],edx",
            " pop esi",
            " ret 0x8"
          ]
        },
        {
          "symbol": "dinfo.c::set_drone_weapon_type_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x429a3c",
          "second": "0x429dbc",
          "first_instruction_count": 10,
          "second_instruction_count": 10,
          "diff": [
            "--- 0x429a3c",
            "+++ 0x429dbc",
            "@@ -5,6 +5,6 @@",
            " shl eax,0x4",
            " sub eax,edx",
            " mov edx,eax",
            "-mov m4[edx+ecx*4+0x566940],ebx",
            "+mov m4[edx+ecx*4+0x559950],ebx",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "dinfo.c::set_drone_weapon_types_",
          "source": "E:\\apache\\source\\drone\\dinfo.c",
          "first": "0x4299cc",
          "second": "0x429d4c",
          "first_instruction_count": 15,
          "second_instruction_count": 15,
          "diff": [
            "--- 0x4299cc",
            "+++ 0x429d4c",
            "@@ -4,12 +4,12 @@",
            " mov edx,eax",
            " shl eax,0x4",
            " sub eax,edx",
            "-mov m4[eax+None*1+0x566940],esi",
            "-mov m4[eax+None*1+0x566944],ebx",
            "+mov m4[eax+None*1+0x559950],esi",
            "+mov m4[eax+None*1+0x559954],ebx",
            " mov edx,m4[esp+None*1+0x8]",
            "-mov m4[eax+None*1+0x566948],ecx",
            "-mov m4[eax+None*1+0x56694c],edx",
            "+mov m4[eax+None*1+0x559958],ecx",
            "+mov m4[eax+None*1+0x55995c],edx",
            " mov edx,m4[esp+None*1+0xc]",
            "-mov m4[eax+None*1+0x566950],edx",
            "+mov m4[eax+None*1+0x559960],edx",
            " pop esi",
            " ret 0x8"
          ]
        },
        {
          "symbol": "dline.asm::_draw_dline",
          "source": "\\library\\graphics\\dline.asm",
          "first": "0x4becf4",
          "second": "0x4b2744",
          "first_instruction_count": 45,
          "second_instruction_count": 45,
          "diff": [
            "--- 0x4becf4",
            "+++ 0x4b2744",
            "@@ -10,7 +10,7 @@",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            " inc edx",
            "-jmp m4[None+ebp*4+constant:18ed4b00]",
            "+jmp m4[None+ebp*4+constant:68274b00]",
            " mov ebx,m4[None+None*1+screen.c::_screen_y_inc]",
            " inc ebx",
            " mov m1[edi+None*1+0x0],al"
          ]
        },
        {
          "symbol": "dosret::__set_errno_nt_",
          "source": "dosret",
          "first": "0x4cd207",
          "second": "0x4c0625",
          "first_instruction_count": 7,
          "second_instruction_count": 7,
          "diff": [
            "--- 0x4cd207",
            "+++ 0x4c0625",
            "@@ -1,6 +1,6 @@",
            " push ecx",
            " push edx",
            "-call m4[None+None*1+constant:5c4d0d00]",
            "+call m4[None+None*1+constant:3a7c0c00]",
            " call dosret::__set_errno_dos_",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "drawcmtx.asm::_draw_constant_shaded_masked_textured_scan_lines",
          "source": "\\library\\graphics\\drawcmtx.asm",
          "first": "0x4bed58",
          "second": "0x4b27a8",
          "first_instruction_count": 414,
          "second_instruction_count": 414,
          "diff": [
            "--- 0x4bed58",
            "+++ 0x4b27a8",
            "@@ -3,7 +3,7 @@",
            " mov eax,m4[esi+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "-jmp m4[None+eax*4+constant:74ed4b00]",
            "+jmp m4[None+eax*4+constant:c4274b00]",
            " push ebp",
            " mov ebx,m4[None+None*1+polygon.asm::_scan_y_min]",
            " jmp local:50"
          ]
        },
        {
          "symbol": "drawctxt.asm::_draw_constant_shaded_textured_scan_lines",
          "source": "\\library\\graphics\\drawctxt.asm",
          "first": "0x4bf434",
          "second": "0x4b2e84",
          "first_instruction_count": 390,
          "second_instruction_count": 390,
          "diff": [
            "--- 0x4bf434",
            "+++ 0x4b2e84",
            "@@ -3,7 +3,7 @@",
            " mov eax,m4[esi+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "-jmp m4[None+eax*4+constant:50f44b00]",
            "+jmp m4[None+eax*4+constant:a02e4b00]",
            " push ebp",
            " mov ebx,m4[None+None*1+polygon.asm::_scan_y_min]",
            " jmp local:48"
          ]
        },
        {
          "symbol": "drawgmtx.asm::_draw_gouraud_shaded_masked_textured_scan_lines",
          "source": "\\library\\graphics\\drawgmtx.asm",
          "first": "0x4bfad0",
          "second": "0x4b3520",
          "first_instruction_count": 478,
          "second_instruction_count": 478,
          "diff": [
            "--- 0x4bfad0",
            "+++ 0x4b3520",
            "@@ -1,7 +1,7 @@",
            " mov eax,m4[esi+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "-jmp m4[None+eax*4+constant:e4fa4b00]",
            "+jmp m4[None+eax*4+constant:34354b00]",
            " push ebp",
            " mov ebx,m4[None+None*1+polygon.asm::_scan_y_min]",
            " jmp local:58"
          ]
        },
        {
          "symbol": "drawgtxt.asm::_draw_gouraud_shaded_textured_scan_lines",
          "source": "\\library\\graphics\\drawgtxt.asm",
          "first": "0x4c034c",
          "second": "0x4b3d9c",
          "first_instruction_count": 453,
          "second_instruction_count": 453,
          "diff": [
            "--- 0x4c034c",
            "+++ 0x4b3d9c",
            "@@ -1,7 +1,7 @@",
            " mov eax,m4[esi+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "-jmp m4[None+eax*4+constant:60034c00]",
            "+jmp m4[None+eax*4+constant:b03d4b00]",
            " push ebp",
            " mov ebx,m4[None+None*1+polygon.asm::_scan_y_min]",
            " jmp local:56"
          ]
        },
        {
          "symbol": "drawmap.c::draw_map_",
          "source": "E:\\library\\3dvisual\\drawmap.c",
          "first": "0x491ec4",
          "second": "0x48e764",
          "first_instruction_count": 247,
          "second_instruction_count": 247,
          "diff": [
            "--- 0x491ec4",
            "+++ 0x48e764",
            "@@ -64,14 +64,14 @@",
            " call supscan.c::get_map_super_sector_visibility_",
            " test eax,eax",
            " je local:67",
            "-call fxfeatur.c::draw_map_super_features_",
            "+call features.c::draw_map_super_features_",
            " mov ecx,m4[None+None*1+supscan.c::_map_y_super_sector]",
            " inc ecx",
            " mov ebx,m4[None+None*1+supscan.c::_map_super_sector_scan_y_max]",
            " mov m4[None+None*1+supscan.c::_map_y_super_sector],ecx",
            " cmp ecx,ebx",
            " jle local:24",
            "-test m1[None+None*1+0xd82544],0x1",
            "+test m1[None+None*1+0xd6cbf4],0x1",
            " je local:76",
            " call thread.c::quick_yield_",
            " mov edi,m4[None+None*1+supscan.c::_map_x_super_sector]",
            "@@ -134,13 +134,13 @@",
            " call secscan.c::get_map_sector_visibility_",
            " test eax,eax",
            " je local:144",
            "-test m1[None+None*1+0xd82544],0x2",
            "+test m1[None+None*1+0xd6cbf4],0x2",
            " je local:142",
            " cmp esi,m4[None+None*1+drawmap.c::_use_new_2d_map]",
            " je local:245",
            "-call fxterr.c::lauries_new_draw_map_terrain_",
            "-and m1[None+None*1+0xd82544],0xfb",
            "-call fxfeatur.c::draw_map_features_",
            "+call terrain.c::lauries_new_draw_map_terrain_",
            "+and m1[None+None*1+0xd6cbf4],0xfb",
            "+call features.c::draw_map_features_",
            " call gndobjs.c::draw_map_ground_objects_",
            " mov ebx,m4[None+None*1+secscan.c::_map_y_sector]",
            " inc ebx",
            "@@ -148,7 +148,7 @@",
            " mov m4[None+None*1+secscan.c::_map_y_sector],ebx",
            " cmp ebx,edi",
            " jle local:96",
            "-test m1[None+None*1+0xd82544],0x1",
            "+test m1[None+None*1+0xd6cbf4],0x1",
            " je local:153",
            " call thread.c::quick_yield_",
            " mov edi,m4[None+None*1+secscan.c::_map_x_sector]",
            "@@ -157,7 +157,7 @@",
            " mov m4[None+None*1+secscan.c::_map_x_sector],edi",
            " cmp edi,ebp",
            " jle local:91",
            "-test m1[None+None*1+0xd82544],0x4",
            "+test m1[None+None*1+0xd6cbf4],0x4",
            " je local:227",
            " mov eax,m4[None+None*1+secscan.c::_map_sector_scan_x_min]",
            " mov edx,m4[None+None*1+secscan.c::_map_sector_scan_x_max]",
            "@@ -209,14 +209,14 @@",
            " call secscan.c::get_map_sector_visibility_",
            " test eax,eax",
            " je local:212",
            "-call fxterr.c::draw_map_contour_lines_",
            "+call terrain.c::draw_map_contour_lines_",
            " mov ebx,m4[None+None*1+secscan.c::_map_y_sector]",
            " inc ebx",
            " mov esi,m4[None+None*1+secscan.c::_map_sector_scan_y_max]",
            " mov m4[None+None*1+secscan.c::_map_y_sector],ebx",
            " cmp ebx,esi",
            " jle local:171",
            "-test m1[None+None*1+0xd82544],0x1",
            "+test m1[None+None*1+0xd6cbf4],0x1",
            " je local:221",
            " call thread.c::quick_yield_",
            " mov eax,m4[None+None*1+secscan.c::_map_x_sector]",
            "@@ -243,5 +243,5 @@",
            " add eax,edx",
            " add eax,ecx",
            " jmp local:9",
            "-call fxterr.c::draw_map_terrain_",
            "+call terrain.c::draw_map_terrain_",
            " jmp local:142"
          ]
        },
        {
          "symbol": "drawmtxt.asm::_draw_masked_textured_scan_lines",
          "source": "\\library\\graphics\\drawmtxt.asm",
          "first": "0x4c1050",
          "second": "0x4b4aa0",
          "first_instruction_count": 386,
          "second_instruction_count": 386,
          "diff": [
            "--- 0x4c1050",
            "+++ 0x4b4aa0",
            "@@ -1,7 +1,7 @@",
            " mov eax,m4[esi+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "-jmp m4[None+eax*4+constant:64104c00]",
            "+jmp m4[None+eax*4+constant:b44a4b00]",
            " push ebp",
            " mov ebx,m4[None+None*1+polygon.asm::_scan_y_min]",
            " jmp local:46"
          ]
        },
        {
          "symbol": "drawper.c::draw_gouraud_shaded_textured_perspective_scan_lines_",
          "source": "E:\\library\\graphics\\drawper.c",
          "first": "0x470da0",
          "second": "0x470ce0",
          "first_instruction_count": 690,
          "second_instruction_count": 690,
          "diff": [
            "--- 0x470da0",
            "+++ 0x470ce0",
            "@@ -33,31 +33,31 @@",
            " mov eax,m4[eax+None*1+scanper.c::_rhs_scan_x_texture_y]",
            " mov m4[esp+None*1+0xa0],eax",
            " mov eax,m4[esp+None*1+0xe4]",
            "-mov eax,m4[eax+None*1+0x715264]",
            "+mov eax,m4[eax+None*1+0x707444]",
            " mov m4[esp+None*1+0xa4],eax",
            " mov eax,m4[esp+None*1+0xe4]",
            " mov m4[ecx+None*1+polygon.asm::_rhs_scan_x_crt],edx",
            " mov edx,m4[esp+None*1+0xe4]",
            " mov ecx,m4[eax+None*1+scanper.c::_lhs_scan_x_texture_y]",
            " mov m4[eax+None*1+scanper.c::_rhs_scan_x_texture_y],ecx",
            "-mov ecx,m4[eax+None*1+0x70d564]",
            "-mov m4[eax+None*1+0x715264],ecx",
            "+mov ecx,m4[eax+None*1+0x6ff744]",
            "+mov m4[eax+None*1+0x707444],ecx",
            " mov eax,m4[esp+None*1+0xa0]",
            " mov m4[edx+None*1+scanper.c::_lhs_scan_x_texture_y],eax",
            " mov eax,m4[esp+None*1+0xa4]",
            "-mov m4[edx+None*1+0x70d564],eax",
            "+mov m4[edx+None*1+0x6ff744],eax",
            " mov eax,m4[edx+None*1+scanper.c::_rhs_scan_y_texture_y]",
            " mov m4[esp+None*1+0xa0],eax",
            "-mov eax,m4[edx+None*1+0x7171a4]",
            "+mov eax,m4[edx+None*1+0x709384]",
            " mov m4[esp+None*1+0xa4],eax",
            " mov eax,m4[esp+None*1+0xa0]",
            " fld m8[edx+None*1+scanper.c::_lhs_scan_y_texture_y]",
            " mov m4[edx+None*1+scanper.c::_lhs_scan_y_texture_y],eax",
            " mov eax,m4[esp+None*1+0xa4]",
            "-mov m4[edx+None*1+0x70f4a4],eax",
            "+mov m4[edx+None*1+0x701684],eax",
            " mov eax,m4[edx+None*1+scanper.c::_rhs_scan_intensity_y]",
            " mov m4[esp+None*1+0xa0],eax",
            "-mov eax,m4[edx+None*1+0x70b624]",
            "+mov eax,m4[edx+None*1+0x6fd804]",
            " fld m8[edx+None*1+scanper.c::_lhs_scan_intensity_y]",
            " mov m4[esp+None*1+0xa4],eax",
            " mov eax,m4[esp+None*1+0xa0]",
            "@@ -66,7 +66,7 @@",
            " mov m4[edx+None*1+scanper.c::_lhs_scan_intensity_y],eax",
            " mov eax,m4[esp+None*1+0xa4]",
            " fstp m8[edx+None*1+scanper.c::_rhs_scan_intensity_y]",
            "-mov m4[edx+None*1+0x7096e4],eax",
            "+mov m4[edx+None*1+0x6fb8c4],eax",
            " mov edx,m4[esp+None*1+0xc4]",
            " mov eax,m4[esp+None*1+0xc4]",
            " mov edx,m4[edx+None*1+polygon.asm::_rhs_scan_x_crt]",
            "@@ -185,19 +185,19 @@",
            " mov eax,m4[eax+None*1+scanper.c::_lhs_scan_x_texture_y]",
            " mov m4[esp+None*1+0x58],eax",
            " mov eax,m4[esp+None*1+0xe4]",
            "-mov eax,m4[eax+None*1+0x70d564]",
            "+mov eax,m4[eax+None*1+0x6ff744]",
            " mov m4[esp+None*1+0x5c],eax",
            " mov eax,m4[esp+None*1+0xe4]",
            " mov eax,m4[eax+None*1+scanper.c::_lhs_scan_y_texture_y]",
            " mov m4[esp+None*1+0x68],eax",
            " mov eax,m4[esp+None*1+0xe4]",
            "-mov eax,m4[eax+None*1+0x70f4a4]",
            "+mov eax,m4[eax+None*1+0x701684]",
            " mov m4[esp+None*1+0x6c],eax",
            " mov eax,m4[esp+None*1+0xe4]",
            " mov eax,m4[eax+None*1+scanper.c::_lhs_scan_intensity_y]",
            " mov m4[esp+None*1+0x28],eax",
            " mov eax,m4[esp+None*1+0xe4]",
            "-mov eax,m4[eax+None*1+0x7096e4]",
            "+mov eax,m4[eax+None*1+0x6fb8c4]",
            " mov m4[esp+None*1+0xe0],edi",
            " mov m4[esp+None*1+0x2c],eax",
            " xor eax,eax",
            "@@ -673,18 +673,18 @@",
            " mov eax,m4[eax+None*1+scanper.c::_lhs_scan_intensity_y]",
            " mov m4[esp+None*1+0x40],eax",
            " mov eax,m4[esp+None*1+0xe4]",
            "-mov eax,m4[eax+None*1+0x7096e4]",
            "+mov eax,m4[eax+None*1+0x6fb8c4]",
            " mov m4[esp+None*1+0x44],eax",
            " mov eax,m4[esp+None*1+0xe4]",
            " mov eax,m4[eax+None*1+scanper.c::_lhs_scan_x_texture_y]",
            " mov m4[esp+None*1+0x38],eax",
            " mov eax,m4[esp+None*1+0xe4]",
            "-mov eax,m4[eax+None*1+0x70d564]",
            "+mov eax,m4[eax+None*1+0x6ff744]",
            " mov m4[esp+None*1+0x3c],eax",
            " mov eax,m4[esp+None*1+0xe4]",
            " mov eax,m4[eax+None*1+scanper.c::_lhs_scan_y_texture_y]",
            " mov m4[esp+None*1+0x48],eax",
            " mov eax,m4[esp+None*1+0xe4]",
            "-mov eax,m4[eax+None*1+0x70f4a4]",
            "+mov eax,m4[eax+None*1+0x701684]",
            " mov m4[esp+None*1+0x4c],eax",
            " jmp local:527"
          ]
        },
        {
          "symbol": "drawscan.asm::_draw_scan_lines",
          "source": "\\library\\graphics\\drawscan.asm",
          "first": "0x4c163c",
          "second": "0x4b508c",
          "first_instruction_count": 78,
          "second_instruction_count": 78,
          "diff": [
            "--- 0x4c163c",
            "+++ 0x4b508c",
            "@@ -18,7 +18,7 @@",
            " test edx,0x1",
            " je local:20",
            " ror eax,0x8",
            "-jmp m4[None+ecx*4+constant:bd164c00]",
            "+jmp m4[None+ecx*4+constant:0d514b00]",
            " mov m1[edi+None*1+0x0],al",
            " inc edi",
            " ror eax,0x8",
            "@@ -44,7 +44,7 @@",
            " je local:45",
            " ror eax,0x8",
            " and edx,0x3",
            "-jmp m4[None+edx*4+constant:eb164c00]",
            "+jmp m4[None+edx*4+constant:3b514b00]",
            " mov m1[edi+None*1+0x0],al",
            " inc edi",
            " dec ecx"
          ]
        },
        {
          "symbol": "drawtext.asm::_draw_textured_scan_lines",
          "source": "\\library\\graphics\\drawtext.asm",
          "first": "0x4c1728",
          "second": "0x4b5178",
          "first_instruction_count": 363,
          "second_instruction_count": 363,
          "diff": [
            "--- 0x4c1728",
            "+++ 0x4b5178",
            "@@ -1,7 +1,7 @@",
            " mov eax,m4[esi+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "-jmp m4[None+eax*4+constant:3c174c00]",
            "+jmp m4[None+eax*4+constant:8c514b00]",
            " push ebp",
            " mov ebx,m4[None+None*1+polygon.asm::_scan_y_min]",
            " jmp local:44"
          ]
        },
        {
          "symbol": "drawtmtx.asm::_draw_translucent_masked_textured_scan_lines",
          "source": "\\library\\graphics\\drawtmtx.asm",
          "first": "0x4c1cbc",
          "second": "0x4b570c",
          "first_instruction_count": 582,
          "second_instruction_count": 582,
          "diff": [
            "--- 0x4c1cbc",
            "+++ 0x4b570c",
            "@@ -3,7 +3,7 @@",
            " mov eax,m4[esi+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "-jmp m4[None+eax*4+constant:d81c4c00]",
            "+jmp m4[None+eax*4+constant:28574b00]",
            " push ebp",
            " mov ebx,m4[None+None*1+polygon.asm::_scan_y_min]",
            " jmp local:64"
          ]
        },
        {
          "symbol": "drone.c::set_drone_object_number_",
          "source": "E:\\apache\\source\\drone\\drone.c",
          "first": "0x42706c",
          "second": "0x4273ec",
          "first_instruction_count": 61,
          "second_instruction_count": 61,
          "diff": [
            "--- 0x42706c",
            "+++ 0x4273ec",
            "@@ -12,7 +12,7 @@",
            " mov ebx,0x26c",
            " mov edi,0x25f",
            " mov m4[None+None*1+drone.c::_default_sub_object_list],ecx",
            "-mov m4[None+None*1+0x566898],ebx",
            "+mov m4[None+None*1+0x5598a8],ebx",
            " lea edx,m4[esi+None*1+0x8]",
            " mov eax,edx",
            " mov ecx,drone.c::_default_sub_object_list"
          ]
        },
        {
          "symbol": "dronewar.c::place_drone_in_war_model_sector_",
          "source": "E:\\apache\\source\\warmodel\\dronewar.c",
          "first": "0x465db0",
          "second": "0x465f50",
          "first_instruction_count": 73,
          "second_instruction_count": 73,
          "diff": [
            "--- 0x465db0",
            "+++ 0x465f50",
            "@@ -29,7 +29,7 @@",
            " cmp ebx,0x2",
            " jne local:40",
            " call war.c::initialise_war_model_enemy_sector_",
            "-mov eax,m4[esi+None*1+0x6ab694]",
            "+mov eax,m4[esi+None*1+0x69e6a4]",
            " mov edx,m4[ecx+None*1+0x58]",
            " dec edx",
            " cmp edx,0x7"
          ]
        },
        {
          "symbol": "dronewar.c::remove_air_drone_from_war_model_side_",
          "source": "E:\\apache\\source\\warmodel\\dronewar.c",
          "first": "0x466050",
          "second": "0x4661f0",
          "first_instruction_count": 87,
          "second_instruction_count": 87,
          "diff": [
            "--- 0x466050",
            "+++ 0x4661f0",
            "@@ -49,7 +49,7 @@",
            " mov m4[esp+None*1+0x0],ebp",
            " jmp local:17",
            " call waydebug.c::display_drone_debug_",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ebx+None*1+0x8]",
            " mov eax,m4[edx+eax*4+0x0]",
            " add eax,0x58"
          ]
        },
        {
          "symbol": "dronewar.c::remove_drone_from_war_model_sector_",
          "source": "E:\\apache\\source\\warmodel\\dronewar.c",
          "first": "0x465ef0",
          "second": "0x466090",
          "first_instruction_count": 124,
          "second_instruction_count": 124,
          "diff": [
            "--- 0x465ef0",
            "+++ 0x466090",
            "@@ -51,7 +51,7 @@",
            " ret ",
            " cmp esi,0x2",
            " jne local:46",
            "-mov esi,m4[eax+None*1+0x6ab694]",
            "+mov esi,m4[eax+None*1+0x69e6a4]",
            " jmp local:32",
            " mov eax,ecx",
            " call waydebug.c::display_drone_debug_",
            "@@ -115,7 +115,7 @@",
            " mov edi,m4[None+None*1+war.c::_enemy_war_model_sectors_used]",
            " xor esi,esi",
            " dec edi",
            "-mov m4[eax+None*1+0x6ab694],esi",
            "+mov m4[eax+None*1+0x69e6a4],esi",
            " mov m4[None+None*1+war.c::_enemy_war_model_sectors_used],edi",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "dronewar.c::remove_ground_drone_from_war_model_side_",
          "source": "E:\\apache\\source\\warmodel\\dronewar.c",
          "first": "0x466148",
          "second": "0x4662e8",
          "first_instruction_count": 87,
          "second_instruction_count": 87,
          "diff": [
            "--- 0x466148",
            "+++ 0x4662e8",
            "@@ -49,7 +49,7 @@",
            " mov m4[esp+None*1+0x0],ebp",
            " jmp local:17",
            " call waydebug.c::display_drone_debug_",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ebx+None*1+0x8]",
            " mov eax,m4[edx+eax*4+0x0]",
            " add eax,0x58"
          ]
        },
        {
          "symbol": "dronewar.c::update_drone_combat_systems_",
          "source": "E:\\apache\\source\\warmodel\\dronewar.c",
          "first": "0x466404",
          "second": "0x4665a4",
          "first_instruction_count": 202,
          "second_instruction_count": 202,
          "diff": [
            "--- 0x466404",
            "+++ 0x4665a4",
            "@@ -94,7 +94,7 @@",
            " shl esi,0x2",
            " add esi,eax",
            " shl esi,0x3",
            "-cmp m1[esi+None*1+0x672a6b],0x6",
            "+cmp m1[esi+None*1+0x665a7b],0x6",
            " jne local:135",
            " lea edx,m4[esp+None*1+0x4]",
            " mov eax,m4[ecx+None*1+0x114]",
            "@@ -108,7 +108,7 @@",
            " call range.c::get_approx_2d_range_",
            " mov ebx,eax",
            " mov edx,m4[ecx+None*1+0x68]",
            "-mov edi,m4[esi+None*1+0x672aa0]",
            "+mov edi,m4[esi+None*1+0x665ab0]",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv edi"
          ]
        },
        {
          "symbol": "drweapon.c::fire_randomiser_",
          "source": "E:\\apache\\source\\weapons\\drweapon.c",
          "first": "0x44ad4c",
          "second": "0x44b0cc",
          "first_instruction_count": 64,
          "second_instruction_count": 64,
          "diff": [
            "--- 0x44ad4c",
            "+++ 0x44b0cc",
            "@@ -8,8 +8,8 @@",
            " shl eax,0x2",
            " add eax,edi",
            " shl eax,0x3",
            "-mov dl,m1[eax+None*1+0x672a68]",
            "-mov ecx,m4[eax+None*1+0x672ab0]",
            "+mov dl,m1[eax+None*1+0x665a78]",
            "+mov ecx,m4[eax+None*1+0x665ac0]",
            " test dl,0x1",
            " jne local:39",
            " mov edx,ecx",
            "@@ -38,7 +38,7 @@",
            " pop ecx",
            " ret ",
            " xor edx,edx",
            "-mov dl,m1[eax+None*1+0x672a6a]",
            "+mov dl,m1[eax+None*1+0x665a7a]",
            " call forces.c::get_forces_burst_size_modifier_",
            " imul edx,eax",
            " mov ebx,0x64",
            "@@ -58,7 +58,7 @@",
            " sub eax,edi",
            " shl eax,0x2",
            " add eax,edi",
            "-mov ecx,m4[None+eax*8+0x672a78]",
            "+mov ecx,m4[None+eax*8+0x665a88]",
            " jmp local:14",
            " mov ebx,eax",
            " jmp local:50"
          ]
        },
        {
          "symbol": "drweapon.c::get_heading_bound_",
          "source": "E:\\apache\\source\\weapons\\drweapon.c",
          "first": "0x44aa8c",
          "second": "0x44ae0c",
          "first_instruction_count": 67,
          "second_instruction_count": 67,
          "diff": [
            "--- 0x44aa8c",
            "+++ 0x44ae0c",
            "@@ -11,7 +11,7 @@",
            " shl eax,0x2",
            " add eax,edx",
            " shl eax,0x3",
            "-test m1[eax+None*1+0x672a68],0x4",
            "+test m1[eax+None*1+0x665a78],0x4",
            " je local:43",
            " mov esi,m4[eax+None*1+winfo.c::_weapons_data]",
            " cmp esi,0x3",
            "@@ -24,7 +24,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-fild m4[None+eax*8+0x672a8c]",
            "+fild m4[None+eax*8+0x665a9c]",
            " faddp st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x0]",
            "@@ -39,7 +39,7 @@",
            " ret ",
            " cmp esi,0x4",
            " je local:18",
            "-mov eax,m4[eax+None*1+0x672ab8]",
            "+mov eax,m4[eax+None*1+0x665ac8]",
            " jmp local:19",
            " mov ecx,m4[eax+None*1+winfo.c::_weapons_data]",
            " cmp ecx,0x3",
            "@@ -49,13 +49,13 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov eax,m4[None+eax*8+0x672a8c]",
            "+mov eax,m4[None+eax*8+0x665a9c]",
            " add eax,ecx",
            " mov m4[esp+None*1+0x0],eax",
            " jmp local:30",
            " cmp ecx,0x4",
            " je local:46",
            "-mov ecx,m4[eax+None*1+0x672ab8]",
            "+mov ecx,m4[eax+None*1+0x665ac8]",
            " jmp local:47",
            " mov m4[esp+None*1+0x0],0x7fffffff",
            " mov eax,m4[esp+None*1+0x0]"
          ]
        },
        {
          "symbol": "drweapon.c::get_pitch_max_bound_",
          "source": "E:\\apache\\source\\weapons\\drweapon.c",
          "first": "0x44ac1c",
          "second": "0x44af9c",
          "first_instruction_count": 67,
          "second_instruction_count": 67,
          "diff": [
            "--- 0x44ac1c",
            "+++ 0x44af9c",
            "@@ -11,7 +11,7 @@",
            " shl eax,0x2",
            " add eax,edx",
            " shl eax,0x3",
            "-test m1[eax+None*1+0x672a68],0x4",
            "+test m1[eax+None*1+0x665a78],0x4",
            " je local:43",
            " mov esi,m4[eax+None*1+winfo.c::_weapons_data]",
            " cmp esi,0x3",
            "@@ -24,7 +24,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-fild m4[None+eax*8+0x672a88]",
            "+fild m4[None+eax*8+0x665a98]",
            " faddp st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x0]",
            "@@ -39,7 +39,7 @@",
            " ret ",
            " cmp esi,0x4",
            " je local:18",
            "-mov eax,m4[eax+None*1+0x672ab8]",
            "+mov eax,m4[eax+None*1+0x665ac8]",
            " jmp local:19",
            " mov ecx,m4[eax+None*1+winfo.c::_weapons_data]",
            " cmp ecx,0x3",
            "@@ -49,13 +49,13 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov eax,m4[None+eax*8+0x672a88]",
            "+mov eax,m4[None+eax*8+0x665a98]",
            " add eax,ecx",
            " mov m4[esp+None*1+0x0],eax",
            " jmp local:30",
            " cmp ecx,0x4",
            " je local:46",
            "-mov ecx,m4[eax+None*1+0x672ab8]",
            "+mov ecx,m4[eax+None*1+0x665ac8]",
            " jmp local:47",
            " mov m4[esp+None*1+0x0],0x40000000",
            " mov eax,m4[esp+None*1+0x0]"
          ]
        },
        {
          "symbol": "drweapon.c::get_pitch_min_bound_",
          "source": "E:\\apache\\source\\weapons\\drweapon.c",
          "first": "0x44ab54",
          "second": "0x44aed4",
          "first_instruction_count": 67,
          "second_instruction_count": 67,
          "diff": [
            "--- 0x44ab54",
            "+++ 0x44aed4",
            "@@ -11,7 +11,7 @@",
            " shl eax,0x2",
            " add eax,edx",
            " shl eax,0x3",
            "-test m1[eax+None*1+0x672a68],0x4",
            "+test m1[eax+None*1+0x665a78],0x4",
            " je local:43",
            " mov esi,m4[eax+None*1+winfo.c::_weapons_data]",
            " cmp esi,0x3",
            "@@ -24,7 +24,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-fild m4[None+eax*8+0x672a84]",
            "+fild m4[None+eax*8+0x665a94]",
            " fsubrp st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x0]",
            "@@ -39,7 +39,7 @@",
            " ret ",
            " cmp esi,0x4",
            " je local:18",
            "-mov eax,m4[eax+None*1+0x672ab8]",
            "+mov eax,m4[eax+None*1+0x665ac8]",
            " jmp local:19",
            " mov ecx,m4[eax+None*1+winfo.c::_weapons_data]",
            " cmp ecx,0x3",
            "@@ -49,13 +49,13 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov eax,m4[None+eax*8+0x672a84]",
            "+mov eax,m4[None+eax*8+0x665a94]",
            " sub eax,ecx",
            " mov m4[esp+None*1+0x0],eax",
            " jmp local:30",
            " cmp ecx,0x4",
            " je local:46",
            "-mov ecx,m4[eax+None*1+0x672ab8]",
            "+mov ecx,m4[eax+None*1+0x665ac8]",
            " jmp local:47",
            " mov m4[esp+None*1+0x0],0xc0000000",
            " mov eax,m4[esp+None*1+0x0]"
          ]
        },
        {
          "symbol": "drweapon.c::shoot_at_aircraft_",
          "source": "E:\\apache\\source\\weapons\\drweapon.c",
          "first": "0x44a630",
          "second": "0x44a9b0",
          "first_instruction_count": 327,
          "second_instruction_count": 327,
          "diff": [
            "--- 0x44a630",
            "+++ 0x44a9b0",
            "@@ -19,7 +19,7 @@",
            " sub eax,ebx",
            " shl eax,0x2",
            " add eax,ebx",
            "-mov al,m1[None+eax*8+0x672a6b]",
            "+mov al,m1[None+eax*8+0x665a7b]",
            " cmp al,0x1",
            " jb local:43",
            " ja local:34",
            "@@ -37,7 +37,7 @@",
            " mov ecx,m4[esp+None*1+0x54]",
            " cmp ecx,0x3200",
            " jge local:43",
            "-cmp m4[None+None*1+0xafaec4],0x0",
            "+cmp m4[None+None*1+0xae5574],0x0",
            " jne local:27",
            " cmp ecx,0x1e00",
            " jl local:27",
            "@@ -55,9 +55,9 @@",
            " shl eax,0x2",
            " add eax,edx",
            " shl eax,0x3",
            "-cmp ecx,m4[eax+None*1+0x672a94]",
            "+cmp ecx,m4[eax+None*1+0x665aa4]",
            " jl local:27",
            "-cmp ecx,m4[eax+None*1+0x672a98]",
            "+cmp ecx,m4[eax+None*1+0x665aa8]",
            " jg local:27",
            " mov ebx,0x24",
            " lea eax,m4[esp+None*1+0x1c]",
            "@@ -66,7 +66,7 @@",
            " mov eax,m4[esp+None*1+0x74]",
            " call targets.c::get_target_object_number_",
            " lea edx,m4[None+eax*4+0x0]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[edx+eax*1+0x0]",
            " fild m4[eax+None*1+0x28]",
            " mov eax,m4[esp+None*1+0x18]",
            "@@ -114,7 +114,7 @@",
            " call targets.c::get_target_speed_",
            " lea ecx,m4[esp+None*1+0x60]",
            " push eax",
            "-mov edx,m4[ebx+None*1+0x672aa0]",
            "+mov edx,m4[ebx+None*1+0x665ab0]",
            " lea ebx,m4[esp+None*1+0x58]",
            " lea eax,m4[esp+None*1+0x1c]",
            " call intercpt.c::get_intercept_point_",
            "@@ -138,7 +138,7 @@",
            " mov eax,m4[esp+None*1+0x74]",
            " call targets.c::get_target_object_number_",
            " lea edx,m4[None+eax*4+0x0]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[edx+eax*1+0x0]",
            " fild m4[eax+None*1+0x28]",
            " fmul m8[None+None*1+constant:9a9999999999e93f]",
            "@@ -162,12 +162,12 @@",
            " shl eax,0x2",
            " add ecx,eax",
            " shl ecx,0x3",
            "-test m1[ecx+None*1+0x672a68],0x4",
            "+test m1[ecx+None*1+0x665a78],0x4",
            " je local:227",
            " cmp m4[ecx+None*1+winfo.c::_weapons_data],0x2",
            " jne local:227",
            " mov eax,m4[esp+None*1+0x40]",
            "-mov edx,m4[ecx+None*1+0x672a7c]",
            "+mov edx,m4[ecx+None*1+0x665a8c]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            "@@ -177,7 +177,7 @@",
            " add edx,ebx",
            " sub eax,edx",
            " mov m4[esp+None*1+0x28],eax",
            "-mov edx,m4[ecx+None*1+0x672a7c]",
            "+mov edx,m4[ecx+None*1+0x665a8c]",
            " mov eax,m4[esp+None*1+0x44]",
            " imul edx",
            " shld edx,eax,0x1",
            "@@ -188,7 +188,7 @@",
            " add edx,esi",
            " sub eax,edx",
            " mov m4[esp+None*1+0x2c],eax",
            "-mov edx,m4[ecx+None*1+0x672a7c]",
            "+mov edx,m4[ecx+None*1+0x665a8c]",
            " mov eax,m4[esp+None*1+0x48]",
            " imul edx",
            " shld edx,eax,0x1",
            "@@ -249,7 +249,7 @@",
            " sub eax,ecx",
            " shl eax,0x2",
            " add eax,ecx",
            "-test m1[None+eax*8+0x672a68],0x4",
            "+test m1[None+eax*8+0x665a78],0x4",
            " je local:264",
            " mov ecx,0xc",
            " lea esi,m4[esp+None*1+0x40]"
          ]
        },
        {
          "symbol": "dsound.c::create_sound_buffer_",
          "source": "E:\\library\\sound\\dsound.c",
          "first": "0x47ad2c",
          "second": "0x478ecc",
          "first_instruction_count": 16,
          "second_instruction_count": 16,
          "diff": [
            "--- 0x47ad2c",
            "+++ 0x478ecc",
            "@@ -9,7 +9,7 @@",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            " mov m4[esp+None*1+0x1c],ebx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " mov eax,m4[esp+None*1+0x8]",
            " add esp,0x10",
            " pop ecx"
          ]
        },
        {
          "symbol": "dsound.c::duplicate_sound_buffer_",
          "source": "E:\\library\\sound\\dsound.c",
          "first": "0x47ae88",
          "second": "0x479028",
          "first_instruction_count": 16,
          "second_instruction_count": 16,
          "diff": [
            "--- 0x47ae88",
            "+++ 0x479028",
            "@@ -8,7 +8,7 @@",
            " push 0x400",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " mov eax,m4[esp+None*1+0x8]",
            " add esp,0x10",
            " pop edx"
          ]
        },
        {
          "symbol": "dsound.c::free_sound_buffer_",
          "source": "E:\\library\\sound\\dsound.c",
          "first": "0x47aeec",
          "second": "0x47908c",
          "first_instruction_count": 11,
          "second_instruction_count": 11,
          "diff": [
            "--- 0x47aeec",
            "+++ 0x47908c",
            "@@ -5,7 +5,7 @@",
            " push 0x400",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " pop edx",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "dtarget.c::drone_aquire_air_target_",
          "source": "E:\\apache\\source\\warmodel\\dtarget.c",
          "first": "0x466814",
          "second": "0x4669b4",
          "first_instruction_count": 116,
          "second_instruction_count": 116,
          "diff": [
            "--- 0x466814",
            "+++ 0x4669b4",
            "@@ -97,7 +97,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-cmp m4[None+eax*8+0x672a64],0x2",
            "+cmp m4[None+eax*8+0x665a74],0x2",
            " je local:70",
            " jmp local:27",
            " mov edx,0x1"
          ]
        },
        {
          "symbol": "dtimer.c::_windows_timer_interrupt@20",
          "source": "E:\\library\\system\\dtimer.c",
          "first": "0x4805e0",
          "second": "0x47e780",
          "first_instruction_count": 56,
          "second_instruction_count": 56,
          "diff": [
            "--- 0x4805e0",
            "+++ 0x47e780",
            "@@ -7,10 +7,10 @@",
            " jne local:44",
            " cmp m4[None+None*1+start.c::_application_active],0x0",
            " je local:31",
            "-mov ebp,m4[None+None*1+0x744bc0]",
            "+mov ebp,m4[None+None*1+0x72f690]",
            " inc ebp",
            " xor eax,eax",
            "-mov m4[None+None*1+0x744bc0],ebp",
            "+mov m4[None+None*1+0x72f690],ebp",
            " cmp m1[edx+None*1+16bit.c::_db_16bit],0x0",
            " jne local:36",
            " inc edx",
            "@@ -18,7 +18,7 @@",
            " cmp edx,0x80",
            " jl local:13",
            " mov ebx,0x5",
            "-mov eax,m4[None+None*1+0x744bc0]",
            "+mov eax,m4[None+None*1+0x72f690]",
            " xor esi,esi",
            " mov m4[esp+None*1+0x0],ebx",
            " mov m4[esp+None*1+0x8],esi",
            "@@ -34,7 +34,7 @@",
            " pop esi",
            " pop ebx",
            " ret 0x14",
            "-inc m4[eax+None*1+0x7449c0]",
            "+inc m4[eax+None*1+0x72f490]",
            " jmp local:15",
            " call winjoy.c::emulate_mouse_using_joystick_",
            " add esp,0x14",
            "@@ -47,7 +47,7 @@",
            " je local:31",
            " push ecx",
            " xor esi,esi",
            "-call m4[None+None*1+constant:fc470d00]",
            "+call m4[None+None*1+constant:c4760c00]",
            " mov m4[None+None*1+dtimer.c::_timer_identification],esi",
            " add esp,0x14",
            " pop ebp"
          ]
        },
        {
          "symbol": "dtimer.c::deinitialise_windows_timer_",
          "source": "E:\\library\\system\\dtimer.c",
          "first": "0x4806c0",
          "second": "0x47e860",
          "first_instruction_count": 16,
          "second_instruction_count": 16,
          "diff": [
            "--- 0x4806c0",
            "+++ 0x47e860",
            "@@ -8,7 +8,7 @@",
            " push ebx",
            " push edx",
            " xor ebx,ebx",
            "-call m4[None+None*1+constant:fc470d00]",
            "+call m4[None+None*1+constant:c4760c00]",
            " mov m4[None+None*1+dtimer.c::_timer_identification],ebx",
            " pop ebx",
            " pop ecx"
          ]
        },
        {
          "symbol": "dtimer.c::initialise_windows_timer_",
          "source": "E:\\library\\system\\dtimer.c",
          "first": "0x480694",
          "second": "0x47e834",
          "first_instruction_count": 18,
          "second_instruction_count": 18,
          "diff": [
            "--- 0x480694",
            "+++ 0x47e834",
            "@@ -5,7 +5,7 @@",
            " push dtimer.c::_windows_timer_interrupt@20",
            " push 0x1",
            " push 0xa",
            "-call m4[None+None*1+constant:0c480d00]",
            "+call m4[None+None*1+constant:d4760c00]",
            " mov m4[None+None*1+dtimer.c::_timer_identification],eax",
            " test eax,eax",
            " jne local:14"
          ]
        },
        {
          "symbol": "dweapons.c::calculate_drone_air_weapon_max_range_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x429480",
          "second": "0x429800",
          "first_instruction_count": 82,
          "second_instruction_count": 82,
          "diff": [
            "--- 0x429480",
            "+++ 0x429800",
            "@@ -34,7 +34,7 @@",
            " add eax,edx",
            " mov dh,m1[ecx+None*1+0x1c6]",
            " or dh,0x1",
            "-mov esi,m4[None+eax*8+0x672a98]",
            "+mov esi,m4[None+eax*8+0x665aa8]",
            " mov m1[ecx+None*1+0x1c6],dh",
            " cmp m4[ecx+None*1+0x18c],0x0",
            " jle local:51",
            "@@ -46,7 +46,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-cmp esi,m4[None+eax*8+0x672a98]",
            "+cmp esi,m4[None+eax*8+0x665aa8]",
            " jle local:64",
            " or m1[ecx+None*1+0x1c6],0x1",
            " mov m4[ecx+None*1+0x1bc],esi",
            "@@ -70,7 +70,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov esi,m4[None+eax*8+0x672a98]",
            "+mov esi,m4[None+eax*8+0x665aa8]",
            " or m1[ecx+None*1+0x1c6],0x1",
            " mov m4[ecx+None*1+0x1bc],esi",
            " pop ebx"
          ]
        },
        {
          "symbol": "dweapons.c::calculate_drone_air_weapon_min_range_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x429570",
          "second": "0x4298f0",
          "first_instruction_count": 64,
          "second_instruction_count": 64,
          "diff": [
            "--- 0x429570",
            "+++ 0x4298f0",
            "@@ -28,7 +28,7 @@",
            " or dh,0x1",
            " add eax,ecx",
            " mov m1[edi+None*1+0x1c6],dh",
            "-mov ebp,m4[None+eax*8+0x672a94]",
            "+mov ebp,m4[None+eax*8+0x665aa4]",
            " mov eax,esi",
            " xor edx,edx",
            " call dinfo.c::get_drone_header_weapon_type_",
            "@@ -40,7 +40,7 @@",
            " shl eax,0x2",
            " add eax,ecx",
            " shl eax,0x3",
            "-mov ebx,m4[eax+None*1+0x672a94]",
            "+mov ebx,m4[eax+None*1+0x665aa4]",
            " cmp ebp,ebx",
            " jle local:46",
            " mov ebp,ebx"
          ]
        },
        {
          "symbol": "dweapons.c::calculate_drone_ground_weapon_max_range_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x429634",
          "second": "0x4299b4",
          "first_instruction_count": 52,
          "second_instruction_count": 52,
          "diff": [
            "--- 0x429634",
            "+++ 0x4299b4",
            "@@ -21,7 +21,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov ebx,m4[None+eax*8+0x672a98]",
            "+mov ebx,m4[None+eax*8+0x665aa8]",
            " or m1[ecx+None*1+0x1c6],0x2",
            " cmp esi,ebx",
            " jle local:28",
            "@@ -47,6 +47,6 @@",
            " add eax,edx",
            " mov dh,m1[ecx+None*1+0x1c6]",
            " or dh,0x2",
            "-mov esi,m4[None+eax*8+0x672a98]",
            "+mov esi,m4[None+eax*8+0x665aa8]",
            " mov m1[ecx+None*1+0x1c6],dh",
            " jmp local:13"
          ]
        },
        {
          "symbol": "dweapons.c::calculate_drone_ground_weapon_min_range_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x4296d4",
          "second": "0x429a54",
          "first_instruction_count": 52,
          "second_instruction_count": 52,
          "diff": [
            "--- 0x4296d4",
            "+++ 0x429a54",
            "@@ -21,7 +21,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov ebx,m4[None+eax*8+0x672a94]",
            "+mov ebx,m4[None+eax*8+0x665aa4]",
            " or m1[ecx+None*1+0x1c6],0x2",
            " cmp esi,ebx",
            " jge local:28",
            "@@ -47,6 +47,6 @@",
            " add eax,edx",
            " mov dh,m1[ecx+None*1+0x1c6]",
            " or dh,0x2",
            "-mov esi,m4[None+eax*8+0x672a94]",
            "+mov esi,m4[None+eax*8+0x665aa4]",
            " mov m1[ecx+None*1+0x1c6],dh",
            " jmp local:13"
          ]
        },
        {
          "symbol": "dweapons.c::decoy_release_delay_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x427e44",
          "second": "0x4281c4",
          "first_instruction_count": 25,
          "second_instruction_count": 25,
          "diff": [
            "--- 0x427e44",
            "+++ 0x4281c4",
            "@@ -5,7 +5,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov ecx,m4[None+eax*8+0x672ab0]",
            "+mov ecx,m4[None+eax*8+0x665ac0]",
            " mov edx,ecx",
            " call forces.c::get_forces_decoy_interval_modifier_",
            " imul edx,eax"
          ]
        },
        {
          "symbol": "dweapons.c::drone_can_fire_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x4280c8",
          "second": "0x428448",
          "first_instruction_count": 57,
          "second_instruction_count": 57,
          "diff": [
            "--- 0x4280c8",
            "+++ 0x428448",
            "@@ -33,7 +33,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-cmp m1[None+eax*8+0x672a6b],0x3",
            "+cmp m1[None+eax*8+0x665a7b],0x3",
            " jne local:39",
            " test m1[ecx+None*1+0x1c5],0x80",
            " jne local:9",
            "@@ -41,10 +41,10 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov esi,m4[None+eax*8+0x672a64]",
            "+mov esi,m4[None+eax*8+0x665a74]",
            " cmp esi,0x3",
            " jne local:51",
            "-mov edi,m4[None+None*1+0xafaed8]",
            "+mov edi,m4[None+None*1+0xae5588]",
            " cmp edi,0x2",
            " je local:9",
            " cmp edi,esi"
          ]
        },
        {
          "symbol": "dweapons.c::drone_do_chaff_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x427cd0",
          "second": "0x428050",
          "first_instruction_count": 42,
          "second_instruction_count": 42,
          "diff": [
            "--- 0x427cd0",
            "+++ 0x428050",
            "@@ -3,16 +3,16 @@",
            " push edx",
            " push esi",
            " mov esi,eax",
            "-cmp m4[None+None*1+0x672d38],0x4",
            "+cmp m4[None+None*1+0x665d48],0x4",
            " jne local:28",
            "-mov ecx,m4[None+None*1+0x672d90]",
            "+mov ecx,m4[None+None*1+0x665da0]",
            " mov eax,0x7",
            " lea ebx,m4[esi+None*1+0xe4]",
            " mov edx,m4[esi+None*1+0x10]",
            " call launch.c::construct_simple_weapon_",
            " call launch.c::launch_round_",
            " add eax,0x18",
            "-mov ecx,m4[None+None*1+0x672d88]",
            "+mov ecx,m4[None+None*1+0x665d98]",
            " mov m4[esi+None*1+0x144],eax",
            " mov eax,m4[None+None*1+gamedata.c::_game_clock_time]",
            " mov m4[esi+None*1+0x13c],0x2"
          ]
        },
        {
          "symbol": "dweapons.c::drone_do_flare_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x427dbc",
          "second": "0x42813c",
          "first_instruction_count": 42,
          "second_instruction_count": 42,
          "diff": [
            "--- 0x427dbc",
            "+++ 0x42813c",
            "@@ -3,16 +3,16 @@",
            " push edx",
            " push esi",
            " mov esi,eax",
            "-cmp m4[None+None*1+0x672da0],0x4",
            "+cmp m4[None+None*1+0x665db0],0x4",
            " jne local:28",
            "-mov ecx,m4[None+None*1+0x672df8]",
            "+mov ecx,m4[None+None*1+0x665e08]",
            " mov eax,0x8",
            " lea ebx,m4[esi+None*1+0xe4]",
            " mov edx,m4[esi+None*1+0x10]",
            " call launch.c::construct_simple_weapon_",
            " call launch.c::launch_round_",
            " add eax,0x18",
            "-mov ecx,m4[None+None*1+0x672df0]",
            "+mov ecx,m4[None+None*1+0x665e00]",
            " mov m4[esi+None*1+0x174],eax",
            " mov eax,m4[None+None*1+gamedata.c::_game_clock_time]",
            " mov m4[esi+None*1+0x16c],0x2"
          ]
        },
        {
          "symbol": "dweapons.c::drone_drop_laser_bombs_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x428170",
          "second": "0x4284f0",
          "first_instruction_count": 150,
          "second_instruction_count": 150,
          "diff": [
            "--- 0x428170",
            "+++ 0x4284f0",
            "@@ -63,7 +63,7 @@",
            " call vector.c::get_3d_normalised_unit_vector_",
            " lea eax,m4[ebp+None*1+0xffffffd4]",
            " call vector.c::calculate_angles_between_3d_vectors_",
            "-mov eax,m4[None+None*1+0x673628]",
            "+mov eax,m4[None+None*1+0x666638]",
            " cmp eax,0x3",
            " jne local:110",
            " xor eax,eax",
            "@@ -81,7 +81,7 @@",
            " fnstsw ax",
            " sahf ",
            " ja local:16",
            "-mov ecx,m4[None+None*1+0x673628]",
            "+mov ecx,m4[None+None*1+0x666638]",
            " cmp ecx,0x3",
            " jne local:114",
            " xor eax,eax",
            "@@ -110,11 +110,11 @@",
            " ret ",
            " cmp eax,0x4",
            " je local:68",
            "-mov eax,m4[None+None*1+0x673680]",
            "+mov eax,m4[None+None*1+0x666690]",
            " jmp local:69",
            " cmp ecx,0x4",
            " je local:86",
            "-mov eax,m4[None+None*1+0x673680]",
            "+mov eax,m4[None+None*1+0x666690]",
            " jmp local:87",
            " mov esi,m4[ebp+None*1+0xfffffff4]",
            " mov ebx,m4[ebp+None*1+0xffffffe8]"
          ]
        },
        {
          "symbol": "dweapons.c::get_drone_chaffed_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x427be0",
          "second": "0x427f60",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x427be0",
            "+++ 0x427f60",
            "@@ -5,7 +5,7 @@",
            " push ebx",
            " mov edx,m4[None+None*1+gamedata.c::_game_clock_time]",
            " mov ecx,m4[eax+None*1+0xd4]",
            "-mov ebx,m4[None+None*1+0x672d88]",
            "+mov ebx,m4[None+None*1+0x665d98]",
            " sub edx,ecx",
            " sub edx,ebx",
            " cmp edx,0x3e8"
          ]
        },
        {
          "symbol": "dweapons.c::get_drone_flared_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x427c28",
          "second": "0x427fa8",
          "first_instruction_count": 24,
          "second_instruction_count": 24,
          "diff": [
            "--- 0x427c28",
            "+++ 0x427fa8",
            "@@ -5,7 +5,7 @@",
            " push ebx",
            " mov edx,m4[None+None*1+gamedata.c::_game_clock_time]",
            " mov ecx,m4[eax+None*1+0xd8]",
            "-mov ebx,m4[None+None*1+0x672df0]",
            "+mov ebx,m4[None+None*1+0x665e00]",
            " sub edx,ecx",
            " sub edx,ebx",
            " cmp edx,0x3e8"
          ]
        },
        {
          "symbol": "dweapons.c::make_drone_fire_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x427eb4",
          "second": "0x428234",
          "first_instruction_count": 175,
          "second_instruction_count": 175,
          "diff": [
            "--- 0x427eb4",
            "+++ 0x428234",
            "@@ -63,7 +63,7 @@",
            " mov ebx,m4[esp+None*1+0x1c]",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv m4[ebx+None*1+0x672aa0]",
            "+idiv m4[ebx+None*1+0x665ab0]",
            " mov edx,eax",
            " mov eax,esi",
            " call targets.c::get_target_speed_",
            "@@ -133,7 +133,7 @@",
            " ret ",
            " cmp ebx,0x1d",
            " je local:160",
            "-test m1[eax+None*1+0x672a68],0x2",
            "+test m1[eax+None*1+0x665a78],0x2",
            " jne local:139",
            " cmp m4[ecx+None*1+0x178],0x0",
            " jne local:151"
          ]
        },
        {
          "symbol": "dweapons.c::notify_drone_missile_locked_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x4283dc",
          "second": "0x42875c",
          "first_instruction_count": 79,
          "second_instruction_count": 79,
          "diff": [
            "--- 0x4283dc",
            "+++ 0x42875c",
            "@@ -36,7 +36,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov eax,m4[None+eax*8+0x672a64]",
            "+mov eax,m4[None+eax*8+0x665a74]",
            " cmp eax,0x2",
            " jb local:50",
            " ja local:62"
          ]
        },
        {
          "symbol": "dweapons.c::set_best_air_weapon_for_target_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x429104",
          "second": "0x429484",
          "first_instruction_count": 104,
          "second_instruction_count": 104,
          "diff": [
            "--- 0x429104",
            "+++ 0x429484",
            "@@ -51,9 +51,9 @@",
            " mov eax,esi",
            " call dinfo.c::get_drone_header_weapon_type_",
            " imul eax,eax,0x68",
            "-cmp edi,m4[eax+None*1+0x672a98]",
            "+cmp edi,m4[eax+None*1+0x665aa8]",
            " jge local:58",
            "-cmp edi,m4[eax+None*1+0x672a94]",
            "+cmp edi,m4[eax+None*1+0x665aa4]",
            " jle local:58",
            " mov m4[esp+None*1+0x0],ecx",
            " dec ecx",
            "@@ -71,9 +71,9 @@",
            " shl eax,0x2",
            " add eax,ecx",
            " shl eax,0x3",
            "-cmp edi,m4[eax+None*1+0x672a98]",
            "+cmp edi,m4[eax+None*1+0x665aa8]",
            " jge local:79",
            "-cmp edi,m4[eax+None*1+0x672a94]",
            "+cmp edi,m4[eax+None*1+0x665aa4]",
            " jle local:79",
            " xor edi,edi",
            " mov m4[esp+None*1+0x0],edi"
          ]
        },
        {
          "symbol": "dweapons.c::set_best_ground_weapon_for_target_",
          "source": "E:\\apache\\source\\drone\\dweapons.c",
          "first": "0x428f40",
          "second": "0x4292c0",
          "first_instruction_count": 146,
          "second_instruction_count": 146,
          "diff": [
            "--- 0x428f40",
            "+++ 0x4292c0",
            "@@ -85,9 +85,9 @@",
            " shl eax,0x2",
            " add eax,edx",
            " shl eax,0x3",
            "-cmp ebx,m4[eax+None*1+0x672a94]",
            "+cmp ebx,m4[eax+None*1+0x665aa4]",
            " jle local:67",
            "-cmp ebx,m4[eax+None*1+0x672a98]",
            "+cmp ebx,m4[eax+None*1+0x665aa8]",
            " jge local:67",
            " mov eax,m4[ecx+None*1+0x8]",
            " xor edx,edx",
            "@@ -109,7 +109,7 @@",
            " sub eax,ebx",
            " shl eax,0x2",
            " add eax,ebx",
            "-cmp esi,m4[None+eax*8+0x672a94]",
            "+cmp esi,m4[None+eax*8+0x665aa4]",
            " jle local:69",
            " mov edx,0x1",
            " mov eax,m4[ecx+None*1+0x8]",
            "@@ -119,7 +119,7 @@",
            " sub eax,ebx",
            " shl eax,0x2",
            " add eax,ebx",
            "-cmp esi,m4[None+eax*8+0x672a98]",
            "+cmp esi,m4[None+eax*8+0x665aa8]",
            " jge local:69",
            " mov eax,m4[ecx+None*1+0x4c]",
            " mov m1[ecx+None*1+0x188],0x1"
          ]
        },
        {
          "symbol": "dynamic.c::insert_dynamic_ground_object_",
          "source": "E:\\apache\\source\\gameplay\\dynamic.c",
          "first": "0x444a44",
          "second": "0x444dc4",
          "first_instruction_count": 197,
          "second_instruction_count": 197,
          "diff": [
            "--- 0x444a44",
            "+++ 0x444dc4",
            "@@ -15,7 +15,7 @@",
            " cmp edx,0xfffffff",
            " jg local:86",
            " mov eax,m4[esp+None*1+0x8]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ebp,m4[edx+eax*4+0x0]",
            " mov eax,m4[esp+None*1+0x1c]",
            " sar eax,0x16",
            "@@ -77,7 +77,7 @@",
            " dec ax",
            " je local:155",
            " xor ebx,ebx",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov bx,m2[ecx+None*1+0x0]",
            " mov edx,m4[edx+ebx*4+0x0]",
            " cmp ebp,m4[edx+None*1+0x28]"
          ]
        },
        {
          "symbol": "elevate.c::position_chain_gun_",
          "source": "E:\\apache\\source\\weapons\\elevate.c",
          "first": "0x44b0a0",
          "second": "0x44b420",
          "first_instruction_count": 342,
          "second_instruction_count": 342,
          "diff": [
            "--- 0x44b0a0",
            "+++ 0x44b420",
            "@@ -47,11 +47,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xae972c]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -65,15 +65,15 @@",
            " mov eax,m4[esp+None*1+0x1c]",
            " mov ebp,edx",
            " mov m4[esp+None*1+0x34],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -87,15 +87,15 @@",
            " mov eax,m4[esp+None*1+0x1c]",
            " mov m4[esp+None*1+0x40],edx",
            " mov m4[esp+None*1+0x38],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xae9740]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -198,7 +198,7 @@",
            " cmp m4[None+None*1+elevate.c::_chain_gun_flash_object],0x0",
            " jne local:206",
            " mov eax,m4[None+None*1+elevate.c::_chain_gun_barrel_object]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ecx,m4[eax+None*1+0x0]",
            " mov esi,m4[edx+ecx*4+0x0]",
            " mov esi,m4[esi+None*1+0xb0]",
            "@@ -220,7 +220,7 @@",
            " mov m4[None+None*1+elevate.c::_chain_gun_flash_object],eax",
            " mov m4[eax+None*1+0xc],elevate.c::_flash_object_rel_vp",
            " mov eax,m4[None+None*1+elevate.c::_chain_gun_barrel_object]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[eax+None*1+0x0]",
            " mov esi,m4[edx+eax*4+0x0]",
            " mov esi,m4[esi+None*1+0x2c]",
            "@@ -241,7 +241,7 @@",
            " mov eax,m4[eax+None*1+0x8]",
            " mov m4[None+None*1+apweapon.c::_chain_gun_vp],eax",
            " jmp local:12",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " je local:17",
            " lea edx,m4[esp+None*1+0x10]",
            " mov eax,target.c::_current_target",
            "@@ -254,9 +254,9 @@",
            " mov eax,m4[esp+None*1+0x10]",
            " mov m4[None+None*1+elevate.c::_chain_gun_intercept],eax",
            " mov eax,m4[esp+None*1+0x14]",
            "-mov m4[None+None*1+0x62e804],eax",
            "+mov m4[None+None*1+0x621814],eax",
            " mov eax,m4[esp+None*1+0x18]",
            "-mov m4[None+None*1+0x62e808],eax",
            "+mov m4[None+None*1+0x621818],eax",
            " mov ecx,m4[None+None*1+elevate.c::_chain_gun_barrel_object]",
            " mov edx,m4[ecx+None*1+0x8]",
            " mov eax,m4[None+None*1+elevate.c::_chain_gun_intercept]",
            "@@ -264,12 +264,12 @@",
            " sub eax,edi",
            " mov m4[esp+None*1+0x1c],eax",
            " mov edx,m4[ecx+None*1+0x8]",
            "-mov eax,m4[None+None*1+0x62e804]",
            "+mov eax,m4[None+None*1+0x621814]",
            " mov ebp,m4[edx+None*1+0x4]",
            " sub eax,ebp",
            " mov m4[esp+None*1+0x20],eax",
            " mov edx,m4[ecx+None*1+0x8]",
            "-mov eax,m4[None+None*1+0x62e808]",
            "+mov eax,m4[None+None*1+0x621818]",
            " mov ecx,m4[edx+None*1+0x8]",
            " sub eax,ecx",
            " mov m4[esp+None*1+0x24],eax",
            "@@ -280,7 +280,7 @@",
            " push elevate.c::_chain_gun_intercept",
            " push 0x3",
            " lea ebx,m4[esp+None*1+0x18]",
            "-mov edx,m4[None+None*1+0x672b08]",
            "+mov edx,m4[None+None*1+0x665b18]",
            " push ecx",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            " lea ecx,m4[esp+None*1+0x34]"
          ]
        },
        {
          "symbol": "elevate.c::update_hydra_elevation_",
          "source": "E:\\apache\\source\\weapons\\elevate.c",
          "first": "0x44ae40",
          "second": "0x44b1c0",
          "first_instruction_count": 199,
          "second_instruction_count": 199,
          "diff": [
            "--- 0x44ae40",
            "+++ 0x44b1c0",
            "@@ -4,7 +4,7 @@",
            " push ebp",
            " sub esp,0x20",
            " xor edx,edx",
            "-mov ecx,m4[None+None*1+0x5b3c6c]",
            "+mov ecx,m4[None+None*1+0x5a6c7c]",
            " mov m4[None+None*1+elevate.c::_hydras_locked],edx",
            " test ecx,ecx",
            " je local:153",
            "@@ -18,7 +18,7 @@",
            " call targets.c::get_target_position_",
            " mov eax,target.c::_current_target",
            " call targets.c::get_target_object_number_",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edx,m4[edx+eax*4+0x0]",
            " mov eax,m4[edx+None*1+0x28]",
            " mov edx,eax",
            "@@ -58,11 +58,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xae972c]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -75,15 +75,15 @@",
            " mov ebx,m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[esp+None*1+0x20],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -96,15 +96,15 @@",
            " mov ebx,m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[esp+None*1+0x24],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xae9740]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "event.c::get_event_",
          "source": "E:\\library\\system\\event.c",
          "first": "0x47b0b4",
          "second": "0x479254",
          "first_instruction_count": 109,
          "second_instruction_count": 109,
          "diff": [
            "--- 0x47b0b4",
            "+++ 0x479254",
            "@@ -1,8 +1,8 @@",
            " push edx",
            " mov edx,eax",
            " cli ",
            "-mov al,m1[None+None*1+0x744bd9]",
            "-cmp al,m1[None+None*1+0x744bd8]",
            "+mov al,m1[None+None*1+0x72f6a9]",
            "+cmp al,m1[None+None*1+0x72f6a8]",
            " je local:104",
            " push edi",
            " push ecx",
            "@@ -12,7 +12,7 @@",
            " lea eax,m4[None+ecx*4+0x0]",
            " add eax,ecx",
            " shl eax,0x2",
            "-add eax,0x744bdc",
            "+add eax,0x72f6ac",
            " mov ecx,m4[eax+None*1+0x0]",
            " mov m4[edx+None*1+0x0],ecx",
            " mov ecx,m4[eax+None*1+0x4]",
            "@@ -23,24 +23,24 @@",
            " mov m4[edx+None*1+0xc],ecx",
            " mov eax,m4[eax+None*1+0x10]",
            " mov m4[edx+None*1+0x10],eax",
            "-mov bl,m1[None+None*1+0x744bd9]",
            "-mov ecx,m4[None+None*1+0x744bd4]",
            "+mov bl,m1[None+None*1+0x72f6a9]",
            "+mov ecx,m4[None+None*1+0x72f6a4]",
            " inc bl",
            " dec ecx",
            "-mov m1[None+None*1+0x744bd9],bl",
            "+mov m1[None+None*1+0x72f6a9],bl",
            " mov ebx,m4[edx+None*1+0x0]",
            "-mov m4[None+None*1+0x744bd4],ecx",
            "+mov m4[None+None*1+0x72f6a4],ecx",
            " cmp ebx,0x1",
            " je local:57",
            " cmp m4[edx+None*1+0x0],0x2",
            " jne local:70",
            "-mov bh,m1[None+None*1+0x744bd8]",
            "-cmp bh,m1[None+None*1+0x744bd9]",
            "+mov bh,m1[None+None*1+0x72f6a8]",
            "+cmp bh,m1[None+None*1+0x72f6a9]",
            " je local:70",
            " xor eax,eax",
            "-mov al,m1[None+None*1+0x744bd9]",
            "+mov al,m1[None+None*1+0x72f6a9]",
            " imul eax,eax,0x14",
            "-add eax,0x744bdc",
            "+add eax,0x72f6ac",
            " mov edi,m4[eax+None*1+0x0]",
            " cmp edi,0x2",
            " jne local:61",
            "@@ -52,8 +52,8 @@",
            " mov m4[edx+None*1+0xc],ecx",
            " mov eax,m4[eax+None*1+0x10]",
            " mov m4[edx+None*1+0x10],eax",
            "-dec m4[None+None*1+0x744bd4]",
            "-inc m1[None+None*1+0x744bd9]",
            "+dec m4[None+None*1+0x72f6a4]",
            "+inc m1[None+None*1+0x72f6a9]",
            " jmp local:36",
            " mov eax,m4[edx+None*1+0x4]",
            " call keyboard.c::get_key_ascii_",
            "@@ -61,22 +61,22 @@",
            " jmp local:34",
            " cmp edi,0x5",
            " jne local:70",
            "-mov cl,m1[None+None*1+0x744bd9]",
            "-mov eax,m4[None+None*1+0x744bd4]",
            "+mov cl,m1[None+None*1+0x72f6a9]",
            "+mov eax,m4[None+None*1+0x72f6a4]",
            " inc cl",
            " dec eax",
            "-mov m1[None+None*1+0x744bd9],cl",
            "-mov m4[None+None*1+0x744bd4],eax",
            "+mov m1[None+None*1+0x72f6a9],cl",
            "+mov m4[None+None*1+0x72f6a4],eax",
            " jmp local:36",
            " cmp m4[edx+None*1+0x0],0x5",
            " jne local:96",
            "-mov al,m1[None+None*1+0x744bd9]",
            "-cmp al,m1[None+None*1+0x744bd8]",
            "+mov al,m1[None+None*1+0x72f6a9]",
            "+cmp al,m1[None+None*1+0x72f6a8]",
            " je local:96",
            " xor eax,eax",
            "-mov al,m1[None+None*1+0x744bd9]",
            "+mov al,m1[None+None*1+0x72f6a9]",
            " imul eax,eax,0x14",
            "-add eax,0x744bdc",
            "+add eax,0x72f6ac",
            " cmp m4[eax+None*1+0x0],0x5",
            " jne local:96",
            " mov ecx,m4[eax+None*1+0x4]",
            "@@ -87,12 +87,12 @@",
            " mov m4[edx+None*1+0xc],ecx",
            " mov eax,m4[eax+None*1+0x10]",
            " mov m4[edx+None*1+0x10],eax",
            "-mov edi,m4[None+None*1+0x744bd4]",
            "-mov bl,m1[None+None*1+0x744bd9]",
            "+mov edi,m4[None+None*1+0x72f6a4]",
            "+mov bl,m1[None+None*1+0x72f6a9]",
            " dec edi",
            " inc bl",
            "-mov m4[None+None*1+0x744bd4],edi",
            "-mov m1[None+None*1+0x744bd9],bl",
            "+mov m4[None+None*1+0x72f6a4],edi",
            "+mov m1[None+None*1+0x72f6a9],bl",
            " jmp local:72",
            " sti ",
            " cld "
          ]
        },
        {
          "symbol": "event.c::intr_post_event_",
          "source": "E:\\library\\system\\event.c",
          "first": "0x47b034",
          "second": "0x4791d4",
          "first_instruction_count": 43,
          "second_instruction_count": 43,
          "diff": [
            "--- 0x47b034",
            "+++ 0x4791d4",
            "@@ -3,10 +3,10 @@",
            " push edx",
            " mov edx,eax",
            " xor ecx,ecx",
            "-mov cl,m1[None+None*1+0x744bd8]",
            "+mov cl,m1[None+None*1+0x72f6a8]",
            " xor eax,eax",
            " lea ebx,m4[ecx+None*1+0x1]",
            "-mov al,m1[None+None*1+0x744bd9]",
            "+mov al,m1[None+None*1+0x72f6a9]",
            " and ebx,0xff",
            " cmp ebx,eax",
            " jne local:17",
            "@@ -18,7 +18,7 @@",
            " lea eax,m4[None+ecx*4+0x0]",
            " add eax,ecx",
            " shl eax,0x2",
            "-add eax,0x744bdc",
            "+add eax,0x72f6ac",
            " mov ecx,m4[edx+None*1+0x0]",
            " mov m4[eax+None*1+0x0],ecx",
            " mov ecx,m4[edx+None*1+0x4]",
            "@@ -30,13 +30,13 @@",
            " mov edx,m4[edx+None*1+0x10]",
            " mov m4[eax+None*1+0x10],edx",
            " mov eax,0x1",
            "-mov edx,m4[None+None*1+0x744bd0]",
            "-mov ecx,m4[None+None*1+0x744bd4]",
            "-mov m1[None+None*1+0x744bd8],bl",
            "+mov edx,m4[None+None*1+0x72f6a0]",
            "+mov ecx,m4[None+None*1+0x72f6a4]",
            "+mov m1[None+None*1+0x72f6a8],bl",
            " add edx,eax",
            " add ecx,eax",
            "-mov m4[None+None*1+0x744bd0],edx",
            "-mov m4[None+None*1+0x744bd4],ecx",
            "+mov m4[None+None*1+0x72f6a0],edx",
            "+mov m4[None+None*1+0x72f6a4],ecx",
            " pop edx",
            " pop ecx",
            " pop ebx"
          ]
        },
        {
          "symbol": "event.c::post_event_",
          "source": "E:\\library\\system\\event.c",
          "first": "0x47afb0",
          "second": "0x479150",
          "first_instruction_count": 48,
          "second_instruction_count": 48,
          "diff": [
            "--- 0x47afb0",
            "+++ 0x479150",
            "@@ -4,17 +4,17 @@",
            " mov edx,eax",
            " xor ecx,ecx",
            " cli ",
            "-mov cl,m1[None+None*1+0x744bd8]",
            "+mov cl,m1[None+None*1+0x72f6a8]",
            " xor eax,eax",
            " lea ebx,m4[ecx+None*1+0x1]",
            "-mov al,m1[None+None*1+0x744bd9]",
            "+mov al,m1[None+None*1+0x72f6a9]",
            " and ebx,0xff",
            " cmp ebx,eax",
            " je local:41",
            " lea eax,m4[None+ecx*4+0x0]",
            " add eax,ecx",
            " shl eax,0x2",
            "-add eax,0x744bdc",
            "+add eax,0x72f6ac",
            " mov ecx,m4[edx+None*1+0x0]",
            " mov m4[eax+None*1+0x0],ecx",
            " mov ecx,m4[edx+None*1+0x4]",
            "@@ -26,13 +26,13 @@",
            " mov edx,m4[edx+None*1+0x10]",
            " mov m4[eax+None*1+0x10],edx",
            " mov eax,0x1",
            "-mov edx,m4[None+None*1+0x744bd0]",
            "-mov ecx,m4[None+None*1+0x744bd4]",
            "-mov m1[None+None*1+0x744bd8],bl",
            "+mov edx,m4[None+None*1+0x72f6a0]",
            "+mov ecx,m4[None+None*1+0x72f6a4]",
            "+mov m1[None+None*1+0x72f6a8],bl",
            " inc edx",
            " inc ecx",
            "-mov m4[None+None*1+0x744bd0],edx",
            "-mov m4[None+None*1+0x744bd4],ecx",
            "+mov m4[None+None*1+0x72f6a0],edx",
            "+mov m4[None+None*1+0x72f6a4],ecx",
            " sti ",
            " cld ",
            " pop edx"
          ]
        },
        {
          "symbol": "ewr.c::get_EWR_patch_terrain_elevation_",
          "source": "E:\\apache\\source\\warmodel\\ewr.c",
          "first": "0x4671e8",
          "second": "0x467388",
          "first_instruction_count": 5,
          "second_instruction_count": 5,
          "diff": [
            "--- 0x4671e8",
            "+++ 0x467388",
            "@@ -2,4 +2,4 @@",
            " imul eax,eax,0x155555",
            " add edx,0xaaaaa",
            " add eax,0xaaaaa",
            "-jmp fxterr.c::get_approx_terrain_elevation_",
            "+jmp terrain.c::get_approx_terrain_elevation_"
          ]
        },
        {
          "symbol": "ewr.c::get_enemy_EWR_",
          "source": "E:\\apache\\source\\warmodel\\ewr.c",
          "first": "0x467198",
          "second": "0x467338",
          "first_instruction_count": 17,
          "second_instruction_count": 17,
          "diff": [
            "--- 0x467198",
            "+++ 0x467338",
            "@@ -6,7 +6,7 @@",
            " shl ecx,0x9",
            " shl eax,0x3",
            " add eax,ecx",
            "-mov edx,m4[eax+None*1+0x6ab694]",
            "+mov edx,m4[eax+None*1+0x69e6a4]",
            " test edx,edx",
            " je local:14",
            " mov eax,m4[edx+None*1+0x4]"
          ]
        },
        {
          "symbol": "ewr.c::get_enemy_EWR_floor_",
          "source": "E:\\apache\\source\\warmodel\\ewr.c",
          "first": "0x467100",
          "second": "0x4672a0",
          "first_instruction_count": 66,
          "second_instruction_count": 66,
          "diff": [
            "--- 0x467100",
            "+++ 0x4672a0",
            "@@ -40,7 +40,7 @@",
            " shl esi,0x9",
            " lea ecx,m4[None+edi*8+0x0]",
            " add ecx,esi",
            "-mov esi,m4[ecx+None*1+0x6ab694]",
            "+mov esi,m4[ecx+None*1+0x69e6a4]",
            " test esi,esi",
            " je local:58",
            " mov ecx,ebx"
          ]
        },
        {
          "symbol": "ewr.c::get_enemy_EWR_status_",
          "source": "E:\\apache\\source\\warmodel\\ewr.c",
          "first": "0x467204",
          "second": "0x4673a4",
          "first_instruction_count": 17,
          "second_instruction_count": 17,
          "diff": [
            "--- 0x467204",
            "+++ 0x4673a4",
            "@@ -3,7 +3,7 @@",
            " lea eax,m4[None+edx*8+0x0]",
            " shl ecx,0x9",
            " add eax,ecx",
            "-mov edx,m4[eax+None*1+0x6ab694]",
            "+mov edx,m4[eax+None*1+0x69e6a4]",
            " test edx,edx",
            " je local:11",
            " mov eax,m4[edx+None*1+0x4]"
          ]
        },
        {
          "symbol": "ewr.c::insert_radar_data_",
          "source": "E:\\apache\\source\\warmodel\\ewr.c",
          "first": "0x466c98",
          "second": "0x466e38",
          "first_instruction_count": 270,
          "second_instruction_count": 270,
          "diff": [
            "--- 0x466c98",
            "+++ 0x466e38",
            "@@ -30,7 +30,7 @@",
            " mov edx,m4[esp+None*1+0x28]",
            " mov eax,m4[esp+None*1+0x24]",
            " call war.c::initialise_war_model_enemy_sector_",
            "-mov esi,m4[esi+None*1+0x6ab694]",
            "+mov esi,m4[esi+None*1+0x69e6a4]",
            " mov eax,edi",
            " mov ebp,m4[esp+None*1+0x64]",
            " call targets.c::get_target_object_number_",
            "@@ -138,7 +138,7 @@",
            " imul eax,m4[esp+None*1+0x0],0x155555",
            " add edx,0xaaaaa",
            " add eax,0xaaaaa",
            "-call fxterr.c::get_approx_terrain_elevation_",
            "+call terrain.c::get_approx_terrain_elevation_",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            " cmp eax,m4[esp+None*1+0x58]",
            "@@ -158,7 +158,7 @@",
            " imul eax,m4[esp+None*1+0x0],0x155555",
            " add eax,0xaaaaa",
            " add edx,0xaaaaa",
            "-call fxterr.c::get_approx_terrain_elevation_",
            "+call terrain.c::get_approx_terrain_elevation_",
            " cmp ecx,eax",
            " je local:173",
            " mov eax,ebx",
            "@@ -177,7 +177,7 @@",
            " imul ebp,ebp,0x155555",
            " lea edx,m4[eax+None*1+0xaaaaa]",
            " lea eax,m4[ebp+None*1+0xaaaaa]",
            "-call fxterr.c::get_approx_terrain_elevation_",
            "+call terrain.c::get_approx_terrain_elevation_",
            " cmp ecx,eax",
            " jle local:221",
            " mov edx,ecx",
            "@@ -213,7 +213,7 @@",
            " mov m4[esp+None*1+0x4],edx",
            " jmp local:96",
            " mov ecx,m4[esp+None*1+0x38]",
            "-mov ecx,m4[ecx+None*1+0x6ab694]",
            "+mov ecx,m4[ecx+None*1+0x69e6a4]",
            " jmp local:132",
            " mov eax,m4[esp+None*1+0x4]",
            " cmp eax,m4[esp+None*1+0x5c]",
            "@@ -225,7 +225,7 @@",
            " imul ebp,ebp,0x155555",
            " lea edx,m4[eax+None*1+0xaaaaa]",
            " lea eax,m4[ebp+None*1+0xaaaaa]",
            "-call fxterr.c::get_approx_terrain_elevation_",
            "+call terrain.c::get_approx_terrain_elevation_",
            " mov edx,eax",
            " jmp local:183",
            " mov eax,m4[esp+None*1+0x68]",
            "@@ -234,7 +234,7 @@",
            " lea edx,m4[eax+None*1+0xaaaaa]",
            " imul eax,ebx,0x155555",
            " add eax,0xaaaaa",
            "-call fxterr.c::get_approx_terrain_elevation_",
            "+call terrain.c::get_approx_terrain_elevation_",
            " cmp ecx,eax",
            " jle local:241",
            " mov eax,ecx",
            "@@ -244,7 +244,7 @@",
            " imul edx,edx,0x155555",
            " add eax,0xaaaaa",
            " add edx,0xaaaaa",
            "-call fxterr.c::get_approx_terrain_elevation_",
            "+call terrain.c::get_approx_terrain_elevation_",
            " jmp local:45",
            " mov eax,m4[esp+None*1+0x64]",
            " mov edx,eax"
          ]
        },
        {
          "symbol": "excptwnt::__NewExceptionHandler_",
          "source": "excptwnt",
          "first": "0x4ce803",
          "second": "0x4c1c73",
          "first_instruction_count": 23,
          "second_instruction_count": 23,
          "diff": [
            "--- 0x4ce803",
            "+++ 0x4c1c73",
            "@@ -17,7 +17,7 @@",
            " mov eax,m4[eax+None*1+0x54]",
            " mov m4[edx+None*1+0x0],eax",
            " push excptwnt::___ReportException@4",
            "-call m4[None+None*1+constant:d64f0d00]",
            "+call m4[None+None*1+constant:c47e0c00]",
            " pop edx",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "excptwnt::___ExceptionFilter",
          "source": "excptwnt",
          "first": "0x4ce63f",
          "second": "0x4c1aaf",
          "first_instruction_count": 128,
          "second_instruction_count": 128,
          "diff": [
            "--- 0x4ce63f",
            "+++ 0x4c1aaf",
            "@@ -115,11 +115,11 @@",
            " push eax",
            " mov m4[esp+None*1+0x4],esi",
            " mov m4[esp+None*1+0x8],edi",
            "-call m4[None+None*1+constant:4c500d00]",
            "+call m4[None+None*1+constant:3a7f0c00]",
            " test eax,eax",
            " je local:122",
            " push 0xffffffff",
            "-call m4[None+None*1+constant:904b0d00]",
            "+call m4[None+None*1+constant:6e7a0c00]",
            " mov eax,0x1",
            " add esp,0x8",
            " pop edi"
          ]
        },
        {
          "symbol": "excptwnt::___ReportException@4",
          "source": "excptwnt",
          "first": "0x4ce46a",
          "second": "0x4c18da",
          "first_instruction_count": 125,
          "second_instruction_count": 125,
          "diff": [
            "--- 0x4ce46a",
            "+++ 0x4c18da",
            "@@ -117,7 +117,7 @@",
            " mov eax,m4[None+None*1+nthdl::___FileHandleIDs]",
            " mov ebx,m4[eax+None*1+0x8]",
            " push ebx",
            "-call m4[None+None*1+constant:d2500d00]",
            "+call m4[None+None*1+constant:d27f0c00]",
            " mov eax,0x1",
            " add esp,0x104",
            " pop edi"
          ]
        },
        {
          "symbol": "excptwnt::_my_GetActiveWindow_",
          "source": "excptwnt",
          "first": "0x4ce3e3",
          "second": "0x4c1853",
          "first_instruction_count": 23,
          "second_instruction_count": 23,
          "diff": [
            "--- 0x4ce3e3",
            "+++ 0x4c1853",
            "@@ -2,13 +2,13 @@",
            " push ecx",
            " push edx",
            " push text:'USER32.DLL'",
            "-call m4[None+None*1+constant:5a4e0d00]",
            "+call m4[None+None*1+constant:387d0c00]",
            " xor ebx,ebx",
            " test eax,eax",
            " je local:16",
            " push text:'GetActiveWindow'",
            " push eax",
            "-call m4[None+None*1+constant:dc4d0d00]",
            "+call m4[None+None*1+constant:ba7c0c00]",
            " mov edx,eax",
            " test eax,eax",
            " je local:16"
          ]
        },
        {
          "symbol": "fillblk.asm::_fill_block",
          "source": "\\library\\graphics\\fillblk.asm",
          "first": "0x4c2574",
          "second": "0x4b5fc4",
          "first_instruction_count": 114,
          "second_instruction_count": 114,
          "diff": [
            "--- 0x4c2574",
            "+++ 0x4b5fc4",
            "@@ -10,7 +10,7 @@",
            " cmp ecx,0x8",
            " jae local:77",
            " mov ebp,m4[None+None*1+screen.c::_screen_y_inc]",
            "-jmp m4[None+ecx*4+constant:50264c00]",
            "+jmp m4[None+ecx*4+constant:a0604b00]",
            " mov m1[edi+None*1+0x0],al",
            " ror eax,0x8",
            " add edi,ebp",
            "@@ -83,7 +83,7 @@",
            " and ebx,0x3",
            " shr ecx,0x2",
            " push eax",
            "-jmp m4[None+esi*4+constant:86264c00]",
            "+jmp m4[None+esi*4+constant:d6604b00]",
            " mov m1[edi+None*1+0x0],al",
            " inc edi",
            " ror eax,0x8",
            "@@ -96,7 +96,7 @@",
            " push ecx",
            " rep stosd m4[edi+None*1+0x0],eax",
            " pop ecx",
            "-jmp m4[None+ebx*4+constant:a0264c00]",
            "+jmp m4[None+ebx*4+constant:f0604b00]",
            " mov m1[edi+None*1+0x0],al",
            " inc edi",
            " ror eax,0x8"
          ]
        },
        {
          "symbol": "findwnt::_dos_findclose_",
          "source": "findwnt",
          "first": "0x4c8e87",
          "second": "0x4bc4ad",
          "first_instruction_count": 17,
          "second_instruction_count": 17,
          "diff": [
            "--- 0x4c8e87",
            "+++ 0x4bc4ad",
            "@@ -4,7 +4,7 @@",
            " cmp edx,0xffffffff",
            " je local:13",
            " push edx",
            "-call m4[None+None*1+constant:de4b0d00]",
            "+call m4[None+None*1+constant:bc7a0c00]",
            " test eax,eax",
            " jne local:13",
            " call dosret::__set_errno_nt_"
          ]
        },
        {
          "symbol": "findwnt::_dos_findfirst_",
          "source": "findwnt",
          "first": "0x4c8dc9",
          "second": "0x4bc3ef",
          "first_instruction_count": 42,
          "second_instruction_count": 42,
          "diff": [
            "--- 0x4c8dc9",
            "+++ 0x4bc3ef",
            "@@ -7,7 +7,7 @@",
            " mov edx,esp",
            " push edx",
            " push eax",
            "-call m4[None+None*1+constant:ea4b0d00]",
            "+call m4[None+None*1+constant:c87a0c00]",
            " mov ecx,eax",
            " cmp eax,0xffffffff",
            " jne local:16",
            "@@ -25,7 +25,7 @@",
            " jne local:31",
            " push ecx",
            " mov m4[esi+None*1+0x0],0xffffffff",
            "-call m4[None+None*1+constant:de4b0d00]",
            "+call m4[None+None*1+constant:bc7a0c00]",
            " mov eax,0x2",
            " call dosret::__set_errno_dos_",
            " jmp local:37"
          ]
        },
        {
          "symbol": "findwnt::_dos_findnext_",
          "source": "findwnt",
          "first": "0x4c8e3d",
          "second": "0x4bc463",
          "first_instruction_count": 31,
          "second_instruction_count": 31,
          "diff": [
            "--- 0x4c8e3d",
            "+++ 0x4bc463",
            "@@ -8,7 +8,7 @@",
            " push eax",
            " mov edx,m4[esi+None*1+0x0]",
            " push edx",
            "-call m4[None+None*1+constant:fc4b0d00]",
            "+call m4[None+None*1+constant:da7a0c00]",
            " test eax,eax",
            " jne local:15",
            " call dosret::__set_errno_nt_"
          ]
        },
        {
          "symbol": "fireball.c::create_ground_fireball_",
          "source": "E:\\library\\3dvisual\\fireball.c",
          "first": "0x492500",
          "second": "0x48eda0",
          "first_instruction_count": 27,
          "second_instruction_count": 27,
          "diff": [
            "--- 0x492500",
            "+++ 0x48eda0",
            "@@ -18,7 +18,7 @@",
            " mov m4[ecx+None*1+0x8],eax",
            " mov edx,eax",
            " mov eax,m4[ebx+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov m4[ecx+None*1+0xc],eax",
            " mov m4[ecx+None*1+0x10],esi",
            " pop esi"
          ]
        },
        {
          "symbol": "fireball.c::draw_fireball_",
          "source": "E:\\library\\3dvisual\\fireball.c",
          "first": "0x492ebc",
          "second": "0x48f75c",
          "first_instruction_count": 212,
          "second_instruction_count": 212,
          "diff": [
            "--- 0x492ebc",
            "+++ 0x48f75c",
            "@@ -10,11 +10,11 @@",
            " mov edx,m4[None+None*1+3dcore.c::_vp]",
            " mov eax,m4[ebp+None*1+0x4]",
            " sub eax,edx",
            "-mov ecx,m4[None+None*1+0xafaef4]",
            "+mov ecx,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x0],eax",
            " mov eax,m4[ebp+None*1+0x8]",
            " sub eax,ecx",
            "-mov ebx,m4[None+None*1+0xafaef8]",
            "+mov ebx,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x4],eax",
            " mov eax,m4[ebp+None*1+0xc]",
            " sub eax,ebx",
            "@@ -26,11 +26,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xae972c]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -42,15 +42,15 @@",
            " mov ecx,m4[esp+None*1+0x8]",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -63,15 +63,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xae9740]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -105,16 +105,16 @@",
            " jle local:92",
            " mov eax,m4[esp+None*1+0x10]",
            " mov eax,m4[eax+None*1+0x4]",
            "-mov m4[None+None*1+0xd86404],eax",
            "+mov m4[None+None*1+0xd70ab4],eax",
            " mov eax,m4[ebp+None*1+0x4]",
            "-mov ecx,0xd863dc",
            "+mov ecx,0xd6cc0c",
            " mov m4[None+None*1+fireball.c::_fireball_vp],eax",
            " mov eax,m4[ebp+None*1+0x8]",
            " mov ebx,m4[ebp+None*1+0x30]",
            "-mov m4[None+None*1+0xd863d4],eax",
            "+mov m4[None+None*1+0xd6cc04],eax",
            " mov eax,m4[ebp+None*1+0xc]",
            " mov edx,m4[ebp+None*1+0x2c]",
            "-mov m4[None+None*1+0xd863d8],eax",
            "+mov m4[None+None*1+0xd6cc08],eax",
            " mov eax,m4[ebp+None*1+0x28]",
            " call matrix.c::get_transformation_matrix_",
            " cmp m4[ebp+None*1+0x34],0x0",
            "@@ -134,20 +134,20 @@",
            " mov eax,0x5",
            " mov esi,edx",
            " lea edx,m4[None+eax*8+0x0]",
            "-mov m4[None+None*1+0xd86424],esi",
            "+mov m4[None+None*1+0xd70ad4],esi",
            " mov eax,m4[edx+None*1+fireball.c::_sphere_lookup]",
            "-mov m4[None+None*1+0xd86428],esi",
            "+mov m4[None+None*1+0xd70ad8],esi",
            " mov m4[None+None*1+fireball.c::_fireball_3d],eax",
            " mov eax,fireball.c::_fireball_3d",
            "-mov m4[None+None*1+0xd8642c],esi",
            "-call fx3dobj1.c::draw_3d_object_",
            "-mov m4[None+None*1+0xd86424],ecx",
            "+mov m4[None+None*1+0xd70adc],esi",
            "+call 3dobjs1.c::draw_3d_object_",
            "+mov m4[None+None*1+0xd70ad4],ecx",
            " mov eax,m4[edx+None*1+constant:00000000]",
            "-mov m4[None+None*1+0xd86428],ecx",
            "+mov m4[None+None*1+0xd70ad8],ecx",
            " mov m4[None+None*1+fireball.c::_fireball_3d],eax",
            " mov eax,fireball.c::_fireball_3d",
            "-mov m4[None+None*1+0xd8642c],ecx",
            "-call fx3dobj1.c::draw_3d_object_",
            "+mov m4[None+None*1+0xd70adc],ecx",
            "+call 3dobjs1.c::draw_3d_object_",
            " add esp,0x14",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "fireball.c::initialise_fireball_buffer_",
          "source": "E:\\library\\3dvisual\\fireball.c",
          "first": "0x4923f8",
          "second": "0x48ec98",
          "first_instruction_count": 36,
          "second_instruction_count": 36,
          "diff": [
            "--- 0x4923f8",
            "+++ 0x48ec98",
            "@@ -12,7 +12,7 @@",
            " lea ecx,m4[edx+None*1+0x40]",
            " sub edx,0x40",
            " add ecx,fireball.c::_fireballs",
            "-mov m4[edx+None*1+0xd825c8],ecx",
            "+mov m4[edx+None*1+0xd6cca8],ecx",
            " add edx,fireball.c::_fireballs",
            " test eax,eax",
            " jne local:25",
            "@@ -25,7 +25,7 @@",
            " jmp local:16",
            " mov ecx,eax",
            " shl ecx,0x6",
            "-mov m4[ecx+None*1+0xd8258c],edx",
            "+mov m4[ecx+None*1+0xd6cc6c],edx",
            " jmp local:18",
            " xor ecx,ecx",
            " mov edx,fireball.c::_fireballs"
          ]
        },
        {
          "symbol": "fireball.c::initialise_fireballs_",
          "source": "E:\\library\\3dvisual\\fireball.c",
          "first": "0x4923b0",
          "second": "0x48ec50",
          "first_instruction_count": 19,
          "second_instruction_count": 19,
          "diff": [
            "--- 0x4923b0",
            "+++ 0x48ec50",
            "@@ -4,15 +4,15 @@",
            " call fireball.c::initialise_fireball_buffer_",
            " mov edx,fireball.c::_fireball_vp",
            " mov esi,0x1",
            "-mov ah,m1[None+None*1+0xd86440]",
            "+mov ah,m1[None+None*1+0xd70af0]",
            " xor ecx,ecx",
            "-mov m4[None+None*1+0xd86408],edx",
            "-mov m4[None+None*1+0xd8641c],ecx",
            "-mov m4[None+None*1+0xd86420],ecx",
            "-mov m4[None+None*1+0xd86430],esi",
            "+mov m4[None+None*1+0xd70ab8],edx",
            "+mov m4[None+None*1+0xd70acc],ecx",
            "+mov m4[None+None*1+0xd70ad0],ecx",
            "+mov m4[None+None*1+0xd70ae0],esi",
            " and ah,0xef",
            "-mov m4[None+None*1+0xd86434],ecx",
            "-mov m1[None+None*1+0xd86440],ah",
            "+mov m4[None+None*1+0xd70ae4],ecx",
            "+mov m1[None+None*1+0xd70af0],ah",
            " pop esi",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "fireball.c::scan_fireballs_",
          "source": "E:\\library\\3dvisual\\fireball.c",
          "first": "0x492cdc",
          "second": "0x48f57c",
          "first_instruction_count": 151,
          "second_instruction_count": 151,
          "diff": [
            "--- 0x492cdc",
            "+++ 0x48f57c",
            "@@ -5,7 +5,7 @@",
            " push edi",
            " push ebp",
            " sub esp,0x18",
            "-cmp m4[None+None*1+0xafaedc],0x2",
            "+cmp m4[None+None*1+0xae558c],0x2",
            " je local:64",
            " mov ecx,m4[None+None*1+3dcore.c::_cloud_mode]",
            " cmp ecx,0x1",
            "@@ -15,7 +15,7 @@",
            " jne local:87",
            " test ebp,ebp",
            " je local:64",
            "-mov edx,m4[None+None*1+0xafaec8]",
            "+mov edx,m4[None+None*1+0xae5578]",
            " cmp edx,m4[ebp+None*1+0xc]",
            " jg local:22",
            " mov ebp,m4[ebp+None*1+0x38]",
            "@@ -23,11 +23,11 @@",
            " mov ecx,m4[None+None*1+3dcore.c::_vp]",
            " mov eax,m4[ebp+None*1+0x4]",
            " sub eax,ecx",
            "-mov ebx,m4[None+None*1+0xafaef4]",
            "+mov ebx,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,m4[ebp+None*1+0x8]",
            " sub eax,ebx",
            "-mov esi,m4[None+None*1+0xafaef8]",
            "+mov esi,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x0],eax",
            " mov eax,m4[ebp+None*1+0xc]",
            " sub eax,esi",
            "@@ -35,15 +35,15 @@",
            " mov m4[esp+None*1+0x4],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -52,13 +52,13 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov edi,m4[None+None*1+0xafaeb4]",
            "+mov edi,m4[None+None*1+0xae5564]",
            " mov esi,edx",
            " cmp edx,edi",
            " jle local:20",
            "-cmp edx,m4[None+None*1+0xafaeb8]",
            "+cmp edx,m4[None+None*1+0xae5568]",
            " jge local:20",
            "-call fx3dobbf.c::get_object_buffer_space_",
            "+call 3dobjbuf.c::get_object_buffer_space_",
            " mov ecx,eax",
            " test eax,eax",
            " jne local:72",
            "@@ -72,7 +72,7 @@",
            " ret ",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov edx,m4[esp+None*1+0x0]",
            "-mov m4[eax+None*1+0x0],0x8",
            "+mov m4[eax+None*1+0x0],0x7",
            " mov eax,m4[esp+None*1+0xc]",
            " call range.c::get_approx_3d_range_",
            " test esi,esi",
            "@@ -80,14 +80,14 @@",
            " mov m4[ecx+None*1+0x4],eax",
            " mov eax,ecx",
            " mov m4[ecx+None*1+0x8],ebp",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " mov ebp,m4[ebp+None*1+0x38]",
            " jmp local:15",
            " neg eax",
            " jmp local:79",
            " test ebp,ebp",
            " je local:64",
            "-mov esi,m4[None+None*1+0xafaecc]",
            "+mov esi,m4[None+None*1+0xae557c]",
            " cmp esi,m4[ebp+None*1+0xc]",
            " jl local:94",
            " mov ebp,m4[ebp+None*1+0x38]",
            "@@ -95,11 +95,11 @@",
            " mov edi,m4[None+None*1+3dcore.c::_vp]",
            " mov eax,m4[ebp+None*1+0x4]",
            " sub eax,edi",
            "-mov edx,m4[None+None*1+0xafaef4]",
            "+mov edx,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x8],eax",
            " mov eax,m4[ebp+None*1+0x8]",
            " sub eax,edx",
            "-mov ecx,m4[None+None*1+0xafaef8]",
            "+mov ecx,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x10],eax",
            " mov eax,m4[ebp+None*1+0xc]",
            " sub eax,ecx",
            "@@ -107,15 +107,15 @@",
            " mov m4[esp+None*1+0x14],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x8]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -124,19 +124,19 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ebx,m4[None+None*1+0xafaeb4]",
            "+mov ebx,m4[None+None*1+0xae5564]",
            " mov esi,edx",
            " cmp edx,ebx",
            " jle local:92",
            "-cmp edx,m4[None+None*1+0xafaeb8]",
            "+cmp edx,m4[None+None*1+0xae5568]",
            " jge local:92",
            "-call fx3dobbf.c::get_object_buffer_space_",
            "+call 3dobjbuf.c::get_object_buffer_space_",
            " mov ecx,eax",
            " test eax,eax",
            " je local:64",
            " mov ebx,m4[esp+None*1+0x14]",
            " mov edx,m4[esp+None*1+0x10]",
            "-mov m4[eax+None*1+0x0],0x8",
            "+mov m4[eax+None*1+0x0],0x7",
            " mov eax,m4[esp+None*1+0x8]",
            " call range.c::get_approx_3d_range_",
            " test esi,esi",
            "@@ -144,7 +144,7 @@",
            " mov m4[ecx+None*1+0x4],eax",
            " mov eax,ecx",
            " mov m4[ecx+None*1+0x8],ebp",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " mov ebp,m4[ebp+None*1+0x38]",
            " jmp local:87",
            " neg eax"
          ]
        },
        {
          "symbol": "fireball.c::update_fireballs_",
          "source": "E:\\library\\3dvisual\\fireball.c",
          "first": "0x492b88",
          "second": "0x48f428",
          "first_instruction_count": 121,
          "second_instruction_count": 121,
          "diff": [
            "--- 0x492b88",
            "+++ 0x48f428",
            "@@ -97,7 +97,7 @@",
            " add ebp,edx",
            " mov edx,m4[ecx+None*1+0x8]",
            " mov m4[ecx+None*1+0xc],ebp",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,m4[ecx+None*1+0x10]",
            " mov esi,m4[ecx+None*1+0xc]",
            " add eax,edx"
          ]
        },
        {
          "symbol": "fonts.c::create_menu_fonts_",
          "source": "E:\\apache\\source\\menus\\fonts.c",
          "first": "0x404968",
          "second": "0x404858",
          "first_instruction_count": 174,
          "second_instruction_count": 180,
          "diff": [
            "--- 0x404968",
            "+++ 0x404858",
            "@@ -61,7 +61,7 @@",
            " call memory.c::mem_malloc_",
            " push 0x0",
            " mov ebx,0x280",
            "-mov m4[esp+None*1+0x14],eax",
            "+mov m4[esp+None*1+0x10],eax",
            " push 0x0",
            " mov edx,eax",
            " mov eax,text:'fonts\\\\11x15.lbm'",
            "@@ -70,8 +70,8 @@",
            " mov ecx,0x100",
            " mov m4[esp+None*1+0x4],edx",
            " mov m4[esp+None*1+0x0],ecx",
            "-mov m4[esp+None*1+0x8],edx",
            "-mov eax,m4[esp+None*1+0x8]",
            "+mov m4[esp+None*1+0x10],edx",
            "+mov eax,m4[esp+None*1+0x10]",
            " mov edx,eax",
            " mov ecx,0x220",
            " sar edx,0x1f",
            "@@ -83,45 +83,51 @@",
            " shl edx,0x5",
            " sbb eax,edx",
            " sar eax,0x5",
            "-imul eax,eax,0x2a80",
            "+mov edx,eax",
            "+shl eax,0x2",
            "+mov ebp,m4[esp+None*1+0x0]",
            "+add eax,edx",
            " xor esi,esi",
            "-mov m4[esp+None*1+0xc],esi",
            "+shl eax,0x7",
            "+mov m4[esp+None*1+0x8],esi",
            "+mov edx,eax",
            "+shl eax,0x4",
            " mov esi,m4[esp+None*1+0x4]",
            "-mov ebp,m4[esp+None*1+0x0]",
            "+add eax,edx",
            " shl esi,0x8",
            " lea edi,m4[ecx+eax*1+0x0]",
            "-mov ecx,m4[esp+None*1+0x10]",
            "+mov ecx,m4[esp+None*1+0xc]",
            " mov edx,esi",
            " xor eax,eax",
            " add ecx,edi",
            " mov bl,m1[ecx+None*1+0x0]",
            " inc ecx",
            " cmp bl,0x1",
            "-jbe local:105",
            "-cmp eax,m4[esp+None*1+0xc]",
            "-jle local:103",
            "-mov m4[esp+None*1+0xc],eax",
            "+jbe local:111",
            "+cmp eax,m4[esp+None*1+0x8]",
            "+jle local:109",
            "+mov m4[esp+None*1+0x8],eax",
            " dec bl",
            " mov m1[edx+None*1+fonts.c::_menu_11x15_cells],bl",
            " inc eax",
            " inc edx",
            " cmp eax,0x10",
            "-jl local:96",
            "+jl local:102",
            " add esi,0x10",
            " add edi,0x280",
            " cmp esi,ebp",
            "-jne local:92",
            "-cmp m4[esp+None*1+0xc],0x0",
            "-jne local:116",
            "-mov m4[esp+None*1+0xc],0x4",
            "+jne local:98",
            "+cmp m4[esp+None*1+0x8],0x0",
            "+jne local:122",
            "+mov m4[esp+None*1+0x8],0x4",
            " mov eax,m4[None+None*1+fonts.c::_menu_11x15]",
            " mov edx,m4[esp+None*1+0x4]",
            " mov ecx,m4[esp+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x10]",
            " mov ebx,m4[esp+None*1+0x0]",
            " add eax,edx",
            "-mov dl,m1[esp+None*1+0xc]",
            "-mov esi,m4[esp+None*1+0x8]",
            "+mov dl,m1[esp+None*1+0x8]",
            "+mov esi,m4[esp+None*1+0x10]",
            " mov m1[eax+None*1+0x0],dl",
            " mov eax,m4[None+None*1+fonts.c::_menu_11x18]",
            " add ebx,0x100",
            "@@ -129,28 +135,28 @@",
            " mov eax,m4[eax+None*1+0x10]",
            " mov m4[esp+None*1+0x0],ebx",
            " add eax,ecx",
            "-mov m4[esp+None*1+0x8],esi",
            "+mov m4[esp+None*1+0x10],esi",
            " lea edi,m4[ecx+None*1+0x1]",
            " mov m1[eax+None*1+0x0],dl",
            " mov m4[esp+None*1+0x4],edi",
            " cmp edi,0x100",
            " jl local:73",
            " xor eax,eax",
            "-mov m4[esp+None*1+0xc],eax",
            "+mov m4[esp+None*1+0x8],eax",
            " mov eax,0x30",
            " mov edx,m4[None+None*1+fonts.c::_menu_11x15]",
            " mov edx,m4[edx+None*1+0x10]",
            " mov dl,m1[edx+eax*1+0x0]",
            "-mov ecx,m4[esp+None*1+0xc]",
            "+mov ecx,m4[esp+None*1+0x8]",
            " and edx,0xff",
            " cmp edx,ecx",
            "-jle local:148",
            "-mov m4[esp+None*1+0xc],edx",
            "+jle local:154",
            "+mov m4[esp+None*1+0x8],edx",
            " inc eax",
            " cmp eax,0x39",
            "-jle local:140",
            "+jle local:146",
            " mov eax,0x30",
            "-mov bl,m1[esp+None*1+0xc]",
            "+mov bl,m1[esp+None*1+0x8]",
            " mov edx,m4[None+None*1+fonts.c::_menu_11x15]",
            " mov edx,m4[edx+None*1+0x10]",
            " mov m1[edx+eax*1+0x0],bl",
            "@@ -159,10 +165,10 @@",
            " mov edx,m4[edx+None*1+0x10]",
            " mov m1[edx+eax*1+0xffffffff],bl",
            " cmp eax,0x39",
            "-jle local:153",
            "+jle local:159",
            " mov ebx,0xb2",
            " mov edx,text:'\\\\apache\\\\source\\\\menus\\\\fonts.c'",
            "-mov eax,m4[esp+None*1+0x10]",
            "+mov eax,m4[esp+None*1+0xc]",
            " call memory.c::mem_free_",
            " add esp,0x14",
            " pop ebp"
          ]
        },
        {
          "symbol": "forces.c::_forces_info",
          "source": "E:\\apache\\source\\forces.c",
          "first": "0x402b30",
          "second": "0x402b70",
          "first_instruction_count": 152,
          "second_instruction_count": 152,
          "diff": [
            "--- 0x402b30",
            "+++ 0x402b70",
            "@@ -24,7 +24,7 @@",
            " add m1[eax+None*1+0x0],al",
            " or eax,m4[eax+None*1+0x0]",
            " add m1[eax+None*1+0x0],al",
            "-call 0x3c402b70",
            "+call 0x3c402bb0",
            " add m1[eax+None*1+0x0],al",
            " add m1[edi+None*1+0x0],dh",
            " add m1[eax+None*1+0x0],al",
            "@@ -36,7 +36,7 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0x0],cl",
            " add m1[eax+None*1+0x0],al",
            "-add m1[ebx+eax*1+modemprf.c::disable_modem_messages_+0x50],al",
            "+add m1[ebx+eax*1+modemprf.c::update_player_menu_buttons_+0x4],al",
            " add m1[eax+None*1+0x0],al",
            " cmp al,0x0",
            " add m1[eax+None*1+0x0],al"
          ]
        },
        {
          "symbol": "fragment.c::deinitialise_fragments_",
          "source": "E:\\library\\3dvisual\\fragment.c",
          "first": "0x493194",
          "second": "0x48fa34",
          "first_instruction_count": 10,
          "second_instruction_count": 10,
          "diff": [
            "--- 0x493194",
            "+++ 0x48fa34",
            "@@ -2,7 +2,7 @@",
            " xor eax,eax",
            " add eax,0x94",
            " xor edx,edx",
            "-mov m4[eax+None*1+0xd863bc],edx",
            "+mov m4[eax+None*1+0xd70a6c],edx",
            " cmp eax,0x2500",
            " jne local:2",
            " mov m4[None+None*1+fragment.c::_next_fragment],fragment.c::_fragment_buffer"
          ]
        },
        {
          "symbol": "fragment.c::initialise_fragments_",
          "source": "E:\\library\\3dvisual\\fragment.c",
          "first": "0x493170",
          "second": "0x48fa10",
          "first_instruction_count": 10,
          "second_instruction_count": 10,
          "diff": [
            "--- 0x493170",
            "+++ 0x48fa10",
            "@@ -2,7 +2,7 @@",
            " xor eax,eax",
            " add eax,0x94",
            " xor edx,edx",
            "-mov m4[eax+None*1+0xd863bc],edx",
            "+mov m4[eax+None*1+0xd70a6c],edx",
            " cmp eax,0x2500",
            " jne local:2",
            " mov m4[None+None*1+fragment.c::_next_fragment],fragment.c::_fragment_buffer"
          ]
        },
        {
          "symbol": "fragment.c::scan_fragments_",
          "source": "E:\\library\\3dvisual\\fragment.c",
          "first": "0x493688",
          "second": "0x48ff28",
          "first_instruction_count": 168,
          "second_instruction_count": 168,
          "diff": [
            "--- 0x493688",
            "+++ 0x48ff28",
            "@@ -14,17 +14,17 @@",
            " mov m4[esp+None*1+0x18],edx",
            " cmp m4[ebp+None*1+0x0],0x0",
            " je local:57",
            "-mov esi,m4[None+None*1+0xafaec8]",
            "+mov esi,m4[None+None*1+0xae5578]",
            " cmp esi,m4[ebp+None*1+0x50]",
            " jle local:57",
            " mov edi,m4[None+None*1+3dcore.c::_vp]",
            " mov eax,m4[ebp+None*1+0x48]",
            " sub eax,edi",
            "-mov edx,m4[None+None*1+0xafaef4]",
            "+mov edx,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,m4[ebp+None*1+0x4c]",
            " sub eax,edx",
            "-mov ecx,m4[None+None*1+0xafaef8]",
            "+mov ecx,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x10],eax",
            " mov eax,m4[ebp+None*1+0x50]",
            " sub eax,ecx",
            "@@ -32,15 +32,15 @@",
            " mov m4[esp+None*1+0x14],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -49,11 +49,11 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ebx,m4[None+None*1+0xafaeb4]",
            "+mov ebx,m4[None+None*1+0xae5564]",
            " mov ecx,edx",
            " cmp edx,ebx",
            " jle local:57",
            "-cmp edx,m4[None+None*1+0xafaeb8]",
            "+cmp edx,m4[None+None*1+0xae5568]",
            " jl local:71",
            " mov edi,m4[esp+None*1+0x18]",
            " inc edi",
            "@@ -69,7 +69,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-call fx3dobbf.c::get_object_buffer_space_",
            "+call 3dobjbuf.c::get_object_buffer_space_",
            " mov esi,eax",
            " test eax,eax",
            " je local:63",
            "@@ -84,7 +84,7 @@",
            " lea eax,m4[ebp+None*1+0x4]",
            " mov m4[esi+None*1+0x8],eax",
            " mov eax,esi",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " jmp local:57",
            " neg eax",
            " jmp local:82",
            "@@ -92,17 +92,17 @@",
            " mov m4[esp+None*1+0x1c],ebx",
            " cmp m4[ebp+None*1+0x0],0x0",
            " je local:135",
            "-mov edx,m4[None+None*1+0xafaecc]",
            "+mov edx,m4[None+None*1+0xae557c]",
            " cmp edx,m4[ebp+None*1+0x50]",
            " jge local:135",
            " mov ecx,m4[None+None*1+3dcore.c::_vp]",
            " mov eax,m4[ebp+None*1+0x48]",
            " sub eax,ecx",
            "-mov ebx,m4[None+None*1+0xafaef4]",
            "+mov ebx,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x0],eax",
            " mov eax,m4[ebp+None*1+0x4c]",
            " sub eax,ebx",
            "-mov esi,m4[None+None*1+0xafaef8]",
            "+mov esi,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x8],eax",
            " mov eax,m4[ebp+None*1+0x50]",
            " sub eax,esi",
            "@@ -110,15 +110,15 @@",
            " mov m4[esp+None*1+0x4],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -127,11 +127,11 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov edi,m4[None+None*1+0xafaeb4]",
            "+mov edi,m4[None+None*1+0xae5564]",
            " mov esi,edx",
            " cmp edx,edi",
            " jle local:135",
            "-cmp edx,m4[None+None*1+0xafaeb8]",
            "+cmp edx,m4[None+None*1+0xae5568]",
            " jl local:149",
            " mov edx,m4[esp+None*1+0x1c]",
            " inc edx",
            "@@ -147,7 +147,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-call fx3dobbf.c::get_object_buffer_space_",
            "+call 3dobjbuf.c::get_object_buffer_space_",
            " mov ecx,eax",
            " test eax,eax",
            " je local:63",
            "@@ -162,7 +162,7 @@",
            " lea eax,m4[ebp+None*1+0x4]",
            " mov m4[ecx+None*1+0x8],eax",
            " mov eax,ecx",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " jmp local:135",
            " neg eax",
            " jmp local:160"
          ]
        },
        {
          "symbol": "fragment.c::update_fragments_",
          "source": "E:\\library\\3dvisual\\fragment.c",
          "first": "0x49347c",
          "second": "0x48fd1c",
          "first_instruction_count": 145,
          "second_instruction_count": 145,
          "diff": [
            "--- 0x49347c",
            "+++ 0x48fd1c",
            "@@ -81,7 +81,7 @@",
            " add edi,edx",
            " mov edx,m4[ebp+None*1+0x4c]",
            " mov m4[ebp+None*1+0x50],edi",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " cmp eax,m4[ebp+None*1+0x50]",
            " jl local:111",
            " mov m4[ebp+None*1+0x84],0x0",
            "@@ -93,7 +93,7 @@",
            " jne local:111",
            " mov edx,m4[ebp+None*1+0x4c]",
            " mov eax,m4[ebp+None*1+0x48]",
            "-call fxfeatur.c::get_surface_type_",
            "+call features.c::get_surface_type_",
            " cmp eax,0x1",
            " jne local:134",
            " mov ecx,m4[ebp+None*1+0x48]"
          ]
        },
        {
          "symbol": "fsync::fsync_",
          "source": "fsync",
          "first": "0x4cf836",
          "second": "0x4c2ca6",
          "first_instruction_count": 36,
          "second_instruction_count": 36,
          "diff": [
            "--- 0x4cf836",
            "+++ 0x4c2ca6",
            "@@ -21,7 +21,7 @@",
            " mov edx,ebx",
            " mov eax,m4[eax+edx*4+0x0]",
            " push eax",
            "-call m4[None+None*1+constant:0c4c0d00]",
            "+call m4[None+None*1+constant:ea7a0c00]",
            " test eax,eax",
            " jne local:28",
            " call dosret::__set_errno_nt_"
          ]
        },
        {
          "symbol": "fullpath::_fullpath_",
          "source": "fullpath",
          "first": "0x4cfae3",
          "second": "0x4c2f31",
          "first_instruction_count": 57,
          "second_instruction_count": 57,
          "diff": [
            "--- 0x4cfae3",
            "+++ 0x4c2f31",
            "@@ -44,7 +44,7 @@",
            " push esi",
            " push ebx",
            " push ecx",
            "-call m4[None+None*1+constant:484d0d00]",
            "+call m4[None+None*1+constant:267c0c00]",
            " test eax,eax",
            " jne local:51",
            " call dosret::__set_errno_nt_"
          ]
        },
        {
          "symbol": "gameplay.c::add_gameplay_object_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x443060",
          "second": "0x4433e0",
          "first_instruction_count": 343,
          "second_instruction_count": 343,
          "diff": [
            "--- 0x443060",
            "+++ 0x4433e0",
            "@@ -26,7 +26,7 @@",
            " ret ",
            " mov edx,m4[esp+None*1+0x0]",
            " mov eax,edi",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " test eax,eax",
            " jg local:20",
            " mov ebp,m4[None+None*1+gameplay.c::_gameplay_objects]",
            "@@ -56,7 +56,7 @@",
            " xor eax,eax",
            " lea ecx,m4[ebx+esi*1+0x0]",
            " add ecx,eax",
            "-cmp m4[ecx+None*1+0x5bc8c4],0x0",
            "+cmp m4[ecx+None*1+0x5af8d4],0x0",
            " je local:69",
            " add eax,0x4",
            " cmp eax,0x8",
            "@@ -73,7 +73,7 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " add eax,gameplay.c::_gameplay_objects",
            " mov edx,edi",
            "-mov m4[ecx+None*1+0x5bc8c4],eax",
            "+mov m4[ecx+None*1+0x5af8d4],eax",
            " mov ecx,0x1",
            " call gameplay.c::initialise_gameplay_object_",
            " add esp,0x4",
            "@@ -91,7 +91,7 @@",
            " shl ebx,0x5",
            " lea ecx,m4[esi+ebx*1+0x0]",
            " add ecx,eax",
            "-cmp m4[ecx+None*1+0x5bc8cc],0x0",
            "+cmp m4[ecx+None*1+0x5af8dc],0x0",
            " je local:104",
            " add eax,0x4",
            " cmp eax,0x8",
            "@@ -108,7 +108,7 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " add eax,gameplay.c::_gameplay_objects",
            " mov edx,edi",
            "-mov m4[ecx+None*1+0x5bc8cc],eax",
            "+mov m4[ecx+None*1+0x5af8dc],eax",
            " mov ecx,0x2",
            " call gameplay.c::initialise_gameplay_object_",
            " add esp,0x4",
            "@@ -127,7 +127,7 @@",
            " xor eax,eax",
            " lea ecx,m4[ebx+esi*1+0x0]",
            " add ecx,eax",
            "-cmp m4[ecx+None*1+0x5bc8d4],0x0",
            "+cmp m4[ecx+None*1+0x5af8e4],0x0",
            " je local:140",
            " add eax,0x4",
            " cmp eax,0x10",
            "@@ -144,7 +144,7 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " add eax,gameplay.c::_gameplay_objects",
            " mov edx,edi",
            "-mov m4[ecx+None*1+0x5bc8d4],eax",
            "+mov m4[ecx+None*1+0x5af8e4],eax",
            " mov ecx,0x3",
            " call gameplay.c::initialise_gameplay_object_",
            " add esp,0x4",
            "@@ -163,7 +163,7 @@",
            " xor eax,eax",
            " lea ecx,m4[ebx+esi*1+0x0]",
            " add ecx,eax",
            "-cmp m4[ecx+None*1+0x5bc8e4],0x0",
            "+cmp m4[ecx+None*1+0x5af8f4],0x0",
            " je local:176",
            " add eax,0x4",
            " cmp eax,0x10",
            "@@ -180,7 +180,7 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " add eax,gameplay.c::_gameplay_objects",
            " mov edx,edi",
            "-mov m4[ecx+None*1+0x5bc8e4],eax",
            "+mov m4[ecx+None*1+0x5af8f4],eax",
            " mov ecx,0x4",
            " call gameplay.c::initialise_gameplay_object_",
            " add esp,0x4",
            "@@ -198,7 +198,7 @@",
            " shl ebx,0x5",
            " lea ecx,m4[esi+ebx*1+0x0]",
            " add ecx,eax",
            "-cmp m4[ecx+None*1+0x5bc8f4],0x0",
            "+cmp m4[ecx+None*1+0x5af904],0x0",
            " je local:211",
            " add eax,0x4",
            " cmp eax,0x4",
            "@@ -215,7 +215,7 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " add eax,gameplay.c::_gameplay_objects",
            " mov edx,edi",
            "-mov m4[ecx+None*1+0x5bc8f4],eax",
            "+mov m4[ecx+None*1+0x5af904],eax",
            " mov ecx,0x5",
            " call gameplay.c::initialise_gameplay_object_",
            " add esp,0x4",
            "@@ -234,7 +234,7 @@",
            " xor eax,eax",
            " lea ecx,m4[ebx+esi*1+0x0]",
            " add ecx,eax",
            "-cmp m4[ecx+None*1+0x5bc8f8],0x0",
            "+cmp m4[ecx+None*1+0x5af908],0x0",
            " je local:247",
            " add eax,0x4",
            " cmp eax,0x8",
            "@@ -251,7 +251,7 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " add eax,gameplay.c::_gameplay_objects",
            " mov edx,edi",
            "-mov m4[ecx+None*1+0x5bc8f8],eax",
            "+mov m4[ecx+None*1+0x5af908],eax",
            " mov ecx,0x6",
            " call gameplay.c::initialise_gameplay_object_",
            " add esp,0x4",
            "@@ -269,7 +269,7 @@",
            " shl ebx,0x5",
            " lea ecx,m4[esi+ebx*1+0x0]",
            " add ecx,eax",
            "-cmp m4[ecx+None*1+0x5bc900],0x0",
            "+cmp m4[ecx+None*1+0x5af910],0x0",
            " je local:282",
            " add eax,0x4",
            " cmp eax,0x10",
            "@@ -286,7 +286,7 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " add eax,gameplay.c::_gameplay_objects",
            " mov edx,edi",
            "-mov m4[ecx+None*1+0x5bc900],eax",
            "+mov m4[ecx+None*1+0x5af910],eax",
            " mov ecx,0x7",
            " call gameplay.c::initialise_gameplay_object_",
            " add esp,0x4",
            "@@ -304,7 +304,7 @@",
            " shl ebx,0x5",
            " lea ecx,m4[esi+ebx*1+0x0]",
            " add ecx,eax",
            "-cmp m4[ecx+None*1+0x5bc910],0x0",
            "+cmp m4[ecx+None*1+0x5af920],0x0",
            " je local:317",
            " add eax,0x4",
            " cmp eax,0x10",
            "@@ -321,7 +321,7 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " add eax,gameplay.c::_gameplay_objects",
            " mov edx,edi",
            "-mov m4[ecx+None*1+0x5bc910],eax",
            "+mov m4[ecx+None*1+0x5af920],eax",
            " mov ecx,0x8",
            " call gameplay.c::initialise_gameplay_object_",
            " add esp,0x4"
          ]
        },
        {
          "symbol": "gameplay.c::destroy_all_gameplay_data_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x442c90",
          "second": "0x443010",
          "first_instruction_count": 59,
          "second_instruction_count": 59,
          "diff": [
            "--- 0x442c90",
            "+++ 0x443010",
            "@@ -32,9 +32,9 @@",
            " mov ebx,m4[eax+None*1+gameplay.c::_gameplay_data]",
            " add eax,0x60",
            " and ebx,ebp",
            "-mov m4[eax+None*1+0x5bc860],ebx",
            "+mov m4[eax+None*1+0x5af870],ebx",
            " or ebx,edx",
            "-mov m4[eax+None*1+0x5bc860],ebx",
            "+mov m4[eax+None*1+0x5af870],ebx",
            " cmp eax,ecx",
            " jne local:31",
            " call thread.c::quick_yield_"
          ]
        },
        {
          "symbol": "gameplay.c::find_laser_objects_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x444370",
          "second": "0x4446f0",
          "first_instruction_count": 207,
          "second_instruction_count": 207,
          "diff": [
            "--- 0x444370",
            "+++ 0x4446f0",
            "@@ -63,7 +63,7 @@",
            " mov m4[esp+None*1+0x2c],eax",
            " mov eax,m4[esp+None*1+0x2c]",
            " add eax,m4[esp+None*1+0x34]",
            "-mov ecx,m4[eax+None*1+0x5bc8f8]",
            "+mov ecx,m4[eax+None*1+0x5af908]",
            " test ecx,ecx",
            " je local:172",
            " mov eax,m4[ecx+None*1+0x8]"
          ]
        },
        {
          "symbol": "gameplay.c::get_gameplay_number_aaa_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x443ef0",
          "second": "0x444270",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x443ef0",
            "+++ 0x444270",
            "@@ -18,7 +18,7 @@",
            " add ecx,0x8",
            " pop ebx",
            " pop esi",
            "-cmp m4[eax+None*1+0x5bc8c4],0x0",
            "+cmp m4[eax+None*1+0x5af8d4],0x0",
            " je local:23",
            " inc edx",
            " add eax,0x4"
          ]
        },
        {
          "symbol": "gameplay.c::get_gameplay_number_apc_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x443fc8",
          "second": "0x444348",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x443fc8",
            "+++ 0x444348",
            "@@ -18,7 +18,7 @@",
            " add ecx,0x10",
            " pop ebx",
            " pop esi",
            "-cmp m4[eax+None*1+0x5bc8e4],0x0",
            "+cmp m4[eax+None*1+0x5af8f4],0x0",
            " je local:23",
            " inc edx",
            " add eax,0x4"
          ]
        },
        {
          "symbol": "gameplay.c::get_gameplay_number_extra_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x4440e0",
          "second": "0x444460",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x4440e0",
            "+++ 0x444460",
            "@@ -18,7 +18,7 @@",
            " add ecx,0x10",
            " pop ebx",
            " pop esi",
            "-cmp m4[eax+None*1+0x5bc910],0x0",
            "+cmp m4[eax+None*1+0x5af920],0x0",
            " je local:23",
            " inc edx",
            " add eax,0x4"
          ]
        },
        {
          "symbol": "gameplay.c::get_gameplay_number_keep_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x444098",
          "second": "0x444418",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x444098",
            "+++ 0x444418",
            "@@ -18,7 +18,7 @@",
            " add ecx,0x10",
            " pop ebx",
            " pop esi",
            "-cmp m4[eax+None*1+0x5bc900],0x0",
            "+cmp m4[eax+None*1+0x5af910],0x0",
            " je local:23",
            " inc edx",
            " add eax,0x4"
          ]
        },
        {
          "symbol": "gameplay.c::get_gameplay_number_laser_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x444050",
          "second": "0x4443d0",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x444050",
            "+++ 0x4443d0",
            "@@ -18,7 +18,7 @@",
            " add ecx,0x8",
            " pop ebx",
            " pop esi",
            "-cmp m4[eax+None*1+0x5bc8f8],0x0",
            "+cmp m4[eax+None*1+0x5af908],0x0",
            " je local:23",
            " inc edx",
            " add eax,0x4"
          ]
        },
        {
          "symbol": "gameplay.c::get_gameplay_number_recon_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x444010",
          "second": "0x444390",
          "first_instruction_count": 23,
          "second_instruction_count": 23,
          "diff": [
            "--- 0x444010",
            "+++ 0x444390",
            "@@ -11,7 +11,7 @@",
            " sub ebx,edx",
            " shl eax,0x5",
            " shl ebx,0xb",
            "-mov edx,m4[ebx+eax*1+0x5bc8f4]",
            "+mov edx,m4[ebx+eax*1+0x5af904]",
            " xor ecx,ecx",
            " test edx,edx",
            " je local:18"
          ]
        },
        {
          "symbol": "gameplay.c::get_gameplay_number_sam_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x443f38",
          "second": "0x4442b8",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x443f38",
            "+++ 0x4442b8",
            "@@ -18,7 +18,7 @@",
            " add ecx,0x8",
            " pop ebx",
            " pop esi",
            "-cmp m4[eax+None*1+0x5bc8cc],0x0",
            "+cmp m4[eax+None*1+0x5af8dc],0x0",
            " je local:23",
            " inc edx",
            " add eax,0x4"
          ]
        },
        {
          "symbol": "gameplay.c::get_gameplay_number_tanks_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x443f80",
          "second": "0x444300",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x443f80",
            "+++ 0x444300",
            "@@ -18,7 +18,7 @@",
            " add ecx,0x10",
            " pop ebx",
            " pop esi",
            "-cmp m4[eax+None*1+0x5bc8d4],0x0",
            "+cmp m4[eax+None*1+0x5af8e4],0x0",
            " je local:23",
            " inc edx",
            " add eax,0x4"
          ]
        },
        {
          "symbol": "gameplay.c::initialise_front_distances_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x442de8",
          "second": "0x443168",
          "first_instruction_count": 168,
          "second_instruction_count": 168,
          "diff": [
            "--- 0x442de8",
            "+++ 0x443168",
            "@@ -12,7 +12,7 @@",
            " mov edx,esi",
            " shl eax,0x6",
            " inc eax",
            "-mov m1[eax+None*1+0x5bb8bf],bl",
            "+mov m1[eax+None*1+0x5ae8cf],bl",
            " cmp eax,edx",
            " jne local:13",
            " inc ecx",
            "@@ -97,34 +97,34 @@",
            " inc eax",
            " test edi,edi",
            " jle local:104",
            "-movzx edi,m1[ebx+None*1+0x5bb880]",
            "+movzx edi,m1[ebx+None*1+0x5ae890]",
            " cmp edi,eax",
            " jle local:104",
            " inc edx",
            "-mov m1[ebx+None*1+0x5bb880],al",
            "+mov m1[ebx+None*1+0x5ae890],al",
            " cmp m4[esp+None*1+0x20],0x3f",
            " jge local:111",
            "-movzx edi,m1[ebp+None*1+0x5bb900]",
            "+movzx edi,m1[ebp+None*1+0x5ae910]",
            " cmp eax,edi",
            " jge local:111",
            " inc edx",
            "-mov m1[ebp+None*1+0x5bb900],al",
            "+mov m1[ebp+None*1+0x5ae910],al",
            " test ecx,ecx",
            " jle local:118",
            "-movzx edi,m1[esi+None*1+0x5bb8bf]",
            "+movzx edi,m1[esi+None*1+0x5ae8cf]",
            " cmp edi,eax",
            " jle local:118",
            " inc edx",
            "-mov m1[esi+None*1+0x5bb8bf],al",
            "+mov m1[esi+None*1+0x5ae8cf],al",
            " cmp ecx,0x3f",
            " jge local:127",
            " mov edi,m4[esp+None*1+0x24]",
            "-movzx edi,m1[edi+None*1+0x5bb8c1]",
            "+movzx edi,m1[edi+None*1+0x5ae8d1]",
            " cmp eax,edi",
            " jge local:127",
            " mov edi,m4[esp+None*1+0x24]",
            " inc edx",
            "-mov m1[edi+None*1+0x5bb8c1],al",
            "+mov m1[edi+None*1+0x5ae8d1],al",
            " mov eax,m4[esp+None*1+0x24]",
            " inc ebp",
            " inc esi"
          ]
        },
        {
          "symbol": "gameplay.c::initialise_static_objects_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x4448e0",
          "second": "0x444c60",
          "first_instruction_count": 74,
          "second_instruction_count": 74,
          "diff": [
            "--- 0x4448e0",
            "+++ 0x444c60",
            "@@ -5,7 +5,7 @@",
            " push edi",
            " push ebp",
            " sub esp,0x10",
            "-mov edi,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edi,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " xor edx,edx",
            " mov m4[esp+None*1+0xc],edx",
            " mov m4[esp+None*1+0x8],edx",
            "@@ -42,7 +42,7 @@",
            " mov m4[esp+None*1+0x8],ebp",
            " cmp ebp,0x4000",
            " jne local:11",
            "-mov m4[None+None*1+fx3dobj1.c::_object_3d_headers],edi",
            "+mov m4[None+None*1+3dobjs1.c::_object_3d_headers],edi",
            " add esp,0x10",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "gameplay.c::place_dynamic_gameplay_objects_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x444128",
          "second": "0x4444a8",
          "first_instruction_count": 174,
          "second_instruction_count": 174,
          "diff": [
            "--- 0x444128",
            "+++ 0x4444a8",
            "@@ -18,7 +18,7 @@",
            " xor esi,esi",
            " add edi,ebp",
            " lea eax,m4[edi+esi*1+0x0]",
            "-mov eax,m4[eax+None*1+0x5bc8c4]",
            "+mov eax,m4[eax+None*1+0x5af8d4]",
            " test eax,eax",
            " jne local:148",
            " add esi,0x4",
            "@@ -28,7 +28,7 @@",
            " xor esi,esi",
            " add edi,ebp",
            " lea eax,m4[edi+esi*1+0x0]",
            "-mov eax,m4[eax+None*1+0x5bc8cc]",
            "+mov eax,m4[eax+None*1+0x5af8dc]",
            " test eax,eax",
            " je local:58",
            " mov edx,m4[eax+None*1+0x4]",
            "@@ -63,7 +63,7 @@",
            " xor esi,esi",
            " add edi,ebp",
            " lea eax,m4[edi+esi*1+0x0]",
            "-mov eax,m4[eax+None*1+0x5bc8d4]",
            "+mov eax,m4[eax+None*1+0x5af8e4]",
            " test eax,eax",
            " je local:93",
            " mov edx,m4[eax+None*1+0x4]",
            "@@ -98,7 +98,7 @@",
            " xor esi,esi",
            " add edi,ebp",
            " lea eax,m4[edi+esi*1+0x0]",
            "-mov eax,m4[eax+None*1+0x5bc8e4]",
            "+mov eax,m4[eax+None*1+0x5af8f4]",
            " test eax,eax",
            " je local:128",
            " mov edx,m4[eax+None*1+0x4]"
          ]
        },
        {
          "symbol": "gameplay.c::remove_gameplay_object_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x44347c",
          "second": "0x4437fc",
          "first_instruction_count": 596,
          "second_instruction_count": 596,
          "diff": [
            "--- 0x44347c",
            "+++ 0x4437fc",
            "@@ -31,7 +31,7 @@",
            " mov m4[esp+None*1+0x3c],ebp",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov eax,m4[eax+None*1+0x5bc8c4]",
            "+mov eax,m4[eax+None*1+0x5af8d4]",
            " mov m4[esp+None*1+0x58],eax",
            " test eax,eax",
            " jne local:45",
            "@@ -89,7 +89,7 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x68]",
            " xor edi,edi",
            "-mov m4[edx+eax*4+0x5bc8c4],edi",
            "+mov m4[edx+eax*4+0x5af8d4],edi",
            " add esp,0x70",
            " pop ebp",
            " pop edi",
            "@@ -108,7 +108,7 @@",
            " mov m4[esp+None*1+0x2c],ebp",
            " mov m4[esp+None*1+0x8],eax",
            " mov eax,m4[esp+None*1+0x8]",
            "-mov eax,m4[eax+None*1+0x5bc8cc]",
            "+mov eax,m4[eax+None*1+0x5af8dc]",
            " mov m4[esp+None*1+0x50],eax",
            " test eax,eax",
            " jne local:136",
            "@@ -127,7 +127,7 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x68]",
            " xor ecx,ecx",
            "-mov m4[edx+eax*4+0x5bc8cc],ecx",
            "+mov m4[edx+eax*4+0x5af8dc],ecx",
            " add esp,0x70",
            " pop ebp",
            " pop edi",
            "@@ -178,7 +178,7 @@",
            " mov m4[esp+None*1+0x28],ebp",
            " mov m4[esp+None*1+0x24],eax",
            " mov eax,m4[esp+None*1+0x24]",
            "-mov eax,m4[eax+None*1+0x5bc8d4]",
            "+mov eax,m4[eax+None*1+0x5af8e4]",
            " mov m4[esp+None*1+0x48],eax",
            " test eax,eax",
            " jne local:207",
            "@@ -198,7 +198,7 @@",
            " lea edx,m4[ebx+eax*1+0x0]",
            " mov eax,m4[esp+None*1+0x68]",
            " xor edi,edi",
            "-mov m4[edx+eax*4+0x5bc8d4],edi",
            "+mov m4[edx+eax*4+0x5af8e4],edi",
            " add esp,0x70",
            " pop ebp",
            " pop edi",
            "@@ -250,7 +250,7 @@",
            " mov m4[esp+None*1+0x44],ebp",
            " mov m4[esp+None*1+0x10],eax",
            " mov eax,m4[esp+None*1+0x10]",
            "-mov eax,m4[eax+None*1+0x5bc8e4]",
            "+mov eax,m4[eax+None*1+0x5af8f4]",
            " mov m4[esp+None*1+0x64],eax",
            " test eax,eax",
            " jne local:279",
            "@@ -270,7 +270,7 @@",
            " add ebx,eax",
            " mov eax,m4[esp+None*1+0x68]",
            " xor ecx,ecx",
            "-mov m4[ebx+eax*4+0x5bc8e4],ecx",
            "+mov m4[ebx+eax*4+0x5af8f4],ecx",
            " add esp,0x70",
            " pop ebp",
            " pop edi",
            "@@ -322,7 +322,7 @@",
            " mov m4[esp+None*1+0x30],ebp",
            " mov m4[esp+None*1+0x20],eax",
            " mov eax,m4[esp+None*1+0x20]",
            "-mov eax,m4[eax+None*1+0x5bc8f4]",
            "+mov eax,m4[eax+None*1+0x5af904]",
            " mov m4[esp+None*1+0x4c],eax",
            " test eax,eax",
            " jne local:350",
            "@@ -341,7 +341,7 @@",
            " add eax,edx",
            " mov edx,m4[esp+None*1+0x68]",
            " xor edi,edi",
            "-mov m4[eax+edx*4+0x5bc8f4],edi",
            "+mov m4[eax+edx*4+0x5af904],edi",
            " add esp,0x70",
            " pop ebp",
            " pop edi",
            "@@ -392,7 +392,7 @@",
            " mov m4[esp+None*1+0x34],ebp",
            " mov m4[esp+None*1+0x1c],eax",
            " mov eax,m4[esp+None*1+0x1c]",
            "-mov eax,m4[eax+None*1+0x5bc8f8]",
            "+mov eax,m4[eax+None*1+0x5af908]",
            " mov m4[esp+None*1+0x5c],eax",
            " test eax,eax",
            " jne local:420",
            "@@ -411,7 +411,7 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x68]",
            " xor ecx,ecx",
            "-mov m4[edx+eax*4+0x5bc8f8],ecx",
            "+mov m4[edx+eax*4+0x5af908],ecx",
            " add esp,0x70",
            " pop ebp",
            " pop edi",
            "@@ -463,7 +463,7 @@",
            " mov m4[esp+None*1+0x38],ebp",
            " mov m4[esp+None*1+0x18],eax",
            " mov eax,m4[esp+None*1+0x18]",
            "-mov eax,m4[eax+None*1+0x5bc900]",
            "+mov eax,m4[eax+None*1+0x5af910]",
            " mov m4[esp+None*1+0x60],eax",
            " test eax,eax",
            " jne local:492",
            "@@ -483,7 +483,7 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x68]",
            " xor ebp,ebp",
            "-mov m4[edx+eax*4+0x5bc900],ebp",
            "+mov m4[edx+eax*4+0x5af910],ebp",
            " add esp,0x70",
            " pop ebp",
            " pop edi",
            "@@ -534,7 +534,7 @@",
            " mov m4[esp+None*1+0x40],ebp",
            " mov m4[esp+None*1+0x14],eax",
            " mov eax,m4[esp+None*1+0x14]",
            "-mov eax,m4[eax+None*1+0x5bc910]",
            "+mov eax,m4[eax+None*1+0x5af920]",
            " mov m4[esp+None*1+0x54],eax",
            " test eax,eax",
            " jne local:563",
            "@@ -554,7 +554,7 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x68]",
            " xor ebx,ebx",
            "-mov m4[edx+eax*4+0x5bc910],ebx",
            "+mov m4[edx+eax*4+0x5af920],ebx",
            " add esp,0x70",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "gameplay.c::remove_gameplay_objects_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x443c00",
          "second": "0x443f80",
          "first_instruction_count": 207,
          "second_instruction_count": 207,
          "diff": [
            "--- 0x443c00",
            "+++ 0x443f80",
            "@@ -27,7 +27,7 @@",
            " xor edx,edx",
            " lea ebx,m4[ecx+eax*1+0x0]",
            " lea ecx,m4[ebx+edx*1+0x0]",
            "-mov eax,m4[ecx+None*1+0x5bc8c4]",
            "+mov eax,m4[ecx+None*1+0x5af8d4]",
            " test eax,eax",
            " jne local:40",
            " add edx,0x4",
            "@@ -40,7 +40,7 @@",
            " ret ",
            " call gameplay.c::wipe_gameplay_object_",
            " xor eax,eax",
            "-mov m4[ecx+None*1+0x5bc8c4],eax",
            "+mov m4[ecx+None*1+0x5af8d4],eax",
            " add edx,0x4",
            " cmp edx,0x8",
            " jne local:28",
            "@@ -58,7 +58,7 @@",
            " xor edx,edx",
            " lea ebx,m4[ecx+eax*1+0x0]",
            " lea ecx,m4[ebx+edx*1+0x0]",
            "-mov eax,m4[ecx+None*1+0x5bc8cc]",
            "+mov eax,m4[ecx+None*1+0x5af8dc]",
            " test eax,eax",
            " jne local:67",
            " add edx,0x4",
            "@@ -67,7 +67,7 @@",
            " jmp local:59",
            " xor ebp,ebp",
            " call gameplay.c::wipe_gameplay_object_",
            "-mov m4[ecx+None*1+0x5bc8cc],ebp",
            "+mov m4[ecx+None*1+0x5af8dc],ebp",
            " add edx,0x4",
            " cmp edx,0x8",
            " je local:35",
            "@@ -81,7 +81,7 @@",
            " xor edx,edx",
            " lea ebx,m4[ecx+eax*1+0x0]",
            " lea ecx,m4[ebx+edx*1+0x0]",
            "-mov eax,m4[ecx+None*1+0x5bc8d4]",
            "+mov eax,m4[ecx+None*1+0x5af8e4]",
            " test eax,eax",
            " jne local:90",
            " add edx,0x4",
            "@@ -90,7 +90,7 @@",
            " jmp local:82",
            " xor edi,edi",
            " call gameplay.c::wipe_gameplay_object_",
            "-mov m4[ecx+None*1+0x5bc8d4],edi",
            "+mov m4[ecx+None*1+0x5af8e4],edi",
            " add edx,0x4",
            " cmp edx,0x10",
            " je local:35",
            "@@ -104,7 +104,7 @@",
            " xor edx,edx",
            " lea ebx,m4[ecx+eax*1+0x0]",
            " lea ecx,m4[ebx+edx*1+0x0]",
            "-mov eax,m4[ecx+None*1+0x5bc8e4]",
            "+mov eax,m4[ecx+None*1+0x5af8f4]",
            " test eax,eax",
            " jne local:113",
            " add edx,0x4",
            "@@ -113,7 +113,7 @@",
            " jmp local:105",
            " xor esi,esi",
            " call gameplay.c::wipe_gameplay_object_",
            "-mov m4[ecx+None*1+0x5bc8e4],esi",
            "+mov m4[ecx+None*1+0x5af8f4],esi",
            " add edx,0x4",
            " cmp edx,0x10",
            " je local:35",
            "@@ -125,12 +125,12 @@",
            " shl ecx,0xb",
            " shl eax,0x5",
            " lea edx,m4[ecx+eax*1+0x0]",
            "-mov eax,m4[edx+None*1+0x5bc8f4]",
            "+mov eax,m4[edx+None*1+0x5af904]",
            " test eax,eax",
            " je local:35",
            " call gameplay.c::wipe_gameplay_object_",
            " xor eax,eax",
            "-mov m4[edx+None*1+0x5bc8f4],eax",
            "+mov m4[edx+None*1+0x5af904],eax",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -145,7 +145,7 @@",
            " xor edx,edx",
            " lea ebx,m4[ecx+eax*1+0x0]",
            " lea ecx,m4[ebx+edx*1+0x0]",
            "-mov eax,m4[ecx+None*1+0x5bc8f8]",
            "+mov eax,m4[ecx+None*1+0x5af908]",
            " test eax,eax",
            " jne local:154",
            " add edx,0x4",
            "@@ -154,7 +154,7 @@",
            " jmp local:146",
            " xor ebp,ebp",
            " call gameplay.c::wipe_gameplay_object_",
            "-mov m4[ecx+None*1+0x5bc8f8],ebp",
            "+mov m4[ecx+None*1+0x5af908],ebp",
            " add edx,0x4",
            " cmp edx,0x8",
            " je local:35",
            "@@ -168,7 +168,7 @@",
            " xor edx,edx",
            " lea ebx,m4[ecx+eax*1+0x0]",
            " lea ecx,m4[ebx+edx*1+0x0]",
            "-mov eax,m4[ecx+None*1+0x5bc900]",
            "+mov eax,m4[ecx+None*1+0x5af910]",
            " test eax,eax",
            " jne local:177",
            " add edx,0x4",
            "@@ -177,7 +177,7 @@",
            " jmp local:169",
            " xor edi,edi",
            " call gameplay.c::wipe_gameplay_object_",
            "-mov m4[ecx+None*1+0x5bc900],edi",
            "+mov m4[ecx+None*1+0x5af910],edi",
            " add edx,0x4",
            " cmp edx,0x10",
            " je local:35",
            "@@ -191,7 +191,7 @@",
            " xor edx,edx",
            " lea ebx,m4[ecx+eax*1+0x0]",
            " lea ecx,m4[ebx+edx*1+0x0]",
            "-mov eax,m4[ecx+None*1+0x5bc910]",
            "+mov eax,m4[ecx+None*1+0x5af920]",
            " test eax,eax",
            " jne local:200",
            " add edx,0x4",
            "@@ -200,7 +200,7 @@",
            " jmp local:192",
            " xor esi,esi",
            " call gameplay.c::wipe_gameplay_object_",
            "-mov m4[ecx+None*1+0x5bc910],esi",
            "+mov m4[ecx+None*1+0x5af920],esi",
            " add edx,0x4",
            " cmp edx,0x10",
            " je local:35"
          ]
        },
        {
          "symbol": "gameplay.c::setup_dynamic_gameplay_objects_",
          "source": "E:\\apache\\source\\gameplay\\gameplay.c",
          "first": "0x4445fc",
          "second": "0x44497c",
          "first_instruction_count": 95,
          "second_instruction_count": 95,
          "diff": [
            "--- 0x4445fc",
            "+++ 0x44497c",
            "@@ -18,7 +18,7 @@",
            " mov ecx,m4[esp+None*1+0x14]",
            " mov esi,ebp",
            " add ebx,ecx",
            "-mov ecx,m4[ebx+None*1+0x5bc8c4]",
            "+mov ecx,m4[ebx+None*1+0x5af8d4]",
            " test ecx,ecx",
            " jne local:69",
            " add ebx,0x4",
            "@@ -28,7 +28,7 @@",
            " mov ebx,m4[esp+None*1+0x10]",
            " mov esi,m4[esp+None*1+0x18]",
            " add ebx,eax",
            "-mov ecx,m4[ebx+None*1+0x5bc8cc]",
            "+mov ecx,m4[ebx+None*1+0x5af8dc]",
            " test ecx,ecx",
            " je local:46",
            " mov eax,m4[ecx+None*1+0x4]"
          ]
        },
        {
          "symbol": "gdrvewnt::_dos_getdrive_",
          "source": "gdrvewnt",
          "first": "0x4c8ce1",
          "second": "0x4bc307",
          "first_instruction_count": 19,
          "second_instruction_count": 19,
          "diff": [
            "--- 0x4c8ce1",
            "+++ 0x4bc307",
            "@@ -6,7 +6,7 @@",
            " mov eax,esp",
            " push eax",
            " push 0x104",
            "-call m4[None+None*1+constant:a04c0d00]",
            "+call m4[None+None*1+constant:7e7b0c00]",
            " xor eax,eax",
            " mov al,m1[esp+None*1+0x0]",
            " call tolower::tolower_"
          ]
        },
        {
          "symbol": "getchwnt::do_getch_",
          "source": "getchwnt",
          "first": "0x4d1666",
          "second": "0x4c4bd3",
          "first_instruction_count": 75,
          "second_instruction_count": 75,
          "diff": [
            "--- 0x4d1666",
            "+++ 0x4c4bd3",
            "@@ -11,10 +11,10 @@",
            " cmp eax,0x2",
            " je local:26",
            " jmp local:32",
            "-mov ebx,m4[None+None*1+0x10dd330]",
            "+mov ebx,m4[None+None*1+0xf90ae0]",
            " dec ebx",
            "-mov ecx,m4[None+None*1+0x10dd32c]",
            "-mov m4[None+None*1+0x10dd330],ebx",
            "+mov ecx,m4[None+None*1+0xf90adc]",
            "+mov m4[None+None*1+0xf90ae0],ebx",
            " test ecx,ecx",
            " je local:23",
            " test ebx,ebx",
            "@@ -22,13 +22,13 @@",
            " mov m4[None+None*1+constant:00000000],ebx",
            " jmp local:24",
            " mov m4[None+None*1+constant:00000000],0x2",
            "-mov eax,m4[None+None*1+0x10dd32c]",
            "+mov eax,m4[None+None*1+0xf90adc]",
            " jmp local:69",
            "-cmp m4[None+None*1+0x10dd330],0x0",
            "+cmp m4[None+None*1+0xf90ae0],0x0",
            " setne al",
            " and eax,0xff",
            " mov m4[None+None*1+constant:00000000],eax",
            "-mov eax,m4[None+None*1+0x10dd328]",
            "+mov eax,m4[None+None*1+0xf90ad8]",
            " jmp local:69",
            " lea eax,m4[esp+None*1+0x14]",
            " push eax",
            "@@ -36,7 +36,7 @@",
            " lea eax,m4[esp+None*1+0x8]",
            " push eax",
            " push ebx",
            "-call m4[None+None*1+constant:a64e0d00]",
            "+call m4[None+None*1+constant:947d0c00]",
            " test eax,eax",
            " je local:68",
            " mov eax,esp",
            "@@ -46,23 +46,23 @@",
            " xor eax,eax",
            " mov ax,m2[esp+None*1+0x8]",
            " dec eax",
            "-mov m4[None+None*1+0x10dd330],eax",
            "+mov m4[None+None*1+0xf90ae0],eax",
            " xor eax,eax",
            " mov al,m1[esp+None*1+0xe]",
            "-mov m4[None+None*1+0x10dd32c],eax",
            "+mov m4[None+None*1+0xf90adc],eax",
            " test m1[esp+None*1+0x11],0x1",
            " jne local:56",
            "-cmp m4[None+None*1+0x10dd32c],0x0",
            "+cmp m4[None+None*1+0xf90adc],0x0",
            " jne local:64",
            " mov esi,0x2",
            " xor eax,eax",
            " xor ecx,ecx",
            " mov ax,m2[esp+None*1+0xc]",
            "-mov m4[None+None*1+0x10dd32c],ecx",
            "+mov m4[None+None*1+0xf90adc],ecx",
            " mov m4[None+None*1+constant:00000000],esi",
            "-mov m4[None+None*1+0x10dd328],eax",
            "+mov m4[None+None*1+0xf90ad8],eax",
            " jmp local:24",
            "-cmp m4[None+None*1+0x10dd330],0x0",
            "+cmp m4[None+None*1+0xf90ae0],0x0",
            " je local:24",
            " mov m4[None+None*1+constant:00000000],0x1",
            " jmp local:24"
          ]
        },
        {
          "symbol": "getchwnt::getch_",
          "source": "getchwnt",
          "first": "0x4d1773",
          "second": "0x4c4ce0",
          "first_instruction_count": 43,
          "second_instruction_count": 43,
          "diff": [
            "--- 0x4d1773",
            "+++ 0x4c4ce0",
            "@@ -21,17 +21,17 @@",
            " mov eax,esp",
            " push eax",
            " push ebx",
            "-call m4[None+None*1+constant:8e4c0d00]",
            "+call m4[None+None*1+constant:6c7b0c00]",
            " push 0x0",
            " push ebx",
            "-call m4[None+None*1+constant:264f0d00]",
            "+call m4[None+None*1+constant:147e0c00]",
            " mov eax,ebx",
            " call getchwnt::do_getch_",
            " mov ecx,m4[esp+None*1+0x0]",
            " push ecx",
            " push ebx",
            " mov esi,eax",
            "-call m4[None+None*1+constant:264f0d00]",
            "+call m4[None+None*1+constant:147e0c00]",
            " xor eax,eax",
            " call m4[None+None*1+mainwnt::__ReleaseFileH]",
            " mov eax,esi"
          ]
        },
        {
          "symbol": "getmodfn::__lib_GetModuleFileNameW_",
          "source": "getmodfn",
          "first": "0x4ce2c5",
          "second": "0x4c1735",
          "first_instruction_count": 61,
          "second_instruction_count": 61,
          "diff": [
            "--- 0x4ce2c5",
            "+++ 0x4c1735",
            "@@ -5,7 +5,7 @@",
            " mov ebp,eax",
            " mov esi,edx",
            " mov edi,ebx",
            "-call m4[None+None*1+constant:184e0d00]",
            "+call m4[None+None*1+constant:f67c0c00]",
            " shr eax,0x10",
            " and eax,0xffff",
            " cmp ax,0x8000",
            "@@ -13,7 +13,7 @@",
            " push ebx",
            " push esi",
            " push ebp",
            "-call m4[None+None*1+constant:924d0d00]",
            "+call m4[None+None*1+constant:707c0c00]",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -27,7 +27,7 @@",
            " push 0x208",
            " push eax",
            " push ebp",
            "-call m4[None+None*1+constant:7c4d0d00]",
            "+call m4[None+None*1+constant:5a7c0c00]",
            " test eax,eax",
            " jne local:40",
            " mov eax,ebx",
            "@@ -44,7 +44,7 @@",
            " push ebx",
            " push 0x1",
            " push 0x1",
            "-call m4[None+None*1+constant:904e0d00]",
            "+call m4[None+None*1+constant:7e7d0c00]",
            " mov ebp,eax",
            " mov eax,ebx",
            " call nfree::_nfree_"
          ]
        },
        {
          "symbol": "gndobjs.c::craterise_ground_object_",
          "source": "E:\\library\\3dvisual\\gndobjs.c",
          "first": "0x494150",
          "second": "0x4909f0",
          "first_instruction_count": 14,
          "second_instruction_count": 14,
          "diff": [
            "--- 0x494150",
            "+++ 0x4909f0",
            "@@ -1,6 +1,6 @@",
            " push ecx",
            " xor edx,edx",
            "-mov ecx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ecx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov dx,m2[eax+None*1+0x0]",
            " mov edx,m4[ecx+edx*4+0x0]",
            " mov edx,m4[edx+None*1+0xb0]"
          ]
        },
        {
          "symbol": "gndobjs.c::draw_ground_object_",
          "source": "E:\\library\\3dvisual\\gndobjs.c",
          "first": "0x493d60",
          "second": "0x490600",
          "first_instruction_count": 57,
          "second_instruction_count": 57,
          "diff": [
            "--- 0x493d60",
            "+++ 0x490600",
            "@@ -33,13 +33,13 @@",
            " mov eax,m4[edx+None*1+0x10]",
            " mov m4[esp+None*1+0x48],eax",
            " mov m4[esp+None*1+0x4c],ecx",
            "-mov ecx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ecx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[edx+None*1+0x8]",
            " mov eax,m4[ecx+eax*4+0x0]",
            " cmp m4[eax+None*1+0x0],0x0",
            " je local:47",
            " mov eax,esp",
            "-call fx3dobj1.c::draw_3d_object_",
            "+call 3dobjs1.c::draw_3d_object_",
            " add esp,0x74",
            " pop edx",
            " pop ecx",
            "@@ -49,7 +49,7 @@",
            " lea edx,m4[esp+None*1+0x50]",
            " call matrix.c::get_skew_only_transformation_matrix_",
            " mov eax,esp",
            "-call fx3dobj1.c::draw_3d_object_",
            "+call 3dobjs1.c::draw_3d_object_",
            " add esp,0x74",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "gndobjs.c::draw_map_ground_object_",
          "source": "E:\\library\\3dvisual\\gndobjs.c",
          "first": "0x493e9c",
          "second": "0x49073c",
          "first_instruction_count": 180,
          "second_instruction_count": 180,
          "diff": [
            "--- 0x493e9c",
            "+++ 0x49073c",
            "@@ -15,11 +15,11 @@",
            " xor edx,edx",
            " mov dx,m2[eax+None*1+0x0]",
            " lea ebx,m4[None+edx*4+0x0]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edx,m4[edx+ebx*1+0x0]",
            " test m1[edx+None*1+0xb8],0x1",
            " je local:172",
            "-test m1[None+None*1+0xd82544],0x8",
            "+test m1[None+None*1+0xd6cbf4],0x8",
            " je local:158",
            " mov bx,m2[eax+None*1+0xa]",
            " shl ebx,0xd",
            "@@ -85,7 +85,7 @@",
            " mov eax,edx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[esp+None*1+0x518],eax",
            " mov ebp,m4[esp+None*1+0x510]",
            " dec ebp",
            "@@ -147,14 +147,14 @@",
            " mov edx,m4[esp+None*1+0x50c]",
            " mov eax,esp",
            " mov m4[edi+None*1+0xfffffffc],0x0",
            "-call fx2dpoly.c::fill_2d_polygon_",
            "+call 2dpoly.c::fill_2d_polygon_",
            " sub edi,0x28",
            " jmp local:89",
            " sub eax,0x28",
            " mov edx,m4[esp+None*1+0x50c]",
            " mov m4[eax+None*1+0x24],0x0",
            " mov eax,esp",
            "-call fx2dpoly.c::fill_2d_polygon_",
            "+call 2dpoly.c::fill_2d_polygon_",
            " jmp local:46",
            " mov dx,m2[eax+None*1+0xa]",
            " shl edx,0xd"
          ]
        },
        {
          "symbol": "gndobjs.c::draw_map_ground_objects_",
          "source": "E:\\library\\3dvisual\\gndobjs.c",
          "first": "0x493e0c",
          "second": "0x4906ac",
          "first_instruction_count": 49,
          "second_instruction_count": 49,
          "diff": [
            "--- 0x493e0c",
            "+++ 0x4906ac",
            "@@ -17,7 +17,7 @@",
            " call gndobjs.c::draw_map_ground_object_",
            " add ecx,0xc",
            " jmp local:12",
            "-test m1[None+None*1+0xd82544],0x10",
            "+test m1[None+None*1+0xd6cbf4],0x10",
            " je local:37",
            " mov eax,m4[None+None*1+3dconfig.c::_visual_initialisation]",
            " cmp m4[eax+None*1+0xcc],0x0"
          ]
        },
        {
          "symbol": "gndobjs.c::get_ground_object_in_range_",
          "source": "E:\\library\\3dvisual\\gndobjs.c",
          "first": "0x494934",
          "second": "0x4911d4",
          "first_instruction_count": 240,
          "second_instruction_count": 240,
          "diff": [
            "--- 0x494934",
            "+++ 0x4911d4",
            "@@ -27,101 +27,101 @@",
            " mov ecx,m4[esi+None*1+0x8]",
            " cmp edx,ecx",
            " jl local:188",
            "-mov m4[None+None*1+0xd88968],edx",
            "-mov m4[None+None*1+0xd8898c],ecx",
            "+mov m4[None+None*1+0xd73018],edx",
            "+mov m4[None+None*1+0xd7303c],ecx",
            " mov ecx,ebp",
            " mov eax,m4[esi+None*1+0x0]",
            " sar ecx,0x16",
            "-mov m4[None+None*1+0xd88984],eax",
            "-mov m4[None+None*1+0xd88978],ecx",
            "-mov m4[None+None*1+0xd88980],ecx",
            "-mov ecx,m4[None+None*1+0xd88984]",
            "-mov m4[None+None*1+0xd88988],ebp",
            "+mov m4[None+None*1+0xd73034],eax",
            "+mov m4[None+None*1+0xd73028],ecx",
            "+mov m4[None+None*1+0xd73030],ecx",
            "+mov ecx,m4[None+None*1+0xd73034]",
            "+mov m4[None+None*1+0xd73038],ebp",
            " sub ecx,edx",
            "-mov m4[None+None*1+0xd8899c],esi",
            "+mov m4[None+None*1+0xd7304c],esi",
            " mov edx,ecx",
            " sar eax,0x16",
            " sar edx,0x16",
            "-mov m4[None+None*1+0xd8897c],eax",
            "+mov m4[None+None*1+0xd7302c],eax",
            " cmp eax,edx",
            " jge local:193",
            " test eax,eax",
            " jle local:195",
            "-mov ebx,m4[None+None*1+0xd88968]",
            "-mov m4[None+None*1+0xd88974],eax",
            "-mov eax,m4[None+None*1+0xd88984]",
            "+mov ebx,m4[None+None*1+0xd73018]",
            "+mov m4[None+None*1+0xd73024],eax",
            "+mov eax,m4[None+None*1+0xd73034]",
            " add eax,ebx",
            "-mov esi,m4[None+None*1+0xd8897c]",
            "+mov esi,m4[None+None*1+0xd7302c]",
            " sar eax,0x16",
            " cmp eax,esi",
            " jge local:58",
            " mov eax,esi",
            " cmp eax,0x3f",
            " jge local:197",
            "-mov ebp,m4[None+None*1+0xd88968]",
            "-mov m4[None+None*1+0xd8897c],eax",
            "-mov eax,m4[None+None*1+0xd88988]",
            "+mov ebp,m4[None+None*1+0xd73018]",
            "+mov m4[None+None*1+0xd7302c],eax",
            "+mov eax,m4[None+None*1+0xd73038]",
            " sub eax,ebp",
            "-mov edx,m4[None+None*1+0xd88978]",
            "+mov edx,m4[None+None*1+0xd73028]",
            " sar eax,0x16",
            " cmp eax,edx",
            " jle local:69",
            " mov eax,edx",
            " test eax,eax",
            " jle local:199",
            "-mov ecx,m4[None+None*1+0xd88968]",
            "-mov m4[None+None*1+0xd88978],eax",
            "-mov eax,m4[None+None*1+0xd88988]",
            "+mov ecx,m4[None+None*1+0xd73018]",
            "+mov m4[None+None*1+0xd73028],eax",
            "+mov eax,m4[None+None*1+0xd73038]",
            " add eax,ecx",
            "-mov ebx,m4[None+None*1+0xd88980]",
            "+mov ebx,m4[None+None*1+0xd73030]",
            " sar eax,0x16",
            " cmp eax,ebx",
            " jge local:80",
            " mov eax,ebx",
            " cmp eax,0x3f",
            " jge local:201",
            "-mov m4[None+None*1+0xd88980],eax",
            "-mov eax,m4[None+None*1+0xd88974]",
            "-mov m4[None+None*1+0xd8896c],eax",
            "-mov esi,m4[None+None*1+0xd8897c]",
            "-mov eax,m4[None+None*1+0xd8896c]",
            "+mov m4[None+None*1+0xd73030],eax",
            "+mov eax,m4[None+None*1+0xd73024]",
            "+mov m4[None+None*1+0xd7301c],eax",
            "+mov esi,m4[None+None*1+0xd7302c]",
            "+mov eax,m4[None+None*1+0xd7301c]",
            " cmp eax,esi",
            " jg local:233",
            " shl eax,0x16",
            "-mov m4[None+None*1+0xd88990],eax",
            "-mov eax,m4[None+None*1+0xd88978]",
            "-mov m4[None+None*1+0xd88970],eax",
            "-mov ebp,m4[None+None*1+0xd88980]",
            "-mov eax,m4[None+None*1+0xd88970]",
            "+mov m4[None+None*1+0xd73040],eax",
            "+mov eax,m4[None+None*1+0xd73028]",
            "+mov m4[None+None*1+0xd73020],eax",
            "+mov ebp,m4[None+None*1+0xd73030]",
            "+mov eax,m4[None+None*1+0xd73020]",
            " cmp eax,ebp",
            " jg local:231",
            " shl eax,0x16",
            " mov edx,0x1",
            "-mov m4[None+None*1+0xd88994],eax",
            "+mov m4[None+None*1+0xd73044],eax",
            " mov m4[None+None*1+gndobjs.c::_search_in_progress],edx",
            "-mov eax,m4[None+None*1+0xd8896c]",
            "+mov eax,m4[None+None*1+0xd7301c]",
            " mov edx,m4[None+None*1+gndobjs.c::_static_sector_lists]",
            " shl eax,0x8",
            " add eax,edx",
            "-mov edx,m4[None+None*1+0xd88970]",
            "+mov edx,m4[None+None*1+0xd73020]",
            " mov eax,m4[eax+edx*4+0x0]",
            " test eax,eax",
            " je local:211",
            " movsx edx,m2[eax+None*1+0x0]",
            " add eax,0x2",
            "-mov m4[None+None*1+0xd88998],edx",
            "-mov m4[None+None*1+0xd889a0],eax",
            "-mov ecx,m4[None+None*1+0xd88998]",
            "+mov m4[None+None*1+0xd73048],edx",
            "+mov m4[None+None*1+0xd73050],eax",
            "+mov ecx,m4[None+None*1+0xd73048]",
            " dec ecx",
            "-mov m4[None+None*1+0xd88998],ecx",
            "+mov m4[None+None*1+0xd73048],ecx",
            " cmp ecx,0xffffffff",
            " je local:211",
            "-mov eax,m4[None+None*1+0xd889a0]",
            "+mov eax,m4[None+None*1+0xd73050]",
            " cmp m2[eax+None*1+0x0],0x0",
            " je local:141",
            "-mov esi,m4[None+None*1+0xd88990]",
            "-mov ebx,m4[None+None*1+0xd88994]",
            "-mov ebp,m4[None+None*1+0xd88984]",
            "+mov esi,m4[None+None*1+0xd73040]",
            "+mov ebx,m4[None+None*1+0xd73044]",
            "+mov ebp,m4[None+None*1+0xd73034]",
            " xor edx,edx",
            " xor ecx,ecx",
            " mov dx,m2[eax+None*1+0x2]",
            "@@ -130,49 +130,49 @@",
            " shl ecx,0x8",
            " add esi,edx",
            " add ecx,ebx",
            "-mov ebx,m4[None+None*1+0xd88988]",
            "+mov ebx,m4[None+None*1+0xd73038]",
            " mov eax,esi",
            " mov edx,ecx",
            " sub eax,ebp",
            " sub edx,ebx",
            "-mov ebx,m4[None+None*1+0xd8898c]",
            "+mov ebx,m4[None+None*1+0xd7303c]",
            " call range.c::get_approx_3d_range_",
            "-cmp eax,m4[None+None*1+0xd88968]",
            "+cmp eax,m4[None+None*1+0xd73018]",
            " jl local:203",
            "-add m4[None+None*1+0xd889a0],0xc",
            "+add m4[None+None*1+0xd73050],0xc",
            " jmp local:113",
            "-add m4[None+None*1+0xd889a0],0xc",
            "-mov eax,m4[None+None*1+0xd88998]",
            "+add m4[None+None*1+0xd73050],0xc",
            "+mov eax,m4[None+None*1+0xd73048]",
            " dec eax",
            "-mov m4[None+None*1+0xd88998],eax",
            "+mov m4[None+None*1+0xd73048],eax",
            " cmp eax,0xffffffff",
            " je local:229",
            "-mov eax,m4[None+None*1+0xd889a0]",
            "+mov eax,m4[None+None*1+0xd73050]",
            " cmp m2[eax+None*1+0x0],0x0",
            " je local:143",
            " xor edx,edx",
            " mov dx,m2[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xd88990]",
            "+mov ecx,m4[None+None*1+0xd73040]",
            " shl edx,0x8",
            " mov ax,m2[eax+None*1+0x4]",
            " add ecx,edx",
            "-mov esi,m4[None+None*1+0xd88994]",
            "+mov esi,m4[None+None*1+0xd73044]",
            " and eax,0xffff",
            "-mov ebx,m4[None+None*1+0xd88984]",
            "+mov ebx,m4[None+None*1+0xd73034]",
            " shl eax,0x8",
            "-mov ebp,m4[None+None*1+0xd88988]",
            "+mov ebp,m4[None+None*1+0xd73038]",
            " add esi,eax",
            " mov eax,ecx",
            " mov edx,esi",
            " sub eax,ebx",
            " sub edx,ebp",
            "-mov ebx,m4[None+None*1+0xd8898c]",
            "+mov ebx,m4[None+None*1+0xd7303c]",
            " call range.c::get_approx_3d_range_",
            "-cmp eax,m4[None+None*1+0xd88968]",
            "+cmp eax,m4[None+None*1+0xd73018]",
            " jge local:143",
            " mov m4[edi+None*1+0x8],0x0",
            " mov m4[edi+None*1+0x4],esi",
            "-mov eax,m4[None+None*1+0xd889a0]",
            "+mov eax,m4[None+None*1+0xd73050]",
            " mov m4[edi+None*1+0x0],ecx",
            " pop ebp",
            " pop edi",
            "@@ -203,7 +203,7 @@",
            " jmp local:82",
            " mov m4[edi+None*1+0x8],0x0",
            " mov m4[edi+None*1+0x4],ecx",
            "-mov eax,m4[None+None*1+0xd889a0]",
            "+mov eax,m4[None+None*1+0xd73050]",
            " mov m4[edi+None*1+0x0],esi",
            " pop ebp",
            " pop edi",
            "@@ -215,21 +215,21 @@",
            " mov m4[None+None*1+gndobjs.c::_search_in_progress],esi",
            " test ebp,ebp",
            " je local:229",
            "-mov edx,m4[None+None*1+0xd8896c]",
            "+mov edx,m4[None+None*1+0xd7301c]",
            " shl edx,0x8",
            "-mov eax,m4[None+None*1+0xd88970]",
            "+mov eax,m4[None+None*1+0xd73020]",
            " add edx,ebp",
            " mov eax,m4[edx+eax*4+0x0]",
            " test eax,eax",
            " je local:229",
            " add eax,esi",
            " movsx edx,m2[eax+None*1+0xfffffffe]",
            "-mov m4[None+None*1+0xd889a0],eax",
            "-mov m4[None+None*1+0xd88998],edx",
            "+mov m4[None+None*1+0xd73050],eax",
            "+mov m4[None+None*1+0xd73048],edx",
            " jmp local:144",
            "-inc m4[None+None*1+0xd88970]",
            "+inc m4[None+None*1+0xd73020]",
            " jmp local:93",
            "-inc m4[None+None*1+0xd8896c]",
            "+inc m4[None+None*1+0xd7301c]",
            " jmp local:85",
            " mov edi,0x3",
            " xor eax,eax"
          ]
        },
        {
          "symbol": "gndobjs.c::ground_object_line_collision_test_",
          "source": "E:\\library\\3dvisual\\gndobjs.c",
          "first": "0x494380",
          "second": "0x490c20",
          "first_instruction_count": 373,
          "second_instruction_count": 373,
          "diff": [
            "--- 0x494380",
            "+++ 0x490c20",
            "@@ -30,7 +30,7 @@",
            " mov eax,m4[eax+None*1+0x8]",
            " mov m4[esp+None*1+0x7c],eax",
            " mov eax,m4[ebp+None*1+0x8]",
            "-mov edi,m4[None+None*1+fx3dobj1.c::_tallest_object]",
            "+mov edi,m4[None+None*1+3dobjs1.c::_tallest_object]",
            " mov m4[esp+None*1+0x68],eax",
            " cmp edi,m4[esp+None*1+0x7c]",
            " jge local:38",
            "@@ -149,7 +149,7 @@",
            " cmp m2[ecx+None*1+0x0],0x0",
            " je local:124",
            " xor edi,edi",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov di,m2[ecx+None*1+0x0]",
            " mov edi,m4[eax+edi*4+0x0]",
            " test m1[edi+None*1+0x98],0x4",
            "@@ -287,7 +287,7 @@",
            " je local:282",
            " xor eax,eax",
            " mov ax,bx",
            "-mov ebx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ebx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edi,m4[ebx+eax*4+0x0]",
            " test m1[edi+None*1+0x98],0x4",
            " je local:282"
          ]
        },
        {
          "symbol": "gndobjs.c::ground_object_point_collision_test_",
          "source": "E:\\library\\3dvisual\\gndobjs.c",
          "first": "0x494178",
          "second": "0x490a18",
          "first_instruction_count": 168,
          "second_instruction_count": 168,
          "diff": [
            "--- 0x494178",
            "+++ 0x490a18",
            "@@ -15,7 +15,7 @@",
            " jl local:51",
            " cmp ebx,0xfffffff",
            " jg local:51",
            "-mov ebp,m4[None+None*1+fx3dobj1.c::_tallest_object]",
            "+mov ebp,m4[None+None*1+3dobjs1.c::_tallest_object]",
            " cmp ebp,m4[eax+None*1+0x8]",
            " jl local:51",
            " mov edx,m4[eax+None*1+0x0]",
            "@@ -61,7 +61,7 @@",
            " je local:49",
            " xor eax,eax",
            " mov ax,dx",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ebx,m4[edx+eax*4+0x0]",
            " test m1[ebx+None*1+0x98],0x4",
            " je local:49",
            "@@ -125,7 +125,7 @@",
            " test bx,bx",
            " je local:121",
            " xor eax,eax",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ax,bx",
            " mov ebx,m4[edx+eax*4+0x0]",
            " test m1[ebx+None*1+0x98],0x4"
          ]
        },
        {
          "symbol": "gndobjs.c::scan_ground_objects_",
          "source": "E:\\library\\3dvisual\\gndobjs.c",
          "first": "0x493a30",
          "second": "0x4902d0",
          "first_instruction_count": 245,
          "second_instruction_count": 245,
          "diff": [
            "--- 0x493a30",
            "+++ 0x4902d0",
            "@@ -74,13 +74,13 @@",
            " add ecx,eax",
            " mov eax,m4[esp+None*1+0x30]",
            " sub eax,ebx",
            "-mov esi,m4[None+None*1+0xafaef4]",
            "+mov esi,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x24],eax",
            " mov eax,ecx",
            " sub eax,esi",
            " mov m4[esp+None*1+0x2c],ecx",
            " mov m4[esp+None*1+0x28],eax",
            "-mov eax,m4[None+None*1+0xafaef8]",
            "+mov eax,m4[None+None*1+0xae55a8]",
            " mov ebx,m4[esp+None*1+0x28]",
            " mov edi,eax",
            " mov m4[esp+None*1+0x38],eax",
            "@@ -88,15 +88,15 @@",
            " mov eax,m4[esp+None*1+0x24]",
            " mov ecx,edi",
            " mov m4[esp+None*1+0x38],edi",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -105,13 +105,13 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+0xafaeb4]",
            "+mov eax,m4[None+None*1+0xae5564]",
            " mov esi,edx",
            " cmp edx,eax",
            " jle local:60",
            "-cmp esi,m4[None+None*1+0xafaeb8]",
            "+cmp esi,m4[None+None*1+0xae5568]",
            " jge local:60",
            "-call fx3dobbf.c::get_object_buffer_space_",
            "+call 3dobjbuf.c::get_object_buffer_space_",
            " mov ecx,eax",
            " test eax,eax",
            " je local:15",
            "@@ -143,7 +143,7 @@",
            " mov ax,m2[ebp+None*1+0x8]",
            " mov m4[ecx+None*1+0x1c],eax",
            " mov eax,ecx",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " add ebp,0xc",
            " jmp local:53",
            " neg eax",
            "@@ -162,28 +162,28 @@",
            " add ecx,eax",
            " mov eax,m4[esp+None*1+0x34]",
            " sub eax,edi",
            "-mov edx,m4[None+None*1+0xafaef4]",
            "+mov edx,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x18],eax",
            " mov eax,ecx",
            " sub eax,edx",
            " mov m4[esp+None*1+0x14],ecx",
            " mov m4[esp+None*1+0x1c],eax",
            "-mov eax,m4[None+None*1+0xafaef8]",
            "+mov eax,m4[None+None*1+0xae55a8]",
            " mov ebx,m4[esp+None*1+0x1c]",
            " mov ecx,eax",
            " mov m4[esp+None*1+0x20],eax",
            " neg ecx",
            " mov eax,m4[esp+None*1+0x18]",
            " mov m4[esp+None*1+0x20],ecx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -192,13 +192,13 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ebx,m4[None+None*1+0xafaeb4]",
            "+mov ebx,m4[None+None*1+0xae5564]",
            " mov esi,edx",
            " cmp edx,ebx",
            " jle local:42",
            "-cmp edx,m4[None+None*1+0xafaeb8]",
            "+cmp edx,m4[None+None*1+0xae5568]",
            " jge local:42",
            "-call fx3dobbf.c::get_object_buffer_space_",
            "+call 3dobjbuf.c::get_object_buffer_space_",
            " mov ecx,eax",
            " test eax,eax",
            " jne local:212",
            "@@ -238,7 +238,7 @@",
            " mov ax,m2[ebp+None*1+0x8]",
            " mov m4[ecx+None*1+0x1c],eax",
            " mov eax,ecx",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " add ebp,0xc",
            " jmp local:35",
            " neg eax"
          ]
        },
        {
          "symbol": "gndradar.c::draw_ground_radar_object_",
          "source": "E:\\apache\\source\\radar\\gndradar.c",
          "first": "0x440ddc",
          "second": "0x44115c",
          "first_instruction_count": 79,
          "second_instruction_count": 79,
          "diff": [
            "--- 0x440ddc",
            "+++ 0x44115c",
            "@@ -23,7 +23,7 @@",
            " ja local:33",
            " mov ebx,m4[ebx+None*1+0x2c]",
            " mov bx,m2[ebx+None*1+0x0]",
            "-mov esi,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov esi,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " and ebx,0xffff",
            " mov edi,m4[esi+ebx*4+0x0]",
            " mov edi,m4[edi+None*1+0xb4]",
            "@@ -34,7 +34,7 @@",
            " cmp esi,0x2",
            " jne local:11",
            " mov ebx,m4[ebx+None*1+0x2c]",
            "-mov esi,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov esi,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ebx,m4[ebx+None*1+0x0]",
            " mov edi,m4[esi+ebx*4+0x0]",
            " mov edi,m4[edi+None*1+0xb4]"
          ]
        },
        {
          "symbol": "gndradar.c::plot_ground_radar_",
          "source": "E:\\apache\\source\\radar\\gndradar.c",
          "first": "0x440d4c",
          "second": "0x4410cc",
          "first_instruction_count": 51,
          "second_instruction_count": 51,
          "diff": [
            "--- 0x440d4c",
            "+++ 0x4410cc",
            "@@ -4,7 +4,7 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-mov eax,m4[None+None*1+0x5b3c6c]",
            "+mov eax,m4[None+None*1+0x5a6c7c]",
            " cmp eax,0x1",
            " jb local:36",
            " ja local:34",
            "@@ -13,7 +13,7 @@",
            " xor ebx,ebx",
            " cmp esi,ecx",
            " je local:25",
            "-mov ebp,m4[None+None*1+0x5b3c74]",
            "+mov ebp,m4[None+None*1+0x5a6c84]",
            " cmp ebp,m4[ecx+None*1+0x2c]",
            " je local:39",
            " mov edx,0xd7",
            "@@ -35,7 +35,7 @@",
            " cmp eax,0x2",
            " je local:10",
            " xor edx,edx",
            "-mov m4[None+None*1+0x5b3c74],edx",
            "+mov m4[None+None*1+0x5a6c84],edx",
            " jmp local:10",
            " mov ebx,ecx",
            " jmp local:21"
          ]
        },
        {
          "symbol": "gndradar.c::scan_ground_radar_",
          "source": "E:\\apache\\source\\radar\\gndradar.c",
          "first": "0x440860",
          "second": "0x440be0",
          "first_instruction_count": 380,
          "second_instruction_count": 380,
          "diff": [
            "--- 0x440860",
            "+++ 0x440be0",
            "@@ -53,7 +53,7 @@",
            " mov eax,m4[None+None*1+model.c::_model_heading]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,m4[None+None*1+initrad.c::_ground_radar_range]",
            " mov ebx,eax",
            " mov m4[esp+None*1+0x1c],eax",
            "@@ -95,7 +95,7 @@",
            " cmp eax,m4[None+None*1+gndradar.c::_ground_radar_sector_range]",
            " jge local:112",
            " mov ebx,m4[esp+None*1+0x14]",
            "-mov eax,m4[edi+None*1+0x5b3ca4]",
            "+mov eax,m4[edi+None*1+0x5a6cb4]",
            " sub eax,ebx",
            " cdq ",
            " xor eax,edx",
            "@@ -104,7 +104,7 @@",
            " jge local:112",
            " cmp m4[None+None*1+tgtlist.c::_display_threat_level],0x4",
            " je local:164",
            "-mov eax,m4[edi+None*1+0x5b3cb0]",
            "+mov eax,m4[edi+None*1+0x5a6cc0]",
            " mov ax,m2[eax+None*1+0x0]",
            " and eax,0xffff",
            " call tgtlist.c::get_target_filter_level_",
            "@@ -122,7 +122,7 @@",
            " test ebx,ebx",
            " jle local:155",
            " imul edi,m4[esp+None*1+0x30],0x1c",
            "-cmp m4[edi+None*1+0x5b80b4],0x1",
            "+cmp m4[edi+None*1+0x5ab0c4],0x1",
            " jne local:149",
            " mov edx,m4[esp+None*1+0x18]",
            " mov eax,m4[edi+None*1+tarscan.c::_mobile_target_list]",
            "@@ -133,7 +133,7 @@",
            " cmp eax,m4[None+None*1+gndradar.c::_ground_radar_sector_range]",
            " jge local:149",
            " mov ebx,m4[esp+None*1+0x14]",
            "-mov eax,m4[edi+None*1+0x5b80a4]",
            "+mov eax,m4[edi+None*1+0x5ab0b4]",
            " sub eax,ebx",
            " cdq ",
            " xor eax,edx",
            "@@ -142,7 +142,7 @@",
            " jge local:149",
            " cmp m4[None+None*1+tgtlist.c::_display_threat_level],0x4",
            " je local:277",
            "-mov eax,m4[edi+None*1+0x5b80b8]",
            "+mov eax,m4[edi+None*1+0x5ab0c8]",
            " mov eax,m4[eax+None*1+0x0]",
            " call tgtlist.c::get_target_filter_level_",
            " cmp eax,m4[None+None*1+tgtlist.c::_display_threat_level]",
            "@@ -165,13 +165,13 @@",
            " imul eax,m4[esp+None*1+0x2c],0x14",
            " mov edx,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x34],eax",
            "-mov eax,m4[eax+None*1+0x5b3ca8]",
            "+mov eax,m4[eax+None*1+0x5a6cb8]",
            " sub eax,edx",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,m4[esp+None*1+0x34]",
            " mov ecx,m4[esp+None*1+0x4]",
            " mov edx,ebp",
            "-mov eax,m4[eax+None*1+0x5b3cac]",
            "+mov eax,m4[eax+None*1+0x5a6cbc]",
            " mov ebx,m4[esp+None*1+0xc]",
            " sub eax,ecx",
            " mov ecx,m4[esp+None*1+0x1c]",
            "@@ -247,16 +247,16 @@",
            " test eax,eax",
            " jne local:112",
            " mov eax,m4[esp+None*1+0x34]",
            "-mov eax,m4[eax+None*1+0x5b3ca8]",
            "+mov eax,m4[eax+None*1+0x5a6cb8]",
            " mov m4[esi+None*1+0x14],eax",
            " mov eax,m4[esp+None*1+0x34]",
            "-mov eax,m4[eax+None*1+0x5b3cac]",
            "+mov eax,m4[eax+None*1+0x5a6cbc]",
            " mov edx,m4[esp+None*1+0x34]",
            " mov m4[esi+None*1+0x18],eax",
            " mov eax,m4[esp+None*1+0x34]",
            "-mov edx,m4[edx+None*1+0x5b3cac]",
            "-mov eax,m4[eax+None*1+0x5b3ca8]",
            "-call fxterr.c::get_terrain_elevation_",
            "+mov edx,m4[edx+None*1+0x5a6cbc]",
            "+mov eax,m4[eax+None*1+0x5a6cb8]",
            "+call terrain.c::get_terrain_elevation_",
            " mov m4[esi+None*1+0x10],0x0",
            " mov m4[esi+None*1+0x28],0x1",
            " mov m4[esi+None*1+0x24],0x1",
            "@@ -264,7 +264,7 @@",
            " mov m4[esi+None*1+0x8],edi",
            " mov eax,m4[esp+None*1+0x34]",
            " mov m4[esi+None*1+0xc],ebx",
            "-mov eax,m4[eax+None*1+0x5b3cb0]",
            "+mov eax,m4[eax+None*1+0x5a6cc0]",
            " mov m4[esi+None*1+0x2c],eax",
            " mov eax,esi",
            " call tgtlist.c::insert_radar_target_",
            "@@ -278,13 +278,13 @@",
            " imul eax,m4[esp+None*1+0x30],0x1c",
            " mov edx,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x20],eax",
            "-mov eax,m4[eax+None*1+0x5b80a8]",
            "+mov eax,m4[eax+None*1+0x5ab0b8]",
            " sub eax,edx",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,m4[esp+None*1+0x20]",
            " mov ecx,m4[esp+None*1+0x4]",
            " mov edx,ebp",
            "-mov eax,m4[eax+None*1+0x5b80ac]",
            "+mov eax,m4[eax+None*1+0x5ab0bc]",
            " mov ebx,m4[esp+None*1+0xc]",
            " sub eax,ecx",
            " mov ecx,m4[esp+None*1+0x1c]",
            "@@ -362,12 +362,12 @@",
            " mov m4[esi+None*1+0x8],edi",
            " mov eax,m4[esp+None*1+0x20]",
            " mov m4[esi+None*1+0xc],ebx",
            "-mov eax,m4[eax+None*1+0x5b80b0]",
            "+mov eax,m4[eax+None*1+0x5ab0c0]",
            " mov m4[esi+None*1+0x24],0x2",
            " mov m4[esi+None*1+0x10],eax",
            " mov eax,m4[esp+None*1+0x20]",
            " mov m4[esi+None*1+0x28],0x1",
            "-mov eax,m4[eax+None*1+0x5b80b8]",
            "+mov eax,m4[eax+None*1+0x5ab0c8]",
            " mov m4[esi+None*1+0x2c],eax",
            " mov eax,esi",
            " call tgtlist.c::insert_radar_target_"
          ]
        },
        {
          "symbol": "gndwar.c::gameplay_object_aquire_target_",
          "source": "E:\\apache\\source\\warmodel\\gndwar.c",
          "first": "0x467508",
          "second": "0x4676a8",
          "first_instruction_count": 107,
          "second_instruction_count": 107,
          "diff": [
            "--- 0x467508",
            "+++ 0x4676a8",
            "@@ -53,7 +53,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-cmp edi,m4[None+eax*8+0x672a98]",
            "+cmp edi,m4[None+eax*8+0x665aa8]",
            " jle local:23",
            " mov m4[esi+None*1+0x20],0x0",
            " jmp local:11",
            "@@ -69,7 +69,7 @@",
            " shl eax,0x2",
            " add eax,ecx",
            " shl eax,0x3",
            "-mov edx,m4[eax+None*1+0x672a98]",
            "+mov edx,m4[eax+None*1+0x665aa8]",
            " cmp edx,0x528000",
            " jge local:105",
            " lea eax,m4[None+ecx*4+0x0]",
            "@@ -77,7 +77,7 @@",
            " shl eax,0x2",
            " add eax,ecx",
            " mov ecx,edx",
            "-mov ebx,m4[None+eax*8+0x672a94]",
            "+mov ebx,m4[None+eax*8+0x665aa4]",
            " lea eax,m4[esi+None*1+0x4]",
            " mov edx,edi",
            " call acquire.c::get_random_air_target_in_range_"
          ]
        },
        {
          "symbol": "gndwar.c::make_gameplay_object_fire_",
          "source": "E:\\apache\\source\\warmodel\\gndwar.c",
          "first": "0x46743c",
          "second": "0x4675dc",
          "first_instruction_count": 74,
          "second_instruction_count": 74,
          "diff": [
            "--- 0x46743c",
            "+++ 0x4675dc",
            "@@ -20,7 +20,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov al,m1[None+eax*8+0x672a6b]",
            "+mov al,m1[None+eax*8+0x665a7b]",
            " cmp al,0x1",
            " jae local:57",
            " push edi",
            "@@ -29,7 +29,7 @@",
            " mov eax,m4[ecx+None*1+0x1c]",
            " call targets.c::get_target_object_number_",
            " lea edx,m4[None+eax*4+0x0]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[edx+eax*1+0x0]",
            " add eax,0x58",
            " push eax"
          ]
        },
        {
          "symbol": "go.c::apache_exit_",
          "source": "E:\\apache\\source\\go.c",
          "first": "0x402f94",
          "second": "0x402fc8",
          "first_instruction_count": 9,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x402f94",
            "+++ 0x402fc8",
            "@@ -2,7 +2,6 @@",
            " mov edx,eax",
            " call music.c::terminate_music_",
            " call exit.c::do_registered_exits_",
            "-call fxinit.c::deinitialise_glide_",
            " mov eax,edx",
            " call exit::exit_",
            " pop edx"
          ]
        },
        {
          "symbol": "go.c::application_main_",
          "source": "E:\\apache\\source\\go.c",
          "first": "0x402d50",
          "second": "0x402d90",
          "first_instruction_count": 138,
          "second_instruction_count": 135,
          "diff": [
            "--- 0x402d50",
            "+++ 0x402d90",
            "@@ -4,8 +4,8 @@",
            " push edi",
            " push ebp",
            " sub esp,0x104",
            "-mov edi,eax",
            "-mov ebp,edx",
            "+mov esi,eax",
            "+mov edi,edx",
            " mov edx,0x1",
            " xor eax,eax",
            " mov m4[None+None*1+mouse.c::_mouse_dont_change_palette],edx",
            "@@ -15,7 +15,7 @@",
            " xor eax,eax",
            " call start.c::print_user_message_",
            " push text:'Jan 14 1998'",
            "-push text:'16:53:57'",
            "+push text:'17:02:16'",
            " push text:'%s %s'",
            " lea eax,m4[esp+None*1+0xc]",
            " push eax",
            "@@ -26,7 +26,7 @@",
            " xor eax,eax",
            " call start.c::print_user_message_",
            " mov eax,text:'Loading ...'",
            "-xor ebx,ebx",
            "+xor ecx,ecx",
            " call start.c::print_user_message_",
            " mov eax,text:'   System'",
            " mov m4[None+None*1+anim.c::_animation_playing_routine_flag_for_signalling_whether_to_free_the_buffer_memory_after_playing_or_failing_to_play_an_animation_file],edx",
            "@@ -37,9 +37,9 @@",
            " mov eax,text:'apache.rop'",
            " mov m4[None+None*1+file.c::_number_protection_files],edx",
            " call config.c::install_lib32_",
            "-mov ecx,m4[None+None*1+file.c::_cd_is_there]",
            "-xor esi,esi",
            "-test ecx,ecx",
            "+mov ebp,m4[None+None*1+file.c::_cd_is_there]",
            "+xor ebx,ebx",
            "+test ebp,ebp",
            " je local:44",
            " mov m4[None+None*1+apnet.c::_theres_a_cd_out_there_somewhere],0x1",
            " mov edx,go.c::apache_exit_",
            "@@ -54,13 +54,10 @@",
            " mov edx,go.c::apache_exit_",
            " mov eax,0xb053",
            " call key.c::register_key_",
            "-call fxinit.c::initialise_3dfx_",
            "-push 0x2",
            "-call LINKER MODULE::_grSstControl@4",
            " mov eax,text:'APACHEGS'",
            " call cmndline.c::process_environment_variable_",
            "-mov edx,ebp",
            "-mov eax,edi",
            "+mov edx,edi",
            "+mov eax,esi",
            " call cmndline.c::process_command_line_",
            " call initpref.c::process_preferences_",
            " mov eax,text:'   Sound'",
            "@@ -73,12 +70,12 @@",
            " mov eax,text:'Set Map'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:112",
            "+je local:109",
            " mov eax,text:'   Map Data'",
            "-mov ecx,0x1",
            "+mov esi,0x1",
            " call start.c::print_user_message_",
            " mov eax,m4[esp+None*1+0x100]",
            "-mov m4[None+None*1+mouse.c::_mouse_dont_change_palette],ecx",
            "+mov m4[None+None*1+mouse.c::_mouse_dont_change_palette],esi",
            " call setmap.c::set_map_",
            " call runs.c::get_quick_start_game_runs_",
            " mov edi,0x1",
            "@@ -90,12 +87,12 @@",
            " call dinfo.c::initialise_drone_headers_",
            " call repaint.c::set_display_screen_active_",
            " cmp m4[None+None*1+file.c::_cd_is_there],0x0",
            "-jne local:122",
            "+jne local:119",
            " call ipx.c::ipx_installed_",
            " test eax,eax",
            "-je local:118",
            "-mov edx,ebx",
            "-mov eax,esi",
            "+je local:115",
            "+mov edx,ecx",
            "+mov eax,ebx",
            " call network.c::notify_flight_network_button_",
            " call music.c::start_music_",
            " xor eax,eax",
            "@@ -115,24 +112,24 @@",
            " call start.c::print_user_message_",
            " mov eax,0x3",
            " mov m4[None+None*1+mouse.c::_mouse_dont_change_palette],edx",
            "-jmp local:81",
            "-mov edx,ebx",
            "-mov eax,esi",
            "+jmp local:78",
            "+mov edx,ecx",
            "+mov eax,ebx",
            " call modemprf.c::notify_flight_2_player_button_",
            "-jmp local:99",
            "+jmp local:96",
            " call runs.c::get_quick_start_game_runs_",
            " test eax,eax",
            "-jne local:134",
            "+jne local:131",
            " mov eax,0x2a",
            " call keyboard.c::check_key_",
            " test eax,eax",
            "-jne local:134",
            "+jne local:131",
            " mov eax,m4[None+None*1+objects.c::_main_screen]",
            " call scrnstk.c::push_screen_dark_",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_screen]",
            " call scrnstk.c::push_screen_",
            "-jmp local:99",
            "+jmp local:96",
            " mov eax,m4[None+None*1+objects.c::_main_screen]",
            " call scrnstk.c::push_screen_",
            " call runs.c::update_quick_start_game_runs_",
            "-jmp local:99",
            "+jmp local:96"
          ]
        },
        {
          "symbol": "goggles.c::check_goggles_alive_",
          "source": "E:\\apache\\source\\avionics\\goggles.c",
          "first": "0x458334",
          "second": "0x458514",
          "first_instruction_count": 34,
          "second_instruction_count": 34,
          "diff": [
            "--- 0x458334",
            "+++ 0x458514",
            "@@ -7,7 +7,7 @@",
            " pop edx",
            " ret ",
            " ja local:17",
            "-mov dl,m1[None+None*1+0x6748c5]",
            "+mov dl,m1[None+None*1+0x6678d5]",
            " test dl,0x80",
            " je local:6",
            " test dl,0x8",
            "@@ -17,7 +17,7 @@",
            " ret ",
            " cmp eax,0x2",
            " jne local:27",
            "-test m1[None+None*1+0x6748c5],0x8",
            "+test m1[None+None*1+0x6678d5],0x8",
            " je local:6",
            " call goggles.c::set_goggles_dvo_mode_",
            " pop edx"
          ]
        },
        {
          "symbol": "goggles.c::initialise_goggles_",
          "source": "E:\\apache\\source\\avionics\\goggles.c",
          "first": "0x457e40",
          "second": "0x458020",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x457e40",
            "+++ 0x458020",
            "@@ -6,7 +6,7 @@",
            " mov m4[None+None*1+goggles.c::_goggles_level],edx",
            " mov m4[None+None*1+constant:00000000],edx",
            " lea eax,m4[None+edx*4+0x0]",
            "-mov edx,m4[None+None*1+constant:2c874f00]",
            "+mov edx,m4[None+None*1+constant:08b64e00]",
            " shl eax,0x2",
            " add eax,edx",
            " mov edx,m4[eax+None*1+0x0]"
          ]
        },
        {
          "symbol": "goggles.c::lower_goggles_magnification_",
          "source": "E:\\apache\\source\\avionics\\goggles.c",
          "first": "0x458588",
          "second": "0x458768",
          "first_instruction_count": 32,
          "second_instruction_count": 32,
          "diff": [
            "--- 0x458588",
            "+++ 0x458768",
            "@@ -19,7 +19,7 @@",
            " shl eax,0x2",
            " sub eax,edx",
            " shl eax,0x2",
            "-mov edx,m4[ecx+None*1+constant:2c874f00]",
            "+mov edx,m4[ecx+None*1+constant:08b64e00]",
            " add eax,edx",
            " mov edx,m4[eax+None*1+0x0]",
            " mov m4[None+None*1+goggles.c::_goggles_distance],edx"
          ]
        },
        {
          "symbol": "goggles.c::raise_goggles_magnification_",
          "source": "E:\\apache\\source\\avionics\\goggles.c",
          "first": "0x458508",
          "second": "0x4586e8",
          "first_instruction_count": 37,
          "second_instruction_count": 37,
          "diff": [
            "--- 0x458508",
            "+++ 0x4586e8",
            "@@ -23,7 +23,7 @@",
            " shl eax,0x2",
            " sub eax,edx",
            " lea edx,m4[None+eax*4+0x0]",
            "-mov eax,m4[ecx+None*1+constant:2c874f00]",
            "+mov eax,m4[ecx+None*1+constant:08b64e00]",
            " add eax,edx",
            " mov edx,m4[eax+None*1+0x0]",
            " mov m4[None+None*1+goggles.c::_goggles_distance],edx"
          ]
        },
        {
          "symbol": "goggles.c::set_goggles_dvo_mode_",
          "source": "E:\\apache\\source\\avionics\\goggles.c",
          "first": "0x4584b4",
          "second": "0x458694",
          "first_instruction_count": 22,
          "second_instruction_count": 22,
          "diff": [
            "--- 0x4584b4",
            "+++ 0x458694",
            "@@ -6,7 +6,7 @@",
            " mov edx,eax",
            " shl eax,0x2",
            " sub eax,edx",
            "-mov edx,m4[None+None*1+constant:2c874f00]",
            "+mov edx,m4[None+None*1+constant:08b64e00]",
            " shl eax,0x2",
            " add eax,edx",
            " mov edx,m4[eax+None*1+0x0]"
          ]
        },
        {
          "symbol": "goggles.c::set_goggles_flir_mode_",
          "source": "E:\\apache\\source\\avionics\\goggles.c",
          "first": "0x4583f4",
          "second": "0x4585d4",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x4583f4",
            "+++ 0x4585d4",
            "@@ -1,4 +1,4 @@",
            "-test m1[None+None*1+0x6748c5],0x80",
            "+test m1[None+None*1+0x6678d5],0x80",
            " je local:4",
            " xor eax,eax",
            " ret ",
            "@@ -10,12 +10,12 @@",
            " mov edx,eax",
            " shl eax,0x2",
            " sub eax,edx",
            "-mov edx,m4[None+None*1+constant:08874f00]",
            "+mov edx,m4[None+None*1+constant:e4b54e00]",
            " shl eax,0x2",
            " add eax,edx",
            " mov edx,m4[eax+None*1+0x0]",
            " mov m4[None+None*1+goggles.c::_goggles_distance],edx",
            "-mov edx,m4[None+None*1+constant:e4314e00]",
            "+mov edx,m4[None+None*1+constant:c8624d00]",
            " mov m4[None+None*1+goggles.c::_goggles_device_name],edx",
            " mov edx,m4[eax+None*1+0x8]",
            " mov eax,m4[eax+None*1+0x4]"
          ]
        },
        {
          "symbol": "goggles.c::set_goggles_tv_mode_",
          "source": "E:\\apache\\source\\avionics\\goggles.c",
          "first": "0x458454",
          "second": "0x458634",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x458454",
            "+++ 0x458634",
            "@@ -1,4 +1,4 @@",
            "-test m1[None+None*1+0x6748c5],0x8",
            "+test m1[None+None*1+0x6678d5],0x8",
            " je local:4",
            " xor eax,eax",
            " ret ",
            "@@ -10,12 +10,12 @@",
            " mov edx,eax",
            " shl eax,0x2",
            " sub eax,edx",
            "-mov edx,m4[None+None*1+constant:44874f00]",
            "+mov edx,m4[None+None*1+constant:20b64e00]",
            " shl eax,0x2",
            " add eax,edx",
            " mov edx,m4[eax+None*1+0x0]",
            " mov m4[None+None*1+goggles.c::_goggles_distance],edx",
            "-mov edx,m4[None+None*1+constant:ec314e00]",
            "+mov edx,m4[None+None*1+constant:d0624d00]",
            " mov m4[None+None*1+goggles.c::_goggles_device_name],edx",
            " mov edx,m4[eax+None*1+0x8]",
            " mov eax,m4[eax+None*1+0x4]"
          ]
        },
        {
          "symbol": "goggles.c::set_goggles_viewpoint_",
          "source": "E:\\apache\\source\\avionics\\goggles.c",
          "first": "0x457e9c",
          "second": "0x45807c",
          "first_instruction_count": 359,
          "second_instruction_count": 359,
          "diff": [
            "--- 0x457e9c",
            "+++ 0x45807c",
            "@@ -20,9 +20,9 @@",
            " and cl,0x3",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            "-cmp m4[None+None*1+0x5b3c6c],0x2",
            "+cmp m4[None+None*1+0x5a6c7c],0x2",
            " jne local:192",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            " mov ebx,m4[None+None*1+model.c::_model_vp]",
            " mov eax,m4[eax+None*1+0x8]",
            " mov edi,m4[ebx+None*1+0x0]",
            "@@ -44,11 +44,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xae972c]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -62,15 +62,15 @@",
            " mov eax,m4[esp+None*1+0xc]",
            " mov ebp,edx",
            " mov m4[esp+None*1+0x0],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -84,15 +84,15 @@",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[esp+None*1+0x18],edx",
            " mov m4[esp+None*1+0x4],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xae9740]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -191,14 +191,14 @@",
            " pop ebx",
            " ret ",
            " mov ebp,m4[None+None*1+model.c::_model_vp]",
            "-mov eax,m4[None+None*1+0x5b3c5c]",
            "+mov eax,m4[None+None*1+0x5a6c6c]",
            " sub eax,m4[ebp+None*1+0x0]",
            " mov ebx,m4[ebp+None*1+0x4]",
            " mov m4[esp+None*1+0xc],eax",
            "-mov eax,m4[None+None*1+0x5b3c60]",
            "+mov eax,m4[None+None*1+0x5a6c70]",
            " mov esi,m4[ebp+None*1+0x8]",
            " sub eax,ebx",
            "-mov ebx,m4[None+None*1+0x5b3c64]",
            "+mov ebx,m4[None+None*1+0x5a6c74]",
            " sub ebx,esi",
            " mov m4[esp+None*1+0x10],eax",
            " mov m4[esp+None*1+0x14],ebx"
          ]
        },
        {
          "symbol": "grownear::__CreateNewNHeap_",
          "source": "grownear",
          "first": "0x4cd774",
          "second": "0x4c0be4",
          "first_instruction_count": 55,
          "second_instruction_count": 55,
          "diff": [
            "--- 0x4cd774",
            "+++ 0x4c0be4",
            "@@ -19,7 +19,7 @@",
            " mov ecx,m4[esp+None*1+0x8]",
            " push ecx",
            " push 0x0",
            "-call m4[None+None*1+constant:68500d00]",
            "+call m4[None+None*1+constant:687f0c00]",
            " mov edx,eax",
            " test eax,eax",
            " je local:48"
          ]
        },
        {
          "symbol": "gtctmwnt::__getctime_",
          "source": "gtctmwnt",
          "first": "0x4cb5af",
          "second": "0x4beadf",
          "first_instruction_count": 36,
          "second_instruction_count": 36,
          "diff": [
            "--- 0x4cb5af",
            "+++ 0x4beadf",
            "@@ -5,7 +5,7 @@",
            " mov ebx,eax",
            " mov eax,esp",
            " push eax",
            "-call m4[None+None*1+constant:6c4d0d00]",
            "+call m4[None+None*1+constant:4a7c0c00]",
            " xor eax,eax",
            " mov ax,m2[esp+None*1+0x0]",
            " sub eax,0x76c"
          ]
        },
        {
          "symbol": "gtcwdwnt::getcwd_",
          "source": "gtcwdwnt",
          "first": "0x4c8d14",
          "second": "0x4bc33a",
          "first_instruction_count": 56,
          "second_instruction_count": 56,
          "diff": [
            "--- 0x4c8d14",
            "+++ 0x4bc33a",
            "@@ -8,7 +8,7 @@",
            " mov eax,esp",
            " push eax",
            " push 0x104",
            "-call m4[None+None*1+constant:a04c0d00]",
            "+call m4[None+None*1+constant:7e7b0c00]",
            " mov ecx,eax",
            " test eax,eax",
            " jne local:16"
          ]
        },
        {
          "symbol": "gtpidwnt::getpid_",
          "source": "gtpidwnt",
          "first": "0x4cce74",
          "second": "0x4c0293",
          "first_instruction_count": 6,
          "second_instruction_count": 6,
          "diff": [
            "--- 0x4cce74",
            "+++ 0x4c0293",
            "@@ -1,6 +1,6 @@",
            " push ecx",
            " push edx",
            "-call m4[None+None*1+constant:cc4c0d00]",
            "+call m4[None+None*1+constant:aa7b0c00]",
            " pop edx",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "helmet.c::set_helmet_viewpoint_",
          "source": "E:\\apache\\source\\avionics\\helmet.c",
          "first": "0x458610",
          "second": "0x4587f0",
          "first_instruction_count": 314,
          "second_instruction_count": 314,
          "diff": [
            "--- 0x458610",
            "+++ 0x4587f0",
            "@@ -20,9 +20,9 @@",
            " and cl,0x3",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            "-cmp m4[None+None*1+0x5b3c6c],0x2",
            "+cmp m4[None+None*1+0x5a6c7c],0x2",
            " jne local:189",
            "-mov ebp,m4[None+None*1+0x5b3c74]",
            "+mov ebp,m4[None+None*1+0x5a6c84]",
            " mov ebx,m4[None+None*1+model.c::_model_vp]",
            " mov ebp,m4[ebp+None*1+0x8]",
            " mov edx,m4[ebx+None*1+0x0]",
            "@@ -44,11 +44,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xae972c]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -62,15 +62,15 @@",
            " mov eax,m4[esp+None*1+0x0]",
            " mov ebp,edx",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -84,15 +84,15 @@",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x18],edx",
            " mov m4[esp+None*1+0x10],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xae9740]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -188,15 +188,15 @@",
            " pop ebx",
            " ret ",
            " mov ebx,m4[None+None*1+model.c::_model_vp]",
            "-mov eax,m4[None+None*1+0x5b3c5c]",
            "+mov eax,m4[None+None*1+0x5a6c6c]",
            " sub eax,m4[ebx+None*1+0x0]",
            " mov esi,m4[ebx+None*1+0x4]",
            " mov m4[esp+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x5b3c60]",
            "+mov eax,m4[None+None*1+0x5a6c70]",
            " sub eax,esi",
            " mov edi,m4[ebx+None*1+0x8]",
            " mov m4[esp+None*1+0x4],eax",
            "-mov eax,m4[None+None*1+0x5b3c64]",
            "+mov eax,m4[None+None*1+0x5a6c74]",
            " sub eax,edi",
            " jmp local:38",
            " mov eax,ebp"
          ]
        },
        {
          "symbol": "horizon.c::draw_curved_user_horizon_",
          "source": "E:\\library\\3dvisual\\horizon.c",
          "first": "0x4960e4",
          "second": "0x492698",
          "first_instruction_count": 588,
          "second_instruction_count": 539,
          "diff": [
            "--- 0x4960e4",
            "+++ 0x492698",
            "@@ -1,8 +1,8 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-sub esp,0x24",
            "-mov esi,m4[esp+None*1+0x34]",
            "+sub esp,0x18",
            "+mov esi,m4[esp+None*1+0x28]",
            " call 3dcore.c::set_3d_viewport_",
            " mov ecx,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            " mov ebx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            "@@ -62,7 +62,7 @@",
            " cmp eax,0x40000000",
            " je local:65",
            " cmp eax,0xc0000000",
            "-jne local:121",
            "+jne local:517",
            " xor edx,edx",
            " mov m4[None+None*1+horizon.c::_roll],edx",
            " mov eax,m4[None+None*1+horizon.c::_pitch]",
            "@@ -73,7 +73,7 @@",
            " mov eax,m4[None+None*1+horizon.c::_pitch]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[None+None*1+horizon.c::_cosp],eax",
            " mov eax,m4[None+None*1+horizon.c::_roll]",
            " shr eax,0x13",
            "@@ -81,85 +81,18 @@",
            " mov eax,m4[None+eax*4+trig.c::_sin_cos_table]",
            " mov m4[None+None*1+horizon.c::_sinr],eax",
            " mov eax,m4[None+None*1+horizon.c::_roll]",
            "-mov ecx,m4[esp+None*1+0x3c]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "-mov edx,eax",
            "+mov eax,m4[None+eax*4+0x715e04]",
            "+mov ecx,m4[None+None*1+horizon.c::_pitch]",
            " mov m4[None+None*1+horizon.c::_cosr],eax",
            "-lea eax,m4[None+ecx*4+0x0]",
            "-sub eax,ecx",
            "-mov ecx,m4[None+None*1+horizon.c::_pitch]",
            " cmp ecx,0x38e38e39",
            "-jle local:134",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:127",
            "-xor edx,edx",
            "-mov dl,m1[eax+None*1+palette.c::_modified_rgb_values]",
            "-mov m4[esp+None*1+0x0],edx",
            "-xor edx,edx",
            "-mov dl,m1[eax+None*1+0x707491]",
            "-mov m4[esp+None*1+0x4],edx",
            "-mov al,m1[eax+None*1+0x707492]",
            "-and eax,0xff",
            "-mov m4[esp+None*1+0x8],eax",
            "-mov eax,m4[esp+None*1+0x0]",
            "-shl edx,0x10",
            "-shl eax,0x18",
            "-or edx,eax",
            "-mov eax,m4[esp+None*1+0x8]",
            "-push 0xffff",
            "-shl eax,0x8",
            "-push 0x0",
            "-or eax,edx",
            "-push eax",
            "-call LINKER MODULE::_grBufferClear@12",
            "-add esp,0x24",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-ret 0xc",
            "-mov eax,m4[esi+None*1+0x14]",
            "-mov edx,m4[esi+None*1+0x2c]",
            "-neg eax",
            "-call trig.c::iarctan360f_",
            "-mov m4[None+None*1+horizon.c::_roll],eax",
            "-jmp local:67",
            "-mov eax,m4[esp+None*1+0x3c]",
            "-call 3dcore.c::clear_3d_viewport_",
            "-add esp,0x24",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-ret 0xc",
            "+jg local:523",
            " cmp ecx,0xc71c71c7",
            "-jge local:159",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:152",
            "-xor edx,edx",
            "-mov dl,m1[eax+None*1+palette.c::_modified_rgb_values]",
            "-mov m4[esp+None*1+0x0],edx",
            "-xor edx,edx",
            "-mov dl,m1[eax+None*1+0x707491]",
            "-mov m4[esp+None*1+0x4],edx",
            "-mov al,m1[eax+None*1+0x707492]",
            "-and eax,0xff",
            "-mov m4[esp+None*1+0x8],eax",
            "-mov eax,edx",
            "-mov edx,m4[esp+None*1+0x0]",
            "-shl eax,0x10",
            "-shl edx,0x18",
            "-jmp local:108",
            "-mov eax,m4[esp+None*1+0x38]",
            "-call 3dcore.c::clear_3d_viewport_",
            "-add esp,0x24",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-ret 0xc",
            "+jl local:530",
            "+mov edx,m4[None+None*1+horizon.c::_sinp]",
            "+mov m4[None+None*1+horizon.c::_h1],eax",
            " mov eax,m4[None+None*1+horizon.c::_sinr]",
            "-mov m4[None+None*1+horizon.c::_h1],edx",
            "-mov edx,m4[None+None*1+horizon.c::_sinp]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            "@@ -219,7 +152,7 @@",
            " mov ebx,0x6400",
            " mov eax,0xffd8f000",
            " xor ecx,ecx",
            "-mov m4[esp+None*1+0x14],edx",
            "+mov m4[esp+None*1+0xc],edx",
            " mov edx,m4[None+None*1+horizon.c::_h4]",
            " imul edx",
            " mov esi,eax",
            "@@ -240,7 +173,7 @@",
            " mov ebx,0x6400",
            " mov eax,0xffd8f000",
            " xor ecx,ecx",
            "-mov m4[esp+None*1+0x20],edx",
            "+mov m4[esp+None*1+0x10],edx",
            " mov edx,m4[None+None*1+horizon.c::_h7]",
            " imul edx",
            " mov esi,eax",
            "@@ -261,7 +194,7 @@",
            " mov ebx,0x6400",
            " mov eax,0x271000",
            " xor ecx,ecx",
            "-mov m4[esp+None*1+0x18],edx",
            "+mov m4[esp+None*1+0x8],edx",
            " mov edx,m4[None+None*1+horizon.c::_h1]",
            " imul edx",
            " mov esi,eax",
            "@@ -282,7 +215,7 @@",
            " mov ebx,0x6400",
            " mov eax,0x271000",
            " xor ecx,ecx",
            "-mov m4[esp+None*1+0x10],edx",
            "+mov m4[esp+None*1+0x4],edx",
            " mov edx,m4[None+None*1+horizon.c::_h4]",
            " imul edx",
            " mov esi,eax",
            "@@ -321,40 +254,40 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[esp+None*1+0x18]",
            "-mov ebx,m4[esp+None*1+0x20]",
            "+mov eax,m4[esp+None*1+0x8]",
            "+mov ebx,edx",
            "+mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            "+imul edx",
            "+shld edx,eax,0x5",
            "+shl eax,0x6",
            "+adc edx,0x0",
            "+mov eax,ebx",
            " mov ecx,edx",
            " mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            " imul edx",
            " shld edx,eax,0x5",
            " shl eax,0x6",
            " adc edx,0x0",
            "-mov eax,ecx",
            "+mov ebx,m4[esp+None*1+0x10]",
            "+mov eax,m4[esp+None*1+0xc]",
            " mov esi,edx",
            "-mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            "-imul edx",
            "-shld edx,eax,0x5",
            "-shl eax,0x6",
            "-adc edx,0x0",
            "-mov eax,m4[esp+None*1+0x14]",
            "-mov ecx,edx",
            " mov edx,m4[None+None*1+horizon.c::_xw]",
            " imul edx",
            " idiv ebx",
            " mov edx,m4[None+None*1+horizon.c::_yw]",
            " mov m4[None+None*1+horizon.c::_xhl],eax",
            "-mov eax,esi",
            "+mov eax,ecx",
            " imul edx",
            " idiv ebx",
            " mov edx,m4[None+None*1+horizon.c::_xw]",
            " mov m4[None+None*1+horizon.c::_yhl],eax",
            " mov ebx,ebp",
            "-mov eax,m4[esp+None*1+0x10]",
            "+mov eax,m4[esp+None*1+0x4]",
            " imul edx",
            " idiv ebx",
            " mov edx,m4[None+None*1+horizon.c::_yw]",
            " mov m4[None+None*1+horizon.c::_xhr],eax",
            "-mov eax,ecx",
            "+mov eax,esi",
            " imul edx",
            " idiv ebx",
            " mov ecx,m4[None+None*1+horizon.c::_cosr]",
            "@@ -458,23 +391,21 @@",
            " mov m4[esi+None*1+constant:00000000],edi",
            " mov m4[esi+None*1+constant:00000000],edx",
            " cmp esi,0xa0",
            "-jne local:429",
            "-mov edx,m4[esp+None*1+0x38]",
            "+jne local:362",
            "+mov edx,m4[esp+None*1+0x2c]",
            " mov eax,vertex.c::_quad",
            "-mov ecx,0xffffaa10",
            "-mov ebx,0x55f0",
            "-call fx2dpoly.c::fill_2d_polygon_",
            "-mov m4[None+None*1+vertex.c::_quad],ecx",
            "-mov m4[None+None*1+constant:00000000],ebx",
            "-mov esi,ebx",
            "-mov m4[None+None*1+constant:00000000],ebx",
            "-mov m4[None+None*1+constant:00000000],ebx",
            "-mov m4[None+None*1+constant:00000000],ebx",
            "-xor eax,eax",
            "-mov m4[None+None*1+constant:00000000],ecx",
            "+mov ebp,0xffffaa10",
            "+call 2dpoly.c::fill_2d_polygon_",
            "+xor esi,esi",
            "+mov eax,0x55f0",
            "+mov m4[None+None*1+vertex.c::_quad],ebp",
            "+mov m4[None+None*1+constant:00000000],esi",
            "+mov m4[None+None*1+constant:00000000],ebp",
            "+mov m4[None+None*1+constant:00000000],esi",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov m4[None+None*1+constant:00000000],eax",
            "-xor esi,ebx",
            "+mov m4[None+None*1+constant:00000000],eax",
            "+mov m4[None+None*1+constant:00000000],eax",
            " mov ecx,m4[None+None*1+horizon.c::_cosr]",
            " mov edx,m4[None+None*1+horizon.c::_sinr]",
            " mov eax,m4[esi+None*1+constant:00000000]",
            "@@ -506,10 +437,10 @@",
            " mov m4[esi+None*1+constant:00000000],edi",
            " mov m4[esi+None*1+constant:00000000],edx",
            " cmp esi,0xa0",
            "-jne local:477",
            "-mov edx,m4[esp+None*1+0x3c]",
            "+jne local:408",
            "+mov edx,m4[esp+None*1+0x30]",
            " mov eax,vertex.c::_quad",
            "-call fx2dpoly.c::fill_2d_polygon_",
            "+call 2dpoly.c::fill_2d_polygon_",
            " mov eax,0x38e38e39",
            " mov edx,0x5208",
            " shr eax,0x13",
            "@@ -522,10 +453,10 @@",
            " idiv ebx",
            " mov edi,eax",
            " test eax,eax",
            "-je local:116",
            "-jle local:586",
            "-mov eax,m4[esp+None*1+0x3c]",
            "-mov m4[esp+None*1+0x1c],eax",
            "+je local:512",
            "+jle local:537",
            "+mov eax,m4[esp+None*1+0x30]",
            "+mov m4[esp+None*1+0x14],eax",
            " mov ebx,0x5dc0",
            " mov eax,edi",
            " mov esi,eax",
            "@@ -551,7 +482,7 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov ecx,m4[None+None*1+horizon.c::_sinr]",
            "-mov ebp,edx",
            "+mov m4[esp+None*1+0x0],edx",
            " mov eax,esi",
            " xor ebx,ebx",
            " mov edx,m4[None+None*1+horizon.c::_cosr]",
            "@@ -565,7 +496,7 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,esi",
            "-mov m4[esp+None*1+0xc],edx",
            "+mov ebp,edx",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            "@@ -575,14 +506,34 @@",
            " xor eax,edx",
            " sub eax,edx",
            " lea ebx,m4[ecx+eax*1+0x0]",
            "-mov edx,m4[esp+None*1+0xc]",
            "-mov ecx,m4[esp+None*1+0x1c]",
            "-mov eax,ebp",
            "+mov edx,ebp",
            "+mov ecx,m4[esp+None*1+0x14]",
            "+mov eax,m4[esp+None*1+0x0]",
            " call 2dwrap.c::fill_2d_circle_",
            "-add esp,0x24",
            "+add esp,0x18",
            " pop ebp",
            " pop edi",
            " pop esi",
            " ret 0xc",
            "-mov eax,m4[esp+None*1+0x38]",
            "-jmp local:527",
            "+mov eax,m4[esi+None*1+0x14]",
            "+mov edx,m4[esi+None*1+0x2c]",
            "+neg eax",
            "+call trig.c::iarctan360f_",
            "+mov m4[None+None*1+horizon.c::_roll],eax",
            "+jmp local:67",
            "+mov eax,m4[esp+None*1+0x30]",
            "+call 3dcore.c::clear_3d_viewport_",
            "+add esp,0x18",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+ret 0xc",
            "+mov eax,m4[esp+None*1+0x2c]",
            "+call 3dcore.c::clear_3d_viewport_",
            "+add esp,0x18",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+ret 0xc",
            "+mov eax,m4[esp+None*1+0x2c]",
            "+jmp local:458"
          ]
        },
        {
          "symbol": "horizon.c::draw_ground_",
          "source": "E:\\library\\3dvisual\\horizon.c",
          "first": "0x494e50",
          "second": "0x4916f0",
          "first_instruction_count": 561,
          "second_instruction_count": 472,
          "diff": [
            "--- 0x494e50",
            "+++ 0x4916f0",
            "@@ -1,17 +1,21 @@",
            " push ebx",
            " push ecx",
            " push edx",
            "+push esi",
            "+push edi",
            " push ebp",
            "-sub esp,0x1c",
            "+sub esp,0x10",
            " mov edx,m4[None+None*1+3dcore.c::_cloud_mode]",
            " cmp edx,0x1",
            "-jne local:18",
            "-test m1[None+None*1+0xafaee4],0x2",
            "-jne local:12",
            "-cmp edx,m4[None+None*1+0xafaed8]",
            "-jne local:18",
            "-add esp,0x1c",
            "+jne local:22",
            "+test m1[None+None*1+0xae5594],0x2",
            "+jne local:14",
            "+cmp edx,m4[None+None*1+0xae5588]",
            "+jne local:22",
            "+add esp,0x10",
            " pop ebp",
            "+pop edi",
            "+pop esi",
            " pop edx",
            " pop ecx",
            " pop ebx",
            "@@ -27,7 +31,7 @@",
            " mov eax,m4[None+None*1+horizon.c::_pitch]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[None+None*1+horizon.c::_cosp],eax",
            " mov eax,m4[None+None*1+horizon.c::_roll]",
            " shr eax,0x13",
            "@@ -37,89 +41,78 @@",
            " mov eax,m4[None+None*1+horizon.c::_roll]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ebx,m4[None+None*1+horizon.c::_pitch]",
            " mov m4[None+None*1+horizon.c::_cosr],eax",
            " cmp ebx,0x38e38e39",
            "-jge local:12",
            "+jge local:14",
            " cmp ebx,0xc71c71c7",
            "-jg local:79",
            "+jg local:76",
            " cmp m4[None+None*1+3dcore.c::_cloud_mode],0x2",
            "-jne local:490",
            "-test m1[None+None*1+0xafaee4],0x2",
            "-je local:488",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:524",
            "-xor eax,eax",
            "-mov al,m1[None+None*1+0x707682]",
            "-mov m4[esp+None*1+0x0],eax",
            "-xor eax,eax",
            "-mov al,m1[None+None*1+0x707683]",
            "-mov m4[esp+None*1+0x4],eax",
            "-xor eax,eax",
            "-mov al,m1[None+None*1+0x707684]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov m4[esp+None*1+0x8],eax",
            "-mov eax,m4[esp+None*1+0x0]",
            "+jne local:450",
            "+test m1[None+None*1+0xae5594],0x2",
            "+jne local:56",
            "+cmp m4[None+None*1+0xae5588],0x1",
            "+jne local:450",
            "+xor eax,eax",
            "+mov al,m1[None+None*1+0xaea476]",
            "+mov ecx,eax",
            "+mov edx,eax",
            "+shl ecx,0x18",
            " shl edx,0x10",
            "-shl eax,0x18",
            "-or edx,eax",
            "-mov eax,m4[esp+None*1+0x8]",
            "-push 0xffff",
            "-shl eax,0x8",
            "-push 0x0",
            "-or eax,edx",
            "-push eax",
            "-call LINKER MODULE::_grBufferClear@12",
            "-add esp,0x1c",
            "+add ecx,edx",
            "+mov edx,eax",
            "+shl edx,0x8",
            "+add edx,ecx",
            "+add eax,edx",
            "+call 3dcore.c::clear_3d_viewport_",
            "+add esp,0x10",
            " pop ebp",
            "+pop edi",
            "+pop esi",
            " pop edx",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-push edi",
            "-push esi",
            " mov eax,horizon.c::_visual_2d",
            " call 2dcore.c::store_2d_visual_",
            "-mov edx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            "-lea eax,m4[None+edx*4+0x0]",
            "-sub eax,edx",
            "+mov ebp,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            "+lea eax,m4[None+ebp*4+0x0]",
            "+sub eax,ebp",
            " shl eax,0x3",
            "-add eax,edx",
            "+add eax,ebp",
            " shl eax,0x3",
            "-mov edx,eax",
            "-shl eax,0x2",
            "+lea edx,m4[None+eax*4+0x0]",
            " add edx,eax",
            " mov eax,edx",
            " sar edx,0x1f",
            " sub eax,edx",
            " sar eax,0x1",
            "-mov edx,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            "+mov ebp,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            " mov m4[None+None*1+horizon.c::_xw],eax",
            "-lea eax,m4[None+edx*4+0x0]",
            "-sub eax,edx",
            "+lea eax,m4[None+ebp*4+0x0]",
            "+sub eax,ebp",
            " shl eax,0x3",
            "-add eax,edx",
            "+add eax,ebp",
            " shl eax,0x3",
            "-mov edx,eax",
            "-shl eax,0x2",
            "+lea edx,m4[None+eax*4+0x0]",
            " add edx,eax",
            " mov eax,edx",
            " sar edx,0x1f",
            " sub eax,edx",
            " sar eax,0x1",
            " push eax",
            "-mov ebx,m4[None+None*1+horizon.c::_xw]",
            "-push ebx",
            "+mov edx,m4[None+None*1+horizon.c::_xw]",
            "+push edx",
            " mov m4[None+None*1+horizon.c::_yw],eax",
            " neg eax",
            " push eax",
            "-mov eax,ebx",
            "-mov ecx,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            "+mov eax,edx",
            "+mov ebx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            " neg eax",
            "+mov ecx,ebp",
            "+push eax",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_y_min_3d]",
            "-push eax",
            "-mov ebx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            " mov eax,m4[None+None*1+3dcore.c::_viewport_x_min_3d]",
            " call 2dcore.c::set_2d_viewport_and_window_",
            " xor edx,edx",
            "@@ -144,10 +137,9 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,m4[None+None*1+horizon.c::_cosp]",
            "-xor esi,esi",
            " mov m4[None+None*1+horizon.c::_h5],eax",
            " mov eax,m4[None+None*1+horizon.c::_sinp]",
            "-mov ebx,0x6400",
            "+xor ecx,ecx",
            " mov m4[None+None*1+horizon.c::_h6],eax",
            " mov eax,m4[None+None*1+horizon.c::_sinr]",
            " mov m4[None+None*1+horizon.c::_h3],edx",
            "@@ -155,7 +147,7 @@",
            " mov eax,m4[None+None*1+horizon.c::_cosr]",
            " mov edx,m4[None+None*1+horizon.c::_sinp]",
            " neg eax",
            "-mov m4[None+None*1+horizon.c::_h4],esi",
            "+mov m4[None+None*1+horizon.c::_h4],ecx",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            "@@ -163,7 +155,7 @@",
            " mov eax,m4[None+None*1+horizon.c::_cosp]",
            " mov m4[None+None*1+horizon.c::_h8],edx",
            " mov edx,m4[None+None*1+horizon.c::_cosr]",
            "-xor ecx,ecx",
            "+mov ebx,0x6400",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            "@@ -190,7 +182,7 @@",
            " mov ebx,0x6400",
            " mov eax,0xffd8f000",
            " xor ecx,ecx",
            "-mov m4[esp+None*1+0x1c],edx",
            "+mov m4[esp+None*1+0x8],edx",
            " mov edx,m4[None+None*1+horizon.c::_h4]",
            " imul edx",
            " mov esi,eax",
            "@@ -208,7 +200,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov m4[esp+None*1+0x20],edx",
            "+mov m4[esp+None*1+0xc],edx",
            " mov ebx,0x6400",
            " mov eax,0xffd8f000",
            " xor ecx,ecx",
            "@@ -232,7 +224,7 @@",
            " mov ebx,0x6400",
            " mov eax,0x271000",
            " xor ecx,ecx",
            "-mov m4[esp+None*1+0x14],edx",
            "+mov m4[esp+None*1+0x0],edx",
            " mov edx,m4[None+None*1+horizon.c::_h1]",
            " imul edx",
            " mov esi,eax",
            "@@ -253,7 +245,7 @@",
            " mov ebx,0x6400",
            " mov eax,0x271000",
            " xor ecx,ecx",
            "-mov m4[esp+None*1+0x18],edx",
            "+mov m4[esp+None*1+0x4],edx",
            " mov edx,m4[None+None*1+horizon.c::_h4]",
            " imul edx",
            " mov esi,eax",
            "@@ -292,45 +284,43 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[esp+None*1+0x14]",
            "-mov ebx,m4[esp+None*1+0x20]",
            "+mov eax,m4[esp+None*1+0x0]",
            "+mov ebx,m4[esp+None*1+0xc]",
            "+mov ecx,edx",
            "+mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            "+imul edx",
            "+shld edx,eax,0x5",
            "+shl eax,0x6",
            "+adc edx,0x0",
            "+mov eax,ecx",
            " mov esi,edx",
            " mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            " imul edx",
            " shld edx,eax,0x5",
            " shl eax,0x6",
            " adc edx,0x0",
            "-mov eax,esi",
            "+mov eax,m4[esp+None*1+0x8]",
            " mov ecx,edx",
            "-mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            "-imul edx",
            "-shld edx,eax,0x5",
            "-shl eax,0x6",
            "-adc edx,0x0",
            "-mov eax,m4[esp+None*1+0x1c]",
            "-mov esi,edx",
            " mov edx,m4[None+None*1+horizon.c::_xw]",
            " imul edx",
            " idiv ebx",
            " mov edx,m4[None+None*1+horizon.c::_yw]",
            " mov m4[None+None*1+horizon.c::_xhl],eax",
            "-mov eax,ecx",
            "+mov eax,esi",
            " imul edx",
            " idiv ebx",
            " mov edx,m4[None+None*1+horizon.c::_xw]",
            " mov m4[None+None*1+horizon.c::_yhl],eax",
            " mov ebx,ebp",
            "-mov eax,m4[esp+None*1+0x18]",
            "+mov eax,m4[esp+None*1+0x4]",
            " imul edx",
            " idiv ebx",
            " mov edx,m4[None+None*1+horizon.c::_yw]",
            " mov m4[None+None*1+horizon.c::_xhr],eax",
            "-mov eax,esi",
            "+mov eax,ecx",
            " imul edx",
            " idiv ebx",
            " mov m4[None+None*1+horizon.c::_yhr],eax",
            "-pop esi",
            "-pop edi",
            " mov eax,0x10000000",
            " mov ecx,m4[None+None*1+horizon.c::_cosr]",
            " mov edx,m4[None+None*1+horizon.c::_sinr]",
            "@@ -388,10 +378,10 @@",
            " adc edx,0x0",
            " mov eax,m4[None+None*1+horizon.c::_xhl]",
            " sub eax,m4[None+None*1+horizon.c::_xml]",
            "-mov ebp,m4[None+None*1+horizon.c::_yml]",
            "+mov esi,m4[None+None*1+horizon.c::_yml]",
            " mov m4[None+None*1+vertex.c::_quad],eax",
            " mov eax,m4[None+None*1+horizon.c::_yhl]",
            "-sub eax,ebp",
            "+sub eax,esi",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[None+None*1+horizon.c::_xhl]",
            " mov m4[None+None*1+constant:00000000],eax",
            "@@ -400,33 +390,22 @@",
            " mov eax,m4[None+None*1+horizon.c::_xhr]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[None+None*1+horizon.c::_yhr]",
            "-mov ecx,m4[None+None*1+horizon.c::_xmr]",
            "+mov edi,m4[None+None*1+horizon.c::_xmr]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[None+None*1+horizon.c::_xhr]",
            "-sub eax,ecx",
            "+sub eax,edi",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[None+None*1+horizon.c::_yhr]",
            "-mov ebx,m4[None+None*1+3dcore.c::_cloud_mode]",
            "+mov ebp,m4[None+None*1+3dcore.c::_cloud_mode]",
            " sub eax,edx",
            " mov m4[None+None*1+horizon.c::_ymr],edx",
            " mov m4[None+None*1+constant:00000000],eax",
            "-cmp ebx,0x2",
            "-jne local:446",
            "-test m1[None+None*1+0xafaee4],0x2",
            "-je local:446",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+cmp ebp,0x2",
            "+jne local:427",
            "+test m1[None+None*1+0xae5594],0x2",
            " je local:427",
            "-mov edx,0xa7",
            "-mov eax,vertex.c::_quad",
            "-call fx2dpoly.c::fill_unfogged_2d_polygon_",
            "-add esp,0x1c",
            "-pop ebp",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[None+None*1+0xaffdc6]",
            "+xor eax,eax",
            "+mov al,m1[None+None*1+0xaea476]",
            " mov edx,eax",
            " mov ecx,eax",
            " shl edx,0x18",
            "@@ -437,17 +416,19 @@",
            " add edx,ecx",
            " add edx,eax",
            " mov eax,vertex.c::_quad",
            "-call fx2dpoly.c::fill_2d_polygon_",
            "-add esp,0x1c",
            "+call 2dpoly.c::fill_2d_polygon_",
            "+add esp,0x10",
            " pop ebp",
            "+pop edi",
            "+pop esi",
            " pop edx",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:467",
            "-xor eax,eax",
            "-mov al,m1[None+None*1+0xaffdc7]",
            "+xor eax,eax",
            "+mov al,m1[None+None*1+terrain.c::_terrain_colours]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            " mov edx,eax",
            " mov ecx,eax",
            " shl edx,0x18",
            "@@ -458,104 +439,34 @@",
            " add edx,ecx",
            " add edx,eax",
            " mov eax,vertex.c::_quad",
            "-call fx2dpoly.c::fill_unfogged_2d_polygon_",
            "-add esp,0x1c",
            "+call 2dpoly.c::fill_2d_polygon_",
            "+add esp,0x10",
            " pop ebp",
            "+pop edi",
            "+pop esi",
            " pop edx",
            " pop ecx",
            " pop ebx",
            " ret ",
            " xor eax,eax",
            "-mov al,m1[None+None*1+fxterr.c::_terrain_colours]",
            "+mov al,m1[None+None*1+terrain.c::_terrain_colours]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " and eax,0xff",
            "-mov edx,eax",
            " mov ecx,eax",
            "-shl edx,0x18",
            "-shl ecx,0x10",
            "+mov edx,eax",
            "+shl ecx,0x18",
            "+shl edx,0x10",
            " add ecx,edx",
            " mov edx,eax",
            " shl edx,0x8",
            " add edx,ecx",
            "-add edx,eax",
            "-mov eax,vertex.c::_quad",
            "-call fx2dpoly.c::fill_2d_polygon_",
            "-add esp,0x1c",
            "+add eax,edx",
            "+call 3dcore.c::clear_3d_viewport_",
            "+add esp,0x10",
            " pop ebp",
            "+pop edi",
            "+pop esi",
            " pop edx",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-cmp m4[None+None*1+0xafaed8],0x1",
            "-je local:50",
            "-mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-test eax,eax",
            "-je local:542",
            "-xor edx,edx",
            "-mov dl,m1[None+None*1+fxterr.c::_terrain_colours]",
            "-lea eax,m4[None+edx*4+0x0]",
            "-sub eax,edx",
            "-xor edx,edx",
            "-mov dl,m1[eax+None*1+palette.c::_modified_rgb_values]",
            "-mov m4[esp+None*1+0x0],edx",
            "-xor edx,edx",
            "-mov dl,m1[eax+None*1+0x707491]",
            "-mov m4[esp+None*1+0x4],edx",
            "-mov al,m1[eax+None*1+0x707492]",
            "-and eax,0xff",
            "-mov m4[esp+None*1+0x8],eax",
            "-mov eax,edx",
            "-mov edx,m4[esp+None*1+0x0]",
            "-shl eax,0x10",
            "-shl edx,0x18",
            "-or edx,eax",
            "-mov eax,m4[esp+None*1+0x8]",
            "-push 0xffff",
            "-shl eax,0x8",
            "-push 0x0",
            "-or eax,edx",
            "-push eax",
            "-call LINKER MODULE::_grBufferClear@12",
            "-add esp,0x1c",
            "-pop ebp",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[None+None*1+0xaffdc6]",
            "-mov ecx,eax",
            "-mov edx,eax",
            "-shl ecx,0x18",
            "-shl edx,0x10",
            "-add ecx,edx",
            "-mov edx,eax",
            "-shl edx,0x8",
            "-add edx,ecx",
            "-add eax,edx",
            "-call 3dcore.c::clear_3d_viewport_",
            "-add esp,0x1c",
            "-pop ebp",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov al,m1[None+None*1+fxterr.c::_terrain_colours]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-and eax,0xff",
            "-mov ecx,eax",
            "-mov edx,eax",
            "-shl ecx,0x18",
            "-shl edx,0x10",
            "-add ecx,edx",
            "-mov edx,eax",
            "-shl edx,0x8",
            "-add edx,ecx",
            "-add eax,edx",
            "-call 3dcore.c::clear_3d_viewport_",
            "-add esp,0x1c",
            "-pop ebp",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret "
          ]
        },
        {
          "symbol": "horizon.c::draw_sky_",
          "source": "E:\\library\\3dvisual\\horizon.c",
          "first": "0x495584",
          "second": "0x491d04",
          "first_instruction_count": 53,
          "second_instruction_count": 185,
          "diff": [
            "--- 0x495584",
            "+++ 0x491d04",
            "@@ -1,53 +1,185 @@",
            "-push ecx",
            " push edx",
            " push esi",
            " push edi",
            " push ebp",
            "-sub esp,0x14",
            "-mov edx,m4[None+None*1+0xafaed8]",
            "+sub esp,0x8",
            "+mov edx,m4[None+None*1+0xae5588]",
            " cmp edx,0x2",
            " jne horizon.c::get_horizon_pitch_+0x1",
            " cmp m4[None+None*1+3dcore.c::_cloud_mode],0x0",
            "-jne local:12",
            "-and m1[None+None*1+0xafaee4],0xfd",
            "+jne local:11",
            "+and m1[None+None*1+0xae5594],0xfd",
            " call secscan.c::get_culled_cloud_sector_scan_",
            " mov edi,eax",
            " test eax,eax",
            "-je local:19",
            "-test m1[None+None*1+0xafaee4],0x2",
            "-je local:19",
            "-call fxterr.c::get_cloud_coords_",
            "+je local:18",
            "+test m1[None+None*1+0xae5594],0x2",
            "+je local:18",
            "+call terrain.c::get_cloud_coords_",
            " mov esi,m4[None+None*1+3dcore.c::_cloud_mode]",
            " cmp esi,0x1",
            "-jne horizon.c::get_horizon_pitch_+0x17",
            "-test m1[None+None*1+0xafaee4],0x2",
            "+jne local:25",
            "+test m1[None+None*1+0xae5594],0x2",
            "+jne horizon.c::get_horizon_pitch_+0xf",
            "+cmp esi,m4[None+None*1+0xae5588]",
            " je horizon.c::get_horizon_pitch_+0xf",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je horizon.c::get_horizon_pitch_+0x28f",
            "-xor eax,eax",
            "-mov al,m1[None+None*1+0x707682]",
            "-mov m4[esp+None*1+0x0],eax",
            "-xor eax,eax",
            "-mov al,m1[None+None*1+0x707683]",
            "-mov m4[esp+None*1+0x4],eax",
            "-xor eax,eax",
            "-mov al,m1[None+None*1+0x707684]",
            "-mov edx,m4[esp+None*1+0x0]",
            "+mov eax,m4[None+None*1+horizon.c::_pitch]",
            "+cmp eax,0xc71c71c7",
            "+jle horizon.c::get_horizon_pitch_+0xc8",
            "+cmp eax,0x38e38e39",
            "+jge horizon.c::get_horizon_pitch_+0x7b",
            "+push ecx",
            "+push ebx",
            "+mov eax,m4[None+None*1+horizon.c::_yw]",
            "+sar eax,0x2",
            "+xor ebx,ebx",
            "+mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            "+imul edx",
            "+shld edx,eax,0x5",
            "+shl eax,0x6",
            "+adc edx,0x0",
            "+mov ecx,m4[None+None*1+horizon.c::_cosr]",
            "+mov esi,edx",
            "+mov edx,m4[None+None*1+horizon.c::_sinr]",
            "+mov eax,esi",
            "+imul edx",
            "+xchg ecx,edx",
            "+xchg ebx,eax",
            "+imul edx",
            "+sub eax,ebx",
            "+sbb edx,ecx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov ebp,m4[None+None*1+horizon.c::_xhl]",
            "+mov ecx,m4[None+None*1+horizon.c::_sinr]",
            "+mov eax,esi",
            "+xor ebx,ebx",
            "+add ebp,edx",
            "+mov edx,m4[None+None*1+horizon.c::_cosr]",
            "+imul edx",
            "+xchg ecx,edx",
            "+xchg ebx,eax",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov eax,m4[None+None*1+horizon.c::_yhl]",
            "+mov ecx,m4[None+None*1+horizon.c::_cosr]",
            "+xor ebx,ebx",
            "+add eax,edx",
            "+mov edx,m4[None+None*1+horizon.c::_sinr]",
            " mov m4[esp+None*1+0x8],eax",
            "-mov eax,m4[esp+None*1+0x4]",
            "+mov eax,esi",
            "+imul edx",
            "+xchg ecx,edx",
            "+xchg ebx,eax",
            "+imul edx",
            "+sub eax,ebx",
            "+sbb edx,ecx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov eax,m4[None+None*1+horizon.c::_xhr]",
            "+mov ecx,m4[None+None*1+horizon.c::_sinr]",
            "+xor ebx,ebx",
            "+add eax,edx",
            "+mov edx,m4[None+None*1+horizon.c::_cosr]",
            "+mov m4[esp+None*1+0xc],eax",
            "+mov eax,esi",
            "+imul edx",
            "+xchg ecx,edx",
            "+xchg ebx,eax",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov eax,m4[esp+None*1+0x8]",
            "+mov ebx,m4[None+None*1+horizon.c::_xml]",
            "+mov m4[None+None*1+constant:00000000],eax",
            "+mov eax,m4[None+None*1+horizon.c::_xhl]",
            "+mov ecx,m4[None+None*1+horizon.c::_yhr]",
            "+add eax,ebx",
            "+mov esi,m4[None+None*1+horizon.c::_yml]",
            "+mov m4[None+None*1+constant:00000000],eax",
            "+mov eax,m4[None+None*1+horizon.c::_yhl]",
            "+add ecx,edx",
            "+add eax,esi",
            "+mov edx,m4[None+None*1+horizon.c::_xmr]",
            "+mov m4[None+None*1+constant:00000000],eax",
            "+mov eax,m4[None+None*1+horizon.c::_xhr]",
            "+add eax,edx",
            "+mov ebx,m4[None+None*1+horizon.c::_ymr]",
            "+mov m4[None+None*1+constant:00000000],eax",
            "+mov eax,m4[None+None*1+horizon.c::_yhr]",
            "+add eax,ebx",
            "+movzx esi,m1[None+None*1+0xaea46c]",
            "+mov m4[None+None*1+constant:00000000],eax",
            "+mov eax,m4[esp+None*1+0xc]",
            "+mov edx,esi",
            "+mov m4[None+None*1+constant:00000000],eax",
            "+mov eax,esi",
            " shl edx,0x18",
            " shl eax,0x10",
            "-or eax,edx",
            "-mov edx,m4[esp+None*1+0x8]",
            "-push 0xffff",
            "-shl edx,0x8",
            "-push 0x0",
            "-or eax,edx",
            "-push eax",
            "-call LINKER MODULE::_grBufferClear@12",
            "-add esp,0x14",
            "+add edx,eax",
            "+mov eax,esi",
            "+shl eax,0x8",
            "+mov m4[None+None*1+vertex.c::_quad],ebp",
            "+add edx,eax",
            "+mov eax,vertex.c::_quad",
            "+add edx,esi",
            "+mov m4[None+None*1+constant:00000000],ecx",
            "+call 2dpoly.c::fill_2d_polygon_",
            "+mov esi,0x7fffffff",
            "+mov eax,m4[None+None*1+horizon.c::_xhl]",
            "+mov m4[None+None*1+constant:00000000],ebp",
            "+mov m4[None+None*1+constant:00000000],ecx",
            "+mov ecx,m4[None+None*1+3dcore.c::_cloud_mode]",
            "+mov m4[None+None*1+vertex.c::_quad],eax",
            "+mov eax,m4[None+None*1+horizon.c::_yhl]",
            "+mov m4[None+None*1+constant:00000000],esi",
            "+mov m4[None+None*1+constant:00000000],eax",
            "+mov eax,m4[esp+None*1+0x8]",
            "+mov m4[None+None*1+constant:00000000],esi",
            "+mov m4[None+None*1+constant:00000000],eax",
            "+mov eax,m4[esp+None*1+0xc]",
            "+xor ebp,ebp",
            "+mov m4[None+None*1+constant:00000000],eax",
            "+mov eax,m4[None+None*1+horizon.c::_xhr]",
            "+mov m4[None+None*1+constant:00000000],ebp",
            "+mov m4[None+None*1+constant:00000000],eax",
            "+mov eax,m4[None+None*1+horizon.c::_yhr]",
            "+mov m4[None+None*1+constant:00000000],ebp",
            "+mov m4[None+None*1+constant:00000000],eax",
            "+cmp ecx,0x2",
            "+jne horizon.c::get_horizon_pitch_+0x38",
            "+mov edx,0xa6a7a6a7",
            "+mov eax,vertex.c::_quad",
            "+call 2dgpoly.c::fill_2d_gouraud_shaded_polygon_",
            "+test edi,edi",
            "+je local:167",
            "+test m1[None+None*1+0xae5594],0x2",
            "+je local:167",
            "+call clouds.c::draw_clouds_",
            "+mov eax,horizon.c::_visual_2d",
            "+call 2dcore.c::restore_2d_visual_",
            "+mov ecx,m4[None+None*1+3dcore.c::_viewport_y_max_3d]",
            "+mov ebx,m4[None+None*1+3dcore.c::_viewport_x_max_3d]",
            "+mov edx,m4[None+None*1+3dcore.c::_viewport_y_min_3d]",
            "+mov eax,m4[None+None*1+3dcore.c::_viewport_x_min_3d]",
            "+call screen.c::set_screen_extent_",
            "+pop ebx",
            "+pop ecx",
            "+cmp m4[None+None*1+3dcore.c::_cloud_mode],0x2",
            "+je horizon.c::get_horizon_pitch_+0xbb",
            "+cmp m4[None+None*1+0xae5588],0x0",
            "+je horizon.c::get_horizon_pitch_+0xbb",
            "+add esp,0x8",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop edx",
            "-pop ecx"
          ]
        },
        {
          "symbol": "horizon.c::draw_user_horizon_",
          "source": "E:\\library\\3dvisual\\horizon.c",
          "first": "0x495a48",
          "second": "0x4920b0",
          "first_instruction_count": 474,
          "second_instruction_count": 422,
          "diff": [
            "--- 0x495a48",
            "+++ 0x4920b0",
            "@@ -1,35 +1,33 @@",
            " push esi",
            " push ebp",
            "-sub esp,0x1c",
            "-mov esi,m4[esp+None*1+0x28]",
            "+sub esp,0x10",
            "+mov esi,m4[esp+None*1+0x1c]",
            " call 3dcore.c::set_3d_viewport_",
            " mov ecx,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            " mov ebx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_y_min_3d]",
            " mov eax,m4[None+None*1+3dcore.c::_viewport_x_min_3d]",
            " call 2dcore.c::set_2d_viewport_",
            "-mov edx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            "-lea eax,m4[None+edx*4+0x0]",
            "-sub eax,edx",
            "+mov ebp,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            "+lea eax,m4[None+ebp*4+0x0]",
            "+sub eax,ebp",
            " shl eax,0x3",
            "-add eax,edx",
            "+add eax,ebp",
            " shl eax,0x3",
            "-mov edx,eax",
            "-shl eax,0x2",
            "+lea edx,m4[None+eax*4+0x0]",
            " add edx,eax",
            " mov eax,edx",
            " sar edx,0x1f",
            " sub eax,edx",
            " sar eax,0x1",
            "-mov edx,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            "+mov ebp,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            " mov m4[None+None*1+horizon.c::_xw],eax",
            "-lea eax,m4[None+edx*4+0x0]",
            "-sub eax,edx",
            "+lea eax,m4[None+ebp*4+0x0]",
            "+sub eax,ebp",
            " shl eax,0x3",
            "-add eax,edx",
            "+add eax,ebp",
            " shl eax,0x3",
            "-mov edx,eax",
            "-shl eax,0x2",
            "+lea edx,m4[None+eax*4+0x0]",
            " add edx,eax",
            " mov eax,edx",
            " sar edx,0x1f",
            "@@ -59,9 +57,9 @@",
            " sub eax,edx",
            " mov m4[None+None*1+horizon.c::_pitch],eax",
            " cmp eax,0x40000000",
            "-je local:64",
            "+je local:62",
            " cmp eax,0xc0000000",
            "-jne local:120",
            "+jne local:404",
            " xor edx,edx",
            " mov m4[None+None*1+horizon.c::_roll],edx",
            " mov eax,m4[None+None*1+horizon.c::_pitch]",
            "@@ -72,7 +70,7 @@",
            " mov eax,m4[None+None*1+horizon.c::_pitch]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[None+None*1+horizon.c::_cosp],eax",
            " mov eax,m4[None+None*1+horizon.c::_roll]",
            " shr eax,0x13",
            "@@ -82,81 +80,13 @@",
            " mov eax,m4[None+None*1+horizon.c::_roll]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ecx,m4[None+None*1+horizon.c::_pitch]",
            " mov m4[None+None*1+horizon.c::_cosr],eax",
            " cmp ecx,0x38e38e39",
            "-jle local:132",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:126",
            "-mov edx,m4[esp+None*1+0x30]",
            "-and edx,0xff",
            "-lea eax,m4[None+edx*4+0x0]",
            "-sub eax,edx",
            "-xor edx,edx",
            "-mov dl,m1[eax+None*1+palette.c::_modified_rgb_values]",
            "-mov m4[esp+None*1+0x0],edx",
            "-xor edx,edx",
            "-mov dl,m1[eax+None*1+0x707491]",
            "-mov m4[esp+None*1+0x4],edx",
            "-mov al,m1[eax+None*1+0x707492]",
            "-and eax,0xff",
            "-mov m4[esp+None*1+0x8],eax",
            "-mov eax,edx",
            "-mov edx,m4[esp+None*1+0x0]",
            "-shl eax,0x10",
            "-shl edx,0x18",
            "-or eax,edx",
            "-mov edx,m4[esp+None*1+0x8]",
            "-push 0xffff",
            "-shl edx,0x8",
            "-push 0x0",
            "-or eax,edx",
            "-push eax",
            "-call LINKER MODULE::_grBufferClear@12",
            "-add esp,0x1c",
            "-pop ebp",
            "-pop esi",
            "-ret 0xc",
            "-mov eax,m4[esi+None*1+0x14]",
            "-mov edx,m4[esi+None*1+0x2c]",
            "-neg eax",
            "-call trig.c::iarctan360f_",
            "-mov m4[None+None*1+horizon.c::_roll],eax",
            "-jmp local:66",
            "-mov eax,m4[esp+None*1+0x30]",
            "-call 3dcore.c::clear_3d_viewport_",
            "-add esp,0x1c",
            "-pop ebp",
            "-pop esi",
            "-ret 0xc",
            "+jg local:410",
            " cmp ecx,0xc71c71c7",
            "-jge local:159",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:153",
            "-mov edx,m4[esp+None*1+0x2c]",
            "-and edx,0xff",
            "-lea eax,m4[None+edx*4+0x0]",
            "-sub eax,edx",
            "-xor edx,edx",
            "-mov dl,m1[eax+None*1+palette.c::_modified_rgb_values]",
            "-mov m4[esp+None*1+0x0],edx",
            "-xor edx,edx",
            "-mov dl,m1[eax+None*1+0x707491]",
            "-mov m4[esp+None*1+0x4],edx",
            "-mov al,m1[eax+None*1+0x707492]",
            "-and eax,0xff",
            "-mov m4[esp+None*1+0x8],eax",
            "-mov eax,m4[esp+None*1+0x0]",
            "-shl edx,0x10",
            "-shl eax,0x18",
            "-jmp local:108",
            "-mov eax,m4[esp+None*1+0x2c]",
            "-call 3dcore.c::clear_3d_viewport_",
            "-add esp,0x1c",
            "-pop ebp",
            "-pop esi",
            "-ret 0xc",
            "+jl local:416",
            " push edi",
            " mov edx,m4[None+None*1+horizon.c::_sinp]",
            " mov m4[None+None*1+horizon.c::_h1],eax",
            "@@ -220,7 +150,7 @@",
            " mov ebx,0x6400",
            " mov eax,0xffd8f000",
            " xor ecx,ecx",
            "-mov m4[esp+None*1+0x14],edx",
            "+mov m4[esp+None*1+0xc],edx",
            " mov edx,m4[None+None*1+horizon.c::_h4]",
            " imul edx",
            " mov esi,eax",
            "@@ -241,7 +171,70 @@",
            " mov ebx,0x6400",
            " mov eax,0xffd8f000",
            " xor ecx,ecx",
            "+mov m4[esp+None*1+0x10],edx",
            "+mov edx,m4[None+None*1+horizon.c::_h7]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+horizon.c::_h8]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+horizon.c::_h9]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov ebx,0x6400",
            "+mov eax,0x271000",
            "+xor ecx,ecx",
            "+mov m4[esp+None*1+0x8],edx",
            "+mov edx,m4[None+None*1+horizon.c::_h1]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+horizon.c::_h2]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+horizon.c::_h3]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov ebx,0x6400",
            "+mov eax,0x271000",
            "+xor ecx,ecx",
            "+mov m4[esp+None*1+0x4],edx",
            "+mov edx,m4[None+None*1+horizon.c::_h4]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+horizon.c::_h5]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+horizon.c::_h6]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            " mov ebp,edx",
            "+mov ebx,0x6400",
            "+mov eax,0x271000",
            "+xor ecx,ecx",
            " mov edx,m4[None+None*1+horizon.c::_h7]",
            " imul edx",
            " mov esi,eax",
            "@@ -259,77 +252,14 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ebx,0x6400",
            "-mov eax,0x271000",
            "-xor ecx,ecx",
            "-mov m4[esp+None*1+0x10],edx",
            "-mov edx,m4[None+None*1+horizon.c::_h1]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+horizon.c::_h2]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+horizon.c::_h3]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov ebx,0x6400",
            "-mov eax,0x271000",
            "-xor ecx,ecx",
            "-mov m4[esp+None*1+0x18],edx",
            "-mov edx,m4[None+None*1+horizon.c::_h4]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+horizon.c::_h5]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+horizon.c::_h6]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov m4[esp+None*1+0x1c],edx",
            "-mov ebx,0x6400",
            "-mov eax,0x271000",
            "-xor ecx,ecx",
            "-mov edx,m4[None+None*1+horizon.c::_h7]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+horizon.c::_h8]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+horizon.c::_h9]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov eax,m4[esp+None*1+0x10]",
            "+mov eax,m4[esp+None*1+0x8]",
            "+mov ebx,m4[esp+None*1+0x10]",
            " mov ecx,edx",
            " mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            " imul edx",
            " shld edx,eax,0x5",
            " shl eax,0x6",
            " adc edx,0x0",
            "-mov ebx,ebp",
            " mov eax,ecx",
            " mov esi,edx",
            " mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            "@@ -337,7 +267,7 @@",
            " shld edx,eax,0x5",
            " shl eax,0x6",
            " adc edx,0x0",
            "-mov eax,m4[esp+None*1+0x14]",
            "+mov eax,m4[esp+None*1+0xc]",
            " mov ecx,edx",
            " mov edx,m4[None+None*1+horizon.c::_xw]",
            " imul edx",
            "@@ -347,10 +277,10 @@",
            " mov eax,esi",
            " imul edx",
            " idiv ebx",
            "-mov ebx,m4[esp+None*1+0x1c]",
            " mov edx,m4[None+None*1+horizon.c::_xw]",
            " mov m4[None+None*1+horizon.c::_yhl],eax",
            "-mov eax,m4[esp+None*1+0x18]",
            "+mov ebx,ebp",
            "+mov eax,m4[esp+None*1+0x4]",
            " imul edx",
            " idiv ebx",
            " mov edx,m4[None+None*1+horizon.c::_yw]",
            "@@ -436,10 +366,10 @@",
            " mov eax,m4[None+None*1+horizon.c::_yhr]",
            " mov m4[None+None*1+horizon.c::_ymr],edx",
            " sub eax,edx",
            "-mov edx,m4[esp+None*1+0x30]",
            "+mov edx,m4[esp+None*1+0x24]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,vertex.c::_quad",
            "-call fx2dpoly.c::fill_2d_polygon_",
            "+call 2dpoly.c::fill_2d_polygon_",
            " mov eax,m4[None+None*1+horizon.c::_xhl]",
            " mov m4[None+None*1+vertex.c::_quad],eax",
            " mov eax,m4[None+None*1+horizon.c::_yhl]",
            "@@ -463,12 +393,30 @@",
            " mov eax,m4[None+None*1+horizon.c::_xhr]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[None+None*1+horizon.c::_yhr]",
            "-mov edx,m4[esp+None*1+0x34]",
            "+mov edx,m4[esp+None*1+0x28]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,vertex.c::_quad",
            "-call fx2dpoly.c::fill_2d_polygon_",
            "+call 2dpoly.c::fill_2d_polygon_",
            " pop edi",
            "-add esp,0x1c",
            "+add esp,0x10",
            " pop ebp",
            " pop esi",
            " ret 0xc",
            "+mov eax,m4[esi+None*1+0x14]",
            "+mov edx,m4[esi+None*1+0x2c]",
            "+neg eax",
            "+call trig.c::iarctan360f_",
            "+mov m4[None+None*1+horizon.c::_roll],eax",
            "+jmp local:64",
            "+mov eax,m4[esp+None*1+0x24]",
            "+call 3dcore.c::clear_3d_viewport_",
            "+add esp,0x10",
            "+pop ebp",
            "+pop esi",
            "+ret 0xc",
            "+mov eax,m4[esp+None*1+0x20]",
            "+call 3dcore.c::clear_3d_viewport_",
            "+add esp,0x10",
            "+pop ebp",
            "+pop esi",
            "+ret 0xc"
          ]
        },
        {
          "symbol": "horizon.c::initialise_horizon_",
          "source": "E:\\library\\3dvisual\\horizon.c",
          "first": "0x494de0",
          "second": "0x491680",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x494de0",
            "+++ 0x491680",
            "@@ -3,22 +3,22 @@",
            " push edx",
            " mov edx,0x98",
            " mov ebx,horizon.c::_sky_viewpoint",
            "-mov ah,m1[None+None*1+0xd88a7c]",
            "+mov ah,m1[None+None*1+0xd7316c]",
            " xor ecx,ecx",
            " mov m4[None+None*1+horizon.c::_sky_instance],edx",
            "-mov m4[None+None*1+0xd88a40],ecx",
            "-mov m4[None+None*1+0xd88a44],ebx",
            "-mov m4[None+None*1+0xd88a4c],ecx",
            "-mov m4[None+None*1+0xd88a58],ecx",
            "-mov m4[None+None*1+0xd88a5c],ecx",
            "-mov m4[None+None*1+0xd88a60],ecx",
            "-mov m4[None+None*1+0xd88a64],ecx",
            "-mov m4[None+None*1+0xd88a68],ecx",
            "+mov m4[None+None*1+0xd73130],ecx",
            "+mov m4[None+None*1+0xd73134],ebx",
            "+mov m4[None+None*1+0xd7313c],ecx",
            "+mov m4[None+None*1+0xd73148],ecx",
            "+mov m4[None+None*1+0xd7314c],ecx",
            "+mov m4[None+None*1+0xd73150],ecx",
            "+mov m4[None+None*1+0xd73154],ecx",
            "+mov m4[None+None*1+0xd73158],ecx",
            " and ah,0xef",
            "-mov m4[None+None*1+0xd88a6c],ecx",
            "-mov m1[None+None*1+0xd88a7c],ah",
            "-mov eax,0xd889bc",
            "-mov m4[None+None*1+0xd88a70],ecx",
            "+mov m4[None+None*1+0xd7315c],ecx",
            "+mov m1[None+None*1+0xd7316c],ah",
            "+mov eax,0xd7306c",
            "+mov m4[None+None*1+0xd73160],ecx",
            " call matrix.c::mat_identity_3x3_",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "ihadss.c::display_weapons_information_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45b38c",
          "second": "0x45b540",
          "first_instruction_count": 291,
          "second_instruction_count": 291,
          "diff": [
            "--- 0x45b38c",
            "+++ 0x45b540",
            "@@ -37,10 +37,10 @@",
            " call text.c::print_text_string_",
            " mov eax,0x26666",
            " call 2dwrap.c::set_2d_text_position_",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " jne local:113",
            " mov ecx,data:000000003a44657369676e6174656400",
            "-test m1[None+None*1+0x6748c6],0x8",
            "+test m1[None+None*1+0x6678d6],0x8",
            " je local:125",
            " cmp m4[None+None*1+apweapon.c::_current_weapon],0x1",
            " jne local:125",
            "@@ -55,7 +55,7 @@",
            " call text.c::print_text_string_",
            " mov eax,0xfffd999a",
            " call 2dwrap.c::set_2d_text_position_",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " jne local:139",
            " push text:'No Target'",
            " lea eax,m4[esp+None*1+0x4]",
            "@@ -88,7 +88,7 @@",
            " mov eax,esp",
            " mov m4[None+None*1+text.c::_text_x_position],ecx",
            " call text.c::print_text_string_",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " jne local:195",
            " add esp,0x84",
            " pop ebp",
            "@@ -266,7 +266,7 @@",
            " call text.c::print_text_string_",
            " mov eax,0xfff33334",
            " call 2dwrap.c::set_2d_text_position_",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            " mov eax,m4[eax+None*1+0x3c]",
            " mov edx,m4[eax+None*1+0x7c]",
            " mov eax,m4[eax+None*1+0x78]"
          ]
        },
        {
          "symbol": "ihadss.c::draw_aiming_target_box_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45ac3c",
          "second": "0x45adf0",
          "first_instruction_count": 82,
          "second_instruction_count": 82,
          "diff": [
            "--- 0x45ac3c",
            "+++ 0x45adf0",
            "@@ -2,7 +2,7 @@",
            " sub esp,0xc",
            " cmp m4[None+None*1+ihadss.c::_weapons_mode_target_valid],0x0",
            " jne local:11",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " je local:8",
            " cmp m4[None+None*1+apweapon.c::_current_weapon],0x1",
            " jne local:74",
            "@@ -15,7 +15,7 @@",
            " sub eax,edx",
            " cmp eax,0x100000",
            " jg local:4",
            "-mov eax,m4[None+None*1+0x674960]",
            "+mov eax,m4[None+None*1+0x667970]",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            "@@ -23,7 +23,7 @@",
            " jg local:4",
            " push ecx",
            " push ebx",
            "-mov edx,m4[None+None*1+0x674960]",
            "+mov edx,m4[None+None*1+0x667970]",
            " xor eax,eax",
            " mov ebx,m4[None+None*1+ihadss.c::_weapons_mode_target_position]",
            " mov al,m1[None+None*1+ihadss.c::_ihadss_colour]",
            "@@ -34,7 +34,7 @@",
            " mov ecx,edx",
            " sub eax,0xcccc",
            " call 2dline.c::draw_2d_line_",
            "-mov edx,m4[None+None*1+0x674960]",
            "+mov edx,m4[None+None*1+0x667970]",
            " xor eax,eax",
            " mov ebx,m4[None+None*1+ihadss.c::_weapons_mode_target_position]",
            " mov al,m1[None+None*1+ihadss.c::_ihadss_colour]",
            "@@ -46,9 +46,9 @@",
            " sub eax,0xcccc",
            " call 2dline.c::draw_2d_line_",
            " xor eax,eax",
            "-mov ecx,m4[None+None*1+0x674960]",
            "+mov ecx,m4[None+None*1+0x667970]",
            " mov al,m1[None+None*1+ihadss.c::_ihadss_colour]",
            "-mov edx,m4[None+None*1+0x674960]",
            "+mov edx,m4[None+None*1+0x667970]",
            " push eax",
            " mov eax,m4[None+None*1+ihadss.c::_weapons_mode_target_position]",
            " add ecx,0xcccc",
            "@@ -57,9 +57,9 @@",
            " mov ebx,eax",
            " call 2dline.c::draw_2d_line_",
            " xor eax,eax",
            "-mov ecx,m4[None+None*1+0x674960]",
            "+mov ecx,m4[None+None*1+0x667970]",
            " mov al,m1[None+None*1+ihadss.c::_ihadss_colour]",
            "-mov edx,m4[None+None*1+0x674960]",
            "+mov edx,m4[None+None*1+0x667970]",
            " push eax",
            " mov eax,m4[None+None*1+ihadss.c::_weapons_mode_target_position]",
            " add ecx,0xcccc"
          ]
        },
        {
          "symbol": "ihadss.c::draw_bank_angle_indicator_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x4597a8",
          "second": "0x45995c",
          "first_instruction_count": 1214,
          "second_instruction_count": 1214,
          "diff": [
            "--- 0x4597a8",
            "+++ 0x45995c",
            "@@ -33,7 +33,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,edi",
            " mov esi,eax",
            " mov ecx,eax",
            "@@ -77,7 +77,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,esi",
            " mov edi,eax",
            " mov ecx,eax",
            "@@ -135,7 +135,7 @@",
            " mov m4[esp+None*1+0x68],edx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,edi",
            " mov esi,eax",
            " mov ecx,eax",
            "@@ -179,7 +179,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,edi",
            " mov esi,eax",
            " mov ecx,eax",
            "@@ -234,7 +234,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,edi",
            " mov esi,eax",
            " mov ecx,eax",
            "@@ -308,7 +308,7 @@",
            " mov eax,edi",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edi,eax",
            " mov ecx,eax",
            " mov edx,esi",
            "@@ -384,7 +384,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,esi",
            " mov edi,eax",
            " mov ecx,eax",
            "@@ -459,7 +459,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,edi",
            " mov esi,eax",
            " mov ecx,eax",
            "@@ -535,7 +535,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,esi",
            " mov edi,eax",
            " mov ecx,eax",
            "@@ -611,7 +611,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,edi",
            " mov esi,eax",
            " mov ecx,eax",
            "@@ -683,7 +683,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,edi",
            " mov esi,eax",
            " mov ecx,eax",
            "@@ -758,7 +758,7 @@",
            " mov eax,esi",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,edi",
            " xor ebx,ebx",
            " mov esi,eax",
            "@@ -834,7 +834,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,edi",
            " mov esi,eax",
            " mov ecx,eax",
            "@@ -909,7 +909,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,esi",
            " mov edi,eax",
            " mov ecx,eax",
            "@@ -984,7 +984,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,esi",
            " mov edi,eax",
            " mov ecx,eax",
            "@@ -1059,7 +1059,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,edi",
            " mov esi,eax",
            " mov ecx,eax",
            "@@ -1135,7 +1135,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,edi",
            " mov esi,eax",
            " mov ecx,eax"
          ]
        },
        {
          "symbol": "ihadss.c::draw_climb_rate_and_altitude_indicators_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45a4ec",
          "second": "0x45a6a0",
          "first_instruction_count": 210,
          "second_instruction_count": 210,
          "diff": [
            "--- 0x45a4ec",
            "+++ 0x45a6a0",
            "@@ -102,7 +102,7 @@",
            " add edx,eax",
            " mov eax,vertex.c::_triangle",
            " mov m4[None+None*1+vertex.c::_triangle],ebx",
            "-call fx2dpoly.c::fill_2d_polygon_",
            "+call 2dpoly.c::fill_2d_polygon_",
            " mov ebp,m4[None+None*1+avionics.c::_display_radar_altitude]",
            " test ebp,ebp",
            " jl local:206",
            "@@ -137,7 +137,7 @@",
            " add edx,eax",
            " mov eax,vertex.c::_quad",
            " mov m4[None+None*1+constant:00000000],ecx",
            "-call fx2dpoly.c::fill_2d_polygon_",
            "+call 2dpoly.c::fill_2d_polygon_",
            " mov eax,0xffff0a3e",
            " xor edx,edx",
            " call 2dwrap.c::set_2d_text_position_"
          ]
        },
        {
          "symbol": "ihadss.c::draw_ihadss_display_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x458bc0",
          "second": "0x458da0",
          "first_instruction_count": 85,
          "second_instruction_count": 69,
          "diff": [
            "--- 0x458bc0",
            "+++ 0x458da0",
            "@@ -1,14 +1,12 @@",
            "-push edx",
            "-mov edx,0x1",
            "-mov ah,m1[None+None*1+0x6748c5]",
            "-mov m4[None+None*1+fxpoly1.c::_use_glide],edx",
            "-test ah,0x10",
            "-je local:8",
            "-pop edx",
            "+push ecx",
            "+push esi",
            "+push ebp",
            "+test m1[None+None*1+0x6678d5],0x10",
            "+je local:9",
            "+pop ebp",
            "+pop esi",
            "+pop ecx",
            " ret ",
            "-push edi",
            "-push ecx",
            "-push ebx",
            " call ihadss.c::set_ihadss_viewport_and_window_",
            " xor eax,eax",
            " call 2dcore.c::set_2d_rotation_",
            "@@ -19,8 +17,11 @@",
            " call ihadss.c::draw_layout_grid_",
            " mov eax,m4[None+None*1+ihadss.c::_ihadss_mode]",
            " cmp eax,0x3",
            "-ja local:37",
            "+ja local:5",
            " jmp m4[None+eax*4+ihadss.c::initialise_ihadss_display_+0x150]",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            "+je local:24",
            "+call ihadss.c::draw_aiming_target_box_",
            " call ihadss.c::draw_line_of_sight_reticle_",
            " call ihadss.c::draw_heading_scale_",
            " call ihadss.c::draw_pitch_ladder_",
            "@@ -31,29 +32,15 @@",
            " call ihadss.c::display_engine_information_",
            " call ihadss.c::display_viewing_device_",
            " call ihadss.c::display_weapons_information_",
            "-mov eax,m4[None+None*1+views.c::_view_mode]",
            "-cmp eax,0xc",
            "-jne local:48",
            "+mov ebp,m4[None+None*1+views.c::_view_mode]",
            "+cmp ebp,0xc",
            "+je local:39",
            "+cmp ebp,0xd",
            "+jne local:5",
            " call ihadss.c::draw_tads_field_of_view_",
            "-xor ecx,ecx",
            "-mov m4[None+None*1+fxpoly1.c::_use_glide],ecx",
            "-pop ebx",
            "+pop ebp",
            "+pop esi",
            " pop ecx",
            "-pop edi",
            "-pop edx",
            "-ret ",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "-je local:23",
            "-call ihadss.c::draw_aiming_target_box_",
            "-jmp local:23",
            "-cmp eax,0xd",
            "-je local:36",
            "-xor ecx,ecx",
            "-mov m4[None+None*1+fxpoly1.c::_use_glide],ecx",
            "-pop ebx",
            "-pop ecx",
            "-pop edi",
            "-pop edx",
            " ret ",
            " call ihadss.c::draw_pitch_ladder_",
            " call ihadss.c::display_airspeed_information_",
            "@@ -61,25 +48,22 @@",
            " call ihadss.c::display_engine_information_",
            " call ihadss.c::draw_heading_scale_",
            " call ihadss.c::draw_climb_rate_and_altitude_indicators_",
            "-mov ebx,m4[None+None*1+apweapon.c::_current_weapon]",
            "-cmp ebx,0x4",
            "-je local:69",
            "-cmp ebx,0x5",
            "-je local:69",
            "+mov ecx,m4[None+None*1+apweapon.c::_current_weapon]",
            "+cmp ecx,0x4",
            "+je local:56",
            "+cmp ecx,0x5",
            "+je local:56",
            " call ihadss.c::draw_line_of_sight_reticle_",
            " call ihadss.c::display_viewing_device_",
            " call ihadss.c::draw_targeting_reticle_",
            " call ihadss.c::display_weapons_information_",
            "-mov edi,m4[None+None*1+views.c::_view_mode]",
            "-cmp edi,0xc",
            "-je local:36",
            "-cmp edi,0xd",
            "-jne local:37",
            "+mov esi,m4[None+None*1+views.c::_view_mode]",
            "+cmp esi,0xc",
            "+je local:64",
            "+cmp esi,0xd",
            "+jne local:5",
            " call ihadss.c::draw_tads_field_of_view_",
            "-xor ecx,ecx",
            "-mov m4[None+None*1+fxpoly1.c::_use_glide],ecx",
            "-pop ebx",
            "+pop ebp",
            "+pop esi",
            " pop ecx",
            "-pop edi",
            "-pop edx",
            " ret "
          ]
        },
        {
          "symbol": "ihadss.c::draw_impact_point_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45add0",
          "second": "0x45af84",
          "first_instruction_count": 61,
          "second_instruction_count": 61,
          "diff": [
            "--- 0x45add0",
            "+++ 0x45af84",
            "@@ -1,7 +1,7 @@",
            " push edx",
            " cmp m4[None+None*1+ihadss.c::_weapons_mode_target_valid],0x0",
            " jne local:7",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " jne local:57",
            " pop edx",
            " ret ",
            "@@ -11,7 +11,7 @@",
            " sub eax,edx",
            " cmp eax,0x100000",
            " jg local:3",
            "-mov eax,m4[None+None*1+0x674960]",
            "+mov eax,m4[None+None*1+0x667970]",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            "@@ -19,10 +19,10 @@",
            " jg local:3",
            " push ecx",
            " push ebx",
            "-mov ecx,m4[None+None*1+0x674934]",
            "+mov ecx,m4[None+None*1+0x667944]",
            " mov ebx,m4[None+None*1+ihadss.c::_weapons_mode_impact_position]",
            " xor eax,eax",
            "-mov edx,m4[None+None*1+0x674934]",
            "+mov edx,m4[None+None*1+0x667944]",
            " mov al,m1[None+None*1+ihadss.c::_ihadss_colour]",
            " add ecx,0x147ae",
            " add ebx,0x147ae",
            "@@ -31,10 +31,10 @@",
            " sub edx,0x147ae",
            " sub eax,0x147ae",
            " call 2dline.c::draw_2d_line_",
            "-mov ecx,m4[None+None*1+0x674934]",
            "+mov ecx,m4[None+None*1+0x667944]",
            " mov ebx,m4[None+None*1+ihadss.c::_weapons_mode_impact_position]",
            " xor eax,eax",
            "-mov edx,m4[None+None*1+0x674934]",
            "+mov edx,m4[None+None*1+0x667944]",
            " mov al,m1[None+None*1+ihadss.c::_ihadss_colour]",
            " sub ecx,0x147ae",
            " add ebx,0x147ae",
            "@@ -44,7 +44,7 @@",
            " sub eax,0x147ae",
            " call 2dline.c::draw_2d_line_",
            " xor eax,eax",
            "-mov ecx,m4[None+None*1+0x674934]",
            "+mov ecx,m4[None+None*1+0x667944]",
            " mov al,m1[None+None*1+ihadss.c::_ihadss_colour]",
            " mov ebx,m4[None+None*1+ihadss.c::_weapons_mode_impact_position]",
            " push eax"
          ]
        },
        {
          "symbol": "ihadss.c::draw_intercept_point_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45b15c",
          "second": "0x45b310",
          "first_instruction_count": 45,
          "second_instruction_count": 45,
          "diff": [
            "--- 0x45b15c",
            "+++ 0x45b310",
            "@@ -1,5 +1,5 @@",
            " push edx",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " je local:5",
            " cmp m4[None+None*1+ihadss.c::_weapons_mode_target_valid],0x0",
            " jne local:7",
            "@@ -11,7 +11,7 @@",
            " sub eax,edx",
            " cmp eax,0x100000",
            " jg local:5",
            "-mov eax,m4[None+None*1+0x674960]",
            "+mov eax,m4[None+None*1+0x667970]",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            "@@ -19,7 +19,7 @@",
            " jg local:5",
            " push ecx",
            " push ebx",
            "-mov edx,m4[None+None*1+0x674940]",
            "+mov edx,m4[None+None*1+0x667950]",
            " xor eax,eax",
            " mov ebx,m4[None+None*1+ihadss.c::_weapons_mode_intercept_position]",
            " mov al,m1[None+None*1+ihadss.c::_ihadss_colour]",
            "@@ -29,9 +29,9 @@",
            " mov ecx,edx",
            " sub eax,0xcccc",
            " call 2dline.c::draw_2d_line_",
            "-mov ecx,m4[None+None*1+0x674940]",
            "+mov ecx,m4[None+None*1+0x667950]",
            " xor eax,eax",
            "-mov edx,m4[None+None*1+0x674940]",
            "+mov edx,m4[None+None*1+0x667950]",
            " mov al,m1[None+None*1+ihadss.c::_ihadss_colour]",
            " add ecx,0xcccc",
            " push eax"
          ]
        },
        {
          "symbol": "ihadss.c::draw_lock_diamond_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45b1f0",
          "second": "0x45b3a4",
          "first_instruction_count": 100,
          "second_instruction_count": 100,
          "diff": [
            "--- 0x45b1f0",
            "+++ 0x45b3a4",
            "@@ -52,22 +52,22 @@",
            " sub eax,edx",
            " cmp eax,0x100000",
            " jge local:8",
            "-mov eax,m4[None+None*1+0x674960]",
            "+mov eax,m4[None+None*1+0x667970]",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            " cmp eax,0x100000",
            " jge local:8",
            "-mov ecx,m4[None+None*1+0x674960]",
            "+mov ecx,m4[None+None*1+0x667970]",
            " xor eax,eax",
            " mov ebx,m4[None+None*1+ihadss.c::_weapons_mode_target_position]",
            " mov al,m1[None+None*1+ihadss.c::_ihadss_colour]",
            "-mov edx,m4[None+None*1+0x674960]",
            "+mov edx,m4[None+None*1+0x667970]",
            " push eax",
            " add ecx,0xcccc",
            " lea eax,m4[ebx+None*1+0xffff3334]",
            " call 2dline.c::draw_2d_line_",
            "-mov ecx,m4[None+None*1+0x674960]",
            "+mov ecx,m4[None+None*1+0x667970]",
            " xor eax,eax",
            " mov ebx,m4[None+None*1+ihadss.c::_weapons_mode_target_position]",
            " mov al,m1[None+None*1+ihadss.c::_ihadss_colour]",
            "@@ -76,16 +76,16 @@",
            " lea edx,m4[ecx+None*1+0xcccc]",
            " mov eax,m4[None+None*1+ihadss.c::_weapons_mode_target_position]",
            " call 2dline.c::draw_2d_line_",
            "-mov ecx,m4[None+None*1+0x674960]",
            "+mov ecx,m4[None+None*1+0x667970]",
            " xor eax,eax",
            " mov ebx,m4[None+None*1+ihadss.c::_weapons_mode_target_position]",
            " mov al,m1[None+None*1+ihadss.c::_ihadss_colour]",
            "-mov edx,m4[None+None*1+0x674960]",
            "+mov edx,m4[None+None*1+0x667970]",
            " push eax",
            " sub ecx,0xcccc",
            " lea eax,m4[ebx+None*1+0xcccc]",
            " call 2dline.c::draw_2d_line_",
            "-mov ecx,m4[None+None*1+0x674960]",
            "+mov ecx,m4[None+None*1+0x667970]",
            " xor eax,eax",
            " mov ebx,m4[None+None*1+ihadss.c::_weapons_mode_target_position]",
            " mov al,m1[None+None*1+ihadss.c::_ihadss_colour]"
          ]
        },
        {
          "symbol": "ihadss.c::draw_point_direction_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45b970",
          "second": "0x45bb24",
          "first_instruction_count": 122,
          "second_instruction_count": 122,
          "diff": [
            "--- 0x45b970",
            "+++ 0x45bb24",
            "@@ -36,11 +36,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xae972c]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -54,15 +54,15 @@",
            " mov eax,m4[esp+None*1+0x0]",
            " mov ebp,edx",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -75,15 +75,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x10],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xae9740]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "ihadss.c::draw_targeting_box_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45aeb0",
          "second": "0x45b064",
          "first_instruction_count": 131,
          "second_instruction_count": 131,
          "diff": [
            "--- 0x45aeb0",
            "+++ 0x45b064",
            "@@ -4,12 +4,12 @@",
            " push esi",
            " push edi",
            " sub esp,0x14",
            "-mov eax,m4[None+None*1+0x674b5c]",
            "+mov eax,m4[None+None*1+0x667b6c]",
            " mov m4[esp+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x674b60]",
            "+mov eax,m4[None+None*1+0x667b70]",
            " lea ecx,m4[esp+None*1+0xc]",
            " mov m4[esp+None*1+0x4],eax",
            "-mov eax,m4[None+None*1+0x674b64]",
            "+mov eax,m4[None+None*1+0x667b74]",
            " lea ebx,m4[esp+None*1+0x10]",
            " mov m4[esp+None*1+0x8],eax",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            "@@ -28,7 +28,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ecx,eax",
            " mov eax,0x233333",
            " imul edx",
            "@@ -53,7 +53,7 @@",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ecx,eax",
            " mov eax,0x233333",
            " imul edx",
            "@@ -72,7 +72,7 @@",
            " shl eax,0x2",
            " add eax,edx",
            " mov edx,ecx",
            "-mov esi,m4[None+eax*8+0x672aac]",
            "+mov esi,m4[None+eax*8+0x665abc]",
            " mov eax,edi",
            " call 2dcore.c::set_2d_object_origin_",
            " mov eax,m4[None+None*1+avionics.c::_display_roll]"
          ]
        },
        {
          "symbol": "ihadss.c::draw_targeting_reticle_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45abfc",
          "second": "0x45adb0",
          "first_instruction_count": 16,
          "second_instruction_count": 16,
          "diff": [
            "--- 0x45abfc",
            "+++ 0x45adb0",
            "@@ -12,5 +12,5 @@",
            " push text:'Trying to draw targetting system for unknown/illegal weapon type'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " je local:3"
          ]
        },
        {
          "symbol": "ihadss.c::get_weapons_mode_impact_position_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45b83c",
          "second": "0x45b9f0",
          "first_instruction_count": 35,
          "second_instruction_count": 35,
          "diff": [
            "--- 0x45b83c",
            "+++ 0x45b9f0",
            "@@ -26,8 +26,8 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov m4[None+None*1+0x674934],ebx",
            "-mov m4[None+None*1+0x674938],ebx",
            "+mov m4[None+None*1+0x667944],ebx",
            "+mov m4[None+None*1+0x667948],ebx",
            " mov m4[None+None*1+ihadss.c::_weapons_mode_impact_position],ebx",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "ihadss.c::get_weapons_mode_intercept_position_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45b8a4",
          "second": "0x45ba58",
          "first_instruction_count": 63,
          "second_instruction_count": 63,
          "diff": [
            "--- 0x45b8a4",
            "+++ 0x45ba58",
            "@@ -3,7 +3,7 @@",
            " push edx",
            " push ebp",
            " sub esp,0x24",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " je local:14",
            " mov ecx,m4[None+None*1+apweapon.c::_current_weapon]",
            " cmp ecx,0x6",
            "@@ -17,8 +17,8 @@",
            " mov m4[None+None*1+ihadss.c::_weapons_mode_intercept_valid],edi",
            " pop edi",
            " xor ebp,ebp",
            "-mov m4[None+None*1+0x674940],ebp",
            "-mov m4[None+None*1+0x674944],ebp",
            "+mov m4[None+None*1+0x667950],ebp",
            "+mov m4[None+None*1+0x667954],ebp",
            " mov m4[None+None*1+ihadss.c::_weapons_mode_intercept_position],ebp",
            " add esp,0x24",
            " pop ebp",
            "@@ -46,7 +46,7 @@",
            " add eax,edx",
            " lea ecx,m4[esp+None*1+0x18]",
            " lea ebx,m4[esp+None*1+0xc]",
            "-mov edx,m4[None+eax*8+0x672aa0]",
            "+mov edx,m4[None+eax*8+0x665ab0]",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            " call intercpt.c::get_intercept_point_",
            " mov edx,ihadss.c::_weapons_mode_intercept_position"
          ]
        },
        {
          "symbol": "ihadss.c::get_weapons_mode_target_position_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45b7f4",
          "second": "0x45b9a8",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x45b7f4",
            "+++ 0x45b9a8",
            "@@ -1,6 +1,6 @@",
            " push edx",
            " sub esp,0xc",
            "-mov edx,m4[None+None*1+0x5b3c6c]",
            "+mov edx,m4[None+None*1+0x5a6c7c]",
            " test edx,edx",
            " jne local:10",
            " mov m4[None+None*1+ihadss.c::_weapons_mode_target_valid],edx"
          ]
        },
        {
          "symbol": "ihadss.c::translate_real_position_to_display_point_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45bdbc",
          "second": "0x45bf70",
          "first_instruction_count": 192,
          "second_instruction_count": 192,
          "diff": [
            "--- 0x45bdbc",
            "+++ 0x45bf70",
            "@@ -10,9 +10,9 @@",
            " mov ecx,m4[None+None*1+views.c::_current_view_position]",
            " mov m4[esp+None*1+0x14],edx",
            " mov edx,m4[eax+None*1+0x0]",
            "-mov ebx,m4[None+None*1+0x674b78]",
            "+mov ebx,m4[None+None*1+0x667b88]",
            " sub edx,ecx",
            "-mov esi,m4[None+None*1+0x674b7c]",
            "+mov esi,m4[None+None*1+0x667b8c]",
            " mov m4[esp+None*1+0x0],edx",
            " mov edx,m4[eax+None*1+0x4]",
            " mov ecx,0x24",
            "@@ -37,11 +37,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xae972c]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -54,15 +54,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -75,15 +75,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov ebp,edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xae9740]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "initgame.c::deinitialise_game_",
          "source": "E:\\apache\\source\\initgame.c",
          "first": "0x40311c",
          "second": "0x4031c0",
          "first_instruction_count": 10,
          "second_instruction_count": 10,
          "diff": [
            "--- 0x40311c",
            "+++ 0x4031c0",
            "@@ -3,7 +3,7 @@",
            " call screen.c::down_load_screen_",
            " mov eax,m4[None+None*1+gamedata.c::_work_screen]",
            " call screen.c::destroy_screen_",
            "-call fx3dmain.c::deinitialise_3d_visual_",
            "+call 3dmain.c::deinitialise_3d_visual_",
            " call cockpits.c::deinitialise_cockpits_",
            " call pnvs.c::deinitialise_pnvs_",
            " call views.c::deinitialise_view_mode_"
          ]
        },
        {
          "symbol": "initgame.c::initialise_game_",
          "source": "E:\\apache\\source\\initgame.c",
          "first": "0x402fb0",
          "second": "0x402fe0",
          "first_instruction_count": 78,
          "second_instruction_count": 106,
          "diff": [
            "--- 0x402fb0",
            "+++ 0x402fe0",
            "@@ -1,17 +1,42 @@",
            "+push ebx",
            "+push ecx",
            " push edx",
            "+sub esp,0x300",
            " mov edx,m4[None+None*1+missions.c::_mission_success_count]",
            " cmp edx,m4[None+None*1+missions.c::_mission_outstanding_count]",
            "-jge local:57",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-test eax,eax",
            "-jbe local:63",
            "-cmp eax,0x1",
            "-jne local:66",
            "+jge local:85",
            " mov edx,0x1e0",
            " mov eax,0x280",
            " call screen.c::create_screen_",
            " mov m4[None+None*1+gamedata.c::_work_screen],eax",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],0x1",
            "+call screen.c::set_active_screen_",
            "+mov eax,esp",
            "+mov ecx,m4[None+None*1+video.c::_video_screen_height]",
            "+push eax",
            "+mov edx,m4[None+None*1+gamedata.c::_work_screen]",
            "+mov ebx,m4[None+None*1+video.c::_video_screen_width]",
            "+push 0x0",
            "+mov edx,m4[edx+None*1+0x14]",
            "+mov eax,text:'menuscrn\\\\title.lbm'",
            "+call loadgfx.c::load_graphics_",
            "+call screen.c::down_load_screen_",
            "+mov ecx,0x1",
            "+mov ebx,0x100",
            "+mov eax,esp",
            "+xor edx,edx",
            "+call palette.c::set_palette_colours_",
            "+mov eax,m4[None+None*1+gamedata.c::_work_screen]",
            "+call screen.c::destroy_screen_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+test eax,eax",
            "+jbe local:91",
            "+cmp eax,0x1",
            "+jne local:94",
            "+mov edx,0x1e0",
            "+mov eax,0x280",
            "+call screen.c::create_screen_",
            "+mov m4[None+None*1+gamedata.c::_work_screen],eax",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],0x1",
            " call links.c::general_initialise_connection_",
            " call gameplay.c::initialise_static_objects_",
            " call faults.c::initialise_apache_fault_status_",
            "@@ -19,7 +44,7 @@",
            " call control.c::initialise_controls_",
            " call views.c::initialise_view_mode_",
            " mov eax,gamedata.c::_game_visual_init",
            "-call fx3dmain.c::initialise_3d_visual_",
            "+call 3dmain.c::initialise_3d_visual_",
            " call initrad.c::initialise_radar_modes_",
            " call inittads.c::initialise_tads_",
            " call war.c::initialise_war_model_",
            "@@ -28,7 +53,7 @@",
            " call debug.c::initialise_debug_information_",
            " call dieflag.c::initialise_die_flag_",
            " cmp m1[None+None*1+modemprf.c::_rods_connect],0x0",
            "-je local:32",
            "+je local:57",
            " call apser.c::initialise_serial_game_",
            " call userdr.c::setup_apache_drone_",
            " call model.c::initialise_flight_model_",
            "@@ -40,7 +65,7 @@",
            " mov eax,m4[None+None*1+gamedata.c::_game_video_card]",
            " call initgfx.c::initialise_graphics_library_",
            " test eax,eax",
            "-je local:72",
            "+je local:100",
            " mov eax,m4[None+None*1+gamedata.c::_work_screen]",
            " call screen.c::set_active_screen_",
            " xor eax,eax",
            "@@ -51,28 +76,31 @@",
            " call ihadss.c::initialise_ihadss_display_",
            " call 3dpal.c::initialise_3d_palette_",
            " mov eax,links.c::general_wait_sync_",
            "-call fx3dmain.c::shoe_horn_user_routine_into_3d_visual_",
            "+call 3dmain.c::shoe_horn_user_routine_into_3d_visual_",
            " call bill.c::initialise_bill_",
            "+add esp,0x300",
            " pop edx",
            "+pop ecx",
            "+pop ebx",
            " ret ",
            " push 0x1a",
            " push text:'\\\\apache\\\\source\\\\initgame.c'",
            " push text:'Mission Outstanding count MUST be more than Success count, otherwise OUTSTANDING is automatic'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-jmp local:4",
            "+jmp local:7",
            " mov edx,0xf0",
            " mov eax,0x140",
            "-jmp local:11",
            "+jmp local:36",
            " push 0x44",
            " push text:'\\\\apache\\\\source\\\\initgame.c'",
            " push text:'Unknown Game Video Mode'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-jmp local:13",
            "+jmp local:38",
            " push 0x95",
            " push text:'\\\\apache\\\\source\\\\initgame.c'",
            " push text:'Graphics mode not available.'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-jmp local:43",
            "+jmp local:68"
          ]
        },
        {
          "symbol": "initpref.c::process_preferences_",
          "source": "E:\\apache\\source\\initpref.c",
          "first": "0x403a60",
          "second": "0x403b00",
          "first_instruction_count": 247,
          "second_instruction_count": 247,
          "diff": [
            "--- 0x403a60",
            "+++ 0x403b00",
            "@@ -1,7 +1,6 @@",
            " push ebx",
            " push ecx",
            " push edx",
            "-push ebp",
            " sub esp,0x4",
            " mov edx,0x3f",
            " mov ecx,0x1",
            "@@ -15,232 +14,233 @@",
            " mov m4[None+None*1+sndsetup.c::_sound_irq],ebx",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-jne local:236",
            "-mov eax,0x3e9",
            "-mov ebp,0x1",
            "-mov edx,esp",
            "+jne local:237",
            "+mov edx,esp",
            "+mov eax,text:'Visual Detail'",
            "+call prefs.c::get_preferences_int_",
            "+test eax,eax",
            "+je local:23",
            "+mov eax,m4[esp+None*1+0x0]",
            " call prefscrn.c::set_generic_game_detail_",
            "+mov edx,esp",
            " mov eax,text:'Visual Resolution'",
            "-mov m4[None+None*1+gamedata.c::_game_video_mode],ebp",
            "-call prefs.c::get_preferences_int_",
            "-test eax,eax",
            "-je local:29",
            "+call prefs.c::get_preferences_int_",
            "+test eax,eax",
            "+je local:31",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+gamedata.c::_game_video_mode],eax",
            " mov edx,esp",
            " mov eax,text:'Model ID'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:36",
            "+je local:38",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+model.c::_model_id],eax",
            " mov edx,esp",
            " mov eax,text:'Forces Type'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:43",
            "+je local:45",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+forces.c::_forces_type],eax",
            " mov edx,esp",
            " mov eax,text:'Mission Planner'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:50",
            "+je local:52",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+brief.c::_mission_planner_enabled],eax",
            " mov edx,esp",
            " mov eax,text:'Animations'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:57",
            "+je local:59",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+prefscrn.c::_animations_enabled],eax",
            " mov edx,esp",
            " mov eax,text:'Sound Speech'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:64",
            "+je local:66",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+prefscrn.c::_sound_speech_enabled],eax",
            " mov edx,esp",
            " mov eax,text:'Sound Music'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:71",
            "+je local:73",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+prefscrn.c::_sound_music_enabled],eax",
            " mov edx,esp",
            " mov eax,text:'Sound effects'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:78",
            "+je local:80",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+prefscrn.c::_sound_effects_enabled],eax",
            " mov edx,esp",
            " mov eax,text:'Sound effects level'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:85",
            "+je local:87",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+prefscrn.c::_sound_effects_minimal],eax",
            " mov edx,esp",
            " mov eax,text:'Sound Volume'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:92",
            "+je local:94",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+sound.c::_sound_master_volume],eax",
            " mov edx,esp",
            " mov eax,text:'Sound Card'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:99",
            "+je local:101",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+sndsetup.c::_sound_card_type],eax",
            " mov edx,esp",
            " mov eax,text:'Sound Address'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:106",
            "+je local:108",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+sndsetup.c::_sound_address],eax",
            " mov edx,esp",
            " mov eax,text:'Sound IRQ'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:113",
            "+je local:115",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+sndsetup.c::_sound_irq],eax",
            " mov edx,esp",
            " mov eax,text:'Sound DMA'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:120",
            "+je local:122",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+sndsetup.c::_sound_dma],eax",
            " mov edx,esp",
            " mov eax,text:'Collective control'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:127",
            "+je local:129",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+prefscrn.c::_collective_control],eax",
            " mov edx,esp",
            " mov eax,text:'Cyclic control'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:134",
            "+je local:136",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+prefscrn.c::_cyclic_control],eax",
            " mov edx,esp",
            " mov eax,text:'Tailrotor control'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:141",
            "+je local:143",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+prefscrn.c::_tailrotor_control],eax",
            " mov edx,esp",
            " mov eax,text:'Control Deadband Size'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:148",
            "+je local:150",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+control.c::_control_deadband_size],eax",
            " mov edx,esp",
            " mov eax,text:'Joystick Ax Min'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:155",
            "+je local:157",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+joystick.asm::_joy_minax],eax",
            " mov edx,esp",
            " mov eax,text:'Joystick Ax Mid'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:162",
            "+je local:164",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+joystick.asm::_joy_midax],eax",
            " mov edx,esp",
            " mov eax,text:'Joystick Ax Max'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:169",
            "+je local:171",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+joystick.asm::_joy_maxax],eax",
            " mov edx,esp",
            " mov eax,text:'Joystick Ay Min'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:176",
            "+je local:178",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+joystick.asm::_joy_minay],eax",
            " mov edx,esp",
            " mov eax,text:'Joystick Ay Mid'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:183",
            "+je local:185",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+joystick.asm::_joy_miday],eax",
            " mov edx,esp",
            " mov eax,text:'Joystick Ay Max'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:190",
            "+je local:192",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+joystick.asm::_joy_maxay],eax",
            " mov edx,esp",
            " mov eax,text:'Joystick Bx Min'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:197",
            "+je local:199",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+joystick.asm::_joy_minbx],eax",
            " mov edx,esp",
            " mov eax,text:'Joystick Bx Mid'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:204",
            "+je local:206",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+joystick.asm::_joy_midbx],eax",
            " mov edx,esp",
            " mov eax,text:'Joystick Bx Max'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:211",
            "+je local:213",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+joystick.asm::_joy_maxbx],eax",
            " mov edx,esp",
            " mov eax,text:'Joystick By Min'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:218",
            "+je local:220",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+joystick.asm::_joy_minby],eax",
            " mov edx,esp",
            " mov eax,text:'Joystick By Mid'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-je local:225",
            "+je local:227",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+joystick.asm::_joy_midby],eax",
            " mov edx,esp",
            " mov eax,text:'Joystick By Max'",
            " call prefs.c::get_preferences_int_",
            " test eax,eax",
            "-jne local:239",
            "+jne local:240",
            " add esp,0x4",
            "-pop ebp",
            " pop edx",
            " pop ecx",
            " pop ebx",
            " ret ",
            " mov eax,m4[esp+None*1+0x0]",
            " call runs.c::set_quick_start_game_runs_",
            "-jmp local:18",
            "+jmp local:17",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+joystick.asm::_joy_maxby],eax",
            " add esp,0x4",
            "-pop ebp",
            " pop edx",
            " pop ecx",
            " pop ebx"
          ]
        },
        {
          "symbol": "initrad.c::register_radar_keys_",
          "source": "E:\\apache\\source\\radar\\initrad.c",
          "first": "0x440fb0",
          "second": "0x441330",
          "first_instruction_count": 46,
          "second_instruction_count": 46,
          "diff": [
            "--- 0x440fb0",
            "+++ 0x441330",
            "@@ -32,7 +32,7 @@",
            " call key.c::register_key_",
            " mov edx,tgtlist.c::cycle_filter_upwards_",
            " mov eax,0x4032",
            "-mov ebx,0x5b3c68",
            "+mov ebx,0x5a6c78",
            " call key.c::register_key_",
            " mov edx,0x2",
            " mov eax,text:'Current Priority'"
          ]
        },
        {
          "symbol": "initrad.c::set_radar_",
          "source": "E:\\apache\\source\\radar\\initrad.c",
          "first": "0x44134c",
          "second": "0x4416cc",
          "first_instruction_count": 33,
          "second_instruction_count": 33,
          "diff": [
            "--- 0x44134c",
            "+++ 0x4416cc",
            "@@ -1,6 +1,6 @@",
            " push edx",
            " push edi",
            "-test m1[None+None*1+0x6748c5],0x2",
            "+test m1[None+None*1+0x6678d5],0x2",
            " jne local:9",
            " test eax,eax",
            " jne local:20"
          ]
        },
        {
          "symbol": "inittads.c::initialise_tads_",
          "source": "E:\\apache\\source\\avionics\\inittads.c",
          "first": "0x45bff0",
          "second": "0x45c1a0",
          "first_instruction_count": 7,
          "second_instruction_count": 7,
          "diff": [
            "--- 0x45bff0",
            "+++ 0x45c1a0",
            "@@ -2,6 +2,6 @@",
            " xor edx,edx",
            " mov m4[None+None*1+tads.c::_tads_target_symbol_valid],edx",
            " mov m4[None+None*1+tads.c::_tads_active],edx",
            "-mov m4[None+None*1+0x674a44],edx",
            "+mov m4[None+None*1+0x667a54],edx",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "ipx.c::ipx_broadcast_packet_",
          "source": "E:\\library\\network\\ipx.c",
          "first": "0x4776c4",
          "second": "0x475864",
          "first_instruction_count": 32,
          "second_instruction_count": 32,
          "diff": [
            "--- 0x4776c4",
            "+++ 0x475864",
            "@@ -2,17 +2,17 @@",
            " push ecx",
            " mov ecx,eax",
            " xor ah,ah",
            "-mov m1[None+None*1+0x7437d4],ah",
            "-mov m1[None+None*1+0x7437d5],ah",
            "-mov m1[None+None*1+0x7437d6],ah",
            "-mov m1[None+None*1+0x7437d7],ah",
            "+mov m1[None+None*1+0x72e2a4],ah",
            "+mov m1[None+None*1+0x72e2a5],ah",
            "+mov m1[None+None*1+0x72e2a6],ah",
            "+mov m1[None+None*1+0x72e2a7],ah",
            " mov ah,0xff",
            "-mov m1[None+None*1+0x7437d8],ah",
            "-mov m1[None+None*1+0x7437d9],ah",
            "-mov m1[None+None*1+0x7437da],ah",
            "-mov m1[None+None*1+0x7437db],ah",
            "-mov m1[None+None*1+0x7437dc],ah",
            "-mov m1[None+None*1+0x7437dd],ah",
            "+mov m1[None+None*1+0x72e2a8],ah",
            "+mov m1[None+None*1+0x72e2a9],ah",
            "+mov m1[None+None*1+0x72e2aa],ah",
            "+mov m1[None+None*1+0x72e2ab],ah",
            "+mov m1[None+None*1+0x72e2ac],ah",
            "+mov m1[None+None*1+0x72e2ad],ah",
            " xor eax,eax",
            " mov ebx,0x6",
            " mov ax,m2[None+None*1+ipx.c::_win_socket]",
            "@@ -25,7 +25,7 @@",
            " push ecx",
            " mov edx,m4[None+None*1+ipx.c::_send_socket]",
            " push edx",
            "-mov m2[None+None*1+0x7437de],ax",
            "+mov m2[None+None*1+0x72e2ae],ax",
            " call LINKER MODULE::_sendto@24",
            " pop ecx",
            " pop ebx"
          ]
        },
        {
          "symbol": "ipx.c::ipx_check_status_",
          "source": "E:\\library\\network\\ipx.c",
          "first": "0x477740",
          "second": "0x4758e0",
          "first_instruction_count": 98,
          "second_instruction_count": 98,
          "diff": [
            "--- 0x477740",
            "+++ 0x4758e0",
            "@@ -17,7 +17,7 @@",
            " je local:55",
            " mov ecx,0x4",
            " mov edi,ipx.c::_win_ipx_address",
            "-mov esi,0x7437d4",
            "+mov esi,0x72e2a4",
            " xor eax,eax",
            " repe cmpsb m1[esi+None*1+0x0],m1[edi+None*1+0x0]",
            " je local:25",
            "@@ -27,7 +27,7 @@",
            " jne local:44",
            " mov ecx,0xa",
            " mov edi,ipx.c::_win_ipx_address",
            "-mov esi,0x7437d4",
            "+mov esi,0x72e2a4",
            " xor eax,eax",
            " repe cmpsb m1[esi+None*1+0x0],m1[edi+None*1+0x0]",
            " je local:35",
            "@@ -35,9 +35,9 @@",
            " sbb eax,0xffffffff",
            " test eax,eax",
            " jne local:39",
            "-mov eax,0x7437d4",
            "+mov eax,0x72e2a4",
            " call net.c::register_self_",
            "-mov eax,0x7437d4",
            "+mov eax,0x72e2a4",
            " mov ebx,0x222",
            " mov edx,ipx.c::_win_ipx_receive_buffer",
            " call net.c::register_connection_",
            "@@ -54,7 +54,7 @@",
            " cmp eax,0xffffffff",
            " jne local:17",
            " xor ecx,ecx",
            "-mov ebx,m4[ecx+None*1+0x744618]",
            "+mov ebx,m4[ecx+None*1+0x72f0e8]",
            " test ebx,ebx",
            " je local:71",
            " mov eax,ebx",
            "@@ -62,11 +62,11 @@",
            " mov ebx,m4[ebx+None*1+0x230]",
            " mov eax,m4[eax+None*1+0x8]",
            " call ipx.c::ipx_send_packet_",
            "-mov eax,m4[ecx+None*1+0x744618]",
            "+mov eax,m4[ecx+None*1+0x72f0e8]",
            " test eax,eax",
            " je local:56",
            " mov edx,m4[eax+None*1+0x0]",
            "-mov m4[ecx+None*1+0x744618],edx",
            "+mov m4[ecx+None*1+0x72f0e8],edx",
            " call net.c::free_network_packet_",
            " jmp local:56",
            " add ecx,0x20"
          ]
        },
        {
          "symbol": "ipx.c::ipx_send_packet_",
          "source": "E:\\library\\network\\ipx.c",
          "first": "0x47762c",
          "second": "0x4757cc",
          "first_instruction_count": 38,
          "second_instruction_count": 38,
          "diff": [
            "--- 0x47762c",
            "+++ 0x4757cc",
            "@@ -3,27 +3,27 @@",
            " call net.c::get_connection_address_",
            " mov m2[None+None*1+ipx.c::_wsin],cx",
            " mov cl,m1[eax+None*1+0x0]",
            "-mov m1[None+None*1+0x7437d4],cl",
            "+mov m1[None+None*1+0x72e2a4],cl",
            " mov cl,m1[eax+None*1+0x1]",
            "-mov m1[None+None*1+0x7437d5],cl",
            "+mov m1[None+None*1+0x72e2a5],cl",
            " mov cl,m1[eax+None*1+0x2]",
            "-mov m1[None+None*1+0x7437d6],cl",
            "+mov m1[None+None*1+0x72e2a6],cl",
            " mov cl,m1[eax+None*1+0x3]",
            "-mov m1[None+None*1+0x7437d7],cl",
            "+mov m1[None+None*1+0x72e2a7],cl",
            " mov cl,m1[eax+None*1+0x4]",
            "-mov m1[None+None*1+0x7437d8],cl",
            "+mov m1[None+None*1+0x72e2a8],cl",
            " mov cl,m1[eax+None*1+0x5]",
            "-mov m1[None+None*1+0x7437d9],cl",
            "+mov m1[None+None*1+0x72e2a9],cl",
            " mov cl,m1[eax+None*1+0x6]",
            "-mov m1[None+None*1+0x7437da],cl",
            "+mov m1[None+None*1+0x72e2aa],cl",
            " mov cl,m1[eax+None*1+0x7]",
            "-mov m1[None+None*1+0x7437db],cl",
            "+mov m1[None+None*1+0x72e2ab],cl",
            " mov cl,m1[eax+None*1+0x8]",
            " mov al,m1[eax+None*1+0x9]",
            "-mov m1[None+None*1+0x7437dd],al",
            "+mov m1[None+None*1+0x72e2ad],al",
            " xor eax,eax",
            " mov ax,m2[None+None*1+ipx.c::_win_socket]",
            "-mov m1[None+None*1+0x7437dc],cl",
            "+mov m1[None+None*1+0x72e2ac],cl",
            " ror ax,0x8",
            " push 0xe",
            " push ipx.c::_wsin",
            "@@ -32,7 +32,7 @@",
            " push edx",
            " mov edx,m4[None+None*1+ipx.c::_send_socket]",
            " push edx",
            "-mov m2[None+None*1+0x7437de],ax",
            "+mov m2[None+None*1+0x72e2ae],ax",
            " call LINKER MODULE::_sendto@24",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "ipx.c::setup_sockets_",
          "source": "E:\\library\\network\\ipx.c",
          "first": "0x477880",
          "second": "0x475a20",
          "first_instruction_count": 202,
          "second_instruction_count": 202,
          "diff": [
            "--- 0x477880",
            "+++ 0x475a20",
            "@@ -125,16 +125,16 @@",
            " call LINKER MODULE::_setsockopt@20",
            " xor ah,ah",
            " mov edx,0x6",
            "-mov m1[None+None*1+0x7437d4],ah",
            "-mov m1[None+None*1+0x7437d5],ah",
            "-mov m1[None+None*1+0x7437d6],ah",
            "-mov m1[None+None*1+0x7437d7],ah",
            "-mov m1[None+None*1+0x7437d8],ah",
            "-mov m1[None+None*1+0x7437d9],ah",
            "-mov m1[None+None*1+0x7437da],ah",
            "-mov m1[None+None*1+0x7437db],ah",
            "-mov m1[None+None*1+0x7437dc],ah",
            "-mov m1[None+None*1+0x7437dd],ah",
            "+mov m1[None+None*1+0x72e2a4],ah",
            "+mov m1[None+None*1+0x72e2a5],ah",
            "+mov m1[None+None*1+0x72e2a6],ah",
            "+mov m1[None+None*1+0x72e2a7],ah",
            "+mov m1[None+None*1+0x72e2a8],ah",
            "+mov m1[None+None*1+0x72e2a9],ah",
            "+mov m1[None+None*1+0x72e2aa],ah",
            "+mov m1[None+None*1+0x72e2ab],ah",
            "+mov m1[None+None*1+0x72e2ac],ah",
            "+mov m1[None+None*1+0x72e2ad],ah",
            " mov eax,ebx",
            " mov m2[None+None*1+ipx.c::_wsin],dx",
            " ror ax,0x8",
            "@@ -142,7 +142,7 @@",
            " push ipx.c::_wsin",
            " mov edi,m4[None+None*1+ipx.c::_receive_socket]",
            " push edi",
            "-mov m2[None+None*1+0x7437de],ax",
            "+mov m2[None+None*1+0x72e2ae],ax",
            " call LINKER MODULE::_bind@12",
            " push 0xe",
            " push ipx.c::_wsin",
            "@@ -176,23 +176,23 @@",
            " mov al,m1[esp+None*1+0x4]",
            " mov m1[None+None*1+ipx.c::_win_ipx_address],al",
            " mov al,m1[esp+None*1+0x5]",
            "-mov m1[None+None*1+0x7437c9],al",
            "+mov m1[None+None*1+0x72e299],al",
            " mov al,m1[esp+None*1+0x6]",
            "-mov m1[None+None*1+0x7437ca],al",
            "+mov m1[None+None*1+0x72e29a],al",
            " mov al,m1[esp+None*1+0x7]",
            "-mov m1[None+None*1+0x7437cb],al",
            "+mov m1[None+None*1+0x72e29b],al",
            " mov al,m1[esp+None*1+0x8]",
            "-mov m1[None+None*1+0x7437cc],al",
            "+mov m1[None+None*1+0x72e29c],al",
            " mov al,m1[esp+None*1+0x9]",
            "-mov m1[None+None*1+0x7437cd],al",
            "+mov m1[None+None*1+0x72e29d],al",
            " mov al,m1[esp+None*1+0xa]",
            "-mov m1[None+None*1+0x7437ce],al",
            "+mov m1[None+None*1+0x72e29e],al",
            " mov al,m1[esp+None*1+0xb]",
            "-mov m1[None+None*1+0x7437cf],al",
            "+mov m1[None+None*1+0x72e29f],al",
            " mov al,m1[esp+None*1+0xc]",
            "-mov m1[None+None*1+0x7437d0],al",
            "+mov m1[None+None*1+0x72e2a0],al",
            " mov al,m1[esp+None*1+0xd]",
            "-mov m1[None+None*1+0x7437d1],al",
            "+mov m1[None+None*1+0x72e2a1],al",
            " add esp,0x24",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "isattwnt::isatty_",
          "source": "isattwnt",
          "first": "0x4cfa0a",
          "second": "0x4c2e7a",
          "first_instruction_count": 32,
          "second_instruction_count": 32,
          "diff": [
            "--- 0x4cfa0a",
            "+++ 0x4c2e7a",
            "@@ -20,7 +20,7 @@",
            " mov edx,ebx",
            " mov eax,m4[eax+edx*4+0x0]",
            " push eax",
            "-call m4[None+None*1+constant:3a4d0d00]",
            "+call m4[None+None*1+constant:187c0c00]",
            " cmp eax,0x2",
            " je local:11",
            " mov eax,ebx"
          ]
        },
        {
          "symbol": "joystick.c::reset_joystick_curve_table_",
          "source": "E:\\library\\system\\joystick.c",
          "first": "0x47c0e0",
          "second": "0x47a280",
          "first_instruction_count": 49,
          "second_instruction_count": 49,
          "diff": [
            "--- 0x47c0e0",
            "+++ 0x47a280",
            "@@ -33,10 +33,10 @@",
            " imul ebx,ecx",
            " add eax,0x4",
            " sub edx,0x4",
            "-mov m4[eax+None*1+0x74621c],ebx",
            "+mov m4[eax+None*1+0x730cec],ebx",
            " neg ebx",
            " add ecx,edi",
            "-mov m4[edx+None*1+0x746024],ebx",
            "+mov m4[edx+None*1+0x730af4],ebx",
            " cmp eax,esi",
            " jl local:31",
            " add esp,0x4"
          ]
        },
        {
          "symbol": "keyboard.c::clear_key_count_",
          "source": "E:\\library\\system\\keyboard.c",
          "first": "0x47c798",
          "second": "0x47a938",
          "first_instruction_count": 6,
          "second_instruction_count": 6,
          "diff": [
            "--- 0x47c798",
            "+++ 0x47a938",
            "@@ -1,6 +1,6 @@",
            " push edx",
            " and eax,0x7f",
            " xor edx,edx",
            "-mov m4[None+eax*4+0x7449c0],edx",
            "+mov m4[None+eax*4+0x72f490],edx",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "keyboard.c::get_key_count_",
          "source": "E:\\library\\system\\keyboard.c",
          "first": "0x47c78c",
          "second": "0x47a92c",
          "first_instruction_count": 3,
          "second_instruction_count": 3,
          "diff": [
            "--- 0x47c78c",
            "+++ 0x47a92c",
            "@@ -1,3 +1,3 @@",
            " and eax,0x7f",
            "-mov eax,m4[None+eax*4+0x7449c0]",
            "+mov eax,m4[None+eax*4+0x72f490]",
            " ret "
          ]
        },
        {
          "symbol": "keyboard.c::windows_key_int_",
          "source": "E:\\library\\system\\keyboard.c",
          "first": "0x47c87c",
          "second": "0x47aa1c",
          "first_instruction_count": 33,
          "second_instruction_count": 33,
          "diff": [
            "--- 0x47c87c",
            "+++ 0x47aa1c",
            "@@ -6,27 +6,27 @@",
            " test al,0x80",
            " jne keyboard.c::get_key_ascii_+0x42",
            " mov m1[edx+None*1+16bit.c::_db_16bit],0x1",
            "-cmp m1[None+None*1+0x74496a],0x0",
            "+cmp m1[None+None*1+0x72f43a],0x0",
            " je local:11",
            " or ah,0x40",
            "-cmp m1[None+None*1+0x744976],0x0",
            "+cmp m1[None+None*1+0x72f446],0x0",
            " je local:14",
            " or ah,0x40",
            "-cmp m1[None+None*1+0x74495d],0x0",
            "+cmp m1[None+None*1+0x72f42d],0x0",
            " je local:17",
            " or ah,0x20",
            "-cmp m1[None+None*1+0x744978],0x0",
            "+cmp m1[None+None*1+0x72f448],0x0",
            " je local:20",
            " or ah,0x10",
            " mov edx,0x1",
            "-mov m4[None+None*1+0x746454],eax",
            "+mov m4[None+None*1+0x730f24],eax",
            " xor ecx,ecx",
            "-mov eax,m4[None+None*1+0x744bc0]",
            "+mov eax,m4[None+None*1+0x72f690]",
            " mov m4[None+None*1+keyboard.c::_key_intr_ev],edx",
            "-mov m4[None+None*1+0x746458],ecx",
            "-mov m4[None+None*1+0x746460],eax",
            "+mov m4[None+None*1+0x730f28],ecx",
            "+mov m4[None+None*1+0x730f30],eax",
            " mov eax,keyboard.c::_key_intr_ev",
            "-mov m4[None+None*1+0x74645c],ecx",
            "+mov m4[None+None*1+0x730f2c],ecx",
            " call event.c::intr_post_event_",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "keys.c::initialise_keys_",
          "source": "E:\\apache\\source\\keys.c",
          "first": "0x403880",
          "second": "0x403920",
          "first_instruction_count": 11,
          "second_instruction_count": 11,
          "diff": [
            "--- 0x403880",
            "+++ 0x403920",
            "@@ -1,7 +1,7 @@",
            " call debug.c::register_debug_keys_",
            " call takeoff.c::register_help_keys_",
            " call pause.c::register_pause_keys_",
            "-call fxgloop.c::register_game_loop_keys_",
            "+call gameloop.c::register_game_loop_keys_",
            " call model.c::register_flight_model_keys_",
            " call views.c::register_view_mode_keys_",
            " call avionics.c::register_avionics_keys_"
          ]
        },
        {
          "symbol": "launch.c::add_a_flame_",
          "source": "E:\\apache\\source\\weapons\\launch.c",
          "first": "0x44bd8c",
          "second": "0x44c10c",
          "first_instruction_count": 53,
          "second_instruction_count": 53,
          "diff": [
            "--- 0x44bd8c",
            "+++ 0x44c10c",
            "@@ -8,8 +8,8 @@",
            " sub eax,esi",
            " shl eax,0x2",
            " add eax,esi",
            "-mov ecx,m4[None+eax*8+0x672aa8]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ecx,m4[None+eax*8+0x665ab8]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[eax+ecx*4+0x0]",
            " mov ecx,m4[edx+None*1+0x0]",
            " mov eax,m4[eax+None*1+0xb0]",
            "@@ -43,7 +43,7 @@",
            " add eax,edx",
            " lea ecx,m4[esp+None*1+0x4]",
            " mov edx,esi",
            "-mov eax,m4[None+eax*8+0x672aa8]",
            "+mov eax,m4[None+eax*8+0x665ab8]",
            " call 3dbuild.c::construct_3d_object_",
            " pop ebx",
            " add esp,0x4"
          ]
        },
        {
          "symbol": "launch.c::construct_balistic_weapon_into_",
          "source": "E:\\apache\\source\\weapons\\launch.c",
          "first": "0x44b924",
          "second": "0x44bca4",
          "first_instruction_count": 281,
          "second_instruction_count": 281,
          "diff": [
            "--- 0x44b924",
            "+++ 0x44bca4",
            "@@ -34,7 +34,7 @@",
            " jne local:216",
            " cmp m4[eax+None*1+winfo.c::_weapons_data],0x3",
            " jne local:208",
            "-mov eax,m4[eax+None*1+0x672ab8]",
            "+mov eax,m4[eax+None*1+0x665ac8]",
            " lea ebx,m4[eax+eax*1+0x0]",
            " call weapons.c::get_weapon_random_",
            " mov edx,eax",
            "@@ -49,7 +49,7 @@",
            " shl eax,0x3",
            " cmp m4[eax+None*1+winfo.c::_weapons_data],0x3",
            " jne local:210",
            "-mov eax,m4[eax+None*1+0x672ab8]",
            "+mov eax,m4[eax+None*1+0x665ac8]",
            " mov edx,m4[esp+None*1+0x40]",
            " sub ebx,eax",
            " lea eax,m4[None+edx*4+0x0]",
            "@@ -60,7 +60,7 @@",
            " mov m4[esp+None*1+0x8],ebx",
            " cmp m4[eax+None*1+winfo.c::_weapons_data],0x3",
            " jne local:212",
            "-mov eax,m4[eax+None*1+0x672ab8]",
            "+mov eax,m4[eax+None*1+0x665ac8]",
            " lea ebx,m4[eax+eax*1+0x0]",
            " call weapons.c::get_weapon_random_",
            " mov edx,eax",
            "@@ -75,7 +75,7 @@",
            " shl eax,0x3",
            " cmp m4[eax+None*1+winfo.c::_weapons_data],0x3",
            " jne local:214",
            "-mov eax,m4[eax+None*1+0x672ab8]",
            "+mov eax,m4[eax+None*1+0x665ac8]",
            " sub esi,eax",
            " mov edx,esi",
            " mov eax,esi",
            "@@ -95,13 +95,13 @@",
            " mov edx,eax",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov esi,eax",
            " mov eax,edx",
            " xor ebx,ebx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ecx,esi",
            " mov edi,eax",
            " mov edx,eax",
            "@@ -157,7 +157,7 @@",
            " mov m4[ebp+None*1+0x64],eax",
            " mov edx,m4[ebp+None*1+0xb8]",
            " mov eax,m4[ebp+None*1+0xb4]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " lea edx,m4[esp+None*1+0x2c]",
            " mov m4[ebp+None*1+0xbc],eax",
            " mov eax,m4[esp+None*1+0x38]",
            "@@ -187,7 +187,7 @@",
            " lea edx,m4[esi+eax*1+0x0]",
            " shl ebx,0x3",
            " shl edx,0x3",
            "-mov edi,m4[ebx+None*1+0x672aa0]",
            "+mov edi,m4[ebx+None*1+0x665ab0]",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv edi",
            "@@ -216,7 +216,7 @@",
            " jmp local:78",
            " cmp m4[eax+None*1+winfo.c::_weapons_data],0x3",
            " jne local:263",
            "-mov eax,m4[eax+None*1+0x672ab8]",
            "+mov eax,m4[eax+None*1+0x665ac8]",
            " lea ebx,m4[eax+eax*1+0x0]",
            " call weapons.c::get_weapon_random_",
            " mov edx,eax",
            "@@ -231,7 +231,7 @@",
            " shl eax,0x3",
            " cmp m4[eax+None*1+winfo.c::_weapons_data],0x3",
            " jne local:265",
            "-mov eax,m4[eax+None*1+0x672ab8]",
            "+mov eax,m4[eax+None*1+0x665ac8]",
            " mov edx,m4[esp+None*1+0x40]",
            " sub esi,eax",
            " lea eax,m4[None+edx*4+0x0]",
            "@@ -242,7 +242,7 @@",
            " mov m4[esp+None*1+0x14],esi",
            " cmp m4[eax+None*1+winfo.c::_weapons_data],0x3",
            " jne local:267",
            "-mov eax,m4[eax+None*1+0x672ab8]",
            "+mov eax,m4[eax+None*1+0x665ac8]",
            " lea ebx,m4[eax+eax*1+0x0]",
            " call weapons.c::get_weapon_random_",
            " mov edx,eax",
            "@@ -257,7 +257,7 @@",
            " shl eax,0x3",
            " cmp m4[eax+None*1+winfo.c::_weapons_data],0x3",
            " jne local:269",
            "-mov eax,m4[eax+None*1+0x672ab8]",
            "+mov eax,m4[eax+None*1+0x665ac8]",
            " sub esi,eax",
            " mov m4[esp+None*1+0x18],esi",
            " jmp local:135"
          ]
        },
        {
          "symbol": "launch.c::initialise_visible_weapon_",
          "source": "E:\\apache\\source\\weapons\\launch.c",
          "first": "0x44b5c8",
          "second": "0x44b948",
          "first_instruction_count": 139,
          "second_instruction_count": 139,
          "diff": [
            "--- 0x44b5c8",
            "+++ 0x44b948",
            "@@ -20,7 +20,7 @@",
            " add eax,edx",
            " mov ebx,edi",
            " mov edx,m4[esp+None*1+0x4]",
            "-mov eax,m4[None+eax*8+0x672aa8]",
            "+mov eax,m4[None+eax*8+0x665ab8]",
            " call 3dbuild.c::construct_3d_object_",
            " mov m4[ebp+None*1+0x50],0x2",
            " mov ah,m1[ebp+None*1+0x58]",
            "@@ -36,7 +36,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov eax,m4[None+eax*8+0x672aa4]",
            "+mov eax,m4[None+eax*8+0x665ab4]",
            " add eax,ecx",
            " cmp eax,0x100",
            " jge local:121"
          ]
        },
        {
          "symbol": "launch.c::initialise_weapon_round_",
          "source": "E:\\apache\\source\\weapons\\launch.c",
          "first": "0x44b54c",
          "second": "0x44b8cc",
          "first_instruction_count": 34,
          "second_instruction_count": 34,
          "diff": [
            "--- 0x44b54c",
            "+++ 0x44b8cc",
            "@@ -24,7 +24,7 @@",
            " shl eax,0x2",
            " add eax,edx",
            " mov m4[ecx+None*1+0x10],ebx",
            "-cmp m4[None+eax*8+0x672a70],0x0",
            "+cmp m4[None+eax*8+0x665a80],0x0",
            " jne local:31",
            " and m1[ecx+None*1+0x14],0xfd",
            " pop ecx"
          ]
        },
        {
          "symbol": "line.asm::_draw_line",
          "source": "\\library\\graphics\\line.asm",
          "first": "0x4c2780",
          "second": "0x4b61d0",
          "first_instruction_count": 138,
          "second_instruction_count": 138,
          "diff": [
            "--- 0x4c2780",
            "+++ 0x4b61d0",
            "@@ -13,7 +13,7 @@",
            " or ebp,0x1",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            "-jmp m4[None+ebp*4+constant:d0274c00]",
            "+jmp m4[None+ebp*4+constant:20624b00]",
            " mov ecx,edx",
            " inc ecx",
            " mov ebx,edx"
          ]
        },
        {
          "symbol": "links.c::general_initialise_connection_",
          "source": "E:\\apache\\source\\apnet\\links.c",
          "first": "0x435504",
          "second": "0x435884",
          "first_instruction_count": 236,
          "second_instruction_count": 236,
          "diff": [
            "--- 0x435504",
            "+++ 0x435884",
            "@@ -142,13 +142,13 @@",
            " mov m4[None+None*1+weather.c::_wind_direction],eax",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov edx,ebp",
            "-mov eax,m4[None+None*1+0x51881c]",
            "+mov eax,m4[None+None*1+0x50b82c]",
            " mov m4[None+None*1+daytime.c::_mission_time_of_day],ebx",
            " sub edx,eax",
            " mov eax,m4[None+None*1+network.c::_current_preferences]",
            " mov m4[None+None*1+forces.c::_forces_type],esi",
            " mov m4[None+None*1+model_a.c::_infinite_fuel],eax",
            "-mov eax,m4[None+None*1+0x518814]",
            "+mov eax,m4[None+None*1+0x50b824]",
            " mov m4[None+None*1+gamedata.c::_no_crashes],edx",
            " mov m4[None+None*1+apweapon.c::_infinite_weapons],eax",
            " call netevent.c::initialise_two_player_key_events_"
          ]
        },
        {
          "symbol": "links.c::general_restart_user_drone_",
          "source": "E:\\apache\\source\\apnet\\links.c",
          "first": "0x435c98",
          "second": "0x436018",
          "first_instruction_count": 78,
          "second_instruction_count": 78,
          "diff": [
            "--- 0x435c98",
            "+++ 0x436018",
            "@@ -62,7 +62,7 @@",
            " mov ecx,m4[eax+None*1+0x10]",
            " mov edx,esi",
            " mov eax,ecx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov ebx,eax",
            " mov eax,m4[None+None*1+drone.c::_user_drone]",
            " mov edx,esi"
          ]
        },
        {
          "symbol": "links.c::initialise_multi_player_data_",
          "source": "E:\\apache\\source\\apnet\\links.c",
          "first": "0x435460",
          "second": "0x4357e0",
          "first_instruction_count": 28,
          "second_instruction_count": 28,
          "diff": [
            "--- 0x435460",
            "+++ 0x4357e0",
            "@@ -6,18 +6,18 @@",
            " xor edx,edx",
            " add ecx,0x8",
            " imul eax,edx,0x1b8",
            "-mov bl,m1[eax+None*1+0x5a15e1]",
            "+mov bl,m1[eax+None*1+0x5945f1]",
            " push text:'Connecting ....'",
            " or bl,0xff",
            " push ecx",
            "-mov m1[eax+None*1+0x5a15e1],bl",
            "+mov m1[eax+None*1+0x5945f1],bl",
            " call sprintf::sprintf_",
            " imul eax,m4[None+None*1+apnet.c::_my_connection_number],0x1b8",
            " xor esi,esi",
            " add ecx,0x1b8",
            " inc edx",
            " add esp,0x8",
            "-mov m4[eax+None*1+0x5a1484],esi",
            "+mov m4[eax+None*1+0x594494],esi",
            " cmp edx,0x10",
            " jl local:7",
            " mov m4[None+None*1+links.c::_last_start_position],esi"
          ]
        },
        {
          "symbol": "log.c::get_log_long_name_",
          "source": "E:\\apache\\source\\menus\\logs\\log.c",
          "first": "0x416154",
          "second": "0x4164d4",
          "first_instruction_count": 69,
          "second_instruction_count": 69,
          "diff": [
            "--- 0x416154",
            "+++ 0x4164d4",
            "@@ -3,7 +3,7 @@",
            " push edi",
            " mov edx,eax",
            " mov esi,m4[eax+None*1+0x8]",
            "-mov edi,0x52a560",
            "+mov edi,0x51d570",
            " mov esi,m4[None+esi*4+log.c::_log_rank_strings]",
            " push edi",
            " mov al,m1[esi+None*1+0x0]",
            "@@ -19,7 +19,7 @@",
            " pop edi",
            " cmp m4[edx+None*1+0x4],0x0",
            " jne local:26",
            "-mov eax,0x52a560",
            "+mov eax,0x51d570",
            " pop edi",
            " pop esi",
            " pop edx",
            "@@ -62,7 +62,7 @@",
            " jne local:52",
            " pop edi",
            " pop ecx",
            "-mov eax,0x52a560",
            "+mov eax,0x51d570",
            " pop edi",
            " pop esi",
            " pop edx"
          ]
        },
        {
          "symbol": "log.c::restore_campaign_data_",
          "source": "E:\\apache\\source\\menus\\logs\\log.c",
          "first": "0x416914",
          "second": "0x416c94",
          "first_instruction_count": 37,
          "second_instruction_count": 37,
          "diff": [
            "--- 0x416914",
            "+++ 0x416c94",
            "@@ -31,7 +31,7 @@",
            " mov eax,esi",
            " call log.c::add_log_current_campaign_mission_",
            " mov eax,esi",
            "-mov ebx,m4[ecx+None*1+0x52a2b4]",
            "+mov ebx,m4[ecx+None*1+0x51d2c4]",
            " mov edx,m4[ecx+None*1+log.c::_saved_campaign_missions]",
            " call log.c::set_log_current_campaign_mission_state_",
            " jmp local:18"
          ]
        },
        {
          "symbol": "log.c::save_campaign_data_",
          "source": "E:\\apache\\source\\menus\\logs\\log.c",
          "first": "0x41688c",
          "second": "0x416c0c",
          "first_instruction_count": 42,
          "second_instruction_count": 42,
          "diff": [
            "--- 0x41688c",
            "+++ 0x416c0c",
            "@@ -32,7 +32,7 @@",
            " mov ecx,m4[eax+None*1+0x81c]",
            " add edx,0x8",
            " mov ecx,m4[ecx+None*1+0x4]",
            "-mov m4[edx+None*1+0x52a2ac],ecx",
            "+mov m4[edx+None*1+0x51d2bc],ecx",
            " add eax,0x4",
            " cmp eax,ebx",
            " jne local:19"
          ]
        },
        {
          "symbol": "log.c::set_current_log_",
          "source": "E:\\apache\\source\\menus\\logs\\log.c",
          "first": "0x41681c",
          "second": "0x416b9c",
          "first_instruction_count": 41,
          "second_instruction_count": 41,
          "diff": [
            "--- 0x41681c",
            "+++ 0x416b9c",
            "@@ -22,7 +22,7 @@",
            " call _strcmp::strcmp_",
            " test eax,eax",
            " je local:39",
            "-mov ebp,m4[ecx+None*1+constant:ac9c4d00]",
            "+mov ebp,m4[ecx+None*1+constant:90cd4c00]",
            " add ecx,0x8",
            " inc ebx",
            " test ebp,ebp"
          ]
        },
        {
          "symbol": "logscrn.c::initialise_log_screen_",
          "source": "E:\\apache\\source\\menus\\logs\\logscrn.c",
          "first": "0x416a20",
          "second": "0x416da0",
          "first_instruction_count": 492,
          "second_instruction_count": 492,
          "diff": [
            "--- 0x416a20",
            "+++ 0x416da0",
            "@@ -136,7 +136,7 @@",
            " call object.c::create_object_",
            " mov edx,ebx",
            " add esp,0x50",
            "-mov m4[edi+None*1+0x52b2cc],eax",
            "+mov m4[edi+None*1+0x51eedc],eax",
            " cmp ecx,0x10e",
            " jl local:147",
            " add esi,0x12",
            "@@ -470,23 +470,23 @@",
            " call loadgfx.c::load_graphics_",
            " mov edx,0x27",
            " mov eax,m4[None+None*1+logscrn.c::_log_medals_area]",
            "-mov m4[None+None*1+0x52bf14],ebp",
            "-mov m4[None+None*1+0x52bf18],ebp",
            "+mov m4[None+None*1+0x51ef40],ebp",
            "+mov m4[None+None*1+0x51ef44],ebp",
            " mov m4[None+None*1+logscrn.c::_medal_cross],esi",
            "-mov m4[None+None*1+0x52befc],edi",
            "-mov m4[None+None*1+0x52bf00],ebp",
            "-mov m4[None+None*1+0x52bf04],ebp",
            "+mov m4[None+None*1+0x51ef14],edi",
            "+mov m4[None+None*1+0x51ef18],ebp",
            "+mov m4[None+None*1+0x51ef1c],ebp",
            " mov m4[None+None*1+logscrn.c::_medal_bstar],esi",
            "-mov m4[None+None*1+0x52bf24],edi",
            "-mov m4[None+None*1+0x52bf1c],eax",
            "+mov m4[None+None*1+0x51ef50],edi",
            "+mov m4[None+None*1+0x51ef48],eax",
            " mov eax,0x20",
            "-mov m4[None+None*1+0x52bf28],ebp",
            "+mov m4[None+None*1+0x51ef54],ebp",
            " mov m4[None+None*1+logscrn.c::_medal_honor],eax",
            " mov eax,m4[None+None*1+logscrn.c::_log_medals_area]",
            "-mov m4[None+None*1+0x52bf10],edx",
            "+mov m4[None+None*1+0x51ef3c],edx",
            " lea edx,m4[eax+None*1+0x780]",
            "-mov m4[None+None*1+0x52bf2c],ebp",
            "+mov m4[None+None*1+0x51ef58],ebp",
            " add eax,0xf00",
            "-mov m4[None+None*1+0x52bf08],edx",
            "-mov m4[None+None*1+0x52bf30],eax",
            "+mov m4[None+None*1+0x51ef20],edx",
            "+mov m4[None+None*1+0x51ef5c],eax",
            " jmp local:381"
          ]
        },
        {
          "symbol": "los.c::terrain_los_clear_",
          "source": "E:\\library\\3dvisual\\los.c",
          "first": "0x4968d0",
          "second": "0x492dd0",
          "first_instruction_count": 62,
          "second_instruction_count": 62,
          "diff": [
            "--- 0x4968d0",
            "+++ 0x492dd0",
            "@@ -4,7 +4,7 @@",
            " push ebp",
            " sub esp,0xc",
            " mov m4[esp+None*1+0x8],ebx",
            "-mov ebx,m4[None+None*1+fxterr.c::_max_terrain_elevation]",
            "+mov ebx,m4[None+None*1+terrain.c::_max_terrain_elevation]",
            " cmp ebx,m4[edx+None*1+0x8]",
            " jge local:11",
            " cmp ebx,m4[eax+None*1+0x8]",
            "@@ -34,7 +34,7 @@",
            " jle local:48",
            " mov edx,ebx",
            " mov eax,ecx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " cmp eax,edi",
            " jg local:55",
            " mov edx,m4[esp+None*1+0x4]"
          ]
        },
        {
          "symbol": "los.c::terrain_los_clear_position_",
          "source": "E:\\library\\3dvisual\\los.c",
          "first": "0x496a44",
          "second": "0x492f44",
          "first_instruction_count": 72,
          "second_instruction_count": 72,
          "diff": [
            "--- 0x496a44",
            "+++ 0x492f44",
            "@@ -4,7 +4,7 @@",
            " sub esp,0x1c",
            " mov m4[esp+None*1+0x0],ebx",
            " mov m4[esp+None*1+0x18],ecx",
            "-mov ebx,m4[None+None*1+fxterr.c::_max_terrain_elevation]",
            "+mov ebx,m4[None+None*1+terrain.c::_max_terrain_elevation]",
            " cmp ebx,m4[edx+None*1+0x8]",
            " jge local:11",
            " cmp ebx,m4[eax+None*1+0x8]",
            "@@ -35,7 +35,7 @@",
            " jle local:53",
            " mov edx,ebx",
            " mov eax,ecx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " cmp eax,esi",
            " jg local:59",
            " mov edx,m4[esp+None*1+0x8]"
          ]
        },
        {
          "symbol": "los.c::terrain_weighted_los_clear_",
          "source": "E:\\library\\3dvisual\\los.c",
          "first": "0x496964",
          "second": "0x492e64",
          "first_instruction_count": 90,
          "second_instruction_count": 90,
          "diff": [
            "--- 0x496964",
            "+++ 0x492e64",
            "@@ -3,7 +3,7 @@",
            " push edi",
            " push ebp",
            " sub esp,0x18",
            "-mov esi,m4[None+None*1+fxterr.c::_max_terrain_elevation]",
            "+mov esi,m4[None+None*1+terrain.c::_max_terrain_elevation]",
            " cmp esi,m4[edx+None*1+0x8]",
            " jge local:10",
            " cmp esi,m4[eax+None*1+0x8]",
            "@@ -45,7 +45,7 @@",
            " jle local:59",
            " mov edx,ebx",
            " mov eax,ecx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " cmp eax,esi",
            " jg local:83",
            " mov eax,m4[esp+None*1+0x8]",
            "@@ -62,7 +62,7 @@",
            " jle local:76",
            " mov edx,ebx",
            " mov eax,ecx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " cmp eax,esi",
            " jg local:83",
            " mov edx,m4[esp+None*1+0xc]"
          ]
        },
        {
          "symbol": "los.c::terrain_weighted_los_clear_position_",
          "source": "E:\\library\\3dvisual\\los.c",
          "first": "0x496b04",
          "second": "0x493004",
          "first_instruction_count": 100,
          "second_instruction_count": 100,
          "diff": [
            "--- 0x496b04",
            "+++ 0x493004",
            "@@ -5,7 +5,7 @@",
            " mov esi,eax",
            " mov m4[esp+None*1+0x0],ebx",
            " mov eax,ecx",
            "-mov ebx,m4[None+None*1+fxterr.c::_max_terrain_elevation]",
            "+mov ebx,m4[None+None*1+terrain.c::_max_terrain_elevation]",
            " cmp ebx,m4[edx+None*1+0x8]",
            " jge local:12",
            " cmp ebx,m4[esi+None*1+0x8]",
            "@@ -47,7 +47,7 @@",
            " jle local:64",
            " mov edx,ebx",
            " mov eax,ecx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " cmp eax,esi",
            " jg local:87",
            " mov eax,m4[esp+None*1+0x4]",
            "@@ -67,7 +67,7 @@",
            " jle local:81",
            " mov edx,ebx",
            " mov eax,ecx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " cmp eax,esi",
            " jg local:87",
            " mov edx,m4[esp+None*1+0x14]"
          ]
        },
        {
          "symbol": "lseekwnt::lseek_",
          "source": "lseekwnt",
          "first": "0x4cd03d",
          "second": "0x4c045c",
          "first_instruction_count": 43,
          "second_instruction_count": 43,
          "diff": [
            "--- 0x4cd03d",
            "+++ 0x4c045c",
            "@@ -30,7 +30,7 @@",
            " push ecx",
            " mov eax,m4[eax+edx*4+0x0]",
            " push eax",
            "-call m4[None+None*1+constant:904f0d00]",
            "+call m4[None+None*1+constant:7e7e0c00]",
            " mov ecx,eax",
            " mov eax,esi",
            " call m4[None+None*1+mainwnt::__ReleaseFileH]"
          ]
        },
        {
          "symbol": "magnify.c::calculate_magnified_viewpoint_",
          "source": "E:\\apache\\source\\avionics\\magnify.c",
          "first": "0x45c154",
          "second": "0x45c304",
          "first_instruction_count": 54,
          "second_instruction_count": 54,
          "diff": [
            "--- 0x45c154",
            "+++ 0x45c304",
            "@@ -33,7 +33,7 @@",
            " add ebp,edx",
            " mov edx,m4[ecx+None*1+0x4]",
            " mov m4[ecx+None*1+0x8],ebp",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " cmp eax,m4[ecx+None*1+0x8]",
            " jg local:44",
            " pop ebp",
            "@@ -44,7 +44,7 @@",
            " ret ",
            " mov edx,m4[ecx+None*1+0x4]",
            " mov eax,m4[ecx+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov m4[ecx+None*1+0x8],eax",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "magnify.c::set_target_designating_viewpoint_",
          "source": "E:\\apache\\source\\avionics\\magnify.c",
          "first": "0x45c010",
          "second": "0x45c1c0",
          "first_instruction_count": 111,
          "second_instruction_count": 111,
          "diff": [
            "--- 0x45c010",
            "+++ 0x45c1c0",
            "@@ -16,21 +16,21 @@",
            " and cl,0x3",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            "-mov edx,m4[None+None*1+0x5b3c6c]",
            "+mov edx,m4[None+None*1+0x5a6c7c]",
            " test edx,edx",
            " je local:87",
            " lea eax,m4[ebx+None*1+0x18]",
            " cmp edx,0x1",
            " jne local:95",
            "-mov edx,m4[None+None*1+0x5b3c5c]",
            "+mov edx,m4[None+None*1+0x5a6c6c]",
            " sub edx,m4[ebx+None*1+0x0]",
            " mov esi,m4[ebx+None*1+0x4]",
            " mov m4[ebx+None*1+0x18],edx",
            "-mov edx,m4[None+None*1+0x5b3c60]",
            "+mov edx,m4[None+None*1+0x5a6c70]",
            " sub edx,esi",
            " mov edi,m4[ebx+None*1+0x8]",
            " mov m4[ebx+None*1+0x1c],edx",
            "-mov edx,m4[None+None*1+0x5b3c64]",
            "+mov edx,m4[None+None*1+0x5a6c74]",
            " sub edx,edi",
            " mov m4[ebx+None*1+0x20],edx",
            " call vector.c::get_3d_normalised_unit_vector_",
            "@@ -93,7 +93,7 @@",
            " mov eax,m4[eax+None*1+0x20]",
            " mov m4[ebx+None*1+0x20],eax",
            " jmp local:36",
            "-mov ecx,m4[None+None*1+0x5b3c74]",
            "+mov ecx,m4[None+None*1+0x5a6c84]",
            " mov edx,m4[ecx+None*1+0x8]",
            " mov esi,m4[ebx+None*1+0x0]",
            " mov edx,m4[edx+None*1+0x0]"
          ]
        },
        {
          "symbol": "mainwnt::__NTInit_",
          "source": "mainwnt",
          "first": "0x4c966c",
          "second": "0x4bcb9c",
          "first_instruction_count": 151,
          "second_instruction_count": 151,
          "diff": [
            "--- 0x4c966c",
            "+++ 0x4bcb9c",
            "@@ -13,13 +13,13 @@",
            " test edi,edi",
            " jne local:146",
            " push 0x1",
            "-call m4[None+None*1+constant:904b0d00]",
            "+call m4[None+None*1+constant:6e7a0c00]",
            " call nthdl::__NTInitFileHandles_",
            "-call m4[None+None*1+constant:0c4d0d00]",
            "+call m4[None+None*1+constant:ea7b0c00]",
            " xor edx,edx",
            " mov m4[None+None*1+crwdata::__Envptr],eax",
            " mov m4[None+None*1+environ::_environ],edx",
            "-call m4[None+None*1+constant:184e0d00]",
            "+call m4[None+None*1+constant:f67c0c00]",
            " mov edx,eax",
            " mov ebx,eax",
            " mov m1[None+None*1+crwdata::__osmajor],al",
            "@@ -49,7 +49,7 @@",
            " push eax",
            " push 0x0",
            " mov ebx,0x208",
            "-call m4[None+None*1+constant:7c4d0d00]",
            "+call m4[None+None*1+constant:5a7c0c00]",
            " lea eax,m4[esp+None*1+0x410]",
            " mov edx,esp",
            " call strdup::strdup_",
            "@@ -59,7 +59,7 @@",
            " mov eax,esp",
            " call ustrdup::_wcsdup_",
            " mov m4[None+None*1+crwdata::__LpwPgmName],eax",
            "-call m4[None+None*1+constant:6a4c0d00]",
            "+call m4[None+None*1+constant:487b0c00]",
            " call strdup::strdup_",
            " mov bl,m1[eax+None*1+0x0]",
            " mov edx,eax",
            "@@ -90,7 +90,7 @@",
            " test m1[edx+None*1+istable::__IsTable],0x2",
            " jne local:75",
            " mov m4[None+None*1+crwdata::__LpCmdLine],eax",
            "-call m4[None+None*1+constant:7c4c0d00]",
            "+call m4[None+None*1+constant:5a7b0c00]",
            " test eax,eax",
            " je local:125",
            " call ustrdup::_wcsdup_",
            "@@ -133,7 +133,7 @@",
            " push eax",
            " push esi",
            " mov ebx,0x208",
            "-call m4[None+None*1+constant:7c4d0d00]",
            "+call m4[None+None*1+constant:5a7c0c00]",
            " lea eax,m4[esp+None*1+0x514]",
            " lea edx,m4[esp+None*1+0x208]",
            " call strdup::strdup_"
          ]
        },
        {
          "symbol": "mainwnt::__NTMainInit_",
          "source": "mainwnt",
          "first": "0x4c9897",
          "second": "0x4bcdc7",
          "first_instruction_count": 27,
          "second_instruction_count": 27,
          "diff": [
            "--- 0x4c9897",
            "+++ 0x4bcdc7",
            "@@ -5,7 +5,7 @@",
            " mov esi,eax",
            " mov edi,edx",
            " push 0x0",
            "-call m4[None+None*1+constant:a84d0d00]",
            "+call m4[None+None*1+constant:867c0c00]",
            " mov ebx,eax",
            " mov edx,edi",
            " xor eax,eax"
          ]
        },
        {
          "symbol": "mainwnt::__exit_",
          "source": "mainwnt",
          "first": "0x4c98e9",
          "second": "0x4bce19",
          "first_instruction_count": 16,
          "second_instruction_count": 16,
          "diff": [
            "--- 0x4c98e9",
            "+++ 0x4bce19",
            "@@ -13,4 +13,4 @@",
            " call initrtns::__FiniRtns",
            " call m4[None+None*1+mainwnt::__ThreadExitRtn]",
            " push ebx",
            "-call m4[None+None*1+constant:904b0d00]",
            "+call m4[None+None*1+constant:6e7a0c00]"
          ]
        },
        {
          "symbol": "math2err::__math2err_",
          "source": "math2err",
          "first": "0x4d185d",
          "second": "0x4c4af8",
          "first_instruction_count": 78,
          "second_instruction_count": 78,
          "diff": [
            "--- 0x4d185d",
            "+++ 0x4c4af8",
            "@@ -37,7 +37,7 @@",
            " mov esi,0x5",
            " mov eax,ecx",
            " and eax,0x1f",
            "-mov eax,m4[None+eax*4+constant:00000000]",
            "+mov eax,m4[None+eax*4+enterdb::___WD_Present]",
            " mov m4[ebp+None*1+0xffffffd8],esi",
            " mov m4[ebp+None*1+0xffffffdc],eax",
            " test ch,0x10"
          ]
        },
        {
          "symbol": "matrix.c::get_XY_matrix_",
          "source": "E:\\library\\maths\\matrix.c",
          "first": "0x476798",
          "second": "0x474938",
          "first_instruction_count": 69,
          "second_instruction_count": 69,
          "diff": [
            "--- 0x476798",
            "+++ 0x474938",
            "@@ -10,7 +10,7 @@",
            " mov eax,ecx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ecx,eax",
            " mov eax,edx",
            " shr eax,0x13",
            "@@ -20,7 +20,7 @@",
            " mov eax,edx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ebp,eax",
            " mov edx,edi",
            " mov m4[ebx+None*1+0x0],eax"
          ]
        },
        {
          "symbol": "matrix.c::get_XZ_matrix_",
          "source": "E:\\library\\maths\\matrix.c",
          "first": "0x476614",
          "second": "0x4747b4",
          "first_instruction_count": 70,
          "second_instruction_count": 70,
          "diff": [
            "--- 0x476614",
            "+++ 0x4747b4",
            "@@ -10,7 +10,7 @@",
            " mov eax,esi",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ebp,eax",
            " mov eax,edx",
            " shr eax,0x13",
            "@@ -20,7 +20,7 @@",
            " mov eax,edx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edi,eax",
            " mov edx,esi",
            " mov m4[ebx+None*1+0x0],eax"
          ]
        },
        {
          "symbol": "matrix.c::get_ZX_matrix_",
          "source": "E:\\library\\maths\\matrix.c",
          "first": "0x4766d4",
          "second": "0x474874",
          "first_instruction_count": 72,
          "second_instruction_count": 72,
          "diff": [
            "--- 0x4766d4",
            "+++ 0x474874",
            "@@ -11,7 +11,7 @@",
            " mov eax,edx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edi,eax",
            " mov eax,ebp",
            " shr eax,0x13",
            "@@ -21,7 +21,7 @@",
            " mov eax,ebp",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,esi",
            " mov ebp,eax",
            " mov m4[ebx+None*1+0x0],eax"
          ]
        },
        {
          "symbol": "matrix.c::get_pitch_only_transformation_matrix_",
          "source": "E:\\library\\maths\\matrix.c",
          "first": "0x4765b8",
          "second": "0x474758",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x4765b8",
            "+++ 0x474758",
            "@@ -8,7 +8,7 @@",
            " mov eax,ecx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[edx+None*1+0x0],0x7fffffff",
            " mov m4[edx+None*1+0x4],0x0",
            " mov m4[edx+None*1+0x8],0x0"
          ]
        },
        {
          "symbol": "matrix.c::get_skew_only_transformation_matrix_",
          "source": "E:\\library\\maths\\matrix.c",
          "first": "0x47655c",
          "second": "0x4746fc",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x47655c",
            "+++ 0x4746fc",
            "@@ -8,7 +8,7 @@",
            " mov eax,ecx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[edx+None*1+0x8],0x0",
            " mov m4[edx+None*1+0x14],0x0",
            " mov m4[edx+None*1+0x18],0x0"
          ]
        },
        {
          "symbol": "matrix.c::get_transformation_matrix_",
          "source": "E:\\library\\maths\\matrix.c",
          "first": "0x47634c",
          "second": "0x4744ec",
          "first_instruction_count": 162,
          "second_instruction_count": 162,
          "diff": [
            "--- 0x47634c",
            "+++ 0x4744ec",
            "@@ -11,7 +11,7 @@",
            " mov eax,edi",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edi,eax",
            " mov eax,edx",
            " shr eax,0x13",
            "@@ -22,7 +22,7 @@",
            " mov esi,ebp",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,ebx",
            " mov ecx,m4[esp+None*1+0x14]",
            "@@ -34,7 +34,7 @@",
            " mov edx,edi",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ebx,m4[esp+None*1+0x10]",
            " mov m4[esp+None*1+0x8],eax",
            " imul edx"
          ]
        },
        {
          "symbol": "mbccmp::_mbccmp_",
          "source": "mbccmp",
          "first": "0x4cff4f",
          "second": "0x4c33bf",
          "first_instruction_count": 38,
          "second_instruction_count": 38,
          "diff": [
            "--- 0x4cff4f",
            "+++ 0x4c33bf",
            "@@ -7,7 +7,7 @@",
            " je local:17",
            " xor ebx,ebx",
            " mov bl,m1[eax+None*1+0x0]",
            "-mov bl,m1[ebx+None*1+0x10dd215]",
            "+mov bl,m1[ebx+None*1+0xf909c5]",
            " and bl,0x1",
            " and ebx,0xff",
            " je local:17"
          ]
        },
        {
          "symbol": "mbccpy::_mbccpy_",
          "source": "mbccpy",
          "first": "0x4cfea4",
          "second": "0x4c3314",
          "first_instruction_count": 19,
          "second_instruction_count": 19,
          "diff": [
            "--- 0x4cfea4",
            "+++ 0x4c3314",
            "@@ -3,7 +3,7 @@",
            " je local:15",
            " xor ebx,ebx",
            " mov bl,m1[edx+None*1+0x0]",
            "-mov bl,m1[ebx+None*1+0x10dd215]",
            "+mov bl,m1[ebx+None*1+0xf909c5]",
            " and bl,0x1",
            " and ebx,0xff",
            " je local:15"
          ]
        },
        {
          "symbol": "mbclen::_mbclen_",
          "source": "mbclen",
          "first": "0x4cfed5",
          "second": "0x4c3345",
          "first_instruction_count": 12,
          "second_instruction_count": 12,
          "diff": [
            "--- 0x4cfed5",
            "+++ 0x4c3345",
            "@@ -2,7 +2,7 @@",
            " je local:10",
            " mov al,m1[eax+None*1+0x0]",
            " and eax,0xff",
            "-mov al,m1[eax+None*1+0x10dd215]",
            "+mov al,m1[eax+None*1+0xf909c5]",
            " and al,0x1",
            " and eax,0xff",
            " je local:10"
          ]
        },
        {
          "symbol": "mbcupper::_mbctoupper_",
          "source": "mbcupper",
          "first": "0x4d1eb8",
          "second": "0x4c5340",
          "first_instruction_count": 35,
          "second_instruction_count": 35,
          "diff": [
            "--- 0x4d1eb8",
            "+++ 0x4c5340",
            "@@ -15,7 +15,7 @@",
            " je local:24",
            " xor eax,eax",
            " mov al,m1[esp+None*1+0x0]",
            "-mov al,m1[eax+None*1+0x10dd215]",
            "+mov al,m1[eax+None*1+0xf909c5]",
            " and al,0x1",
            " and eax,0xff",
            " je local:24",
            "@@ -25,7 +25,7 @@",
            " push 0x1",
            " lea eax,m4[esp+None*1+0x4]",
            " push eax",
            "-call m4[None+None*1+constant:dc480d00]",
            "+call m4[None+None*1+constant:a4770c00]",
            " mov eax,esp",
            " call mbsnextc::_mbsnextc_",
            " add esp,0x4"
          ]
        },
        {
          "symbol": "mbinit::__mbinit_",
          "source": "mbinit",
          "first": "0x4d06a5",
          "second": "0x4c3b2d",
          "first_instruction_count": 101,
          "second_instruction_count": 101,
          "diff": [
            "--- 0x4d06a5",
            "+++ 0x4c3b2d",
            "@@ -7,12 +7,12 @@",
            " mov esi,eax",
            " cmp eax,0xffffffff",
            " jne local:12",
            "-call m4[None+None*1+constant:204c0d00]",
            "+call m4[None+None*1+constant:fe7a0c00]",
            " mov esi,eax",
            " jmp local:49",
            " cmp eax,0xfffffffe",
            " jne local:16",
            "-call m4[None+None*1+constant:bc4d0d00]",
            "+call m4[None+None*1+constant:9a7c0c00]",
            " jmp local:10",
            " cmp eax,0xfffffffd",
            " jne local:27",
            "@@ -53,7 +53,7 @@",
            " mov eax,esp",
            " push eax",
            " push esi",
            "-call m4[None+None*1+constant:2a4c0d00]",
            "+call m4[None+None*1+constant:087b0c00]",
            " test eax,eax",
            " jne local:60",
            " mov eax,0x1",
            "@@ -87,7 +87,7 @@",
            " jne local:73",
            " cmp esi,0x1",
            " jne local:92",
            "-call m4[None+None*1+constant:bc4d0d00]",
            "+call m4[None+None*1+constant:9a7c0c00]",
            " mov m4[None+None*1+mbinit::___MBCodePage],eax",
            " jmp local:93",
            " mov m4[None+None*1+mbinit::___MBCodePage],esi"
          ]
        },
        {
          "symbol": "mbislead::_ismbblead_",
          "source": "mbislead",
          "first": "0x4cea5d",
          "second": "0x4c1ecd",
          "first_instruction_count": 4,
          "second_instruction_count": 4,
          "diff": [
            "--- 0x4cea5d",
            "+++ 0x4c1ecd",
            "@@ -1,4 +1,4 @@",
            "-mov al,m1[eax+None*1+0x10dd215]",
            "+mov al,m1[eax+None*1+0xf909c5]",
            " and al,0x1",
            " and eax,0xff",
            " ret "
          ]
        },
        {
          "symbol": "mbislegl::_ismbclegal_",
          "source": "mbislegl",
          "first": "0x4d2b1c",
          "second": "0x4c5fa4",
          "first_instruction_count": 20,
          "second_instruction_count": 20,
          "diff": [
            "--- 0x4d2b1c",
            "+++ 0x4c5fa4",
            "@@ -4,7 +4,7 @@",
            " mov edx,eax",
            " shr edx,0x8",
            " and edx,0xff",
            "-mov dl,m1[edx+None*1+0x10dd215]",
            "+mov dl,m1[edx+None*1+0xf909c5]",
            " and dl,0x1",
            " and edx,0xff",
            " je local:17"
          ]
        },
        {
          "symbol": "mbsinc::_mbsinc_",
          "source": "mbsinc",
          "first": "0x4cda63",
          "second": "0x4c0ed3",
          "first_instruction_count": 17,
          "second_instruction_count": 17,
          "diff": [
            "--- 0x4cda63",
            "+++ 0x4c0ed3",
            "@@ -3,7 +3,7 @@",
            " je local:14",
            " xor edx,edx",
            " mov dl,m1[eax+None*1+0x0]",
            "-mov dl,m1[edx+None*1+0x10dd215]",
            "+mov dl,m1[edx+None*1+0xf909c5]",
            " and dl,0x1",
            " and edx,0xff",
            " je local:14"
          ]
        },
        {
          "symbol": "mbsnextc::_mbsnextc_",
          "source": "mbsnextc",
          "first": "0x4d1e7d",
          "second": "0x4c5305",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x4d1e7d",
            "+++ 0x4c5305",
            "@@ -3,7 +3,7 @@",
            " je local:17",
            " xor edx,edx",
            " mov dl,m1[eax+None*1+0x0]",
            "-mov dl,m1[edx+None*1+0x10dd215]",
            "+mov dl,m1[edx+None*1+0xf909c5]",
            " and dl,0x1",
            " and edx,0xff",
            " je local:17"
          ]
        },
        {
          "symbol": "mbterm::_mbterm_",
          "source": "mbterm",
          "first": "0x4cd9d0",
          "second": "0x4c0e40",
          "first_instruction_count": 22,
          "second_instruction_count": 22,
          "diff": [
            "--- 0x4cd9d0",
            "+++ 0x4c0e40",
            "@@ -8,7 +8,7 @@",
            " je local:19",
            " xor edx,edx",
            " mov dl,m1[eax+None*1+0x0]",
            "-mov dl,m1[edx+None*1+0x10dd215]",
            "+mov dl,m1[edx+None*1+0xf909c5]",
            " and dl,0x1",
            " and edx,0xff",
            " je local:19"
          ]
        },
        {
          "symbol": "mbtowc::mbtowc_",
          "source": "mbtowc",
          "first": "0x4cea72",
          "second": "0x4c1ee2",
          "first_instruction_count": 59,
          "second_instruction_count": 59,
          "diff": [
            "--- 0x4cea72",
            "+++ 0x4c1ee2",
            "@@ -21,7 +21,7 @@",
            " je local:29",
            " xor eax,eax",
            " mov al,m1[edx+None*1+0x0]",
            "-mov al,m1[eax+None*1+0x10dd215]",
            "+mov al,m1[eax+None*1+0xf909c5]",
            " and al,0x1",
            " and eax,0xff",
            " je local:29",
            "@@ -41,7 +41,7 @@",
            " push 0x8",
            " mov eax,m4[None+None*1+mbinit::___MBCodePage]",
            " push eax",
            "-call m4[None+None*1+constant:904e0d00]",
            "+call m4[None+None*1+constant:7e7d0c00]",
            " test eax,eax",
            " je local:52",
            " test esi,esi"
          ]
        },
        {
          "symbol": "memory.c::buddy_free_",
          "source": "E:\\library\\system\\memory.c",
          "first": "0x47d254",
          "second": "0x47b3f4",
          "first_instruction_count": 75,
          "second_instruction_count": 75,
          "diff": [
            "--- 0x47d254",
            "+++ 0x47b3f4",
            "@@ -37,7 +37,7 @@",
            " push text:'Freeing Buddy Memory'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-mov ebx,m4[esi+None*1+constant:08d6a800]",
            "+mov ebx,m4[esi+None*1+constant:d800a200]",
            " add esi,0x14",
            " test ebx,ebx",
            " jne local:11",
            "@@ -59,7 +59,7 @@",
            " shl edx,0x3",
            " sbb eax,edx",
            " sar eax,0x3",
            "-mov edx,m4[ebx+None*1+constant:90647e00]",
            "+mov edx,m4[ebx+None*1+constant:600f7d00]",
            " add eax,edx",
            " mov dl,cl",
            " not dl"
          ]
        },
        {
          "symbol": "memory.c::buddy_malloc_",
          "source": "E:\\library\\system\\memory.c",
          "first": "0x47d178",
          "second": "0x47b318",
          "first_instruction_count": 80,
          "second_instruction_count": 80,
          "diff": [
            "--- 0x47d178",
            "+++ 0x47b318",
            "@@ -16,7 +16,7 @@",
            " cmp eax,m4[ebp+None*1+constant:04000000]",
            " jg local:64",
            " mov edi,ebp",
            "-mov ebx,m4[ebp+None*1+constant:90647e00]",
            "+mov ebx,m4[ebp+None*1+constant:600f7d00]",
            " xor esi,esi",
            " mov eax,m4[edi+None*1+constant:00010000]",
            " mov edx,eax",
            "@@ -63,7 +63,7 @@",
            " pop ebx",
            " ret ",
            " mov ebx,m4[esp+None*1+0x0]",
            "-mov esi,m4[ebp+None*1+constant:08d6a800]",
            "+mov esi,m4[ebp+None*1+constant:d800a200]",
            " inc ebx",
            " add ebp,0x14",
            " mov m4[esp+None*1+0x0],ebx"
          ]
        },
        {
          "symbol": "mfd.c::draw_co_pilot_mfds_",
          "source": "E:\\apache\\source\\avionics\\mfd.c",
          "first": "0x45c6e0",
          "second": "0x45c888",
          "first_instruction_count": 138,
          "second_instruction_count": 140,
          "diff": [
            "--- 0x45c6e0",
            "+++ 0x45c888",
            "@@ -1,138 +1,140 @@",
            " push ebx",
            "+push ecx",
            " push edx",
            " mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            " test eax,eax",
            "-jbe local:52",
            "+jbe local:54",
            " cmp eax,0x1",
            "-jne local:9",
            "+jne local:10",
            " mov eax,text.c::_standard_5x9",
            " call text.c::set_text_font_",
            " test m1[None+None*1+faults.c::_apache_faults],0x40",
            "-je local:14",
            "+je local:15",
            " cmp m4[None+None*1+mfd.c::_co_pilot_lhs_mfd_mode],0x0",
            "-je local:14",
            "+je local:15",
            " mov m4[None+None*1+mfd.c::_co_pilot_lhs_mfd_mode],0x1",
            " mov edx,m4[None+None*1+mfd.c::_co_pilot_lhs_mfd_mode]",
            " mov eax,mfd.c::_co_pilot_lhs_mfd_viewport",
            " call m4[None+edx*4+mfd.c::_mfd_functions]",
            " mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            " test eax,eax",
            "-jbe local:54",
            "+jbe local:56",
            " cmp eax,0x1",
            "-jne local:24",
            "+jne local:25",
            " mov eax,text.c::_standard_5x9",
            " call text.c::set_text_font_",
            " test m1[None+None*1+faults.c::_apache_faults],0x80",
            "-je local:29",
            "+je local:30",
            " cmp m4[None+None*1+mfd.c::_co_pilot_rhs_mfd_mode],0x0",
            "-je local:29",
            "+je local:30",
            " mov m4[None+None*1+mfd.c::_co_pilot_rhs_mfd_mode],0x1",
            " mov edx,m4[None+None*1+mfd.c::_co_pilot_rhs_mfd_mode]",
            " mov eax,mfd.c::_co_pilot_rhs_mfd_viewport",
            " call m4[None+edx*4+mfd.c::_mfd_functions]",
            " mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            " test eax,eax",
            "-jbe local:56",
            "+jbe local:58",
            " cmp eax,0x1",
            "-jne local:39",
            "+jne local:40",
            " mov eax,text.c::_standard_5x9",
            " call text.c::set_text_font_",
            "-test m1[None+None*1+0x6748c5],0x1",
            "-je local:58",
            "+test m1[None+None*1+0x6678d5],0x1",
            "+je local:60",
            " mov eax,mfd.c::_co_pilot_middle_mfd_viewport",
            "-call m4[None+None*1+constant:58cd4500]",
            "+call m4[None+None*1+constant:f8ce4500]",
            " call screen.c::reset_screen_extent_",
            " mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            " cmp eax,0x1",
            "-jae local:61",
            "+jae local:63",
            " test eax,eax",
            "-je local:103",
            "+je local:104",
            " pop edx",
            "+pop ecx",
            " pop ebx",
            " ret ",
            " mov eax,text.c::_standard_3x5",
            "-jmp local:8",
            "+jmp local:9",
            " mov eax,text.c::_standard_3x5",
            "-jmp local:23",
            "+jmp local:24",
            " mov eax,text.c::_standard_3x5",
            "-jmp local:38",
            "+jmp local:39",
            " mov eax,mfd.c::_co_pilot_middle_mfd_viewport",
            " call mfdfunc.c::mfd_flir_",
            "-jmp local:43",
            "-ja local:49",
            "+jmp local:44",
            "+ja local:50",
            " push edi",
            " push esi",
            "-push ecx",
            " mov ebx,0x141",
            " mov ecx,0x2d",
            " mov esi,cockpits.c::_co_pilot_lhs_mfd_bezel_top_left",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x141",
            " mov ecx,0xb4",
            " mov esi,cockpits.c::_co_pilot_lhs_mfd_bezel_top_right",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x1c8",
            " mov ecx,0x2d",
            " mov esi,cockpits.c::_co_pilot_lhs_mfd_bezel_bottom_left",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x1c8",
            " mov ecx,0xb4",
            " mov esi,cockpits.c::_co_pilot_lhs_mfd_bezel_bottom_right",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x141",
            " mov ecx,0x1c7",
            " mov esi,cockpits.c::_co_pilot_rhs_mfd_bezel_top_left",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x141",
            " mov ecx,0x24e",
            " mov esi,cockpits.c::_co_pilot_rhs_mfd_bezel_top_right",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x1c8",
            " mov ecx,0x1c7",
            " mov esi,cockpits.c::_co_pilot_rhs_mfd_bezel_bottom_left",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x1c8",
            " mov ecx,0x24e",
            " mov esi,cockpits.c::_co_pilot_rhs_mfd_bezel_bottom_right",
            "-call sprite.asm::_draw_glide_sprite",
            "-pop ecx",
            "+call sprite.asm::_draw_sprite",
            " pop esi",
            " pop edi",
            " pop edx",
            "+pop ecx",
            " pop ebx",
            " ret ",
            "-mov ebx,0xe2",
            "-mov edx,0xa1",
            "-mov eax,0x17",
            "-call fxpoly1.c::set_point_",
            "-mov ebx,0xe2",
            "-mov edx,0xa1",
            "-mov eax,0x5b",
            "-call fxpoly1.c::set_point_",
            "-mov ebx,0xe3",
            "-mov edx,0xe5",
            "-mov eax,0x17",
            "-call fxpoly1.c::set_point_",
            "-mov ebx,0xe3",
            "-mov edx,0xe5",
            "-mov eax,0x5b",
            "-call fxpoly1.c::set_point_",
            "-mov ebx,0xe2",
            "-mov edx,0xa1",
            "-mov eax,0xe4",
            "-call fxpoly1.c::set_point_",
            "-mov ebx,0xe2",
            "-mov edx,0xa1",
            "-mov eax,0x128",
            "-call fxpoly1.c::set_point_",
            "-mov ebx,0xe3",
            "-mov edx,0xe5",
            "-mov eax,0xe4",
            "-call fxpoly1.c::set_point_",
            "-mov ebx,0xe3",
            "-mov edx,0xe5",
            "-mov eax,0x128",
            "-call fxpoly1.c::set_point_",
            "+mov al,0xe2",
            "+mov ebx,0xa1",
            "+mov ecx,0x17",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+mov ecx,0x5b",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+mov al,0xe3",
            "+mov ebx,0xe5",
            "+mov ecx,0x17",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+mov ecx,0x5b",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+mov al,0xe2",
            "+mov ebx,0xa1",
            "+mov ecx,0xe4",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+mov ecx,0x128",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+mov al,0xe3",
            "+mov ebx,0xe5",
            "+mov ecx,0xe4",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+mov ecx,0x128",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            " pop edx",
            "+pop ecx",
            " pop ebx",
            " ret "
          ]
        },
        {
          "symbol": "mfd.c::draw_pilot_mfds_",
          "source": "E:\\apache\\source\\avionics\\mfd.c",
          "first": "0x45c4d4",
          "second": "0x45c684",
          "first_instruction_count": 122,
          "second_instruction_count": 124,
          "diff": [
            "--- 0x45c4d4",
            "+++ 0x45c684",
            "@@ -1,31 +1,32 @@",
            " push ebx",
            "+push ecx",
            " push edx",
            " mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            " test eax,eax",
            "-jbe local:41",
            "+jbe local:43",
            " cmp eax,0x1",
            "-jne local:9",
            "+jne local:10",
            " mov eax,text.c::_standard_5x9",
            " call text.c::set_text_font_",
            " test m1[None+None*1+faults.c::_apache_faults],0x10",
            "-je local:14",
            "+je local:15",
            " cmp m4[None+None*1+mfd.c::_pilot_lhs_mfd_mode],0x0",
            "-je local:14",
            "+je local:15",
            " mov m4[None+None*1+mfd.c::_pilot_lhs_mfd_mode],0x1",
            " mov edx,m4[None+None*1+mfd.c::_pilot_lhs_mfd_mode]",
            " mov eax,mfd.c::_pilot_lhs_mfd_viewport",
            " call m4[None+edx*4+mfd.c::_mfd_functions]",
            " mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            " test eax,eax",
            "-jbe local:43",
            "+jbe local:45",
            " cmp eax,0x1",
            "-jne local:24",
            "+jne local:25",
            " mov eax,text.c::_standard_5x9",
            " call text.c::set_text_font_",
            " test m1[None+None*1+faults.c::_apache_faults],0x20",
            "-je local:29",
            "+je local:30",
            " cmp m4[None+None*1+mfd.c::_pilot_rhs_mfd_mode],0x0",
            "-je local:29",
            "+je local:30",
            " mov m4[None+None*1+mfd.c::_pilot_rhs_mfd_mode],0x1",
            " mov edx,m4[None+None*1+mfd.c::_pilot_rhs_mfd_mode]",
            " mov eax,mfd.c::_pilot_rhs_mfd_viewport",
            "@@ -33,90 +34,91 @@",
            " call screen.c::reset_screen_extent_",
            " mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            " cmp eax,0x1",
            "-jae local:45",
            "+jae local:47",
            " test eax,eax",
            "-je local:87",
            "+je local:88",
            " pop edx",
            "+pop ecx",
            " pop ebx",
            " ret ",
            " mov eax,text.c::_standard_3x5",
            "-jmp local:8",
            "+jmp local:9",
            " mov eax,text.c::_standard_3x5",
            "-jmp local:23",
            "-ja local:38",
            "+jmp local:24",
            "+ja local:39",
            " push edi",
            " push esi",
            "-push ecx",
            " mov ebx,0x143",
            " mov ecx,0x95",
            " mov esi,cockpits.c::_pilot_lhs_mfd_bezel_top_left",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x143",
            " mov ecx,0x11c",
            " mov esi,cockpits.c::_pilot_lhs_mfd_bezel_top_right",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x1ca",
            " mov ecx,0x95",
            " mov esi,cockpits.c::_pilot_lhs_mfd_bezel_bottom_left",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x1ca",
            " mov ecx,0x11c",
            " mov esi,cockpits.c::_pilot_lhs_mfd_bezel_bottom_right",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x143",
            " mov ecx,0x15f",
            " mov esi,cockpits.c::_pilot_rhs_mfd_bezel_top_left",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x143",
            " mov ecx,0x1e6",
            " mov esi,cockpits.c::_pilot_rhs_mfd_bezel_top_right",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x1ca",
            " mov ecx,0x15f",
            " mov esi,cockpits.c::_pilot_rhs_mfd_bezel_bottom_left",
            "-call sprite.asm::_draw_glide_sprite",
            "+call sprite.asm::_draw_sprite",
            " mov ebx,0x1ca",
            " mov ecx,0x1e6",
            " mov esi,cockpits.c::_pilot_rhs_mfd_bezel_bottom_right",
            "-call sprite.asm::_draw_glide_sprite",
            "-pop ecx",
            "+call sprite.asm::_draw_sprite",
            " pop esi",
            " pop edi",
            " pop edx",
            "+pop ecx",
            " pop ebx",
            " ret ",
            "-mov ebx,0xe2",
            "-mov edx,0xa2",
            "-mov eax,0x4b",
            "-call fxpoly1.c::set_point_",
            "-mov ebx,0xe2",
            "-mov edx,0xa2",
            "-mov eax,0x8f",
            "-call fxpoly1.c::set_point_",
            "-mov ebx,0xe3",
            "-mov edx,0xe6",
            "-mov eax,0x4b",
            "-call fxpoly1.c::set_point_",
            "-mov ebx,0xe3",
            "-mov edx,0xe6",
            "-mov eax,0x8f",
            "-call fxpoly1.c::set_point_",
            "-mov ebx,0xe2",
            "-mov edx,0xa2",
            "-mov eax,0xb0",
            "-call fxpoly1.c::set_point_",
            "-mov ebx,0xe2",
            "-mov edx,0xa2",
            "-mov eax,0xf4",
            "-call fxpoly1.c::set_point_",
            "-mov ebx,0xe3",
            "-mov edx,0xe6",
            "-mov eax,0xb0",
            "-call fxpoly1.c::set_point_",
            "-mov ebx,0xe3",
            "-mov edx,0xe6",
            "-mov eax,0xf4",
            "-call fxpoly1.c::set_point_",
            "+mov al,0xe2",
            "+mov ebx,0xa2",
            "+mov ecx,0x4b",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+mov ecx,0x8f",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+mov al,0xe3",
            "+mov ebx,0xe6",
            "+mov ecx,0x4b",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+mov ecx,0x8f",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+mov al,0xe2",
            "+mov ebx,0xa2",
            "+mov ecx,0xb0",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+mov ecx,0xf4",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+mov al,0xe3",
            "+mov ebx,0xe6",
            "+mov ecx,0xb0",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            "+mov ecx,0xf4",
            "+mov edx,m4[None+ebx*4+screen.c::_screen_line_start]",
            "+mov m1[edx+ecx*1+0x0],al",
            " pop edx",
            "+pop ecx",
            " pop ebx",
            " ret "
          ]
        },
        {
          "symbol": "mfd.c::get_next_mfd_mode_",
          "source": "E:\\apache\\source\\avionics\\mfd.c",
          "first": "0x45cbcc",
          "second": "0x45cd68",
          "first_instruction_count": 49,
          "second_instruction_count": 49,
          "diff": [
            "--- 0x45cbcc",
            "+++ 0x45cd68",
            "@@ -39,7 +39,7 @@",
            " inc eax",
            " add edx,0x4",
            " jmp local:36",
            "-mov eax,m4[edx+None*1+constant:24034600]",
            "+mov eax,m4[edx+None*1+constant:c4044600]",
            " pop ebp",
            " pop edi",
            " pop esi"
          ]
        },
        {
          "symbol": "mfd.c::initialise_mfds_",
          "source": "E:\\apache\\source\\avionics\\mfd.c",
          "first": "0x45c1d0",
          "second": "0x45c380",
          "first_instruction_count": 157,
          "second_instruction_count": 157,
          "diff": [
            "--- 0x45c1d0",
            "+++ 0x45c380",
            "@@ -48,29 +48,29 @@",
            " mov esi,0xaf",
            " mov ebp,0x1db",
            " mov ecx,0x96",
            "-mov m4[None+None*1+0x6749b4],ebx",
            "-mov m4[None+None*1+0x6749b8],esi",
            "+mov m4[None+None*1+0x6679c4],ebx",
            "+mov m4[None+None*1+0x6679c8],esi",
            " mov edi,esi",
            "-mov m4[None+None*1+0x6749bc],esi",
            "+mov m4[None+None*1+0x6679cc],esi",
            " mov m4[None+None*1+mfd.c::_pilot_rhs_mfd_viewport],ebp",
            "-mov m4[None+None*1+0x6749c4],ebx",
            "-mov m4[None+None*1+0x6749c8],esi",
            "-mov m4[None+None*1+0x6749cc],esi",
            "+mov m4[None+None*1+0x6679d4],ebx",
            "+mov m4[None+None*1+0x6679d8],esi",
            "+mov m4[None+None*1+0x6679dc],esi",
            " mov m4[None+None*1+mfd.c::_co_pilot_lhs_mfd_viewport],ecx",
            " mov m4[None+None*1+mfd.c::_co_pilot_rhs_mfd_viewport],ebp",
            "-mov m4[None+None*1+0x6749d8],ecx",
            "-mov m4[None+None*1+0x6749dc],ecx",
            "+mov m4[None+None*1+0x6679e8],ecx",
            "+mov m4[None+None*1+0x6679ec],ecx",
            " mov m4[None+None*1+mfd.c::_pilot_lhs_mfd_viewport],ecx",
            " mov esi,0x16a",
            "-mov m4[None+None*1+0x674998],edi",
            "-mov m4[None+None*1+0x67499c],edi",
            "-mov m4[None+None*1+0x6749a8],edi",
            "-mov m4[None+None*1+0x6749ac],edi",
            "+mov m4[None+None*1+0x6679a8],edi",
            "+mov m4[None+None*1+0x6679ac],edi",
            "+mov m4[None+None*1+0x6679b8],edi",
            "+mov m4[None+None*1+0x6679bc],edi",
            " mov edi,0x190",
            "-mov m4[None+None*1+0x674994],esi",
            "-mov m4[None+None*1+0x6749a4],esi",
            "+mov m4[None+None*1+0x6679a4],esi",
            "+mov m4[None+None*1+0x6679b4],esi",
            " mov esi,0x12c",
            "-mov m4[None+None*1+0x6749d4],edi",
            "+mov m4[None+None*1+0x6679e4],edi",
            " mov m4[None+None*1+mfd.c::_co_pilot_middle_mfd_viewport],esi",
            " pop ebp",
            " pop edi",
            "@@ -84,31 +84,31 @@",
            " mov esi,0xb0",
            " mov edi,0xe4",
            " mov eax,0x4b",
            "-mov m4[None+None*1+0x6749b4],edx",
            "-mov m4[None+None*1+0x6749b8],ecx",
            "+mov m4[None+None*1+0x6679c4],edx",
            "+mov m4[None+None*1+0x6679c8],ecx",
            " mov ebx,ecx",
            "-mov m4[None+None*1+0x6749bc],ecx",
            "+mov m4[None+None*1+0x6679cc],ecx",
            " mov m4[None+None*1+mfd.c::_pilot_rhs_mfd_viewport],esi",
            "-mov m4[None+None*1+0x6749c4],edx",
            "-mov m4[None+None*1+0x6749c8],ecx",
            "-mov m4[None+None*1+0x6749cc],ecx",
            "+mov m4[None+None*1+0x6679d4],edx",
            "+mov m4[None+None*1+0x6679d8],ecx",
            "+mov m4[None+None*1+0x6679dc],ecx",
            " mov m4[None+None*1+mfd.c::_co_pilot_rhs_mfd_viewport],edi",
            " mov m4[None+None*1+mfd.c::_pilot_lhs_mfd_viewport],eax",
            " mov edx,0x17",
            " mov ecx,0xa1",
            " mov esi,0x32",
            "-mov m4[None+None*1+0x674998],ebx",
            "-mov m4[None+None*1+0x67499c],ebx",
            "-mov m4[None+None*1+0x6749a8],ebx",
            "-mov m4[None+None*1+0x6749ac],ebx",
            "+mov m4[None+None*1+0x6679a8],ebx",
            "+mov m4[None+None*1+0x6679ac],ebx",
            "+mov m4[None+None*1+0x6679b8],ebx",
            "+mov m4[None+None*1+0x6679bc],ebx",
            " mov ebx,0xb1",
            " mov m4[None+None*1+mfd.c::_co_pilot_lhs_mfd_viewport],edx",
            "-mov m4[None+None*1+0x674994],ecx",
            "-mov m4[None+None*1+0x6749a4],ecx",
            "-mov m4[None+None*1+0x6749d8],esi",
            "-mov m4[None+None*1+0x6749dc],esi",
            "+mov m4[None+None*1+0x6679a4],ecx",
            "+mov m4[None+None*1+0x6679b4],ecx",
            "+mov m4[None+None*1+0x6679e8],esi",
            "+mov m4[None+None*1+0x6679ec],esi",
            " mov ecx,0x87",
            "-mov m4[None+None*1+0x6749d4],ebx",
            "+mov m4[None+None*1+0x6679e4],ebx",
            " mov m4[None+None*1+mfd.c::_co_pilot_middle_mfd_viewport],ecx",
            " pop ebp",
            " pop edi",
            "@@ -122,31 +122,31 @@",
            " mov edi,0x15f",
            " mov ebp,0x1c7",
            " mov edx,0x95",
            "-mov m4[None+None*1+0x6749b4],ecx",
            "-mov m4[None+None*1+0x6749b8],ebx",
            "+mov m4[None+None*1+0x6679c4],ecx",
            "+mov m4[None+None*1+0x6679c8],ebx",
            " mov esi,ebx",
            "-mov m4[None+None*1+0x6749bc],ebx",
            "+mov m4[None+None*1+0x6679cc],ebx",
            " mov m4[None+None*1+mfd.c::_pilot_rhs_mfd_viewport],edi",
            "-mov m4[None+None*1+0x6749c4],ecx",
            "-mov m4[None+None*1+0x6749c8],ebx",
            "-mov m4[None+None*1+0x6749cc],ebx",
            "+mov m4[None+None*1+0x6679d4],ecx",
            "+mov m4[None+None*1+0x6679d8],ebx",
            "+mov m4[None+None*1+0x6679dc],ebx",
            " mov m4[None+None*1+mfd.c::_co_pilot_rhs_mfd_viewport],ebp",
            " mov m4[None+None*1+mfd.c::_pilot_lhs_mfd_viewport],edx",
            " mov ecx,0x2d",
            " mov ebx,0x141",
            " mov edi,0x64",
            "-mov m4[None+None*1+0x674998],esi",
            "-mov m4[None+None*1+0x67499c],esi",
            "-mov m4[None+None*1+0x6749a8],esi",
            "-mov m4[None+None*1+0x6749ac],esi",
            "+mov m4[None+None*1+0x6679a8],esi",
            "+mov m4[None+None*1+0x6679ac],esi",
            "+mov m4[None+None*1+0x6679b8],esi",
            "+mov m4[None+None*1+0x6679bc],esi",
            " mov esi,0x162",
            " mov m4[None+None*1+mfd.c::_co_pilot_lhs_mfd_viewport],ecx",
            "-mov m4[None+None*1+0x674994],ebx",
            "-mov m4[None+None*1+0x6749a4],ebx",
            "-mov m4[None+None*1+0x6749d8],edi",
            "-mov m4[None+None*1+0x6749dc],edi",
            "+mov m4[None+None*1+0x6679a4],ebx",
            "+mov m4[None+None*1+0x6679b4],ebx",
            "+mov m4[None+None*1+0x6679e8],edi",
            "+mov m4[None+None*1+0x6679ec],edi",
            " mov ebx,0x10e",
            "-mov m4[None+None*1+0x6749d4],esi",
            "+mov m4[None+None*1+0x6679e4],esi",
            " mov m4[None+None*1+mfd.c::_co_pilot_middle_mfd_viewport],ebx",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "mfdfunc.c::mfd_damaged_",
          "source": "E:\\apache\\source\\avionics\\mfdfunc.c",
          "first": "0x45cd58",
          "second": "0x45cef8",
          "first_instruction_count": 69,
          "second_instruction_count": 69,
          "diff": [
            "--- 0x45cd58",
            "+++ 0x45cef8",
            "@@ -42,7 +42,7 @@",
            " inc esi",
            " add ebp,ebp",
            " jmp local:27",
            "-mov edx,0x674a00",
            "+mov edx,0x667a10",
            " imul eax,m4[edx+None*1+0x0],0x41c64e6d",
            " add eax,0x3039",
            " mov m4[edx+None*1+0x0],eax"
          ]
        },
        {
          "symbol": "mfdfunc.c::mfd_draw_frag_plan_",
          "source": "E:\\apache\\source\\avionics\\mfdfunc.c",
          "first": "0x45e8d4",
          "second": "0x45ea74",
          "first_instruction_count": 277,
          "second_instruction_count": 277,
          "diff": [
            "--- 0x45e8d4",
            "+++ 0x45ea74",
            "@@ -38,7 +38,7 @@",
            " call 2dline.c::draw_2d_line_",
            " cmp m4[None+None*1+apnet.c::_number_of_players],0x8",
            " jl local:125",
            "-cmp m4[None+None*1+0x674a04],0x3e8",
            "+cmp m4[None+None*1+0x667a14],0x3e8",
            " jge local:194",
            " mov edx,0xc8",
            " mov eax,m4[None+None*1+gamedata.c::_delta_time]",
            "@@ -46,7 +46,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-add m4[None+None*1+0x674a04],edx",
            "+add m4[None+None*1+0x667a14],edx",
            " mov eax,m4[None+None*1+apnet.c::_my_connection_number]",
            " mov eax,m4[None+eax*4+multidr.c::_multi_player_kill_record]",
            " push eax",
            "@@ -76,7 +76,7 @@",
            " add eax,0x8",
            " mov m4[esp+None*1+0x28],edi",
            " call mfdfunc.c::print_field_and_value_",
            "-mov eax,m4[esi+None*1+0x5a15e0]",
            "+mov eax,m4[esi+None*1+0x5945f0]",
            " shl eax,0x10",
            " sar eax,0x18",
            " cmp eax,0xffffffff",
            "@@ -152,7 +152,7 @@",
            " add eax,0x8",
            " mov m4[esp+None*1+0x2c],edi",
            " call mfdfunc.c::print_field_and_value_",
            "-mov eax,m4[esi+None*1+0x5a15e0]",
            "+mov eax,m4[esi+None*1+0x5945f0]",
            " shl eax,0x10",
            " sar eax,0x18",
            " cmp eax,0xffffffff",
            "@@ -198,16 +198,16 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ebx,m4[None+None*1+0x674a04]",
            "+mov ebx,m4[None+None*1+0x667a14]",
            " add ebx,edx",
            "-mov m4[None+None*1+0x674a04],ebx",
            "+mov m4[None+None*1+0x667a14],ebx",
            " cmp ebx,0x7d0",
            " jg local:274",
            " mov edx,0x1",
            " mov ecx,m4[None+None*1+apnet.c::_my_connection_number]",
            " xor eax,eax",
            " xor esi,esi",
            "-mov edi,m4[eax+None*1+0x5a15e0]",
            "+mov edi,m4[eax+None*1+0x5945f0]",
            " shl edi,0x10",
            " sar edi,0x18",
            " cmp edi,0xffffffff",
            "@@ -232,7 +232,7 @@",
            " add edi,eax",
            " lea eax,m4[None+esi*4+0x0]",
            " mov m4[esp+None*1+0x2c],eax",
            "-mov eax,m4[edi+None*1+0x5a15e0]",
            "+mov eax,m4[edi+None*1+0x5945f0]",
            " shl eax,0x10",
            " sar eax,0x18",
            " cmp eax,0xffffffff",
            "@@ -273,5 +273,5 @@",
            " jge local:117",
            " jmp local:234",
            " xor edi,edi",
            "-mov m4[None+None*1+0x674a04],edi",
            "+mov m4[None+None*1+0x667a14],edi",
            " jmp local:205"
          ]
        },
        {
          "symbol": "mfdfunc.c::mfd_flir_",
          "source": "E:\\apache\\source\\avionics\\mfdfunc.c",
          "first": "0x45dd30",
          "second": "0x45ded0",
          "first_instruction_count": 276,
          "second_instruction_count": 276,
          "diff": [
            "--- 0x45dd30",
            "+++ 0x45ded0",
            "@@ -5,7 +5,7 @@",
            " push ebp",
            " sub esp,0x4c",
            " mov esi,eax",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " je local:232",
            " push edi",
            " mov ecx,m4[eax+None*1+0xc]",
            "@@ -13,9 +13,9 @@",
            " mov edx,m4[eax+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x0]",
            " call 3dcore.c::set_3d_viewport_",
            "-cmp m4[None+None*1+0x5b3c6c],0x2",
            "+cmp m4[None+None*1+0x5a6c7c],0x2",
            " jne local:148",
            "-mov edi,m4[None+None*1+0x5b3c74]",
            "+mov edi,m4[None+None*1+0x5a6c84]",
            " mov ecx,m4[None+None*1+model.c::_model_vp]",
            " mov edi,m4[edi+None*1+0x8]",
            " mov edx,m4[ecx+None*1+0x8]",
            "@@ -31,7 +31,7 @@",
            " mov edx,eax",
            " mov eax,ecx",
            " call range.c::get_3d_range_",
            "-mov ecx,m4[None+None*1+0x5b3c74]",
            "+mov ecx,m4[None+None*1+0x5a6c84]",
            " mov edi,m4[None+None*1+model.c::_model_vp]",
            " mov edx,m4[ecx+None*1+0x8]",
            " mov ebx,m4[edi+None*1+0x0]",
            "@@ -53,8 +53,8 @@",
            " lea edx,m4[esp+None*1+0x10]",
            " lea eax,m4[esp+None*1+0x44]",
            " call matrix.c::generate_matrix_from_vector_",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[eax+None*1+0x0]",
            " mov edx,m4[edx+eax*4+0x0]",
            " mov eax,m4[edx+None*1+0x24]",
            "@@ -62,7 +62,7 @@",
            " cmp eax,ecx",
            " jle local:146",
            " lea ecx,m4[eax+eax*1+0x0]",
            "-mov ebx,m4[None+None*1+0x5b3c74]",
            "+mov ebx,m4[None+None*1+0x5a6c84]",
            " neg ecx",
            " mov eax,m4[esp+None*1+0x1c]",
            " mov edx,ecx",
            "@@ -74,7 +74,7 @@",
            " mov eax,m4[ebx+None*1+0x0]",
            " add eax,edx",
            " mov m4[esp+None*1+0x4],eax",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            " mov edx,ecx",
            " mov ebx,m4[eax+None*1+0x8]",
            " mov eax,m4[esp+None*1+0x20]",
            "@@ -85,7 +85,7 @@",
            " mov eax,m4[ebx+None*1+0x4]",
            " add eax,edx",
            " mov m4[esp+None*1+0x8],eax",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            " mov edx,ecx",
            " mov ebx,m4[eax+None*1+0x8]",
            " mov eax,m4[esp+None*1+0x24]",
            "@@ -96,13 +96,13 @@",
            " mov eax,m4[ebx+None*1+0x8]",
            " mov ebx,gamedata.c::_game_visual_config",
            " add eax,edx",
            "-mov edx,m4[None+None*1+0x5b3c74]",
            "+mov edx,m4[None+None*1+0x5a6c84]",
            " mov m4[esp+None*1+0xc],eax",
            " lea eax,m4[esp+None*1+0x4]",
            "-call fx3dmain.c::draw_single_mobile_object_infra_red_3d_visual_",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "+call 3dmain.c::draw_single_mobile_object_infra_red_3d_visual_",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            " mov edx,m4[eax+None*1+0x0]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edi,m4[eax+edx*4+0x0]",
            " add edi,0x48",
            " push 0x100000",
            "@@ -147,9 +147,9 @@",
            " mov eax,ecx",
            " jmp local:63",
            " mov edx,m4[None+None*1+model.c::_model_vp]",
            "-mov edi,m4[None+None*1+0x5b3c64]",
            "-mov ebp,m4[None+None*1+0x5b3c60]",
            "-mov eax,m4[None+None*1+0x5b3c5c]",
            "+mov edi,m4[None+None*1+0x5a6c74]",
            "+mov ebp,m4[None+None*1+0x5a6c70]",
            "+mov eax,m4[None+None*1+0x5a6c6c]",
            " mov ebx,m4[edx+None*1+0x8]",
            " mov ecx,m4[edx+None*1+0x4]",
            " mov edx,m4[edx+None*1+0x0]",
            "@@ -160,15 +160,15 @@",
            " mov edx,ecx",
            " call range.c::get_3d_range_",
            " mov ecx,m4[None+None*1+model.c::_model_vp]",
            "-mov edx,m4[None+None*1+0x5b3c5c]",
            "+mov edx,m4[None+None*1+0x5a6c6c]",
            " mov ebx,m4[ecx+None*1+0x0]",
            " sub edx,ebx",
            " mov m4[esp+None*1+0x44],edx",
            "-mov edx,m4[None+None*1+0x5b3c60]",
            "+mov edx,m4[None+None*1+0x5a6c70]",
            " mov edi,m4[ecx+None*1+0x4]",
            " sub edx,edi",
            " mov m4[esp+None*1+0x48],edx",
            "-mov edx,m4[None+None*1+0x5b3c64]",
            "+mov edx,m4[None+None*1+0x5a6c74]",
            " sub edx,m4[ecx+None*1+0x8]",
            " lea eax,m4[esp+None*1+0x44]",
            " mov m4[esp+None*1+0x4c],edx",
            "@@ -176,9 +176,9 @@",
            " lea edx,m4[esp+None*1+0x10]",
            " lea eax,m4[esp+None*1+0x44]",
            " call matrix.c::generate_matrix_from_vector_",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            " mov ax,m2[eax+None*1+0x0]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " and eax,0xffff",
            " mov edx,m4[edx+eax*4+0x0]",
            " mov eax,m4[edx+None*1+0x24]",
            "@@ -193,7 +193,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+0x5b3c5c]",
            "+mov eax,m4[None+None*1+0x5a6c6c]",
            " add eax,edx",
            " mov m4[esp+None*1+0x4],eax",
            " mov edx,ecx",
            "@@ -202,7 +202,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+0x5b3c60]",
            "+mov eax,m4[None+None*1+0x5a6c70]",
            " add eax,edx",
            " mov m4[esp+None*1+0x8],eax",
            " mov edx,ecx",
            "@@ -212,19 +212,19 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " push gamedata.c::_game_visual_config",
            "-mov eax,m4[None+None*1+0x5b3c64]",
            "-mov ecx,m4[None+None*1+0x5b3c60]",
            "-mov ebx,m4[None+None*1+0x5b3c5c]",
            "+mov eax,m4[None+None*1+0x5a6c74]",
            "+mov ecx,m4[None+None*1+0x5a6c70]",
            "+mov ebx,m4[None+None*1+0x5a6c6c]",
            " sar ecx,0x16",
            " sar ebx,0x16",
            " add eax,edx",
            "-mov edx,m4[None+None*1+0x5b3c74]",
            "+mov edx,m4[None+None*1+0x5a6c84]",
            " mov m4[esp+None*1+0x10],eax",
            " lea eax,m4[esp+None*1+0x8]",
            "-call fx3dmain.c::draw_single_ground_object_infra_red_3d_visual_",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "+call 3dmain.c::draw_single_ground_object_infra_red_3d_visual_",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            " mov ax,m2[eax+None*1+0x0]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " and eax,0xffff",
            " mov edi,m4[edx+eax*4+0x0]",
            " jmp local:106"
          ]
        },
        {
          "symbol": "mfdfunc.c::mfd_radar_",
          "source": "E:\\apache\\source\\avionics\\mfdfunc.c",
          "first": "0x45cf64",
          "second": "0x45d104",
          "first_instruction_count": 806,
          "second_instruction_count": 806,
          "diff": [
            "--- 0x45cf64",
            "+++ 0x45d104",
            "@@ -78,7 +78,7 @@",
            " mov edx,ecx",
            " call 2dline.c::draw_2d_line_",
            " push 0xd1",
            "-mov ecx,fxpoly1.c::_3dfx_fill_flame_translucent_rgb_polygon_+0x94",
            "+mov ecx,ddraw.c::store_windows_mouse_pointer_background_+0x100",
            " mov ebx,0x76ac00",
            " mov eax,0xff895400",
            " mov edx,ecx",
            "@@ -145,7 +145,7 @@",
            " call 2dline.c::draw_2d_line_",
            " push 0xd1",
            " mov ecx,0x76ac00",
            "-mov ebx,fxpoly1.c::_3dfx_fill_flame_translucent_rgb_polygon_+0x94",
            "+mov ebx,ddraw.c::store_windows_mouse_pointer_background_+0x100",
            " mov edx,0xff895400",
            " mov eax,ebx",
            " call 2dline.c::draw_2d_line_",
            "@@ -172,7 +172,7 @@",
            " xor eax,eax",
            " call 2dwrap.c::draw_2d_circle_",
            " mov ecx,0xd3",
            "-mov ebx,fxpoly1.c::_3dfx_fill_flame_translucent_rgb_polygon_+0x94",
            "+mov ebx,ddraw.c::store_windows_mouse_pointer_background_+0x100",
            " xor edx,edx",
            " xor eax,eax",
            " call 2dwrap.c::draw_2d_circle_",
            "@@ -193,7 +193,7 @@",
            " call 2dwrap.c::draw_2d_circle_",
            " mov eax,m4[None+None*1+model.c::_model_heading]",
            " call 2dcore.c::set_2d_rotation_",
            "-test m1[None+None*1+0x6748c5],0x2",
            "+test m1[None+None*1+0x6678d5],0x2",
            " jne local:639",
            " mov eax,m4[None+None*1+model.c::_model_3d]",
            " mov eax,m4[eax+None*1+0x8]",
            "@@ -238,7 +238,7 @@",
            " call text.c::print_text_string_",
            " cmp m4[None+None*1+tads.c::_tads_active],0x0",
            " jne local:271",
            "-mov eax,m4[None+None*1+0x5b3c6c]",
            "+mov eax,m4[None+None*1+0x5a6c7c]",
            " cmp eax,0x1",
            " jae local:676",
            " mov edx,0xccccc",
            "@@ -369,7 +369,7 @@",
            " xor eax,eax",
            " neg edx",
            " call 2dline.c::draw_2d_line_",
            "-test m1[None+None*1+0x6748c5],0x2",
            "+test m1[None+None*1+0x6678d5],0x2",
            " jne local:523",
            " mov eax,m4[None+None*1+model.c::_model_3d]",
            " mov eax,m4[eax+None*1+0x8]",
            "@@ -445,15 +445,15 @@",
            " call text.c::print_text_string_",
            " cmp m4[None+None*1+tads.c::_tads_active],0x0",
            " jne local:285",
            "-mov eax,m4[None+None*1+0x5b3c6c]",
            "+mov eax,m4[None+None*1+0x5a6c7c]",
            " cmp eax,0x1",
            " jb local:584",
            " ja local:582",
            "-cmp m4[None+None*1+0x5b3c6c],0x2",
            "+cmp m4[None+None*1+0x5a6c7c],0x2",
            " jne local:620",
            "-mov edx,m4[None+None*1+0x5b3c74]",
            "+mov edx,m4[None+None*1+0x5a6c84]",
            " mov ebx,m4[None+None*1+model.c::_model_vp]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ecx,m4[edx+None*1+0x0]",
            " mov edi,m4[ebx+None*1+0x8]",
            " mov edx,m4[edx+None*1+0x8]",
            "@@ -617,20 +617,20 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            " mov ax,m2[eax+None*1+0x0]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " and eax,0xffff",
            " mov ecx,m4[edx+eax*4+0x0]",
            " mov edx,m4[None+None*1+model.c::_model_vp]",
            "-mov ebx,m4[None+None*1+0x5b3c64]",
            "+mov ebx,m4[None+None*1+0x5a6c74]",
            " mov eax,m4[edx+None*1+0x8]",
            " sub eax,ebx",
            "-mov esi,m4[None+None*1+0x5b3c60]",
            "+mov esi,m4[None+None*1+0x5a6c70]",
            " mov ebx,eax",
            " mov eax,m4[edx+None*1+0x4]",
            " sub eax,esi",
            "-mov edi,m4[None+None*1+0x5b3c5c]",
            "+mov edi,m4[None+None*1+0x5a6c6c]",
            " mov esi,eax",
            " mov eax,m4[edx+None*1+0x0]",
            " mov edx,esi",
            "@@ -674,11 +674,11 @@",
            " call text.c::print_text_string_",
            " jmp local:200",
            " ja local:740",
            "-cmp m4[None+None*1+0x5b3c6c],0x2",
            "+cmp m4[None+None*1+0x5a6c7c],0x2",
            " jne local:743",
            "-mov edx,m4[None+None*1+0x5b3c74]",
            "+mov edx,m4[None+None*1+0x5a6c84]",
            " mov ebx,m4[None+None*1+model.c::_model_vp]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ecx,m4[edx+None*1+0x0]",
            " mov edi,m4[ebx+None*1+0x8]",
            " mov edx,m4[edx+None*1+0x8]",
            "@@ -740,15 +740,15 @@",
            " cmp eax,0x2",
            " je local:677",
            " jmp local:243",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            " mov ax,m2[eax+None*1+0x0]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " and eax,0xffff",
            "-mov ebp,m4[None+None*1+0x5b3c64]",
            "+mov ebp,m4[None+None*1+0x5a6c74]",
            " mov ecx,m4[edx+eax*4+0x0]",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            "-mov esi,m4[None+None*1+0x5b3c60]",
            "-mov edi,m4[None+None*1+0x5b3c5c]",
            "+mov esi,m4[None+None*1+0x5a6c70]",
            "+mov edi,m4[None+None*1+0x5a6c6c]",
            " mov ebx,m4[eax+None*1+0x8]",
            " mov edx,m4[eax+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x0]"
          ]
        },
        {
          "symbol": "mfdfunc.c::mfd_status_",
          "source": "E:\\apache\\source\\avionics\\mfdfunc.c",
          "first": "0x460324",
          "second": "0x4604c4",
          "first_instruction_count": 204,
          "second_instruction_count": 204,
          "diff": [
            "--- 0x460324",
            "+++ 0x4604c4",
            "@@ -35,7 +35,7 @@",
            " mov edx,ecx",
            " mov eax,0xfff0cccd",
            " call 2dline.c::draw_2d_line_",
            "-test m1[None+None*1+0x6748c5],0x2",
            "+test m1[None+None*1+0x6678d5],0x2",
            " jne local:177",
            " cmp m4[None+None*1+initrad.c::_ground_radar_active],0x0",
            " je local:179",
            "@@ -50,7 +50,7 @@",
            " lea edx,m4[esp+None*1+0x4]",
            " mov eax,text:'RADAR:'",
            " call mfdfunc.c::print_field_and_value_",
            "-mov dh,m1[None+None*1+0x6748c5]",
            "+mov dh,m1[None+None*1+0x6678d5]",
            " mov esi,0x1",
            " test dh,0x4",
            " je local:63",
            "@@ -61,7 +61,7 @@",
            " mov eax,text:'LOW FUEL'",
            " mov esi,0x2",
            " call mfdfunc.c::print_field_and_value_",
            "-test m1[None+None*1+0x6748c6],0x8",
            "+test m1[None+None*1+0x6678d6],0x8",
            " je local:78",
            " mov m4[esp+None*1+0x18],esi",
            " fild m4[esp+None*1+0x18]",
            "@@ -76,7 +76,7 @@",
            " mov ebx,m4[esp+None*1+0x1c]",
            " inc esi",
            " call mfdfunc.c::print_field_and_value_",
            "-test m1[None+None*1+0x6748c5],0x40",
            "+test m1[None+None*1+0x6678d5],0x40",
            " je local:93",
            " mov m4[esp+None*1+0x18],esi",
            " fild m4[esp+None*1+0x18]",
            "@@ -91,7 +91,7 @@",
            " mov ebx,m4[esp+None*1+0x1c]",
            " inc esi",
            " call mfdfunc.c::print_field_and_value_",
            "-test m1[None+None*1+0x6748c5],0x20",
            "+test m1[None+None*1+0x6678d5],0x20",
            " je local:108",
            " mov m4[esp+None*1+0x18],esi",
            " fild m4[esp+None*1+0x18]",
            "@@ -106,7 +106,7 @@",
            " mov ebx,m4[esp+None*1+0x1c]",
            " inc esi",
            " call mfdfunc.c::print_field_and_value_",
            "-test m1[None+None*1+0x6748c6],0x1",
            "+test m1[None+None*1+0x6678d6],0x1",
            " je local:123",
            " mov m4[esp+None*1+0x18],esi",
            " fild m4[esp+None*1+0x18]",
            "@@ -121,7 +121,7 @@",
            " mov ebx,m4[esp+None*1+0x1c]",
            " inc esi",
            " call mfdfunc.c::print_field_and_value_",
            "-test m1[None+None*1+0x6748c5],0x80",
            "+test m1[None+None*1+0x6678d5],0x80",
            " je local:138",
            " mov m4[esp+None*1+0x18],esi",
            " fild m4[esp+None*1+0x18]",
            "@@ -136,7 +136,7 @@",
            " mov ebx,m4[esp+None*1+0x1c]",
            " inc esi",
            " call mfdfunc.c::print_field_and_value_",
            "-test m1[None+None*1+0x6748c5],0x8",
            "+test m1[None+None*1+0x6678d5],0x8",
            " je local:153",
            " mov m4[esp+None*1+0x18],esi",
            " fild m4[esp+None*1+0x18]",
            "@@ -151,7 +151,7 @@",
            " mov ebx,m4[esp+None*1+0x1c]",
            " inc esi",
            " call mfdfunc.c::print_field_and_value_",
            "-test m1[None+None*1+0x6748c6],0x2",
            "+test m1[None+None*1+0x6678d6],0x2",
            " je local:168",
            " mov m4[esp+None*1+0x18],esi",
            " fild m4[esp+None*1+0x18]",
            "@@ -166,7 +166,7 @@",
            " mov ebx,m4[esp+None*1+0x1c]",
            " inc esi",
            " call mfdfunc.c::print_field_and_value_",
            "-test m1[None+None*1+0x6748c5],0x10",
            "+test m1[None+None*1+0x6678d5],0x10",
            " jne local:185",
            " mov esp,ebp",
            " pop ebp"
          ]
        },
        {
          "symbol": "mfdfunc.c::mfd_weapons_",
          "source": "E:\\apache\\source\\avionics\\mfdfunc.c",
          "first": "0x45edd0",
          "second": "0x45ef70",
          "first_instruction_count": 1044,
          "second_instruction_count": 1044,
          "diff": [
            "--- 0x45edd0",
            "+++ 0x45ef70",
            "@@ -81,10 +81,10 @@",
            " sub edi,eax",
            " mov eax,m4[ebp+None*1+0x4]",
            " call setblock.asm::_set_block",
            "-mov eax,m4[None+None*1+0x62e5b0]",
            "+mov eax,m4[None+None*1+0x6215a8]",
            " cmp eax,0x1",
            " jae local:723",
            "-mov eax,m4[None+None*1+0x62e5c4]",
            "+mov eax,m4[None+None*1+0x6215bc]",
            " cmp eax,0x1",
            " jae local:745",
            " mov eax,m4[None+None*1+apweapon.c::_apache_weapons]",
            "@@ -92,23 +92,23 @@",
            " cmp eax,0x3",
            " ja local:98",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x48c]",
            "-mov eax,m4[None+None*1+0x62e560]",
            "+mov eax,m4[None+None*1+0x621558]",
            " cmp eax,0x4",
            " ja local:817",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x49c]",
            "-mov eax,m4[None+None*1+0x62e584]",
            "+mov eax,m4[None+None*1+0x62157c]",
            " sub eax,0x2",
            " cmp eax,0x3",
            " ja local:107",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x4c4]",
            "-mov eax,m4[None+None*1+0x62e588]",
            "+mov eax,m4[None+None*1+0x621580]",
            " cmp eax,0x4",
            " ja local:944",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x4d4]",
            " mov edx,0x4b",
            " mov eax,0x3b",
            " call 2dwrap.c::set_2d_text_position_",
            "-mov ebx,m4[None+None*1+0x62e5d8]",
            "+mov ebx,m4[None+None*1+0x6215d0]",
            " push ebx",
            " push text:'%04d'",
            " lea eax,m4[esp+None*1+0x8]",
            "@@ -120,7 +120,7 @@",
            " call text.c::print_text_string_",
            " mov eax,0x3b",
            " call 2dwrap.c::set_2d_text_position_",
            "-mov esi,m4[None+None*1+0x62e600]",
            "+mov esi,m4[None+None*1+0x6215f8]",
            " push esi",
            " push text:'C:%02d'",
            " lea eax,m4[esp+None*1+0x8]",
            "@@ -132,7 +132,7 @@",
            " call text.c::print_text_string_",
            " mov eax,0x3b",
            " call 2dwrap.c::set_2d_text_position_",
            "-mov edi,m4[None+None*1+0x62e5ec]",
            "+mov edi,m4[None+None*1+0x6215e4]",
            " push edi",
            " push text:'F:%02d'",
            " lea eax,m4[esp+None*1+0x8]",
            "@@ -272,10 +272,10 @@",
            " sub edi,ecx",
            " mov ecx,m4[ebp+None*1+0x0]",
            " call setblock.asm::_set_block",
            "-mov eax,m4[None+None*1+0x62e5b0]",
            "+mov eax,m4[None+None*1+0x6215a8]",
            " cmp eax,0x1",
            " jae local:402",
            "-mov eax,m4[None+None*1+0x62e5c4]",
            "+mov eax,m4[None+None*1+0x6215bc]",
            " cmp eax,0x1",
            " jae local:424",
            " mov eax,m4[None+None*1+apweapon.c::_apache_weapons]",
            "@@ -283,23 +283,23 @@",
            " cmp eax,0x3",
            " ja local:289",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x41c]",
            "-mov eax,m4[None+None*1+0x62e560]",
            "+mov eax,m4[None+None*1+0x621558]",
            " cmp eax,0x4",
            " ja local:496",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x42c]",
            "-mov eax,m4[None+None*1+0x62e584]",
            "+mov eax,m4[None+None*1+0x62157c]",
            " sub eax,0x2",
            " cmp eax,0x3",
            " ja local:298",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x454]",
            "-mov eax,m4[None+None*1+0x62e588]",
            "+mov eax,m4[None+None*1+0x621580]",
            " cmp eax,0x4",
            " ja local:623",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x464]",
            " mov edx,0x26",
            " mov eax,0x1b",
            " call 2dwrap.c::set_2d_text_position_",
            "-mov ebp,m4[None+None*1+0x62e5d8]",
            "+mov ebp,m4[None+None*1+0x6215d0]",
            " push ebp",
            " push text:'%04d'",
            " lea eax,m4[esp+None*1+0x8]",
            "@@ -311,7 +311,7 @@",
            " call text.c::print_text_string_",
            " mov eax,edx",
            " call 2dwrap.c::set_2d_text_position_",
            "-mov eax,m4[None+None*1+0x62e600]",
            "+mov eax,m4[None+None*1+0x6215f8]",
            " push eax",
            " push text:'%02d'",
            " lea eax,m4[esp+None*1+0x8]",
            "@@ -323,7 +323,7 @@",
            " call text.c::print_text_string_",
            " mov eax,0x1f",
            " call 2dwrap.c::set_2d_text_position_",
            "-mov edx,m4[None+None*1+0x62e5ec]",
            "+mov edx,m4[None+None*1+0x6215e4]",
            " push edx",
            " push text:'%02d'",
            " lea eax,m4[esp+None*1+0x8]",
            "@@ -462,8 +462,8 @@",
            " add ebx,0x1b",
            " add eax,0x36",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e560]",
            "-mov edi,m4[None+None*1+0x62e574]",
            "+mov eax,m4[None+None*1+0x621558]",
            "+mov edi,m4[None+None*1+0x62156c]",
            " mov edx,m4[esp+None*1+0x18]",
            " add eax,edi",
            " add edx,eax",
            "@@ -487,8 +487,8 @@",
            " add ebx,0x1b",
            " add eax,0x36",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e560]",
            "-mov ebx,m4[None+None*1+0x62e574]",
            "+mov eax,m4[None+None*1+0x621558]",
            "+mov ebx,m4[None+None*1+0x62156c]",
            " mov esi,m4[esp+None*1+0x1c]",
            " add eax,ebx",
            " add esi,eax",
            "@@ -530,7 +530,7 @@",
            " add ebx,0x22",
            " add eax,0xc",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e574]",
            "+mov eax,m4[None+None*1+0x62156c]",
            " cmp eax,0x4",
            " ja local:536",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x440]",
            "@@ -589,8 +589,8 @@",
            " add ebx,0x1b",
            " add eax,0x2e",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e588]",
            "-mov esi,m4[None+None*1+0x62e59c]",
            "+mov eax,m4[None+None*1+0x621580]",
            "+mov esi,m4[None+None*1+0x621594]",
            " mov edi,m4[esp+None*1+0x18]",
            " add eax,esi",
            " add edi,eax",
            "@@ -614,8 +614,8 @@",
            " add ebx,0x1b",
            " add eax,0x2e",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e588]",
            "-mov ecx,m4[None+None*1+0x62e59c]",
            "+mov eax,m4[None+None*1+0x621580]",
            "+mov ecx,m4[None+None*1+0x621594]",
            " mov ebx,m4[esp+None*1+0x1c]",
            " add eax,ecx",
            " add ebx,eax",
            "@@ -657,7 +657,7 @@",
            " add ebx,0x22",
            " add eax,0x14",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e59c]",
            "+mov eax,m4[None+None*1+0x621594]",
            " cmp eax,0x4",
            " ja local:663",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x478]",
            "@@ -783,8 +783,8 @@",
            " add ebx,0x34",
            " add eax,0x6c",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e560]",
            "-mov ebx,m4[None+None*1+0x62e574]",
            "+mov eax,m4[None+None*1+0x621558]",
            "+mov ebx,m4[None+None*1+0x62156c]",
            " mov esi,m4[esp+None*1+0x18]",
            " add eax,ebx",
            " add esi,eax",
            "@@ -808,8 +808,8 @@",
            " add ebx,0x34",
            " add eax,0x6c",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e560]",
            "-mov edx,m4[None+None*1+0x62e574]",
            "+mov eax,m4[None+None*1+0x621558]",
            "+mov edx,m4[None+None*1+0x62156c]",
            " mov ecx,m4[esp+None*1+0x1c]",
            " add eax,edx",
            " add ecx,eax",
            "@@ -851,7 +851,7 @@",
            " add ebx,0x42",
            " add eax,0x1a",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e574]",
            "+mov eax,m4[None+None*1+0x62156c]",
            " cmp eax,0x4",
            " ja local:857",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x4b0]",
            "@@ -910,8 +910,8 @@",
            " add ebx,0x34",
            " add eax,0x5a",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e588]",
            "-mov edx,m4[None+None*1+0x62e59c]",
            "+mov eax,m4[None+None*1+0x621580]",
            "+mov edx,m4[None+None*1+0x621594]",
            " mov ecx,m4[esp+None*1+0x18]",
            " add eax,edx",
            " add ecx,eax",
            "@@ -935,8 +935,8 @@",
            " add ebx,0x34",
            " add eax,0x5a",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e588]",
            "-mov edi,m4[None+None*1+0x62e59c]",
            "+mov eax,m4[None+None*1+0x621580]",
            "+mov edi,m4[None+None*1+0x621594]",
            " mov ebp,m4[esp+None*1+0x1c]",
            " add eax,edi",
            " add ebp,eax",
            "@@ -978,7 +978,7 @@",
            " add ebx,0x42",
            " add eax,0x2b",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e59c]",
            "+mov eax,m4[None+None*1+0x621594]",
            " cmp eax,0x4",
            " ja local:984",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x4e8]"
          ]
        },
        {
          "symbol": "missions.c::get_tag_",
          "source": "E:\\apache\\source\\menus\\missions\\missions.c",
          "first": "0x423604",
          "second": "0x423984",
          "first_instruction_count": 42,
          "second_instruction_count": 42,
          "diff": [
            "--- 0x423604",
            "+++ 0x423984",
            "@@ -12,7 +12,7 @@",
            " test edx,edx",
            " jl local:22",
            " mov eax,ebx",
            "-mov edx,m4[ecx+None*1+constant:f4b94d00]",
            "+mov edx,m4[ecx+None*1+constant:d8ea4c00]",
            " call _strcmp::strcmp_",
            " test eax,eax",
            " je local:35"
          ]
        },
        {
          "symbol": "missions.c::process_mission_data_",
          "source": "E:\\apache\\source\\menus\\missions\\missions.c",
          "first": "0x423aa8",
          "second": "0x423e28",
          "first_instruction_count": 531,
          "second_instruction_count": 531,
          "diff": [
            "--- 0x423aa8",
            "+++ 0x423e28",
            "@@ -246,7 +246,7 @@",
            " ret ",
            " mov eax,ebx",
            " call atoi::atoi_",
            "-mov m4[None+None*1+0x62e5d8],eax",
            "+mov m4[None+None*1+0x6215d0],eax",
            " add esp,0x420",
            " pop ecx",
            " pop ebx"
          ]
        },
        {
          "symbol": "misssave.c::save_mission_weapons_",
          "source": "E:\\apache\\source\\menus\\missions\\misssave.c",
          "first": "0x425db4",
          "second": "0x426134",
          "first_instruction_count": 54,
          "second_instruction_count": 54,
          "diff": [
            "--- 0x425db4",
            "+++ 0x426134",
            "@@ -19,7 +19,7 @@",
            " add edi,0x14",
            " cmp esi,0x9",
            " jl local:14",
            "-mov ebx,m4[None+None*1+0x62e614]",
            "+mov ebx,m4[None+None*1+0x62160c]",
            " push ebx",
            " push text:':Gun\\n%d\\n'",
            " lea edx,m4[esp+None*1+0x8]"
          ]
        },
        {
          "symbol": "misssel.c::initialise_mission_select_screen_",
          "source": "E:\\apache\\source\\menus\\missions\\misssel.c",
          "first": "0x424a90",
          "second": "0x424e10",
          "first_instruction_count": 276,
          "second_instruction_count": 276,
          "diff": [
            "--- 0x424a90",
            "+++ 0x424e10",
            "@@ -100,7 +100,7 @@",
            " add esi,0x12",
            " call object.c::create_object_",
            " add esp,0x4c",
            "-mov m4[ebx+None*1+0x538bdc],eax",
            "+mov m4[ebx+None*1+0x52bbec],eax",
            " cmp edx,0x8",
            " jl local:68",
            " push 0x0"
          ]
        },
        {
          "symbol": "mobobjs.c::bounding_box_point_collision_test_",
          "source": "E:\\library\\3dvisual\\mobobjs.c",
          "first": "0x49796c",
          "second": "0x493e6c",
          "first_instruction_count": 165,
          "second_instruction_count": 165,
          "diff": [
            "--- 0x49796c",
            "+++ 0x493e6c",
            "@@ -39,11 +39,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xae972c]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -56,15 +56,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x28],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -77,15 +77,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x24],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xae9740]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -94,7 +94,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ecx,m4[ebp+None*1+0x0]",
            " mov eax,m4[eax+ecx*4+0x0]",
            " mov ecx,m4[eax+None*1+0xc]"
          ]
        },
        {
          "symbol": "mobobjs.c::draw_mobile_object_",
          "source": "E:\\library\\3dvisual\\mobobjs.c",
          "first": "0x4973e0",
          "second": "0x4938e0",
          "first_instruction_count": 17,
          "second_instruction_count": 17,
          "diff": [
            "--- 0x4973e0",
            "+++ 0x4938e0",
            "@@ -1,8 +1,8 @@",
            " push ecx",
            "-mov ecx,m4[None+None*1+0xafaee0]",
            "+mov ecx,m4[None+None*1+0xae5590]",
            " cmp ecx,m4[eax+None*1+0x8]",
            " jne local:8",
            "-test m1[None+None*1+0xafaee4],0x4",
            "+test m1[None+None*1+0xae5594],0x4",
            " jne local:8",
            " pop ecx",
            " ret ",
            "@@ -11,7 +11,7 @@",
            " mov edx,m4[eax+None*1+0x4]",
            " mov m4[ecx+None*1+0x4],edx",
            " mov eax,m4[eax+None*1+0x8]",
            "-call fx3dobj1.c::draw_3d_object_",
            "+call 3dobjs1.c::draw_3d_object_",
            " pop edx",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "mobobjs.c::get_mobile_object_in_range_",
          "source": "E:\\library\\3dvisual\\mobobjs.c",
          "first": "0x497740",
          "second": "0x493c40",
          "first_instruction_count": 148,
          "second_instruction_count": 148,
          "diff": [
            "--- 0x497740",
            "+++ 0x493c40",
            "@@ -7,18 +7,18 @@",
            " je local:29",
            " cmp m4[None+None*1+mobobjs.c::_search_in_progress],0x0",
            " je local:24",
            "-mov eax,m4[None+None*1+0xd8cb18]",
            "+mov eax,m4[None+None*1+0xd771c8]",
            " mov eax,m4[eax+None*1+0x18]",
            "-mov m4[None+None*1+0xd8cb18],eax",
            "-mov edx,m4[None+None*1+0xd8cb18]",
            "+mov m4[None+None*1+0xd771c8],eax",
            "+mov edx,m4[None+None*1+0xd771c8]",
            " test edx,edx",
            " jne local:119",
            "-inc m4[None+None*1+0xd8caf4]",
            "-mov ebx,m4[None+None*1+0xd8cb04]",
            "-mov eax,m4[None+None*1+0xd8caf4]",
            "+inc m4[None+None*1+0xd771a4]",
            "+mov ebx,m4[None+None*1+0xd771b4]",
            "+mov eax,m4[None+None*1+0xd771a4]",
            " cmp eax,ebx",
            " jg local:138",
            "-mov edx,m4[None+None*1+0xd8caf0]",
            "+mov edx,m4[None+None*1+0xd771a0]",
            " shl edx,0x8",
            " mov eax,m4[edx+eax*4+mobobjs.c::_mobile_object_map]",
            " jmp local:11",
            "@@ -37,69 +37,69 @@",
            " jl local:103",
            " cmp ebp,0xfffffff",
            " jg local:103",
            "-mov m4[None+None*1+0xd8cb14],ecx",
            "-mov m4[None+None*1+0xd8caec],edx",
            "+mov m4[None+None*1+0xd771c4],ecx",
            "+mov m4[None+None*1+0xd7719c],edx",
            " mov eax,m4[ecx+None*1+0x8]",
            " mov ecx,ebp",
            "-mov m4[None+None*1+0xd8cb08],esi",
            "+mov m4[None+None*1+0xd771b8],esi",
            " sar ecx,0x16",
            "-mov m4[None+None*1+0xd8cb0c],ebp",
            "-mov m4[None+None*1+0xd8cafc],ecx",
            "-mov m4[None+None*1+0xd8cb04],ecx",
            "+mov m4[None+None*1+0xd771bc],ebp",
            "+mov m4[None+None*1+0xd771ac],ecx",
            "+mov m4[None+None*1+0xd771b4],ecx",
            " mov ecx,esi",
            "-mov m4[None+None*1+0xd8cb10],eax",
            "+mov m4[None+None*1+0xd771c0],eax",
            " sub ecx,edx",
            " mov eax,esi",
            " mov edx,ecx",
            " sar eax,0x16",
            " sar edx,0x16",
            "-mov m4[None+None*1+0xd8cb00],eax",
            "+mov m4[None+None*1+0xd771b0],eax",
            " cmp eax,edx",
            " jge local:109",
            " test eax,eax",
            " jle local:111",
            "-mov edx,m4[None+None*1+0xd8caec]",
            "-mov m4[None+None*1+0xd8caf8],eax",
            "-mov eax,m4[None+None*1+0xd8cb08]",
            "+mov edx,m4[None+None*1+0xd7719c]",
            "+mov m4[None+None*1+0xd771a8],eax",
            "+mov eax,m4[None+None*1+0xd771b8]",
            " add eax,edx",
            "-mov ecx,m4[None+None*1+0xd8cb00]",
            "+mov ecx,m4[None+None*1+0xd771b0]",
            " sar eax,0x16",
            " cmp eax,ecx",
            " jge local:69",
            " mov eax,ecx",
            " cmp eax,0x3f",
            " jge local:113",
            "-mov ebx,m4[None+None*1+0xd8caec]",
            "-mov m4[None+None*1+0xd8cb00],eax",
            "-mov eax,m4[None+None*1+0xd8cb0c]",
            "+mov ebx,m4[None+None*1+0xd7719c]",
            "+mov m4[None+None*1+0xd771b0],eax",
            "+mov eax,m4[None+None*1+0xd771bc]",
            " sub eax,ebx",
            "-mov esi,m4[None+None*1+0xd8cafc]",
            "+mov esi,m4[None+None*1+0xd771ac]",
            " sar eax,0x16",
            " cmp eax,esi",
            " jle local:80",
            " mov eax,esi",
            " test eax,eax",
            " jle local:115",
            "-mov edi,m4[None+None*1+0xd8caec]",
            "-mov m4[None+None*1+0xd8cafc],eax",
            "-mov eax,m4[None+None*1+0xd8cb0c]",
            "+mov edi,m4[None+None*1+0xd7719c]",
            "+mov m4[None+None*1+0xd771ac],eax",
            "+mov eax,m4[None+None*1+0xd771bc]",
            " add eax,edi",
            "-mov ebp,m4[None+None*1+0xd8cb04]",
            "+mov ebp,m4[None+None*1+0xd771b4]",
            " sar eax,0x16",
            " cmp eax,ebp",
            " jge local:91",
            " mov eax,ebp",
            " cmp eax,0x3f",
            " jge local:117",
            "-mov m4[None+None*1+0xd8cb04],eax",
            "+mov m4[None+None*1+0xd771b4],eax",
            " mov m4[None+None*1+mobobjs.c::_search_in_progress],0x1",
            "-mov eax,m4[None+None*1+0xd8caf8]",
            "-mov m4[None+None*1+0xd8caf0],eax",
            "-mov edi,m4[None+None*1+0xd8cb00]",
            "-cmp edi,m4[None+None*1+0xd8caf0]",
            "+mov eax,m4[None+None*1+0xd771a8]",
            "+mov m4[None+None*1+0xd771a0],eax",
            "+mov edi,m4[None+None*1+0xd771b0]",
            "+cmp edi,m4[None+None*1+0xd771a0]",
            " jl local:140",
            "-mov eax,m4[None+None*1+0xd8cafc]",
            "-mov m4[None+None*1+0xd8caf4],eax",
            "+mov eax,m4[None+None*1+0xd771ac]",
            "+mov m4[None+None*1+0xd771a4],eax",
            " jmp local:16",
            " xor eax,eax",
            " pop ebp",
            "@@ -118,25 +118,25 @@",
            " mov eax,0x3f",
            " jmp local:93",
            " mov ecx,m4[edx+None*1+0x8]",
            "-mov edx,m4[None+None*1+0xd8cb08]",
            "+mov edx,m4[None+None*1+0xd771b8]",
            " mov eax,m4[ecx+None*1+0x0]",
            "-mov ebx,m4[None+None*1+0xd8cb0c]",
            "+mov ebx,m4[None+None*1+0xd771bc]",
            " sub eax,edx",
            " mov edx,m4[ecx+None*1+0x4]",
            "-mov edi,m4[None+None*1+0xd8cb10]",
            "+mov edi,m4[None+None*1+0xd771c0]",
            " sub edx,ebx",
            " mov ebx,m4[ecx+None*1+0x8]",
            " sub ebx,edi",
            " call range.c::get_approx_3d_range_",
            "-cmp eax,m4[None+None*1+0xd8caec]",
            "+cmp eax,m4[None+None*1+0xd7719c]",
            " jge local:9",
            "-mov eax,m4[None+None*1+0xd8cb18]",
            "+mov eax,m4[None+None*1+0xd771c8]",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            "-inc m4[None+None*1+0xd8caf0]",
            "+inc m4[None+None*1+0xd771a0]",
            " jmp local:97",
            " xor ebp,ebp",
            " xor eax,eax"
          ]
        },
        {
          "symbol": "mobobjs.c::get_rotated_mobile_object_collision_test_",
          "source": "E:\\library\\3dvisual\\mobobjs.c",
          "first": "0x497b2c",
          "second": "0x49402c",
          "first_instruction_count": 125,
          "second_instruction_count": 125,
          "diff": [
            "--- 0x497b2c",
            "+++ 0x49402c",
            "@@ -35,11 +35,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd494]",
            "+mov eax,m4[None+None*1+0xae96fc]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd498]",
            "+mov eax,m4[None+None*1+0xae9700]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -52,15 +52,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0xafd49c]",
            "+mov edx,m4[None+None*1+0xae9704]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4a0]",
            "+mov eax,m4[None+None*1+0xae9708]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4a4]",
            "+mov eax,m4[None+None*1+0xae970c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -73,15 +73,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x10],edx",
            "-mov edx,m4[None+None*1+0xafd4a8]",
            "+mov edx,m4[None+None*1+0xae9710]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4ac]",
            "+mov eax,m4[None+None*1+0xae9714]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4b0]",
            "+mov eax,m4[None+None*1+0xae9718]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -90,7 +90,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ecx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ecx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ebp+None*1+0x0]",
            " mov eax,m4[ecx+eax*4+0x0]",
            " mov ecx,m4[esp+None*1+0xc]"
          ]
        },
        {
          "symbol": "mobobjs.c::initialise_mobile_object_map_",
          "source": "E:\\library\\3dvisual\\mobobjs.c",
          "first": "0x496c10",
          "second": "0x493110",
          "first_instruction_count": 27,
          "second_instruction_count": 27,
          "diff": [
            "--- 0x496c10",
            "+++ 0x493110",
            "@@ -9,7 +9,7 @@",
            " mov edx,ebx",
            " shl eax,0x8",
            " add eax,0x4",
            "-mov m4[eax+None*1+0xd88adc],esi",
            "+mov m4[eax+None*1+0xd7318c],esi",
            " cmp eax,edx",
            " jne local:10",
            " inc ecx"
          ]
        },
        {
          "symbol": "mobobjs.c::mobile_object_line_collision_test_",
          "source": "E:\\library\\3dvisual\\mobobjs.c",
          "first": "0x4974e4",
          "second": "0x4939e4",
          "first_instruction_count": 175,
          "second_instruction_count": 175,
          "diff": [
            "--- 0x4974e4",
            "+++ 0x4939e4",
            "@@ -86,7 +86,7 @@",
            " je local:131",
            " cmp ecx,m4[esp+None*1+0x20]",
            " je local:131",
            "-mov ebx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ebx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ecx+None*1+0x0]",
            " mov esi,m4[ebx+eax*4+0x0]",
            " test m1[esi+None*1+0x98],0x4"
          ]
        },
        {
          "symbol": "mobobjs.c::mobile_object_point_collision_test_",
          "source": "E:\\library\\3dvisual\\mobobjs.c",
          "first": "0x497424",
          "second": "0x493924",
          "first_instruction_count": 67,
          "second_instruction_count": 67,
          "diff": [
            "--- 0x497424",
            "+++ 0x493924",
            "@@ -30,7 +30,7 @@",
            " je local:50",
            " cmp ecx,m4[esp+None*1+0x8]",
            " je local:50",
            "-mov edi,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edi,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ecx+None*1+0x0]",
            " mov edi,m4[edi+eax*4+0x0]",
            " test m1[edi+None*1+0x98],0x4"
          ]
        },
        {
          "symbol": "mobobjs.c::scan_mobile_objects_",
          "source": "E:\\library\\3dvisual\\mobobjs.c",
          "first": "0x496eb0",
          "second": "0x4933b0",
          "first_instruction_count": 382,
          "second_instruction_count": 382,
          "diff": [
            "--- 0x496eb0",
            "+++ 0x4933b0",
            "@@ -8,9 +8,9 @@",
            " mov edx,m4[None+None*1+3dcore.c::_cloud_mode]",
            " cmp edx,0x1",
            " jne local:14",
            "-test m1[None+None*1+0xafaee4],0x2",
            "+test m1[None+None*1+0xae5594],0x2",
            " jne local:87",
            "-cmp edx,m4[None+None*1+0xafaed8]",
            "+cmp edx,m4[None+None*1+0xae5588]",
            " je local:87",
            " mov eax,m4[None+None*1+secscan.c::_x_sector]",
            " mov ebp,m4[None+None*1+secscan.c::_y_sector]",
            "@@ -22,35 +22,35 @@",
            " test ebp,ebp",
            " je local:87",
            " mov eax,m4[ebp+None*1+0x8]",
            "-mov edx,m4[None+None*1+0xafaec8]",
            "+mov edx,m4[None+None*1+0xae5578]",
            " cmp edx,m4[eax+None*1+0x8]",
            " jg local:44",
            "-test m1[None+None*1+0xafaee4],0x2",
            "+test m1[None+None*1+0xae5594],0x2",
            " je local:44",
            " mov ebp,m4[ebp+None*1+0x18]",
            " jmp local:21",
            "-test m1[None+None*1+0xafaee4],0x2",
            "+test m1[None+None*1+0xae5594],0x2",
            " je local:41",
            " test ebp,ebp",
            " je local:87",
            " mov eax,m4[ebp+None*1+0x8]",
            "-mov edi,m4[None+None*1+0xafaecc]",
            "+mov edi,m4[None+None*1+0xae557c]",
            " cmp edi,m4[eax+None*1+0x8]",
            " jl local:222",
            " mov ebp,m4[ebp+None*1+0x18]",
            " jmp local:33",
            "-cmp m4[None+None*1+0xafaed8],0x0",
            "+cmp m4[None+None*1+0xae5588],0x0",
            " je local:21",
            " jmp local:33",
            " mov ecx,m4[ebp+None*1+0x8]",
            " mov ebx,m4[None+None*1+3dcore.c::_vp]",
            " mov eax,m4[ecx+None*1+0x0]",
            " sub eax,ebx",
            "-mov esi,m4[None+None*1+0xafaef4]",
            "+mov esi,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x18],eax",
            " mov eax,m4[ecx+None*1+0x4]",
            " sub eax,esi",
            "-mov edi,m4[None+None*1+0xafaef8]",
            "+mov edi,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x28],eax",
            " mov eax,m4[ecx+None*1+0x8]",
            " sub eax,edi",
            "@@ -58,15 +58,15 @@",
            " mov m4[esp+None*1+0x8],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x18]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -75,13 +75,13 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+0xafaeb4]",
            "+mov eax,m4[None+None*1+0xae5564]",
            " mov ecx,edx",
            " cmp edx,eax",
            " jle local:29",
            "-cmp ecx,m4[None+None*1+0xafaeb8]",
            "+cmp ecx,m4[None+None*1+0xae5568]",
            " jge local:29",
            "-call fx3dobbf.c::get_object_buffer_space_",
            "+call 3dobjbuf.c::get_object_buffer_space_",
            " mov m4[esp+None*1+0x30],eax",
            " test eax,eax",
            " jne local:95",
            "@@ -106,7 +106,7 @@",
            " mov m4[edx+None*1+0x4],eax",
            " test ecx,ecx",
            " je local:208",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ebp+None*1+0x0]",
            " mov eax,m4[edx+eax*4+0x0]",
            " test m1[eax+None*1+0x98],0x1",
            "@@ -114,7 +114,7 @@",
            " mov eax,m4[ebp+None*1+0x8]",
            " mov edx,m4[eax+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov ecx,m4[ebp+None*1+0x8]",
            " mov ecx,m4[ecx+None*1+0x8]",
            " sub ecx,eax",
            "@@ -141,7 +141,7 @@",
            " add ecx,edx",
            " mov eax,esi",
            " mov edx,ecx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,m4[ebp+None*1+0x8]",
            " mov edx,m4[edx+None*1+0x8]",
            " sub edx,0x100",
            "@@ -159,8 +159,8 @@",
            " mov ebx,m4[None+None*1+3dcore.c::_vp]",
            " sub esi,ebx",
            " mov m4[esp+None*1+0x14],esi",
            "-mov esi,m4[None+None*1+0xafaef4]",
            "-mov edi,m4[None+None*1+0xafaef8]",
            "+mov esi,m4[None+None*1+0xae55a4]",
            "+mov edi,m4[None+None*1+0xae55a8]",
            " sub ecx,esi",
            " sub eax,edi",
            " mov m4[esp+None*1+0x24],ecx",
            "@@ -168,15 +168,15 @@",
            " mov ebx,m4[esp+None*1+0x24]",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x14]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -185,13 +185,13 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+0xafaeb4]",
            "+mov eax,m4[None+None*1+0xae5564]",
            " mov ecx,edx",
            " cmp edx,eax",
            " jle local:208",
            " cmp edx,0x80000",
            " jge local:208",
            "-call fx3dobbf.c::get_object_buffer_space_",
            "+call 3dobjbuf.c::get_object_buffer_space_",
            " mov esi,eax",
            " test eax,eax",
            " je local:87",
            "@@ -205,9 +205,9 @@",
            " mov m4[esi+None*1+0x4],eax",
            " mov eax,esi",
            " mov m4[esi+None*1+0x8],ebp",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " mov eax,m4[esp+None*1+0x30]",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " mov ebp,m4[ebp+None*1+0x18]",
            " jmp local:21",
            " neg eax",
            "@@ -223,10 +223,10 @@",
            " mov edx,m4[None+None*1+3dcore.c::_vp]",
            " mov ecx,m4[eax+None*1+0x0]",
            " sub ecx,edx",
            "-mov ebx,m4[None+None*1+0xafaef4]",
            "+mov ebx,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x20],ecx",
            " mov ecx,m4[eax+None*1+0x4]",
            "-mov esi,m4[None+None*1+0xafaef8]",
            "+mov esi,m4[None+None*1+0xae55a8]",
            " sub ecx,ebx",
            " mov eax,m4[eax+None*1+0x8]",
            " mov m4[esp+None*1+0x2c],ecx",
            "@@ -235,15 +235,15 @@",
            " mov m4[esp+None*1+0x1c],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x20]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -252,13 +252,13 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov edi,m4[None+None*1+0xafaeb4]",
            "+mov edi,m4[None+None*1+0xae5564]",
            " mov esi,edx",
            " cmp edx,edi",
            " jle local:39",
            "-cmp edx,m4[None+None*1+0xafaeb8]",
            "+cmp edx,m4[None+None*1+0xae5568]",
            " jge local:39",
            "-call fx3dobbf.c::get_object_buffer_space_",
            "+call 3dobjbuf.c::get_object_buffer_space_",
            " mov ecx,eax",
            " test eax,eax",
            " je local:87",
            "@@ -272,16 +272,16 @@",
            " mov m4[ecx+None*1+0x4],eax",
            " mov eax,ecx",
            " mov m4[ecx+None*1+0x8],ebp",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " cmp m4[None+None*1+3dcore.c::_draw_shadows],0x0",
            " je local:39",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ebp+None*1+0x0]",
            " mov eax,m4[edx+eax*4+0x0]",
            " test m1[eax+None*1+0x98],0x1",
            " je local:39",
            " mov eax,m4[ebp+None*1+0x8]",
            "-mov ecx,m4[None+None*1+0xafaecc]",
            "+mov ecx,m4[None+None*1+0xae557c]",
            " mov eax,m4[eax+None*1+0x8]",
            " sub eax,ecx",
            " test eax,eax",
            "@@ -322,23 +322,23 @@",
            " mov ecx,m4[None+None*1+3dcore.c::_vp]",
            " sub edi,ecx",
            " mov m4[esp+None*1+0x10],edi",
            "-mov edi,m4[None+None*1+0xafaef8]",
            "-mov esi,m4[None+None*1+0xafaef4]",
            "+mov edi,m4[None+None*1+0xae55a8]",
            "+mov esi,m4[None+None*1+0xae55a4]",
            " sub eax,edi",
            " sub ebx,esi",
            " mov m4[esp+None*1+0xc],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x10]",
            " mov m4[esp+None*1+0x0],ebx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -347,13 +347,13 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+0xafaeb4]",
            "+mov eax,m4[None+None*1+0xae5564]",
            " mov ecx,edx",
            " cmp edx,eax",
            " jle local:39",
            " cmp edx,0x80000",
            " jge local:39",
            "-call fx3dobbf.c::get_object_buffer_space_",
            "+call 3dobjbuf.c::get_object_buffer_space_",
            " mov esi,eax",
            " test eax,eax",
            " je local:87",
            "@@ -367,7 +367,7 @@",
            " mov m4[esi+None*1+0x4],eax",
            " mov eax,esi",
            " mov m4[esi+None*1+0x8],ebp",
            "-call fx3dobbf.c::distance_sort_object_",
            "+call 3dobjbuf.c::distance_sort_object_",
            " mov ebp,m4[ebp+None*1+0x18]",
            " jmp local:33",
            " neg eax"
          ]
        },
        {
          "symbol": "model.c::apache_collision_test_",
          "source": "E:\\apache\\source\\models\\model.c",
          "first": "0x43b254",
          "second": "0x43b5d4",
          "first_instruction_count": 239,
          "second_instruction_count": 239,
          "diff": [
            "--- 0x43b254",
            "+++ 0x43b5d4",
            "@@ -7,13 +7,13 @@",
            " sub esp,0x48",
            " mov ecx,m4[None+None*1+model.c::_model_vp]",
            " mov eax,m4[ecx+None*1+0x0]",
            "-mov ebx,m4[None+None*1+0x5a45d8]",
            "+mov ebx,m4[None+None*1+0x5975e8]",
            " mov m4[esp+None*1+0x0],eax",
            " xor edx,edx",
            " mov eax,m4[ecx+None*1+0x4]",
            " mov m4[None+None*1+model.c::_hit_this_fucker],edx",
            " mov m4[esp+None*1+0x4],eax",
            "-mov edx,m4[None+None*1+0x5a45d4]",
            "+mov edx,m4[None+None*1+0x5975e4]",
            " mov eax,m4[ecx+None*1+0x8]",
            " mov edi,m4[esp+None*1+0x0]",
            " sub eax,0x900",
            "@@ -72,7 +72,7 @@",
            " je local:49",
            " mov eax,ecx",
            " call ship.c::place_user_on_carrier_",
            "-push 0x5a4618",
            "+push 0x597628",
            " mov edx,m4[ecx+None*1+0x3c]",
            " xor ecx,ecx",
            " push ecx",
            "@@ -88,56 +88,56 @@",
            " mov m4[None+None*1+model.c::_model_roll],ecx",
            " call model.c::get_mat_",
            " fld m8[None+None*1+constant:0000c0ffffffdf41]",
            "-fld m8[None+None*1+0x5a4618]",
            "+fld m8[None+None*1+0x597628]",
            " fmul st(1)",
            " mov ecx,m4[None+None*1+model.c::_model_vp]",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x44]",
            " mov eax,m4[esp+None*1+0x44]",
            " mov m4[ecx+None*1+0xc],eax",
            "-fld m8[None+None*1+0x5a4620]",
            "+fld m8[None+None*1+0x597630]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x44]",
            " mov eax,m4[esp+None*1+0x44]",
            " mov m4[ecx+None*1+0x10],eax",
            "-fld m8[None+None*1+0x5a4628]",
            "+fld m8[None+None*1+0x597638]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x44]",
            " mov eax,m4[esp+None*1+0x44]",
            " mov m4[ecx+None*1+0x14],eax",
            "-fld m8[None+None*1+0x5a4630]",
            "+fld m8[None+None*1+0x597640]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x44]",
            " mov eax,m4[esp+None*1+0x44]",
            " mov m4[ecx+None*1+0x18],eax",
            "-fld m8[None+None*1+0x5a4638]",
            "+fld m8[None+None*1+0x597648]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x44]",
            " mov eax,m4[esp+None*1+0x44]",
            " mov m4[ecx+None*1+0x1c],eax",
            "-fld m8[None+None*1+0x5a4640]",
            "+fld m8[None+None*1+0x597650]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x44]",
            " mov eax,m4[esp+None*1+0x44]",
            " mov m4[ecx+None*1+0x20],eax",
            "-fld m8[None+None*1+0x5a4648]",
            "+fld m8[None+None*1+0x597658]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x44]",
            " mov eax,m4[esp+None*1+0x44]",
            " mov m4[ecx+None*1+0x24],eax",
            "-fld m8[None+None*1+0x5a4650]",
            "+fld m8[None+None*1+0x597660]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x44]",
            " mov eax,m4[esp+None*1+0x44]",
            " mov m4[ecx+None*1+0x28],eax",
            "-fmul m8[None+None*1+0x5a4658]",
            "+fmul m8[None+None*1+0x597668]",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x44]",
            " mov eax,m4[esp+None*1+0x44]"
          ]
        },
        {
          "symbol": "model.c::awards_for_landing_",
          "source": "E:\\apache\\source\\models\\model.c",
          "first": "0x43b0d0",
          "second": "0x43b450",
          "first_instruction_count": 82,
          "second_instruction_count": 82,
          "diff": [
            "--- 0x43b0d0",
            "+++ 0x43b450",
            "@@ -53,7 +53,7 @@",
            " jge local:67",
            " xor ebp,ebp",
            " call apnet.c::network_send_capture_the_flag_won_",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],ebp",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],ebp",
            " pop ebp",
            " pop edi",
            " pop esi"
          ]
        },
        {
          "symbol": "model.c::landing_evaluation_",
          "source": "E:\\apache\\source\\models\\model.c",
          "first": "0x43af98",
          "second": "0x43b318",
          "first_instruction_count": 89,
          "second_instruction_count": 89,
          "diff": [
            "--- 0x43af98",
            "+++ 0x43b318",
            "@@ -16,7 +16,7 @@",
            " mov eax,m4[None+None*1+drone.c::_user_drone]",
            " mov edx,m4[eax+None*1+0x64]",
            " mov eax,m4[eax+None*1+0x60]",
            "-call fxfeatur.c::get_surface_type_",
            "+call features.c::get_surface_type_",
            " fld m8[ebp+None*1+0x14]",
            " mov edx,eax",
            " fabs "
          ]
        },
        {
          "symbol": "model.c::update_flight_model_",
          "source": "E:\\apache\\source\\models\\model.c",
          "first": "0x43ad08",
          "second": "0x43b088",
          "first_instruction_count": 41,
          "second_instruction_count": 41,
          "diff": [
            "--- 0x43ad08",
            "+++ 0x43b088",
            "@@ -9,10 +9,10 @@",
            " mov edx,m4[eax+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x8]",
            " mov ebx,m4[None+None*1+gamedata.c::_control_mode]",
            "-mov m4[None+None*1+0x5a45d8],eax",
            "+mov m4[None+None*1+0x5975e8],eax",
            " lea ecx,m4[eax+None*1+0xfffff700]",
            "-mov m4[None+None*1+0x5a45d4],edx",
            "-mov m4[None+None*1+0x5a45d8],ecx",
            "+mov m4[None+None*1+0x5975e4],edx",
            "+mov m4[None+None*1+0x5975e8],ecx",
            " cmp ebx,0x1",
            " je local:22",
            " mov eax,m4[None+None*1+model.c::_model_id]"
          ]
        },
        {
          "symbol": "model_a.c::engine_calculations_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43ebe4",
          "second": "0x43ef64",
          "first_instruction_count": 229,
          "second_instruction_count": 229,
          "diff": [
            "--- 0x43ebe4",
            "+++ 0x43ef64",
            "@@ -51,12 +51,12 @@",
            " mov m4[None+None*1+model_a.c::_engine_torque],eax",
            " mov eax,m4[esp+None*1+0x14]",
            " mov edi,m4[None+None*1+model_a.c::_zdotT]",
            "-mov m4[None+None*1+0x5a47e4],eax",
            "+mov m4[None+None*1+0x5977c4],eax",
            " test edi,edi",
            " jle local:178",
            " xor eax,eax",
            " mov m4[None+None*1+model_a.c::_zdotT_engine],eax",
            "-mov m4[None+None*1+0x5a494c],eax",
            "+mov m4[None+None*1+0x5978ec],eax",
            " fld m8[None+None*1+model_a.c::_z]",
            " fcomp m8[esp+None*1+0x20]",
            " fnstsw ax",
            "@@ -64,7 +64,7 @@",
            " ja local:67",
            " xor ecx,ecx",
            " mov m4[None+None*1+model_a.c::_zdotT_engine],ecx",
            "-mov m4[None+None*1+0x5a494c],ecx",
            "+mov m4[None+None*1+0x5978ec],ecx",
            " fld m8[None+None*1+model_a.c::_engine_rpm]",
            " fcomp m8[None+None*1+constant:0000000000004e40]",
            " fnstsw ax",
            "@@ -73,14 +73,14 @@",
            " xor esi,esi",
            " mov m4[esp+None*1+0x8],esi",
            " mov m4[esp+None*1+0xc],esi",
            "-mov ah,m1[None+None*1+0x6748c6]",
            "+mov ah,m1[None+None*1+0x6678d6]",
            " test ah,0x10",
            " je local:188",
            " test ah,0x20",
            " je local:188",
            " xor eax,eax",
            " mov m4[None+None*1+model_a.c::_engine_rpm_ss],eax",
            "-mov m4[None+None*1+0x5a476c],eax",
            "+mov m4[None+None*1+0x59768c],eax",
            " fld m8[None+None*1+model_a.c::_collective]",
            " fmul m8[esp+None*1+0x8]",
            " fmul m8[None+None*1+constant:9a9999999999993f]",
            "@@ -100,24 +100,24 @@",
            " fmul m8[None+None*1+constant:0000000000000040]",
            " fmul m8[None+None*1+gamedata.c::_frame_time]",
            " fadd m8[None+None*1+model_a.c::_engine_rpm]",
            "-mov dh,m1[None+None*1+0x6748c6]",
            "+mov dh,m1[None+None*1+0x6678d6]",
            " fstp m8[None+None*1+model_a.c::_engine_rpm]",
            " test dh,0x10",
            " je local:216",
            " xor esi,esi",
            " mov edi,0x3ff00000",
            " mov m4[None+None*1+model_a.c::_left_engine_temperature],esi",
            "-mov m4[None+None*1+0x5a47c4],esi",
            "+mov m4[None+None*1+0x5976dc],esi",
            " mov m4[None+None*1+model_a.c::_left_engine_rpm],esi",
            "-mov m4[None+None*1+0x5a477c],edi",
            "-test m1[None+None*1+0x6748c6],0x20",
            "+mov m4[None+None*1+0x59769c],edi",
            "+test m1[None+None*1+0x6678d6],0x20",
            " je local:221",
            " xor ecx,ecx",
            " mov ebx,0x3ff00000",
            " mov m4[None+None*1+model_a.c::_right_engine_temperature],ecx",
            "-mov m4[None+None*1+0x5a479c],ecx",
            "+mov m4[None+None*1+0x5976c4],ecx",
            " mov m4[None+None*1+model_a.c::_right_engine_rpm],ecx",
            "-mov m4[None+None*1+0x5a47ec],ebx",
            "+mov m4[None+None*1+0x5977cc],ebx",
            " fld m8[None+None*1+model_a.c::_engine_torque_ss]",
            " fsub m8[None+None*1+model_a.c::_engine_torque]",
            " fmul m8[None+None*1+constant:0000000000000040]",
            "@@ -173,7 +173,7 @@",
            " jmp local:49",
            " mov eax,m4[None+None*1+model_a.c::_engine_torque]",
            " mov m4[esp+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x5a47e4]",
            "+mov eax,m4[None+None*1+0x5977c4]",
            " mov m4[esp+None*1+0x4],eax",
            " jmp local:45",
            " fild m4[None+None*1+model_a.c::_zdotT]",
            "@@ -206,7 +206,7 @@",
            " jbe local:210",
            " xor ecx,ecx",
            " mov m4[None+None*1+model_a.c::_rotor_rpm_ss],ecx",
            "-mov m4[None+None*1+0x5a4784],ecx",
            "+mov m4[None+None*1+0x5976a4],ecx",
            " jmp local:97",
            " fld m8[None+None*1+model_a.c::_rotor_rpm]",
            " fcomp m8[None+None*1+constant:0000000000002440]",
            "@@ -216,13 +216,13 @@",
            " jmp local:97",
            " mov eax,m4[None+None*1+model_a.c::_engine_rpm]",
            " mov m4[None+None*1+model_a.c::_left_engine_rpm],eax",
            "-mov eax,m4[None+None*1+0x5a4794]",
            "-mov m4[None+None*1+0x5a477c],eax",
            "+mov eax,m4[None+None*1+0x5976bc]",
            "+mov m4[None+None*1+0x59769c],eax",
            " jmp local:112",
            " mov eax,m4[None+None*1+model_a.c::_engine_rpm]",
            " mov m4[None+None*1+model_a.c::_right_engine_rpm],eax",
            "-mov eax,m4[None+None*1+0x5a4794]",
            "-mov m4[None+None*1+0x5a47ec],eax",
            "+mov eax,m4[None+None*1+0x5976bc]",
            "+mov m4[None+None*1+0x5977cc],eax",
            " jmp local:120",
            " fld m8[esp+None*1+0x18]",
            " fmul m8[None+None*1+constant:9a9999999999b93f]"
          ]
        },
        {
          "symbol": "model_a.c::engine_temperature_calculations_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43ef98",
          "second": "0x43f318",
          "first_instruction_count": 75,
          "second_instruction_count": 75,
          "diff": [
            "--- 0x43ef98",
            "+++ 0x43f318",
            "@@ -39,14 +39,14 @@",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[None+None*1+model_a.c::_engine_temperature],eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov m4[None+None*1+0x5a47ac],eax",
            "-test m1[None+None*1+0x6748c6],0x40",
            "+mov m4[None+None*1+0x5976cc],eax",
            "+test m1[None+None*1+0x6678d6],0x40",
            " jne local:48",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[None+None*1+model_a.c::_left_engine_temperature],eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov m4[None+None*1+0x5a47c4],eax",
            "-test m1[None+None*1+0x6748c6],0x80",
            "+mov m4[None+None*1+0x5976dc],eax",
            "+test m1[None+None*1+0x6678d6],0x80",
            " je local:65",
            " mov esp,ebp",
            " pop ebp",
            "@@ -60,13 +60,13 @@",
            " jmp local:38",
            " mov eax,m4[None+None*1+model_a.c::_engine_temperature]",
            " mov m4[esp+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x5a47ac]",
            "+mov eax,m4[None+None*1+0x5976cc]",
            " mov m4[esp+None*1+0x4],eax",
            " jmp local:34",
            " mov eax,m4[None+None*1+model_a.c::_engine_temperature]",
            " mov m4[None+None*1+model_a.c::_right_engine_temperature],eax",
            "-mov eax,m4[None+None*1+0x5a47ac]",
            "-mov m4[None+None*1+0x5a479c],eax",
            "+mov eax,m4[None+None*1+0x5976cc]",
            "+mov m4[None+None*1+0x5976c4],eax",
            " mov esp,ebp",
            " pop ebp",
            " pop edx"
          ]
        },
        {
          "symbol": "model_a.c::fuel_calculations_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43e9fc",
          "second": "0x43ed7c",
          "first_instruction_count": 106,
          "second_instruction_count": 106,
          "diff": [
            "--- 0x43e9fc",
            "+++ 0x43ed7c",
            "@@ -13,7 +13,7 @@",
            " jb local:39",
            " push edi",
            " push edx",
            "-mov ah,m1[None+None*1+0x6748c6]",
            "+mov ah,m1[None+None*1+0x6678d6]",
            " test ah,0x10",
            " jne local:24",
            " test ah,0x20",
            "@@ -23,13 +23,13 @@",
            " mov eax,text:'OUT OF FUEL'",
            " call commspan.c::add_comms_panel_message_",
            " xor edi,edi",
            "-mov dh,m1[None+None*1+0x6748c6]",
            "+mov dh,m1[None+None*1+0x6678d6]",
            " mov m4[None+None*1+model_a.c::_projected_flight_time],edi",
            "-mov m4[None+None*1+0x5a4964],edi",
            "+mov m4[None+None*1+0x597974],edi",
            " or dh,0x30",
            " mov m4[None+None*1+model_a.c::_fuel],edi",
            "-mov m4[None+None*1+0x5a4774],edi",
            "-mov m1[None+None*1+0x6748c6],dh",
            "+mov m4[None+None*1+0x597804],edi",
            "+mov m1[None+None*1+0x6678d6],dh",
            " pop edx",
            " pop edi",
            " add esp,0x8",
            "@@ -73,7 +73,7 @@",
            " fnstsw ax",
            " sahf ",
            " jae local:91",
            "-or m1[None+None*1+0x6748c5],0x4",
            "+or m1[None+None*1+0x6678d5],0x4",
            " add esp,0x8",
            " pop esi",
            " pop ecx",
            "@@ -89,7 +89,7 @@",
            " fmul m8[None+None*1+constant:1cc7711cc771ac3f]",
            " faddp st(1)",
            " jmp local:60",
            "-and m1[None+None*1+0x6748c5],0xfb",
            "+and m1[None+None*1+0x6678d5],0xfb",
            " add esp,0x8",
            " pop esi",
            " pop ecx",
            "@@ -98,7 +98,7 @@",
            " xor ebx,ebx",
            " mov esi,0x40a77000",
            " mov m4[None+None*1+model_a.c::_fuel],ebx",
            "-mov m4[None+None*1+0x5a4774],esi",
            "+mov m4[None+None*1+0x597804],esi",
            " add esp,0x8",
            " pop esi",
            " pop ecx"
          ]
        },
        {
          "symbol": "model_a.c::get_apache_model_predicted_viewpoint_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43f6c8",
          "second": "0x43fa48",
          "first_instruction_count": 114,
          "second_instruction_count": 114,
          "diff": [
            "--- 0x43f6c8",
            "+++ 0x43fa48",
            "@@ -24,8 +24,8 @@",
            " fxch st(0),st(1)",
            " call fchop::__CHP",
            " fxch st(0),st(2)",
            "-fistp m4[None+None*1+0x5a49d0]",
            "-fistp m4[None+None*1+0x5a49d4]",
            "+fistp m4[None+None*1+0x5979e0]",
            "+fistp m4[None+None*1+0x5979e4]",
            " fxch st(0),st(3)",
            " fadd m8[None+None*1+model_a.c::_psi]",
            " fxch st(0),st(1)",
            "@@ -48,7 +48,7 @@",
            " sub esp,0x8",
            " mov eax,m4[esp+None*1+0xc]",
            " fxch st(0),st(1)",
            "-fistp m4[None+None*1+0x5a49d8]",
            "+fistp m4[None+None*1+0x5979e8]",
            " mov m4[esp+None*1+0x18],eax",
            " fstp m8[esp+None*1+0x0]",
            " fild m4[esp+None*1+0x18]",
            "@@ -62,29 +62,29 @@",
            " call model.c::get_mat_",
            " fld m8[None+None*1+model_a.c::_mat_attitude]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-fld m8[None+None*1+0x5a4900]",
            "+fld m8[None+None*1+0x597918]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-fld m8[None+None*1+0x5a4908]",
            "+fld m8[None+None*1+0x597920]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-fld m8[None+None*1+0x5a4910]",
            "+fld m8[None+None*1+0x597928]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-fld m8[None+None*1+0x5a4918]",
            "+fld m8[None+None*1+0x597930]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-fld m8[None+None*1+0x5a4920]",
            "+fld m8[None+None*1+0x597938]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-fld m8[None+None*1+0x5a4928]",
            "+fld m8[None+None*1+0x597940]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            " fxch st(0),st(6)",
            " call fchop::__CHP",
            "-fistp m4[None+None*1+0x5a49dc]",
            "-fld m8[None+None*1+0x5a4930]",
            "+fistp m4[None+None*1+0x5979ec]",
            "+fld m8[None+None*1+0x597948]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            " fxch st(0),st(5)",
            " call fchop::__CHP",
            "-fistp m4[None+None*1+0x5a49e0]",
            "-fld m8[None+None*1+0x5a4938]",
            "+fistp m4[None+None*1+0x5979f0]",
            "+fld m8[None+None*1+0x597950]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-mov eax,0x5a49d0",
            "+mov eax,0x5979e0",
            " fxch st(0),st(4)",
            " call fchop::__CHP",
            " fxch st(0),st(3)",
            "@@ -100,15 +100,15 @@",
            " fxch st(0),st(4)",
            " call fchop::__CHP",
            " fxch st(0),st(3)",
            "-fistp m4[None+None*1+0x5a49e4]",
            "+fistp m4[None+None*1+0x5979f4]",
            " fxch st(0),st(1)",
            "-fistp m4[None+None*1+0x5a49e8]",
            "-fistp m4[None+None*1+0x5a49ec]",
            "+fistp m4[None+None*1+0x5979f8]",
            "+fistp m4[None+None*1+0x5979fc]",
            " fxch st(0),st(3)",
            "-fistp m4[None+None*1+0x5a49f0]",
            "+fistp m4[None+None*1+0x597a00]",
            " fxch st(0),st(1)",
            "-fistp m4[None+None*1+0x5a49f4]",
            "-fistp m4[None+None*1+0x5a49f8]",
            "-fistp m4[None+None*1+0x5a49fc]",
            "+fistp m4[None+None*1+0x597a04]",
            "+fistp m4[None+None*1+0x597a08]",
            "+fistp m4[None+None*1+0x597a0c]",
            " add esp,0x10",
            " ret "
          ]
        },
        {
          "symbol": "model_a.c::get_relative_ground_height_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43fc30",
          "second": "0x43ffb0",
          "first_instruction_count": 14,
          "second_instruction_count": 14,
          "diff": [
            "--- 0x43fc30",
            "+++ 0x43ffb0",
            "@@ -9,6 +9,6 @@",
            " add eax,0x900",
            " pop ecx",
            " ret ",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "model_a.c::initialise_apache_flight_model_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43b918",
          "second": "0x43bc98",
          "first_instruction_count": 669,
          "second_instruction_count": 669,
          "diff": [
            "--- 0x43b918",
            "+++ 0x43bc98",
            "@@ -10,19 +10,19 @@",
            " mov edx,0x62fc82aa",
            " mov ecx,0x3fb6fa7f",
            " mov m4[None+None*1+model_a.c::_current_landing_pitch],edx",
            "-mov m4[None+None*1+0x5a4944],ecx",
            "+mov m4[None+None*1+0x59795c],ecx",
            " call control.c::clear_control_inputs_",
            " mov ecx,0x1",
            " mov eax,0x40d01d00",
            " mov m4[None+None*1+model_a.c::_over_torque_flag],ecx",
            " mov m4[None+None*1+model_a.c::_reset_altitude],ecx",
            " mov m4[None+None*1+model_a.c::_model_acceleration],ecx",
            "-mov m4[None+None*1+0x5a4824],eax",
            "+mov m4[None+None*1+0x5977fc],eax",
            " xor eax,eax",
            " mov ecx,m4[None+None*1+model.c::_model_vp]",
            "-mov m4[None+None*1+0x5a4894],eax",
            "+mov m4[None+None*1+0x59786c],eax",
            " mov m4[None+None*1+model_a.c::_dz],eax",
            "-mov m4[None+None*1+0x5a489c],eax",
            "+mov m4[None+None*1+0x597874],eax",
            " mov eax,m4[ecx+None*1+0x0]",
            " mov edx,eax",
            " sar edx,0x1f",
            "@@ -56,14 +56,14 @@",
            " mov m4[None+None*1+model_a.c::_max_speed_message],ebx",
            " mov m4[None+None*1+model_a.c::_pull_up_message],ebx",
            " mov m4[None+None*1+model_a.c::_preset_altitude],ebx",
            "-mov m4[None+None*1+0x5a47cc],ebx",
            "+mov m4[None+None*1+0x5977ac],ebx",
            " mov m4[None+None*1+model_a.c::_terrain_follow],ebx",
            " mov m4[None+None*1+model_a.c::_Wt],ebx",
            " mov m4[None+None*1+model_a.c::_weight_factor],ebx",
            "-mov m4[None+None*1+0x5a47a4],ebx",
            "-mov m4[None+None*1+0x5a48b4],esi",
            "+mov m4[None+None*1+0x597834],ebx",
            "+mov m4[None+None*1+0x597894],esi",
            " mov m4[None+None*1+model_a.c::_dx],edi",
            "-mov m4[None+None*1+0x5a488c],edi",
            "+mov m4[None+None*1+0x5978e4],edi",
            " mov ebx,0xfe68f1b0",
            " mov m4[None+None*1+model_a.c::_dy],edi",
            " mov m4[None+None*1+model_a.c::_M],ebx",
            "@@ -90,25 +90,25 @@",
            " mov eax,0x3fa99999",
            " mov m4[None+None*1+model_a.c::_max_fuel_consumption],edi",
            " mov m4[None+None*1+model_a.c::_engine_rpm],edx",
            "-mov m4[None+None*1+0x5a4794],ecx",
            "+mov m4[None+None*1+0x5976bc],ecx",
            " mov m4[None+None*1+model_a.c::_engine_torque],edx",
            "-mov m4[None+None*1+0x5a47e4],edx",
            "+mov m4[None+None*1+0x5977c4],edx",
            " mov m4[None+None*1+model_a.c::_rotor_rpm],edx",
            "-mov m4[None+None*1+0x5a478c],ecx",
            "+mov m4[None+None*1+0x5976b4],ecx",
            " mov m4[None+None*1+model_a.c::_rotor_torque],edx",
            " mov m4[None+None*1+model_a.c::_engine_timer],edx",
            "-mov m4[None+None*1+0x5a4764],edx",
            "+mov m4[None+None*1+0x5977f4],edx",
            " mov m4[None+None*1+model_a.c::_max_speed_timer],edx",
            "-mov m4[None+None*1+0x5a47dc],edx",
            "+mov m4[None+None*1+0x5977b4],edx",
            " mov m4[None+None*1+model_a.c::_left_engine_temperature],edx",
            "-mov m4[None+None*1+0x5a47c4],edx",
            "+mov m4[None+None*1+0x5976dc],edx",
            " mov m4[None+None*1+model_a.c::_right_engine_temperature],edx",
            "-mov m4[None+None*1+0x5a479c],edx",
            "+mov m4[None+None*1+0x5976c4],edx",
            " mov m4[None+None*1+model_a.c::_engine_temperature],edx",
            "-mov m4[None+None*1+0x5a47ac],edx",
            "+mov m4[None+None*1+0x5976cc],edx",
            " mov m4[None+None*1+model_a.c::_engine_rpm_ss],edx",
            " mov m4[None+None*1+model_a.c::_engine_torque_ss],edx",
            "-mov m4[None+None*1+0x5a475c],edx",
            "+mov m4[None+None*1+0x59767c],edx",
            " mov m4[None+None*1+model_a.c::_rotor_rpm_ss],edx",
            " mov m4[None+None*1+model_a.c::_left_engine_rpm],edx",
            " mov m4[None+None*1+model_a.c::_right_engine_rpm],edx",
            "@@ -116,7 +116,7 @@",
            " fstp m8[None+None*1+model_a.c::_Wt]",
            " mov m4[None+None*1+model_a.c::_wind_gust],edx",
            " mov ecx,0x40528000",
            "-mov m4[None+None*1+0x5a4754],eax",
            "+mov m4[None+None*1+0x5977d4],eax",
            " fxch st(0),st(2)",
            " call fchop::__CHP",
            " fxch st(0),st(1)",
            "@@ -130,10 +130,10 @@",
            " mov ecx,0x40590000",
            " mov edx,m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0x10]",
            "-mov m4[None+None*1+0x5a476c],ecx",
            "-mov m4[None+None*1+0x5a4784],ecx",
            "-mov m4[None+None*1+0x5a477c],ecx",
            "-mov m4[None+None*1+0x5a47ec],ecx",
            "+mov m4[None+None*1+0x59768c],ecx",
            "+mov m4[None+None*1+0x5976a4],ecx",
            "+mov m4[None+None*1+0x59769c],ecx",
            "+mov m4[None+None*1+0x5977cc],ecx",
            " call model_a.c::get_relative_ground_height_",
            " mov edx,eax",
            " sar edx,0x1f",
            "@@ -200,19 +200,19 @@",
            " mov m4[None+None*1+model.c::_model_pitch],edx",
            " mov m4[None+None*1+model.c::_model_roll],edx",
            " mov m4[None+None*1+model_a.c::_psidot],edx",
            "-mov m4[None+None*1+0x5a482c],edx",
            "+mov m4[None+None*1+0x59789c],edx",
            " mov m4[None+None*1+model_a.c::_thetadot],edx",
            "-mov m4[None+None*1+0x5a4834],edx",
            "+mov m4[None+None*1+0x59780c],edx",
            " mov m4[None+None*1+model_a.c::_phidot],edx",
            "-mov m4[None+None*1+0x5a4874],edx",
            "+mov m4[None+None*1+0x5978cc],edx",
            " mov m4[None+None*1+model_a.c::_rho],edx",
            "-mov m4[None+None*1+0x5a483c],edx",
            "+mov m4[None+None*1+0x597814],edx",
            " mov m4[None+None*1+model_a.c::_rdem],edx",
            "-mov m4[None+None*1+0x5a4814],edx",
            "+mov m4[None+None*1+0x5977ec],edx",
            " mov m4[None+None*1+model_a.c::_qdem],edx",
            "-mov m4[None+None*1+0x5a481c],edx",
            "+mov m4[None+None*1+0x59787c],edx",
            " mov m4[None+None*1+model_a.c::_pdem],edx",
            "-mov m4[None+None*1+0x5a48a4],edx",
            "+mov m4[None+None*1+0x597884],edx",
            " fxch st(0),st(2)",
            " fstp m8[None+None*1+model_a.c::_phi]",
            " fxch st(0),st(2)",
            "@@ -231,7 +231,7 @@",
            " mov edx,0x3fb6fa7f",
            " mov m4[None+None*1+model.c::_apache_landed],ecx",
            " mov m4[None+None*1+model_a.c::_landing_question_asked],ecx",
            "-mov m4[None+None*1+0x5a47bc],edi",
            "+mov m4[None+None*1+0x5976d4],edi",
            " mov m4[None+None*1+model_a.c::_theta],eax",
            " mov m4[None+None*1+model_a.c::_rotor_sound],ebx",
            " mov ecx,0x38e38e5",
            "@@ -245,9 +245,9 @@",
            " xor esi,esi",
            " mov edi,0x406dc000",
            " mov m4[None+None*1+model_a.c::_z],esi",
            "-mov m4[None+None*1+0x5a485c],edx",
            "+mov m4[None+None*1+0x59782c],edx",
            " mov m4[None+None*1+model_a.c::_collective],esi",
            "-mov m4[None+None*1+0x5a47bc],ebx",
            "+mov m4[None+None*1+0x5976d4],ebx",
            " mov m4[None+None*1+model_a.c::_u],esi",
            " mov m4[None+None*1+constant:00000000],edi",
            " push model_a.c::_mat_attitude",
            "@@ -272,49 +272,49 @@",
            " fistp m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[edx+None*1+0xc],eax",
            "-fld m8[None+None*1+0x5a4900]",
            "+fld m8[None+None*1+0x597918]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[edx+None*1+0x10],eax",
            "-fld m8[None+None*1+0x5a4908]",
            "+fld m8[None+None*1+0x597920]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[edx+None*1+0x14],eax",
            "-fld m8[None+None*1+0x5a4910]",
            "+fld m8[None+None*1+0x597928]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[edx+None*1+0x18],eax",
            "-fld m8[None+None*1+0x5a4918]",
            "+fld m8[None+None*1+0x597930]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[edx+None*1+0x1c],eax",
            "-fld m8[None+None*1+0x5a4920]",
            "+fld m8[None+None*1+0x597938]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[edx+None*1+0x20],eax",
            "-fld m8[None+None*1+0x5a4928]",
            "+fld m8[None+None*1+0x597940]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[edx+None*1+0x24],eax",
            "-fld m8[None+None*1+0x5a4930]",
            "+fld m8[None+None*1+0x597948]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[edx+None*1+0x28],eax",
            "-fmul m8[None+None*1+0x5a4938]",
            "+fmul m8[None+None*1+0x597950]",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0xc]",
            "@@ -329,27 +329,27 @@",
            " mov ecx,0x9999999a",
            " mov ebx,0x40401999",
            " mov m4[None+None*1+model_a.c::_model_engine_torque_1],esi",
            "-mov m4[None+None*1+0x5a498c],esi",
            "+mov m4[None+None*1+0x59799c],esi",
            " mov m4[None+None*1+model_a.c::_model_engine_torque_2],esi",
            "-mov m4[None+None*1+0x5a4994],esi",
            "+mov m4[None+None*1+0x5979a4],esi",
            " mov m4[None+None*1+model_a.c::_model_engine_temp_1],esi",
            "-mov m4[None+None*1+0x5a496c],esi",
            "+mov m4[None+None*1+0x59797c],esi",
            " mov m4[None+None*1+model_a.c::_model_engine_temp_2],esi",
            "-mov m4[None+None*1+0x5a4974],esi",
            "+mov m4[None+None*1+0x597984],esi",
            " mov m4[None+None*1+model_a.c::_model_engine_rpm_2],esi",
            " mov m4[None+None*1+model_a.c::_model_engine_rpm_1],esi",
            " mov m4[None+None*1+model_a.c::_model_rotor_rpm],esi",
            " mov m4[None+None*1+model_a.c::_model_collective],esi",
            "-mov m4[None+None*1+0x5a4984],esi",
            "+mov m4[None+None*1+0x597994],esi",
            " mov m4[None+None*1+model_a.c::_projected_flight_time],esi",
            "-mov m4[None+None*1+0x5a4964],esi",
            "+mov m4[None+None*1+0x597974],esi",
            " mov m4[None+None*1+control.c::_model_throttle_input],esi",
            " mov m4[None+None*1+control.c::_model_heading_input],esi",
            " mov m4[None+None*1+control.c::_model_pitch_input],esi",
            " mov m4[None+None*1+control.c::_model_roll_input],esi",
            "-mov m4[None+None*1+0x5a495c],edx",
            "-mov m4[None+None*1+0x5a499c],edx",
            "-mov m4[None+None*1+0x5a497c],edx",
            "+mov m4[None+None*1+0x59796c],edx",
            "+mov m4[None+None*1+0x5979ac],edx",
            "+mov m4[None+None*1+0x59798c],edx",
            " mov m4[None+None*1+model_a.c::_g],ecx",
            " mov m4[None+None*1+constant:99194040],ebx",
            " mov eax,0x74bc6a7f",
            "@@ -372,17 +372,17 @@",
            " mov m4[None+None*1+model_a.c::_Jr],esi",
            " mov m4[None+None*1+constant:00000000],esi",
            " mov m4[None+None*1+model_a.c::_p],esi",
            "-mov m4[None+None*1+0x5a48cc],esi",
            "+mov m4[None+None*1+0x5978b4],esi",
            " mov m4[None+None*1+model_a.c::_q],esi",
            "-mov m4[None+None*1+0x5a4844],esi",
            "+mov m4[None+None*1+0x5978bc],esi",
            " mov m4[None+None*1+model_a.c::_r],esi",
            "-mov m4[None+None*1+0x5a484c],esi",
            "+mov m4[None+None*1+0x59781c],esi",
            " mov m4[None+None*1+model_a.c::_pmax],esi",
            "-mov m4[None+None*1+0x5a480c],esi",
            "+mov m4[None+None*1+0x597864],esi",
            " mov m4[None+None*1+model_a.c::_rmax],esi",
            "-mov m4[None+None*1+0x5a47fc],esi",
            "+mov m4[None+None*1+0x5977dc],esi",
            " mov m4[None+None*1+model_a.c::_qmax],esi",
            "-mov m4[None+None*1+0x5a47f4],esi",
            "+mov m4[None+None*1+0x59785c],esi",
            " mov m4[None+None*1+model_a.c::_Tz],esi",
            " mov m4[None+None*1+constant:00804b40],esi",
            " mov m4[None+None*1+model_a.c::_Tzw],esi",
            "@@ -393,55 +393,55 @@",
            " mov m4[None+None*1+constant:00000000],edi",
            " mov m4[None+None*1+model_a.c::_zdotT],edi",
            " mov m4[None+None*1+model_a.c::_zdotss],edi",
            "-mov m4[None+None*1+0x5a47d4],edi",
            "+mov m4[None+None*1+0x597854],edi",
            " mov m4[None+None*1+model_a.c::_zdotT_engine],edi",
            "-mov m4[None+None*1+0x5a494c],edi",
            "+mov m4[None+None*1+0x5978ec],edi",
            " mov m4[None+None*1+model_a.c::_udot],edi",
            "-mov m4[None+None*1+0x5a486c],edi",
            "+mov m4[None+None*1+0x59784c],edi",
            " mov m4[None+None*1+model_a.c::_vdot],edi",
            "-mov m4[None+None*1+0x5a4864],edi",
            "+mov m4[None+None*1+0x597844],edi",
            " mov m4[None+None*1+model_a.c::_v],edi",
            "-mov m4[None+None*1+0x5a4854],edi",
            "+mov m4[None+None*1+0x597824],edi",
            " mov m4[None+None*1+model_a.c::_beta],edi",
            "-mov m4[None+None*1+0x5a48ac],edi",
            "+mov m4[None+None*1+0x59788c],edi",
            " mov m4[None+None*1+model_a.c::_eta],edi",
            " mov m4[None+None*1+constant:0000f03f],ebx",
            " mov m4[None+None*1+model_a.c::_kdu],edi",
            "-mov m4[None+None*1+0x5a48f4],edi",
            "+mov m4[None+None*1+0x5978c4],edi",
            " mov m4[None+None*1+constant:9318dc3f],edx",
            " mov m4[None+None*1+model_a.c::_kge],edi",
            " mov m4[None+None*1+constant:0000f03f],ebx",
            " mov m4[None+None*1+model_a.c::_Kt],edi",
            "-mov m4[None+None*1+0x5a48c4],edi",
            "+mov m4[None+None*1+0x5978ac],edi",
            " mov m4[None+None*1+model_a.c::_M],edi",
            "-mov m4[None+None*1+0x5a48b4],edi",
            "+mov m4[None+None*1+0x597894],edi",
            " mov m4[None+None*1+model_a.c::_sigma],edi",
            " mov m4[None+None*1+constant:0000f03f],ebx",
            " mov m4[None+None*1+model_a.c::_timer],edi",
            " mov m4[None+None*1+constant:00000000],edi",
            " mov m4[None+None*1+model_a.c::_turnrate],edi",
            "-mov m4[None+None*1+0x5a4804],edi",
            "+mov m4[None+None*1+0x5977e4],edi",
            " mov m4[None+None*1+model_a.c::_sin_phi],edi",
            "-mov m4[None+None*1+0x5a4664],edi",
            "+mov m4[None+None*1+0x597674],edi",
            " mov m4[None+None*1+model_a.c::_cos_phi],edi",
            "-mov m4[None+None*1+0x5a4674],ebx",
            "+mov m4[None+None*1+0x597694],ebx",
            " mov ebx,model_a.c::_dx",
            " mov edx,0xb",
            "-mov m4[None+None*1+0x5a489c],esi",
            "+mov m4[None+None*1+0x597874],esi",
            " fxch st(0),st(2)",
            " fstp m8[None+None*1+model_a.c::_cos_theta]",
            " xor eax,eax",
            " fstp m8[None+None*1+model_a.c::_sin_theta]",
            " mov m4[None+None*1+model_a.c::_my_roll],eax",
            "-mov m4[None+None*1+0x5a487c],eax",
            "+mov m4[None+None*1+0x5978d4],eax",
            " mov m4[None+None*1+model_a.c::_roll_decay_ss],eax",
            "-mov m4[None+None*1+0x5a4884],eax",
            "+mov m4[None+None*1+0x5978dc],eax",
            " mov m4[None+None*1+model_a.c::_roll_decay],eax",
            "-mov m4[None+None*1+0x5a48e4],eax",
            "+mov m4[None+None*1+0x597904],eax",
            " mov m4[None+None*1+model_a.c::_delta_fuel],eax",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov m4[None+None*1+model_a.c::_abs_v],eax",
            "-mov m4[None+None*1+0x5a48ec],eax",
            "+mov m4[None+None*1+0x59790c],eax",
            " mov eax,text:'dx ... '",
            " fstp m8[esp+None*1+0x0]",
            " call monitor.c::add_monitor_",
            "@@ -661,7 +661,7 @@",
            " mov m4[None+None*1+model_a.c::_landing_question_asked],edx",
            " mov m4[None+None*1+model_a.c::_collective],edx",
            " mov m4[None+None*1+model.c::_apache_landed],edx",
            "-mov m4[None+None*1+0x5a47bc],0x40524000",
            "+mov m4[None+None*1+0x5976d4],0x40524000",
            " jmp local:239",
            " xor ecx,ecx",
            " mov m4[None+None*1+model_a.c::_u],ecx"
          ]
        },
        {
          "symbol": "model_a.c::model_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43de6c",
          "second": "0x43e1ec",
          "first_instruction_count": 725,
          "second_instruction_count": 725,
          "diff": [
            "--- 0x43de6c",
            "+++ 0x43e1ec",
            "@@ -108,7 +108,7 @@",
            " fld m8[None+None*1+model_a.c::_kge]",
            " fdiv m8[None+None*1+model_a.c::_rho]",
            " fmulp st(1)",
            "-mov ah,m1[None+None*1+0x6748c6]",
            "+mov ah,m1[None+None*1+0x6678d6]",
            " call fchop::__CHP",
            " fistp m4[None+None*1+model_a.c::_Tzw]",
            " test ah,0x10",
            "@@ -232,8 +232,8 @@",
            " ja local:235",
            " xor edi,edi",
            " mov m4[None+None*1+model_a.c::_v],edi",
            "-mov m4[None+None*1+0x5a4854],edi",
            "-mov bl,m1[None+None*1+0x6748c6]",
            "+mov m4[None+None*1+0x597824],edi",
            "+mov bl,m1[None+None*1+0x6678d6]",
            " test bl,0x10",
            " jne local:462",
            " test bl,0x20",
            "@@ -254,7 +254,7 @@",
            " mov eax,m4[esp+None*1+0x30]",
            " mov m4[None+None*1+model_a.c::_z],eax",
            " mov eax,m4[esp+None*1+0x34]",
            "-mov m4[None+None*1+0x5a485c],eax",
            "+mov m4[None+None*1+0x59782c],eax",
            " fld m8[None+None*1+model_a.c::_z]",
            " fcomp m8[esp+None*1+0x30]",
            " fnstsw ax",
            "@@ -301,7 +301,7 @@",
            " xor edi,edi",
            " mov eax,0x1",
            " mov m4[None+None*1+model_a.c::_vdot],edi",
            "-mov m4[None+None*1+0x5a4864],edi",
            "+mov m4[None+None*1+0x597844],edi",
            " call debug.c::breakout_",
            " fld m8[None+None*1+model_a.c::_vdot]",
            " fmul m8[None+None*1+gamedata.c::_frame_time]",
            "@@ -318,7 +318,7 @@",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+model_a.c::_v],eax",
            " mov eax,m4[esp+None*1+0x4]",
            "-mov m4[None+None*1+0x5a4854],eax",
            "+mov m4[None+None*1+0x597824],eax",
            " fild m4[None+None*1+model_a.c::_Tzw]",
            " fcomp m8[None+None*1+model_a.c::_rotor_torque]",
            " fnstsw ax",
            "@@ -412,7 +412,7 @@",
            " mov edi,0x284dfce3",
            " mov eax,0x3fb1c044",
            " mov m4[None+None*1+model_a.c::_kdu],edi",
            "-mov m4[None+None*1+0x5a48f4],eax",
            "+mov m4[None+None*1+0x5978c4],eax",
            " jmp local:80",
            " fld m8[None+None*1+model_a.c::_u]",
            " fabs ",
            "@@ -436,7 +436,7 @@",
            " jbe local:104",
            " xor edx,edx",
            " mov m4[None+None*1+model_a.c::_beta],edx",
            "-mov m4[None+None*1+0x5a48ac],edx",
            "+mov m4[None+None*1+0x59788c],edx",
            " jmp local:104",
            " test ah,0x20",
            " jne local:115",
            "@@ -471,11 +471,11 @@",
            " mov m4[None+None*1+model_a.c::_u],edx",
            " mov m4[None+None*1+constant:00000000],edx",
            " mov m4[None+None*1+model_a.c::_udot],edx",
            "-mov m4[None+None*1+0x5a486c],edx",
            "+mov m4[None+None*1+0x59784c],edx",
            " mov m4[None+None*1+model_a.c::_vdot],edx",
            "-mov m4[None+None*1+0x5a4864],edx",
            "+mov m4[None+None*1+0x597844],edx",
            " mov m4[None+None*1+model_a.c::_v],edx",
            "-mov m4[None+None*1+0x5a4854],edx",
            "+mov m4[None+None*1+0x597824],edx",
            " jmp local:257",
            " fld m8[esp+None*1+0x8]",
            " fmul m8[None+None*1+model_a.c::_beta]",
            "@@ -687,7 +687,7 @@",
            " jmp local:317",
            " mov eax,m4[None+None*1+model_a.c::_v]",
            " mov m4[esp+None*1+0x40],eax",
            "-mov eax,m4[None+None*1+0x5a4854]",
            "+mov eax,m4[None+None*1+0x597824]",
            " mov m4[esp+None*1+0x44],eax",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[esp+None*1+0x0],eax"
          ]
        },
        {
          "symbol": "model_a.c::model_faults_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43f098",
          "second": "0x43f418",
          "first_instruction_count": 315,
          "second_instruction_count": 315,
          "diff": [
            "--- 0x43f098",
            "+++ 0x43f418",
            "@@ -7,7 +7,7 @@",
            " mov ebp,esp",
            " sub esp,0x3c",
            " and esp,0xfffffff8",
            "-mov ah,m1[None+None*1+0x6748c6]",
            "+mov ah,m1[None+None*1+0x6678d6]",
            " test ah,0x40",
            " je local:198",
            " test ah,0x10",
            "@@ -20,7 +20,7 @@",
            " mov ecx,0x1",
            " call commspan.c::add_comms_panel_message_",
            " mov m4[None+None*1+model_a.c::_overheat_message],ecx",
            "-mov bh,m1[None+None*1+0x6748c6]",
            "+mov bh,m1[None+None*1+0x6678d6]",
            " test bh,0x40",
            " je local:42",
            " fld m8[None+None*1+gamedata.c::_frame_time]",
            "@@ -36,11 +36,11 @@",
            " mov eax,text:'LHS ENGINE FAILED'",
            " or cl,0x10",
            " mov ebx,0x7d0",
            "-mov m1[None+None*1+0x6748c6],cl",
            "+mov m1[None+None*1+0x6678d6],cl",
            " call commspan.c::add_comms_panel_message_",
            " xor ebx,ebx",
            " mov m4[None+None*1+model_a.c::_overheat_message],ebx",
            "-mov ch,m1[None+None*1+0x6748c6]",
            "+mov ch,m1[None+None*1+0x6678d6]",
            " test ch,0x80",
            " je local:62",
            " fld m8[None+None*1+gamedata.c::_frame_time]",
            "@@ -55,7 +55,7 @@",
            " mov ebx,0x7d0",
            " or al,0x20",
            " mov edx,0x3",
            "-mov m1[None+None*1+0x6748c6],al",
            "+mov m1[None+None*1+0x6678d6],al",
            " mov eax,text:'RHS ENGINE FAILED'",
            " xor esi,esi",
            " call commspan.c::add_comms_panel_message_",
            "@@ -72,7 +72,7 @@",
            " mov m4[None+None*1+model_a.c::_left_engine_temperature],edx",
            " mov edx,m4[esp+None*1+0x4]",
            " fldz ",
            "-mov m4[None+None*1+0x5a47c4],edx",
            "+mov m4[None+None*1+0x5976dc],edx",
            " fcomp m8[None+None*1+model_a.c::_right_engine_temperature]",
            " fnstsw ax",
            " sahf ",
            "@@ -83,8 +83,8 @@",
            " mov edx,m4[esp+None*1+0x18]",
            " mov m4[None+None*1+model_a.c::_right_engine_temperature],edx",
            " mov edx,m4[esp+None*1+0x1c]",
            "-mov ah,m1[None+None*1+0x6748c6]",
            "-mov m4[None+None*1+0x5a479c],edx",
            "+mov ah,m1[None+None*1+0x6678d6]",
            "+mov m4[None+None*1+0x5976c4],edx",
            " test ah,0x10",
            " je local:244",
            " test ah,0x20",
            "@@ -111,7 +111,7 @@",
            " mov m4[None+None*1+model_a.c::_rotor_sound],ecx",
            " xor ebx,ebx",
            " mov m4[None+None*1+model_a.c::_engine_rpm_ss],ebx",
            "-mov m4[None+None*1+0x5a476c],ebx",
            "+mov m4[None+None*1+0x59768c],ebx",
            " cmp m4[None+None*1+model_a.c::_over_torque_flag],0x0",
            " je local:173",
            " fld m8[None+None*1+model_a.c::_engine_torque_ss]",
            "@@ -183,7 +183,7 @@",
            " mov m4[None+None*1+model_a.c::_engine_timer],edx",
            " mov edx,m4[esp+None*1+0x24]",
            " fld m8[esp+None*1+0x20]",
            "-mov m4[None+None*1+0x5a4764],edx",
            "+mov m4[None+None*1+0x5977f4],edx",
            " fcomp m8[None+None*1+constant:000000000040af40]",
            " fnstsw ax",
            " sahf ",
            "@@ -196,7 +196,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov dh,m1[None+None*1+0x6748c6]",
            "+mov dh,m1[None+None*1+0x6678d6]",
            " test dh,0x80",
            " je local:62",
            " test dh,0x20",
            "@@ -217,7 +217,7 @@",
            " jmp local:69",
            " mov edx,m4[None+None*1+model_a.c::_left_engine_temperature]",
            " mov m4[esp+None*1+0x10],edx",
            "-mov edx,m4[None+None*1+0x5a47c4]",
            "+mov edx,m4[None+None*1+0x5976dc]",
            " mov m4[esp+None*1+0x14],edx",
            " mov edx,m4[esp+None*1+0x10]",
            " mov m4[esp+None*1+0x0],edx",
            "@@ -239,10 +239,10 @@",
            " jmp local:82",
            " mov edx,m4[None+None*1+model_a.c::_right_engine_temperature]",
            " mov m4[esp+None*1+0x8],edx",
            "-mov edx,m4[None+None*1+0x5a479c]",
            "+mov edx,m4[None+None*1+0x5976c4]",
            " mov m4[esp+None*1+0xc],edx",
            " jmp local:234",
            "-mov dh,m1[None+None*1+0x6748c6]",
            "+mov dh,m1[None+None*1+0x6678d6]",
            " test dh,0x10",
            " je local:254",
            " cmp m4[None+None*1+model_a.c::_rotor_sound],0x1",
            "@@ -293,18 +293,18 @@",
            " jmp local:181",
            " mov edx,m4[None+None*1+model_a.c::_engine_timer]",
            " mov m4[esp+None*1+0x28],edx",
            "-mov edx,m4[None+None*1+0x5a4764]",
            "+mov edx,m4[None+None*1+0x5977f4]",
            " jmp local:287",
            " mov ebx,0x7d0",
            " mov edx,0x3",
            " mov eax,text:'ENGINE FAILED'",
            " call commspan.c::add_comms_panel_message_",
            " xor esi,esi",
            "-mov bh,m1[None+None*1+0x6748c6]",
            "+mov bh,m1[None+None*1+0x6678d6]",
            " mov m4[None+None*1+model_a.c::_engine_timer],esi",
            " or bh,0xc0",
            "-mov m4[None+None*1+0x5a4764],esi",
            "-mov m1[None+None*1+0x6748c6],bh",
            "+mov m4[None+None*1+0x5977f4],esi",
            "+mov m1[None+None*1+0x6678d6],bh",
            " mov esp,ebp",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "model_a.c::set_apache_fuel_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43eb80",
          "second": "0x43ef00",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x43eb80",
            "+++ 0x43ef00",
            "@@ -9,7 +9,7 @@",
            " fadd m8[esp+None*1+0x10]",
            " mov eax,m4[esp+None*1+0x14]",
            " fstp m8[None+None*1+model_a.c::_Wt]",
            "-mov m4[None+None*1+0x5a4774],eax",
            "+mov m4[None+None*1+0x597804],eax",
            " fcomp m8[esp+None*1+0x10]",
            " fnstsw ax",
            " sahf "
          ]
        },
        {
          "symbol": "model_a.c::set_apache_model_collective_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43f8d4",
          "second": "0x43fc54",
          "first_instruction_count": 139,
          "second_instruction_count": 139,
          "diff": [
            "--- 0x43f8d4",
            "+++ 0x43fc54",
            "@@ -19,7 +19,7 @@",
            " xor eax,eax",
            " mov edx,0x40240000",
            " mov m4[None+None*1+model_a.c::_collective],eax",
            "-mov m4[None+None*1+0x5a47bc],edx",
            "+mov m4[None+None*1+0x5976d4],edx",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -41,7 +41,7 @@",
            " xor edi,edi",
            " mov ebp,0x40340000",
            " mov m4[None+None*1+model_a.c::_collective],edi",
            "-mov m4[None+None*1+0x5a47bc],ebp",
            "+mov m4[None+None*1+0x5976d4],ebp",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -53,7 +53,7 @@",
            " xor ebx,ebx",
            " mov esi,0x403e0000",
            " mov m4[None+None*1+model_a.c::_collective],ebx",
            "-mov m4[None+None*1+0x5a47bc],esi",
            "+mov m4[None+None*1+0x5976d4],esi",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -65,7 +65,7 @@",
            " xor edx,edx",
            " mov ecx,0x40440000",
            " mov m4[None+None*1+model_a.c::_collective],edx",
            "-mov m4[None+None*1+0x5a47bc],ecx",
            "+mov m4[None+None*1+0x5976d4],ecx",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -77,7 +77,7 @@",
            " xor ebp,ebp",
            " mov eax,0x40490000",
            " mov m4[None+None*1+model_a.c::_collective],ebp",
            "-mov m4[None+None*1+0x5a47bc],eax",
            "+mov m4[None+None*1+0x5976d4],eax",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -89,7 +89,7 @@",
            " xor esi,esi",
            " mov edi,0x404e0000",
            " mov m4[None+None*1+model_a.c::_collective],esi",
            "-mov m4[None+None*1+0x5a47bc],edi",
            "+mov m4[None+None*1+0x5976d4],edi",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -101,7 +101,7 @@",
            " xor ecx,ecx",
            " mov ebx,0x40518000",
            " mov m4[None+None*1+model_a.c::_collective],ecx",
            "-mov m4[None+None*1+0x5a47bc],ebx",
            "+mov m4[None+None*1+0x5976d4],ebx",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -116,7 +116,7 @@",
            " xor edi,edi",
            " mov ebp,0x40568000",
            " mov m4[None+None*1+model_a.c::_collective],edi",
            "-mov m4[None+None*1+0x5a47bc],ebp",
            "+mov m4[None+None*1+0x5976d4],ebp",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -128,7 +128,7 @@",
            " xor ebx,ebx",
            " mov esi,0x40590000",
            " mov m4[None+None*1+model_a.c::_collective],ebx",
            "-mov m4[None+None*1+0x5a47bc],esi",
            "+mov m4[None+None*1+0x5976d4],esi",
            " mov eax,0x1",
            " pop ebx",
            " pop esi"
          ]
        },
        {
          "symbol": "model_a.c::update_apache_flight_model_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43c5a0",
          "second": "0x43c920",
          "first_instruction_count": 729,
          "second_instruction_count": 729,
          "diff": [
            "--- 0x43c5a0",
            "+++ 0x43c920",
            "@@ -32,49 +32,49 @@",
            " fistp m4[esp+None*1+0x60]",
            " mov eax,m4[esp+None*1+0x60]",
            " mov m4[edx+None*1+0xc],eax",
            "-fld m8[None+None*1+0x5a4900]",
            "+fld m8[None+None*1+0x597918]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x60]",
            " mov eax,m4[esp+None*1+0x60]",
            " mov m4[edx+None*1+0x10],eax",
            "-fld m8[None+None*1+0x5a4908]",
            "+fld m8[None+None*1+0x597920]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x60]",
            " mov eax,m4[esp+None*1+0x60]",
            " mov m4[edx+None*1+0x14],eax",
            "-fld m8[None+None*1+0x5a4910]",
            "+fld m8[None+None*1+0x597928]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x60]",
            " mov eax,m4[esp+None*1+0x60]",
            " mov m4[edx+None*1+0x18],eax",
            "-fld m8[None+None*1+0x5a4918]",
            "+fld m8[None+None*1+0x597930]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x60]",
            " mov eax,m4[esp+None*1+0x60]",
            " mov m4[edx+None*1+0x1c],eax",
            "-fld m8[None+None*1+0x5a4920]",
            "+fld m8[None+None*1+0x597938]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x60]",
            " mov eax,m4[esp+None*1+0x60]",
            " mov m4[edx+None*1+0x20],eax",
            "-fld m8[None+None*1+0x5a4928]",
            "+fld m8[None+None*1+0x597940]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x60]",
            " mov eax,m4[esp+None*1+0x60]",
            " mov m4[edx+None*1+0x24],eax",
            "-fld m8[None+None*1+0x5a4930]",
            "+fld m8[None+None*1+0x597948]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x60]",
            " mov eax,m4[esp+None*1+0x60]",
            " mov m4[edx+None*1+0x28],eax",
            "-fmul m8[None+None*1+0x5a4938]",
            "+fmul m8[None+None*1+0x597950]",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x60]",
            " mov eax,m4[esp+None*1+0x60]",
            "@@ -82,14 +82,14 @@",
            " cmp m4[None+None*1+model_a.c::_over_torque_flag],0x0",
            " je local:562",
            " fld m8[None+None*1+model_a.c::_u]",
            "-fld m8[None+None*1+0x5a4910]",
            "-fmul st(1)",
            "-fld m8[None+None*1+0x5a4918]",
            "+fld m8[None+None*1+0x597928]",
            "+fmul st(1)",
            "+fld m8[None+None*1+0x597930]",
            " fmulp st(2)",
            " fld m8[None+None*1+model_a.c::_v]",
            " fld m8[None+None*1+model_a.c::_mat_attitude]",
            " fmul st(1)",
            "-fld m8[None+None*1+0x5a4900]",
            "+fld m8[None+None*1+0x597918]",
            " fmulp st(2)",
            " fld m8[None+None*1+gamedata.c::_frame_time]",
            " fld m8[None+None*1+model_a.c::_zdot]",
            "@@ -214,7 +214,7 @@",
            " mov m4[None+None*1+model_a.c::_z],eax",
            " mov eax,m4[esp+None*1+0x14]",
            " fldz ",
            "-mov m4[None+None*1+0x5a485c],eax",
            "+mov m4[None+None*1+0x59782c],eax",
            " fcomp m8[None+None*1+model_a.c::_x]",
            " fnstsw ax",
            " sahf ",
            "@@ -226,7 +226,7 @@",
            " mov m4[None+None*1+model_a.c::_x],eax",
            " mov eax,m4[esp+None*1+0x24]",
            " fldz ",
            "-mov m4[None+None*1+0x5a48d4],eax",
            "+mov m4[None+None*1+0x5978f4],eax",
            " fcomp m8[None+None*1+model_a.c::_y]",
            " fnstsw ax",
            " sahf ",
            "@@ -249,7 +249,7 @@",
            " fistp m4[esp+None*1+0x6c]",
            " fistp m4[esp+None*1+0x60]",
            " mov edx,m4[esp+None*1+0x6c]",
            "-mov m4[None+None*1+0x5a48dc],eax",
            "+mov m4[None+None*1+0x5978fc],eax",
            " mov eax,m4[esp+None*1+0x60]",
            " call model_a.c::get_relative_ground_height_",
            " mov edx,eax",
            "@@ -265,7 +265,7 @@",
            " fnstsw ax",
            " sahf ",
            " ja local:284",
            "-mov edx,m4[None+None*1+0x5a489c]",
            "+mov edx,m4[None+None*1+0x597874]",
            " mov ecx,m4[None+None*1+model_a.c::_dz]",
            " test edx,0x7fffffff",
            " jne local:273",
            "@@ -567,13 +567,13 @@",
            " fmul st(2)",
            " fld m8[None+None*1+model_a.c::_zdot]",
            " fmulp st(3)",
            "-fld m8[None+None*1+0x5a4910]",
            "+fld m8[None+None*1+0x597928]",
            " fmul st(2)",
            "-fld m8[None+None*1+0x5a4918]",
            "+fld m8[None+None*1+0x597930]",
            " fmulp st(3)",
            " fld m8[None+None*1+model_a.c::_mat_attitude]",
            " fmul st(2)",
            "-fld m8[None+None*1+0x5a4900]",
            "+fld m8[None+None*1+0x597918]",
            " fmulp st(3)",
            " fld m8[None+None*1+gamedata.c::_frame_time]",
            " fmul st(5),st(0)",
            "@@ -609,7 +609,7 @@",
            " jmp local:212",
            " mov eax,m4[None+None*1+model_a.c::_z]",
            " mov m4[esp+None*1+0x38],eax",
            "-mov eax,m4[None+None*1+0x5a485c]",
            "+mov eax,m4[None+None*1+0x59782c]",
            " mov m4[esp+None*1+0x3c],eax",
            " jmp local:604",
            " fld m8[None+None*1+model_a.c::_x]",
            "@@ -628,7 +628,7 @@",
            " jmp local:224",
            " mov eax,m4[None+None*1+model_a.c::_x]",
            " mov m4[esp+None*1+0x30],eax",
            "-mov eax,m4[None+None*1+0x5a48d4]",
            "+mov eax,m4[None+None*1+0x5978f4]",
            " jmp local:622",
            " fld m8[None+None*1+model_a.c::_y]",
            " fcomp m8[None+None*1+constant:00000000feff2f41]",
            "@@ -646,7 +646,7 @@",
            " jmp local:236",
            " mov eax,m4[None+None*1+model_a.c::_y]",
            " mov m4[esp+None*1+0x8],eax",
            "-mov eax,m4[None+None*1+0x5a48dc]",
            "+mov eax,m4[None+None*1+0x5978fc]",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[esp+None*1+0x0],eax"
          ]
        },
        {
          "symbol": "model_a.c::update_control_rates_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43d230",
          "second": "0x43d5b0",
          "first_instruction_count": 738,
          "second_instruction_count": 738,
          "diff": [
            "--- 0x43d230",
            "+++ 0x43d5b0",
            "@@ -78,7 +78,7 @@",
            " mov m4[None+None*1+model_a.c::_collective],eax",
            " mov eax,m4[esp+None*1+0x1c]",
            " fld m8[None+None*1+model_a.c::_engine_torque]",
            "-mov m4[None+None*1+0x5a47bc],eax",
            "+mov m4[None+None*1+0x5976d4],eax",
            " fcomp m8[None+None*1+constant:0000000000004940]",
            " fnstsw ax",
            " sahf ",
            "@@ -112,15 +112,15 @@",
            " mov m4[None+None*1+constant:00000000],edi",
            " xor edx,edx",
            " mov m4[None+None*1+model_a.c::_p],edx",
            "-mov m4[None+None*1+0x5a48cc],edx",
            "+mov m4[None+None*1+0x5978b4],edx",
            " mov m4[None+None*1+model_a.c::_q],edx",
            "-mov m4[None+None*1+0x5a4844],edx",
            "+mov m4[None+None*1+0x5978bc],edx",
            " mov m4[None+None*1+model_a.c::_qdem],edx",
            "-mov m4[None+None*1+0x5a481c],edx",
            "+mov m4[None+None*1+0x59787c],edx",
            " mov m4[None+None*1+model_a.c::_pdem],edx",
            "-mov m4[None+None*1+0x5a48a4],edx",
            "+mov m4[None+None*1+0x597884],edx",
            " mov m4[None+None*1+model_a.c::_r],edx",
            "-mov m4[None+None*1+0x5a484c],edx",
            "+mov m4[None+None*1+0x59781c],edx",
            " fld m8[None+None*1+model_a.c::_z]",
            " fcomp m8[esp+None*1+0x8]",
            " fnstsw ax",
            "@@ -130,7 +130,7 @@",
            " mov m4[None+None*1+model_a.c::_phi],edi",
            " mov m4[None+None*1+constant:00000000],edi",
            " mov m4[None+None*1+model_a.c::_p],edi",
            "-mov m4[None+None*1+0x5a48cc],edi",
            "+mov m4[None+None*1+0x5978b4],edi",
            " fld m8[None+None*1+model_a.c::_u]",
            " fcomp m8[None+None*1+constant:0000000000005940]",
            " fnstsw ax",
            "@@ -139,7 +139,7 @@",
            " mov edi,0x4ae74625",
            " mov eax,0x3fb65718",
            " mov m4[None+None*1+model_a.c::_rmax],edi",
            "-mov m4[None+None*1+0x5a47fc],eax",
            "+mov m4[None+None*1+0x5977dc],eax",
            " fld m8[None+None*1+model_a.c::_Jr]",
            " fchs ",
            " fmul m8[None+None*1+model_a.c::_rmax]",
            "@@ -171,7 +171,7 @@",
            " fnstsw ax",
            " sahf ",
            " ja local:174",
            "-xor m1[None+None*1+0x5a4807],0x80",
            "+xor m1[None+None*1+0x5977e7],0x80",
            " fld m8[None+None*1+model_a.c::_cos_phi]",
            " fld st(0)",
            " fabs ",
            "@@ -426,7 +426,7 @@",
            " jmp local:76",
            " mov eax,m4[None+None*1+model_a.c::_collective]",
            " mov m4[esp+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x5a47bc]",
            "+mov eax,m4[None+None*1+0x5976d4]",
            " mov m4[esp+None*1+0x4],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x18],eax",
            "@@ -441,11 +441,11 @@",
            " mov esi,0x62fc82aa",
            " mov edi,0x3fb6fa7f",
            " mov m4[None+None*1+model_a.c::_current_landing_pitch],esi",
            "-mov m4[None+None*1+0x5a4944],edi",
            "+mov m4[None+None*1+0x59795c],edi",
            " jmp local:95",
            " xor ecx,ecx",
            " mov m4[None+None*1+model_a.c::_current_landing_pitch],ecx",
            "-mov m4[None+None*1+0x5a4944],ecx",
            "+mov m4[None+None*1+0x59795c],ecx",
            " jmp local:95",
            " mov eax,m4[None+None*1+drone.c::_user_drone]",
            " test m1[eax+None*1+0x1c5],0x4",
            "@@ -589,7 +589,7 @@",
            " jmp local:133",
            " mov eax,m4[None+None*1+model_a.c::_sin_phi]",
            " mov m4[esp+None*1+0x20],eax",
            "-mov eax,m4[None+None*1+0x5a4664]",
            "+mov eax,m4[None+None*1+0x597674]",
            " mov m4[esp+None*1+0x24],eax",
            " fldz ",
            " fcomp m8[esp+None*1+0x20]",
            "@@ -614,7 +614,7 @@",
            " fnstsw ax",
            " sahf ",
            " ja local:142",
            "-mov bl,m1[None+None*1+0x6748c6]",
            "+mov bl,m1[None+None*1+0x6678d6]",
            " test bl,0x10",
            " jne local:625",
            " test bl,0x20",
            "@@ -625,7 +625,7 @@",
            " jmp local:142",
            " xor ebx,ebx",
            " mov m4[None+None*1+model_a.c::_rmax],ebx",
            "-mov m4[None+None*1+0x5a47fc],ebx",
            "+mov m4[None+None*1+0x5977dc],ebx",
            " jmp local:142",
            " fld m8[None+None*1+model_a.c::_u]",
            " fcomp m8[None+None*1+constant:0000000000003140]",
            "@@ -641,7 +641,7 @@",
            " jmp local:162",
            " xor edx,edx",
            " mov m4[None+None*1+model_a.c::_turnrate],edx",
            "-mov m4[None+None*1+0x5a4804],edx",
            "+mov m4[None+None*1+0x5977e4],edx",
            " jmp local:163",
            " fldz ",
            " fcomp m8[None+None*1+model_a.c::_psi]",
            "@@ -729,7 +729,7 @@",
            " mov eax,m4[None+None*1+model_a.c::_phi]",
            " mov m4[None+None*1+model_a.c::_my_roll],eax",
            " mov eax,m4[None+None*1+constant:00000000]",
            "-mov m4[None+None*1+0x5a487c],eax",
            "+mov m4[None+None*1+0x5978d4],eax",
            " jmp local:364",
            " mov edx,0x33333333",
            " mov ecx,0x3fd33333"
          ]
        },
        {
          "symbol": "model_a.c::update_model_inputs_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43d110",
          "second": "0x43d490",
          "first_instruction_count": 73,
          "second_instruction_count": 73,
          "diff": [
            "--- 0x43d110",
            "+++ 0x43d490",
            "@@ -20,7 +20,7 @@",
            " fstp m8[None+None*1+model_a.c::_Jq]",
            " fxch st(0),st(1)",
            " fstp m8[None+None*1+model_a.c::_Jp]",
            "-fcomp m8[None+None*1+0x5a49b0]",
            "+fcomp m8[None+None*1+0x5979c0]",
            " fnstsw ax",
            " sahf ",
            " je local:53",
            "@@ -30,11 +30,11 @@",
            " fld m8[None+None*1+model_a.c::_Jp]",
            " mov ecx,0x1",
            " fxch st(0),st(3)",
            "-fstp m8[None+None*1+0x5a49b0]",
            "+fstp m8[None+None*1+0x5979c0]",
            " fxch st(0),st(1)",
            "-fstp m8[None+None*1+0x5a49b8]",
            "-fstp m8[None+None*1+0x5a49c0]",
            "-fstp m8[None+None*1+0x5a49c8]",
            "+fstp m8[None+None*1+0x5979c8]",
            "+fstp m8[None+None*1+0x5979d0]",
            "+fstp m8[None+None*1+0x5979d8]",
            " mov m4[None+None*1+model_a.c::_user_input],ecx",
            " pop edx",
            " pop ecx",
            "@@ -52,17 +52,17 @@",
            " pop ecx",
            " ret ",
            " fld m8[None+None*1+model_a.c::_Jr]",
            "-fcomp m8[None+None*1+0x5a49b8]",
            "+fcomp m8[None+None*1+0x5979c8]",
            " fnstsw ax",
            " sahf ",
            " jne local:26",
            " fld m8[None+None*1+model_a.c::_Jq]",
            "-fcomp m8[None+None*1+0x5a49c0]",
            "+fcomp m8[None+None*1+0x5979d0]",
            " fnstsw ax",
            " sahf ",
            " jne local:26",
            " fld m8[None+None*1+model_a.c::_Jp]",
            "-fcomp m8[None+None*1+0x5a49c8]",
            "+fcomp m8[None+None*1+0x5979d8]",
            " fnstsw ax",
            " sahf ",
            " jne local:26"
          ]
        },
        {
          "symbol": "model_v.c::close_throttle_",
          "source": "E:\\apache\\source\\models\\model_v.c",
          "first": "0x44043c",
          "second": "0x4407bc",
          "first_instruction_count": 43,
          "second_instruction_count": 43,
          "diff": [
            "--- 0x44043c",
            "+++ 0x4407bc",
            "@@ -18,12 +18,12 @@",
            " jae local:39",
            " mov eax,m4[None+None*1+model_v.c::_velocity]",
            " mov m4[esp+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x5a4aa4]",
            "+mov eax,m4[None+None*1+0x597ab4]",
            " mov m4[esp+None*1+0x4],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+model_v.c::_velocity],eax",
            " mov eax,m4[esp+None*1+0x4]",
            "-mov m4[None+None*1+0x5a4aa4],eax",
            "+mov m4[None+None*1+0x597ab4],eax",
            " mov esp,ebp",
            " pop ebp",
            " pop edx",
            "@@ -31,7 +31,7 @@",
            " ret ",
            " xor ebx,ebx",
            " mov m4[None+None*1+model_v.c::_velocity],ebx",
            "-mov m4[None+None*1+0x5a4aa4],ebx",
            "+mov m4[None+None*1+0x597ab4],ebx",
            " jmp local:26",
            " fld m8[None+None*1+model_v.c::_velocity]",
            " fadd m8[None+None*1+constant:000000000040d5c0]"
          ]
        },
        {
          "symbol": "model_v.c::initialise_vector_flight_model_",
          "source": "E:\\apache\\source\\models\\model_v.c",
          "first": "0x43fe34",
          "second": "0x4401b4",
          "first_instruction_count": 45,
          "second_instruction_count": 45,
          "diff": [
            "--- 0x43fe34",
            "+++ 0x4401b4",
            "@@ -39,7 +39,7 @@",
            " xor edx,edx",
            " call model.c::get_mat_",
            " mov m4[None+None*1+model_v.c::_velocity],edx",
            "-mov m4[None+None*1+0x5a4aa4],edx",
            "+mov m4[None+None*1+0x597ab4],edx",
            " pop edx",
            " pop ebx",
            " ret "
          ]
        },
        {
          "symbol": "model_v.c::open_throttle_",
          "source": "E:\\apache\\source\\models\\model_v.c",
          "first": "0x4403a4",
          "second": "0x440724",
          "first_instruction_count": 49,
          "second_instruction_count": 49,
          "diff": [
            "--- 0x4403a4",
            "+++ 0x440724",
            "@@ -20,12 +20,12 @@",
            " jae local:44",
            " mov eax,m4[None+None*1+model_v.c::_velocity]",
            " mov m4[esp+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x5a4aa4]",
            "+mov eax,m4[None+None*1+0x597ab4]",
            " mov m4[esp+None*1+0x4],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+model_v.c::_velocity],eax",
            " mov eax,m4[esp+None*1+0x4]",
            "-mov m4[None+None*1+0x5a4aa4],eax",
            "+mov m4[None+None*1+0x597ab4],eax",
            " mov esp,ebp",
            " pop ebp",
            " pop esi",
            "@@ -36,7 +36,7 @@",
            " xor ebx,ebx",
            " mov esi,0x411a9000",
            " mov m4[None+None*1+model_v.c::_velocity],ebx",
            "-mov m4[None+None*1+0x5a4aa4],esi",
            "+mov m4[None+None*1+0x597ab4],esi",
            " jmp local:28",
            " fld m8[None+None*1+model_v.c::_velocity]",
            " fadd m8[None+None*1+constant:000000000040d540]"
          ]
        },
        {
          "symbol": "model_v.c::update_vector_flight_model_",
          "source": "E:\\apache\\source\\models\\model_v.c",
          "first": "0x43fedc",
          "second": "0x44025c",
          "first_instruction_count": 315,
          "second_instruction_count": 315,
          "diff": [
            "--- 0x43fedc",
            "+++ 0x44025c",
            "@@ -34,17 +34,17 @@",
            " push model_v.c::_mat_motion",
            " fxch st(0),st(2)",
            " fstp m8[None+None*1+model_v.c::_delta_roll]",
            "-mov edx,m4[None+None*1+0x5a4a94]",
            "+mov edx,m4[None+None*1+0x597aa4]",
            " mov ecx,m4[None+None*1+model_v.c::_delta_roll]",
            " push edx",
            " fstp m8[None+None*1+model_v.c::_delta_pitch]",
            " push ecx",
            "-mov ebx,m4[None+None*1+0x5a4afc]",
            "+mov ebx,m4[None+None*1+0x597adc]",
            " mov esi,m4[None+None*1+model_v.c::_delta_pitch]",
            " push ebx",
            " fstp m8[None+None*1+model_v.c::_delta_heading]",
            " push esi",
            "-mov edi,m4[None+None*1+0x5a4ab4]",
            "+mov edi,m4[None+None*1+0x597abc]",
            " mov eax,m4[None+None*1+model_v.c::_delta_heading]",
            " push edi",
            " mov edx,model_v.c::_mat_attitude",
            "@@ -72,59 +72,59 @@",
            " fistp m4[esp+None*1+0x2c]",
            " mov eax,m4[esp+None*1+0x2c]",
            " mov m4[edx+None*1+0xc],eax",
            "-fld m8[None+None*1+0x5a4a08]",
            "+fld m8[None+None*1+0x597a18]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x2c]",
            " mov eax,m4[esp+None*1+0x2c]",
            " mov m4[edx+None*1+0x10],eax",
            "-fld m8[None+None*1+0x5a4a10]",
            "+fld m8[None+None*1+0x597a20]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x30]",
            " mov eax,m4[esp+None*1+0x30]",
            " mov m4[edx+None*1+0x14],eax",
            "-fld m8[None+None*1+0x5a4a18]",
            "+fld m8[None+None*1+0x597a28]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x30]",
            " mov eax,m4[esp+None*1+0x30]",
            " mov m4[edx+None*1+0x18],eax",
            "-fld m8[None+None*1+0x5a4a20]",
            "+fld m8[None+None*1+0x597a30]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x30]",
            " mov eax,m4[esp+None*1+0x30]",
            " mov m4[edx+None*1+0x1c],eax",
            "-fld m8[None+None*1+0x5a4a28]",
            "+fld m8[None+None*1+0x597a38]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x30]",
            " mov eax,m4[esp+None*1+0x30]",
            " mov m4[edx+None*1+0x20],eax",
            "-fld m8[None+None*1+0x5a4a30]",
            "+fld m8[None+None*1+0x597a40]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x30]",
            " mov eax,m4[esp+None*1+0x30]",
            " mov m4[edx+None*1+0x24],eax",
            "-fld m8[None+None*1+0x5a4a38]",
            "+fld m8[None+None*1+0x597a48]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x2c]",
            " mov eax,m4[esp+None*1+0x2c]",
            " mov m4[edx+None*1+0x28],eax",
            "-fmul m8[None+None*1+0x5a4a40]",
            "+fmul m8[None+None*1+0x597a50]",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x2c]",
            " mov eax,m4[esp+None*1+0x2c]",
            " mov m4[edx+None*1+0x2c],eax",
            " fld m8[None+None*1+model_v.c::_velocity]",
            "-fld m8[None+None*1+0x5a4a18]",
            "-fmul st(1)",
            "-fld m8[None+None*1+0x5a4a20]",
            "+fld m8[None+None*1+0x597a28]",
            "+fmul st(1)",
            "+fld m8[None+None*1+0x597a30]",
            " fmul st(2)",
            "-fld m8[None+None*1+0x5a4a28]",
            "+fld m8[None+None*1+0x597a38]",
            " fmulp st(3)",
            " fld m8[None+None*1+gamedata.c::_frame_time]",
            " fmulp st(2)",
            "@@ -172,7 +172,7 @@",
            " mov m4[None+None*1+model_v.c::_x],eax",
            " mov eax,m4[esp+None*1+0x4]",
            " fldz ",
            "-mov m4[None+None*1+0x5a4ac4],eax",
            "+mov m4[None+None*1+0x597b3c],eax",
            " fcomp m8[None+None*1+model_v.c::_y]",
            " fnstsw ax",
            " sahf ",
            "@@ -193,9 +193,9 @@",
            " mov m4[None+None*1+model_v.c::_y],eax",
            " mov eax,m4[esp+None*1+0x24]",
            " mov edx,m4[esp+None*1+0x30]",
            "-mov m4[None+None*1+0x5a4ad4],eax",
            "-mov eax,m4[esp+None*1+0x2c]",
            "-call fxterr.c::get_terrain_elevation_",
            "+mov m4[None+None*1+0x597b44],eax",
            "+mov eax,m4[esp+None*1+0x2c]",
            "+call terrain.c::get_terrain_elevation_",
            " mov m4[esp+None*1+0x30],eax",
            " fild m4[esp+None*1+0x30]",
            " fst m8[None+None*1+model_v.c::_ground_height]",
            "@@ -210,7 +210,7 @@",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[None+None*1+model_v.c::_z],eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov m4[None+None*1+0x5a4ae4],eax",
            "+mov m4[None+None*1+0x597b4c],eax",
            " call elevate.c::position_chain_gun_",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            " fild m4[eax+None*1+0x4]",
            "@@ -280,7 +280,7 @@",
            " jmp local:170",
            " mov eax,m4[None+None*1+model_v.c::_x]",
            " mov m4[esp+None*1+0x18],eax",
            "-mov eax,m4[None+None*1+0x5a4ac4]",
            "+mov eax,m4[None+None*1+0x597b3c]",
            " mov m4[esp+None*1+0x1c],eax",
            " jmp local:166",
            " fld m8[None+None*1+model_v.c::_y]",
            "@@ -299,7 +299,7 @@",
            " jmp local:182",
            " mov eax,m4[None+None*1+model_v.c::_y]",
            " mov m4[esp+None*1+0x10],eax",
            "-mov eax,m4[None+None*1+0x5a4ad4]",
            "+mov eax,m4[None+None*1+0x597b44]",
            " jmp local:293",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            " mov edx,m4[eax+None*1+0x1c]"
          ]
        },
        {
          "symbol": "modemprf.c::do_preamble_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40b430",
          "second": "0x40b790",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x40b430",
            "+++ 0x40b790",
            "@@ -13,16 +13,16 @@",
            " ret ",
            " mov m4[None+None*1+modemprf.c::_player_game_mode],0x2",
            " jmp local:4",
            "-mov eax,m4[None+None*1+constant:78814d00]",
            "+mov eax,m4[None+None*1+constant:5cb24c00]",
            " call modemprf.c::add_modem_message_line_",
            "-mov eax,m4[None+None*1+constant:dc814d00]",
            "+mov eax,m4[None+None*1+constant:c0b24c00]",
            " call modemprf.c::add_modem_message_line_",
            " call modemprf.c::hang_up_the_phone_",
            " pop ebx",
            " ret ",
            "-mov eax,m4[None+None*1+constant:bc814d00]",
            "+mov eax,m4[None+None*1+constant:a0b24c00]",
            " call modemprf.c::add_modem_message_line_",
            "-mov eax,m4[None+None*1+constant:dc814d00]",
            "+mov eax,m4[None+None*1+constant:c0b24c00]",
            " call modemprf.c::add_modem_message_line_",
            " call modemprf.c::hang_up_the_phone_",
            " pop ebx"
          ]
        },
        {
          "symbol": "modemprf.c::do_the_necessary_checks_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40fecc",
          "second": "0x41022c",
          "first_instruction_count": 54,
          "second_instruction_count": 54,
          "diff": [
            "--- 0x40fecc",
            "+++ 0x41022c",
            "@@ -28,9 +28,9 @@",
            " jbe local:38",
            " cmp edx,0x102",
            " jne local:46",
            "-mov eax,m4[None+None*1+constant:78814d00]",
            "+mov eax,m4[None+None*1+constant:5cb24c00]",
            " call modemprf.c::add_modem_message_line_",
            "-mov eax,m4[None+None*1+constant:dc814d00]",
            "+mov eax,m4[None+None*1+constant:c0b24c00]",
            " call modemprf.c::add_modem_message_line_",
            " call modemprf.c::hang_up_the_phone_",
            " mov eax,0x1",
            "@@ -38,7 +38,7 @@",
            " ret ",
            " mov eax,text:'No response - Timed out'",
            " call modemprf.c::add_modem_message_line_",
            "-mov eax,m4[None+None*1+constant:dc814d00]",
            "+mov eax,m4[None+None*1+constant:c0b24c00]",
            " call modemprf.c::add_modem_message_line_",
            " call modemprf.c::hang_up_the_phone_",
            " mov eax,0x1"
          ]
        },
        {
          "symbol": "modemprf.c::initialise_modem_preferences_screen_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x409f18",
          "second": "0x40a278",
          "first_instruction_count": 1865,
          "second_instruction_count": 1865,
          "diff": [
            "--- 0x409f18",
            "+++ 0x40a278",
            "@@ -273,7 +273,7 @@",
            " add ecx,0x37",
            " call object.c::create_object_",
            " add esp,0x44",
            "-mov m4[edx+None*1+0x518874],eax",
            "+mov m4[edx+None*1+0x50b8e4],eax",
            " cmp edx,0x10",
            " jne local:250",
            " push 0x0",
            "@@ -553,7 +553,7 @@",
            " add ecx,edi",
            " call object.c::create_object_",
            " add esp,0x44",
            "-mov m4[edx+None*1+0x518884],eax",
            "+mov m4[edx+None*1+0x50b884],eax",
            " cmp edx,0x28",
            " jne local:530",
            " mov edx,0x1",
            "@@ -1120,7 +1120,7 @@",
            " add ecx,ebp",
            " call object.c::create_object_",
            " add esp,0x44",
            "-mov m4[edx+None*1+0x51882c],eax",
            "+mov m4[edx+None*1+0x50b83c],eax",
            " cmp edx,edi",
            " jne local:1098",
            " mov ecx,m4[esp+None*1+0x30]",
            "@@ -1205,7 +1205,7 @@",
            " add ecx,0xb",
            " call object.c::create_object_",
            " add esp,0x2c",
            "-mov m4[edx+None*1+0x518b84],eax",
            "+mov m4[edx+None*1+0x50bb94],eax",
            " cmp edx,0x38",
            " jne local:1190",
            " push 0x0",
            "@@ -1257,7 +1257,7 @@",
            " push 0x0",
            " push modemprf.c::notify_two_player_game_mode_",
            " push 0x21",
            "-mov ecx,m4[None+None*1+constant:4c654d00]",
            "+mov ecx,m4[None+None*1+constant:4c954c00]",
            " push ecx",
            " push 0x29",
            " mov ebx,m4[None+None*1+fonts.c::_menu_11x15]",
            "@@ -1449,7 +1449,7 @@",
            " add ecx,ebx",
            " call object.c::create_object_",
            " add esp,0x4c",
            "-mov m4[edx+None*1+0x518b74],eax",
            "+mov m4[edx+None*1+0x50bb84],eax",
            " cmp edx,0x10",
            " jne local:1424",
            " mov eax,m4[None+None*1+modemprf.c::_two_player_weather]",
            "@@ -1792,7 +1792,7 @@",
            " add ecx,ebp",
            " call object.c::create_object_",
            " add esp,0x4c",
            "-mov m4[ebx+None*1+0x518844],eax",
            "+mov m4[ebx+None*1+0x50b854],eax",
            " cmp edx,0xb",
            " jl local:1760",
            " push 0x0"
          ]
        },
        {
          "symbol": "modemprf.c::initialise_modem_setup_command_pointers_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40d098",
          "second": "0x40d3f8",
          "first_instruction_count": 9,
          "second_instruction_count": 9,
          "diff": [
            "--- 0x40d098",
            "+++ 0x40d3f8",
            "@@ -2,7 +2,7 @@",
            " xor eax,eax",
            " add eax,0x4",
            " xor edx,edx",
            "-mov m4[eax+None*1+0x518b24],edx",
            "+mov m4[eax+None*1+0x50bb34],edx",
            " cmp eax,0x50",
            " jne local:2",
            " pop edx"
          ]
        },
        {
          "symbol": "modemprf.c::load_modem_commands_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40d1ac",
          "second": "0x40d50c",
          "first_instruction_count": 412,
          "second_instruction_count": 412,
          "diff": [
            "--- 0x40d1ac",
            "+++ 0x40d50c",
            "@@ -16,7 +16,7 @@",
            " xor esi,esi",
            " add esi,0x4",
            " xor edi,edi",
            "-mov m4[esi+None*1+0x5188e4],edi",
            "+mov m4[esi+None*1+0x50b8f4],edi",
            " cmp esi,0x28",
            " jne local:16",
            " xor ebp,ebp",
            "@@ -171,11 +171,11 @@",
            " xor eax,eax",
            " mov m4[None+None*1+modemprf.c::_us_robotics],eax",
            " mov edx,0x1",
            "-mov eax,m4[None+None*1+0x5188d0]",
            "+mov eax,m4[None+None*1+0x50b8d0]",
            " call uoaccess.c::set_object_displayable_",
            " xor esi,esi",
            " mov edx,0x1",
            "-mov eax,m4[None+None*1+0x5188d8]",
            "+mov eax,m4[None+None*1+0x50b8d8]",
            " xor ebp,ebp",
            " call uoaccess.c::set_object_displayable_",
            " mov edi,0x34",
            "@@ -335,39 +335,39 @@",
            " je local:404",
            " cmp ebx,0x4",
            " jne local:346",
            "-mov eax,m4[None+None*1+0x5188d8]",
            "+mov eax,m4[None+None*1+0x50b8d8]",
            " xor edx,edx",
            " call uoaccess.c::set_object_on_",
            " mov edx,0x1",
            "-mov eax,m4[None+None*1+0x5188d4]",
            "+mov eax,m4[None+None*1+0x50b8d4]",
            " mov edi,0x3",
            " call uoaccess.c::set_object_on_",
            " mov m4[None+None*1+modemprf.c::_two_player_baud_rate],edi",
            "-mov eax,m4[None+None*1+0x5188d0]",
            "-xor edx,edx",
            "-call uoaccess.c::set_object_displayable_",
            "-mov eax,m4[None+None*1+0x5188d8]",
            "+mov eax,m4[None+None*1+0x50b8d0]",
            "+xor edx,edx",
            "+call uoaccess.c::set_object_displayable_",
            "+mov eax,m4[None+None*1+0x50b8d8]",
            " xor edx,edx",
            " mov ebx,0x3",
            " call uoaccess.c::set_object_displayable_",
            " mov edx,0x8f",
            "-mov eax,m4[None+None*1+0x5188cc]",
            "+mov eax,m4[None+None*1+0x50b8cc]",
            " call object.c::move_object_",
            " mov ebx,0x3",
            " mov edx,0xd9",
            "-mov eax,m4[None+None*1+0x5188d4]",
            "+mov eax,m4[None+None*1+0x50b8d4]",
            " call object.c::move_object_",
            " mov ebx,0x15",
            " mov edx,0x46",
            "-mov eax,m4[None+None*1+0x5188dc]",
            "+mov eax,m4[None+None*1+0x50b8dc]",
            " call object.c::move_object_",
            " mov ebx,0x15",
            " mov edx,0x8f",
            "-mov eax,m4[None+None*1+0x5188e0]",
            "+mov eax,m4[None+None*1+0x50b8e0]",
            " call object.c::move_object_",
            " mov ebx,0x15",
            " mov edx,0xd9",
            "-mov eax,m4[None+None*1+0x5188e4]",
            "+mov eax,m4[None+None*1+0x50b8e4]",
            " call object.c::move_object_",
            " mov ebx,0xf",
            " mov edx,0x46",
            "@@ -375,23 +375,23 @@",
            " call object.c::resize_object_",
            " mov ebx,0xf",
            " mov edx,0x47",
            "-mov eax,m4[None+None*1+0x5188cc]",
            "+mov eax,m4[None+None*1+0x50b8cc]",
            " call object.c::resize_object_",
            " mov ebx,0xf",
            " mov edx,0x46",
            "-mov eax,m4[None+None*1+0x5188d4]",
            "+mov eax,m4[None+None*1+0x50b8d4]",
            " call object.c::resize_object_",
            " mov ebx,0xf",
            " mov edx,0x46",
            "-mov eax,m4[None+None*1+0x5188dc]",
            "+mov eax,m4[None+None*1+0x50b8dc]",
            " call object.c::resize_object_",
            " mov ebx,0xf",
            " mov edx,0x47",
            "-mov eax,m4[None+None*1+0x5188e0]",
            "+mov eax,m4[None+None*1+0x50b8e0]",
            " call object.c::resize_object_",
            " mov ebx,0xf",
            " mov edx,0x46",
            "-mov eax,m4[None+None*1+0x5188e4]",
            "+mov eax,m4[None+None*1+0x50b8e4]",
            " call object.c::resize_object_",
            " add esp,0x1a0",
            " pop ebp",
            "@@ -401,11 +401,11 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov eax,m4[None+None*1+0x5188d0]",
            "+mov eax,m4[None+None*1+0x50b8d0]",
            " xor edx,edx",
            " call uoaccess.c::set_object_on_",
            " mov edx,0x1",
            "-mov eax,m4[None+None*1+0x5188cc]",
            "+mov eax,m4[None+None*1+0x50b8cc]",
            " mov ebp,0x1",
            " call uoaccess.c::set_object_on_",
            " mov m4[None+None*1+modemprf.c::_two_player_baud_rate],ebp"
          ]
        },
        {
          "symbol": "modemprf.c::notify_modem_selection_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40b8ac",
          "second": "0x40bc0c",
          "first_instruction_count": 151,
          "second_instruction_count": 151,
          "diff": [
            "--- 0x40b8ac",
            "+++ 0x40bc0c",
            "@@ -28,11 +28,11 @@",
            " xor eax,eax",
            " mov m4[None+None*1+modemprf.c::_us_robotics],eax",
            " mov edx,0x1",
            "-mov eax,m4[None+None*1+0x5188d0]",
            "+mov eax,m4[None+None*1+0x50b8d0]",
            " call uoaccess.c::set_object_displayable_",
            " xor edi,edi",
            " mov edx,0x1",
            "-mov eax,m4[None+None*1+0x5188d8]",
            "+mov eax,m4[None+None*1+0x50b8d8]",
            " xor ecx,ecx",
            " call uoaccess.c::set_object_displayable_",
            " mov ebx,ebp",
            "@@ -76,39 +76,39 @@",
            " je local:142",
            " cmp ebx,0x4",
            " jne local:86",
            "-mov eax,m4[None+None*1+0x5188d8]",
            "+mov eax,m4[None+None*1+0x50b8d8]",
            " xor edx,edx",
            " call uoaccess.c::set_object_on_",
            " mov edx,0x1",
            "-mov eax,m4[None+None*1+0x5188d4]",
            "+mov eax,m4[None+None*1+0x50b8d4]",
            " mov edi,0x3",
            " call uoaccess.c::set_object_on_",
            " mov m4[None+None*1+modemprf.c::_two_player_baud_rate],edi",
            "-mov eax,m4[None+None*1+0x5188d0]",
            "+mov eax,m4[None+None*1+0x50b8d0]",
            " xor edx,edx",
            " call uoaccess.c::set_object_displayable_",
            "-mov eax,m4[None+None*1+0x5188d8]",
            "+mov eax,m4[None+None*1+0x50b8d8]",
            " xor edx,edx",
            " mov ebx,0x3",
            " call uoaccess.c::set_object_displayable_",
            " mov edx,0x8f",
            "-mov eax,m4[None+None*1+0x5188cc]",
            "+mov eax,m4[None+None*1+0x50b8cc]",
            " call object.c::move_object_",
            " mov ebx,0x3",
            " mov edx,0xd9",
            "-mov eax,m4[None+None*1+0x5188d4]",
            "+mov eax,m4[None+None*1+0x50b8d4]",
            " call object.c::move_object_",
            " mov ebx,0x15",
            " mov edx,0x46",
            "-mov eax,m4[None+None*1+0x5188dc]",
            "+mov eax,m4[None+None*1+0x50b8dc]",
            " call object.c::move_object_",
            " mov ebx,0x15",
            " mov edx,0x8f",
            "-mov eax,m4[None+None*1+0x5188e0]",
            "+mov eax,m4[None+None*1+0x50b8e0]",
            " call object.c::move_object_",
            " mov ebx,0x15",
            " mov edx,0xd9",
            "-mov eax,m4[None+None*1+0x5188e4]",
            "+mov eax,m4[None+None*1+0x50b8e4]",
            " call object.c::move_object_",
            " mov ebx,0xf",
            " mov edx,0x46",
            "@@ -116,23 +116,23 @@",
            " call object.c::resize_object_",
            " mov ebx,0xf",
            " mov edx,0x47",
            "-mov eax,m4[None+None*1+0x5188cc]",
            "+mov eax,m4[None+None*1+0x50b8cc]",
            " call object.c::resize_object_",
            " mov ebx,0xf",
            " mov edx,0x46",
            "-mov eax,m4[None+None*1+0x5188d4]",
            "+mov eax,m4[None+None*1+0x50b8d4]",
            " call object.c::resize_object_",
            " mov ebx,0xf",
            " mov edx,0x46",
            "-mov eax,m4[None+None*1+0x5188dc]",
            "+mov eax,m4[None+None*1+0x50b8dc]",
            " call object.c::resize_object_",
            " mov ebx,0xf",
            " mov edx,0x47",
            "-mov eax,m4[None+None*1+0x5188e0]",
            "+mov eax,m4[None+None*1+0x50b8e0]",
            " call object.c::resize_object_",
            " mov ebx,0xf",
            " mov edx,0x46",
            "-mov eax,m4[None+None*1+0x5188e4]",
            "+mov eax,m4[None+None*1+0x50b8e4]",
            " call object.c::resize_object_",
            " pop ebp",
            " pop edi",
            "@@ -140,11 +140,11 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov eax,m4[None+None*1+0x5188d0]",
            "+mov eax,m4[None+None*1+0x50b8d0]",
            " xor edx,edx",
            " call uoaccess.c::set_object_on_",
            " mov edx,0x1",
            "-mov eax,m4[None+None*1+0x5188cc]",
            "+mov eax,m4[None+None*1+0x50b8cc]",
            " mov ebp,0x1",
            " call uoaccess.c::set_object_on_",
            " mov m4[None+None*1+modemprf.c::_two_player_baud_rate],ebp"
          ]
        },
        {
          "symbol": "modemprf.c::notify_two_player_start_mission_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40cd2c",
          "second": "0x40d08c",
          "first_instruction_count": 138,
          "second_instruction_count": 138,
          "diff": [
            "--- 0x40cd2c",
            "+++ 0x40d08c",
            "@@ -47,7 +47,7 @@",
            " xor ebp,ebp",
            " cmp ebp,m4[edi+None*1+net.c::_connections]",
            " je local:107",
            "-mov edx,m4[edi+None*1+0x744614]",
            "+mov edx,m4[edi+None*1+0x72f0e4]",
            " cmp ebp,edx",
            " je local:114",
            " test esi,esi",
            "@@ -106,7 +106,7 @@",
            " pop ebx",
            " ret ",
            " imul eax,ecx,0x1b8",
            "-mov eax,m4[eax+None*1+0x5a15e0]",
            "+mov eax,m4[eax+None*1+0x5945f0]",
            " shl eax,0x10",
            " sar eax,0x18",
            " test eax,eax"
          ]
        },
        {
          "symbol": "modemprf.c::print_uart_error_type_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40f7b4",
          "second": "0x40fb14",
          "first_instruction_count": 33,
          "second_instruction_count": 33,
          "diff": [
            "--- 0x40f7b4",
            "+++ 0x40fb14",
            "@@ -1,4 +1,4 @@",
            "-mov eax,m4[None+None*1+constant:1c824d00]",
            "+mov eax,m4[None+None*1+constant:00b34c00]",
            " call modemprf.c::add_modem_message_line_",
            " call sercomms.c::get_serial_comms_error_flags_",
            " test al,0x2"
          ]
        },
        {
          "symbol": "modemprf.c::report_modem_response_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40f6fc",
          "second": "0x40fa5c",
          "first_instruction_count": 73,
          "second_instruction_count": 73,
          "diff": [
            "--- 0x40f6fc",
            "+++ 0x40fa5c",
            "@@ -42,10 +42,10 @@",
            " je local:19",
            " mov eax,m4[edx+None*1+modemprf.c::_modem_messages]",
            " jmp local:16",
            "-mov eax,m4[None+None*1+constant:bc814d00]",
            "+mov eax,m4[None+None*1+constant:a0b24c00]",
            " call modemprf.c::add_modem_message_line_",
            " jmp local:25",
            "-mov eax,m4[None+None*1+constant:08824d00]",
            "+mov eax,m4[None+None*1+constant:ecb24c00]",
            " call modemprf.c::add_modem_message_line_",
            " add esp,0x4",
            " pop ebp",
            "@@ -63,7 +63,7 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "-mov eax,m4[None+None*1+constant:30824d00]",
            "+mov eax,m4[None+None*1+constant:14b34c00]",
            " call modemprf.c::add_modem_message_line_",
            " add esp,0x4",
            " pop ebp"
          ]
        },
        {
          "symbol": "modemprf.c::scroll_modem_messages_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40da00",
          "second": "0x40dd60",
          "first_instruction_count": 18,
          "second_instruction_count": 18,
          "diff": [
            "--- 0x40da00",
            "+++ 0x40dd60",
            "@@ -4,7 +4,7 @@",
            " mov ecx,0x4",
            " mov eax,m4[ecx+None*1+modemprf.c::_modem_message_lines]",
            " call uoaccess.c::get_object_text_",
            "-mov ebx,m4[ecx+None*1+0x518b84]",
            "+mov ebx,m4[ecx+None*1+0x50bb94]",
            " mov edx,eax",
            " mov eax,ebx",
            " add ecx,0x4"
          ]
        },
        {
          "symbol": "modemprf.c::send_game_menu_data_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40ea14",
          "second": "0x40ed74",
          "first_instruction_count": 747,
          "second_instruction_count": 747,
          "diff": [
            "--- 0x40ea14",
            "+++ 0x40ed74",
            "@@ -13,7 +13,7 @@",
            " mov m1[None+None*1+modemprf.c::_transmit_buffer],al",
            " mov ah,0x3",
            " mov edx,0x2",
            "-mov m1[None+None*1+0x518911],ah",
            "+mov m1[None+None*1+0x50b921],ah",
            " mov eax,modemprf.c::_transmit_buffer",
            " call secure.c::tx_secure_",
            " mov edx,0x2",
            "@@ -41,7 +41,7 @@",
            " mov al,m1[None+None*1+modemprf.c::_reply_buffer]",
            " xor ebp,ebp",
            " mov m1[None+None*1+modemprf.c::_second_pc_product_number],al",
            "-mov al,m1[None+None*1+0x518a29]",
            "+mov al,m1[None+None*1+0x50ba39]",
            " mov m4[None+None*1+modemprf.c::_hangup_countdown],ebp",
            " mov m1[None+None*1+modemprf.c::_second_pc_version_number],al",
            " mov al,m1[None+None*1+modemprf.c::_second_pc_product_number]",
            "@@ -123,16 +123,16 @@",
            " mov al,m1[None+None*1+modemprf.c::_player_game_mode]",
            " mov m1[None+None*1+modemprf.c::_transmit_buffer],al",
            " mov al,m1[None+None*1+modemprf.c::_two_player_position]",
            "-mov m1[None+None*1+0x518911],al",
            "+mov m1[None+None*1+0x50b921],al",
            " mov al,m1[None+None*1+modemprf.c::_two_player_weather]",
            "-mov m1[None+None*1+0x518912],al",
            "+mov m1[None+None*1+0x50b922],al",
            " mov al,m1[None+None*1+modemprf.c::_two_player_start_time]",
            "-mov m1[None+None*1+0x518913],al",
            "+mov m1[None+None*1+0x50b923],al",
            " mov al,m1[None+None*1+modemprf.c::_two_player_difficulty]",
            "-mov m1[None+None*1+0x518914],al",
            "+mov m1[None+None*1+0x50b924],al",
            " mov al,m1[None+None*1+modemprf.c::_two_player_speech_on_off]",
            " mov edx,0x6",
            "-mov m1[None+None*1+0x518915],al",
            "+mov m1[None+None*1+0x50b925],al",
            " mov eax,modemprf.c::_transmit_buffer",
            " call secure.c::tx_secure_",
            " mov eax,text:'Menu data sent'",
            "@@ -181,7 +181,7 @@",
            " jne local:252",
            " test eax,eax",
            " jne local:186",
            "-mov dl,m1[None+None*1+0x518a29]",
            "+mov dl,m1[None+None*1+0x50ba39]",
            " cmp dl,m1[None+None*1+modemprf.c::_two_player_position]",
            " je local:270",
            " test eax,eax",
            "@@ -201,7 +201,7 @@",
            " sub eax,ebx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov m4[edx+eax*4+0x5a1484],0x40",
            "+mov m4[edx+eax*4+0x594494],0x40",
            " mov edx,0x1",
            " sub edx,ebx",
            " lea eax,m4[None+edx*4+0x0]",
            "@@ -213,27 +213,27 @@",
            " shl eax,0x2",
            " add eax,edx",
            " mov edx,m4[None+None*1+modemprf.c::_their_object_number]",
            "-mov m4[eax+None*1+0x5a1484],edx",
            "+mov m4[eax+None*1+0x594494],edx",
            " call secure.c::set_menu_timeouts_",
            " cmp m4[None+None*1+modemprf.c::_player_game_mode],0x1",
            " jne local:243",
            " mov eax,text:'Updating Menu Buttons'",
            " call modemprf.c::add_modem_message_line_",
            "-mov al,m1[None+None*1+0x518a2a]",
            "+mov al,m1[None+None*1+0x50ba3a]",
            " cmp al,m1[None+None*1+modemprf.c::_two_player_weather]",
            " jbe local:227",
            " xor eax,eax",
            "-mov al,m1[None+None*1+0x518a2a]",
            "+mov al,m1[None+None*1+0x50ba3a]",
            " mov m4[None+None*1+modemprf.c::_two_player_weather],eax",
            "-mov cl,m1[None+None*1+0x518a2b]",
            "+mov cl,m1[None+None*1+0x50ba3b]",
            " test cl,cl",
            " je local:231",
            " mov m1[None+None*1+modemprf.c::_two_player_start_time],cl",
            "-mov ch,m1[None+None*1+0x518a2c]",
            "+mov ch,m1[None+None*1+0x50ba3c]",
            " test ch,ch",
            " je local:235",
            " mov m1[None+None*1+modemprf.c::_two_player_difficulty],ch",
            "-mov al,m1[None+None*1+0x518a2d]",
            "+mov al,m1[None+None*1+0x50ba3d]",
            " test al,al",
            " je local:239",
            " mov m1[None+None*1+modemprf.c::_two_player_speech_on_off],al",
            "@@ -371,7 +371,7 @@",
            " call secure.c::tx_secure_",
            " mov eax,0xd",
            " mov cl,m1[esp+None*1+0x9c]",
            "-mov m4[None+None*1+0x518cc1],eax",
            "+mov m4[None+None*1+0x50bcd1],eax",
            " cmp cl,0xd",
            " jb local:26",
            " jbe local:393",
            "@@ -379,7 +379,7 @@",
            " jbe local:406",
            " cmp cl,0xf",
            " jne local:26",
            "-mov edx,0x518cc1",
            "+mov edx,0x50bcd1",
            " mov eax,m4[None+None*1+objects.c::_world_screen_cyprus_button]",
            " call object.c::notify_",
            " mov m4[None+None*1+modemprf.c::_data_sequencer],0x4",
            "@@ -391,7 +391,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov edx,0x518cc1",
            "+mov edx,0x50bcd1",
            " mov eax,m4[None+None*1+objects.c::_world_screen_yemen_button]",
            " mov ebx,0x4",
            " call object.c::notify_",
            "@@ -404,7 +404,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov edx,0x518cc1",
            "+mov edx,0x50bcd1",
            " mov eax,m4[None+None*1+objects.c::_world_screen_korea_button]",
            " mov ecx,0x4",
            " call object.c::notify_",
            "@@ -443,10 +443,10 @@",
            " jne local:26",
            " mov eax,0xffffffff",
            " mov esi,0xffffffff",
            "-mov edx,0x518cc1",
            "+mov edx,0x50bcd1",
            " call misssel.c::update_mission_select_info_box_",
            " mov eax,m4[None+None*1+misssel.c::_mission_selection_list]",
            "-mov m4[None+None*1+0x518cc9],esi",
            "+mov m4[None+None*1+0x50bcd9],esi",
            " call misssel.c::notify_mission_selection_list_",
            " add esp,0xa0",
            " pop ebp",
            "@@ -457,10 +457,10 @@",
            " pop ebx",
            " ret ",
            " mov edi,0xd",
            "-mov edx,0x518cc1",
            "+mov edx,0x50bcd1",
            " mov ebp,0x5",
            " mov eax,m4[None+None*1+misssel.c::_mission_selection_load_button]",
            "-mov m4[None+None*1+0x518cc1],edi",
            "+mov m4[None+None*1+0x50bcd1],edi",
            " call object.c::notify_",
            " mov m4[None+None*1+modemprf.c::_data_sequencer],ebp",
            " add esp,0xa0",
            "@@ -474,8 +474,8 @@",
            " xor eax,eax",
            " mov al,m1[esp+None*1+0x9c]",
            " sub eax,0x32",
            "-mov edx,0x518cc1",
            "-mov m4[None+None*1+0x518cc9],eax",
            "+mov edx,0x50bcd1",
            "+mov m4[None+None*1+0x50bcd9],eax",
            " call misssel.c::update_mission_select_info_box_",
            " mov eax,m4[None+None*1+misssel.c::_mission_selection_list]",
            " call misssel.c::notify_mission_selection_list_",
            "@@ -507,9 +507,9 @@",
            " jne local:26",
            " mov edx,0xd",
            " xor ecx,ecx",
            "-mov m4[None+None*1+0x518cc1],edx",
            "+mov m4[None+None*1+0x50bcd1],edx",
            " mov m4[None+None*1+modemprf.c::_modem_message_type],ecx",
            "-mov edx,0x518cc1",
            "+mov edx,0x50bcd1",
            " mov eax,m4[None+None*1+umap.c::_map_takeoff_button]",
            " mov m4[None+None*1+modemprf.c::_data_sequencer],ecx",
            " call object.c::notify_",
            "@@ -616,10 +616,10 @@",
            " jne local:26",
            " mov esi,0xd",
            " mov edi,0x1",
            "-mov edx,0x518cc1",
            "+mov edx,0x50bcd1",
            " mov eax,m4[None+None*1+umapinit.c::_map_debrief_exit_button]",
            " xor ebp,ebp",
            "-mov m4[None+None*1+0x518cc1],esi",
            "+mov m4[None+None*1+0x50bcd1],esi",
            " mov m4[None+None*1+modemprf.c::_dont_send_debrief_button],edi",
            " call object.c::notify_",
            " mov m4[None+None*1+modemprf.c::_dont_send_debrief_button],ebp",
            "@@ -655,9 +655,9 @@",
            " ret ",
            " mov eax,0xd",
            " mov edx,0x1",
            "-mov m4[None+None*1+0x518cc1],eax",
            "+mov m4[None+None*1+0x50bcd1],eax",
            " mov m4[None+None*1+modemprf.c::_dont_send_start_button],edx",
            "-mov edx,0x518cc1",
            "+mov edx,0x50bcd1",
            " mov eax,m4[None+None*1+modemprf.c::_start_game_button]",
            " xor ecx,ecx",
            " call object.c::notify_"
          ]
        },
        {
          "symbol": "modemprf.c::test_for_and_abort_if_no_modem_data_carrier_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40fe28",
          "second": "0x410188",
          "first_instruction_count": 12,
          "second_instruction_count": 12,
          "diff": [
            "--- 0x40fe28",
            "+++ 0x410188",
            "@@ -3,9 +3,9 @@",
            " je local:5",
            " mov eax,0x1",
            " ret ",
            "-mov eax,m4[None+None*1+constant:78814d00]",
            "+mov eax,m4[None+None*1+constant:5cb24c00]",
            " call modemprf.c::add_modem_message_line_",
            "-mov eax,m4[None+None*1+constant:dc814d00]",
            "+mov eax,m4[None+None*1+constant:c0b24c00]",
            " call modemprf.c::add_modem_message_line_",
            " call modemprf.c::hang_up_the_phone_",
            " xor eax,eax"
          ]
        },
        {
          "symbol": "mouse.c::draw_wait_pointer_",
          "source": "E:\\library\\system\\mouse.c",
          "first": "0x47d3c0",
          "second": "0x47b560",
          "first_instruction_count": 83,
          "second_instruction_count": 83,
          "diff": [
            "--- 0x47d3c0",
            "+++ 0x47b560",
            "@@ -42,7 +42,7 @@",
            " mov ebx,0xf",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2"
          ]
        },
        {
          "symbol": "mouse.c::get_relative_cursor_pos_",
          "source": "E:\\library\\system\\mouse.c",
          "first": "0x47e13c",
          "second": "0x47c2dc",
          "first_instruction_count": 46,
          "second_instruction_count": 46,
          "diff": [
            "--- 0x47e13c",
            "+++ 0x47c2dc",
            "@@ -22,14 +22,14 @@",
            " ret ",
            " lea eax,m4[esp+None*1+0x10]",
            " push eax",
            "-call m4[None+None*1+constant:6e490d00]",
            "+call m4[None+None*1+constant:36780c00]",
            " jmp local:11",
            " push esi",
            " lea eax,m4[esp+None*1+0x4]",
            " push eax",
            " mov esi,m4[None+None*1+start.c::_main_window]",
            " push esi",
            "-call m4[None+None*1+constant:ba490d00]",
            "+call m4[None+None*1+constant:82780c00]",
            " mov eax,m4[esp+None*1+0x14]",
            " sub eax,m4[esp+None*1+0x4]",
            " sub eax,0x4"
          ]
        },
        {
          "symbol": "mouse.c::install_mouse_",
          "source": "E:\\library\\system\\mouse.c",
          "first": "0x47d6c4",
          "second": "0x47b864",
          "first_instruction_count": 239,
          "second_instruction_count": 239,
          "diff": [
            "--- 0x47d6c4",
            "+++ 0x47b864",
            "@@ -15,19 +15,19 @@",
            " mov edx,0x3",
            " mov eax,text:'Mouse On Count'",
            " call monitor.c::add_monitor_",
            "-mov ebx,0x745fde",
            "+mov ebx,0x730aae",
            " mov edx,0x1",
            " mov eax,text:'Mouse X'",
            " call monitor.c::add_monitor_",
            "-mov ebx,0x745fe0",
            "+mov ebx,0x730ab0",
            " mov edx,0x1",
            " mov eax,text:'Mouse Y'",
            " call monitor.c::add_monitor_",
            "-mov ebx,0x745ff2",
            "+mov ebx,0x730ac2",
            " mov edx,0x1",
            " mov eax,text:'Mouse X'",
            " call monitor.c::add_monitor_",
            "-mov ebx,0x745ff4",
            "+mov ebx,0x730ac4",
            " mov edx,0x1",
            " mov eax,text:'Mouse Y'",
            " xor ecx,ecx",
            "@@ -138,7 +138,7 @@",
            " mov eax,m4[None+None*1+start.c::_main_window]",
            " push eax",
            " mov m4[None+None*1+mouse.c::_mouse_dont_change_palette],ebp",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " add esp,0x300",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "mouse.c::set_mouse_area_",
          "source": "E:\\library\\system\\mouse.c",
          "first": "0x47db84",
          "second": "0x47bd24",
          "first_instruction_count": 34,
          "second_instruction_count": 34,
          "diff": [
            "--- 0x47db84",
            "+++ 0x47bd24",
            "@@ -1,9 +1,9 @@",
            " push esi",
            " mov esi,m4[None+None*1+video.c::_video_screen_y_min]",
            "-mov m2[None+None*1+0x745fe6],dx",
            "-mov m2[None+None*1+0x745fe8],bx",
            "-mov m2[None+None*1+0x745fea],cx",
            "-mov m2[None+None*1+0x745fe4],ax",
            "+mov m2[None+None*1+0x730ab6],dx",
            "+mov m2[None+None*1+0x730ab8],bx",
            "+mov m2[None+None*1+0x730aba],cx",
            "+mov m2[None+None*1+0x730ab4],ax",
            " cmp edx,esi",
            " jne local:14",
            " cmp ecx,m4[None+None*1+video.c::_video_screen_y_max]"
          ]
        },
        {
          "symbol": "mouse.c::set_mouse_position_",
          "source": "E:\\library\\system\\mouse.c",
          "first": "0x47db10",
          "second": "0x47bcb0",
          "first_instruction_count": 38,
          "second_instruction_count": 38,
          "diff": [
            "--- 0x47db10",
            "+++ 0x47bcb0",
            "@@ -18,7 +18,7 @@",
            " push 0x400",
            " mov esi,m4[None+None*1+start.c::_main_window]",
            " push esi",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " pop esi",
            " add esp,0x10",
            " pop ebp"
          ]
        },
        {
          "symbol": "mouse.c::update_mouse_pointer_",
          "source": "E:\\library\\system\\mouse.c",
          "first": "0x47d500",
          "second": "0x47b6a0",
          "first_instruction_count": 40,
          "second_instruction_count": 40,
          "diff": [
            "--- 0x47d500",
            "+++ 0x47b6a0",
            "@@ -1,4 +1,4 @@",
            "-cmp m2[None+None*1+0x745fdc],0x0",
            "+cmp m2[None+None*1+0x730aac],0x0",
            " jne local:3",
            " ret ",
            " push edi",
            "@@ -8,10 +8,10 @@",
            " mov edx,m4[None+None*1+screen.c::_display_screen_semaphore]",
            " test edx,edx",
            " jne local:34",
            "-mov eax,m4[None+None*1+0x745fdc]",
            "+mov eax,m4[None+None*1+0x730aac]",
            " sar eax,0x10",
            " mov m4[None+None*1+mouseptr.c::_mouse_pointer_x],eax",
            "-mov eax,m4[None+None*1+0x745fde]",
            "+mov eax,m4[None+None*1+0x730aae]",
            " sar eax,0x10",
            " mov ecx,m4[None+None*1+mouse.c::_mouse_has_been_saved]",
            " mov m4[None+None*1+mouseptr.c::_mouse_pointer_y],eax",
            "@@ -30,7 +30,7 @@",
            " mov m4[None+None*1+mouse.c::_mouse_has_been_saved],edi",
            " push ebx",
            " xor ebx,ebx",
            "-mov m2[None+None*1+0x745fdc],bx",
            "+mov m2[None+None*1+0x730aac],bx",
            " pop ebx",
            " sti ",
            " cld "
          ]
        },
        {
          "symbol": "mouse.c::windows_mouse_click_",
          "source": "E:\\library\\system\\mouse.c",
          "first": "0x47e02c",
          "second": "0x47c1cc",
          "first_instruction_count": 82,
          "second_instruction_count": 82,
          "diff": [
            "--- 0x47e02c",
            "+++ 0x47c1cc",
            "@@ -28,7 +28,7 @@",
            " mov esi,m4[esp+None*1+0xc]",
            " sub ebx,eax",
            " sub esi,m4[None+None*1+mouse.c::_mouse_clipped_posy]",
            "-mov eax,m4[None+None*1+0x745fe2]",
            "+mov eax,m4[None+None*1+0x730ab2]",
            " mov m4[esp+None*1+0x8],ebx",
            " sar eax,0x10",
            " mov m4[esp+None*1+0xc],esi",
            "@@ -40,7 +40,7 @@",
            " sub edx,ecx",
            " mov m4[esp+None*1+0x8],eax",
            " mov m4[None+None*1+mouse.c::_mouse_clipped_posx],edx",
            "-mov eax,m4[None+None*1+0x745fe6]",
            "+mov eax,m4[None+None*1+0x730ab6]",
            " mov ecx,m4[esp+None*1+0x8]",
            " sar eax,0x10",
            " cmp eax,ecx",
            "@@ -50,7 +50,7 @@",
            " add ebx,ecx",
            " mov m4[esp+None*1+0x8],eax",
            " mov m4[None+None*1+mouse.c::_mouse_clipped_posx],ebx",
            "-mov eax,m4[None+None*1+0x745fe4]",
            "+mov eax,m4[None+None*1+0x730ab4]",
            " mov esi,m4[esp+None*1+0xc]",
            " sar eax,0x10",
            " cmp eax,esi",
            "@@ -61,7 +61,7 @@",
            " sub ebp,ecx",
            " mov m4[esp+None*1+0xc],eax",
            " mov m4[None+None*1+mouse.c::_mouse_clipped_posy],ebp",
            "-mov eax,m4[None+None*1+0x745fe8]",
            "+mov eax,m4[None+None*1+0x730ab8]",
            " mov edx,m4[esp+None*1+0xc]",
            " sar eax,0x10",
            " cmp eax,edx"
          ]
        },
        {
          "symbol": "mouse.c::windows_mouse_move_",
          "source": "E:\\library\\system\\mouse.c",
          "first": "0x47dee8",
          "second": "0x47c088",
          "first_instruction_count": 93,
          "second_instruction_count": 93,
          "diff": [
            "--- 0x47dee8",
            "+++ 0x47c088",
            "@@ -27,10 +27,10 @@",
            " mov ebx,0x1",
            " mov ecx,m4[None+None*1+mouse.c::_mouse_clipped]",
            " mov m4[esp+None*1+0x4],edx",
            "-mov m2[None+None*1+0x745fde],ax",
            "+mov m2[None+None*1+0x730aae],ax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov m2[None+None*1+0x745fdc],bx",
            "-mov m2[None+None*1+0x745fe0],ax",
            "+mov m2[None+None*1+0x730aac],bx",
            "+mov m2[None+None*1+0x730ab0],ax",
            " test ecx,ecx",
            " je local:85",
            " mov ebx,m4[esp+None*1+0x8]",
            "@@ -38,7 +38,7 @@",
            " mov esi,m4[esp+None*1+0xc]",
            " sub ebx,eax",
            " sub esi,m4[None+None*1+mouse.c::_mouse_clipped_posy]",
            "-mov eax,m4[None+None*1+0x745fe2]",
            "+mov eax,m4[None+None*1+0x730ab2]",
            " mov m4[esp+None*1+0x8],ebx",
            " sar eax,0x10",
            " mov m4[esp+None*1+0xc],esi",
            "@@ -50,7 +50,7 @@",
            " sub ecx,edx",
            " mov m4[esp+None*1+0x8],eax",
            " mov m4[None+None*1+mouse.c::_mouse_clipped_posx],ecx",
            "-mov eax,m4[None+None*1+0x745fe6]",
            "+mov eax,m4[None+None*1+0x730ab6]",
            " mov ebx,m4[esp+None*1+0x8]",
            " sar eax,0x10",
            " cmp eax,ebx",
            "@@ -61,7 +61,7 @@",
            " add esi,edx",
            " mov m4[esp+None*1+0x8],eax",
            " mov m4[None+None*1+mouse.c::_mouse_clipped_posx],esi",
            "-mov eax,m4[None+None*1+0x745fe4]",
            "+mov eax,m4[None+None*1+0x730ab4]",
            " mov edi,m4[esp+None*1+0xc]",
            " sar eax,0x10",
            " cmp eax,edi",
            "@@ -72,7 +72,7 @@",
            " sub ecx,edx",
            " mov m4[esp+None*1+0xc],eax",
            " mov m4[None+None*1+mouse.c::_mouse_clipped_posy],ecx",
            "-mov eax,m4[None+None*1+0x745fe8]",
            "+mov eax,m4[None+None*1+0x730ab8]",
            " mov ebx,m4[esp+None*1+0xc]",
            " sar eax,0x10",
            " cmp eax,ebx"
          ]
        },
        {
          "symbol": "movement.c::check_movement_type_",
          "source": "E:\\apache\\source\\drone\\movement.c",
          "first": "0x42ca18",
          "second": "0x42cd98",
          "first_instruction_count": 285,
          "second_instruction_count": 285,
          "diff": [
            "--- 0x42ca18",
            "+++ 0x42cd98",
            "@@ -41,7 +41,7 @@",
            " jne local:122",
            " mov edx,m4[ecx+None*1+0x14]",
            " mov eax,m4[ecx+None*1+0x10]",
            "-call fxfeatur.c::get_surface_type_",
            "+call features.c::get_surface_type_",
            " cmp eax,0x4",
            " jne local:104",
            " mov eax,m4[esp+None*1+0x2c]",
            "@@ -169,7 +169,7 @@",
            " mov m4[esp+None*1+0x4],edx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ebx,eax",
            " mov esi,m4[esi+None*1+0x68]",
            " mov eax,m4[esp+None*1+0x8]",
            "@@ -267,7 +267,7 @@",
            " mov eax,m4[ebp+None*1+0x90]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2"
          ]
        },
        {
          "symbol": "movement.c::do_brave_sir_robin_impressions_",
          "source": "E:\\apache\\source\\drone\\movement.c",
          "first": "0x42e0b8",
          "second": "0x42e438",
          "first_instruction_count": 87,
          "second_instruction_count": 87,
          "diff": [
            "--- 0x42e0b8",
            "+++ 0x42e438",
            "@@ -34,7 +34,7 @@",
            " mov m4[ebx+None*1+0x4],edi",
            " mov edx,m4[ecx+None*1+0x64]",
            " mov eax,m4[ecx+None*1+0x60]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " add eax,0x1f400",
            " mov ebp,m4[ecx+None*1+0x68]",
            " cmp eax,ebp"
          ]
        },
        {
          "symbol": "movement.c::drone_fly_to_",
          "source": "E:\\apache\\source\\drone\\movement.c",
          "first": "0x42d4d8",
          "second": "0x42d858",
          "first_instruction_count": 677,
          "second_instruction_count": 677,
          "diff": [
            "--- 0x42d4d8",
            "+++ 0x42d858",
            "@@ -78,7 +78,7 @@",
            " mov ecx,m4[esi+None*1+0x90]",
            " mov edx,m4[esi+None*1+0x64]",
            " mov eax,m4[esi+None*1+0x60]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,m4[esi+None*1+0x90]",
            " mov m4[esp+None*1+0x50],eax",
            " cmp ecx,edx",
            "@@ -142,7 +142,7 @@",
            " mov ecx,m4[esp+None*1+0x0]",
            " test ecx,ecx",
            " je local:478",
            "-mov ebx,m4[None+None*1+fx3dobj1.c::_tallest_object]",
            "+mov ebx,m4[None+None*1+3dobjs1.c::_tallest_object]",
            " cmp ebx,m4[esi+None*1+0x68]",
            " jle local:431",
            " cmp m4[esp+None*1+0x50],0x0",
            "@@ -189,7 +189,7 @@",
            " mov ax,m2[eax+None*1+0x0]",
            " and eax,0xffff",
            " lea edx,m4[None+eax*4+0x0]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[edx+eax*1+0x0]",
            " mov eax,m4[eax+None*1+0x28]",
            " mov edx,m4[esi+None*1+0x68]",
            "@@ -282,7 +282,7 @@",
            " mov eax,m4[esi+None*1+0x90]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[esp+None*1+0x64],eax",
            " mov eax,m4[esi+None*1+0x94]",
            " mov edx,m4[esp+None*1+0x4c]",
            "@@ -445,7 +445,7 @@",
            " mov eax,m4[esi+None*1+0x60]",
            " add edx,ebx",
            " add eax,m4[esi+None*1+0xa0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,m4[esp+None*1+0x50]",
            " cmp eax,edx",
            " jge local:464",
            "@@ -467,7 +467,7 @@",
            " mov eax,m4[esi+None*1+0x60]",
            " add edx,ebx",
            " add eax,m4[esi+None*1+0xa0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " jmp local:452",
            " mov ecx,m4[esp+None*1+0x0]",
            " cmp eax,ecx"
          ]
        },
        {
          "symbol": "movement.c::get_drone_drive_to_point_",
          "source": "E:\\apache\\source\\drone\\movement.c",
          "first": "0x42cdf4",
          "second": "0x42d174",
          "first_instruction_count": 181,
          "second_instruction_count": 181,
          "diff": [
            "--- 0x42cdf4",
            "+++ 0x42d174",
            "@@ -36,7 +36,7 @@",
            " mov eax,m4[eax+None*1+0x90]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,m4[ebx+None*1+forms.c::_formations]",
            " mov ebp,m4[edx+edi*1+0x4]",
            " mov edx,eax",
            "@@ -66,7 +66,7 @@",
            " mov eax,m4[esi+None*1+0x90]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,m4[ebx+None*1+forms.c::_formations]",
            " mov ebp,m4[edx+edi*1+0x8]",
            " mov edx,eax",
            "@@ -108,7 +108,7 @@",
            " mov eax,m4[eax+None*1+0x90]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,m4[ebx+None*1+forms.c::_formations]",
            " mov ebp,m4[edx+edi*1+0x4]",
            " mov edx,eax",
            "@@ -139,7 +139,7 @@",
            " mov eax,m4[esi+None*1+0x90]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ebp,m4[ebx+None*1+forms.c::_formations]",
            " mov ebp,m4[edi+ebp*1+0x8]",
            " mov edx,eax"
          ]
        },
        {
          "symbol": "movement.c::get_drone_fly_to_point_",
          "source": "E:\\apache\\source\\drone\\movement.c",
          "first": "0x42de84",
          "second": "0x42e204",
          "first_instruction_count": 171,
          "second_instruction_count": 171,
          "diff": [
            "--- 0x42de84",
            "+++ 0x42e204",
            "@@ -15,7 +15,7 @@",
            " jne local:20",
            " mov edx,m4[eax+None*1+0x14]",
            " mov eax,m4[eax+None*1+0x10]",
            "-call fxfeatur.c::get_surface_type_",
            "+call features.c::get_surface_type_",
            " cmp eax,0x3",
            " je local:79",
            " mov eax,m4[esi+None*1+0xb8]",
            "@@ -71,7 +71,7 @@",
            " mov ecx,0x2800",
            " mov edx,m4[edi+None*1+0x4]",
            " mov eax,m4[edi+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov ebp,m4[edi+None*1+0x8]",
            " add eax,ecx",
            " cmp eax,ebp",
            "@@ -124,7 +124,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov ebp,m4[None+eax*8+0x672aa0]",
            "+mov ebp,m4[None+eax*8+0x665ab0]",
            " mov eax,ebx",
            " cdq ",
            " xor eax,edx"
          ]
        },
        {
          "symbol": "movement.c::initialise_drones_",
          "source": "E:\\apache\\source\\drone\\movement.c",
          "first": "0x42b77c",
          "second": "0x42bafc",
          "first_instruction_count": 310,
          "second_instruction_count": 310,
          "diff": [
            "--- 0x42b77c",
            "+++ 0x42bafc",
            "@@ -106,7 +106,7 @@",
            " mov eax,m4[edi+None*1+0x90]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x14]",
            " mov eax,m4[eax+None*1+forms.c::_formations]",
            "@@ -231,7 +231,7 @@",
            " mov edx,m4[edi+None*1+0x9c]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2"
          ]
        },
        {
          "symbol": "movement.c::move_ground_drone_past_waypoint_",
          "source": "E:\\apache\\source\\drone\\movement.c",
          "first": "0x42c3b4",
          "second": "0x42c734",
          "first_instruction_count": 226,
          "second_instruction_count": 226,
          "diff": [
            "--- 0x42c3b4",
            "+++ 0x42c734",
            "@@ -55,7 +55,7 @@",
            " mov eax,m4[ebp+None*1+0x90]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[esp+None*1+0x10],eax",
            " mov eax,m4[ebp+None*1+0xb8]",
            " mov ecx,m4[ebp+None*1+0x68]"
          ]
        },
        {
          "symbol": "movement.c::move_simple_drones_past_waypoint_",
          "source": "E:\\apache\\source\\drone\\movement.c",
          "first": "0x42c6f0",
          "second": "0x42ca70",
          "first_instruction_count": 233,
          "second_instruction_count": 233,
          "diff": [
            "--- 0x42c6f0",
            "+++ 0x42ca70",
            "@@ -39,7 +39,7 @@",
            " mov ebx,m4[esp+None*1+0x28]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ebx,m4[ebx+None*1+forms.c::_formations]",
            " mov ebx,m4[ecx+ebx*1+0x8]",
            " mov edx,eax",
            "@@ -73,7 +73,7 @@",
            " mov edx,m4[esp+None*1+0x28]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,m4[edx+None*1+forms.c::_formations]",
            " mov ebx,m4[ecx+edx*1+0x4]",
            " mov edx,eax",
            "@@ -161,7 +161,7 @@",
            " mov eax,m4[ebp+None*1+0x90]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2"
          ]
        },
        {
          "symbol": "movement.c::set_drone_start_position_",
          "source": "E:\\apache\\source\\drone\\movement.c",
          "first": "0x42bbe4",
          "second": "0x42bf64",
          "first_instruction_count": 141,
          "second_instruction_count": 141,
          "diff": [
            "--- 0x42bbe4",
            "+++ 0x42bf64",
            "@@ -17,7 +17,7 @@",
            " jne local:28",
            " mov edx,m4[eax+None*1+0x14]",
            " mov eax,m4[eax+None*1+0x10]",
            "-call fxfeatur.c::get_surface_type_",
            "+call features.c::get_surface_type_",
            " cmp eax,0x3",
            " jne local:28",
            " mov eax,ecx",
            "@@ -56,7 +56,7 @@",
            " mov eax,m4[ecx+None*1+0x90]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov esi,eax",
            " mov eax,m4[ecx+None*1+0x54]",
            " mov eax,m4[None+eax*4+forms.c::_formations]",
            "@@ -115,7 +115,7 @@",
            " ret ",
            " mov edx,m4[ebx+None*1+0x14]",
            " mov eax,m4[ebx+None*1+0x10]",
            "-call fxfeatur.c::get_surface_type_",
            "+call features.c::get_surface_type_",
            " cmp eax,0x3",
            " jne local:13",
            " mov eax,ecx"
          ]
        },
        {
          "symbol": "movement.c::setup_drone_direction_data_",
          "source": "E:\\apache\\source\\drone\\movement.c",
          "first": "0x42bdd0",
          "second": "0x42c150",
          "first_instruction_count": 104,
          "second_instruction_count": 104,
          "diff": [
            "--- 0x42bdd0",
            "+++ 0x42c150",
            "@@ -9,7 +9,7 @@",
            " mov m4[eax+None*1+0x94],0x0",
            " mov edx,m4[eax+None*1+0x64]",
            " mov eax,m4[eax+None*1+0x60]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,m4[ebp+None*1+0x4c]",
            " mov edx,m4[edx+None*1+0x10]",
            " sub edx,0xa",
            "@@ -62,7 +62,7 @@",
            " mov edx,m4[ebp+None*1+0x9c]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2"
          ]
        },
        {
          "symbol": "movement.c::update_air_drone_",
          "source": "E:\\apache\\source\\drone\\movement.c",
          "first": "0x42d048",
          "second": "0x42d3c8",
          "first_instruction_count": 194,
          "second_instruction_count": 194,
          "diff": [
            "--- 0x42d048",
            "+++ 0x42d3c8",
            "@@ -27,7 +27,7 @@",
            " cmp eax,0x4",
            " jne local:40",
            " mov edi,m4[ebp+None*1+0x8]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,edi",
            " mov eax,m4[edx+eax*4+0x0]",
            " push edi",
            "@@ -50,7 +50,7 @@",
            " shl eax,0x2",
            " add edx,eax",
            " shl edx,0x3",
            "-mov eax,m4[edx+None*1+0x672a98]",
            "+mov eax,m4[edx+None*1+0x665aa8]",
            " mov edx,eax",
            " mov ecx,0x3",
            " sar edx,0x1f",
            "@@ -140,7 +140,7 @@",
            " jne local:160",
            " mov edx,m4[ebp+None*1+0x64]",
            " mov eax,m4[ebp+None*1+0x60]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,m4[ebp+None*1+0xb8]",
            " lea ecx,m4[eax+None*1+0x300]",
            " cmp ecx,m4[edx+None*1+0x18]"
          ]
        },
        {
          "symbol": "movement.c::update_drones_",
          "source": "E:\\apache\\source\\drone\\movement.c",
          "first": "0x42bfa4",
          "second": "0x42c324",
          "first_instruction_count": 131,
          "second_instruction_count": 131,
          "diff": [
            "--- 0x42bfa4",
            "+++ 0x42c324",
            "@@ -64,7 +64,7 @@",
            " mov edx,m4[ecx+None*1+0x9c]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2"
          ]
        },
        {
          "symbol": "movement.c::update_water_drone_",
          "source": "E:\\apache\\source\\drone\\movement.c",
          "first": "0x42d2d0",
          "second": "0x42d650",
          "first_instruction_count": 125,
          "second_instruction_count": 125,
          "diff": [
            "--- 0x42d2d0",
            "+++ 0x42d650",
            "@@ -19,7 +19,7 @@",
            " cmp eax,0x6",
            " jne local:32",
            " mov edi,m4[esi+None*1+0x8]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edx,edi",
            " mov eax,m4[eax+edx*4+0x0]",
            " push edi",
            "@@ -40,7 +40,7 @@",
            " shl eax,0x2",
            " add edx,eax",
            " shl edx,0x3",
            "-mov eax,m4[edx+None*1+0x672a98]",
            "+mov eax,m4[edx+None*1+0x665aa8]",
            " mov edx,eax",
            " mov ecx,0x3",
            " sar edx,0x1f"
          ]
        },
        {
          "symbol": "mthrdini::__InitThreadData_",
          "source": "mthrdini",
          "first": "0x4d0225",
          "second": "0x4c36ad",
          "first_instruction_count": 15,
          "second_instruction_count": 15,
          "diff": [
            "--- 0x4d0225",
            "+++ 0x4c36ad",
            "@@ -7,7 +7,7 @@",
            " xor edx,edx",
            " mov m4[eax+None*1+0xc],0x1",
            " call stklmwnt::__init_stack_limits_",
            "-call m4[None+None*1+constant:e24c0d00]",
            "+call m4[None+None*1+constant:c07b0c00]",
            " mov m4[ebx+None*1+0xda],eax",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "mthread::__AccessSemaphore_",
          "source": "mthread",
          "first": "0x4cdf0e",
          "second": "0x4c137e",
          "first_instruction_count": 33,
          "second_instruction_count": 33,
          "diff": [
            "--- 0x4cdf0e",
            "+++ 0x4c137e",
            "@@ -3,7 +3,7 @@",
            " push edx",
            " push esi",
            " mov ebx,eax",
            "-call m4[None+None*1+constant:e24c0d00]",
            "+call m4[None+None*1+constant:c07b0c00]",
            " mov edx,m4[ebx+None*1+0x8]",
            " mov esi,eax",
            " cmp eax,edx",
            "@@ -17,13 +17,13 @@",
            " call mthread::__NTGetCriticalSection_",
            " push eax",
            " mov m4[ebx+None*1+0x0],eax",
            "-call m4[None+None*1+constant:264e0d00]",
            "+call m4[None+None*1+constant:047d0c00]",
            " mov m4[ebx+None*1+0x4],0x1",
            " mov eax,mthread::_InitSemaphore",
            " call mthread::__ReleaseSemaphore_",
            " mov eax,m4[ebx+None*1+0x0]",
            " push eax",
            "-call m4[None+None*1+constant:784b0d00]",
            "+call m4[None+None*1+constant:567a0c00]",
            " mov m4[ebx+None*1+0x8],esi",
            " inc m4[ebx+None*1+0xc]",
            " pop esi"
          ]
        },
        {
          "symbol": "mthread::__CloseSemaphore_",
          "source": "mthread",
          "first": "0x4cde59",
          "second": "0x4c12c9",
          "first_instruction_count": 16,
          "second_instruction_count": 16,
          "diff": [
            "--- 0x4cde59",
            "+++ 0x4c12c9",
            "@@ -6,7 +6,7 @@",
            " je local:9",
            " mov ecx,m4[eax+None*1+0x0]",
            " push ecx",
            "-call m4[None+None*1+constant:284b0d00]",
            "+call m4[None+None*1+constant:067a0c00]",
            " mov m4[ebx+None*1+0x4],0x0",
            " mov m4[ebx+None*1+0x8],0x0",
            " mov m4[ebx+None*1+0xc],0x0"
          ]
        },
        {
          "symbol": "mthread::__InitMultipleThread_",
          "source": "mthread",
          "first": "0x4ce13e",
          "second": "0x4c15ae",
          "first_instruction_count": 59,
          "second_instruction_count": 59,
          "diff": [
            "--- 0x4ce13e",
            "+++ 0x4c15ae",
            "@@ -40,10 +40,10 @@",
            " push eax",
            " mov edi,mthread::__ThreadExit_",
            " mov m4[None+None*1+mthread::_InitSemaphore],eax",
            "-call m4[None+None*1+constant:264e0d00]",
            "+call m4[None+None*1+constant:047d0c00]",
            " mov ecx,mthread::__AccessFList_",
            " mov edx,m4[None+None*1+mainwnt::___FirstThreadData]",
            "-mov m4[None+None*1+0x10dcbd8],ebx",
            "+mov m4[None+None*1+0xf90388],ebx",
            " mov m4[None+None*1+mainwnt::__ReleaseFList],esi",
            " mov m4[None+None*1+mainwnt::__ThreadExitRtn],edi",
            " mov eax,m4[edx+None*1+0xda]",
            "@@ -53,7 +53,7 @@",
            " push ebp",
            " mov eax,m4[None+None*1+mainwnt::___TlsIndex]",
            " push eax",
            "-call m4[None+None*1+constant:3e500d00]",
            "+call m4[None+None*1+constant:2c7f0c00]",
            " mov m4[None+None*1+mainwnt::___GetThreadPtr],mthread::__MultipleThread_",
            " pop ebp",
            " jmp mthread::__NTRemoveThread_+0x4f"
          ]
        },
        {
          "symbol": "mthread::__MultipleThread_",
          "source": "mthread",
          "first": "0x4cdf9b",
          "second": "0x4c140b",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x4cdf9b",
            "+++ 0x4c140b",
            "@@ -2,11 +2,11 @@",
            " push ecx",
            " push edx",
            " push esi",
            "-call m4[None+None*1+constant:5c4d0d00]",
            "+call m4[None+None*1+constant:3a7c0c00]",
            " mov edx,m4[None+None*1+mainwnt::___TlsIndex]",
            " push edx",
            " mov esi,eax",
            "-call m4[None+None*1+constant:30500d00]",
            "+call m4[None+None*1+constant:1e7f0c00]",
            " mov ebx,eax",
            " test eax,eax",
            " jne local:14",
            "@@ -17,7 +17,7 @@",
            " call trdlist::__ReallocThreadData_",
            " mov ebx,eax",
            " push esi",
            "-call m4[None+None*1+constant:a24f0d00]",
            "+call m4[None+None*1+constant:907e0c00]",
            " mov eax,ebx",
            " pop esi",
            " pop edx"
          ]
        },
        {
          "symbol": "mthread::__NTAddThread_",
          "source": "mthread",
          "first": "0x4ce06e",
          "second": "0x4c14de",
          "first_instruction_count": 31,
          "second_instruction_count": 31,
          "diff": [
            "--- 0x4ce06e",
            "+++ 0x4c14de",
            "@@ -23,7 +23,7 @@",
            " push ebx",
            " mov ebx,m4[None+None*1+mainwnt::___TlsIndex]",
            " push ebx",
            "-call m4[None+None*1+constant:3e500d00]",
            "+call m4[None+None*1+constant:2c7f0c00]",
            " mov eax,0x1",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "mthread::__NTGetCriticalSection_",
          "source": "mthread",
          "first": "0x4cde05",
          "second": "0x4c1275",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x4cde05",
            "+++ 0x4c1275",
            "@@ -1,16 +1,16 @@",
            " push ebx",
            " push ecx",
            " push edx",
            "-mov edx,m4[None+None*1+0x10dcc04]",
            "+mov edx,m4[None+None*1+0xf903b4]",
            " cmp edx,0x40",
            " jge local:15",
            " mov eax,edx",
            " shl eax,0x2",
            "-mov ebx,0x10dcc08",
            "+mov ebx,0xf903b8",
            " sub eax,edx",
            " lea ecx,m4[edx+None*1+0x1]",
            " shl eax,0x3",
            "-mov m4[None+None*1+0x10dcc04],ecx",
            "+mov m4[None+None*1+0xf903b4],ecx",
            " add ebx,eax",
            " jmp local:24",
            " mov edx,0x18"
          ]
        },
        {
          "symbol": "mthread::__NTRemoveThread_",
          "source": "mthread",
          "first": "0x4ce0bd",
          "second": "0x4c152d",
          "first_instruction_count": 32,
          "second_instruction_count": 32,
          "diff": [
            "--- 0x4ce0bd",
            "+++ 0x4c152d",
            "@@ -8,7 +8,7 @@",
            " cmp edx,0xffffffff",
            " je local:26",
            " push edx",
            "-call m4[None+None*1+constant:30500d00]",
            "+call m4[None+None*1+constant:1e7f0c00]",
            " test eax,eax",
            " je local:26",
            " mov esi,m4[eax+None*1+0xde]",
            "@@ -17,13 +17,13 @@",
            " push 0x0",
            " mov edi,m4[None+None*1+mainwnt::___TlsIndex]",
            " push edi",
            "-call m4[None+None*1+constant:3e500d00]",
            "+call m4[None+None*1+constant:2c7f0c00]",
            " test esi,esi",
            " je local:26",
            " test ebx,ebx",
            " je local:26",
            " push esi",
            "-call m4[None+None*1+constant:d84a0d00]",
            "+call m4[None+None*1+constant:a0790c00]",
            " pop edi",
            " pop esi",
            " pop edx"
          ]
        },
        {
          "symbol": "mthread::__NTThreadFini_",
          "source": "mthread",
          "first": "0x4ce11c",
          "second": "0x4c158c",
          "first_instruction_count": 11,
          "second_instruction_count": 11,
          "diff": [
            "--- 0x4ce11c",
            "+++ 0x4c158c",
            "@@ -4,7 +4,7 @@",
            " cmp edx,0xffffffff",
            " je local:8",
            " push edx",
            "-call m4[None+None*1+constant:26500d00]",
            "+call m4[None+None*1+constant:147f0c00]",
            " mov m4[None+None*1+mainwnt::___TlsIndex],0xffffffff",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "mthread::__NTThreadInit_",
          "source": "mthread",
          "first": "0x4ce019",
          "second": "0x4c1489",
          "first_instruction_count": 23,
          "second_instruction_count": 23,
          "diff": [
            "--- 0x4ce019",
            "+++ 0x4c1489",
            "@@ -1,6 +1,6 @@",
            " push ecx",
            " push edx",
            "-call m4[None+None*1+constant:1a500d00]",
            "+call m4[None+None*1+constant:087f0c00]",
            " mov dx,m2[None+None*1+crwdata::__osbuild]",
            " mov m4[None+None*1+mainwnt::___TlsIndex],eax",
            " cmp dx,0x8000",
            "@@ -12,7 +12,7 @@",
            " je local:17",
            " cmp edx,0x2",
            " ja local:17",
            "-call m4[None+None*1+constant:1a500d00]",
            "+call m4[None+None*1+constant:087f0c00]",
            " mov m4[None+None*1+mainwnt::___TlsIndex],eax",
            " jmp local:9",
            " cmp m4[None+None*1+mainwnt::___TlsIndex],0xffffffff"
          ]
        },
        {
          "symbol": "mthread::__ReleaseSemaphore_",
          "source": "mthread",
          "first": "0x4cdf74",
          "second": "0x4c13e4",
          "first_instruction_count": 20,
          "second_instruction_count": 20,
          "diff": [
            "--- 0x4cdf74",
            "+++ 0x4c13e4",
            "@@ -12,7 +12,7 @@",
            " mov esi,m4[eax+None*1+0x0]",
            " push esi",
            " mov m4[eax+None*1+0x8],ebx",
            "-call m4[None+None*1+constant:424e0d00]",
            "+call m4[None+None*1+constant:207d0c00]",
            " pop esi",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "mul_chat.c::parse_multi_message_command_",
          "source": "E:\\apache\\source\\apnet\\mul_chat.c",
          "first": "0x437518",
          "second": "0x437898",
          "first_instruction_count": 100,
          "second_instruction_count": 100,
          "diff": [
            "--- 0x437518",
            "+++ 0x437898",
            "@@ -83,7 +83,7 @@",
            " lea ebx,m4[esp+None*1+0x14]",
            " lea edx,m4[esp+None*1+0xa]",
            " mov eax,esp",
            "-call m4[edi+None*1+constant:b07b4300]",
            "+call m4[edi+None*1+constant:307f4300]",
            " jmp local:47",
            " mov eax,text:'Not enough arguments'",
            " call mul_chat.c::add_multi_message_"
          ]
        },
        {
          "symbol": "mul_comm.c::version_command_routine_",
          "source": "E:\\apache\\source\\apnet\\mul_comm.c",
          "first": "0x437a54",
          "second": "0x437dd4",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x437a54",
            "+++ 0x437dd4",
            "@@ -3,7 +3,7 @@",
            " sub esp,0x88",
            " mov ecx,0x9",
            " lea edi,m4[esp+None*1+0x64]",
            "-push text:'16:55:28'",
            "+push text:'17:03:57'",
            " mov esi,mul_chat.c::parse_multi_message_command_+0x128",
            " mov edx,m4[None+None*1+gamedata.c::_global_version]",
            " mov eax,m4[None+None*1+gamedata.c::_product_language]"
          ]
        },
        {
          "symbol": "multidr.c::allocate_remote_drone_",
          "source": "E:\\apache\\source\\drone\\multidr.c",
          "first": "0x42e894",
          "second": "0x42ec14",
          "first_instruction_count": 168,
          "second_instruction_count": 168,
          "diff": [
            "--- 0x42e894",
            "+++ 0x42ec14",
            "@@ -69,26 +69,26 @@",
            " add eax,edx",
            " xor bl,bl",
            " mov edx,m4[esp+None*1+0x0]",
            "-mov m1[eax+None*1+0x5a15e1],bl",
            "+mov m1[eax+None*1+0x5945f1],bl",
            " and edx,0xff",
            "-mov ebx,m4[eax+None*1+0x5a15e0]",
            "+mov ebx,m4[eax+None*1+0x5945f0]",
            " shl edx,0x8",
            " or ebx,edx",
            " xor edx,edx",
            " mov m2[eax+None*1+apnet.c::_multi_player_list],dx",
            " and esi,0xffff",
            " mov ebp,m4[eax+None*1+apnet.c::_multi_player_list]",
            "-mov m4[eax+None*1+0x5a15e0],ebx",
            "+mov m4[eax+None*1+0x5945f0],ebx",
            " or ebp,esi",
            " mov m4[eax+None*1+apnet.c::_multi_player_list],ebp",
            " mov edx,m4[ecx+None*1+0x4c]",
            " mov edx,m4[edx+None*1+0x8]",
            " xor ebx,ebx",
            " and edx,0xffff",
            "-mov m2[eax+None*1+0x5a1432],bx",
            "+mov m2[eax+None*1+0x594442],bx",
            " shl edx,0x10",
            " mov ebx,m4[eax+None*1+apnet.c::_multi_player_list]",
            "-mov m4[eax+None*1+0x5a1434],ecx",
            "+mov m4[eax+None*1+0x594444],ecx",
            " or ebx,edx",
            " mov m4[eax+None*1+apnet.c::_multi_player_list],ebx",
            " mov eax,ecx"
          ]
        },
        {
          "symbol": "multidr.c::allocate_user_drone_",
          "source": "E:\\apache\\source\\drone\\multidr.c",
          "first": "0x42eaa8",
          "second": "0x42ee28",
          "first_instruction_count": 98,
          "second_instruction_count": 98,
          "diff": [
            "--- 0x42eaa8",
            "+++ 0x42ee28",
            "@@ -67,7 +67,7 @@",
            " shl esi,0x2",
            " add esi,eax",
            " xor bh,bh",
            "-mov m1[esi+None*1+0x5a143f],bh",
            "+mov m1[esi+None*1+0x59444f],bh",
            " xor edx,edx",
            " mov eax,m4[ecx+None*1+0x5c]",
            " mov m2[esi+None*1+apnet.c::_multi_player_list],dx",
            "@@ -75,14 +75,14 @@",
            " mov ebp,m4[esi+None*1+apnet.c::_multi_player_list]",
            " or ebp,eax",
            " mov eax,m4[None+None*1+apnet.c::_my_connection_number]",
            "-mov m1[esi+None*1+0x5a15e1],bh",
            "+mov m1[esi+None*1+0x5945f1],bh",
            " and eax,0xff",
            "-mov edx,m4[esi+None*1+0x5a15e0]",
            "+mov edx,m4[esi+None*1+0x5945f0]",
            " shl eax,0x8",
            " mov m4[esi+None*1+apnet.c::_multi_player_list],ebp",
            " or edx,eax",
            " mov eax,0x1",
            "-mov m4[esi+None*1+0x5a15e0],edx",
            "+mov m4[esi+None*1+0x5945f0],edx",
            " pop ebp",
            " pop esi",
            " pop edx"
          ]
        },
        {
          "symbol": "multidr.c::initialise_multi_player_kill_record_",
          "source": "E:\\apache\\source\\drone\\multidr.c",
          "first": "0x42e860",
          "second": "0x42ebe0",
          "first_instruction_count": 9,
          "second_instruction_count": 9,
          "diff": [
            "--- 0x42e860",
            "+++ 0x42ebe0",
            "@@ -2,7 +2,7 @@",
            " xor eax,eax",
            " add eax,0x4",
            " xor edx,edx",
            "-mov m4[eax+None*1+0x57a31c],edx",
            "+mov m4[eax+None*1+0x56d32c],edx",
            " cmp eax,0x40",
            " jne local:2",
            " pop edx"
          ]
        },
        {
          "symbol": "multidr.c::initialise_network_users_",
          "source": "E:\\apache\\source\\drone\\multidr.c",
          "first": "0x42e750",
          "second": "0x42ead0",
          "first_instruction_count": 91,
          "second_instruction_count": 91,
          "diff": [
            "--- 0x42e750",
            "+++ 0x42ead0",
            "@@ -14,14 +14,14 @@",
            " xor ebp,ebp",
            " mov m4[esp+None*1+0x24],eax",
            " imul edx,ebp,0x1b8",
            "-mov eax,m4[edx+None*1+0x5a15e0]",
            "+mov eax,m4[edx+None*1+0x5945f0]",
            " shl eax,0x10",
            " sar eax,0x18",
            " cmp eax,0xffffffff",
            " je local:47",
            " cmp ebp,m4[None+None*1+apnet.c::_my_connection_number]",
            " je local:47",
            "-mov edx,m4[edx+None*1+0x5a1484]",
            "+mov edx,m4[edx+None*1+0x594494]",
            " cmp edx,0x67",
            " jae local:69",
            " cmp edx,0x40"
          ]
        },
        {
          "symbol": "multidr.c::revive_multi_drone_",
          "source": "E:\\apache\\source\\drone\\multidr.c",
          "first": "0x42f4a0",
          "second": "0x42f820",
          "first_instruction_count": 44,
          "second_instruction_count": 44,
          "diff": [
            "--- 0x42f4a0",
            "+++ 0x42f820",
            "@@ -13,10 +13,10 @@",
            " je local:38",
            " mov edx,0x3f1",
            " mov ebp,0x3de",
            "-mov m4[None+None*1+0x57a360],edx",
            "+mov m4[None+None*1+0x56d370],edx",
            " lea edi,m4[esi+None*1+0x8]",
            " mov eax,edi",
            "-mov ecx,0x57a360",
            "+mov ecx,0x56d370",
            " call 3dbuild.c::destruct_3d_object_",
            " lea ebx,m4[esi+None*1+0x60]",
            " mov edx,edi",
            "@@ -37,7 +37,7 @@",
            " pop ebx",
            " ret ",
            " mov ebx,0x50",
            "-mov eax,0x57a360",
            "+mov eax,0x56d370",
            " xor edx,edx",
            " mov ebp,0x40",
            " call memset::memset_"
          ]
        },
        {
          "symbol": "multidr.c::update_remote_drones_",
          "source": "E:\\apache\\source\\drone\\multidr.c",
          "first": "0x42ebe0",
          "second": "0x42ef60",
          "first_instruction_count": 90,
          "second_instruction_count": 90,
          "diff": [
            "--- 0x42ebe0",
            "+++ 0x42ef60",
            "@@ -34,19 +34,19 @@",
            " test m1[ebp+None*1+0x1c5],0x4",
            " jne local:72",
            " imul eax,ebx,0x1b8",
            "-mov eax,m4[eax+None*1+0x5a1480]",
            "+mov eax,m4[eax+None*1+0x594490]",
            " imul eax,eax,0x1b0",
            " mov edx,m4[ebp+None*1+0x1c8]",
            " mov m4[ebp+None*1+0x9c],eax",
            " imul eax,edx,0x1b8",
            " mov ecx,0x24",
            "-mov esi,m4[eax+None*1+0x5a1450]",
            "+mov esi,m4[eax+None*1+0x594460]",
            " lea edi,m4[ebp+None*1+0x6c]",
            " mov m4[esp+None*1+0x0],esi",
            "-mov esi,m4[eax+None*1+0x5a1454]",
            "+mov esi,m4[eax+None*1+0x594464]",
            " mov edx,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0xc],esi",
            "-mov esi,m4[eax+None*1+0x5a1458]",
            "+mov esi,m4[eax+None*1+0x594468]",
            " add eax,apnet.c::_multi_player_list",
            " mov m4[esp+None*1+0x8],esi",
            " lea esi,m4[eax+None*1+0x2c]"
          ]
        },
        {
          "symbol": "multidr.c::update_remote_weapons_",
          "source": "E:\\apache\\source\\drone\\multidr.c",
          "first": "0x42ed5c",
          "second": "0x42f0dc",
          "first_instruction_count": 373,
          "second_instruction_count": 373,
          "diff": [
            "--- 0x42ed5c",
            "+++ 0x42f0dc",
            "@@ -10,7 +10,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov ebp,m4[edx+eax*4+0x5a1498]",
            "+mov ebp,m4[edx+eax*4+0x5944a8]",
            " mov edx,m4[None+None*1+gamedata.c::_connection_mode]",
            " xor ebx,ebx",
            " test edx,edx",
            "@@ -38,13 +38,13 @@",
            " mov edx,eax",
            " shl eax,0x2",
            " add eax,edx",
            "-mov edx,m4[eax+None*1+0x5a14a8]",
            "+mov edx,m4[eax+None*1+0x5944b8]",
            " mov m4[esp+None*1+0x84],edx",
            " cmp ebp,0x1",
            " je local:51",
            " cmp ebp,0x13",
            " je local:51",
            "-mov edx,m4[eax+None*1+0x5a15c0]",
            "+mov edx,m4[eax+None*1+0x5945d0]",
            " cmp edx,0x1",
            " jae local:200",
            " test edx,edx",
            "@@ -93,8 +93,8 @@",
            " shl ecx,0x2",
            " add ecx,ebp",
            " shl ecx,0x3",
            "-mov edx,m4[ecx+None*1+0x672aa4]",
            "-mov ebx,m4[ecx+None*1+0x672ab0]",
            "+mov edx,m4[ecx+None*1+0x665ab4]",
            "+mov ebx,m4[ecx+None*1+0x665ac0]",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv ebx",
            "@@ -105,8 +105,8 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov m4[esp+None*1+0x6c],edx",
            "-mov edx,m4[ecx+None*1+0x672aa4]",
            "-mov esi,m4[ecx+None*1+0x672ab0]",
            "+mov edx,m4[ecx+None*1+0x665ab4]",
            "+mov esi,m4[ecx+None*1+0x665ac0]",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv esi",
            "@@ -117,8 +117,8 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov m4[esp+None*1+0x70],edx",
            "-mov edx,m4[ecx+None*1+0x672aa4]",
            "-mov edi,m4[ecx+None*1+0x672ab0]",
            "+mov edx,m4[ecx+None*1+0x665ab4]",
            "+mov edi,m4[ecx+None*1+0x665ac0]",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv edi",
            "@@ -151,7 +151,7 @@",
            " mov m4[esp+None*1+0x44],edx",
            " mov edx,ebx",
            " mov m4[esp+None*1+0x40],ebx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov ebx,m4[esp+None*1+0x44]",
            " cmp eax,ebx",
            " jle local:269",
            "@@ -174,7 +174,7 @@",
            " call launch.c::launch_round_",
            " mov eax,m4[esp+None*1+0x8c]",
            " imul eax,m4[eax+None*1+0x1c8],0x1b8",
            "-cmp esi,m4[eax+None*1+0x5a1498]",
            "+cmp esi,m4[eax+None*1+0x5944a8]",
            " jne local:179",
            " or m4[edx+None*1+0x14],edi",
            " inc ecx",
            "@@ -189,7 +189,7 @@",
            " shl eax,0x3",
            " mov edx,eax",
            " xor ecx,ecx",
            "-mov m4[edx+eax*4+0x5a1498],ecx",
            "+mov m4[edx+eax*4+0x5944a8],ecx",
            " pop ecx",
            " pop esi",
            " pop edi",
            "@@ -201,8 +201,8 @@",
            " jbe local:215",
            " cmp edx,0x2",
            " jne local:250",
            "-mov ecx,m4[eax+None*1+0x5a15c8]",
            "-mov edx,m4[eax+None*1+0x5a15c4]",
            "+mov ecx,m4[eax+None*1+0x5945d8]",
            "+mov edx,m4[eax+None*1+0x5945d4]",
            " mov eax,ecx",
            " call multidr.c::find_drone_given_droneid_and_taskid_",
            " test eax,eax",
            "@@ -256,7 +256,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov esi,m4[edx+eax*4+0x5a15c0]",
            "+mov esi,m4[edx+eax*4+0x5945d0]",
            " push esi",
            " push 0x273",
            " push text:'\\\\apache\\\\source\\\\drone\\\\multidr.c'",
            "@@ -337,7 +337,7 @@",
            " mov m4[esp+None*1+0x88],edx",
            " cmp m4[edi+None*1+winfo.c::_weapons_data],0x4",
            " jne local:348",
            "-mov ecx,m4[edi+None*1+0x672ab8]",
            "+mov ecx,m4[edi+None*1+0x665ac8]",
            " mov ebx,m4[esp+None*1+0x90]",
            " mov edx,m4[esp+None*1+0x88]",
            " mov eax,ebp",
            "@@ -350,7 +350,7 @@",
            " jmp local:340",
            " cmp m4[eax+None*1+winfo.c::_weapons_data],0x4",
            " jne local:359",
            "-mov ecx,m4[eax+None*1+0x672ab8]",
            "+mov ecx,m4[eax+None*1+0x665ac8]",
            " mov edx,m4[esp+None*1+0x8c]",
            " mov ebx,m4[esp+None*1+0x90]",
            " mov eax,ebp"
          ]
        },
        {
          "symbol": "music.c::save_and_stop_music_",
          "source": "E:\\apache\\source\\sound\\music.c",
          "first": "0x446490",
          "second": "0x446810",
          "first_instruction_count": 44,
          "second_instruction_count": 44,
          "diff": [
            "--- 0x446490",
            "+++ 0x446810",
            "@@ -32,7 +32,7 @@",
            " xor ecx,ecx",
            " mov m4[eax+None*1+constant:00000000],ecx",
            " mov m4[eax+None*1+constant:00000000],ecx",
            "-mov esi,m4[eax+None*1+constant:b8fe4d00]",
            "+mov esi,m4[eax+None*1+constant:9c2f4d00]",
            " add eax,0x28",
            " test esi,esi",
            " jne local:31"
          ]
        },
        {
          "symbol": "net.c::count_nodes_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x478808",
          "second": "0x4769a8",
          "first_instruction_count": 14,
          "second_instruction_count": 14,
          "diff": [
            "--- 0x478808",
            "+++ 0x4769a8",
            "@@ -3,7 +3,7 @@",
            " xor edx,edx",
            " cmp m4[eax+None*1+net.c::_connections],0x0",
            " je local:8",
            "-cmp m4[eax+None*1+0x744604],0x0",
            "+cmp m4[eax+None*1+0x72f0d4],0x0",
            " jne local:8",
            " inc edx",
            " add eax,0x20"
          ]
        },
        {
          "symbol": "net.c::display_connections_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x4781bc",
          "second": "0x47635c",
          "first_instruction_count": 68,
          "second_instruction_count": 68,
          "diff": [
            "--- 0x4781bc",
            "+++ 0x47635c",
            "@@ -8,41 +8,41 @@",
            " xor ecx,ecx",
            " cmp m4[edx+None*1+net.c::_connections],0x0",
            " je local:56",
            "-mov eax,m4[edx+None*1+0x744614]",
            "+mov eax,m4[edx+None*1+0x72f0e4]",
            " test eax,eax",
            " jne local:14",
            " mov eax,data:0000000053656c660000000020202020",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x744611]",
            "+mov al,m1[edx+None*1+0x72f0e1]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x744610]",
            "+mov al,m1[edx+None*1+0x72f0e0]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x74460f]",
            "+mov al,m1[edx+None*1+0x72f0df]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x74460e]",
            "+mov al,m1[edx+None*1+0x72f0de]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x74460d]",
            "+mov al,m1[edx+None*1+0x72f0dd]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x74460c]",
            "+mov al,m1[edx+None*1+0x72f0dc]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x74460b]",
            "+mov al,m1[edx+None*1+0x72f0db]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x74460a]",
            "+mov al,m1[edx+None*1+0x72f0da]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x744609]",
            "+mov al,m1[edx+None*1+0x72f0d9]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x744608]",
            "-mov esi,m4[edx+None*1+0x744604]",
            "+mov al,m1[edx+None*1+0x72f0d8]",
            "+mov esi,m4[edx+None*1+0x72f0d4]",
            " push eax",
            " test esi,esi",
            " je local:66"
          ]
        },
        {
          "symbol": "net.c::does_connection_have_name_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x478574",
          "second": "0x476714",
          "first_instruction_count": 7,
          "second_instruction_count": 7,
          "diff": [
            "--- 0x478574",
            "+++ 0x476714",
            "@@ -1,7 +1,7 @@",
            " shl eax,0x5",
            " cmp m4[eax+None*1+net.c::_connections],0x0",
            " je net.c::network_installed_+0x25",
            "-cmp m4[eax+None*1+0x744614],0x0",
            "+cmp m4[eax+None*1+0x72f0e4],0x0",
            " je net.c::network_installed_+0x25",
            " mov eax,0x1",
            " ret "
          ]
        },
        {
          "symbol": "net.c::get_connection_name_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x4784fc",
          "second": "0x47669c",
          "first_instruction_count": 41,
          "second_instruction_count": 41,
          "diff": [
            "--- 0x4784fc",
            "+++ 0x47669c",
            "@@ -4,7 +4,7 @@",
            " shl eax,0x5",
            " cmp m4[eax+None*1+net.c::_connections],0x0",
            " je local:13",
            "-mov ebx,m4[eax+None*1+0x744614]",
            "+mov ebx,m4[eax+None*1+0x72f0e4]",
            " test ebx,ebx",
            " je local:13",
            " mov eax,ebx",
            "@@ -14,21 +14,21 @@",
            " mov eax,edx",
            " shl eax,0x5",
            " xor edx,edx",
            "-mov dl,m1[eax+None*1+0x744611]",
            "+mov dl,m1[eax+None*1+0x72f0e1]",
            " push edx",
            " xor edx,edx",
            "-mov dl,m1[eax+None*1+0x744610]",
            "+mov dl,m1[eax+None*1+0x72f0e0]",
            " push edx",
            " xor edx,edx",
            "-mov dl,m1[eax+None*1+0x74460f]",
            "+mov dl,m1[eax+None*1+0x72f0df]",
            " push edx",
            " xor edx,edx",
            "-mov dl,m1[eax+None*1+0x74460e]",
            "+mov dl,m1[eax+None*1+0x72f0de]",
            " push edx",
            " xor edx,edx",
            "-mov dl,m1[eax+None*1+0x74460d]",
            "+mov dl,m1[eax+None*1+0x72f0dd]",
            " push edx",
            "-mov al,m1[eax+None*1+0x74460c]",
            "+mov al,m1[eax+None*1+0x72f0dc]",
            " and eax,0xff",
            " push eax",
            " push text:'%02x%02x%02x%02x%02x%02x'"
          ]
        },
        {
          "symbol": "net.c::get_my_connection_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x4785c4",
          "second": "0x476764",
          "first_instruction_count": 17,
          "second_instruction_count": 17,
          "diff": [
            "--- 0x4785c4",
            "+++ 0x476764",
            "@@ -3,7 +3,7 @@",
            " xor edx,edx",
            " cmp m4[eax+None*1+net.c::_connections],0x0",
            " je local:7",
            "-cmp m4[eax+None*1+0x744604],0x0",
            "+cmp m4[eax+None*1+0x72f0d4],0x0",
            " jne local:14",
            " add eax,0x20",
            " inc edx"
          ]
        },
        {
          "symbol": "net.c::install_network_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x477b70",
          "second": "0x475d10",
          "first_instruction_count": 33,
          "second_instruction_count": 33,
          "diff": [
            "--- 0x477b70",
            "+++ 0x475d10",
            "@@ -13,7 +13,7 @@",
            " mov m4[None+None*1+net.c::_network],ecx",
            " add eax,0x20",
            " xor ebx,ebx",
            "-mov m4[eax+None*1+0x7445e0],ebx",
            "+mov m4[eax+None*1+0x72f0b0],ebx",
            " cmp eax,0x200",
            " jne local:13",
            " mov edi,m4[None+None*1+net.c::_network_remove_alread_pending]"
          ]
        },
        {
          "symbol": "net.c::network_connection_monitor_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x478280",
          "second": "0x476420",
          "first_instruction_count": 93,
          "second_instruction_count": 93,
          "diff": [
            "--- 0x478280",
            "+++ 0x476420",
            "@@ -33,39 +33,39 @@",
            " call net.c::get_connection_name_",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x744611]",
            "+mov al,m1[edx+None*1+0x72f0e1]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x744610]",
            "+mov al,m1[edx+None*1+0x72f0e0]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x74460f]",
            "+mov al,m1[edx+None*1+0x72f0df]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x74460e]",
            "+mov al,m1[edx+None*1+0x72f0de]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x74460d]",
            "+mov al,m1[edx+None*1+0x72f0dd]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x74460c]",
            "+mov al,m1[edx+None*1+0x72f0dc]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x74460b]",
            "+mov al,m1[edx+None*1+0x72f0db]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x74460a]",
            "+mov al,m1[edx+None*1+0x72f0da]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x744609]",
            "+mov al,m1[edx+None*1+0x72f0d9]",
            " push eax",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x744608]",
            "+mov al,m1[edx+None*1+0x72f0d8]",
            " push eax",
            " call timer.c::fast_clock_",
            "-sub eax,m4[edx+None*1+0x74461c]",
            "+sub eax,m4[edx+None*1+0x72f0ec]",
            " push eax",
            "-cmp esi,m4[edx+None*1+0x744604]",
            "+cmp esi,m4[edx+None*1+0x72f0d4]",
            " je local:85",
            " mov eax,text:'Self'",
            " push eax"
          ]
        },
        {
          "symbol": "net.c::purge_old_connections_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x478884",
          "second": "0x476a24",
          "first_instruction_count": 30,
          "second_instruction_count": 30,
          "diff": [
            "--- 0x478884",
            "+++ 0x476a24",
            "@@ -15,7 +15,7 @@",
            " pop ebx",
            " ret ",
            " call timer.c::fast_clock_",
            "-sub eax,m4[ecx+None*1+0x74461c]",
            "+sub eax,m4[ecx+None*1+0x72f0ec]",
            " cmp eax,ebx",
            " jle local:8",
            " mov eax,edx"
          ]
        },
        {
          "symbol": "net.c::register_connection_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x4780b8",
          "second": "0x476258",
          "first_instruction_count": 90,
          "second_instruction_count": 90,
          "diff": [
            "--- 0x4780b8",
            "+++ 0x476258",
            "@@ -30,7 +30,7 @@",
            " xor ecx,ecx",
            " add edi,edx",
            " xor ebx,ebx",
            "-mov m4[edx+None*1+0x744604],ecx",
            "+mov m4[edx+None*1+0x72f0d4],ecx",
            " mov ecx,0xa",
            " add edi,0x8",
            " mov m4[edx+None*1+net.c::_connections],eax",
            "@@ -43,10 +43,10 @@",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            " call timer.c::fast_clock_",
            "-mov m4[edx+None*1+0x74461c],eax",
            "-mov m4[edx+None*1+0x744614],ebx",
            "+mov m4[edx+None*1+0x72f0ec],eax",
            "+mov m4[edx+None*1+0x72f0e4],ebx",
            " mov edi,0x1",
            "-mov m4[edx+None*1+0x744618],ebx",
            "+mov m4[edx+None*1+0x72f0e8],ebx",
            " mov m4[None+None*1+net.c::_connection_information_changed],edi",
            " call net.c::sort_connections_",
            " mov eax,ebp",
            "@@ -70,7 +70,7 @@",
            " test eax,eax",
            " jne local:11",
            " call timer.c::fast_clock_",
            "-mov m4[edx+None*1+0x74461c],eax",
            "+mov m4[edx+None*1+0x72f0ec],eax",
            " call net.c::sort_connections_",
            " mov eax,ebp",
            " pop ebp"
          ]
        },
        {
          "symbol": "net.c::register_self_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x477f38",
          "second": "0x4760d8",
          "first_instruction_count": 98,
          "second_instruction_count": 98,
          "diff": [
            "--- 0x477f38",
            "+++ 0x4760d8",
            "@@ -36,7 +36,7 @@",
            " mov ecx,0xa",
            " mov m4[edx+None*1+net.c::_connections],esi",
            " add edi,edx",
            "-mov m4[edx+None*1+0x744604],esi",
            "+mov m4[edx+None*1+0x72f0d4],esi",
            " add edi,0x8",
            " mov esi,ebx",
            " push edi",
            "@@ -49,9 +49,9 @@",
            " pop edi",
            " xor eax,eax",
            " mov ebx,0x1",
            "-mov m4[edx+None*1+0x744614],eax",
            "+mov m4[edx+None*1+0x72f0e4],eax",
            " mov m4[None+None*1+net.c::_connection_information_changed],ebx",
            "-mov m4[edx+None*1+0x744618],eax",
            "+mov m4[edx+None*1+0x72f0e8],eax",
            " call net.c::sort_connections_",
            " mov eax,ebp",
            " pop ebp",
            "@@ -61,7 +61,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov m4[edx+None*1+0x744604],eax",
            "+mov m4[edx+None*1+0x72f0d4],eax",
            " jmp local:11",
            " mov esi,net.c::_connections",
            " mov ecx,0xa",
            "@@ -77,7 +77,7 @@",
            " jne local:18",
            " mov eax,0x1",
            " mov m4[None+None*1+net.c::_connection_information_changed],eax",
            "-mov m4[edx+None*1+0x744604],eax",
            "+mov m4[edx+None*1+0x72f0d4],eax",
            " call net.c::sort_connections_",
            " mov eax,ebp",
            " pop ebp"
          ]
        },
        {
          "symbol": "net.c::send_packet_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x477d64",
          "second": "0x475f04",
          "first_instruction_count": 53,
          "second_instruction_count": 53,
          "diff": [
            "--- 0x477d64",
            "+++ 0x475f04",
            "@@ -8,9 +8,9 @@",
            " shl ecx,0x5",
            " cmp m4[ecx+None*1+net.c::_connections],0x0",
            " je local:42",
            "-cmp m4[ecx+None*1+0x744604],0x0",
            "+cmp m4[ecx+None*1+0x72f0d4],0x0",
            " jne local:42",
            "-mov edx,m4[ecx+None*1+0x744618]",
            "+mov edx,m4[ecx+None*1+0x72f0e8]",
            " test edx,edx",
            " je local:47",
            " mov eax,m4[edx+None*1+0x0]",
            "@@ -49,5 +49,5 @@",
            " mov edx,eax",
            " test eax,eax",
            " je local:42",
            "-mov m4[ecx+None*1+0x744618],eax",
            "+mov m4[ecx+None*1+0x72f0e8],eax",
            " jmp local:25"
          ]
        },
        {
          "symbol": "net.c::set_connection_name_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x4783f0",
          "second": "0x476590",
          "first_instruction_count": 101,
          "second_instruction_count": 101,
          "diff": [
            "--- 0x4783f0",
            "+++ 0x476590",
            "@@ -10,7 +10,7 @@",
            " shl ebp,0x5",
            " cmp m4[ebp+None*1+net.c::_connections],0x0",
            " je local:53",
            "-mov ecx,m4[ebp+None*1+0x744614]",
            "+mov ecx,m4[ebp+None*1+0x72f0e4]",
            " test ecx,ecx",
            " je local:67",
            " mov eax,ecx",
            "@@ -18,7 +18,7 @@",
            " call _strcmp::strcmp_",
            " test eax,eax",
            " je local:53",
            "-mov ebx,m4[ebp+None*1+0x744614]",
            "+mov ebx,m4[ebp+None*1+0x72f0e4]",
            " test ebx,ebx",
            " jne local:60",
            " mov edi,esi",
            "@@ -37,7 +37,7 @@",
            " call memory.c::mem_malloc_",
            " shl ecx,0x5",
            " mov edi,eax",
            "-mov m4[ecx+None*1+0x744614],eax",
            "+mov m4[ecx+None*1+0x72f0e4],eax",
            " push edi",
            " mov al,m1[esi+None*1+0x0]",
            " mov m1[edi+None*1+0x0],al",
            "@@ -63,7 +63,7 @@",
            " mov ebx,0x356",
            " xor edi,edi",
            " call memory.c::mem_free_",
            "-mov m4[ebp+None*1+0x744614],edi",
            "+mov m4[ebp+None*1+0x72f0e4],edi",
            " jmp local:23",
            " mov edi,esi",
            " sub ecx,ecx",
            "@@ -79,7 +79,7 @@",
            " lea eax,m4[ecx+None*1+0x1]",
            " call memory.c::mem_malloc_",
            " mov edi,eax",
            "-mov m4[ebp+None*1+0x744614],eax",
            "+mov m4[ebp+None*1+0x72f0e4],eax",
            " push edi",
            " mov al,m1[esi+None*1+0x0]",
            " mov m1[edi+None*1+0x0],al"
          ]
        },
        {
          "symbol": "net.c::set_connection_self_name_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x4783bc",
          "second": "0x47655c",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x4783bc",
            "+++ 0x47655c",
            "@@ -5,7 +5,7 @@",
            " xor ecx,ecx",
            " cmp m4[eax+None*1+net.c::_connections],0x0",
            " je local:9",
            "-cmp m4[eax+None*1+0x744604],0x0",
            "+cmp m4[eax+None*1+0x72f0d4],0x0",
            " jne local:16",
            " add eax,0x20",
            " inc ecx"
          ]
        },
        {
          "symbol": "net.c::sort_connections_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x4785f4",
          "second": "0x476794",
          "first_instruction_count": 126,
          "second_instruction_count": 126,
          "diff": [
            "--- 0x4785f4",
            "+++ 0x476794",
            "@@ -11,7 +11,7 @@",
            " xor esi,esi",
            " cmp m4[edx+None*1+net.c::_connections],0x0",
            " jne local:53",
            "-cmp m4[edx+None*1+0x744620],0x0",
            "+cmp m4[edx+None*1+0x72f0f0],0x0",
            " je local:53",
            " mov ebp,net.c::_connections",
            " mov ecx,0x20",
            "@@ -61,7 +61,7 @@",
            " mov m4[esp+None*1+0x20],esi",
            " cmp m4[edx+None*1+net.c::_connections],0x0",
            " je local:113",
            "-cmp m4[edx+None*1+0x744620],0x0",
            "+cmp m4[edx+None*1+0x72f0f0],0x0",
            " je local:113",
            " mov ebp,net.c::_connections",
            " lea ebx,m4[edx+None*1+0x20]"
          ]
        },
        {
          "symbol": "net.c::unregister_connection_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x478050",
          "second": "0x4761f0",
          "first_instruction_count": 37,
          "second_instruction_count": 37,
          "diff": [
            "--- 0x478050",
            "+++ 0x4761f0",
            "@@ -10,7 +10,7 @@",
            " push ebx",
            " xor ebx,ebx",
            " mov m4[eax+None*1+net.c::_connections],ebx",
            "-mov eax,m4[eax+None*1+0x744618]",
            "+mov eax,m4[eax+None*1+0x72f0e8]",
            " test eax,eax",
            " je local:24",
            " mov m4[eax+None*1+0x4],0x0",
            "@@ -26,7 +26,7 @@",
            " shl ecx,0x5",
            " xor edi,edi",
            " mov m4[None+None*1+net.c::_connection_information_changed],ebp",
            "-mov m4[ecx+None*1+0x744618],edi",
            "+mov m4[ecx+None*1+0x72f0e8],edi",
            " call net.c::sort_connections_",
            " pop ebx",
            " pop edx"
          ]
        },
        {
          "symbol": "net.c::update_connection_time_",
          "source": "E:\\library\\network\\net.c",
          "first": "0x4788c8",
          "second": "0x476a68",
          "first_instruction_count": 11,
          "second_instruction_count": 11,
          "diff": [
            "--- 0x4788c8",
            "+++ 0x476a68",
            "@@ -6,6 +6,6 @@",
            " pop edx",
            " ret ",
            " call timer.c::fast_clock_",
            "-mov m4[edx+None*1+0x74461c],eax",
            "+mov m4[edx+None*1+0x72f0ec],eax",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "netevent.c::notify_two_player_key_event_",
          "source": "E:\\apache\\source\\apnet\\netevent.c",
          "first": "0x4353dc",
          "second": "0x43575c",
          "first_instruction_count": 51,
          "second_instruction_count": 51,
          "diff": [
            "--- 0x4353dc",
            "+++ 0x43575c",
            "@@ -39,7 +39,7 @@",
            " mov edi,0x1",
            " jmp local:29",
            " inc ebp",
            "-mov m2[None+ebp*2+0x5a349e],bx",
            "+mov m2[None+ebp*2+0x5964ae],bx",
            " mov eax,edi",
            " mov m4[None+None*1+netevent.c::_key_event_index],ebp",
            " pop ebp"
          ]
        },
        {
          "symbol": "network.c::do_multi_player_debrief_",
          "source": "E:\\apache\\source\\menus\\network.c",
          "first": "0x409be0",
          "second": "0x409f40",
          "first_instruction_count": 134,
          "second_instruction_count": 134,
          "diff": [
            "--- 0x409be0",
            "+++ 0x409f40",
            "@@ -66,10 +66,10 @@",
            " mov eax,m4[None+None*1+network.c::_status_text]",
            " call utext.c::set_object_text_",
            " xor eax,eax",
            "-mov dl,m1[eax+None*1+0x5a15e2]",
            "+mov dl,m1[eax+None*1+0x5945f2]",
            " add eax,0x1b8",
            " and dl,0xfc",
            "-mov m1[eax+None*1+0x5a142a],dl",
            "+mov m1[eax+None*1+0x59443a],dl",
            " cmp eax,0x1b80",
            " jne local:68",
            " call network.c::update_network_logins_"
          ]
        },
        {
          "symbol": "network.c::initialise_network_preferences_",
          "source": "E:\\apache\\source\\menus\\network.c",
          "first": "0x409554",
          "second": "0x4098b4",
          "first_instruction_count": 16,
          "second_instruction_count": 16,
          "diff": [
            "--- 0x409554",
            "+++ 0x4098b4",
            "@@ -1,14 +1,14 @@",
            " push edx",
            "-mov edx,0x518814",
            "+mov edx,0x50b824",
            " mov eax,text:'Network unlimited_weapons'",
            " call prefs.c::get_preferences_int_",
            " mov edx,network.c::_current_preferences",
            " mov eax,text:'Network infinite_fuel'",
            " call prefs.c::get_preferences_int_",
            "-mov edx,0x51881c",
            "+mov edx,0x50b82c",
            " mov eax,text:'Network collisions'",
            " call prefs.c::get_preferences_int_",
            "-mov edx,0x518820",
            "+mov edx,0x50b830",
            " mov eax,text:'Network deathmatch'",
            " call prefs.c::get_preferences_int_",
            " call network.c::update_preferences_buttons_"
          ]
        },
        {
          "symbol": "network.c::initialise_network_preferences_screen_",
          "source": "E:\\apache\\source\\menus\\network.c",
          "first": "0x408578",
          "second": "0x4088d8",
          "first_instruction_count": 607,
          "second_instruction_count": 607,
          "diff": [
            "--- 0x408578",
            "+++ 0x4088d8",
            "@@ -527,7 +527,7 @@",
            " add ecx,0x14",
            " call object.c::create_object_",
            " add esp,0x38",
            "-mov m4[edx+None*1+0x51877c],eax",
            "+mov m4[edx+None*1+0x50b78c],eax",
            " cmp edx,0x40",
            " jne local:458",
            " push 0x0"
          ]
        },
        {
          "symbol": "network.c::network_find_players_",
          "source": "E:\\apache\\source\\menus\\network.c",
          "first": "0x409070",
          "second": "0x4093d0",
          "first_instruction_count": 62,
          "second_instruction_count": 62,
          "diff": [
            "--- 0x409070",
            "+++ 0x4093d0",
            "@@ -2,7 +2,7 @@",
            " push ecx",
            " push edx",
            " sub esp,0x4",
            "-cmp m4[None+None*1+fxgloop.c::_game_loop_active],0x0",
            "+cmp m4[None+None*1+gameloop.c::_game_loop_active],0x0",
            " jne local:43",
            " mov eax,0x1",
            " mov m4[esp+None*1+0x0],eax",
            "@@ -23,7 +23,7 @@",
            " call net.c::is_connection_valid_",
            " test eax,eax",
            " je local:32",
            "-mov eax,m4[ecx+None*1+0x5a15e0]",
            "+mov eax,m4[ecx+None*1+0x5945f0]",
            " shl eax,0xf",
            " sar eax,0x1f",
            " test eax,eax",
            "@@ -48,7 +48,7 @@",
            " test eax,eax",
            " jne local:19",
            " jmp local:38",
            "-cmp ebx,m4[None+None*1+fxgloop.c::_game_loop_active]",
            "+cmp ebx,m4[None+None*1+gameloop.c::_game_loop_active]",
            " jne local:60",
            " mov eax,0x1",
            " mov m4[esp+None*1+0x0],eax"
          ]
        },
        {
          "symbol": "network.c::notify_collision_button_",
          "source": "E:\\apache\\source\\menus\\network.c",
          "first": "0x408f1c",
          "second": "0x40927c",
          "first_instruction_count": 13,
          "second_instruction_count": 13,
          "diff": [
            "--- 0x408f1c",
            "+++ 0x40927c",
            "@@ -2,12 +2,12 @@",
            " call uoaccess.c::get_object_on_",
            " test eax,eax",
            " jne local:11",
            "-mov m4[None+None*1+0x51881c],eax",
            "+mov m4[None+None*1+0x50b82c],eax",
            " mov eax,text:'Network collisions'",
            "-mov edx,m4[None+None*1+0x51881c]",
            "+mov edx,m4[None+None*1+0x50b82c]",
            " call prefs.c::set_preferences_int_",
            " cmp m4[None+None*1+apnet.c::_network_active],0x0",
            " jne apnet.c::send_my_preferences_are_",
            " ret ",
            "-mov m4[None+None*1+0x51881c],0x1",
            "+mov m4[None+None*1+0x50b82c],0x1",
            " jmp local:5"
          ]
        },
        {
          "symbol": "network.c::notify_game_type_button_",
          "source": "E:\\apache\\source\\menus\\network.c",
          "first": "0x408f5c",
          "second": "0x4092bc",
          "first_instruction_count": 13,
          "second_instruction_count": 13,
          "diff": [
            "--- 0x408f5c",
            "+++ 0x4092bc",
            "@@ -2,12 +2,12 @@",
            " call uoaccess.c::get_object_on_",
            " test eax,eax",
            " jne local:11",
            "-mov m4[None+None*1+0x518820],eax",
            "+mov m4[None+None*1+0x50b830],eax",
            " mov eax,text:'Network deathmatch'",
            "-mov edx,m4[None+None*1+0x518820]",
            "+mov edx,m4[None+None*1+0x50b830]",
            " call prefs.c::set_preferences_int_",
            " cmp m4[None+None*1+apnet.c::_network_active],0x0",
            " jne apnet.c::send_my_preferences_are_",
            " ret ",
            "-mov m4[None+None*1+0x518820],0x1",
            "+mov m4[None+None*1+0x50b830],0x1",
            " jmp local:5"
          ]
        },
        {
          "symbol": "network.c::notify_network_takeoff_button_",
          "source": "E:\\apache\\source\\menus\\network.c",
          "first": "0x408f9c",
          "second": "0x4092fc",
          "first_instruction_count": 67,
          "second_instruction_count": 67,
          "diff": [
            "--- 0x408f9c",
            "+++ 0x4092fc",
            "@@ -15,7 +15,7 @@",
            " xor edi,edi",
            " cmp edi,m4[ebx+None*1+net.c::_connections]",
            " je local:41",
            "-mov eax,m4[ebx+None*1+0x744614]",
            "+mov eax,m4[ebx+None*1+0x72f0e4]",
            " cmp edi,eax",
            " je local:22",
            " test ecx,ecx",
            "@@ -40,7 +40,7 @@",
            " jg local:37",
            " jmp local:29",
            " imul eax,esi,0x1b8",
            "-mov eax,m4[eax+None*1+0x5a15e0]",
            "+mov eax,m4[eax+None*1+0x5945f0]",
            " shl eax,0x10",
            " sar eax,0x18",
            " test eax,eax"
          ]
        },
        {
          "symbol": "network.c::notify_weapons_button_",
          "source": "E:\\apache\\source\\menus\\network.c",
          "first": "0x408edc",
          "second": "0x40923c",
          "first_instruction_count": 13,
          "second_instruction_count": 13,
          "diff": [
            "--- 0x408edc",
            "+++ 0x40923c",
            "@@ -2,12 +2,12 @@",
            " call uoaccess.c::get_object_on_",
            " test eax,eax",
            " jne local:11",
            "-mov m4[None+None*1+0x518814],eax",
            "+mov m4[None+None*1+0x50b824],eax",
            " mov eax,text:'Network unlimited_weapons'",
            "-mov edx,m4[None+None*1+0x518814]",
            "+mov edx,m4[None+None*1+0x50b824]",
            " call prefs.c::set_preferences_int_",
            " cmp m4[None+None*1+apnet.c::_network_active],0x0",
            " jne apnet.c::send_my_preferences_are_",
            " ret ",
            "-mov m4[None+None*1+0x518814],0x1",
            "+mov m4[None+None*1+0x50b824],0x1",
            " jmp local:5"
          ]
        },
        {
          "symbol": "network.c::update_network_logins_",
          "source": "E:\\apache\\source\\menus\\network.c",
          "first": "0x409160",
          "second": "0x4094c0",
          "first_instruction_count": 178,
          "second_instruction_count": 178,
          "diff": [
            "--- 0x409160",
            "+++ 0x4094c0",
            "@@ -32,7 +32,7 @@",
            " xor esi,esi",
            " mov m4[esp+None*1+0xcc],eax",
            " mov edx,m4[esp+None*1+0xd4]",
            "-cmp edx,m4[ecx+None*1+0x5a1484]",
            "+cmp edx,m4[ecx+None*1+0x594494]",
            " je local:80",
            " add ebp,0x4",
            " inc esi",
            "@@ -84,12 +84,12 @@",
            " je local:36",
            " xor dl,dl",
            " mov eax,edi",
            "-mov m1[ecx+None*1+0x5a15e0],dl",
            "+mov m1[ecx+None*1+0x5945f0],dl",
            " and eax,0xff",
            "-mov edx,m4[ecx+None*1+0x5a15e0]",
            "+mov edx,m4[ecx+None*1+0x5945f0]",
            " or edx,eax",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "-mov m4[ecx+None*1+0x5a15e0],edx",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            "+mov m4[ecx+None*1+0x5945f0],edx",
            " add eax,m4[esp+None*1+0xcc]",
            " mov eax,m4[eax+None*1+0x0]",
            " add eax,0x48",
            "@@ -136,17 +136,17 @@",
            " mov eax,esi",
            " call net.c::get_connection_name_",
            " jmp local:111",
            "-mov eax,m4[ecx+None*1+0x5a15e0]",
            "+mov eax,m4[ecx+None*1+0x5945f0]",
            " shl eax,0xf",
            " sar eax,0x1f",
            " test eax,eax",
            " jne local:160",
            "-mov eax,m4[ecx+None*1+0x5a15e0]",
            "+mov eax,m4[ecx+None*1+0x5945f0]",
            " shl eax,0xe",
            " sar eax,0x1f",
            " test eax,eax",
            " jne local:166",
            "-mov eax,m4[ecx+None*1+0x5a15e0]",
            "+mov eax,m4[ecx+None*1+0x5945f0]",
            " shl eax,0x10",
            " mov edx,m4[None+None*1+server.c::_server_connection_number]",
            " sar eax,0x18"
          ]
        },
        {
          "symbol": "network.c::update_preferences_buttons_",
          "source": "E:\\apache\\source\\menus\\network.c",
          "first": "0x409404",
          "second": "0x409764",
          "first_instruction_count": 75,
          "second_instruction_count": 75,
          "diff": [
            "--- 0x409404",
            "+++ 0x409764",
            "@@ -1,6 +1,6 @@",
            " push edx",
            " push esi",
            "-cmp m4[None+None*1+0x518814],0x0",
            "+cmp m4[None+None*1+0x50b824],0x0",
            " je local:43",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+network.c::_cheat_unlimited_weapons_button]",
            "@@ -16,7 +16,7 @@",
            " mov eax,m4[None+None*1+network.c::_cheat_infinite_fuel_button]",
            " xor edx,edx",
            " call uoaccess.c::set_object_on_",
            "-cmp m4[None+None*1+0x51881c],0x0",
            "+cmp m4[None+None*1+0x50b82c],0x0",
            " jne local:53",
            " mov eax,m4[None+None*1+network.c::_cheat_collision_button]",
            " xor edx,edx",
            "@@ -24,7 +24,7 @@",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+network.c::_cheat_no_collision_button]",
            " call uoaccess.c::set_object_on_",
            "-mov esi,m4[None+None*1+0x518820]",
            "+mov esi,m4[None+None*1+0x50b830]",
            " cmp esi,0x1",
            " jne local:59",
            " mov eax,m4[None+None*1+network.c::_cheat_deathmatch_button]"
          ]
        },
        {
          "symbol": "nheapmin::__ReturnMemToSystem_",
          "source": "nheapmin",
          "first": "0x4cfc24",
          "second": "0x4c3094",
          "first_instruction_count": 35,
          "second_instruction_count": 35,
          "diff": [
            "--- 0x4cfc24",
            "+++ 0x4c3094",
            "@@ -8,7 +8,7 @@",
            " push 0x0",
            " push eax",
            " mov esi,m4[eax+None*1+0x8]",
            "-call m4[None+None*1+constant:78500d00]",
            "+call m4[None+None*1+constant:787f0c00]",
            " test eax,eax",
            " jne local:15",
            " mov eax,0xffffffff"
          ]
        },
        {
          "symbol": "ntdirinf::__FromDOSDT_",
          "source": "ntdirinf",
          "first": "0x4cd47c",
          "second": "0x4c08f1",
          "first_instruction_count": 17,
          "second_instruction_count": 17,
          "diff": [
            "--- 0x4cd47c",
            "+++ 0x4c08f1",
            "@@ -7,11 +7,11 @@",
            " xor edx,edx",
            " mov dx,ax",
            " push edx",
            "-call m4[None+None*1+constant:4e4b0d00]",
            "+call m4[None+None*1+constant:2c7a0c00]",
            " push ebx",
            " lea edx,m4[esp+None*1+0x4]",
            " push edx",
            "-call m4[None+None*1+constant:6a4e0d00]",
            "+call m4[None+None*1+constant:487d0c00]",
            " add esp,0x8",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "ntdirinf::__MakeDOSDT_",
          "source": "ntdirinf",
          "first": "0x4cd456",
          "second": "0x4c08cb",
          "first_instruction_count": 17,
          "second_instruction_count": 17,
          "diff": [
            "--- 0x4cd456",
            "+++ 0x4c08cb",
            "@@ -5,12 +5,12 @@",
            " mov edx,esp",
            " push edx",
            " push eax",
            "-call m4[None+None*1+constant:c44b0d00]",
            "+call m4[None+None*1+constant:a27a0c00]",
            " push ebx",
            " push esi",
            " lea eax,m4[esp+None*1+0x8]",
            " push eax",
            "-call m4[None+None*1+constant:ac4b0d00]",
            "+call m4[None+None*1+constant:8a7a0c00]",
            " add esp,0x8",
            " pop esi",
            " pop ecx"
          ]
        },
        {
          "symbol": "ntdirinf::__NTFindNextFileWithAttr_",
          "source": "ntdirinf",
          "first": "0x4cd4e4",
          "second": "0x4c0959",
          "first_instruction_count": 24,
          "second_instruction_count": 24,
          "diff": [
            "--- 0x4cd4e4",
            "+++ 0x4c0959",
            "@@ -15,7 +15,7 @@",
            " ret ",
            " push ebx",
            " push edi",
            "-call m4[None+None*1+constant:fc4b0d00]",
            "+call m4[None+None*1+constant:da7a0c00]",
            " test eax,eax",
            " jne local:5",
            " pop edi"
          ]
        },
        {
          "symbol": "nthdl::__NTAddSpecificFileHandle_",
          "source": "nthdl",
          "first": "0x4cdcab",
          "second": "0x4c111b",
          "first_instruction_count": 59,
          "second_instruction_count": 59,
          "diff": [
            "--- 0x4cdcab",
            "+++ 0x4c111b",
            "@@ -23,7 +23,7 @@",
            " jmp local:25",
            " push edi",
            " push 0xfffffff4",
            "-call m4[None+None*1+constant:b24f0d00]",
            "+call m4[None+None*1+constant:a07e0c00]",
            " mov ecx,esi",
            " mov edx,m4[None+None*1+nthdl::_topFileID]",
            " shl ecx,0x2"
          ]
        },
        {
          "symbol": "nthdl::__NTGetFakeHandle_",
          "source": "nthdl",
          "first": "0x4cdddb",
          "second": "0x4c124b",
          "first_instruction_count": 17,
          "second_instruction_count": 17,
          "diff": [
            "--- 0x4cdddb",
            "+++ 0x4c124b",
            "@@ -4,7 +4,7 @@",
            " push 0x0",
            " push 0x0",
            " push 0x0",
            "-call m4[None+None*1+constant:e64a0d00]",
            "+call m4[None+None*1+constant:ae790c00]",
            " mov edx,eax",
            " test eax,eax",
            " jne local:13"
          ]
        },
        {
          "symbol": "nthdl::__NTInitFileHandles_",
          "source": "nthdl",
          "first": "0x4cdd7c",
          "second": "0x4c11ec",
          "first_instruction_count": 32,
          "second_instruction_count": 32,
          "diff": [
            "--- 0x4cdd7c",
            "+++ 0x4c11ec",
            "@@ -1,7 +1,7 @@",
            " push ecx",
            " push edx",
            " push 0xfffffff6",
            "-call m4[None+None*1+constant:ee4d0d00]",
            "+call m4[None+None*1+constant:cc7c0c00]",
            " mov edx,eax",
            " test eax,eax",
            " je local:9",
            "@@ -10,7 +10,7 @@",
            " call nthdl::__NTGetFakeHandle_",
            " call nthdl::__NTAddFileHandle_",
            " push 0xfffffff5",
            "-call m4[None+None*1+constant:ee4d0d00]",
            "+call m4[None+None*1+constant:cc7c0c00]",
            " mov edx,eax",
            " test eax,eax",
            " je local:18",
            "@@ -19,7 +19,7 @@",
            " call nthdl::__NTGetFakeHandle_",
            " call nthdl::__NTAddFileHandle_",
            " push 0xfffffff4",
            "-call m4[None+None*1+constant:ee4d0d00]",
            "+call m4[None+None*1+constant:cc7c0c00]",
            " mov edx,eax",
            " test eax,eax",
            " je local:27"
          ]
        },
        {
          "symbol": "object.c::get_object_at_",
          "source": "E:\\library\\ui\\object.c",
          "first": "0x48212c",
          "second": "0x4802dc",
          "first_instruction_count": 59,
          "second_instruction_count": 59,
          "diff": [
            "--- 0x48212c",
            "+++ 0x4802dc",
            "@@ -15,18 +15,18 @@",
            " lea eax,m4[None+edx*4+0x0]",
            " add eax,edx",
            " shl eax,0x2",
            "-mov esi,m4[eax+None*1+0xaf2d48]",
            "+mov esi,m4[eax+None*1+0xadd818]",
            " mov edi,m4[esi+None*1+0x6c]",
            " shl edi,0x10",
            " sar edi,0x1f",
            " test edi,edi",
            " je local:37",
            "-mov edi,m4[eax+None*1+0xaf2d3c]",
            "+mov edi,m4[eax+None*1+0xadd80c]",
            " mov m4[esp+None*1+0x4],edi",
            "-mov edi,m4[eax+None*1+0xaf2d40]",
            "+mov edi,m4[eax+None*1+0xadd810]",
            " mov ebp,m4[eax+None*1+object.c::_object_redraws]",
            " mov m4[esp+None*1+0x0],edi",
            "-mov edi,m4[eax+None*1+0xaf2d44]",
            "+mov edi,m4[eax+None*1+0xadd814]",
            " cmp ecx,ebp",
            " jl local:37",
            " cmp ecx,m4[esp+None*1+0x0]"
          ]
        },
        {
          "symbol": "object.c::install_object_manager_",
          "source": "E:\\library\\ui\\object.c",
          "first": "0x481c74",
          "second": "0x47fe24",
          "first_instruction_count": 38,
          "second_instruction_count": 38,
          "diff": [
            "--- 0x481c74",
            "+++ 0x47fe24",
            "@@ -4,7 +4,7 @@",
            " call uclose.c::install_close_box_sprites_",
            " call uresize.c::install_resize_box_sprites_",
            " call umenu.c::install_menu_font_",
            "-mov edx,repaint.c::take_glide_shot_",
            "+mov edx,repaint.c::do_screen_shot_",
            " mov eax,0x101f",
            " mov ebx,0x2000",
            " call key.c::register_key_"
          ]
        },
        {
          "symbol": "object.c::object_manager_",
          "source": "E:\\library\\ui\\object.c",
          "first": "0x481d3c",
          "second": "0x47feec",
          "first_instruction_count": 91,
          "second_instruction_count": 91,
          "diff": [
            "--- 0x481d3c",
            "+++ 0x47feec",
            "@@ -9,7 +9,7 @@",
            " call exit.c::register_exit_",
            " mov eax,0x32",
            " call thread.c::set_priority_",
            "-mov eax,0x744bd4",
            "+mov eax,0x72f6a4",
            " call thread.c::sleep_on_",
            " xor ebp,ebp",
            " mov eax,esp",
            "@@ -19,10 +19,10 @@",
            " call mouse.c::update_mouse_pointer_",
            " call thread.c::yield_",
            " jmp local:14",
            "-mov edx,m4[None+None*1+0x744bd4]",
            "+mov edx,m4[None+None*1+0x72f6a4]",
            " inc edx",
            " mov ecx,m4[None+None*1+object.c::_captured_object]",
            "-mov m4[None+None*1+0x744bd4],edx",
            "+mov m4[None+None*1+0x72f6a4],edx",
            " cmp ebp,ecx",
            " jne local:32",
            " cmp m4[esp+None*1+0x0],0x2",
            "@@ -37,7 +37,7 @@",
            " call keyboard.c::do_key_event_",
            " test eax,eax",
            " je local:42",
            "-dec m4[None+None*1+0x744bd4]",
            "+dec m4[None+None*1+0x72f6a4]",
            " call thread.c::quick_yield_",
            " jmp local:14",
            " mov edx,m4[None+None*1+object.c::_keyboard_object]",
            "@@ -54,7 +54,7 @@",
            " je local:39",
            " mov edx,esp",
            " call object.c::notify_",
            "-dec m4[None+None*1+0x744bd4]",
            "+dec m4[None+None*1+0x72f6a4]",
            " call thread.c::quick_yield_",
            " jmp local:14",
            " cmp esi,0x7",
            "@@ -71,14 +71,14 @@",
            " mov edx,esp",
            " mov eax,m4[None+None*1+object.c::_mouse_object]",
            " call object.c::notify_",
            "-dec m4[None+None*1+0x744bd4]",
            "+dec m4[None+None*1+0x72f6a4]",
            " call thread.c::quick_yield_",
            " jmp local:14",
            " je local:83",
            " mov edx,esp",
            " mov eax,esi",
            " call object.c::notify_",
            "-dec m4[None+None*1+0x744bd4]",
            "+dec m4[None+None*1+0x72f6a4]",
            " call thread.c::quick_yield_",
            " jmp local:14",
            " push 0x27b",
            "@@ -86,6 +86,6 @@",
            " push text:'Captured Object Conflict'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-dec m4[None+None*1+0x744bd4]",
            "+dec m4[None+None*1+0x72f6a4]",
            " call thread.c::quick_yield_",
            " jmp local:14"
          ]
        },
        {
          "symbol": "object.c::tree_",
          "source": "E:\\library\\ui\\object.c",
          "first": "0x481fc4",
          "second": "0x480174",
          "first_instruction_count": 113,
          "second_instruction_count": 113,
          "diff": [
            "--- 0x481fc4",
            "+++ 0x480174",
            "@@ -73,10 +73,10 @@",
            " mov m4[esi+None*1+0x34],eax",
            " mov m4[esi+None*1+0x28],ebx",
            " mov m4[edi+None*1+object.c::_object_redraws],ebx",
            "-mov m4[edi+None*1+0xaf2d3c],ecx",
            "-mov m4[edi+None*1+0xaf2d40],edx",
            "-mov m4[edi+None*1+0xaf2d44],eax",
            "-mov m4[edi+None*1+0xaf2d48],esi",
            "+mov m4[edi+None*1+0xadd80c],ecx",
            "+mov m4[edi+None*1+0xadd810],edx",
            "+mov m4[edi+None*1+0xadd814],eax",
            "+mov m4[edi+None*1+0xadd818],esi",
            " inc m4[None+None*1+object.c::_object_count]",
            " mov edi,m4[esi+None*1+0xc]",
            " test edi,edi"
          ]
        },
        {
          "symbol": "objects.c::initialise_top_ten_screen_",
          "source": "E:\\apache\\source\\menus\\objects.c",
          "first": "0x405b20",
          "second": "0x405a10",
          "first_instruction_count": 120,
          "second_instruction_count": 120,
          "diff": [
            "--- 0x405b20",
            "+++ 0x405a10",
            "@@ -80,7 +80,7 @@",
            " add ecx,0x14",
            " call object.c::create_object_",
            " add esp,0x50",
            "-mov m4[edx+None*1+0x51814c],eax",
            "+mov m4[edx+None*1+0x50b13c],eax",
            " cmp edx,0x28",
            " jne local:27",
            " push 0x0"
          ]
        },
        {
          "symbol": "openwnt::_sopen_",
          "source": "openwnt",
          "first": "0x4cc8c6",
          "second": "0x4bfdf6",
          "first_instruction_count": 165,
          "second_instruction_count": 165,
          "diff": [
            "--- 0x4cc8c6",
            "+++ 0x4bfdf6",
            "@@ -94,7 +94,7 @@",
            " mov eax,m4[esp+None*1+0x24]",
            " push eax",
            " push edi",
            "-call m4[None+None*1+constant:f64a0d00]",
            "+call m4[None+None*1+constant:be790c00]",
            " mov ecx,eax",
            " cmp eax,0xffffffff",
            " jne local:117",
            "@@ -109,7 +109,7 @@",
            " mov ebx,m4[esp+None*1+0x24]",
            " push ebx",
            " push edi",
            "-call m4[None+None*1+constant:f64a0d00]",
            "+call m4[None+None*1+constant:be790c00]",
            " mov ecx,eax",
            " cmp ecx,0xffffffff",
            " jne local:117",
            "@@ -123,7 +123,7 @@",
            " cmp eax,ebp",
            " jb local:128",
            " push ecx",
            "-call m4[None+None*1+constant:d84a0d00]",
            "+call m4[None+None*1+constant:a0790c00]",
            " mov eax,0x5",
            " jmp local:11",
            " call isattwnt::isatty_"
          ]
        },
        {
          "symbol": "palette.c::initialise_palette_",
          "source": "E:\\library\\graphics\\palette.c",
          "first": "0x46ee68",
          "second": "0x46edc8",
          "first_instruction_count": 29,
          "second_instruction_count": 9,
          "diff": [
            "--- 0x46ee68",
            "+++ 0x46edc8",
            "@@ -1,29 +1,9 @@",
            " push ebx",
            "-push ecx",
            " push edx",
            " mov ebx,0x100",
            "+mov eax,palette.c::_original_rgb_values",
            " xor edx,edx",
            "-mov eax,palette.c::_original_rgb_values",
            "-mov m4[None+None*1+palette.c::__3dfx_initialised],edx",
            " call ddraw.c::get_windows_palette_registers_",
            "-xor edx,edx",
            "-xor eax,eax",
            "-xor ecx,ecx",
            "-xor ebx,ebx",
            "-mov cl,m1[eax+None*1+0x707791]",
            "-mov bl,m1[eax+None*1+palette.c::_original_rgb_values]",
            "-shl ecx,0x8",
            "-shl ebx,0x10",
            "-or ebx,ecx",
            "-xor ecx,ecx",
            "-mov cl,m1[eax+None*1+0x707792]",
            "-add edx,0x4",
            "-or ecx,ebx",
            "-add eax,0x3",
            "-mov m4[edx+None*1+0x707cbc],ecx",
            "-cmp edx,0x400",
            "-jne local:10",
            " pop edx",
            "-pop ecx",
            " pop ebx",
            " ret "
          ]
        },
        {
          "symbol": "palette.c::update_palette_registers_",
          "source": "E:\\library\\graphics\\palette.c",
          "first": "0x46eec0",
          "second": "0x46ede0",
          "first_instruction_count": 372,
          "second_instruction_count": 202,
          "diff": [
            "--- 0x46eec0",
            "+++ 0x46ede0",
            "@@ -1,40 +1,19 @@",
            "-push ebx",
            " push ecx",
            "-push edx",
            " push esi",
            " push edi",
            " push ebp",
            "-mov ebp,esp",
            "-sub esp,0x50",
            "-and esp,0xfffffff8",
            "-xor edx,edx",
            "-mov ecx,m4[None+None*1+palette.c::_palette_modified]",
            "-mov m4[esp+None*1+0x0],edx",
            "-test ecx,ecx",
            "-jne local:22",
            "-mov esp,ebp",
            "+sub esp,0x20",
            "+cmp m4[None+None*1+palette.c::_palette_modified],0x0",
            "+jne local:13",
            "+add esp,0x20",
            " pop ebp",
            " pop edi",
            " pop esi",
            "-pop edx",
            " pop ecx",
            "-pop ebx",
            " ret ",
            " mov ecx,0x300",
            " mov esi,palette.c::_original_rgb_values",
            " mov edi,palette.c::_modified_rgb_values",
            "-mov m4[None+None*1+0x707cb8],edx",
            "-mov m4[None+None*1+0x707cbc],edx",
            "-mov m4[None+None*1+0x707cb0],edx",
            "-mov m4[None+None*1+0x707cb4],edx",
            "-mov m4[None+None*1+palette.c::_average_rgb_values],edx",
            "-mov m4[None+None*1+0x707cac],edx",
            "-mov m4[None+None*1+0x707ca0],edx",
            "-mov m4[None+None*1+0x707ca4],edx",
            "-mov m4[None+None*1+0x707c98],edx",
            "-mov m4[None+None*1+0x707c9c],edx",
            "-mov m4[None+None*1+palette.c::_tmp_average_rgb_values],edx",
            "-mov m4[None+None*1+0x707c94],edx",
            " push edi",
            " mov eax,ecx",
            " shr ecx,0x2",
            "@@ -44,12 +23,12 @@",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            " cmp m4[None+None*1+3dpal.c::_grassy_terrain_palette],0x0",
            "-je local:60",
            "+je local:39",
            " cmp m4[None+None*1+3dpal.c::_grassy_terrain_flag],0x0",
            "-je local:60",
            "+je local:39",
            " mov ecx,0x60",
            " mov esi,3dpal.c::_grassy_terrain_rgb_values",
            "-mov edi,0x707589",
            "+mov edi,0x6f9d99",
            " push edi",
            " mov eax,ecx",
            " shr ecx,0x2",
            "@@ -58,255 +37,124 @@",
            " and cl,0x3",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            "-mov edx,m4[None+None*1+palette.c::_root]",
            "-mov m4[esp+None*1+0x28],edx",
            "-test edx,edx",
            "-je local:253",
            "-mov edx,m4[esp+None*1+0x28]",
            "-cmp m4[edx+None*1+0x18],0x0",
            "-jle local:248",
            "-mov edx,m4[edx+None*1+0xc]",
            "-mov m4[esp+None*1+0x1c],edx",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov edx,m4[edx+None*1+0x10]",
            "-mov m4[esp+None*1+0x4],edx",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov edx,m4[edx+None*1+0x1c]",
            "-mov m4[esp+None*1+0x2c],edx",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov edx,m4[edx+None*1+0x20]",
            "-mov ecx,m4[esp+None*1+0x28]",
            "-mov m4[esp+None*1+0x34],edx",
            "-mov edx,m4[esp+None*1+0x28]",
            "+push edx",
            "+push ebx",
            "+mov eax,m4[None+None*1+palette.c::_root]",
            "+mov m4[esp+None*1+0x8],eax",
            "+test eax,eax",
            "+je local:129",
            "+mov eax,m4[esp+None*1+0x8]",
            "+cmp m4[eax+None*1+0x18],0x0",
            "+jle local:124",
            "+mov eax,m4[eax+None*1+0xc]",
            "+mov m4[esp+None*1+0x24],eax",
            "+mov eax,m4[esp+None*1+0x8]",
            "+mov eax,m4[eax+None*1+0x10]",
            "+mov m4[esp+None*1+0x18],eax",
            "+mov eax,m4[esp+None*1+0x8]",
            "+mov eax,m4[eax+None*1+0x1c]",
            "+mov m4[esp+None*1+0x10],eax",
            "+mov eax,m4[esp+None*1+0x8]",
            "+mov eax,m4[eax+None*1+0x20]",
            "+mov m4[esp+None*1+0xc],eax",
            "+mov eax,m4[esp+None*1+0x8]",
            "+mov eax,m4[eax+None*1+0x24]",
            "+mov ecx,m4[esp+None*1+0x8]",
            "+mov m4[esp+None*1+0x14],eax",
            "+mov eax,m4[esp+None*1+0x8]",
            " mov ecx,m4[ecx+None*1+0x18]",
            "-mov edx,m4[edx+None*1+0x24]",
            "+mov edx,m4[esp+None*1+0x24]",
            "+mov ebx,m4[eax+None*1+0x0]",
            "+lea edx,m4[edx+edx*2+0x0]",
            "+test ebx,ebx",
            "+jne local:143",
            "+mov eax,m4[esp+None*1+0x18]",
            "+mov m4[esp+None*1+0x1c],ebx",
            "+test eax,eax",
            "+jle local:124",
            "+mov ebp,edx",
            "+mov eax,m4[esp+None*1+0x10]",
            "+mov edx,ecx",
            "+movzx esi,m1[ebp+None*1+palette.c::_modified_rgb_values]",
            "+movzx edi,m1[ebp+None*1+0x6f9ca2]",
            "+xor ebx,ebx",
            "+shl esi,0x10",
            "+mov bl,m1[ebp+None*1+0x6f9ca1]",
            "+sub eax,esi",
            "+shl ebx,0x10",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov eax,m4[esp+None*1+0xc]",
            "+add esi,edx",
            "+mov edx,ecx",
            "+sub eax,ebx",
            "+shl edi,0x10",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov eax,m4[esp+None*1+0x14]",
            "+add ebx,edx",
            "+mov edx,ecx",
            "+sub eax,edi",
            "+add ebp,0x3",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+sar ebx,0x10",
            "+mov eax,esi",
            "+add edi,edx",
            "+mov m1[ebp+None*1+0x6f9c9e],bl",
            "+mov edx,m4[esp+None*1+0x24]",
            " mov ebx,m4[esp+None*1+0x1c]",
            "-mov m4[esp+None*1+0x30],edx",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov esi,m4[esp+None*1+0x1c]",
            "-lea ebx,m4[ebx+ebx*2+0x0]",
            "-mov edi,m4[edx+None*1+0x0]",
            "-shl esi,0x2",
            "-test edi,edi",
            "-jne local:289",
            "-mov eax,m4[esp+None*1+0x4]",
            "-mov m4[esp+None*1+0x18],edi",
            "+mov esi,m4[esp+None*1+0x18]",
            "+sar eax,0x10",
            "+inc edx",
            "+inc ebx",
            "+mov m1[ebp+None*1+0x6f9c9d],al",
            "+mov eax,edi",
            "+mov m4[esp+None*1+0x24],edx",
            "+sar eax,0x10",
            "+mov m4[esp+None*1+0x1c],ebx",
            "+mov m1[ebp+None*1+0x6f9c9f],al",
            "+cmp ebx,esi",
            "+jl local:75",
            "+mov eax,m4[esp+None*1+0x8]",
            "+mov eax,m4[eax+None*1+0x28]",
            "+mov m4[esp+None*1+0x8],eax",
            " test eax,eax",
            "-jle local:215",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-add edx,edx",
            "-mov m4[esp+None*1+0x40],esi",
            "-mov m4[esp+None*1+0x38],edx",
            "-xor edx,edx",
            "-mov dl,m1[ebx+None*1+palette.c::_modified_rgb_values]",
            "-shl edx,0x10",
            "-mov m4[esp+None*1+0x10],edx",
            "-xor edx,edx",
            "-mov dl,m1[ebx+None*1+0x707491]",
            "-shl edx,0x10",
            "-mov edi,m4[esp+None*1+0x10]",
            "-mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[esp+None*1+0x2c]",
            "-sub edx,edi",
            "-mov m4[esp+None*1+0x24],edx",
            "-movzx esi,m1[ebx+None*1+0x707492]",
            "-mov eax,m4[esp+None*1+0x24]",
            "-mov edx,ecx",
            "-mov edi,m4[esp+None*1+0x34]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-sar edx,0x10",
            "-mov eax,m4[esp+None*1+0x14]",
            "-mov m4[esp+None*1+0x4c],edx",
            "-sub edi,eax",
            "-fild m4[esp+None*1+0x4c]",
            "-mov edx,ecx",
            "-fadd m8[None+None*1+palette.c::_tmp_average_rgb_values]",
            "-mov eax,edi",
            "-fstp m8[None+None*1+palette.c::_tmp_average_rgb_values]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-sar edx,0x10",
            "-shl esi,0x10",
            "-mov m4[esp+None*1+0x4c],edx",
            "-mov edx,m4[esp+None*1+0x30]",
            "-sub edx,esi",
            "-fild m4[esp+None*1+0x4c]",
            "-mov m4[esp+None*1+0x20],edx",
            "-fadd m8[None+None*1+0x707c98]",
            "-mov eax,m4[esp+None*1+0x20]",
            "-mov edx,ecx",
            "-fstp m8[None+None*1+0x707c98]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-sar edx,0x10",
            "-mov m4[esp+None*1+0x4c],edx",
            "-mov eax,m4[esp+None*1+0x24]",
            "-fild m4[esp+None*1+0x4c]",
            "-fadd m8[None+None*1+0x707ca0]",
            "-mov edx,ecx",
            "-fstp m8[None+None*1+0x707ca0]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-add m4[esp+None*1+0x10],edx",
            "-mov edx,ecx",
            "-mov eax,edi",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov edi,m4[esp+None*1+0x14]",
            "-mov eax,m4[esp+None*1+0x20]",
            "-add edi,edx",
            "-mov edx,ecx",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-add esi,edx",
            "-mov edx,m4[esp+None*1+0x10]",
            "-sar edx,0x10",
            "-mov m1[ebx+None*1+palette.c::_modified_rgb_values],dl",
            "-mov edx,edi",
            "-sar edx,0x10",
            "-mov m1[ebx+None*1+0x707491],dl",
            "-mov edx,esi",
            "-sar edx,0x10",
            "-mov m1[ebx+None*1+0x707492],dl",
            "-xor edx,edx",
            "-mov dl,m1[ebx+None*1+0x707491]",
            "-mov esi,edx",
            "-xor edx,edx",
            "-mov dl,m1[ebx+None*1+palette.c::_modified_rgb_values]",
            "-shl esi,0x8",
            "-shl edx,0x10",
            "-mov m4[esp+None*1+0x14],edi",
            "-or esi,edx",
            "-xor edx,edx",
            "-mov edi,m4[esp+None*1+0x18]",
            "-mov dl,m1[ebx+None*1+0x707493]",
            "-inc edi",
            "-or edx,esi",
            "-mov esi,m4[esp+None*1+0x40]",
            "-add ebx,0x3",
            "-mov m4[esp+None*1+0x18],edi",
            "-mov m4[esi+None*1+palette.c::_ARGBColour],edx",
            "-mov edx,m4[esp+None*1+0x38]",
            "-xor esi,esi",
            "-lea eax,m4[edx+None*1+0x2]",
            "-mov m2[edx+None*1+palette.c::_RGB16Bit],si",
            "-mov edx,m4[esp+None*1+0x40]",
            "-mov esi,m4[esp+None*1+0x1c]",
            "-mov m4[esp+None*1+0x38],eax",
            "-mov eax,m4[esp+None*1+0x4]",
            "-add edx,0x4",
            "-inc esi",
            "-mov m4[esp+None*1+0x40],edx",
            "-mov m4[esp+None*1+0x1c],esi",
            "-cmp edi,eax",
            "-jl local:99",
            "-mov edx,m4[esp+None*1+0x4]",
            "-test edx,edx",
            "-jle local:233",
            "-mov m4[esp+None*1+0x4c],edx",
            "-fld m8[None+None*1+palette.c::_tmp_average_rgb_values]",
            "-fild m4[esp+None*1+0x4c]",
            "-fld1 ",
            "-fdivrp st(1)",
            "-fxch st(0),st(1)",
            "-fmul st(1)",
            "-fld m8[None+None*1+0x707c98]",
            "-fmul st(2)",
            "-fld m8[None+None*1+0x707ca0]",
            "-fmulp st(3)",
            "-fxch st(0),st(1)",
            "-fstp m8[None+None*1+palette.c::_tmp_average_rgb_values]",
            "-fstp m8[None+None*1+0x707c98]",
            "-fstp m8[None+None*1+0x707ca0]",
            "-fld m8[None+None*1+palette.c::_tmp_average_rgb_values]",
            "-fld m8[None+None*1+0x707c98]",
            "-fld m8[None+None*1+0x707ca0]",
            "-fxch st(0),st(2)",
            "-fadd m8[None+None*1+palette.c::_average_rgb_values]",
            "-fxch st(0),st(1)",
            "-fadd m8[None+None*1+0x707cb0]",
            "-fxch st(0),st(2)",
            "-fadd m8[None+None*1+0x707cb8]",
            "-fxch st(0),st(2)",
            "-fstp m8[None+None*1+0x707cb0]",
            "-fxch st(0),st(1)",
            "-fstp m8[None+None*1+0x707cb8]",
            "-fstp m8[None+None*1+palette.c::_average_rgb_values]",
            "-inc m4[esp+None*1+0x0]",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov edx,m4[edx+None*1+0x28]",
            "-mov m4[esp+None*1+0x28],edx",
            "-test edx,edx",
            "-jne local:64",
            "-mov edx,m4[esp+None*1+0x0]",
            "-test edx,edx",
            "-jle local:271",
            "-mov m4[esp+None*1+0x4c],edx",
            "-fld m8[None+None*1+palette.c::_average_rgb_values]",
            "-fild m4[esp+None*1+0x4c]",
            "-fld1 ",
            "-fdivrp st(1)",
            "-fxch st(0),st(1)",
            "-fmul st(1)",
            "-fld m8[None+None*1+0x707cb0]",
            "-fmul st(2)",
            "-fld m8[None+None*1+0x707cb8]",
            "-fmulp st(3)",
            "-fxch st(0),st(1)",
            "-fstp m8[None+None*1+palette.c::_average_rgb_values]",
            "-fstp m8[None+None*1+0x707cb0]",
            "-fstp m8[None+None*1+0x707cb8]",
            "+jne local:45",
            " mov ebx,0x100",
            " mov eax,palette.c::_modified_rgb_values",
            " xor edx,edx",
            "+xor ebp,ebp",
            " call ddraw.c::set_windows_palette_registers_",
            "-mov ebx,0x100",
            "-mov eax,palette.c::_modified_rgb_values",
            "-xor edx,edx",
            "-xor ecx,ecx",
            "-call fxinit.c::download_rgb_palette_",
            "-mov m4[None+None*1+palette.c::_palette_modified],ecx",
            "-mov esp,ebp",
            "+mov m4[None+None*1+palette.c::_palette_modified],ebp",
            "+pop ebx",
            "+pop edx",
            "+add esp,0x20",
            " pop ebp",
            " pop edi",
            " pop esi",
            "-pop edx",
            " pop ecx",
            "-pop ebx",
            " ret ",
            "+xor esi,esi",
            "+mov edi,m4[esp+None*1+0x18]",
            "+mov m4[esp+None*1+0x20],esi",
            "+test edi,edi",
            "+jle local:124",
            "+mov ebp,edx",
            "+mov edi,0xe147ae1",
            "+mov ecx,0x4b851eb7",
            "+mov edx,0x26666666",
            "+movzx esi,m1[ebp+None*1+0x6f9ca2]",
            " xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov m4[esp+None*1+0x44],eax",
            "-test edx,edx",
            "-jle local:247",
            "-mov m4[esp+None*1+0x48],ebx",
            "-mov m4[esp+None*1+0x3c],esi",
            "-mov ecx,m4[esp+None*1+0x48]",
            "-xor edx,edx",
            "-mov edi,0xe147ae1",
            "-mov dl,m1[ecx+None*1+palette.c::_modified_rgb_values]",
            "-movzx esi,m1[ecx+None*1+0x707492]",
            "-mov m4[esp+None*1+0x10],edx",
            "-xor edx,edx",
            "-mov eax,m4[esp+None*1+0x10]",
            "-mov dl,m1[ecx+None*1+0x707491]",
            "-mov ecx,0x4b851eb7",
            "-mov m4[esp+None*1+0x14],edx",
            "-mov ebx,edx",
            "-mov edx,0x26666666",
            "+xor ebx,ebx",
            "+mov al,m1[ebp+None*1+palette.c::_modified_rgb_values]",
            "+mov bl,m1[ebp+None*1+0x6f9ca1]",
            " imul edx",
            " xchg ebx,eax",
            " xchg edx,ecx",
            "@@ -321,52 +169,34 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[esp+None*1+0x2c]",
            "+mov esi,m4[esp+None*1+0x10]",
            " mov ecx,edx",
            "-test eax,eax",
            "-je local:368",
            "-mov ebx,m4[esp+None*1+0x48]",
            "-mov m1[ebx+None*1+palette.c::_modified_rgb_values],dl",
            "-mov edx,m4[esp+None*1+0x34]",
            "-test edx,edx",
            "-je local:333",
            "-mov edx,ecx",
            "-mov ebx,m4[esp+None*1+0x48]",
            "-mov m1[ebx+None*1+0x707491],dl",
            "-cmp m4[esp+None*1+0x30],0x0",
            "-je local:370",
            "-mov edx,ecx",
            "-mov ecx,m4[esp+None*1+0x48]",
            "-mov m1[ecx+None*1+0x707492],dl",
            "-mov edx,m4[esp+None*1+0x48]",
            "-xor ecx,ecx",
            "-mov ebx,m4[esp+None*1+0x48]",
            "-mov cl,m1[edx+None*1+0x707491]",
            "+test esi,esi",
            "+je local:196",
            "+mov edi,m4[esp+None*1+0xc]",
            "+mov m1[ebp+None*1+palette.c::_modified_rgb_values],dl",
            "+test edi,edi",
            "+je local:198",
            "+mov eax,ecx",
            "+mov m1[ebp+None*1+0x6f9ca1],al",
            "+cmp m4[esp+None*1+0x14],0x0",
            "+je local:200",
            "+mov edx,ecx",
            "+mov ecx,m4[esp+None*1+0x20]",
            "+mov ebx,m4[esp+None*1+0x18]",
            "+mov m1[ebp+None*1+0x6f9ca2],dl",
            "+add ebp,0x3",
            "+mov edx,m4[esp+None*1+0x24]",
            "+inc ecx",
            "+inc edx",
            "+mov m4[esp+None*1+0x20],ecx",
            "+mov m4[esp+None*1+0x24],edx",
            "+cmp ecx,ebx",
            "+jge local:124",
            "+jmp local:149",
            " xor edx,edx",
            "-mov dl,m1[ebx+None*1+palette.c::_modified_rgb_values]",
            "-shl ecx,0x8",
            "-shl edx,0x10",
            "-or ecx,edx",
            "+jmp local:175",
            "+xor eax,eax",
            "+jmp local:180",
            " xor edx,edx",
            "-mov dl,m1[ebx+None*1+0x707492]",
            "-or edx,ecx",
            "-mov ecx,m4[esp+None*1+0x3c]",
            "-mov esi,m4[esp+None*1+0x44]",
            "-mov edi,m4[esp+None*1+0x4]",
            "-mov m4[ecx+None*1+palette.c::_ARGBColour],edx",
            "-lea edx,m4[ecx+None*1+0x4]",
            "-inc esi",
            "-lea ecx,m4[ebx+None*1+0x3]",
            "-mov m4[esp+None*1+0x44],esi",
            "-mov ebx,m4[esp+None*1+0x1c]",
            "-mov m4[esp+None*1+0x3c],edx",
            "-inc ebx",
            "-mov m4[esp+None*1+0x48],ecx",
            "-mov m4[esp+None*1+0x1c],ebx",
            "-cmp esi,edi",
            "-jge local:247",
            "-jmp local:296",
            "-xor edx,edx",
            "-jmp local:327",
            "-xor edx,edx",
            "-jmp local:338",
            "+jmp local:184"
          ]
        },
        {
          "symbol": "payload.c::notify_payload_pod1_menu_",
          "source": "E:\\apache\\source\\menus\\maps\\payload.c",
          "first": "0x42053c",
          "second": "0x4208bc",
          "first_instruction_count": 4,
          "second_instruction_count": 4,
          "diff": [
            "--- 0x42053c",
            "+++ 0x4208bc",
            "@@ -1,4 +1,4 @@",
            " mov eax,m4[edx+None*1+0x4]",
            " mov m4[None+None*1+apweapon.c::_apache_weapons],eax",
            "-mov m4[None+None*1+0x62e570],eax",
            "+mov m4[None+None*1+0x621568],eax",
            " jmp payload.c::update_payload_"
          ]
        },
        {
          "symbol": "payload.c::notify_payload_pod2_menu_",
          "source": "E:\\apache\\source\\menus\\maps\\payload.c",
          "first": "0x420550",
          "second": "0x4208d0",
          "first_instruction_count": 4,
          "second_instruction_count": 4,
          "diff": [
            "--- 0x420550",
            "+++ 0x4208d0",
            "@@ -1,4 +1,4 @@",
            " mov eax,m4[edx+None*1+0x4]",
            "-mov m4[None+None*1+0x62e584],eax",
            "-mov m4[None+None*1+0x62e598],eax",
            "+mov m4[None+None*1+0x62157c],eax",
            "+mov m4[None+None*1+0x621590],eax",
            " jmp payload.c::update_payload_"
          ]
        },
        {
          "symbol": "payload.c::notify_payload_wingtip_menu_",
          "source": "E:\\apache\\source\\menus\\maps\\payload.c",
          "first": "0x420528",
          "second": "0x4208a8",
          "first_instruction_count": 4,
          "second_instruction_count": 4,
          "diff": [
            "--- 0x420528",
            "+++ 0x4208a8",
            "@@ -1,4 +1,4 @@",
            " mov eax,m4[edx+None*1+0x4]",
            "-mov m4[None+None*1+0x62e5ac],eax",
            "-mov m4[None+None*1+0x62e5c0],eax",
            "+mov m4[None+None*1+0x6215a4],eax",
            "+mov m4[None+None*1+0x6215b8],eax",
            " jmp payload.c::update_payload_"
          ]
        },
        {
          "symbol": "payload.c::update_payload_",
          "source": "E:\\apache\\source\\menus\\maps\\payload.c",
          "first": "0x4205dc",
          "second": "0x42095c",
          "first_instruction_count": 207,
          "second_instruction_count": 207,
          "diff": [
            "--- 0x4205dc",
            "+++ 0x42095c",
            "@@ -1,7 +1,7 @@",
            " push edx",
            " call apweapon.c::reinitialise_apache_weapons_",
            " call thread.c::forbid_",
            "-mov eax,m4[None+None*1+0x62e5ac]",
            "+mov eax,m4[None+None*1+0x6215a4]",
            " test eax,eax",
            " jbe local:104",
            " cmp eax,0x6",
            "@@ -16,7 +16,7 @@",
            " mov edx,text:'None'",
            " mov eax,m4[None+None*1+payload.c::_payload_pod1_button]",
            " call utext.c::set_object_text_",
            "-mov eax,m4[None+None*1+0x62e584]",
            "+mov eax,m4[None+None*1+0x62157c]",
            " cmp eax,0x5",
            " ja local:134",
            " jmp m4[None+eax*4+payload.c::notify_payload_pod2_menu_+0x2c]",
            "@@ -83,9 +83,9 @@",
            " mov eax,m4[None+None*1+payload.c::_payload_li_hd]",
            " xor edx,edx",
            " call uoaccess.c::set_object_displayable_",
            "-cmp m4[None+None*1+0x62e5ac],0x6",
            "+cmp m4[None+None*1+0x6215a4],0x6",
            " jne local:158",
            "-mov eax,m4[None+None*1+0x62e584]",
            "+mov eax,m4[None+None*1+0x62157c]",
            " cmp eax,0x5",
            " ja local:97",
            " jmp m4[None+eax*4+payload.c::notify_payload_pod2_menu_+0x44]",
            "@@ -156,7 +156,7 @@",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+payload.c::_payload_lw_st_hr]",
            " jmp local:96",
            "-mov eax,m4[None+None*1+0x62e584]",
            "+mov eax,m4[None+None*1+0x62157c]",
            " cmp eax,0x5",
            " ja local:97",
            " jmp m4[None+eax*4+payload.c::notify_payload_pod2_menu_+0x5c]"
          ]
        },
        {
          "symbol": "polyline.c::draw_poly_line_",
          "source": "E:\\library\\graphics\\polyline.c",
          "first": "0x46f6d0",
          "second": "0x46f350",
          "first_instruction_count": 56,
          "second_instruction_count": 37,
          "diff": [
            "--- 0x46f6d0",
            "+++ 0x46f350",
            "@@ -5,48 +5,9 @@",
            " push ebp",
            " sub esp,0x4",
            " mov m1[esp+None*1+0x0],dl",
            "-mov ebx,eax",
            "-mov ebp,m4[ebx+None*1+0x24]",
            "+mov ebp,m4[eax+None*1+0x24]",
            " test ebp,ebp",
            "-je local:49",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-jne local:24",
            "-mov esi,m4[ebp+None*1+0x10]",
            "-mov edx,m4[ebp+None*1+0xc]",
            "-mov ecx,m4[ebx+None*1+0x10]",
            "-xor eax,eax",
            "-mov edi,m4[ebx+None*1+0xc]",
            "-mov al,m1[esp+None*1+0x0]",
            "-mov ebx,ecx",
            "-mov ecx,edi",
            "-call line.asm::_draw_line",
            "-mov ebx,ebp",
            "-jmp local:8",
            "-push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "-push 0x4",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbLock@24",
            "-mov eax,m4[None+None*1+0x724310]",
            "-mov esi,m4[ebp+None*1+0x10]",
            "-mov edx,m4[ebp+None*1+0xc]",
            "-mov ecx,m4[ebx+None*1+0x10]",
            "-mov edi,m4[ebx+None*1+0xc]",
            "-mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "-mov eax,m4[None+None*1+0x724314]",
            "-mov ebx,ecx",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "-mov ecx,edi",
            "-mov al,m1[esp+None*1+0x0]",
            "-call line.asm::_draw_glide_line",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbUnlock@8",
            "-mov ebx,ebp",
            "-jmp local:8",
            "+jne local:17",
            " add esp,0x4",
            " pop ebp",
            " pop edi",
            "@@ -54,3 +15,23 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "+mov esi,m4[ebp+None*1+0x10]",
            "+mov edx,m4[ebp+None*1+0xc]",
            "+xor ecx,ecx",
            "+mov ebx,m4[eax+None*1+0x10]",
            "+mov cl,m1[esp+None*1+0x0]",
            "+mov edi,m4[eax+None*1+0xc]",
            "+mov eax,ecx",
            "+mov ecx,edi",
            "+call line.asm::_draw_line",
            "+mov eax,ebp",
            "+mov ebp,m4[eax+None*1+0x24]",
            "+test ebp,ebp",
            "+jne local:17",
            "+add esp,0x4",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+pop ebx",
            "+ret "
          ]
        },
        {
          "symbol": "prefscrn.c::do_update_preferences_visual_",
          "source": "E:\\apache\\source\\menus\\prefscrn.c",
          "first": "0x407428",
          "second": "0x4074f8",
          "first_instruction_count": 1,
          "second_instruction_count": 133,
          "diff": [
            "--- 0x407428",
            "+++ 0x4074f8",
            "@@ -1 +1,133 @@",
            "+push ebx",
            "+push ecx",
            "+push edx",
            "+push esi",
            "+push edi",
            "+push ebp",
            "+sub esp,0x68",
            "+mov eax,0x2710",
            "+call thread.c::set_priority_",
            "+mov eax,0x64",
            "+call thread.c::sleep_",
            "+call thread.c::yield_",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual]",
            "+call uoaccess.c::get_object_screen_",
            "+test eax,eax",
            "+jne local:18",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual]",
            "+call object.c::create_screen_for_object_",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual]",
            "+call uoaccess.c::get_object_screen_",
            "+call screen.c::set_active_screen_",
            "+call setmap.c::get_map_",
            "+cmp eax,0x4",
            "+ja local:27",
            "+jmp m4[None+eax*4+prefscrn.c::get_prefs_value_+0x18]",
            "+mov eax,0x2",
            "+call setmap.c::set_map_",
            "+call 3dpal.c::initialise_3d_palette_",
            "+call 3dpal.c::update_3d_palette_",
            "+mov ecx,0x38",
            "+mov esi,gamedata.c::_game_visual_config",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual]",
            "+mov edi,esp",
            "+call uoaccess.c::get_object_screen_",
            "+call screen.c::set_active_screen_",
            "+push edi",
            "+mov eax,ecx",
            "+shr ecx,0x2",
            "+movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            "+mov cl,al",
            "+and cl,0x3",
            "+repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            "+pop edi",
            "+xor ebp,ebp",
            "+mov ecx,0xc0000000",
            "+mov eax,esp",
            "+mov m4[esp+None*1+0x14],ebp",
            "+mov m4[esp+None*1+0x28],ebp",
            "+mov m4[esp+None*1+0x2c],ebp",
            "+mov m4[esp+None*1+0xc],ebp",
            "+mov m4[esp+None*1+0x10],ecx",
            "+call 3dconfig.c::set_3d_visual_configuration_",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual]",
            "+call uoaccess.c::get_object_height_",
            "+lea ecx,m4[eax+None*1+0x1]",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual]",
            "+call uoaccess.c::get_object_width_",
            "+lea ebx,m4[eax+None*1+0x1]",
            "+xor edx,edx",
            "+xor eax,eax",
            "+call 3dcore.c::set_3d_viewport_",
            "+call timer.c::get_delta_ticks_",
            "+lea eax,m4[esp+None*1+0x38]",
            "+mov edx,0x1",
            "+call 3dmain.c::draw_3d_visual_",
            "+call timer.c::get_delta_ticks_",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual_button]",
            "+call uoaccess.c::set_object_displayable_",
            "+mov edx,0x1",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual]",
            "+call uoaccess.c::set_object_displayable_",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual]",
            "+xor edx,edx",
            "+mov edi,0x1",
            "+call repaint.c::repaint_object_",
            "+mov m4[None+None*1+prefscrn.c::_preferences_thread_id],ebp",
            "+mov m4[None+None*1+prefscrn.c::_preferences_visual_running],edi",
            "+add esp,0x68",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            " ret ",
            "+mov eax,0x7ccf476",
            "+mov edx,0x8e82876",
            "+mov ecx,0x3e800",
            "+mov ebx,0xff49f49f",
            "+mov m4[esp+None*1+0x38],eax",
            "+mov m4[esp+None*1+0x3c],edx",
            "+mov m4[esp+None*1+0x40],ecx",
            "+lea ecx,m4[esp+None*1+0x44]",
            "+mov eax,0x1c71c71c",
            "+xor edx,edx",
            "+call matrix.c::get_transformation_matrix_",
            "+jmp local:27",
            "+mov ebx,0x83a3f77",
            "+mov esi,0x6f157fe",
            "+mov edi,0x1f400",
            "+lea ecx,m4[esp+None*1+0x44]",
            "+mov eax,0xe0000000",
            "+xor edx,edx",
            "+mov m4[esp+None*1+0x38],ebx",
            "+mov m4[esp+None*1+0x3c],esi",
            "+mov ebx,0xb60b61",
            "+mov m4[esp+None*1+0x40],edi",
            "+call matrix.c::get_transformation_matrix_",
            "+jmp local:27",
            "+mov esi,0x7312403",
            "+mov edi,0x99cbec7",
            "+mov ebp,0x1f400",
            "+lea ecx,m4[esp+None*1+0x44]",
            "+mov ebx,0xb60b61",
            "+mov eax,0xe0000000",
            "+xor edx,edx",
            "+mov m4[esp+None*1+0x38],esi",
            "+mov m4[esp+None*1+0x3c],edi",
            "+mov m4[esp+None*1+0x40],ebp",
            "+call matrix.c::get_transformation_matrix_",
            "+jmp local:27",
            "+mov edx,0x7b3c8e5",
            "+mov ecx,0x89c0846",
            "+mov ebx,0xc800",
            "+mov eax,0xe0000000",
            "+mov m4[esp+None*1+0x38],edx",
            "+mov m4[esp+None*1+0x3c],ecx",
            "+mov m4[esp+None*1+0x40],ebx",
            "+lea ecx,m4[esp+None*1+0x44]",
            "+mov ebx,0xb60b61",
            "+xor edx,edx",
            "+call matrix.c::get_transformation_matrix_",
            "+jmp local:27"
          ]
        },
        {
          "symbol": "prefscrn.c::get_prefs_value_",
          "source": "E:\\apache\\source\\menus\\prefscrn.c",
          "first": "0x407410",
          "second": "0x4074cc",
          "first_instruction_count": 10,
          "second_instruction_count": 11,
          "diff": [
            "--- 0x407410",
            "+++ 0x4074cc",
            "@@ -8,3 +8,4 @@",
            " ret ",
            " add eax,0x7fffffff",
            " neg eax",
            "+ret "
          ]
        },
        {
          "symbol": "prefscrn.c::initialise_preferences_screen_",
          "source": "E:\\apache\\source\\menus\\prefscrn.c",
          "first": "0x406480",
          "second": "0x406370",
          "first_instruction_count": 862,
          "second_instruction_count": 1005,
          "diff": [
            "--- 0x406480",
            "+++ 0x406370",
            "@@ -11,7 +11,7 @@",
            " push 0x22",
            " push prefscrn.c::notify_preferences_screen_",
            " push 0x21",
            "-push text:'menuscrn\\\\3dfxpref.lbm'",
            "+push text:'menuscrn\\\\winprefs.lbm'",
            " push 0x3b",
            " push 0x7",
            " push 0x0",
            "@@ -23,6 +23,151 @@",
            " call object.c::create_object_",
            " add esp,0x3c",
            " push 0x0",
            "+push 0x0",
            "+push 0x11",
            "+push prefscrn.c::notify_preferences_visual_button_",
            "+push 0x21",
            "+push 0xd",
            "+push 0x22",
            "+push 0xf0",
            "+push 0x136",
            "+push 0x17",
            "+push 0x13",
            "+push 0x1",
            "+push text:'Visual Button'",
            "+push eax",
            "+push 0x9",
            "+mov m4[None+None*1+prefscrn.c::_preferences_screen],eax",
            "+call object.c::create_object_",
            "+add esp,0x3c",
            "+push 0x0",
            "+push 0x0",
            "+push 0x11",
            "+push 0x6",
            "+push text:'Preferences Visual'",
            "+push eax",
            "+push 0x5",
            "+mov m4[None+None*1+prefscrn.c::_preferences_visual_button],eax",
            "+call object.c::create_object_",
            "+add esp,0x1c",
            "+push 0x0",
            "+push 0x1",
            "+push 0x18",
            "+push 0x0",
            "+push 0x11",
            "+push 0x10f",
            "+push 0x136",
            "+push 0xfa",
            "+push 0x14",
            "+push 0x1",
            "+push text:'Visual Detail Area'",
            "+mov ecx,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "+push ecx",
            "+push 0x0",
            "+mov m4[None+None*1+prefscrn.c::_preferences_visual],eax",
            "+call object.c::create_object_",
            "+add esp,0x34",
            "+mov ebx,0x8",
            "+mov edx,text:'Vis detail title'",
            "+push text:'Visual Detail'",
            "+mov ecx,0x3",
            "+mov m4[None+None*1+prefscrn.c::_preferences_visual_detail_area],eax",
            "+call prefscrn.c::create_text_",
            "+push 0x0",
            "+push 0xe",
            "+push 0x23",
            "+push 0xd",
            "+push 0x22",
            "+push prefscrn.c::notify_preferences_visual_detail_bar_",
            "+push 0x21",
            "+push 0xa",
            "+push 0x0",
            "+push 0xb",
            "+push 0x63",
            "+push 0x0",
            "+push 0xa",
            "+push 0x12",
            "+push 0x11f",
            "+push 0x3",
            "+push 0x5c",
            "+push 0x1",
            "+push text:'Visual Detail Bar'",
            "+mov ebx,m4[None+None*1+prefscrn.c::_preferences_visual_detail_area]",
            "+push ebx",
            "+push 0xe",
            "+call object.c::create_object_",
            "+add esp,0x54",
            "+push 0x0",
            "+push 0x1",
            "+push 0x18",
            "+push 0x0",
            "+push 0x11",
            "+push 0x12e",
            "+push 0x136",
            "+push 0x119",
            "+push 0x14",
            "+push 0x1",
            "+push text:'Visual Res Area'",
            "+mov esi,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "+push esi",
            "+push 0x0",
            "+mov m4[None+None*1+prefscrn.c::_preferences_visual_detail_bar],eax",
            "+call object.c::create_object_",
            "+add esp,0x34",
            "+mov ecx,0x3",
            "+mov edx,text:'Vis res title'",
            "+push text:'Screen Mode'",
            "+mov ebx,0x8",
            "+mov m4[None+None*1+prefscrn.c::_preferences_visual_resolution_area],eax",
            "+call prefscrn.c::create_text_",
            "+push 0x0",
            "+push prefscrn.c::notify_preferences_visual_resolution_button_",
            "+push 0x21",
            "+push 0xd",
            "+push 0x22",
            "+push 0x0",
            "+push 0xf",
            "+push text:'320x240'",
            "+push 0x29",
            "+mov edi,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push edi",
            "+push 0x28",
            "+push 0x12",
            "+push 0xdd",
            "+push 0x3",
            "+push 0x9e",
            "+push 0x1",
            "+push text:'Visual 320'",
            "+mov ebp,m4[None+None*1+prefscrn.c::_preferences_visual_resolution_area]",
            "+push ebp",
            "+push 0xa",
            "+call object.c::create_object_",
            "+add esp,0x4c",
            "+mov m4[None+None*1+prefscrn.c::_preferences_visual_320_button],eax",
            "+push 0x0",
            "+push prefscrn.c::notify_preferences_visual_resolution_button_",
            "+push 0x21",
            "+push 0xd",
            "+push 0x22",
            "+push 0x1",
            "+push 0xf",
            "+push text:'640x480'",
            "+push 0x29",
            "+mov eax,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push eax",
            "+push 0x28",
            "+push 0x12",
            "+push 0x11f",
            "+push 0x3",
            "+push 0xe0",
            "+push 0x1",
            "+push text:'Visual 640'",
            "+mov edx,m4[None+None*1+prefscrn.c::_preferences_visual_resolution_area]",
            "+push edx",
            "+push 0xa",
            "+call object.c::create_object_",
            "+add esp,0x4c",
            "+push 0x0",
            " push 0x1",
            " push 0x18",
            " push 0x0",
            "@@ -33,15 +178,16 @@",
            " push 0x14",
            " push 0x1",
            " push text:'Model Area'",
            "-push eax",
            "-push 0x0",
            "-mov m4[None+None*1+prefscrn.c::_preferences_screen],eax",
            "+mov ecx,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "+push ecx",
            "+push 0x0",
            "+mov m4[None+None*1+prefscrn.c::_preferences_visual_640_button],eax",
            " call object.c::create_object_",
            " add esp,0x34",
            "+mov ebx,0x8",
            "+mov edx,text:'Flight model area'",
            "+push text:'Flight Model'",
            " mov ecx,0x3",
            "-mov ebx,0x8",
            "-push text:'Flight Model'",
            "-mov edx,text:'Flight model area'",
            " mov m4[None+None*1+prefscrn.c::_preferences_model_area],eax",
            " call prefscrn.c::create_text_",
            " push 0x0",
            "@@ -51,8 +197,8 @@",
            " push 0x22",
            " push text:'Arcade'",
            " push 0x29",
            "-mov ecx,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push ecx",
            "+mov ebx,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push ebx",
            " push 0x28",
            " push 0x12",
            " push 0xdd",
            "@@ -60,11 +206,12 @@",
            " push 0x9e",
            " push 0x1",
            " push text:'Arcade'",
            "-mov ebx,m4[None+None*1+prefscrn.c::_preferences_model_area]",
            "-push ebx",
            "-push 0xa",
            "-call object.c::create_object_",
            "-add esp,0x44",
            "+mov esi,m4[None+None*1+prefscrn.c::_preferences_model_area]",
            "+push esi",
            "+push 0xa",
            "+call object.c::create_object_",
            "+add esp,0x44",
            "+mov m4[None+None*1+prefscrn.c::_preferences_arcade_button],eax",
            " push 0x0",
            " push prefscrn.c::notify_preferences_realistic_button_",
            " push 0x21",
            "@@ -72,8 +219,8 @@",
            " push 0x22",
            " push text:'Realistic'",
            " push 0x29",
            "-mov esi,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push esi",
            "+mov edi,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push edi",
            " push 0x28",
            " push 0x12",
            " push 0x11f",
            "@@ -81,13 +228,11 @@",
            " push 0xe0",
            " push 0x1",
            " push text:'Realistic'",
            "-mov edi,m4[None+None*1+prefscrn.c::_preferences_model_area]",
            "-push edi",
            "-push 0xa",
            "-mov m4[None+None*1+prefscrn.c::_preferences_arcade_button],eax",
            "-call object.c::create_object_",
            "-add esp,0x44",
            "-mov m4[None+None*1+prefscrn.c::_preferences_realistic_button],eax",
            "+mov ebp,m4[None+None*1+prefscrn.c::_preferences_model_area]",
            "+push ebp",
            "+push 0xa",
            "+call object.c::create_object_",
            "+add esp,0x44",
            " push 0x0",
            " push 0x1",
            " push 0x18",
            "@@ -99,8 +244,9 @@",
            " push 0x14",
            " push 0x1",
            " push text:'Enemy buttons'",
            "-mov ebp,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "-push ebp",
            "+mov m4[None+None*1+prefscrn.c::_preferences_realistic_button],eax",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "+push eax",
            " push 0x0",
            " call object.c::create_object_",
            " add esp,0x34",
            "@@ -129,11 +275,12 @@",
            " push 0x5c",
            " push 0x1",
            " push text:'Forces bar'",
            "-mov eax,m4[None+None*1+prefscrn.c::_preferences_forces_area]",
            "-push eax",
            "+mov edx,m4[None+None*1+prefscrn.c::_preferences_forces_area]",
            "+push edx",
            " push 0xe",
            " call object.c::create_object_",
            " add esp,0x54",
            "+mov m4[None+None*1+prefscrn.c::_preferences_forces_slider_bar],eax",
            " push 0x0",
            " push 0x1",
            " push 0x18",
            "@@ -145,61 +292,61 @@",
            " push 0x14",
            " push 0x1",
            " push text:'Mission Planner Area'",
            "-mov edx,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "-push edx",
            "-push 0x0",
            "-mov m4[None+None*1+prefscrn.c::_preferences_forces_slider_bar],eax",
            "+mov ecx,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "+push ecx",
            "+push 0x0",
            " call object.c::create_object_",
            " add esp,0x34",
            "+mov ebx,0x8",
            "+mov edx,text:'Mission planner title'",
            "+push text:'Mission Planner'",
            " mov ecx,0x3",
            "-mov ebx,0x8",
            "+mov m4[None+None*1+prefscrn.c::_preferences_mission_planner_area],eax",
            "+call prefscrn.c::create_text_",
            "+push 0x0",
            "+push prefscrn.c::notify_preferences_mission_planner_disabled_button_",
            "+push 0x21",
            "+push 0xd",
            "+push 0x22",
            "+push text:'Disabled'",
            "+push 0x29",
            "+mov ebx,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push ebx",
            "+push 0x28",
            "+push 0x12",
            "+push 0xdd",
            "+push 0x3",
            "+push 0x9e",
            "+push 0x1",
            " push text:'Mission Planner'",
            "-mov edx,text:'Mission planner title'",
            "-mov m4[None+None*1+prefscrn.c::_preferences_mission_planner_area],eax",
            "-call prefscrn.c::create_text_",
            "-push 0x0",
            "-push prefscrn.c::notify_preferences_mission_planner_disabled_button_",
            "-push 0x21",
            "-push 0xd",
            "-push 0x22",
            "-push text:'Disabled'",
            "-push 0x29",
            "-mov ecx,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push ecx",
            "-push 0x28",
            "-push 0x12",
            "-push 0xdd",
            "-push 0x3",
            "-push 0x9e",
            "+mov esi,m4[None+None*1+prefscrn.c::_preferences_mission_planner_area]",
            "+push esi",
            "+push 0xa",
            "+call object.c::create_object_",
            "+add esp,0x44",
            "+push 0x0",
            "+push prefscrn.c::notify_preferences_mission_planner_enabled_button_",
            "+push 0x21",
            "+push 0xd",
            "+push 0x22",
            "+push text:'Enabled'",
            "+push 0x29",
            "+mov edi,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push edi",
            "+push 0x28",
            "+push 0x12",
            "+push 0x11f",
            "+push 0x3",
            "+push 0xe0",
            " push 0x1",
            " push text:'Mission Planner'",
            "-mov ebx,m4[None+None*1+prefscrn.c::_preferences_mission_planner_area]",
            "-push ebx",
            "-push 0xa",
            "-call object.c::create_object_",
            "-add esp,0x44",
            "-push 0x0",
            "-push prefscrn.c::notify_preferences_mission_planner_enabled_button_",
            "-push 0x21",
            "-push 0xd",
            "-push 0x22",
            "-push text:'Enabled'",
            "-push 0x29",
            "-mov esi,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push esi",
            "-push 0x28",
            "-push 0x12",
            "-push 0x11f",
            "-push 0x3",
            "-push 0xe0",
            "-push 0x1",
            "-push text:'Mission Planner'",
            "-mov edi,m4[None+None*1+prefscrn.c::_preferences_mission_planner_area]",
            "-push edi",
            "+mov ebp,m4[None+None*1+prefscrn.c::_preferences_mission_planner_area]",
            "+push ebp",
            " push 0xa",
            " mov m4[None+None*1+prefscrn.c::_preferences_mission_planner_disabled_button],eax",
            " call object.c::create_object_",
            " add esp,0x44",
            "+mov m4[None+None*1+prefscrn.c::_preferences_mission_planner_enabled_button],eax",
            " push 0x0",
            " push 0x1",
            " push 0x18",
            "@@ -211,16 +358,15 @@",
            " push 0x14",
            " push 0x1",
            " push text:'Preferences Animation Area'",
            "-mov ebp,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "-push ebp",
            "-push 0x0",
            "-mov m4[None+None*1+prefscrn.c::_preferences_mission_planner_enabled_button],eax",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "+push eax",
            "+push 0x0",
            " call object.c::create_object_",
            " add esp,0x34",
            "+mov ecx,0x3",
            "+mov ebx,0x8",
            "+push text:'Animations'",
            " mov edx,text:'Animations title'",
            "-mov ecx,0x3",
            "-push text:'Animations'",
            "-mov ebx,0x8",
            " mov m4[None+None*1+prefscrn.c::_preferences_animation_area],eax",
            " call prefscrn.c::create_text_",
            " push 0x0",
            "@@ -230,8 +376,8 @@",
            " push 0x22",
            " push text:'Disabled'",
            " push 0x29",
            "-mov eax,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push eax",
            "+mov edx,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push edx",
            " push 0x28",
            " push 0x12",
            " push 0xdd",
            "@@ -239,8 +385,8 @@",
            " push 0x9e",
            " push 0x1",
            " push text:'Animation'",
            "-mov edx,m4[None+None*1+prefscrn.c::_preferences_animation_area]",
            "-push edx",
            "+mov ecx,m4[None+None*1+prefscrn.c::_preferences_animation_area]",
            "+push ecx",
            " push 0xa",
            " call object.c::create_object_",
            " add esp,0x44",
            "@@ -251,8 +397,8 @@",
            " push 0x22",
            " push text:'Enabled'",
            " push 0x29",
            "-mov ecx,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push ecx",
            "+mov ebx,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push ebx",
            " push 0x28",
            " push 0x12",
            " push 0x11f",
            "@@ -260,12 +406,13 @@",
            " push 0xe0",
            " push 0x1",
            " push text:'Animation'",
            "-mov ebx,m4[None+None*1+prefscrn.c::_preferences_animation_area]",
            "-push ebx",
            "+mov esi,m4[None+None*1+prefscrn.c::_preferences_animation_area]",
            "+push esi",
            " push 0xa",
            " mov m4[None+None*1+prefscrn.c::_preferences_animations_disabled_button],eax",
            " call object.c::create_object_",
            " add esp,0x44",
            "+mov m4[None+None*1+prefscrn.c::_preferences_animations_enabled_button],eax",
            " push 0x0",
            " push 0x1",
            " push 0x18",
            "@@ -277,16 +424,15 @@",
            " push 0x14a",
            " push 0x1",
            " push text:'Preferences sound Area'",
            "-mov esi,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "-push esi",
            "-push 0x0",
            "-mov m4[None+None*1+prefscrn.c::_preferences_animations_enabled_button],eax",
            "+mov edi,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "+push edi",
            "+push 0x0",
            " call object.c::create_object_",
            " add esp,0x34",
            "+mov ecx,0x3",
            "+mov ebx,0x8",
            "+push text:'Sound'",
            " mov edx,text:'Sound title'",
            "-mov ecx,0x3",
            "-push text:'Sound'",
            "-mov ebx,0x8",
            " mov m4[None+None*1+prefscrn.c::_preferences_sound_area],eax",
            " call prefscrn.c::create_text_",
            " push 0x0",
            "@@ -296,8 +442,8 @@",
            " push 0x22",
            " push text:'Speech'",
            " push 0x29",
            "-mov edi,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push edi",
            "+mov ebp,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push ebp",
            " push 0x28",
            " push 0x12",
            " push 0xdd",
            "@@ -305,8 +451,8 @@",
            " push 0x9e",
            " push 0x1",
            " push text:'Sound speech'",
            "-mov ebp,m4[None+None*1+prefscrn.c::_preferences_sound_area]",
            "-push ebp",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_sound_area]",
            "+push eax",
            " push 0x3",
            " call object.c::create_object_",
            " add esp,0x44",
            "@@ -317,21 +463,22 @@",
            " push 0x22",
            " push text:'Music'",
            " push 0x29",
            "+mov edx,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push edx",
            "+push 0x28",
            "+push 0x12",
            "+push 0x11f",
            "+push 0x3",
            "+push 0xe0",
            "+push 0x1",
            "+push text:'Sound effects'",
            "+mov ecx,m4[None+None*1+prefscrn.c::_preferences_sound_area]",
            "+push ecx",
            "+push 0x3",
            " mov m4[None+None*1+prefscrn.c::_preferences_sound_speech_button],eax",
            "-mov eax,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push eax",
            "-push 0x28",
            "-push 0x12",
            "-push 0x11f",
            "-push 0x3",
            "-push 0xe0",
            "-push 0x1",
            "-push text:'Sound effects'",
            "-mov edx,m4[None+None*1+prefscrn.c::_preferences_sound_area]",
            "-push edx",
            "-push 0x3",
            "-call object.c::create_object_",
            "-add esp,0x44",
            "+call object.c::create_object_",
            "+add esp,0x44",
            "+mov m4[None+None*1+prefscrn.c::_preferences_sound_music_button],eax",
            " push 0x0",
            " push 0x1",
            " push 0x18",
            "@@ -343,16 +490,15 @@",
            " push 0x14a",
            " push 0x1",
            " push text:'Preferences effects area'",
            "-mov ecx,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "-push ecx",
            "-push 0x0",
            "-mov m4[None+None*1+prefscrn.c::_preferences_sound_music_button],eax",
            "+mov ebx,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "+push ebx",
            "+push 0x0",
            " call object.c::create_object_",
            " add esp,0x34",
            "-mov ebx,0x8",
            "+mov ecx,0x3",
            " mov edx,text:'Sound title'",
            " push text:'Effects'",
            "-mov ecx,0x3",
            "+mov ebx,0x8",
            " mov m4[None+None*1+prefscrn.c::_preferences_effects_area],eax",
            " call prefscrn.c::create_text_",
            " push 0x0",
            "@@ -362,8 +508,8 @@",
            " push 0x22",
            " push text:'Off'",
            " push 0x29",
            "-mov ebx,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push ebx",
            "+mov esi,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push esi",
            " push 0x28",
            " push 0x12",
            " push 0x9b",
            "@@ -371,8 +517,8 @@",
            " push 0x5c",
            " push 0x1",
            " push text:'Sound music'",
            "-mov esi,m4[None+None*1+prefscrn.c::_preferences_effects_area]",
            "-push esi",
            "+mov edi,m4[None+None*1+prefscrn.c::_preferences_effects_area]",
            "+push edi",
            " push 0x9",
            " call object.c::create_object_",
            " add esp,0x44",
            "@@ -383,8 +529,8 @@",
            " push 0x22",
            " push text:'Minimal'",
            " push 0x29",
            "-mov edi,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push edi",
            "+mov ebp,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push ebp",
            " push 0x28",
            " push 0x12",
            " push 0xdd",
            "@@ -392,12 +538,13 @@",
            " push 0x9e",
            " push 0x1",
            " push text:'Sound music'",
            "-mov ebp,m4[None+None*1+prefscrn.c::_preferences_effects_area]",
            "-push ebp",
            "+mov m4[None+None*1+prefscrn.c::_preferences_sound_effects_off_button],eax",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_effects_area]",
            "+push eax",
            " push 0x9",
            "-mov m4[None+None*1+prefscrn.c::_preferences_sound_effects_off_button],eax",
            "-call object.c::create_object_",
            "-add esp,0x44",
            "+call object.c::create_object_",
            "+add esp,0x44",
            "+mov m4[None+None*1+prefscrn.c::_preferences_sound_effects_min_button],eax",
            " push 0x0",
            " push prefscrn.c::notify_preferences_sound_effects_full_button_",
            " push 0x21",
            "@@ -405,9 +552,8 @@",
            " push 0x22",
            " push text:'Full'",
            " push 0x29",
            "-mov m4[None+None*1+prefscrn.c::_preferences_sound_effects_min_button],eax",
            "-mov eax,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push eax",
            "+mov edx,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push edx",
            " push 0x28",
            " push 0x12",
            " push 0x11f",
            "@@ -415,8 +561,8 @@",
            " push 0xe0",
            " push 0x1",
            " push text:'Sound music'",
            "-mov edx,m4[None+None*1+prefscrn.c::_preferences_effects_area]",
            "-push edx",
            "+mov ecx,m4[None+None*1+prefscrn.c::_preferences_effects_area]",
            "+push ecx",
            " push 0x9",
            " call object.c::create_object_",
            " add esp,0x44",
            "@@ -431,17 +577,17 @@",
            " push 0x14a",
            " push 0x1",
            " push text:'Preferences volume Area'",
            "-mov ecx,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "-push ecx",
            "+mov ebx,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "+push ebx",
            " push 0x0",
            " mov m4[None+None*1+prefscrn.c::_preferences_sound_effects_full_button],eax",
            " call object.c::create_object_",
            " add esp,0x34",
            "+mov edx,text:'volume title'",
            "+mov ecx,0x3",
            "+push text:'Volume'",
            "+mov ebx,0x8",
            " mov m4[None+None*1+prefscrn.c::_preferences_volume_area],eax",
            "-push text:'Volume'",
            "-mov ecx,0x3",
            "-mov ebx,0x8",
            "-mov edx,text:'volume title'",
            " call prefscrn.c::create_text_",
            " push 0x0",
            " push 0xe",
            "@@ -462,11 +608,12 @@",
            " push 0x64",
            " push 0x1",
            " push text:'Volume Bar'",
            "-mov ebx,m4[None+None*1+prefscrn.c::_preferences_volume_area]",
            "-push ebx",
            "+mov esi,m4[None+None*1+prefscrn.c::_preferences_volume_area]",
            "+push esi",
            " push 0xe",
            " call object.c::create_object_",
            " add esp,0x54",
            "+mov m4[None+None*1+prefscrn.c::_preferences_volume_bar],eax",
            " push 0x0",
            " push 0x1",
            " push 0x18",
            "@@ -478,16 +625,15 @@",
            " push 0x14a",
            " push 0x1",
            " push text:'Preferences controls Area'",
            "-mov esi,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "-push esi",
            "-push 0x0",
            "-mov m4[None+None*1+prefscrn.c::_preferences_volume_bar],eax",
            "+mov edi,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "+push edi",
            "+push 0x0",
            " call object.c::create_object_",
            " add esp,0x34",
            " mov ecx,0x3",
            "+mov ebx,0x8",
            "+push text:'Controls'",
            " mov edx,text:'controls title'",
            "-push text:'Controls'",
            "-mov ebx,0x8",
            " mov m4[None+None*1+prefscrn.c::_preferences_controls_area],eax",
            " call prefscrn.c::create_text_",
            " push text:'Collective'",
            "@@ -517,8 +663,8 @@",
            " push 0x1a",
            " push text:'Keyboard'",
            " push 0x29",
            "-mov edi,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push edi",
            "+mov ebp,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push ebp",
            " push 0x28",
            " push 0x12",
            " push 0x11f",
            "@@ -526,11 +672,12 @@",
            " push 0x7f",
            " push 0x1",
            " push text:'Collective'",
            "-mov ebp,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "-push ebp",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "+push eax",
            " push 0x9",
            " call object.c::create_object_",
            " add esp,0x4c",
            "+mov m4[None+None*1+prefscrn.c::_preferences_collective_button],eax",
            " push 0x0",
            " push prefscrn.c::notify_preferences_tailrotor_button_",
            " push 0x21",
            "@@ -540,9 +687,8 @@",
            " push 0x1a",
            " push text:'Keyboard'",
            " push 0x29",
            "-mov m4[None+None*1+prefscrn.c::_preferences_collective_button],eax",
            "-mov eax,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push eax",
            "+mov edx,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push edx",
            " push 0x28",
            " push 0x24",
            " push 0x11f",
            "@@ -550,12 +696,11 @@",
            " push 0x7f",
            " push 0x1",
            " push text:'Tailrotor'",
            "-mov edx,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "-push edx",
            "+mov ecx,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "+push ecx",
            " push 0x9",
            " call object.c::create_object_",
            " add esp,0x4c",
            "-mov m4[None+None*1+prefscrn.c::_preferences_tailrotor_button],eax",
            " push 0x0",
            " push prefscrn.c::notify_preferences_cyclic_button_",
            " push 0x21",
            "@@ -565,8 +710,8 @@",
            " push 0x1a",
            " push text:'Keyboard'",
            " push 0x29",
            "-mov ecx,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push ecx",
            "+mov ebx,m4[None+None*1+fonts.c::_menu_11x15]",
            "+push ebx",
            " push 0x28",
            " push 0x36",
            " push 0x11f",
            "@@ -574,15 +719,16 @@",
            " push 0x7f",
            " push 0x1",
            " push text:'Cyclic'",
            "-mov ebx,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "-push ebx",
            "+mov esi,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "+push esi",
            " push 0x9",
            "-call object.c::create_object_",
            "-mov esi,m4[None+None*1+prefscrn.c::_prefs_sprite_area]",
            "+mov m4[None+None*1+prefscrn.c::_preferences_tailrotor_button],eax",
            "+call object.c::create_object_",
            "+mov edi,m4[None+None*1+prefscrn.c::_prefs_sprite_area]",
            " add esp,0x4c",
            " mov m4[None+None*1+prefscrn.c::_preferences_cyclic_button],eax",
            "-test esi,esi",
            "-je local:723",
            "+test edi,edi",
            "+je local:869",
            " push 0x0",
            " push prefscrn.c::_coolie_b",
            " push 0x3c",
            "@@ -592,8 +738,8 @@",
            " push 0xe4",
            " push 0x1",
            " push text:'Coolie B sprite'",
            "-mov edx,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "-push edx",
            "+mov ecx,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "+push ecx",
            " push 0x11",
            " call object.c::create_object_",
            " add esp,0x2c",
            "@@ -606,8 +752,8 @@",
            " push 0xe4",
            " push 0x1",
            " push text:'Coolie T sprite'",
            "-mov ecx,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "-push ecx",
            "+mov ebx,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "+push ebx",
            " push 0x11",
            " mov m4[None+None*1+prefscrn.c::_preferences_coolie_b_sprite],eax",
            " call object.c::create_object_",
            "@@ -621,8 +767,8 @@",
            " push 0xce",
            " push 0x1",
            " push text:'Coolie L sprite'",
            "-mov ebx,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "-push ebx",
            "+mov esi,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "+push esi",
            " push 0x11",
            " mov m4[None+None*1+prefscrn.c::_preferences_coolie_t_sprite],eax",
            " call object.c::create_object_",
            "@@ -636,8 +782,8 @@",
            " push 0x101",
            " push 0x1",
            " push text:'Coolie R sprite'",
            "-mov esi,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "-push esi",
            "+mov edi,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "+push edi",
            " push 0x11",
            " mov m4[None+None*1+prefscrn.c::_preferences_coolie_l_sprite],eax",
            " call object.c::create_object_",
            "@@ -651,8 +797,8 @@",
            " push 0xe8",
            " push 0x1",
            " push text:'Coolie C sprite'",
            "-mov edi,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "-push edi",
            "+mov ebp,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "+push ebp",
            " push 0x11",
            " mov m4[None+None*1+prefscrn.c::_preferences_coolie_r_sprite],eax",
            " call object.c::create_object_",
            "@@ -667,8 +813,8 @@",
            " push 0x8d",
            " push 0x1",
            " push text:'Cyclic sprite'",
            "-mov ebp,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "-push ebp",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "+push eax",
            " push 0x11",
            " call object.c::create_object_",
            " add esp,0x2c",
            "@@ -681,10 +827,10 @@",
            " push 0x31",
            " push 0x1",
            " push text:'Throttle hz sprite'",
            "+mov edx,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "+push edx",
            "+push 0x11",
            " mov m4[None+None*1+prefscrn.c::_preferences_cyclic_sprite],eax",
            "-mov eax,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "-push eax",
            "-push 0x11",
            " call object.c::create_object_",
            " add esp,0x2c",
            " push 0x0",
            "@@ -696,19 +842,19 @@",
            " push 0xd",
            " push 0x1",
            " push text:'Throttle vt sprite'",
            "-mov edx,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "-push edx",
            "+mov ecx,m4[None+None*1+prefscrn.c::_preferences_controls_area]",
            "+push ecx",
            " mov ebx,prefscrn.c::_pref_joy_ay",
            " push 0x11",
            "+mov edx,0x2",
            " mov m4[None+None*1+prefscrn.c::_preferences_throttle_hz_sprite],eax",
            "-mov edx,0x2",
            " call object.c::create_object_",
            " add esp,0x2c",
            " mov m4[None+None*1+prefscrn.c::_preferences_throttle_vt_sprite],eax",
            " mov eax,text:'Joystick AY'",
            " call monitor.c::add_monitor_",
            " cmp m4[None+None*1+net.c::_network],0x0",
            "-jne local:839",
            "+jne local:982",
            " mov edx,text:'Preferences Exit'",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_screen]",
            " call objects.c::create_exit_button_",
            "@@ -726,126 +872,123 @@",
            " mov eax,0xf00",
            " mov ecx,0x8",
            " call memory.c::mem_malloc_",
            "-push esi",
            "+push edi",
            " mov ebx,0x10",
            " mov m4[None+None*1+prefscrn.c::_prefs_sprite_area],eax",
            "-push esi",
            "+push edi",
            " mov edx,eax",
            " mov eax,text:'menuscrn\\\\coolie-b.bbm'",
            " call loadgfx.c::load_graphics_",
            " mov ecx,0x8",
            "-push esi",
            "+push edi",
            " mov ebx,0x10",
            " mov edx,m4[None+None*1+prefscrn.c::_prefs_sprite_area]",
            "-push esi",
            "+push edi",
            " mov eax,text:'menuscrn\\\\coolie-t.bbm'",
            " add edx,0x80",
            " call loadgfx.c::load_graphics_",
            " mov ecx,0x10",
            "-push esi",
            "+push edi",
            " mov ebx,0x8",
            " mov edx,m4[None+None*1+prefscrn.c::_prefs_sprite_area]",
            "-push esi",
            "+push edi",
            " mov eax,text:'menuscrn\\\\coolie-l.bbm'",
            " add edx,0x100",
            " call loadgfx.c::load_graphics_",
            " mov ecx,0x10",
            "-push esi",
            "+push edi",
            " mov ebx,0x8",
            " mov edx,m4[None+None*1+prefscrn.c::_prefs_sprite_area]",
            "-push esi",
            "+push edi",
            " mov eax,text:'menuscrn\\\\coolie-r.bbm'",
            " add edx,0x180",
            " call loadgfx.c::load_graphics_",
            " mov ecx,0x8",
            "-push esi",
            "+push edi",
            " mov eax,text:'menuscrn\\\\coolie-c.bbm'",
            " mov edx,m4[None+None*1+prefscrn.c::_prefs_sprite_area]",
            "-push esi",
            "+push edi",
            " add edx,0x200",
            " mov ebx,ecx",
            " call loadgfx.c::load_graphics_",
            " mov ecx,0x8",
            " mov ebx,0x10",
            "-push esi",
            "+push edi",
            " mov eax,text:'menuscrn\\\\throt-hz.bbm'",
            " mov edx,m4[None+None*1+prefscrn.c::_prefs_sprite_area]",
            "-push esi",
            "+push edi",
            " add edx,0x300",
            "-mov edi,0x10",
            "+mov ebp,0x10",
            " call loadgfx.c::load_graphics_",
            " mov ecx,0x12",
            " mov ebx,0x8",
            "-push esi",
            "+push edi",
            " mov eax,text:'menuscrn\\\\throt-vt.bbm'",
            " mov edx,m4[None+None*1+prefscrn.c::_prefs_sprite_area]",
            "+push edi",
            "+add edx,0x400",
            "+mov esi,0x8",
            "+call loadgfx.c::load_graphics_",
            "+mov ecx,0xf",
            "+mov eax,m4[None+None*1+prefscrn.c::_prefs_sprite_area]",
            "+mov m4[None+None*1+prefscrn.c::_coolie_b],ebp",
            "+mov m4[None+None*1+0x50b23c],edi",
            "+mov m4[None+None*1+0x50b240],edi",
            "+mov m4[None+None*1+prefscrn.c::_coolie_t],ebp",
            "+mov m4[None+None*1+0x50b2a0],esi",
            "+mov m4[None+None*1+0x50b2a4],edi",
            "+mov m4[None+None*1+0x50b2a8],edi",
            "+mov m4[None+None*1+prefscrn.c::_coolie_l],esi",
            "+mov m4[None+None*1+0x50b278],edi",
            "+mov m4[None+None*1+0x50b27c],edi",
            "+mov m4[None+None*1+prefscrn.c::_coolie_r],esi",
            "+mov m4[None+None*1+0x50b28c],edi",
            "+mov m4[None+None*1+0x50b290],edi",
            "+mov m4[None+None*1+prefscrn.c::_coolie_c],esi",
            "+mov m4[None+None*1+0x50b250],edi",
            "+mov m4[None+None*1+0x50b254],edi",
            "+mov m4[None+None*1+prefscrn.c::_throttle_hz],ebp",
            "+mov m4[None+None*1+0x50b264],edi",
            "+mov m4[None+None*1+0x50b268],edi",
            "+mov esi,0x7",
            "+mov edi,0x8",
            "+mov m4[None+None*1+0x50b244],eax",
            "+mov eax,0x8",
            "+mov ebp,0xb",
            "+mov m4[None+None*1+0x50b238],eax",
            "+mov eax,m4[None+None*1+prefscrn.c::_prefs_sprite_area]",
            "+mov m4[None+None*1+0x50b274],ecx",
            "+lea edx,m4[eax+None*1+0x80]",
            "+mov m4[None+None*1+0x50b288],ecx",
            "+mov m4[None+None*1+0x50b2ac],edx",
            "+lea edx,m4[eax+None*1+0x100]",
            "+mov ecx,0x6",
            "+mov m4[None+None*1+0x50b280],edx",
            "+lea edx,m4[eax+None*1+0x180]",
            "+mov m4[None+None*1+0x50b24c],esi",
            "+mov m4[None+None*1+0x50b294],edx",
            "+lea edx,m4[eax+None*1+0x200]",
            "+mov m4[None+None*1+prefscrn.c::_throttle_vt],edi",
            "+mov m4[None+None*1+0x50b258],edx",
            "+lea edx,m4[eax+None*1+0x300]",
            "+mov m4[None+None*1+0x50b2b4],ebp",
            "+add eax,0x400",
            "+mov m4[None+None*1+0x50b260],ecx",
            "+mov m4[None+None*1+0x50b2c0],eax",
            "+xor eax,eax",
            "+mov m4[None+None*1+0x50b26c],edx",
            "+mov m4[None+None*1+0x50b2b8],eax",
            "+mov m4[None+None*1+0x50b2bc],eax",
            "+jmp local:731",
            "+push 0x0",
            "+push prefscrn.c::notify_preferences_network_button_",
            "+push 0x21",
            "+push 0xd",
            "+push 0x22",
            "+push text:'Network'",
            "+push 0x29",
            "+mov esi,m4[None+None*1+fonts.c::_menu_11x15]",
            " push esi",
            "-add edx,0x400",
            "-mov ebp,0x8",
            "-call loadgfx.c::load_graphics_",
            "-mov eax,m4[None+None*1+prefscrn.c::_prefs_sprite_area]",
            "-mov m4[None+None*1+prefscrn.c::_coolie_b],edi",
            "-mov m4[None+None*1+0x518248],ebp",
            "-mov m4[None+None*1+0x51824c],esi",
            "-mov m4[None+None*1+0x518250],esi",
            "-mov m4[None+None*1+prefscrn.c::_coolie_t],edi",
            "-mov ebx,ebp",
            "-mov m4[None+None*1+0x5182b0],ebp",
            "-mov m4[None+None*1+0x5182b4],esi",
            "-mov m4[None+None*1+0x5182b8],esi",
            "-mov m4[None+None*1+prefscrn.c::_coolie_l],ebp",
            "-mov m4[None+None*1+0x518288],esi",
            "-mov m4[None+None*1+prefscrn.c::_coolie_r],ebp",
            "-mov m4[None+None*1+0x51829c],esi",
            "-mov m4[None+None*1+0x5182a0],esi",
            "-mov m4[None+None*1+prefscrn.c::_coolie_c],ebp",
            "-mov m4[None+None*1+0x518260],esi",
            "-mov m4[None+None*1+0x518264],esi",
            "-mov m4[None+None*1+0x518274],esi",
            "-mov m4[None+None*1+0x518278],esi",
            "-xor ecx,ecx",
            "-mov edi,0xf",
            "-mov esi,0x8",
            "-mov m4[None+None*1+0x518254],eax",
            "-mov m4[None+None*1+0x5182cc],ecx",
            "-xor ebx,ebp",
            "-mov ebp,0x10",
            "-lea edx,m4[eax+None*1+0x80]",
            "-mov m4[None+None*1+0x51828c],ebx",
            "-mov m4[None+None*1+0x518298],edi",
            "-mov m4[None+None*1+prefscrn.c::_throttle_vt],esi",
            "-mov ebx,0x7",
            "-mov edi,0xb",
            "-mov m4[None+None*1+0x5182bc],edx",
            "-lea edx,m4[eax+None*1+0x100]",
            "-mov m4[None+None*1+prefscrn.c::_throttle_hz],ebp",
            "-mov m4[None+None*1+0x518290],edx",
            "-mov edx,0xf",
            "-mov m4[None+None*1+0x51825c],ebx",
            "-mov m4[None+None*1+0x518284],edx",
            "-lea edx,m4[eax+None*1+0x180]",
            "-mov m4[None+None*1+0x5182c4],edi",
            "-mov m4[None+None*1+0x5182a4],edx",
            "-lea edx,m4[eax+None*1+0x200]",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+0x518268],edx",
            "-lea edx,m4[eax+None*1+0x300]",
            "-mov m4[None+None*1+0x5182c8],ebp",
            "-mov m4[None+None*1+0x51827c],edx",
            "-add eax,0x400",
            "-mov edx,0x6",
            "-mov m4[None+None*1+0x5182d0],eax",
            "-mov m4[None+None*1+0x518270],edx",
            "-jmp local:585",
            "-push 0x0",
            "-push prefscrn.c::notify_preferences_network_button_",
            "-push 0x21",
            "-push 0xd",
            "-push 0x22",
            "-push text:'Network'",
            "-push 0x29",
            "-mov ebx,m4[None+None*1+fonts.c::_menu_11x15]",
            "-push ebx",
            " push 0x28",
            " push 0x151",
            " push 0x20a",
            "@@ -853,10 +996,10 @@",
            " push 0x1bb",
            " push 0x1",
            " push text:'To Network screen'",
            "-mov esi,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "-push esi",
            "+mov edi,m4[None+None*1+prefscrn.c::_preferences_screen]",
            "+push edi",
            " push 0x9",
            " call object.c::create_object_",
            " add esp,0x44",
            " mov m4[None+None*1+prefscrn.c::_preferences_network_button],eax",
            "-jmp local:711",
            "+jmp local:857"
          ]
        },
        {
          "symbol": "prefscrn.c::set_generic_game_detail_",
          "source": "E:\\apache\\source\\menus\\prefscrn.c",
          "first": "0x40742c",
          "second": "0x40772c",
          "first_instruction_count": 163,
          "second_instruction_count": 150,
          "diff": [
            "--- 0x40742c",
            "+++ 0x40772c",
            "@@ -4,36 +4,29 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-mov ecx,m4[None+None*1+rounds.c::_smoke_lifetime]",
            "-mov ebx,m4[None+None*1+rounds.c::_smoke_density]",
            "-mov edx,eax",
            "-mov eax,m4[None+None*1+constant:0a000000]",
            "-or al,0xa",
            "-cmp edx,0x5",
            "-jae local:43",
            "-mov esi,m4[None+None*1+constant:0a000000]",
            "-or si,0x2",
            "-and si,0xfff7",
            "-cmp edx,0x2",
            "-jae local:109",
            "-test edx,edx",
            "-jbe local:132",
            "-mov ebx,0x1",
            "-mov eax,0x400000",
            "-mov ecx,0x190",
            "-mov m4[None+None*1+constant:0a000000],esi",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+constant:00004000],eax",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],ebx",
            "-mov m4[None+None*1+constant:02000000],ebp",
            "-mov m4[None+None*1+constant:03000000],ebp",
            "-mov eax,edx",
            "-shl edx,0x2",
            "-add edx,eax",
            "-add edx,edx",
            "-mov m4[None+None*1+prefscrn.c::_visual_slider_value],edx",
            "-mov m4[None+None*1+rounds.c::_smoke_density],ebx",
            "-mov m4[None+None*1+rounds.c::_smoke_lifetime],ecx",
            "+mov edx,m4[None+None*1+rounds.c::_smoke_lifetime]",
            "+mov ecx,m4[None+None*1+rounds.c::_smoke_density]",
            "+cmp eax,0x9",
            "+ja local:27",
            "+jmp m4[None+eax*4+prefscrn.c::do_update_preferences_visual_+0x20c]",
            "+mov ecx,0x1",
            "+mov ebx,0x200000",
            "+mov edx,0x190",
            "+xor edi,edi",
            "+mov m4[None+None*1+constant:00004000],ebx",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],ecx",
            "+mov bl,m1[None+None*1+constant:0a]",
            "+mov m4[None+None*1+constant:02000000],edi",
            "+and bl,0xf5",
            "+mov m4[None+None*1+constant:03000000],edi",
            "+mov m1[None+None*1+constant:0a],bl",
            "+mov ebx,eax",
            "+shl eax,0x2",
            "+add eax,ebx",
            "+add eax,eax",
            "+mov m4[None+None*1+prefscrn.c::_visual_slider_value],eax",
            "+mov m4[None+None*1+rounds.c::_smoke_density],ecx",
            "+mov m4[None+None*1+rounds.c::_smoke_lifetime],edx",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -41,123 +34,117 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-ja local:54",
            "-mov ebx,0x2",
            "-mov ebp,0x400000",
            "+mov ecx,0x1",
            "+mov ebx,0x400000",
            "+mov edx,0x190",
            "+mov m4[None+None*1+constant:00004000],ebx",
            "+mov bl,m1[None+None*1+constant:0a]",
            "+xor edi,edi",
            "+or bl,0x2",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],ecx",
            "+mov m1[None+None*1+constant:0a],bl",
            "+mov bh,bl",
            "+mov m4[None+None*1+constant:02000000],edi",
            "+and bh,0xf7",
            "+mov m4[None+None*1+constant:03000000],edi",
            "+mov m1[None+None*1+constant:0a],bh",
            "+jmp local:22",
            "+mov ecx,0x2",
            "+mov ebx,0x400000",
            " mov esi,0x1",
            "-mov ecx,0x258",
            "-mov m4[None+None*1+constant:0a000000],eax",
            "-mov m4[None+None*1+constant:00004000],ebp",
            "+mov edx,0x190",
            "+mov m4[None+None*1+constant:00004000],ebx",
            "+mov bl,m1[None+None*1+constant:0a]",
            "+xor ebp,ebp",
            "+or bl,0x2",
            " mov m4[None+None*1+gamedata.c::_game_visual_config],esi",
            "-mov m4[None+None*1+constant:02000000],ebx",
            "-mov m4[None+None*1+constant:03000000],ebx",
            "-jmp local:29",
            "-cmp edx,0x8",
            "-jae local:68",
            "-cmp edx,0x6",
            "-ja local:154",
            "-mov ebx,0x3",
            "-mov edi,0x400000",
            "-mov ebp,0x1",
            "-mov ecx,0x258",
            "-mov m4[None+None*1+constant:0a000000],eax",
            "-mov m4[None+None*1+constant:00004000],edi",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],ebp",
            "-mov m4[None+None*1+constant:02000000],ebx",
            "-mov m4[None+None*1+constant:03000000],ebx",
            "-jmp local:29",
            "-ja local:79",
            "-mov ebx,0x3",
            "-mov ebp,0x400000",
            "+mov m1[None+None*1+constant:0a],bl",
            "+mov bh,bl",
            "+mov m4[None+None*1+constant:02000000],esi",
            "+and bh,0xf7",
            "+mov m4[None+None*1+constant:03000000],ebp",
            "+mov m1[None+None*1+constant:0a],bh",
            "+jmp local:22",
            "+mov ecx,0x2",
            "+mov ebx,0x400000",
            "+mov esi,0x1",
            "+mov m4[None+None*1+constant:00004000],ebx",
            "+mov bl,m1[None+None*1+constant:0a]",
            "+mov edx,0x190",
            "+or bl,0x2",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],esi",
            "+mov m1[None+None*1+constant:0a],bl",
            "+mov bh,bl",
            "+mov m4[None+None*1+constant:02000000],esi",
            "+and bh,0xf7",
            "+mov m4[None+None*1+constant:03000000],ecx",
            "+mov m1[None+None*1+constant:0a],bh",
            "+jmp local:22",
            "+mov ecx,0x2",
            "+mov ebx,0x400000",
            "+mov esi,0x1",
            "+mov edx,0x190",
            "+mov m4[None+None*1+constant:00004000],ebx",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],esi",
            "+mov bh,m1[None+None*1+constant:0a]",
            "+mov m4[None+None*1+constant:02000000],esi",
            "+or bh,0xa",
            "+mov m4[None+None*1+constant:03000000],ecx",
            "+mov m1[None+None*1+constant:0a],bh",
            "+jmp local:22",
            "+mov ecx,0x2",
            "+mov ebx,0x400000",
            "+mov esi,0x1",
            "+mov edx,0x258",
            "+mov m4[None+None*1+constant:00004000],ebx",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],esi",
            "+mov bl,m1[None+None*1+constant:0a]",
            "+mov m4[None+None*1+constant:02000000],ecx",
            "+or bl,0xa",
            "+mov m4[None+None*1+constant:03000000],ecx",
            "+jmp local:21",
            "+mov ecx,0x3",
            "+mov ebx,0x400000",
            "+mov esi,0x1",
            "+mov edx,0x258",
            "+mov m4[None+None*1+constant:00004000],ebx",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],esi",
            "+mov bh,m1[None+None*1+constant:0a]",
            "+mov m4[None+None*1+constant:02000000],ecx",
            "+or bh,0xa",
            "+mov m4[None+None*1+constant:03000000],ecx",
            "+mov m1[None+None*1+constant:0a],bh",
            "+jmp local:22",
            "+mov ecx,0x3",
            "+mov ebx,0x400000",
            "+mov edx,0x258",
            "+mov m4[None+None*1+constant:00004000],ebx",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],ecx",
            "+mov bl,m1[None+None*1+constant:0a]",
            "+mov m4[None+None*1+constant:02000000],ecx",
            "+or bl,0xa",
            "+mov m4[None+None*1+constant:03000000],ecx",
            "+jmp local:21",
            "+mov ecx,0x3",
            "+mov ebx,0x400000",
            " mov esi,0x5",
            "-mov ecx,0x258",
            "-mov m4[None+None*1+constant:0a000000],eax",
            "-mov m4[None+None*1+constant:00004000],ebp",
            "+mov edx,0x258",
            "+mov m4[None+None*1+constant:00004000],ebx",
            " mov m4[None+None*1+gamedata.c::_game_visual_config],esi",
            "-mov m4[None+None*1+constant:02000000],ebx",
            "-mov m4[None+None*1+constant:03000000],ebx",
            "-jmp local:29",
            "-cmp edx,0x9",
            "-ja local:91",
            "-mov ebx,0x3",
            "-mov edi,0x400000",
            "-mov ebp,0x7",
            "-mov ecx,0x258",
            "-mov m4[None+None*1+constant:0a000000],eax",
            "-mov m4[None+None*1+constant:00004000],edi",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],ebp",
            "-mov m4[None+None*1+constant:02000000],ebx",
            "-mov m4[None+None*1+constant:03000000],ebx",
            "-jmp local:29",
            "-cmp edx,0x3e9",
            "-jne local:34",
            "-mov ecx,0x258",
            "-mov ebx,0x3",
            "-mov esi,0x400000",
            "-mov edi,0x5",
            "-mov m4[None+None*1+constant:0a000000],eax",
            "-mov m4[None+None*1+constant:00004000],esi",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],edi",
            "-mov m4[None+None*1+constant:02000000],ebx",
            "-mov m4[None+None*1+constant:03000000],ebx",
            "-mov eax,edi",
            "-mov m4[None+None*1+rounds.c::_smoke_lifetime],ecx",
            "-mov m4[None+None*1+rounds.c::_smoke_density],ebx",
            "-call fxpoly1.c::set_max_fogging_range_",
            "-mov ebx,m4[None+None*1+rounds.c::_smoke_density]",
            "-mov ecx,m4[None+None*1+rounds.c::_smoke_lifetime]",
            "-jmp local:29",
            "-ja local:120",
            "-mov ebx,0x2",
            "-mov ebp,0x400000",
            "-mov eax,0x1",
            "-mov ecx,0x190",
            "-mov m4[None+None*1+constant:0a000000],esi",
            "-mov m4[None+None*1+constant:00004000],ebp",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],eax",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+constant:02000000],eax",
            "-jmp local:28",
            "-cmp edx,0x3",
            "-ja local:144",
            "-mov ebx,0x2",
            "-mov edi,0x400000",
            "-mov ebp,0x1",
            "-mov ecx,0x190",
            "-mov m4[None+None*1+constant:0a000000],esi",
            "-mov m4[None+None*1+constant:00004000],edi",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],ebp",
            "-mov m4[None+None*1+constant:02000000],ebp",
            "-mov m4[None+None*1+constant:03000000],ebx",
            "-jmp local:29",
            "-mov ebx,0x1",
            "-mov esi,0x200000",
            "-mov ecx,0x190",
            "-mov ah,m1[None+None*1+constant:0a]",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+constant:00004000],esi",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],ebx",
            "-mov m4[None+None*1+constant:02000000],ebp",
            "-and ah,0xf5",
            "-mov m4[None+None*1+constant:03000000],ebp",
            "-mov m1[None+None*1+constant:0a],ah",
            "-jmp local:29",
            "-mov ebx,0x2",
            "-mov esi,0x400000",
            "-mov edi,0x1",
            "-mov ecx,0x190",
            "-mov m4[None+None*1+constant:0a000000],eax",
            "-mov m4[None+None*1+constant:00004000],esi",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],edi",
            "-mov m4[None+None*1+constant:02000000],edi",
            "-mov m4[None+None*1+constant:03000000],ebx",
            "-jmp local:29",
            "-mov ebx,0x3",
            "-mov esi,0x400000",
            "-mov ecx,0x258",
            "-mov m4[None+None*1+constant:0a000000],eax",
            "-mov m4[None+None*1+constant:00004000],esi",
            "-mov m4[None+None*1+gamedata.c::_game_visual_config],ebx",
            "-mov m4[None+None*1+constant:02000000],ebx",
            "-mov m4[None+None*1+constant:03000000],ebx",
            "-jmp local:29",
            "+mov bh,m1[None+None*1+constant:0a]",
            "+mov m4[None+None*1+constant:02000000],ecx",
            "+or bh,0xa",
            "+mov m4[None+None*1+constant:03000000],ecx",
            "+mov m1[None+None*1+constant:0a],bh",
            "+jmp local:22",
            "+mov ecx,0x3",
            "+mov ebx,0x400000",
            "+mov esi,0x7",
            "+mov edx,0x258",
            "+mov m4[None+None*1+constant:00004000],ebx",
            "+mov m4[None+None*1+gamedata.c::_game_visual_config],esi",
            "+mov bl,m1[None+None*1+constant:0a]",
            "+mov m4[None+None*1+constant:02000000],ecx",
            "+or bl,0xa",
            "+mov m4[None+None*1+constant:03000000],ecx",
            "+jmp local:21"
          ]
        },
        {
          "symbol": "prefscrn.c::update_preferences_screen_",
          "source": "E:\\apache\\source\\menus\\prefscrn.c",
          "first": "0x407d1c",
          "second": "0x407fec",
          "first_instruction_count": 151,
          "second_instruction_count": 177,
          "diff": [
            "--- 0x407d1c",
            "+++ 0x407fec",
            "@@ -1,15 +1,30 @@",
            " push ebx",
            " push edx",
            " call prefscrn.c::setup_apache_controls_",
            "+mov ebx,0xa",
            "+mov edx,m4[None+None*1+prefscrn.c::_visual_slider_value]",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual_detail_bar]",
            "+call uoaccess.c::set_object_slider_",
            " mov ebx,0x5",
            " mov edx,m4[None+None*1+sound.c::_sound_master_volume]",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_volume_bar]",
            " call uoaccess.c::set_object_slider_",
            "+mov edx,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+test edx,edx",
            "+je local:117",
            "+cmp edx,0x1",
            "+jne local:123",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual_320_button]",
            "+xor edx,edx",
            "+call uoaccess.c::set_object_on_",
            "+mov edx,0x1",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual_640_button]",
            "+call uoaccess.c::set_object_on_",
            " mov eax,m4[None+None*1+model.c::_model_id]",
            " test eax,eax",
            "-jbe local:94",
            "+jbe local:129",
            " cmp eax,0x2",
            "-jne local:18",
            "+jne local:33",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_arcade_button]",
            " call uoaccess.c::set_object_on_",
            "@@ -23,9 +38,8 @@",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_forces_slider_bar]",
            " add edx,edx",
            " call uoaccess.c::set_object_slider_",
            "-mov edx,m4[None+None*1+brief.c::_mission_planner_enabled]",
            "-test edx,edx",
            "-je local:100",
            "+cmp m4[None+None*1+brief.c::_mission_planner_enabled],0x0",
            "+je local:135",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_mission_planner_enabled_button]",
            " call uoaccess.c::set_object_on_",
            "@@ -33,7 +47,7 @@",
            " xor edx,edx",
            " call uoaccess.c::set_object_on_",
            " cmp m4[None+None*1+prefscrn.c::_animations_enabled],0x0",
            "-je local:105",
            "+je local:141",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_animations_enabled_button]",
            " call uoaccess.c::set_object_on_",
            "@@ -41,7 +55,7 @@",
            " xor edx,edx",
            " call uoaccess.c::set_object_on_",
            " cmp m4[None+None*1+prefscrn.c::_sound_speech_enabled],0x0",
            "-je local:111",
            "+je local:147",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_sound_speech_button]",
            " call uoaccess.c::set_object_on_",
            "@@ -55,97 +69,109 @@",
            " xor edx,edx",
            " call uoaccess.c::set_object_on_",
            " cmp m4[None+None*1+prefscrn.c::_sound_effects_enabled],0x0",
            "-je local:117",
            "+je local:153",
            " cmp m4[None+None*1+prefscrn.c::_sound_effects_minimal],0x0",
            "-je local:114",
            "+je local:150",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_sound_effects_min_button]",
            " call uoaccess.c::set_object_on_",
            "-cmp m4[None+None*1+prefscrn.c::_sound_music_enabled],0x0",
            "-je local:120",
            "+mov edx,m4[None+None*1+prefscrn.c::_sound_music_enabled]",
            "+test edx,edx",
            "+je local:81",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_sound_music_button]",
            " call uoaccess.c::set_object_on_",
            " mov eax,m4[None+None*1+prefscrn.c::_collective_control]",
            " test eax,eax",
            "-jbe local:123",
            "+jbe local:156",
            " cmp eax,0x6",
            "-jne local:76",
            "+jne local:91",
            " mov edx,text:'Throttle Stick'",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_collective_button]",
            " call utext.c::set_object_text_",
            " mov eax,m4[None+None*1+prefscrn.c::_tailrotor_control]",
            " test eax,eax",
            "-jbe local:125",
            "+jbe local:158",
            " cmp eax,0x5",
            "-jne local:84",
            "+jne local:99",
            " mov edx,text:'Pedals'",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_tailrotor_button]",
            " call utext.c::set_object_text_",
            " mov eax,m4[None+None*1+prefscrn.c::_cyclic_control]",
            " cmp eax,0x4",
            "-ja local:91",
            "+ja local:106",
            " jmp m4[None+eax*4+prefscrn.c::notify_preferences_cyclic_menu_+0x28]",
            " mov edx,text:'Keyboard'",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_cyclic_button]",
            " call utext.c::set_object_text_",
            "+cmp m4[None+None*1+prefscrn.c::_preferences_visual_running],0x0",
            "+je local:168",
            "+mov edx,0x1",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual_button]",
            "+call uoaccess.c::set_object_displayable_",
            "+mov edx,0x1",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual]",
            "+call uoaccess.c::set_object_displayable_",
            " pop edx",
            " pop ebx",
            " ret ",
            "+mov edx,0x1",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual_320_button]",
            "+call uoaccess.c::set_object_on_",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual_640_button]",
            "+xor edx,edx",
            "+jmp local:21",
            "+push 0x814",
            "+push text:'\\\\apache\\\\source\\\\menus\\\\prefscrn.c'",
            "+push text:'Visual Resolution'",
            "+call debuglog.c::debug_log_fatal_long_",
            "+add esp,0xc",
            "+jmp local:22",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_arcade_button]",
            " xor edx,edx",
            " call uoaccess.c::set_object_on_",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_realistic_button]",
            "-jmp local:17",
            "+jmp local:32",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_mission_planner_enabled_button]",
            "+xor edx,edx",
            " call uoaccess.c::set_object_on_",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_mission_planner_disabled_button]",
            "-jmp local:33",
            "+jmp local:47",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_animations_enabled_button]",
            " xor edx,edx",
            " call uoaccess.c::set_object_on_",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_animations_disabled_button]",
            "-jmp local:41",
            "+jmp local:55",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_sound_speech_button]",
            " xor edx,edx",
            "-jmp local:46",
            "+jmp local:60",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_sound_effects_full_button]",
            "-jmp local:62",
            "+jmp local:76",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+prefscrn.c::_preferences_sound_effects_off_button]",
            "-jmp local:62",
            "-mov eax,m4[None+None*1+prefscrn.c::_preferences_sound_music_button]",
            "+jmp local:76",
            "+mov edx,text:'Keyboard'",
            "+jmp local:89",
            "+mov edx,text:'Keyboard'",
            "+jmp local:97",
            "+mov edx,text:'Joystick'",
            "+jmp local:104",
            "+mov edx,text:'Thrustmaster FCS'",
            "+jmp local:104",
            "+mov edx,text:'Flightstick Pro'",
            "+jmp local:104",
            "+mov edx,text:'Virtual Pilot Pro'",
            "+jmp local:104",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual_button]",
            " xor edx,edx",
            "-jmp local:67",
            "-mov edx,text:'Keyboard'",
            "-jmp local:74",
            "-mov edx,text:'Keyboard'",
            "-jmp local:82",
            "-mov edx,text:'Joystick'",
            "-mov eax,m4[None+None*1+prefscrn.c::_preferences_cyclic_button]",
            "-call utext.c::set_object_text_",
            "+call uoaccess.c::set_object_displayable_",
            "+mov eax,m4[None+None*1+prefscrn.c::_preferences_visual]",
            "+xor edx,edx",
            "+call uoaccess.c::set_object_displayable_",
            " pop edx",
            " pop ebx",
            " ret ",
            "-mov edx,text:'Thrustmaster FCS'",
            "-mov eax,m4[None+None*1+prefscrn.c::_preferences_cyclic_button]",
            "-call utext.c::set_object_text_",
            "-pop edx",
            "-pop ebx",
            "-ret ",
            "-mov edx,text:'Flightstick Pro'",
            "-mov eax,m4[None+None*1+prefscrn.c::_preferences_cyclic_button]",
            "-call utext.c::set_object_text_",
            "-pop edx",
            "-pop ebx",
            "-ret ",
            "-mov edx,text:'Virtual Pilot Pro'",
            "-mov eax,m4[None+None*1+prefscrn.c::_preferences_cyclic_button]",
            "-call utext.c::set_object_text_",
            "-pop edx",
            "-pop ebx",
            "-ret "
          ]
        },
        {
          "symbol": "prtf::formstring_",
          "source": "prtf",
          "first": "0x4ca156",
          "second": "0x4bd686",
          "first_instruction_count": 460,
          "second_instruction_count": 460,
          "diff": [
            "--- 0x4ca156",
            "+++ 0x4bd686",
            "@@ -420,7 +420,7 @@",
            " je local:452",
            " xor eax,eax",
            " mov al,m1[esp+None*1+0xc]",
            "-mov al,m1[eax+None*1+0x10dd215]",
            "+mov al,m1[eax+None*1+0xf909c5]",
            " and al,0x1",
            " and eax,0xff",
            " je local:452"
          ]
        },
        {
          "symbol": "putchwnt::putch_",
          "source": "putchwnt",
          "first": "0x4d17ef",
          "second": "0x4c4d5c",
          "first_instruction_count": 33,
          "second_instruction_count": 33,
          "diff": [
            "--- 0x4d17ef",
            "+++ 0x4c4d5c",
            "@@ -22,7 +22,7 @@",
            " lea edx,m4[esp+None*1+0x10]",
            " push edx",
            " push eax",
            "-call m4[None+None*1+constant:c2500d00]",
            "+call m4[None+None*1+constant:c27f0c00]",
            " mov eax,0x1",
            " call m4[None+None*1+mainwnt::__ReleaseFileH]",
            " mov eax,ebx"
          ]
        },
        {
          "symbol": "putenv::putenv_",
          "source": "putenv",
          "first": "0x4d1ada",
          "second": "0x4c4f62",
          "first_instruction_count": 125,
          "second_instruction_count": 125,
          "diff": [
            "--- 0x4d1ada",
            "+++ 0x4c4f62",
            "@@ -80,7 +80,7 @@",
            " push eax",
            " mov edx,m4[esp+None*1+0xc]",
            " push edx",
            "-call m4[None+None*1+constant:504f0d00]",
            "+call m4[None+None*1+constant:3e7e0c00]",
            " mov edx,eax",
            " mov eax,m4[esp+None*1+0x8]",
            " call nfree::_nfree_"
          ]
        },
        {
          "symbol": "qread::__qread_",
          "source": "qread",
          "first": "0x4cd3c4",
          "second": "0x4c0691",
          "first_instruction_count": 48,
          "second_instruction_count": 48,
          "diff": [
            "--- 0x4cd3c4",
            "+++ 0x4c0691",
            "@@ -32,7 +32,7 @@",
            " push ebx",
            " push edx",
            " push eax",
            "-call m4[None+None*1+constant:ba4e0d00]",
            "+call m4[None+None*1+constant:a87d0c00]",
            " test eax,eax",
            " jne local:41",
            " mov eax,esi"
          ]
        },
        {
          "symbol": "qwrit::__qwrite_",
          "source": "qwrit",
          "first": "0x4cd2fa",
          "second": "0x4c01c9",
          "first_instruction_count": 68,
          "second_instruction_count": 68,
          "diff": [
            "--- 0x4cd2fa",
            "+++ 0x4c01c9",
            "@@ -24,7 +24,7 @@",
            " push 0x0",
            " push 0x0",
            " push ebp",
            "-call m4[None+None*1+constant:904f0d00]",
            "+call m4[None+None*1+constant:7e7e0c00]",
            " cmp eax,0xffffffff",
            " jne local:33",
            " mov eax,esi",
            "@@ -50,7 +50,7 @@",
            " push ebx",
            " push edi",
            " push ebp",
            "-call m4[None+None*1+constant:d2500d00]",
            "+call m4[None+None*1+constant:d27f0c00]",
            " test eax,eax",
            " je local:29",
            " cmp ebx,m4[esp+None*1+0x0]"
          ]
        },
        {
          "symbol": "renamwnt::rename_",
          "source": "renamwnt",
          "first": "0x4cfaca",
          "second": "0x4c2f18",
          "first_instruction_count": 12,
          "second_instruction_count": 12,
          "diff": [
            "--- 0x4cfaca",
            "+++ 0x4c2f18",
            "@@ -1,7 +1,7 @@",
            " push ecx",
            " push edx",
            " push eax",
            "-call m4[None+None*1+constant:844e0d00]",
            "+call m4[None+None*1+constant:727d0c00]",
            " test eax,eax",
            " jne local:9",
            " call dosret::__set_errno_nt_"
          ]
        },
        {
          "symbol": "repaint.c::do_display_screen_",
          "source": "E:\\library\\ui\\repaint.c",
          "first": "0x4834c8",
          "second": "0x4817c4",
          "first_instruction_count": 234,
          "second_instruction_count": 234,
          "diff": [
            "--- 0x4834c8",
            "+++ 0x4817c4",
            "@@ -5,8 +5,8 @@",
            " push edi",
            " push ebp",
            " mov edx,m4[None+None*1+repaint.c::_redisplay_screen_y1]",
            "-mov esi,m4[None+None*1+0xafa574]",
            "-mov ecx,m4[None+None*1+0xafa57c]",
            "+mov esi,m4[None+None*1+0xae5044]",
            "+mov ecx,m4[None+None*1+0xae504c]",
            " cmp esi,edx",
            " jle local:12",
            " mov esi,edx",
            "@@ -172,16 +172,16 @@",
            " mov edx,0x1",
            " call mouseptr.c::draw_mouse_pointer_",
            " mov m4[None+None*1+mouse.c::_mouse_has_been_saved],edx",
            "-mov eax,m4[None+None*1+0xafa564]",
            "+mov eax,m4[None+None*1+0xae5034]",
            " mov ebx,m4[None+None*1+screen.c::_display_screen_semaphore]",
            " mov m4[None+None*1+repaint.c::_redisplay_screen_x1],eax",
            "-mov eax,m4[None+None*1+0xafa574]",
            "+mov eax,m4[None+None*1+0xae5044]",
            " xor ecx,ecx",
            " mov m4[None+None*1+repaint.c::_redisplay_screen_y1],eax",
            "-mov eax,m4[None+None*1+0xafa56c]",
            "+mov eax,m4[None+None*1+0xae503c]",
            " mov m4[None+None*1+repaint.c::_redisplay_screen_semaphore],ecx",
            " mov m4[None+None*1+repaint.c::_redisplay_screen_x2],eax",
            "-mov eax,m4[None+None*1+0xafa57c]",
            "+mov eax,m4[None+None*1+0xae504c]",
            " dec ebx",
            " mov m4[None+None*1+repaint.c::_redisplay_screen_y2],eax",
            " mov eax,m4[None+None*1+repaint.c::_menu_screen]"
          ]
        },
        {
          "symbol": "repaint.c::redisplay_screen_",
          "source": "E:\\library\\ui\\repaint.c",
          "first": "0x483aec",
          "second": "0x481de8",
          "first_instruction_count": 46,
          "second_instruction_count": 46,
          "diff": [
            "--- 0x483aec",
            "+++ 0x481de8",
            "@@ -14,15 +14,15 @@",
            " mov ecx,edi",
            " cmp m4[None+None*1+repaint.c::_redisplay_screen_semaphore],0x0",
            " je local:38",
            "-cmp eax,m4[None+None*1+0xafa564]",
            "+cmp eax,m4[None+None*1+0xae5034]",
            " jl local:34",
            "-cmp edx,m4[None+None*1+0xafa574]",
            "+cmp edx,m4[None+None*1+0xae5044]",
            " jge local:21",
            "-mov m4[None+None*1+0xafa574],edx",
            "-cmp ebx,m4[None+None*1+0xafa56c]",
            "+mov m4[None+None*1+0xae5044],edx",
            "+cmp ebx,m4[None+None*1+0xae503c]",
            " jle local:24",
            "-mov m4[None+None*1+0xafa56c],ebx",
            "-cmp ecx,m4[None+None*1+0xafa57c]",
            "+mov m4[None+None*1+0xae503c],ebx",
            "+cmp ecx,m4[None+None*1+0xae504c]",
            " jg local:36",
            " mov m4[None+None*1+repaint.c::_redisplay_screen_semaphore],0x1",
            " pop edi",
            "@@ -32,14 +32,14 @@",
            " jmp local:4",
            " xor edx,edx",
            " jmp local:6",
            "-mov m4[None+None*1+0xafa564],eax",
            "+mov m4[None+None*1+0xae5034],eax",
            " jmp local:18",
            "-mov m4[None+None*1+0xafa57c],ecx",
            "+mov m4[None+None*1+0xae504c],ecx",
            " jmp local:26",
            "-mov m4[None+None*1+0xafa574],edx",
            "-mov m4[None+None*1+0xafa56c],ebx",
            "-mov m4[None+None*1+0xafa57c],ecx",
            "-mov m4[None+None*1+0xafa564],eax",
            "+mov m4[None+None*1+0xae5044],edx",
            "+mov m4[None+None*1+0xae503c],ebx",
            "+mov m4[None+None*1+0xae504c],ecx",
            "+mov m4[None+None*1+0xae5034],eax",
            " mov m4[None+None*1+repaint.c::_redisplay_screen_semaphore],0x1",
            " pop edi",
            " pop esi"
          ]
        },
        {
          "symbol": "repaint.c::update_objects_inside_",
          "source": "E:\\library\\ui\\repaint.c",
          "first": "0x483930",
          "second": "0x481c2c",
          "first_instruction_count": 118,
          "second_instruction_count": 118,
          "diff": [
            "--- 0x483930",
            "+++ 0x481c2c",
            "@@ -17,7 +17,7 @@",
            " lea eax,m4[None+ebp*4+0x0]",
            " add eax,ebp",
            " shl eax,0x2",
            "-mov edx,m4[eax+None*1+0xaf2d48]",
            "+mov edx,m4[eax+None*1+0xadd818]",
            " mov ebx,m4[esp+None*1+0x14]",
            " cmp ebx,m4[edx+None*1+0x18]",
            " jle local:70",
            "@@ -45,10 +45,10 @@",
            " cmp ebp,m4[None+None*1+object.c::_object_count]",
            " jge local:112",
            " mov eax,m4[esi+None*1+object.c::_object_redraws]",
            "-mov edx,m4[esi+None*1+0xaf2d3c]",
            "-mov ebx,m4[esi+None*1+0xaf2d40]",
            "-mov ecx,m4[esi+None*1+0xaf2d44]",
            "-mov edi,m4[esi+None*1+0xaf2d48]",
            "+mov edx,m4[esi+None*1+0xadd80c]",
            "+mov ebx,m4[esi+None*1+0xadd810]",
            "+mov ecx,m4[esi+None*1+0xadd814]",
            "+mov edi,m4[esi+None*1+0xadd818]",
            " cmp eax,m4[esp+None*1+0x14]",
            " jge local:54",
            " mov eax,m4[esp+None*1+0x14]"
          ]
        },
        {
          "symbol": "rmdirwnt::rmdir_",
          "source": "rmdirwnt",
          "first": "0x4c8cc6",
          "second": "0x4bc2ec",
          "first_instruction_count": 14,
          "second_instruction_count": 14,
          "diff": [
            "--- 0x4c8cc6",
            "+++ 0x4bc2ec",
            "@@ -1,7 +1,7 @@",
            " push ecx",
            " push edx",
            " push eax",
            "-call m4[None+None*1+constant:da4e0d00]",
            "+call m4[None+None*1+constant:c87d0c00]",
            " test eax,eax",
            " jne local:10",
            " call dosret::__set_errno_nt_"
          ]
        },
        {
          "symbol": "rndmove.c::calculate_guided_round_move_",
          "source": "E:\\apache\\source\\weapons\\rndmove.c",
          "first": "0x44c378",
          "second": "0x44c6f8",
          "first_instruction_count": 379,
          "second_instruction_count": 379,
          "diff": [
            "--- 0x44c378",
            "+++ 0x44c6f8",
            "@@ -17,7 +17,7 @@",
            " add edx,eax",
            " shl edx,0x3",
            " mov eax,m4[esi+None*1+0x4]",
            "-cmp eax,m4[edx+None*1+0x672a7c]",
            "+cmp eax,m4[edx+None*1+0x665a8c]",
            " jge local:78",
            " mov eax,0x1",
            " mov ebx,m4[esp+None*1+0x38]",
            "@@ -194,7 +194,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov eax,m4[None+eax*8+0x672ab4]",
            "+mov eax,m4[None+eax*8+0x665ac4]",
            " mov m4[esp+None*1+0x3c],eax",
            " mov eax,m4[None+None*1+gamedata.c::_delta_time]",
            " mov edx,eax",
            "@@ -271,11 +271,11 @@",
            " jmp local:66",
            " cmp ebx,0x4",
            " je local:107",
            "-mov ecx,m4[eax+None*1+0x672ab8]",
            "+mov ecx,m4[eax+None*1+0x665ac8]",
            " jmp local:108",
            " cmp ecx,0x4",
            " je local:123",
            "-mov ecx,m4[eax+None*1+0x672ab8]",
            "+mov ecx,m4[eax+None*1+0x665ac8]",
            " jmp local:124",
            " mov eax,m4[esp+None*1+0x28]",
            " cdq ",
            "@@ -302,7 +302,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov edx,m4[None+eax*8+0x672a80]",
            "+mov edx,m4[None+eax*8+0x665a90]",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            " cmp ecx,eax",
            "@@ -355,7 +355,7 @@",
            " jmp local:150",
            " cmp edx,0x4",
            " je local:165",
            "-mov eax,m4[eax+None*1+0x672ab8]",
            "+mov eax,m4[eax+None*1+0x665ac8]",
            " jmp local:166",
            " cmp edx,ebx",
            " jge local:363"
          ]
        },
        {
          "symbol": "rndmove.c::calculate_simple_round_move_",
          "source": "E:\\apache\\source\\weapons\\rndmove.c",
          "first": "0x44c2ac",
          "second": "0x44c62c",
          "first_instruction_count": 70,
          "second_instruction_count": 70,
          "diff": [
            "--- 0x44c2ac",
            "+++ 0x44c62c",
            "@@ -55,7 +55,7 @@",
            " mov edx,m4[None+None*1+gamedata.c::_delta_time]",
            " cmp ecx,0x4",
            " jne local:68",
            "-mov eax,m4[eax+None*1+0x672ab8]",
            "+mov eax,m4[eax+None*1+0x665ac8]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2"
          ]
        },
        {
          "symbol": "rndmove.c::pitch_round_down_",
          "source": "E:\\apache\\source\\weapons\\rndmove.c",
          "first": "0x44c914",
          "second": "0x44cc94",
          "first_instruction_count": 46,
          "second_instruction_count": 46,
          "diff": [
            "--- 0x44c914",
            "+++ 0x44cc94",
            "@@ -13,7 +13,7 @@",
            " mov eax,esi",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2"
          ]
        },
        {
          "symbol": "rndmove.c::set_round_velocity_",
          "source": "E:\\apache\\source\\weapons\\rndmove.c",
          "first": "0x44c088",
          "second": "0x44c408",
          "first_instruction_count": 93,
          "second_instruction_count": 93,
          "diff": [
            "--- 0x44c088",
            "+++ 0x44c408",
            "@@ -16,7 +16,7 @@",
            " mov ebx,m4[edx+None*1+0x8]",
            " shl ecx,0x3",
            " mov eax,m4[None+None*1+gamedata.c::_game_clock_time]",
            "-mov esi,m4[ecx+None*1+0x672a74]",
            "+mov esi,m4[ecx+None*1+0x665a84]",
            " sub eax,ebx",
            " cmp eax,esi",
            " jle local:27",
            "@@ -30,7 +30,7 @@",
            " sub eax,ecx",
            " shl eax,0x2",
            " add eax,ecx",
            "-fild m4[None+eax*8+0x672a70]",
            "+fild m4[None+eax*8+0x665a80]",
            " mov ecx,m4[edx+None*1+0x0]",
            " fmul m8[None+None*1+gamedata.c::_frame_time]",
            " lea eax,m4[None+ecx*4+0x0]",
            "@@ -45,7 +45,7 @@",
            " shl eax,0x3",
            " fistp m4[edx+None*1+0xc]",
            " mov ecx,m4[edx+None*1+0xc]",
            "-mov edi,m4[eax+None*1+0x672aa0]",
            "+mov edi,m4[eax+None*1+0x665ab0]",
            " cmp ecx,edi",
            " jle local:51",
            " mov m4[edx+None*1+0xc],edi",
            "@@ -55,15 +55,15 @@",
            " shl eax,0x2",
            " add ecx,eax",
            " shl ecx,0x3",
            "-mov ebp,m4[ecx+None*1+0x672ac4]",
            "-mov eax,m4[ecx+None*1+0x672ac0]",
            "+mov ebp,m4[ecx+None*1+0x665ad4]",
            "+mov eax,m4[ecx+None*1+0x665ad0]",
            " test ebp,0x7fffffff",
            " jne local:63",
            " test eax,eax",
            " je local:74",
            " mov eax,m4[edx+None*1+0x68]",
            " call rndmove.c::sigma_",
            "-fmul m8[ecx+None*1+0x672ac0]",
            "+fmul m8[ecx+None*1+0x665ad0]",
            " fild m4[edx+None*1+0xc]",
            " fxch st(0),st(1)",
            " fmul st(1)"
          ]
        },
        {
          "symbol": "rounds.c::check_round_target_lock_",
          "source": "E:\\apache\\source\\weapons\\rounds.c",
          "first": "0x44cf90",
          "second": "0x44d310",
          "first_instruction_count": 334,
          "second_instruction_count": 334,
          "diff": [
            "--- 0x44cf90",
            "+++ 0x44d310",
            "@@ -44,7 +44,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-mov eax,m4[None+eax*8+0x672a64]",
            "+mov eax,m4[None+eax*8+0x665a74]",
            " cmp eax,0x2",
            " jae local:72",
            " cmp eax,0x1",
            "@@ -56,7 +56,7 @@",
            " push text:'Laser guided missile with no designator'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-cmp m4[None+None*1+0xafaed8],0x2",
            "+cmp m4[None+None*1+0xae5588],0x2",
            " jne local:235",
            " mov m4[ecx+None*1+0xf0],0x0",
            " mov ah,m1[ecx+None*1+0xb4]",
            "@@ -112,35 +112,35 @@",
            " mov edx,m4[None+None*1+gamedata.c::_game_clock_time]",
            " cmp edx,m4[ecx+None*1+0xb8]",
            " jg local:194",
            "-mov ebx,m4[None+None*1+0xafaed8]",
            "+mov ebx,m4[None+None*1+0xae5588]",
            " cmp ebx,0x2",
            " je local:223",
            " cmp ebx,0x3",
            " je local:223",
            " cmp ebx,0x1",
            " jne local:86",
            "-mov edx,m4[None+None*1+0xafaec8]",
            "+mov edx,m4[None+None*1+0xae5578]",
            " mov eax,m4[ecx+None*1+0x68]",
            " cmp eax,edx",
            " jle local:127",
            "-cmp eax,m4[None+None*1+0xafaecc]",
            "+cmp eax,m4[None+None*1+0xae557c]",
            " jl local:24",
            "-mov edi,m4[None+None*1+0xafaec8]",
            "+mov edi,m4[None+None*1+0xae5578]",
            " cmp edi,m4[ecx+None*1+0x68]",
            " jle local:132",
            " cmp edi,m4[esp+None*1+0x8]",
            " jl local:24",
            "-mov edx,m4[None+None*1+0xafaec8]",
            "+mov edx,m4[None+None*1+0xae5578]",
            " cmp edx,m4[ecx+None*1+0x68]",
            " jge local:137",
            " cmp edx,m4[esp+None*1+0x8]",
            " jg local:24",
            "-mov edi,m4[None+None*1+0xafaecc]",
            "+mov edi,m4[None+None*1+0xae557c]",
            " cmp edi,m4[ecx+None*1+0x68]",
            " jle local:142",
            " cmp edi,m4[esp+None*1+0x8]",
            " jl local:24",
            "-mov edx,m4[None+None*1+0xafaecc]",
            "+mov edx,m4[None+None*1+0xae557c]",
            " cmp edx,m4[ecx+None*1+0x68]",
            " jge local:86",
            " cmp edx,m4[esp+None*1+0x8]",
            "@@ -255,7 +255,7 @@",
            " sub edx,ebp",
            " sub eax,edi",
            " call range.c::get_3d_range_",
            "-cmp eax,cap.c::do_cap_scan_+0xc4",
            "+cmp eax,cap.c::initialise_CAP_system_+0xa0",
            " jbe local:86",
            " mov al,m1[ecx+None*1+0xb4]",
            " mov m4[ecx+None*1+0xf0],0x0",
            "@@ -279,7 +279,7 @@",
            " sub eax,edx",
            " mov edx,edi",
            " call range.c::get_3d_range_",
            "-cmp eax,cap.c::do_cap_scan_+0xc4",
            "+cmp eax,cap.c::initialise_CAP_system_+0xa0",
            " jbe local:86",
            " mov ah,m1[ecx+None*1+0xb4]",
            " mov m4[ecx+None*1+0xf0],0x0"
          ]
        },
        {
          "symbol": "rounds.c::get_rounds_target_",
          "source": "E:\\apache\\source\\weapons\\rounds.c",
          "first": "0x44cdb8",
          "second": "0x44d138",
          "first_instruction_count": 41,
          "second_instruction_count": 41,
          "diff": [
            "--- 0x44cdb8",
            "+++ 0x44d138",
            "@@ -10,7 +10,7 @@",
            " shl eax,0x3",
            " cmp m4[eax+None*1+winfo.c::_weapons_data],0x2",
            " jne local:31",
            "-mov ebx,m4[eax+None*1+0x672a64]",
            "+mov ebx,m4[eax+None*1+0x665a74]",
            " lea edx,m4[ecx+None*1+0xc0]",
            " cmp ebx,0x1",
            " jne local:27"
          ]
        },
        {
          "symbol": "rounds.c::update_rounds_",
          "source": "E:\\apache\\source\\weapons\\rounds.c",
          "first": "0x44cb18",
          "second": "0x44ce98",
          "first_instruction_count": 165,
          "second_instruction_count": 165,
          "diff": [
            "--- 0x44cb18",
            "+++ 0x44ce98",
            "@@ -15,7 +15,7 @@",
            " mov eax,m4[esp+None*1+0x28]",
            " cmp m4[eax+None*1+rounds.c::_rounds_in_flight],0x0",
            " je local:139",
            "-test m1[eax+None*1+0x62e824],0x1",
            "+test m1[eax+None*1+0x621834],0x1",
            " je local:139",
            " dec m4[esp+None*1+0x24]",
            " mov ebp,rounds.c::_rounds_in_flight",
            "@@ -50,7 +50,7 @@",
            " mov eax,m4[esp+None*1+0x0]",
            " call range.c::get_approx_3d_range_",
            " mov edx,m4[esp+None*1+0x28]",
            "-add m4[edx+None*1+0x62e814],eax",
            "+add m4[edx+None*1+0x621824],eax",
            " test m1[ebp+None*1+0x14],0x2",
            " je local:123",
            " cmp m4[ebp+None*1+0x0],0x1d",
            "@@ -120,7 +120,7 @@",
            " lea edx,m4[esp+None*1+0x10]",
            " mov m4[esp+None*1+0x18],ebx",
            " mov ebx,m4[None+None*1+rounds.c::_smoke_diameter]",
            "-call fxsmoke.c::draw_smoke_trail_",
            "+call smoke.c::draw_smoke_trail_",
            " lea esi,m4[ebp+None*1+0x60]",
            " mov ecx,0xc",
            " lea edi,m4[ebp+None*1+0x90]"
          ]
        },
        {
          "symbol": "rounds.c::weapon_distracted_by_decoy_",
          "source": "E:\\apache\\source\\weapons\\rounds.c",
          "first": "0x44d474",
          "second": "0x44d7f4",
          "first_instruction_count": 60,
          "second_instruction_count": 60,
          "diff": [
            "--- 0x44d474",
            "+++ 0x44d7f4",
            "@@ -32,7 +32,7 @@",
            " shl eax,0x2",
            " add eax,ebx",
            " xor ebx,ebx",
            "-mov bl,m1[None+eax*8+0x672a6d]",
            "+mov bl,m1[None+eax*8+0x665a7d]",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv ebx"
          ]
        },
        {
          "symbol": "scancirc.asm::_scan_convert_circle",
          "source": "\\library\\graphics\\scancirc.asm",
          "first": "0x4c2a2c",
          "second": "0x4b6310",
          "first_instruction_count": 754,
          "second_instruction_count": 754,
          "diff": [
            "--- 0x4c2a2c",
            "+++ 0x4b6310",
            "@@ -82,7 +82,7 @@",
            " cmp ecx,m4[None+None*1+screen.c::_screen_x_min]",
            " jge local:84",
            " or ebp,0x1",
            "-jmp m4[None+ebp*4+constant:782b4c00]",
            "+jmp m4[None+ebp*4+constant:5c644b00]",
            " cmp esi,m4[None+None*1+screen.c::_screen_y_min]",
            " jge local:88",
            " mov esi,m4[None+None*1+screen.c::_screen_y_min]"
          ]
        },
        {
          "symbol": "scangour.asm::_scan_convert_gouraud_shaded_polygon",
          "source": "\\library\\graphics\\scangour.asm",
          "first": "0x4c3564",
          "second": "0x4b6e48",
          "first_instruction_count": 90,
          "second_instruction_count": 90,
          "diff": [
            "--- 0x4c3564",
            "+++ 0x4b6e48",
            "@@ -60,7 +60,7 @@",
            " pop ebp",
            " pop edx",
            " pop eax",
            "-call m4[None+ecx*4+constant:ec364c00]",
            "+call m4[None+ecx*4+constant:d06f4b00]",
            " cmp m4[edi+None*1+0x24],0x0",
            " je local:71",
            " mov edi,esi"
          ]
        },
        {
          "symbol": "scangtxt.asm::_scan_convert_gouraud_shaded_textured_polygon",
          "source": "\\library\\graphics\\scangtxt.asm",
          "first": "0x4c3970",
          "second": "0x4b7254",
          "first_instruction_count": 118,
          "second_instruction_count": 118,
          "diff": [
            "--- 0x4c3970",
            "+++ 0x4b7254",
            "@@ -80,7 +80,7 @@",
            " pop ebp",
            " pop edx",
            " pop eax",
            "-call m4[None+ecx*4+constant:c03b4c00]",
            "+call m4[None+ecx*4+constant:a4744b00]",
            " cmp m4[edi+None*1+0x24],0x0",
            " je local:91",
            " mov edi,esi"
          ]
        },
        {
          "symbol": "scanper.c::octant_1_",
          "source": "E:\\library\\graphics\\scanper.c",
          "first": "0x46feac",
          "second": "0x46fdec",
          "first_instruction_count": 109,
          "second_instruction_count": 109,
          "diff": [
            "--- 0x46feac",
            "+++ 0x46fdec",
            "@@ -101,9 +101,9 @@",
            " mov m4[ecx+None*1+constant:00000000],esi",
            " inc edi",
            " fxch st(0),st(2)",
            "-fstp m8[eax+None*1+0x713318]",
            "+fstp m8[eax+None*1+0x7054f8]",
            " mov m4[esp+None*1+0x10],edi",
            "-fstp m8[eax+None*1+0x715258]",
            "-fstp m8[eax+None*1+0x717198]",
            "-fstp m8[eax+None*1+0x70b618]",
            "+fstp m8[eax+None*1+0x707438]",
            "+fstp m8[eax+None*1+0x709378]",
            "+fstp m8[eax+None*1+0x6fd7f8]",
            " jmp local:41"
          ]
        },
        {
          "symbol": "scanper.c::octant_2_",
          "source": "E:\\library\\graphics\\scanper.c",
          "first": "0x470034",
          "second": "0x46ff74",
          "first_instruction_count": 137,
          "second_instruction_count": 137,
          "diff": [
            "--- 0x470034",
            "+++ 0x46ff74",
            "@@ -77,9 +77,9 @@",
            " sub ecx,ebx",
            " fstp m8[None+None*1+scanper.c::_one_over_y]",
            " fxch st(0),st(1)",
            "-fstp m8[eax+None*1+0x715258]",
            "-fstp m8[eax+None*1+0x717198]",
            "-fstp m8[eax+None*1+0x70b618]",
            "+fstp m8[eax+None*1+0x707438]",
            "+fstp m8[eax+None*1+0x709378]",
            "+fstp m8[eax+None*1+0x6fd7f8]",
            " test ecx,ecx",
            " jle local:131",
            " cmp m4[esp+None*1+0x10],0x0",
            "@@ -125,9 +125,9 @@",
            " fstp m8[None+None*1+scanper.c::_y_texture]",
            " fstp m8[None+None*1+scanper.c::_one_over_y]",
            " fxch st(0),st(1)",
            "-fstp m8[eax+None*1+0x715258]",
            "-fstp m8[eax+None*1+0x717198]",
            "-fstp m8[eax+None*1+0x70b618]",
            "+fstp m8[eax+None*1+0x707438]",
            "+fstp m8[eax+None*1+0x709378]",
            "+fstp m8[eax+None*1+0x6fd7f8]",
            " jmp local:88",
            " add ecx,m4[esp+None*1+0x0]",
            " mov ebx,m4[esp+None*1+0x10]"
          ]
        },
        {
          "symbol": "scanper.c::octant_3_",
          "source": "E:\\library\\graphics\\scanper.c",
          "first": "0x470254",
          "second": "0x470194",
          "first_instruction_count": 137,
          "second_instruction_count": 137,
          "diff": [
            "--- 0x470254",
            "+++ 0x470194",
            "@@ -77,9 +77,9 @@",
            " sub ecx,ebx",
            " fstp m8[None+None*1+scanper.c::_one_over_y]",
            " fxch st(0),st(1)",
            "-fstp m8[eax+None*1+0x715258]",
            "-fstp m8[eax+None*1+0x717198]",
            "-fstp m8[eax+None*1+0x70b618]",
            "+fstp m8[eax+None*1+0x707438]",
            "+fstp m8[eax+None*1+0x709378]",
            "+fstp m8[eax+None*1+0x6fd7f8]",
            " test ecx,ecx",
            " jle local:131",
            " cmp m4[esp+None*1+0x10],0x0",
            "@@ -125,9 +125,9 @@",
            " fstp m8[None+None*1+scanper.c::_y_texture]",
            " fstp m8[None+None*1+scanper.c::_one_over_y]",
            " fxch st(0),st(1)",
            "-fstp m8[eax+None*1+0x715258]",
            "-fstp m8[eax+None*1+0x717198]",
            "-fstp m8[eax+None*1+0x70b618]",
            "+fstp m8[eax+None*1+0x707438]",
            "+fstp m8[eax+None*1+0x709378]",
            "+fstp m8[eax+None*1+0x6fd7f8]",
            " jmp local:88",
            " add ecx,m4[esp+None*1+0x0]",
            " mov ebx,m4[esp+None*1+0x10]"
          ]
        },
        {
          "symbol": "scanper.c::octant_4_",
          "source": "E:\\library\\graphics\\scanper.c",
          "first": "0x470474",
          "second": "0x4703b4",
          "first_instruction_count": 116,
          "second_instruction_count": 116,
          "diff": [
            "--- 0x470474",
            "+++ 0x4703b4",
            "@@ -102,11 +102,11 @@",
            " mov m4[ebx+None*1+constant:00000000],esi",
            " inc edi",
            " fxch st(0),st(2)",
            "-fstp m8[eax+None*1+0x713318]",
            "+fstp m8[eax+None*1+0x7054f8]",
            " mov m4[esp+None*1+0x18],edi",
            "-fstp m8[eax+None*1+0x715258]",
            "-fstp m8[eax+None*1+0x717198]",
            "-fstp m8[eax+None*1+0x70b618]",
            "+fstp m8[eax+None*1+0x707438]",
            "+fstp m8[eax+None*1+0x709378]",
            "+fstp m8[eax+None*1+0x6fd7f8]",
            " test ecx,ecx",
            " jg local:60",
            " mov esp,ebp"
          ]
        },
        {
          "symbol": "scanper.c::octant_5_",
          "source": "E:\\library\\graphics\\scanper.c",
          "first": "0x47061c",
          "second": "0x47055c",
          "first_instruction_count": 109,
          "second_instruction_count": 109,
          "diff": [
            "--- 0x47061c",
            "+++ 0x47055c",
            "@@ -101,9 +101,9 @@",
            " mov m4[ecx+None*1+constant:00000000],esi",
            " dec edi",
            " fxch st(0),st(2)",
            "-fstp m8[eax+None*1+0x7113e8]",
            "+fstp m8[eax+None*1+0x7035c8]",
            " mov m4[esp+None*1+0x10],edi",
            "-fstp m8[eax+None*1+0x70d568]",
            "-fstp m8[eax+None*1+0x70f4a8]",
            "-fstp m8[eax+None*1+0x7096e8]",
            "+fstp m8[eax+None*1+0x6ff748]",
            "+fstp m8[eax+None*1+0x701688]",
            "+fstp m8[eax+None*1+0x6fb8c8]",
            " jmp local:41"
          ]
        },
        {
          "symbol": "scanper.c::octant_6_",
          "source": "E:\\library\\graphics\\scanper.c",
          "first": "0x4707a4",
          "second": "0x4706e4",
          "first_instruction_count": 137,
          "second_instruction_count": 137,
          "diff": [
            "--- 0x4707a4",
            "+++ 0x4706e4",
            "@@ -77,9 +77,9 @@",
            " sub ecx,ebx",
            " fstp m8[None+None*1+scanper.c::_one_over_y]",
            " fxch st(0),st(1)",
            "-fstp m8[eax+None*1+0x70d568]",
            "-fstp m8[eax+None*1+0x70f4a8]",
            "-fstp m8[eax+None*1+0x7096e8]",
            "+fstp m8[eax+None*1+0x6ff748]",
            "+fstp m8[eax+None*1+0x701688]",
            "+fstp m8[eax+None*1+0x6fb8c8]",
            " test ecx,ecx",
            " jle local:131",
            " cmp m4[esp+None*1+0x10],0x0",
            "@@ -125,9 +125,9 @@",
            " fstp m8[None+None*1+scanper.c::_y_texture]",
            " fstp m8[None+None*1+scanper.c::_one_over_y]",
            " fxch st(0),st(1)",
            "-fstp m8[eax+None*1+0x70d568]",
            "-fstp m8[eax+None*1+0x70f4a8]",
            "-fstp m8[eax+None*1+0x7096e8]",
            "+fstp m8[eax+None*1+0x6ff748]",
            "+fstp m8[eax+None*1+0x701688]",
            "+fstp m8[eax+None*1+0x6fb8c8]",
            " jmp local:88",
            " add ecx,m4[esp+None*1+0x0]",
            " mov ebx,m4[esp+None*1+0x10]"
          ]
        },
        {
          "symbol": "scanper.c::octant_7_",
          "source": "E:\\library\\graphics\\scanper.c",
          "first": "0x4709c4",
          "second": "0x470904",
          "first_instruction_count": 137,
          "second_instruction_count": 137,
          "diff": [
            "--- 0x4709c4",
            "+++ 0x470904",
            "@@ -77,9 +77,9 @@",
            " sub ecx,ebx",
            " fstp m8[None+None*1+scanper.c::_one_over_y]",
            " fxch st(0),st(1)",
            "-fstp m8[eax+None*1+0x70d568]",
            "-fstp m8[eax+None*1+0x70f4a8]",
            "-fstp m8[eax+None*1+0x7096e8]",
            "+fstp m8[eax+None*1+0x6ff748]",
            "+fstp m8[eax+None*1+0x701688]",
            "+fstp m8[eax+None*1+0x6fb8c8]",
            " test ecx,ecx",
            " jle local:131",
            " cmp m4[esp+None*1+0x10],0x0",
            "@@ -125,9 +125,9 @@",
            " fstp m8[None+None*1+scanper.c::_y_texture]",
            " fstp m8[None+None*1+scanper.c::_one_over_y]",
            " fxch st(0),st(1)",
            "-fstp m8[eax+None*1+0x70d568]",
            "-fstp m8[eax+None*1+0x70f4a8]",
            "-fstp m8[eax+None*1+0x7096e8]",
            "+fstp m8[eax+None*1+0x6ff748]",
            "+fstp m8[eax+None*1+0x701688]",
            "+fstp m8[eax+None*1+0x6fb8c8]",
            " jmp local:88",
            " add ecx,m4[esp+None*1+0x0]",
            " mov ebx,m4[esp+None*1+0x10]"
          ]
        },
        {
          "symbol": "scanper.c::octant_8_",
          "source": "E:\\library\\graphics\\scanper.c",
          "first": "0x470be4",
          "second": "0x470b24",
          "first_instruction_count": 123,
          "second_instruction_count": 123,
          "diff": [
            "--- 0x470be4",
            "+++ 0x470b24",
            "@@ -109,11 +109,11 @@",
            " mov m4[ebx+None*1+constant:00000000],esi",
            " dec edi",
            " fxch st(0),st(2)",
            "-fstp m8[eax+None*1+0x7113e8]",
            "+fstp m8[eax+None*1+0x7035c8]",
            " mov m4[esp+None*1+0x18],edi",
            "-fstp m8[eax+None*1+0x70d568]",
            "-fstp m8[eax+None*1+0x70f4a8]",
            "-fstp m8[eax+None*1+0x7096e8]",
            "+fstp m8[eax+None*1+0x6ff748]",
            "+fstp m8[eax+None*1+0x701688]",
            "+fstp m8[eax+None*1+0x6fb8c8]",
            " test ecx,ecx",
            " jg local:60",
            " mov esp,ebp"
          ]
        },
        {
          "symbol": "scanper.c::scan_convert_gouraud_shaded_textured_perspective_polygon_",
          "source": "E:\\library\\graphics\\scanper.c",
          "first": "0x46fbe0",
          "second": "0x46fb20",
          "first_instruction_count": 161,
          "second_instruction_count": 161,
          "diff": [
            "--- 0x46fbe0",
            "+++ 0x46fb20",
            "@@ -17,13 +17,13 @@",
            " mov m4[None+ecx*8+scanper.c::_lhs_scan_one_over_y],ebx",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov m4[esp+None*1+0x8],eax",
            "-mov m4[None+ecx*8+0x7113e4],ebx",
            "+mov m4[None+ecx*8+0x7035c4],ebx",
            " mov ebx,m4[esp+None*1+0x0]",
            " mov m4[None+ecx*4+polygon.asm::_lhs_scan_x_crt],esi",
            " mov m4[None+ecx*8+scanper.c::_rhs_scan_one_over_y],ebx",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov m4[None+ecx*4+polygon.asm::_rhs_scan_x_crt],esi",
            "-mov m4[None+ecx*8+0x713324],ebx",
            "+mov m4[None+ecx*8+0x705504],ebx",
            " mov m4[None+None*1+polygon.asm::_scan_y_min],ecx",
            " fild m4[eax+None*1+0x1c]",
            " fstp m8[None+ecx*8+scanper.c::_lhs_scan_intensity_y]",
            "@@ -141,7 +141,7 @@",
            " cmp edx,0x7",
            " ja local:68",
            " shl edx,0x2",
            "-jmp m4[edx+None*1+shot.c::take_screen_shot_+0x10]",
            "+jmp m4[edx+None*1+shot.c::take_screen_shot_+0x320]",
            " mov edx,0x4",
            " neg ebx",
            " mov m4[esp+None*1+0x10],edx"
          ]
        },
        {
          "symbol": "scanpoly.asm::_scan_convert_polygon",
          "source": "\\library\\graphics\\scanpoly.asm",
          "first": "0x4c4094",
          "second": "0x4b7978",
          "first_instruction_count": 67,
          "second_instruction_count": 67,
          "diff": [
            "--- 0x4c4094",
            "+++ 0x4b7978",
            "@@ -41,7 +41,7 @@",
            " cmp edx,ebp",
            " jbe local:43",
            " or ecx,0x1",
            "-call m4[None+ecx*4+constant:b0414c00]",
            "+call m4[None+ecx*4+constant:947a4b00]",
            " cmp m4[edi+None*1+0x24],0x0",
            " je local:52",
            " mov edi,esi"
          ]
        },
        {
          "symbol": "scantext.asm::_scan_convert_textured_polygon",
          "source": "\\library\\graphics\\scantext.asm",
          "first": "0x4c42e0",
          "second": "0x4b7bc4",
          "first_instruction_count": 104,
          "second_instruction_count": 104,
          "diff": [
            "--- 0x4c42e0",
            "+++ 0x4b7bc4",
            "@@ -70,7 +70,7 @@",
            " pop ebp",
            " pop edx",
            " pop eax",
            "-call m4[None+ecx*4+constant:cc444c00]",
            "+call m4[None+ecx*4+constant:b07d4b00]",
            " cmp m4[edi+None*1+0x24],0x0",
            " je local:81",
            " mov edi,esi"
          ]
        },
        {
          "symbol": "scnf::scan_char_",
          "source": "scnf",
          "first": "0x4caabb",
          "second": "0x4bdfeb",
          "first_instruction_count": 87,
          "second_instruction_count": 87,
          "diff": [
            "--- 0x4caabb",
            "+++ 0x4bdfeb",
            "@@ -54,7 +54,7 @@",
            " test edx,edx",
            " je local:63",
            " and eax,0xff",
            "-mov al,m1[eax+None*1+0x10dd215]",
            "+mov al,m1[eax+None*1+0xf909c5]",
            " and al,0x1",
            " and eax,0xff",
            " je local:63"
          ]
        },
        {
          "symbol": "scnf::scan_string_",
          "source": "scnf",
          "first": "0x4cab9d",
          "second": "0x4be0cd",
          "first_instruction_count": 116,
          "second_instruction_count": 116,
          "diff": [
            "--- 0x4cab9d",
            "+++ 0x4be0cd",
            "@@ -70,7 +70,7 @@",
            " je local:79",
            " xor eax,eax",
            " mov al,bl",
            "-mov al,m1[eax+None*1+0x10dd215]",
            "+mov al,m1[eax+None*1+0xf909c5]",
            " and al,0x1",
            " and eax,0xff",
            " je local:79"
          ]
        },
        {
          "symbol": "scrnstk.c::pop_screen_",
          "source": "E:\\library\\ui\\scrnstk.c",
          "first": "0x484194",
          "second": "0x482494",
          "first_instruction_count": 53,
          "second_instruction_count": 53,
          "diff": [
            "--- 0x484194",
            "+++ 0x482494",
            "@@ -49,5 +49,5 @@",
            " ret ",
            " lea ebx,m4[ecx+None*1+0xffffffff]",
            " mov m4[None+None*1+scrnstk.c::_screen_stack_pointer],ebx",
            "-mov ebx,m4[None+ebx*4+repaint.c::_rubber_box_x2]",
            "+mov ebx,m4[None+ebx*4+repaint.c::_rubber_box_x1]",
            " jmp local:11"
          ]
        },
        {
          "symbol": "scrnstk.c::pop_screen_dark_",
          "source": "E:\\library\\ui\\scrnstk.c",
          "first": "0x484248",
          "second": "0x482548",
          "first_instruction_count": 35,
          "second_instruction_count": 35,
          "diff": [
            "--- 0x484248",
            "+++ 0x482548",
            "@@ -31,5 +31,5 @@",
            " ret ",
            " lea ebx,m4[ecx+None*1+0xffffffff]",
            " mov m4[None+None*1+scrnstk.c::_screen_stack_pointer],ebx",
            "-mov ebx,m4[None+ebx*4+repaint.c::_rubber_box_x2]",
            "+mov ebx,m4[None+ebx*4+repaint.c::_rubber_box_x1]",
            " jmp local:11"
          ]
        },
        {
          "symbol": "sdrvewnt::_dos_setdrive_",
          "source": "sdrvewnt",
          "first": "0x4c8d95",
          "second": "0x4bc3bb",
          "first_instruction_count": 20,
          "second_instruction_count": 20,
          "diff": [
            "--- 0x4c8d95",
            "+++ 0x4bc3bb",
            "@@ -12,7 +12,7 @@",
            " xor dh,dh",
            " push eax",
            " mov m1[esp+None*1+0x7],dh",
            "-call m4[None+None*1+constant:384f0d00]",
            "+call m4[None+None*1+constant:267e0c00]",
            " mov m4[ebx+None*1+0x0],0xffffffff",
            " add esp,0x4",
            " pop ecx"
          ]
        },
        {
          "symbol": "secscan.c::get_culled_cloud_sector_scan_",
          "source": "E:\\library\\3dvisual\\secscan.c",
          "first": "0x499c4c",
          "second": "0x49614c",
          "first_instruction_count": 397,
          "second_instruction_count": 400,
          "diff": [
            "--- 0x499c4c",
            "+++ 0x49614c",
            "@@ -12,11 +12,12 @@",
            " mov ebx,m4[None+None*1+3dcore.c::_cloud_mode]",
            " mov m4[esp+None*1+0x4],edx",
            " cmp ebx,0x2",
            "+je local:158",
            " mov m4[None+None*1+clouds.c::_MAX_CLOUD_SECTOR_RANGE],0xe",
            " mov ebx,m4[None+None*1+3dcore.c::_vp_pitch]",
            " mov edx,m4[None+None*1+3dcore.c::_vp_heading]",
            " cmp ebx,0x31c71c72",
            "-jle local:157",
            "+jle local:160",
            " mov ebp,0xfffffffd",
            " mov edx,0x3",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_min],ebp",
            "@@ -24,10 +25,10 @@",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_max],edx",
            " lea eax,m4[edi+ebp*1+0x0]",
            " test eax,eax",
            "-jl local:382",
            "+jl local:385",
            " lea eax,m4[edi+ebp*1+0x0]",
            " cmp eax,0x40",
            "-jl local:33",
            "+jl local:34",
            " mov ebp,0x40",
            " sub ebp,edi",
            " dec ebp",
            "@@ -36,24 +37,24 @@",
            " mov eax,edi",
            " sub eax,ecx",
            " cmp edx,eax",
            "-jge local:41",
            "+jge local:42",
            " mov ebp,ecx",
            " neg ebp",
            " lea edx,m4[edi+ebp*1+0x0]",
            " lea eax,m4[edi+None*1+0xffffffff]",
            " cmp edx,eax",
            "-jle local:48",
            "+jle local:49",
            " test edi,edi",
            "-jle local:48",
            "+jle local:49",
            " mov ebp,0xffffffff",
            " mov ebx,m4[None+None*1+clouds.c::_cloud_sector_scan_x_max]",
            " lea eax,m4[edi+ebx*1+0x0]",
            " test eax,eax",
            "-jl local:385",
            "+jl local:388",
            " mov edx,m4[None+None*1+clouds.c::_cloud_sector_scan_x_max]",
            " lea eax,m4[edi+edx*1+0x0]",
            " cmp eax,0x3f",
            "-jl local:60",
            "+jl local:61",
            " mov eax,0x40",
            " sub eax,edi",
            " sub eax,0x2",
            "@@ -63,24 +64,24 @@",
            " lea edx,m4[edi+ecx*1+0x0]",
            " lea eax,m4[edi+ebx*1+0x0]",
            " cmp edx,eax",
            "-jle local:67",
            "+jle local:68",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_x_max],ebx",
            " mov edx,m4[None+None*1+clouds.c::_cloud_sector_scan_x_max]",
            " lea eax,m4[edi+edx*1+0x0]",
            " lea edx,m4[edi+None*1+0x1]",
            " cmp eax,edx",
            "-jge local:75",
            "+jge local:76",
            " cmp edi,0x3e",
            "-jge local:75",
            "+jge local:76",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_x_max],0x1",
            " mov ebx,m4[None+None*1+clouds.c::_cloud_sector_scan_y_min]",
            " lea eax,m4[esi+ebx*1+0x0]",
            " test eax,eax",
            "-jl local:388",
            "+jl local:391",
            " mov edx,m4[None+None*1+clouds.c::_cloud_sector_scan_y_min]",
            " lea eax,m4[esi+edx*1+0x0]",
            " cmp eax,0x40",
            "-jl local:87",
            "+jl local:88",
            " mov eax,0x40",
            " sub eax,esi",
            " dec eax",
            "@@ -91,7 +92,7 @@",
            " mov eax,esi",
            " sub eax,ebx",
            " cmp edx,eax",
            "-jge local:98",
            "+jge local:99",
            " mov eax,ebx",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_min],ebx",
            " neg eax",
            "@@ -100,18 +101,18 @@",
            " add edx,esi",
            " lea eax,m4[esi+None*1+0xffffffff]",
            " cmp edx,eax",
            "-jle local:106",
            "+jle local:107",
            " test esi,esi",
            "-jle local:106",
            "+jle local:107",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_min],0xffffffff",
            " mov ebx,m4[None+None*1+clouds.c::_cloud_sector_scan_y_max]",
            " lea eax,m4[esi+ebx*1+0x0]",
            " test eax,eax",
            "-jl local:392",
            "+jl local:395",
            " mov edx,m4[None+None*1+clouds.c::_cloud_sector_scan_y_max]",
            " lea eax,m4[esi+edx*1+0x0]",
            " cmp eax,0x3f",
            "-jl local:118",
            "+jl local:119",
            " mov eax,0x40",
            " sub eax,esi",
            " sub eax,0x2",
            "@@ -121,19 +122,19 @@",
            " lea edx,m4[esi+ecx*1+0x0]",
            " lea eax,m4[esi+ebx*1+0x0]",
            " cmp edx,eax",
            "-jle local:125",
            "+jle local:126",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_max],ebx",
            " mov edx,m4[None+None*1+clouds.c::_cloud_sector_scan_y_max]",
            " add edx,esi",
            " lea eax,m4[esi+None*1+0x1]",
            " cmp edx,eax",
            "-jge local:133",
            "+jge local:134",
            " cmp esi,0x3e",
            "-jge local:133",
            "+jge local:134",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_max],0x1",
            " mov ebx,m4[esp+None*1+0x4]",
            " test ebx,ebx",
            "-je local:395",
            "+je local:398",
            " mov eax,m4[None+None*1+clouds.c::_cloud_sector_scan_y_max]",
            " mov ecx,m4[None+None*1+clouds.c::_cloud_sector_scan_y_min]",
            " mov edx,m4[None+None*1+clouds.c::_cloud_sector_scan_x_max]",
            "@@ -155,28 +156,30 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "+mov m4[None+None*1+clouds.c::_MAX_CLOUD_SECTOR_RANGE],0x12",
            "+jmp local:16",
            " cmp m4[None+None*1+3dcore.c::_cloud_mode],0x2",
            "-je local:375",
            "+je local:378",
            " sub edx,0x20000000",
            " test edx,edx",
            "-jl local:270",
            "+jl local:273",
            " cmp edx,0x40000000",
            "-jge local:270",
            "+jge local:273",
            " mov ecx,0x1",
            " cmp edx,0x20000000",
            "-jg local:287",
            "+jg local:290",
            " mov m4[None+None*1+3dcore.c::_vp_y_sector],esi",
            " mov m4[None+None*1+3dcore.c::_vp_x_sector],edi",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_x_min],ebp",
            " cmp edx,0x1f49f49f",
            "-jle local:173",
            "+jle local:176",
            " mov edx,0x1f49f49f",
            " mov eax,m4[None+None*1+clouds.c::_MAX_CLOUD_SECTOR_RANGE]",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,edx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ebx,eax",
            " mov eax,edx",
            " shr eax,0x13",
            "@@ -201,95 +204,95 @@",
            " dec ecx",
            " mov esi,m4[None+None*1+3dcore.c::_vp_y_sector]",
            " cmp ecx,0x3",
            "-ja local:205",
            "+ja local:208",
            " jmp m4[None+ecx*4+secscan.c::get_culled_sector_scan_+0xa58]",
            " mov eax,m4[None+None*1+clouds.c::_MAX_CLOUD_SECTOR_RANGE]",
            " mov ecx,m4[esp+None*1+0xc]",
            " add eax,eax",
            " mov edx,m4[esp+None*1+0x8]",
            " test eax,eax",
            "-jle local:234",
            "+jle local:237",
            " mov ebp,m4[None+None*1+clouds.c::_MAX_CLOUD_SECTOR_RANGE]",
            " cmp ecx,m4[None+None*1+clouds.c::_MAX_CLOUD_SECTOR_RANGE]",
            "-jne local:216",
            "+jne local:219",
            " dec eax",
            " inc edx",
            " mov ebx,m4[None+None*1+clouds.c::_MAX_CLOUD_SECTOR_RANGE]",
            " neg ebx",
            " cmp ecx,ebx",
            "-jne local:222",
            "+jne local:225",
            " dec eax",
            " dec edx",
            " mov ebx,m4[None+None*1+clouds.c::_MAX_CLOUD_SECTOR_RANGE]",
            " neg ebx",
            " cmp edx,ebx",
            "-jne local:228",
            "+jne local:231",
            " dec eax",
            " inc ecx",
            " cmp edx,ebp",
            "-jne local:232",
            "+jne local:235",
            " dec eax",
            " dec ecx",
            " test eax,eax",
            "-jg local:212",
            "+jg local:215",
            " mov ebx,m4[esp+None*1+0x8]",
            " cmp edx,ebx",
            "-jle local:345",
            "+jle local:348",
            " mov eax,ebx",
            " test eax,eax",
            "-jle local:347",
            "+jle local:350",
            " xor eax,eax",
            " mov ebp,eax",
            " mov eax,m4[esp+None*1+0xc]",
            " cmp ecx,eax",
            "-jle local:354",
            "-test eax,eax",
            "-jle local:356",
            "+jle local:357",
            "+test eax,eax",
            "+jle local:359",
            " xor eax,eax",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_min],eax",
            " mov eax,m4[esp+None*1+0x8]",
            " cmp edx,eax",
            "-jge local:363",
            "-test eax,eax",
            "-jl local:365",
            "+jge local:366",
            "+test eax,eax",
            "+jl local:368",
            " mov ebx,m4[esp+None*1+0x8]",
            " cmp edx,ebx",
            "-jge local:258",
            "+jge local:261",
            " mov edx,ebx",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_x_max],edx",
            " cmp ecx,eax",
            "-jge local:367",
            "-test eax,eax",
            "-jl local:369",
            "+jge local:370",
            "+test eax,eax",
            "+jl local:372",
            " mov edx,m4[esp+None*1+0xc]",
            " cmp ecx,edx",
            "-jge local:372",
            "-mov eax,edx",
            "-mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_max],eax",
            "-jmp local:24",
            "+jge local:375",
            "+mov eax,edx",
            "+mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_max],eax",
            "+jmp local:25",
            " cmp edx,0x40000000",
            "-jl local:275",
            "+jl local:278",
            " mov ecx,0x2",
            " sub edx,0x40000000",
            "-jmp local:165",
            "+jmp local:168",
            " test edx,edx",
            "-jl local:282",
            "+jl local:285",
            " cmp edx,0xc0000000",
            "-jg local:165",
            "+jg local:168",
            " mov ecx,0x4",
            " add edx,0x80000000",
            "-jmp local:165",
            "+jmp local:168",
            " cmp edx,0xc0000000",
            "-jle local:277",
            "+jle local:280",
            " mov ecx,0x3",
            " add edx,0x40000000",
            "-jmp local:165",
            "+jmp local:168",
            " mov m4[None+None*1+3dcore.c::_vp_y_sector],esi",
            " mov m4[None+None*1+3dcore.c::_vp_x_sector],edi",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_x_min],ebp",
            " cmp edx,0x20b60b61",
            "-jge local:293",
            "+jge local:296",
            " mov edx,0x20b60b61",
            " mov eax,m4[None+None*1+clouds.c::_MAX_CLOUD_SECTOR_RANGE]",
            " mov m4[esp+None*1+0x8],eax",
            "@@ -298,7 +301,7 @@",
            " mov edx,eax",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ebx,eax",
            " mov eax,edx",
            " shr eax,0x13",
            "@@ -319,7 +322,7 @@",
            " fmulp st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0xc]",
            "-jmp local:199",
            "+jmp local:202",
            " mov edx,m4[esp+None*1+0x8]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov ebp,edx",
            "@@ -327,7 +330,7 @@",
            " neg ebp",
            " mov m4[esp+None*1+0x8],eax",
            " mov m4[esp+None*1+0xc],ebp",
            "-jmp local:205",
            "+jmp local:208",
            " mov eax,m4[esp+None*1+0xc]",
            " mov edx,m4[esp+None*1+0x8]",
            " mov ebx,eax",
            "@@ -335,63 +338,63 @@",
            " neg ebx",
            " mov m4[esp+None*1+0xc],edx",
            " mov m4[esp+None*1+0x8],ebx",
            "-jmp local:205",
            "+jmp local:208",
            " mov ecx,m4[esp+None*1+0xc]",
            " mov edx,m4[esp+None*1+0x8]",
            " neg ecx",
            " neg edx",
            " mov m4[esp+None*1+0xc],ecx",
            " mov m4[esp+None*1+0x8],edx",
            "-jmp local:205",
            "-mov eax,edx",
            "-jmp local:238",
            "+jmp local:208",
            "+mov eax,edx",
            "+jmp local:241",
            " mov ebp,m4[esp+None*1+0x8]",
            " cmp edx,ebp",
            "-jle local:352",
            "+jle local:355",
            " mov eax,ebp",
            "-jmp local:241",
            "-mov eax,edx",
            "-jmp local:241",
            "+jmp local:244",
            "+mov eax,edx",
            "+jmp local:244",
            " mov eax,ecx",
            "-jmp local:245",
            "+jmp local:248",
            " mov ebx,m4[esp+None*1+0xc]",
            " cmp ecx,ebx",
            "-jle local:361",
            "+jle local:364",
            " mov eax,ebx",
            "-jmp local:248",
            "+jmp local:251",
            " mov eax,ecx",
            "-jmp local:248",
            "-mov eax,edx",
            "-jmp local:252",
            "+jmp local:251",
            "+mov eax,edx",
            "+jmp local:255",
            " xor edx,edx",
            "-jmp local:258",
            "+jmp local:261",
            " mov eax,ecx",
            "-jmp local:262",
            "+jmp local:265",
            " xor eax,eax",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_max],eax",
            "-jmp local:24",
            "+jmp local:25",
            " mov eax,ecx",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_max],eax",
            "-jmp local:24",
            "+jmp local:25",
            " mov ebp,m4[None+None*1+clouds.c::_MAX_CLOUD_SECTOR_RANGE]",
            " mov eax,m4[None+None*1+clouds.c::_MAX_CLOUD_SECTOR_RANGE]",
            " neg ebp",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_x_max],eax",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_max],eax",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_min],ebp",
            "-jmp local:24",
            "+jmp local:25",
            " lea ebp,m4[edi+None*1+0xffffffff]",
            " imul ebp,ebp,0xffffffff",
            "-jmp local:27",
            "+jmp local:28",
            " lea eax,m4[edi+None*1+0x1]",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_x_max],eax",
            "-jmp local:52",
            "+jmp local:53",
            " lea eax,m4[esi+None*1+0xffffffff]",
            " imul eax,eax,0xffffffff",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_min],eax",
            "-jmp local:79",
            "+jmp local:80",
            " lea eax,m4[esi+None*1+0x1]",
            " mov m4[None+None*1+clouds.c::_cloud_sector_scan_y_max],eax",
            "-jmp local:110",
            "+jmp local:111",
            " mov m4[None+None*1+secscan.c::_num_visible_sectors],ebx",
            "-jmp local:145",
            "+jmp local:146"
          ]
        },
        {
          "symbol": "secscan.c::get_culled_sector_scan_",
          "source": "E:\\library\\3dvisual\\secscan.c",
          "first": "0x4991e4",
          "second": "0x4956e4",
          "first_instruction_count": 668,
          "second_instruction_count": 668,
          "diff": [
            "--- 0x4991e4",
            "+++ 0x4956e4",
            "@@ -8,37 +8,37 @@",
            " mov ecx,0x7fffffff",
            " mov eax,m4[None+None*1+3dconfig.c::_visual_configuration]",
            " xor edx,edx",
            "-mov ebp,m4[None+None*1+0xaff11c]",
            "+mov ebp,m4[None+None*1+0xae9ca0]",
            " mov m4[esp+None*1+0x4],edx",
            " mov m4[None+None*1+secscan.c::_sector_scan_x_min],ecx",
            " mov m4[esp+None*1+0x8],eax",
            " mov edx,m4[None+None*1+3dcore.c::_vp_xeo_ss]",
            "-mov eax,m4[None+None*1+0xafe788]",
            "+mov eax,m4[None+None*1+0xae9814]",
            " add edx,ebp",
            " mov m4[None+None*1+secscan.c::_sector_scan_y_min],ecx",
            " lea ecx,m4[edx+eax*1+0x0]",
            " mov eax,m4[None+None*1+3dcore.c::_vp_yeo_ss]",
            " mov m4[None+None*1+vertex.c::_quad],ecx",
            "-mov ecx,m4[None+None*1+0xafe744]",
            "+mov ecx,m4[None+None*1+0xae97d0]",
            " add ecx,eax",
            "-mov eax,m4[None+None*1+0xafdcf0]",
            "+mov eax,m4[None+None*1+0xae978c]",
            " lea ebx,m4[ecx+eax*1+0x0]",
            " mov eax,m4[None+None*1+3dcore.c::_vp_zeo_ss]",
            " mov m4[None+None*1+constant:00000000],ebx",
            "-add eax,m4[None+None*1+0xaff0d8]",
            "-mov ebx,m4[None+None*1+0xaff568]",
            "+add eax,m4[None+None*1+0xae9c5c]",
            "+mov ebx,m4[None+None*1+0xae9ce8]",
            " mov esi,0x80000000",
            " lea ebp,m4[eax+ebx*1+0x0]",
            "-mov ebx,m4[None+None*1+0xafe79c]",
            "-mov edi,m4[None+None*1+0xafe758]",
            "+mov ebx,m4[None+None*1+0xae9828]",
            "+mov edi,m4[None+None*1+0xae97e4]",
            " add edx,ebx",
            " mov m4[None+None*1+secscan.c::_sector_scan_x_max],esi",
            " mov m4[None+None*1+constant:00000000],edx",
            "-mov edx,m4[None+None*1+0xafdd04]",
            "+mov edx,m4[None+None*1+0xae97a0]",
            " mov m4[None+None*1+secscan.c::_sector_scan_y_max],esi",
            " add ecx,edx",
            "-mov edx,m4[None+None*1+0xaff57c]",
            "-mov esi,m4[None+None*1+0xaff130]",
            "+mov edx,m4[None+None*1+0xae9cfc]",
            "+mov esi,m4[None+None*1+0xae9cb4]",
            " add eax,edx",
            " mov edx,m4[None+None*1+3dcore.c::_vp_xeo_ss]",
            " mov m4[None+None*1+constant:00000000],ebp",
            "@@ -48,27 +48,27 @@",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov m4[None+None*1+constant:00000000],ecx",
            " mov ecx,m4[None+None*1+3dcore.c::_vp_yeo_ss]",
            "-mov eax,m4[None+None*1+0xafdd04]",
            "+mov eax,m4[None+None*1+0xae97a0]",
            " add ecx,edi",
            "-mov ebp,m4[None+None*1+0xaff0ec]",
            "+mov ebp,m4[None+None*1+0xae9c70]",
            " lea ebx,m4[ecx+eax*1+0x0]",
            " mov eax,m4[None+None*1+3dcore.c::_vp_zeo_ss]",
            " mov m4[None+None*1+constant:00000000],ebx",
            "-mov ebx,m4[None+None*1+0xaff57c]",
            "+mov ebx,m4[None+None*1+0xae9cfc]",
            " add eax,ebp",
            " lea ebp,m4[eax+ebx*1+0x0]",
            "-mov ebx,m4[None+None*1+0xafe788]",
            "+mov ebx,m4[None+None*1+0xae9814]",
            " add edx,ebx",
            " mov m4[None+None*1+constant:00000000],edx",
            "-mov edx,m4[None+None*1+0xafdcf0]",
            "+mov edx,m4[None+None*1+0xae978c]",
            " add ecx,edx",
            "-mov edx,m4[None+None*1+0xaff568]",
            "+mov edx,m4[None+None*1+0xae9ce8]",
            " add eax,edx",
            " mov m4[None+None*1+constant:00000000],ebp",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,vertex.c::_quad",
            " mov m4[None+None*1+constant:00000000],ecx",
            "-call fx3dpoly.c::get_3d_clipped_polygon_",
            "+call 3dpoly.c::get_3d_clipped_polygon_",
            " mov ebp,eax",
            " test eax,eax",
            " je local:219",
            "@@ -88,11 +88,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[None+None*1+0xae9734]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xae9740]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -105,15 +105,15 @@",
            " mov ebx,m4[ebp+None*1+0x4]",
            " mov eax,m4[ebp+None*1+0x0]",
            " mov m4[esp+None*1+0x0],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "+mov edx,m4[None+None*1+0xae972c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -218,84 +218,84 @@",
            " mov m4[None+None*1+secscan.c::_sector_scan_y_max],edx",
            " mov m4[esp+None*1+0x4],0x1",
            " mov ecx,m4[None+None*1+3dcore.c::_vp_xeo_ss]",
            "-mov esi,m4[None+None*1+0xafecd4]",
            "-mov edx,m4[None+None*1+0xafe340]",
            "+mov esi,m4[None+None*1+0xae9858]",
            "+mov edx,m4[None+None*1+0xae7f54]",
            " add ecx,esi",
            "-mov eax,m4[None+None*1+0xafdc94]",
            "+mov eax,m4[None+None*1+0xae77e8]",
            " add edx,ecx",
            " add edx,eax",
            "-mov edi,m4[None+None*1+0xafdf3c]",
            "+mov edi,m4[None+None*1+0xae7b50]",
            " mov m4[None+None*1+vertex.c::_quad],edx",
            " mov edx,m4[None+None*1+3dcore.c::_vp_yeo_ss]",
            "-mov ebx,m4[None+None*1+0xafd868]",
            "+mov ebx,m4[None+None*1+0xae73bc]",
            " add edx,edi",
            "-mov eax,m4[None+None*1+0xafd604]",
            "+mov eax,m4[None+None*1+0xae7158]",
            " add ebx,edx",
            "-mov ebp,m4[None+None*1+0xafe7cc]",
            "+mov ebp,m4[None+None*1+0xae8560]",
            " add ebx,eax",
            " mov eax,m4[None+None*1+3dcore.c::_vp_zeo_ss]",
            " mov m4[None+None*1+constant:00000000],ebx",
            "-mov ebx,m4[None+None*1+0xaff164]",
            "+mov ebx,m4[None+None*1+0xae8d74]",
            " add eax,ebp",
            "-mov ebp,m4[None+None*1+0xaff5d4]",
            "+mov ebp,m4[None+None*1+0xae94ac]",
            " add ebx,eax",
            " add ebx,ebp",
            " mov m4[None+None*1+constant:00000000],ebx",
            "-mov ebx,m4[None+None*1+0xafe354]",
            "+mov ebx,m4[None+None*1+0xae7f68]",
            " add ebx,ecx",
            "-mov ecx,m4[None+None*1+0xafdc94]",
            "-mov esi,m4[None+None*1+0xafece8]",
            "+mov ecx,m4[None+None*1+0xae77e8]",
            "+mov esi,m4[None+None*1+0xae986c]",
            " add ebx,ecx",
            "-mov ecx,m4[None+None*1+0xafd87c]",
            "+mov ecx,m4[None+None*1+0xae73d0]",
            " mov m4[None+None*1+constant:00000000],ebx",
            "-mov ebx,m4[None+None*1+0xaff178]",
            "+mov ebx,m4[None+None*1+0xae8d88]",
            " add edx,ecx",
            "-mov ecx,m4[None+None*1+0xafd604]",
            "+mov ecx,m4[None+None*1+0xae7158]",
            " add eax,ebx",
            " add edx,ecx",
            " add eax,ebp",
            " mov m4[None+None*1+constant:00000000],edx",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov edx,m4[None+None*1+3dcore.c::_vp_xeo_ss]",
            "-mov eax,m4[None+None*1+0xafe354]",
            "+mov eax,m4[None+None*1+0xae7f68]",
            " add edx,esi",
            "-mov ecx,m4[None+None*1+0xafdc94]",
            "+mov ecx,m4[None+None*1+0xae77e8]",
            " add eax,edx",
            " add eax,ecx",
            "-mov edi,m4[None+None*1+0xafdf50]",
            "+mov edi,m4[None+None*1+0xae7b64]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[None+None*1+3dcore.c::_vp_yeo_ss]",
            "-mov ecx,m4[None+None*1+0xafd87c]",
            "+mov ecx,m4[None+None*1+0xae73d0]",
            " add eax,edi",
            "-mov ebx,m4[None+None*1+0xafd604]",
            "+mov ebx,m4[None+None*1+0xae7158]",
            " add ecx,eax",
            " add ecx,ebx",
            "-mov ebp,m4[None+None*1+0xafe7e0]",
            "+mov ebp,m4[None+None*1+0xae8574]",
            " mov m4[None+None*1+constant:00000000],ecx",
            " mov ecx,m4[None+None*1+3dcore.c::_vp_zeo_ss]",
            "-mov ebx,m4[None+None*1+0xaff178]",
            "+mov ebx,m4[None+None*1+0xae8d88]",
            " add ecx,ebp",
            "-mov ebp,m4[None+None*1+0xaff5d4]",
            "+mov ebp,m4[None+None*1+0xae94ac]",
            " add ebx,ecx",
            "-mov esi,m4[None+None*1+0xafd868]",
            "+mov esi,m4[None+None*1+0xae73bc]",
            " add ebp,ebx",
            "-mov ebx,m4[None+None*1+0xafe340]",
            "-mov edi,m4[None+None*1+0xaff164]",
            "+mov ebx,m4[None+None*1+0xae7f54]",
            "+mov edi,m4[None+None*1+0xae8d74]",
            " add edx,ebx",
            "-mov ebx,m4[None+None*1+0xafdc94]",
            "+mov ebx,m4[None+None*1+0xae77e8]",
            " add eax,esi",
            " add ebx,edx",
            "-mov edx,m4[None+None*1+0xafd604]",
            "+mov edx,m4[None+None*1+0xae7158]",
            " add ecx,edi",
            " add edx,eax",
            "-mov eax,m4[None+None*1+0xaff5d4]",
            "+mov eax,m4[None+None*1+0xae94ac]",
            " mov m4[None+None*1+constant:00000000],ebp",
            " add eax,ecx",
            " mov m4[None+None*1+constant:00000000],ebx",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,vertex.c::_quad",
            " mov m4[None+None*1+constant:00000000],edx",
            "-call fx3dpoly.c::get_3d_clipped_polygon_",
            "+call 3dpoly.c::get_3d_clipped_polygon_",
            " mov ebp,eax",
            " test eax,eax",
            " je local:483",
            "@@ -315,11 +315,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[None+None*1+0xae9734]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xae9740]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -332,15 +332,15 @@",
            " mov ebx,m4[ebp+None*1+0x4]",
            " mov eax,m4[ebp+None*1+0x0]",
            " mov m4[esp+None*1+0x0],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "+mov edx,m4[None+None*1+0xae972c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -483,7 +483,7 @@",
            " mov m4[esp+None*1+0x4],0x1",
            " cmp m4[None+None*1+3dcore.c::_vp_inside_sector_map_extent],0x0",
            " je local:498",
            "-cmp m4[None+None*1+0xafaef8],0x400000",
            "+cmp m4[None+None*1+0xae55a8],0x400000",
            " jg local:498",
            " mov eax,m4[None+None*1+3dcore.c::_vp_heading]",
            " mov ebp,m4[esp+None*1+0x4]"
          ]
        },
        {
          "symbol": "secscan.c::get_map_sector_visibility_",
          "source": "E:\\library\\3dvisual\\secscan.c",
          "first": "0x49a6c8",
          "second": "0x496be0",
          "first_instruction_count": 50,
          "second_instruction_count": 50,
          "diff": [
            "--- 0x49a6c8",
            "+++ 0x496be0",
            "@@ -6,34 +6,34 @@",
            " mov eax,m4[None+None*1+secscan.c::_map_xeo]",
            " mov m4[esp+None*1+0x0],eax",
            " mov eax,m4[None+None*1+secscan.c::_map_yeo]",
            "-mov edx,m4[None+None*1+0xafd188]",
            "+mov edx,m4[None+None*1+0xae6d0c]",
            " mov m4[esp+None*1+0x10],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " add eax,edx",
            "-mov edx,m4[None+None*1+0xafc774]",
            "-mov ecx,m4[None+None*1+0xafcb38]",
            "+mov edx,m4[None+None*1+0xae60f0]",
            "+mov ecx,m4[None+None*1+0xae64b4]",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x10]",
            " mov m4[esp+None*1+0x4],edx",
            "-mov edx,m4[None+None*1+0xafc0e0]",
            "+mov edx,m4[None+None*1+0xae5a5c]",
            " add eax,ecx",
            "-mov ebx,m4[None+None*1+0xafd1c8]",
            "+mov ebx,m4[None+None*1+0xae6d4c]",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xafc774]",
            "+mov edx,m4[None+None*1+0xae60f0]",
            " add eax,ebx",
            " add edx,eax",
            "-mov esi,m4[None+None*1+0xafcb78]",
            "+mov esi,m4[None+None*1+0xae64f4]",
            " mov m4[esp+None*1+0x8],edx",
            " mov edx,m4[esp+None*1+0x10]",
            "-mov ecx,m4[None+None*1+0xafc0e0]",
            "+mov ecx,m4[None+None*1+0xae5a5c]",
            " add edx,esi",
            " add ecx,edx",
            " mov m4[esp+None*1+0x18],ecx",
            "-mov ecx,m4[None+None*1+0xafc734]",
            "+mov ecx,m4[None+None*1+0xae60b0]",
            " add ecx,eax",
            "-mov eax,m4[None+None*1+0xafc0a0]",
            "+mov eax,m4[None+None*1+0xae5a1c]",
            " mov ebx,0x4",
            " add eax,edx",
            " lea edx,m4[esp+None*1+0x10]"
          ]
        },
        {
          "symbol": "secscan.c::get_rons_culled_sector_scan_",
          "source": "E:\\library\\3dvisual\\secscan.c",
          "first": "0x497c80",
          "second": "0x494180",
          "first_instruction_count": 1336,
          "second_instruction_count": 1336,
          "diff": [
            "--- 0x497c80",
            "+++ 0x494180",
            "@@ -35,11 +35,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xae9734]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9740]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -53,15 +53,15 @@",
            " mov eax,m4[esp+None*1+0x74]",
            " mov m4[esp+None*1+0x114],edx",
            " mov m4[esp+None*1+0x98],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xae972c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -75,15 +75,15 @@",
            " mov eax,m4[esp+None*1+0x74]",
            " mov m4[esp+None*1+0xf8],edx",
            " mov m4[esp+None*1+0x9c],edx",
            "-mov edx,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xae9730]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -108,11 +108,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xae9734]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9740]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -126,15 +126,15 @@",
            " mov eax,m4[esp+None*1+0x38]",
            " mov m4[esp+None*1+0xfc],edx",
            " mov m4[esp+None*1+0xc8],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xae972c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -148,15 +148,15 @@",
            " mov eax,m4[esp+None*1+0x38]",
            " mov m4[esp+None*1+0x100],edx",
            " mov m4[esp+None*1+0xcc],edx",
            "-mov edx,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xae9730]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -181,11 +181,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xae9734]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9740]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -199,15 +199,15 @@",
            " mov eax,m4[esp+None*1+0x68]",
            " mov m4[esp+None*1+0x154],edx",
            " mov m4[esp+None*1+0x5c],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xae972c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -221,15 +221,15 @@",
            " mov eax,m4[esp+None*1+0x68]",
            " mov m4[esp+None*1+0xe0],edx",
            " mov m4[esp+None*1+0x60],edx",
            "-mov edx,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xae9730]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -254,11 +254,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xae9734]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9740]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -272,15 +272,15 @@",
            " mov eax,m4[esp+None*1+0xb0]",
            " mov m4[esp+None*1+0xe8],edx",
            " mov m4[esp+None*1+0x8c],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xae972c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -294,15 +294,15 @@",
            " mov eax,m4[esp+None*1+0xb0]",
            " mov m4[esp+None*1+0x158],edx",
            " mov m4[esp+None*1+0x90],edx",
            "-mov edx,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xae9730]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -314,11 +314,11 @@",
            " mov eax,m4[esp+None*1+0x114]",
            " mov ecx,m4[None+None*1+3dcore.c::_vp]",
            " add eax,ecx",
            "-mov ebx,m4[None+None*1+0xafaef4]",
            "+mov ebx,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x98],eax",
            " mov eax,m4[esp+None*1+0xf8]",
            " add eax,ebx",
            "-mov esi,m4[None+None*1+0xafaef8]",
            "+mov esi,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x9c],eax",
            " mov eax,m4[esp+None*1+0x10c]",
            " add eax,esi",
            "@@ -368,7 +368,7 @@",
            " mov eax,m4[esp+None*1+0x90]",
            " mov m4[esp+None*1+0x108],edx",
            " sub eax,ebx",
            "-mov esi,m4[None+None*1+0xafaef8]",
            "+mov esi,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x158],eax",
            " mov eax,m4[esp+None*1+0x94]",
            " fild m4[esp+None*1+0x154]",
            "@@ -385,11 +385,11 @@",
            " xor edx,edx",
            " mov eax,m4[esp+None*1+0x5c]",
            " sub eax,m4[None+None*1+3dcore.c::_vp]",
            "-mov edi,m4[None+None*1+0xafaef4]",
            "+mov edi,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x154],eax",
            " mov eax,m4[esp+None*1+0x60]",
            " sub eax,edi",
            "-mov ecx,m4[None+None*1+0xafaef8]",
            "+mov ecx,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x158],eax",
            " mov eax,m4[esp+None*1+0x64]",
            " fild m4[esp+None*1+0x154]",
            "@@ -440,11 +440,11 @@",
            " fistp m4[esp+None*1+0x80]",
            " mov eax,m4[esp+None*1+0x98]",
            " sub eax,m4[None+None*1+3dcore.c::_vp]",
            "-mov edi,m4[None+None*1+0xafaef4]",
            "+mov edi,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x154],eax",
            " mov eax,m4[esp+None*1+0x9c]",
            " sub eax,edi",
            "-mov ecx,m4[None+None*1+0xafaef8]",
            "+mov ecx,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x158],eax",
            " mov eax,m4[esp+None*1+0xa0]",
            " fild m4[esp+None*1+0x154]",
            "@@ -495,11 +495,11 @@",
            " fistp m4[esp+None*1+0xa4]",
            " mov eax,m4[esp+None*1+0xc8]",
            " sub eax,m4[None+None*1+3dcore.c::_vp]",
            "-mov edi,m4[None+None*1+0xafaef4]",
            "+mov edi,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x158],eax",
            " mov eax,m4[esp+None*1+0xcc]",
            " sub eax,edi",
            "-mov ecx,m4[None+None*1+0xafaef8]",
            "+mov ecx,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x154],eax",
            " mov eax,m4[esp+None*1+0xd0]",
            " fild m4[esp+None*1+0x158]",
            "@@ -554,11 +554,11 @@",
            " mov eax,m4[None+None*1+3dcore.c::_vp]",
            " mov ebx,m4[esp+None*1+0x44]",
            " sub esi,eax",
            "-mov eax,m4[None+None*1+0xafaef4]",
            "+mov eax,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0xa4],esi",
            " mov esi,m4[esp+None*1+0x48]",
            " sub edi,eax",
            "-mov eax,m4[None+None*1+0xafaef8]",
            "+mov eax,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0xa8],edi",
            " mov edi,m4[esp+None*1+0x4c]",
            " sub ecx,eax",
            "@@ -566,11 +566,11 @@",
            " mov m4[esp+None*1+0xac],ecx",
            " mov ecx,m4[esp+None*1+0x80]",
            " sub ebx,eax",
            "-mov eax,m4[None+None*1+0xafaef4]",
            "+mov eax,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x44],ebx",
            " mov ebx,m4[esp+None*1+0x84]",
            " sub esi,eax",
            "-mov eax,m4[None+None*1+0xafaef8]",
            "+mov eax,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x48],esi",
            " mov esi,m4[esp+None*1+0x88]",
            " sub edi,eax",
            "@@ -578,11 +578,11 @@",
            " mov m4[esp+None*1+0x4c],edi",
            " mov edi,m4[esp+None*1+0xbc]",
            " sub ecx,eax",
            "-mov eax,m4[None+None*1+0xafaef4]",
            "+mov eax,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x80],ecx",
            " mov ecx,m4[esp+None*1+0xc0]",
            " sub ebx,eax",
            "-mov eax,m4[None+None*1+0xafaef8]",
            "+mov eax,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x84],ebx",
            " mov ebx,m4[esp+None*1+0xc4]",
            " sub esi,eax",
            "@@ -590,10 +590,10 @@",
            " mov m4[esp+None*1+0x88],esi",
            " sub edi,eax",
            " xor esi,esi",
            "-mov eax,m4[None+None*1+0xafaef4]",
            "+mov eax,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0xbc],edi",
            " sub ecx,eax",
            "-mov eax,m4[None+None*1+0xafaef8]",
            "+mov eax,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x150],esi",
            " sub ebx,eax",
            " mov m4[esp+None*1+0xc0],ecx",
            "@@ -607,11 +607,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae972c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -624,15 +624,15 @@",
            " mov ebx,m4[esp+None*1+0xc0]",
            " mov eax,m4[esp+None*1+0xbc]",
            " mov m4[esp+None*1+0xb0],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xae9734]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -645,15 +645,15 @@",
            " mov ebx,m4[esp+None*1+0xc0]",
            " mov eax,m4[esp+None*1+0xbc]",
            " mov m4[esp+None*1+0xb4],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xae9740]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -677,11 +677,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae972c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -694,15 +694,15 @@",
            " mov ebx,m4[esp+None*1+0x84]",
            " mov eax,m4[esp+None*1+0x80]",
            " mov m4[esp+None*1+0x68],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xae9734]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -715,15 +715,15 @@",
            " mov ebx,m4[esp+None*1+0x84]",
            " mov eax,m4[esp+None*1+0x80]",
            " mov m4[esp+None*1+0x6c],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xae9740]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -750,11 +750,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae972c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -767,15 +767,15 @@",
            " mov ebx,m4[esp+None*1+0xa8]",
            " mov eax,m4[esp+None*1+0xa4]",
            " mov m4[esp+None*1+0x74],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xae9734]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -788,15 +788,15 @@",
            " mov ebx,m4[esp+None*1+0xa8]",
            " mov eax,m4[esp+None*1+0xa4]",
            " mov m4[esp+None*1+0x78],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xae9740]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -823,11 +823,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae972c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -840,15 +840,15 @@",
            " mov ebx,m4[esp+None*1+0x48]",
            " mov eax,m4[esp+None*1+0x44]",
            " mov m4[esp+None*1+0x38],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xae9734]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -861,15 +861,15 @@",
            " mov ebx,m4[esp+None*1+0x48]",
            " mov eax,m4[esp+None*1+0x44]",
            " mov m4[esp+None*1+0x3c],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xae9740]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -962,7 +962,7 @@",
            " mov eax,m4[None+None*1+3dcore.c::_vp]",
            " mov m4[esp+None*1+0xbc],eax",
            " jmp local:385",
            "-mov eax,m4[None+None*1+0xafaef4]",
            "+mov eax,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x84],eax",
            " jmp local:424",
            " mov eax,m4[None+None*1+3dcore.c::_vp]",
            "@@ -971,7 +971,7 @@",
            " xor esi,esi",
            " mov m4[esp+None*1+0x104],esi",
            " jmp local:440",
            "-mov eax,m4[None+None*1+0xafaef4]",
            "+mov eax,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0xa8],eax",
            " jmp local:479",
            " mov eax,m4[None+None*1+3dcore.c::_vp]",
            "@@ -980,7 +980,7 @@",
            " xor esi,esi",
            " mov m4[esp+None*1+0xf4],esi",
            " jmp local:495",
            "-mov eax,m4[None+None*1+0xafaef4]",
            "+mov eax,m4[None+None*1+0xae55a4]",
            " mov m4[esp+None*1+0x48],eax",
            " jmp local:534",
            " mov eax,m4[None+None*1+3dcore.c::_vp]",
            "@@ -1006,11 +1006,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xae9734]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9740]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -1026,15 +1026,15 @@",
            " mov ebx,m4[ebx+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x0]",
            " mov m4[esp+None*1+0x110],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xae972c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -1050,15 +1050,15 @@",
            " mov ebx,m4[ebx+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x0]",
            " mov m4[esp+None*1+0x118],edx",
            "-mov edx,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xae9730]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -1068,9 +1068,9 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " fld m8[None+None*1+constant:000020000000003e]",
            "-fild m4[None+None*1+0xafaf08]",
            "+fild m4[None+None*1+0xae55b8]",
            " fmul st(1)",
            "-fild m4[None+None*1+0xafaf0c]",
            "+fild m4[None+None*1+0xae55bc]",
            " fmulp st(2)",
            " fst m8[esp+None*1+0x8]",
            " fmul m8[esp+None*1+0x8]"
          ]
        },
        {
          "symbol": "secscan.c::get_sector_visibility_",
          "source": "E:\\library\\3dvisual\\secscan.c",
          "first": "0x49a20c",
          "second": "0x496724",
          "first_instruction_count": 111,
          "second_instruction_count": 111,
          "diff": [
            "--- 0x49a20c",
            "+++ 0x496724",
            "@@ -10,60 +10,60 @@",
            " mov eax,m4[None+None*1+secscan.c::_yeo]",
            " mov m4[esp+None*1+0x20],eax",
            " mov eax,m4[None+None*1+secscan.c::_zeo]",
            "-mov edx,m4[None+None*1+0xafeebc]",
            "+mov edx,m4[None+None*1+0xae9a40]",
            " mov m4[esp+None*1+0x40],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " add eax,edx",
            "-mov edx,m4[None+None*1+0xafe568]",
            "-mov ecx,m4[None+None*1+0xafe124]",
            "+mov edx,m4[None+None*1+0xae817c]",
            "+mov ecx,m4[None+None*1+0xae7d38]",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x20]",
            " mov m4[esp+None*1+0x4],edx",
            "-mov edx,m4[None+None*1+0xafda90]",
            "+mov edx,m4[None+None*1+0xae75e4]",
            " add eax,ecx",
            "-mov ebx,m4[None+None*1+0xafe9b4]",
            "+mov ebx,m4[None+None*1+0xae8748]",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[esp+None*1+0x24],edx",
            "-mov edx,m4[None+None*1+0xaff38c]",
            "+mov edx,m4[None+None*1+0xae8f9c]",
            " add eax,ebx",
            "-mov esi,m4[None+None*1+0xafeefc]",
            "+mov esi,m4[None+None*1+0xae9a80]",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x44],edx",
            "-mov edx,m4[None+None*1+0xafe568]",
            "+mov edx,m4[None+None*1+0xae817c]",
            " add eax,esi",
            " add edx,eax",
            "-mov edi,m4[None+None*1+0xafe164]",
            "+mov edi,m4[None+None*1+0xae7d78]",
            " mov m4[esp+None*1+0x8],edx",
            " mov edx,m4[esp+None*1+0x20]",
            "-mov ecx,m4[None+None*1+0xafda90]",
            "+mov ecx,m4[None+None*1+0xae75e4]",
            " add edx,edi",
            " add ecx,edx",
            "-mov ebp,m4[None+None*1+0xafe9f4]",
            "+mov ebp,m4[None+None*1+0xae8788]",
            " mov m4[esp+None*1+0x28],ecx",
            " mov ecx,m4[esp+None*1+0x40]",
            "-mov ebx,m4[None+None*1+0xaff38c]",
            "+mov ebx,m4[None+None*1+0xae8f9c]",
            " add ecx,ebp",
            " add ebx,ecx",
            " mov m4[esp+None*1+0x48],ebx",
            "-mov ebx,m4[None+None*1+0xafe528]",
            "+mov ebx,m4[None+None*1+0xae813c]",
            " add ebx,eax",
            "-mov eax,m4[None+None*1+0xafda50]",
            "+mov eax,m4[None+None*1+0xae75a4]",
            " add eax,edx",
            " mov m4[esp+None*1+0x2c],eax",
            "-mov eax,m4[None+None*1+0xaff34c]",
            "+mov eax,m4[None+None*1+0xae8f5c]",
            " add eax,ecx",
            "-mov edx,m4[None+None*1+0xafdc94]",
            "+mov edx,m4[None+None*1+0xae77e8]",
            " mov m4[esp+None*1+0x4c],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " add eax,edx",
            "-mov ecx,m4[None+None*1+0xafd604]",
            "+mov ecx,m4[None+None*1+0xae7158]",
            " mov m4[esp+None*1+0x10],eax",
            " mov eax,m4[esp+None*1+0x20]",
            " mov m4[esp+None*1+0xc],ebx",
            " add eax,ecx",
            "-mov ebx,m4[None+None*1+0xaff5d4]",
            "+mov ebx,m4[None+None*1+0xae94ac]",
            " mov m4[esp+None*1+0x30],eax",
            " mov eax,m4[esp+None*1+0x40]",
            " add eax,ebx"
          ]
        },
        {
          "symbol": "secure.c::reset_secure_",
          "source": "E:\\library\\system\\secure.c",
          "first": "0x47e4d0",
          "second": "0x47c670",
          "first_instruction_count": 12,
          "second_instruction_count": 12,
          "diff": [
            "--- 0x47e4d0",
            "+++ 0x47c670",
            "@@ -2,7 +2,7 @@",
            " xor eax,eax",
            " inc eax",
            " xor dl,dl",
            "-mov m1[eax+None*1+0xa9ba4f],dl",
            "+mov m1[eax+None*1+0xa8651f],dl",
            " cmp eax,0xa28",
            " jl local:2",
            " mov m1[None+None*1+secure.c::_expected_packet],dl"
          ]
        },
        {
          "symbol": "sercomms.c::clear_serial_comms_buffers_",
          "source": "E:\\library\\system\\sercomms.c",
          "first": "0x47e364",
          "second": "0x47c504",
          "first_instruction_count": 8,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x47e364",
            "+++ 0x47c504",
            "@@ -1,8 +1,8 @@",
            " push edx",
            " xor edx,edx",
            "-mov m4[None+None*1+0xa9ba18],edx",
            "-mov m4[None+None*1+0xa9ba1c],edx",
            "-mov m4[None+None*1+0xa9ba20],edx",
            "-mov m4[None+None*1+0xa9ba24],edx",
            "+mov m4[None+None*1+0xa864e8],edx",
            "+mov m4[None+None*1+0xa864ec],edx",
            "+mov m4[None+None*1+0xa864f0],edx",
            "+mov m4[None+None*1+0xa864f4],edx",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "sercomms.c::clear_serial_comms_error_flags_",
          "source": "E:\\library\\system\\sercomms.c",
          "first": "0x47e384",
          "second": "0x47c524",
          "first_instruction_count": 5,
          "second_instruction_count": 5,
          "diff": [
            "--- 0x47e384",
            "+++ 0x47c524",
            "@@ -1,5 +1,5 @@",
            " push edx",
            " xor edx,edx",
            "-mov m4[None+None*1+0xa9ba28],edx",
            "+mov m4[None+None*1+0xa864f8],edx",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "sercomms.c::deinitialise_serial_comms_",
          "source": "E:\\library\\system\\sercomms.c",
          "first": "0x47e348",
          "second": "0x47c4e8",
          "first_instruction_count": 10,
          "second_instruction_count": 10,
          "diff": [
            "--- 0x47e348",
            "+++ 0x47c4e8",
            "@@ -2,7 +2,7 @@",
            " push edx",
            " mov edx,m4[None+None*1+sercomms.c::_windows_com_port]",
            " push edx",
            "-call m4[None+None*1+constant:d84a0d00]",
            "+call m4[None+None*1+constant:a0790c00]",
            " xor ecx,ecx",
            " mov m4[None+None*1+sercomms.c::_windows_com_port],ecx",
            " pop edx"
          ]
        },
        {
          "symbol": "sercomms.c::get_modem_carrier_status_",
          "source": "E:\\library\\system\\sercomms.c",
          "first": "0x47e48c",
          "second": "0x47c62c",
          "first_instruction_count": 19,
          "second_instruction_count": 19,
          "diff": [
            "--- 0x47e48c",
            "+++ 0x47c62c",
            "@@ -1,5 +1,5 @@",
            " sub esp,0x4",
            "-cmp m4[None+None*1+0xa9a9f8],0x1",
            "+cmp m4[None+None*1+0xa854c8],0x1",
            " je local:6",
            " mov eax,0x1",
            " add esp,0x4",
            "@@ -10,7 +10,7 @@",
            " push eax",
            " mov ecx,m4[None+None*1+sercomms.c::_windows_com_port]",
            " push ecx",
            "-call m4[None+None*1+constant:444c0d00]",
            "+call m4[None+None*1+constant:227b0c00]",
            " mov eax,m4[esp+None*1+0x8]",
            " and eax,0x20",
            " pop ecx"
          ]
        },
        {
          "symbol": "sercomms.c::get_modem_status_flags_",
          "source": "E:\\library\\system\\sercomms.c",
          "first": "0x47e454",
          "second": "0x47c5f4",
          "first_instruction_count": 13,
          "second_instruction_count": 13,
          "diff": [
            "--- 0x47e454",
            "+++ 0x47c5f4",
            "@@ -5,7 +5,7 @@",
            " push eax",
            " mov edx,m4[None+None*1+sercomms.c::_windows_com_port]",
            " push edx",
            "-call m4[None+None*1+constant:444c0d00]",
            "+call m4[None+None*1+constant:227b0c00]",
            " mov eax,m4[esp+None*1+0x0]",
            " add esp,0x4",
            " pop edx"
          ]
        },
        {
          "symbol": "sercomms.c::get_serial_char_",
          "source": "E:\\library\\system\\sercomms.c",
          "first": "0x47e3dc",
          "second": "0x47c57c",
          "first_instruction_count": 34,
          "second_instruction_count": 34,
          "diff": [
            "--- 0x47e3dc",
            "+++ 0x47c57c",
            "@@ -7,7 +7,7 @@",
            " push eax",
            " mov edx,m4[None+None*1+sercomms.c::_windows_com_port]",
            " push edx",
            "-call m4[None+None*1+constant:c64a0d00]",
            "+call m4[None+None*1+constant:8e790c00]",
            " cmp m4[esp+None*1+0x4],0x0",
            " jne local:17",
            " mov eax,0xffffffff",
            "@@ -24,7 +24,7 @@",
            " push eax",
            " mov ebx,m4[None+None*1+sercomms.c::_windows_com_port]",
            " push ebx",
            "-call m4[None+None*1+constant:ba4e0d00]",
            "+call m4[None+None*1+constant:a87d0c00]",
            " xor eax,eax",
            " mov al,m1[esp+None*1+0x18]",
            " pop ebx"
          ]
        },
        {
          "symbol": "sercomms.c::get_serial_comms_error_flags_",
          "source": "E:\\library\\system\\sercomms.c",
          "first": "0x47e434",
          "second": "0x47c5d4",
          "first_instruction_count": 13,
          "second_instruction_count": 13,
          "diff": [
            "--- 0x47e434",
            "+++ 0x47c5d4",
            "@@ -5,7 +5,7 @@",
            " push eax",
            " mov edx,m4[None+None*1+sercomms.c::_windows_com_port]",
            " push edx",
            "-call m4[None+None*1+constant:364c0d00]",
            "+call m4[None+None*1+constant:147b0c00]",
            " mov eax,m4[esp+None*1+0x0]",
            " add esp,0x4",
            " pop edx"
          ]
        },
        {
          "symbol": "sercomms.c::initialise_serial_comms_",
          "source": "E:\\library\\system\\sercomms.c",
          "first": "0x47e1d0",
          "second": "0x47c370",
          "first_instruction_count": 93,
          "second_instruction_count": 93,
          "diff": [
            "--- 0x47e1d0",
            "+++ 0x47c370",
            "@@ -20,29 +20,29 @@",
            " call sprintf::sprintf_",
            " add esp,0x18",
            " mov m4[None+None*1+sercomms.c::_serial_comms],esi",
            "-mov m4[None+None*1+0xa9a9f4],edi",
            "-mov m4[None+None*1+0xa9a9f8],ebx",
            "+mov m4[None+None*1+0xa854c4],edi",
            "+mov m4[None+None*1+0xa854c8],ebx",
            " cmp ecx,0x6",
            " je local:83",
            "-mov m4[None+None*1+0xa9a9fc],ecx",
            "+mov m4[None+None*1+0xa854cc],ecx",
            " xor ecx,ecx",
            " call sercomms.c::clear_serial_comms_buffers_",
            "-mov m4[None+None*1+0xa9ba28],ecx",
            "+mov m4[None+None*1+0xa864f8],ecx",
            " push ecx",
            " mov eax,m4[None+None*1+sercomms.c::_serial_comms]",
            " push 0x80",
            " mov eax,m4[None+eax*4+sercomms.c::_uart_base_port_addresses]",
            " push 0x3",
            "-mov m4[None+None*1+0xa9aa00],eax",
            "+mov m4[None+None*1+0xa854d0],eax",
            " push ecx",
            "-mov eax,m4[None+None*1+0xa9a9fc]",
            "+mov eax,m4[None+None*1+0xa854cc]",
            " push ecx",
            " mov eax,m4[None+eax*4+sercomms.c::_pic_base_port_addresses]",
            " push 0xc0000000",
            "-mov m4[None+None*1+0xa9aa04],eax",
            "+mov m4[None+None*1+0xa854d4],eax",
            " mov ebx,m4[None+esi*4+sercomms.c::_serial_port_text]",
            " push ebx",
            "-call m4[None+None*1+constant:f64a0d00]",
            "+call m4[None+None*1+constant:be790c00]",
            " mov esi,m4[None+edi*4+sercomms.c::_baud_rate_text]",
            " push esi",
            " push text:'baud=%s parity=N data=8 stop=1'",
            "@@ -54,35 +54,35 @@",
            " push sercomms.c::_windows_dcb",
            " mov ebp,m4[None+None*1+sercomms.c::_windows_com_port]",
            " push ebp",
            "-call m4[None+None*1+constant:5a4c0d00]",
            "+call m4[None+None*1+constant:387b0c00]",
            " push sercomms.c::_windows_dcb",
            " mov eax,m4[None+edi*4+sercomms.c::_baud_rate_values]",
            "-mov dl,m1[None+None*1+0xa9ba38]",
            "-mov m4[None+None*1+0xa9ba34],eax",
            "+mov dl,m1[None+None*1+0xa86508]",
            "+mov m4[None+None*1+0xa86504],eax",
            " and dl,0xcd",
            " mov ah,0x8",
            "-mov m1[None+None*1+0xa9ba38],dl",
            "+mov m1[None+None*1+0xa86508],dl",
            " xor dh,dh",
            "-mov m1[None+None*1+0xa9ba42],ah",
            "+mov m1[None+None*1+0xa86512],ah",
            " mov bl,dl",
            " mov eax,m4[None+None*1+sercomms.c::_windows_com_port]",
            " or bl,0x20",
            " push eax",
            "-mov m1[None+None*1+0xa9ba44],dh",
            "-mov m1[None+None*1+0xa9ba38],bl",
            "-call m4[None+None*1+constant:fe4e0d00]",
            "+mov m1[None+None*1+0xa86514],dh",
            "+mov m1[None+None*1+0xa86508],bl",
            "+call m4[None+None*1+constant:ec7d0c00]",
            " push 0x800",
            " push 0x800",
            " mov edx,m4[None+None*1+sercomms.c::_windows_com_port]",
            " push edx",
            "-call m4[None+None*1+constant:f44f0d00]",
            "+call m4[None+None*1+constant:e27e0c00]",
            " add esp,0x64",
            " pop ebp",
            " pop edi",
            " pop esi",
            " ret ",
            " mov eax,m4[edx+None*1+sercomms.c::_default_irq_numbers]",
            "-mov m4[None+None*1+0xa9a9fc],eax",
            "+mov m4[None+None*1+0xa854cc],eax",
            " mov edx,m4[ebp+None*1+sercomms.c::_irq_number_text]",
            " push edx",
            " push text:'Defaulted to %s'"
          ]
        },
        {
          "symbol": "sercomms.c::is_serial_comms_tx_queue_empty_",
          "source": "E:\\library\\system\\sercomms.c",
          "first": "0x47e474",
          "second": "0x47c614",
          "first_instruction_count": 7,
          "second_instruction_count": 7,
          "diff": [
            "--- 0x47e474",
            "+++ 0x47c614",
            "@@ -1,5 +1,5 @@",
            "-mov eax,m4[None+None*1+0xa9ba1c]",
            "-cmp eax,m4[None+None*1+0xa9ba18]",
            "+mov eax,m4[None+None*1+0xa864ec]",
            "+cmp eax,m4[None+None*1+0xa864e8]",
            " jne local:5",
            " mov eax,0x1",
            " ret "
          ]
        },
        {
          "symbol": "sercomms.c::put_serial_char_",
          "source": "E:\\library\\system\\sercomms.c",
          "first": "0x47e390",
          "second": "0x47c530",
          "first_instruction_count": 17,
          "second_instruction_count": 17,
          "diff": [
            "--- 0x47e390",
            "+++ 0x47c530",
            "@@ -10,7 +10,7 @@",
            " push eax",
            " mov edx,m4[None+None*1+sercomms.c::_windows_com_port]",
            " push edx",
            "-call m4[None+None*1+constant:d2500d00]",
            "+call m4[None+None*1+constant:d27f0c00]",
            " add esp,0x8",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "server.c::client_network_init_sync_",
          "source": "E:\\apache\\source\\apnet\\server.c",
          "first": "0x43671c",
          "second": "0x436a9c",
          "first_instruction_count": 48,
          "second_instruction_count": 48,
          "diff": [
            "--- 0x43671c",
            "+++ 0x436a9c",
            "@@ -19,7 +19,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-or m1[edx+eax*4+0x5a15e2],0x2",
            "+or m1[edx+eax*4+0x5945f2],0x2",
            " pop esi",
            " pop edx",
            " pop ecx",
            "@@ -44,5 +44,5 @@",
            " jge local:35",
            " cmp m4[None+None*1+server.c::_server_waiting],0x0",
            " jne local:35",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],esi",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],esi",
            " jmp local:14"
          ]
        },
        {
          "symbol": "server.c::get_next_server_",
          "source": "E:\\apache\\source\\apnet\\server.c",
          "first": "0x436238",
          "second": "0x4365b8",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x436238",
            "+++ 0x4365b8",
            "@@ -12,7 +12,7 @@",
            " cmp m4[edx+None*1+net.c::_connections],0x0",
            " je local:3",
            " imul edx,eax,0x1b8",
            "-mov edx,m4[edx+None*1+0x5a15e0]",
            "+mov edx,m4[edx+None*1+0x5945f0]",
            " shl edx,0x10",
            " sar edx,0x18",
            " cmp edx,0xffffffff"
          ]
        },
        {
          "symbol": "server.c::maintain_multi_player_list_",
          "source": "E:\\apache\\source\\apnet\\server.c",
          "first": "0x436554",
          "second": "0x4368d4",
          "first_instruction_count": 92,
          "second_instruction_count": 92,
          "diff": [
            "--- 0x436554",
            "+++ 0x4368d4",
            "@@ -9,24 +9,24 @@",
            " jne local:86",
            " xor ecx,ecx",
            " xor esi,esi",
            "-cmp m4[ecx+None*1+0x5a1434],0x0",
            "+cmp m4[ecx+None*1+0x594444],0x0",
            " je local:82",
            " cmp esi,m4[None+None*1+server.c::_server_connection_number]",
            " je local:82",
            " call timer.c::fast_clock_",
            " mov m4[esp+None*1+0xc],eax",
            " fild m4[esp+None*1+0xc]",
            "-fsub m8[ecx+None*1+0x5a15d0]",
            "+fsub m8[ecx+None*1+0x5945e0]",
            " fstp m8[None+None*1+server.c::_interpolated_frame_time]",
            " call timer.c::fast_clock_",
            " fld m8[None+None*1+server.c::_interpolated_frame_time]",
            " fmul m8[None+None*1+constant:7b14ae47e17a743f]",
            " mov m4[esp+None*1+0xc],eax",
            "-mov ebx,m4[ecx+None*1+0x5a1480]",
            "+mov ebx,m4[ecx+None*1+0x594490]",
            " fild m4[esp+None*1+0xc]",
            " mov edx,ebx",
            "-mov eax,m4[ecx+None*1+0x5a1468]",
            "-fstp m8[ecx+None*1+0x5a15d0]",
            "+mov eax,m4[ecx+None*1+0x594478]",
            "+fstp m8[ecx+None*1+0x5945e0]",
            " fstp m8[None+None*1+server.c::_interpolated_frame_time]",
            " mov m4[esp+None*1+0x8],eax",
            " imul edx",
            "@@ -37,7 +37,7 @@",
            " fild m4[esp+None*1+0xc]",
            " fld m8[None+None*1+server.c::_interpolated_frame_time]",
            " fmul m8[None+None*1+constant:7b14ae47e17a743f]",
            "-mov eax,m4[ecx+None*1+0x5a146c]",
            "+mov eax,m4[ecx+None*1+0x59447c]",
            " fmulp st(1)",
            " mov m4[esp+None*1+0x0],eax",
            " mov edx,ebx",
            "@@ -51,7 +51,7 @@",
            " fild m4[esp+None*1+0xc]",
            " fld m8[None+None*1+server.c::_interpolated_frame_time]",
            " fmul m8[None+None*1+constant:7b14ae47e17a743f]",
            "-mov eax,m4[ecx+None*1+0x5a1470]",
            "+mov eax,m4[ecx+None*1+0x594480]",
            " fmulp st(1)",
            " mov m4[esp+None*1+0x4],eax",
            " mov edx,ebx",
            "@@ -67,19 +67,19 @@",
            " fmul m8[None+None*1+constant:7b14ae47e17a743f]",
            " fmulp st(1)",
            " mov eax,m4[esp+None*1+0x8]",
            "-mov ebp,m4[ecx+None*1+0x5a1450]",
            "-mov ebx,m4[ecx+None*1+0x5a1458]",
            "-mov edx,m4[ecx+None*1+0x5a1454]",
            "+mov ebp,m4[ecx+None*1+0x594460]",
            "+mov ebx,m4[ecx+None*1+0x594468]",
            "+mov edx,m4[ecx+None*1+0x594464]",
            " add ebp,eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov m4[ecx+None*1+0x5a1450],ebp",
            "+mov m4[ecx+None*1+0x594460],ebp",
            " add edx,eax",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x4]",
            "-mov m4[ecx+None*1+0x5a1454],edx",
            "+mov m4[ecx+None*1+0x594464],edx",
            " add ebx,eax",
            "-mov m4[ecx+None*1+0x5a1458],ebx",
            "+mov m4[ecx+None*1+0x594468],ebx",
            " inc esi",
            " add ecx,0x1b8",
            " cmp esi,0x10"
          ]
        },
        {
          "symbol": "server.c::send_server_data_",
          "source": "E:\\apache\\source\\apnet\\server.c",
          "first": "0x436278",
          "second": "0x4365f8",
          "first_instruction_count": 146,
          "second_instruction_count": 146,
          "diff": [
            "--- 0x436278",
            "+++ 0x4365f8",
            "@@ -45,25 +45,25 @@",
            " shl eax,0x2",
            " add eax,edx",
            " mov edx,m4[None+None*1+model.c::_model_airspeed]",
            "-mov m4[eax+None*1+0x5a1480],edx",
            "+mov m4[eax+None*1+0x594490],edx",
            " mov edx,m4[None+None*1+drone.c::_user_drone]",
            " lea ebp,m4[esp+None*1+0x18]",
            " mov edx,m4[edx+None*1+0x8]",
            " xor ebx,ebx",
            "-mov m4[eax+None*1+0x5a1484],edx",
            "+mov m4[eax+None*1+0x594494],edx",
            " xor edx,edx",
            "-mov eax,m4[edx+None*1+0x5a1450]",
            "+mov eax,m4[edx+None*1+0x594460]",
            " sar eax,0x4",
            " mov m4[esp+None*1+0x218],eax",
            "-mov eax,m4[edx+None*1+0x5a1454]",
            "+mov eax,m4[edx+None*1+0x594464]",
            " sar eax,0x4",
            " mov m4[esp+None*1+0x21c],eax",
            "-mov eax,m4[edx+None*1+0x5a1458]",
            "+mov eax,m4[edx+None*1+0x594468]",
            " lea esi,m4[esp+None*1+0x218]",
            " sar eax,0x4",
            " mov ecx,ebx",
            " mov m4[esp+None*1+0x220],eax",
            "-mov eax,m4[edx+None*1+0x5a1480]",
            "+mov eax,m4[edx+None*1+0x594490]",
            " mov edi,ebp",
            " mov m4[esp+None*1+0x224],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "@@ -88,37 +88,37 @@",
            " mov m2[edi+None*1+0x0],ax",
            " shr eax,0x10",
            " mov m1[edi+None*1+0x2],al",
            "-mov eax,m4[edx+None*1+0x5a145c]",
            "+mov eax,m4[edx+None*1+0x59446c]",
            " shl ecx,0x5",
            " sar eax,0x10",
            " mov m2[esp+ecx*1+0x26],ax",
            "-mov eax,m4[edx+None*1+0x5a1460]",
            "+mov eax,m4[edx+None*1+0x594470]",
            " sar eax,0x10",
            " mov m2[esp+ecx*1+0x28],ax",
            "-mov eax,m4[edx+None*1+0x5a1464]",
            "+mov eax,m4[edx+None*1+0x594474]",
            " sar eax,0x10",
            " mov m2[esp+ecx*1+0x2a],ax",
            "-mov eax,m4[edx+None*1+0x5a1468]",
            "+mov eax,m4[edx+None*1+0x594478]",
            " sar eax,0x10",
            " mov m2[esp+ecx*1+0x2c],ax",
            "-mov eax,m4[edx+None*1+0x5a146c]",
            "+mov eax,m4[edx+None*1+0x59447c]",
            " sar eax,0x10",
            " mov m2[esp+ecx*1+0x2e],ax",
            "-mov eax,m4[edx+None*1+0x5a1470]",
            "+mov eax,m4[edx+None*1+0x594480]",
            " sar eax,0x10",
            " mov m2[esp+ecx*1+0x30],ax",
            "-mov eax,m4[edx+None*1+0x5a1474]",
            "+mov eax,m4[edx+None*1+0x594484]",
            " sar eax,0x10",
            " mov m2[esp+ecx*1+0x32],ax",
            "-mov eax,m4[edx+None*1+0x5a1478]",
            "+mov eax,m4[edx+None*1+0x594488]",
            " sar eax,0x10",
            " mov m2[esp+ecx*1+0x34],ax",
            "-mov eax,m4[edx+None*1+0x5a147c]",
            "+mov eax,m4[edx+None*1+0x59448c]",
            " add edx,0x1b8",
            " sar eax,0x10",
            " add ebp,0x20",
            " mov m2[esp+ecx*1+0x36],ax",
            "-mov ax,m2[edx+None*1+0x5a12cc]",
            "+mov ax,m2[edx+None*1+0x5942dc]",
            " inc ebx",
            " mov m2[esp+ecx*1+0x24],ax",
            " cmp ebx,0x10",
            "@@ -135,7 +135,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-and m1[edx+eax*4+0x5a15e2],0xfb",
            "+and m1[edx+eax*4+0x5945f2],0xfb",
            " pop ebx",
            " pop ecx",
            " pop edx"
          ]
        },
        {
          "symbol": "server.c::send_server_nomination_",
          "source": "E:\\apache\\source\\apnet\\server.c",
          "first": "0x43611c",
          "second": "0x43649c",
          "first_instruction_count": 54,
          "second_instruction_count": 54,
          "diff": [
            "--- 0x43611c",
            "+++ 0x43649c",
            "@@ -27,7 +27,7 @@",
            " mov eax,m4[None+None*1+apnet.c::_network_ping_timer]",
            " mov edx,apnet.c::_my_current_apnet_name",
            " mov m4[esp+None*1+0x50],eax",
            "-mov eax,m4[None+None*1+0x5a2fb4]",
            "+mov eax,m4[None+None*1+0x595fc4]",
            " mov edi,0x1",
            " mov m4[esp+None*1+0x54],eax",
            " lea eax,m4[esp+None*1+0x4]"
          ]
        },
        {
          "symbol": "server.c::server_network_init_sync_",
          "source": "E:\\apache\\source\\apnet\\server.c",
          "first": "0x4367bc",
          "second": "0x436b3c",
          "first_instruction_count": 137,
          "second_instruction_count": 137,
          "diff": [
            "--- 0x4367bc",
            "+++ 0x436b3c",
            "@@ -21,7 +21,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-or m1[edx+eax*4+0x5a15e2],0x2",
            "+or m1[edx+eax*4+0x5945f2],0x2",
            " xor ebp,ebp",
            " test edi,edi",
            " je local:67",
            "@@ -39,7 +39,7 @@",
            " mov eax,ebp",
            " cmp edx,m4[None+None*1+server.c::_server_connection_number]",
            " je local:47",
            "-mov ebx,m4[ecx+None*1+0x5a15e0]",
            "+mov ebx,m4[ecx+None*1+0x5945f0]",
            " shl ebx,0xe",
            " sar ebx,0x1f",
            " test ebx,ebx",
            "@@ -80,7 +80,7 @@",
            " dec edi",
            " mov ebx,ebp",
            " mov edx,ebp",
            "-mov eax,m4[ebx+None*1+0x5a15e0]",
            "+mov eax,m4[ebx+None*1+0x5945f0]",
            " shl eax,0x10",
            " sar eax,0x18",
            " cmp eax,0xffffffff",
            "@@ -90,11 +90,11 @@",
            " test eax,eax",
            " jne local:111",
            " mov eax,m4[None+None*1+apnet.c::_number_of_players]",
            "-mov cl,m1[ebx+None*1+0x5a15e1]",
            "+mov cl,m1[ebx+None*1+0x5945f1]",
            " dec eax",
            " or cl,0xff",
            " mov m4[None+None*1+apnet.c::_number_of_players],eax",
            "-mov m1[ebx+None*1+0x5a15e1],cl",
            "+mov m1[ebx+None*1+0x5945f1],cl",
            " call server.c::send_server_ready_",
            " mov ecx,ebp",
            " cmp edx,m4[None+None*1+server.c::_server_connection_number]",
            "@@ -126,7 +126,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],edi",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],edi",
            " add esp,0x4",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "setenvar::__lib_SetEnvironmentVariableW_",
          "source": "setenvar",
          "first": "0x4d29b0",
          "second": "0x4c5e38",
          "first_instruction_count": 77,
          "second_instruction_count": 77,
          "diff": [
            "--- 0x4d29b0",
            "+++ 0x4c5e38",
            "@@ -9,7 +9,7 @@",
            " jae local:13",
            " push edi",
            " push eax",
            "-call m4[None+None*1+constant:6a4f0d00]",
            "+call m4[None+None*1+constant:587e0c00]",
            " jmp local:70",
            " call ustrlen::wcslen_",
            " add eax,eax",
            "@@ -59,7 +59,7 @@",
            " je local:47",
            " push esi",
            " push ebp",
            "-call m4[None+None*1+constant:504f0d00]",
            "+call m4[None+None*1+constant:3e7e0c00]",
            " mov edx,eax",
            " mov eax,ebp",
            " call nfree::_nfree_"
          ]
        },
        {
          "symbol": "setmap.c::load_map_data_",
          "source": "E:\\apache\\source\\menus\\maps\\setmap.c",
          "first": "0x418328",
          "second": "0x4186a8",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x418328",
            "+++ 0x4186a8",
            "@@ -10,7 +10,7 @@",
            " or dl,0x2",
            " mov eax,gamedata.c::_game_visual_init",
            " mov m1[None+None*1+gamedata.c::_game_visual_init],dl",
            "-call fx3dmain.c::initialise_3d_visual_",
            "+call 3dmain.c::initialise_3d_visual_",
            " mov dh,m1[None+None*1+gamedata.c::_game_visual_init]",
            " xor ecx,ecx",
            " and dh,0xfd"
          ]
        },
        {
          "symbol": "shadows.c::check_for_shadow_on_object_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49c8c8",
          "second": "0x498c14",
          "first_instruction_count": 80,
          "second_instruction_count": 80,
          "diff": [
            "--- 0x49c8c8",
            "+++ 0x498c14",
            "@@ -24,7 +24,7 @@",
            " mov ecx,m4[edx+eax*4+mobobjs.c::_mobile_object_map]",
            " test ecx,ecx",
            " je local:34",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ecx+None*1+0x0]",
            " mov eax,m4[edx+eax*4+0x0]",
            " test m1[eax+None*1+0x98],0x2",
            "@@ -42,7 +42,7 @@",
            " call mobobjs.c::get_rotated_mobile_object_collision_test_",
            " test eax,eax",
            " je local:31",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edx,m4[ecx+None*1+0x0]",
            " mov eax,m4[eax+edx*4+0x0]",
            " mov eax,m4[eax+None*1+0x28]"
          ]
        },
        {
          "symbol": "shadows.c::draw_3d_object_shadow_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49a780",
          "second": "0x496c90",
          "first_instruction_count": 272,
          "second_instruction_count": 272,
          "diff": [
            "--- 0x49a780",
            "+++ 0x496c90",
            "@@ -7,35 +7,35 @@",
            " sub esp,0x2c20",
            " mov edx,eax",
            " mov ecx,m4[eax+None*1+0x0]",
            "-mov m4[None+None*1+fx3dobj1.c::_current_3d_instance],eax",
            "+mov m4[None+None*1+3dobjs1.c::_current_3d_instance],eax",
            " cmp ecx,0x4bb",
            " jne local:40",
            " mov eax,0x40a",
            " lea ebx,m4[None+eax*4+0x0]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ebp,m4[ebx+eax*1+0x0]",
            " mov eax,m4[edx+None*1+0x10]",
            " mov esi,m4[ebp+None*1+0x0]",
            "-mov m4[None+None*1+fx3dobj1.c::_animation_flags],eax",
            "+mov m4[None+None*1+3dobjs1.c::_animation_flags],eax",
            " test esi,esi",
            " jne local:44",
            " mov eax,edx",
            " call 3dbuild.c::maintain_3d_object_",
            " mov eax,m4[edx+None*1+0x24]",
            "-mov m4[None+None*1+fx3dobj1.c::_object_x_scale],eax",
            "+mov m4[None+None*1+3dobjs1.c::_object_x_scale],eax",
            " mov eax,m4[edx+None*1+0x28]",
            "-mov m4[None+None*1+fx3dobj1.c::_object_y_scale],eax",
            "+mov m4[None+None*1+3dobjs1.c::_object_y_scale],eax",
            " mov eax,m4[edx+None*1+0x2c]",
            "-mov m4[None+None*1+fx3dobj1.c::_object_z_scale],eax",
            "+mov m4[None+None*1+3dobjs1.c::_object_z_scale],eax",
            " mov eax,m4[edx+None*1+0x30]",
            "-mov m4[None+None*1+fx3dobj1.c::_object_is_scaled],eax",
            "+mov m4[None+None*1+3dobjs1.c::_object_is_scaled],eax",
            " cmp m4[ebp+None*1+0x4],0xffffffff",
            " je local:47",
            " mov ecx,m4[ebp+None*1+0x4]",
            " cmp ecx,m4[edx+None*1+0x4]",
            " jge local:47",
            " mov eax,m4[ebp+None*1+0x8]",
            "-mov ebp,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ebp,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ebp,m4[ebp+eax*4+0x0]",
            " jmp local:31",
            " cmp ecx,0x4ba",
            "@@ -43,7 +43,7 @@",
            " mov eax,ecx",
            " jmp local:13",
            " xor edi,edi",
            "-mov m4[None+None*1+fx3dobj1.c::_object_is_scaled],edi",
            "+mov m4[None+None*1+3dobjs1.c::_object_is_scaled],edi",
            " jmp local:31",
            " mov eax,m4[edx+None*1+0x8]",
            " mov ebx,m4[None+None*1+3dcore.c::_cloud_mode]",
            "@@ -52,7 +52,7 @@",
            " jne local:198",
            " mov edx,m4[eax+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,m4[esp+None*1+0x2c1c]",
            " mov edx,m4[edx+None*1+0x8]",
            " sub edx,eax",
            "@@ -83,7 +83,7 @@",
            " mov m4[esp+None*1+0x2c04],eax",
            " mov edx,eax",
            " mov eax,m4[esp+None*1+0x2c00]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov m4[esp+None*1+0x2c08],eax",
            " mov eax,m4[esp+None*1+0x2c1c]",
            " mov eax,m4[eax+None*1+0x8]",
            "@@ -112,10 +112,10 @@",
            " sub eax,edx",
            " mov m4[esp+None*1+0x2c18],eax",
            " mov eax,m4[esp+None*1+0x2c1c]",
            "-mov ecx,m4[None+None*1+0xafaef4]",
            "+mov ecx,m4[None+None*1+0xae55a4]",
            " mov eax,m4[eax+None*1+0x4]",
            " sub eax,ecx",
            "-mov ebx,m4[None+None*1+0xafaef8]",
            "+mov ebx,m4[None+None*1+0xae55a8]",
            " mov m4[esp+None*1+0x2c0c],eax",
            " mov eax,m4[esp+None*1+0x2c08]",
            " sub eax,ebx",
            "@@ -127,11 +127,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xae972c]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -143,16 +143,16 @@",
            " mov ecx,m4[esp+None*1+0x2c14]",
            " mov ebx,m4[esp+None*1+0x2c0c]",
            " mov eax,m4[esp+None*1+0x2c18]",
            "-mov m4[None+None*1+fx3dobj1.c::_xeo_object],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov m4[None+None*1+3dobjs1.c::_xeo_object],edx",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -164,16 +164,16 @@",
            " mov ecx,m4[esp+None*1+0x2c14]",
            " mov ebx,m4[esp+None*1+0x2c0c]",
            " mov eax,m4[esp+None*1+0x2c18]",
            "-mov m4[None+None*1+fx3dobj1.c::_yeo_object],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov m4[None+None*1+3dobjs1.c::_yeo_object],edx",
            "+mov edx,m4[None+None*1+0xae9740]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -183,7 +183,7 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov esi,m4[ebp+None*1+0x0]",
            "-mov m4[None+None*1+fx3dobj1.c::_zeo_object],edx",
            "+mov m4[None+None*1+3dobjs1.c::_zeo_object],edx",
            " test esi,esi",
            " je local:231",
            " add esp,0x2c20",
            "@@ -196,7 +196,7 @@",
            " ret ",
            " xor eax,edx",
            " jmp local:61",
            "-mov ebx,m4[None+None*1+0xafaecc]",
            "+mov ebx,m4[None+None*1+0xae557c]",
            " mov eax,m4[eax+None*1+0x8]",
            " sub eax,ebx",
            " test eax,eax"
          ]
        },
        {
          "symbol": "shadows.c::draw_completely_visible_primary_shadow_face_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49bfac",
          "second": "0x4984bc",
          "first_instruction_count": 163,
          "second_instruction_count": 134,
          "diff": [
            "--- 0x49bfac",
            "+++ 0x4984bc",
            "@@ -4,30 +4,26 @@",
            " push edi",
            " push ebp",
            " sub esp,0x8",
            "-mov ecx,eax",
            "+mov ebp,eax",
            " mov edi,edx",
            "-lea ecx,m4[eax+None*1+0x1]",
            "-xor ebx,ebx",
            "+lea ebp,m4[eax+None*1+0x1]",
            " xor eax,eax",
            "-mov bl,m1[ecx+None*1+0x0]",
            "-mov al,m1[ecx+None*1+0xffffffff]",
            "-inc ecx",
            "-mov m4[esp+None*1+0x0],eax",
            "-mov al,m1[eax+None*1+shadows.c::_primary_face_attributes]",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov m1[esp+None*1+0x4],al",
            "-cmp edx,0x15",
            "-ja local:150",
            "-mov eax,edx",
            "+movzx esi,m1[ebp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0xffffffff]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x4],eax",
            "+mov bl,m1[eax+None*1+shadows.c::_primary_face_attributes]",
            "+cmp eax,0x15",
            "+ja local:121",
            " jmp m4[None+eax*4+shadows.c::process_gosub_+0x44]",
            "-test m1[esp+None*1+0x4],0x1",
            "-je local:25",
            "-inc ecx",
            "-test m1[esp+None*1+0x4],0x4",
            "-je local:28",
            "-inc ecx",
            "-add ecx,ebx",
            "-mov eax,ecx",
            "+test bl,0x1",
            "+je local:21",
            "+inc ebp",
            "+test bl,0x4",
            "+je local:24",
            "+inc ebp",
            "+add ebp,esi",
            "+mov eax,ebp",
            " add esp,0x8",
            " pop ebp",
            " pop edi",
            "@@ -35,79 +31,77 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-test m1[esp+None*1+0x4],0x1",
            "-je local:40",
            "-inc ecx",
            "-test m1[esp+None*1+0x4],0x2",
            "-je local:43",
            "-inc ecx",
            "-test m1[esp+None*1+0x4],0x4",
            "-je local:46",
            "-inc ecx",
            "-test m1[esp+None*1+0x4],0x10",
            "-jne local:71",
            "+test bl,0x1",
            "+je local:36",
            "+inc ebp",
            "+test bl,0x2",
            "+je local:39",
            "+inc ebp",
            "+test bl,0x4",
            "+je local:42",
            "+inc ebp",
            "+test bl,0x10",
            "+jne local:68",
            " xor eax,eax",
            " mov edx,edi",
            "-mov al,m1[ecx+None*1+0x0]",
            "-inc ecx",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov ebp,eax",
            "-mov esi,eax",
            "-dec ebx",
            "-je local:75",
            "-test m1[esp+None*1+0x4],0x8",
            "-je local:61",
            "-inc ecx",
            "-test m1[esp+None*1+0x4],0x10",
            "-jne local:73",
            "+mov m4[esp+None*1+0x0],eax",
            "+mov ecx,eax",
            "+mov edx,edi",
            "+dec esi",
            "+je local:72",
            "+test bl,0x8",
            "+je local:58",
            "+inc ebp",
            "+test bl,0x10",
            "+jne local:70",
            " xor eax,eax",
            "-mov edx,edi",
            "-mov al,m1[ecx+None*1+0x0]",
            "-inc ecx",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[esi+None*1+0x24],eax",
            "-jmp local:55",
            "-inc ecx",
            "-jmp local:48",
            "-add ecx,0x2",
            "-jmp local:63",
            "-test m1[esp+None*1+0x4],0x8",
            "+mov m4[ecx+None*1+0x24],eax",
            "+mov ecx,eax",
            "+jmp local:53",
            "+inc ebp",
            "+jmp local:44",
            "+add ebp,0x2",
            "+jmp local:60",
            "+test bl,0x8",
            "+je local:75",
            "+inc ebp",
            "+test bl,0x10",
            " je local:78",
            "-inc ecx",
            "-test m1[esp+None*1+0x4],0x10",
            "-je local:81",
            "-add ecx,0x2",
            "-mov ebx,m4[esp+None*1+0x0]",
            "+add ebp,0x2",
            "+mov eax,m4[esp+None*1+0x0]",
            "+mov m4[ecx+None*1+0x24],0x0",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov ecx,m4[esp+None*1+0x4]",
            "+mov m4[None+None*1+3dobjs1.c::_face_cyclic],eax",
            "+cmp ecx,0x15",
            "+je local:25",
            "+test eax,eax",
            "+jl local:25",
            "+xor eax,eax",
            "+mov al,m1[None+None*1+0xaea3d2]",
            "+mov ecx,eax",
            "+mov esi,eax",
            "+shl ecx,0x18",
            "+shl esi,0x10",
            "+add esi,ecx",
            "+mov ecx,eax",
            "+shl ecx,0x8",
            "+add ecx,esi",
            "+mov ebx,m4[esp+None*1+0x4]",
            "+add eax,ecx",
            "+cmp ebx,0x6",
            "+je local:111",
            "+mov esi,m4[esp+None*1+0x0]",
            "+call polygon.c::fill_fine_meshed_polygon_",
            " mov eax,ebp",
            "-mov m4[esi+None*1+0x24],0x0",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-cmp ebx,0x15",
            "-je local:29",
            "-test eax,eax",
            "-jl local:29",
            "-xor edx,edx",
            "-mov dl,m1[None+None*1+0xaffd22]",
            "-mov ebx,edx",
            "-mov eax,edx",
            "-shl ebx,0x18",
            "-shl eax,0x10",
            "-add ebx,eax",
            "-mov eax,edx",
            "-shl eax,0x8",
            "-add eax,ebx",
            "-mov esi,m4[esp+None*1+0x0]",
            "-add edx,eax",
            "-cmp esi,0x6",
            "-je local:127",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:117",
            "-mov ebx,0xe5",
            "-mov eax,ebp",
            "-call fxpoly1.c::_3dfx_fill_unfogged_translucent_polygon_",
            "-mov eax,ecx",
            " add esp,0x8",
            " pop ebp",
            " pop edi",
            "@@ -115,32 +109,9 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "+mov esi,m4[esp+None*1+0x0]",
            "+call polygon.c::fill_medium_meshed_polygon_",
            " mov eax,ebp",
            "-call fxpoly1.c::fill_fine_meshed_polygon_",
            "-mov eax,ecx",
            "-add esp,0x8",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:140",
            "-mov ebx,0x19",
            "-mov eax,ebp",
            "-call fxpoly1.c::_3dfx_fill_unfogged_translucent_polygon_",
            "-mov eax,ecx",
            "-add esp,0x8",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov eax,ebp",
            "-call fxpoly1.c::fill_medium_meshed_polygon_",
            "-mov eax,ecx",
            " add esp,0x8",
            " pop ebp",
            " pop edi",
            "@@ -153,7 +124,7 @@",
            " push text:'Illegal render mode encountered in 3D object data.'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-mov eax,ecx",
            "+mov eax,ebp",
            " add esp,0x8",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "shadows.c::draw_completely_visible_secondary_shadow_face_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49c19c",
          "second": "0x49865c",
          "first_instruction_count": 158,
          "second_instruction_count": 128,
          "diff": [
            "--- 0x49c19c",
            "+++ 0x49865c",
            "@@ -4,30 +4,26 @@",
            " push edi",
            " push ebp",
            " sub esp,0x8",
            "-mov ecx,eax",
            "+mov ebp,eax",
            " mov edi,edx",
            "-lea ecx,m4[eax+None*1+0x1]",
            "-xor ebx,ebx",
            "+lea ebp,m4[eax+None*1+0x1]",
            " xor eax,eax",
            "-mov bl,m1[ecx+None*1+0x0]",
            "-mov al,m1[ecx+None*1+0xffffffff]",
            "-inc ecx",
            "-mov m4[esp+None*1+0x0],eax",
            "-mov al,m1[eax+None*1+shadows.c::_secondary_face_attributes]",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov m1[esp+None*1+0x4],al",
            "-cmp edx,0x15",
            "-ja local:145",
            "-mov eax,edx",
            "-jmp m4[None+eax*4+shadows.c::draw_completely_visible_primary_shadow_face_+0x198]",
            "-test m1[esp+None*1+0x4],0x1",
            "-je local:25",
            "-inc ecx",
            "-test m1[esp+None*1+0x4],0x4",
            "-je local:28",
            "-inc ecx",
            "-add ecx,ebx",
            "-mov eax,ecx",
            "+movzx esi,m1[ebp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0xffffffff]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x4],eax",
            "+mov bl,m1[eax+None*1+shadows.c::_secondary_face_attributes]",
            "+cmp eax,0x15",
            "+ja local:115",
            "+jmp m4[None+eax*4+shadows.c::draw_completely_visible_primary_shadow_face_+0x148]",
            "+test bl,0x1",
            "+je local:21",
            "+inc ebp",
            "+test bl,0x4",
            "+je local:24",
            "+inc ebp",
            "+add ebp,esi",
            "+mov eax,ebp",
            " add esp,0x8",
            " pop ebp",
            " pop edi",
            "@@ -35,74 +31,71 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-test m1[esp+None*1+0x4],0x1",
            "-je local:40",
            "-inc ecx",
            "-test m1[esp+None*1+0x4],0x2",
            "-je local:43",
            "-inc ecx",
            "-test m1[esp+None*1+0x4],0x4",
            "-je local:46",
            "-inc ecx",
            "-test m1[esp+None*1+0x4],0x10",
            "-jne local:71",
            "+test bl,0x1",
            "+je local:36",
            "+inc ebp",
            "+test bl,0x2",
            "+je local:39",
            "+inc ebp",
            "+test bl,0x4",
            "+je local:42",
            "+inc ebp",
            "+test bl,0x10",
            "+jne local:68",
            " xor eax,eax",
            " mov edx,edi",
            "-mov al,m1[ecx+None*1+0x0]",
            "-inc ecx",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov ebp,eax",
            "-mov esi,eax",
            "-dec ebx",
            "-je local:75",
            "-test m1[esp+None*1+0x4],0x8",
            "-je local:61",
            "-inc ecx",
            "-test m1[esp+None*1+0x4],0x10",
            "-jne local:73",
            "+mov m4[esp+None*1+0x0],eax",
            "+mov ecx,eax",
            "+mov edx,edi",
            "+dec esi",
            "+je local:72",
            "+test bl,0x8",
            "+je local:58",
            "+inc ebp",
            "+test bl,0x10",
            "+jne local:70",
            " xor eax,eax",
            "-mov edx,edi",
            "-mov al,m1[ecx+None*1+0x0]",
            "-inc ecx",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[esi+None*1+0x24],eax",
            "-jmp local:55",
            "-inc ecx",
            "-jmp local:48",
            "-add ecx,0x2",
            "-jmp local:63",
            "-test m1[esp+None*1+0x4],0x8",
            "+mov m4[ecx+None*1+0x24],eax",
            "+mov ecx,eax",
            "+jmp local:53",
            "+inc ebp",
            "+jmp local:44",
            "+add ebp,0x2",
            "+jmp local:60",
            "+test bl,0x8",
            "+je local:75",
            "+inc ebp",
            "+test bl,0x10",
            " je local:78",
            "-inc ecx",
            "-test m1[esp+None*1+0x4],0x10",
            "-je local:81",
            "-add ecx,0x2",
            "-mov ebx,m4[esp+None*1+0x0]",
            "-mov m4[esi+None*1+0x24],0x0",
            "-cmp ebx,0x15",
            "-je local:29",
            "-xor edx,edx",
            "-mov dl,m1[None+None*1+0xaffd22]",
            "-mov eax,edx",
            "-mov ebx,edx",
            "-shl eax,0x18",
            "-shl ebx,0x10",
            "-add eax,ebx",
            "-mov ebx,edx",
            "-shl ebx,0x8",
            "-add eax,ebx",
            "+add ebp,0x2",
            "+mov m4[ecx+None*1+0x24],0x0",
            "+cmp m4[esp+None*1+0x4],0x15",
            "+je local:25",
            "+xor eax,eax",
            "+mov al,m1[None+None*1+0xaea3d2]",
            "+mov ecx,eax",
            "+mov esi,eax",
            "+shl ecx,0x18",
            "+shl esi,0x10",
            "+add esi,ecx",
            "+mov ecx,eax",
            "+shl ecx,0x8",
            "+add ecx,esi",
            "+mov ebx,m4[esp+None*1+0x4]",
            "+add eax,ecx",
            "+cmp ebx,0x6",
            "+je local:105",
            " mov esi,m4[esp+None*1+0x0]",
            "-add edx,eax",
            "-cmp esi,0x6",
            "-je local:122",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:112",
            "-mov ebx,0xe5",
            "+call polygon.c::fill_fine_meshed_polygon_",
            " mov eax,ebp",
            "-call fxpoly1.c::_3dfx_fill_unfogged_translucent_polygon_",
            "-mov eax,ecx",
            " add esp,0x8",
            " pop ebp",
            " pop edi",
            "@@ -110,32 +103,9 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "+mov esi,m4[esp+None*1+0x0]",
            "+call polygon.c::fill_medium_meshed_polygon_",
            " mov eax,ebp",
            "-call fxpoly1.c::fill_fine_meshed_polygon_",
            "-mov eax,ecx",
            "-add esp,0x8",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:135",
            "-mov ebx,0x19",
            "-mov eax,ebp",
            "-call fxpoly1.c::_3dfx_fill_unfogged_translucent_polygon_",
            "-mov eax,ecx",
            "-add esp,0x8",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov eax,ebp",
            "-call fxpoly1.c::fill_medium_meshed_polygon_",
            "-mov eax,ecx",
            " add esp,0x8",
            " pop ebp",
            " pop edi",
            "@@ -148,7 +118,7 @@",
            " push text:'Illegal render mode encountered in 3D object data.'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-mov eax,ecx",
            "+mov eax,ebp",
            " add esp,0x8",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "shadows.c::draw_partially_visible_primary_shadow_face_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49c378",
          "second": "0x4987e0",
          "first_instruction_count": 259,
          "second_instruction_count": 199,
          "diff": [
            "--- 0x49c378",
            "+++ 0x4987e0",
            "@@ -4,30 +4,27 @@",
            " push edi",
            " push ebp",
            " sub esp,0x10",
            "-mov esi,eax",
            "+mov ebp,eax",
            " mov m4[esp+None*1+0x8],edx",
            "-lea esi,m4[eax+None*1+0x1]",
            "+lea ebp,m4[eax+None*1+0x1]",
            " xor ecx,ecx",
            " xor eax,eax",
            "-mov cl,m1[esi+None*1+0x0]",
            "-mov al,m1[esi+None*1+0xffffffff]",
            "-inc esi",
            "+mov cl,m1[ebp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0xffffffff]",
            "+inc ebp",
            " mov m4[esp+None*1+0x4],eax",
            "-mov al,m1[eax+None*1+shadows.c::_primary_face_attributes]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov m1[esp+None*1+0xc],al",
            "-cmp edx,0x15",
            "-ja local:246",
            "-mov eax,edx",
            "-jmp m4[None+eax*4+shadows.c::draw_completely_visible_secondary_shadow_face_+0x184]",
            "-test m1[esp+None*1+0xc],0x1",
            "+mov bl,m1[eax+None*1+shadows.c::_primary_face_attributes]",
            "+cmp eax,0x15",
            "+ja local:186",
            "+jmp m4[None+eax*4+shadows.c::draw_completely_visible_secondary_shadow_face_+0x12c]",
            "+test bl,0x1",
            "+je local:22",
            "+inc ebp",
            "+test bl,0x4",
            " je local:25",
            "-inc esi",
            "-test m1[esp+None*1+0xc],0x4",
            "-je local:28",
            "-inc esi",
            "-add esi,ecx",
            "-mov eax,esi",
            "+inc ebp",
            "+add ebp,ecx",
            "+mov eax,ebp",
            " add esp,0x10",
            " pop ebp",
            " pop edi",
            "@@ -35,92 +32,94 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-test m1[esp+None*1+0xc],0x1",
            "+test bl,0x1",
            "+je local:37",
            "+inc ebp",
            "+test bl,0x2",
            " je local:40",
            "-inc esi",
            "-test m1[esp+None*1+0xc],0x2",
            "+inc ebp",
            "+test bl,0x4",
            " je local:43",
            "-inc esi",
            "-test m1[esp+None*1+0xc],0x4",
            "-je local:46",
            "-inc esi",
            "-test m1[esp+None*1+0xc],0x10",
            "+inc ebp",
            "+test bl,0x10",
            " jne local:77",
            " mov edx,m4[esp+None*1+0x8]",
            "-inc esi",
            " xor eax,eax",
            "-mov ebp,0xffffffff",
            "-mov al,m1[esi+None*1+0xffffffff]",
            "-xor edi,edi",
            "+mov edi,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x8]",
            "+mov m4[esp+None*1+0xc],edi",
            " mov m4[esp+None*1+0x0],eax",
            "-mov ebx,eax",
            "+mov esi,eax",
            "+xor edi,edi",
            " dec ecx",
            " je local:81",
            "-test m1[esp+None*1+0xc],0x8",
            "-je local:64",
            "-inc esi",
            "-test m1[esp+None*1+0xc],0x10",
            "+test bl,0x8",
            "+je local:61",
            "+inc ebp",
            "+test bl,0x10",
            " jne local:79",
            " xor eax,eax",
            "-mov al,m1[esi+None*1+0x0]",
            "+mov edx,m4[esp+None*1+0x8]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc esi",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ebp,eax",
            "+mov m4[esi+None*1+0x24],eax",
            "+mov edx,m4[esp+None*1+0xc]",
            "+mov eax,m4[esi+None*1+0x20]",
            "+mov esi,m4[esi+None*1+0x24]",
            "+and edx,eax",
            " or edi,eax",
            "-jmp local:59",
            "-inc esi",
            "-jmp local:48",
            "-add esi,0x2",
            "-jmp local:66",
            "-test m1[esp+None*1+0xc],0x8",
            "+mov m4[esp+None*1+0xc],edx",
            "+jmp local:56",
            "+inc ebp",
            "+jmp local:45",
            "+add ebp,0x2",
            "+jmp local:63",
            "+test bl,0x8",
            " je local:84",
            "-inc esi",
            "-test m1[esp+None*1+0xc],0x10",
            "+inc ebp",
            "+test bl,0x10",
            " je local:87",
            "-add esi,0x2",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov m4[ebx+None*1+0x24],0x0",
            "-and ebp,eax",
            "+add ebp,0x2",
            "+mov edx,m4[esp+None*1+0xc]",
            "+mov eax,m4[esi+None*1+0x20]",
            "+mov m4[esi+None*1+0x24],0x0",
            "+and edx,eax",
            " or edi,eax",
            "-test ebp,ebp",
            "-jne local:29",
            "+mov m4[esp+None*1+0xc],edx",
            "+test edx,edx",
            "+jne local:26",
            " test edi,edi",
            "-jne local:163",
            "+jne local:139",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "+mov ecx,m4[esp+None*1+0x4]",
            " call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-cmp edx,0x15",
            "-je local:29",
            "+mov m4[None+None*1+3dobjs1.c::_face_cyclic],eax",
            "+cmp ecx,0x15",
            "+je local:26",
            " test eax,eax",
            "-jl local:29",
            "-xor edx,edx",
            "-mov dl,m1[None+None*1+0xaffd22]",
            "-mov ecx,edx",
            "-mov eax,edx",
            "-shl ecx,0x18",
            "-shl eax,0x10",
            "-add ecx,eax",
            "-mov eax,edx",
            "-shl eax,0x8",
            "+jl local:26",
            "+xor eax,eax",
            "+mov al,m1[None+None*1+0xaea3d2]",
            "+mov esi,eax",
            "+mov ecx,eax",
            "+shl esi,0x18",
            "+shl ecx,0x10",
            "+add esi,ecx",
            "+mov ecx,eax",
            "+shl ecx,0x8",
            "+add ecx,esi",
            "+mov ebx,m4[esp+None*1+0x4]",
            " add eax,ecx",
            "-mov ecx,m4[esp+None*1+0x4]",
            "-add edx,eax",
            "-cmp ecx,0x6",
            "-je local:140",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:130",
            "-mov ebx,0xe5",
            "-mov eax,m4[esp+None*1+0x0]",
            "-call fxpoly1.c::_3dfx_fill_unfogged_translucent_polygon_",
            "-mov eax,esi",
            "+cmp ebx,0x6",
            "+je local:129",
            "+mov esi,m4[esp+None*1+0x0]",
            "+call polygon.c::fill_fine_meshed_polygon_",
            "+mov eax,ebp",
            " add esp,0x10",
            " pop ebp",
            " pop edi",
            "@@ -128,32 +127,9 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov eax,m4[esp+None*1+0x0]",
            "-call fxpoly1.c::fill_fine_meshed_polygon_",
            "-mov eax,esi",
            "-add esp,0x10",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:153",
            "-mov ebx,0x19",
            "-mov eax,m4[esp+None*1+0x0]",
            "-call fxpoly1.c::_3dfx_fill_unfogged_translucent_polygon_",
            "-mov eax,esi",
            "-add esp,0x10",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov eax,m4[esp+None*1+0x0]",
            "-call fxpoly1.c::fill_medium_meshed_polygon_",
            "-mov eax,esi",
            "+mov esi,m4[esp+None*1+0x0]",
            "+call polygon.c::fill_medium_meshed_polygon_",
            "+mov eax,ebp",
            " add esp,0x10",
            " pop ebp",
            " pop edi",
            "@@ -163,13 +139,14 @@",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            " mov edx,m4[esp+None*1+0x0]",
            "+mov ebx,esi",
            " mov eax,edi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov ecx,eax",
            "+call 3dpoly.c::clip_raw_3d_polygon_",
            "+mov esi,eax",
            " test eax,eax",
            "-jne local:179",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,esi",
            "+jne local:156",
            "+mov m4[None+None*1+3dobjs1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            " add esp,0x10",
            " pop ebp",
            " pop edi",
            "@@ -178,65 +155,28 @@",
            " pop ebx",
            " ret ",
            " call 3dcore.c::get_robust_cyclic_order_",
            "-mov ebx,m4[esp+None*1+0x4]",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-cmp ebx,0x15",
            "-je local:29",
            "+mov edi,m4[esp+None*1+0x4]",
            "+mov m4[None+None*1+3dobjs1.c::_face_cyclic],eax",
            "+cmp edi,0x15",
            "+je local:26",
            " test eax,eax",
            "-jl local:29",
            "-xor edx,edx",
            "-mov dl,m1[None+None*1+0xaffd22]",
            "-mov eax,edx",
            "-mov ebx,edx",
            "-shl eax,0x18",
            "-shl ebx,0x10",
            "-add ebx,eax",
            "-mov eax,edx",
            "-shl eax,0x8",
            "-add eax,ebx",
            "-mov edi,m4[esp+None*1+0x4]",
            "-add edx,eax",
            "-cmp edi,0x6",
            "-je local:223",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:213",
            "-mov ebx,0xe5",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_unfogged_translucent_polygon_",
            "-mov eax,esi",
            "-add esp,0x10",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_fine_meshed_polygon_",
            "-mov eax,esi",
            "-add esp,0x10",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:236",
            "-mov ebx,0x19",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_unfogged_translucent_polygon_",
            "-mov eax,esi",
            "-add esp,0x10",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_medium_meshed_polygon_",
            "-mov eax,esi",
            "+jl local:26",
            "+xor eax,eax",
            "+mov al,m1[None+None*1+0xaea3d2]",
            "+mov edi,eax",
            "+mov ecx,eax",
            "+shl edi,0x18",
            "+shl ecx,0x10",
            "+add edi,ecx",
            "+mov ecx,eax",
            "+shl ecx,0x8",
            "+add ecx,edi",
            "+mov edx,m4[esp+None*1+0x4]",
            "+add eax,ecx",
            "+cmp edx,0x6",
            "+je local:130",
            "+call polygon.c::fill_fine_meshed_polygon_",
            "+mov eax,ebp",
            " add esp,0x10",
            " pop ebp",
            " pop edi",
            "@@ -249,7 +189,7 @@",
            " push text:'Illegal render mode encountered in 3D object data.'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-mov eax,esi",
            "+mov eax,ebp",
            " add esp,0x10",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "shadows.c::draw_partially_visible_secondary_shadow_face_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49c674",
          "second": "0x498a3c",
          "first_instruction_count": 225,
          "second_instruction_count": 188,
          "diff": [
            "--- 0x49c674",
            "+++ 0x498a3c",
            "@@ -4,30 +4,27 @@",
            " push edi",
            " push ebp",
            " sub esp,0x10",
            "-mov esi,eax",
            "+mov ebp,eax",
            " mov m4[esp+None*1+0x8],edx",
            "-lea esi,m4[eax+None*1+0x1]",
            "+lea ebp,m4[eax+None*1+0x1]",
            " xor ecx,ecx",
            " xor eax,eax",
            "-mov cl,m1[esi+None*1+0x0]",
            "-mov al,m1[esi+None*1+0xffffffff]",
            "-inc esi",
            "+mov cl,m1[ebp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0xffffffff]",
            "+inc ebp",
            " mov m4[esp+None*1+0x4],eax",
            "-mov al,m1[eax+None*1+shadows.c::_secondary_face_attributes]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov m1[esp+None*1+0xc],al",
            "-cmp edx,0x15",
            "-ja local:212",
            "-mov eax,edx",
            "-jmp m4[None+eax*4+shadows.c::draw_partially_visible_primary_shadow_face_+0x2a4]",
            "-test m1[esp+None*1+0xc],0x1",
            "+mov bl,m1[eax+None*1+shadows.c::_secondary_face_attributes]",
            "+cmp eax,0x15",
            "+ja local:175",
            "+jmp m4[None+eax*4+shadows.c::draw_partially_visible_primary_shadow_face_+0x204]",
            "+test bl,0x1",
            "+je local:22",
            "+inc ebp",
            "+test bl,0x4",
            " je local:25",
            "-inc esi",
            "-test m1[esp+None*1+0xc],0x4",
            "-je local:28",
            "-inc esi",
            "-add esi,ecx",
            "-mov eax,esi",
            "+inc ebp",
            "+add ebp,ecx",
            "+mov eax,ebp",
            " add esp,0x10",
            " pop ebp",
            " pop edi",
            "@@ -35,86 +32,88 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-test m1[esp+None*1+0xc],0x1",
            "+test bl,0x1",
            "+je local:37",
            "+inc ebp",
            "+test bl,0x2",
            " je local:40",
            "-inc esi",
            "-test m1[esp+None*1+0xc],0x2",
            "+inc ebp",
            "+test bl,0x4",
            " je local:43",
            "-inc esi",
            "-test m1[esp+None*1+0xc],0x4",
            "-je local:46",
            "-inc esi",
            "-test m1[esp+None*1+0xc],0x10",
            "+inc ebp",
            "+test bl,0x10",
            " jne local:77",
            " mov edx,m4[esp+None*1+0x8]",
            "-inc esi",
            " xor eax,eax",
            "-mov ebp,0xffffffff",
            "-mov al,m1[esi+None*1+0xffffffff]",
            "-xor edi,edi",
            "+mov edi,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x8]",
            "+mov m4[esp+None*1+0xc],edi",
            " mov m4[esp+None*1+0x0],eax",
            "-mov ebx,eax",
            "+mov esi,eax",
            "+xor edi,edi",
            " dec ecx",
            " je local:81",
            "-test m1[esp+None*1+0xc],0x8",
            "-je local:64",
            "-inc esi",
            "-test m1[esp+None*1+0xc],0x10",
            "+test bl,0x8",
            "+je local:61",
            "+inc ebp",
            "+test bl,0x10",
            " jne local:79",
            " xor eax,eax",
            "-mov al,m1[esi+None*1+0x0]",
            "+mov edx,m4[esp+None*1+0x8]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc esi",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ebp,eax",
            "+mov m4[esi+None*1+0x24],eax",
            "+mov edx,m4[esp+None*1+0xc]",
            "+mov eax,m4[esi+None*1+0x20]",
            "+mov esi,m4[esi+None*1+0x24]",
            "+and edx,eax",
            " or edi,eax",
            "-jmp local:59",
            "-inc esi",
            "-jmp local:48",
            "-add esi,0x2",
            "-jmp local:66",
            "-test m1[esp+None*1+0xc],0x8",
            "+mov m4[esp+None*1+0xc],edx",
            "+jmp local:56",
            "+inc ebp",
            "+jmp local:45",
            "+add ebp,0x2",
            "+jmp local:63",
            "+test bl,0x8",
            " je local:84",
            "-inc esi",
            "-test m1[esp+None*1+0xc],0x10",
            "+inc ebp",
            "+test bl,0x10",
            " je local:87",
            "-add esi,0x2",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov m4[ebx+None*1+0x24],0x0",
            "-and ebp,eax",
            "+add ebp,0x2",
            "+mov edx,m4[esp+None*1+0xc]",
            "+mov eax,m4[esi+None*1+0x20]",
            "+mov m4[esi+None*1+0x24],0x0",
            "+and edx,eax",
            " or edi,eax",
            "-test ebp,ebp",
            "-jne local:29",
            "+mov m4[esp+None*1+0xc],edx",
            "+test edx,edx",
            "+jne local:26",
            " test edi,edi",
            "-jne local:157",
            "+jne local:133",
            "+cmp m4[esp+None*1+0x4],0x15",
            "+je local:26",
            "+xor eax,eax",
            "+mov al,m1[None+None*1+0xaea3d2]",
            "+mov esi,eax",
            "+mov ecx,eax",
            "+shl esi,0x18",
            "+shl ecx,0x10",
            "+add ecx,esi",
            "+mov esi,eax",
            "+shl esi,0x8",
            "+add ecx,esi",
            " mov ebx,m4[esp+None*1+0x4]",
            "-cmp ebx,0x15",
            "-je local:29",
            "-xor edx,edx",
            "-mov dl,m1[None+None*1+0xaffd22]",
            "-mov ecx,edx",
            "-mov eax,edx",
            "-shl ecx,0x18",
            "-shl eax,0x10",
            "-add ecx,eax",
            "-mov eax,edx",
            "-shl eax,0x8",
            " add eax,ecx",
            "-add edx,eax",
            " cmp ebx,0x6",
            "-je local:134",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:124",
            "-mov ebx,0xe5",
            "-mov eax,m4[esp+None*1+0x0]",
            "-call fxpoly1.c::_3dfx_fill_unfogged_translucent_polygon_",
            "-mov eax,esi",
            "+je local:123",
            "+mov esi,m4[esp+None*1+0x0]",
            "+call polygon.c::fill_fine_meshed_polygon_",
            "+mov eax,ebp",
            " add esp,0x10",
            " pop ebp",
            " pop edi",
            "@@ -122,32 +121,9 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov eax,m4[esp+None*1+0x0]",
            "-call fxpoly1.c::fill_fine_meshed_polygon_",
            "-mov eax,esi",
            "-add esp,0x10",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:147",
            "-mov ebx,0x19",
            "-mov eax,m4[esp+None*1+0x0]",
            "-call fxpoly1.c::_3dfx_fill_unfogged_translucent_polygon_",
            "-mov eax,esi",
            "-add esp,0x10",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov eax,m4[esp+None*1+0x0]",
            "-call fxpoly1.c::fill_medium_meshed_polygon_",
            "-mov eax,esi",
            "+mov esi,m4[esp+None*1+0x0]",
            "+call polygon.c::fill_medium_meshed_polygon_",
            "+mov eax,ebp",
            " add esp,0x10",
            " pop ebp",
            " pop edi",
            "@@ -157,31 +133,30 @@",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            " mov edx,m4[esp+None*1+0x0]",
            "+mov ebx,esi",
            " mov eax,edi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "+call 3dpoly.c::clip_raw_3d_polygon_",
            "+mov esi,eax",
            " test eax,eax",
            "-je local:203",
            "+je local:166",
            " cmp m4[esp+None*1+0x4],0x15",
            "-je local:29",
            "-xor edx,edx",
            "-mov dl,m1[None+None*1+0xaffd22]",
            "-mov ecx,edx",
            "-mov ebx,edx",
            "+je local:26",
            "+xor eax,eax",
            "+mov al,m1[None+None*1+0xaea3d2]",
            "+mov ecx,eax",
            "+mov edi,eax",
            " shl ecx,0x18",
            "-shl ebx,0x10",
            "-add ebx,ecx",
            "-mov ecx,edx",
            "+shl edi,0x10",
            "+add edi,ecx",
            "+mov ecx,eax",
            " shl ecx,0x8",
            "-add ecx,ebx",
            "-mov edi,m4[esp+None*1+0x4]",
            "-add edx,ecx",
            "-cmp edi,0x6",
            "-je local:191",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:125",
            "-mov ebx,0xe5",
            "-call fxpoly1.c::_3dfx_fill_unfogged_translucent_polygon_",
            "-mov eax,esi",
            "+add ecx,edi",
            "+mov edx,m4[esp+None*1+0x4]",
            "+add eax,ecx",
            "+cmp edx,0x6",
            "+je local:124",
            "+call polygon.c::fill_fine_meshed_polygon_",
            "+mov eax,ebp",
            " add esp,0x10",
            " pop ebp",
            " pop edi",
            "@@ -189,20 +164,8 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:148",
            "-mov ebx,0x19",
            "-call fxpoly1.c::_3dfx_fill_unfogged_translucent_polygon_",
            "-mov eax,esi",
            "-add esp,0x10",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,esi",
            "+mov m4[None+None*1+3dobjs1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            " add esp,0x10",
            " pop ebp",
            " pop edi",
            "@@ -215,7 +178,7 @@",
            " push text:'Illegal render mode encountered in 3D object data.'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-mov eax,esi",
            "+mov eax,ebp",
            " add esp,0x10",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "shadows.c::get_true_3d_object_visibility_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49ab70",
          "second": "0x497080",
          "first_instruction_count": 346,
          "second_instruction_count": 346,
          "diff": [
            "--- 0x49ab70",
            "+++ 0x497080",
            "@@ -6,7 +6,7 @@",
            " sub esp,0x88",
            " mov ebp,eax",
            " mov m4[esp+None*1+0x7c],edx",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_is_scaled]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_is_scaled]",
            " test edx,edx",
            " je local:195",
            " xor ebx,ebx",
            "@@ -19,7 +19,7 @@",
            " mov m4[esp+None*1+0x64],eax",
            " movsx eax,m2[ebp+None*1+0x4]",
            " shl eax,0x4",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_x_scale]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_x_scale]",
            " mov m4[esp+None*1+0x68],eax",
            " mov eax,m4[esp+None*1+0x60]",
            " imul edx",
            "@@ -28,14 +28,14 @@",
            " adc edx,0x0",
            " mov eax,m4[esp+None*1+0x64]",
            " mov m4[esp+None*1+0x6c],edx",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_y_scale]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_y_scale]",
            " imul edx",
            " shld edx,eax,0x8",
            " shl eax,0x9",
            " adc edx,0x0",
            " mov eax,m4[esp+None*1+0x68]",
            " mov m4[esp+None*1+0x70],edx",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_z_scale]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_z_scale]",
            " mov ebx,m4[esp+None*1+0x70]",
            " imul edx",
            " shld edx,eax,0x8",
            "@@ -48,11 +48,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff698]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff69c]",
            "+mov eax,m4[None+None*1+0xae9d18]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d1c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -65,15 +65,15 @@",
            " mov ebx,m4[esp+None*1+0x70]",
            " mov eax,m4[esp+None*1+0x6c]",
            " mov m4[esp+None*1+0x78],edx",
            "-mov edx,m4[None+None*1+0xaff6a0]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a4]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6a8]",
            "+mov edx,m4[None+None*1+0xae9d20]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9d24]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d28]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -86,15 +86,15 @@",
            " mov ebx,m4[esp+None*1+0x70]",
            " mov eax,m4[esp+None*1+0x6c]",
            " mov m4[esp+None*1+0x74],edx",
            "-mov edx,m4[None+None*1+0xaff6ac]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6b0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6b4]",
            "+mov edx,m4[None+None*1+0xae9d2c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9d30]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d34]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -123,7 +123,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ebx,m4[None+None*1+0xaff634]",
            "+mov ebx,m4[None+None*1+0xae972c]",
            " add edi,edx",
            " mov eax,m4[None+None*1+3dcore.c::_a_factors]",
            " mov ecx,edi",
            "@@ -138,13 +138,13 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ebx,m4[None+None*1+fx3dobj1.c::_xeo_object]",
            "+mov ebx,m4[None+None*1+3dobjs1.c::_xeo_object]",
            " mov eax,m4[esp+None*1+0x84]",
            " add edx,ebx",
            " add ebp,0x2",
            " mov m4[esp+eax*1+0x40],edx",
            "-mov ebx,m4[None+None*1+0xaff640]",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov ebx,m4[None+None*1+0xae9738]",
            "+mov eax,m4[None+None*1+0xae9734]",
            " mov ecx,edi",
            " mov edx,esi",
            " imul edx",
            "@@ -156,12 +156,12 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-add edx,m4[None+None*1+fx3dobj1.c::_yeo_object]",
            "+add edx,m4[None+None*1+3dobjs1.c::_yeo_object]",
            " mov eax,m4[esp+None*1+0x84]",
            "-mov ebx,m4[None+None*1+0xaff64c]",
            "+mov ebx,m4[None+None*1+0xae9744]",
            " mov ecx,edi",
            " mov m4[esp+eax*1+0x0],edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xae9740]",
            " mov edx,esi",
            " imul edx",
            " xchg ebx,eax",
            "@@ -173,7 +173,7 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,m4[esp+None*1+0x84]",
            "-mov ecx,m4[None+None*1+fx3dobj1.c::_zeo_object]",
            "+mov ecx,m4[None+None*1+3dobjs1.c::_zeo_object]",
            " lea ebx,m4[eax+None*1+0x4]",
            " add edx,ecx",
            " mov m4[esp+None*1+0x84],ebx",
            "@@ -210,11 +210,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff698]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff69c]",
            "+mov eax,m4[None+None*1+0xae9d18]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d1c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -227,15 +227,15 @@",
            " mov ebx,m4[esp+None*1+0x64]",
            " mov eax,m4[esp+None*1+0x60]",
            " mov m4[esp+None*1+0x74],edx",
            "-mov edx,m4[None+None*1+0xaff6a0]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a4]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6a8]",
            "+mov edx,m4[None+None*1+0xae9d20]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9d24]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d28]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -248,15 +248,15 @@",
            " mov ebx,m4[esp+None*1+0x64]",
            " mov eax,m4[esp+None*1+0x60]",
            " mov m4[esp+None*1+0x78],edx",
            "-mov edx,m4[None+None*1+0xaff6ac]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6b0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6b4]",
            "+mov edx,m4[None+None*1+0xae9d2c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9d30]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d34]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -284,7 +284,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ebx,m4[None+None*1+0xaff634]",
            "+mov ebx,m4[None+None*1+0xae972c]",
            " add esi,edx",
            " mov eax,m4[None+None*1+3dcore.c::_a_factors]",
            " mov ecx,esi",
            "@@ -298,14 +298,14 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_xeo_object]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_xeo_object]",
            " add ebp,0x2",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x80]",
            "-mov ebx,m4[None+None*1+0xaff640]",
            "+mov ebx,m4[None+None*1+0xae9738]",
            " mov ecx,esi",
            " mov m4[esp+eax*1+0x40],edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[None+None*1+0xae9734]",
            " mov edx,edi",
            " add ebp,0x2",
            " imul edx",
            "@@ -318,12 +318,12 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,m4[esp+None*1+0x80]",
            "-mov ecx,m4[None+None*1+fx3dobj1.c::_yeo_object]",
            "-mov ebx,m4[None+None*1+0xaff64c]",
            "+mov ecx,m4[None+None*1+3dobjs1.c::_yeo_object]",
            "+mov ebx,m4[None+None*1+0xae9744]",
            " add edx,ecx",
            " mov ecx,esi",
            " mov m4[esp+eax*1+0x0],edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xae9740]",
            " mov edx,edi",
            " add ebp,0x2",
            " imul edx",
            "@@ -336,7 +336,7 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,m4[esp+None*1+0x80]",
            "-mov ebx,m4[None+None*1+fx3dobj1.c::_zeo_object]",
            "+mov ebx,m4[None+None*1+3dobjs1.c::_zeo_object]",
            " lea esi,m4[eax+None*1+0x4]",
            " add edx,ebx",
            " mov m4[esp+None*1+0x80],esi"
          ]
        },
        {
          "symbol": "shadows.c::process_completely_visible_decision_plane_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49bbd0",
          "second": "0x4980e0",
          "first_instruction_count": 75,
          "second_instruction_count": 75,
          "diff": [
            "--- 0x49bbd0",
            "+++ 0x4980e0",
            "@@ -31,7 +31,7 @@",
            " call 3dcore.c::get_cyclic_order_",
            " add ecx,0x2",
            " mov ebx,eax",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+mov m4[None+None*1+3dobjs1.c::_face_cyclic],eax",
            " movsx eax,m2[ecx+None*1+0xfffffffe]",
            " lea esi,m4[ecx+eax*1+0x0]",
            " movsx eax,m2[ecx+None*1+0x0]"
          ]
        },
        {
          "symbol": "shadows.c::process_completely_visible_if_then_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49bda0",
          "second": "0x4982b0",
          "first_instruction_count": 25,
          "second_instruction_count": 25,
          "diff": [
            "--- 0x49bda0",
            "+++ 0x4982b0",
            "@@ -3,7 +3,7 @@",
            " push edi",
            " add eax,0x4",
            " add eax,0x2",
            "-mov edi,m4[None+None*1+fx3dobj1.c::_animation_flags]",
            "+mov edi,m4[None+None*1+3dobjs1.c::_animation_flags]",
            " movsx ecx,m2[eax+None*1+0xfffffffe]",
            " mov esi,m4[eax+None*1+0xfffffffa]",
            " add ecx,eax"
          ]
        },
        {
          "symbol": "shadows.c::process_completely_visible_if_then_else_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49be10",
          "second": "0x498320",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x49be10",
            "+++ 0x498320",
            "@@ -3,7 +3,7 @@",
            " push edi",
            " add eax,0x4",
            " add eax,0x2",
            "-mov edi,m4[None+None*1+fx3dobj1.c::_animation_flags]",
            "+mov edi,m4[None+None*1+3dobjs1.c::_animation_flags]",
            " movsx ecx,m2[eax+None*1+0xfffffffe]",
            " mov esi,m4[eax+None*1+0xfffffffa]",
            " add ecx,eax"
          ]
        },
        {
          "symbol": "shadows.c::process_completely_visible_select_case_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49be78",
          "second": "0x498388",
          "first_instruction_count": 32,
          "second_instruction_count": 32,
          "diff": [
            "--- 0x49be78",
            "+++ 0x498388",
            "@@ -10,7 +10,7 @@",
            " add eax,0x2",
            " mov m4[esp+None*1+0x0],ecx",
            " movsx ecx,m2[eax+None*1+0xfffffffe]",
            "-mov ebp,m4[None+None*1+fx3dobj1.c::_animation_flags]",
            "+mov ebp,m4[None+None*1+3dobjs1.c::_animation_flags]",
            " lea esi,m4[eax+ecx*1+0x0]",
            " mov cl,m1[esp+None*1+0x0]",
            " shr ebp,cl"
          ]
        },
        {
          "symbol": "shadows.c::process_gosub_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49bf10",
          "second": "0x498420",
          "first_instruction_count": 30,
          "second_instruction_count": 30,
          "diff": [
            "--- 0x49bf10",
            "+++ 0x498420",
            "@@ -3,7 +3,7 @@",
            " push edx",
            " mov edx,eax",
            " lea edx,m4[eax+None*1+0x1]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_current_3d_instance]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_current_3d_instance]",
            " xor ecx,ecx",
            " mov ebx,m4[eax+None*1+0x1c]",
            " mov cl,m1[edx+None*1+0xffffffff]",
            "@@ -19,10 +19,10 @@",
            " ret ",
            " mov eax,m4[eax+None*1+0x4]",
            " mov m4[ecx+None*1+0x4],eax",
            "-call fx3dobj1.c::push_3d_object_",
            "+call 3dobjs1.c::push_3d_object_",
            " mov eax,ecx",
            " call shadows.c::draw_3d_object_shadow_",
            "-call fx3dobj1.c::pop_3d_object_",
            "+call 3dobjs1.c::pop_3d_object_",
            " mov eax,edx",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "shadows.c::process_partially_visible_decision_plane_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49bc84",
          "second": "0x498194",
          "first_instruction_count": 101,
          "second_instruction_count": 101,
          "diff": [
            "--- 0x49bc84",
            "+++ 0x498194",
            "@@ -33,7 +33,7 @@",
            " jne local:76",
            " mov eax,m4[esp+None*1+0x0]",
            " call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+mov m4[None+None*1+3dobjs1.c::_face_cyclic],eax",
            " movsx eax,m2[esi+None*1+0x0]",
            " add esi,0x2",
            " lea ebp,m4[esi+eax*1+0x0]",
            "@@ -42,7 +42,7 @@",
            " lea ecx,m4[esi+eax*1+0x0]",
            " movsx eax,m2[esi+None*1+0x0]",
            " add esi,0x2",
            "-mov ebx,m4[None+None*1+fx3dobj1.c::_face_cyclic]",
            "+mov ebx,m4[None+None*1+3dobjs1.c::_face_cyclic]",
            " add esi,eax",
            " test ebx,ebx",
            " jl local:86",
            "@@ -77,10 +77,10 @@",
            " mov ecx,vertex.c::_vertex_buffer",
            " mov edx,m4[esp+None*1+0x0]",
            " mov eax,ebp",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "+call 3dpoly.c::clip_raw_3d_polygon_",
            " test eax,eax",
            " jne local:84",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov m4[None+None*1+3dobjs1.c::_face_cyclic],0xffffffff",
            " jmp local:36",
            " call 3dcore.c::get_robust_cyclic_order_",
            " jmp local:35"
          ]
        },
        {
          "symbol": "shadows.c::process_partially_visible_if_then_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49bdd8",
          "second": "0x4982e8",
          "first_instruction_count": 25,
          "second_instruction_count": 25,
          "diff": [
            "--- 0x49bdd8",
            "+++ 0x4982e8",
            "@@ -3,7 +3,7 @@",
            " push edi",
            " add eax,0x4",
            " add eax,0x2",
            "-mov edi,m4[None+None*1+fx3dobj1.c::_animation_flags]",
            "+mov edi,m4[None+None*1+3dobjs1.c::_animation_flags]",
            " movsx ecx,m2[eax+None*1+0xfffffffe]",
            " mov esi,m4[eax+None*1+0xfffffffa]",
            " add ecx,eax"
          ]
        },
        {
          "symbol": "shadows.c::process_partially_visible_if_then_else_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49be44",
          "second": "0x498354",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x49be44",
            "+++ 0x498354",
            "@@ -3,7 +3,7 @@",
            " push edi",
            " add eax,0x4",
            " add eax,0x2",
            "-mov edi,m4[None+None*1+fx3dobj1.c::_animation_flags]",
            "+mov edi,m4[None+None*1+3dobjs1.c::_animation_flags]",
            " movsx ecx,m2[eax+None*1+0xfffffffe]",
            " mov esi,m4[eax+None*1+0xfffffffa]",
            " add ecx,eax"
          ]
        },
        {
          "symbol": "shadows.c::process_partially_visible_select_case_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49bec4",
          "second": "0x4983d4",
          "first_instruction_count": 32,
          "second_instruction_count": 32,
          "diff": [
            "--- 0x49bec4",
            "+++ 0x4983d4",
            "@@ -10,7 +10,7 @@",
            " add eax,0x2",
            " mov m4[esp+None*1+0x0],ecx",
            " movsx ecx,m2[eax+None*1+0xfffffffe]",
            "-mov ebp,m4[None+None*1+fx3dobj1.c::_animation_flags]",
            "+mov ebp,m4[None+None*1+3dobjs1.c::_animation_flags]",
            " lea esi,m4[eax+ecx*1+0x0]",
            " mov cl,m1[esp+None*1+0x0]",
            " shr ebp,cl"
          ]
        },
        {
          "symbol": "shadows.c::scan_completely_visible_3d_object_face_list_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49ba48",
          "second": "0x497f58",
          "first_instruction_count": 64,
          "second_instruction_count": 64,
          "diff": [
            "--- 0x49ba48",
            "+++ 0x497f58",
            "@@ -17,7 +17,7 @@",
            " jmp local:6",
            " inc ecx",
            " xor eax,eax",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_face_cyclic]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_face_cyclic]",
            " mov al,m1[ecx+None*1+0xffffffff]",
            " test edx,edx",
            " jge local:25"
          ]
        },
        {
          "symbol": "shadows.c::scan_completely_visible_true_3d_object_vertex_list_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49afd0",
          "second": "0x4974e0",
          "first_instruction_count": 407,
          "second_instruction_count": 407,
          "diff": [
            "--- 0x49afd0",
            "+++ 0x4974e0",
            "@@ -8,7 +8,7 @@",
            " mov m4[esp+None*1+0x24],ebx",
            " lea ebp,m4[eax+None*1+0x2]",
            " movsx eax,m2[ebp+None*1+0xfffffffe]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_is_scaled]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_is_scaled]",
            " mov m4[esp+None*1+0x2c],eax",
            " test edx,edx",
            " je local:224",
            "@@ -31,7 +31,7 @@",
            " mov m4[esp+None*1+0x4],eax",
            " movsx eax,m2[ebp+None*1+0x4]",
            " shl eax,0x4",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_x_scale]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_x_scale]",
            " mov m4[esp+None*1+0x8],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " imul edx",
            "@@ -40,14 +40,14 @@",
            " adc edx,0x0",
            " mov eax,m4[esp+None*1+0x4]",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_y_scale]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_y_scale]",
            " imul edx",
            " shld edx,eax,0x8",
            " shl eax,0x9",
            " adc edx,0x0",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[esp+None*1+0x10],edx",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_z_scale]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_z_scale]",
            " mov ebx,m4[esp+None*1+0x10]",
            " imul edx",
            " shld edx,eax,0x8",
            "@@ -60,11 +60,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff698]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff69c]",
            "+mov eax,m4[None+None*1+0xae9d18]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d1c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -77,15 +77,15 @@",
            " mov ebx,m4[esp+None*1+0x10]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[esp+None*1+0x18],edx",
            "-mov edx,m4[None+None*1+0xaff6a0]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a4]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6a8]",
            "+mov edx,m4[None+None*1+0xae9d20]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9d24]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d28]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -98,15 +98,15 @@",
            " mov ebx,m4[esp+None*1+0x10]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xaff6ac]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6b0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6b4]",
            "+mov edx,m4[None+None*1+0xae9d2c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9d30]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d34]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -134,7 +134,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ebx,m4[None+None*1+0xaff634]",
            "+mov ebx,m4[None+None*1+0xae972c]",
            " add edi,edx",
            " mov eax,m4[None+None*1+3dcore.c::_a_factors]",
            " mov ecx,edi",
            "@@ -149,13 +149,13 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_xeo_object]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_xeo_object]",
            " add ebp,0x2",
            " add eax,edx",
            " add ebp,0x2",
            " mov m4[esp+None*1+0x20],eax",
            "-mov ebx,m4[None+None*1+0xaff640]",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov ebx,m4[None+None*1+0xae9738]",
            "+mov eax,m4[None+None*1+0xae9734]",
            " mov ecx,edi",
            " mov edx,esi",
            " imul edx",
            "@@ -167,23 +167,23 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_yeo_object]",
            "-mov ebx,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_yeo_object]",
            "+mov ebx,m4[None+None*1+0xae9744]",
            " add eax,edx",
            " mov ecx,edi",
            " mov m4[esp+None*1+0x18],eax",
            " mov edx,esi",
            "-mov eax,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-xchg ebx,eax",
            "-xchg edx,ecx",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_zeo_object]",
            "+mov eax,m4[None+None*1+0xae9740]",
            "+imul edx",
            "+xchg ebx,eax",
            "+xchg edx,ecx",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov eax,m4[None+None*1+3dobjs1.c::_zeo_object]",
            " add eax,edx",
            " mov ebx,m4[esp+None*1+0x18]",
            " mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            "@@ -243,11 +243,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff698]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff69c]",
            "+mov eax,m4[None+None*1+0xae9d18]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d1c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -260,15 +260,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xaff6a0]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a4]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6a8]",
            "+mov edx,m4[None+None*1+0xae9d20]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9d24]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d28]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -281,15 +281,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x18],edx",
            "-mov edx,m4[None+None*1+0xaff6ac]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6b0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6b4]",
            "+mov edx,m4[None+None*1+0xae9d2c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9d30]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d34]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -317,7 +317,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ebx,m4[None+None*1+0xaff634]",
            "+mov ebx,m4[None+None*1+0xae972c]",
            " add esi,edx",
            " mov eax,m4[None+None*1+3dcore.c::_a_factors]",
            " mov ecx,esi",
            "@@ -331,41 +331,41 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_xeo_object]",
            "-mov ebx,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_xeo_object]",
            "+mov ebx,m4[None+None*1+0xae9738]",
            " add eax,edx",
            " mov ecx,esi",
            " mov m4[esp+None*1+0x1c],eax",
            " mov edx,edi",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "-add ebp,0x2",
            "-imul edx",
            "-xchg ebx,eax",
            "-xchg edx,ecx",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_yeo_object]",
            "-mov ebx,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9734]",
            "+add ebp,0x2",
            "+imul edx",
            "+xchg ebx,eax",
            "+xchg edx,ecx",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov eax,m4[None+None*1+3dobjs1.c::_yeo_object]",
            "+mov ebx,m4[None+None*1+0xae9744]",
            " add eax,edx",
            " mov ecx,esi",
            " mov m4[esp+None*1+0x28],eax",
            " mov edx,edi",
            "-mov eax,m4[None+None*1+0xaff648]",
            "-add ebp,0x2",
            "-imul edx",
            "-xchg ebx,eax",
            "-xchg edx,ecx",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_zeo_object]",
            "+mov eax,m4[None+None*1+0xae9740]",
            "+add ebp,0x2",
            "+imul edx",
            "+xchg ebx,eax",
            "+xchg edx,ecx",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov eax,m4[None+None*1+3dobjs1.c::_zeo_object]",
            " add ebp,0x2",
            " add eax,edx",
            " mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]"
          ]
        },
        {
          "symbol": "shadows.c::scan_partially_visible_3d_object_face_list_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49bb1c",
          "second": "0x49802c",
          "first_instruction_count": 64,
          "second_instruction_count": 64,
          "diff": [
            "--- 0x49bb1c",
            "+++ 0x49802c",
            "@@ -17,7 +17,7 @@",
            " jmp local:6",
            " inc ecx",
            " xor eax,eax",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_face_cyclic]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_face_cyclic]",
            " mov al,m1[ecx+None*1+0xffffffff]",
            " test edx,edx",
            " jge local:25"
          ]
        },
        {
          "symbol": "shadows.c::scan_partially_visible_true_3d_object_vertex_list_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49b4cc",
          "second": "0x4979dc",
          "first_instruction_count": 432,
          "second_instruction_count": 432,
          "diff": [
            "--- 0x49b4cc",
            "+++ 0x4979dc",
            "@@ -8,7 +8,7 @@",
            " mov m4[esp+None*1+0x1c],ebx",
            " lea ebp,m4[eax+None*1+0x2]",
            " movsx eax,m2[ebp+None*1+0xfffffffe]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_is_scaled]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_is_scaled]",
            " mov m4[esp+None*1+0x30],eax",
            " test edx,edx",
            " je local:237",
            "@@ -31,7 +31,7 @@",
            " mov m4[esp+None*1+0x4],eax",
            " movsx eax,m2[ebp+None*1+0x4]",
            " shl eax,0x4",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_x_scale]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_x_scale]",
            " mov m4[esp+None*1+0x8],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " imul edx",
            "@@ -40,14 +40,14 @@",
            " adc edx,0x0",
            " mov eax,m4[esp+None*1+0x4]",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_y_scale]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_y_scale]",
            " imul edx",
            " shld edx,eax,0x8",
            " shl eax,0x9",
            " adc edx,0x0",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[esp+None*1+0x10],edx",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_z_scale]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_z_scale]",
            " mov ebx,m4[esp+None*1+0x10]",
            " imul edx",
            " shld edx,eax,0x8",
            "@@ -60,11 +60,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff698]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff69c]",
            "+mov eax,m4[None+None*1+0xae9d18]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d1c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -77,15 +77,15 @@",
            " mov ebx,m4[esp+None*1+0x10]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[esp+None*1+0x18],edx",
            "-mov edx,m4[None+None*1+0xaff6a0]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a4]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6a8]",
            "+mov edx,m4[None+None*1+0xae9d20]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9d24]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d28]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -98,15 +98,15 @@",
            " mov ebx,m4[esp+None*1+0x10]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xaff6ac]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6b0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6b4]",
            "+mov edx,m4[None+None*1+0xae9d2c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9d30]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d34]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -135,7 +135,7 @@",
            " adc edx,0x0",
            " mov eax,m4[esp+None*1+0x14]",
            " add eax,edx",
            "-mov ebx,m4[None+None*1+0xaff634]",
            "+mov ebx,m4[None+None*1+0xae972c]",
            " mov m4[esp+None*1+0x28],eax",
            " mov edx,edi",
            " mov ecx,m4[esp+None*1+0x28]",
            "@@ -150,14 +150,14 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_xeo_object]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_xeo_object]",
            " add ebp,0x2",
            " add eax,edx",
            " add ebp,0x2",
            " mov m4[esp+None*1+0x20],eax",
            " mov ecx,m4[esp+None*1+0x28]",
            "-mov ebx,m4[None+None*1+0xaff640]",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov ebx,m4[None+None*1+0xae9738]",
            "+mov eax,m4[None+None*1+0xae9734]",
            " mov edx,edi",
            " imul edx",
            " xchg ebx,eax",
            "@@ -169,9 +169,9 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov ecx,m4[esp+None*1+0x28]",
            "-mov esi,m4[None+None*1+fx3dobj1.c::_yeo_object]",
            "-mov ebx,m4[None+None*1+0xaff64c]",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov esi,m4[None+None*1+3dobjs1.c::_yeo_object]",
            "+mov ebx,m4[None+None*1+0xae9744]",
            "+mov eax,m4[None+None*1+0xae9740]",
            " add esi,edx",
            " mov edx,edi",
            " imul edx",
            "@@ -183,7 +183,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_zeo_object]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_zeo_object]",
            " add eax,edx",
            " mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            " imul edx",
            "@@ -256,11 +256,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff698]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff69c]",
            "+mov eax,m4[None+None*1+0xae9d18]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d1c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -273,15 +273,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xaff6a0]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a4]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6a8]",
            "+mov edx,m4[None+None*1+0xae9d20]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9d24]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d28]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -294,15 +294,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x18],edx",
            "-mov edx,m4[None+None*1+0xaff6ac]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6b0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6b4]",
            "+mov edx,m4[None+None*1+0xae9d2c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9d30]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9d34]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -330,7 +330,7 @@",
            " adc edx,0x0",
            " mov eax,m4[esp+None*1+0x18]",
            " add eax,edx",
            "-mov ebx,m4[None+None*1+0xaff634]",
            "+mov ebx,m4[None+None*1+0xae972c]",
            " mov m4[esp+None*1+0x2c],eax",
            " mov edx,edi",
            " mov ecx,m4[esp+None*1+0x2c]",
            "@@ -344,13 +344,13 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_xeo_object]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_xeo_object]",
            " mov ecx,m4[esp+None*1+0x2c]",
            " add eax,edx",
            "-mov ebx,m4[None+None*1+0xaff640]",
            "+mov ebx,m4[None+None*1+0xae9738]",
            " mov m4[esp+None*1+0x24],eax",
            " mov edx,edi",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[None+None*1+0xae9734]",
            " add ebp,0x2",
            " imul edx",
            " xchg ebx,eax",
            "@@ -362,9 +362,9 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov ecx,m4[esp+None*1+0x2c]",
            "-mov esi,m4[None+None*1+fx3dobj1.c::_yeo_object]",
            "-mov ebx,m4[None+None*1+0xaff64c]",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov esi,m4[None+None*1+3dobjs1.c::_yeo_object]",
            "+mov ebx,m4[None+None*1+0xae9744]",
            "+mov eax,m4[None+None*1+0xae9740]",
            " add esi,edx",
            " mov edx,edi",
            " add ebp,0x2",
            "@@ -377,7 +377,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_zeo_object]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_zeo_object]",
            " add ebp,0x2",
            " add eax,edx",
            " mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]"
          ]
        },
        {
          "symbol": "ship.c::drone_has_landed_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42afbc",
          "second": "0x42b33c",
          "first_instruction_count": 41,
          "second_instruction_count": 41,
          "diff": [
            "--- 0x42afbc",
            "+++ 0x42b33c",
            "@@ -12,7 +12,7 @@",
            " cmp esi,edi",
            " jne local:14",
            " sub ecx,0x900",
            "-mov esi,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov esi,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[edx+None*1+0x0]",
            " mov esi,m4[esi+eax*4+0x0]",
            " mov eax,m4[edx+None*1+0x8]"
          ]
        },
        {
          "symbol": "ship.c::drone_land_on_carrier_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42acf4",
          "second": "0x42b074",
          "first_instruction_count": 68,
          "second_instruction_count": 68,
          "diff": [
            "--- 0x42acf4",
            "+++ 0x42b074",
            "@@ -15,7 +15,7 @@",
            " mov bh,m1[edx+None*1+0x1c5]",
            " add eax,ecx",
            " or bh,0x4",
            "-mov ecx,m4[None+eax*4+0x579d80]",
            "+mov ecx,m4[None+eax*4+0x56cd90]",
            " mov m1[edx+None*1+0x1c5],bh",
            " mov ebx,m4[ecx+None*1+0x180]",
            " test ebx,ebx",
            "@@ -37,7 +37,7 @@",
            " xor eax,eax",
            " shl ebx,0x2",
            " mov al,m1[edx+None*1+0x1cd]",
            "-mov al,m1[ebx+eax*1+0x579d76]",
            "+mov al,m1[ebx+eax*1+0x56cd86]",
            " and eax,0xff",
            " mov ebx,m4[ecx+None*1+0x24]",
            " mov m4[ebx+eax*4+0x0],esi"
          ]
        },
        {
          "symbol": "ship.c::drone_take_off_from_carrier_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42abb0",
          "second": "0x42af30",
          "first_instruction_count": 94,
          "second_instruction_count": 94,
          "diff": [
            "--- 0x42abb0",
            "+++ 0x42af30",
            "@@ -20,7 +20,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " add eax,edx",
            "-mov eax,m4[None+eax*4+0x579d80]",
            "+mov eax,m4[None+eax*4+0x56cd90]",
            " mov dh,m1[ebp+None*1+0x1c5]",
            " mov m4[esp+None*1+0x14],eax",
            " mov eax,m4[eax+None*1+0x9c]",
            "@@ -73,7 +73,7 @@",
            " mov al,m1[ebp+None*1+0x1cd]",
            " add eax,edx",
            " xor edx,edx",
            "-mov dl,m1[eax+None*1+0x579d76]",
            "+mov dl,m1[eax+None*1+0x56cd86]",
            " mov eax,m4[esp+None*1+0x14]",
            " mov eax,m4[eax+None*1+0x24]",
            " mov m4[eax+edx*4+0x0],0x0"
          ]
        },
        {
          "symbol": "ship.c::get_carrier_aircraft_landing_point_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42adc4",
          "second": "0x42b144",
          "first_instruction_count": 124,
          "second_instruction_count": 124,
          "diff": [
            "--- 0x42adc4",
            "+++ 0x42b144",
            "@@ -22,7 +22,7 @@",
            " add edx,ebp",
            " shl edx,0x2",
            " mov ecx,ship.c::_carriers",
            "-mov ebp,m4[edx+None*1+0x579d80]",
            "+mov ebp,m4[edx+None*1+0x56cd90]",
            " add ecx,edx",
            " xor edx,edx",
            " mov dl,m1[eax+None*1+0x1cd]"
          ]
        },
        {
          "symbol": "ship.c::get_drone_carrier_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42af1c",
          "second": "0x42b29c",
          "first_instruction_count": 11,
          "second_instruction_count": 11,
          "diff": [
            "--- 0x42af1c",
            "+++ 0x42b29c",
            "@@ -6,6 +6,6 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " add eax,edx",
            "-mov eax,m4[None+eax*4+0x579d80]",
            "+mov eax,m4[None+eax*4+0x56cd90]",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "ship.c::get_drone_carrier_deck_level_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42af84",
          "second": "0x42b304",
          "first_instruction_count": 19,
          "second_instruction_count": 19,
          "diff": [
            "--- 0x42af84",
            "+++ 0x42b304",
            "@@ -7,8 +7,8 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " add eax,edx",
            "-mov eax,m4[None+eax*4+0x579d80]",
            "-mov ecx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+eax*4+0x56cd90]",
            "+mov ecx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edx,m4[eax+None*1+0x8]",
            " mov eax,m4[eax+None*1+0x10]",
            " mov edx,m4[ecx+edx*4+0x0]"
          ]
        },
        {
          "symbol": "ship.c::get_drone_carrier_heading_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42af60",
          "second": "0x42b2e0",
          "first_instruction_count": 12,
          "second_instruction_count": 12,
          "diff": [
            "--- 0x42af60",
            "+++ 0x42b2e0",
            "@@ -6,7 +6,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " add eax,edx",
            "-mov eax,m4[None+eax*4+0x579d80]",
            "+mov eax,m4[None+eax*4+0x56cd90]",
            " mov eax,m4[eax+None*1+0x90]",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "ship.c::get_drone_carrier_speed_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42af3c",
          "second": "0x42b2bc",
          "first_instruction_count": 12,
          "second_instruction_count": 12,
          "diff": [
            "--- 0x42af3c",
            "+++ 0x42b2bc",
            "@@ -6,7 +6,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " add eax,edx",
            "-mov eax,m4[None+eax*4+0x579d80]",
            "+mov eax,m4[None+eax*4+0x56cd90]",
            " mov eax,m4[eax+None*1+0x9c]",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "ship.c::get_nearest_available_landing_index_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42b160",
          "second": "0x42b4e0",
          "first_instruction_count": 92,
          "second_instruction_count": 92,
          "diff": [
            "--- 0x42b160",
            "+++ 0x42b4e0",
            "@@ -34,11 +34,11 @@",
            " mov edi,eax",
            " mov edx,m4[esp+None*1+0x18]",
            " xor eax,eax",
            "-mov al,m1[edx+None*1+0x579d75]",
            "+mov al,m1[edx+None*1+0x56cd85]",
            " cmp ecx,eax",
            " jge local:84",
            " xor eax,eax",
            "-mov al,m1[edi+None*1+0x579d76]",
            "+mov al,m1[edi+None*1+0x56cd86]",
            " cmp eax,0xff",
            " jne local:59",
            " add esi,0x30"
          ]
        },
        {
          "symbol": "ship.c::get_relative_offset_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42b5e4",
          "second": "0x42b964",
          "first_instruction_count": 97,
          "second_instruction_count": 97,
          "diff": [
            "--- 0x42b5e4",
            "+++ 0x42b964",
            "@@ -33,11 +33,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xae972c]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -50,15 +50,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[ebp+None*1+0x0],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -71,15 +71,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[ebp+None*1+0x4],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xae9740]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "ship.c::initialise_aircraft_carriers_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42a840",
          "second": "0x42abc0",
          "first_instruction_count": 57,
          "second_instruction_count": 57,
          "diff": [
            "--- 0x42a840",
            "+++ 0x42abc0",
            "@@ -17,19 +17,19 @@",
            " xor ebp,ebp",
            " xor ah,ah",
            " xor dl,dl",
            "-mov m4[edi+None*1+0x579d80],ebp",
            "+mov m4[edi+None*1+0x56cd90],ebp",
            " mov esi,m4[esp+None*1+0x4]",
            " mov m1[edi+None*1+ship.c::_carriers],ah",
            " mov ecx,edi",
            "-mov m1[edi+None*1+0x579d75],dl",
            "+mov m1[edi+None*1+0x56cd85],dl",
            " mov ebp,m4[esp+None*1+0x0]",
            " mov dh,0xff",
            " mov ebx,0x30",
            " add ecx,0x4",
            " xor eax,eax",
            "-mov m1[edi+None*1+0x579d76],dh",
            "+mov m1[edi+None*1+0x56cd86],dh",
            " xor edx,edx",
            "-mov m4[ecx+None*1+0x579d80],eax",
            "+mov m4[ecx+None*1+0x56cd90],eax",
            " mov eax,esi",
            " inc edi",
            " call memset::memset_"
          ]
        },
        {
          "symbol": "ship.c::place_user_on_carrier_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42b294",
          "second": "0x42b614",
          "first_instruction_count": 83,
          "second_instruction_count": 83,
          "diff": [
            "--- 0x42b294",
            "+++ 0x42b614",
            "@@ -27,7 +27,7 @@",
            " lea edx,m4[ebx+eax*1+0x0]",
            " mov eax,m4[esp+None*1+0x4]",
            " shl edx,0x2",
            "-mov edx,m4[edx+eax*4+0x579d84]",
            "+mov edx,m4[edx+eax*4+0x56cd94]",
            " test edx,edx",
            " jne local:76",
            " mov eax,m4[None+None*1+drone.c::_user_drone]",
            "@@ -38,7 +38,7 @@",
            " mov edx,m4[None+None*1+model.c::_model_vp]",
            " mov eax,m4[ecx+None*1+0x8]",
            " call ship.c::get_relative_viewpoint_",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ecx+None*1+0x0]",
            " mov edx,m4[edx+eax*4+0x0]",
            " mov eax,m4[ecx+None*1+0x8]"
          ]
        },
        {
          "symbol": "ship.c::register_carrier_aircraft_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42aa60",
          "second": "0x42ade0",
          "first_instruction_count": 102,
          "second_instruction_count": 102,
          "diff": [
            "--- 0x42aa60",
            "+++ 0x42ade0",
            "@@ -24,12 +24,12 @@",
            " shl eax,0x3",
            " add eax,edx",
            " shl eax,0x2",
            "-cmp m4[eax+None*1+0x579d80],0x0",
            "+cmp m4[eax+None*1+0x56cd90],0x0",
            " je local:90",
            " xor ebx,ebx",
            " mov bl,m1[eax+None*1+ship.c::_carriers]",
            " xor ecx,ecx",
            "-mov cl,m1[ebx+eax*1+0x579d75]",
            "+mov cl,m1[ebx+eax*1+0x56cd85]",
            " dec ebx",
            " cmp ecx,0xff",
            " je local:96",
            "@@ -40,7 +40,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " add eax,edx",
            "-mov eax,m4[None+eax*4+0x579d80]",
            "+mov eax,m4[None+eax*4+0x56cd90]",
            " cmp ecx,m4[eax+None*1+0x28]",
            " jle local:50",
            " push 0xdd",
            "@@ -55,8 +55,8 @@",
            " shl eax,0x3",
            " add eax,edx",
            " shl eax,0x2",
            "-mov m4[eax+ebx*4+0x579d84],esi",
            "-mov edi,m4[eax+None*1+0x579d80]",
            "+mov m4[eax+ebx*4+0x56cd94],esi",
            "+mov edi,m4[eax+None*1+0x56cd90]",
            " shl ecx,0x2",
            " mov edi,m4[edi+None*1+0x24]",
            " add ecx,edi"
          ]
        },
        {
          "symbol": "ship.c::register_ship_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42a8f0",
          "second": "0x42ac70",
          "first_instruction_count": 113,
          "second_instruction_count": 113,
          "diff": [
            "--- 0x42a8f0",
            "+++ 0x42ac70",
            "@@ -16,7 +16,7 @@",
            " shl edi,0x3",
            " add edi,edx",
            " shl edi,0x2",
            "-mov m4[edi+None*1+0x579d80],eax",
            "+mov m4[edi+None*1+0x56cd90],eax",
            " lea ebx,m4[eax+None*1+0x8]",
            " test ebx,ebx",
            " je local:105",
            "@@ -41,9 +41,9 @@",
            " shl eax,0x3",
            " add eax,edx",
            " mov m1[None+eax*4+ship.c::_carriers],cl",
            "-mov m1[None+eax*4+0x579d75],cl",
            "+mov m1[None+eax*4+0x56cd85],cl",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[eax+None*1+0x8]",
            " mov ebp,m4[edx+eax*4+0x0]",
            " xor ebx,ebx",
            "@@ -54,7 +54,7 @@",
            " mov cl,m1[eax+None*1+ship.c::_carriers]",
            " cmp edx,ecx",
            " jge local:99",
            "-mov al,m1[edx+eax*1+0x579d76]",
            "+mov al,m1[edx+eax*1+0x56cd86]",
            " and eax,0xff",
            " imul eax,eax,0x34",
            " add eax,0x4",
            "@@ -84,7 +84,7 @@",
            " jne local:87",
            " inc esi",
            " inc ecx",
            "-mov m1[esi+None*1+0x579d75],dl",
            "+mov m1[esi+None*1+0x56cd85],dl",
            " inc edx",
            " mov edi,m4[ebx+None*1+0x20]",
            " add eax,0x4"
          ]
        },
        {
          "symbol": "ship.c::set_up_user_on_carrier_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42b038",
          "second": "0x42b3b8",
          "first_instruction_count": 85,
          "second_instruction_count": 85,
          "diff": [
            "--- 0x42b038",
            "+++ 0x42b3b8",
            "@@ -16,12 +16,12 @@",
            " shl eax,0x3",
            " add eax,edx",
            " shl eax,0x2",
            "-mov edx,m4[eax+None*1+0x579d80]",
            "+mov edx,m4[eax+None*1+0x56cd90]",
            " cmp m4[edx+None*1+0x8],0x82",
            " jne local:27",
            " cmp m1[ecx+None*1+0x1cd],0x7",
            " je local:27",
            "-mov edx,m4[eax+None*1+0x579da0]",
            "+mov edx,m4[eax+None*1+0x56cdb0]",
            " test edx,edx",
            " jne local:82",
            " mov m1[ecx+None*1+0x1cd],0x7"
          ]
        },
        {
          "symbol": "ship.c::swap_drone_carrier_slots_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42b3cc",
          "second": "0x42b74c",
          "first_instruction_count": 157,
          "second_instruction_count": 157,
          "diff": [
            "--- 0x42b3cc",
            "+++ 0x42b74c",
            "@@ -64,7 +64,7 @@",
            " xor eax,eax",
            " shl ebx,0x2",
            " mov al,m1[ecx+None*1+0x1cd]",
            "-mov m4[ebx+eax*4+0x579d84],ecx",
            "+mov m4[ebx+eax*4+0x56cd94],ecx",
            " xor ebx,ebx",
            " mov bl,m1[edx+None*1+0x1cc]",
            " mov eax,ebx",
            "@@ -75,7 +75,7 @@",
            " xor eax,eax",
            " shl ebx,0x2",
            " mov al,m1[edx+None*1+0x1cd]",
            "-mov m4[ebx+eax*4+0x579d84],edx",
            "+mov m4[ebx+eax*4+0x56cd94],edx",
            " test m1[edx+None*1+0x1c5],0x4",
            " jne local:132",
            " test m1[ecx+None*1+0x1c5],0x4",
            "@@ -89,9 +89,9 @@",
            " add eax,ebx",
            " xor ebx,ebx",
            " mov bl,m1[ecx+None*1+0x1cd]",
            "-mov bl,m1[ebx+eax*4+0x579d76]",
            "+mov bl,m1[ebx+eax*4+0x56cd86]",
            " and ebx,0xff",
            "-mov eax,m4[None+eax*4+0x579d80]",
            "+mov eax,m4[None+eax*4+0x56cd90]",
            " shl ebx,0x2",
            " mov eax,m4[eax+None*1+0x24]",
            " add eax,ebx",
            "@@ -104,7 +104,7 @@",
            " sub eax,ebx",
            " shl eax,0x3",
            " add eax,ebx",
            "-mov eax,m4[None+eax*4+0x579d80]",
            "+mov eax,m4[None+eax*4+0x56cd90]",
            " add eax,0x8",
            " call 3dbuild.c::maintain_3d_object_",
            " xor eax,eax",
            "@@ -115,14 +115,14 @@",
            " shl ecx,0x3",
            " add ecx,eax",
            " mov dl,m1[edx+None*1+0x1cc]",
            "-mov ecx,m4[None+ecx*4+0x579d80]",
            "+mov ecx,m4[None+ecx*4+0x56cd90]",
            " and edx,0xff",
            " mov eax,edx",
            " shl eax,0x4",
            " sub eax,edx",
            " shl eax,0x3",
            " add eax,edx",
            "-mov eax,m4[None+eax*4+0x579d80]",
            "+mov eax,m4[None+eax*4+0x56cd90]",
            " cmp ecx,eax",
            " jne local:150",
            " add esp,0x8",
            "@@ -139,9 +139,9 @@",
            " add eax,ebx",
            " xor ebx,ebx",
            " mov bl,m1[edx+None*1+0x1cd]",
            "-mov bl,m1[ebx+eax*4+0x579d76]",
            "+mov bl,m1[ebx+eax*4+0x56cd86]",
            " and ebx,0xff",
            "-mov eax,m4[None+eax*4+0x579d80]",
            "+mov eax,m4[None+eax*4+0x56cd90]",
            " shl ebx,0x2",
            " mov eax,m4[eax+None*1+0x24]",
            " add eax,ebx"
          ]
        },
        {
          "symbol": "shot.c::take_screen_shot_",
          "source": "E:\\library\\graphics\\shot.c",
          "first": "0x46fbb0",
          "second": "0x46f7e0",
          "first_instruction_count": 1,
          "second_instruction_count": 225,
          "diff": [
            "--- 0x46fbb0",
            "+++ 0x46f7e0",
            "@@ -1 +1,225 @@",
            "-jmp repaint.c::take_glide_shot_",
            "+push ebx",
            "+push ecx",
            "+push edx",
            "+push esi",
            "+push edi",
            "+push ebp",
            "+sub esp,0x438",
            "+mov ecx,text:'rb'",
            "+xor esi,esi",
            "+push esi",
            "+push text:'SHOT%04d.LBM'",
            "+lea eax,m4[esp+None*1+0x3d0]",
            "+push eax",
            "+call sprintf::sprintf_",
            "+add esp,0xc",
            "+mov edx,ecx",
            "+lea eax,m4[esp+None*1+0x3c8]",
            "+call fopen::fopen_",
            "+test eax,eax",
            "+jne local:220",
            "+cmp esi,0x2710",
            "+jl local:27",
            "+push 0x47",
            "+push text:'\\\\library\\\\graphics\\\\shot.c'",
            "+push text:'Too many screen shots.'",
            "+call debuglog.c::debug_log_fatal_long_",
            "+add esp,0xc",
            "+mov eax,m4[None+None*1+screen.c::_active_screen]",
            "+mov ecx,m4[eax+None*1+0x0]",
            "+mov ebp,ecx",
            "+mov eax,m4[eax+None*1+0x4]",
            "+imul ebp,eax",
            "+mov ebx,0x58",
            "+mov edx,text:'\\\\library\\\\graphics\\\\shot.c'",
            "+xor esi,esi",
            "+mov m4[esp+None*1+0x430],eax",
            "+mov eax,ebp",
            "+mov m4[esp+None*1+0x434],ecx",
            "+call memory.c::mem_malloc_",
            "+mov edx,m4[esp+None*1+0x430]",
            "+mov m4[esp+None*1+0x42c],eax",
            "+mov edi,eax",
            "+mov ebx,ecx",
            "+xor eax,eax",
            "+xor ecx,ecx",
            "+call getblock.asm::_get_block",
            "+lea eax,m4[esp+None*1+0x3c8]",
            "+push eax",
            "+push text:'Taking screen shot %s'",
            "+lea eax,m4[esp+None*1+0x308]",
            "+push eax",
            "+call sprintf::sprintf_",
            "+add esp,0xc",
            "+mov edx,text:'wb'",
            "+lea eax,m4[esp+None*1+0x3c8]",
            "+call fopen::fopen_",
            "+push text:'FORM'",
            "+push eax",
            "+lea ecx,m4[ebp+None*1+0x330]",
            "+mov esi,eax",
            "+call fprintf::fprintf_",
            "+mov edx,esi",
            "+mov eax,ecx",
            "+add esp,0x8",
            "+sar eax,0x18",
            "+call fputc::fputc_",
            "+mov eax,ecx",
            "+mov edx,esi",
            "+sar eax,0x10",
            "+call fputc::fputc_",
            "+mov eax,ecx",
            "+mov edx,esi",
            "+sar eax,0x8",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+mov eax,ecx",
            "+call fputc::fputc_",
            "+push text:'PBM BMHD'",
            "+push esi",
            "+call fprintf::fprintf_",
            "+add esp,0x8",
            "+mov edx,esi",
            "+xor eax,eax",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+xor eax,eax",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+xor eax,eax",
            "+mov ecx,m4[esp+None*1+0x434]",
            "+call fputc::fputc_",
            "+mov eax,0x14",
            "+mov edx,esi",
            "+sar ecx,0x8",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+mov eax,ecx",
            "+mov ebx,m4[esp+None*1+0x430]",
            "+call fputc::fputc_",
            "+mov eax,m4[esp+None*1+0x434]",
            "+mov edx,esi",
            "+sar ebx,0x8",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+mov eax,ebx",
            "+call fputc::fputc_",
            "+mov eax,m4[esp+None*1+0x430]",
            "+mov edx,esi",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+xor eax,eax",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+xor eax,eax",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+xor eax,eax",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+xor eax,eax",
            "+call fputc::fputc_",
            "+mov eax,0x8",
            "+mov edx,esi",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+xor eax,eax",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+xor eax,eax",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+xor eax,eax",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+xor eax,eax",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+xor eax,eax",
            "+call fputc::fputc_",
            "+mov eax,0x1",
            "+mov edx,esi",
            "+call fputc::fputc_",
            "+mov eax,0x1",
            "+mov edx,esi",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+mov eax,ecx",
            "+call fputc::fputc_",
            "+mov eax,m4[esp+None*1+0x434]",
            "+mov edx,esi",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+mov eax,ebx",
            "+call fputc::fputc_",
            "+mov eax,m4[esp+None*1+0x430]",
            "+mov edx,esi",
            "+call fputc::fputc_",
            "+push text:'CMAP'",
            "+push esi",
            "+call fprintf::fprintf_",
            "+add esp,0x8",
            "+mov edx,esi",
            "+xor eax,eax",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+xor eax,eax",
            "+call fputc::fputc_",
            "+mov eax,0x3",
            "+mov edx,esi",
            "+call fputc::fputc_",
            "+mov eax,0x300",
            "+mov edx,esi",
            "+mov ebx,0x100",
            "+call fputc::fputc_",
            "+mov eax,esp",
            "+xor edx,edx",
            "+mov ecx,esi",
            "+call palette.c::get_palette_registers_",
            "+mov ebx,0x1",
            "+mov edx,0x300",
            "+mov eax,esp",
            "+call fwrite::fwrite_",
            "+push text:'BODY'",
            "+push esi",
            "+mov edx,esi",
            "+call fprintf::fprintf_",
            "+mov eax,ebp",
            "+add esp,0x8",
            "+sar eax,0x18",
            "+call fputc::fputc_",
            "+mov eax,ebp",
            "+mov edx,esi",
            "+sar eax,0x10",
            "+call fputc::fputc_",
            "+mov eax,ebp",
            "+mov edx,esi",
            "+sar eax,0x8",
            "+mov ebx,0x1",
            "+call fputc::fputc_",
            "+mov edx,esi",
            "+mov eax,ebp",
            "+mov ecx,esi",
            "+call fputc::fputc_",
            "+mov eax,m4[esp+None*1+0x42c]",
            "+mov edx,ebp",
            "+call fwrite::fwrite_",
            "+mov ebx,0x98",
            "+mov eax,esi",
            "+mov edx,text:'\\\\library\\\\graphics\\\\shot.c'",
            "+call fclose::fclose_",
            "+mov eax,m4[esp+None*1+0x42c]",
            "+call memory.c::mem_free_",
            "+add esp,0x438",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            "+inc esi",
            "+call fclose::fclose_",
            "+cmp esi,0x2710",
            "+jl local:9",
            "+jmp local:20"
          ]
        },
        {
          "symbol": "signlwnt::KillCtrlHandler_",
          "source": "signlwnt",
          "first": "0x4d0494",
          "second": "0x4c391c",
          "first_instruction_count": 19,
          "second_instruction_count": 19,
          "diff": [
            "--- 0x4d0494",
            "+++ 0x4c391c",
            "@@ -4,7 +4,7 @@",
            " je local:11",
            " push 0x0",
            " push signlwnt::_CtrlSignalHandler@4",
            "-call m4[None+None*1+constant:0e4f0d00]",
            "+call m4[None+None*1+constant:fc7d0c00]",
            " test eax,eax",
            " je local:11",
            " xor dl,dl"
          ]
        },
        {
          "symbol": "signlwnt::StartCtrlHandler_",
          "source": "signlwnt",
          "first": "0x4d0466",
          "second": "0x4c38ee",
          "first_instruction_count": 15,
          "second_instruction_count": 15,
          "diff": [
            "--- 0x4d0466",
            "+++ 0x4c38ee",
            "@@ -4,7 +4,7 @@",
            " jne local:10",
            " push 0x1",
            " push signlwnt::_CtrlSignalHandler@4",
            "-call m4[None+None*1+constant:0e4f0d00]",
            "+call m4[None+None*1+constant:fc7d0c00]",
            " test eax,eax",
            " je local:10",
            " mov m1[None+None*1+signlwnt::_CtrlHandlerRunning],0x1"
          ]
        },
        {
          "symbol": "sndsetup.c::end_channel_sample_",
          "source": "E:\\library\\sound\\sndsetup.c",
          "first": "0x47a46c",
          "second": "0x47860c",
          "first_instruction_count": 25,
          "second_instruction_count": 25,
          "diff": [
            "--- 0x47a46c",
            "+++ 0x47860c",
            "@@ -6,7 +6,7 @@",
            " shl eax,0x2",
            " sub eax,edx",
            " lea edx,m4[None+eax*4+0x0]",
            "-mov ecx,m4[edx+None*1+0x744858]",
            "+mov ecx,m4[edx+None*1+0x72f328]",
            " test ecx,ecx",
            " jne local:14",
            " pop edx",
            "@@ -15,10 +15,10 @@",
            " push ebx",
            " mov eax,ecx",
            " call sndsetup.c::end_sample_",
            "-mov eax,m4[edx+None*1+0x744858]",
            "+mov eax,m4[edx+None*1+0x72f328]",
            " xor ebx,ebx",
            " call dsound.c::free_sound_buffer_",
            "-mov m4[edx+None*1+0x744858],ebx",
            "+mov m4[edx+None*1+0x72f328],ebx",
            " pop ebx",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "sndsetup.c::get_channel_sample_status_",
          "source": "E:\\library\\sound\\sndsetup.c",
          "first": "0x47a4b4",
          "second": "0x478654",
          "first_instruction_count": 20,
          "second_instruction_count": 20,
          "diff": [
            "--- 0x47a4b4",
            "+++ 0x478654",
            "@@ -6,7 +6,7 @@",
            " shl eax,0x2",
            " sub eax,edx",
            " shl eax,0x2",
            "-mov ecx,m4[eax+None*1+0x744858]",
            "+mov ecx,m4[eax+None*1+0x72f328]",
            " test ecx,ecx",
            " jne local:15",
            " mov eax,0x1"
          ]
        },
        {
          "symbol": "sndsetup.c::get_free_sound_channel_",
          "source": "E:\\library\\sound\\sndsetup.c",
          "first": "0x47a3a0",
          "second": "0x478540",
          "first_instruction_count": 42,
          "second_instruction_count": 42,
          "diff": [
            "--- 0x47a3a0",
            "+++ 0x478540",
            "@@ -9,7 +9,7 @@",
            " push ecx",
            " xor edx,edx",
            " xor ecx,ecx",
            "-mov esi,m4[edx+None*1+0x744858]",
            "+mov esi,m4[edx+None*1+0x72f328]",
            " test esi,esi",
            " jne local:32",
            " mov ebx,ecx",
            "@@ -34,9 +34,9 @@",
            " call sndsetup.c::sample_status_",
            " cmp eax,0x2",
            " je local:15",
            "-mov eax,m4[edx+None*1+0x744858]",
            "+mov eax,m4[edx+None*1+0x72f328]",
            " call dsound.c::free_sound_buffer_",
            " xor edi,edi",
            " mov ebx,ecx",
            "-mov m4[edx+None*1+0x744858],edi",
            "+mov m4[edx+None*1+0x72f328],edi",
            " jmp local:15"
          ]
        },
        {
          "symbol": "sndsetup.c::pause_all_sound_",
          "source": "E:\\library\\sound\\sndsetup.c",
          "first": "0x47a5e4",
          "second": "0x478784",
          "first_instruction_count": 42,
          "second_instruction_count": 42,
          "diff": [
            "--- 0x47a5e4",
            "+++ 0x478784",
            "@@ -6,7 +6,7 @@",
            " cmp m4[None+None*1+sndsetup.c::_sound_installed],0x0",
            " je local:14",
            " xor edx,edx",
            "-mov ebx,m4[edx+None*1+0x744858]",
            "+mov ebx,m4[edx+None*1+0x72f328]",
            " test ebx,ebx",
            " jne local:18",
            " add edx,0xc",
            "@@ -20,7 +20,7 @@",
            " call sndsetup.c::sample_status_",
            " cmp eax,0x2",
            " jne local:31",
            "-mov eax,m4[edx+None*1+0x744858]",
            "+mov eax,m4[edx+None*1+0x72f328]",
            " call sndsetup.c::end_sample_",
            " add edx,0xc",
            " cmp edx,0xc0",
            "@@ -29,10 +29,10 @@",
            " pop edx",
            " pop ebx",
            " ret ",
            "-mov eax,m4[edx+None*1+0x744858]",
            "+mov eax,m4[edx+None*1+0x72f328]",
            " xor esi,esi",
            " call dsound.c::free_sound_buffer_",
            "-mov m4[edx+None*1+0x744858],esi",
            "+mov m4[edx+None*1+0x72f328],esi",
            " add edx,0xc",
            " cmp edx,0xc0",
            " jne local:8"
          ]
        },
        {
          "symbol": "sndsetup.c::play_sound_effect_sample_",
          "source": "E:\\library\\sound\\sndsetup.c",
          "first": "0x47a404",
          "second": "0x4785a4",
          "first_instruction_count": 31,
          "second_instruction_count": 31,
          "diff": [
            "--- 0x47a404",
            "+++ 0x4785a4",
            "@@ -7,7 +7,7 @@",
            " lea ecx,m4[None+eax*4+0x0]",
            " mov m4[ecx+None*1+sndsetup.c::_channel_info],esi",
            " mov edx,m4[None+None*1+dsound.c::_direct_sound]",
            "-mov m4[ecx+None*1+0x744854],edi",
            "+mov m4[ecx+None*1+0x72f324],edi",
            " test edx,edx",
            " jne local:15",
            " pop edi",
            "@@ -25,7 +25,7 @@",
            " mov edx,edi",
            " mov eax,ebx",
            " call sndsetup.c::play_sample_",
            "-mov m4[ecx+None*1+0x744858],ebx",
            "+mov m4[ecx+None*1+0x72f328],ebx",
            " pop edi",
            " pop esi",
            " ret 0x10"
          ]
        },
        {
          "symbol": "sndsetup.c::resume_all_sound_",
          "source": "E:\\library\\sound\\sndsetup.c",
          "first": "0x47a65c",
          "second": "0x4787fc",
          "first_instruction_count": 28,
          "second_instruction_count": 28,
          "diff": [
            "--- 0x47a65c",
            "+++ 0x4787fc",
            "@@ -6,7 +6,7 @@",
            " cmp m4[None+None*1+sndsetup.c::_sound_installed],0x0",
            " je local:14",
            " xor ecx,ecx",
            "-mov ebx,m4[ecx+None*1+0x744858]",
            "+mov ebx,m4[ecx+None*1+0x72f328]",
            " test ebx,ebx",
            " jne local:18",
            " add ecx,0xc",
            "@@ -17,7 +17,7 @@",
            " pop ebx",
            " ret ",
            " mov eax,ebx",
            "-mov edx,m4[ecx+None*1+0x744854]",
            "+mov edx,m4[ecx+None*1+0x72f324]",
            " call sndsetup.c::play_sample_",
            " add ecx,0xc",
            " cmp ecx,0xc0"
          ]
        },
        {
          "symbol": "sndsetup.c::start_all_sound_",
          "source": "E:\\library\\sound\\sndsetup.c",
          "first": "0x47a500",
          "second": "0x4786a0",
          "first_instruction_count": 37,
          "second_instruction_count": 37,
          "diff": [
            "--- 0x47a500",
            "+++ 0x4786a0",
            "@@ -9,7 +9,7 @@",
            " je local:18",
            " xor ebx,ebx",
            " xor ecx,ecx",
            "-mov esi,m4[ecx+None*1+0x744858]",
            "+mov esi,m4[ecx+None*1+0x72f328]",
            " test esi,esi",
            " jne local:24",
            " add ebx,0x4",
            "@@ -27,11 +27,11 @@",
            " cmp eax,0x2",
            " jne local:32",
            " mov edx,m4[ebx+None*1+sndsetup.c::_channel_pause_volumes]",
            "-mov eax,m4[ecx+None*1+0x744858]",
            "+mov eax,m4[ecx+None*1+0x72f328]",
            " call sndsetup.c::set_sample_volume_",
            " jmp local:14",
            "-mov eax,m4[ecx+None*1+0x744858]",
            "+mov eax,m4[ecx+None*1+0x72f328]",
            " xor edi,edi",
            " call dsound.c::free_sound_buffer_",
            "-mov m4[ecx+None*1+0x744858],edi",
            "+mov m4[ecx+None*1+0x72f328],edi",
            " jmp local:14"
          ]
        },
        {
          "symbol": "sndsetup.c::stop_all_sound_",
          "source": "E:\\library\\sound\\sndsetup.c",
          "first": "0x47a56c",
          "second": "0x47870c",
          "first_instruction_count": 40,
          "second_instruction_count": 40,
          "diff": [
            "--- 0x47a56c",
            "+++ 0x47870c",
            "@@ -10,7 +10,7 @@",
            " xor ebx,ebx",
            " xor ecx,ecx",
            " xor esi,esi",
            "-mov edi,m4[ecx+None*1+0x744858]",
            "+mov edi,m4[ecx+None*1+0x72f328]",
            " cmp esi,edi",
            " jne local:25",
            " add ebx,0x4",
            "@@ -27,14 +27,14 @@",
            " call sndsetup.c::sample_status_",
            " cmp eax,0x2",
            " jne local:36",
            "-mov eax,m4[ecx+None*1+0x744858]",
            "+mov eax,m4[ecx+None*1+0x72f328]",
            " call sndsetup.c::sample_volume_",
            " mov edx,esi",
            " mov m4[ebx+None*1+sndsetup.c::_channel_pause_volumes],eax",
            "-mov eax,m4[ecx+None*1+0x744858]",
            "+mov eax,m4[ecx+None*1+0x72f328]",
            " call sndsetup.c::set_sample_volume_",
            " jmp local:15",
            "-mov eax,m4[ecx+None*1+0x744858]",
            "+mov eax,m4[ecx+None*1+0x72f328]",
            " call dsound.c::free_sound_buffer_",
            "-mov m4[ecx+None*1+0x744858],esi",
            "+mov m4[ecx+None*1+0x72f328],esi",
            " jmp local:15"
          ]
        },
        {
          "symbol": "sound.c::deinitialise_sound_data_",
          "source": "E:\\apache\\source\\sound\\sound.c",
          "first": "0x445240",
          "second": "0x4455c0",
          "first_instruction_count": 28,
          "second_instruction_count": 28,
          "diff": [
            "--- 0x445240",
            "+++ 0x4455c0",
            "@@ -10,7 +10,7 @@",
            " mov esi,m4[ebx+None*1+constant:00000000]",
            " test esi,esi",
            " jne local:22",
            "-mov ecx,m4[ebx+None*1+constant:b8fe4d00]",
            "+mov ecx,m4[ebx+None*1+constant:9c2f4d00]",
            " add ebx,0x28",
            " test ecx,ecx",
            " jne local:9"
          ]
        },
        {
          "symbol": "sound.c::play_cockpit_effect_",
          "source": "E:\\apache\\source\\sound\\sound.c",
          "first": "0x445918",
          "second": "0x445c98",
          "first_instruction_count": 145,
          "second_instruction_count": 145,
          "diff": [
            "--- 0x445918",
            "+++ 0x445c98",
            "@@ -15,7 +15,7 @@",
            " shl eax,0x2",
            " cmp esi,0x7a",
            " jne local:36",
            "-mov ecx,m4[eax+None*1+0x744858]",
            "+mov ecx,m4[eax+None*1+0x72f328]",
            " test ecx,ecx",
            " je local:27",
            " mov eax,ecx",
            "@@ -24,7 +24,7 @@",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            " xor ebx,ebx",
            "-mov m4[None+eax*4+0x744858],ebx",
            "+mov m4[None+eax*4+0x72f328],ebx",
            " cmp m4[None+None*1+sound.c::_radio_effects_on],0x0",
            " jne local:131",
            " pop ebp",
            "@@ -34,14 +34,14 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov ebx,m4[eax+None*1+0x744858]",
            "+mov ebx,m4[eax+None*1+0x72f328]",
            " test ebx,ebx",
            " je local:27",
            " mov eax,ebx",
            " call sndsetup.c::sample_status_",
            " cmp eax,0x2",
            " jne local:27",
            "-mov edi,m4[None+None*1+0x62e214]",
            "+mov edi,m4[None+None*1+0x621224]",
            " cmp esi,edi",
            " je local:29",
            " mov eax,edi",
            "@@ -64,13 +64,13 @@",
            " mov edx,m4[None+None*1+sound.c::_cockpit_channel]",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            "-mov eax,m4[None+eax*4+0x744858]",
            "+mov eax,m4[None+eax*4+0x72f328]",
            " call sndsetup.c::end_sample_",
            " mov edx,m4[None+None*1+sound.c::_cockpit_channel]",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            " xor edx,edx",
            "-mov m4[None+eax*4+0x744858],edx",
            "+mov m4[None+eax*4+0x72f328],edx",
            " cmp m4[None+None*1+sound.c::_radio_effects_on],0x0",
            " jne local:131",
            " pop ebp",
            "@@ -102,13 +102,13 @@",
            " mov edx,m4[None+None*1+sound.c::_cockpit_channel]",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            "-mov eax,m4[None+eax*4+0x744858]",
            "+mov eax,m4[None+eax*4+0x72f328]",
            " call sndsetup.c::end_sample_",
            " mov edx,m4[None+None*1+sound.c::_cockpit_channel]",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            " xor ebp,ebp",
            "-mov m4[None+eax*4+0x744858],ebp",
            "+mov m4[None+eax*4+0x72f328],ebp",
            " cmp m4[None+None*1+sound.c::_radio_effects_on],0x0",
            " jne local:131",
            " pop ebp",
            "@@ -135,7 +135,7 @@",
            " mov eax,esi",
            " call sound.c::play_sound_effect_",
            " mov m4[None+None*1+sound.c::_cockpit_channel],eax",
            "-mov m4[None+None*1+0x62e214],esi",
            "+mov m4[None+None*1+0x621224],esi",
            " pop ebp",
            " pop edi",
            " pop esi"
          ]
        },
        {
          "symbol": "sound.c::play_vmax_speed_sound_",
          "source": "E:\\apache\\source\\sound\\sound.c",
          "first": "0x4457f8",
          "second": "0x445b78",
          "first_instruction_count": 20,
          "second_instruction_count": 20,
          "diff": [
            "--- 0x4457f8",
            "+++ 0x445b78",
            "@@ -12,7 +12,7 @@",
            " add ecx,ecx",
            " sub eax,edx",
            " mov edx,ecx",
            "-mov eax,m4[None+eax*4+0x744858]",
            "+mov eax,m4[None+eax*4+0x72f328]",
            " call sndsetup.c::set_sample_playback_rate_",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "sound.c::set_rotor_rate_",
          "source": "E:\\apache\\source\\sound\\sound.c",
          "first": "0x445b7c",
          "second": "0x445efc",
          "first_instruction_count": 9,
          "second_instruction_count": 9,
          "diff": [
            "--- 0x445b7c",
            "+++ 0x445efc",
            "@@ -1,6 +1,6 @@",
            " push ecx",
            " push edx",
            "-mov ecx,m4[None+None*1+0x744858]",
            "+mov ecx,m4[None+None*1+0x72f328]",
            " mov edx,eax",
            " mov eax,ecx",
            " call sndsetup.c::set_sample_playback_rate_"
          ]
        },
        {
          "symbol": "starmap.c::draw_moon_",
          "source": "E:\\library\\3dvisual\\starmap.c",
          "first": "0x49d024",
          "second": "0x499148",
          "first_instruction_count": 341,
          "second_instruction_count": 214,
          "diff": [
            "--- 0x49d024",
            "+++ 0x499148",
            "@@ -4,13 +4,10 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-mov ebp,esp",
            "-sub esp,0x104",
            "-and esp,0xfffffff8",
            "-cmp m4[None+None*1+0xafaec0],0xf8e38e39",
            "-jle local:20",
            "-lea eax,m4[eax+None*1+0x0]",
            "-mov esp,ebp",
            "+sub esp,0x10",
            "+cmp m4[None+None*1+0xae5570],0xf8e38e39",
            "+jle local:17",
            "+add esp,0x10",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -20,25 +17,25 @@",
            " ret ",
            " mov eax,m4[None+None*1+3dcore.c::_ls_uvec]",
            " sar eax,0x8",
            "-mov m4[esp+None*1+0xec],eax",
            "-mov eax,m4[None+None*1+0xafd4b8]",
            "+mov m4[esp+None*1+0x8],eax",
            "+mov eax,m4[None+None*1+0xae975c]",
            " sar eax,0x8",
            "-mov m4[esp+None*1+0xe4],eax",
            "-mov eax,m4[None+None*1+0xafd4bc]",
            "+mov m4[esp+None*1+0xc],eax",
            "+mov eax,m4[None+None*1+0xae9760]",
            " sar eax,0x8",
            "-mov ebx,m4[esp+None*1+0xe4]",
            "-mov m4[esp+None*1+0xe8],eax",
            "+mov ebx,m4[esp+None*1+0xc]",
            "+mov m4[esp+None*1+0x4],eax",
            " mov ecx,eax",
            "-mov eax,m4[esp+None*1+0xec]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[esp+None*1+0x8]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xae973c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -47,21 +44,21 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov m4[esp+None*1+0xf0],edx",
            "-test edx,edx",
            "-jle local:12",
            "-mov ecx,m4[esp+None*1+0xe8]",
            "-mov ebx,m4[esp+None*1+0xe4]",
            "-mov eax,m4[esp+None*1+0xec]",
            "+mov ebp,edx",
            "+test edx,edx",
            "+jle local:9",
            "+mov ecx,m4[esp+None*1+0x4]",
            "+mov ebx,m4[esp+None*1+0xc]",
            "+mov eax,m4[esp+None*1+0x8]",
            " mov edx,m4[None+None*1+3dcore.c::_a_factors]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xae972c]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xae9730]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -70,19 +67,19 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ecx,m4[esp+None*1+0xe8]",
            "-mov ebx,m4[esp+None*1+0xe4]",
            "-mov eax,m4[esp+None*1+0xec]",
            "-mov m4[esp+None*1+0xe0],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov ecx,m4[esp+None*1+0x4]",
            "+mov ebx,m4[esp+None*1+0xc]",
            "+mov eax,m4[esp+None*1+0x8]",
            "+mov m4[esp+None*1+0x0],edx",
            "+mov edx,m4[None+None*1+0xae9740]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -92,28 +89,28 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,edx",
            "-mov ebx,m4[esp+None*1+0xf0]",
            " mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            " imul edx",
            " shld edx,eax,0x5",
            " shl eax,0x6",
            " adc edx,0x0",
            "-mov eax,m4[esp+None*1+0xe0]",
            "-mov edi,edx",
            "+mov ebx,ebp",
            "+mov eax,m4[esp+None*1+0x0]",
            "+mov esi,edx",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            " imul edx",
            " test edx,edx",
            "-js local:110",
            "-cmp edx,ebx",
            "-jb local:120",
            "-jmp local:125",
            "-not eax",
            "-not edx",
            "-add eax,0x1",
            "-adc edx,0x0",
            "-cmp edx,ebx",
            "-jae local:125",
            "+js local:107",
            "+cmp edx,ebx",
            "+jb local:117",
            "+jmp local:122",
            "+not eax",
            "+not edx",
            "+add eax,0x1",
            "+adc edx,0x0",
            "+cmp edx,ebx",
            "+jae local:122",
            " not eax",
            " not edx",
            " add eax,0x1",
            "@@ -122,24 +119,24 @@",
            " rcr eax,0x1",
            " idiv ebx",
            " add eax,m4[None+None*1+3dcore.c::_viewport_x_min_3d]",
            "-jmp local:126",
            "+jmp local:123",
            " mov eax,0x80000000",
            "-mov esi,eax",
            "-mov eax,edi",
            "+mov ecx,eax",
            "+mov eax,esi",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            " imul edx",
            " test edx,edx",
            "-js local:136",
            "-cmp edx,ebx",
            "-jb local:146",
            "-jmp local:152",
            "-not eax",
            "-not edx",
            "-add eax,0x1",
            "-adc edx,0x0",
            "-cmp edx,ebx",
            "-jae local:152",
            "+js local:133",
            "+cmp edx,ebx",
            "+jb local:143",
            "+jmp local:149",
            "+not eax",
            "+not edx",
            "+add eax,0x1",
            "+adc edx,0x0",
            "+cmp edx,ebx",
            "+jae local:149",
            " not eax",
            " not edx",
            " add eax,0x1",
            "@@ -149,33 +146,33 @@",
            " idiv ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_y_max_3d]",
            " sub edx,eax",
            "-jmp local:153",
            "+jmp local:150",
            " mov edx,0x80000000",
            "-mov edi,edx",
            "-cmp esi,0xffffff9c",
            "-jl local:12",
            "-cmp esi,0x2e4",
            "-jg local:12",
            "+mov esi,edx",
            "+cmp ecx,0xffffff9c",
            "+jl local:9",
            "+cmp ecx,0x2e4",
            "+jg local:9",
            " cmp edx,0xffffff9c",
            "-jl local:12",
            "+jl local:9",
            " cmp edx,0x244",
            "-jg local:12",
            "-mov eax,m4[esp+None*1+0xe0]",
            "+jg local:9",
            "+mov eax,m4[esp+None*1+0x0]",
            " add eax,0x7a120",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            " imul edx",
            " test edx,edx",
            "-js local:172",
            "-cmp edx,ebx",
            "-jb local:182",
            "-jmp local:187",
            "-not eax",
            "-not edx",
            "-add eax,0x1",
            "-adc edx,0x0",
            "-cmp edx,ebx",
            "-jae local:187",
            "+js local:169",
            "+cmp edx,ebx",
            "+jb local:179",
            "+jmp local:184",
            "+not eax",
            "+not edx",
            "+add eax,0x1",
            "+adc edx,0x0",
            "+cmp edx,ebx",
            "+jae local:184",
            " not eax",
            " not edx",
            " add eax,0x1",
            "@@ -184,132 +181,30 @@",
            " rcr eax,0x1",
            " idiv ebx",
            " add eax,m4[None+None*1+3dcore.c::_viewport_x_min_3d]",
            "-jmp local:188",
            "+jmp local:185",
            " mov eax,0x80000000",
            "+cmp ecx,0x80000000",
            "+je local:9",
            " cmp esi,0x80000000",
            "-je local:12",
            "-cmp edi,0x80000000",
            "-je local:12",
            "+je local:9",
            " cmp eax,0x80000000",
            "-je local:12",
            "+je local:9",
            "+movzx ebp,m1[None+None*1+0xaea48f]",
            "+mov edx,ebp",
            "+mov ebx,ebp",
            "+shl edx,0x18",
            "+shl ebx,0x10",
            "+add ebx,edx",
            "+mov edx,ebp",
            "+shl edx,0x8",
            "+add edx,ebx",
            "+mov ebx,esi",
            "+add ebp,edx",
            " mov edx,eax",
            "-mov ebx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-sub edx,esi",
            "-test ebx,ebx",
            "-je local:319",
            "-je local:12",
            "-push 0x0",
            "-push 0x2",
            "-push 0x0",
            "-mov m4[esp+None*1+0x100],edx",
            "-push 0x0",
            "-fild m4[esp+None*1+0x104]",
            "-push 0x1",
            "-fstp m8[esp+None*1+0x14]",
            "-call LINKER MODULE::_grColorCombine@20",
            "-push 0x0",
            "-push 0x2",
            "-push 0x0",
            "-push 0x0",
            "-push 0x1",
            "-call LINKER MODULE::_grAlphaCombine@20",
            "-push 0x0",
            "-push 0x0",
            "-push 0x5",
            "-push 0x1",
            "-call LINKER MODULE::_grAlphaBlendFunction@16",
            "-fldz ",
            "-fcos ",
            "-fldz ",
            "-fsin ",
            "-fxch st(0),st(1)",
            "-fmul m8[esp+None*1+0x0]",
            "-fxch st(0),st(1)",
            "-fmul m8[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x10],esi",
            "-mov ebx,edi",
            "-mov m4[esp+None*1+0xf8],edi",
            "-mov m4[esp+None*1+0x100],edi",
            "-mov m4[esp+None*1+0xf4],esi",
            "-mov edi,0x40340000",
            "-mov m4[esp+None*1+0xfc],esi",
            "-mov m4[esp+None*1+0xc],edi",
            "-fild m4[esp+None*1+0xf4]",
            "-fild m4[esp+None*1+0xf8]",
            "-fild m4[esp+None*1+0xfc]",
            "-fild m4[esp+None*1+0x100]",
            "-mov edx,0x3f800000",
            "-mov ecx,0x437f0000",
            "-fxch st(0),st(3)",
            "-fstp m4[esp+None*1+0x8c]",
            "-fxch st(0),st(1)",
            "-fstp m4[esp+None*1+0x90]",
            "-mov m4[esp+None*1+0xac],edx",
            "-mov m4[esp+None*1+0x98],ecx",
            "-mov m4[esp+None*1+0x9c],ecx",
            "-mov m4[esp+None*1+0xa0],ecx",
            "-mov m4[esp+None*1+0xa8],ecx",
            "-mov esi,edx",
            "-mov m4[esp+None*1+0x34],edx",
            "-mov m4[esp+None*1+0x20],ecx",
            "-mov m4[esp+None*1+0x24],ecx",
            "-mov m4[esp+None*1+0x28],ecx",
            "-mov ecx,0x43160000",
            "-xor esi,edx",
            "-mov m4[esp+None*1+0x30],ecx",
            "-mov m4[esp+None*1+0x8],esi",
            "-faddp st(3)",
            "-faddp st(1)",
            "-fxch st(0),st(1)",
            "-fstp m4[esp+None*1+0x14]",
            "-fstp m4[esp+None*1+0x18]",
            "-fld m8[esp+None*1+0x8]",
            "-fmul m8[None+None*1+constant:10a35ca246df913f]",
            "-fld st(0)",
            "-fcos ",
            "-fxch st(0),st(1)",
            "-fsin ",
            "-fxch st(0),st(1)",
            "-fmul m8[esp+None*1+0x0]",
            "-fxch st(0),st(1)",
            "-fmul m8[esp+None*1+0x0]",
            "-mov esi,0x3f800000",
            "-mov edi,0x437f0000",
            "-mov m4[esp+None*1+0x100],ebx",
            "-mov ecx,0x43160000",
            "-fild m4[esp+None*1+0x100]",
            "-mov m4[esp+None*1+0x70],esi",
            "-mov m4[esp+None*1+0x5c],edi",
            "-mov m4[esp+None*1+0x60],edi",
            "-mov m4[esp+None*1+0x64],edi",
            "-mov m4[esp+None*1+0x6c],ecx",
            "-lea edi,m4[esp+None*1+0x14]",
            "-mov eax,m4[esp+None*1+0x10]",
            "-lea esi,m4[esp+None*1+0x50]",
            "-mov m4[esp+None*1+0x100],eax",
            "-lea eax,m4[esp+None*1+0x8c]",
            "-fild m4[esp+None*1+0x100]",
            "-push eax",
            "-faddp st(3)",
            "-lea eax,m4[esp+None*1+0x54]",
            "-fxch st(0),st(2)",
            "-fstp m4[esp+None*1+0x54]",
            "-push eax",
            "-lea eax,m4[esp+None*1+0x1c]",
            "-faddp st(1)",
            "-push eax",
            "-fstp m4[esp+None*1+0x60]",
            "-call LINKER MODULE::_grDrawTriangle@12",
            "-fld m8[esp+None*1+0x8]",
            "-mov ecx,0xf",
            "-fadd m8[None+None*1+constant:0000000000003440]",
            "-rep movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            "-fst m8[esp+None*1+0x8]",
            "-fcomp m8[None+None*1+constant:0000000000807640]",
            "-fnstsw ax",
            "-sahf ",
            "-jbe local:265",
            "-mov esp,ebp",
            "+mov eax,ebp",
            "+sub edx,ecx",
            "+call circle.c::fill_circle_",
            "+add esp,0x10",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -317,25 +212,3 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-xor eax,eax",
            "-mov al,m1[None+None*1+0xaffddf]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-shl ecx,0x10",
            "-shl ebx,0x18",
            "-add ecx,ebx",
            "-mov ebx,eax",
            "-shl ebx,0x8",
            "-add ebx,ecx",
            "-mov ecx,esi",
            "-add eax,ebx",
            "-mov ebx,edi",
            "-call circle.c::fill_circle_",
            "-mov esp,ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret "
          ]
        },
        {
          "symbol": "starmap.c::draw_star_map_",
          "source": "E:\\library\\3dvisual\\starmap.c",
          "first": "0x49ca38",
          "second": "0x498d88",
          "first_instruction_count": 13,
          "second_instruction_count": 13,
          "diff": [
            "--- 0x49ca38",
            "+++ 0x498d88",
            "@@ -1,6 +1,6 @@",
            "-test m1[None+None*1+0xafaee4],0x2",
            "+test m1[None+None*1+0xae5594],0x2",
            " jne local:8",
            "-fild m4[None+None*1+0xafaec4]",
            "+fild m4[None+None*1+0xae5574]",
            " fcomp m8[None+None*1+constant:cdcc0c333333c341]",
            " fnstsw ax",
            " sahf "
          ]
        },
        {
          "symbol": "starmap.c::draw_stars_",
          "source": "E:\\library\\3dvisual\\starmap.c",
          "first": "0x49cf58",
          "second": "0x49907c",
          "first_instruction_count": 60,
          "second_instruction_count": 60,
          "diff": [
            "--- 0x49cf58",
            "+++ 0x49907c",
            "@@ -14,7 +14,7 @@",
            " mov m1[esp+None*1+0x4],al",
            " xor eax,eax",
            " mov al,m1[esp+None*1+0x4]",
            "-mov edx,m4[None+None*1+0xafaec4]",
            "+mov edx,m4[None+None*1+0xae5574]",
            " cmp edx,m4[None+eax*4+starmap.c::_night_level_threshold]",
            " jge local:21",
            " add esi,0x4"
          ]
        },
        {
          "symbol": "starmap.c::draw_sun_",
          "source": "E:\\library\\3dvisual\\starmap.c",
          "first": "0x49ca68",
          "second": "0x498db8",
          "first_instruction_count": 371,
          "second_instruction_count": 239,
          "diff": [
            "--- 0x49ca68",
            "+++ 0x498db8",
            "@@ -4,13 +4,10 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-mov ebp,esp",
            "-sub esp,0x104",
            "-and esp,0xfffffff8",
            "-cmp m4[None+None*1+0xafaec0],0xf8e38e39",
            "-jle local:20",
            "-lea eax,m4[eax+None*1+0x0]",
            "-mov esp,ebp",
            "+sub esp,0x10",
            "+cmp m4[None+None*1+0xae5570],0xf8e38e39",
            "+jle local:17",
            "+add esp,0x10",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -18,12 +15,12 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov esi,m4[None+None*1+0xaff644]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "-mov ebx,m4[None+None*1+0xaff640]",
            "+mov edi,m4[None+None*1+0xae9760]",
            "+mov esi,m4[None+None*1+0xae973c]",
            "+mov ecx,m4[None+None*1+0xae975c]",
            "+mov ebx,m4[None+None*1+0xae9738]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[None+None*1+0xae9734]",
            " imul edx",
            " xchg ebx,eax",
            " xchg edx,ecx",
            "@@ -39,75 +36,75 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " cmp edx,0x78000000",
            "-jle local:45",
            "+jle local:42",
            " shl edx,0x4",
            " add edx,0x80000000",
            " mov m4[None+None*1+3dpal.c::_sun_glare_level],edx",
            " mov eax,m4[None+None*1+3dcore.c::_ls_uvec]",
            " sar eax,0x8",
            "-mov m4[esp+None*1+0xec],eax",
            "-mov eax,m4[None+None*1+0xafd4b8]",
            "+mov m4[esp+None*1+0xc],eax",
            "+mov eax,m4[None+None*1+0xae975c]",
            " sar eax,0x8",
            "-mov m4[esp+None*1+0xe4],eax",
            "-mov eax,m4[None+None*1+0xafd4bc]",
            "+mov m4[esp+None*1+0x4],eax",
            "+mov eax,m4[None+None*1+0xae9760]",
            " sar eax,0x8",
            "-mov ebx,m4[esp+None*1+0xe4]",
            "-mov m4[esp+None*1+0xe8],eax",
            "+mov ebx,m4[esp+None*1+0x4]",
            "+mov m4[esp+None*1+0x8],eax",
            " mov ecx,eax",
            "-mov eax,m4[esp+None*1+0xec]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[esp+None*1+0xc]",
            "+mov edx,m4[None+None*1+0xae9734]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov m4[esp+None*1+0xf0],edx",
            "-test edx,edx",
            "-jle local:12",
            "-mov ecx,m4[esp+None*1+0xe8]",
            "-mov ebx,m4[esp+None*1+0xe4]",
            "-mov eax,m4[esp+None*1+0xec]",
            "+mov eax,m4[None+None*1+0xae973c]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov ebp,edx",
            "+test edx,edx",
            "+jle local:9",
            "+mov ecx,m4[esp+None*1+0x8]",
            "+mov ebx,m4[esp+None*1+0x4]",
            "+mov eax,m4[esp+None*1+0xc]",
            " mov edx,m4[None+None*1+3dcore.c::_a_factors]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xae972c]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov ecx,m4[esp+None*1+0xe8]",
            "-mov ebx,m4[esp+None*1+0xe4]",
            "-mov eax,m4[esp+None*1+0xec]",
            "-mov m4[esp+None*1+0xe0],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xae9730]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov ecx,m4[esp+None*1+0x8]",
            "+mov ebx,m4[esp+None*1+0x4]",
            "+mov eax,m4[esp+None*1+0xc]",
            "+mov m4[esp+None*1+0x0],edx",
            "+mov edx,m4[None+None*1+0xae9740]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -117,28 +114,28 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,edx",
            "-mov ebx,m4[esp+None*1+0xf0]",
            " mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            " imul edx",
            " shld edx,eax,0x5",
            " shl eax,0x6",
            " adc edx,0x0",
            "-mov eax,m4[esp+None*1+0xe0]",
            "-mov edi,edx",
            "+mov ebx,ebp",
            "+mov eax,m4[esp+None*1+0x0]",
            "+mov esi,edx",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            " imul edx",
            " test edx,edx",
            "-js local:135",
            "-cmp edx,ebx",
            "-jb local:145",
            "-jmp local:150",
            "-not eax",
            "-not edx",
            "-add eax,0x1",
            "-adc edx,0x0",
            "-cmp edx,ebx",
            "-jae local:150",
            "+js local:132",
            "+cmp edx,ebx",
            "+jb local:142",
            "+jmp local:147",
            "+not eax",
            "+not edx",
            "+add eax,0x1",
            "+adc edx,0x0",
            "+cmp edx,ebx",
            "+jae local:147",
            " not eax",
            " not edx",
            " add eax,0x1",
            "@@ -147,24 +144,24 @@",
            " rcr eax,0x1",
            " idiv ebx",
            " add eax,m4[None+None*1+3dcore.c::_viewport_x_min_3d]",
            "-jmp local:151",
            "+jmp local:148",
            " mov eax,0x80000000",
            "-mov esi,eax",
            "-mov eax,edi",
            "+mov ecx,eax",
            "+mov eax,esi",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            " imul edx",
            " test edx,edx",
            "-js local:161",
            "-cmp edx,ebx",
            "-jb local:171",
            "-jmp local:177",
            "-not eax",
            "-not edx",
            "-add eax,0x1",
            "-adc edx,0x0",
            "-cmp edx,ebx",
            "-jae local:177",
            "+js local:158",
            "+cmp edx,ebx",
            "+jb local:168",
            "+jmp local:174",
            "+not eax",
            "+not edx",
            "+add eax,0x1",
            "+adc edx,0x0",
            "+cmp edx,ebx",
            "+jae local:174",
            " not eax",
            " not edx",
            " add eax,0x1",
            "@@ -174,33 +171,33 @@",
            " idiv ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_y_max_3d]",
            " sub edx,eax",
            "-jmp local:178",
            "+jmp local:175",
            " mov edx,0x80000000",
            "-mov edi,edx",
            "-cmp esi,0xffffff9c",
            "-jl local:12",
            "-cmp esi,0x2e4",
            "-jg local:12",
            "+mov esi,edx",
            "+cmp ecx,0xffffff9c",
            "+jl local:9",
            "+cmp ecx,0x2e4",
            "+jg local:9",
            " cmp edx,0xffffff9c",
            "-jl local:12",
            "+jl local:9",
            " cmp edx,0x244",
            "-jg local:12",
            "-mov eax,m4[esp+None*1+0xe0]",
            "+jg local:9",
            "+mov eax,m4[esp+None*1+0x0]",
            " add eax,0x7a120",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            " imul edx",
            " test edx,edx",
            "-js local:197",
            "-cmp edx,ebx",
            "-jb local:207",
            "-jmp local:212",
            "-not eax",
            "-not edx",
            "-add eax,0x1",
            "-adc edx,0x0",
            "-cmp edx,ebx",
            "-jae local:212",
            "+js local:194",
            "+cmp edx,ebx",
            "+jb local:204",
            "+jmp local:209",
            "+not eax",
            "+not edx",
            "+add eax,0x1",
            "+adc edx,0x0",
            "+cmp edx,ebx",
            "+jae local:209",
            " not eax",
            " not edx",
            " add eax,0x1",
            "@@ -209,135 +206,30 @@",
            " rcr eax,0x1",
            " idiv ebx",
            " add eax,m4[None+None*1+3dcore.c::_viewport_x_min_3d]",
            "-jmp local:213",
            "+jmp local:210",
            " mov eax,0x80000000",
            "+cmp ecx,0x80000000",
            "+je local:9",
            " cmp esi,0x80000000",
            "-je local:12",
            "-cmp edi,0x80000000",
            "-je local:12",
            "+je local:9",
            " cmp eax,0x80000000",
            "-je local:12",
            "+je local:9",
            "+movzx ebp,m1[None+None*1+0xaea48f]",
            "+mov ebx,ebp",
            "+mov edx,ebp",
            "+shl ebx,0x18",
            "+shl edx,0x10",
            "+add edx,ebx",
            "+mov ebx,ebp",
            "+shl ebx,0x8",
            "+add edx,ebx",
            "+mov ebx,esi",
            "+add ebp,edx",
            " mov edx,eax",
            "-mov ebx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-sub edx,esi",
            "-test ebx,ebx",
            "-je local:347",
            "-je local:12",
            "-push 0x0",
            "-push 0x2",
            "-mov m4[esp+None*1+0xfc],edx",
            "-push 0x0",
            "-fild m4[esp+None*1+0x100]",
            "-push 0x0",
            "-fmul m8[None+None*1+constant:0000000000001040]",
            "-push 0x1",
            "-fstp m8[esp+None*1+0x14]",
            "-call LINKER MODULE::_grColorCombine@20",
            "-push 0x0",
            "-push 0x2",
            "-push 0x0",
            "-push 0x0",
            "-push 0x1",
            "-call LINKER MODULE::_grAlphaCombine@20",
            "-push 0x0",
            "-push 0x0",
            "-push 0x5",
            "-push 0x1",
            "-call LINKER MODULE::_grAlphaBlendFunction@16",
            "-fldz ",
            "-fcos ",
            "-fldz ",
            "-fsin ",
            "-fxch st(0),st(1)",
            "-fmul m8[esp+None*1+0x0]",
            "-fxch st(0),st(1)",
            "-fmul m8[esp+None*1+0x0]",
            "-mov ebx,esi",
            "-mov m4[esp+None*1+0x10],edi",
            "-mov m4[esp+None*1+0xf8],edi",
            "-mov m4[esp+None*1+0xfc],esi",
            "-mov m4[esp+None*1+0x100],edi",
            "-mov m4[esp+None*1+0xf4],esi",
            "-mov edi,0x40340000",
            "-mov esi,0x3f800000",
            "-mov m4[esp+None*1+0xc],edi",
            "-fild m4[esp+None*1+0xf4]",
            "-fild m4[esp+None*1+0xf8]",
            "-fild m4[esp+None*1+0xfc]",
            "-fild m4[esp+None*1+0x100]",
            "-mov edx,0x3f800000",
            "-mov ecx,0x437f0000",
            "-fxch st(0),st(3)",
            "-fstp m4[esp+None*1+0x8c]",
            "-fxch st(0),st(1)",
            "-fstp m4[esp+None*1+0x90]",
            "-mov m4[esp+None*1+0x34],esi",
            "-mov m4[esp+None*1+0xac],edx",
            "-mov m4[esp+None*1+0x98],ecx",
            "-mov m4[esp+None*1+0x9c],ecx",
            "-mov m4[esp+None*1+0xa8],ecx",
            "-mov m4[esp+None*1+0x20],ecx",
            "-mov m4[esp+None*1+0x24],ecx",
            "-mov edx,0x43570000",
            "-xor ecx,ecx",
            "-mov m4[esp+None*1+0xa0],edx",
            "-mov m4[esp+None*1+0x28],edx",
            "-mov m4[esp+None*1+0x30],ecx",
            "-mov m4[esp+None*1+0x8],ecx",
            "-faddp st(3)",
            "-faddp st(1)",
            "-fxch st(0),st(1)",
            "-fstp m4[esp+None*1+0x14]",
            "-fstp m4[esp+None*1+0x18]",
            "-fld m8[esp+None*1+0x8]",
            "-fmul m8[None+None*1+constant:10a35ca246df913f]",
            "-fld st(0)",
            "-fcos ",
            "-fxch st(0),st(1)",
            "-fsin ",
            "-fxch st(0),st(1)",
            "-fmul m8[esp+None*1+0x0]",
            "-fxch st(0),st(1)",
            "-fmul m8[esp+None*1+0x0]",
            "-mov esi,0x3f800000",
            "-mov edi,0x437f0000",
            "-mov edx,0x43570000",
            "-mov m4[esp+None*1+0x100],ebx",
            "-xor ecx,ecx",
            "-fild m4[esp+None*1+0x100]",
            "-mov m4[esp+None*1+0x70],esi",
            "-mov m4[esp+None*1+0x5c],edi",
            "-mov m4[esp+None*1+0x60],edi",
            "-mov m4[esp+None*1+0x64],edx",
            "-mov m4[esp+None*1+0x6c],ecx",
            "-lea edi,m4[esp+None*1+0x14]",
            "-mov eax,m4[esp+None*1+0x10]",
            "-lea esi,m4[esp+None*1+0x50]",
            "-mov m4[esp+None*1+0x100],eax",
            "-lea eax,m4[esp+None*1+0x8c]",
            "-fild m4[esp+None*1+0x100]",
            "-push eax",
            "-fxch st(0),st(1)",
            "-faddp st(3)",
            "-lea eax,m4[esp+None*1+0x54]",
            "-fxch st(0),st(2)",
            "-fstp m4[esp+None*1+0x54]",
            "-push eax",
            "-lea eax,m4[esp+None*1+0x1c]",
            "-faddp st(1)",
            "-push eax",
            "-fstp m4[esp+None*1+0x60]",
            "-call LINKER MODULE::_grDrawTriangle@12",
            "-fld m8[esp+None*1+0x8]",
            "-mov ecx,0xf",
            "-fadd m8[None+None*1+constant:0000000000003440]",
            "-rep movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            "-fst m8[esp+None*1+0x8]",
            "-fcomp m8[None+None*1+constant:0000000000807640]",
            "-fnstsw ax",
            "-sahf ",
            "-jbe local:291",
            "-mov esp,ebp",
            "+mov eax,ebp",
            "+sub edx,ecx",
            "+call circle.c::fill_circle_",
            "+add esp,0x10",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -345,27 +237,3 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-xor eax,eax",
            "-mov al,m1[None+None*1+0xaffddf]",
            "-mov ecx,eax",
            "-shl ecx,0x18",
            "-mov m4[esp+None*1+0xf4],ecx",
            "-mov ecx,eax",
            "-mov ebx,m4[esp+None*1+0xf4]",
            "-shl ecx,0x10",
            "-add ebx,ecx",
            "-mov ecx,eax",
            "-shl ecx,0x8",
            "-add ecx,ebx",
            "-mov ebx,edi",
            "-add eax,ecx",
            "-mov ecx,esi",
            "-call circle.c::fill_circle_",
            "-mov esp,ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret "
          ]
        },
        {
          "symbol": "start.c::_WinMain@16",
          "source": "E:\\library\\system\\start.c",
          "first": "0x47ead0",
          "second": "0x47cc70",
          "first_instruction_count": 42,
          "second_instruction_count": 42,
          "diff": [
            "--- 0x47ead0",
            "+++ 0x47cc70",
            "@@ -20,19 +20,19 @@",
            " push 0x0",
            " push 0x0",
            " mov m4[None+None*1+start.c::_main_command_line],esi",
            "-call m4[None+None*1+constant:184b0d00]",
            "+call m4[None+None*1+constant:f6790c00]",
            " xor esi,esi",
            " push esi",
            " push esi",
            " push esi",
            " lea eax,m4[esp+None*1+0xc]",
            " push eax",
            "-call m4[None+None*1+constant:86490d00]",
            "+call m4[None+None*1+constant:4e780c00]",
            " cmp m4[esp+None*1+0x4],0x2",
            " je local:36",
            " mov eax,esp",
            " push eax",
            "-call m4[None+None*1+constant:32490d00]",
            "+call m4[None+None*1+constant:fa770c00]",
            " jmp local:24",
            " call start.c::deinitialise_windows_",
            " mov eax,m4[esp+None*1+0x8]"
          ]
        },
        {
          "symbol": "start.c::_main_window_notify@16",
          "source": "E:\\library\\system\\start.c",
          "first": "0x47effc",
          "second": "0x47d19c",
          "first_instruction_count": 387,
          "second_instruction_count": 387,
          "diff": [
            "--- 0x47effc",
            "+++ 0x47d19c",
            "@@ -15,13 +15,13 @@",
            " cmp ebx,0x2",
            " jne local:18",
            " push 0x0",
            "-call m4[None+None*1+constant:e6490d00]",
            "+call m4[None+None*1+constant:ae780c00]",
            " push esi",
            " push edi",
            " push ebx",
            " mov edx,m4[esp+None*1+0x60]",
            " push edx",
            "-call m4[None+None*1+constant:20490d00]",
            "+call m4[None+None*1+constant:e8770c00]",
            " add esp,0x40",
            " pop ebp",
            " pop edi",
            "@@ -110,7 +110,7 @@",
            " jne local:38",
            " xor ebx,ebx",
            " push ebx",
            "-call m4[None+None*1+constant:704a0d00]",
            "+call m4[None+None*1+constant:38790c00]",
            " test eax,eax",
            " jge local:111",
            " jmp local:38",
            "@@ -172,15 +172,15 @@",
            " push ddraw.c::_rcWindow",
            " mov edi,m4[None+None*1+start.c::_main_window]",
            " push edi",
            "-call m4[None+None*1+constant:5e490d00]",
            "+call m4[None+None*1+constant:26780c00]",
            " push ddraw.c::_rcWindow",
            " mov ebp,m4[None+None*1+start.c::_main_window]",
            " push ebp",
            "-call m4[None+None*1+constant:ee480d00]",
            "-push 0x725098",
            "+call m4[None+None*1+constant:b6770c00]",
            "+push 0x70fb68",
            " mov eax,m4[None+None*1+start.c::_main_window]",
            " push eax",
            "-call m4[None+None*1+constant:ee480d00]",
            "+call m4[None+None*1+constant:b6770c00]",
            " xor eax,eax",
            " add esp,0x40",
            " pop ebp",
            "@@ -224,12 +224,12 @@",
            " push eax",
            " mov ecx,m4[None+None*1+start.c::_main_window]",
            " push ecx",
            "-call m4[None+None*1+constant:ce480d00]",
            "+call m4[None+None*1+constant:96770c00]",
            " mov eax,esp",
            " push eax",
            " mov ebx,m4[None+None*1+start.c::_main_window]",
            " push ebx",
            "-call m4[None+None*1+constant:46490d00]",
            "+call m4[None+None*1+constant:0e780c00]",
            " xor eax,eax",
            " add esp,0x40",
            " pop ebp",
            "@@ -317,7 +317,7 @@",
            " call dsound.c::internal_free_sound_buffer_",
            " jmp local:38",
            " push esi",
            "-call m4[None+None*1+constant:00490d00]",
            "+call m4[None+None*1+constant:c8770c00]",
            " add esp,0x40",
            " pop ebp",
            " pop edi",
            "@@ -328,7 +328,7 @@",
            " push ecx",
            " mov ebx,m4[esi+None*1+0x0]",
            " push ebx",
            "-call m4[None+None*1+constant:324a0d00]",
            "+call m4[None+None*1+constant:fa780c00]",
            " jmp local:38",
            " mov eax,m4[esi+None*1+0x0]",
            " dec eax",
            "@@ -337,43 +337,43 @@",
            " jmp m4[None+eax*4+start.c::set_window_window_+0xec]",
            " mov edx,m4[None+None*1+start.c::_cursor_main]",
            " push edx",
            "-call m4[None+None*1+constant:264a0d00]",
            "+call m4[None+None*1+constant:ee780c00]",
            " jmp local:38",
            " mov eax,m4[None+None*1+start.c::_cursor_move]",
            " push eax",
            "-call m4[None+None*1+constant:264a0d00]",
            "+call m4[None+None*1+constant:ee780c00]",
            " jmp local:38",
            " mov ebp,m4[None+None*1+start.c::_cursor_close]",
            " push ebp",
            "-call m4[None+None*1+constant:264a0d00]",
            "+call m4[None+None*1+constant:ee780c00]",
            " jmp local:38",
            " mov ebx,m4[None+None*1+start.c::_cursor_resize]",
            " push ebx",
            "-call m4[None+None*1+constant:264a0d00]",
            "+call m4[None+None*1+constant:ee780c00]",
            " jmp local:38",
            " mov ecx,m4[None+None*1+start.c::_cursor_wait]",
            " push ecx",
            "-call m4[None+None*1+constant:264a0d00]",
            "+call m4[None+None*1+constant:ee780c00]",
            " jmp local:38",
            " mov edx,m4[None+None*1+start.c::_cursor_zoom]",
            " push edx",
            "-call m4[None+None*1+constant:264a0d00]",
            "+call m4[None+None*1+constant:ee780c00]",
            " jmp local:38",
            " mov eax,m4[None+None*1+start.c::_cursor_waypoint]",
            " push eax",
            "-call m4[None+None*1+constant:264a0d00]",
            "+call m4[None+None*1+constant:ee780c00]",
            " jmp local:38",
            " mov ebp,m4[None+None*1+start.c::_cursor_rotate]",
            " push ebp",
            "-call m4[None+None*1+constant:264a0d00]",
            "+call m4[None+None*1+constant:ee780c00]",
            " jmp local:38",
            " mov ebx,m4[None+None*1+start.c::_cursor_text]",
            " push ebx",
            "-call m4[None+None*1+constant:264a0d00]",
            "+call m4[None+None*1+constant:ee780c00]",
            " jmp local:38",
            " mov ecx,m4[None+None*1+start.c::_cursor_3d]",
            " push ecx",
            "-call m4[None+None*1+constant:264a0d00]",
            "+call m4[None+None*1+constant:ee780c00]",
            " jmp local:38",
            " mov edx,esi",
            " mov eax,edi"
          ]
        },
        {
          "symbol": "start.c::deinitialise_windows_",
          "source": "E:\\library\\system\\start.c",
          "first": "0x47ed78",
          "second": "0x47cf18",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x47ed78",
            "+++ 0x47cf18",
            "@@ -12,14 +12,14 @@",
            " push 0x400",
            " mov ecx,m4[None+None*1+start.c::_main_window]",
            " push ecx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " push 0x0",
            " push 0x13",
            " push 0x400",
            " mov ebx,m4[None+None*1+start.c::_main_window]",
            " push ebx",
            " mov esi,0x1",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " call dtimer.c::deinitialise_windows_timer_",
            " mov m4[None+None*1+start.c::_windows_deinitialised],esi",
            " pop ebx"
          ]
        },
        {
          "symbol": "start.c::draw_window_outline_",
          "source": "E:\\library\\system\\start.c",
          "first": "0x47edcc",
          "second": "0x47cf6c",
          "first_instruction_count": 54,
          "second_instruction_count": 54,
          "diff": [
            "--- 0x47edcc",
            "+++ 0x47cf6c",
            "@@ -7,42 +7,42 @@",
            " push 0x0",
            " push 0x1",
            " push 0x0",
            "-call m4[None+None*1+constant:1c480d00]",
            "+call m4[None+None*1+constant:e4760c00]",
            " mov esi,eax",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            "-call m4[None+None*1+constant:7e490d00]",
            "+call m4[None+None*1+constant:46780c00]",
            " push esi",
            " push eax",
            " mov ebx,eax",
            "-call m4[None+None*1+constant:92480d00]",
            "+call m4[None+None*1+constant:5a770c00]",
            " push 0x0",
            " push 0x0",
            " push 0x0",
            " push ebx",
            "-call m4[None+None*1+constant:86480d00]",
            "+call m4[None+None*1+constant:4e770c00]",
            " push 0x0",
            " push 0x13f",
            " push ebx",
            "-call m4[None+None*1+constant:7c480d00]",
            "+call m4[None+None*1+constant:44770c00]",
            " push 0xc7",
            " push 0x13f",
            " push ebx",
            "-call m4[None+None*1+constant:7c480d00]",
            "+call m4[None+None*1+constant:44770c00]",
            " push 0xc7",
            " push 0x0",
            " push ebx",
            "-call m4[None+None*1+constant:7c480d00]",
            "+call m4[None+None*1+constant:44770c00]",
            " push 0x0",
            " push 0x0",
            " push ebx",
            "-call m4[None+None*1+constant:7c480d00]",
            "+call m4[None+None*1+constant:44770c00]",
            " push ebx",
            " mov ecx,m4[None+None*1+start.c::_main_window]",
            " push ecx",
            "-call m4[None+None*1+constant:0a4a0d00]",
            "+call m4[None+None*1+constant:d2780c00]",
            " push esi",
            "-call m4[None+None*1+constant:28480d00]",
            "+call m4[None+None*1+constant:f0760c00]",
            " pop esi",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "start.c::end_application_",
          "source": "E:\\library\\system\\start.c",
          "first": "0x47f834",
          "second": "0x47d9d4",
          "first_instruction_count": 31,
          "second_instruction_count": 31,
          "diff": [
            "--- 0x47f834",
            "+++ 0x47d9d4",
            "@@ -7,13 +7,13 @@",
            " push 0x400",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " push 0x0",
            " push 0x13",
            " push 0x400",
            " mov ecx,m4[None+None*1+start.c::_main_window]",
            " push ecx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " call dtimer.c::deinitialise_windows_timer_",
            " call start.c::set_window_window_",
            " call thread.c::kill_all_threads_",
            "@@ -22,7 +22,7 @@",
            " push text:'Apache finished'",
            " mov ebx,m4[None+None*1+start.c::_main_window]",
            " push ebx",
            "-call m4[None+None*1+constant:d8490d00]",
            "+call m4[None+None*1+constant:a0780c00]",
            " xor eax,eax",
            " call exit::exit_",
            " pop edx"
          ]
        },
        {
          "symbol": "start.c::initialise_windows_",
          "source": "E:\\library\\system\\start.c",
          "first": "0x47eb4c",
          "second": "0x47ccec",
          "first_instruction_count": 157,
          "second_instruction_count": 157,
          "diff": [
            "--- 0x47eb4c",
            "+++ 0x47ccec",
            "@@ -17,44 +17,44 @@",
            " call memset::memset_",
            " push text:'CURSOR_1'",
            " push esi",
            "-call m4[None+None*1+constant:ca490d00]",
            "+call m4[None+None*1+constant:92780c00]",
            " push text:'CURSOR_MOVE'",
            " push esi",
            " mov m4[None+None*1+start.c::_cursor_main],eax",
            "-call m4[None+None*1+constant:ca490d00]",
            "+call m4[None+None*1+constant:92780c00]",
            " push text:'CURSOR_CLOSE'",
            " push esi",
            " mov m4[None+None*1+start.c::_cursor_move],eax",
            "-call m4[None+None*1+constant:ca490d00]",
            "+call m4[None+None*1+constant:92780c00]",
            " push text:'CURSOR_RESIZE'",
            " push esi",
            " mov m4[None+None*1+start.c::_cursor_close],eax",
            "-call m4[None+None*1+constant:ca490d00]",
            "+call m4[None+None*1+constant:92780c00]",
            " push text:'CURSOR_WAIT'",
            " push esi",
            " mov m4[None+None*1+start.c::_cursor_resize],eax",
            "-call m4[None+None*1+constant:ca490d00]",
            "+call m4[None+None*1+constant:92780c00]",
            " push text:'CURSOR_ZOOM'",
            " push esi",
            " mov m4[None+None*1+start.c::_cursor_wait],eax",
            "-call m4[None+None*1+constant:ca490d00]",
            "+call m4[None+None*1+constant:92780c00]",
            " push text:'CURSOR_WAYPOINT'",
            " push esi",
            " mov m4[None+None*1+start.c::_cursor_zoom],eax",
            "-call m4[None+None*1+constant:ca490d00]",
            "+call m4[None+None*1+constant:92780c00]",
            " push text:'CURSOR_ROTATE'",
            " push esi",
            " mov m4[None+None*1+start.c::_cursor_waypoint],eax",
            "-call m4[None+None*1+constant:ca490d00]",
            "+call m4[None+None*1+constant:92780c00]",
            " push text:'CURSOR_TEXT'",
            " push esi",
            " mov m4[None+None*1+start.c::_cursor_rotate],eax",
            "-call m4[None+None*1+constant:ca490d00]",
            "+call m4[None+None*1+constant:92780c00]",
            " push text:'CURSOR_3D'",
            " push esi",
            " mov ebx,start.c::_main_window_notify@16",
            " mov m4[None+None*1+start.c::_cursor_text],eax",
            "-call m4[None+None*1+constant:ca490d00]",
            "+call m4[None+None*1+constant:92780c00]",
            " mov edx,go.c::_application_name",
            " mov ecx,0x208",
            " push 0x4",
            "@@ -64,20 +64,20 @@",
            " mov m4[esp+None*1+0x8],ebx",
            " mov m4[esp+None*1+0x28],edx",
            " mov m4[esp+None*1+0x4],ecx",
            "-call m4[None+None*1+constant:38480d00]",
            "+call m4[None+None*1+constant:00770c00]",
            " mov m4[esp+None*1+0x1c],eax",
            " mov eax,esp",
            " xor ebp,ebp",
            " push eax",
            " mov m4[esp+None*1+0x1c],ebp",
            "-call m4[None+None*1+constant:f8490d00]",
            "+call m4[None+None*1+constant:c0780c00]",
            " test ax,ax",
            " je local:8",
            " push ebp",
            "-call m4[None+None*1+constant:94490d00]",
            "+call m4[None+None*1+constant:5c780c00]",
            " push 0x1",
            " mov m4[None+None*1+start.c::_system_width],eax",
            "-call m4[None+None*1+constant:94490d00]",
            "+call m4[None+None*1+constant:5c780c00]",
            " mov edx,eax",
            " mov m4[None+None*1+start.c::_system_height],eax",
            " cmp m4[None+None*1+ddraw.c::_windows_window],0x0",
            "@@ -105,7 +105,7 @@",
            " push go.c::_application_title",
            " push go.c::_application_name",
            " push ebp",
            "-call m4[None+None*1+constant:0e490d00]",
            "+call m4[None+None*1+constant:d6770c00]",
            " mov m4[None+None*1+start.c::_main_window],eax",
            " mov eax,0x1",
            " mov m4[None+None*1+start.c::_window_screen],ebp",
            "@@ -130,23 +130,23 @@",
            " push go.c::_application_title",
            " push go.c::_application_name",
            " push ebp",
            "-call m4[None+None*1+constant:0e490d00]",
            "+call m4[None+None*1+constant:d6770c00]",
            " mov m4[None+None*1+start.c::_main_window],eax",
            " jmp local:112",
            " call dtimer.c::initialise_windows_timer_",
            " push edi",
            " mov ebx,m4[None+None*1+start.c::_main_window]",
            " push ebx",
            "-call m4[None+None*1+constant:7e4a0d00]",
            "+call m4[None+None*1+constant:46790c00]",
            " mov esi,m4[None+None*1+start.c::_main_window]",
            " push esi",
            "-call m4[None+None*1+constant:b64a0d00]",
            "+call m4[None+None*1+constant:7e790c00]",
            " mov edi,m4[None+None*1+start.c::_main_window]",
            " push edi",
            "-call m4[None+None*1+constant:424a0d00]",
            "+call m4[None+None*1+constant:0a790c00]",
            " mov ebp,m4[None+None*1+start.c::_cursor_main]",
            " push ebp",
            "-call m4[None+None*1+constant:264a0d00]",
            "+call m4[None+None*1+constant:ee780c00]",
            " xor eax,eax",
            " mov m4[None+None*1+start.c::_windows_deinitialised],eax",
            " mov eax,0x1"
          ]
        },
        {
          "symbol": "start.c::set_window_screen_",
          "source": "E:\\library\\system\\start.c",
          "first": "0x47ee74",
          "second": "0x47d014",
          "first_instruction_count": 43,
          "second_instruction_count": 43,
          "diff": [
            "--- 0x47ee74",
            "+++ 0x47d014",
            "@@ -22,17 +22,17 @@",
            " push 0xffffffff",
            " mov esi,m4[None+None*1+start.c::_main_window]",
            " push esi",
            "-call m4[None+None*1+constant:604a0d00]",
            "+call m4[None+None*1+constant:28790c00]",
            " push 0x8",
            " push 0xffffffec",
            " mov edi,m4[None+None*1+start.c::_main_window]",
            " push edi",
            "-call m4[None+None*1+constant:4e4a0d00]",
            "+call m4[None+None*1+constant:16790c00]",
            " push 0x90000000",
            " push 0xfffffff0",
            " mov ebp,m4[None+None*1+start.c::_main_window]",
            " push ebp",
            "-call m4[None+None*1+constant:4e4a0d00]",
            "+call m4[None+None*1+constant:16790c00]",
            " mov m4[None+None*1+start.c::_window_screen],0x1",
            " pop ebx",
            " pop ecx"
          ]
        },
        {
          "symbol": "start.c::set_window_window_",
          "source": "E:\\library\\system\\start.c",
          "first": "0x47eee8",
          "second": "0x47d088",
          "first_instruction_count": 49,
          "second_instruction_count": 49,
          "diff": [
            "--- 0x47eee8",
            "+++ 0x47d088",
            "@@ -10,12 +10,12 @@",
            " push 0xfffffff0",
            " mov ecx,m4[None+None*1+start.c::_main_window]",
            " push ecx",
            "-call m4[None+None*1+constant:4e4a0d00]",
            "+call m4[None+None*1+constant:16790c00]",
            " push 0x8",
            " push 0xffffffec",
            " mov ebx,m4[None+None*1+start.c::_main_window]",
            " push ebx",
            "-call m4[None+None*1+constant:4e4a0d00]",
            "+call m4[None+None*1+constant:16790c00]",
            " mov eax,m4[None+None*1+start.c::_system_height]",
            " mov edx,eax",
            " sar edx,0x1f",
            "@@ -36,7 +36,7 @@",
            " push 0xffffffff",
            " mov esi,m4[None+None*1+start.c::_main_window]",
            " push esi",
            "-call m4[None+None*1+constant:604a0d00]",
            "+call m4[None+None*1+constant:28790c00]",
            " mov eax,0x1",
            " xor edi,edi",
            " call start.c::draw_window_outline_"
          ]
        },
        {
          "symbol": "start.c::start_application_",
          "source": "E:\\library\\system\\start.c",
          "first": "0x47f53c",
          "second": "0x47d6dc",
          "first_instruction_count": 101,
          "second_instruction_count": 101,
          "diff": [
            "--- 0x47f53c",
            "+++ 0x47d6dc",
            "@@ -9,7 +9,7 @@",
            " push 0x400",
            " mov edx,m4[None+None*1+start.c::_main_window]",
            " push edx",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " mov ecx,m4[esp+None*1+0x884]",
            " test ecx,ecx",
            " je local:87",
            "@@ -23,7 +23,7 @@",
            " push esi",
            " lea edi,m4[esp+None*1+0x18]",
            " mov esi,text:'application'",
            "-call m4[None+None*1+constant:164a0d00]",
            "+call m4[None+None*1+constant:de780c00]",
            " push edi",
            " mov al,m1[esi+None*1+0x0]",
            " mov m1[edi+None*1+0x0],al",
            "@@ -90,7 +90,7 @@",
            " push text:'Error - Direct draw not available'",
            " mov ebx,m4[None+None*1+start.c::_main_window]",
            " push ebx",
            "-call m4[None+None*1+constant:d8490d00]",
            "+call m4[None+None*1+constant:a0780c00]",
            " mov eax,0x1e",
            " call exit::exit_",
            " add esp,0x88c"
          ]
        },
        {
          "symbol": "start.c::update_user_window_",
          "source": "E:\\library\\system\\start.c",
          "first": "0x47f688",
          "second": "0x47d828",
          "first_instruction_count": 142,
          "second_instruction_count": 142,
          "diff": [
            "--- 0x47f688",
            "+++ 0x47d828",
            "@@ -9,25 +9,25 @@",
            " xor edx,edx",
            " push ecx",
            " mov m4[esp+None*1+0x34],edx",
            "-call m4[None+None*1+constant:7e490d00]",
            "+call m4[None+None*1+constant:46780c00]",
            " mov ebx,eax",
            " mov ebp,eax",
            " lea eax,m4[esp+None*1+0x10]",
            " push eax",
            " mov edi,m4[None+None*1+start.c::_main_window]",
            " push edi",
            "-call m4[None+None*1+constant:5e490d00]",
            "+call m4[None+None*1+constant:26780c00]",
            " push 0xd",
            "-call m4[None+None*1+constant:38480d00]",
            "+call m4[None+None*1+constant:00770c00]",
            " push eax",
            " push ebx",
            "-call m4[None+None*1+constant:92480d00]",
            "+call m4[None+None*1+constant:5a770c00]",
            " lea eax,m4[esp+None*1+0x20]",
            " push eax",
            " push 0x1",
            " push data:00000000417061636865205469746c65",
            " push ebx",
            "-call m4[None+None*1+constant:64480d00]",
            "+call m4[None+None*1+constant:2c770c00]",
            " mov edx,m4[esp+None*1+0x1c]",
            " sub edx,m4[esp+None*1+0x14]",
            " mov ecx,m4[esp+None*1+0x24]",
            "@@ -63,7 +63,7 @@",
            " push edx",
            " push ebp",
            " mov m4[esp+None*1+0x48],eax",
            "-call m4[None+None*1+constant:a44a0d00]",
            "+call m4[None+None*1+constant:6c790c00]",
            " lea eax,m4[esp+None*1+0x20]",
            " push eax",
            " mov edi,ebx",
            "@@ -76,7 +76,7 @@",
            " push ecx",
            " push ebx",
            " push ebp",
            "-call m4[None+None*1+constant:64480d00]",
            "+call m4[None+None*1+constant:2c770c00]",
            " mov eax,m4[esp+None*1+0x28]",
            " mov m4[esp+None*1+0x4],eax",
            " mov eax,m4[esp+None*1+0x24]",
            "@@ -93,13 +93,13 @@",
            " dec eax",
            " push 0x0",
            " mov m4[esp+None*1+0xc],eax",
            "-call m4[None+None*1+constant:38480d00]",
            "+call m4[None+None*1+constant:00770c00]",
            " push eax",
            " lea eax,m4[esp+None*1+0x4]",
            " push eax",
            " push ebp",
            " add ebx,0x100",
            "-call m4[None+None*1+constant:52490d00]",
            "+call m4[None+None*1+constant:1a780c00]",
            " mov eax,m4[esp+None*1+0x24]",
            " mov edx,m4[esp+None*1+0x34]",
            " mov ecx,m4[None+None*1+start.c::_number_of_user_strings]",
            "@@ -121,18 +121,18 @@",
            " sub eax,esi",
            " mov m4[esp+None*1+0x4],esi",
            " mov m4[esp+None*1+0xc],eax",
            "-call m4[None+None*1+constant:38480d00]",
            "+call m4[None+None*1+constant:00770c00]",
            " push eax",
            " lea eax,m4[esp+None*1+0x4]",
            " push eax",
            " push ebp",
            "-call m4[None+None*1+constant:52490d00]",
            "+call m4[None+None*1+constant:1a780c00]",
            " mov eax,esi",
            " call start.c::draw_window_outline_",
            " push ebp",
            " mov ebp,m4[None+None*1+start.c::_main_window]",
            " push ebp",
            "-call m4[None+None*1+constant:0a4a0d00]",
            "+call m4[None+None*1+constant:d2780c00]",
            " add esp,0x38",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "stklmwnt::__init_stack_limits_",
          "source": "stklmwnt",
          "first": "0x4ce37c",
          "second": "0x4c17ec",
          "first_instruction_count": 37,
          "second_instruction_count": 37,
          "diff": [
            "--- 0x4ce37c",
            "+++ 0x4c17ec",
            "@@ -9,7 +9,7 @@",
            " push eax",
            " lea eax,m4[esp+None*1+0x24]",
            " push eax",
            "-call m4[None+None*1+constant:86500d00]",
            "+call m4[None+None*1+constant:867f0c00]",
            " mov edx,m4[esp+None*1+0x0]",
            " add edx,m4[esp+None*1+0xc]",
            " mov cx,m2[None+None*1+crwdata::__osbuild]"
          ]
        },
        {
          "symbol": "strtol::_stol_",
          "source": "strtol",
          "first": "0x4d1938",
          "second": "0x4c4dc0",
          "first_instruction_count": 119,
          "second_instruction_count": 119,
          "diff": [
            "--- 0x4d1938",
            "+++ 0x4c4dc0",
            "@@ -69,7 +69,7 @@",
            " mov m4[esp+None*1+0x8],eax",
            " cmp eax,esi",
            " jge local:82",
            "-cmp ebx,m4[edi+None*1+constant:0a694e00]",
            "+cmp ebx,m4[edi+None*1+constant:e6974d00]",
            " jbe local:74",
            " mov cl,0x1",
            " mov eax,ebx"
          ]
        },
        {
          "symbol": "supscan.c::get_culled_super_sector_scan_",
          "source": "E:\\library\\3dvisual\\supscan.c",
          "first": "0x49d4a0",
          "second": "0x4993b0",
          "first_instruction_count": 320,
          "second_instruction_count": 320,
          "diff": [
            "--- 0x49d4a0",
            "+++ 0x4993b0",
            "@@ -7,7 +7,7 @@",
            " sub esp,0x18",
            " mov ecx,0x7fffffff",
            " mov esi,0x80000000",
            "-mov ebp,m4[None+None*1+0xafaef8]",
            "+mov ebp,m4[None+None*1+0xae55a8]",
            " xor edx,edx",
            " mov m4[None+None*1+supscan.c::_super_sector_scan_x_min],ecx",
            " mov m4[None+None*1+supscan.c::_super_sector_scan_y_min],ecx",
            "@@ -34,63 +34,63 @@",
            " mov edx,m4[esp+None*1+0x10]",
            " mov eax,m4[esp+None*1+0x14]",
            " mov ebx,m4[None+None*1+3dcore.c::_vp_xeo_ss]",
            "-mov edi,m4[None+edx*4+0xaff124]",
            "-mov ecx,m4[None+eax*4+0xafe790]",
            "+mov edi,m4[None+edx*4+0xae9ca8]",
            "+mov ecx,m4[None+eax*4+0xae981c]",
            " add ebx,edi",
            " lea esi,m4[ebx+ecx*1+0x0]",
            "-mov ebp,m4[None+edx*4+0xafe74c]",
            "+mov ebp,m4[None+edx*4+0xae97d8]",
            " mov m4[None+None*1+vertex.c::_quad],esi",
            " mov esi,m4[None+None*1+3dcore.c::_vp_yeo_ss]",
            "-mov ecx,m4[None+eax*4+0xafdcf8]",
            "+mov ecx,m4[None+eax*4+0xae9794]",
            " add esi,ebp",
            "-mov edi,m4[None+edx*4+0xaff0e0]",
            "+mov edi,m4[None+edx*4+0xae9c64]",
            " lea ebp,m4[esi+ecx*1+0x0]",
            " mov ecx,m4[None+None*1+3dcore.c::_vp_zeo_ss]",
            "-mov edx,m4[None+eax*4+0xaff570]",
            "+mov edx,m4[None+eax*4+0xae9cf0]",
            " add ecx,edi",
            " mov m4[None+None*1+constant:00000000],ebp",
            " lea ebp,m4[ecx+edx*1+0x0]",
            " mov edx,m4[esp+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],ebp",
            "-mov ebp,m4[None+edx*4+0xafe794]",
            "+mov ebp,m4[None+edx*4+0xae9820]",
            " add ebx,ebp",
            " mov m4[None+None*1+constant:00000000],ebx",
            "-mov ebx,m4[None+edx*4+0xafdcfc]",
            "+mov ebx,m4[None+edx*4+0xae9798]",
            " add esi,ebx",
            "-mov ebx,m4[None+edx*4+0xaff574]",
            "+mov ebx,m4[None+edx*4+0xae9cf4]",
            " add ecx,ebx",
            " mov ebx,m4[esp+None*1+0xc]",
            " mov m4[None+None*1+constant:00000000],ecx",
            " mov ecx,m4[None+None*1+3dcore.c::_vp_xeo_ss]",
            "-mov ebp,m4[None+ebx*4+0xaff128]",
            "+mov ebp,m4[None+ebx*4+0xae9cac]",
            " add ebp,ecx",
            "-mov ecx,m4[None+edx*4+0xafe794]",
            "+mov ecx,m4[None+edx*4+0xae9820]",
            " mov m4[None+None*1+constant:00000000],esi",
            " lea esi,m4[ecx+ebp*1+0x0]",
            " mov ecx,m4[None+None*1+3dcore.c::_vp_yeo_ss]",
            " mov m4[None+None*1+constant:00000000],esi",
            "-mov esi,m4[None+ebx*4+0xafe750]",
            "+mov esi,m4[None+ebx*4+0xae97dc]",
            " add esi,ecx",
            "-mov ecx,m4[None+edx*4+0xafdcfc]",
            "+mov ecx,m4[None+edx*4+0xae9798]",
            " lea edi,m4[esi+ecx*1+0x0]",
            " mov ecx,m4[None+None*1+3dcore.c::_vp_zeo_ss]",
            " mov m4[None+None*1+constant:00000000],edi",
            "-mov edi,m4[None+ebx*4+0xaff0e4]",
            "-mov edx,m4[None+edx*4+0xaff574]",
            "+mov edi,m4[None+ebx*4+0xae9c68]",
            "+mov edx,m4[None+edx*4+0xae9cf4]",
            " add ecx,edi",
            " lea ebx,m4[ecx+edx*1+0x0]",
            "-mov edx,m4[None+eax*4+0xafe790]",
            "+mov edx,m4[None+eax*4+0xae981c]",
            " mov m4[None+None*1+constant:00000000],ebx",
            " add ebp,edx",
            "-mov edx,m4[None+eax*4+0xafdcf8]",
            "+mov edx,m4[None+eax*4+0xae9794]",
            " mov m4[None+None*1+constant:00000000],ebp",
            " add esi,edx",
            "-mov eax,m4[None+eax*4+0xaff570]",
            "+mov eax,m4[None+eax*4+0xae9cf0]",
            " mov m4[None+None*1+constant:00000000],esi",
            " add ecx,eax",
            " mov eax,vertex.c::_quad",
            " mov m4[None+None*1+constant:00000000],ecx",
            "-call fx3dpoly.c::get_3d_clipped_polygon_",
            "+call 3dpoly.c::get_3d_clipped_polygon_",
            " mov ebp,eax",
            " test eax,eax",
            " je local:307",
            "@@ -110,11 +110,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[None+None*1+0xae9734]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xae9740]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -127,15 +127,15 @@",
            " mov ebx,m4[ebp+None*1+0x4]",
            " mov eax,m4[ebp+None*1+0x0]",
            " mov m4[esp+None*1+0x0],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "+mov edx,m4[None+None*1+0xae972c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xae9738]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xae9744]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "supscan.c::get_map_super_sector_visibility_",
          "source": "E:\\library\\3dvisual\\supscan.c",
          "first": "0x49dddc",
          "second": "0x499cec",
          "first_instruction_count": 50,
          "second_instruction_count": 50,
          "diff": [
            "--- 0x49dddc",
            "+++ 0x499cec",
            "@@ -6,34 +6,34 @@",
            " mov eax,m4[None+None*1+supscan.c::_map_xeo_ss]",
            " mov m4[esp+None*1+0x0],eax",
            " mov eax,m4[None+None*1+supscan.c::_map_yeo_ss]",
            "-mov edx,m4[None+None*1+0xafcf64]",
            "+mov edx,m4[None+None*1+0xae6ae8]",
            " mov m4[esp+None*1+0x10],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " add eax,edx",
            "-mov edx,m4[None+None*1+0xafc3cc]",
            "-mov ecx,m4[None+None*1+0xafc40c]",
            "+mov edx,m4[None+None*1+0xae5d48]",
            "+mov ecx,m4[None+None*1+0xae5d88]",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x10]",
            " mov m4[esp+None*1+0x4],edx",
            "-mov edx,m4[None+None*1+0xafbc78]",
            "+mov edx,m4[None+None*1+0xae56f8]",
            " add eax,ecx",
            "-mov ebx,m4[None+None*1+0xafcf68]",
            "+mov ebx,m4[None+None*1+0xae6aec]",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xafc3cc]",
            "+mov edx,m4[None+None*1+0xae5d48]",
            " add eax,ebx",
            " add edx,eax",
            "-mov esi,m4[None+None*1+0xafc410]",
            "+mov esi,m4[None+None*1+0xae5d8c]",
            " mov m4[esp+None*1+0x8],edx",
            " mov edx,m4[esp+None*1+0x10]",
            "-mov ecx,m4[None+None*1+0xafbc78]",
            "+mov ecx,m4[None+None*1+0xae56f8]",
            " add edx,esi",
            " add ecx,edx",
            " mov m4[esp+None*1+0x18],ecx",
            "-mov ecx,m4[None+None*1+0xafc3c8]",
            "+mov ecx,m4[None+None*1+0xae5d44]",
            " add ecx,eax",
            "-mov eax,m4[None+None*1+0xafbc74]",
            "+mov eax,m4[None+None*1+0xae56f4]",
            " mov ebx,0x4",
            " add eax,edx",
            " lea edx,m4[esp+None*1+0x10]"
          ]
        },
        {
          "symbol": "supscan.c::get_super_sector_visibility_",
          "source": "E:\\library\\3dvisual\\supscan.c",
          "first": "0x49d97c",
          "second": "0x49988c",
          "first_instruction_count": 72,
          "second_instruction_count": 72,
          "diff": [
            "--- 0x49d97c",
            "+++ 0x49988c",
            "@@ -10,51 +10,51 @@",
            " mov eax,m4[None+None*1+supscan.c::_yeo_ss]",
            " mov m4[esp+None*1+0x10],eax",
            " mov eax,m4[None+None*1+supscan.c::_zeo_ss]",
            "-mov edx,m4[None+None*1+0xaff124]",
            "+mov edx,m4[None+None*1+0xae9ca8]",
            " mov m4[esp+None*1+0x20],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " add eax,edx",
            "-mov edx,m4[None+None*1+0xafe794]",
            "-mov ecx,m4[None+None*1+0xafe74c]",
            "+mov edx,m4[None+None*1+0xae9820]",
            "+mov ecx,m4[None+None*1+0xae97d8]",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x10]",
            " mov m4[esp+None*1+0x4],edx",
            "-mov edx,m4[None+None*1+0xafdcfc]",
            "+mov edx,m4[None+None*1+0xae9798]",
            " add eax,ecx",
            "-mov ebx,m4[None+None*1+0xaff0e0]",
            "+mov ebx,m4[None+None*1+0xae9c64]",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x20]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xaff574]",
            "+mov edx,m4[None+None*1+0xae9cf4]",
            " add eax,ebx",
            "-mov esi,m4[None+None*1+0xaff128]",
            "+mov esi,m4[None+None*1+0xae9cac]",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x24],edx",
            "-mov edx,m4[None+None*1+0xafe794]",
            "+mov edx,m4[None+None*1+0xae9820]",
            " add eax,esi",
            " add edx,eax",
            "-mov edi,m4[None+None*1+0xafe750]",
            "+mov edi,m4[None+None*1+0xae97dc]",
            " mov m4[esp+None*1+0x8],edx",
            " mov edx,m4[esp+None*1+0x10]",
            "-mov ecx,m4[None+None*1+0xafdcfc]",
            "+mov ecx,m4[None+None*1+0xae9798]",
            " add edx,edi",
            " add ecx,edx",
            "-mov ebp,m4[None+None*1+0xaff0e4]",
            "+mov ebp,m4[None+None*1+0xae9c68]",
            " mov m4[esp+None*1+0x18],ecx",
            " mov ecx,m4[esp+None*1+0x20]",
            "-mov ebx,m4[None+None*1+0xaff574]",
            "+mov ebx,m4[None+None*1+0xae9cf4]",
            " add ecx,ebp",
            " add ebx,ecx",
            " mov m4[esp+None*1+0x28],ebx",
            "-mov ebx,m4[None+None*1+0xafe790]",
            "+mov ebx,m4[None+None*1+0xae981c]",
            " add ebx,eax",
            "-mov eax,m4[None+None*1+0xafdcf8]",
            "+mov eax,m4[None+None*1+0xae9794]",
            " mov m4[esp+None*1+0xc],ebx",
            " add eax,edx",
            " lea ebx,m4[esp+None*1+0x20]",
            " mov m4[esp+None*1+0x1c],eax",
            "-mov eax,m4[None+None*1+0xaff570]",
            "+mov eax,m4[None+None*1+0xae9cf0]",
            " lea edx,m4[esp+None*1+0x10]",
            " add eax,ecx",
            " mov ecx,0x4"
          ]
        },
        {
          "symbol": "tacdisp.c::draw_tactical_display_object_",
          "source": "E:\\apache\\source\\radar\\tacdisp.c",
          "first": "0x441df4",
          "second": "0x442174",
          "first_instruction_count": 91,
          "second_instruction_count": 91,
          "diff": [
            "--- 0x441df4",
            "+++ 0x442174",
            "@@ -6,9 +6,9 @@",
            " lea ebx,m4[None+eax*4+0x0]",
            " sub ebx,eax",
            " shl ebx,0x4",
            "-mov eax,m4[ebx+None*1+0x5adc28]",
            "-mov edi,m4[ebx+None*1+0x5adc44]",
            "-mov edx,m4[ebx+None*1+0x5adc2c]",
            "+mov eax,m4[ebx+None*1+0x5a0c38]",
            "+mov edi,m4[ebx+None*1+0x5a0c54]",
            "+mov edx,m4[ebx+None*1+0x5a0c3c]",
            " cmp edi,0x1",
            " jae local:26",
            " dec esi",
            "@@ -25,9 +25,9 @@",
            " pop ebx",
            " ret ",
            " ja local:37",
            "-mov ebx,m4[ebx+None*1+0x5adc4c]",
            "+mov ebx,m4[ebx+None*1+0x5a0c5c]",
            " mov bx,m2[ebx+None*1+0x0]",
            "-mov esi,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov esi,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " and ebx,0xffff",
            " mov esi,m4[esi+ebx*4+0x0]",
            " mov esi,m4[esi+None*1+0xb4]",
            "@@ -37,8 +37,8 @@",
            " jmp m4[None+esi*4+tacdisp.c::toggle_tactical_radar_range_+0x64]",
            " cmp edi,0x2",
            " jne local:13",
            "-mov ebx,m4[ebx+None*1+0x5adc4c]",
            "-mov esi,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ebx,m4[ebx+None*1+0x5a0c5c]",
            "+mov esi,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edi,m4[ebx+None*1+0x0]",
            " mov esi,m4[esi+edi*4+0x0]",
            " mov esi,m4[esi+None*1+0xb4]"
          ]
        },
        {
          "symbol": "tads.c::get_tads_target_",
          "source": "E:\\apache\\source\\avionics\\tads.c",
          "first": "0x4607e0",
          "second": "0x460980",
          "first_instruction_count": 821,
          "second_instruction_count": 821,
          "diff": [
            "--- 0x4607e0",
            "+++ 0x460980",
            "@@ -4,17 +4,17 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-mov ebp,m4[None+None*1+0x674a98]",
            "+mov ebp,m4[None+None*1+0x667aa8]",
            " mov edx,0xffffffff",
            " mov edi,m4[None+None*1+gamedata.c::_control_mode]",
            " xor ebx,ebx",
            "-mov m4[None+None*1+0x674a94],edx",
            "-mov m4[None+None*1+0x674aa0],ebx",
            "+mov m4[None+None*1+0x667aa4],edx",
            "+mov m4[None+None*1+0x667ab0],ebx",
            " mov m4[None+None*1+tads.c::_tads_target_symbol_valid],ebx",
            "-mov m4[None+None*1+0x674a8c],edx",
            "+mov m4[None+None*1+0x667a9c],edx",
            " test edi,edi",
            " je local:27",
            "-test m1[None+None*1+0x6748c5],0x20",
            "+test m1[None+None*1+0x6678d5],0x20",
            " je local:40",
            " cmp m4[None+None*1+tads.c::_tads_active],0x0",
            " je local:40",
            "@@ -22,10 +22,10 @@",
            " jne local:35",
            " xor eax,eax",
            " mov m4[None+None*1+target.c::_target_locked],eax",
            "-mov m4[None+None*1+0x674a44],eax",
            "+mov m4[None+None*1+0x667a54],eax",
            " mov m4[None+None*1+tads.c::_tads_active],eax",
            "-mov m4[None+None*1+0x5b3c6c],eax",
            "-mov ebp,m4[None+None*1+0x674a98]",
            "+mov m4[None+None*1+0x5a6c7c],eax",
            "+mov ebp,m4[None+None*1+0x667aa8]",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -52,12 +52,12 @@",
            " mov edx,m4[None+None*1+target.c::_target_locked]",
            " test edx,edx",
            " je local:357",
            "-mov edi,m4[None+None*1+0x5b3c6c]",
            "+mov edi,m4[None+None*1+0x5a6c7c]",
            " xor ebp,ebp",
            " cmp edi,0x2",
            " jne local:321",
            " mov esi,m4[None+None*1+tarscan.c::_number_of_mobile_targets]",
            "-mov m4[None+None*1+0x674a90],ebp",
            "+mov m4[None+None*1+0x667aa0],ebp",
            " test esi,esi",
            " jle local:86",
            " lea ebx,m4[None+esi*4+0x0]",
            "@@ -67,44 +67,44 @@",
            " sub ebx,edx",
            " test ebp,ebp",
            " jne local:86",
            "-mov ecx,m4[None+None*1+0x5b3c74]",
            "-cmp ecx,m4[eax+None*1+0x5b80b8]",
            "+mov ecx,m4[None+None*1+0x5a6c84]",
            "+cmp ecx,m4[eax+None*1+0x5ab0c8]",
            " jne local:80",
            " mov edx,m4[ecx+None*1+0x8]",
            " mov ecx,m4[edx+None*1+0x0]",
            " mov ebp,0x1",
            "-mov m4[None+None*1+0x5b3c5c],ecx",
            "+mov m4[None+None*1+0x5a6c6c],ecx",
            " mov ecx,m4[edx+None*1+0x4]",
            " mov edx,m4[edx+None*1+0x8]",
            "-mov m4[None+None*1+0x5b3c60],ecx",
            "-mov m4[None+None*1+0x5b3c64],edx",
            "-mov edi,m4[None+None*1+0x674a90]",
            "+mov m4[None+None*1+0x5a6c70],ecx",
            "+mov m4[None+None*1+0x5a6c74],edx",
            "+mov edi,m4[None+None*1+0x667aa0]",
            " inc edi",
            " add eax,0x1c",
            "-mov m4[None+None*1+0x674a90],edi",
            "+mov m4[None+None*1+0x667aa0],edi",
            " cmp eax,ebx",
            " jl local:67",
            "-mov m4[None+None*1+0x674a98],ebp",
            "+mov m4[None+None*1+0x667aa8],ebp",
            " test ebp,ebp",
            " je local:303",
            "-mov eax,m4[None+None*1+0x5b3c5c]",
            "+mov eax,m4[None+None*1+0x5a6c6c]",
            " sub eax,m4[None+None*1+views.c::_current_view_position]",
            "-mov esi,m4[None+None*1+0x674b78]",
            "-mov m4[None+None*1+0x674a70],eax",
            "-mov eax,m4[None+None*1+0x5b3c60]",
            "+mov esi,m4[None+None*1+0x667b88]",
            "+mov m4[None+None*1+0x667a80],eax",
            "+mov eax,m4[None+None*1+0x5a6c70]",
            " sub eax,esi",
            "-mov m4[None+None*1+0x674a74],eax",
            "+mov m4[None+None*1+0x667a84],eax",
            " mov eax,m4[None+None*1+model.c::_model_heading]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ecx,eax",
            " mov eax,m4[None+None*1+model.c::_model_heading]",
            " shr eax,0x13",
            " adc eax,0x0",
            " mov eax,m4[None+eax*4+trig.c::_sin_cos_table]",
            "-mov esi,m4[None+None*1+0x674a74]",
            "-mov ebx,m4[None+None*1+0x674a70]",
            "+mov esi,m4[None+None*1+0x667a84]",
            "+mov ebx,m4[None+None*1+0x667a80]",
            " mov edx,eax",
            " mov eax,esi",
            " imul edx",
            "@@ -117,17 +117,17 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,m4[None+None*1+model.c::_model_heading]",
            "-mov m4[None+None*1+0x674a68],edx",
            "+mov m4[None+None*1+0x667a78],edx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,eax",
            " mov eax,m4[None+None*1+model.c::_model_heading]",
            " shr eax,0x13",
            " adc eax,0x0",
            " mov eax,m4[None+eax*4+trig.c::_sin_cos_table]",
            "-mov ebx,m4[None+None*1+0x674a74]",
            "-mov esi,m4[None+None*1+0x674a70]",
            "+mov ebx,m4[None+None*1+0x667a84]",
            "+mov esi,m4[None+None*1+0x667a80]",
            " mov ecx,eax",
            " mov eax,ebx",
            " mov ebx,esi",
            "@@ -140,76 +140,76 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov m4[None+None*1+0x674a6c],edx",
            "+mov m4[None+None*1+0x667a7c],edx",
            " test edx,edx",
            " jle local:345",
            "-mov eax,m4[None+None*1+0x5b3c5c]",
            "+mov eax,m4[None+None*1+0x5a6c6c]",
            " sub eax,m4[None+None*1+views.c::_current_view_position]",
            "-mov ecx,m4[None+None*1+0x674b78]",
            "-mov m4[None+None*1+0x674a70],eax",
            "-mov eax,m4[None+None*1+0x5b3c60]",
            "+mov ecx,m4[None+None*1+0x667b88]",
            "+mov m4[None+None*1+0x667a80],eax",
            "+mov eax,m4[None+None*1+0x5a6c70]",
            " sub eax,ecx",
            "-mov ebx,m4[None+None*1+0x674b7c]",
            "-mov m4[None+None*1+0x674a74],eax",
            "-mov eax,m4[None+None*1+0x5b3c64]",
            "+mov ebx,m4[None+None*1+0x667b8c]",
            "+mov m4[None+None*1+0x667a84],eax",
            "+mov eax,m4[None+None*1+0x5a6c74]",
            " mov edi,0x1",
            " sub eax,ebx",
            "-mov ebx,m4[None+None*1+0x674a74]",
            "-mov m4[None+None*1+0x674a78],eax",
            "+mov ebx,m4[None+None*1+0x667a84]",
            "+mov m4[None+None*1+0x667a88],eax",
            " mov ecx,eax",
            "-mov eax,m4[None+None*1+0x674a70]",
            "-mov m4[None+None*1+0x674aa0],edi",
            "+mov eax,m4[None+None*1+0x667a80]",
            "+mov m4[None+None*1+0x667ab0],edi",
            " mov edx,m4[None+None*1+3dcore.c::_a_factors]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov ecx,m4[None+None*1+0x674a78]",
            "-mov ebx,m4[None+None*1+0x674a74]",
            "-mov eax,m4[None+None*1+0x674a70]",
            "-mov m4[None+None*1+0x674a7c],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov ecx,m4[None+None*1+0x674a78]",
            "-mov ebx,m4[None+None*1+0x674a74]",
            "-mov eax,m4[None+None*1+0x674a70]",
            "-mov m4[None+None*1+0x674a80],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xae972c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9730]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov ecx,m4[None+None*1+0x667a88]",
            "+mov ebx,m4[None+None*1+0x667a84]",
            "+mov eax,m4[None+None*1+0x667a80]",
            "+mov m4[None+None*1+0x667a8c],edx",
            "+mov edx,m4[None+None*1+0xae9734]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov ecx,m4[None+None*1+0x667a88]",
            "+mov ebx,m4[None+None*1+0x667a84]",
            "+mov eax,m4[None+None*1+0x667a80]",
            "+mov m4[None+None*1+0x667a90],edx",
            "+mov edx,m4[None+None*1+0xae9740]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -219,17 +219,17 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,edx",
            "-mov m4[None+None*1+0x674a84],edx",
            "+mov m4[None+None*1+0x667a94],edx",
            " mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            " imul edx",
            " shld edx,eax,0x5",
            " shl eax,0x6",
            " adc edx,0x0",
            "-mov esi,m4[None+None*1+0x674a80]",
            "-mov m4[None+None*1+0x674a84],edx",
            "+mov esi,m4[None+None*1+0x667a90]",
            "+mov m4[None+None*1+0x667a94],edx",
            " test esi,esi",
            " jle local:303",
            "-mov eax,m4[None+None*1+0x674a7c]",
            "+mov eax,m4[None+None*1+0x667a8c]",
            " mov ebx,esi",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            "@@ -255,9 +255,9 @@",
            " add eax,m4[None+None*1+3dcore.c::_viewport_x_min_3d]",
            " jmp local:257",
            " mov eax,0x80000000",
            "-mov ebx,m4[None+None*1+0x674a80]",
            "-mov m4[None+None*1+0x674a60],eax",
            "-mov eax,m4[None+None*1+0x674a84]",
            "+mov ebx,m4[None+None*1+0x667a90]",
            "+mov m4[None+None*1+0x667a70],eax",
            "+mov eax,m4[None+None*1+0x667a94]",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            " imul edx",
            "@@ -283,8 +283,8 @@",
            " sub edx,eax",
            " jmp local:285",
            " mov edx,0x80000000",
            "-mov edi,m4[None+None*1+0x674a60]",
            "-mov m4[None+None*1+0x674a64],edx",
            "+mov edi,m4[None+None*1+0x667a70]",
            "+mov m4[None+None*1+0x667a74],edx",
            " cmp edi,0x80000000",
            " je local:303",
            " cmp edx,0x80000000",
            "@@ -301,17 +301,17 @@",
            " mov eax,edi",
            " mov m4[None+None*1+tads.c::_tads_target_symbol_valid],ebx",
            " call ihadss.c::set_tads_ihadss_symbol_",
            "-mov esi,m4[None+None*1+0x674aa0]",
            "+mov esi,m4[None+None*1+0x667ab0]",
            " test esi,esi",
            " jne local:27",
            " mov ebx,0xc8",
            " mov eax,text:'TARGET LOST'",
            "-mov m4[None+None*1+0x5b3c6c],esi",
            "+mov m4[None+None*1+0x5a6c7c],esi",
            " mov m4[None+None*1+target.c::_target_locked],esi",
            " xor edx,edx",
            "-mov m4[None+None*1+0x674a44],esi",
            "+mov m4[None+None*1+0x667a54],esi",
            " call commspan.c::add_comms_panel_message_",
            "-mov ebp,m4[None+None*1+0x674a98]",
            "+mov ebp,m4[None+None*1+0x667aa8]",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -322,33 +322,33 @@",
            " cmp edi,0x1",
            " jne local:86",
            " mov ecx,m4[None+None*1+tarscan.c::_number_of_ground_targets]",
            "-mov m4[None+None*1+0x674a88],ebp",
            "+mov m4[None+None*1+0x667a98],ebp",
            " test ecx,ecx",
            " jle local:86",
            " mov edx,ecx",
            " shl ecx,0x2",
            "-mov esi,m4[None+None*1+0x5b3c74]",
            "+mov esi,m4[None+None*1+0x5a6c84]",
            " add ecx,edx",
            " xor eax,eax",
            " shl ecx,0x2",
            " test ebp,ebp",
            " jne local:86",
            "-cmp esi,m4[eax+None*1+0x5b3cb0]",
            "+cmp esi,m4[eax+None*1+0x5a6cc0]",
            " jne local:338",
            " mov ebp,0x1",
            "-mov ebx,m4[None+None*1+0x674a88]",
            "+mov ebx,m4[None+None*1+0x667a98]",
            " inc ebx",
            " add eax,0x14",
            "-mov m4[None+None*1+0x674a88],ebx",
            "+mov m4[None+None*1+0x667a98],ebx",
            " cmp eax,ecx",
            " jl local:333",
            " jmp local:86",
            "-mov eax,m4[None+None*1+0x674a68]",
            "+mov eax,m4[None+None*1+0x667a78]",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            " mov ecx,eax",
            "-mov eax,m4[None+None*1+0x674a6c]",
            "+mov eax,m4[None+None*1+0x667a7c]",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            "@@ -357,254 +357,254 @@",
            " jmp local:303",
            " mov ecx,0x100000",
            " mov esi,m4[None+None*1+tarscan.c::_number_of_ground_targets]",
            "-mov m4[None+None*1+0x674a88],edx",
            "-mov m4[None+None*1+0x674a9c],ecx",
            "+mov m4[None+None*1+0x667a98],edx",
            "+mov m4[None+None*1+0x667aac],ecx",
            " test esi,esi",
            " jle local:482",
            "-imul eax,m4[None+None*1+0x674a88],0x14",
            "-mov edx,m4[eax+None*1+0x5b3ca8]",
            "-mov eax,m4[eax+None*1+0x5b3cac]",
            "-mov m4[None+None*1+0x674a70],edx",
            "-mov m4[None+None*1+0x674a74],eax",
            "+imul eax,m4[None+None*1+0x667a98],0x14",
            "+mov edx,m4[eax+None*1+0x5a6cb8]",
            "+mov eax,m4[eax+None*1+0x5a6cbc]",
            "+mov m4[None+None*1+0x667a80],edx",
            "+mov m4[None+None*1+0x667a84],eax",
            " mov edx,eax",
            "-mov eax,m4[None+None*1+0x674a70]",
            "-call fxterr.c::get_terrain_elevation_",
            "-mov edx,m4[None+None*1+0x674b7c]",
            "-mov ebx,m4[None+None*1+0x674a70]",
            "-sub eax,edx",
            "-mov esi,m4[None+None*1+0x674a74]",
            "-mov m4[None+None*1+0x674a78],eax",
            "+mov eax,m4[None+None*1+0x667a80]",
            "+call terrain.c::get_terrain_elevation_",
            "+mov edx,m4[None+None*1+0x667b8c]",
            "+mov ebx,m4[None+None*1+0x667a80]",
            "+sub eax,edx",
            "+mov esi,m4[None+None*1+0x667a84]",
            "+mov m4[None+None*1+0x667a88],eax",
            " mov eax,m4[None+None*1+views.c::_current_view_position]",
            "-mov ecx,m4[None+None*1+0x674a78]",
            "+mov ecx,m4[None+None*1+0x667a88]",
            " sub ebx,eax",
            "-mov eax,m4[None+None*1+0x674b78]",
            "-mov m4[None+None*1+0x674a70],ebx",
            "+mov eax,m4[None+None*1+0x667b88]",
            "+mov m4[None+None*1+0x667a80],ebx",
            " sub esi,eax",
            "-mov eax,m4[None+None*1+0x674a70]",
            "+mov eax,m4[None+None*1+0x667a80]",
            " mov ebx,esi",
            "-mov m4[None+None*1+0x674a74],esi",
            "+mov m4[None+None*1+0x667a84],esi",
            " mov edx,m4[None+None*1+3dcore.c::_a_factors]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov ecx,m4[None+None*1+0x674a78]",
            "-mov ebx,m4[None+None*1+0x674a74]",
            "-mov eax,m4[None+None*1+0x674a70]",
            "-mov m4[None+None*1+0x674a7c],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov ecx,m4[None+None*1+0x674a78]",
            "-mov ebx,m4[None+None*1+0x674a74]",
            "-mov eax,m4[None+None*1+0x674a70]",
            "-mov m4[None+None*1+0x674a80],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov edi,m4[None+None*1+0x674a80]",
            "-mov m4[None+None*1+0x674a84],edx",
            "+mov eax,m4[None+None*1+0xae972c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9730]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov ecx,m4[None+None*1+0x667a88]",
            "+mov ebx,m4[None+None*1+0x667a84]",
            "+mov eax,m4[None+None*1+0x667a80]",
            "+mov m4[None+None*1+0x667a8c],edx",
            "+mov edx,m4[None+None*1+0xae9734]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov ecx,m4[None+None*1+0x667a88]",
            "+mov ebx,m4[None+None*1+0x667a84]",
            "+mov eax,m4[None+None*1+0x667a80]",
            "+mov m4[None+None*1+0x667a90],edx",
            "+mov edx,m4[None+None*1+0xae9740]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov edi,m4[None+None*1+0x667a90]",
            "+mov m4[None+None*1+0x667a94],edx",
            " test edi,edi",
            " jle local:476",
            "-mov eax,m4[None+None*1+0x674a7c]",
            "+mov eax,m4[None+None*1+0x667a8c]",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            " mov ecx,eax",
            "-mov eax,m4[None+None*1+0x674a84]",
            "-cdq ",
            "-xor eax,edx",
            "-sub eax,edx",
            "-mov edx,m4[None+None*1+0x674a9c]",
            "+mov eax,m4[None+None*1+0x667a94]",
            "+cdq ",
            "+xor eax,edx",
            "+sub eax,edx",
            "+mov edx,m4[None+None*1+0x667aac]",
            " add eax,ecx",
            " cmp eax,edx",
            " jge local:476",
            "-mov eax,m4[None+None*1+0x674a7c]",
            "+mov eax,m4[None+None*1+0x667a8c]",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            " mov ecx,eax",
            "-mov eax,m4[None+None*1+0x674a84]",
            "+mov eax,m4[None+None*1+0x667a94]",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            " add ecx,eax",
            "-mov eax,m4[None+None*1+0x674a88]",
            "-mov m4[None+None*1+0x674a9c],ecx",
            "+mov eax,m4[None+None*1+0x667a98]",
            "+mov m4[None+None*1+0x667aac],ecx",
            " mov ecx,0x1",
            "-mov m4[None+None*1+0x674a8c],eax",
            "-mov m4[None+None*1+0x674aa0],ecx",
            "-mov esi,m4[None+None*1+0x674a88]",
            "+mov m4[None+None*1+0x667a9c],eax",
            "+mov m4[None+None*1+0x667ab0],ecx",
            "+mov esi,m4[None+None*1+0x667a98]",
            " inc esi",
            " mov edi,m4[None+None*1+tarscan.c::_number_of_ground_targets]",
            "-mov m4[None+None*1+0x674a88],esi",
            "+mov m4[None+None*1+0x667a98],esi",
            " cmp esi,edi",
            " jl local:363",
            " xor eax,eax",
            " mov edx,m4[None+None*1+tarscan.c::_number_of_mobile_targets]",
            "-mov m4[None+None*1+0x674a90],eax",
            "+mov m4[None+None*1+0x667aa0],eax",
            " test edx,edx",
            " jle local:600",
            "-imul eax,m4[None+None*1+0x674a90],0x1c",
            "+imul eax,m4[None+None*1+0x667aa0],0x1c",
            " mov ebx,m4[None+None*1+views.c::_current_view_position]",
            "-mov edx,m4[eax+None*1+0x5b80a8]",
            "-mov esi,m4[None+None*1+0x674b78]",
            "+mov edx,m4[eax+None*1+0x5ab0b8]",
            "+mov esi,m4[None+None*1+0x667b88]",
            " sub edx,ebx",
            "-mov edi,m4[None+None*1+0x674b7c]",
            "-mov m4[None+None*1+0x674a70],edx",
            "-mov edx,m4[eax+None*1+0x5b80ac]",
            "-mov eax,m4[eax+None*1+0x5b80b0]",
            "+mov edi,m4[None+None*1+0x667b8c]",
            "+mov m4[None+None*1+0x667a80],edx",
            "+mov edx,m4[eax+None*1+0x5ab0bc]",
            "+mov eax,m4[eax+None*1+0x5ab0c0]",
            " sub edx,esi",
            " sub eax,edi",
            " mov ebx,edx",
            "-mov m4[None+None*1+0x674a78],eax",
            "+mov m4[None+None*1+0x667a88],eax",
            " mov ecx,eax",
            "-mov eax,m4[None+None*1+0x674a70]",
            "-mov m4[None+None*1+0x674a74],edx",
            "+mov eax,m4[None+None*1+0x667a80]",
            "+mov m4[None+None*1+0x667a84],edx",
            " mov edx,m4[None+None*1+3dcore.c::_a_factors]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov ecx,m4[None+None*1+0x674a78]",
            "-mov ebx,m4[None+None*1+0x674a74]",
            "-mov eax,m4[None+None*1+0x674a70]",
            "-mov m4[None+None*1+0x674a7c],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov ecx,m4[None+None*1+0x674a78]",
            "-mov ebx,m4[None+None*1+0x674a74]",
            "-mov eax,m4[None+None*1+0x674a70]",
            "-mov m4[None+None*1+0x674a80],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov eax,m4[None+None*1+0x674a80]",
            "-mov m4[None+None*1+0x674a84],edx",
            "+mov eax,m4[None+None*1+0xae972c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9730]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov ecx,m4[None+None*1+0x667a88]",
            "+mov ebx,m4[None+None*1+0x667a84]",
            "+mov eax,m4[None+None*1+0x667a80]",
            "+mov m4[None+None*1+0x667a8c],edx",
            "+mov edx,m4[None+None*1+0xae9734]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov ecx,m4[None+None*1+0x667a88]",
            "+mov ebx,m4[None+None*1+0x667a84]",
            "+mov eax,m4[None+None*1+0x667a80]",
            "+mov m4[None+None*1+0x667a90],edx",
            "+mov edx,m4[None+None*1+0xae9740]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov eax,m4[None+None*1+0x667a90]",
            "+mov m4[None+None*1+0x667a94],edx",
            " test eax,eax",
            " jle local:594",
            "-mov eax,m4[None+None*1+0x674a7c]",
            "+mov eax,m4[None+None*1+0x667a8c]",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            " mov ecx,eax",
            "-mov eax,m4[None+None*1+0x674a84]",
            "-cdq ",
            "-xor eax,edx",
            "-sub eax,edx",
            "-mov edx,m4[None+None*1+0x674a9c]",
            "+mov eax,m4[None+None*1+0x667a94]",
            "+cdq ",
            "+xor eax,edx",
            "+sub eax,edx",
            "+mov edx,m4[None+None*1+0x667aac]",
            " add eax,ecx",
            " cmp eax,edx",
            " jge local:594",
            "-mov eax,m4[None+None*1+0x674a7c]",
            "+mov eax,m4[None+None*1+0x667a8c]",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            " mov ecx,eax",
            "-mov eax,m4[None+None*1+0x674a84]",
            "+mov eax,m4[None+None*1+0x667a94]",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            " add ecx,eax",
            "-mov eax,m4[None+None*1+0x674a90]",
            "-mov m4[None+None*1+0x674a9c],ecx",
            "+mov eax,m4[None+None*1+0x667aa0]",
            "+mov m4[None+None*1+0x667aac],ecx",
            " mov ecx,0x1",
            "-mov m4[None+None*1+0x674a94],eax",
            "-mov m4[None+None*1+0x674aa0],ecx",
            "-mov ebx,m4[None+None*1+0x674a90]",
            "+mov m4[None+None*1+0x667aa4],eax",
            "+mov m4[None+None*1+0x667ab0],ecx",
            "+mov ebx,m4[None+None*1+0x667aa0]",
            " inc ebx",
            " mov esi,m4[None+None*1+tarscan.c::_number_of_mobile_targets]",
            "-mov m4[None+None*1+0x674a90],ebx",
            "+mov m4[None+None*1+0x667aa0],ebx",
            " cmp ebx,esi",
            " jl local:487",
            "-mov edi,m4[None+None*1+0x674aa0]",
            "-mov ebp,m4[None+None*1+0x674a98]",
            "+mov edi,m4[None+None*1+0x667ab0]",
            "+mov ebp,m4[None+None*1+0x667aa8]",
            " test edi,edi",
            " je local:778",
            " xor eax,eax",
            "-mov edx,m4[None+None*1+0x674a94]",
            "-mov m4[None+None*1+0x674aa0],eax",
            "+mov edx,m4[None+None*1+0x667aa4]",
            "+mov m4[None+None*1+0x667ab0],eax",
            " cmp edx,0xffffffff",
            " je local:787",
            " lea eax,m4[None+edx*4+0x0]",
            "@@ -612,81 +612,81 @@",
            " shl eax,0x3",
            " sub eax,edx",
            " mov ecx,m4[None+None*1+views.c::_current_view_position]",
            "-mov edx,m4[eax+None*1+0x5b80a8]",
            "+mov edx,m4[eax+None*1+0x5ab0b8]",
            " sub edx,ecx",
            "-mov ebx,m4[None+None*1+0x674b78]",
            "-mov m4[None+None*1+0x674a70],edx",
            "-mov edx,m4[eax+None*1+0x5b80ac]",
            "+mov ebx,m4[None+None*1+0x667b88]",
            "+mov m4[None+None*1+0x667a80],edx",
            "+mov edx,m4[eax+None*1+0x5ab0bc]",
            " sub edx,ebx",
            "-mov esi,m4[None+None*1+0x674b7c]",
            "-mov m4[None+None*1+0x674a74],edx",
            "-mov edx,m4[eax+None*1+0x5b80b0]",
            "+mov esi,m4[None+None*1+0x667b8c]",
            "+mov m4[None+None*1+0x667a84],edx",
            "+mov edx,m4[eax+None*1+0x5ab0c0]",
            " sub edx,esi",
            "-mov m4[None+None*1+0x674a78],edx",
            "-mov edx,m4[eax+None*1+0x5b80a8]",
            "+mov m4[None+None*1+0x667a88],edx",
            "+mov edx,m4[eax+None*1+0x5ab0b8]",
            " mov edi,0x2",
            "-mov m4[None+None*1+0x674a34],edx",
            "-mov edx,m4[eax+None*1+0x5b80ac]",
            "-mov m4[None+None*1+0x674a44],edi",
            "-mov m4[None+None*1+0x674a38],edx",
            "-mov edx,m4[eax+None*1+0x5b80b0]",
            "-mov eax,m4[eax+None*1+0x5b80b8]",
            "-mov m4[None+None*1+0x674a3c],edx",
            "-mov m4[None+None*1+0x674a4c],eax",
            "-mov ecx,m4[None+None*1+0x674a78]",
            "-mov ebx,m4[None+None*1+0x674a74]",
            "-mov eax,m4[None+None*1+0x674a70]",
            "+mov m4[None+None*1+0x667a44],edx",
            "+mov edx,m4[eax+None*1+0x5ab0bc]",
            "+mov m4[None+None*1+0x667a54],edi",
            "+mov m4[None+None*1+0x667a48],edx",
            "+mov edx,m4[eax+None*1+0x5ab0c0]",
            "+mov eax,m4[eax+None*1+0x5ab0c8]",
            "+mov m4[None+None*1+0x667a4c],edx",
            "+mov m4[None+None*1+0x667a5c],eax",
            "+mov ecx,m4[None+None*1+0x667a88]",
            "+mov ebx,m4[None+None*1+0x667a84]",
            "+mov eax,m4[None+None*1+0x667a80]",
            " mov edx,m4[None+None*1+3dcore.c::_a_factors]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov ecx,m4[None+None*1+0x674a78]",
            "-mov ebx,m4[None+None*1+0x674a74]",
            "-mov eax,m4[None+None*1+0x674a70]",
            "-mov m4[None+None*1+0x674a7c],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul edx",
            "-add eax,ebx",
            "-adc edx,ecx",
            "-add eax,esi",
            "-adc edx,edi",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov ecx,m4[None+None*1+0x674a78]",
            "-mov ebx,m4[None+None*1+0x674a74]",
            "-mov eax,m4[None+None*1+0x674a70]",
            "-mov m4[None+None*1+0x674a80],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xae972c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9730]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov ecx,m4[None+None*1+0x667a88]",
            "+mov ebx,m4[None+None*1+0x667a84]",
            "+mov eax,m4[None+None*1+0x667a80]",
            "+mov m4[None+None*1+0x667a8c],edx",
            "+mov edx,m4[None+None*1+0xae9734]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9738]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae973c]",
            "+imul edx",
            "+add eax,ebx",
            "+adc edx,ecx",
            "+add eax,esi",
            "+adc edx,edi",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+mov ecx,m4[None+None*1+0x667a88]",
            "+mov ebx,m4[None+None*1+0x667a84]",
            "+mov eax,m4[None+None*1+0x667a80]",
            "+mov m4[None+None*1+0x667a90],edx",
            "+mov edx,m4[None+None*1+0xae9740]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xae9744]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xae9748]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -696,15 +696,15 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,edx",
            "-mov m4[None+None*1+0x674a84],edx",
            "+mov m4[None+None*1+0x667a94],edx",
            " mov edx,m4[None+None*1+3dcore.c::_scale_z_eye]",
            " imul edx",
            " shld edx,eax,0x5",
            " shl eax,0x6",
            " adc edx,0x0",
            "-mov ebx,m4[None+None*1+0x674a80]",
            "-mov eax,m4[None+None*1+0x674a7c]",
            "-mov m4[None+None*1+0x674a84],edx",
            "+mov ebx,m4[None+None*1+0x667a90]",
            "+mov eax,m4[None+None*1+0x667a8c]",
            "+mov m4[None+None*1+0x667a94],edx",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_width_3d]",
            " imul edx",
            "@@ -729,9 +729,9 @@",
            " add eax,m4[None+None*1+3dcore.c::_viewport_x_min_3d]",
            " jmp local:731",
            " mov eax,0x80000000",
            "-mov ebx,m4[None+None*1+0x674a80]",
            "-mov m4[None+None*1+0x674a60],eax",
            "-mov eax,m4[None+None*1+0x674a84]",
            "+mov ebx,m4[None+None*1+0x667a90]",
            "+mov m4[None+None*1+0x667a70],eax",
            "+mov eax,m4[None+None*1+0x667a94]",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            " imul edx",
            "@@ -757,8 +757,8 @@",
            " sub edx,eax",
            " jmp local:759",
            " mov edx,0x80000000",
            "-mov eax,m4[None+None*1+0x674a60]",
            "-mov m4[None+None*1+0x674a64],edx",
            "+mov eax,m4[None+None*1+0x667a70]",
            "+mov m4[None+None*1+0x667a74],edx",
            " cmp eax,0x80000000",
            " je local:775",
            " cmp edx,0x80000000",
            "@@ -776,8 +776,8 @@",
            " mov edi,m4[None+None*1+tads.c::_tads_target_symbol_valid]",
            " test edi,edi",
            " jne local:27",
            "-mov m4[None+None*1+0x674a44],edi",
            "-mov ebp,m4[None+None*1+0x674a98]",
            "+mov m4[None+None*1+0x667a54],edi",
            "+mov ebp,m4[None+None*1+0x667aa8]",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -785,37 +785,37 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov edx,m4[None+None*1+0x674a8c]",
            "+mov edx,m4[None+None*1+0x667a9c]",
            " lea eax,m4[None+edx*4+0x0]",
            " add eax,edx",
            "-mov edx,m4[None+eax*4+0x5b3ca8]",
            "-mov eax,m4[None+eax*4+0x5b3cac]",
            "-mov m4[None+None*1+0x674a70],edx",
            "-mov m4[None+None*1+0x674a74],eax",
            "+mov edx,m4[None+eax*4+0x5a6cb8]",
            "+mov eax,m4[None+eax*4+0x5a6cbc]",
            "+mov m4[None+None*1+0x667a80],edx",
            "+mov m4[None+None*1+0x667a84],eax",
            " mov edx,eax",
            "-mov eax,m4[None+None*1+0x674a70]",
            "+mov eax,m4[None+None*1+0x667a80]",
            " mov esi,0x1",
            "-call fxterr.c::get_terrain_elevation_",
            "-mov edx,m4[None+None*1+0x674b7c]",
            "+call terrain.c::get_terrain_elevation_",
            "+mov edx,m4[None+None*1+0x667b8c]",
            " xor edi,edi",
            " sub eax,edx",
            "-mov ecx,m4[None+None*1+0x674a70]",
            "-mov m4[None+None*1+0x674a78],eax",
            "+mov ecx,m4[None+None*1+0x667a80]",
            "+mov m4[None+None*1+0x667a88],eax",
            " mov eax,m4[None+None*1+views.c::_current_view_position]",
            "-mov ebx,m4[None+None*1+0x674a74]",
            "+mov ebx,m4[None+None*1+0x667a84]",
            " sub ecx,eax",
            "-mov eax,m4[None+None*1+0x674b78]",
            "-mov edx,m4[None+None*1+0x674a8c]",
            "+mov eax,m4[None+None*1+0x667b88]",
            "+mov edx,m4[None+None*1+0x667a9c]",
            " sub ebx,eax",
            " lea eax,m4[None+edx*4+0x0]",
            "-mov m4[None+None*1+0x674a44],esi",
            "+mov m4[None+None*1+0x667a54],esi",
            " add eax,edx",
            "-mov m4[None+None*1+0x674a3c],edi",
            "-mov m4[None+None*1+0x674a70],ecx",
            "-mov edx,m4[None+eax*4+0x5b3ca8]",
            "-mov m4[None+None*1+0x674a74],ebx",
            "-mov m4[None+None*1+0x674a34],edx",
            "-mov edx,m4[None+eax*4+0x5b3cac]",
            "-mov eax,m4[None+eax*4+0x5b3cb0]",
            "-mov m4[None+None*1+0x674a38],edx",
            "+mov m4[None+None*1+0x667a4c],edi",
            "+mov m4[None+None*1+0x667a80],ecx",
            "+mov edx,m4[None+eax*4+0x5a6cb8]",
            "+mov m4[None+None*1+0x667a84],ebx",
            "+mov m4[None+None*1+0x667a44],edx",
            "+mov edx,m4[None+eax*4+0x5a6cbc]",
            "+mov eax,m4[None+eax*4+0x5a6cc0]",
            "+mov m4[None+None*1+0x667a48],edx",
            " jmp local:634"
          ]
        },
        {
          "symbol": "takeoff.c::exit_from_help_screen_back_to_game_",
          "source": "E:\\apache\\source\\menus\\takeoff.c",
          "first": "0x410538",
          "second": "0x410898",
          "first_instruction_count": 24,
          "second_instruction_count": 31,
          "diff": [
            "--- 0x410538",
            "+++ 0x410898",
            "@@ -10,7 +10,7 @@",
            " mov eax,m4[None+None*1+gamedata.c::_game_video_card]",
            " call initgfx.c::initialise_graphics_library_",
            " test eax,eax",
            "-je takeoff.c::register_help_keys_+0x1",
            "+je local:25",
            " call cockpits.c::initialise_cockpit_palette_",
            " call 3dpal.c::initialise_3d_palette_",
            " mov edx,0x1",
            "@@ -22,3 +22,10 @@",
            " pop edx",
            " pop ecx",
            " pop ebx",
            "+ret ",
            "+push 0x1fe",
            "+push text:'\\\\apache\\\\source\\\\menus\\\\takeoff.c'",
            "+push text:'Graphics mode not available.'",
            "+call debuglog.c::debug_log_fatal_long_",
            "+add esp,0xc",
            "+jmp local:13"
          ]
        },
        {
          "symbol": "takeoff.c::game_thread_",
          "source": "E:\\apache\\source\\menus\\takeoff.c",
          "first": "0x410004",
          "second": "0x410364",
          "first_instruction_count": 216,
          "second_instruction_count": 216,
          "diff": [
            "--- 0x410004",
            "+++ 0x410364",
            "@@ -54,7 +54,7 @@",
            " ja local:56",
            " jmp m4[None+eax*4+modemprf.c::disable_modem_messages_+0x20]",
            " call links.c::general_send_init_sync_",
            "-call fxgloop.c::game_loop_",
            "+call gameloop.c::game_loop_",
            " call initgame.c::deinitialise_game_",
            " call key.c::pop_keyboard_",
            " mov edx,0x1"
          ]
        },
        {
          "symbol": "takeoff.c::register_help_keys_",
          "source": "E:\\apache\\source\\menus\\takeoff.c",
          "first": "0x410584",
          "second": "0x410900",
          "first_instruction_count": 1,
          "second_instruction_count": 6,
          "diff": [
            "--- 0x410584",
            "+++ 0x410900",
            "@@ -1 +1,6 @@",
            "+push edx",
            "+mov edx,takeoff.c::do_help_in_game_",
            "+mov eax,0x3b",
            "+call key.c::register_key_",
            "+pop edx",
            " ret "
          ]
        },
        {
          "symbol": "target.c::auto_target_toggle_",
          "source": "E:\\apache\\source\\radar\\target.c",
          "first": "0x441fb4",
          "second": "0x442334",
          "first_instruction_count": 31,
          "second_instruction_count": 31,
          "diff": [
            "--- 0x441fb4",
            "+++ 0x442334",
            "@@ -5,7 +5,7 @@",
            " mov ecx,m4[None+None*1+target.c::_auto_target]",
            " test ecx,ecx",
            " je local:21",
            "-test m1[None+None*1+0x6748c5],0x20",
            "+test m1[None+None*1+0x6678d5],0x20",
            " je local:12",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "target.c::broken_targeting_system_",
          "source": "E:\\apache\\source\\radar\\target.c",
          "first": "0x44228c",
          "second": "0x44260c",
          "first_instruction_count": 10,
          "second_instruction_count": 10,
          "diff": [
            "--- 0x44228c",
            "+++ 0x44260c",
            "@@ -2,7 +2,7 @@",
            " push text:'NO TARGET'",
            " xor edx,edx",
            " push target.c::_current_target_name",
            "-mov m4[None+None*1+0x5b3c6c],edx",
            "+mov m4[None+None*1+0x5a6c7c],edx",
            " mov m4[None+None*1+target.c::_target_locked],edx",
            " call sprintf::sprintf_",
            " add esp,0x8"
          ]
        },
        {
          "symbol": "target.c::initialise_targetting_system_",
          "source": "E:\\apache\\source\\radar\\target.c",
          "first": "0x441f10",
          "second": "0x442290",
          "first_instruction_count": 19,
          "second_instruction_count": 19,
          "diff": [
            "--- 0x441f10",
            "+++ 0x442290",
            "@@ -8,7 +8,7 @@",
            " mov m4[None+None*1+tads.c::_tads_active],ecx",
            " mov m4[None+None*1+target.c::_auto_target],edx",
            " mov m4[None+None*1+target.c::_target_locked],edx",
            "-mov m4[None+None*1+0x5b3c6c],edx",
            "+mov m4[None+None*1+0x5a6c7c],edx",
            " call sprintf::sprintf_",
            " add esp,0x8",
            " mov edx,target.c::lock_current_target_toggle_"
          ]
        },
        {
          "symbol": "target.c::lock_current_target_toggle_",
          "source": "E:\\apache\\source\\radar\\target.c",
          "first": "0x4422b0",
          "second": "0x442630",
          "first_instruction_count": 54,
          "second_instruction_count": 54,
          "diff": [
            "--- 0x4422b0",
            "+++ 0x442630",
            "@@ -3,7 +3,7 @@",
            " push esi",
            " push ebp",
            " mov edx,eax",
            "-test m1[None+None*1+0x6748c5],0x20",
            "+test m1[None+None*1+0x6678d5],0x20",
            " jne local:16",
            " mov eax,m4[None+None*1+gamedata.c::_control_mode]",
            " test eax,eax",
            "@@ -12,7 +12,7 @@",
            " je local:21",
            " cmp m4[None+None*1+target.c::_target_locked],0x0",
            " jne local:39",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " jne local:27",
            " pop ebp",
            " pop esi",
            "@@ -37,7 +37,7 @@",
            " pop edx",
            " pop ebx",
            " ret ",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "+cmp m4[None+None*1+0x5a6c7c],0x0",
            " je local:16",
            " xor ebx,ebx",
            " mov esi,m4[None+None*1+target.c::_previous_tads]"
          ]
        },
        {
          "symbol": "target.c::update_target_",
          "source": "E:\\apache\\source\\radar\\target.c",
          "first": "0x442018",
          "second": "0x442398",
          "first_instruction_count": 175,
          "second_instruction_count": 175,
          "diff": [
            "--- 0x442018",
            "+++ 0x442398",
            "@@ -23,21 +23,21 @@",
            " and cl,0x3",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            "-mov eax,m4[None+None*1+0x5b3c6c]",
            "+mov eax,m4[None+None*1+0x5a6c7c]",
            " cmp eax,0x1",
            " jne local:162",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            " mov ax,m2[eax+None*1+0x0]",
            " and eax,0xffff",
            " lea ecx,m4[None+eax*4+0x0]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ecx+eax*1+0x0]",
            " add eax,0x48",
            " push eax",
            " push text:'TGT: %s'",
            " push target.c::_current_target_name",
            " call sprintf::sprintf_",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            " mov cx,m2[eax+None*1+0xa]",
            " add esp,0xc",
            " xor ch,ch",
            "@@ -48,10 +48,10 @@",
            " mov m4[None+None*1+target.c::_local_status],ecx",
            " and eax,0xffff",
            " mov m4[None+None*1+target.c::_local_object_number],eax",
            "-mov ecx,m4[None+None*1+0x5b3c6c]",
            "+mov ecx,m4[None+None*1+0x5a6c7c]",
            " cmp ecx,0x1",
            " jne local:140",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            " test m1[eax+None*1+0xb],0x8",
            " je local:140",
            " mov m4[None+None*1+target.c::_current_target_lazer],ecx",
            "@@ -64,7 +64,7 @@",
            " ret ",
            " push text:'NO TARGET'",
            " push target.c::_current_target_name",
            "-mov m4[None+None*1+0x5b3c6c],edx",
            "+mov m4[None+None*1+0x5a6c7c],edx",
            " mov m4[None+None*1+target.c::_target_locked],edx",
            " call sprintf::sprintf_",
            " add esp,0x8",
            "@@ -80,7 +80,7 @@",
            " mov ecx,m4[None+None*1+tgtlist.c::_radar_list]",
            " test ecx,ecx",
            " je local:88",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            " cmp eax,m4[ecx+None*1+0x2c]",
            " je local:88",
            " mov ecx,m4[ecx+None*1+0x0]",
            "@@ -131,13 +131,13 @@",
            " jmp local:17",
            " cmp m4[None+None*1+target.c::_target_locked],0x0",
            " jne local:25",
            "-mov ebp,m4[None+None*1+0x674a44]",
            "+mov ebp,m4[None+None*1+0x667a54]",
            " cmp ebp,0x1",
            " jne local:153",
            "-mov eax,m4[None+None*1+0x674a4c]",
            "+mov eax,m4[None+None*1+0x667a5c]",
            " test m1[eax+None*1+0xa],0x1",
            " je local:149",
            "-mov m4[None+None*1+0x5b3c6c],ebx",
            "+mov m4[None+None*1+0x5a6c7c],ebx",
            " xor esi,esi",
            " mov m4[None+None*1+target.c::_current_target_lazer],esi",
            " pop ebp",
            "@@ -153,7 +153,7 @@",
            " jmp local:17",
            " cmp ebp,0x2",
            " jne local:158",
            "-mov eax,m4[None+None*1+0x674a4c]",
            "+mov eax,m4[None+None*1+0x667a5c]",
            " test m1[eax+None*1+0x40],0x1",
            " jne local:139",
            " mov ecx,0x30",
            "@@ -162,8 +162,8 @@",
            " jmp local:17",
            " cmp eax,0x2",
            " jne local:50",
            "-mov eax,m4[None+None*1+0x5b3c74]",
            "-mov ecx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+0x5a6c84]",
            "+mov ecx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[eax+None*1+0x0]",
            " mov eax,m4[ecx+eax*4+0x0]",
            " add eax,0x48"
          ]
        },
        {
          "symbol": "targets.c::get_next_target_slot_",
          "source": "E:\\apache\\source\\weapons\\targets.c",
          "first": "0x44e278",
          "second": "0x44e5f8",
          "first_instruction_count": 59,
          "second_instruction_count": 59,
          "diff": [
            "--- 0x44e278",
            "+++ 0x44e5f8",
            "@@ -14,7 +14,7 @@",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            " shl eax,0x4",
            "-mov esi,m4[eax+None*1+0x63dc44]",
            "+mov esi,m4[eax+None*1+0x630c54]",
            " inc edx",
            " test esi,esi",
            " je local:51",
            "@@ -29,7 +29,7 @@",
            " sub ecx,ebx",
            " xor eax,eax",
            " shl ecx,0x4",
            "-mov edi,m4[eax+None*1+0x63dc44]",
            "+mov edi,m4[eax+None*1+0x630c54]",
            " inc edx",
            " test edi,edi",
            " je local:51"
          ]
        },
        {
          "symbol": "targets.c::get_target_classification_",
          "source": "E:\\apache\\source\\weapons\\targets.c",
          "first": "0x44dacc",
          "second": "0x44de4c",
          "first_instruction_count": 90,
          "second_instruction_count": 90,
          "diff": [
            "--- 0x44dacc",
            "+++ 0x44de4c",
            "@@ -67,7 +67,7 @@",
            " ret ",
            " mov edx,m4[ecx+None*1+0x18]",
            " mov eax,m4[ecx+None*1+0x14]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " cmp eax,m4[ecx+None*1+0x1c]",
            " jne local:55",
            " mov m4[ecx+None*1+0x28],0x1"
          ]
        },
        {
          "symbol": "targets.c::get_target_heading_vector_",
          "source": "E:\\apache\\source\\weapons\\targets.c",
          "first": "0x44d638",
          "second": "0x44d9b8",
          "first_instruction_count": 68,
          "second_instruction_count": 68,
          "diff": [
            "--- 0x44d638",
            "+++ 0x44d9b8",
            "@@ -24,7 +24,7 @@",
            " and eax,0xffff",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[edx+None*1+0x8],0x0",
            " mov m4[edx+None*1+0x4],eax",
            " mov eax,0x1"
          ]
        },
        {
          "symbol": "targets.c::get_target_name_",
          "source": "E:\\apache\\source\\weapons\\targets.c",
          "first": "0x44dff8",
          "second": "0x44e378",
          "first_instruction_count": 65,
          "second_instruction_count": 65,
          "diff": [
            "--- 0x44dff8",
            "+++ 0x44e378",
            "@@ -13,14 +13,14 @@",
            " mov ax,m2[eax+None*1+0x0]",
            " and eax,0xffff",
            " lea edx,m4[None+eax*4+0x0]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[edx+eax*1+0x0]",
            " add eax,0x58",
            " pop ecx",
            " ret ",
            " mov eax,m4[ecx+None*1+0x2c]",
            " mov dx,m2[eax+None*1+0x0]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[eax+edx*4+0x0]",
            " add eax,0x48",
            " pop ecx",
            "@@ -37,7 +37,7 @@",
            " test edx,edx",
            " je local:50",
            " mov eax,m4[ecx+None*1+0x2c]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[eax+None*1+0x0]",
            " mov eax,m4[edx+eax*4+0x0]",
            " add eax,0x58",
            "@@ -49,7 +49,7 @@",
            " call multidr.c::user_name_for_drone_",
            " jmp local:34",
            " mov eax,m4[ecx+None*1+0x2c]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[eax+None*1+0x0]",
            " mov eax,m4[edx+eax*4+0x0]",
            " add eax,0x48"
          ]
        },
        {
          "symbol": "tarscan.c::scan_target_lists_",
          "source": "E:\\apache\\source\\radar\\tarscan.c",
          "first": "0x442350",
          "second": "0x4426d0",
          "first_instruction_count": 374,
          "second_instruction_count": 374,
          "diff": [
            "--- 0x442350",
            "+++ 0x4426d0",
            "@@ -118,7 +118,7 @@",
            " test ah,0x6",
            " je local:115",
            " xor eax,eax",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ax,m2[ecx+None*1+0x0]",
            " mov eax,m4[edx+eax*4+0x0]",
            " cmp m4[eax+None*1+0xb4],0x0",
            "@@ -137,7 +137,7 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x4],edx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,esp",
            " mov m4[esp+None*1+0x8],eax",
            " lea eax,m4[esp+None*1+0xc]",
            "@@ -201,7 +201,7 @@",
            " test dh,0x6",
            " je local:198",
            " xor eax,eax",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ax,m2[ecx+None*1+0x0]",
            " mov eax,m4[edx+eax*4+0x0]",
            " cmp m4[eax+None*1+0xb4],0x0",
            "@@ -220,7 +220,7 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x4],edx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,esp",
            " mov m4[esp+None*1+0x8],eax",
            " lea eax,m4[esp+None*1+0xc]",
            "@@ -255,7 +255,7 @@",
            " je local:326",
            " cmp ecx,m4[None+None*1+model.c::_model_3d]",
            " je local:326",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ecx+None*1+0x0]",
            " mov eax,m4[edx+eax*4+0x0]",
            " cmp m4[eax+None*1+0xb4],0x0",
            "@@ -330,7 +330,7 @@",
            " jne local:300",
            " cmp m4[ecx+None*1+0x38],0x2",
            " jne local:300",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[ecx+None*1+0x0]",
            " mov eax,m4[edx+eax*4+0x0]",
            " cmp m4[eax+None*1+0xb4],0x0"
          ]
        },
        {
          "symbol": "tellwnt::tell_",
          "source": "tellwnt",
          "first": "0x4cd218",
          "second": "0x4c0636",
          "first_instruction_count": 34,
          "second_instruction_count": 34,
          "diff": [
            "--- 0x4cd218",
            "+++ 0x4c0636",
            "@@ -20,7 +20,7 @@",
            " push 0x0",
            " push 0x0",
            " push edx",
            "-call m4[None+None*1+constant:904f0d00]",
            "+call m4[None+None*1+constant:7e7e0c00]",
            " mov edx,eax",
            " mov eax,ebx",
            " call m4[None+None*1+mainwnt::__ReleaseFileH]"
          ]
        },
        {
          "symbol": "tgtlist.c::get_target_filter_level_",
          "source": "E:\\apache\\source\\radar\\tgtlist.c",
          "first": "0x442c4c",
          "second": "0x442fcc",
          "first_instruction_count": 23,
          "second_instruction_count": 23,
          "diff": [
            "--- 0x442c4c",
            "+++ 0x442fcc",
            "@@ -1,5 +1,5 @@",
            " push edx",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[edx+eax*4+0x0]",
            " mov eax,m4[eax+None*1+0x9c]",
            " cmp eax,0x7530"
          ]
        },
        {
          "symbol": "tgtlist.c::get_target_priority_",
          "source": "E:\\apache\\source\\radar\\tgtlist.c",
          "first": "0x44290c",
          "second": "0x442c8c",
          "first_instruction_count": 183,
          "second_instruction_count": 183,
          "diff": [
            "--- 0x44290c",
            "+++ 0x442c8c",
            "@@ -29,7 +29,7 @@",
            " mov eax,m4[eax+None*1+0x3c]",
            " mov eax,m4[eax+None*1+0x1c4]",
            " and eax,0x1",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edx,m4[edx+ecx*4+0x0]",
            " cmp m4[edx+None*1+0xb4],0x0",
            " je local:145",
            "@@ -41,7 +41,7 @@",
            " mov eax,m4[None+None*1+model.c::_model_heading]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ecx,eax",
            " mov eax,m4[None+None*1+model.c::_model_heading]",
            " mov ebx,ebp",
            "@@ -67,7 +67,7 @@",
            " mov eax,m4[None+None*1+model.c::_model_heading]",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,eax",
            " mov eax,m4[None+None*1+model.c::_model_heading]",
            " mov ebx,ebp"
          ]
        },
        {
          "symbol": "thread.c::_start_thread@4",
          "source": "E:\\library\\system\\thread.c",
          "first": "0x4802a0",
          "second": "0x47e440",
          "first_instruction_count": 41,
          "second_instruction_count": 41,
          "diff": [
            "--- 0x4802a0",
            "+++ 0x47e440",
            "@@ -1,7 +1,7 @@",
            " push ebx",
            " push esi",
            " push ebp",
            "-call m4[None+None*1+constant:e24c0d00]",
            "+call m4[None+None*1+constant:c07b0c00]",
            " mov esi,m4[None+None*1+thread.c::_thread]",
            " mov ebx,eax",
            " mov ecx,eax",
            "@@ -25,7 +25,7 @@",
            " push 0xffffffff",
            " mov ebp,m4[eax+None*1+constant:00000000]",
            " push ebp",
            "-call m4[None+None*1+constant:96500d00]",
            "+call m4[None+None*1+constant:967f0c00]",
            " call m4[esp+None*1+0x10]",
            " call thread.c::end_thread_",
            " xor eax,eax"
          ]
        },
        {
          "symbol": "thread.c::_thread_controller@4",
          "source": "E:\\library\\system\\thread.c",
          "first": "0x480324",
          "second": "0x47e4c4",
          "first_instruction_count": 66,
          "second_instruction_count": 66,
          "diff": [
            "--- 0x480324",
            "+++ 0x47e4c4",
            "@@ -9,7 +9,7 @@",
            " push 0xffffffff",
            " mov esi,m4[eax+None*1+constant:00000000]",
            " push esi",
            "-call m4[None+None*1+constant:96500d00]",
            "+call m4[None+None*1+constant:967f0c00]",
            " imul eax,m4[None+None*1+thread.c::_current_thread],0xd0",
            " mov ebp,m4[None+None*1+thread.c::_thread_rescheduled]",
            " test ebp,ebp",
            "@@ -18,7 +18,7 @@",
            " jne local:21",
            " mov ecx,m4[eax+None*1+constant:00000000]",
            " push ecx",
            "-call m4[None+None*1+constant:d84a0d00]",
            "+call m4[None+None*1+constant:a0790c00]",
            " xor eax,eax",
            " call thread.asm::do_reschedule_",
            " xor ebx,ebx",
            "@@ -27,7 +27,7 @@",
            " test esi,esi",
            " jne local:32",
            " push 0x64",
            "-call m4[None+None*1+constant:00500d00]",
            "+call m4[None+None*1+constant:ee7e0c00]",
            " cmp m4[None+None*1+start.c::_application_active],0x0",
            " je local:28",
            " mov ebx,m4[None+None*1+thread.c::_end_threading]",
            "@@ -40,9 +40,9 @@",
            " push 0x1",
            " mov edi,m4[eax+None*1+constant:00000000]",
            " push edi",
            "-call m4[None+None*1+constant:c64e0d00]",
            "+call m4[None+None*1+constant:b47d0c00]",
            " push ebx",
            "-call m4[None+None*1+constant:00500d00]",
            "+call m4[None+None*1+constant:ee7e0c00]",
            " cmp m4[None+None*1+thread.c::_end_threading],0x0",
            " je local:7",
            " add esp,0x4",
            "@@ -56,9 +56,9 @@",
            " push 0x1",
            " mov edi,m4[eax+None*1+constant:00000000]",
            " push edi",
            "-call m4[None+None*1+constant:c64e0d00]",
            "+call m4[None+None*1+constant:b47d0c00]",
            " push ebp",
            "-call m4[None+None*1+constant:00500d00]",
            "+call m4[None+None*1+constant:ee7e0c00]",
            " imul eax,m4[None+None*1+thread.c::_current_thread],0xd0",
            " push 0xffffffff",
            " mov edx,m4[eax+None*1+constant:00000000]"
          ]
        },
        {
          "symbol": "thread.c::create_system_thread_",
          "source": "E:\\library\\system\\thread.c",
          "first": "0x47fb24",
          "second": "0x47dcc4",
          "first_instruction_count": 97,
          "second_instruction_count": 97,
          "diff": [
            "--- 0x47fb24",
            "+++ 0x47dcc4",
            "@@ -2,9 +2,9 @@",
            " push edx",
            " push esi",
            " sub esp,0x4",
            "-call m4[None+None*1+constant:b84c0d00]",
            "+call m4[None+None*1+constant:967b0c00]",
            " push eax",
            "-call m4[None+None*1+constant:c84d0d00]",
            "+call m4[None+None*1+constant:a67c0c00]",
            " mov eax,esp",
            " push eax",
            " push 0x4",
            "@@ -12,7 +12,7 @@",
            " push thread.c::_thread_controller@4",
            " push 0x0",
            " push 0x0",
            "-call m4[None+None*1+constant:184b0d00]",
            "+call m4[None+None*1+constant:f6790c00]",
            " mov edx,m4[None+None*1+thread.c::_thread]",
            " mov esi,eax",
            " mov m4[None+None*1+thread.c::_thread_controller_id],eax",
            "@@ -20,7 +20,7 @@",
            " jne local:87",
            " push edi",
            " push ebx",
            "-call m4[None+None*1+constant:e24c0d00]",
            "+call m4[None+None*1+constant:c07b0c00]",
            " push 0x2",
            " push 0x0",
            " mov m4[None+None*1+thread.c::_thread],eax",
            "@@ -28,15 +28,15 @@",
            " push 0x0",
            " add eax,0x4",
            " push eax",
            "-call m4[None+None*1+constant:b84c0d00]",
            "+call m4[None+None*1+constant:967b0c00]",
            " push eax",
            "-call m4[None+None*1+constant:f84c0d00]",
            "+call m4[None+None*1+constant:d67b0c00]",
            " push eax",
            "-call m4[None+None*1+constant:b84c0d00]",
            "+call m4[None+None*1+constant:967b0c00]",
            " push eax",
            " mov ebx,0x10",
            " xor edi,edi",
            "-call m4[None+None*1+constant:664b0d00]",
            "+call m4[None+None*1+constant:447a0c00]",
            " mov ecx,0x64",
            " mov eax,thread.c::_thread",
            " mov edx,text:'System'",
            "@@ -63,7 +63,7 @@",
            " xor ah,ah",
            " push edi",
            " mov m1[None+None*1+constant:00],ah",
            "-call m4[None+None*1+constant:044b0d00]",
            "+call m4[None+None*1+constant:e2790c00]",
            " mov ebx,m4[None+None*1+thread.c::_number_of_threads]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov m4[None+None*1+thread.c::_current_thread],edi",
            "@@ -71,7 +71,7 @@",
            " jg local:72",
            " mov m4[None+None*1+thread.c::_number_of_threads],0x1",
            " push esi",
            "-call m4[None+None*1+constant:ee4e0d00]",
            "+call m4[None+None*1+constant:dc7d0c00]",
            " xor ebx,ebx",
            " mov edx,thread.c::idle_thread_",
            " mov eax,text:'Idle'"
          ]
        },
        {
          "symbol": "thread.c::create_thread_",
          "source": "E:\\library\\system\\thread.c",
          "first": "0x47fcf0",
          "second": "0x47de90",
          "first_instruction_count": 95,
          "second_instruction_count": 95,
          "diff": [
            "--- 0x47fcf0",
            "+++ 0x47de90",
            "@@ -10,13 +10,13 @@",
            " push thread.c::_start_thread@4",
            " push 0x0",
            " push 0x0",
            "-call m4[None+None*1+constant:184b0d00]",
            "+call m4[None+None*1+constant:f6790c00]",
            " push 0x0",
            " xor edi,edi",
            " push eax",
            " xor esi,esi",
            " mov m4[esp+None*1+0x10],eax",
            "-call m4[None+None*1+constant:c24f0d00]",
            "+call m4[None+None*1+constant:b07e0c00]",
            " mov edx,m4[esi+None*1+thread.c::_thread]",
            " lea ebp,m4[edi+None*1+0x1]",
            " test edx,edx",
            "@@ -74,14 +74,14 @@",
            " xor ah,ah",
            " push ecx",
            " mov m1[esi+None*1+constant:00],ah",
            "-call m4[None+None*1+constant:044b0d00]",
            "+call m4[None+None*1+constant:e2790c00]",
            " mov m4[esi+None*1+constant:00000000],eax",
            " cmp edi,m4[None+None*1+thread.c::_number_of_threads]",
            " jl local:81",
            " mov m4[None+None*1+thread.c::_number_of_threads],ebp",
            " mov ebp,m4[esp+None*1+0x8]",
            " push ebp",
            "-call m4[None+None*1+constant:ee4e0d00]",
            "+call m4[None+None*1+constant:dc7d0c00]",
            " lea eax,m4[None+edi*4+0x0]",
            " sub eax,edi",
            " shl eax,0x2"
          ]
        },
        {
          "symbol": "thread.c::end_system_thread_",
          "source": "E:\\library\\system\\thread.c",
          "first": "0x47ff70",
          "second": "0x47e110",
          "first_instruction_count": 54,
          "second_instruction_count": 54,
          "diff": [
            "--- 0x47ff70",
            "+++ 0x47e110",
            "@@ -5,7 +5,7 @@",
            " push edi",
            " sub esp,0x4",
            " mov esi,m4[None+None*1+thread.c::_number_of_threads]",
            "-call m4[None+None*1+constant:e24c0d00]",
            "+call m4[None+None*1+constant:c07b0c00]",
            " mov ecx,0xffffffff",
            " mov ebx,eax",
            " xor esi,esi",
            "@@ -25,7 +25,7 @@",
            " cmp ecx,0xffffffff",
            " jne local:38",
            " push 0x0",
            "-call m4[None+None*1+constant:9e4b0d00]",
            "+call m4[None+None*1+constant:7c7a0c00]",
            " mov esi,m4[None+None*1+thread.c::_number_of_threads]",
            " add esp,0x4",
            " pop edi",
            "@@ -50,5 +50,5 @@",
            " mov ebx,m4[eax+None*1+constant:00000000]",
            " push ebx",
            " mov m4[None+None*1+thread.c::_thread_rescheduled],ecx",
            "-call m4[None+None*1+constant:c64e0d00]",
            "+call m4[None+None*1+constant:b47d0c00]",
            " jmp local:26"
          ]
        },
        {
          "symbol": "thread.c::end_thread_",
          "source": "E:\\library\\system\\thread.c",
          "first": "0x47fef0",
          "second": "0x47e090",
          "first_instruction_count": 41,
          "second_instruction_count": 41,
          "diff": [
            "--- 0x47fef0",
            "+++ 0x47e090",
            "@@ -1,7 +1,7 @@",
            " push ecx",
            " push edx",
            " sub esp,0x4",
            "-call m4[None+None*1+constant:e24c0d00]",
            "+call m4[None+None*1+constant:c07b0c00]",
            " xor edx,edx",
            " mov ecx,m4[None+None*1+thread.c::_current_thread]",
            " mov m4[None+None*1+thread.c::_number_of_threads],edx",
            "@@ -29,7 +29,7 @@",
            " push edi",
            " push ecx",
            " mov m4[None+None*1+thread.c::_thread_rescheduled],edi",
            "-call m4[None+None*1+constant:c64e0d00]",
            "+call m4[None+None*1+constant:b47d0c00]",
            " pop ebx",
            " pop edi",
            " add esp,0x4"
          ]
        },
        {
          "symbol": "thread.c::kill_all_threads_",
          "source": "E:\\library\\system\\thread.c",
          "first": "0x4804d4",
          "second": "0x47e674",
          "first_instruction_count": 18,
          "second_instruction_count": 18,
          "diff": [
            "--- 0x4804d4",
            "+++ 0x47e674",
            "@@ -14,5 +14,5 @@",
            " push 0x0",
            " mov ecx,m4[ebx+None*1+constant:00000000]",
            " push ecx",
            "-call m4[None+None*1+constant:08500d00]",
            "+call m4[None+None*1+constant:f67e0c00]",
            " jmp local:6"
          ]
        },
        {
          "symbol": "thread.c::yield_",
          "source": "E:\\library\\system\\thread.c",
          "first": "0x47fe5c",
          "second": "0x47dffc",
          "first_instruction_count": 28,
          "second_instruction_count": 28,
          "diff": [
            "--- 0x47fe5c",
            "+++ 0x47dffc",
            "@@ -14,13 +14,13 @@",
            " push 0x1",
            " mov edi,m4[ebx+None*1+constant:00000000]",
            " push edi",
            "-call m4[None+None*1+constant:c64e0d00]",
            "+call m4[None+None*1+constant:b47d0c00]",
            " push esi",
            "-call m4[None+None*1+constant:00500d00]",
            "+call m4[None+None*1+constant:ee7e0c00]",
            " push 0xffffffff",
            " mov ebp,m4[ebx+None*1+constant:00000000]",
            " push ebp",
            "-call m4[None+None*1+constant:96500d00]",
            "+call m4[None+None*1+constant:967f0c00]",
            " cmp esi,m4[None+None*1+thread.c::_thread_rescheduled]",
            " jne local:12",
            " mov eax,eax"
          ]
        },
        {
          "symbol": "thredwnt::__CBeginThread_",
          "source": "thredwnt",
          "first": "0x4d27d3",
          "second": "0x4c5c5b",
          "first_instruction_count": 69,
          "second_instruction_count": 69,
          "diff": [
            "--- 0x4d27d3",
            "+++ 0x4c5c5b",
            "@@ -14,7 +14,7 @@",
            " call mthread::__InitMultipleThread_",
            " mov m4[esp+None*1+0x20],ecx",
            " mov m4[esp+None*1+0x24],ebx",
            "-call m4[None+None*1+constant:f84c0d00]",
            "+call m4[None+None*1+constant:d67b0c00]",
            " mov m4[esp+None*1+0x28],eax",
            " mov eax,ds",
            " mov edi,esp",
            "@@ -24,7 +24,7 @@",
            " movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            " movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            " movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            "-call m4[None+None*1+constant:e24c0d00]",
            "+call m4[None+None*1+constant:c07b0c00]",
            " lea edx,m4[esp+None*1+0x8]",
            " call itoa::itoa_",
            " mov eax,esp",
            "@@ -32,7 +32,7 @@",
            " push 0x0",
            " push 0x0",
            " push 0x0",
            "-call m4[None+None*1+constant:e64a0d00]",
            "+call m4[None+None*1+constant:ae790c00]",
            " mov m4[esp+None*1+0x2c],eax",
            " lea eax,m4[esp+None*1+0x34]",
            " mov m4[esp+None*1+0x30],eax",
            "@@ -46,7 +46,7 @@",
            " and ebp,0xfffff000",
            " push ebp",
            " push 0x0",
            "-call m4[None+None*1+constant:184b0d00]",
            "+call m4[None+None*1+constant:f6790c00]",
            " mov m4[esp+None*1+0x34],eax",
            " test eax,eax",
            " jne local:54",
            "@@ -55,10 +55,10 @@",
            " push 0xffffffff",
            " mov ebx,m4[esp+None*1+0x30]",
            " push ebx",
            "-call m4[None+None*1+constant:96500d00]",
            "+call m4[None+None*1+constant:967f0c00]",
            " mov esi,m4[esp+None*1+0x2c]",
            " push esi",
            "-call m4[None+None*1+constant:d84a0d00]",
            "+call m4[None+None*1+constant:a0790c00]",
            " mov eax,m4[esp+None*1+0x34]",
            " add esp,0x3c",
            " pop ebp"
          ]
        },
        {
          "symbol": "thredwnt::__CEndThread_",
          "source": "thredwnt",
          "first": "0x4d28ac",
          "second": "0x4c5d34",
          "first_instruction_count": 13,
          "second_instruction_count": 13,
          "diff": [
            "--- 0x4d28ac",
            "+++ 0x4c5d34",
            "@@ -7,7 +7,7 @@",
            " mov eax,0x1",
            " call mthread::__NTRemoveThread_",
            " push 0x0",
            "-call m4[None+None*1+constant:9e4b0d00]",
            "+call m4[None+None*1+constant:7c7a0c00]",
            " pop edx",
            " pop ecx",
            " ret "
          ]
        },
        {
          "symbol": "thredwnt::_begin_thread_helper",
          "source": "thredwnt",
          "first": "0x4d272c",
          "second": "0x4c5bb4",
          "first_instruction_count": 58,
          "second_instruction_count": 58,
          "diff": [
            "--- 0x4d272c",
            "+++ 0x4c5bb4",
            "@@ -33,14 +33,14 @@",
            " jne local:37",
            " mov ecx,m4[ebp+None*1+0xfffffffc]",
            " push ecx",
            "-call m4[None+None*1+constant:d84a0d00]",
            "+call m4[None+None*1+constant:a0790c00]",
            " jmp local:49",
            " mov ebx,m4[ebp+None*1+0xfffffffc]",
            " call m4[None+None*1+mainwnt::___GetThreadPtr]",
            " mov m4[eax+None*1+0xde],ebx",
            " mov ebx,m4[esi+None*1+0xc]",
            " push ebx",
            "-call m4[None+None*1+constant:844f0d00]",
            "+call m4[None+None*1+constant:727e0c00]",
            " lea eax,m4[ebp+None*1+0xfffffff0]",
            " call excptwnt::__NewExceptionHandler_",
            " call m4[None+None*1+mainwnt::___sig_init_rtn]"
          ]
        },
        {
          "symbol": "timer.c::clock_",
          "source": "E:\\library\\system\\timer.c",
          "first": "0x480554",
          "second": "0x47e6f4",
          "first_instruction_count": 3,
          "second_instruction_count": 3,
          "diff": [
            "--- 0x480554",
            "+++ 0x47e6f4",
            "@@ -1,3 +1,3 @@",
            "-mov eax,m4[None+None*1+0x744bc0]",
            "+mov eax,m4[None+None*1+0x72f690]",
            " add eax,eax",
            " ret "
          ]
        },
        {
          "symbol": "timer.c::fast_clock_",
          "source": "E:\\library\\system\\timer.c",
          "first": "0x48051c",
          "second": "0x47e6bc",
          "first_instruction_count": 28,
          "second_instruction_count": 28,
          "diff": [
            "--- 0x48051c",
            "+++ 0x47e6bc",
            "@@ -3,7 +3,7 @@",
            " push edx",
            " mov al,0xc2",
            " mov edx,0x43",
            "-mov ebx,m4[None+None*1+0x744bc0]",
            "+mov ebx,m4[None+None*1+0x72f690]",
            " out dx,al",
            " mov edx,0x40",
            " sub eax,eax"
          ]
        },
        {
          "symbol": "timeutil::__isindst_",
          "source": "timeutil",
          "first": "0x4cecc8",
          "second": "0x4c2138",
          "first_instruction_count": 233,
          "second_instruction_count": 233,
          "diff": [
            "--- 0x4cecc8",
            "+++ 0x4c2138",
            "@@ -6,7 +6,7 @@",
            " push ebp",
            " sub esp,0x1c",
            " mov ecx,eax",
            "-mov eax,m4[None+None*1+constant:bd6d5000]",
            "+mov eax,m4[None+None*1+constant:c99b4f00]",
            " mov dl,m1[eax+None*1+0x0]",
            " xor edi,edi",
            " test dl,dl"
          ]
        },
        {
          "symbol": "tline.asm::_draw_translucent_line",
          "source": "\\library\\graphics\\tline.asm",
          "first": "0x4c4fa0",
          "second": "0x4b856c",
          "first_instruction_count": 162,
          "second_instruction_count": 162,
          "diff": [
            "--- 0x4c4fa0",
            "+++ 0x4b856c",
            "@@ -13,7 +13,7 @@",
            " or ebp,0x1",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            "-jmp m4[None+ebp*4+constant:f74f4c00]",
            "+jmp m4[None+ebp*4+constant:c3854b00]",
            " mov ecx,edx",
            " inc ecx",
            " mov ebx,edx"
          ]
        },
        {
          "symbol": "tmpfl::__GetTmpPath_",
          "source": "tmpfl",
          "first": "0x4ccf75",
          "second": "0x4c0394",
          "first_instruction_count": 82,
          "second_instruction_count": 82,
          "diff": [
            "--- 0x4ccf75",
            "+++ 0x4c0394",
            "@@ -5,7 +5,7 @@",
            " push edi",
            " cmp m1[None+None*1+constant:00],0x0",
            " jne local:75",
            "-mov ebx,text:'8cN'",
            "+mov ebx,data:10924d0014924d0019924d0020924d00",
            " jmp local:31",
            " call getenv::getenv_",
            " mov edx,eax"
          ]
        },
        {
          "symbol": "topten.c::enter_score_name_",
          "source": "E:\\apache\\source\\menus\\topten.c",
          "first": "0x4108d4",
          "second": "0x410c54",
          "first_instruction_count": 39,
          "second_instruction_count": 39,
          "diff": [
            "--- 0x4108d4",
            "+++ 0x410c54",
            "@@ -14,7 +14,7 @@",
            " test esi,esi",
            " jne local:20",
            " xor dl,dl",
            "-mov m1[eax+None*1+0x518fe4],dl",
            "+mov m1[eax+None*1+0x50bff4],dl",
            " pop esi",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "topten.c::notify_topten_name_text_",
          "source": "E:\\apache\\source\\menus\\topten.c",
          "first": "0x4109c0",
          "second": "0x410d40",
          "first_instruction_count": 192,
          "second_instruction_count": 192,
          "diff": [
            "--- 0x4109c0",
            "+++ 0x410d40",
            "@@ -74,7 +74,7 @@",
            " lea ecx,m4[None+eax*8+0x0]",
            " add ecx,eax",
            " xor ah,ah",
            "-mov m1[None+ecx*4+0x518fe4],ah",
            "+mov m1[None+ecx*4+0x50bff4],ah",
            " call topten.c::do_top_ten_",
            " add esp,0x4",
            " pop edi",
            "@@ -127,7 +127,7 @@",
            " call utext.c::set_object_text_",
            " jmp local:115",
            " xor dh,dh",
            "-mov m1[ecx+None*1+0x518fe4],dh",
            "+mov m1[ecx+None*1+0x50bff4],dh",
            " call topten.c::do_top_ten_",
            " add esp,0x4",
            " pop edi",
            "@@ -172,7 +172,7 @@",
            " pop ebx",
            " ret ",
            " xor dl,dl",
            "-mov m1[ecx+None*1+0x518fe4],dl",
            "+mov m1[ecx+None*1+0x50bff4],dl",
            " jmp local:160",
            " mov eax,m4[None+None*1+object.c::_keyboard_object]",
            " mov m1[esp+None*1+0x0],dl",
            "@@ -182,7 +182,7 @@",
            " call utext.c::set_object_text_",
            " jmp local:33",
            " xor al,al",
            "-mov m1[ecx+None*1+0x518fe4],al",
            "+mov m1[ecx+None*1+0x50bff4],al",
            " call topten.c::do_top_ten_",
            " add esp,0x4",
            " pop edi"
          ]
        },
        {
          "symbol": "topten.c::record_quick_start_score_",
          "source": "E:\\apache\\source\\menus\\topten.c",
          "first": "0x4106a4",
          "second": "0x410a24",
          "first_instruction_count": 60,
          "second_instruction_count": 60,
          "diff": [
            "--- 0x4106a4",
            "+++ 0x410a24",
            "@@ -14,7 +14,7 @@",
            " mov esi,0x28",
            " mov edi,0xa",
            " mov edx,0xffffffff",
            "-mov eax,m4[esi+None*1+0x518174]",
            "+mov eax,m4[esi+None*1+0x50b164]",
            " call uoaccess.c::set_object_text_selected_line_",
            " mov eax,m4[ecx+None*1+topten.c::_hi_score_table]",
            " cmp ebp,eax"
          ]
        },
        {
          "symbol": "trdlist::__GetThreadData_",
          "source": "trdlist",
          "first": "0x4d0021",
          "second": "0x4c34a9",
          "first_instruction_count": 22,
          "second_instruction_count": 22,
          "diff": [
            "--- 0x4d0021",
            "+++ 0x4c34a9",
            "@@ -8,7 +8,7 @@",
            " je local:12",
            " mov edx,m4[None+None*1+mainwnt::___TlsIndex]",
            " push edx",
            "-call m4[None+None*1+constant:30500d00]",
            "+call m4[None+None*1+constant:1e7f0c00]",
            " mov ebx,eax",
            " test ebx,ebx",
            " jne local:17"
          ]
        },
        {
          "symbol": "trdlist::__ReallocThreadData_",
          "source": "trdlist",
          "first": "0x4d005a",
          "second": "0x4c34e2",
          "first_instruction_count": 71,
          "second_instruction_count": 71,
          "diff": [
            "--- 0x4d005a",
            "+++ 0x4c34e2",
            "@@ -5,7 +5,7 @@",
            " push edi",
            " push ebp",
            " call m4[None+None*1+mainwnt::__AccessTDList]",
            "-call m4[None+None*1+constant:e24c0d00]",
            "+call m4[None+None*1+constant:c07b0c00]",
            " mov ebx,m4[None+None*1+trdlist::___thread_data_list]",
            " mov ebp,eax",
            " jmp local:14",
            "@@ -59,7 +59,7 @@",
            " mov m1[ebp+None*1+0x53],0x0",
            " push esi",
            " mov m4[ebp+None*1+0xf0],eax",
            "-call m4[None+None*1+constant:3e500d00]",
            "+call m4[None+None*1+constant:2c7f0c00]",
            " call m4[None+None*1+mainwnt::__ReleaseTDList]",
            " mov eax,ebp",
            " pop ebp"
          ]
        },
        {
          "symbol": "trig.c::initialise_trig_tables_",
          "source": "E:\\library\\maths\\trig.c",
          "first": "0x476940",
          "second": "0x474ae0",
          "first_instruction_count": 175,
          "second_instruction_count": 175,
          "diff": [
            "--- 0x476940",
            "+++ 0x474ae0",
            "@@ -25,7 +25,7 @@",
            " fistp m4[esp+None*1+0x0]",
            " mov eax,m4[esp+None*1+0x0]",
            " inc edx",
            "-mov m4[ecx+None*1+0x729330],eax",
            "+mov m4[ecx+None*1+0x713e00],eax",
            " cmp edx,0x2801",
            " jl local:16",
            " fstp st(0)",
            "@@ -57,7 +57,7 @@",
            " fistp m4[esp+None*1+0x0]",
            " mov eax,m4[esp+None*1+0x0]",
            " inc edx",
            "-mov m4[ecx+None*1+0x733334],eax",
            "+mov m4[ecx+None*1+0x71de04],eax",
            " cmp edx,0x2001",
            " jl local:48",
            " fstp st(0)",
            "@@ -89,7 +89,7 @@",
            " fistp m4[esp+None*1+0x0]",
            " mov eax,m4[esp+None*1+0x0]",
            " inc edx",
            "-mov m4[ecx+None*1+0x73b338],eax",
            "+mov m4[ecx+None*1+0x725e08],eax",
            " cmp edx,0x2001",
            " jl local:80",
            " fstp st(0)",
            "@@ -122,7 +122,7 @@",
            " fistp m4[esp+None*1+0x0]",
            " mov eax,m4[esp+None*1+0x0]",
            " inc edx",
            "-mov m4[ecx+None*1+0x72532c],eax",
            "+mov m4[ecx+None*1+0x70fdfc],eax",
            " cmp edx,0x1001",
            " jl local:112",
            " fstp st(0)"
          ]
        },
        {
          "symbol": "txtdline.asm::_draw_textured_dline",
          "source": "\\library\\graphics\\txtdline.asm",
          "first": "0x4c511c",
          "second": "0x4b86e8",
          "first_instruction_count": 57,
          "second_instruction_count": 57,
          "diff": [
            "--- 0x4c511c",
            "+++ 0x4b86e8",
            "@@ -10,7 +10,7 @@",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            " inc edx",
            "-jmp m4[None+ebp*4+constant:40514c00]",
            "+jmp m4[None+ebp*4+constant:0c874b00]",
            " mov ebx,m4[None+None*1+screen.c::_screen_y_inc]",
            " inc ebx",
            " mov ecx,m4[None+None*1+linetext.asm::_line_texture]"
          ]
        },
        {
          "symbol": "txtline.asm::_draw_textured_line",
          "source": "\\library\\graphics\\txtline.asm",
          "first": "0x4c51e0",
          "second": "0x4b87ac",
          "first_instruction_count": 155,
          "second_instruction_count": 155,
          "diff": [
            "--- 0x4c51e0",
            "+++ 0x4b87ac",
            "@@ -13,7 +13,7 @@",
            " or ebp,0x1",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            "-jmp m4[None+ebp*4+constant:38524c00]",
            "+jmp m4[None+ebp*4+constant:04884b00]",
            " mov ecx,edx",
            " inc ecx",
            " mov ebx,edx"
          ]
        },
        {
          "symbol": "txttline.asm::_draw_textured_translucent_line",
          "source": "\\library\\graphics\\txttline.asm",
          "first": "0x4c5368",
          "second": "0x4b8934",
          "first_instruction_count": 194,
          "second_instruction_count": 194,
          "diff": [
            "--- 0x4c5368",
            "+++ 0x4b8934",
            "@@ -13,7 +13,7 @@",
            " or ebp,0x1",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            "-jmp m4[None+ebp*4+constant:d3534c00]",
            "+jmp m4[None+ebp*4+constant:9f894b00]",
            " mov ecx,edx",
            " inc ecx",
            " mov ebx,edx"
          ]
        },
        {
          "symbol": "txtxline.asm::_draw_textured_xored_line",
          "source": "\\library\\graphics\\txtxline.asm",
          "first": "0x4c55cc",
          "second": "0x4b8b98",
          "first_instruction_count": 163,
          "second_instruction_count": 163,
          "diff": [
            "--- 0x4c55cc",
            "+++ 0x4b8b98",
            "@@ -13,7 +13,7 @@",
            " or ebp,0x1",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            "-jmp m4[None+ebp*4+constant:26564c00]",
            "+jmp m4[None+ebp*4+constant:f28b4b00]",
            " mov ecx,edx",
            " inc ecx",
            " mov ebx,edx"
          ]
        },
        {
          "symbol": "tzset::tryOSTimeZone_",
          "source": "tzset",
          "first": "0x4cf130",
          "second": "0x4c25a0",
          "first_instruction_count": 70,
          "second_instruction_count": 70,
          "diff": [
            "--- 0x4cf130",
            "+++ 0x4c25a0",
            "@@ -13,7 +13,7 @@",
            " or dh,0x2",
            " push eax",
            " mov m1[None+None*1+tzset::_tzFlag],dh",
            "-call m4[None+None*1+constant:fe4d0d00]",
            "+call m4[None+None*1+constant:dc7c0c00]",
            " cmp eax,0x1",
            " jb local:64",
            " jbe local:32"
          ]
        },
        {
          "symbol": "umap.c::notify_map_screen_",
          "source": "E:\\apache\\source\\menus\\maps\\umap.c",
          "first": "0x4183ec",
          "second": "0x41876c",
          "first_instruction_count": 1043,
          "second_instruction_count": 1043,
          "diff": [
            "--- 0x4183ec",
            "+++ 0x41876c",
            "@@ -76,13 +76,13 @@",
            " call umapdraw.c::initialise_map_2d_viewport_",
            " lea ecx,m4[esp+None*1+0x8]",
            " lea ebx,m4[esp+None*1+0x4]",
            "-mov edx,m4[None+None*1+0x535178]",
            "-mov eax,m4[None+None*1+0x535174]",
            "+mov edx,m4[None+None*1+0x528188]",
            "+mov eax,m4[None+None*1+0x528184]",
            " call 2dcore.c::get_2d_world_coords_",
            " call umapzoom.c::push_zoom_stack_",
            " mov edx,m4[esp+None*1+0x8]",
            " mov eax,m4[esp+None*1+0x4]",
            "-mov ebx,m4[None+None*1+0x53517c]",
            "+mov ebx,m4[None+None*1+0x52818c]",
            " call umapzoom.c::set_map_place_",
            " call repaint.c::remove_rubber_box_",
            " xor eax,eax",
            "@@ -125,16 +125,16 @@",
            " ja local:12",
            " jmp m4[None+eax*4+setmap.c::load_map_data_+0x58]",
            " mov eax,m4[esi+None*1+0x8]",
            "-mov m4[None+None*1+0x535174],eax",
            "+mov m4[None+None*1+0x528184],eax",
            " mov eax,m4[esi+None*1+0xc]",
            "-mov m4[None+None*1+0x535178],eax",
            "+mov m4[None+None*1+0x528188],eax",
            " mov eax,m4[None+None*1+video.c::_video_screen_width]",
            " mov edx,eax",
            " sar edx,0x1f",
            " shl edx,0x5",
            " sbb eax,edx",
            " sar eax,0x5",
            "-mov ebp,m4[None+None*1+0x535174]",
            "+mov ebp,m4[None+None*1+0x528184]",
            " sub ebp,eax",
            " mov eax,m4[None+None*1+video.c::_video_screen_height]",
            " mov edx,eax",
            "@@ -143,7 +143,7 @@",
            " sbb eax,edx",
            " sar eax,0x5",
            " mov m4[None+None*1+object.c::_captured_object],edi",
            "-mov edi,m4[None+None*1+0x535178]",
            "+mov edi,m4[None+None*1+0x528188]",
            " sub edi,eax",
            " mov eax,m4[None+None*1+video.c::_video_screen_width]",
            " mov edx,eax",
            "@@ -151,7 +151,7 @@",
            " shl edx,0x5",
            " sbb eax,edx",
            " sar eax,0x5",
            "-mov esi,m4[None+None*1+0x535174]",
            "+mov esi,m4[None+None*1+0x528184]",
            " add esi,eax",
            " mov eax,m4[None+None*1+video.c::_video_screen_height]",
            " mov edx,eax",
            "@@ -159,7 +159,7 @@",
            " shl edx,0x5",
            " sbb eax,edx",
            " sar eax,0x5",
            "-mov edx,m4[None+None*1+0x535178]",
            "+mov edx,m4[None+None*1+0x528188]",
            " add edx,eax",
            " mov ebx,m4[None+None*1+video.c::_video_screen_width]",
            " mov m4[esp+None*1+0x0],edx",
            "@@ -175,7 +175,7 @@",
            " imul edx",
            " idiv ebx",
            " mov ecx,m4[esp+None*1+0x0]",
            "-mov m4[None+None*1+0x53517c],eax",
            "+mov m4[None+None*1+0x52818c],eax",
            " mov ebx,esi",
            " mov edx,edi",
            " mov eax,ebp",
            "@@ -211,9 +211,9 @@",
            " fistp m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov ebx,eax",
            "-mov m4[None+None*1+0x535180],eax",
            "+mov m4[None+None*1+0x528190],eax",
            " neg ebx",
            "-mov m4[None+None*1+0x535180],ebx",
            "+mov m4[None+None*1+0x528190],ebx",
            " mov esi,0x4",
            " mov m4[None+None*1+object.c::_captured_object],edi",
            " mov m4[None+None*1+umap.c::_map_tool_used],esi",
            "@@ -224,7 +224,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov m4[None+None*1+0x535180],eax",
            "+mov m4[None+None*1+0x528190],eax",
            " jmp local:216",
            " mov ebx,m4[None+None*1+umap.c::_map_y]",
            " mov edx,m4[None+None*1+umap.c::_map_x]",
            "@@ -583,7 +583,7 @@",
            " mov m4[None+None*1+umap.c::_map_angle],eax",
            " neg esi",
            " mov m4[None+None*1+umap.c::_map_angle],esi",
            "-mov eax,m4[None+None*1+0x535180]",
            "+mov eax,m4[None+None*1+0x528190]",
            " mov edi,m4[None+None*1+umap.c::_map_angle]",
            " sub edi,eax",
            " mov eax,m4[None+None*1+umap.c::_ui_map_rotation]",
            "@@ -637,14 +637,14 @@",
            " jae local:758",
            " cmp eax,0x1",
            " jne local:707",
            "-mov edi,m4[None+None*1+0x535174]",
            "+mov edi,m4[None+None*1+0x528184]",
            " mov eax,m4[esi+None*1+0x8]",
            " sub eax,edi",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            " mov m4[esp+None*1+0x4],eax",
            "-mov ebp,m4[None+None*1+0x535178]",
            "+mov ebp,m4[None+None*1+0x528188]",
            " mov eax,m4[esi+None*1+0xc]",
            " sub eax,ebp",
            " cdq ",
            "@@ -695,11 +695,11 @@",
            " idiv ebx",
            " mov esi,m4[esp+None*1+0x4]",
            " mov edi,m4[esp+None*1+0x8]",
            "-mov edx,m4[None+None*1+0x535178]",
            "-mov ebx,m4[None+None*1+0x535174]",
            "-mov ecx,m4[None+None*1+0x535178]",
            "-mov m4[None+None*1+0x53517c],eax",
            "-mov eax,m4[None+None*1+0x535174]",
            "+mov edx,m4[None+None*1+0x528188]",
            "+mov ebx,m4[None+None*1+0x528184]",
            "+mov ecx,m4[None+None*1+0x528188]",
            "+mov m4[None+None*1+0x52818c],eax",
            "+mov eax,m4[None+None*1+0x528184]",
            " sub edx,edi",
            " add ebx,esi",
            " add ecx,edi",
            "@@ -778,7 +778,7 @@",
            " mov m4[None+None*1+umap.c::_map_angle],eax",
            " neg edx",
            " mov m4[None+None*1+umap.c::_map_angle],edx",
            "-mov eax,m4[None+None*1+0x535180]",
            "+mov eax,m4[None+None*1+0x528190]",
            " mov ecx,m4[None+None*1+umap.c::_map_angle]",
            " sub ecx,eax",
            " mov eax,m4[None+None*1+video.c::_video_screen_width]"
          ]
        },
        {
          "symbol": "umap.c::update_point_data_box_",
          "source": "E:\\apache\\source\\menus\\maps\\umap.c",
          "first": "0x419574",
          "second": "0x4198f4",
          "first_instruction_count": 252,
          "second_instruction_count": 252,
          "diff": [
            "--- 0x419574",
            "+++ 0x4198f4",
            "@@ -13,12 +13,12 @@",
            " mov ebp,0xfffffff",
            " call thread.c::sleep_on_",
            " mov edx,0x2",
            "-mov ecx,0x535184",
            "+mov ecx,0x528194",
            " mov ebx,esp",
            " xor ah,ah",
            " mov m4[None+None*1+umap.c::_update_point_data_box_required],edx",
            "-mov m1[None+None*1+0x535184],ah",
            "-mov m4[None+None*1+0x53556c],ecx",
            "+mov m1[None+None*1+0x528194],ah",
            "+mov m4[None+None*1+0x52857c],ecx",
            " call umapdraw.c::initialise_map_2d_viewport_",
            " lea ecx,m4[esp+None*1+0x4]",
            " mov edx,m4[None+None*1+umap.c::_point_data_y]",
            "@@ -55,22 +55,22 @@",
            " sar eax,0x16",
            " push eax",
            " push text:'X: (%2d) %06d  Y: (%2d) %06d\\n'",
            "-mov ebx,m4[None+None*1+0x53556c]",
            "+mov ebx,m4[None+None*1+0x52857c]",
            " push ebx",
            " call sprintf::sprintf_",
            " add esp,0x18",
            "-mov edi,m4[None+None*1+0x53556c]",
            "-sub ecx,ecx",
            "-dec ecx",
            "-xor eax,eax",
            "-repne scasb al,m1[edi+None*1+0x0]",
            "-not ecx",
            "-dec ecx",
            "-add m4[None+None*1+0x53556c],ecx",
            "-call thread.c::quick_yield_",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov eax,m4[esp+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+mov edi,m4[None+None*1+0x52857c]",
            "+sub ecx,ecx",
            "+dec ecx",
            "+xor eax,eax",
            "+repne scasb al,m1[edi+None*1+0x0]",
            "+not ecx",
            "+dec ecx",
            "+add m4[None+None*1+0x52857c],ecx",
            "+call thread.c::quick_yield_",
            "+mov edx,m4[esp+None*1+0x4]",
            "+mov eax,m4[esp+None*1+0x0]",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,eax",
            " sar edx,0x1f",
            " shl edx,0x8",
            "@@ -78,77 +78,77 @@",
            " sar eax,0x8",
            " push eax",
            " push text:'Ground Height: %6d feet\\n'",
            "-mov edi,m4[None+None*1+0x53556c]",
            "-push edi",
            "-call sprintf::sprintf_",
            "-add esp,0xc",
            "-mov edi,m4[None+None*1+0x53556c]",
            "-sub ecx,ecx",
            "-dec ecx",
            "-xor eax,eax",
            "-repne scasb al,m1[edi+None*1+0x0]",
            "-not ecx",
            "-dec ecx",
            "-add m4[None+None*1+0x53556c],ecx",
            "+mov edi,m4[None+None*1+0x52857c]",
            "+push edi",
            "+call sprintf::sprintf_",
            "+add esp,0xc",
            "+mov edi,m4[None+None*1+0x52857c]",
            "+sub ecx,ecx",
            "+dec ecx",
            "+xor eax,eax",
            "+repne scasb al,m1[edi+None*1+0x0]",
            "+not ecx",
            "+dec ecx",
            "+add m4[None+None*1+0x52857c],ecx",
            " call thread.c::quick_yield_",
            " mov edx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " call gameplay.c::get_gameplay_side_",
            " cmp eax,0x1",
            " jae local:235",
            "-mov m4[None+None*1+0x535570],text:'Neutral'",
            "-mov esi,m4[None+None*1+0x535570]",
            "+mov m4[None+None*1+0x528580],text:'Neutral'",
            "+mov esi,m4[None+None*1+0x528580]",
            " push esi",
            " push text:'Teritory: %s\\n'",
            "-mov edi,m4[None+None*1+0x53556c]",
            "-push edi",
            "-call sprintf::sprintf_",
            "-add esp,0xc",
            "-mov edi,m4[None+None*1+0x53556c]",
            "-sub ecx,ecx",
            "-dec ecx",
            "-xor eax,eax",
            "-repne scasb al,m1[edi+None*1+0x0]",
            "-not ecx",
            "-dec ecx",
            "-add m4[None+None*1+0x53556c],ecx",
            "+mov edi,m4[None+None*1+0x52857c]",
            "+push edi",
            "+call sprintf::sprintf_",
            "+add esp,0xc",
            "+mov edi,m4[None+None*1+0x52857c]",
            "+sub ecx,ecx",
            "+dec ecx",
            "+xor eax,eax",
            "+repne scasb al,m1[edi+None*1+0x0]",
            "+not ecx",
            "+dec ecx",
            "+add m4[None+None*1+0x52857c],ecx",
            " call thread.c::quick_yield_",
            " mov edx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " call gameplay.c::get_distance_to_front_line_",
            " push eax",
            " push text:'Front Line: %d\\n'",
            "-mov edx,m4[None+None*1+0x53556c]",
            "-push edx",
            "-call sprintf::sprintf_",
            "-add esp,0xc",
            "-mov edi,m4[None+None*1+0x53556c]",
            "-sub ecx,ecx",
            "-dec ecx",
            "-xor eax,eax",
            "-repne scasb al,m1[edi+None*1+0x0]",
            "-not ecx",
            "-dec ecx",
            "-add m4[None+None*1+0x53556c],ecx",
            "-call thread.c::quick_yield_",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov eax,m4[esp+None*1+0x0]",
            "-call fxfeatur.c::get_surface_type_",
            "+mov edx,m4[None+None*1+0x52857c]",
            "+push edx",
            "+call sprintf::sprintf_",
            "+add esp,0xc",
            "+mov edi,m4[None+None*1+0x52857c]",
            "+sub ecx,ecx",
            "+dec ecx",
            "+xor eax,eax",
            "+repne scasb al,m1[edi+None*1+0x0]",
            "+not ecx",
            "+dec ecx",
            "+add m4[None+None*1+0x52857c],ecx",
            "+call thread.c::quick_yield_",
            "+mov edx,m4[esp+None*1+0x4]",
            "+mov eax,m4[esp+None*1+0x0]",
            "+call features.c::get_surface_type_",
            " mov esi,m4[None+eax*4+3dcore.c::_surface_type_names]",
            " push esi",
            " push text:'Surface Type: %s\\n'",
            "-mov edi,m4[None+None*1+0x53556c]",
            "-push edi",
            "-call sprintf::sprintf_",
            "-add esp,0xc",
            "-mov edi,m4[None+None*1+0x53556c]",
            "-sub ecx,ecx",
            "-dec ecx",
            "-xor eax,eax",
            "-repne scasb al,m1[edi+None*1+0x0]",
            "-not ecx",
            "-dec ecx",
            "-add m4[None+None*1+0x53556c],ecx",
            "+mov edi,m4[None+None*1+0x52857c]",
            "+push edi",
            "+call sprintf::sprintf_",
            "+add esp,0xc",
            "+mov edi,m4[None+None*1+0x52857c]",
            "+sub ecx,ecx",
            "+dec ecx",
            "+xor eax,eax",
            "+repne scasb al,m1[edi+None*1+0x0]",
            "+not ecx",
            "+dec ecx",
            "+add m4[None+None*1+0x52857c],ecx",
            " call thread.c::quick_yield_",
            " mov edx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            "@@ -179,18 +179,18 @@",
            " call gameplay.c::get_gameplay_number_aaa_",
            " push eax",
            " push text:'A:%d S:%d T:%d P:%d L:%d E:%d K:%d\\n'",
            "-mov edx,m4[None+None*1+0x53556c]",
            "+mov edx,m4[None+None*1+0x52857c]",
            " push edx",
            " call sprintf::sprintf_",
            " add esp,0x24",
            "-mov edi,m4[None+None*1+0x53556c]",
            "-sub ecx,ecx",
            "-dec ecx",
            "-xor eax,eax",
            "-repne scasb al,m1[edi+None*1+0x0]",
            "-not ecx",
            "-dec ecx",
            "-add m4[None+None*1+0x53556c],ecx",
            "+mov edi,m4[None+None*1+0x52857c]",
            "+sub ecx,ecx",
            "+dec ecx",
            "+xor eax,eax",
            "+repne scasb al,m1[edi+None*1+0x0]",
            "+not ecx",
            "+dec ecx",
            "+add m4[None+None*1+0x52857c],ecx",
            " call thread.c::quick_yield_",
            " mov edx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            "@@ -200,25 +200,25 @@",
            " mov ax,m2[eax+None*1+0x0]",
            " and eax,0xffff",
            " lea edx,m4[None+eax*4+0x0]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[edx+eax*1+0x0]",
            " add eax,0x58",
            " push eax",
            " push text:'Object: %s'",
            "-mov eax,m4[None+None*1+0x53556c]",
            "-push eax",
            "-call sprintf::sprintf_",
            "-add esp,0xc",
            "-mov edi,m4[None+None*1+0x53556c]",
            "-sub ecx,ecx",
            "-dec ecx",
            "-xor eax,eax",
            "-repne scasb al,m1[edi+None*1+0x0]",
            "-not ecx",
            "-dec ecx",
            "-add m4[None+None*1+0x53556c],ecx",
            "-call thread.c::quick_yield_",
            "-mov edx,0x535184",
            "+mov eax,m4[None+None*1+0x52857c]",
            "+push eax",
            "+call sprintf::sprintf_",
            "+add esp,0xc",
            "+mov edi,m4[None+None*1+0x52857c]",
            "+sub ecx,ecx",
            "+dec ecx",
            "+xor eax,eax",
            "+repne scasb al,m1[edi+None*1+0x0]",
            "+not ecx",
            "+dec ecx",
            "+add m4[None+None*1+0x52857c],ecx",
            "+call thread.c::quick_yield_",
            "+mov edx,0x528194",
            " mov eax,m4[None+None*1+umap.c::_map_point_data_text]",
            " call utext.c::set_object_text_",
            " cmp m4[None+None*1+umap.c::_update_point_data_box_required],0x2",
            "@@ -234,14 +234,14 @@",
            " mov eax,edi",
            " jmp local:39",
            " ja local:238",
            "-mov m4[None+None*1+0x535570],text:'Allied'",
            "+mov m4[None+None*1+0x528580],text:'Allied'",
            " jmp local:99",
            " cmp eax,0x2",
            " jne local:98",
            "-mov m4[None+None*1+0x535570],text:'Enemy'",
            "+mov m4[None+None*1+0x528580],text:'Enemy'",
            " jmp local:99",
            " push text:'No Object'",
            "-mov esi,m4[None+None*1+0x53556c]",
            "+mov esi,m4[None+None*1+0x52857c]",
            " push esi",
            " call sprintf::sprintf_",
            " add esp,0x8"
          ]
        },
        {
          "symbol": "umap3d.c::move_map_3d_position_",
          "source": "E:\\apache\\source\\menus\\maps\\umap3d.c",
          "first": "0x41aeb4",
          "second": "0x41b234",
          "first_instruction_count": 236,
          "second_instruction_count": 236,
          "diff": [
            "--- 0x41aeb4",
            "+++ 0x41b234",
            "@@ -107,7 +107,7 @@",
            " mov edx,edi",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            "@@ -139,7 +139,7 @@",
            " fistp m4[None+None*1+constant:00002008]",
            " mov edx,m4[None+None*1+constant:00002008]",
            " mov eax,m4[None+None*1+umap3d.c::_map_3d_vp]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " add eax,0x6400",
            " mov m4[None+None*1+constant:00e80300],eax",
            " mov ecx,data:00000000000000000000000000000000",
            "@@ -165,7 +165,7 @@",
            " mov edx,0x12c00",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2"
          ]
        },
        {
          "symbol": "umap3d.c::update_3d_viewport_",
          "source": "E:\\apache\\source\\menus\\maps\\umap3d.c",
          "first": "0x41a9e0",
          "second": "0x41ad60",
          "first_instruction_count": 214,
          "second_instruction_count": 214,
          "diff": [
            "--- 0x41a9e0",
            "+++ 0x41ad60",
            "@@ -35,7 +35,7 @@",
            " lea eax,m4[esp+None*1+0x8]",
            " call 3dconfig.c::set_3d_visual_configuration_",
            " mov eax,gamedata.c::_game_visual_init",
            "-call fx3dmain.c::initialise_3d_visual_",
            "+call 3dmain.c::initialise_3d_visual_",
            " mov eax,m4[None+None*1+umap.c::_map_3d_view_graphic]",
            " call uoaccess.c::get_object_displayed_",
            " test eax,eax",
            "@@ -74,7 +74,7 @@",
            " mov m4[esp+None*1+0x14],edi",
            " call 3dconfig.c::set_3d_visual_configuration_",
            " fld1 ",
            "-fild m4[None+None*1+fxpoly1.c::_polygons_per_frame]",
            "+fild m4[None+None*1+polygon.c::_polygons_per_frame]",
            " fxch st(0),st(1)",
            " fdiv m8[esp+None*1+0x0]",
            " fmulp st(1)",
            "@@ -88,10 +88,10 @@",
            " call umap3d.c::move_map_3d_position_",
            " xor eax,eax",
            " mov ecx,m4[esp+None*1+0x4c]",
            "-mov m4[None+None*1+fxpoly1.c::_polygons_per_frame],eax",
            "+mov m4[None+None*1+polygon.c::_polygons_per_frame],eax",
            " call 3dcore.c::set_3d_viewport_",
            " mov eax,umap3d.c::_map_3d_vp",
            "-call fx3dmain.c::draw_3d_visual_",
            "+call 3dmain.c::draw_3d_visual_",
            " xor edx,edx",
            " mov eax,m4[None+None*1+umap.c::_map_3d_view_graphic]",
            " call repaint.c::repaint_object_"
          ]
        },
        {
          "symbol": "umapinfo.c::update_waypoint_information_box_",
          "source": "E:\\apache\\source\\menus\\maps\\umapinfo.c",
          "first": "0x420e20",
          "second": "0x4211a0",
          "first_instruction_count": 321,
          "second_instruction_count": 321,
          "diff": [
            "--- 0x420e20",
            "+++ 0x4211a0",
            "@@ -63,7 +63,7 @@",
            " test eax,eax",
            " je local:210",
            " mov ax,m2[eax+None*1+0x0]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " and eax,0xffff",
            " mov eax,m4[edx+eax*4+0x0]",
            " add eax,0x58"
          ]
        },
        {
          "symbol": "umaptask.c::notify_map_task_text_",
          "source": "E:\\apache\\source\\menus\\maps\\umaptask.c",
          "first": "0x41b8cc",
          "second": "0x41bc4c",
          "first_instruction_count": 284,
          "second_instruction_count": 284,
          "diff": [
            "--- 0x41b8cc",
            "+++ 0x41bc4c",
            "@@ -46,8 +46,8 @@",
            " jne local:78",
            " lea ecx,m4[None+esi*4+0x0]",
            " sub ecx,esi",
            "-mov eax,m4[None+ecx*4+0x535598]",
            "-mov edi,m4[None+ecx*4+0x535594]",
            "+mov eax,m4[None+ecx*4+0x5285a8]",
            "+mov edi,m4[None+ecx*4+0x5285a4]",
            " mov m4[esp+None*1+0x0],eax",
            " cmp esi,0x3e8",
            " jge local:11",
            "@@ -173,7 +173,7 @@",
            " jbe local:236",
            " cmp eax,0x2",
            " jne local:11",
            "-mov eax,m4[ebp+None*1+0x535598]",
            "+mov eax,m4[ebp+None*1+0x5285a8]",
            " call drone.c::set_current_drone_",
            " xor eax,eax",
            " call umaptask.c::update_map_task_box_",
            "@@ -234,7 +234,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov eax,m4[ebp+None*1+0x535594]",
            "+mov eax,m4[ebp+None*1+0x5285a4]",
            " call dtask.c::set_current_task_",
            " xor eax,eax",
            " call umaptask.c::update_map_task_box_"
          ]
        },
        {
          "symbol": "umaptask.c::notify_menu_drone_class_menu_",
          "source": "E:\\apache\\source\\menus\\maps\\umaptask.c",
          "first": "0x41c3c4",
          "second": "0x41c744",
          "first_instruction_count": 538,
          "second_instruction_count": 538,
          "diff": [
            "--- 0x41c3c4",
            "+++ 0x41c744",
            "@@ -9,7 +9,7 @@",
            " ja local:102",
            " jmp m4[None+eax*4+umaptask.c::update_map_task_box_+0x188]",
            " push 0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " push umaptask.c::notify_menu_drone_type_menu_",
            " mov edx,m4[eax+None*1+0x7e0]",
            " push 0x21",
            "@@ -107,7 +107,7 @@",
            " pop ebx",
            " ret ",
            " push 0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " push umaptask.c::notify_menu_drone_type_menu_",
            " mov edx,m4[eax+None*1+0x720]",
            " push 0x21",
            "@@ -154,7 +154,7 @@",
            " pop ebx",
            " ret ",
            " push 0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " push umaptask.c::notify_menu_drone_type_menu_",
            " mov edx,m4[eax+None*1+0x850]",
            " push 0x21",
            "@@ -201,7 +201,7 @@",
            " pop ebx",
            " ret ",
            " push 0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " push umaptask.c::notify_menu_drone_type_menu_",
            " mov edx,m4[eax+None*1+0x8d4]",
            " push 0x21",
            "@@ -296,7 +296,7 @@",
            " pop ebx",
            " ret ",
            " push 0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " push umaptask.c::notify_menu_drone_type_menu_",
            " mov edx,m4[eax+None*1+0x404]",
            " push 0x21",
            "@@ -390,7 +390,7 @@",
            " pop ebx",
            " ret ",
            " push 0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " push umaptask.c::notify_menu_drone_type_menu_",
            " mov edx,m4[eax+None*1+0x638]",
            " push 0x21",
            "@@ -427,7 +427,7 @@",
            " pop ebx",
            " ret ",
            " push 0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " push umaptask.c::notify_menu_drone_type_menu_",
            " mov edx,m4[eax+None*1+0x32c]",
            " push 0x21",
            "@@ -485,7 +485,7 @@",
            " pop ebx",
            " ret ",
            " push 0x0",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " push umaptask.c::notify_menu_drone_type_menu_",
            " mov edx,m4[eax+None*1+0x11c]",
            " push 0x21"
          ]
        },
        {
          "symbol": "umaptask.c::notify_menu_formation_class_menu_",
          "source": "E:\\apache\\source\\menus\\maps\\umaptask.c",
          "first": "0x41ca58",
          "second": "0x41cdd8",
          "first_instruction_count": 525,
          "second_instruction_count": 525,
          "diff": [
            "--- 0x41ca58",
            "+++ 0x41cdd8",
            "@@ -10,11 +10,11 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov edx,m4[None+None*1+constant:fccc4d00]",
            "+mov edx,m4[None+None*1+constant:e0fd4c00]",
            " push edx",
            " push 0x2",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:e8cc4d00]",
            "+mov ecx,m4[None+None*1+constant:ccfd4c00]",
            " push ecx",
            " push 0x1",
            " push 0x34",
            "@@ -34,30 +34,30 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov edi,m4[None+None*1+constant:10dc4d00]",
            "+mov edi,m4[None+None*1+constant:f40c4d00]",
            " push edi",
            " push 0x53",
            " push 0x34",
            " push 0x33",
            "-mov ebp,m4[None+None*1+constant:88d54d00]",
            "+mov ebp,m4[None+None*1+constant:6c064d00]",
            " push ebp",
            " push 0x32",
            " push 0x34",
            " push 0x33",
            "-mov edx,m4[None+None*1+constant:70d34d00]",
            "+mov edx,m4[None+None*1+constant:54044d00]",
            " push edx",
            " push 0x26",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:48d34d00]",
            "+mov ecx,m4[None+None*1+constant:2c044d00]",
            " push ecx",
            " push 0x25",
            " push 0x34",
            " push 0x33",
            "-mov ebx,m4[None+None*1+constant:40cf4d00]",
            "+mov ebx,m4[None+None*1+constant:24004d00]",
            " push ebx",
            " push 0xf",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:44cd4d00]",
            "+mov esi,m4[None+None*1+constant:28fe4c00]",
            " push esi",
            " push 0x4",
            " push 0x34",
            "@@ -77,19 +77,19 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov edi,m4[None+None*1+constant:50ce4d00]",
            "+mov edi,m4[None+None*1+constant:34ff4c00]",
            " push edi",
            " push 0xa",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:24ce4d00]",
            "+mov ebp,m4[None+None*1+constant:08ff4c00]",
            " push ebp",
            " push 0x9",
            " push 0x34",
            "-mov edx,m4[None+None*1+constant:f8cd4d00]",
            "+mov edx,m4[None+None*1+constant:dcfe4c00]",
            " push edx",
            " push 0x8",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:cccd4d00]",
            "+mov ecx,m4[None+None*1+constant:b0fe4c00]",
            " push ecx",
            " push 0x7",
            " push 0x34",
            "@@ -109,57 +109,57 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov ecx,m4[None+None*1+constant:18d24d00]",
            "+mov ecx,m4[None+None*1+constant:fc024d00]",
            " push ecx",
            " push 0x1e",
            " push 0x34",
            " push 0x33",
            "-mov ebx,m4[None+None*1+constant:74d04d00]",
            "+mov ebx,m4[None+None*1+constant:58014d00]",
            " push ebx",
            " push 0x15",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:40d04d00]",
            "+mov esi,m4[None+None*1+constant:24014d00]",
            " push esi",
            " push 0x14",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:d8cf4d00]",
            "+mov edi,m4[None+None*1+constant:bc004d00]",
            " push edi",
            " push 0x12",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:a4cf4d00]",
            "+mov ebp,m4[None+None*1+constant:88004d00]",
            " push ebp",
            " push 0x11",
            " push 0x34",
            " push 0x33",
            "-mov edx,m4[None+None*1+constant:04d14d00]",
            "+mov edx,m4[None+None*1+constant:e8014d00]",
            " push edx",
            " push 0x18",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:d8d04d00]",
            "+mov ecx,m4[None+None*1+constant:bc014d00]",
            " push ecx",
            " push 0x17",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:98db4d00]",
            "+mov ebx,m4[None+None*1+constant:7c0c4d00]",
            " push ebx",
            " push 0x50",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:a0cd4d00]",
            "+mov esi,m4[None+None*1+constant:84fe4c00]",
            " push esi",
            " push 0x6",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:c0db4d00]",
            "+mov edi,m4[None+None*1+constant:a40c4d00]",
            " push edi",
            " push 0x51",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:74cd4d00]",
            "+mov ebp,m4[None+None*1+constant:58fe4c00]",
            " push ebp",
            " push 0x5",
            " push 0x34",
            "-mov edx,m4[None+None*1+constant:e8db4d00]",
            "+mov edx,m4[None+None*1+constant:cc0c4d00]",
            " push edx",
            " push 0x52",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:48db4d00]",
            "+mov ecx,m4[None+None*1+constant:2c0c4d00]",
            " push ecx",
            " push 0x4e",
            " push 0x34",
            "@@ -179,78 +179,78 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov ebp,m4[None+None*1+constant:d4d64d00]",
            "+mov ebp,m4[None+None*1+constant:b8074d00]",
            " push ebp",
            " push 0x39",
            " push 0x34",
            "-mov edx,m4[None+None*1+constant:70d24d00]",
            "+mov edx,m4[None+None*1+constant:54034d00]",
            " push edx",
            " push 0x20",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:ecd54d00]",
            "-push ecx",
            "-push 0x34",
            "-push 0x34",
            "-mov ebx,m4[None+None*1+constant:60d14d00]",
            "+mov ecx,m4[None+None*1+constant:d0064d00]",
            "+push ecx",
            "+push 0x34",
            "+push 0x34",
            "+mov ebx,m4[None+None*1+constant:44024d00]",
            " push ebx",
            " push 0x1a",
            " push 0x34",
            " push 0x33",
            "-mov esi,m4[None+None*1+constant:a0dc4d00]",
            "+mov esi,m4[None+None*1+constant:840d4d00]",
            " push esi",
            " push 0x57",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:84dc4d00]",
            "+mov edi,m4[None+None*1+constant:680d4d00]",
            " push edi",
            " push 0x56",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:68dc4d00]",
            "+mov ebp,m4[None+None*1+constant:4c0d4d00]",
            " push ebp",
            " push 0x55",
            " push 0x34",
            "-mov edx,m4[None+None*1+constant:c4d34d00]",
            "+mov edx,m4[None+None*1+constant:a8044d00]",
            " push edx",
            " push 0x28",
            " push 0x34",
            " push 0x33",
            "-mov ecx,m4[None+None*1+constant:1cd34d00]",
            "+mov ecx,m4[None+None*1+constant:00044d00]",
            " push ecx",
            " push 0x24",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:f4d24d00]",
            "+mov ebx,m4[None+None*1+constant:d8034d00]",
            " push ebx",
            " push 0x23",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:ecd34d00]",
            "+mov esi,m4[None+None*1+constant:d0044d00]",
            " push esi",
            " push 0x29",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:c8d24d00]",
            "+mov edi,m4[None+None*1+constant:ac034d00]",
            " push edi",
            " push 0x22",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:9cd24d00]",
            "-push ebp",
            "-push 0x21",
            "-push 0x34",
            "-push 0x33",
            "-mov edx,m4[None+None*1+constant:acd64d00]",
            "+mov ebp,m4[None+None*1+constant:80034d00]",
            "+push ebp",
            "+push 0x21",
            "+push 0x34",
            "+push 0x33",
            "+mov edx,m4[None+None*1+constant:90074d00]",
            " push edx",
            " push 0x38",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:80d64d00]",
            "+mov ecx,m4[None+None*1+constant:64074d00]",
            " push ecx",
            " push 0x37",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:b8d54d00]",
            "-push ebx",
            "-push 0x33",
            "-push 0x34",
            "-mov esi,m4[None+None*1+constant:a8d04d00]",
            "+mov ebx,m4[None+None*1+constant:9c064d00]",
            "+push ebx",
            "+push 0x33",
            "+push 0x34",
            "+mov esi,m4[None+None*1+constant:8c014d00]",
            " push esi",
            " push 0x16",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:14cd4d00]",
            "+mov edi,m4[None+None*1+constant:f8fd4c00]",
            " push edi",
            " push 0x3",
            " push 0x34",
            "@@ -270,85 +270,85 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov ebx,m4[None+None*1+constant:48d84d00]",
            "+mov ebx,m4[None+None*1+constant:2c094d00]",
            " push ebx",
            " push 0x42",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:10d84d00]",
            "+mov esi,m4[None+None*1+constant:f4084d00]",
            " push esi",
            " push 0x41",
            " push 0x34",
            " push 0x33",
            "-mov edi,m4[None+None*1+constant:54d54d00]",
            "+mov edi,m4[None+None*1+constant:38064d00]",
            " push edi",
            " push 0x31",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:20d54d00]",
            "+mov ebp,m4[None+None*1+constant:04064d00]",
            " push ebp",
            " push 0x30",
            " push 0x34",
            " push 0x33",
            "-mov edx,m4[None+None*1+constant:74d44d00]",
            "+mov edx,m4[None+None*1+constant:58054d00]",
            " push edx",
            " push 0x2c",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:44d44d00]",
            "+mov ecx,m4[None+None*1+constant:28054d00]",
            " push ecx",
            " push 0x2b",
            " push 0x34",
            " push 0x33",
            "-mov ebx,m4[None+None*1+constant:88d74d00]",
            "+mov ebx,m4[None+None*1+constant:6c084d00]",
            " push ebx",
            " push 0x3e",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:40dc4d00]",
            "+mov esi,m4[None+None*1+constant:240d4d00]",
            " push esi",
            " push 0x54",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:68d74d00]",
            "+mov edi,m4[None+None*1+constant:4c084d00]",
            " push edi",
            " push 0x3d",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:98d34d00]",
            "+mov ebp,m4[None+None*1+constant:7c044d00]",
            " push ebp",
            " push 0x27",
            " push 0x34",
            "-mov edx,m4[None+None*1+constant:44d24d00]",
            "+mov edx,m4[None+None*1+constant:28034d00]",
            " push edx",
            " push 0x1f",
            " push 0x34",
            " push 0x33",
            "-mov ecx,m4[None+None*1+constant:0cd04d00]",
            "+mov ecx,m4[None+None*1+constant:f0004d00]",
            " push ecx",
            " push 0x13",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:18d44d00]",
            "+mov ebx,m4[None+None*1+constant:fc044d00]",
            " push ebx",
            " push 0x2a",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:74cf4d00]",
            "+mov esi,m4[None+None*1+constant:58004d00]",
            " push esi",
            " push 0x10",
            " push 0x34",
            " push 0x33",
            "-mov edi,m4[None+None*1+constant:f4d44d00]",
            "+mov edi,m4[None+None*1+constant:d8054d00]",
            " push edi",
            " push 0x2f",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:94d14d00]",
            "+mov ebp,m4[None+None*1+constant:78024d00]",
            " push ebp",
            " push 0x1b",
            " push 0x34",
            " push 0x33",
            "-mov edx,m4[None+None*1+constant:30d14d00]",
            "+mov edx,m4[None+None*1+constant:14024d00]",
            " push edx",
            " push 0x19",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:14cf4d00]",
            "+mov ecx,m4[None+None*1+constant:f8ff4c00]",
            " push ecx",
            " push 0xe",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:e8ce4d00]",
            "+mov ebx,m4[None+None*1+constant:ccff4c00]",
            " push ebx",
            " push 0xd",
            " push 0x34",
            "@@ -368,33 +368,33 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov ebp,m4[None+None*1+constant:d0d44d00]",
            "+mov ebp,m4[None+None*1+constant:b4054d00]",
            " push ebp",
            " push 0x2e",
            " push 0x34",
            "-mov edx,m4[None+None*1+constant:a4d44d00]",
            "+mov edx,m4[None+None*1+constant:88054d00]",
            " push edx",
            " push 0x2d",
            " push 0x34",
            " push 0x33",
            "-mov ecx,m4[None+None*1+constant:c0dc4d00]",
            "+mov ecx,m4[None+None*1+constant:a40d4d00]",
            " push ecx",
            " push 0x58",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:70db4d00]",
            "+mov ebx,m4[None+None*1+constant:540c4d00]",
            " push ebx",
            " push 0x4f",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:c8d14d00]",
            "+mov esi,m4[None+None*1+constant:ac024d00]",
            " push esi",
            " push 0x1c",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:f0d14d00]",
            "+mov edi,m4[None+None*1+constant:d4024d00]",
            " push edi",
            " push 0x1d",
            " push 0x34",
            " push 0x33",
            "-mov ebp,m4[None+None*1+constant:7cce4d00]",
            "+mov ebp,m4[None+None*1+constant:60ff4c00]",
            " push ebp",
            " push 0xb",
            " push 0x34",
            "@@ -414,15 +414,15 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov edx,m4[None+None*1+constant:48d74d00]",
            "+mov edx,m4[None+None*1+constant:2c084d00]",
            " push edx",
            " push 0x3c",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:24d74d00]",
            "+mov ecx,m4[None+None*1+constant:08084d00]",
            " push ecx",
            " push 0x3b",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:00d74d00]",
            "+mov ebx,m4[None+None*1+constant:e4074d00]",
            " push ebx",
            " push 0x3a",
            " push 0x34",
            "@@ -442,71 +442,71 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov edx,m4[None+None*1+constant:00db4d00]",
            "+mov edx,m4[None+None*1+constant:e40b4d00]",
            " push edx",
            " push 0x4d",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:b4da4d00]",
            "+mov ecx,m4[None+None*1+constant:980b4d00]",
            " push ecx",
            " push 0x4c",
            " push 0x34",
            " push 0x33",
            "-mov ebx,m4[None+None*1+constant:70da4d00]",
            "+mov ebx,m4[None+None*1+constant:540b4d00]",
            " push ebx",
            " push 0x4b",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:28da4d00]",
            "+mov esi,m4[None+None*1+constant:0c0b4d00]",
            " push esi",
            " push 0x4a",
            " push 0x34",
            " push 0x33",
            "-mov edi,m4[None+None*1+constant:f0d94d00]",
            "+mov edi,m4[None+None*1+constant:d40a4d00]",
            " push edi",
            " push 0x49",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:b4d94d00]",
            "+mov ebp,m4[None+None*1+constant:980a4d00]",
            " push ebp",
            " push 0x48",
            " push 0x34",
            "-mov edx,m4[None+None*1+constant:74d94d00]",
            "+mov edx,m4[None+None*1+constant:580a4d00]",
            " push edx",
            " push 0x47",
            " push 0x34",
            " push 0x33",
            "-mov ecx,m4[None+None*1+constant:e4d74d00]",
            "+mov ecx,m4[None+None*1+constant:c8084d00]",
            " push ecx",
            " push 0x40",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:a8d74d00]",
            "+mov ebx,m4[None+None*1+constant:8c084d00]",
            " push ebx",
            " push 0x3f",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:50d64d00]",
            "+mov esi,m4[None+None*1+constant:34074d00]",
            " push esi",
            " push 0x36",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:acce4d00]",
            "+mov edi,m4[None+None*1+constant:90ff4c00]",
            " push edi",
            " push 0xc",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:14d64d00]",
            "+mov ebp,m4[None+None*1+constant:f8064d00]",
            " push ebp",
            " push 0x35",
            " push 0x34",
            " push 0x33",
            "-mov edx,m4[None+None*1+constant:38d94d00]",
            "+mov edx,m4[None+None*1+constant:1c0a4d00]",
            " push edx",
            " push 0x46",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:f8d84d00]",
            "+mov ecx,m4[None+None*1+constant:dc094d00]",
            " push ecx",
            " push 0x45",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:bcd84d00]",
            "+mov ebx,m4[None+None*1+constant:a0094d00]",
            " push ebx",
            " push 0x44",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:7cd84d00]",
            "+mov esi,m4[None+None*1+constant:60094d00]",
            " push esi",
            " push 0x43",
            " push 0x34"
          ]
        },
        {
          "symbol": "umaptask.c::update_map_task_box_",
          "source": "E:\\apache\\source\\menus\\maps\\umaptask.c",
          "first": "0x41c21c",
          "second": "0x41c59c",
          "first_instruction_count": 103,
          "second_instruction_count": 103,
          "diff": [
            "--- 0x41c21c",
            "+++ 0x41c59c",
            "@@ -27,7 +27,7 @@",
            " test edi,edi",
            " je umaptask.c::initialise_task_box_+0x5d2",
            " mov edx,0x1",
            "-mov m4[ecx+None*1+0x535594],edi",
            "+mov m4[ecx+None*1+0x5285a4],edi",
            " mov m4[ecx+None*1+umaptask.c::_task_box_data],edx",
            " cmp edi,m4[esp+None*1+0x64]",
            " jne local:36",
            "@@ -92,9 +92,9 @@",
            " mov edx,text:'  <New Drone>\\n'",
            " mov eax,m4[None+None*1+umaptask.c::_map_task_text]",
            " call utext.c::add_object_text_",
            "-mov m4[ebx+None*1+0x535594],edi",
            "+mov m4[ebx+None*1+0x5285a4],edi",
            " mov edx,0x3",
            "-mov m4[ebx+None*1+0x535598],ecx",
            "+mov m4[ebx+None*1+0x5285a8],ecx",
            " mov eax,edi",
            " mov m4[ebx+None*1+umaptask.c::_task_box_data],edx",
            " call dtask.c::get_next_task_"
          ]
        },
        {
          "symbol": "umapway.c::add_waypoint_draw_drone_position_",
          "source": "E:\\apache\\source\\menus\\maps\\umapway.c",
          "first": "0x41e914",
          "second": "0x41ec94",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x41e914",
            "+++ 0x41ec94",
            "@@ -7,16 +7,16 @@",
            " lea eax,m4[None+ecx*4+0x0]",
            " sub eax,ecx",
            " mov m4[None+eax*4+umap.c::_map_waypoint_command],0xc",
            "-mov m4[None+eax*4+0x52c174],edi",
            "+mov m4[None+eax*4+0x51f184],edi",
            " inc ecx",
            "-mov m4[None+eax*4+0x52c178],esi",
            "+mov m4[None+eax*4+0x51f188],esi",
            " lea eax,m4[None+ecx*4+0x0]",
            " sub eax,ecx",
            " mov m4[None+eax*4+umap.c::_map_waypoint_command],0xd",
            " xor edi,edi",
            "-mov m4[None+eax*4+0x52c174],ebx",
            "+mov m4[None+eax*4+0x51f184],ebx",
            " inc ecx",
            "-mov m4[None+eax*4+0x52c178],edi",
            "+mov m4[None+eax*4+0x51f188],edi",
            " mov m4[None+None*1+umap.c::_last_waypoint_command],ecx",
            " lea eax,m4[None+ecx*4+0x0]",
            " sub eax,ecx"
          ]
        },
        {
          "symbol": "umapway.c::add_waypoint_redraw_circle_",
          "source": "E:\\apache\\source\\menus\\maps\\umapway.c",
          "first": "0x41e6dc",
          "second": "0x41ea5c",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x41e6dc",
            "+++ 0x41ea5c",
            "@@ -7,9 +7,9 @@",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi",
            " mov m4[None+eax*4+umap.c::_map_waypoint_command],0x4",
            "-mov m4[None+eax*4+0x52c174],ecx",
            "+mov m4[None+eax*4+0x51f184],ecx",
            " inc esi",
            "-mov m4[None+eax*4+0x52c178],ebx",
            "+mov m4[None+eax*4+0x51f188],ebx",
            " mov m4[None+None*1+umap.c::_last_waypoint_command],esi",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi"
          ]
        },
        {
          "symbol": "umapway.c::add_waypoint_redraw_clear_circle_",
          "source": "E:\\apache\\source\\menus\\maps\\umapway.c",
          "first": "0x41e7c0",
          "second": "0x41eb40",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x41e7c0",
            "+++ 0x41eb40",
            "@@ -7,9 +7,9 @@",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi",
            " mov m4[None+eax*4+umap.c::_map_waypoint_command],0x7",
            "-mov m4[None+eax*4+0x52c174],ecx",
            "+mov m4[None+eax*4+0x51f184],ecx",
            " inc esi",
            "-mov m4[None+eax*4+0x52c178],ebx",
            "+mov m4[None+eax*4+0x51f188],ebx",
            " mov m4[None+None*1+umap.c::_last_waypoint_command],esi",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi"
          ]
        },
        {
          "symbol": "umapway.c::add_waypoint_redraw_clear_square_",
          "source": "E:\\apache\\source\\menus\\maps\\umapway.c",
          "first": "0x41e80c",
          "second": "0x41eb8c",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x41e80c",
            "+++ 0x41eb8c",
            "@@ -7,9 +7,9 @@",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi",
            " mov m4[None+eax*4+umap.c::_map_waypoint_command],0x8",
            "-mov m4[None+eax*4+0x52c174],ecx",
            "+mov m4[None+eax*4+0x51f184],ecx",
            " inc esi",
            "-mov m4[None+eax*4+0x52c178],ebx",
            "+mov m4[None+eax*4+0x51f188],ebx",
            " mov m4[None+None*1+umap.c::_last_waypoint_command],esi",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi"
          ]
        },
        {
          "symbol": "umapway.c::add_waypoint_redraw_clear_triangle_",
          "source": "E:\\apache\\source\\menus\\maps\\umapway.c",
          "first": "0x41e774",
          "second": "0x41eaf4",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x41e774",
            "+++ 0x41eaf4",
            "@@ -7,9 +7,9 @@",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi",
            " mov m4[None+eax*4+umap.c::_map_waypoint_command],0x6",
            "-mov m4[None+eax*4+0x52c174],ecx",
            "+mov m4[None+eax*4+0x51f184],ecx",
            " inc esi",
            "-mov m4[None+eax*4+0x52c178],ebx",
            "+mov m4[None+eax*4+0x51f188],ebx",
            " mov m4[None+None*1+umap.c::_last_waypoint_command],esi",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi"
          ]
        },
        {
          "symbol": "umapway.c::add_waypoint_redraw_letter_",
          "source": "E:\\apache\\source\\menus\\maps\\umapway.c",
          "first": "0x41e858",
          "second": "0x41ebd8",
          "first_instruction_count": 17,
          "second_instruction_count": 17,
          "diff": [
            "--- 0x41e858",
            "+++ 0x41ebd8",
            "@@ -6,7 +6,7 @@",
            " sub eax,ecx",
            " mov m4[None+eax*4+umap.c::_map_waypoint_command],0x9",
            " inc ecx",
            "-mov m1[None+eax*4+0x52c174],bl",
            "+mov m1[None+eax*4+0x51f184],bl",
            " mov m4[None+None*1+umap.c::_last_waypoint_command],ecx",
            " lea eax,m4[None+ecx*4+0x0]",
            " sub eax,ecx"
          ]
        },
        {
          "symbol": "umapway.c::add_waypoint_redraw_line_",
          "source": "E:\\apache\\source\\menus\\maps\\umapway.c",
          "first": "0x41e644",
          "second": "0x41e9c4",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x41e644",
            "+++ 0x41e9c4",
            "@@ -7,9 +7,9 @@",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi",
            " mov m4[None+eax*4+umap.c::_map_waypoint_command],0x2",
            "-mov m4[None+eax*4+0x52c174],ecx",
            "+mov m4[None+eax*4+0x51f184],ecx",
            " inc esi",
            "-mov m4[None+eax*4+0x52c178],ebx",
            "+mov m4[None+eax*4+0x51f188],ebx",
            " mov m4[None+None*1+umap.c::_last_waypoint_command],esi",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi"
          ]
        },
        {
          "symbol": "umapway.c::add_waypoint_redraw_move_",
          "source": "E:\\apache\\source\\menus\\maps\\umapway.c",
          "first": "0x41e5f4",
          "second": "0x41e974",
          "first_instruction_count": 22,
          "second_instruction_count": 22,
          "diff": [
            "--- 0x41e5f4",
            "+++ 0x41e974",
            "@@ -8,9 +8,9 @@",
            " sub eax,esi",
            " mov edx,0x1",
            " mov m4[None+eax*4+umap.c::_map_waypoint_command],edx",
            "-mov m4[None+eax*4+0x52c174],ecx",
            "+mov m4[None+eax*4+0x51f184],ecx",
            " add esi,edx",
            "-mov m4[None+eax*4+0x52c178],ebx",
            "+mov m4[None+eax*4+0x51f188],ebx",
            " mov m4[None+None*1+umap.c::_last_waypoint_command],esi",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi"
          ]
        },
        {
          "symbol": "umapway.c::add_waypoint_redraw_square_",
          "source": "E:\\apache\\source\\menus\\maps\\umapway.c",
          "first": "0x41e728",
          "second": "0x41eaa8",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x41e728",
            "+++ 0x41eaa8",
            "@@ -7,9 +7,9 @@",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi",
            " mov m4[None+eax*4+umap.c::_map_waypoint_command],0x5",
            "-mov m4[None+eax*4+0x52c174],ecx",
            "+mov m4[None+eax*4+0x51f184],ecx",
            " inc esi",
            "-mov m4[None+eax*4+0x52c178],ebx",
            "+mov m4[None+eax*4+0x51f188],ebx",
            " mov m4[None+None*1+umap.c::_last_waypoint_command],esi",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi"
          ]
        },
        {
          "symbol": "umapway.c::add_waypoint_redraw_triangle_",
          "source": "E:\\apache\\source\\menus\\maps\\umapway.c",
          "first": "0x41e690",
          "second": "0x41ea10",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x41e690",
            "+++ 0x41ea10",
            "@@ -7,9 +7,9 @@",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi",
            " mov m4[None+eax*4+umap.c::_map_waypoint_command],0x3",
            "-mov m4[None+eax*4+0x52c174],ecx",
            "+mov m4[None+eax*4+0x51f184],ecx",
            " inc esi",
            "-mov m4[None+eax*4+0x52c178],ebx",
            "+mov m4[None+eax*4+0x51f188],ebx",
            " mov m4[None+None*1+umap.c::_last_waypoint_command],esi",
            " lea eax,m4[None+esi*4+0x0]",
            " sub eax,esi"
          ]
        },
        {
          "symbol": "umapway.c::display_rubber_waypoints_",
          "source": "E:\\apache\\source\\menus\\maps\\umapway.c",
          "first": "0x41e3f4",
          "second": "0x41e774",
          "first_instruction_count": 144,
          "second_instruction_count": 144,
          "diff": [
            "--- 0x41e3f4",
            "+++ 0x41e774",
            "@@ -15,9 +15,9 @@",
            " mov edi,m4[esp+None*1+0x14]",
            " mov edx,m4[esp+None*1+0x14]",
            " mov esi,m4[esp+None*1+0x14]",
            "-mov edi,m4[edi+None*1+0x52c178]",
            "+mov edi,m4[edi+None*1+0x51f188]",
            " mov edx,m4[edx+None*1+umap.c::_map_waypoint_command]",
            "-mov esi,m4[esi+None*1+0x52c174]",
            "+mov esi,m4[esi+None*1+0x51f184]",
            " cmp edx,0xb",
            " ja local:31",
            " jmp m4[None+edx*4+umapway.c::draw_waypoints_+0x11c8]"
          ]
        },
        {
          "symbol": "umapway.c::draw_waypoints_",
          "source": "E:\\apache\\source\\menus\\maps\\umapway.c",
          "first": "0x41d1fc",
          "second": "0x41d57c",
          "first_instruction_count": 1153,
          "second_instruction_count": 1153,
          "diff": [
            "--- 0x41d1fc",
            "+++ 0x41d57c",
            "@@ -23,16 +23,16 @@",
            " mov m4[esp+None*1+0x128],edi",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov m4[esp+None*1+0x164],eax",
            " mov eax,m4[esp+None*1+0x150]",
            "-mov eax,m4[eax+None*1+0x52c174]",
            "+mov eax,m4[eax+None*1+0x51f184]",
            " mov m4[esp+None*1+0x16c],eax",
            " mov eax,m4[esp+None*1+0x150]",
            "-mov eax,m4[eax+None*1+0x52c178]",
            "+mov eax,m4[eax+None*1+0x51f188]",
            " mov m4[esp+None*1+0x168],eax",
            " mov eax,m4[esp+None*1+0x150]",
            "-mov al,m1[eax+None*1+0x52c174]",
            "+mov al,m1[eax+None*1+0x51f184]",
            " mov m1[esp+None*1+0x170],al",
            " mov eax,m4[esp+None*1+0x150]",
            " mov eax,m4[eax+None*1+umap.c::_map_waypoint_command]",
            "@@ -708,7 +708,7 @@",
            " xor edx,edx",
            " mov eax,esp",
            " mov m4[esp+None*1+0x4c],ecx",
            "-call fx2dpoly.c::fill_2d_polygon_",
            "+call 2dpoly.c::fill_2d_polygon_",
            " mov eax,m4[esp+None*1+0x16c]",
            " mov m4[esp+None*1+0x158],eax",
            " mov eax,m4[esp+None*1+0x168]",
            "@@ -875,7 +875,7 @@",
            " xor edx,edx",
            " mov eax,esp",
            " mov m4[esp+None*1+0x74],ecx",
            "-call fx2dpoly.c::fill_2d_polygon_",
            "+call 2dpoly.c::fill_2d_polygon_",
            " mov eax,m4[esp+None*1+0x16c]",
            " mov m4[esp+None*1+0x158],eax",
            " mov eax,m4[esp+None*1+0x168]",
            "@@ -956,7 +956,7 @@",
            " je local:1144",
            " mov esi,m4[esp+None*1+0x128]",
            " mov ecx,m4[None+None*1+umap.c::_ui_map_rotation]",
            "-mov esi,m4[esi+None*1+0x52c174]",
            "+mov esi,m4[esi+None*1+0x51f184]",
            " add esi,ecx",
            " neg esi",
            " mov eax,esi",
            "@@ -968,7 +968,7 @@",
            " mov ebx,0xfffff100",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov edx,edi",
            " mov esi,eax",
            " mov ecx,eax"
          ]
        },
        {
          "symbol": "umapway.c::set_map_to_fit_",
          "source": "E:\\apache\\source\\menus\\maps\\umapway.c",
          "first": "0x41d060",
          "second": "0x41d3e0",
          "first_instruction_count": 133,
          "second_instruction_count": 133,
          "diff": [
            "--- 0x41d060",
            "+++ 0x41d3e0",
            "@@ -85,8 +85,8 @@",
            " ret ",
            " ja local:97",
            " imul edx,ecx,0xc",
            "-mov eax,m4[edx+None*1+0x52c174]",
            "-mov edx,m4[edx+None*1+0x52c178]",
            "+mov eax,m4[edx+None*1+0x51f184]",
            "+mov edx,m4[edx+None*1+0x51f188]",
            " test ebx,ebx",
            " jne local:100",
            " mov edi,edx"
          ]
        },
        {
          "symbol": "umapzoom.c::pop_zoom_stack_",
          "source": "E:\\apache\\source\\menus\\maps\\umapzoom.c",
          "first": "0x421640",
          "second": "0x4219c0",
          "first_instruction_count": 33,
          "second_instruction_count": 33,
          "diff": [
            "--- 0x421640",
            "+++ 0x4219c0",
            "@@ -10,9 +10,9 @@",
            " shl eax,0x4",
            " mov m4[None+None*1+umap.c::_map_zoom_stack_pointer],ecx",
            " mov esi,m4[eax+None*1+umap.c::_map_zoom_stack]",
            "-mov edx,m4[eax+None*1+0x52bf74]",
            "-mov ebx,m4[eax+None*1+0x52bf78]",
            "-mov ecx,m4[eax+None*1+0x52bf7c]",
            "+mov edx,m4[eax+None*1+0x51ef84]",
            "+mov ebx,m4[eax+None*1+0x51ef88]",
            "+mov ecx,m4[eax+None*1+0x51ef8c]",
            " mov eax,esi",
            " call umapzoom.c::set_map_position_",
            " pop esi"
          ]
        },
        {
          "symbol": "umapzoom.c::push_zoom_stack_",
          "source": "E:\\apache\\source\\menus\\maps\\umapzoom.c",
          "first": "0x4215dc",
          "second": "0x42195c",
          "first_instruction_count": 36,
          "second_instruction_count": 36,
          "diff": [
            "--- 0x4215dc",
            "+++ 0x42195c",
            "@@ -22,11 +22,11 @@",
            " mov eax,edi",
            " shl eax,0x4",
            " mov m4[eax+None*1+umap.c::_map_zoom_stack],ecx",
            "-mov m4[eax+None*1+0x52bf74],edx",
            "+mov m4[eax+None*1+0x51ef84],edx",
            " lea ebp,m4[edi+None*1+0x1]",
            "-mov m4[eax+None*1+0x52bf78],esi",
            "+mov m4[eax+None*1+0x51ef88],esi",
            " mov m4[None+None*1+umap.c::_map_zoom_stack_pointer],ebp",
            "-mov m4[eax+None*1+0x52bf7c],ebx",
            "+mov m4[eax+None*1+0x51ef8c],ebx",
            " pop ebp",
            " pop edi",
            " pop esi"
          ]
        },
        {
          "symbol": "unlnkwnt::unlink_",
          "source": "unlnkwnt",
          "first": "0x4c86c7",
          "second": "0x4bbef3",
          "first_instruction_count": 14,
          "second_instruction_count": 14,
          "diff": [
            "--- 0x4c86c7",
            "+++ 0x4bbef3",
            "@@ -1,7 +1,7 @@",
            " push ecx",
            " push edx",
            " push eax",
            "-call m4[None+None*1+constant:404b0d00]",
            "+call m4[None+None*1+constant:1e7a0c00]",
            " test eax,eax",
            " jne local:10",
            " call dosret::__set_errno_nt_"
          ]
        },
        {
          "symbol": "userdr.c::construct_apache_drone_",
          "source": "E:\\apache\\source\\drone\\userdr.c",
          "first": "0x42f83c",
          "second": "0x42fbbc",
          "first_instruction_count": 56,
          "second_instruction_count": 56,
          "diff": [
            "--- 0x42f83c",
            "+++ 0x42fbbc",
            "@@ -23,20 +23,20 @@",
            " mov edi,m4[edi+None*1+0x1c]",
            " mov m4[None+None*1+model.c::_model_vp],ebp",
            " mov ebp,m4[edi+None*1+0x8]",
            "-mov m4[None+None*1+0x62e6a8],ebp",
            "+mov m4[None+None*1+0x6216a0],ebp",
            " mov ebp,m4[edi+None*1+0x18]",
            " mov edx,model.c::_model_rel_vp_instance",
            "-mov m4[None+None*1+0x62e6b4],ebp",
            "+mov m4[None+None*1+0x6216ac],ebp",
            " mov ebp,m4[edi+None*1+0xc]",
            " mov ah,m1[esi+None*1+0x1c5]",
            "-mov m4[None+None*1+0x62e6ac],ebp",
            "+mov m4[None+None*1+0x6216a4],ebp",
            " mov ebp,m4[edi+None*1+0x1c]",
            " mov m4[None+None*1+model.c::_model_rel_vp],edx",
            "-mov m4[None+None*1+0x62e6b8],ebp",
            "+mov m4[None+None*1+0x6216b0],ebp",
            " mov ebp,m4[edi+None*1+0x10]",
            " mov edi,m4[edi+None*1+0x20]",
            "-mov m4[None+None*1+0x62e6b0],ebp",
            "-mov m4[None+None*1+0x62e6bc],edi",
            "+mov m4[None+None*1+0x6216a8],ebp",
            "+mov m4[None+None*1+0x6216b4],edi",
            " test ah,0x4",
            " jne local:48",
            " pop ebp"
          ]
        },
        {
          "symbol": "userdr.c::setup_apache_drone_",
          "source": "E:\\apache\\source\\drone\\userdr.c",
          "first": "0x42f5c0",
          "second": "0x42f940",
          "first_instruction_count": 186,
          "second_instruction_count": 186,
          "diff": [
            "--- 0x42f5c0",
            "+++ 0x42f940",
            "@@ -50,7 +50,7 @@",
            " shl eax,0x2",
            " add eax,edx",
            " xor dl,dl",
            "-mov m1[eax+None*1+0x5a1440],dl",
            "+mov m1[eax+None*1+0x594450],dl",
            " xor ebx,ebx",
            " mov edx,m4[esi+None*1+0x5c]",
            " mov m2[eax+None*1+apnet.c::_multi_player_list],bx",
            "@@ -59,19 +59,19 @@",
            " mov edx,m4[esi+None*1+0x4c]",
            " mov edx,m4[edx+None*1+0x8]",
            " mov m2[eax+None*1+apnet.c::_multi_player_list],bx",
            "-mov m4[eax+None*1+0x5a1434],esi",
            "+mov m4[eax+None*1+0x594444],esi",
            " and edx,0xffff",
            " mov ecx,m4[eax+None*1+apnet.c::_multi_player_list]",
            " xor bl,bl",
            " or ecx,edx",
            " mov edx,m4[None+None*1+apnet.c::_my_connection_number]",
            "-mov m1[eax+None*1+0x5a15e1],bl",
            "+mov m1[eax+None*1+0x5945f1],bl",
            " and edx,0xff",
            "-mov ebx,m4[eax+None*1+0x5a15e0]",
            "+mov ebx,m4[eax+None*1+0x5945f0]",
            " shl edx,0x8",
            " mov m4[eax+None*1+apnet.c::_multi_player_list],ecx",
            " or ebx,edx",
            "-mov m4[eax+None*1+0x5a15e0],ebx",
            "+mov m4[eax+None*1+0x5945f0],ebx",
            " pop edi",
            " pop esi",
            " pop edx",
            "@@ -120,7 +120,7 @@",
            " shl eax,0x2",
            " add eax,edx",
            " xor bh,bh",
            "-mov m1[eax+None*1+0x5a1440],bh",
            "+mov m1[eax+None*1+0x594450],bh",
            " xor esi,esi",
            " mov edx,m4[ecx+None*1+0x5c]",
            " mov m2[eax+None*1+apnet.c::_multi_player_list],si",
            "@@ -137,12 +137,12 @@",
            " mov m4[eax+None*1+apnet.c::_multi_player_list],ebx",
            " xor bl,bl",
            " and edx,0xff",
            "-mov m1[eax+None*1+0x5a15e1],bl",
            "+mov m1[eax+None*1+0x5945f1],bl",
            " shl edx,0x8",
            "-mov esi,m4[eax+None*1+0x5a15e0]",
            "-mov m4[eax+None*1+0x5a1434],ecx",
            "+mov esi,m4[eax+None*1+0x5945f0]",
            "+mov m4[eax+None*1+0x594444],ecx",
            " or esi,edx",
            "-mov m4[eax+None*1+0x5a15e0],esi",
            "+mov m4[eax+None*1+0x5945f0],esi",
            " mov eax,ecx",
            " call userdr.c::construct_apache_drone_",
            " pop edi"
          ]
        },
        {
          "symbol": "vector.c::get_arbitrary_rotation_matrix_",
          "source": "E:\\library\\maths\\vector.c",
          "first": "0x476ed0",
          "second": "0x475070",
          "first_instruction_count": 236,
          "second_instruction_count": 236,
          "diff": [
            "--- 0x476ed0",
            "+++ 0x475070",
            "@@ -8,7 +8,7 @@",
            " mov eax,edx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ebx,eax",
            " mov eax,edx",
            " shr eax,0x13"
          ]
        },
        {
          "symbol": "vesabios.c::initialise_vesa_features_",
          "source": "E:\\library\\graphics\\drivers\\vesabios.c",
          "first": "0x4758cc",
          "second": "0x473a6c",
          "first_instruction_count": 94,
          "second_instruction_count": 94,
          "diff": [
            "--- 0x4758cc",
            "+++ 0x473a6c",
            "@@ -12,13 +12,13 @@",
            " fcomp m8[None+None*1+constant:333333333333f33f]",
            " fnstsw ax",
            " sahf ",
            "-cmp m2[None+None*1+0x725314],0x40",
            "+cmp m2[None+None*1+0x70fde4],0x40",
            " jbe local:64",
            " xor ecx,ecx",
            "-mov cx,m2[None+None*1+0x725316]",
            "+mov cx,m2[None+None*1+0x70fde6]",
            " push ecx",
            " xor ecx,ecx",
            "-mov cx,m2[None+None*1+0x725314]",
            "+mov cx,m2[None+None*1+0x70fde4]",
            " push ecx",
            " push text:'VESA ERROR - gran=%d, size=%d'",
            " lea ecx,m4[esp+None*1+0xc]",
            "@@ -34,23 +34,23 @@",
            " mov eax,0x40",
            " xor ecx,ecx",
            " mov edx,eax",
            "-mov cx,m2[None+None*1+0x725314]",
            "+mov cx,m2[None+None*1+0x70fde4]",
            " sar edx,0x1f",
            " idiv ecx",
            " mov m4[None+None*1+vesabios.c::_vesa_64k_step],eax",
            "-mov ah,m1[None+None*1+0x725312]",
            "+mov ah,m1[None+None*1+0x70fde2]",
            " test ah,0x1",
            " je local:67",
            " test ah,0x2",
            " je local:67",
            " xor edi,edi",
            " mov m4[None+None*1+vesabios.c::_read_window],edi",
            "-mov bh,m1[None+None*1+0x725312]",
            "+mov bh,m1[None+None*1+0x70fde2]",
            " test bh,0x1",
            " je local:52",
            " test bh,0x4",
            " jne local:80",
            "-mov ch,m1[None+None*1+0x725313]",
            "+mov ch,m1[None+None*1+0x70fde3]",
            " test ch,0x1",
            " je local:83",
            " test ch,0x4",
            "@@ -62,10 +62,10 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-cmp m2[None+None*1+0x725316],0x40",
            "+cmp m2[None+None*1+0x70fde6],0x40",
            " jne local:16",
            " jmp local:33",
            "-mov dh,m1[None+None*1+0x725313]",
            "+mov dh,m1[None+None*1+0x70fde3]",
            " test dh,0x1",
            " je local:74",
            " test dh,0x2"
          ]
        },
        {
          "symbol": "vesabios.c::initialise_vesa_line_start_",
          "source": "E:\\library\\graphics\\drivers\\vesabios.c",
          "first": "0x475a14",
          "second": "0x473bb4",
          "first_instruction_count": 43,
          "second_instruction_count": 43,
          "diff": [
            "--- 0x475a14",
            "+++ 0x473bb4",
            "@@ -18,7 +18,7 @@",
            " mov ebx,edx",
            " shr ebx,0x10",
            " imul ebx,ebp",
            "-mov m1[eax+None*1+0x71b956],bl",
            "+mov m1[eax+None*1+0x70db36],bl",
            " mov ebx,m4[None+None*1+video.c::_video_screen_width]",
            " add ebx,ecx",
            " dec ebx",
            "@@ -26,8 +26,8 @@",
            " jb vesabios.c::set_vesa_window_pos_+0x1",
            " mov ebx,0x10000",
            " sub ebx,ecx",
            "-mov m2[eax+None*1+0x71b954],bx",
            "-mov m1[eax+None*1+0x71b957],0x1",
            "+mov m2[eax+None*1+0x70db34],bx",
            "+mov m1[eax+None*1+0x70db37],0x1",
            " mov ecx,m4[None+None*1+video.c::_video_screen_width]",
            " add eax,0x8",
            " inc esi"
          ]
        },
        {
          "symbol": "video.c::display_video_screen_",
          "source": "E:\\library\\graphics\\video.c",
          "first": "0x471d3c",
          "second": "0x471c7c",
          "first_instruction_count": 23,
          "second_instruction_count": 23,
          "diff": [
            "--- 0x471d3c",
            "+++ 0x471c7c",
            "@@ -2,22 +2,22 @@",
            " push esi",
            " call ddraw.c::display_windows_screen_",
            " call palette.c::update_palette_registers_",
            "-mov edx,m4[None+None*1+fxpoly1.c::_heat_haze_index]",
            "+mov edx,m4[None+None*1+polygon.c::_heat_haze_index]",
            " inc edx",
            "-mov m4[None+None*1+fxpoly1.c::_heat_haze_index],edx",
            "+mov m4[None+None*1+polygon.c::_heat_haze_index],edx",
            " cmp edx,0x3",
            " jg local:14",
            " xor esi,esi",
            "-mov m4[None+None*1+fxpoly1.c::_polygons_per_frame],esi",
            "+mov m4[None+None*1+polygon.c::_polygons_per_frame],esi",
            " pop esi",
            " pop edx",
            " ret ",
            " push ebx",
            " xor ebx,ebx",
            "-mov m4[None+None*1+fxpoly1.c::_heat_haze_index],ebx",
            "+mov m4[None+None*1+polygon.c::_heat_haze_index],ebx",
            " pop ebx",
            " xor esi,esi",
            "-mov m4[None+None*1+fxpoly1.c::_polygons_per_frame],esi",
            "+mov m4[None+None*1+polygon.c::_polygons_per_frame],esi",
            " pop esi",
            " pop edx",
            " ret "
          ]
        },
        {
          "symbol": "views.c::enter_view_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x461a9c",
          "second": "0x461c3c",
          "first_instruction_count": 184,
          "second_instruction_count": 184,
          "diff": [
            "--- 0x461a9c",
            "+++ 0x461c3c",
            "@@ -8,15 +8,15 @@",
            " ja local:172",
            " jmp m4[None+eax*4+views.c::validate_view_mode_+0x2ac]",
            " mov eax,m4[None+None*1+views.c::_view_mode]",
            "-mov dl,m1[None+None*1+0x6748c5]",
            "+mov dl,m1[None+None*1+0x6678d5]",
            " xor ebp,ebp",
            " mov m4[None+None*1+views.c::_helmet_view_data],eax",
            " mov eax,m4[None+None*1+tads.c::_tads_active]",
            " mov m4[None+None*1+helmet.c::_helmet_heading],ebp",
            "-mov m4[None+None*1+0x674aec],eax",
            "+mov m4[None+None*1+0x667b28],eax",
            " mov eax,m4[None+None*1+target.c::_auto_target]",
            " mov m4[None+None*1+helmet.c::_helmet_pitch],ebp",
            "-mov m4[None+None*1+0x674af0],eax",
            "+mov m4[None+None*1+0x667b2c],eax",
            " test dl,0x20",
            " jne local:177",
            " mov edx,0x1",
            "@@ -33,11 +33,11 @@",
            " mov m4[None+None*1+views.c::_goggles_view_data],eax",
            " mov eax,m4[None+None*1+tads.c::_tads_active]",
            " xor ecx,ecx",
            "-mov m4[None+None*1+0x674af8],eax",
            "+mov m4[None+None*1+0x667b34],eax",
            " mov eax,m4[None+None*1+target.c::_auto_target]",
            " mov m4[None+None*1+goggles.c::_goggles_heading],ecx",
            "-mov m4[None+None*1+0x674afc],eax",
            "-mov ah,m1[None+None*1+0x6748c5]",
            "+mov m4[None+None*1+0x667b38],eax",
            "+mov ah,m1[None+None*1+0x6678d5]",
            " mov m4[None+None*1+goggles.c::_goggles_pitch],ecx",
            " test ah,0x20",
            " jne local:177",
            "@@ -89,16 +89,16 @@",
            " mov m4[None+None*1+views.c::_remote_camera_position],edx",
            " mov edx,m4[eax+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x8]",
            "-mov m4[None+None*1+0x674b28],eax",
            "+mov m4[None+None*1+0x667b1c],eax",
            " mov eax,m4[None+None*1+views.c::_remote_camera_position]",
            "-mov m4[None+None*1+0x674b24],edx",
            "-call fxterr.c::get_terrain_elevation_",
            "-mov edi,m4[None+None*1+0x674b28]",
            "+mov m4[None+None*1+0x667b18],edx",
            "+call terrain.c::get_terrain_elevation_",
            "+mov edi,m4[None+None*1+0x667b1c]",
            " add eax,0x400",
            " cmp eax,edi",
            " jge local:100",
            " mov eax,edi",
            "-mov m4[None+None*1+0x674b28],eax",
            "+mov m4[None+None*1+0x667b1c],eax",
            " add esp,0xc",
            " pop ebp",
            " pop edi",
            "@@ -117,8 +117,8 @@",
            " mov m4[None+None*1+views.c::_crash_camera_position],edx",
            " mov edx,m4[eax+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x8]",
            "-mov m4[None+None*1+0x674b3c],edx",
            "-mov m4[None+None*1+0x674b40],eax",
            "+mov m4[None+None*1+0x667b4c],edx",
            "+mov m4[None+None*1+0x667b50],eax",
            " imul eax,m4[None+None*1+random.c::_random_number_seed],0x41c64e6d",
            " add eax,0x3039",
            " mov m4[None+None*1+random.c::_random_number_seed],eax",
            "@@ -135,7 +135,7 @@",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            " mov edx,m4[eax+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,eax",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            " mov ebx,m4[eax+None*1+0x8]",
            "@@ -144,7 +144,7 @@",
            " jg local:158",
            " mov edx,0x3200",
            " xor ecx,ecx",
            "-call fxexplod.c::create_ground_explosion_",
            "+call explode.c::create_ground_explosion_",
            " mov m4[None+None*1+views.c::_air_crash],ecx",
            " xor esi,esi",
            " mov m4[None+None*1+views.c::_crash_timer],esi",
            "@@ -158,7 +158,7 @@",
            " ret ",
            " lea ebx,m4[esp+None*1+0x4]",
            " mov edx,0x3200",
            "-call fxexplod.c::create_air_explosion_",
            "+call explode.c::create_air_explosion_",
            " mov m4[None+None*1+views.c::_air_crash],0x1",
            " xor esi,esi",
            " mov m4[None+None*1+views.c::_crash_timer],esi"
          ]
        },
        {
          "symbol": "views.c::get_crash_camera_view_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x462be4",
          "second": "0x462d84",
          "first_instruction_count": 92,
          "second_instruction_count": 92,
          "diff": [
            "--- 0x462be4",
            "+++ 0x462d84",
            "@@ -34,9 +34,9 @@",
            " call matrix.c::get_transformation_matrix_",
            " mov eax,m4[None+None*1+views.c::_crash_camera_position]",
            " mov m4[esi+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x674b3c]",
            "+mov eax,m4[None+None*1+0x667b4c]",
            " mov m4[esi+None*1+0x4],eax",
            "-mov eax,m4[None+None*1+0x674b40]",
            "+mov eax,m4[None+None*1+0x667b50]",
            " mov m4[esi+None*1+0x8],eax",
            " mov edx,0x6400",
            " mov eax,m4[esi+None*1+0x18]"
          ]
        },
        {
          "symbol": "views.c::get_remote_camera_view_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x462810",
          "second": "0x4629b0",
          "first_instruction_count": 38,
          "second_instruction_count": 38,
          "diff": [
            "--- 0x462810",
            "+++ 0x4629b0",
            "@@ -10,11 +10,11 @@",
            " mov ecx,m4[eax+None*1+0x0]",
            " sub ecx,ebx",
            " mov m4[esp+None*1+0x0],ecx",
            "-mov esi,m4[None+None*1+0x674b24]",
            "+mov esi,m4[None+None*1+0x667b18]",
            " mov ecx,m4[eax+None*1+0x4]",
            " sub ecx,esi",
            " mov m4[esp+None*1+0x4],ecx",
            "-mov edi,m4[None+None*1+0x674b28]",
            "+mov edi,m4[None+None*1+0x667b1c]",
            " mov eax,m4[eax+None*1+0x8]",
            " sub eax,edi",
            " mov m4[esp+None*1+0x8],eax",
            "@@ -23,9 +23,9 @@",
            " call vector.c::get_3d_normalised_unit_vector_",
            " mov eax,m4[None+None*1+views.c::_remote_camera_position]",
            " mov m4[edx+None*1+0xfffffff4],eax",
            "-mov eax,m4[None+None*1+0x674b24]",
            "+mov eax,m4[None+None*1+0x667b18]",
            " mov m4[edx+None*1+0xfffffff8],eax",
            "-mov eax,m4[None+None*1+0x674b28]",
            "+mov eax,m4[None+None*1+0x667b1c]",
            " mov m4[edx+None*1+0xfffffffc],eax",
            " mov eax,esp",
            " call matrix.c::get_matrix_from_unit_vector_"
          ]
        },
        {
          "symbol": "views.c::get_spectator_camera_view_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x462754",
          "second": "0x4628f4",
          "first_instruction_count": 54,
          "second_instruction_count": 54,
          "diff": [
            "--- 0x462754",
            "+++ 0x4628f4",
            "@@ -38,9 +38,9 @@",
            " add ecx,0xc",
            " mov eax,m4[None+None*1+views.c::_spectator_camera_viewpoint]",
            " mov m4[ecx+None*1+0xfffffff4],eax",
            "-mov eax,m4[None+None*1+0x674ab4]",
            "+mov eax,m4[None+None*1+0x667ac4]",
            " mov m4[ecx+None*1+0xfffffff8],eax",
            "-mov eax,m4[None+None*1+0x674ab8]",
            "+mov eax,m4[None+None*1+0x667ac8]",
            " xor ebx,ebx",
            " mov m4[ecx+None*1+0xfffffffc],eax",
            " mov eax,m4[None+None*1+views.c::_spectator_camera_heading]"
          ]
        },
        {
          "symbol": "views.c::get_target_camera_view_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x4628e8",
          "second": "0x462a88",
          "first_instruction_count": 120,
          "second_instruction_count": 120,
          "diff": [
            "--- 0x4628e8",
            "+++ 0x462a88",
            "@@ -35,7 +35,7 @@",
            " call vector.c::get_3d_normalised_unit_vector_",
            " mov eax,ecx",
            " call targets.c::get_target_object_number_",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[edx+eax*4+0x0]",
            " mov eax,m4[eax+None*1+0xac]",
            " lea ecx,m4[None+eax*4+0x0]",
            "@@ -67,7 +67,7 @@",
            " sub edi,edx",
            " mov edx,m4[esp+None*1+0x1c]",
            " mov m4[esp+None*1+0x20],edi",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov esi,eax",
            " mov edx,ecx",
            " mov eax,ecx",
            "@@ -115,6 +115,6 @@",
            " ret ",
            " mov edx,m4[esp+None*1+0x1c]",
            " mov eax,m4[esp+None*1+0x18]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " add ecx,eax",
            " jmp local:83"
          ]
        },
        {
          "symbol": "views.c::get_target_lock_camera_view_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x462a70",
          "second": "0x462c10",
          "first_instruction_count": 97,
          "second_instruction_count": 97,
          "diff": [
            "--- 0x462a70",
            "+++ 0x462c10",
            "@@ -57,7 +57,7 @@",
            " mov m4[esp+None*1+0x8],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov ebp,m4[esp+None*1+0x8]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " add eax,0x400",
            " cmp eax,ebp",
            " jge local:92",
            "@@ -92,6 +92,6 @@",
            " ret ",
            " mov edx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " lea edx,m4[eax+None*1+0x400]",
            " jmp local:64"
          ]
        },
        {
          "symbol": "views.c::get_tracking_camera_view_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x4624f4",
          "second": "0x462694",
          "first_instruction_count": 141,
          "second_instruction_count": 141,
          "diff": [
            "--- 0x4624f4",
            "+++ 0x462694",
            "@@ -64,7 +64,7 @@",
            " add eax,edx",
            " mov edx,m4[None+None*1+views.c::_tracking_camera_pitch]",
            " call matrix.c::get_transformation_matrix_",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edx,m4[edi+None*1+0x0]",
            " mov ecx,m4[eax+edx*4+0x0]",
            " mov eax,edx"
          ]
        },
        {
          "symbol": "views.c::initialise_spectator_camera_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x4626e0",
          "second": "0x462880",
          "first_instruction_count": 15,
          "second_instruction_count": 15,
          "diff": [
            "--- 0x4626e0",
            "+++ 0x462880",
            "@@ -4,7 +4,7 @@",
            " mov m4[esp+None*1+0x0],edx",
            " mov eax,edx",
            " mov m4[esp+None*1+0x4],edx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov m4[esp+None*1+0x8],eax",
            " lea eax,m4[esp+None*1+0xc]",
            " call matrix.c::mat_identity_3x3_"
          ]
        },
        {
          "symbol": "views.c::set_apache_external_view_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x4615ac",
          "second": "0x46174c",
          "first_instruction_count": 8,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x4615ac",
            "+++ 0x46174c",
            "@@ -1,7 +1,7 @@",
            " mov eax,0xa",
            " push edx",
            " mov edx,eax",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je views.c::set_view_mode_+0x10",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "views.c::set_apache_goggles_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x461600",
          "second": "0x4617a0",
          "first_instruction_count": 10,
          "second_instruction_count": 10,
          "diff": [
            "--- 0x461600",
            "+++ 0x4617a0",
            "@@ -3,7 +3,7 @@",
            " mov eax,0xd",
            " push edx",
            " mov edx,eax",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je views.c::set_view_mode_+0x10",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "views.c::set_apache_helmet_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x4615e4",
          "second": "0x461784",
          "first_instruction_count": 8,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x4615e4",
            "+++ 0x461784",
            "@@ -1,7 +1,7 @@",
            " mov eax,0xc",
            " push edx",
            " mov edx,eax",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je views.c::set_view_mode_+0x10",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "views.c::set_apache_weapon_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x461628",
          "second": "0x4617c8",
          "first_instruction_count": 8,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x461628",
            "+++ 0x4617c8",
            "@@ -1,7 +1,7 @@",
            " mov eax,0xe",
            " push edx",
            " mov edx,eax",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je views.c::set_view_mode_+0x10",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "views.c::set_apache_weapon_target_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x461644",
          "second": "0x4617e4",
          "first_instruction_count": 8,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x461644",
            "+++ 0x4617e4",
            "@@ -1,7 +1,7 @@",
            " mov eax,0xf",
            " push edx",
            " mov edx,eax",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je views.c::set_view_mode_+0x10",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "views.c::set_co_pilot_front_view_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x461550",
          "second": "0x4616f0",
          "first_instruction_count": 8,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x461550",
            "+++ 0x4616f0",
            "@@ -1,7 +1,7 @@",
            " mov eax,0x5",
            " push edx",
            " mov edx,eax",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je views.c::set_view_mode_+0x10",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "views.c::set_drone_view_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x4615c8",
          "second": "0x461768",
          "first_instruction_count": 8,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x4615c8",
            "+++ 0x461768",
            "@@ -1,7 +1,7 @@",
            " mov eax,0xb",
            " push edx",
            " mov edx,eax",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je views.c::set_view_mode_+0x10",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "views.c::set_left_view_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x46156c",
          "second": "0x46170c",
          "first_instruction_count": 9,
          "second_instruction_count": 9,
          "diff": [
            "--- 0x46156c",
            "+++ 0x46170c",
            "@@ -2,7 +2,7 @@",
            " mov eax,m4[None+eax*4+views.c::_look_left]",
            " push edx",
            " mov edx,eax",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je views.c::set_view_mode_+0x10",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "views.c::set_pilot_front_view_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x461538",
          "second": "0x4616d8",
          "first_instruction_count": 8,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x461538",
            "+++ 0x4616d8",
            "@@ -1,7 +1,7 @@",
            " xor eax,eax",
            " push edx",
            " mov edx,eax",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je views.c::set_view_mode_+0x10",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "views.c::set_remote_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x461674",
          "second": "0x461814",
          "first_instruction_count": 8,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x461674",
            "+++ 0x461814",
            "@@ -1,7 +1,7 @@",
            " mov eax,0x11",
            " push edx",
            " mov edx,eax",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je views.c::set_view_mode_+0x10",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "views.c::set_right_view_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x46158c",
          "second": "0x46172c",
          "first_instruction_count": 9,
          "second_instruction_count": 9,
          "diff": [
            "--- 0x46158c",
            "+++ 0x46172c",
            "@@ -2,7 +2,7 @@",
            " mov eax,m4[None+eax*4+views.c::_look_right]",
            " push edx",
            " mov edx,eax",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je views.c::set_view_mode_+0x10",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "views.c::set_spectator_camera_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x462710",
          "second": "0x4628b0",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x462710",
            "+++ 0x4628b0",
            "@@ -18,7 +18,7 @@",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            " mov ecx,esp",
            "-mov eax,0x674abc",
            "+mov eax,0x667acc",
            " call 3dcore.c::get_heading_pitch_roll_",
            " add esp,0x4",
            " pop edi"
          ]
        },
        {
          "symbol": "views.c::set_spectator_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x46165c",
          "second": "0x4617fc",
          "first_instruction_count": 8,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x46165c",
            "+++ 0x4617fc",
            "@@ -1,7 +1,7 @@",
            " mov eax,0x10",
            " push edx",
            " mov edx,eax",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je views.c::set_view_mode_+0x10",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "views.c::set_target_lock_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x46168c",
          "second": "0x46182c",
          "first_instruction_count": 8,
          "second_instruction_count": 8,
          "diff": [
            "--- 0x46168c",
            "+++ 0x46182c",
            "@@ -1,7 +1,7 @@",
            " mov eax,0x12",
            " push edx",
            " mov edx,eax",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je views.c::set_view_mode_+0x10",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "views.c::set_view_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x4616ac",
          "second": "0x46184c",
          "first_instruction_count": 46,
          "second_instruction_count": 46,
          "diff": [
            "--- 0x4616ac",
            "+++ 0x46184c",
            "@@ -1,6 +1,6 @@",
            " push edx",
            " mov edx,eax",
            "-cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "+cmp m4[None+None*1+gameloop.c::_following_mate],0x0",
            " je local:7",
            " xor eax,eax",
            " pop edx"
          ]
        },
        {
          "symbol": "views.c::target_lock_valid_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x462a54",
          "second": "0x462bf4",
          "first_instruction_count": 12,
          "second_instruction_count": 12,
          "diff": [
            "--- 0x462a54",
            "+++ 0x462bf4",
            "@@ -1,5 +1,5 @@",
            " push edx",
            "-mov edx,m4[None+None*1+0x5b3c6c]",
            "+mov edx,m4[None+None*1+0x5a6c7c]",
            " cmp edx,0x1",
            " je local:6",
            " cmp edx,0x2"
          ]
        },
        {
          "symbol": "views.c::update_view_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x461e34",
          "second": "0x461fd4",
          "first_instruction_count": 409,
          "second_instruction_count": 409,
          "diff": [
            "--- 0x461e34",
            "+++ 0x461fd4",
            "@@ -38,7 +38,7 @@",
            " call 3dconfig.c::set_3d_visual_configuration_",
            " mov eax,esp",
            " mov ecx,0x24",
            "-call fx3dmain.c::draw_3d_visual_",
            "+call 3dmain.c::draw_3d_visual_",
            " push edi",
            " mov eax,ecx",
            " shr ecx,0x2",
            "@@ -90,7 +90,7 @@",
            " mov eax,0xe",
            " call views.c::set_view_mode_",
            " jmp local:13",
            "-mov edx,m4[None+None*1+0x5b3c6c]",
            "+mov edx,m4[None+None*1+0x5a6c7c]",
            " cmp edx,0x1",
            " je local:13",
            " cmp edx,0x2",
            "@@ -128,7 +128,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov eax,m4[edx+eax*4+0x5a1434]",
            "+mov eax,m4[edx+eax*4+0x594444]",
            " test eax,eax",
            " je local:157",
            " cmp m4[eax+None*1+0x180],0x0",
            "@@ -138,7 +138,7 @@",
            " mov eax,0xb",
            " mov esi,0x1",
            " call views.c::set_view_mode_",
            "-mov m4[None+None*1+fxgloop.c::_following_mate],esi",
            "+mov m4[None+None*1+gameloop.c::_following_mate],esi",
            " mov edi,m4[None+None*1+views.c::_crash_timer]",
            " cmp edi,0x40000000",
            " jbe local:199",
            "@@ -155,15 +155,15 @@",
            " jmp local:13",
            " cmp eax,0x6",
            " je local:121",
            "-call fxgloop.c::two_player_exit_gameloop_",
            "+call gameloop.c::two_player_exit_gameloop_",
            " jmp local:141",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],ecx",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],ecx",
            " jmp local:141",
            " mov ebx,m4[None+None*1+gamedata.c::_game_mode]",
            " cmp ebx,0x3",
            " jne local:167",
            " xor edi,edi",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],edi",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],edi",
            " jmp local:141",
            " cmp ebx,0x2",
            " jne local:189",
            "@@ -176,7 +176,7 @@",
            " sub eax,edx",
            " shl eax,0x3",
            " mov edx,eax",
            "-mov eax,m4[edx+eax*4+0x5a1434]",
            "+mov eax,m4[edx+eax*4+0x594444]",
            " test eax,eax",
            " je local:183",
            " cmp m4[eax+None*1+0x180],0x0",
            "@@ -185,7 +185,7 @@",
            " jne local:186",
            " call apnet.c::network_send_user_left_game_",
            " xor ebx,ebx",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],ebx",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],ebx",
            " jmp local:141",
            " cmp ebx,0x6",
            " je local:169",
            "@@ -215,7 +215,7 @@",
            " mov edi,0x1",
            " xor esi,esi",
            " mov m4[None+None*1+views.c::_first_time_flag],edi",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],esi",
            "+mov m4[None+None*1+gameloop.c::_game_loop_active],esi",
            " jmp local:13",
            " call views.c::set_primary_visual_viewport_",
            " mov ecx,0x30",
            "@@ -292,7 +292,7 @@",
            " mov eax,gamedata.c::_game_visual_config",
            " call 3dconfig.c::set_3d_visual_configuration_",
            " mov eax,esp",
            "-call fx3dmain.c::draw_3d_visual_",
            "+call 3dmain.c::draw_3d_visual_",
            " jmp local:63",
            " call views.c::set_primary_visual_viewport_",
            " mov edx,esp",
            "@@ -301,7 +301,7 @@",
            " mov eax,gamedata.c::_game_visual_config",
            " call 3dconfig.c::set_3d_visual_configuration_",
            " mov eax,esp",
            "-call fx3dmain.c::draw_3d_visual_",
            "+call 3dmain.c::draw_3d_visual_",
            " jmp local:63",
            " call views.c::set_primary_visual_viewport_",
            " mov eax,esp",
            "@@ -337,7 +337,7 @@",
            " mov eax,gamedata.c::_game_visual_config",
            " call 3dconfig.c::set_3d_visual_configuration_",
            " mov eax,esp",
            "-call fx3dmain.c::draw_3d_visual_",
            "+call 3dmain.c::draw_3d_visual_",
            " jmp local:63",
            " call views.c::set_primary_visual_viewport_",
            " mov eax,esp",
            "@@ -345,7 +345,7 @@",
            " mov eax,gamedata.c::_game_visual_config",
            " call 3dconfig.c::set_3d_visual_configuration_",
            " mov eax,esp",
            "-call fx3dmain.c::draw_3d_visual_",
            "+call 3dmain.c::draw_3d_visual_",
            " jmp local:63",
            " call views.c::set_primary_visual_viewport_",
            " mov eax,gamedata.c::_game_visual_config",
            "@@ -353,7 +353,7 @@",
            " mov eax,esp",
            " call views.c::get_spectator_camera_view_",
            " mov eax,esp",
            "-call fx3dmain.c::draw_3d_visual_",
            "+call 3dmain.c::draw_3d_visual_",
            " jmp local:63",
            " call views.c::set_primary_visual_viewport_",
            " mov eax,gamedata.c::_game_visual_config",
            "@@ -361,7 +361,7 @@",
            " mov eax,esp",
            " call views.c::get_remote_camera_view_",
            " mov eax,esp",
            "-call fx3dmain.c::draw_3d_visual_",
            "+call 3dmain.c::draw_3d_visual_",
            " jmp local:63",
            " call views.c::set_primary_visual_viewport_",
            " mov eax,gamedata.c::_game_visual_config",
            "@@ -379,7 +379,7 @@",
            " mov eax,esp",
            " call views.c::get_crash_camera_view_",
            " mov eax,esp",
            "-call fx3dmain.c::draw_3d_visual_",
            "+call 3dmain.c::draw_3d_visual_",
            " jmp local:63",
            " call views.c::set_primary_visual_viewport_",
            " mov eax,gamedata.c::_game_visual_config",
            "@@ -389,7 +389,7 @@",
            " add eax,0x8",
            " call views.c::get_tracking_camera_view_",
            " mov eax,esp",
            "-call fx3dmain.c::draw_3d_visual_",
            "+call 3dmain.c::draw_3d_visual_",
            " jmp local:63",
            " push 0x93c",
            " push text:'\\\\apache\\\\source\\\\avionics\\\\views.c'"
          ]
        },
        {
          "symbol": "views.c::validate_view_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x46179c",
          "second": "0x46193c",
          "first_instruction_count": 231,
          "second_instruction_count": 231,
          "diff": [
            "--- 0x46179c",
            "+++ 0x46193c",
            "@@ -194,7 +194,7 @@",
            " pop ebp",
            " pop edx",
            " ret ",
            "-mov ebp,m4[None+None*1+0x5b3c6c]",
            "+mov ebp,m4[None+None*1+0x5a6c7c]",
            " cmp ebp,0x1",
            " jne local:205",
            " mov edx,0x1"
          ]
        },
        {
          "symbol": "vstxline.asm::_draw_textured_xored_video_line",
          "source": "\\library\\graphics\\vstxline.asm",
          "first": "0x4c5a24",
          "second": "0x4b8ff0",
          "first_instruction_count": 217,
          "second_instruction_count": 217,
          "diff": [
            "--- 0x4c5a24",
            "+++ 0x4b8ff0",
            "@@ -11,7 +11,7 @@",
            " cmp edx,esi",
            " jbe local:13",
            " or ebp,0x1",
            "-jmp m4[None+ebp*4+constant:785a4c00]",
            "+jmp m4[None+ebp*4+constant:44904b00]",
            " mov edi,edx",
            " inc edi",
            " mov ebp,edx"
          ]
        },
        {
          "symbol": "vsxline.asm::_draw_xored_video_line",
          "source": "\\library\\graphics\\vsxline.asm",
          "first": "0x4c58dc",
          "second": "0x4b8ea8",
          "first_instruction_count": 176,
          "second_instruction_count": 176,
          "diff": [
            "--- 0x4c58dc",
            "+++ 0x4b8ea8",
            "@@ -11,7 +11,7 @@",
            " cmp edx,esi",
            " jbe local:13",
            " or ebp,0x1",
            "-jmp m4[None+ebp*4+constant:25594c00]",
            "+jmp m4[None+ebp*4+constant:f18e4b00]",
            " mov edi,edx",
            " inc edi",
            " mov ebp,edx"
          ]
        },
        {
          "symbol": "war.c::deinitialise_war_model_",
          "source": "E:\\apache\\source\\warmodel\\war.c",
          "first": "0x463028",
          "second": "0x4631c8",
          "first_instruction_count": 37,
          "second_instruction_count": 37,
          "diff": [
            "--- 0x463028",
            "+++ 0x4631c8",
            "@@ -14,14 +14,14 @@",
            " call war.c::release_war_model_sector_side_",
            " mov ebx,ecx",
            " xor edx,edx",
            "-mov eax,m4[esi+None*1+0x6ab694]",
            "+mov eax,m4[esi+None*1+0x69e6a4]",
            " mov m4[esi+None*1+war.c::_war_model],edx",
            " mov edx,edi",
            " add esi,0x8",
            " call war.c::release_war_model_sector_side_",
            " xor ebx,ebx",
            " inc ecx",
            "-mov m4[esi+None*1+0x6ab68c],ebx",
            "+mov m4[esi+None*1+0x69e69c],ebx",
            " cmp ecx,0x40",
            " jl local:10",
            " inc edi"
          ]
        },
        {
          "symbol": "war.c::initialise_war_model_",
          "source": "E:\\apache\\source\\warmodel\\war.c",
          "first": "0x462d30",
          "second": "0x462ed0",
          "first_instruction_count": 213,
          "second_instruction_count": 213,
          "diff": [
            "--- 0x462d30",
            "+++ 0x462ed0",
            "@@ -153,7 +153,7 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x4],edx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,esp",
            " mov m4[esp+None*1+0x8],eax",
            " mov eax,ecx",
            "@@ -200,7 +200,7 @@",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[esp+None*1+0x10],edx",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " lea edx,m4[esp+None*1+0xc]",
            " mov m4[esp+None*1+0x14],eax",
            " mov eax,ecx"
          ]
        },
        {
          "symbol": "war.c::initialise_war_model_enemy_sector_",
          "source": "E:\\apache\\source\\warmodel\\war.c",
          "first": "0x463184",
          "second": "0x463324",
          "first_instruction_count": 71,
          "second_instruction_count": 71,
          "diff": [
            "--- 0x463184",
            "+++ 0x463324",
            "@@ -8,7 +8,7 @@",
            " lea eax,m4[None+edx*8+0x0]",
            " shl ebx,0x9",
            " add ebx,eax",
            "-mov edx,m4[ebx+None*1+0x6ab694]",
            "+mov edx,m4[ebx+None*1+0x69e6a4]",
            " test edx,edx",
            " je local:18",
            " add esp,0x4",
            "@@ -18,16 +18,16 @@",
            " ret ",
            " push esi",
            " call war.c::get_next_war_model_sector_side_",
            "-mov m4[ebx+None*1+0x6ab694],eax",
            "+mov m4[ebx+None*1+0x69e6a4],eax",
            " mov m4[eax+None*1+0x4],edx",
            "-mov eax,m4[ebx+None*1+0x6ab694]",
            "+mov eax,m4[ebx+None*1+0x69e6a4]",
            " mov m1[eax+None*1+0x2c],0x0",
            "-mov eax,m4[ebx+None*1+0x6ab694]",
            "+mov eax,m4[ebx+None*1+0x69e6a4]",
            " xor esi,esi",
            " mov m1[eax+None*1+0x2d],0x0",
            " mov ecx,esi",
            " xor eax,eax",
            "-mov edx,m4[ebx+None*1+0x6ab694]",
            "+mov edx,m4[ebx+None*1+0x69e6a4]",
            " add eax,0x4",
            " add edx,ecx",
            " mov m4[edx+eax*1+0x4],0x7fffffff",
            "@@ -43,7 +43,7 @@",
            " xor eax,eax",
            " pop esi",
            " add eax,0x4",
            "-mov edx,m4[ecx+None*1+0x6ab694]",
            "+mov edx,m4[ecx+None*1+0x69e6a4]",
            " mov m4[edx+eax*1+0x2c],0x0",
            " cmp eax,0x20",
            " jne local:44",
            "@@ -53,7 +53,7 @@",
            " add ecx,eax",
            " xor eax,eax",
            " add eax,0x4",
            "-mov edx,m4[ecx+None*1+0x6ab694]",
            "+mov edx,m4[ecx+None*1+0x69e6a4]",
            " mov m4[edx+eax*1+0x4c],0x0",
            " cmp eax,0x20",
            " jne local:54"
          ]
        },
        {
          "symbol": "war.c::initialise_warmodel_map_",
          "source": "E:\\apache\\source\\warmodel\\war.c",
          "first": "0x4634c8",
          "second": "0x463668",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x4634c8",
            "+++ 0x463668",
            "@@ -14,7 +14,7 @@",
            " pop ebx",
            " add eax,0x70",
            " xor dl,dl",
            "-mov m1[eax+None*1+views.c::_remote_camera_position],dl",
            "+mov m1[eax+None*1+views.c::_goggles_view_data],dl",
            " cmp eax,0x36b00",
            " jne local:14",
            " pop edx"
          ]
        },
        {
          "symbol": "wcoll.c::bound_move_with_ground_",
          "source": "E:\\apache\\source\\weapons\\wcoll.c",
          "first": "0x44e564",
          "second": "0x44e8e4",
          "first_instruction_count": 95,
          "second_instruction_count": 95,
          "diff": [
            "--- 0x44e564",
            "+++ 0x44e8e4",
            "@@ -10,16 +10,16 @@",
            " add eax,m4[esi+None*1+0x0]",
            " mov ecx,m4[esi+None*1+0x4]",
            " mov m4[None+None*1+wcoll.c::_move_end],eax",
            "-mov eax,m4[None+None*1+0x672a4c]",
            "+mov eax,m4[None+None*1+0x665a5c]",
            " mov ebx,m4[esi+None*1+0x8]",
            " add eax,ecx",
            " mov edx,wcoll.c::_move_end",
            "-mov m4[None+None*1+0x672a40],eax",
            "-mov eax,m4[None+None*1+0x672a50]",
            "+mov m4[None+None*1+0x665a50],eax",
            "+mov eax,m4[None+None*1+0x665a60]",
            " lea ecx,m4[esp+None*1+0xc]",
            " add eax,ebx",
            " mov ebx,esp",
            "-mov m4[None+None*1+0x672a44],eax",
            "+mov m4[None+None*1+0x665a54],eax",
            " mov eax,wcoll.c::_move_start",
            " call wcoll.c::do_funky_ground_intercept_",
            " test eax,eax",
            "@@ -58,13 +58,13 @@",
            " call wcoll.c::do_funky_ground_intercept_",
            " mov eax,m4[None+None*1+wcoll.c::_bounded_end]",
            " sub eax,m4[None+None*1+wcoll.c::_move_start]",
            "-mov edi,m4[None+None*1+0x672a4c]",
            "+mov edi,m4[None+None*1+0x665a5c]",
            " mov m4[None+None*1+wcoll.c::_bounded_move],eax",
            "-mov eax,m4[None+None*1+0x672a34]",
            "+mov eax,m4[None+None*1+0x665a44]",
            " xor ebp,ebp",
            " sub eax,edi",
            "-mov m4[None+None*1+0x672a5c],ebp",
            "-mov m4[None+None*1+0x672a58],eax",
            "+mov m4[None+None*1+0x665a6c],ebp",
            "+mov m4[None+None*1+0x665a68],eax",
            " mov eax,0x1",
            " add esp,0x24",
            " pop ebp"
          ]
        },
        {
          "symbol": "wcoll.c::died_of_old_age_",
          "source": "E:\\apache\\source\\weapons\\wcoll.c",
          "first": "0x44e678",
          "second": "0x44e9f8",
          "first_instruction_count": 42,
          "second_instruction_count": 42,
          "diff": [
            "--- 0x44e678",
            "+++ 0x44e9f8",
            "@@ -7,7 +7,7 @@",
            " shl eax,0x2",
            " add eax,edx",
            " mov edx,m4[esi+None*1+0xc]",
            "-cmp edx,m4[None+eax*8+0x672a9c]",
            "+cmp edx,m4[None+eax*8+0x665aac]",
            " jge local:13",
            " test m1[esi+None*1+0x14],0x2",
            " je local:29",
            "@@ -16,7 +16,7 @@",
            " sub eax,edx",
            " shl eax,0x2",
            " add eax,edx",
            "-fild m4[None+eax*8+0x672a98]",
            "+fild m4[None+eax*8+0x665aa8]",
            " fmul m8[None+None*1+constant:000000000000f83f]",
            " fild m4[esi+None*1+0x4]",
            " fcompp "
          ]
        },
        {
          "symbol": "wcoll.c::do_funky_ground_intercept_",
          "source": "E:\\apache\\source\\weapons\\wcoll.c",
          "first": "0x44e700",
          "second": "0x44ea80",
          "first_instruction_count": 130,
          "second_instruction_count": 130,
          "diff": [
            "--- 0x44e700",
            "+++ 0x44ea80",
            "@@ -8,7 +8,7 @@",
            " mov ebx,ecx",
            " mov edx,m4[edx+None*1+0x4]",
            " mov eax,m4[ebp+None*1+0x0]",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,m4[ebp+None*1+0x8]",
            " sub edx,eax",
            " mov eax,edx",
            "@@ -100,7 +100,7 @@",
            " add esi,eax",
            " mov eax,m4[ebx+None*1+0x0]",
            " mov m4[ebx+None*1+0x8],esi",
            "-call fxterr.c::get_terrain_elevation_",
            "+call terrain.c::get_terrain_elevation_",
            " mov edx,m4[ebx+None*1+0x8]",
            " sub edx,eax",
            " test edx,edx"
          ]
        },
        {
          "symbol": "wcoll.c::hit_map_edge_",
          "source": "E:\\apache\\source\\weapons\\wcoll.c",
          "first": "0x44e470",
          "second": "0x44e7f0",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x44e470",
            "+++ 0x44e7f0",
            "@@ -5,7 +5,7 @@",
            " jl local:16",
            " cmp edx,0xfffffff",
            " jg local:16",
            "-mov ebx,m4[None+None*1+0x672a40]",
            "+mov ebx,m4[None+None*1+0x665a50]",
            " test ebx,ebx",
            " jl local:16",
            " cmp ebx,0xfffffff"
          ]
        },
        {
          "symbol": "wctomb::wctomb_",
          "source": "wctomb",
          "first": "0x4ce873",
          "second": "0x4c1ce3",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x4ce873",
            "+++ 0x4c1ce3",
            "@@ -12,7 +12,7 @@",
            " push 0x200",
            " mov edx,m4[None+None*1+mbinit::___MBCodePage]",
            " push edx",
            "-call m4[None+None*1+constant:ac500d00]",
            "+call m4[None+None*1+constant:ac7f0c00]",
            " test eax,eax",
            " jne local:18",
            " mov eax,0xffffffff"
          ]
        },
        {
          "symbol": "winfo.c::_patch_apache_ships_info",
          "source": "E:\\apache\\source\\weapons\\winfo.c",
          "first": "0x451970",
          "second": "0x451cf0",
          "first_instruction_count": 189,
          "second_instruction_count": 204,
          "diff": [
            "--- 0x451970",
            "+++ 0x451cf0",
            "@@ -3,8 +3,9 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[ecx+None*1+0x21c0004e],dh",
            "-dec esi",
            "+add m1[eax+None*1+0xa4004d52],bl",
            "+push edx",
            "+dec ebp",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            "@@ -19,10 +20,9 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add ah,cl",
            "-and m4[esi+None*1+0x0],ecx",
            "-fsub m4[ecx+None*1+0x0]",
            "-dec esi",
            "+add m1[eax+None*1+0xbc004d52],dh",
            "+push edx",
            "+dec ebp",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            "@@ -37,15 +37,18 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add ah,ah",
            "-and m4[esi+None*1+0x0],ecx",
            "-cld ",
            "-and m4[esi+None*1+0x0],ecx",
            "-add m4[eax+None*1+0x0],eax",
            "-add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "-add m1[eax+None*1+0x0],al",
            "-xor m1[ebp+None*1+0x0],dh",
            "+add al,cl",
            "+push edx",
            "+dec ebp",
            "+add al,ah",
            "+push edx",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:51",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add cl,ch",
            "@@ -54,30 +57,33 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+eax*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-or m1[edx+None*1+0x0],ah",
            "-dec esi",
            "-add m1[eax+None*1+0x0],ah",
            "-and cl,m1[esi+None*1+0x0]",
            "-add m4[eax+None*1+0x0],eax",
            "-add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "-add m1[eax+None*1+0x0],al",
            "-xor m1[ebp+None*1+0x0],dh",
            "+in al,dx",
            "+push edx",
            "+dec ebp",
            "+add m1[ebx+edx*2+0x0],al",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:70",
            " add m1[eax+None*1+0x0],al",
            " and m1[edi+None*1+0x0],ah",
            " mov al,m1[None+None*1+0x32000001]",
            " add m1[eax+None*1+0x0],al",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],ch",
            "-and cl,m1[esi+None*1+0x0]",
            "-inc eax",
            "-and cl,m1[esi+None*1+0x0]",
            "-add m4[eax+None*1+0x0],eax",
            "-add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "-add m1[eax+None*1+0x0],al",
            "-adc m1[edi+None*1+0x0],ah",
            "+add m1[ebx+edx*2+0x0],cl",
            "+dec ebp",
            "+add m1[ebx+edx*2+0x0],ah",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dl",
            "+daa ",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "@@ -85,10 +91,10 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x22],cl",
            "-dec esi",
            "-add m1[eax+None*1+0x22],al",
            "-dec esi",
            "+add m1[ebx+edx*2+0x0],ch",
            "+dec ebp",
            "+add m1[ebx+edx*2+0x0],ah",
            "+dec ebp",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            "@@ -103,15 +109,15 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x22],ah",
            "-dec esi",
            "-add m1[edx+None*1+0x4e],dh",
            "-add m1[ecx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[ebx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],dh",
            "-jne local:114",
            "+add m1[ebx+edx*2+0x4d],al",
            "+add m1[eax+None*1+0x53],bl",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:120",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x1],al",
            "@@ -119,67 +125,76 @@",
            " enter 0x0,0x0",
            " add al,0x0",
            " add m1[eax+None*1+0x0],al",
            "-jl winfo.c::_patch_apache_ships_info+0x12c",
            "-dec esi",
            "-add m1[eax+None*1+0x0],ah",
            "-and cl,m1[esi+None*1+0x0]",
            "-add m4[eax+None*1+0x0],eax",
            "-add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "-add m1[eax+None*1+0x0],al",
            "-xor m1[ebp+None*1+0x0],dh",
            "+pushal ",
            "+push ebx",
            "+dec ebp",
            "+add m1[ebx+edx*2+0x0],al",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:138",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0x0],al",
            " add al,m1[eax+None*1+0x0]",
            " add m1[esi+None*1+0x4000000],dl",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0xa4004e22],dl",
            "-and cl,m1[esi+None*1+0x0]",
            "+add m1[ebx+edx*2+0x4d],dh",
            "+add m1[eax+None*1+0x1004d53],cl",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:151",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add ch,bh",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+eax*1+0x0],ah",
            "+add m1[edx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0xa8004d53],dl",
            "+push ebx",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:167",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x1],bl",
            "+add m1[eax+None*1+0x0],al",
            "+xor al,m1[eax+None*1+0x0]",
            "+add m1[eax+None*1+0x0],al",
            " add m4[eax+None*1+0x0],eax",
            " add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "-add m1[eax+None*1+0x0],al",
            "-xor m1[ebp+None*1+0x0],dh",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add ch,bh",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+eax*1+0x0],ah",
            "-add m1[edx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[edx+None*1+0x22c4004e],ch",
            "-dec esi",
            "-add m1[ecx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[ebx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],dh",
            "-jne local:158",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[ebx+None*1+0x1],bl",
            "-add m1[eax+None*1+0x0],al",
            "-xor al,m1[eax+None*1+0x0]",
            "-add m1[eax+None*1+0x0],al",
            "-add m4[eax+None*1+0x0],eax",
            "-add m1[eax+None*1+0x0],al",
            "-shl m1[edx+None*1+0x0],0x1",
            "-dec esi",
            "-add ah,bl",
            "-and cl,m1[esi+None*1+0x0]",
            "-add m4[eax+None*1+0x0],eax",
            "-add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "-add m1[eax+None*1+0x0],al",
            "-xor m1[ebp+None*1+0x0],dh",
            "+mov ah,0x53",
            "+dec ebp",
            "+add al,al",
            "+push ebx",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:186",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0xc8000000],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[None+None*1+0xe8000000],al",
            "-and cl,m1[esi+None*1+0x0]",
            "-call 0x1456933",
            "+add m1[None+None*1+0xcc000000],al",
            "+push ebx",
            "+dec ebp",
            "+add ah,cl",
            "+push ebx",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al"
          ]
        },
        {
          "symbol": "winfo.c::_patch_hind_ships_info",
          "source": "E:\\apache\\source\\weapons\\winfo.c",
          "first": "0x4517c0",
          "second": "0x451b40",
          "first_instruction_count": 195,
          "second_instruction_count": 211,
          "diff": [
            "--- 0x4517c0",
            "+++ 0x451b40",
            "@@ -2,8 +2,9 @@",
            " add m1[eax+eax*1+0x0],ah",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[ecx+None*1+0x21c0004e],dh",
            "-dec esi",
            "+add m1[eax+None*1+0xa4004d52],bl",
            "+push edx",
            "+dec ebp",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            "@@ -19,15 +20,13 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-and m4[esi+None*1+0x0],ecx",
            "-fsub m4[ecx+None*1+0x0]",
            "-dec esi",
            "-add m1[ecx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[ebx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],dl",
            "-daa ",
            "+mov al,0x52",
            "+dec ebp",
            "+add m1[edx+edx*2+0x1004d],bh",
            "+add m1[eax+None*1+0x0],al",
            "+add eax,m4[eax+None*1+0x0]",
            "+add m1[eax+None*1+0x0],al",
            "+adc m1[edi+None*1+0x0],ah",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "@@ -36,15 +35,18 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add ah,ah",
            "-and m4[esi+None*1+0x0],ecx",
            "-cld ",
            "-and m4[esi+None*1+0x0],ecx",
            "-add m4[eax+None*1+0x0],eax",
            "-add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "-add m1[eax+None*1+0x0],al",
            "-xor m1[ebp+None*1+0x0],dh",
            "+add al,cl",
            "+push edx",
            "+dec ebp",
            "+add al,ah",
            "+push edx",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:49",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add cl,ch",
            "@@ -52,42 +54,27 @@",
            " add m1[eax+eax*1+0x0],ah",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],cl",
            "-and cl,m1[esi+None*1+0x0]",
            "-and m1[edx+None*1+0x0],ah",
            "-dec esi",
            "-add m1[ecx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[ebx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],dh",
            "-jne local:65",
            "+add ah,ch",
            "+push edx",
            "+dec ebp",
            "+add m1[ebx+edx*2+0x0],al",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:67",
            " add m1[eax+None*1+0x0],al",
            " and m1[edi+None*1+0x0],ah",
            " mov al,m1[None+None*1+0x1e000001]",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],ch",
            "-and cl,m1[esi+None*1+0x0]",
            "-inc eax",
            "-and cl,m1[esi+None*1+0x0]",
            "-add m4[eax+None*1+0x0],eax",
            "-add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "-add m1[eax+None*1+0x0],al",
            "-adc m1[edi+None*1+0x0],ah",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-mov m4[None+None*1+0x1e000001],eax",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x22],cl",
            "-dec esi",
            "-add m1[eax+None*1+0x22],al",
            "-dec esi",
            "+add m1[ebx+edx*2+0x0],cl",
            "+dec ebp",
            "+add m1[ebx+edx*2+0x0],ah",
            "+dec ebp",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            "@@ -97,22 +84,40 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "+mov m4[None+None*1+0x1e000001],eax",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+edx*2+0x0],ch",
            "+dec ebp",
            "+add m1[ebx+edx*2+0x0],ah",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dl",
            "+daa ",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            " cmp al,0x1",
            " add m1[eax+None*1+0x0],al",
            " xor al,m1[eax+None*1+0x0]",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-pushal ",
            "-and cl,m1[esi+None*1+0x0]",
            "-je winfo.c::_patch_hind_ships_info+0x10c",
            "-dec esi",
            "-add m1[ecx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[ebx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],dh",
            "-jne local:116",
            "+inc esp",
            "+push ebx",
            "+dec ebp",
            "+add m1[eax+None*1+0x53],bl",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:120",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x1],al",
            "@@ -120,14 +125,16 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[edx+None*1+0x4e],bh",
            "-add m1[eax+None*1+0x0],ah",
            "-and cl,m1[esi+None*1+0x0]",
            "-add m4[eax+None*1+0x0],eax",
            "-add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "-add m1[eax+None*1+0x0],al",
            "-xor m1[ebp+None*1+0x0],dh",
            "+add m1[eax+None*1+0x53],ah",
            "+dec ebp",
            "+add m1[ebx+edx*2+0x0],al",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:137",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0x0],al",
            "@@ -136,15 +143,17 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x29],cl",
            "-dec esi",
            "-add m1[ecx+ebp*1+0x4e],dl",
            "-add m1[ecx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[ebx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],dh",
            "-jne local:148",
            "+add m1[edx+ebx*2+0x0],ch",
            "+dec ebp",
            "+add m1[eax+None*1+0x0],bh",
            "+pop edx",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:156",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add ch,bh",
            "@@ -152,14 +161,15 @@",
            " add m1[eax+eax*1+0x0],ah",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[edx+None*1+0x22c4004e],ch",
            "-dec esi",
            "-add m1[ecx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[ebx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],dh",
            "-jne local:163",
            "+add m1[eax+None*1+0xa8004d53],dl",
            "+push ebx",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:172",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x1],bl",
            "@@ -168,24 +178,30 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-shl m1[edx+None*1+0x0],0x1",
            "-dec esi",
            "-add ah,bl",
            "-and cl,m1[esi+None*1+0x0]",
            "-add m4[eax+None*1+0x0],eax",
            "-add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "-add m1[eax+None*1+0x0],al",
            "-xor m1[ebp+None*1+0x0],dh",
            "+mov ah,0x53",
            "+dec ebp",
            "+add al,al",
            "+push ebx",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:191",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0xc8000000],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add al,ch",
            "-and cl,m1[esi+None*1+0x0]",
            "-call 0x1456783",
            "+add ah,cl",
            "+push ebx",
            "+dec ebp",
            "+add ah,cl",
            "+push ebx",
            "+dec ebp",
            "+add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al"
          ]
        },
        {
          "symbol": "winfo.c::_patch_info",
          "source": "E:\\apache\\source\\weapons\\winfo.c",
          "first": "0x44e880",
          "second": "0x44ec00",
          "first_instruction_count": 51,
          "second_instruction_count": 50,
          "diff": [
            "--- 0x44e880",
            "+++ 0x44ec00",
            "@@ -4,9 +4,9 @@",
            " add m1[eax+None*1+0x0],al",
            " inc m4[eax+None*1+0x0]",
            " add m1[eax+None*1+0x0],al",
            "-in al,dx",
            "-adc ecx,m4[esi+None*1+0x0]",
            "-add m1[esi+ecx*2+0x0],dl",
            "+rol m1[ebp+ecx*2+0x0],0x1",
            "+in al,0x44",
            "+dec ebp",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "@@ -22,10 +22,12 @@",
            " add m1[eax+None*1+0x0],al",
            " add bh,bh",
            " add m1[eax+None*1+0x0],al",
            "-add m1[esp+edx*1+0x0],cl",
            "-dec esi",
            "-add m1[esp+edx*1+0x0],bl",
            "-dec esi",
            "+add al,dh",
            "+inc esp",
            "+dec ebp",
            "+add m1[eax+None*1+0x0],al",
            "+inc ebp",
            "+dec ebp",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "@@ -41,11 +43,8 @@",
            " add m1[eax+None*1+0x0],al",
            " inc m4[eax+None*1+0x0]",
            " add m1[eax+None*1+0x0],al",
            "-and al,0x14",
            "-dec esi",
            "-add m1[eax+None*1+0x0],bh",
            "-adc al,0x4e",
            "+or m1[ebp+None*1+0x4d],al",
            "+add m1[None+eax*2+0x4d],bl",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[None+None*1+0x50000000],al",
            "+add eax,0x50000000",
            " ret "
          ]
        },
        {
          "symbol": "winfo.c::get_object_radar_floor_",
          "source": "E:\\apache\\source\\weapons\\winfo.c",
          "first": "0x4537b8",
          "second": "0x453b38",
          "first_instruction_count": 33,
          "second_instruction_count": 33,
          "diff": [
            "--- 0x4537b8",
            "+++ 0x453b38",
            "@@ -14,7 +14,7 @@",
            " cmp eax,0x20e",
            " je local:7",
            " push edx",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edx,m4[edx+eax*4+0x0]",
            " add edx,0x58",
            " push edx"
          ]
        },
        {
          "symbol": "winfo.c::get_object_radar_range_",
          "source": "E:\\apache\\source\\weapons\\winfo.c",
          "first": "0x45375c",
          "second": "0x453adc",
          "first_instruction_count": 31,
          "second_instruction_count": 31,
          "diff": [
            "--- 0x45375c",
            "+++ 0x453adc",
            "@@ -14,7 +14,7 @@",
            " cmp eax,0x20e",
            " je local:7",
            " push edx",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edx,m4[edx+eax*4+0x0]",
            " add edx,0x58",
            " push edx"
          ]
        },
        {
          "symbol": "winfo.c::initialise_ships_for_apache_",
          "source": "E:\\apache\\source\\weapons\\winfo.c",
          "first": "0x4536e8",
          "second": "0x453a68",
          "first_instruction_count": 27,
          "second_instruction_count": 27,
          "diff": [
            "--- 0x4536e8",
            "+++ 0x453a68",
            "@@ -3,7 +3,7 @@",
            " push edx",
            " push esi",
            " push edi",
            "-mov edi,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edi,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,winfo.c::_patch_apache_ships_info",
            " lea esi,m4[eax+None*1+0x1b0]",
            " mov edx,edi",
            "@@ -18,7 +18,7 @@",
            " mov m4[edx+None*1+0xa4],ecx",
            " cmp eax,esi",
            " jne local:8",
            "-mov m4[None+None*1+fx3dobj1.c::_object_3d_headers],edi",
            "+mov m4[None+None*1+3dobjs1.c::_object_3d_headers],edi",
            " pop edi",
            " pop esi",
            " pop edx"
          ]
        },
        {
          "symbol": "winfo.c::initialise_ships_for_hind_",
          "source": "E:\\apache\\source\\weapons\\winfo.c",
          "first": "0x4536a0",
          "second": "0x453a20",
          "first_instruction_count": 27,
          "second_instruction_count": 27,
          "diff": [
            "--- 0x4536a0",
            "+++ 0x453a20",
            "@@ -3,7 +3,7 @@",
            " push edx",
            " push esi",
            " push edi",
            "-mov edi,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov edi,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,winfo.c::_patch_hind_ships_info",
            " lea esi,m4[eax+None*1+0x1b0]",
            " mov edx,edi",
            "@@ -18,7 +18,7 @@",
            " mov m4[edx+None*1+0xa4],ecx",
            " cmp eax,esi",
            " jne local:8",
            "-mov m4[None+None*1+fx3dobj1.c::_object_3d_headers],edi",
            "+mov m4[None+None*1+3dobjs1.c::_object_3d_headers],edi",
            " pop edi",
            " pop esi",
            " pop edx"
          ]
        },
        {
          "symbol": "winfo.c::initialise_weapon_data_",
          "source": "E:\\apache\\source\\weapons\\winfo.c",
          "first": "0x451b60",
          "second": "0x451ee0",
          "first_instruction_count": 1478,
          "second_instruction_count": 1478,
          "diff": [
            "--- 0x451b60",
            "+++ 0x451ee0",
            "@@ -11,178 +11,178 @@",
            " xor edx,edx",
            " xor ebp,ebp",
            " xor eax,eax",
            "-mov m4[None+None*1+0x672aa8],edx",
            "-mov m4[None+None*1+0x672a94],ecx",
            "+mov m4[None+None*1+0x665ab8],edx",
            "+mov m4[None+None*1+0x665aa4],ecx",
            " mov ebx,ecx",
            "-mov m4[None+None*1+0x672a98],ecx",
            "-mov m4[None+None*1+0x672aa4],ecx",
            "-mov m4[None+None*1+0x672aa0],ecx",
            "-mov m4[None+None*1+0x672a74],edx",
            "-mov m4[None+None*1+0x672ab0],edx",
            "-mov m4[None+None*1+0x672a9c],edx",
            "-mov m4[None+None*1+0x672ac0],edx",
            "-mov m4[None+None*1+0x672ac4],edx",
            "-mov m4[None+None*1+0x672ab4],edx",
            "-mov m4[None+None*1+0x672a7c],edx",
            "-mov m4[None+None*1+0x672a70],edx",
            "+mov m4[None+None*1+0x665aa8],ecx",
            "+mov m4[None+None*1+0x665ab4],ecx",
            "+mov m4[None+None*1+0x665ab0],ecx",
            "+mov m4[None+None*1+0x665a84],edx",
            "+mov m4[None+None*1+0x665ac0],edx",
            "+mov m4[None+None*1+0x665aac],edx",
            "+mov m4[None+None*1+0x665ad0],edx",
            "+mov m4[None+None*1+0x665ad4],edx",
            "+mov m4[None+None*1+0x665ac4],edx",
            "+mov m4[None+None*1+0x665a8c],edx",
            "+mov m4[None+None*1+0x665a80],edx",
            " mov m4[None+None*1+winfo.c::_weapons_data],edx",
            "-mov m4[None+None*1+0x672a64],ebp",
            "-mov m4[None+None*1+0x672aac],ebp",
            "-mov m4[None+None*1+0x672a80],ebp",
            "+mov m4[None+None*1+0x665a74],ebp",
            "+mov m4[None+None*1+0x665abc],ebp",
            "+mov m4[None+None*1+0x665a90],ebp",
            " xor ah,dh",
            "-mov m4[None+None*1+0x672a78],ebp",
            "-mov m1[None+None*1+0x672a6b],ah",
            "+mov m4[None+None*1+0x665a88],ebp",
            "+mov m1[None+None*1+0x665a7b],ah",
            " xor ebx,ecx",
            " xor dl,dl",
            " mov ecx,0xb60b61",
            " mov eax,0xc0000000",
            "-mov m1[None+None*1+0x672a6c],dl",
            "-mov m4[None+None*1+0x672a90],ebx",
            "-mov bl,m1[None+None*1+0x672a68]",
            "-mov m4[None+None*1+0x672ab8],ecx",
            "-mov m4[None+None*1+0x672a84],eax",
            "+mov m1[None+None*1+0x665a7c],dl",
            "+mov m4[None+None*1+0x665aa0],ebx",
            "+mov bl,m1[None+None*1+0x665a78]",
            "+mov m4[None+None*1+0x665ac8],ecx",
            "+mov m4[None+None*1+0x665a94],eax",
            " xor dh,dh",
            " mov ecx,0x80000000",
            "-mov m1[None+None*1+0x672a69],dh",
            "+mov m1[None+None*1+0x665a79],dh",
            " and bl,0xf8",
            " xor eax,eax",
            " mov edx,0x40000000",
            "-mov m1[None+None*1+0x672a68],bl",
            "-mov m4[None+None*1+0x672a8c],ecx",
            "+mov m1[None+None*1+0x665a78],bl",
            "+mov m4[None+None*1+0x665a9c],ecx",
            " mov bh,0x1",
            "-mov m4[None+None*1+0x672a88],edx",
            "+mov m4[None+None*1+0x665a98],edx",
            " xor ecx,ecx",
            " mov edx,0x1",
            "-mov m1[None+None*1+0x672a6a],bh",
            "-mov m1[None+None*1+0x672a6d],bh",
            "+mov m1[None+None*1+0x665a7a],bh",
            "+mov m1[None+None*1+0x665a7d],bh",
            " call winfo.c::like_",
            " mov ebx,0x7",
            " mov edx,0xa",
            " mov al,0x2",
            "-mov m4[None+None*1+0x672afc],ebp",
            "-mov m4[None+None*1+0x672b00],edi",
            "-mov m4[None+None*1+0x672b04],ecx",
            "-mov m4[None+None*1+0x672b28],ecx",
            "-mov m4[None+None*1+0x672b2c],ecx",
            "+mov m4[None+None*1+0x665b0c],ebp",
            "+mov m4[None+None*1+0x665b10],edi",
            "+mov m4[None+None*1+0x665b14],ecx",
            "+mov m4[None+None*1+0x665b38],ecx",
            "+mov m4[None+None*1+0x665b3c],ecx",
            " mov ebp,0xbb800",
            " mov edi,0x1",
            " mov ch,0x4",
            "-mov m4[None+None*1+0x672b10],ebx",
            "-mov m4[None+None*1+0x672b18],edx",
            "-mov m1[None+None*1+0x672ad1],al",
            "+mov m4[None+None*1+0x665b20],ebx",
            "+mov m4[None+None*1+0x665b28],edx",
            "+mov m1[None+None*1+0x665ae1],al",
            " mov edx,0xe38e38e",
            " mov ebx,0x258",
            "-mov ah,m1[None+None*1+0x672ad0]",
            "-mov m4[None+None*1+0x672b0c],ebp",
            "-mov m4[None+None*1+0x672b08],ebp",
            "-mov m4[None+None*1+0x672ac8],edi",
            "-mov m1[None+None*1+0x672ad4],ch",
            "-mov m4[None+None*1+0x672af8],edi",
            "+mov ah,m1[None+None*1+0x665ae0]",
            "+mov m4[None+None*1+0x665b1c],ebp",
            "+mov m4[None+None*1+0x665b18],ebp",
            "+mov m4[None+None*1+0x665ad8],edi",
            "+mov m1[None+None*1+0x665ae4],ch",
            "+mov m4[None+None*1+0x665b08],edi",
            " mov ecx,0x2aaaaaab",
            " mov ebp,0xfa000",
            " or ah,0x3",
            "-mov m4[None+None*1+0x672af0],edx",
            "-mov m4[None+None*1+0x672ae0],ebx",
            "+mov m4[None+None*1+0x665b00],edx",
            "+mov m4[None+None*1+0x665af0],ebx",
            " xor edi,edi",
            " mov dl,0x8",
            " mov bl,0x2",
            "-mov m1[None+None*1+0x672ad0],ah",
            "-mov m4[None+None*1+0x672af4],ecx",
            "+mov m1[None+None*1+0x665ae0],ah",
            "+mov m4[None+None*1+0x665b04],ecx",
            " mov eax,0xd5555555",
            "-mov m1[None+None*1+0x672ad3],dl",
            "+mov m1[None+None*1+0x665ae3],dl",
            " mov dh,0x14",
            "-mov m4[None+None*1+0x672aec],eax",
            "-mov m1[None+None*1+0x672ad2],dh",
            "+mov m4[None+None*1+0x665afc],eax",
            "+mov m1[None+None*1+0x665ae2],dh",
            " xor eax,eax",
            " mov edx,0x13",
            " mov ecx,0xa",
            " call winfo.c::like_",
            " mov eax,0xbb800",
            " mov edx,0xd5555555",
            "-mov m4[None+None*1+0x673260],esi",
            "-mov m4[None+None*1+0x67324c],edi",
            "-mov m4[None+None*1+0x673250],ebp",
            "-mov m4[None+None*1+0x673268],ecx",
            "-mov m4[None+None*1+0x673254],edi",
            "-mov m4[None+None*1+0x673278],edi",
            "-mov m4[None+None*1+0x67327c],edi",
            "-mov m1[None+None*1+0x673224],bl",
            "-mov m4[None+None*1+0x673248],edi",
            "+mov m4[None+None*1+0x666270],esi",
            "+mov m4[None+None*1+0x66625c],edi",
            "+mov m4[None+None*1+0x666260],ebp",
            "+mov m4[None+None*1+0x666278],ecx",
            "+mov m4[None+None*1+0x666264],edi",
            "+mov m4[None+None*1+0x666288],edi",
            "+mov m4[None+None*1+0x66628c],edi",
            "+mov m1[None+None*1+0x666234],bl",
            "+mov m4[None+None*1+0x666258],edi",
            " mov ebp,0x1",
            " mov bh,0x1",
            "-mov cl,m1[None+None*1+0x673220]",
            "-mov m4[None+None*1+0x67325c],eax",
            "-mov m4[None+None*1+0x673258],eax",
            "-mov m4[None+None*1+0x67323c],edx",
            "+mov cl,m1[None+None*1+0x666230]",
            "+mov m4[None+None*1+0x66626c],eax",
            "+mov m4[None+None*1+0x666268],eax",
            "+mov m4[None+None*1+0x66624c],edx",
            " or cl,bl",
            "-mov m4[None+None*1+0x673218],ebp",
            "-mov m1[None+None*1+0x673220],cl",
            "+mov m4[None+None*1+0x666228],ebp",
            "+mov m1[None+None*1+0x666230],cl",
            " mov ecx,0xe38e38e",
            "-mov m1[None+None*1+0x673221],bh",
            "-mov m4[None+None*1+0x673240],ecx",
            "+mov m1[None+None*1+0x666231],bh",
            "+mov m4[None+None*1+0x666250],ecx",
            " mov ebx,0x2aaaaaab",
            " mov ch,0x8",
            " mov esi,0x258",
            " mov edx,0xa",
            " mov edi,0x7",
            "-mov al,m1[None+None*1+0x673220]",
            "-mov m4[None+None*1+0x673244],ebx",
            "-mov m1[None+None*1+0x673223],ch",
            "+mov al,m1[None+None*1+0x666230]",
            "+mov m4[None+None*1+0x666254],ebx",
            "+mov m1[None+None*1+0x666233],ch",
            " or al,0x1",
            "-mov m4[None+None*1+0x673230],esi",
            "+mov m4[None+None*1+0x666240],esi",
            " mov ebx,0xa",
            "-mov m1[None+None*1+0x673220],al",
            "+mov m1[None+None*1+0x666230],al",
            " mov ah,0x14",
            " mov ecx,0xd5555555",
            "-mov m1[None+None*1+0x673222],ah",
            "+mov m1[None+None*1+0x666232],ah",
            " mov eax,ebp",
            " mov esi,0x2aaaaaab",
            " call winfo.c::like_",
            " mov eax,0x119400",
            " mov edx,0xbb800",
            "-mov m4[None+None*1+0x672eb8],edi",
            "-mov m4[None+None*1+0x672ec0],ebx",
            "-mov m4[None+None*1+0x672e94],ecx",
            "-mov m4[None+None*1+0x672e9c],esi",
            "+mov m4[None+None*1+0x665ec8],edi",
            "+mov m4[None+None*1+0x665ed0],ebx",
            "+mov m4[None+None*1+0x665ea4],ecx",
            "+mov m4[None+None*1+0x665eac],esi",
            " xor ebp,ebp",
            " mov cl,0x14",
            " mov edi,0x258",
            "-mov bl,m1[None+None*1+0x672e78]",
            "-mov m4[None+None*1+0x672ea4],ebp",
            "-mov m4[None+None*1+0x672ea8],eax",
            "-mov m4[None+None*1+0x672eb4],edx",
            "-mov m4[None+None*1+0x672eb0],edx",
            "-mov m4[None+None*1+0x672eac],ebp",
            "-mov m4[None+None*1+0x672ed0],ebp",
            "-mov m4[None+None*1+0x672ed4],ebp",
            "+mov bl,m1[None+None*1+0x665e88]",
            "+mov m4[None+None*1+0x665eb4],ebp",
            "+mov m4[None+None*1+0x665eb8],eax",
            "+mov m4[None+None*1+0x665ec4],edx",
            "+mov m4[None+None*1+0x665ec0],edx",
            "+mov m4[None+None*1+0x665ebc],ebp",
            "+mov m4[None+None*1+0x665ee0],ebp",
            "+mov m4[None+None*1+0x665ee4],ebp",
            " mov eax,0x1",
            " mov dl,0x6",
            " mov ebp,0x18",
            "-mov m1[None+None*1+0x672e7a],cl",
            "-mov m4[None+None*1+0x672e88],edi",
            "+mov m1[None+None*1+0x665e8a],cl",
            "+mov m4[None+None*1+0x665e98],edi",
            " mov ecx,0x1e00",
            "-mov m4[None+None*1+0x672e70],eax",
            "-mov m1[None+None*1+0x672e7c],dl",
            "+mov m4[None+None*1+0x665e80],eax",
            "+mov m1[None+None*1+0x665e8c],dl",
            " mov dh,0x3",
            "-mov m4[None+None*1+0x672ea0],eax",
            "+mov m4[None+None*1+0x665eb0],eax",
            " or bl,dh",
            " xor eax,eax",
            "-mov m1[None+None*1+0x672e78],bl",
            "+mov m1[None+None*1+0x665e88],bl",
            " mov ebx,0xe38e38e",
            "-mov m1[None+None*1+0x672e79],dh",
            "-mov m4[None+None*1+0x672e98],ebx",
            "+mov m1[None+None*1+0x665e89],dh",
            "+mov m4[None+None*1+0x665ea8],ebx",
            " mov bh,0x8",
            " mov edx,0x2",
            "-mov m1[None+None*1+0x672e7b],bh",
            "+mov m1[None+None*1+0x665e8b],bh",
            " call winfo.c::like_",
            " mov eax,0x12c00",
            "-mov edx,cap.c::do_cap_scan_+0xc4",
            "+mov edx,cap.c::initialise_CAP_system_+0xa0",
            " mov ebx,0x51400",
            "-mov m4[None+None*1+0x672b78],ebp",
            "-mov m4[None+None*1+0x672b74],ecx",
            "-mov m4[None+None*1+0x672b64],eax",
            "-mov m4[None+None*1+0x672b68],edx",
            "-mov m4[None+None*1+0x672b70],ebx",
            "+mov m4[None+None*1+0x665b88],ebp",
            "+mov m4[None+None*1+0x665b84],ecx",
            "+mov m4[None+None*1+0x665b74],eax",
            "+mov m4[None+None*1+0x665b78],edx",
            "+mov m4[None+None*1+0x665b80],ebx",
            " mov esi,0x3e8",
            " mov edi,0x64",
            " mov ebp,0x1f400",
            "@@ -190,31 +190,31 @@",
            " mov edx,0x3e6c6ed6",
            " mov ecx,0xd000",
            " mov ebx,0x11800",
            "-mov m4[None+None*1+0x672b44],esi",
            "-mov m4[None+None*1+0x672b80],edi",
            "-mov m4[None+None*1+0x672b6c],ebp",
            "-mov m4[None+None*1+0x672b90],eax",
            "-mov m4[None+None*1+0x672b94],edx",
            "-mov m4[None+None*1+0x672b84],ecx",
            "-mov m4[None+None*1+0x672b40],ebx",
            "+mov m4[None+None*1+0x665b54],esi",
            "+mov m4[None+None*1+0x665b90],edi",
            "+mov m4[None+None*1+0x665b7c],ebp",
            "+mov m4[None+None*1+0x665ba0],eax",
            "+mov m4[None+None*1+0x665ba4],edx",
            "+mov m4[None+None*1+0x665b94],ecx",
            "+mov m4[None+None*1+0x665b50],ebx",
            " mov esi,0xcd00",
            " mov edi,0x2",
            " mov ch,0x4",
            " mov al,0x32",
            " mov edx,0x1",
            "-mov m4[None+None*1+0x672b4c],esi",
            "-mov m4[None+None*1+0x672b30],edi",
            "-mov m1[None+None*1+0x672b3b],ch",
            "-mov m1[None+None*1+0x672b3c],al",
            "-mov m1[None+None*1+0x672b39],ch",
            "+mov m4[None+None*1+0x665b5c],esi",
            "+mov m4[None+None*1+0x665b40],edi",
            "+mov m1[None+None*1+0x665b4b],ch",
            "+mov m1[None+None*1+0x665b4c],al",
            "+mov m1[None+None*1+0x665b49],ch",
            " mov eax,0xe38e38e",
            "-mov m4[None+None*1+0x672b60],edi",
            "-mov m4[None+None*1+0x672b88],eax",
            "+mov m4[None+None*1+0x665b70],edi",
            "+mov m4[None+None*1+0x665b98],eax",
            " mov eax,0xc71c71c8",
            "-mov m4[None+None*1+0x672b34],edx",
            "+mov m4[None+None*1+0x665b44],edx",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ecx,eax",
            " mov eax,0xc71c71c8",
            " xor ebx,ebx",
            "@@ -234,24 +234,24 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov ecx,0x1400",
            "-mov m4[None+None*1+0x672b7c],edx",
            "+mov m4[None+None*1+0x665b8c],edx",
            " mov eax,edi",
            " xor ebx,ebx",
            "-mov dl,m1[None+None*1+0x672b38]",
            "-mov m4[None+None*1+0x672b50],ecx",
            "-mov m4[None+None*1+0x672b54],ebx",
            "+mov dl,m1[None+None*1+0x665b48]",
            "+mov m4[None+None*1+0x665b60],ecx",
            "+mov m4[None+None*1+0x665b64],ebx",
            " or dl,0x4",
            "-mov m4[None+None*1+0x672b58],ebx",
            "-mov m1[None+None*1+0x672b38],dl",
            "+mov m4[None+None*1+0x665b68],ebx",
            "+mov m1[None+None*1+0x665b48],dl",
            " mov edx,0x3",
            "-mov m4[None+None*1+0x672b5c],ebx",
            "+mov m4[None+None*1+0x665b6c],ebx",
            " call winfo.c::like_",
            " mov dh,0x14",
            "-mov m4[None+None*1+0x672bd0],ebp",
            "+mov m4[None+None*1+0x665be0],ebp",
            " mov eax,edi",
            "-mov m1[None+None*1+0x672ba5],dh",
            "+mov m1[None+None*1+0x665bb5],dh",
            " mov edx,0x12",
            "-mov m4[None+None*1+0x672b9c],edi",
            "+mov m4[None+None*1+0x665bac],edi",
            " call winfo.c::like_",
            " mov edx,0x2d3",
            " mov ecx,0xa500",
            "@@ -260,70 +260,70 @@",
            " mov edi,0x8a",
            " mov ebp,0x5dc00",
            " xor eax,eax",
            "-mov m4[None+None*1+0x6731f8],edx",
            "-mov m4[None+None*1+0x6731f4],ecx",
            "-mov m4[None+None*1+0x6731e8],ebx",
            "-mov m4[None+None*1+0x673200],esi",
            "+mov m4[None+None*1+0x666208],edx",
            "+mov m4[None+None*1+0x666204],ecx",
            "+mov m4[None+None*1+0x6661f8],ebx",
            "+mov m4[None+None*1+0x666210],esi",
            " mov edx,0x4",
            " mov ecx,0xcd000",
            " mov ebx,0x258",
            " mov esi,0x64",
            " call winfo.c::like_",
            "-mov eax,cap.c::do_cap_scan_+0xc4",
            "+mov eax,cap.c::initialise_CAP_system_+0xa0",
            " mov edx,0x1e00",
            "-mov m4[None+None*1+0x672c48],edi",
            "-mov m4[None+None*1+0x672c34],ebp",
            "-mov m4[None+None*1+0x672c40],ecx",
            "-mov m4[None+None*1+0x672c14],ebx",
            "-mov m4[None+None*1+0x672c50],esi",
            "+mov m4[None+None*1+0x665c58],edi",
            "+mov m4[None+None*1+0x665c44],ebp",
            "+mov m4[None+None*1+0x665c50],ecx",
            "+mov m4[None+None*1+0x665c24],ebx",
            "+mov m4[None+None*1+0x665c60],esi",
            " mov edi,0x3e800",
            " mov ebp,0xbdc572e",
            " mov ecx,0x1",
            " mov bl,0x4",
            " mov esi,0x3200",
            "-mov m4[None+None*1+0x672c38],eax",
            "-mov m4[None+None*1+0x672c44],edx",
            "+mov m4[None+None*1+0x665c48],eax",
            "+mov m4[None+None*1+0x665c54],edx",
            " mov eax,0x3e87270e",
            " mov edx,0x44c00",
            "-mov m4[None+None*1+0x672c3c],edi",
            "-mov m4[None+None*1+0x672c60],ebp",
            "-mov m4[None+None*1+0x672c00],ecx",
            "-mov m1[None+None*1+0x672c0b],bl",
            "-mov m4[None+None*1+0x672c20],esi",
            "+mov m4[None+None*1+0x665c4c],edi",
            "+mov m4[None+None*1+0x665c70],ebp",
            "+mov m4[None+None*1+0x665c10],ecx",
            "+mov m1[None+None*1+0x665c1b],bl",
            "+mov m4[None+None*1+0x665c30],esi",
            " mov bh,0x19",
            " mov cl,0x1",
            " mov edi,0xf8e38e39",
            "-mov m4[None+None*1+0x672c64],eax",
            "-mov m4[None+None*1+0x672c10],edx",
            "+mov m4[None+None*1+0x665c74],eax",
            "+mov m4[None+None*1+0x665c20],edx",
            " xor ebp,ebp",
            " mov eax,0x38e38e4",
            " mov edx,0xc8",
            "-mov m1[None+None*1+0x672c0c],bh",
            "-mov m1[None+None*1+0x672c09],cl",
            "-mov m4[None+None*1+0x672c24],edi",
            "-mov m4[None+None*1+0x672c28],ebp",
            "+mov m1[None+None*1+0x665c1c],bh",
            "+mov m1[None+None*1+0x665c19],cl",
            "+mov m4[None+None*1+0x665c34],edi",
            "+mov m4[None+None*1+0x665c38],ebp",
            " mov ebx,0x1",
            "-mov ch,m1[None+None*1+0x672c08]",
            "-mov m4[None+None*1+0x672c2c],eax",
            "-mov m4[None+None*1+0x672c18],edx",
            "+mov ch,m1[None+None*1+0x665c18]",
            "+mov m4[None+None*1+0x665c3c],eax",
            "+mov m4[None+None*1+0x665c28],edx",
            " mov al,0x2",
            " mov edx,0x5",
            "-mov m4[None+None*1+0x672c30],ebx",
            "+mov m4[None+None*1+0x665c40],ebx",
            " or ch,cl",
            " mov ebx,0x1e00",
            "-mov m1[None+None*1+0x672c08],ch",
            "-mov m1[None+None*1+0x672c0a],al",
            "+mov m1[None+None*1+0x665c18],ch",
            "+mov m1[None+None*1+0x665c1a],al",
            " mov eax,0x4",
            " mov ecx,0x2",
            " call winfo.c::like_",
            " mov ah,0x32",
            " mov dl,0x2",
            "-mov m4[None+None*1+0x672c98],ecx",
            "-mov m1[None+None*1+0x672c74],ah",
            "-mov m1[None+None*1+0x672c71],dl",
            "+mov m4[None+None*1+0x665ca8],ecx",
            "+mov m1[None+None*1+0x665c84],ah",
            "+mov m1[None+None*1+0x665c81],dl",
            " mov edx,0x11",
            " mov eax,0x4",
            "-mov m4[None+None*1+0x672c88],ebx",
            "+mov m4[None+None*1+0x665c98],ebx",
            " call winfo.c::like_",
            " mov esi,0x2a3",
            " mov edi,0xa500",
            "@@ -332,89 +332,89 @@",
            " mov ebp,0x1",
            " mov eax,0x1e00",
            " mov ecx,0x1f400",
            "-mov m4[None+None*1+0x673190],esi",
            "-mov m4[None+None*1+0x67318c],edi",
            "-mov m1[None+None*1+0x673154],dh",
            "-mov m1[None+None*1+0x673151],bl",
            "-mov m4[None+None*1+0x673178],ebp",
            "-mov m4[None+None*1+0x673168],eax",
            "-mov m4[None+None*1+0x67317c],ecx",
            "+mov m4[None+None*1+0x6661a0],esi",
            "+mov m4[None+None*1+0x66619c],edi",
            "+mov m1[None+None*1+0x666164],dh",
            "+mov m1[None+None*1+0x666161],bl",
            "+mov m4[None+None*1+0x666188],ebp",
            "+mov m4[None+None*1+0x666178],eax",
            "+mov m4[None+None*1+0x66618c],ecx",
            " mov edx,0x32",
            "-mov ebx,cap.c::do_cap_scan_+0xc4",
            "+mov ebx,cap.c::initialise_CAP_system_+0xa0",
            " mov eax,0x4",
            " mov esi,0x2a4",
            " mov cl,0x3",
            " mov ebp,0x2",
            "-mov m4[None+None*1+0x673198],edx",
            "-mov m4[None+None*1+0x673180],ebx",
            "+mov m4[None+None*1+0x6661a8],edx",
            "+mov m4[None+None*1+0x666190],ebx",
            " mov edx,0x10",
            " mov bh,0x46",
            " call winfo.c::like_",
            " mov eax,0x3200",
            " mov edx,0x32",
            "-mov m4[None+None*1+0x673128],esi",
            "-mov m4[None+None*1+0x673124],edi",
            "-mov m1[None+None*1+0x6730ec],bh",
            "-mov m1[None+None*1+0x6730e9],cl",
            "-mov m4[None+None*1+0x673110],ebp",
            "+mov m4[None+None*1+0x666138],esi",
            "+mov m4[None+None*1+0x666134],edi",
            "+mov m1[None+None*1+0x6660fc],bh",
            "+mov m1[None+None*1+0x6660f9],cl",
            "+mov m4[None+None*1+0x666120],ebp",
            " mov ecx,0x3e800",
            "-mov ebx,cap.c::do_cap_scan_+0xc4",
            "+mov ebx,cap.c::initialise_CAP_system_+0xa0",
            " mov esi,0x3e8",
            " mov edi,0x85",
            " mov ebp,0x29400",
            "-mov m4[None+None*1+0x673100],eax",
            "-mov m4[None+None*1+0x673130],edx",
            "+mov m4[None+None*1+0x666110],eax",
            "+mov m4[None+None*1+0x666140],edx",
            " mov edx,0x16",
            " mov eax,0x10",
            "-mov m4[None+None*1+0x673114],ecx",
            "-mov m4[None+None*1+0x673118],ebx",
            "+mov m4[None+None*1+0x666124],ecx",
            "+mov m4[None+None*1+0x666128],ebx",
            " call winfo.c::like_",
            " mov edx,0x6",
            " mov ecx,0xbb800",
            " mov ebx,0x258",
            " xor eax,eax",
            "-mov m4[None+None*1+0x6733a0],esi",
            "-call winfo.c::like_",
            "-mov eax,prefscrn.c::do_preferences_calibration_+0x29c",
            "+mov m4[None+None*1+0x6663b0],esi",
            "+call winfo.c::like_",
            "+mov eax,prefscrn.c::do_preferences_calibration_+0x1e0",
            " mov edx,0x1e00",
            " mov esi,0x64",
            "-mov m4[None+None*1+0x672d18],edi",
            "-mov m4[None+None*1+0x672d04],ebp",
            "-mov m4[None+None*1+0x672d10],ecx",
            "-mov m4[None+None*1+0x672ce4],ebx",
            "+mov m4[None+None*1+0x665d28],edi",
            "+mov m4[None+None*1+0x665d14],ebp",
            "+mov m4[None+None*1+0x665d20],ecx",
            "+mov m4[None+None*1+0x665cf4],ebx",
            " mov edi,0x32000",
            " mov ebp,0x96c9cd32",
            "-mov m4[None+None*1+0x672d08],eax",
            "-mov m4[None+None*1+0x672d14],edx",
            "-mov m4[None+None*1+0x672d20],esi",
            "+mov m4[None+None*1+0x665d18],eax",
            "+mov m4[None+None*1+0x665d24],edx",
            "+mov m4[None+None*1+0x665d30],esi",
            " mov eax,0x3e80b8a6",
            " mov edx,0x14000",
            "-mov m4[None+None*1+0x672d0c],edi",
            "-mov m4[None+None*1+0x672d30],ebp",
            "-mov m4[None+None*1+0x672d34],eax",
            "-mov m4[None+None*1+0x672d24],edx",
            "+mov m4[None+None*1+0x665d1c],edi",
            "+mov m4[None+None*1+0x665d40],ebp",
            "+mov m4[None+None*1+0x665d44],eax",
            "+mov m4[None+None*1+0x665d34],edx",
            " mov ecx,0x41a00",
            " mov ebx,0x1a7c0",
            " mov esi,0x2",
            " mov al,0x32",
            " mov ebp,0xe38e38e",
            " mov edi,0x29e",
            "-mov m4[None+None*1+0x672ce0],ecx",
            "-mov m4[None+None*1+0x672cec],ebx",
            "-mov m4[None+None*1+0x672cd0],esi",
            "-mov m1[None+None*1+0x672cdc],al",
            "-mov m4[None+None*1+0x672d00],esi",
            "+mov m4[None+None*1+0x665cf0],ecx",
            "+mov m4[None+None*1+0x665cfc],ebx",
            "+mov m4[None+None*1+0x665ce0],esi",
            "+mov m1[None+None*1+0x665cec],al",
            "+mov m4[None+None*1+0x665d10],esi",
            " mov ah,0x2",
            "-mov m4[None+None*1+0x672d28],ebp",
            "-mov m1[None+None*1+0x672cd9],ah",
            "+mov m4[None+None*1+0x665d38],ebp",
            "+mov m1[None+None*1+0x665ce9],ah",
            " mov eax,0x3",
            " mov ch,0x3",
            "-mov m4[None+None*1+0x672cd4],eax",
            "+mov m4[None+None*1+0x665ce4],eax",
            " mov eax,0xc71c71c8",
            "-mov m1[None+None*1+0x672cdb],ch",
            "+mov m1[None+None*1+0x665ceb],ch",
            " shr eax,0x13",
            " adc eax,0x0",
            "-mov eax,m4[None+eax*4+0x72b334]",
            "+mov eax,m4[None+eax*4+0x715e04]",
            " mov ecx,eax",
            " mov eax,0xc71c71c8",
            " xor ebx,ebx",
            "@@ -435,164 +435,164 @@",
            " adc edx,0x0",
            " mov eax,0x6",
            " mov ebx,0x32",
            "-mov m4[None+None*1+0x672d1c],edx",
            "+mov m4[None+None*1+0x665d2c],edx",
            " mov edx,0x3200",
            " xor ecx,ecx",
            "-mov m4[None+None*1+0x672cf0],edx",
            "-mov dl,m1[None+None*1+0x672cd8]",
            "-mov m4[None+None*1+0x672cf4],ecx",
            "+mov m4[None+None*1+0x665d00],edx",
            "+mov dl,m1[None+None*1+0x665ce8]",
            "+mov m4[None+None*1+0x665d04],ecx",
            " or dl,0x4",
            "-mov m4[None+None*1+0x672cf8],ecx",
            "-mov m1[None+None*1+0x672cd8],dl",
            "+mov m4[None+None*1+0x665d08],ecx",
            "+mov m1[None+None*1+0x665ce8],dl",
            " mov dh,0x14",
            "-mov m4[None+None*1+0x672cfc],ecx",
            "-mov m1[None+None*1+0x672cdd],dh",
            "+mov m4[None+None*1+0x665d0c],ecx",
            "+mov m1[None+None*1+0x665ced],dh",
            " mov edx,0x9",
            " mov ecx,0xe38e38e",
            " call winfo.c::like_",
            " mov eax,0x3",
            " mov edx,0xbb800",
            "-mov m4[None+None*1+0x672e50],edi",
            "-mov m4[None+None*1+0x672e40],ebp",
            "-mov m4[None+None*1+0x672e60],ecx",
            "-mov m4[None+None*1+0x672e0c],eax",
            "-mov m4[None+None*1+0x672e48],edx",
            "+mov m4[None+None*1+0x665e60],edi",
            "+mov m4[None+None*1+0x665e50],ebp",
            "+mov m4[None+None*1+0x665e70],ecx",
            "+mov m4[None+None*1+0x665e1c],eax",
            "+mov m4[None+None*1+0x665e58],edx",
            " mov edx,0x2b",
            " mov eax,0x6",
            "-mov m4[None+None*1+0x672e58],ebx",
            "+mov m4[None+None*1+0x665e68],ebx",
            " call winfo.c::like_",
            " mov esi,0x22ca400",
            " mov edi,0x2",
            " mov ebp,0xc8000",
            " mov edx,0x2a",
            " mov eax,0x2b",
            "-mov m4[None+None*1+0x673c30],ecx",
            "+mov m4[None+None*1+0x666c40],ecx",
            " mov ecx,0x7d000",
            "-mov m4[None+None*1+0x673c10],esi",
            "-mov m4[None+None*1+0x673bdc],edi",
            "-mov m4[None+None*1+0x673c18],ebp",
            "+mov m4[None+None*1+0x666c20],esi",
            "+mov m4[None+None*1+0x666bec],edi",
            "+mov m4[None+None*1+0x666c28],ebp",
            " call winfo.c::like_",
            " mov ebx,edi",
            " mov edx,0xe2e000",
            " mov eax,0x6",
            " mov esi,0x1ef0000",
            " mov ebp,0x1f400",
            "-mov m4[None+None*1+0x673bb0],ecx",
            "-mov m4[None+None*1+0x673ba8],edx",
            "+mov m4[None+None*1+0x666bc0],ecx",
            "+mov m4[None+None*1+0x666bb8],edx",
            " mov edx,0x2c",
            " mov ecx,0x80e800",
            " call winfo.c::like_",
            " mov edx,0x2d",
            " mov eax,0x6",
            "-mov m4[None+None*1+0x673c44],edi",
            "-mov m4[None+None*1+0x673c78],esi",
            "+mov m4[None+None*1+0x666c54],edi",
            "+mov m4[None+None*1+0x666c88],esi",
            " mov edi,0xe38e38e",
            " mov esi,0x3e8",
            "-mov m4[None+None*1+0x673c98],edi",
            "+mov m4[None+None*1+0x666ca8],edi",
            " call winfo.c::like_",
            " mov edx,0x2e",
            " mov eax,0x6",
            "-mov m4[None+None*1+0x673d00],edi",
            "+mov m4[None+None*1+0x666d10],edi",
            " call winfo.c::like_",
            " mov edx,0x96000",
            " mov eax,ebx",
            "-mov m4[None+None*1+0x673d48],ecx",
            "-mov m4[None+None*1+0x673d68],edi",
            "-mov m4[None+None*1+0x673d60],esi",
            "+mov m4[None+None*1+0x666d58],ecx",
            "+mov m4[None+None*1+0x666d78],edi",
            "+mov m4[None+None*1+0x666d70],esi",
            " mov edi,0x159",
            " mov esi,0xa",
            " mov bl,0x2",
            "-mov m4[None+None*1+0x673d14],eax",
            "-mov m4[None+None*1+0x673d50],edx",
            "+mov m4[None+None*1+0x666d24],eax",
            "+mov m4[None+None*1+0x666d60],edx",
            " mov edx,0x17",
            " xor eax,eax",
            " xor ecx,ecx",
            " call winfo.c::like_",
            " mov eax,0x148200",
            " mov edx,0xbb800",
            "-mov m4[None+None*1+0x673400],edi",
            "-mov m4[None+None*1+0x6733ec],ebp",
            "-mov m4[None+None*1+0x6733f4],ecx",
            "-mov m4[None+None*1+0x673408],esi",
            "-mov m4[None+None*1+0x673418],ecx",
            "-mov m4[None+None*1+0x67341c],ecx",
            "-mov m1[None+None*1+0x6733c3],bl",
            "-mov m4[None+None*1+0x6733e8],ecx",
            "+mov m4[None+None*1+0x666410],edi",
            "+mov m4[None+None*1+0x6663fc],ebp",
            "+mov m4[None+None*1+0x666404],ecx",
            "+mov m4[None+None*1+0x666418],esi",
            "+mov m4[None+None*1+0x666428],ecx",
            "+mov m4[None+None*1+0x66642c],ecx",
            "+mov m1[None+None*1+0x6663d3],bl",
            "+mov m4[None+None*1+0x6663f8],ecx",
            " mov bh,0x4",
            "-mov esi,scancirc.asm::_scan_convert_circle+0x1d4",
            "+mov esi,chipa32::__fpatan_chk+0x1b0",
            " mov edi,0x212",
            " mov ebp,0x138800",
            "-mov ch,m1[None+None*1+0x6733c0]",
            "-mov m4[None+None*1+0x6733f0],eax",
            "-mov m4[None+None*1+0x6733fc],edx",
            "-mov m4[None+None*1+0x6733f8],edx",
            "+mov ch,m1[None+None*1+0x6663d0]",
            "+mov m4[None+None*1+0x666400],eax",
            "+mov m4[None+None*1+0x66640c],edx",
            "+mov m4[None+None*1+0x666408],edx",
            " mov eax,0x1",
            " mov edx,0x20",
            "-mov m1[None+None*1+0x6733c4],bh",
            "-mov m1[None+None*1+0x6733c1],bl",
            "+mov m1[None+None*1+0x6663d4],bh",
            "+mov m1[None+None*1+0x6663d1],bl",
            " or ch,0x3",
            " mov ebx,0x200b20",
            "-mov m4[None+None*1+0x6733b8],eax",
            "-mov m1[None+None*1+0x6733c0],ch",
            "+mov m4[None+None*1+0x6663c8],eax",
            "+mov m1[None+None*1+0x6663d0],ch",
            " mov al,0xa",
            " mov ecx,0x640",
            "-mov m1[None+None*1+0x6733c2],al",
            "-mov m4[None+None*1+0x6733d0],ecx",
            "+mov m1[None+None*1+0x6663d2],al",
            "+mov m4[None+None*1+0x6663e0],ecx",
            " mov eax,0x17",
            " mov ecx,0xbb800",
            " call winfo.c::like_",
            " mov edx,0x21",
            " mov eax,0x17",
            "-mov m4[None+None*1+0x673798],ebx",
            "+mov m4[None+None*1+0x6667a8],ebx",
            " call winfo.c::like_",
            " mov edx,0x18",
            " mov ebx,0x3e8",
            " xor eax,eax",
            "-mov m4[None+None*1+0x673800],esi",
            "+mov m4[None+None*1+0x666810],esi",
            " call winfo.c::like_",
            " mov eax,0x61a800",
            " mov edx,0x12c00",
            " mov esi,0x2ee0",
            "-mov m4[None+None*1+0x673468],edi",
            "-mov m4[None+None*1+0x673454],ebp",
            "-mov m4[None+None*1+0x673460],ecx",
            "-mov m4[None+None*1+0x673434],ebx",
            "+mov m4[None+None*1+0x666478],edi",
            "+mov m4[None+None*1+0x666464],ebp",
            "+mov m4[None+None*1+0x666470],ecx",
            "+mov m4[None+None*1+0x666444],ebx",
            " mov edi,0x1f400",
            " mov ebp,0xdd298a81",
            " mov ecx,0x3e800",
            " mov ebx,0x39d00",
            "-mov m4[None+None*1+0x673458],eax",
            "-mov m4[None+None*1+0x673464],edx",
            "-mov m4[None+None*1+0x673470],esi",
            "+mov m4[None+None*1+0x666468],eax",
            "+mov m4[None+None*1+0x666474],edx",
            "+mov m4[None+None*1+0x666480],esi",
            " mov eax,0x3e6c6ed6",
            " mov edx,0x14000",
            " mov esi,0x2",
            "-mov m4[None+None*1+0x67345c],edi",
            "-mov m4[None+None*1+0x673480],ebp",
            "-mov m4[None+None*1+0x673430],ecx",
            "-mov m4[None+None*1+0x67343c],ebx",
            "-mov m4[None+None*1+0x673484],eax",
            "-mov m4[None+None*1+0x673474],edx",
            "-mov m4[None+None*1+0x673420],esi",
            "+mov m4[None+None*1+0x66646c],edi",
            "+mov m4[None+None*1+0x666490],ebp",
            "+mov m4[None+None*1+0x666440],ecx",
            "+mov m4[None+None*1+0x66644c],ebx",
            "+mov m4[None+None*1+0x666494],eax",
            "+mov m4[None+None*1+0x666484],edx",
            "+mov m4[None+None*1+0x666430],esi",
            " mov dl,0x32",
            " mov ah,0x1",
            "-mov m1[None+None*1+0x67342c],dl",
            "+mov m1[None+None*1+0x66643c],dl",
            " mov dh,0x2",
            "-mov m1[None+None*1+0x67342b],ah",
            "-mov m1[None+None*1+0x673429],dh",
            "+mov m1[None+None*1+0x66643b],ah",
            "+mov m1[None+None*1+0x666439],dh",
            " mov ebp,0x15555555",
            " mov edx,0x3c00",
            " mov ecx,0x15b05b05",
            " mov bl,0xa",
            " mov eax,0x18",
            "-mov m4[None+None*1+0x673424],esi",
            "+mov m4[None+None*1+0x666434],esi",
            " xor edi,edi",
            "-mov esi,scancirc.asm::_scan_convert_circle+0x1d4",
            "-mov m4[None+None*1+0x673450],edi",
            "-mov m4[None+None*1+0x673478],ebp",
            "-mov m4[None+None*1+0x673440],edx",
            "-mov m4[None+None*1+0x673444],ecx",
            "-mov m1[None+None*1+0x67342d],bl",
            "+mov esi,chipa32::__fpatan_chk+0x1b0",
            "+mov m4[None+None*1+0x666460],edi",
            "+mov m4[None+None*1+0x666488],ebp",
            "+mov m4[None+None*1+0x666450],edx",
            "+mov m4[None+None*1+0x666454],ecx",
            "+mov m1[None+None*1+0x66643d],bl",
            " mov edx,0x22",
            " mov ebx,0xa4100",
            " mov edi,0x64000",
            "@@ -601,47 +601,47 @@",
            " call winfo.c::like_",
            " mov edx,0x23",
            " mov eax,0x18",
            "-mov m4[None+None*1+0x673864],ebx",
            "-mov m4[None+None*1+0x673868],esi",
            "-mov m4[None+None*1+0x673870],edi",
            "-mov m4[None+None*1+0x673834],ebp",
            "+mov m4[None+None*1+0x666874],ebx",
            "+mov m4[None+None*1+0x666878],esi",
            "+mov m4[None+None*1+0x666880],edi",
            "+mov m4[None+None*1+0x666844],ebp",
            " call winfo.c::like_",
            " mov edx,0x5dc000",
            " mov esi,0xf000",
            " mov eax,0x18",
            " mov edi,0x316",
            " mov ebp,0x19000",
            "-mov m4[None+None*1+0x6738cc],ebx",
            "-mov m4[None+None*1+0x6738d8],ecx",
            "+mov m4[None+None*1+0x6668dc],ebx",
            "+mov m4[None+None*1+0x6668e8],ecx",
            " mov ebx,0x1130",
            " mov ecx,0x190",
            "-mov m4[None+None*1+0x6738d0],edx",
            "-mov m4[None+None*1+0x6738ec],esi",
            "+mov m4[None+None*1+0x6668e0],edx",
            "+mov m4[None+None*1+0x6668fc],esi",
            " mov edx,0x34",
            " mov esi,0x3",
            "-mov m4[None+None*1+0x6738ac],ebx",
            "+mov m4[None+None*1+0x6668bc],ebx",
            " call winfo.c::like_",
            " mov eax,0x15e000",
            " mov edx,0x4b000",
            " mov bh,0x1e",
            "-mov m4[None+None*1+0x673fc8],edi",
            "-mov m4[None+None*1+0x673fb4],ebp",
            "-mov m4[None+None*1+0x673f94],ecx",
            "-mov m4[None+None*1+0x673f84],esi",
            "+mov m4[None+None*1+0x666fd8],edi",
            "+mov m4[None+None*1+0x666fc4],ebp",
            "+mov m4[None+None*1+0x666fa4],ecx",
            "+mov m4[None+None*1+0x666f94],esi",
            " mov cl,0x2",
            " mov edi,0x148200",
            "-mov m4[None+None*1+0x673fb8],eax",
            "-mov m4[None+None*1+0x673fc0],edx",
            "-mov m1[None+None*1+0x673f8c],bh",
            "+mov m4[None+None*1+0x666fc8],eax",
            "+mov m4[None+None*1+0x666fd0],edx",
            "+mov m1[None+None*1+0x666f9c],bh",
            " mov ebx,0x1",
            " mov edx,0x27",
            "-mov eax,m4[None+None*1+0x673fd8]",
            "-mov m1[None+None*1+0x673f89],cl",
            "-mov m4[None+None*1+0x673fa4],eax",
            "+mov eax,m4[None+None*1+0x666fe8]",
            "+mov m1[None+None*1+0x666f99],cl",
            "+mov m4[None+None*1+0x666fb4],eax",
            " mov eax,0x18",
            "-mov m4[None+None*1+0x673fb0],ebx",
            "-call winfo.c::like_",
            "-mov m4[None+None*1+0x673a6c],edi",
            "+mov m4[None+None*1+0x666fc0],ebx",
            "+call winfo.c::like_",
            "+mov m4[None+None*1+0x666a7c],edi",
            " mov ebp,0x99cf00",
            " mov eax,0x5a000",
            " mov edx,0x28",
            "@@ -649,30 +649,30 @@",
            " mov ebx,0x5a000",
            " mov esi,0x668a0",
            " mov edi,0x697800",
            "-mov m4[None+None*1+0x673a70],ebp",
            "-mov m4[None+None*1+0x673a78],eax",
            "+mov m4[None+None*1+0x666a80],ebp",
            "+mov m4[None+None*1+0x666a88],eax",
            " mov eax,0x18",
            " mov ebp,0x2515c00",
            " call winfo.c::like_",
            " mov edx,0x668a0",
            " mov eax,0x18",
            "-mov m4[None+None*1+0x673ad8],ecx",
            "-mov m4[None+None*1+0x673ae0],ebx",
            "+mov m4[None+None*1+0x666ae8],ecx",
            "+mov m4[None+None*1+0x666af0],ebx",
            " mov ch,0xa",
            "-mov m4[None+None*1+0x673ad4],edx",
            "+mov m4[None+None*1+0x666ae4],edx",
            " mov edx,0x24",
            " mov ebx,0xbb800",
            " call winfo.c::like_",
            " mov edx,0x25",
            " mov eax,0x18",
            "-mov m4[None+None*1+0x673934],esi",
            "-mov m4[None+None*1+0x673938],edi",
            "+mov m4[None+None*1+0x666944],esi",
            "+mov m4[None+None*1+0x666948],edi",
            " call winfo.c::like_",
            " mov edx,0x26",
            " mov eax,0x25",
            " mov esi,0x7d0",
            " mov edi,0x3",
            "-mov m1[None+None*1+0x673975],ch",
            "+mov m1[None+None*1+0x666985],ch",
            " call winfo.c::like_",
            " mov edx,0x32",
            " mov eax,0x25",
            "@@ -680,218 +680,218 @@",
            " call winfo.c::like_",
            " mov edx,0x14",
            " xor eax,eax",
            "-mov m4[None+None*1+0x673ee8],ebp",
            "+mov m4[None+None*1+0x666ef8],ebp",
            " call winfo.c::like_",
            " mov eax,0xdac00",
            " mov edx,0x6400",
            " mov ebp,0x2",
            "-mov m4[None+None*1+0x6732b8],ecx",
            "-mov m4[None+None*1+0x6732c0],ebx",
            "-mov m4[None+None*1+0x6732d0],esi",
            "-mov m4[None+None*1+0x673280],edi",
            "+mov m4[None+None*1+0x6662c8],ecx",
            "+mov m4[None+None*1+0x6662d0],ebx",
            "+mov m4[None+None*1+0x6662e0],esi",
            "+mov m4[None+None*1+0x666290],edi",
            " mov ecx,0x1de",
            " mov esi,0x5000",
            " mov edi,0x190",
            "-mov m4[None+None*1+0x6732c4],eax",
            "-mov m4[None+None*1+0x6732b4],edx",
            "-mov m4[None+None*1+0x6732b0],ebp",
            "+mov m4[None+None*1+0x6662d4],eax",
            "+mov m4[None+None*1+0x6662c4],edx",
            "+mov m4[None+None*1+0x6662c0],ebp",
            " xor ebx,ebx",
            " mov al,0x7",
            " mov dl,0x4",
            "-mov m1[None+None*1+0x67328b],al",
            "-mov m1[None+None*1+0x673289],dl",
            "+mov m1[None+None*1+0x66629b],al",
            "+mov m1[None+None*1+0x666299],dl",
            " mov ah,0x28",
            " mov edx,0x6400",
            "-mov m1[None+None*1+0x67328c],ah",
            "-mov m4[None+None*1+0x6732a0],edx",
            "+mov m1[None+None*1+0x66629c],ah",
            "+mov m4[None+None*1+0x6662b0],edx",
            " mov eax,0x9600",
            " mov edx,0x7",
            "-mov m4[None+None*1+0x6732d8],eax",
            "+mov m4[None+None*1+0x6662e8],eax",
            " xor eax,eax",
            " mov ebp,0xf705857b",
            " call winfo.c::like_",
            " mov eax,0x3eb81e03",
            " mov edx,0x4",
            "-mov m4[None+None*1+0x672d80],ecx",
            "-mov m4[None+None*1+0x672d6c],ebx",
            "-mov m4[None+None*1+0x672d70],esi",
            "-mov m4[None+None*1+0x672d88],edi",
            "-mov m4[None+None*1+0x672d98],ebp",
            "+mov m4[None+None*1+0x665d90],ecx",
            "+mov m4[None+None*1+0x665d7c],ebx",
            "+mov m4[None+None*1+0x665d80],esi",
            "+mov m4[None+None*1+0x665d98],edi",
            "+mov m4[None+None*1+0x665da8],ebp",
            " mov esi,0x1dd",
            " mov edi,0x6400",
            " mov ebp,0x6525c993",
            "-mov m4[None+None*1+0x672d9c],eax",
            "-mov m4[None+None*1+0x672d38],edx",
            "+mov m4[None+None*1+0x665dac],eax",
            "+mov m4[None+None*1+0x665d48],edx",
            " xor bl,bl",
            " xor ecx,ecx",
            " mov dh,0x9",
            " mov eax,0x7",
            "-mov m1[None+None*1+0x672d44],bl",
            "-mov m1[None+None*1+0x672d41],bl",
            "-mov m4[None+None*1+0x672d68],ecx",
            "+mov m1[None+None*1+0x665d54],bl",
            "+mov m1[None+None*1+0x665d51],bl",
            "+mov m4[None+None*1+0x665d78],ecx",
            " mov ebx,0x500",
            "-mov cl,m1[None+None*1+0x672d40]",
            "-mov m1[None+None*1+0x672d43],dh",
            "+mov cl,m1[None+None*1+0x665d50]",
            "+mov m1[None+None*1+0x665d53],dh",
            " mov edx,0x8",
            "-mov m4[None+None*1+0x672d90],ebx",
            "+mov m4[None+None*1+0x665da0],ebx",
            " or cl,0x2",
            " mov ebx,0x5dc0",
            "-mov m1[None+None*1+0x672d40],cl",
            "+mov m1[None+None*1+0x665d50],cl",
            " call winfo.c::like_",
            " mov eax,0x3e5edebd",
            " mov ch,0x1",
            " mov edx,0xa00",
            "-mov m4[None+None*1+0x672de8],esi",
            "-mov m4[None+None*1+0x672dd8],edi",
            "-mov m4[None+None*1+0x672e00],ebp",
            "-mov m4[None+None*1+0x672db4],ebx",
            "+mov m4[None+None*1+0x665df8],esi",
            "+mov m4[None+None*1+0x665de8],edi",
            "+mov m4[None+None*1+0x665e10],ebp",
            "+mov m4[None+None*1+0x665dc4],ebx",
            " mov ebp,0x3e800",
            "-mov m4[None+None*1+0x672e04],eax",
            "-mov m1[None+None*1+0x672dac],ch",
            "-mov m4[None+None*1+0x672df8],edx",
            "+mov m4[None+None*1+0x665e14],eax",
            "+mov m1[None+None*1+0x665dbc],ch",
            "+mov m4[None+None*1+0x665e08],edx",
            " mov edx,0x15",
            " xor ecx,ecx",
            " xor eax,eax",
            "-mov m4[None+None*1+0x672dc0],ecx",
            "+mov m4[None+None*1+0x665dd0],ecx",
            " call winfo.c::like_",
            " mov eax,0xc8",
            " mov edx,0x3",
            "-mov m4[None+None*1+0x67331c],edi",
            "-mov m4[None+None*1+0x673328],ebp",
            "+mov m4[None+None*1+0x66632c],edi",
            "+mov m4[None+None*1+0x666338],ebp",
            " mov edi,0x19c8000",
            "-mov m4[None+None*1+0x673338],eax",
            "-mov m4[None+None*1+0x6732e8],edx",
            "+mov m4[None+None*1+0x666348],eax",
            "+mov m4[None+None*1+0x6662f8],edx",
            " mov al,0x7",
            " mov dl,0x2",
            "-mov m4[None+None*1+0x673320],edi",
            "-mov m1[None+None*1+0x6732f3],al",
            "+mov m4[None+None*1+0x666330],edi",
            "+mov m1[None+None*1+0x666303],al",
            " mov ah,0x64",
            "-mov m1[None+None*1+0x6732f1],dl",
            "-mov m1[None+None*1+0x6732f4],ah",
            "+mov m1[None+None*1+0x666301],dl",
            "+mov m1[None+None*1+0x666304],ah",
            " mov ecx,0x2",
            " mov ebx,0x25800",
            " mov esi,0x6400",
            " mov edi,0x3a980",
            " mov eax,0x15",
            " mov ebp,0x4074000",
            "-mov dh,m1[None+None*1+0x6732f0]",
            "-mov m4[None+None*1+0x673318],ecx",
            "-mov m4[None+None*1+0x673340],ebx",
            "-mov m4[None+None*1+0x673308],esi",
            "+mov dh,m1[None+None*1+0x666300]",
            "+mov m4[None+None*1+0x666328],ecx",
            "+mov m4[None+None*1+0x666350],ebx",
            "+mov m4[None+None*1+0x666318],esi",
            " or dh,0x3",
            "-mov m4[None+None*1+0x673300],edi",
            "+mov m4[None+None*1+0x666310],edi",
            " mov bl,0xc",
            " mov ecx,0x57e40",
            " mov esi,0x12c00",
            " mov edi,0x6400",
            "-mov m1[None+None*1+0x6732f0],dh",
            "+mov m1[None+None*1+0x666300],dh",
            " mov edx,0x19",
            "-mov m1[None+None*1+0x6732f2],bl",
            "+mov m1[None+None*1+0x666302],bl",
            " call winfo.c::like_",
            " mov eax,0xe04c000",
            " mov edx,0x3e800",
            " mov bh,0xff",
            "-mov m4[None+None*1+0x6734bc],ebp",
            "-mov m4[None+None*1+0x6734d8],ecx",
            "-mov m4[None+None*1+0x6734e0],esi",
            "-mov m4[None+None*1+0x6734a8],edi",
            "+mov m4[None+None*1+0x6664cc],ebp",
            "+mov m4[None+None*1+0x6664e8],ecx",
            "+mov m4[None+None*1+0x6664f0],esi",
            "+mov m4[None+None*1+0x6664b8],edi",
            " mov cl,0x4",
            " mov ebp,0xa5000",
            " mov esi,0x78e38e39",
            "-mov m4[None+None*1+0x6734c0],eax",
            "-mov m4[None+None*1+0x6734c8],edx",
            "-mov m1[None+None*1+0x673494],bh",
            "+mov m4[None+None*1+0x6664d0],eax",
            "+mov m4[None+None*1+0x6664d8],edx",
            "+mov m1[None+None*1+0x6664a4],bh",
            " mov ebx,0x2",
            " mov edx,0x31",
            " mov eax,0x3",
            "-mov m1[None+None*1+0x673491],cl",
            "+mov m1[None+None*1+0x6664a1],cl",
            " mov ch,0x5",
            "-mov m4[None+None*1+0x6734b8],ebx",
            "-mov m1[None+None*1+0x673493],ch",
            "+mov m4[None+None*1+0x6664c8],ebx",
            "+mov m1[None+None*1+0x6664a3],ch",
            " call winfo.c::like_",
            " mov eax,0x17bc000",
            " mov edx,0x3e800",
            " mov ecx,0x7d0",
            "-mov m4[None+None*1+0x673e7c],ebp",
            "-mov m4[None+None*1+0x673e78],ebx",
            "-mov m4[None+None*1+0x673ea0],esi",
            "-mov m4[None+None*1+0x673e68],edi",
            "-mov m4[None+None*1+0x673e74],esi",
            "+mov m4[None+None*1+0x666e8c],ebp",
            "+mov m4[None+None*1+0x666e88],ebx",
            "+mov m4[None+None*1+0x666eb0],esi",
            "+mov m4[None+None*1+0x666e78],edi",
            "+mov m4[None+None*1+0x666e84],esi",
            " mov ebx,0x5901000",
            " mov esi,0x3e800",
            " mov edi,0x4074000",
            "-mov m4[None+None*1+0x673e80],eax",
            "-mov m4[None+None*1+0x673e88],edx",
            "+mov m4[None+None*1+0x666e90],eax",
            "+mov m4[None+None*1+0x666e98],edx",
            " mov al,0x96",
            " mov edx,0xf1c71c72",
            "-mov m1[None+None*1+0x673e54],al",
            "+mov m1[None+None*1+0x666e64],al",
            " mov ah,0x4",
            "-mov m4[None+None*1+0x673e6c],edx",
            "-mov m1[None+None*1+0x673e51],ah",
            "+mov m4[None+None*1+0x666e7c],edx",
            "+mov m1[None+None*1+0x666e61],ah",
            " mov eax,0x15555555",
            " mov edx,0x33",
            "-mov m4[None+None*1+0x673e70],eax",
            "+mov m4[None+None*1+0x666e80],eax",
            " mov eax,0x31",
            "-mov m4[None+None*1+0x673e98],ecx",
            "+mov m4[None+None*1+0x666ea8],ecx",
            " call winfo.c::like_",
            " mov dl,0x96",
            " mov eax,0x78e38e39",
            "-mov m4[None+None*1+0x673f4c],ebp",
            "-mov m4[None+None*1+0x673f50],ebx",
            "-mov m4[None+None*1+0x673f58],esi",
            "-mov m4[None+None*1+0x673f68],ecx",
            "+mov m4[None+None*1+0x666f5c],ebp",
            "+mov m4[None+None*1+0x666f60],ebx",
            "+mov m4[None+None*1+0x666f68],esi",
            "+mov m4[None+None*1+0x666f78],ecx",
            " mov ebp,0x2",
            " mov ebx,0x15555555",
            " mov esi,0xf1c71c72",
            " mov ecx,0x2",
            "-mov m1[None+None*1+0x673f24],dl",
            "-mov m4[None+None*1+0x673f70],eax",
            "-mov m4[None+None*1+0x673f44],eax",
            "+mov m1[None+None*1+0x666f34],dl",
            "+mov m4[None+None*1+0x666f80],eax",
            "+mov m4[None+None*1+0x666f54],eax",
            " mov dh,0x2",
            " mov eax,0x15",
            "-mov m4[None+None*1+0x673f48],ebp",
            "-mov m4[None+None*1+0x673f40],ebx",
            "-mov m4[None+None*1+0x673f3c],esi",
            "+mov m4[None+None*1+0x666f58],ebp",
            "+mov m4[None+None*1+0x666f50],ebx",
            "+mov m4[None+None*1+0x666f4c],esi",
            " mov ebp,0xe04c000",
            "-mov m1[None+None*1+0x673f21],dh",
            "+mov m1[None+None*1+0x666f31],dh",
            " mov edx,0x4b00",
            " mov bl,0xff",
            "-mov m4[None+None*1+0x673f38],edx",
            "+mov m4[None+None*1+0x666f48],edx",
            " mov edx,0x1a",
            " mov esi,0x6400",
            " call winfo.c::like_",
            " mov eax,0x3e800",
            " mov edx,0x1770",
            "-mov m4[None+None*1+0x673524],edi",
            "-mov m4[None+None*1+0x673528],ebp",
            "-mov m1[None+None*1+0x6734fc],bl",
            "-mov m4[None+None*1+0x673520],ecx",
            "-mov m4[None+None*1+0x673510],esi",
            "+mov m4[None+None*1+0x666534],edi",
            "+mov m4[None+None*1+0x666538],ebp",
            "+mov m1[None+None*1+0x66650c],bl",
            "+mov m4[None+None*1+0x666530],ecx",
            "+mov m4[None+None*1+0x666520],esi",
            " mov bh,0x2",
            " mov ebp,0x19c8000",
            "-mov cl,m1[None+None*1+0x6734f8]",
            "-mov m4[None+None*1+0x673530],eax",
            "-mov m4[None+None*1+0x673540],edx",
            "+mov cl,m1[None+None*1+0x666508]",
            "+mov m4[None+None*1+0x666540],eax",
            "+mov m4[None+None*1+0x666550],edx",
            " mov edx,0x36",
            " mov eax,0x19",
            "-mov m1[None+None*1+0x6734f9],bh",
            "+mov m1[None+None*1+0x666509],bh",
            " and cl,0xfc",
            " mov ebx,0xbb800",
            "-mov m1[None+None*1+0x6734f8],cl",
            "+mov m1[None+None*1+0x666508],cl",
            " mov ch,0x5",
            "-mov m4[None+None*1+0x673548],ebx",
            "-mov m1[None+None*1+0x6734fb],ch",
            "+mov m4[None+None*1+0x666558],ebx",
            "+mov m1[None+None*1+0x66650b],ch",
            " call winfo.c::like_",
            " mov eax,0x3e800",
            " mov edx,0x1d4c0",
            "-mov m4[None+None*1+0x674084],esi",
            "-mov m4[None+None*1+0x674090],eax",
            "+mov m4[None+None*1+0x667094],esi",
            "+mov m4[None+None*1+0x6670a0],eax",
            " mov al,0x96",
            "-mov m4[None+None*1+0x674088],ebp",
            "-mov m1[None+None*1+0x67405c],al",
            "+mov m4[None+None*1+0x667098],ebp",
            "+mov m1[None+None*1+0x66706c],al",
            " mov ah,0x2",
            "-mov m4[None+None*1+0x6740a0],edx",
            "-mov m1[None+None*1+0x674059],ah",
            "+mov m4[None+None*1+0x6670b0],edx",
            "+mov m1[None+None*1+0x667069],ah",
            " mov ecx,0x2",
            " mov ebx,0xc800",
            " mov esi,0x4b00",
            "@@ -899,121 +899,121 @@",
            " mov eax,0x15",
            " mov edi,0xa8c00",
            " mov ebp,0x6400",
            "-mov m4[None+None*1+0x674080],ecx",
            "-mov m4[None+None*1+0x6740a8],ebx",
            "-mov m4[None+None*1+0x674070],esi",
            "+mov m4[None+None*1+0x667090],ecx",
            "+mov m4[None+None*1+0x6670b8],ebx",
            "+mov m4[None+None*1+0x667080],esi",
            " call winfo.c::like_",
            " mov eax,0x124f800",
            " mov ecx,0x1770",
            " mov dl,0x64",
            " mov ebx,0x2",
            " mov esi,0x12c00",
            "-mov m4[None+None*1+0x67359c],edi",
            "-mov m4[None+None*1+0x67358c],ebp",
            "-mov m4[None+None*1+0x673598],edi",
            "+mov m4[None+None*1+0x6665ac],edi",
            "+mov m4[None+None*1+0x66659c],ebp",
            "+mov m4[None+None*1+0x6665a8],edi",
            " mov edi,0x5000",
            " mov ebp,0xc56340",
            "-mov m4[None+None*1+0x673590],eax",
            "-mov m4[None+None*1+0x6735a8],ecx",
            "-mov m1[None+None*1+0x673564],dl",
            "-mov m4[None+None*1+0x673588],ebx",
            "-mov m4[None+None*1+0x6735b0],esi",
            "+mov m4[None+None*1+0x6665a0],eax",
            "+mov m4[None+None*1+0x6665b8],ecx",
            "+mov m1[None+None*1+0x666574],dl",
            "+mov m4[None+None*1+0x666598],ebx",
            "+mov m4[None+None*1+0x6665c0],esi",
            " mov dh,0x2",
            " mov eax,0x1b",
            " mov ecx,0x7d0",
            "-mov bl,m1[None+None*1+0x673560]",
            "-mov m4[None+None*1+0x673578],edi",
            "+mov bl,m1[None+None*1+0x666570]",
            "+mov m4[None+None*1+0x666588],edi",
            " xor esi,esi",
            " mov edi,0xce4000",
            "-mov m1[None+None*1+0x673561],dh",
            "+mov m1[None+None*1+0x666571],dh",
            " and bl,0xfe",
            " mov edx,0x29",
            "-mov m1[None+None*1+0x673560],bl",
            "+mov m1[None+None*1+0x666570],bl",
            " call winfo.c::like_",
            " mov eax,0x640",
            " mov edx,0x2f",
            " mov ebx,0x1206420",
            "-mov m4[None+None*1+0x673b40],ebp",
            "-mov m4[None+None*1+0x673b58],eax",
            "+mov m4[None+None*1+0x666b50],ebp",
            "+mov m4[None+None*1+0x666b68],eax",
            " mov eax,0x1b",
            " mov ebp,0x1f400",
            " call winfo.c::like_",
            " mov edx,0xe6b680",
            " mov eax,0x2f",
            "-mov m4[None+None*1+0x673dc8],ecx",
            "-mov m4[None+None*1+0x673db0],edx",
            "+mov m4[None+None*1+0x666dd8],ecx",
            "+mov m4[None+None*1+0x666dc0],edx",
            " mov edx,0x35",
            " mov cl,0x3",
            " call winfo.c::like_",
            " mov edx,0x1c",
            " mov eax,0x15",
            "-mov m4[None+None*1+0x674020],ebx",
            "+mov m4[None+None*1+0x667030],ebx",
            " call winfo.c::like_",
            " mov eax,0xa",
            " mov bh,0x64",
            " mov edx,0x4",
            "-mov m4[None+None*1+0x6735f4],esi",
            "-mov m4[None+None*1+0x6735f8],edi",
            "-mov m4[None+None*1+0x673600],ebp",
            "-mov m1[None+None*1+0x6735c9],cl",
            "+mov m4[None+None*1+0x666604],esi",
            "+mov m4[None+None*1+0x666608],edi",
            "+mov m4[None+None*1+0x666610],ebp",
            "+mov m1[None+None*1+0x6665d9],cl",
            " mov ecx,0x9600",
            " mov esi,0x2bf20",
            " mov edi,0x29c",
            " mov ebp,0x4",
            "-mov m4[None+None*1+0x673610],eax",
            "-mov m1[None+None*1+0x6735cc],bh",
            "-mov m4[None+None*1+0x6735f0],edx",
            "+mov m4[None+None*1+0x666620],eax",
            "+mov m1[None+None*1+0x6665dc],bh",
            "+mov m4[None+None*1+0x666600],edx",
            " mov ebx,0xc800",
            " mov al,0x6",
            " mov edx,0xc",
            "-mov m4[None+None*1+0x673618],ecx",
            "-mov m4[None+None*1+0x6735d8],esi",
            "+mov m4[None+None*1+0x666628],ecx",
            "+mov m4[None+None*1+0x6665e8],esi",
            " mov esi,0x1f400",
            "-mov ch,m1[None+None*1+0x6735c8]",
            "-mov m4[None+None*1+0x6735e0],ebx",
            "-mov m1[None+None*1+0x6735cb],al",
            "+mov ch,m1[None+None*1+0x6665d8]",
            "+mov m4[None+None*1+0x6665f0],ebx",
            "+mov m1[None+None*1+0x6665db],al",
            " mov ah,0xa",
            " or ch,0x3",
            " mov ebx,0xce4000",
            "-mov m1[None+None*1+0x6735c8],ch",
            "-mov m1[None+None*1+0x6735ca],ah",
            "+mov m1[None+None*1+0x6665d8],ch",
            "+mov m1[None+None*1+0x6665da],ah",
            " mov eax,0x4",
            " mov ecx,0x29d",
            " call winfo.c::like_",
            " mov edx,0x4e20",
            "-mov m4[None+None*1+0x672f88],edi",
            "-mov m4[None+None*1+0x672f40],ebp",
            "-mov m4[None+None*1+0x672f78],ebx",
            "-mov m4[None+None*1+0x672f80],esi",
            "+mov m4[None+None*1+0x665f98],edi",
            "+mov m4[None+None*1+0x665f50],ebp",
            "+mov m4[None+None*1+0x665f88],ebx",
            "+mov m4[None+None*1+0x665f90],esi",
            " xor eax,eax",
            " mov edi,0xc8",
            " mov ebp,0x1",
            "-mov bl,m1[None+None*1+0x672f48]",
            "-mov m4[None+None*1+0x672f50],eax",
            "-mov m4[None+None*1+0x672f54],edx",
            "-mov m4[None+None*1+0x672f74],eax",
            "+mov bl,m1[None+None*1+0x665f58]",
            "+mov m4[None+None*1+0x665f60],eax",
            "+mov m4[None+None*1+0x665f64],edx",
            "+mov m4[None+None*1+0x665f84],eax",
            " mov dl,0xff",
            " mov eax,0x2000",
            "-mov m4[None+None*1+0x672f90],edi",
            "-mov m4[None+None*1+0x672f70],ebp",
            "+mov m4[None+None*1+0x665fa0],edi",
            "+mov m4[None+None*1+0x665f80],ebp",
            " or bl,0x2",
            "-mov m1[None+None*1+0x672f4c],dl",
            "-mov m4[None+None*1+0x672f98],eax",
            "-mov m1[None+None*1+0x672f48],bl",
            "+mov m1[None+None*1+0x665f5c],dl",
            "+mov m4[None+None*1+0x665fa8],eax",
            "+mov m1[None+None*1+0x665f58],bl",
            " mov dh,0x2",
            " mov bh,0x6",
            " mov eax,0xc",
            "-mov m1[None+None*1+0x672f49],dh",
            "+mov m1[None+None*1+0x665f59],dh",
            " mov edx,0xaf00",
            "-mov m1[None+None*1+0x672f4b],bh",
            "-mov m4[None+None*1+0x672f60],edx",
            "+mov m1[None+None*1+0x665f5b],bh",
            "+mov m4[None+None*1+0x665f70],edx",
            " mov edx,0xd",
            " mov ebx,0x7d00",
            " call winfo.c::like_",
            "-mov m4[None+None*1+0x672ff0],ecx",
            "+mov m4[None+None*1+0x666000],ecx",
            " mov cl,0x64",
            "-mov m4[None+None*1+0x672fc8],ebx",
            "-mov m1[None+None*1+0x672fb4],cl",
            "+mov m4[None+None*1+0x665fd8],ebx",
            "+mov m1[None+None*1+0x665fc4],cl",
            " mov ch,0x1",
            " mov edx,0xe",
            " mov eax,0xd",
            "@@ -1021,173 +1021,173 @@",
            " mov ebp,0xaf00",
            " xor esi,esi",
            " xor bl,bl",
            "-mov m1[None+None*1+0x672fb1],ch",
            "-mov m4[None+None*1+0x672fd8],esi",
            "+mov m1[None+None*1+0x665fc1],ch",
            "+mov m4[None+None*1+0x665fe8],esi",
            " call winfo.c::like_",
            " mov ah,0x2",
            " mov edx,0xf",
            "-mov m4[None+None*1+0x673058],edi",
            "-mov m1[None+None*1+0x67301c],cl",
            "-mov m4[None+None*1+0x673030],ebp",
            "-mov m4[None+None*1+0x673040],esi",
            "+mov m4[None+None*1+0x666068],edi",
            "+mov m1[None+None*1+0x66602c],cl",
            "+mov m4[None+None*1+0x666040],ebp",
            "+mov m4[None+None*1+0x666050],esi",
            " mov ecx,0x12c00",
            " mov ebp,0xce4000",
            "-mov m1[None+None*1+0x673019],ah",
            "+mov m1[None+None*1+0x666029],ah",
            " mov eax,0xc",
            " xor edi,edi",
            " call winfo.c::like_",
            " mov edx,0x2a1",
            " mov eax,0xd",
            "-mov m4[None+None*1+0x6730c0],edx",
            "+mov m4[None+None*1+0x6660d0],edx",
            " mov dl,0xff",
            "-mov m4[None+None*1+0x673098],ecx",
            "-mov m1[None+None*1+0x673084],dl",
            "+mov m4[None+None*1+0x6660a8],ecx",
            "+mov m1[None+None*1+0x666094],dl",
            " xor dh,dh",
            "-mov m4[None+None*1+0x6730a8],esi",
            "-mov m1[None+None*1+0x673081],dh",
            "+mov m4[None+None*1+0x6660b8],esi",
            "+mov m1[None+None*1+0x666091],dh",
            " mov edx,0xb",
            " mov esi,0x2e5",
            " call winfo.c::like_",
            " mov eax,0x1f400",
            " mov edx,0xc8",
            "-mov m4[None+None*1+0x672f20],esi",
            "-mov m4[None+None*1+0x672f0c],edi",
            "-mov m4[None+None*1+0x672f10],ebp",
            "-mov m1[None+None*1+0x672ee4],bl",
            "-mov m4[None+None*1+0x672f08],edi",
            "-mov m4[None+None*1+0x672ef8],edi",
            "+mov m4[None+None*1+0x665f30],esi",
            "+mov m4[None+None*1+0x665f1c],edi",
            "+mov m4[None+None*1+0x665f20],ebp",
            "+mov m1[None+None*1+0x665ef4],bl",
            "+mov m4[None+None*1+0x665f18],edi",
            "+mov m4[None+None*1+0x665f08],edi",
            " mov esi,0x7",
            " mov ebp,0x9c400",
            "-mov m4[None+None*1+0x672f18],eax",
            "-mov m4[None+None*1+0x672f28],edx",
            "+mov m4[None+None*1+0x665f28],eax",
            "+mov m4[None+None*1+0x665f38],edx",
            " xor bh,bh",
            " mov edx,0x1e",
            " xor eax,eax",
            "-mov m1[None+None*1+0x672ee1],bh",
            "+mov m1[None+None*1+0x665ef1],bh",
            " call winfo.c::like_",
            " mov eax,0xbb800",
            "-mov m4[None+None*1+0x6736d8],esi",
            "-mov m4[None+None*1+0x6736c4],edi",
            "-mov m4[None+None*1+0x6736c8],ebp",
            "-mov m4[None+None*1+0x6736d4],eax",
            "-mov m4[None+None*1+0x6736d0],eax",
            "+mov m4[None+None*1+0x6666e8],esi",
            "+mov m4[None+None*1+0x6666d4],edi",
            "+mov m4[None+None*1+0x6666d8],ebp",
            "+mov m4[None+None*1+0x6666e4],eax",
            "+mov m4[None+None*1+0x6666e0],eax",
            " mov ecx,0xa",
            " mov ebp,0x1",
            " mov eax,0x2",
            " mov edx,0x38e38e4",
            " mov ebx,0xc8",
            " mov esi,0x2222222",
            "-mov m4[None+None*1+0x6736cc],edi",
            "-mov m4[None+None*1+0x6736f0],edi",
            "-mov m4[None+None*1+0x6736f4],edi",
            "-mov m4[None+None*1+0x6736e0],ecx",
            "-mov m4[None+None*1+0x673690],ebp",
            "-mov m4[None+None*1+0x6736c0],eax",
            "-mov m4[None+None*1+0x6736e8],edx",
            "-mov m4[None+None*1+0x6736a8],ebx",
            "-mov m4[None+None*1+0x6736b4],esi",
            "-mov m4[None+None*1+0x6736b8],esi",
            "-mov m4[None+None*1+0x6736bc],esi",
            "+mov m4[None+None*1+0x6666dc],edi",
            "+mov m4[None+None*1+0x666700],edi",
            "+mov m4[None+None*1+0x666704],edi",
            "+mov m4[None+None*1+0x6666f0],ecx",
            "+mov m4[None+None*1+0x6666a0],ebp",
            "+mov m4[None+None*1+0x6666d0],eax",
            "+mov m4[None+None*1+0x6666f8],edx",
            "+mov m4[None+None*1+0x6666b8],ebx",
            "+mov m4[None+None*1+0x6666c4],esi",
            "+mov m4[None+None*1+0x6666c8],esi",
            "+mov m4[None+None*1+0x6666cc],esi",
            " mov cl,0x8",
            " mov dl,0x5",
            " mov bl,0x2",
            " mov esi,0x32",
            "-mov ah,m1[None+None*1+0x673698]",
            "-mov m1[None+None*1+0x67369b],cl",
            "+mov ah,m1[None+None*1+0x6666a8]",
            "+mov m1[None+None*1+0x6666ab],cl",
            " or ah,0x7",
            "-mov m1[None+None*1+0x67369a],dl",
            "+mov m1[None+None*1+0x6666aa],dl",
            " mov ch,0x2",
            " mov edx,0x30",
            "-mov m1[None+None*1+0x673698],ah",
            "-mov m1[None+None*1+0x67369c],ch",
            "-mov m1[None+None*1+0x673699],ch",
            "+mov m1[None+None*1+0x6666a8],ah",
            "+mov m1[None+None*1+0x6666ac],ch",
            "+mov m1[None+None*1+0x6666a9],ch",
            " mov eax,ebp",
            " mov ecx,0x100",
            " xor ebp,ebp",
            "-mov m4[None+None*1+0x6736b0],ecx",
            "+mov m4[None+None*1+0x6666c0],ecx",
            " call winfo.c::like_",
            " mov eax,0x5dc00",
            " mov dh,0x4",
            "-mov m1[None+None*1+0x673de9],bl",
            "-mov m4[None+None*1+0x673e10],edi",
            "+mov m1[None+None*1+0x666df9],bl",
            "+mov m4[None+None*1+0x666e20],edi",
            " mov edi,0x18",
            "-mov bh,m1[None+None*1+0x673de8]",
            "-mov m4[None+None*1+0x673e18],eax",
            "-mov m1[None+None*1+0x673dec],dh",
            "+mov bh,m1[None+None*1+0x666df8]",
            "+mov m4[None+None*1+0x666e28],eax",
            "+mov m1[None+None*1+0x666dfc],dh",
            " mov edx,0x1d",
            " or bh,bl",
            " xor eax,eax",
            " mov cl,bh",
            "-mov m1[None+None*1+0x673de8],bh",
            "+mov m1[None+None*1+0x666df8],bh",
            " and cl,0xfb",
            " mov ebx,0x71c71c7",
            "-mov m1[None+None*1+0x673de8],cl",
            "-mov m4[None+None*1+0x673e08],ebx",
            "-mov m4[None+None*1+0x673e0c],ebx",
            "+mov m1[None+None*1+0x666df8],cl",
            "+mov m4[None+None*1+0x666e18],ebx",
            "+mov m4[None+None*1+0x666e1c],ebx",
            " mov ecx,0xf8e38e39",
            " mov ebx,0x4e20",
            "-mov m4[None+None*1+0x673e04],ecx",
            "+mov m4[None+None*1+0x666e14],ecx",
            " call winfo.c::like_",
            " mov edx,0x80e8000",
            " mov ecx,0x1f400",
            " mov eax,0x2000",
            "-mov m4[None+None*1+0x673670],edi",
            "-mov m4[None+None*1+0x67366c],ebp",
            "-mov m4[None+None*1+0x67365c],ebp",
            "-mov m4[None+None*1+0x67363c],ebx",
            "-mov m4[None+None*1+0x673678],esi",
            "-mov m4[None+None*1+0x673664],ebp",
            "+mov m4[None+None*1+0x666680],edi",
            "+mov m4[None+None*1+0x66667c],ebp",
            "+mov m4[None+None*1+0x66666c],ebp",
            "+mov m4[None+None*1+0x66664c],ebx",
            "+mov m4[None+None*1+0x666688],esi",
            "+mov m4[None+None*1+0x666674],ebp",
            " mov ebp,0x32000",
            " mov ebx,0x1c71c71c",
            " mov esi,0x1",
            " mov edi,0xc800",
            "-mov m4[None+None*1+0x673660],edx",
            "-mov m4[None+None*1+0x673668],ecx",
            "-mov m4[None+None*1+0x673638],eax",
            "+mov m4[None+None*1+0x666670],edx",
            "+mov m4[None+None*1+0x666678],ecx",
            "+mov m4[None+None*1+0x666648],eax",
            " mov edx,0x2",
            " mov ch,0x6",
            " mov al,0x64",
            "-mov m4[None+None*1+0x67367c],ebp",
            "-mov m4[None+None*1+0x673680],ebx",
            "-mov m4[None+None*1+0x67362c],esi",
            "-mov m4[None+None*1+0x673648],edi",
            "+mov m4[None+None*1+0x66668c],ebp",
            "+mov m4[None+None*1+0x666690],ebx",
            "+mov m4[None+None*1+0x66663c],esi",
            "+mov m4[None+None*1+0x666658],edi",
            " mov ebp,0xb8e38e39",
            " mov ebx,0x1770",
            " mov esi,0x1400",
            " mov edi,0xeaaaaaab",
            "-mov m4[None+None*1+0x673628],edx",
            "-mov m1[None+None*1+0x673633],ch",
            "-mov m1[None+None*1+0x673634],al",
            "-mov m4[None+None*1+0x673658],edx",
            "+mov m4[None+None*1+0x666638],edx",
            "+mov m1[None+None*1+0x666643],ch",
            "+mov m1[None+None*1+0x666644],al",
            "+mov m4[None+None*1+0x666668],edx",
            " mov ah,0x2",
            " mov ecx,0x271000",
            "-mov dl,m1[None+None*1+0x673630]",
            "-mov m4[None+None*1+0x67364c],ebp",
            "+mov dl,m1[None+None*1+0x666640]",
            "+mov m4[None+None*1+0x66665c],ebp",
            " or dl,ah",
            "-mov m1[None+None*1+0x673631],ah",
            "-mov m1[None+None*1+0x673630],dl",
            "+mov m1[None+None*1+0x666641],ah",
            "+mov m1[None+None*1+0x666640],dl",
            " mov dh,dl",
            " mov eax,0x471c71c7",
            " and dh,0xfb",
            "-mov m4[None+None*1+0x673650],eax",
            "-mov m1[None+None*1+0x673630],dh",
            "+mov m4[None+None*1+0x666660],eax",
            "+mov m1[None+None*1+0x666640],dh",
            " mov edx,0x80000000",
            " mov eax,0x3",
            "-mov m4[None+None*1+0x673654],edx",
            "+mov m4[None+None*1+0x666664],edx",
            " mov edx,0x1f",
            " mov ebp,0x15555555",
            " call winfo.c::like_",
            " mov edx,text:'!!Erf!!'",
            "-mov m4[None+None*1+0x673730],ecx",
            "-mov m4[None+None*1+0x673748],ebx",
            "-mov m4[None+None*1+0x673718],esi",
            "-mov m4[None+None*1+0x67371c],edi",
            "-mov m4[None+None*1+0x673720],ebp",
            "+mov m4[None+None*1+0x666740],ecx",
            "+mov m4[None+None*1+0x666758],ebx",
            "+mov m4[None+None*1+0x666728],esi",
            "+mov m4[None+None*1+0x66672c],edi",
            "+mov m4[None+None*1+0x666730],ebp",
            " mov eax,ebp",
            "-mov m4[None+None*1+0x673724],ebp",
            "+mov m4[None+None*1+0x666734],ebp",
            " xor eax,ebp",
            " add eax,0x4",
            "-mov m4[eax+None*1+0x6740b4],edx",
            "+mov m4[eax+None*1+0x6670c4],edx",
            " cmp eax,0xd8",
            " jne local:1188",
            " mov ecx,text:'None'",
            "@@ -1198,12 +1198,12 @@",
            " mov eax,text:'HydraM261'",
            " mov edx,text:'Stinger'",
            " mov m4[None+None*1+winfo.c::_weapon_names],ecx",
            "-mov m4[None+None*1+0x6740bc],ebx",
            "-mov m4[None+None*1+0x6740c0],esi",
            "-mov m4[None+None*1+0x6740c4],edi",
            "-mov m4[None+None*1+0x6740c8],ebp",
            "-mov m4[None+None*1+0x6740cc],eax",
            "-mov m4[None+None*1+0x6740d0],edx",
            "+mov m4[None+None*1+0x6670cc],ebx",
            "+mov m4[None+None*1+0x6670d0],esi",
            "+mov m4[None+None*1+0x6670d4],edi",
            "+mov m4[None+None*1+0x6670d8],ebp",
            "+mov m4[None+None*1+0x6670dc],eax",
            "+mov m4[None+None*1+0x6670e0],edx",
            " mov ecx,text:'Chaff'",
            " mov ebx,text:'Flare'",
            " mov esi,text:'Cannon Pod'",
            "@@ -1211,13 +1211,13 @@",
            " mov ebp,text:'FAB500 Bomb'",
            " mov eax,text:'FAB250 Bomb'",
            " mov edx,text:'OFAB250 Bomb'",
            "-mov m4[None+None*1+0x6740d4],ecx",
            "-mov m4[None+None*1+0x6740d8],ebx",
            "-mov m4[None+None*1+0x6740e0],esi",
            "-mov m4[None+None*1+0x6740e4],edi",
            "-mov m4[None+None*1+0x6740e8],ebp",
            "-mov m4[None+None*1+0x6740ec],eax",
            "-mov m4[None+None*1+0x6740f0],edx",
            "+mov m4[None+None*1+0x6670e4],ecx",
            "+mov m4[None+None*1+0x6670e8],ebx",
            "+mov m4[None+None*1+0x6670f0],esi",
            "+mov m4[None+None*1+0x6670f4],edi",
            "+mov m4[None+None*1+0x6670f8],ebp",
            "+mov m4[None+None*1+0x6670fc],eax",
            "+mov m4[None+None*1+0x667100],edx",
            " mov ecx,text:'ZAB500 Bomb'",
            " mov ebx,text:'80mm Rocket'",
            " mov esi,text:'57mm Rocket'",
            "@@ -1225,13 +1225,13 @@",
            " mov ebp,text:'Tank Gun'",
            " mov eax,text:'MLRS'",
            " mov edx,text:'AAA'",
            "-mov m4[None+None*1+0x6740f4],ecx",
            "-mov m4[None+None*1+0x6740f8],ebx",
            "-mov m4[None+None*1+0x6740fc],esi",
            "-mov m4[None+None*1+0x674100],edi",
            "-mov m4[None+None*1+0x674108],ebp",
            "-mov m4[None+None*1+0x67410c],eax",
            "-mov m4[None+None*1+0x674114],edx",
            "+mov m4[None+None*1+0x667104],ecx",
            "+mov m4[None+None*1+0x667108],ebx",
            "+mov m4[None+None*1+0x66710c],esi",
            "+mov m4[None+None*1+0x667110],edi",
            "+mov m4[None+None*1+0x667118],ebp",
            "+mov m4[None+None*1+0x66711c],eax",
            "+mov m4[None+None*1+0x667124],edx",
            " mov ecx,text:'SAM-Radar'",
            " mov ebx,text:'SSM'",
            " mov esi,text:'Artillery'",
            "@@ -1239,13 +1239,13 @@",
            " mov ebp,text:'L.G.Bomb'",
            " mov eax,text:'Cannon'",
            " mov edx,text:'AntiTank'",
            "-mov m4[None+None*1+0x674118],ecx",
            "-mov m4[None+None*1+0x67411c],ebx",
            "-mov m4[None+None*1+0x674124],esi",
            "-mov m4[None+None*1+0x674128],edi",
            "-mov m4[None+None*1+0x67412c],ebp",
            "-mov m4[None+None*1+0x674130],eax",
            "-mov m4[None+None*1+0x674134],edx",
            "+mov m4[None+None*1+0x667128],ecx",
            "+mov m4[None+None*1+0x66712c],ebx",
            "+mov m4[None+None*1+0x667134],esi",
            "+mov m4[None+None*1+0x667138],edi",
            "+mov m4[None+None*1+0x66713c],ebp",
            "+mov m4[None+None*1+0x667140],eax",
            "+mov m4[None+None*1+0x667144],edx",
            " mov ecx,text:'ZSU23-AAA'",
            " mov ebx,text:'M163-AAA'",
            " mov esi,text:'M48-SAM'",
            "@@ -1253,13 +1253,13 @@",
            " mov ebp,text:'Rapier'",
            " mov eax,text:'SA6-SAM'",
            " mov edx,text:'SA7-SAM'",
            "-mov m4[None+None*1+0x674138],ecx",
            "-mov m4[None+None*1+0x67413c],ebx",
            "-mov m4[None+None*1+0x674148],esi",
            "-mov m4[None+None*1+0x67414c],edi",
            "-mov m4[None+None*1+0x674150],ebp",
            "-mov m4[None+None*1+0x674144],eax",
            "-mov m4[None+None*1+0x674188],edx",
            "+mov m4[None+None*1+0x667148],ecx",
            "+mov m4[None+None*1+0x66714c],ebx",
            "+mov m4[None+None*1+0x667158],esi",
            "+mov m4[None+None*1+0x66715c],edi",
            "+mov m4[None+None*1+0x667160],ebp",
            "+mov m4[None+None*1+0x667154],eax",
            "+mov m4[None+None*1+0x667198],edx",
            " mov ecx,text:'SA8-SAM'",
            " mov ebx,text:'SA9-SAM'",
            " mov esi,text:'SA13-SAM'",
            "@@ -1267,13 +1267,13 @@",
            " mov ebp,text:'Sparrow AAM'",
            " mov eax,text:'Sidewinder AAM'",
            " mov edx,text:'R27 AAM'",
            "-mov m4[None+None*1+0x674154],ecx",
            "-mov m4[None+None*1+0x674140],ebx",
            "-mov m4[None+None*1+0x674158],esi",
            "-mov m4[None+None*1+0x67415c],edi",
            "-mov m4[None+None*1+0x674164],ebp",
            "-mov m4[None+None*1+0x674160],eax",
            "-mov m4[None+None*1+0x674168],edx",
            "+mov m4[None+None*1+0x667164],ecx",
            "+mov m4[None+None*1+0x667150],ebx",
            "+mov m4[None+None*1+0x667168],esi",
            "+mov m4[None+None*1+0x66716c],edi",
            "+mov m4[None+None*1+0x667174],ebp",
            "+mov m4[None+None*1+0x667170],eax",
            "+mov m4[None+None*1+0x667178],edx",
            " mov ecx,text:'R73 AAM'",
            " mov ebx,text:'R60 AAM'",
            " mov esi,text:'155mm Howitzer'",
            "@@ -1281,17 +1281,17 @@",
            " mov ebp,text:'Styx SSM'",
            " mov eax,text:'Standard SAM'",
            " mov edx,text:'Harpoon SSM'",
            "-mov m4[None+None*1+0x67416c],ecx",
            "-mov m4[None+None*1+0x674170],ebx",
            "-mov m4[None+None*1+0x674174],esi",
            "-mov m4[None+None*1+0x674178],edi",
            "-mov m4[None+None*1+0x67417c],ebp",
            "-mov m4[None+None*1+0x674180],eax",
            "-mov m4[None+None*1+0x674184],edx",
            "+mov m4[None+None*1+0x66717c],ecx",
            "+mov m4[None+None*1+0x667180],ebx",
            "+mov m4[None+None*1+0x667184],esi",
            "+mov m4[None+None*1+0x667188],edi",
            "+mov m4[None+None*1+0x66718c],ebp",
            "+mov m4[None+None*1+0x667190],eax",
            "+mov m4[None+None*1+0x667194],edx",
            " xor ebx,ebx",
            " xor edx,edx",
            " xor ebp,ebp",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " add eax,edx",
            " mov ecx,m4[eax+None*1+0x0]",
            " cmp ebp,ecx",
            "@@ -1303,7 +1303,7 @@",
            " mov ebx,winfo.c::_patch_info",
            " lea ebp,m4[ebx+None*1+0x2f40]",
            " mov eax,m4[ebx+None*1+0x0]",
            "-mov ecx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ecx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " shl eax,0x2",
            " add eax,ecx",
            " mov esi,m4[eax+None*1+0x0]",
            "@@ -1329,7 +1329,7 @@",
            " lea eax,m4[esp+None*1+0x8]",
            " push eax",
            " call sprintf::sprintf_",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " add esp,0xc",
            " mov edi,m4[edx+eax*1+0x0]",
            " mov esi,esp",
            "@@ -1351,7 +1351,7 @@",
            " lea eax,m4[esp+None*1+0x8]",
            " push eax",
            " call sprintf::sprintf_",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " add esp,0xc",
            " mov edi,m4[edx+eax*1+0x0]",
            " mov esi,esp",
            "@@ -1368,7 +1368,7 @@",
            " cmp al,0x0",
            " jne local:1359",
            " pop edi",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ecx,m4[edx+eax*1+0x0]",
            " or m1[ecx+None*1+0xb8],0x2",
            " mov ecx,m4[edx+eax*1+0x0]",
            "@@ -1403,7 +1403,7 @@",
            " push text:'Patched long name too long for object %d(%s). Memory corruption!!!'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0x14",
            "-mov ecx,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov ecx,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov eax,m4[edx+None*1+0x0]",
            " mov edi,m4[ecx+eax*4+0x0]",
            " mov esi,m4[edx+None*1+0xc]",
            "@@ -1438,7 +1438,7 @@",
            " push text:'Patched short name too long for object %d(%s). Memory corruption!!!'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0x14",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov edi,m4[edx+None*1+0x0]",
            " mov edi,m4[eax+edi*4+0x0]",
            " mov esi,m4[edx+None*1+0x10]",
            "@@ -1455,7 +1455,7 @@",
            " cmp al,0x0",
            " jne local:1446",
            " pop edi",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_3d_headers]",
            "+mov eax,m4[None+None*1+3dobjs1.c::_object_3d_headers]",
            " mov ecx,m4[edx+None*1+0x0]",
            " mov esi,m4[edx+None*1+0x14]",
            " mov ecx,m4[eax+ecx*4+0x0]"
          ]
        },
        {
          "symbol": "winjoy.c::initialise_windows_joystick_",
          "source": "E:\\library\\system\\winjoy.c",
          "first": "0x4806f0",
          "second": "0x47e890",
          "first_instruction_count": 7,
          "second_instruction_count": 7,
          "diff": [
            "--- 0x4806f0",
            "+++ 0x47e890",
            "@@ -1,6 +1,6 @@",
            " push ecx",
            " push edx",
            "-call m4[None+None*1+constant:de470d00]",
            "+call m4[None+None*1+constant:a6760c00]",
            " mov m4[None+None*1+winjoy.c::_number_of_joysticks],eax",
            " call winjoy.c::read_windows_joystick_",
            " pop edx"
          ]
        },
        {
          "symbol": "winjoy.c::read_windows_joystick_",
          "source": "E:\\library\\system\\winjoy.c",
          "first": "0x48070c",
          "second": "0x47e8ac",
          "first_instruction_count": 169,
          "second_instruction_count": 169,
          "diff": [
            "--- 0x48070c",
            "+++ 0x47e8ac",
            "@@ -13,33 +13,33 @@",
            " mov m4[None+None*1+joystick.asm::_joy_raway],edx",
            " mov m4[None+None*1+joystick.asm::_joy_rawbx],edx",
            " mov m4[None+None*1+winjoy.c::_joystick_info],esi",
            "-mov m4[None+None*1+0xa9ee74],edi",
            "+mov m4[None+None*1+0xa89944],edi",
            " mov m4[None+None*1+joystick.asm::_joy_rawby],edx",
            "-call m4[None+None*1+constant:ee470d00]",
            "-mov ah,m1[None+None*1+0xa9ee74]",
            "+call m4[None+None*1+constant:b6760c00]",
            "+mov ah,m1[None+None*1+0xa89944]",
            " mov ebx,m4[None+None*1+joystick.asm::_joy_rawby]",
            " test ah,0x80",
            " jne local:56",
            "-mov ebp,m4[None+None*1+0xa9ee78]",
            "+mov ebp,m4[None+None*1+0xa89948]",
            " test ebp,ebp",
            " je local:26",
            " mov m4[None+None*1+joystick.asm::_joy_rawax],ebp",
            "-mov eax,m4[None+None*1+0xa9ee7c]",
            "+mov eax,m4[None+None*1+0xa8994c]",
            " test eax,eax",
            " je local:30",
            " mov m4[None+None*1+joystick.asm::_joy_raway],eax",
            "-mov edx,m4[None+None*1+0xa9ee84]",
            "+mov edx,m4[None+None*1+0xa89954]",
            " test edx,edx",
            " je local:34",
            " mov m4[None+None*1+joystick.asm::_joy_rawbx],edx",
            "-mov ecx,m4[None+None*1+0xa9ee80]",
            "+mov ecx,m4[None+None*1+0xa89950]",
            " test ecx,ecx",
            " je local:38",
            " mov ebx,ecx",
            " mov esi,m4[None+None*1+joystick.c::_joystick_coolie_hat_type]",
            " cmp esi,0x2",
            " jne local:111",
            "-mov eax,m4[None+None*1+0xa9ee98]",
            "+mov eax,m4[None+None*1+0xa89968]",
            " cmp eax,0x4650",
            " jae local:61",
            " test eax,eax",
            "@@ -54,7 +54,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov eax,m4[None+None*1+0xa9ee90]",
            "+mov eax,m4[None+None*1+0xa89960]",
            " shl eax,0x4",
            " or eax,0xffffff0b",
            " mov m4[None+None*1+joystick.asm::_joy_fire],eax",
            "@@ -109,7 +109,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov eax,m4[None+None*1+0xa9ee98]",
            "+mov eax,m4[None+None*1+0xa89968]",
            " cmp eax,0x4650",
            " jae local:127",
            " test eax,eax"
          ]
        },
        {
          "symbol": "wmainwnt::__WinMain",
          "source": "wmainwnt",
          "first": "0x4cd864",
          "second": "0x4c0cd4",
          "first_instruction_count": 56,
          "second_instruction_count": 56,
          "diff": [
            "--- 0x4cd864",
            "+++ 0x4c0cd4",
            "@@ -44,7 +44,7 @@",
            " push edx",
            " push 0x0",
            " push 0x0",
            "-call m4[None+None*1+constant:a84d0d00]",
            "+call m4[None+None*1+constant:867c0c00]",
            " push eax",
            " call start.c::_WinMain@16",
            " call exit::exit_"
          ]
        },
        {
          "symbol": "xline.asm::_draw_xored_line",
          "source": "\\library\\graphics\\xline.asm",
          "first": "0x4c578c",
          "second": "0x4b8d58",
          "first_instruction_count": 146,
          "second_instruction_count": 146,
          "diff": [
            "--- 0x4c578c",
            "+++ 0x4b8d58",
            "@@ -13,7 +13,7 @@",
            " or ebp,0x1",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            "-jmp m4[None+ebp*4+constant:de574c00]",
            "+jmp m4[None+ebp*4+constant:aa8d4b00]",
            " mov ecx,edx",
            " inc ecx",
            " mov ebx,edx"
          ]
        },
        {
          "symbol": "xmsgwnt::__exit_with_msg_",
          "source": "xmsgwnt",
          "first": "0x4cf7e0",
          "second": "0x4c2c50",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x4cf7e0",
            "+++ 0x4c2c50",
            "@@ -21,6 +21,6 @@",
            " push edi",
            " mov edx,m4[eax+None*1+0x8]",
            " push edx",
            "-call m4[None+None*1+constant:d2500d00]",
            "+call m4[None+None*1+constant:d27f0c00]",
            " mov eax,esi",
            " jmp mainwnt::__exit_"
          ]
        }
      ],
      "only_first": [
        "3dcore.c::_vertex_snapper",
        "cockpits.c::new_routine_to_download_cockpit_screen_to_lfb_",
        "colour.c::load_JASC_palette_into_ARGB_table_",
        "fscanf::cget_file_",
        "fscanf::fscanf_",
        "fscanf::uncget_file_",
        "fscanf::vfscanf_",
        "fx2dgpol.c::clip_2d_polygon_",
        "fx2dgpol.c::clip_above_",
        "fx2dgpol.c::clip_below_",
        "fx2dgpol.c::clip_edge_",
        "fx2dgpol.c::clip_left_",
        "fx2dgpol.c::clip_right_",
        "fx2dgpol.c::fill_2d_gouraud_shaded_polygon_",
        "fx2dgpol.c::fill_unfogged_2d_gouraud_shaded_polygon_",
        "fx2dgtpo.c::clip_2d_polygon_",
        "fx2dgtpo.c::clip_above_",
        "fx2dgtpo.c::clip_below_",
        "fx2dgtpo.c::clip_edge_",
        "fx2dgtpo.c::clip_left_",
        "fx2dgtpo.c::clip_right_",
        "fx2dgtpo.c::fill_2d_gouraud_shaded_masked_textured_polygon_",
        "fx2dgtpo.c::fill_2d_gouraud_shaded_textured_polygon_",
        "fx2dpoly.c::clip_2d_polygon_",
        "fx2dpoly.c::clip_above_",
        "fx2dpoly.c::clip_below_",
        "fx2dpoly.c::clip_edge_",
        "fx2dpoly.c::clip_left_",
        "fx2dpoly.c::clip_raw_2d_polygon_",
        "fx2dpoly.c::clip_right_",
        "fx2dpoly.c::fill_2d_coarse_meshed_polygon_",
        "fx2dpoly.c::fill_2d_fine_meshed_polygon_",
        "fx2dpoly.c::fill_2d_heat_haze_polygon_",
        "fx2dpoly.c::fill_2d_non_glide_translucent_polygon_",
        "fx2dpoly.c::fill_2d_polygon_",
        "fx2dpoly.c::fill_2d_translucent_polygon_",
        "fx2dpoly.c::fill_unfogged_2d_polygon_",
        "fx2dtpol.c::clip_2d_polygon_",
        "fx2dtpol.c::clip_above_",
        "fx2dtpol.c::clip_below_",
        "fx2dtpol.c::clip_edge_",
        "fx2dtpol.c::clip_left_",
        "fx2dtpol.c::clip_right_",
        "fx2dtpol.c::fill_2d_constant_shaded_masked_textured_polygon_",
        "fx2dtpol.c::fill_2d_constant_shaded_textured_polygon_",
        "fx2dtpol.c::fill_2d_masked_textured_polygon_",
        "fx2dtpol.c::fill_2d_textured_polygon_",
        "fx3dgpol.c::_3dfx_fill_3d_flame_translucent_rgb_polygon_",
        "fx3dgpol.c::_3dfx_fill_3d_translucent_polygon_",
        "fx3dgpol.c::clip_3d_gouraud_shaded_polygon_",
        "fx3dgpol.c::clip_above_",
        "fx3dgpol.c::clip_behind_",
        "fx3dgpol.c::clip_below_",
        "fx3dgpol.c::clip_left_",
        "fx3dgpol.c::clip_plane_",
        "fx3dgpol.c::clip_raw_3d_gouraud_shaded_polygon_",
        "fx3dgpol.c::clip_right_",
        "fx3dgpol.c::fill_3d_gouraud_shaded_polygon_",
        "fx3dgpol.c::fill_unfogged_3d_gouraud_shaded_polygon_",
        "fx3dgtpo.c::clip_3d_gouraud_shaded_textured_polygon_",
        "fx3dgtpo.c::clip_above_",
        "fx3dgtpo.c::clip_behind_",
        "fx3dgtpo.c::clip_below_",
        "fx3dgtpo.c::clip_left_",
        "fx3dgtpo.c::clip_plane_",
        "fx3dgtpo.c::clip_raw_3d_gouraud_shaded_textured_polygon_",
        "fx3dgtpo.c::clip_right_",
        "fx3dgtpo.c::fill_3d_gouraud_shaded_masked_textured_polygon_",
        "fx3dgtpo.c::fill_3d_gouraud_shaded_textured_polygon_",
        "fx3dmain.c::deinitialise_3d_visual_",
        "fx3dmain.c::draw_3d_mfd_visual_",
        "fx3dmain.c::draw_3d_visual_",
        "fx3dmain.c::draw_mfd_infra_red_3d_visual_",
        "fx3dmain.c::draw_single_ground_object_infra_red_3d_visual_",
        "fx3dmain.c::draw_single_mobile_object_infra_red_3d_visual_",
        "fx3dmain.c::initialise_3d_visual_",
        "fx3dmain.c::shoe_horn_user_object_routine_into_3d_visual_",
        "fx3dmain.c::shoe_horn_user_routine_into_3d_visual_",
        "fx3dmain.c::update_3d_visual_",
        "fx3dobbf.c::distance_sort_object_",
        "fx3dobbf.c::flush_object_buffer_",
        "fx3dobbf.c::get_object_buffer_space_",
        "fx3dobbf.c::initialise_object_buffer_",
        "fx3dobbf.c::insertion_sort_object_",
        "fx3dobj1.c::articulate_nozzle_",
        "fx3dobj1.c::draw_3d_object_",
        "fx3dobj1.c::get_grid_3d_object_visibility_",
        "fx3dobj1.c::get_grid_object_intensity_values_",
        "fx3dobj1.c::get_true_3d_object_visibility_",
        "fx3dobj1.c::initialise_3d_objects_",
        "fx3dobj1.c::pop_3d_object_",
        "fx3dobj1.c::process_completely_visible_decision_plane_",
        "fx3dobj1.c::process_completely_visible_if_then_",
        "fx3dobj1.c::process_completely_visible_if_then_else_",
        "fx3dobj1.c::process_completely_visible_select_case_",
        "fx3dobj1.c::process_gosub_",
        "fx3dobj1.c::process_partially_visible_decision_plane_",
        "fx3dobj1.c::process_partially_visible_if_then_",
        "fx3dobj1.c::process_partially_visible_if_then_else_",
        "fx3dobj1.c::process_partially_visible_select_case_",
        "fx3dobj1.c::push_3d_object_",
        "fx3dobj1.c::scan_completely_visible_3d_object_face_list_",
        "fx3dobj1.c::scan_completely_visible_grid_3d_object_vertex_list_",
        "fx3dobj1.c::scan_completely_visible_true_3d_object_vertex_list_",
        "fx3dobj1.c::scan_partially_visible_3d_object_face_list_",
        "fx3dobj1.c::scan_partially_visible_grid_3d_object_vertex_list_",
        "fx3dobj1.c::scan_partially_visible_true_3d_object_vertex_list_",
        "fx3dobj1.c::scan_true_3d_object_normal_list_",
        "fx3dobj1.c::set_articulation_reheat_level_",
        "fx3dobj1.c::set_nozzle_flame_",
        "fx3dobj2.c::draw_completely_visible_primary_face_",
        "fx3dobj3.c::draw_completely_visible_secondary_face_",
        "fx3dobj4.c::draw_partially_visible_primary_face_",
        "fx3dobj5.c::draw_partially_visible_secondary_face_",
        "fx3dpoly.c::clip_3d_polygon_",
        "fx3dpoly.c::clip_above_",
        "fx3dpoly.c::clip_behind_",
        "fx3dpoly.c::clip_below_",
        "fx3dpoly.c::clip_left_",
        "fx3dpoly.c::clip_plane_",
        "fx3dpoly.c::clip_raw_3d_polygon_",
        "fx3dpoly.c::clip_right_",
        "fx3dpoly.c::fill_3d_coarse_meshed_polygon_",
        "fx3dpoly.c::fill_3d_fine_meshed_polygon_",
        "fx3dpoly.c::fill_3d_polygon_",
        "fx3dpoly.c::fill_3d_translucent_polygon_",
        "fx3dpoly.c::get_3d_clipped_polygon_",
        "fx3dtpol.c::_3dfx_fill_3d_textured_polygon_",
        "fx3dtpol.c::_3dfx_fill_3d_translucent_textured_polygon_",
        "fx3dtpol.c::clip_3d_textured_polygon_",
        "fx3dtpol.c::clip_above_",
        "fx3dtpol.c::clip_behind_",
        "fx3dtpol.c::clip_below_",
        "fx3dtpol.c::clip_left_",
        "fx3dtpol.c::clip_plane_",
        "fx3dtpol.c::clip_raw_3d_textured_polygon_",
        "fx3dtpol.c::clip_right_",
        "fx3dtpol.c::fill_3d_constant_shaded_masked_textured_polygon_",
        "fx3dtpol.c::fill_3d_constant_shaded_textured_polygon_",
        "fx3dtpol.c::fill_3d_masked_textured_polygon_",
        "fx3dtpol.c::fill_3d_textured_polygon_",
        "fx3dtpol.c::fill_3d_translucent_masked_textured_polygon_",
        "fxexplod.c::create_air_explosion_",
        "fxexplod.c::create_ground_explosion_",
        "fxexplod.c::deinitialise_explosions_",
        "fxexplod.c::draw_explosion_",
        "fxexplod.c::initialise_explosions_",
        "fxexplod.c::scan_explosions_",
        "fxexplod.c::update_explosions_",
        "fxfeatur.c::compare_and_fix_",
        "fxfeatur.c::draw_feature_",
        "fxfeatur.c::draw_features_",
        "fxfeatur.c::draw_map_feature_",
        "fxfeatur.c::draw_map_features_",
        "fxfeatur.c::draw_map_super_feature_",
        "fxfeatur.c::draw_map_super_features_",
        "fxfeatur.c::draw_super_feature_",
        "fxfeatur.c::draw_super_features_",
        "fxfeatur.c::fix_feature_flicker_",
        "fxfeatur.c::get_feature_surface_type_",
        "fxfeatur.c::get_super_feature_surface_type_",
        "fxfeatur.c::get_surface_type_",
        "fxfeatur.c::initialise_features_",
        "fxfeatur.c::scan_completely_visible_approx_feature_vertex_list_",
        "fxfeatur.c::scan_completely_visible_face_list_",
        "fxfeatur.c::scan_completely_visible_feature_vertex_list_",
        "fxfeatur.c::scan_completely_visible_super_feature_vertex_list_",
        "fxfeatur.c::scan_map_completely_visible_face_list_",
        "fxfeatur.c::scan_map_completely_visible_feature_vertex_list_",
        "fxfeatur.c::scan_map_completely_visible_super_feature_vertex_list_",
        "fxfeatur.c::scan_map_partially_visible_face_list_",
        "fxfeatur.c::scan_map_partially_visible_feature_vertex_list_",
        "fxfeatur.c::scan_map_partially_visible_super_feature_vertex_list_",
        "fxfeatur.c::scan_partially_visible_approx_feature_vertex_list_",
        "fxfeatur.c::scan_partially_visible_face_list_",
        "fxfeatur.c::scan_partially_visible_feature_vertex_list_",
        "fxfeatur.c::scan_partially_visible_super_feature_vertex_list_",
        "fxfeatur.c::scan_surface_face_list_",
        "fxfeatur.c::scan_surface_feature_vertex_list_",
        "fxfeatur.c::scan_surface_super_feature_vertex_list_",
        "fxgloop.c::change_accelerated_time_",
        "fxgloop.c::check_for_quit_game_",
        "fxgloop.c::game_loop_",
        "fxgloop.c::preamble_",
        "fxgloop.c::quit_game_loop_",
        "fxgloop.c::register_game_loop_keys_",
        "fxgloop.c::two_player_exit_gameloop_",
        "fxgloop.c::unamble_",
        "fxgloop.c::update_time_",
        "fxhaze.c::create_single_haze_",
        "fxhaze.c::deinitialise_haze_",
        "fxhaze.c::draw_haze_",
        "fxhaze.c::draw_haze_trail_",
        "fxhaze.c::initialise_haze_",
        "fxhaze.c::scan_haze_",
        "fxhaze.c::update_haze_",
        "fxinit.c::deinitialise_glide_",
        "fxinit.c::download_rgb_palette_",
        "fxinit.c::free_texture_memory_",
        "fxinit.c::initialise_3dfx_",
        "fxinit.c::initialise_fog_table_",
        "fxinit.c::load_in_explosions_",
        "fxinit.c::load_in_object_textures_",
        "fxinit.c::load_in_smoke_textures_",
        "fxinit.c::load_rgb_file_",
        "fxinit.c::setup_3dfx_textures_",
        "fxpoly1.c::_3dfx_fill_flame_translucent_rgb_polygon_",
        "fxpoly1.c::_3dfx_fill_object_textured_polygon_",
        "fxpoly1.c::_3dfx_fill_polygon_",
        "fxpoly1.c::_3dfx_fill_textured_polygon_",
        "fxpoly1.c::_3dfx_fill_translucent_polygon_",
        "fxpoly1.c::_3dfx_fill_translucent_rgb_polygon_",
        "fxpoly1.c::_3dfx_fill_translucent_textured_polygon_",
        "fxpoly1.c::_3dfx_fill_unfogged_translucent_cloud_polygon_",
        "fxpoly1.c::_3dfx_fill_unfogged_translucent_polygon_",
        "fxpoly1.c::fade_the_grey_map_",
        "fxpoly1.c::fill_coarse_meshed_polygon_",
        "fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
        "fxpoly1.c::fill_constant_shaded_textured_polygon_",
        "fxpoly1.c::fill_fine_meshed_polygon_",
        "fxpoly1.c::fill_gouraud_shaded_masked_textured_polygon_",
        "fxpoly1.c::fill_gouraud_shaded_polygon_",
        "fxpoly1.c::fill_gouraud_shaded_textured_perspective_polygon_",
        "fxpoly1.c::fill_gouraud_shaded_textured_polygon_",
        "fxpoly1.c::fill_masked_textured_polygon_",
        "fxpoly1.c::fill_medium_meshed_polygon_",
        "fxpoly1.c::fill_polygon_",
        "fxpoly1.c::fill_rgb_polygon_",
        "fxpoly1.c::fill_textured_polygon_",
        "fxpoly1.c::fill_translucent_heat_hazed_polygon_",
        "fxpoly1.c::fill_translucent_masked_textured_polygon_",
        "fxpoly1.c::fill_translucent_polygon_",
        "fxpoly1.c::fill_unfogged_gouraud_shaded_polygon_",
        "fxpoly1.c::fill_unfogged_polygon_",
        "fxpoly1.c::get_max_fogging_range_",
        "fxpoly1.c::my_fill_gouraud_shaded_textured_polygon_",
        "fxpoly1.c::set_max_fogging_range_",
        "fxpoly1.c::set_point_",
        "fxsmoke.c::create_single_smoke_",
        "fxsmoke.c::deinitialise_smoke_",
        "fxsmoke.c::draw_smoke_",
        "fxsmoke.c::draw_smoke_trail_",
        "fxsmoke.c::initialise_smoke_",
        "fxsmoke.c::scan_smoke_",
        "fxsmoke.c::update_smoke_",
        "fxterr.c::calc_fogged_colour_",
        "fxterr.c::draw_8bit_terrain_",
        "fxterr.c::draw_completely_visible_contour_lines_",
        "fxterr.c::draw_map_contour_lines_",
        "fxterr.c::draw_map_terrain_",
        "fxterr.c::draw_partially_visible_contour_lines_",
        "fxterr.c::draw_terrain_",
        "fxterr.c::get_approx_terrain_elevation_",
        "fxterr.c::get_cloud_coords_",
        "fxterr.c::get_max_sector_terrain_elevation_",
        "fxterr.c::get_terrain_coords_",
        "fxterr.c::get_terrain_elevation_",
        "fxterr.c::grid_post_clippy_snip_",
        "fxterr.c::initialise_fog_palette_",
        "fxterr.c::initialise_terrain_",
        "fxterr.c::initialise_terrain_height_",
        "fxterr.c::initialise_terrain_palette_",
        "fxterr.c::lauries_map_fill_",
        "fxterr.c::lauries_new_draw_map_terrain_",
        "fxterr.c::load_warzone_texture_maps_",
        "fxterr.c::next_step_",
        "fxterr.c::render_8bit_constant_shaded_terrain_",
        "fxterr.c::render_8bit_gouraud_shaded_terrain_",
        "fxterr.c::render_8bit_gouraud_shaded_textured_perspective_terrain_",
        "fxterr.c::render_8bit_gouraud_shaded_textured_terrain_",
        "fxterr.c::render_8bit_subdiv_gouraud_shaded_terrain_",
        "fxterr.c::render_8bit_subdiv_gouraud_shaded_textured_terrain_",
        "fxterr.c::render_constant_shaded_terrain_",
        "fxterr.c::render_gouraud_shaded_terrain_",
        "fxterr.c::render_gouraud_shaded_textured_perspective_terrain_",
        "fxterr.c::render_gouraud_shaded_textured_terrain_",
        "fxterr.c::render_subdiv_gouraud_shaded_terrain_",
        "fxterr.c::render_subdiv_gouraud_shaded_textured_terrain_",
        "fxterr.c::scan_8bit_terrain_",
        "fxterr.c::scan_terrain_",
        "fxterr.c::set_new_fog_range_and_width_",
        "fxterr.c::subdiv_8bit_completely_visible_gouraud_shaded_terrain_",
        "fxterr.c::subdiv_8bit_completely_visible_gouraud_shaded_textured_terrain_",
        "fxterr.c::subdiv_8bit_partially_visible_gouraud_shaded_terrain_",
        "fxterr.c::subdiv_8bit_partially_visible_gouraud_shaded_textured_terrain_",
        "fxterr.c::subdiv_completely_visible_gouraud_shaded_terrain_",
        "fxterr.c::subdiv_completely_visible_gouraud_shaded_textured_terrain_",
        "fxterr.c::subdiv_partially_visible_gouraud_shaded_terrain_",
        "fxterr.c::subdiv_partially_visible_gouraud_shaded_textured_terrain_",
        "fxterr.c::walk_terrain_",
        "line.asm::_draw_glide_line",
        "repaint.c::take_glide_shot_",
        "setblock.asm::_set_lfb_block",
        "setblock.asm::_set_lfb_pal_block",
        "setmblk.asm::_set_lhs_masked_lfb_block",
        "setmblk.asm::_set_masked_lfb_block",
        "setmblk.asm::_set_masked_lfb_pal_block",
        "setmblk.asm::_set_rhs_masked_lfb_block",
        "sprite.asm::_draw_glide_sprite",
        "ungetc::ungetc_"
      ],
      "only_second": [
        "2dgpoly.c::clip_2d_polygon_",
        "2dgpoly.c::clip_above_",
        "2dgpoly.c::clip_below_",
        "2dgpoly.c::clip_edge_",
        "2dgpoly.c::clip_left_",
        "2dgpoly.c::clip_right_",
        "2dgpoly.c::fill_2d_gouraud_shaded_polygon_",
        "2dgtpoly.c::clip_2d_polygon_",
        "2dgtpoly.c::clip_above_",
        "2dgtpoly.c::clip_below_",
        "2dgtpoly.c::clip_edge_",
        "2dgtpoly.c::clip_left_",
        "2dgtpoly.c::clip_right_",
        "2dgtpoly.c::fill_2d_gouraud_shaded_masked_textured_polygon_",
        "2dgtpoly.c::fill_2d_gouraud_shaded_textured_polygon_",
        "2dpoly.c::clip_2d_polygon_",
        "2dpoly.c::clip_above_",
        "2dpoly.c::clip_below_",
        "2dpoly.c::clip_edge_",
        "2dpoly.c::clip_left_",
        "2dpoly.c::clip_raw_2d_polygon_",
        "2dpoly.c::clip_right_",
        "2dpoly.c::fill_2d_coarse_meshed_polygon_",
        "2dpoly.c::fill_2d_fine_meshed_polygon_",
        "2dpoly.c::fill_2d_heat_haze_polygon_",
        "2dpoly.c::fill_2d_polygon_",
        "2dpoly.c::fill_2d_translucent_polygon_",
        "2dtpoly.c::clip_2d_polygon_",
        "2dtpoly.c::clip_above_",
        "2dtpoly.c::clip_below_",
        "2dtpoly.c::clip_edge_",
        "2dtpoly.c::clip_left_",
        "2dtpoly.c::clip_right_",
        "2dtpoly.c::fill_2d_constant_shaded_masked_textured_polygon_",
        "2dtpoly.c::fill_2d_constant_shaded_textured_polygon_",
        "2dtpoly.c::fill_2d_masked_textured_polygon_",
        "2dtpoly.c::fill_2d_textured_polygon_",
        "3dgpoly.c::clip_3d_gouraud_shaded_polygon_",
        "3dgpoly.c::clip_above_",
        "3dgpoly.c::clip_behind_",
        "3dgpoly.c::clip_below_",
        "3dgpoly.c::clip_left_",
        "3dgpoly.c::clip_plane_",
        "3dgpoly.c::clip_raw_3d_gouraud_shaded_polygon_",
        "3dgpoly.c::clip_right_",
        "3dgpoly.c::fill_3d_gouraud_shaded_polygon_",
        "3dgtpoly.c::clip_3d_gouraud_shaded_textured_polygon_",
        "3dgtpoly.c::clip_above_",
        "3dgtpoly.c::clip_behind_",
        "3dgtpoly.c::clip_below_",
        "3dgtpoly.c::clip_left_",
        "3dgtpoly.c::clip_plane_",
        "3dgtpoly.c::clip_raw_3d_gouraud_shaded_textured_polygon_",
        "3dgtpoly.c::clip_right_",
        "3dgtpoly.c::fill_3d_gouraud_shaded_masked_textured_polygon_",
        "3dgtpoly.c::fill_3d_gouraud_shaded_textured_polygon_",
        "3dmain.c::deinitialise_3d_visual_",
        "3dmain.c::draw_3d_mfd_visual_",
        "3dmain.c::draw_3d_visual_",
        "3dmain.c::draw_mfd_infra_red_3d_visual_",
        "3dmain.c::draw_single_ground_object_infra_red_3d_visual_",
        "3dmain.c::draw_single_mobile_object_infra_red_3d_visual_",
        "3dmain.c::initialise_3d_visual_",
        "3dmain.c::shoe_horn_user_object_routine_into_3d_visual_",
        "3dmain.c::shoe_horn_user_routine_into_3d_visual_",
        "3dmain.c::update_3d_visual_",
        "3dobjbuf.c::distance_sort_object_",
        "3dobjbuf.c::flush_object_buffer_",
        "3dobjbuf.c::get_object_buffer_space_",
        "3dobjbuf.c::initialise_object_buffer_",
        "3dobjbuf.c::insertion_sort_object_",
        "3dobjs1.c::draw_3d_object_",
        "3dobjs1.c::get_grid_3d_object_visibility_",
        "3dobjs1.c::get_grid_object_intensity_values_",
        "3dobjs1.c::get_true_3d_object_visibility_",
        "3dobjs1.c::initialise_3d_objects_",
        "3dobjs1.c::pop_3d_object_",
        "3dobjs1.c::process_completely_visible_decision_plane_",
        "3dobjs1.c::process_completely_visible_if_then_",
        "3dobjs1.c::process_completely_visible_if_then_else_",
        "3dobjs1.c::process_completely_visible_select_case_",
        "3dobjs1.c::process_gosub_",
        "3dobjs1.c::process_partially_visible_decision_plane_",
        "3dobjs1.c::process_partially_visible_if_then_",
        "3dobjs1.c::process_partially_visible_if_then_else_",
        "3dobjs1.c::process_partially_visible_select_case_",
        "3dobjs1.c::push_3d_object_",
        "3dobjs1.c::scan_completely_visible_3d_object_face_list_",
        "3dobjs1.c::scan_completely_visible_grid_3d_object_vertex_list_",
        "3dobjs1.c::scan_completely_visible_true_3d_object_vertex_list_",
        "3dobjs1.c::scan_partially_visible_3d_object_face_list_",
        "3dobjs1.c::scan_partially_visible_grid_3d_object_vertex_list_",
        "3dobjs1.c::scan_partially_visible_true_3d_object_vertex_list_",
        "3dobjs1.c::scan_true_3d_object_normal_list_",
        "3dobjs2.c::draw_completely_visible_primary_face_",
        "3dobjs3.c::draw_completely_visible_secondary_face_",
        "3dobjs4.c::draw_partially_visible_primary_face_",
        "3dobjs5.c::draw_partially_visible_secondary_face_",
        "3dpoly.c::clip_3d_polygon_",
        "3dpoly.c::clip_above_",
        "3dpoly.c::clip_behind_",
        "3dpoly.c::clip_below_",
        "3dpoly.c::clip_left_",
        "3dpoly.c::clip_plane_",
        "3dpoly.c::clip_raw_3d_polygon_",
        "3dpoly.c::clip_right_",
        "3dpoly.c::fill_3d_coarse_meshed_polygon_",
        "3dpoly.c::fill_3d_fine_meshed_polygon_",
        "3dpoly.c::fill_3d_polygon_",
        "3dpoly.c::fill_3d_translucent_polygon_",
        "3dpoly.c::get_3d_clipped_polygon_",
        "3dtpoly.c::clip_3d_textured_polygon_",
        "3dtpoly.c::clip_above_",
        "3dtpoly.c::clip_behind_",
        "3dtpoly.c::clip_below_",
        "3dtpoly.c::clip_left_",
        "3dtpoly.c::clip_plane_",
        "3dtpoly.c::clip_raw_3d_textured_polygon_",
        "3dtpoly.c::clip_right_",
        "3dtpoly.c::fill_3d_constant_shaded_masked_textured_polygon_",
        "3dtpoly.c::fill_3d_constant_shaded_textured_polygon_",
        "3dtpoly.c::fill_3d_masked_textured_polygon_",
        "3dtpoly.c::fill_3d_textured_polygon_",
        "3dtpoly.c::fill_3d_translucent_masked_textured_polygon_",
        "explode.c::create_air_explosion_",
        "explode.c::create_ground_explosion_",
        "explode.c::deinitialise_explosions_",
        "explode.c::draw_explosion_",
        "explode.c::initialise_explosions_",
        "explode.c::scan_explosions_",
        "explode.c::update_explosions_",
        "features.c::draw_feature_",
        "features.c::draw_features_",
        "features.c::draw_map_feature_",
        "features.c::draw_map_features_",
        "features.c::draw_map_super_feature_",
        "features.c::draw_map_super_features_",
        "features.c::draw_super_feature_",
        "features.c::draw_super_features_",
        "features.c::get_feature_surface_type_",
        "features.c::get_super_feature_surface_type_",
        "features.c::get_surface_type_",
        "features.c::initialise_features_",
        "features.c::scan_completely_visible_approx_feature_vertex_list_",
        "features.c::scan_completely_visible_face_list_",
        "features.c::scan_completely_visible_feature_vertex_list_",
        "features.c::scan_completely_visible_super_feature_vertex_list_",
        "features.c::scan_map_completely_visible_face_list_",
        "features.c::scan_map_completely_visible_feature_vertex_list_",
        "features.c::scan_map_completely_visible_super_feature_vertex_list_",
        "features.c::scan_map_partially_visible_face_list_",
        "features.c::scan_map_partially_visible_feature_vertex_list_",
        "features.c::scan_map_partially_visible_super_feature_vertex_list_",
        "features.c::scan_partially_visible_approx_feature_vertex_list_",
        "features.c::scan_partially_visible_face_list_",
        "features.c::scan_partially_visible_feature_vertex_list_",
        "features.c::scan_partially_visible_super_feature_vertex_list_",
        "features.c::scan_surface_face_list_",
        "features.c::scan_surface_feature_vertex_list_",
        "features.c::scan_surface_super_feature_vertex_list_",
        "fprintf::fprintf_",
        "gameloop.c::change_accelerated_time_",
        "gameloop.c::check_for_quit_game_",
        "gameloop.c::game_loop_",
        "gameloop.c::preamble_",
        "gameloop.c::quit_game_loop_",
        "gameloop.c::register_game_loop_keys_",
        "gameloop.c::two_player_exit_gameloop_",
        "gameloop.c::unamble_",
        "gameloop.c::update_time_",
        "polygon.c::fill_coarse_meshed_polygon_",
        "polygon.c::fill_constant_shaded_masked_textured_polygon_",
        "polygon.c::fill_constant_shaded_textured_polygon_",
        "polygon.c::fill_fine_meshed_polygon_",
        "polygon.c::fill_gouraud_shaded_masked_textured_polygon_",
        "polygon.c::fill_gouraud_shaded_polygon_",
        "polygon.c::fill_gouraud_shaded_textured_perspective_polygon_",
        "polygon.c::fill_gouraud_shaded_textured_polygon_",
        "polygon.c::fill_masked_textured_polygon_",
        "polygon.c::fill_medium_meshed_polygon_",
        "polygon.c::fill_polygon_",
        "polygon.c::fill_textured_polygon_",
        "polygon.c::fill_translucent_heat_hazed_polygon_",
        "polygon.c::fill_translucent_masked_textured_polygon_",
        "polygon.c::fill_translucent_polygon_",
        "polygon.c::my_fill_gouraud_shaded_textured_polygon_",
        "repaint.c::do_screen_shot_",
        "smoke.c::create_single_smoke_",
        "smoke.c::deinitialise_smoke_",
        "smoke.c::draw_smoke_",
        "smoke.c::draw_smoke_trail_",
        "smoke.c::initialise_smoke_",
        "smoke.c::scan_smoke_",
        "smoke.c::update_smoke_",
        "terrain.c::calc_fogged_colour_",
        "terrain.c::draw_completely_visible_contour_lines_",
        "terrain.c::draw_map_contour_lines_",
        "terrain.c::draw_map_terrain_",
        "terrain.c::draw_partially_visible_contour_lines_",
        "terrain.c::draw_terrain_",
        "terrain.c::get_approx_terrain_elevation_",
        "terrain.c::get_cloud_coords_",
        "terrain.c::get_max_sector_terrain_elevation_",
        "terrain.c::get_terrain_coords_",
        "terrain.c::get_terrain_elevation_",
        "terrain.c::grid_post_clippy_snip_",
        "terrain.c::initialise_fog_palette_",
        "terrain.c::initialise_terrain_",
        "terrain.c::initialise_terrain_height_",
        "terrain.c::initialise_terrain_palette_",
        "terrain.c::lauries_map_fill_",
        "terrain.c::lauries_new_draw_map_terrain_",
        "terrain.c::load_warzone_texture_maps_",
        "terrain.c::next_step_",
        "terrain.c::render_constant_shaded_terrain_",
        "terrain.c::render_gouraud_shaded_terrain_",
        "terrain.c::render_gouraud_shaded_textured_perspective_terrain_",
        "terrain.c::render_gouraud_shaded_textured_terrain_",
        "terrain.c::render_subdiv_gouraud_shaded_terrain_",
        "terrain.c::render_subdiv_gouraud_shaded_textured_terrain_",
        "terrain.c::scan_terrain_",
        "terrain.c::set_new_fog_range_and_width_",
        "terrain.c::subdiv_completely_visible_gouraud_shaded_terrain_",
        "terrain.c::subdiv_completely_visible_gouraud_shaded_textured_terrain_",
        "terrain.c::subdiv_partially_visible_gouraud_shaded_terrain_",
        "terrain.c::subdiv_partially_visible_gouraud_shaded_textured_terrain_",
        "terrain.c::walk_terrain_"
      ]
    },
    {
      "first": "extracted/cd_1998_09/files/FILES/3DFX/APACHE95.EXE",
      "second": "extracted/cd_2000_11_vd2/files/FILES/3DFX/APACHE95.EXE",
      "normalised_identical": 3171,
      "changed": [
        {
          "symbol": "2dline.c::draw_2d_line_",
          "source": "E:\\library\\2dvisual\\2dline.c",
          "first": "0x467d30",
          "second": "0x467d50",
          "first_instruction_count": 52,
          "second_instruction_count": 66,
          "diff": [
            "--- 0x467d30",
            "+++ 0x467d50",
            "@@ -11,27 +11,41 @@",
            " mov eax,esp",
            " call 2dline.c::clip_2d_line_",
            " test eax,eax",
            "-je local:37",
            "+je local:44",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:41",
            "+je local:55",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test ecx,ecx",
            "+jne local:30",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push ecx",
            "+push ecx",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbLock@24",
            "-mov esi,m4[esp+None*1+0xc]",
            " mov eax,m4[None+None*1+0x724310]",
            "-mov edx,m4[esp+None*1+0x8]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+mov esi,m4[esp+None*1+0xc]",
            "+mov edx,m4[esp+None*1+0x8]",
            "+mov ecx,m4[esp+None*1+0x0]",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+xor eax,eax",
            "+inc ebx",
            "+mov al,m1[esp+None*1+0x1c]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            " mov ebx,m4[esp+None*1+0x4]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "-mov ecx,m4[esp+None*1+0x0]",
            "-mov al,m1[esp+None*1+0x1c]",
            " call line.asm::_draw_glide_line",
            "+mov esi,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec esi",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],esi",
            "+je local:48",
            "+add esp,0x10",
            "+pop edi",
            "+pop esi",
            "+ret 0x4",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8"
          ]
        },
        {
          "symbol": "3dcore.c::get_light_source_unit_vector_",
          "source": "E:\\library\\3dvisual\\3dcore.c",
          "first": "0x48c644",
          "second": "0x48c704",
          "first_instruction_count": 118,
          "second_instruction_count": 118,
          "diff": [
            "--- 0x48c644",
            "+++ 0x48c704",
            "@@ -53,14 +53,14 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,edx",
            "-mov m4[None+None*1+0xafd4b8],edx",
            "+mov m4[None+None*1+0xafd5bc],edx",
            " neg eax",
            "-mov m4[None+None*1+0xafd4b8],eax",
            "+mov m4[None+None*1+0xafd5bc],eax",
            " mov eax,edi",
            " mov edx,eax",
            "-mov m4[None+None*1+0xafd4bc],eax",
            "+mov m4[None+None*1+0xafd5c0],eax",
            " neg edx",
            "-mov m4[None+None*1+0xafd4bc],edx",
            "+mov m4[None+None*1+0xafd5c0],edx",
            " call fx3dobj1.c::get_grid_object_intensity_values_",
            " mov eax,m4[None+None*1+0xafaebc]",
            " mov m4[None+None*1+constant:00000000],eax"
          ]
        },
        {
          "symbol": "3dcore.c::get_object_transformation_matrix_",
          "source": "E:\\library\\3dvisual\\3dcore.c",
          "first": "0x48c5d8",
          "second": "0x48c698",
          "first_instruction_count": 27,
          "second_instruction_count": 27,
          "diff": [
            "--- 0x48c5d8",
            "+++ 0x48c698",
            "@@ -3,23 +3,23 @@",
            " mov edx,m4[eax+None*1+0xc]",
            " mov m4[None+None*1+3dcore.c::_b_factors],edx",
            " mov edx,m4[eax+None*1+0x18]",
            "-mov m4[None+None*1+0xaff698],edx",
            "+mov m4[None+None*1+0xaff61c],edx",
            " mov edx,m4[eax+None*1+0x24]",
            "-mov m4[None+None*1+0xaff69c],edx",
            "+mov m4[None+None*1+0xaff620],edx",
            " mov edx,m4[eax+None*1+0x10]",
            "-mov m4[None+None*1+0xaff6a0],edx",
            "+mov m4[None+None*1+0xaff624],edx",
            " mov edx,m4[eax+None*1+0x1c]",
            "-mov m4[None+None*1+0xaff6a4],edx",
            "+mov m4[None+None*1+0xaff628],edx",
            " mov edx,m4[eax+None*1+0x28]",
            "-mov m4[None+None*1+0xaff6a8],edx",
            "+mov m4[None+None*1+0xaff62c],edx",
            " mov edx,m4[eax+None*1+0x14]",
            "-mov m4[None+None*1+0xaff6ac],edx",
            "+mov m4[None+None*1+0xaff630],edx",
            " mov edx,m4[eax+None*1+0x20]",
            " mov ebx,3dcore.c::_c_factors",
            "-mov m4[None+None*1+0xaff6b0],edx",
            "+mov m4[None+None*1+0xaff634],edx",
            " mov eax,m4[eax+None*1+0x2c]",
            " mov edx,3dcore.c::_b_factors",
            "-mov m4[None+None*1+0xaff6b4],eax",
            "+mov m4[None+None*1+0xaff638],eax",
            " mov eax,3dcore.c::_a_factors",
            " call matrix.c::mat_mul_3x3_3x3_",
            " pop edx"
          ]
        },
        {
          "symbol": "3dcore.c::initialise_3d_viewpoint_",
          "source": "E:\\library\\3dvisual\\3dcore.c",
          "first": "0x48bb74",
          "second": "0x48bc34",
          "first_instruction_count": 457,
          "second_instruction_count": 457,
          "diff": [
            "--- 0x48bb74",
            "+++ 0x48bc34",
            "@@ -140,100 +140,100 @@",
            " mov m4[None+None*1+3dcore.c::_vp_cosr],eax",
            " call 3dcore.asm::_subdiv_huge_grid",
            " mov edi,3dcore.c::_xgy_h",
            "-mov edx,m4[None+None*1+0xaff634]",
            "+mov edx,m4[None+None*1+0xaff658]",
            " call 3dcore.asm::_subdiv_huge_grid",
            " mov edi,3dcore.c::_ygx_h",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " call 3dcore.asm::_subdiv_huge_grid",
            " mov edi,3dcore.c::_ygy_h",
            "-mov edx,m4[None+None*1+0xaff640]",
            "+mov edx,m4[None+None*1+0xaff664]",
            " call 3dcore.asm::_subdiv_huge_grid",
            " mov edi,3dcore.c::_zgx_h",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " call 3dcore.asm::_subdiv_huge_grid",
            " mov edi,3dcore.c::_zgy_h",
            "-mov edx,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xaff670]",
            " call 3dcore.asm::_subdiv_huge_grid",
            " mov edi,3dcore.c::_xgx_l",
            " mov edx,m4[None+None*1+3dcore.c::_a_factors]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_xgy_l",
            "-mov edx,m4[None+None*1+0xaff634]",
            "+mov edx,m4[None+None*1+0xaff658]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_xgz_l",
            "-mov edx,m4[None+None*1+0xaff638]",
            "+mov edx,m4[None+None*1+0xaff65c]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_ygx_l",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_ygy_l",
            "-mov edx,m4[None+None*1+0xaff640]",
            "+mov edx,m4[None+None*1+0xaff664]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_ygz_l",
            "-mov edx,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xaff668]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_zgx_l",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_zgy_l",
            "-mov edx,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xaff670]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_zgz_l",
            "-mov edx,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff674]",
            " call 3dcore.asm::_subdiv_large_grid",
            " mov edi,3dcore.c::_xgx_m",
            " mov edx,m4[None+None*1+3dcore.c::_a_factors]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_xgy_m",
            "-mov edx,m4[None+None*1+0xaff634]",
            "+mov edx,m4[None+None*1+0xaff658]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_xgz_m",
            "-mov edx,m4[None+None*1+0xaff638]",
            "+mov edx,m4[None+None*1+0xaff65c]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_ygx_m",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_ygy_m",
            "-mov edx,m4[None+None*1+0xaff640]",
            "+mov edx,m4[None+None*1+0xaff664]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_ygz_m",
            "-mov edx,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xaff668]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_zgx_m",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_zgy_m",
            "-mov edx,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xaff670]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_zgz_m",
            "-mov edx,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff674]",
            " call 3dcore.asm::_subdiv_medium_grid",
            " mov edi,3dcore.c::_xgx_s",
            " mov edx,m4[None+None*1+3dcore.c::_a_factors]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_xgy_s",
            "-mov edx,m4[None+None*1+0xaff634]",
            "+mov edx,m4[None+None*1+0xaff658]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_xgz_s",
            "-mov edx,m4[None+None*1+0xaff638]",
            "+mov edx,m4[None+None*1+0xaff65c]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_ygx_s",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_ygy_s",
            "-mov edx,m4[None+None*1+0xaff640]",
            "+mov edx,m4[None+None*1+0xaff664]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_ygz_s",
            "-mov edx,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xaff668]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_zgx_s",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_zgy_s",
            "-mov edx,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xaff670]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov edi,3dcore.c::_zgz_s",
            "-mov edx,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff674]",
            " call 3dcore.asm::_subdiv_small_grid",
            " mov ebp,m4[None+None*1+3dcore.c::_vp_x_offset]",
            " mov eax,m4[None+None*1+3dcore.c::_vp_y_offset]",
            "@@ -253,11 +253,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff658]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -270,15 +270,15 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " mov eax,ebp",
            " mov m4[None+None*1+3dcore.c::_vp_xeo],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xaff660]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -291,15 +291,15 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " mov eax,ebp",
            " mov m4[None+None*1+3dcore.c::_vp_yeo],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -327,11 +327,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff658]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -344,15 +344,15 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " mov eax,ebp",
            " mov m4[None+None*1+3dcore.c::_vp_xeo_ss],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xaff660]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -365,15 +365,15 @@",
            " mov ebx,m4[esp+None*1+0x0]",
            " mov eax,ebp",
            " mov m4[None+None*1+3dcore.c::_vp_yeo_ss],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "3dline.c::draw_3d_line_",
          "source": "E:\\library\\3dvisual\\3dline.c",
          "first": "0x48c860",
          "second": "0x48c920",
          "first_instruction_count": 51,
          "second_instruction_count": 66,
          "diff": [
            "--- 0x48c860",
            "+++ 0x48c920",
            "@@ -6,28 +6,43 @@",
            " mov edi,edx",
            " call 3dline.c::clip_3d_line_",
            " test eax,eax",
            "-je local:33",
            "+je local:40",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:38",
            "+je local:53",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test ecx,ecx",
            "+jne local:25",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push ecx",
            "+push ecx",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbLock@24",
            " mov eax,m4[None+None*1+0x724310]",
            "-mov ebp,m4[edi+None*1+0x10]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "-mov edx,m4[edi+None*1+0xc]",
            " mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            " xor eax,eax",
            " mov ecx,m4[esi+None*1+0xc]",
            " mov al,bl",
            " mov ebx,m4[esi+None*1+0x10]",
            "+mov esi,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+mov ebp,m4[edi+None*1+0x10]",
            "+inc esi",
            "+mov edx,m4[edi+None*1+0xc]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],esi",
            " mov esi,ebp",
            " call line.asm::_draw_glide_line",
            "+mov edi,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec edi",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edi",
            "+je local:45",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8"
          ]
        },
        {
          "symbol": "3dpal.c::initialise_3d_palette_",
          "source": "E:\\library\\3dvisual\\3dpal.c",
          "first": "0x48d044",
          "second": "0x48d134",
          "first_instruction_count": 778,
          "second_instruction_count": 778,
          "diff": [
            "--- 0x48d044",
            "+++ 0x48d134",
            "@@ -8,7 +8,7 @@",
            " lea edi,m4[esp+None*1+0xd0]",
            " mov ebx,text:'3DPAL.RGB'",
            " mov eax,esp",
            "-mov esi,3dline.c::clip_line_end_+0x40c",
            "+mov esi,3dline.c::clip_line_end_+0x410",
            " mov edx,m4[None+None*1+3dconfig.c::_visual_initialisation]",
            " xor ecx,ecx",
            " add edx,0x4"
          ]
        },
        {
          "symbol": "apweapon.c::apache_weapon_available_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x447598",
          "second": "0x4475f8",
          "first_instruction_count": 15,
          "second_instruction_count": 15,
          "diff": [
            "--- 0x447598",
            "+++ 0x4475f8",
            "@@ -1,11 +1,11 @@",
            " push ecx",
            " shl eax,0x2",
            "-cmp m4[eax+None*1+0x62e634],0xffffffff",
            "+cmp m4[eax+None*1+0x62e650],0xffffffff",
            " je local:12",
            " mov ecx,m4[None+None*1+gamedata.c::_game_clock_time]",
            "-cmp ecx,m4[eax+None*1+0x62e658]",
            "+cmp ecx,m4[eax+None*1+0x62e674]",
            " jl local:12",
            "-cmp m4[eax+None*1+0x62e610],0x0",
            "+cmp m4[eax+None*1+0x62e62c],0x0",
            " jle local:12",
            " mov eax,0x1",
            " pop ecx"
          ]
        },
        {
          "symbol": "apweapon.c::fire_weapon_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x446fdc",
          "second": "0x44703c",
          "first_instruction_count": 386,
          "second_instruction_count": 386,
          "diff": [
            "--- 0x446fdc",
            "+++ 0x44703c",
            "@@ -61,7 +61,7 @@",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            " mov ebp,m4[None+None*1+apweapon.c::_current_weapon]",
            " lea ecx,m4[eax+None*1+0xffffffff]",
            "-mov ebp,m4[None+ebp*4+0x62e634]",
            "+mov ebp,m4[None+ebp*4+0x62e650]",
            " cmp ecx,0x5",
            " ja local:337",
            " jmp m4[None+ecx*4+apweapon.c::announce_weapon_+0x4c]",
            "@@ -130,7 +130,7 @@",
            " mov edx,m4[None+None*1+apweapon.c::_current_weapon]",
            " shl edx,0x2",
            " mov eax,m4[esp+None*1+0x30]",
            "-mov esi,m4[edx+None*1+0x62e610]",
            "+mov esi,m4[edx+None*1+0x62e62c]",
            " cmp eax,esi",
            " jle local:136",
            " mov eax,esi",
            "@@ -144,7 +144,7 @@",
            " test esi,esi",
            " jle local:214",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "-cmp m4[None+eax*4+0x62e610],0x0",
            "+cmp m4[None+eax*4+0x62e62c],0x0",
            " jle local:214",
            " mov eax,m4[esp+None*1+0x24]",
            " mov ebx,m4[ecx+None*1+0x0]",
            "@@ -172,11 +172,11 @@",
            " or m1[eax+None*1+0x14],0x4",
            " cmp m4[None+None*1+apweapon.c::_infinite_weapons],0x0",
            " jne local:143",
            "-mov edx,m4[ebp+None*1+0x62e560]",
            "+mov edx,m4[ebp+None*1+0x62e57c]",
            " dec edx",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov m4[ebp+None*1+0x62e560],edx",
            "-dec m4[None+eax*4+0x62e610]",
            "+mov m4[ebp+None*1+0x62e57c],edx",
            "+dec m4[None+eax*4+0x62e62c]",
            " jmp local:143",
            " mov edx,target.c::_current_target",
            " jmp local:60",
            "@@ -207,11 +207,11 @@",
            " lea edx,m4[None+ebp*4+0x0]",
            " add edx,ebp",
            " shl edx,0x2",
            "-mov ebp,m4[edx+None*1+0x62e560]",
            "+mov ebp,m4[edx+None*1+0x62e57c]",
            " dec ebp",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov m4[edx+None*1+0x62e560],ebp",
            "-dec m4[None+eax*4+0x62e610]",
            "+mov m4[edx+None*1+0x62e57c],ebp",
            "+dec m4[None+eax*4+0x62e62c]",
            " test ebx,ebx",
            " je local:218",
            " mov eax,ebx",
            "@@ -235,9 +235,9 @@",
            " mov ebx,m4[edx+None*1+0x672ab0]",
            " mov edx,m4[None+None*1+apweapon.c::_current_weapon]",
            " add eax,ebx",
            "-mov m4[None+edx*4+0x62e658],eax",
            "+mov m4[None+edx*4+0x62e674],eax",
            " mov esi,m4[None+None*1+apweapon.c::_infinite_weapons]",
            "-mov edx,m4[None+edx*4+0x62e634]",
            "+mov edx,m4[None+edx*4+0x62e650]",
            " test esi,esi",
            " jne local:259",
            " mov edi,m4[None+None*1+apweapon.c::_current_weapon]",
            "@@ -251,23 +251,23 @@",
            " lea ebx,m4[edx+eax*1+0x0]",
            " shl ebx,0x2",
            " mov eax,m4[ecx+None*1+0x1c]",
            "-mov esi,m4[ebx+None*1+0x62e560]",
            "+mov esi,m4[ebx+None*1+0x62e57c]",
            " mov eax,m4[eax+esi*4+0x0]",
            " call 3dbuild.c::destruct_3d_object_",
            "-mov eax,m4[ebx+None*1+0x62e560]",
            "+mov eax,m4[ebx+None*1+0x62e57c]",
            " mov ecx,m4[ecx+None*1+0x1c]",
            " mov m4[ecx+eax*4+0x0],0x0",
            " lea eax,m4[None+edx*4+0x0]",
            " mov edx,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov eax,m4[eax+None*1+0x62e67c]",
            "-mov m4[None+edx*4+0x62e634],eax",
            "+mov eax,m4[eax+None*1+0x62e698]",
            "+mov m4[None+edx*4+0x62e650],eax",
            " mov edx,eax",
            " shl eax,0x2",
            " add eax,edx",
            "-cmp m4[None+eax*4+0x62e560],0x0",
            "+cmp m4[None+eax*4+0x62e57c],0x0",
            " jle local:350",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "-cmp m4[None+eax*4+0x62e610],0x0",
            "+cmp m4[None+eax*4+0x62e62c],0x0",
            " jle local:372",
            " mov eax,0x1",
            " add esp,0x34",
            "@@ -302,11 +302,11 @@",
            " jne local:214",
            " lea eax,m4[None+ebp*4+0x0]",
            " add eax,ebp",
            "-mov ecx,m4[None+eax*4+0x62e560]",
            "+mov ecx,m4[None+eax*4+0x62e57c]",
            " dec ecx",
            " mov edx,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov m4[None+eax*4+0x62e560],ecx",
            "-dec m4[None+edx*4+0x62e610]",
            "+mov m4[None+eax*4+0x62e57c],ecx",
            "+dec m4[None+edx*4+0x62e62c]",
            " jmp local:214",
            " call sound.c::play_missile3_sound_",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "@@ -330,10 +330,10 @@",
            " lea edx,m4[None+ebp*4+0x0]",
            " add edx,ebp",
            " shl edx,0x2",
            "-mov edi,m4[edx+None*1+0x62e560]",
            "+mov edi,m4[edx+None*1+0x62e57c]",
            " dec edi",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov m4[edx+None*1+0x62e560],edi",
            "+mov m4[edx+None*1+0x62e57c],edi",
            " jmp local:213",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            " push eax",
            "@@ -361,10 +361,10 @@",
            " mov esi,m4[esp+edx*1+0x0]",
            " cmp ebx,esi",
            " jne local:367",
            "-cmp esi,m4[eax+None*1+0x62e560]",
            "+cmp esi,m4[eax+None*1+0x62e57c]",
            " jge local:367",
            " mov m4[esp+edx*1+0x0],ebp",
            "-mov m4[edx+None*1+0x62e634],ecx",
            "+mov m4[edx+None*1+0x62e650],ecx",
            " inc ecx",
            " add eax,0x14",
            " cmp ecx,0x9",
            "@@ -374,7 +374,7 @@",
            " mov edx,m4[None+None*1+gamedata.c::_game_clock_time]",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            " add edx,0x64",
            "-mov m4[None+eax*4+0x62e658],edx",
            "+mov m4[None+eax*4+0x62e674],edx",
            " mov eax,0x1",
            " add esp,0x34",
            " pop ebp"
          ]
        },
        {
          "symbol": "apweapon.c::get_apache_current_weapon_rounds_left_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x44772c",
          "second": "0x44778c",
          "first_instruction_count": 3,
          "second_instruction_count": 3,
          "diff": [
            "--- 0x44772c",
            "+++ 0x44778c",
            "@@ -1,3 +1,3 @@",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov eax,m4[None+eax*4+0x62e610]",
            "+mov eax,m4[None+eax*4+0x62e62c]",
            " ret "
          ]
        },
        {
          "symbol": "apweapon.c::get_apache_weapon_launch_viewpoint_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x44775c",
          "second": "0x4477bc",
          "first_instruction_count": 157,
          "second_instruction_count": 157,
          "diff": [
            "--- 0x44775c",
            "+++ 0x4477bc",
            "@@ -21,7 +21,7 @@",
            " pop ebx",
            " ret ",
            " mov ebx,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov ebx,m4[None+ebx*4+0x62e634]",
            "+mov ebx,m4[None+ebx*4+0x62e650]",
            " mov esi,m4[None+ebx*4+apweapon.c::_apache_pod_indicies]",
            " mov esi,m4[None+esi*4+apweapon.c::_apache_pod_pointers]",
            " test esi,esi",
            "@@ -30,7 +30,7 @@",
            " jle local:35",
            " lea ecx,m4[None+ebx*4+0x0]",
            " add ecx,ebx",
            "-mov eax,m4[None+ecx*4+0x62e560]",
            "+mov eax,m4[None+ecx*4+0x62e57c]",
            " mov ecx,m4[esi+None*1+0x1c]",
            " mov ecx,m4[ecx+eax*4+0xfffffffc]",
            " test ecx,ecx",
            "@@ -100,7 +100,7 @@",
            " pop ebx",
            " ret ",
            " mov eax,m4[None+None*1+apweapon.c::_current_weapon]",
            "-mov esi,m4[None+eax*4+0x62e634]",
            "+mov esi,m4[None+eax*4+0x62e650]",
            " mov esi,m4[None+esi*4+apweapon.c::_apache_pod_indicies]",
            " mov esi,m4[None+esi*4+apweapon.c::_apache_pod_pointers]",
            " test esi,esi"
          ]
        },
        {
          "symbol": "apweapon.c::initialise_apache_weapons_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x446a14",
          "second": "0x446a74",
          "first_instruction_count": 72,
          "second_instruction_count": 72,
          "diff": [
            "--- 0x446a14",
            "+++ 0x446a74",
            "@@ -12,13 +12,13 @@",
            " mov esi,0x7",
            " xor ecx,ecx",
            " mov m4[None+None*1+apweapon.c::_unit_x],edx",
            "-mov m4[None+None*1+0x62e554],ecx",
            "-mov m4[None+None*1+0x62e558],ecx",
            "+mov m4[None+None*1+0x62e570],ecx",
            "+mov m4[None+None*1+0x62e574],ecx",
            " call vector.c::get_3d_normalised_unit_vector_",
            " mov eax,apweapon.c::_unit_y",
            " mov m4[None+None*1+apweapon.c::_unit_y],ecx",
            "-mov m4[None+None*1+0x62e548],edx",
            "-mov m4[None+None*1+0x62e54c],ecx",
            "+mov m4[None+None*1+0x62e564],edx",
            "+mov m4[None+None*1+0x62e568],ecx",
            " call vector.c::get_3d_normalised_unit_vector_",
            " mov eax,apweapon.c::_unit_z",
            " mov m4[None+None*1+apweapon.c::_unit_z],ecx",
            "@@ -26,35 +26,35 @@",
            " mov m4[None+None*1+0x62e540],edx",
            " call vector.c::get_3d_normalised_unit_vector_",
            " mov eax,0x5",
            "-mov m4[None+None*1+0x62e67c],edx",
            "-mov m4[None+None*1+0x62e680],ecx",
            "-mov m4[None+None*1+0x62e684],edi",
            "-mov m4[None+None*1+0x62e688],ebp",
            "-mov m4[None+None*1+0x62e69c],ebx",
            "-mov m4[None+None*1+0x62e698],esi",
            "+mov m4[None+None*1+0x62e698],edx",
            "+mov m4[None+None*1+0x62e69c],ecx",
            "+mov m4[None+None*1+0x62e6a0],edi",
            "+mov m4[None+None*1+0x62e6a4],ebp",
            "+mov m4[None+None*1+0x62e6b8],ebx",
            "+mov m4[None+None*1+0x62e6b4],esi",
            " mov edx,0x4",
            " mov ecx,0x6",
            "-mov m4[None+None*1+0x62e68c],eax",
            "-mov m4[None+None*1+0x62e690],edx",
            "-mov m4[None+None*1+0x62e694],ecx",
            "+mov m4[None+None*1+0x62e6a8],eax",
            "+mov m4[None+None*1+0x62e6ac],edx",
            "+mov m4[None+None*1+0x62e6b0],ecx",
            " xor eax,eax",
            " xor edx,edx",
            " xor edi,edi",
            "-mov m4[eax+None*1+0x62e560],edi",
            "+mov m4[eax+None*1+0x62e57c],edi",
            " add edx,0x4",
            " mov m4[eax+None*1+apweapon.c::_apache_weapons],edi",
            " add eax,0x14",
            "-mov m4[edx+None*1+0x62e654],edi",
            "+mov m4[edx+None*1+0x62e670],edi",
            " cmp edx,0x24",
            " jne local:41",
            " mov ebx,0x7",
            " mov esi,0x20",
            " mov edi,0x8",
            " mov eax,0x1",
            "-mov m4[None+None*1+0x62e5fc],ebx",
            "-mov m4[None+None*1+0x62e600],esi",
            "-mov m4[None+None*1+0x62e5e8],edi",
            "-mov m4[None+None*1+0x62e5ec],esi",
            "+mov m4[None+None*1+0x62e618],ebx",
            "+mov m4[None+None*1+0x62e61c],esi",
            "+mov m4[None+None*1+0x62e604],edi",
            "+mov m4[None+None*1+0x62e608],esi",
            " mov m4[None+None*1+apweapon.c::_auto_chaff],eax",
            " call apweapon.c::reinitialise_apache_weapons_",
            " xor eax,eax"
          ]
        },
        {
          "symbol": "apweapon.c::next_weapon_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x446e7c",
          "second": "0x446edc",
          "first_instruction_count": 68,
          "second_instruction_count": 68,
          "diff": [
            "--- 0x446e7c",
            "+++ 0x446edc",
            "@@ -46,9 +46,9 @@",
            " mov ebx,0x2",
            " jmp local:12",
            " lea edx,m4[None+ecx*4+0x0]",
            "-cmp m4[edx+None*1+0x62e610],0x0",
            "+cmp m4[edx+None*1+0x62e62c],0x0",
            " jle local:13",
            "-cmp m4[edx+None*1+0x62e634],0xffffffff",
            "+cmp m4[edx+None*1+0x62e650],0xffffffff",
            " je local:13",
            " mov ebp,0x1",
            " mov eax,m4[None+None*1+ihadss.c::_ihadss_mode]"
          ]
        },
        {
          "symbol": "apweapon.c::reinitialise_apache_weapons_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x446b64",
          "second": "0x446bc4",
          "first_instruction_count": 132,
          "second_instruction_count": 132,
          "diff": [
            "--- 0x446b64",
            "+++ 0x446bc4",
            "@@ -14,12 +14,12 @@",
            " test edi,edi",
            " jne local:39",
            " mov ebx,0x24",
            "-mov eax,0x62e610",
            "+mov eax,0x62e62c",
            " xor edx,edx",
            " call memset::memset_",
            " mov ebx,0x24",
            " mov edx,0xffffffff",
            "-mov eax,0x62e634",
            "+mov eax,0x62e650",
            " call memset::memset_",
            " mov ebx,0x60",
            " mov eax,apweapon.c::_apache_pod_object_numbers",
            "@@ -41,23 +41,23 @@",
            " call 3dbuild.c::destruct_3d_object_",
            " mov m4[None+None*1+elevate.c::_chain_gun_flash_object],edx",
            " jmp local:15",
            "-mov m4[edx+None*1+0x62e560],0x4b0",
            "+mov m4[edx+None*1+0x62e57c],0x4b0",
            " jmp local:69",
            " mov eax,m4[ebx+None*1+apweapon.c::_apache_pod_indicies]",
            " mov ebp,0x88",
            "-mov m4[edx+None*1+0x62e560],edi",
            "+mov m4[edx+None*1+0x62e57c],edi",
            " mov m4[None+eax*4+apweapon.c::_apache_pod_object_numbers],ebp",
            " jmp local:69",
            "-mov m4[edx+None*1+0x62e560],0x13",
            "+mov m4[edx+None*1+0x62e57c],0x13",
            " mov eax,m4[ebx+None*1+apweapon.c::_apache_pod_indicies]",
            " mov m4[None+eax*4+apweapon.c::_apache_pod_object_numbers],0x89",
            " jmp local:69",
            " mov ebp,0x2",
            " mov eax,m4[ebx+None*1+apweapon.c::_apache_pod_indicies]",
            "-mov m4[edx+None*1+0x62e560],ebp",
            "+mov m4[edx+None*1+0x62e57c],ebp",
            " mov m4[None+eax*4+apweapon.c::_apache_pod_object_numbers],0x93",
            " jmp local:69",
            "-mov m4[edx+None*1+0x62e560],0x20",
            "+mov m4[edx+None*1+0x62e57c],0x20",
            " jmp local:69",
            " push ecx",
            " mov eax,m4[None+ecx*4+winfo.c::_weapon_names]",
            "@@ -68,15 +68,15 @@",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0x14",
            " lea eax,m4[None+ecx*4+0x0]",
            "-mov ecx,m4[edx+None*1+0x62e560]",
            "-mov ebp,m4[eax+None*1+0x62e610]",
            "+mov ecx,m4[edx+None*1+0x62e57c]",
            "+mov ebp,m4[eax+None*1+0x62e62c]",
            " add ebp,ecx",
            " mov ecx,m4[esp+eax*1+0x0]",
            "-mov m4[eax+None*1+0x62e610],ebp",
            "+mov m4[eax+None*1+0x62e62c],ebp",
            " test ecx,ecx",
            " jne local:80",
            " mov ebp,0x1",
            "-mov m4[eax+None*1+0x62e634],esi",
            "+mov m4[eax+None*1+0x62e650],esi",
            " mov m4[esp+eax*1+0x0],ebp",
            " add edx,0x14",
            " inc esi"
          ]
        },
        {
          "symbol": "apweapon.c::release_chaff_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x44767c",
          "second": "0x4476dc",
          "first_instruction_count": 46,
          "second_instruction_count": 46,
          "diff": [
            "--- 0x44767c",
            "+++ 0x4476dc",
            "@@ -9,23 +9,23 @@",
            " test m1[None+None*1+0x6748c6],0x1",
            " jne local:42",
            " mov edx,m4[None+None*1+gamedata.c::_game_clock_time]",
            "-cmp edx,m4[None+None*1+0x62e674]",
            "+cmp edx,m4[None+None*1+0x62e690]",
            " jl local:42",
            "-cmp m4[None+None*1+0x62e62c],0x0",
            "+cmp m4[None+None*1+0x62e648],0x0",
            " jle local:42",
            " mov eax,m4[None+None*1+drone.c::_user_drone]",
            " call dweapons.c::drone_do_chaff_",
            " cmp m4[None+None*1+apweapon.c::_infinite_weapons],0x0",
            " jne local:24",
            "-mov edx,m4[None+None*1+0x62e650]",
            "+mov edx,m4[None+None*1+0x62e66c]",
            " lea eax,m4[None+edx*4+0x0]",
            " add eax,edx",
            "-dec m4[None+eax*4+0x62e560]",
            "-dec m4[None+None*1+0x62e62c]",
            "+dec m4[None+eax*4+0x62e57c]",
            "+dec m4[None+None*1+0x62e648]",
            " mov eax,m4[None+None*1+gamedata.c::_game_clock_time]",
            " mov ebp,m4[None+None*1+0x672d88]",
            " add eax,ebp",
            "-mov m4[None+None*1+0x62e674],eax",
            "+mov m4[None+None*1+0x62e690],eax",
            " call multidr.c::notify_remote_users_of_chaff_",
            " mov eax,0x1",
            " pop ebp"
          ]
        },
        {
          "symbol": "apweapon.c::release_flare_",
          "source": "E:\\apache\\source\\weapons\\apweapon.c",
          "first": "0x4475c8",
          "second": "0x447628",
          "first_instruction_count": 46,
          "second_instruction_count": 46,
          "diff": [
            "--- 0x4475c8",
            "+++ 0x447628",
            "@@ -8,19 +8,19 @@",
            " test m1[None+None*1+0x6748c6],0x1",
            " jne local:43",
            " mov edx,m4[None+None*1+gamedata.c::_game_clock_time]",
            "-cmp edx,m4[None+None*1+0x62e678]",
            "+cmp edx,m4[None+None*1+0x62e694]",
            " jl local:43",
            "-cmp m4[None+None*1+0x62e630],0x0",
            "+cmp m4[None+None*1+0x62e64c],0x0",
            " jle local:43",
            " mov eax,m4[None+None*1+drone.c::_user_drone]",
            " call dweapons.c::drone_do_flare_",
            " cmp m4[None+None*1+apweapon.c::_infinite_weapons],0x0",
            " jne local:23",
            "-mov edx,m4[None+None*1+0x62e654]",
            "+mov edx,m4[None+None*1+0x62e670]",
            " lea eax,m4[None+edx*4+0x0]",
            " add eax,edx",
            "-dec m4[None+eax*4+0x62e560]",
            "-dec m4[None+None*1+0x62e630]",
            "+dec m4[None+eax*4+0x62e57c]",
            "+dec m4[None+None*1+0x62e64c]",
            " mov eax,m4[None+None*1+0x672df0]",
            " mov edx,eax",
            " sar edx,0x1f",
            "@@ -28,7 +28,7 @@",
            " sar eax,0x1",
            " mov edx,m4[None+None*1+gamedata.c::_game_clock_time]",
            " add eax,edx",
            "-mov m4[None+None*1+0x62e678],eax",
            "+mov m4[None+None*1+0x62e694],eax",
            " call multidr.c::notify_remote_users_of_flare_",
            " mov eax,0x1",
            " pop edx"
          ]
        },
        {
          "symbol": "arcade.c::fuel_calculations_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x43a268",
          "second": "0x43a2c8",
          "first_instruction_count": 108,
          "second_instruction_count": 108,
          "diff": [
            "--- 0x43a268",
            "+++ 0x43a2c8",
            "@@ -26,7 +26,7 @@",
            " mov m4[None+None*1+0x5a4964],edi",
            " or dh,0x30",
            " mov m4[None+None*1+arcade.c::_fuel],edi",
            "-mov m4[None+None*1+0x5a4424],edi",
            "+mov m4[None+None*1+0x5a442c],edi",
            " mov m1[None+None*1+0x6748c6],dh",
            " pop edx",
            " pop edi",
            "@@ -100,7 +100,7 @@",
            " xor ebx,ebx",
            " mov esi,0x40a77000",
            " mov m4[None+None*1+arcade.c::_fuel],ebx",
            "-mov m4[None+None*1+0x5a4424],esi",
            "+mov m4[None+None*1+0x5a442c],esi",
            " add esp,0x8",
            " pop esi",
            " pop ecx"
          ]
        },
        {
          "symbol": "arcade.c::get_arcade_model_predicted_viewpoint_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x43a53c",
          "second": "0x43a59c",
          "first_instruction_count": 116,
          "second_instruction_count": 116,
          "diff": [
            "--- 0x43a53c",
            "+++ 0x43a59c",
            "@@ -64,8 +64,6 @@",
            " call model.c::get_mat_",
            " fld m8[None+None*1+arcade.c::_mat_attitude]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "-fld m8[None+None*1+0x5a44a0]",
            "-fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            " fld m8[None+None*1+0x5a44a8]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            " fld m8[None+None*1+0x5a44b0]",
            "@@ -76,15 +74,17 @@",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            " fld m8[None+None*1+0x5a44c8]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            "+fld m8[None+None*1+0x5a44d0]",
            "+fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            " fxch st(0),st(6)",
            " call fchop::__CHP",
            " fistp m4[None+None*1+0x5a4574]",
            "-fld m8[None+None*1+0x5a44d0]",
            "+fld m8[None+None*1+0x5a44d8]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            " fxch st(0),st(5)",
            " call fchop::__CHP",
            " fistp m4[None+None*1+0x5a4578]",
            "-fld m8[None+None*1+0x5a44d8]",
            "+fld m8[None+None*1+0x5a44e0]",
            " fmul m8[None+None*1+constant:0000c0ffffffdf41]",
            " mov eax,0x5a4568",
            " fxch st(0),st(4)"
          ]
        },
        {
          "symbol": "arcade.c::initialise_arcade_flight_model_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x438308",
          "second": "0x438368",
          "first_instruction_count": 236,
          "second_instruction_count": 236,
          "diff": [
            "--- 0x438308",
            "+++ 0x438368",
            "@@ -17,31 +17,31 @@",
            " mov m4[None+None*1+arcade.c::_overheat_message],ecx",
            " mov m4[None+None*1+arcade.c::_reset_altitude],edx",
            " mov m4[None+None*1+arcade.c::_lateral_velocity],ecx",
            "-mov m4[None+None*1+0x5a4504],ecx",
            "+mov m4[None+None*1+0x5a450c],ecx",
            " mov m4[None+None*1+arcade.c::_vertical_velocity],ecx",
            "-mov m4[None+None*1+0x5a44ec],ecx",
            "+mov m4[None+None*1+0x5a44f4],ecx",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],ecx",
            "-mov m4[None+None*1+0x5a450c],ecx",
            "+mov m4[None+None*1+0x5a448c],ecx",
            " mov m4[None+None*1+arcade.c::_pitch],ecx",
            "-mov m4[None+None*1+0x5a441c],ecx",
            "+mov m4[None+None*1+0x5a4424],ecx",
            " mov m4[None+None*1+arcade.c::_delta_pitch],ecx",
            "-mov m4[None+None*1+0x5a448c],ecx",
            "+mov m4[None+None*1+0x5a4494],ecx",
            " mov m4[None+None*1+arcade.c::_roll],ecx",
            "-mov m4[None+None*1+0x5a444c],ecx",
            "+mov m4[None+None*1+0x5a4454],ecx",
            " mov m4[None+None*1+arcade.c::_delta_roll],ecx",
            "-mov m4[None+None*1+0x5a43e4],ecx",
            "+mov m4[None+None*1+0x5a43ec],ecx",
            " mov m4[None+None*1+arcade.c::_Wt],ecx",
            " fstp m8[esp+None*1+0x0]",
            " mov edx,0x40cb7500",
            " mov ecx,0x9999999a",
            "-mov m4[None+None*1+0x5a4414],edx",
            "+mov m4[None+None*1+0x5a441c],edx",
            " call model.c::set_fuel_",
            " fld m8[None+None*1+arcade.c::_fuel]",
            " mov eax,m4[None+None*1+model.c::_model_vp]",
            " mov m4[None+None*1+arcade.c::_max_fuel_consumption],ecx",
            "-mov m4[None+None*1+0x5a43dc],ebx",
            "+mov m4[None+None*1+0x5a43e4],ebx",
            " mov m4[None+None*1+arcade.c::_engine_timer],esi",
            "-mov m4[None+None*1+0x5a4404],esi",
            "+mov m4[None+None*1+0x5a440c],esi",
            " fild m4[eax+None*1+0x0]",
            " fild m4[eax+None*1+0x4]",
            " fild m4[eax+None*1+0x8]",
            "@@ -228,7 +228,7 @@",
            " xor edx,edx",
            " mov ecx,0x40ed8800",
            " mov m4[None+None*1+arcade.c::_z],edx",
            "-mov m4[None+None*1+0x5a43d4],esi",
            "+mov m4[None+None*1+0x5a43dc],esi",
            " mov m4[None+None*1+arcade.c::_forward_velocity],edx",
            " mov m4[None+None*1+0x5a4544],ecx",
            " jmp local:62"
          ]
        },
        {
          "symbol": "arcade.c::model_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x4395f8",
          "second": "0x439658",
          "first_instruction_count": 714,
          "second_instruction_count": 714,
          "diff": [
            "--- 0x4395f8",
            "+++ 0x439658",
            "@@ -50,7 +50,7 @@",
            " mov eax,m4[esp+None*1+0x90]",
            " mov m4[None+None*1+arcade.c::_pitch],eax",
            " mov eax,m4[esp+None*1+0x94]",
            "-mov m4[None+None*1+0x5a441c],eax",
            "+mov m4[None+None*1+0x5a4424],eax",
            " fld m8[None+None*1+arcade.c::_delta_pitch]",
            " fabs ",
            " fcomp m8[None+None*1+constant:fca9f1d24d62503f]",
            "@@ -85,7 +85,7 @@",
            " mov m4[None+None*1+arcade.c::_roll],eax",
            " mov eax,m4[esp+None*1+0x6c]",
            " fld m8[None+None*1+arcade.c::_forward_velocity]",
            "-mov m4[None+None*1+0x5a444c],eax",
            "+mov m4[None+None*1+0x5a4454],eax",
            " fabs ",
            " fld m8[esp+None*1+0x68]",
            " fmul m8[None+None*1+constant:0000000000405540]",
            "@@ -117,7 +117,7 @@",
            " jbe local:120",
            " xor edx,edx",
            " mov m4[None+None*1+arcade.c::_lateral_vmax],edx",
            "-mov m4[None+None*1+0x5a44f4],edx",
            "+mov m4[None+None*1+0x5a44fc],edx",
            " fld m8[None+None*1+arcade.c::_lateral_velocity]",
            " fld m8[None+None*1+arcade.c::_lateral_vmax]",
            " fchs ",
            "@@ -138,7 +138,7 @@",
            " mov m4[None+None*1+arcade.c::_lateral_velocity],eax",
            " mov eax,m4[esp+None*1+0x9c]",
            " fldz ",
            "-mov m4[None+None*1+0x5a4504],eax",
            "+mov m4[None+None*1+0x5a450c],eax",
            " fxch st(0),st(1)",
            " fstp m8[None+None*1+arcade.c::_max_heading]",
            " fcomp m8[None+None*1+arcade.c::_max_heading]",
            "@@ -147,7 +147,7 @@",
            " jbe local:150",
            " xor ebx,ebx",
            " mov m4[None+None*1+arcade.c::_max_heading],ebx",
            "-mov m4[None+None*1+0x5a440c],ebx",
            "+mov m4[None+None*1+0x5a4414],ebx",
            " fld m8[None+None*1+arcade.c::_delta_heading]",
            " fmul m8[None+None*1+constant:ea2e4454fb21f93f]",
            " fld m8[None+None*1+arcade.c::_max_heading]",
            "@@ -166,7 +166,7 @@",
            " mov m4[None+None*1+arcade.c::_delta_heading],eax",
            " mov eax,m4[esp+None*1+0x7c]",
            " fld m8[None+None*1+arcade.c::_forward_velocity]",
            "-mov m4[None+None*1+0x5a4444],eax",
            "+mov m4[None+None*1+0x5a444c],eax",
            " fcomp m8[None+None*1+constant:0000000000e0a040]",
            " fnstsw ax",
            " sahf ",
            "@@ -188,7 +188,7 @@",
            " jae local:191",
            " xor ecx,ecx",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],ecx",
            "-mov m4[None+None*1+0x5a450c],ecx",
            "+mov m4[None+None*1+0x5a448c],ecx",
            " mov esi,m4[None+None*1+model.c::_apache_landed]",
            " test esi,esi",
            " je local:501",
            "@@ -203,15 +203,15 @@",
            " xor ebx,ebx",
            " fldz ",
            " mov m4[None+None*1+arcade.c::_roll],ebx",
            "-mov m4[None+None*1+0x5a444c],ebx",
            "+mov m4[None+None*1+0x5a4454],ebx",
            " mov m4[None+None*1+arcade.c::_delta_roll],ebx",
            "-mov m4[None+None*1+0x5a43e4],ebx",
            "+mov m4[None+None*1+0x5a43ec],ebx",
            " mov m4[None+None*1+arcade.c::_delta_roll_ss],ebx",
            "-mov m4[None+None*1+0x5a44fc],ebx",
            "+mov m4[None+None*1+0x5a4504],ebx",
            " mov m4[None+None*1+arcade.c::_pitch],ebx",
            "-mov m4[None+None*1+0x5a441c],ebx",
            "+mov m4[None+None*1+0x5a4424],ebx",
            " mov m4[None+None*1+arcade.c::_delta_pitch],ebx",
            "-mov m4[None+None*1+0x5a448c],ebx",
            "+mov m4[None+None*1+0x5a4494],ebx",
            " mov m4[None+None*1+arcade.c::_delta_pitch_ss],ebx",
            " mov m4[None+None*1+0x5a453c],ebx",
            " fxch st(0),st(3)",
            "@@ -223,10 +223,10 @@",
            " sahf ",
            " jbe local:552",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],ebx",
            "-mov m4[None+None*1+0x5a450c],ebx",
            "+mov m4[None+None*1+0x5a448c],ebx",
            " mov eax,m4[None+None*1+arcade.c::_delta_vertical_velocity]",
            " mov m4[esp+None*1+0xd8],eax",
            "-mov eax,m4[None+None*1+0x5a450c]",
            "+mov eax,m4[None+None*1+0x5a448c]",
            " mov m4[esp+None*1+0xdc],eax",
            " mov eax,m4[esp+None*1+0xd8]",
            " mov m4[esp+None*1+0x80],eax",
            "@@ -236,7 +236,7 @@",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],eax",
            " mov eax,m4[esp+None*1+0x84]",
            " fld m8[None+None*1+arcade.c::_z]",
            "-mov m4[None+None*1+0x5a450c],eax",
            "+mov m4[None+None*1+0x5a448c],eax",
            " fcomp m8[None+None*1+constant:0000000000944141]",
            " fnstsw ax",
            " sahf ",
            "@@ -259,7 +259,7 @@",
            " mov eax,m4[esp+None*1+0x10]",
            " mov m4[None+None*1+arcade.c::_vertical_velocity],eax",
            " mov eax,m4[esp+None*1+0x14]",
            "-mov m4[None+None*1+0x5a44ec],eax",
            "+mov m4[None+None*1+0x5a44f4],eax",
            " mov ch,m1[None+None*1+0x6748c6]",
            " test ch,0x10",
            " je local:680",
            "@@ -279,7 +279,7 @@",
            " mov eax,m4[esp+None*1+0xd0]",
            " mov m4[None+None*1+arcade.c::_engine_rpm],eax",
            " mov eax,m4[esp+None*1+0xd4]",
            "-mov m4[None+None*1+0x5a443c],eax",
            "+mov m4[None+None*1+0x5a4444],eax",
            " fldz ",
            " fcomp m8[None+None*1+arcade.c::_rotor_rpm]",
            " fnstsw ax",
            "@@ -312,7 +312,7 @@",
            " mov m4[None+None*1+arcade.c::_engine_rpm],eax",
            " mov eax,m4[esp+None*1+0x54]",
            " fldz ",
            "-mov m4[None+None*1+0x5a443c],eax",
            "+mov m4[None+None*1+0x5a4444],eax",
            " fcomp m8[None+None*1+arcade.c::_rotor_rpm]",
            " fnstsw ax",
            " sahf ",
            "@@ -333,7 +333,7 @@",
            " mov eax,m4[esp+None*1+0x58]",
            " mov m4[None+None*1+arcade.c::_rotor_rpm],eax",
            " mov eax,m4[esp+None*1+0x5c]",
            "-mov m4[None+None*1+0x5a442c],eax",
            "+mov m4[None+None*1+0x5a4434],eax",
            " call arcade.c::fuel_calculations_",
            " call arcade.c::auto_hover_",
            " mov esp,ebp",
            "@@ -364,7 +364,7 @@",
            " jmp local:49",
            " mov eax,m4[None+None*1+arcade.c::_pitch]",
            " mov m4[esp+None*1+0xa0],eax",
            "-mov eax,m4[None+None*1+0x5a441c]",
            "+mov eax,m4[None+None*1+0x5a4424]",
            " jmp local:358",
            " fld m8[None+None*1+arcade.c::_pitch]",
            " fcomp m8[None+None*1+constant:9b742d3852c1d0bf]",
            "@@ -395,7 +395,7 @@",
            " jmp local:377",
            " mov eax,m4[None+None*1+arcade.c::_pitch]",
            " mov m4[esp+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x5a441c]",
            "+mov eax,m4[None+None*1+0x5a4424]",
            " mov m4[esp+None*1+0x4],eax",
            " jmp local:390",
            " fld m8[None+None*1+arcade.c::_roll]",
            "@@ -413,7 +413,7 @@",
            " jmp local:82",
            " mov eax,m4[None+None*1+arcade.c::_roll]",
            " mov m4[esp+None*1+0xb0],eax",
            "-mov eax,m4[None+None*1+0x5a444c]",
            "+mov eax,m4[None+None*1+0x5a4454]",
            " mov m4[esp+None*1+0xb4],eax",
            " jmp local:409",
            " fld m8[None+None*1+arcade.c::_lateral_velocity]",
            "@@ -423,7 +423,7 @@",
            " jbe local:431",
            " mov eax,m4[None+None*1+arcade.c::_lateral_vmax]",
            " mov m4[esp+None*1+0x88],eax",
            "-mov eax,m4[None+None*1+0x5a44f4]",
            "+mov eax,m4[None+None*1+0x5a44fc]",
            " mov m4[esp+None*1+0x8c],eax",
            " mov eax,m4[esp+None*1+0x88]",
            " mov m4[esp+None*1+0x98],eax",
            "@@ -431,7 +431,7 @@",
            " jmp local:131",
            " mov eax,m4[None+None*1+arcade.c::_lateral_velocity]",
            " mov m4[esp+None*1+0x88],eax",
            "-mov eax,m4[None+None*1+0x5a4504]",
            "+mov eax,m4[None+None*1+0x5a450c]",
            " jmp local:426",
            " fld m8[esp+None*1+0x70]",
            " fcomp m8[None+None*1+arcade.c::_max_heading]",
            "@@ -440,7 +440,7 @@",
            " jbe local:448",
            " mov eax,m4[None+None*1+arcade.c::_max_heading]",
            " mov m4[esp+None*1+0x48],eax",
            "-mov eax,m4[None+None*1+0x5a440c]",
            "+mov eax,m4[None+None*1+0x5a4414]",
            " mov m4[esp+None*1+0x4c],eax",
            " mov eax,m4[esp+None*1+0x48]",
            " mov m4[esp+None*1+0x78],eax",
            "@@ -629,7 +629,7 @@",
            " jmp local:258",
            " mov eax,m4[None+None*1+arcade.c::_vertical_velocity]",
            " mov m4[esp+None*1+0x18],eax",
            "-mov eax,m4[None+None*1+0x5a44ec]",
            "+mov eax,m4[None+None*1+0x5a44f4]",
            " mov m4[esp+None*1+0x1c],eax",
            " jmp local:624",
            " fld m8[None+None*1+arcade.c::_vertical_velocity]",
            "@@ -647,7 +647,7 @@",
            " jmp local:610",
            " mov eax,m4[None+None*1+arcade.c::_vertical_velocity]",
            " mov m4[esp+None*1+0x28],eax",
            "-mov eax,m4[None+None*1+0x5a44ec]",
            "+mov eax,m4[None+None*1+0x5a44f4]",
            " mov m4[esp+None*1+0x2c],eax",
            " mov eax,m4[esp+None*1+0x28]",
            " mov m4[esp+None*1+0x20],eax",
            "@@ -660,7 +660,7 @@",
            " mov m4[None+None*1+model_a.c::_model_engine_torque_1],esi",
            " mov m4[None+None*1+0x5a498c],esi",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],esi",
            "-mov m4[None+None*1+0x5a450c],esi",
            "+mov m4[None+None*1+0x5a448c],esi",
            " fcomp m8[None+None*1+arcade.c::_engine_rpm]",
            " fnstsw ax",
            " sahf ",
            "@@ -668,7 +668,7 @@",
            " mov eax,m4[esp+None*1+0xd0]",
            " mov m4[None+None*1+arcade.c::_engine_rpm],eax",
            " mov eax,m4[esp+None*1+0xd4]",
            "-mov m4[None+None*1+0x5a443c],eax",
            "+mov m4[None+None*1+0x5a4444],eax",
            " fldz ",
            " fcomp m8[None+None*1+arcade.c::_rotor_rpm]",
            " fnstsw ax",
            "@@ -681,12 +681,12 @@",
            " xor edi,edi",
            " mov eax,0x40590000",
            " mov m4[None+None*1+arcade.c::_rotor_rpm],edi",
            "-mov m4[None+None*1+0x5a442c],eax",
            "+mov m4[None+None*1+0x5a4434],eax",
            " mov m4[None+None*1+arcade.c::_engine_rpm],edi",
            "-mov m4[None+None*1+0x5a443c],eax",
            "+mov m4[None+None*1+0x5a4444],eax",
            " mov eax,m4[None+None*1+arcade.c::_engine_rpm]",
            " mov m4[esp+None*1+0xb8],eax",
            "-mov eax,m4[None+None*1+0x5a443c]",
            "+mov eax,m4[None+None*1+0x5a4444]",
            " mov m4[esp+None*1+0xbc],eax",
            " mov eax,m4[esp+None*1+0xb8]",
            " mov m4[esp+None*1+0x50],eax",
            "@@ -709,6 +709,6 @@",
            " jmp local:332",
            " mov eax,m4[None+None*1+arcade.c::_rotor_rpm]",
            " mov m4[esp+None*1+0x40],eax",
            "-mov eax,m4[None+None*1+0x5a442c]",
            "+mov eax,m4[None+None*1+0x5a4434]",
            " mov m4[esp+None*1+0x44],eax",
            " jmp local:328"
          ]
        },
        {
          "symbol": "arcade.c::set_arcade_fuel_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x43a3fc",
          "second": "0x43a45c",
          "first_instruction_count": 31,
          "second_instruction_count": 31,
          "diff": [
            "--- 0x43a3fc",
            "+++ 0x43a45c",
            "@@ -11,7 +11,7 @@",
            " fadd m8[None+None*1+arcade.c::_Wt]",
            " mov eax,m4[esp+None*1+0x14]",
            " fstp m8[None+None*1+arcade.c::_Wt]",
            "-mov m4[None+None*1+0x5a4424],eax",
            "+mov m4[None+None*1+0x5a442c],eax",
            " fcomp m8[esp+None*1+0x10]",
            " fnstsw ax",
            " sahf "
          ]
        },
        {
          "symbol": "arcade.c::set_arcade_model_collective_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x43a74c",
          "second": "0x43a7ac",
          "first_instruction_count": 135,
          "second_instruction_count": 135,
          "diff": [
            "--- 0x43a74c",
            "+++ 0x43a7ac",
            "@@ -17,7 +17,7 @@",
            " mov edi,0x9999999a",
            " mov ebp,0xbfe99999",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],edi",
            "-mov m4[None+None*1+0x5a450c],ebp",
            "+mov m4[None+None*1+0x5a448c],ebp",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -38,7 +38,7 @@",
            " mov ebx,0x33333333",
            " mov esi,0xbfe33333",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],ebx",
            "-mov m4[None+None*1+0x5a450c],esi",
            "+mov m4[None+None*1+0x5a448c],esi",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -50,7 +50,7 @@",
            " mov edx,0x9999999a",
            " mov ecx,0xbfd99999",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],edx",
            "-mov m4[None+None*1+0x5a450c],ecx",
            "+mov m4[None+None*1+0x5a448c],ecx",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -62,7 +62,7 @@",
            " mov ebp,0x9999999a",
            " mov eax,0xbfc99999",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],ebp",
            "-mov m4[None+None*1+0x5a450c],eax",
            "+mov m4[None+None*1+0x5a448c],eax",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -73,7 +73,7 @@",
            " ret ",
            " xor esi,esi",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],esi",
            "-mov m4[None+None*1+0x5a450c],esi",
            "+mov m4[None+None*1+0x5a448c],esi",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -85,7 +85,7 @@",
            " mov ecx,0x9999999a",
            " mov ebx,0x3fc99999",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],ecx",
            "-mov m4[None+None*1+0x5a450c],ebx",
            "+mov m4[None+None*1+0x5a448c],ebx",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -97,7 +97,7 @@",
            " mov eax,0x9999999a",
            " mov edx,0x3fd99999",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],eax",
            "-mov m4[None+None*1+0x5a450c],edx",
            "+mov m4[None+None*1+0x5a448c],edx",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -112,7 +112,7 @@",
            " mov ebx,0x9999999a",
            " mov esi,0x3fe99999",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],ebx",
            "-mov m4[None+None*1+0x5a450c],esi",
            "+mov m4[None+None*1+0x5a448c],esi",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx",
            "@@ -124,7 +124,7 @@",
            " xor edx,edx",
            " mov ecx,0x3ff00000",
            " mov m4[None+None*1+arcade.c::_delta_vertical_velocity],edx",
            "-mov m4[None+None*1+0x5a450c],ecx",
            "+mov m4[None+None*1+0x5a448c],ecx",
            " mov eax,0x1",
            " pop ebx",
            " pop ecx"
          ]
        },
        {
          "symbol": "arcade.c::set_arcade_variables_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x43a8bc",
          "second": "0x43a91c",
          "first_instruction_count": 104,
          "second_instruction_count": 104,
          "diff": [
            "--- 0x43a8bc",
            "+++ 0x43a91c",
            "@@ -75,11 +75,11 @@",
            " fxch st(0),st(1)",
            " fmulp st(2)",
            " mov m4[None+None*1+arcade.c::_delta_pitch],edx",
            "-mov m4[None+None*1+0x5a448c],edx",
            "+mov m4[None+None*1+0x5a4494],edx",
            " mov m4[None+None*1+arcade.c::_delta_heading],edx",
            "-mov m4[None+None*1+0x5a4444],edx",
            "+mov m4[None+None*1+0x5a444c],edx",
            " mov m4[None+None*1+arcade.c::_delta_roll],edx",
            "-mov m4[None+None*1+0x5a43e4],edx",
            "+mov m4[None+None*1+0x5a43ec],edx",
            " fxch st(0),st(3)",
            " fstp m8[None+None*1+arcade.c::_pitch]",
            " mov eax,m4[None+None*1+model.c::_model_vp]"
          ]
        },
        {
          "symbol": "arcade.c::update_arcade_flight_model_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x438768",
          "second": "0x4387c8",
          "first_instruction_count": 547,
          "second_instruction_count": 547,
          "diff": [
            "--- 0x438768",
            "+++ 0x4387c8",
            "@@ -25,15 +25,15 @@",
            " call arcade.c::update_control_rates_",
            " call arcade.c::model_",
            " push arcade.c::_mat_attitude",
            "-mov edx,m4[None+None*1+0x5a444c]",
            "+mov edx,m4[None+None*1+0x5a4454]",
            " push edx",
            " mov ecx,m4[None+None*1+arcade.c::_roll]",
            " push ecx",
            "-mov ebx,m4[None+None*1+0x5a441c]",
            "+mov ebx,m4[None+None*1+0x5a4424]",
            " push ebx",
            " mov esi,m4[None+None*1+arcade.c::_pitch]",
            " push esi",
            "-mov edi,m4[None+None*1+0x5a4494]",
            "+mov edi,m4[None+None*1+0x5a449c]",
            " push edi",
            " mov eax,m4[None+None*1+arcade.c::_heading]",
            " push eax",
            "@@ -46,49 +46,49 @@",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0xc],eax",
            "-fld m8[None+None*1+0x5a44a0]",
            "+fld m8[None+None*1+0x5a44a8]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x10],eax",
            "-fld m8[None+None*1+0x5a44a8]",
            "+fld m8[None+None*1+0x5a44b0]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x14],eax",
            "-fld m8[None+None*1+0x5a44b0]",
            "+fld m8[None+None*1+0x5a44b8]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x18],eax",
            "-fld m8[None+None*1+0x5a44b8]",
            "+fld m8[None+None*1+0x5a44c0]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x1c],eax",
            "-fld m8[None+None*1+0x5a44c0]",
            "+fld m8[None+None*1+0x5a44c8]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x20],eax",
            "-fld m8[None+None*1+0x5a44c8]",
            "+fld m8[None+None*1+0x5a44d0]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x24],eax",
            "-fld m8[None+None*1+0x5a44d0]",
            "+fld m8[None+None*1+0x5a44d8]",
            " fmul st(1)",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x28],eax",
            "-fmul m8[None+None*1+0x5a44d8]",
            "+fmul m8[None+None*1+0x5a44e0]",
            " fld m8[None+None*1+gamedata.c::_frame_time]",
            " fld m8[None+None*1+arcade.c::_vertical_velocity]",
            " fmul st(1)",
            "@@ -98,14 +98,14 @@",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[edx+None*1+0x2c],eax",
            " fld m8[None+None*1+arcade.c::_forward_velocity]",
            "-fld m8[None+None*1+0x5a44b0]",
            "-fmul st(1)",
            " fld m8[None+None*1+0x5a44b8]",
            "+fmul st(1)",
            "+fld m8[None+None*1+0x5a44c0]",
            " fmulp st(2)",
            " fld m8[None+None*1+arcade.c::_lateral_velocity]",
            " fld m8[None+None*1+arcade.c::_mat_attitude]",
            " fmul st(1)",
            "-fld m8[None+None*1+0x5a44a0]",
            "+fld m8[None+None*1+0x5a44a8]",
            " fmulp st(2)",
            " fmul st(4)",
            " fxch st(0),st(1)",
            "@@ -117,7 +117,7 @@",
            " fxch st(0),st(4)",
            " fstp m8[None+None*1+arcade.c::_dz]",
            " mov ecx,m4[None+None*1+arcade.c::_dz]",
            "-mov edx,m4[None+None*1+0x5a43fc]",
            "+mov edx,m4[None+None*1+0x5a4404]",
            " fstp m8[None+None*1+arcade.c::_dx]",
            " fstp m8[None+None*1+arcade.c::_dy]",
            " fxch st(0),st(1)",
            "@@ -168,7 +168,7 @@",
            " mov m4[None+None*1+arcade.c::_x],eax",
            " mov eax,m4[esp+None*1+0x1c]",
            " fldz ",
            "-mov m4[None+None*1+0x5a445c],eax",
            "+mov m4[None+None*1+0x5a4464],eax",
            " fcomp m8[None+None*1+arcade.c::_y]",
            " fnstsw ax",
            " sahf ",
            "@@ -180,7 +180,7 @@",
            " mov m4[None+None*1+arcade.c::_y],eax",
            " mov eax,m4[esp+None*1+0x2c]",
            " fld m8[None+None*1+arcade.c::_z]",
            "-mov m4[None+None*1+0x5a4464],eax",
            "+mov m4[None+None*1+0x5a43d4],eax",
            " fcomp m8[None+None*1+arcade.c::_height]",
            " fnstsw ax",
            " sahf ",
            "@@ -323,7 +323,7 @@",
            " fld m8[None+None*1+arcade.c::_engine_rpm]",
            " mov eax,m4[None+None*1+arcade.c::_right_engine_temperature]",
            " mov m4[None+None*1+model_a.c::_model_engine_temp_2],eax",
            "-mov eax,m4[None+None*1+0x5a4454]",
            "+mov eax,m4[None+None*1+0x5a445c]",
            " mov m4[None+None*1+0x5a4974],eax",
            " call fchop::__CHP",
            " fxch st(0),st(1)",
            "@@ -430,7 +430,7 @@",
            " jmp local:166",
            " mov eax,m4[None+None*1+arcade.c::_x]",
            " mov m4[esp+None*1+0x10],eax",
            "-mov eax,m4[None+None*1+0x5a445c]",
            "+mov eax,m4[None+None*1+0x5a4464]",
            " mov m4[esp+None*1+0x14],eax",
            " jmp local:425",
            " fld m8[None+None*1+arcade.c::_y]",
            "@@ -448,7 +448,7 @@",
            " jmp local:177",
            " mov eax,m4[None+None*1+arcade.c::_y]",
            " mov m4[esp+None*1+0x8],eax",
            "-mov eax,m4[None+None*1+0x5a4464]",
            "+mov eax,m4[None+None*1+0x5a43d4]",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[esp+None*1+0x28],eax"
          ]
        },
        {
          "symbol": "arcade.c::update_control_rates_",
          "source": "E:\\apache\\source\\models\\arcade.c",
          "first": "0x439174",
          "second": "0x4391d4",
          "first_instruction_count": 271,
          "second_instruction_count": 271,
          "diff": [
            "--- 0x439174",
            "+++ 0x4391d4",
            "@@ -176,7 +176,7 @@",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[None+None*1+arcade.c::_right_engine_temperature],eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov m4[None+None*1+0x5a4454],eax",
            "+mov m4[None+None*1+0x5a445c],eax",
            " mov m4[None+None*1+faults.c::_apache_faults],ecx",
            " mov esp,ebp",
            " pop ebp",
            "@@ -236,7 +236,7 @@",
            " xor edx,edx",
            " mov ebx,0x40890000",
            " mov m4[None+None*1+arcade.c::_right_engine_temperature],edx",
            "-mov m4[None+None*1+0x5a4454],ebx",
            "+mov m4[None+None*1+0x5a445c],ebx",
            " mov m4[None+None*1+arcade.c::_left_engine_temperature],edx",
            " mov m4[None+None*1+0x5a4484],ebx",
            " mov eax,m4[None+None*1+arcade.c::_left_engine_temperature]",
            "@@ -266,6 +266,6 @@",
            " jmp local:175",
            " mov eax,m4[None+None*1+arcade.c::_right_engine_temperature]",
            " mov m4[esp+None*1+0x18],eax",
            "-mov eax,m4[None+None*1+0x5a4454]",
            "+mov eax,m4[None+None*1+0x5a445c]",
            " mov m4[esp+None*1+0x1c],eax",
            " jmp local:171"
          ]
        },
        {
          "symbol": "avionics.c::draw_avionics_displays_",
          "source": "E:\\apache\\source\\avionics\\avionics.c",
          "first": "0x453a9c",
          "second": "0x453afc",
          "first_instruction_count": 38,
          "second_instruction_count": 54,
          "diff": [
            "--- 0x453a9c",
            "+++ 0x453afc",
            "@@ -1,11 +1,24 @@",
            "+push ebx",
            "+push ecx",
            " push edx",
            "+push esi",
            "+push edi",
            "+push ebp",
            " call screen.c::get_active_screen_",
            "-mov edx,eax",
            "+mov edx,0x1e0",
            "+mov ecx,0x280",
            "+mov ebp,eax",
            "+xor ebx,ebx",
            " mov eax,m4[None+None*1+cockpits.c::_cockpit_screen]",
            "+xor esi,esi",
            " call screen.c::set_active_screen_",
            "+xor eax,eax",
            "+call fillblk.asm::_fill_block",
            "+xor edx,edx",
            " mov eax,m4[None+None*1+views.c::_view_mode]",
            "+mov m4[None+None*1+fxpoly1.c::_use_glide],edx",
            " cmp eax,0x13",
            "-ja local:28",
            "+ja local:48",
            " jmp m4[None+eax*4+avionics.c::update_avionics_systems_+0x7c]",
            " call avionics.c::draw_pilot_artificial_horizon_",
            " call avionics.c::draw_mechanical_compass_",
            "@@ -17,22 +30,25 @@",
            " call commspan.c::draw_comms_panel_",
            " call avionics.c::draw_warning_lights_",
            " call avionics.c::draw_accelerated_time_",
            "-mov eax,edx",
            "+mov ecx,0x1",
            "+mov eax,ebp",
            "+mov m4[None+None*1+fxpoly1.c::_use_glide],ecx",
            " call screen.c::set_active_screen_",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            " pop edx",
            "+pop ecx",
            "+pop ebx",
            " ret ",
            " call ihadss.c::draw_ihadss_display_",
            "-jmp local:18",
            "+jmp local:31",
            " call ihadss.c::draw_ihadss_display_",
            " call mfd.c::draw_co_pilot_mfds_",
            "-jmp local:16",
            "-push 0x1c9",
            "+jmp local:29",
            "+push 0x1cc",
            " push text:'\\\\apache\\\\source\\\\avionics\\\\avionics.c'",
            " push text:'Unknown view mode.'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-call avionics.c::draw_accelerated_time_",
            "-mov eax,edx",
            "-call screen.c::set_active_screen_",
            "-pop edx",
            "-ret ",
            "+jmp local:31"
          ]
        },
        {
          "symbol": "avionics.c::draw_pilot_artificial_horizon_",
          "source": "E:\\apache\\source\\avionics\\avionics.c",
          "first": "0x453cdc",
          "second": "0x453d60",
          "first_instruction_count": 62,
          "second_instruction_count": 100,
          "diff": [
            "--- 0x453cdc",
            "+++ 0x453d60",
            "@@ -3,46 +3,79 @@",
            " push edx",
            " push esi",
            " push edi",
            "+push ebp",
            " mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            " cmp eax,0x1",
            "-jae local:16",
            "+jae local:18",
            " test eax,eax",
            "-je local:37",
            "+je local:70",
            "+pop ebp",
            " pop edi",
            " pop esi",
            " pop edx",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-ja local:10",
            "+ja local:11",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec edx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edx",
            "+je local:96",
            "+mov ebx,0x1",
            " push 0xe8e8e8e8",
            " mov ecx,0x2b",
            "+mov edx,0x175",
            " mov eax,0x224",
            " push 0xe2e2e2e2",
            "-mov edx,m4[None+None*1+model.c::_model_vp]",
            "+mov esi,m4[None+None*1+model.c::_model_vp]",
            "+mov m4[None+None*1+fxpoly1.c::_use_glide],ebx",
            "+push esi",
            " mov ebx,ecx",
            "-push edx",
            "-mov edx,0x175",
            "-mov esi,cockpits.c::_pilot_artificial_horizon_shade",
            "+xor edi,edi",
            " call horizon.c::draw_user_horizon_",
            "-mov eax,0xe0",
            "+mov ebp,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+mov m4[None+None*1+fxpoly1.c::_use_glide],edi",
            "+test ebp,ebp",
            "+jne local:50",
            "+push fxpoly1.c::_lfbinfo",
            "+push edi",
            "+push edi",
            "+push 0x4",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbLock@24",
            "+mov eax,m4[None+None*1+0x724310]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "+mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            " mov edx,0x175",
            " mov ecx,0x224",
            "+mov eax,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+mov esi,cockpits.c::_pilot_artificial_horizon_shade",
            "+inc eax",
            " xor ebx,ebx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],eax",
            "+mov eax,0xe0",
            " call shadmask.asm::_apply_shading_mask",
            " mov ebx,0x175",
            " mov ecx,0x224",
            " mov esi,cockpits.c::_pilot_artificial_horizon_bezel",
            " call sprite.asm::_draw_sprite",
            "-jmp local:10",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret ",
            " push 0xe8e8e8e8",
            "-push 0xe2e2e2e2",
            "-mov ecx,m4[None+None*1+model.c::_model_vp]",
            "-mov edx,0xba",
            "-push ecx",
            " mov ecx,0x16",
            " mov eax,0x112",
            "+push 0xe2e2e2e2",
            "+mov edx,m4[None+None*1+model.c::_model_vp]",
            " mov ebx,ecx",
            "+push edx",
            "+mov edx,0xba",
            " mov esi,cockpits.c::_pilot_artificial_horizon_shade",
            " call horizon.c::draw_user_horizon_",
            " mov eax,0xe0",
            "@@ -54,9 +87,14 @@",
            " mov ecx,0x112",
            " mov esi,cockpits.c::_pilot_artificial_horizon_bezel",
            " call sprite.asm::_draw_sprite",
            "+pop ebp",
            " pop edi",
            " pop esi",
            " pop edx",
            " pop ecx",
            " pop ebx",
            " ret ",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbUnlock@8",
            "+jmp local:23"
          ]
        },
        {
          "symbol": "campaign.c::play_campaign_animation_",
          "source": "E:\\apache\\source\\menus\\missions\\campaign.c",
          "first": "0x422ea0",
          "second": "0x422f00",
          "first_instruction_count": 80,
          "second_instruction_count": 80,
          "diff": [
            "--- 0x422ea0",
            "+++ 0x422f00",
            "@@ -38,11 +38,11 @@",
            " jne local:26",
            " mov esi,m4[eax+None*1+0x54]",
            " mov edi,esp",
            "-mov esi,m4[None+esi*4+constant:c4b74d00]",
            "+mov esi,m4[None+esi*4+constant:e0b74d00]",
            " jmp local:14",
            " mov esi,m4[eax+None*1+0x54]",
            " mov edi,esp",
            "-mov esi,m4[None+esi*4+constant:60b84d00]",
            "+mov esi,m4[None+esi*4+constant:7cb84d00]",
            " jmp local:14",
            " call music.c::save_and_stop_music_",
            " call mouse.c::mouse_off_"
          ]
        },
        {
          "symbol": "chipa32::__fpatan_chk",
          "source": "chipa32",
          "first": "0x4cf5e0",
          "second": "0x4cfe40",
          "first_instruction_count": 184,
          "second_instruction_count": 184,
          "diff": [
            "--- 0x4cf5e0",
            "+++ 0x4cfe40",
            "@@ -109,7 +109,7 @@",
            " faddp st(1)",
            " fld m10[ecx+None*1+constant:00000000000000000000]",
            " faddp st(1)",
            "-jmp m4[None+edx*4+constant:40f74c00]",
            "+jmp m4[None+edx*4+constant:a0ff4c00]",
            " fldcw m2[esp+None*1+0x18]",
            " add esp,0x24",
            " pop edx"
          ]
        },
        {
          "symbol": "chipd32::__fdiv_fpr",
          "source": "chipd32",
          "first": "0x4d103b",
          "second": "0x4d189b",
          "first_instruction_count": 411,
          "second_instruction_count": 411,
          "diff": [
            "--- 0x4d103b",
            "+++ 0x4d189b",
            "@@ -1,5 +1,5 @@",
            " sub esp,0x2c",
            "-jmp m4[None+eax*4+constant:45104d00]",
            "+jmp m4[None+eax*4+constant:a5184d00]",
            " fdiv st(0)",
            " add esp,0x2c",
            " ret "
          ]
        },
        {
          "symbol": "circle.asm::_draw_circle",
          "source": "\\library\\graphics\\circle.asm",
          "first": "0x4bdc30",
          "second": "0x4be490",
          "first_instruction_count": 1369,
          "second_instruction_count": 1369,
          "diff": [
            "--- 0x4bdc30",
            "+++ 0x4be490",
            "@@ -88,7 +88,7 @@",
            " cmp ecx,m4[None+None*1+screen.c::_screen_x_min]",
            " jge local:90",
            " or ebp,0x1",
            "-jmp m4[None+ebp*4+constant:79dd4b00]",
            "+jmp m4[None+ebp*4+constant:d9e54b00]",
            " xor esi,esi",
            " mov edi,edx",
            " mov ebp,0x3",
            "@@ -703,7 +703,7 @@",
            " cmp ecx,m4[None+None*1+screen.c::_screen_x_min]",
            " jge local:705",
            " or ebp,0x1",
            "-jmp m4[None+ebp*4+constant:56e54b00]",
            "+jmp m4[None+ebp*4+constant:b6ed4b00]",
            " xor esi,esi",
            " mov edi,edx",
            " mov ebp,0x3"
          ]
        },
        {
          "symbol": "circle.c::fill_translucent_circle_",
          "source": "E:\\library\\graphics\\circle.c",
          "first": "0x46e040",
          "second": "0x46e090",
          "first_instruction_count": 71,
          "second_instruction_count": 130,
          "diff": [
            "--- 0x46e040",
            "+++ 0x46e090",
            "@@ -1,71 +1,130 @@",
            " push gs",
            " push ebp",
            " mov ebp,esp",
            "-sub esp,0x804",
            "+sub esp,0x850",
            " and esp,0xfffffff8",
            " mov esi,ecx",
            "-mov ecx,0x26",
            "-mov edi,0xe0e0e0e0",
            "+mov ecx,0x82a1c0e0",
            "+mov edi,0x26",
            " mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[esp+None*1+0x7f8],ecx",
            "+mov m4[esp+None*1+0x848],ecx",
            " test eax,eax",
            "-je local:67",
            "-mov eax,0x40768000",
            "-mov m4[esp+None*1+0x7fc],edx",
            "+je local:99",
            "+mov eax,0x3ff00000",
            "+mov m4[esp+None*1+0x84c],edx",
            " xor ecx,ecx",
            "-fild m4[esp+None*1+0x7fc]",
            "-lea edx,m4[esp+None*1+0x10]",
            "-fstp m8[esp+None*1+0x8]",
            "-mov m4[esp+None*1+0x0],ecx",
            "-mov m4[esp+None*1+0x4],eax",
            "-fld m8[esp+None*1+0x0]",
            "-fld st(0)",
            "+fild m4[esp+None*1+0x84c]",
            "+lea edx,m4[esp+None*1+0x70]",
            "+fstp m8[esp+None*1+0x38]",
            "+mov m4[esp+None*1+0x48],ecx",
            "+mov m4[esp+None*1+0x4c],eax",
            "+fld m8[esp+None*1+0x48]",
            " fmul m8[None+None*1+constant:10a35ca246df913f]",
            " fld st(0)",
            " fcos ",
            " fxch st(0),st(1)",
            " fsin ",
            " fxch st(0),st(1)",
            "-fmul m8[esp+None*1+0x8]",
            "+fld m8[esp+None*1+0x38]",
            " fxch st(0),st(1)",
            "-fmul m8[esp+None*1+0x8]",
            "-fld st(2)",
            "-fldz ",
            "-mov m4[esp+None*1+0x7fc],esi",
            "-mov m4[esp+None*1+0x800],ebx",
            "-mov ecx,edx",
            "-fild m4[esp+None*1+0x7fc]",
            "-fild m4[esp+None*1+0x800]",
            "-add edx,0x28",
            "-fxch st(0),st(3)",
            "-fadd m8[None+None*1+constant:00000000000034c0]",
            "-fxch st(0),st(5)",
            "-fstp m8[esp+None*1+0x7f0]",
            "-fadd m8[esp+None*1+0x7f0]",
            "+fmul st(1)",
            " fxch st(0),st(2)",
            "-faddp st(3)",
            "+fmulp st(1)",
            "+fild m4[None+None*1+screen.c::_screen_x_min]",
            "+mov m4[esp+None*1+0x84c],esi",
            "+fstp m8[esp+None*1+0x68]",
            "+fild m4[esp+None*1+0x84c]",
            "+fxch st(0),st(2)",
            "+fstp m8[esp+None*1+0x60]",
            " fxch st(0),st(1)",
            "-call fchop::__CHP",
            "-fxch st(0),st(2)",
            "-call fchop::__CHP",
            "-fxch st(0),st(2)",
            "-fistp m4[edx+None*1+0xffffffe4]",
            "+fadd m8[esp+None*1+0x60]",
            " fxch st(0),st(1)",
            "-fistp m4[edx+None*1+0xffffffe8]",
            "-mov m4[ecx+None*1+0x24],edx",
            "-fxch st(0),st(1)",
            "-fstp st(2)",
            "-fcomp st(1)",
            "+fstp m8[esp+None*1+0x58]",
            "+fst m8[esp+None*1+0x0]",
            "+fcomp m8[esp+None*1+0x68]",
            " fnstsw ax",
            " sahf ",
            "-jb local:21",
            "-fstp m8[esp+None*1+0x0]",
            "-mov ebx,m4[esp+None*1+0x7f8]",
            "-lea eax,m4[esp+None*1+0x10]",
            "-mov edx,edi",
            "+jb local:103",
            "+fld m8[esp+None*1+0x0]",
            "+fild m4[None+None*1+screen.c::_screen_x_max]",
            "+fstp m8[esp+None*1+0x28]",
            "+fcomp m8[esp+None*1+0x28]",
            "+fnstsw ax",
            "+sahf ",
            "+jbe local:107",
            "+mov eax,m4[esp+None*1+0x28]",
            "+mov m4[esp+None*1+0x30],eax",
            "+mov eax,m4[esp+None*1+0x2c]",
            "+mov m4[esp+None*1+0x34],eax",
            "+mov eax,m4[esp+None*1+0x30]",
            "+mov m4[esp+None*1+0x20],eax",
            "+mov eax,m4[esp+None*1+0x34]",
            "+mov m4[esp+None*1+0x24],eax",
            "+fild m4[None+None*1+screen.c::_screen_y_min]",
            "+fld m8[esp+None*1+0x20]",
            "+call fchop::__CHP",
            "+mov m4[esp+None*1+0x84c],ebx",
            "+fxch st(0),st(1)",
            "+fstp m8[esp+None*1+0x8]",
            "+fild m4[esp+None*1+0x84c]",
            "+fadd m8[esp+None*1+0x58]",
            "+fxch st(0),st(1)",
            "+fistp m4[edx+None*1+0xc]",
            "+fst m8[esp+None*1+0x40]",
            "+fcomp m8[esp+None*1+0x8]",
            "+fnstsw ax",
            "+sahf ",
            "+jae local:111",
            "+mov eax,m4[esp+None*1+0x8]",
            "+mov m4[esp+None*1+0x10],eax",
            "+mov eax,m4[esp+None*1+0xc]",
            "+mov m4[esp+None*1+0x14],eax",
            "+fld m8[esp+None*1+0x48]",
            "+fld m8[esp+None*1+0x10]",
            "+call fchop::__CHP",
            "+mov ecx,edx",
            "+fistp m4[edx+None*1+0x10]",
            "+fadd m8[None+None*1+constant:0000000000002440]",
            "+add edx,0x28",
            "+fst m8[esp+None*1+0x48]",
            "+mov m4[ecx+None*1+0x24],edx",
            "+fcomp m8[None+None*1+constant:0000000000807640]",
            "+fnstsw ax",
            "+sahf ",
            "+jb local:20",
            "+mov edx,m4[esp+None*1+0x848]",
            "+lea eax,m4[esp+None*1+0x70]",
            "+mov ebx,edi",
            " mov m4[ecx+None*1+0x24],0x0",
            "-call fxpoly1.c::_3dfx_fill_translucent_polygon_",
            "+call fxpoly1.c::_3dfx_fill_unfogged_translucent_polygon_",
            " mov esp,ebp",
            " pop ebp",
            " pop gs",
            " ret ",
            "+mov eax,m4[esp+None*1+0x68]",
            "+mov m4[esp+None*1+0x20],eax",
            "+mov eax,m4[esp+None*1+0x6c]",
            "+jmp local:61",
            "+mov eax,m4[esp+None*1+0x0]",
            "+mov m4[esp+None*1+0x30],eax",
            "+mov eax,m4[esp+None*1+0x4]",
            "+jmp local:57",
            "+fld m8[esp+None*1+0x40]",
            "+fild m4[None+None*1+screen.c::_screen_y_max]",
            "+fstp m8[esp+None*1+0x18]",
            "+fcomp m8[esp+None*1+0x18]",
            "+fnstsw ax",
            "+sahf ",
            "+jbe local:126",
            "+mov eax,m4[esp+None*1+0x18]",
            "+mov m4[esp+None*1+0x50],eax",
            "+mov eax,m4[esp+None*1+0x1c]",
            "+mov m4[esp+None*1+0x54],eax",
            "+mov eax,m4[esp+None*1+0x50]",
            "+mov m4[esp+None*1+0x10],eax",
            "+mov eax,m4[esp+None*1+0x54]",
            "+jmp local:80",
            "+mov eax,m4[esp+None*1+0x40]",
            "+mov m4[esp+None*1+0x50],eax",
            "+mov eax,m4[esp+None*1+0x44]",
            "+jmp local:121"
          ]
        },
        {
          "symbol": "cockpits.c::draw_cockpit_",
          "source": "E:\\apache\\source\\avionics\\cockpits.c",
          "first": "0x4569c4",
          "second": "0x456ac4",
          "first_instruction_count": 542,
          "second_instruction_count": 425,
          "diff": [
            "--- 0x4569c4",
            "+++ 0x456ac4",
            "@@ -4,8 +4,15 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-cmp m4[None+None*1+pnvs.c::_pnvs_status],0x0",
            "-je local:76",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test edx,edx",
            "+je local:87",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+inc ecx",
            "+mov ebx,m4[None+None*1+pnvs.c::_pnvs_status]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+test ebx,ebx",
            "+je local:99",
            " xor ecx,ecx",
            " mov edx,0x40000000",
            " mov eax,ecx",
            "@@ -36,16 +43,16 @@",
            " call palette.c::set_fader_level_",
            " mov eax,m4[None+None*1+views.c::_view_mode]",
            " cmp eax,0x13",
            "-ja local:528",
            "+ja local:409",
            " jmp m4[None+eax*4+cockpits.c::deinitialise_cockpits_+0x30]",
            " call screen.c::reset_screen_extent_",
            " mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            " cmp eax,0x1",
            "-jae local:78",
            "-test eax,eax",
            "-jne local:67",
            "+jae local:101",
            "+test eax,eax",
            "+jne local:74",
            " cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "-je local:55",
            "+je local:62",
            " mov eax,0x7c",
            " mov esi,m4[None+None*1+constant:00000000]",
            " mov edx,m4[None+None*1+constant:00000000]",
            "@@ -65,8 +72,12 @@",
            " mov esi,cockpits.c::_pilot_front_4",
            " xor ebx,ebx",
            " call sprite.asm::_draw_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "+xor edx,edx",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+mov m4[None+None*1+views.c::_new_view_mode],edx",
            "+dec ecx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+je local:415",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -74,21 +85,337 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "+push fxpoly1.c::_lfbinfo",
            "+push edx",
            "+push edx",
            "+push 0x4",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbLock@24",
            "+mov eax,m4[None+None*1+0x724310]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "+mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+jmp local:9",
            " mov ecx,m4[None+None*1+0xafaec4]",
            "-jmp local:9",
            "-jbe local:98",
            "+jmp local:16",
            "+jbe local:113",
            " cmp eax,0x2",
            "-jne local:67",
            "+jne local:74",
            " cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "-je local:67",
            "+je local:74",
            " mov edx,0x122",
            " mov ecx,0x320",
            " mov ebx,0x136",
            " xor eax,eax",
            " xor esi,esi",
            " call fillblk.asm::_fill_block",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "+jmp local:74",
            "+call screen.c::get_active_screen_",
            "+mov ebp,eax",
            "+xor edi,edi",
            "+mov eax,m4[None+None*1+cockpits.c::_cockpit_screen]",
            "+xor ecx,ecx",
            "+call screen.c::set_active_screen_",
            "+mov eax,0xf8",
            "+mov esi,m4[None+None*1+constant:00000000]",
            "+mov edx,m4[None+None*1+constant:00000000]",
            "+mov ebx,m4[None+None*1+cockpits.c::_pilot_front_1]",
            "+call setblock.asm::_set_block",
            "+mov ebx,0xf8",
            "+mov esi,cockpits.c::_pilot_front_1",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov ebx,0xf0",
            "+mov esi,cockpits.c::_pilot_front_2",
            "+mov eax,ebp",
            "+xor ecx,ecx",
            "+call screen.c::set_active_screen_",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov esi,cockpits.c::_pilot_front_3",
            "+xor ebx,ebx",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov ecx,0x1d5",
            "+mov esi,cockpits.c::_pilot_front_4",
            "+xor ebx,ebx",
            "+call sprite.asm::_draw_glide_sprite",
            "+jmp local:74",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:152",
            "+test eax,eax",
            "+jne local:74",
            "+mov ecx,0x106",
            "+mov esi,cockpits.c::_pilot_left_45_1",
            "+jmp local:72",
            "+ja local:74",
            "+mov ecx,0x20c",
            "+mov esi,cockpits.c::_pilot_left_45_1",
            "+xor ebx,ebx",
            "+call sprite.asm::_draw_glide_sprite",
            "+jmp local:74",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:179",
            "+test eax,eax",
            "+jne local:74",
            "+mov ebx,0xb",
            "+mov esi,cockpits.c::_pilot_left_90_1",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_sprite",
            "+mov ebx,0xca",
            "+mov esi,cockpits.c::_pilot_left_90_2",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_sprite",
            "+mov ebx,0xe0",
            "+mov ecx,0x27",
            "+mov esi,cockpits.c::_pilot_left_90_3",
            "+call sprite.asm::_draw_sprite",
            "+mov ecx,0xe9",
            "+mov esi,cockpits.c::_pilot_left_90_4",
            "+jmp local:72",
            "+ja local:74",
            "+mov ebx,0xe",
            "+mov esi,cockpits.c::_pilot_left_90_1",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov ebx,0x195",
            "+mov esi,cockpits.c::_pilot_left_90_2",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov ebx,0x1bf",
            "+mov ecx,0x4e",
            "+mov esi,cockpits.c::_pilot_left_90_3",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov ecx,0x1c7",
            "+mov esi,cockpits.c::_pilot_left_90_4",
            "+xor ebx,ebx",
            "+call sprite.asm::_draw_glide_sprite",
            "+jmp local:74",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:207",
            "+test eax,eax",
            "+jne local:74",
            "+mov esi,cockpits.c::_pilot_right_45_1",
            "+xor ebx,ebx",
            "+xor ecx,ecx",
            "+jmp local:73",
            "+ja local:74",
            "+mov esi,cockpits.c::_pilot_right_45_1",
            "+xor ebx,ebx",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_glide_sprite",
            "+jmp local:74",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:235",
            "+test eax,eax",
            "+jne local:74",
            "+mov ebx,0xb",
            "+mov ecx,0x12f",
            "+mov esi,cockpits.c::_pilot_right_90_1",
            "+call sprite.asm::_draw_sprite",
            "+mov ebx,0xca",
            "+mov ecx,0x119",
            "+mov esi,cockpits.c::_pilot_right_90_2",
            "+call sprite.asm::_draw_sprite",
            "+mov ebx,0xe0",
            "+mov ecx,0x52",
            "+mov esi,cockpits.c::_pilot_right_90_3",
            "+call sprite.asm::_draw_sprite",
            "+mov esi,cockpits.c::_pilot_right_90_4",
            "+xor ebx,ebx",
            "+xor ecx,ecx",
            "+jmp local:73",
            "+ja local:74",
            "+mov ebx,0xe",
            "+mov ecx,0x25d",
            "+mov esi,cockpits.c::_pilot_right_90_1",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov ebx,0x195",
            "+mov ecx,0x232",
            "+mov esi,cockpits.c::_pilot_right_90_2",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov ebx,0x1bf",
            "+mov ecx,0x9e",
            "+mov esi,cockpits.c::_pilot_right_90_3",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov esi,cockpits.c::_pilot_right_90_4",
            "+xor ebx,ebx",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_glide_sprite",
            "+jmp local:74",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:276",
            "+test eax,eax",
            "+jne local:74",
            "+cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "+je local:268",
            "+mov eax,0x78",
            "+mov esi,m4[None+None*1+constant:00000000]",
            "+mov edx,m4[None+None*1+constant:00000000]",
            "+mov ebx,m4[None+None*1+cockpits.c::_co_pilot_front_1]",
            "+xor edi,edi",
            "+xor ecx,ecx",
            "+call setblock.asm::_set_block",
            "+mov ebx,0x5e",
            "+mov esi,cockpits.c::_co_pilot_front_2",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_sprite",
            "+mov ebx,0x5e",
            "+mov ecx,0x126",
            "+mov esi,cockpits.c::_co_pilot_front_3",
            "+jmp local:73",
            "+jbe local:288",
            "+cmp eax,0x2",
            "+jne local:74",
            "+cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "+je local:74",
            "+mov edx,0x12c",
            "+mov ecx,0x320",
            "+xor eax,eax",
            "+xor esi,esi",
            "+mov ebx,edx",
            "+call fillblk.asm::_fill_block",
            "+jmp local:74",
            "+call screen.c::get_active_screen_",
            "+mov ebp,eax",
            "+xor edi,edi",
            "+mov eax,m4[None+None*1+cockpits.c::_cockpit_screen]",
            "+xor ecx,ecx",
            "+call screen.c::set_active_screen_",
            "+mov eax,0xf0",
            "+mov esi,m4[None+None*1+constant:00000000]",
            "+mov edx,m4[None+None*1+constant:00000000]",
            "+mov ebx,m4[None+None*1+cockpits.c::_co_pilot_front_1]",
            "+call setblock.asm::_set_block",
            "+mov ebx,0xf0",
            "+mov esi,cockpits.c::_co_pilot_front_1",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov ebx,0xbc",
            "+mov esi,cockpits.c::_co_pilot_front_2",
            "+mov eax,ebp",
            "+xor ecx,ecx",
            "+call screen.c::set_active_screen_",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov ebx,0xbc",
            "+mov ecx,0x24c",
            "+mov esi,cockpits.c::_co_pilot_front_3",
            "+call sprite.asm::_draw_glide_sprite",
            "+jmp local:74",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:332",
            "+test eax,eax",
            "+jne local:74",
            "+mov ecx,0xe0",
            "+mov esi,cockpits.c::_co_pilot_left_45_1",
            "+xor ebx,ebx",
            "+call sprite.asm::_draw_sprite",
            "+mov ebx,0x78",
            "+mov ecx,0x10b",
            "+mov esi,cockpits.c::_co_pilot_left_45_2",
            "+call sprite.asm::_draw_sprite",
            "+mov ebx,0xda",
            "+mov ecx,0x7a",
            "+mov esi,cockpits.c::_co_pilot_left_45_3",
            "+jmp local:73",
            "+ja local:74",
            "+mov ecx,0x1c0",
            "+mov esi,cockpits.c::_co_pilot_left_45_1",
            "+xor ebx,ebx",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov ebx,0xf0",
            "+mov ecx,0x216",
            "+mov esi,cockpits.c::_co_pilot_left_45_2",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov ebx,0x1b3",
            "+mov ecx,0xf2",
            "+mov esi,cockpits.c::_co_pilot_left_45_3",
            "+call sprite.asm::_draw_glide_sprite",
            "+jmp local:74",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:355",
            "+test eax,eax",
            "+jne local:74",
            "+mov ecx,0xaf",
            "+mov esi,cockpits.c::_co_pilot_left_90_1",
            "+jmp local:72",
            "+ja local:74",
            "+mov ecx,0x15d",
            "+mov esi,cockpits.c::_co_pilot_left_90_1",
            "+xor ebx,ebx",
            "+call sprite.asm::_draw_glide_sprite",
            "+jmp local:74",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:379",
            "+test eax,eax",
            "+jne local:74",
            "+mov esi,cockpits.c::_co_pilot_right_45_1",
            "+xor ebx,ebx",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_sprite",
            "+mov ebx,0x78",
            "+mov esi,cockpits.c::_co_pilot_right_45_2",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_sprite",
            "+mov ebx,0xda",
            "+mov esi,cockpits.c::_co_pilot_right_45_3",
            "+xor ecx,ecx",
            "+jmp local:73",
            "+ja local:74",
            "+mov esi,cockpits.c::_co_pilot_right_45_1",
            "+xor ebx,ebx",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov ebx,0xf0",
            "+mov esi,cockpits.c::_co_pilot_right_45_2",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_glide_sprite",
            "+mov ebx,0x1b3",
            "+mov esi,cockpits.c::_co_pilot_right_45_3",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_glide_sprite",
            "+jmp local:74",
            "+call screen.c::reset_screen_extent_",
            "+mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "+cmp eax,0x1",
            "+jae local:403",
            "+test eax,eax",
            "+jne local:74",
            "+mov esi,cockpits.c::_co_pilot_right_90_1",
            "+xor ebx,ebx",
            "+xor ecx,ecx",
            "+jmp local:73",
            "+ja local:74",
            "+mov esi,cockpits.c::_co_pilot_right_90_1",
            "+xor ebx,ebx",
            "+xor ecx,ecx",
            "+call sprite.asm::_draw_glide_sprite",
            "+jmp local:74",
            "+push 0x59e",
            "+push text:'\\\\apache\\\\source\\\\avionics\\\\cockpits.c'",
            "+push text:'Unknown view mode.'",
            "+call debuglog.c::debug_log_fatal_long_",
            "+add esp,0xc",
            "+jmp local:74",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbUnlock@8",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -96,447 +423,3 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-call screen.c::get_active_screen_",
            "-mov ebp,eax",
            "-xor edi,edi",
            "-mov eax,m4[None+None*1+cockpits.c::_cockpit_screen]",
            "-xor ecx,ecx",
            "-call screen.c::set_active_screen_",
            "-mov eax,0xf8",
            "-mov esi,m4[None+None*1+constant:00000000]",
            "-mov edx,m4[None+None*1+constant:00000000]",
            "-mov ebx,m4[None+None*1+cockpits.c::_pilot_front_1]",
            "-call setblock.asm::_set_block",
            "-mov ebx,0xf0",
            "-mov esi,cockpits.c::_pilot_front_2",
            "-mov eax,ebp",
            "-xor ecx,ecx",
            "-call screen.c::set_active_screen_",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov esi,cockpits.c::_pilot_front_3",
            "-xor ebx,ebx",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov ecx,0x1d5",
            "-mov esi,cockpits.c::_pilot_front_4",
            "-xor ebx,ebx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:141",
            "-test eax,eax",
            "-jne local:67",
            "-mov ecx,0x106",
            "-mov esi,cockpits.c::_pilot_left_45_1",
            "-jmp local:65",
            "-ja local:67",
            "-mov ecx,0x20c",
            "-mov esi,cockpits.c::_pilot_left_45_1",
            "-xor ebx,ebx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:176",
            "-test eax,eax",
            "-jne local:67",
            "-mov ebx,0xb",
            "-mov esi,cockpits.c::_pilot_left_90_1",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_sprite",
            "-mov ebx,0xca",
            "-mov esi,cockpits.c::_pilot_left_90_2",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_sprite",
            "-mov ebx,0xe0",
            "-mov ecx,0x27",
            "-mov esi,cockpits.c::_pilot_left_90_3",
            "-call sprite.asm::_draw_sprite",
            "-mov ecx,0xe9",
            "-mov esi,cockpits.c::_pilot_left_90_4",
            "-jmp local:65",
            "-ja local:67",
            "-mov ebx,0xe",
            "-mov esi,cockpits.c::_pilot_left_90_1",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov ebx,0x195",
            "-mov esi,cockpits.c::_pilot_left_90_2",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov ebx,0x1bf",
            "-mov ecx,0x4e",
            "-mov esi,cockpits.c::_pilot_left_90_3",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov ecx,0x1c7",
            "-mov esi,cockpits.c::_pilot_left_90_4",
            "-xor ebx,ebx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:221",
            "-test eax,eax",
            "-jne local:67",
            "-mov esi,cockpits.c::_pilot_right_45_1",
            "-xor ebx,ebx",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-ja local:67",
            "-mov esi,cockpits.c::_pilot_right_45_1",
            "-xor ebx,ebx",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:266",
            "-test eax,eax",
            "-jne local:67",
            "-mov ebx,0xb",
            "-mov ecx,0x12f",
            "-mov esi,cockpits.c::_pilot_right_90_1",
            "-call sprite.asm::_draw_sprite",
            "-mov ebx,0xca",
            "-mov ecx,0x119",
            "-mov esi,cockpits.c::_pilot_right_90_2",
            "-call sprite.asm::_draw_sprite",
            "-mov ebx,0xe0",
            "-mov ecx,0x52",
            "-mov esi,cockpits.c::_pilot_right_90_3",
            "-call sprite.asm::_draw_sprite",
            "-mov esi,cockpits.c::_pilot_right_90_4",
            "-xor ebx,ebx",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-ja local:67",
            "-mov ebx,0xe",
            "-mov ecx,0x25d",
            "-mov esi,cockpits.c::_pilot_right_90_1",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov ebx,0x195",
            "-mov ecx,0x232",
            "-mov esi,cockpits.c::_pilot_right_90_2",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov ebx,0x1bf",
            "-mov ecx,0x9e",
            "-mov esi,cockpits.c::_pilot_right_90_3",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov esi,cockpits.c::_pilot_right_90_4",
            "-xor ebx,ebx",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:324",
            "-test eax,eax",
            "-jne local:67",
            "-cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "-je local:307",
            "-mov eax,0x78",
            "-mov esi,m4[None+None*1+constant:00000000]",
            "-mov edx,m4[None+None*1+constant:00000000]",
            "-mov ebx,m4[None+None*1+cockpits.c::_co_pilot_front_1]",
            "-xor edi,edi",
            "-xor ecx,ecx",
            "-call setblock.asm::_set_block",
            "-mov ebx,0x5e",
            "-mov esi,cockpits.c::_co_pilot_front_2",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_sprite",
            "-mov ebx,0x5e",
            "-mov ecx,0x126",
            "-mov esi,cockpits.c::_co_pilot_front_3",
            "-call sprite.asm::_draw_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-jbe local:344",
            "-cmp eax,0x2",
            "-jne local:67",
            "-cmp m4[None+None*1+views.c::_new_view_mode],0x0",
            "-je local:67",
            "-mov edx,0x12c",
            "-mov ecx,0x320",
            "-xor eax,eax",
            "-xor esi,esi",
            "-mov ebx,edx",
            "-call fillblk.asm::_fill_block",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::get_active_screen_",
            "-mov ebp,eax",
            "-xor edi,edi",
            "-mov eax,m4[None+None*1+cockpits.c::_cockpit_screen]",
            "-xor ecx,ecx",
            "-call screen.c::set_active_screen_",
            "-mov eax,0xf0",
            "-mov esi,m4[None+None*1+constant:00000000]",
            "-mov edx,m4[None+None*1+constant:00000000]",
            "-mov ebx,m4[None+None*1+cockpits.c::_co_pilot_front_1]",
            "-call setblock.asm::_set_block",
            "-mov ebx,0xbc",
            "-mov esi,cockpits.c::_co_pilot_front_2",
            "-mov eax,ebp",
            "-xor ecx,ecx",
            "-call screen.c::set_active_screen_",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov ebx,0xbc",
            "-mov ecx,0x24c",
            "-mov esi,cockpits.c::_co_pilot_front_3",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:401",
            "-test eax,eax",
            "-jne local:67",
            "-mov ecx,0xe0",
            "-mov esi,cockpits.c::_co_pilot_left_45_1",
            "-xor ebx,ebx",
            "-call sprite.asm::_draw_sprite",
            "-mov ebx,0x78",
            "-mov ecx,0x10b",
            "-mov esi,cockpits.c::_co_pilot_left_45_2",
            "-call sprite.asm::_draw_sprite",
            "-mov ebx,0xda",
            "-mov ecx,0x7a",
            "-mov esi,cockpits.c::_co_pilot_left_45_3",
            "-call sprite.asm::_draw_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-ja local:67",
            "-mov ecx,0x1c0",
            "-mov esi,cockpits.c::_co_pilot_left_45_1",
            "-xor ebx,ebx",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov ebx,0xf0",
            "-mov ecx,0x216",
            "-mov esi,cockpits.c::_co_pilot_left_45_2",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov ebx,0x1b3",
            "-mov ecx,0xf2",
            "-mov esi,cockpits.c::_co_pilot_left_45_3",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:432",
            "-test eax,eax",
            "-jne local:67",
            "-mov ecx,0xaf",
            "-mov esi,cockpits.c::_co_pilot_left_90_1",
            "-jmp local:65",
            "-ja local:67",
            "-mov ecx,0x15d",
            "-mov esi,cockpits.c::_co_pilot_left_90_1",
            "-xor ebx,ebx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:473",
            "-test eax,eax",
            "-jne local:67",
            "-mov esi,cockpits.c::_co_pilot_right_45_1",
            "-xor ebx,ebx",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_sprite",
            "-mov ebx,0x78",
            "-mov esi,cockpits.c::_co_pilot_right_45_2",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_sprite",
            "-mov ebx,0xda",
            "-mov esi,cockpits.c::_co_pilot_right_45_3",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-ja local:67",
            "-mov esi,cockpits.c::_co_pilot_right_45_1",
            "-xor ebx,ebx",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov ebx,0xf0",
            "-mov esi,cockpits.c::_co_pilot_right_45_2",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "-mov ebx,0x1b3",
            "-mov esi,cockpits.c::_co_pilot_right_45_3",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-call screen.c::reset_screen_extent_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            "-cmp eax,0x1",
            "-jae local:514",
            "-test eax,eax",
            "-jne local:67",
            "-mov esi,cockpits.c::_co_pilot_right_90_1",
            "-xor ebx,ebx",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-ja local:67",
            "-mov esi,cockpits.c::_co_pilot_right_90_1",
            "-xor ebx,ebx",
            "-xor ecx,ecx",
            "-call sprite.asm::_draw_glide_sprite",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            "-push 0x599",
            "-push text:'\\\\apache\\\\source\\\\avionics\\\\cockpits.c'",
            "-push text:'Unknown view mode.'",
            "-call debuglog.c::debug_log_fatal_long_",
            "-add esp,0xc",
            "-xor ebp,ebp",
            "-mov m4[None+None*1+views.c::_new_view_mode],ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop edx",
            "-pop ecx",
            "-pop ebx",
            "-ret "
          ]
        },
        {
          "symbol": "cockpits.c::new_routine_to_download_cockpit_screen_to_lfb_",
          "source": "E:\\apache\\source\\avionics\\cockpits.c",
          "first": "0x4570dc",
          "second": "0x45718c",
          "first_instruction_count": 75,
          "second_instruction_count": 49,
          "diff": [
            "--- 0x4570dc",
            "+++ 0x45718c",
            "@@ -3,73 +3,47 @@",
            " push edx",
            " push esi",
            " push edi",
            "-push ebp",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test edx,edx",
            "+jne local:19",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push edx",
            "+push edx",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbLock@24",
            "-mov eax,m4[None+None*1+0x724310]",
            "-mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "-mov eax,m4[None+None*1+0x724314]",
            "-mov edx,m4[None+None*1+gamedata.c::_accelerated_time]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-cmp edx,0x1",
            "-jle local:29",
            "-mov edi,0x271",
            "-mov eax,m4[None+None*1+cockpits.c::_cockpit_screen]",
            "-mov edx,0xc",
            "-mov ebx,0xf",
            "-mov esi,m4[eax+None*1+0x14]",
            "-mov eax,0xe",
            "-add esi,0x230e",
            "-mov ecx,eax",
            "-call setblock.asm::_set_lfb_block",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbUnlock@8",
            "-mov eax,m4[None+None*1+views.c::_view_mode]",
            "-test eax,eax",
            "-jbe local:73",
            "-cmp eax,0x5",
            "-jne local:66",
            "-mov ebp,0xf0",
            "-push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "-push 0x4",
            "-push 0x1",
            "-mov ebx,0x1e0",
            "-push 0x1",
            "+mov esi,m4[None+None*1+0x724310]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],esi",
            "+mov esi,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],esi",
            "+mov edx,0x1e0",
            "+mov esi,m4[None+None*1+cockpits.c::_cockpit_screen]",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            " xor edi,edi",
            "-sub ebx,ebp",
            "-call LINKER MODULE::_grLfbLock@24",
            "-mov eax,m4[None+None*1+0x724310]",
            "-mov edx,m4[None+None*1+cockpits.c::_cockpit_screen]",
            "-mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "-mov eax,m4[None+None*1+0x724314]",
            "-xor ecx,ecx",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-lea eax,m4[None+ebp*4+0x0]",
            "-mov esi,m4[edx+None*1+0x14]",
            "-add eax,ebp",
            "-mov edx,ebx",
            "-shl eax,0x7",
            "-mov ebx,0x280",
            "-add esi,eax",
            "-mov eax,ebp",
            "-call setblock.asm::_set_lfb_block",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbUnlock@8",
            "-pop ebp",
            "+xor ebx,ebx",
            "+xor eax,eax",
            "+inc ecx",
            "+mov esi,m4[esi+None*1+0x14]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+mov ecx,0x280",
            "+call setmblk.asm::_set_masked_lfb_block",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ebx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            "+je local:40",
            " pop edi",
            " pop esi",
            " pop edx",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov ebp,0xf8",
            "-jmp local:38",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbUnlock@8",
            "+pop edi",
            "+pop esi",
            "+pop edx",
            "+pop ecx",
            "+pop ebx",
            "+ret "
          ]
        },
        {
          "symbol": "craters.c::scan_craters_",
          "source": "E:\\library\\3dvisual\\craters.c",
          "first": "0x491974",
          "second": "0x491a64",
          "first_instruction_count": 159,
          "second_instruction_count": 159,
          "diff": [
            "--- 0x491974",
            "+++ 0x491a64",
            "@@ -52,15 +52,15 @@",
            " mov m4[esp+None*1+0x4],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -112,15 +112,15 @@",
            " mov m4[esp+None*1+0x14],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "daytime.c::set_sun_position_",
          "source": "E:\\apache\\source\\daytime.c",
          "first": "0x402054",
          "second": "0x402054",
          "first_instruction_count": 84,
          "second_instruction_count": 84,
          "diff": [
            "--- 0x402054",
            "+++ 0x402054",
            "@@ -1,4 +1,4 @@",
            "-cmp eax,umapway.c::display_rubber_waypoint_line_+0x124",
            "+cmp eax,umapway.c::display_rubber_waypoint_line_+0xc4",
            " jl local:20",
            " cmp eax,0xdbba00",
            " jg local:20",
            "@@ -7,7 +7,7 @@",
            " push ebx",
            " cmp eax,0x8ed280",
            " jge local:58",
            "-cmp eax,model_a.c::initialise_apache_flight_model_+0x6a8",
            "+cmp eax,model_a.c::initialise_apache_flight_model_+0x648",
            " jge local:21",
            " mov ebx,0x55555555",
            " xor edx,edx",
            "@@ -20,7 +20,7 @@",
            " pop edx",
            " ret ",
            " mov edx,0x8ed280",
            "-mov ebx,excptwnt::___ExceptionFilter+0x141",
            "+mov ebx,mthread::__AccessSemaphore_+0x12",
            " sub edx,eax",
            " xor eax,eax",
            " sar edx,0x1",
            "@@ -60,7 +60,7 @@",
            " jle local:62",
            " mov ebx,0xaaaaaaab",
            " jmp local:12",
            "-mov ebx,excptwnt::___ExceptionFilter+0x141",
            "+mov ebx,mthread::__AccessSemaphore_+0x12",
            " lea edx,m4[eax+None*1+0xff712d80]",
            " xor eax,eax",
            " sar edx,0x1"
          ]
        },
        {
          "symbol": "dline.asm::_draw_dline",
          "source": "\\library\\graphics\\dline.asm",
          "first": "0x4becf4",
          "second": "0x4bf554",
          "first_instruction_count": 45,
          "second_instruction_count": 45,
          "diff": [
            "--- 0x4becf4",
            "+++ 0x4bf554",
            "@@ -10,7 +10,7 @@",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            " inc edx",
            "-jmp m4[None+ebp*4+constant:18ed4b00]",
            "+jmp m4[None+ebp*4+constant:78f54b00]",
            " mov ebx,m4[None+None*1+screen.c::_screen_y_inc]",
            " inc ebx",
            " mov m1[edi+None*1+0x0],al"
          ]
        },
        {
          "symbol": "drawcmtx.asm::_draw_constant_shaded_masked_textured_scan_lines",
          "source": "\\library\\graphics\\drawcmtx.asm",
          "first": "0x4bed58",
          "second": "0x4bf5b8",
          "first_instruction_count": 414,
          "second_instruction_count": 414,
          "diff": [
            "--- 0x4bed58",
            "+++ 0x4bf5b8",
            "@@ -3,7 +3,7 @@",
            " mov eax,m4[esi+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "-jmp m4[None+eax*4+constant:74ed4b00]",
            "+jmp m4[None+eax*4+constant:d4f54b00]",
            " push ebp",
            " mov ebx,m4[None+None*1+polygon.asm::_scan_y_min]",
            " jmp local:50"
          ]
        },
        {
          "symbol": "drawctxt.asm::_draw_constant_shaded_textured_scan_lines",
          "source": "\\library\\graphics\\drawctxt.asm",
          "first": "0x4bf434",
          "second": "0x4bfc94",
          "first_instruction_count": 390,
          "second_instruction_count": 390,
          "diff": [
            "--- 0x4bf434",
            "+++ 0x4bfc94",
            "@@ -3,7 +3,7 @@",
            " mov eax,m4[esi+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "-jmp m4[None+eax*4+constant:50f44b00]",
            "+jmp m4[None+eax*4+constant:b0fc4b00]",
            " push ebp",
            " mov ebx,m4[None+None*1+polygon.asm::_scan_y_min]",
            " jmp local:48"
          ]
        },
        {
          "symbol": "drawgmtx.asm::_draw_gouraud_shaded_masked_textured_scan_lines",
          "source": "\\library\\graphics\\drawgmtx.asm",
          "first": "0x4bfad0",
          "second": "0x4c0330",
          "first_instruction_count": 478,
          "second_instruction_count": 478,
          "diff": [
            "--- 0x4bfad0",
            "+++ 0x4c0330",
            "@@ -1,7 +1,7 @@",
            " mov eax,m4[esi+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "-jmp m4[None+eax*4+constant:e4fa4b00]",
            "+jmp m4[None+eax*4+constant:44034c00]",
            " push ebp",
            " mov ebx,m4[None+None*1+polygon.asm::_scan_y_min]",
            " jmp local:58"
          ]
        },
        {
          "symbol": "drawgtxt.asm::_draw_gouraud_shaded_textured_scan_lines",
          "source": "\\library\\graphics\\drawgtxt.asm",
          "first": "0x4c034c",
          "second": "0x4c0bac",
          "first_instruction_count": 453,
          "second_instruction_count": 453,
          "diff": [
            "--- 0x4c034c",
            "+++ 0x4c0bac",
            "@@ -1,7 +1,7 @@",
            " mov eax,m4[esi+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "-jmp m4[None+eax*4+constant:60034c00]",
            "+jmp m4[None+eax*4+constant:c00b4c00]",
            " push ebp",
            " mov ebx,m4[None+None*1+polygon.asm::_scan_y_min]",
            " jmp local:56"
          ]
        },
        {
          "symbol": "drawmtxt.asm::_draw_masked_textured_scan_lines",
          "source": "\\library\\graphics\\drawmtxt.asm",
          "first": "0x4c1050",
          "second": "0x4c18b0",
          "first_instruction_count": 386,
          "second_instruction_count": 386,
          "diff": [
            "--- 0x4c1050",
            "+++ 0x4c18b0",
            "@@ -1,7 +1,7 @@",
            " mov eax,m4[esi+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "-jmp m4[None+eax*4+constant:64104c00]",
            "+jmp m4[None+eax*4+constant:c4184c00]",
            " push ebp",
            " mov ebx,m4[None+None*1+polygon.asm::_scan_y_min]",
            " jmp local:46"
          ]
        },
        {
          "symbol": "drawscan.asm::_draw_scan_lines",
          "source": "\\library\\graphics\\drawscan.asm",
          "first": "0x4c163c",
          "second": "0x4c1e9c",
          "first_instruction_count": 78,
          "second_instruction_count": 78,
          "diff": [
            "--- 0x4c163c",
            "+++ 0x4c1e9c",
            "@@ -18,7 +18,7 @@",
            " test edx,0x1",
            " je local:20",
            " ror eax,0x8",
            "-jmp m4[None+ecx*4+constant:bd164c00]",
            "+jmp m4[None+ecx*4+constant:1d1f4c00]",
            " mov m1[edi+None*1+0x0],al",
            " inc edi",
            " ror eax,0x8",
            "@@ -44,7 +44,7 @@",
            " je local:45",
            " ror eax,0x8",
            " and edx,0x3",
            "-jmp m4[None+edx*4+constant:eb164c00]",
            "+jmp m4[None+edx*4+constant:4b1f4c00]",
            " mov m1[edi+None*1+0x0],al",
            " inc edi",
            " dec ecx"
          ]
        },
        {
          "symbol": "drawtext.asm::_draw_textured_scan_lines",
          "source": "\\library\\graphics\\drawtext.asm",
          "first": "0x4c1728",
          "second": "0x4c1f88",
          "first_instruction_count": 363,
          "second_instruction_count": 363,
          "diff": [
            "--- 0x4c1728",
            "+++ 0x4c1f88",
            "@@ -1,7 +1,7 @@",
            " mov eax,m4[esi+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "-jmp m4[None+eax*4+constant:3c174c00]",
            "+jmp m4[None+eax*4+constant:9c1f4c00]",
            " push ebp",
            " mov ebx,m4[None+None*1+polygon.asm::_scan_y_min]",
            " jmp local:44"
          ]
        },
        {
          "symbol": "drawtmtx.asm::_draw_translucent_masked_textured_scan_lines",
          "source": "\\library\\graphics\\drawtmtx.asm",
          "first": "0x4c1cbc",
          "second": "0x4c251c",
          "first_instruction_count": 582,
          "second_instruction_count": 582,
          "diff": [
            "--- 0x4c1cbc",
            "+++ 0x4c251c",
            "@@ -3,7 +3,7 @@",
            " mov eax,m4[esi+None*1+0x8]",
            " mov m4[None+None*1+constant:00000000],eax",
            " mov eax,m4[esi+None*1+0x0]",
            "-jmp m4[None+eax*4+constant:d81c4c00]",
            "+jmp m4[None+eax*4+constant:38254c00]",
            " push ebp",
            " mov ebx,m4[None+None*1+polygon.asm::_scan_y_min]",
            " jmp local:64"
          ]
        },
        {
          "symbol": "elevate.c::position_chain_gun_",
          "source": "E:\\apache\\source\\weapons\\elevate.c",
          "first": "0x44b0a0",
          "second": "0x44b100",
          "first_instruction_count": 342,
          "second_instruction_count": 342,
          "diff": [
            "--- 0x44b0a0",
            "+++ 0x44b100",
            "@@ -47,11 +47,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -65,15 +65,15 @@",
            " mov eax,m4[esp+None*1+0x1c]",
            " mov ebp,edx",
            " mov m4[esp+None*1+0x34],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -87,15 +87,15 @@",
            " mov eax,m4[esp+None*1+0x1c]",
            " mov m4[esp+None*1+0x40],edx",
            " mov m4[esp+None*1+0x38],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "elevate.c::update_hydra_elevation_",
          "source": "E:\\apache\\source\\weapons\\elevate.c",
          "first": "0x44ae40",
          "second": "0x44aea0",
          "first_instruction_count": 199,
          "second_instruction_count": 199,
          "diff": [
            "--- 0x44ae40",
            "+++ 0x44aea0",
            "@@ -58,11 +58,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -75,15 +75,15 @@",
            " mov ebx,m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[esp+None*1+0x20],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -96,15 +96,15 @@",
            " mov ebx,m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[esp+None*1+0x24],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "fillblk.asm::_fill_block",
          "source": "\\library\\graphics\\fillblk.asm",
          "first": "0x4c2574",
          "second": "0x4c2dd4",
          "first_instruction_count": 114,
          "second_instruction_count": 114,
          "diff": [
            "--- 0x4c2574",
            "+++ 0x4c2dd4",
            "@@ -10,7 +10,7 @@",
            " cmp ecx,0x8",
            " jae local:77",
            " mov ebp,m4[None+None*1+screen.c::_screen_y_inc]",
            "-jmp m4[None+ecx*4+constant:50264c00]",
            "+jmp m4[None+ecx*4+constant:b02e4c00]",
            " mov m1[edi+None*1+0x0],al",
            " ror eax,0x8",
            " add edi,ebp",
            "@@ -83,7 +83,7 @@",
            " and ebx,0x3",
            " shr ecx,0x2",
            " push eax",
            "-jmp m4[None+esi*4+constant:86264c00]",
            "+jmp m4[None+esi*4+constant:e62e4c00]",
            " mov m1[edi+None*1+0x0],al",
            " inc edi",
            " ror eax,0x8",
            "@@ -96,7 +96,7 @@",
            " push ecx",
            " rep stosd m4[edi+None*1+0x0],eax",
            " pop ecx",
            "-jmp m4[None+ebx*4+constant:a0264c00]",
            "+jmp m4[None+ebx*4+constant:002f4c00]",
            " mov m1[edi+None*1+0x0],al",
            " inc edi",
            " ror eax,0x8"
          ]
        },
        {
          "symbol": "fireball.c::draw_fireball_",
          "source": "E:\\library\\3dvisual\\fireball.c",
          "first": "0x492ebc",
          "second": "0x492fac",
          "first_instruction_count": 212,
          "second_instruction_count": 212,
          "diff": [
            "--- 0x492ebc",
            "+++ 0x492fac",
            "@@ -26,11 +26,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -42,15 +42,15 @@",
            " mov ecx,m4[esp+None*1+0x8]",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -63,15 +63,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "fireball.c::scan_fireballs_",
          "source": "E:\\library\\3dvisual\\fireball.c",
          "first": "0x492cdc",
          "second": "0x492dcc",
          "first_instruction_count": 151,
          "second_instruction_count": 151,
          "diff": [
            "--- 0x492cdc",
            "+++ 0x492dcc",
            "@@ -35,15 +35,15 @@",
            " mov m4[esp+None*1+0x4],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -107,15 +107,15 @@",
            " mov m4[esp+None*1+0x14],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x8]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "forces.c::_forces_info",
          "source": "E:\\apache\\source\\forces.c",
          "first": "0x402b30",
          "second": "0x402b30",
          "first_instruction_count": 152,
          "second_instruction_count": 152,
          "diff": [
            "--- 0x402b30",
            "+++ 0x402b30",
            "@@ -36,7 +36,7 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0x0],cl",
            " add m1[eax+None*1+0x0],al",
            "-add m1[ebx+eax*1+modemprf.c::disable_modem_messages_+0x50],al",
            "+add m1[ebx+eax*1+modemprf.c::enable_modem_messages_+0xc],al",
            " add m1[eax+None*1+0x0],al",
            " cmp al,0x0",
            " add m1[eax+None*1+0x0],al"
          ]
        },
        {
          "symbol": "fragment.c::scan_fragments_",
          "source": "E:\\library\\3dvisual\\fragment.c",
          "first": "0x493688",
          "second": "0x493778",
          "first_instruction_count": 168,
          "second_instruction_count": 168,
          "diff": [
            "--- 0x493688",
            "+++ 0x493778",
            "@@ -32,15 +32,15 @@",
            " mov m4[esp+None*1+0x14],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -110,15 +110,15 @@",
            " mov m4[esp+None*1+0x4],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "fx3dmain.c::draw_3d_mfd_visual_",
          "source": "E:\\library\\3dvisual\\fx3dmain.c",
          "first": "0x49fc7c",
          "second": "0x49fd6c",
          "first_instruction_count": 298,
          "second_instruction_count": 300,
          "diff": [
            "--- 0x49fc7c",
            "+++ 0x49fd6c",
            "@@ -174,58 +174,55 @@",
            " xor eax,edx",
            " sub eax,edx",
            " lea ebp,m4[eax+None*1+0xffffff80]",
            "-mov ecx,edi",
            "-shl ecx,0x4",
            "-lea ebx,m4[ecx+None*1+0x80]",
            "+mov ebx,edi",
            "+shl ebx,0x4",
            "+lea ecx,m4[ebx+None*1+0x80]",
            " mov m4[esp+None*1+0x1c],0x100",
            "-mov edx,ebx",
            "-mov eax,ebx",
            "+mov edx,ecx",
            "+mov eax,ecx",
            " sar edx,0x1f",
            " idiv m4[esp+None*1+0x1c]",
            " mov m4[esp+None*1+0x10],edx",
            "-test ecx,ecx",
            "+test ebx,ebx",
            " jl local:278",
            "-mov edx,ebx",
            "-mov eax,ebx",
            "+mov edx,ecx",
            "+mov eax,ecx",
            " sar edx,0x1f",
            " shl edx,0x8",
            " sbb eax,edx",
            " sar eax,0x8",
            "-mov ebx,eax",
            "+mov ecx,eax",
            " mov eax,m4[esp+None*1+0x10]",
            " cdq ",
            " xor eax,edx",
            " sub eax,edx",
            "-lea ecx,m4[eax+None*1+0xffffff80]",
            "+lea ebx,m4[eax+None*1+0xffffff80]",
            " mov edx,m4[None+None*1+3dcore.c::_vp_xeo]",
            " add edx,m4[None+esi*4+0xaff124]",
            "-add edx,m4[None+ebx*4+0xafe790]",
            "+add edx,m4[None+ecx*4+0xafe790]",
            " mov eax,m4[None+ebp*4+0xafeebc]",
            " add eax,edx",
            " mov m4[esp+None*1+0x1c],eax",
            " mov edx,m4[esp+None*1+0x1c]",
            "-mov eax,m4[None+ecx*4+0xafe528]",
            "+mov eax,m4[None+ebx*4+0xafe528]",
            " add edx,eax",
            " mov m4[None+None*1+secscan.c::_xeo],edx",
            " mov eax,m4[None+esi*4+0xafe74c]",
            " mov edx,m4[None+None*1+3dcore.c::_vp_yeo]",
            " add edx,eax",
            "-add edx,m4[None+ebx*4+0xafdcf8]",
            "-mov eax,m4[None+ebp*4+0xafe124]",
            "-add eax,edx",
            "-mov m4[esp+None*1+0x1c],eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov eax,m4[None+ecx*4+0xafda50]",
            "-add edx,eax",
            "-mov m4[None+None*1+secscan.c::_yeo],edx",
            "+add edx,m4[None+ecx*4+0xafdcf8]",
            "+add edx,m4[None+ebp*4+0xafe124]",
            "+mov eax,m4[None+ebx*4+0xafda50]",
            "+add eax,edx",
            "+mov edx,m4[None+None*1+3dcore.c::_vp_zeo]",
            "+mov m4[None+None*1+secscan.c::_yeo],eax",
            " mov eax,m4[None+esi*4+0xaff0e0]",
            "-mov edx,m4[None+None*1+3dcore.c::_vp_zeo]",
            "-mov esi,m4[None+ebx*4+0xaff570]",
            "+mov esi,m4[None+ecx*4+0xaff570]",
            " add edx,eax",
            " mov eax,m4[None+ebp*4+0xafe9b4]",
            " add edx,esi",
            " add edx,eax",
            "-mov eax,m4[None+ecx*4+0xaff34c]",
            "+mov eax,m4[None+ebx*4+0xaff34c]",
            " add edx,eax",
            " mov m4[None+None*1+secscan.c::_zeo],edx",
            " call secscan.c::get_sector_visibility_",
            "@@ -234,11 +231,14 @@",
            " cmp m4[esp+None*1+0xc],0x3",
            " jle local:294",
            " mov edx,0x1",
            "-mov ebx,m4[esp+None*1+0xc]",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_use_glide]",
            " mov m4[None+None*1+secscan.c::_approx_sector],edx",
            "+test ebx,ebx",
            "+je local:298",
            " call fxterr.c::scan_terrain_",
            "+mov esi,m4[esp+None*1+0xc]",
            " call fxfeatur.c::draw_features_",
            "-cmp ebx,0x1",
            "+cmp esi,0x1",
            " jg local:245",
            " cmp m4[esp+None*1+0x14],0x1",
            " jg local:245",
            "@@ -276,23 +276,25 @@",
            " sub eax,edx",
            " sub ebp,eax",
            " jmp local:176",
            "-lea edx,m4[ecx+None*1+0xffffff80]",
            "+lea edx,m4[ebx+None*1+0xffffff80]",
            " mov eax,edx",
            " sar edx,0x1f",
            " shl edx,0x8",
            " sbb eax,edx",
            " sar eax,0x8",
            "-mov ebx,eax",
            "+mov ecx,eax",
            " test eax,eax",
            " jge local:199",
            " mov eax,m4[esp+None*1+0x10]",
            "-mov ecx,0x80",
            "-cdq ",
            "-xor eax,edx",
            "-sub eax,edx",
            "-sub ecx,eax",
            "+mov ebx,0x80",
            "+cdq ",
            "+xor eax,edx",
            "+sub eax,edx",
            "+sub ebx,eax",
            " jmp local:199",
            " cmp m4[esp+None*1+0x14],0x3",
            "-jg local:235",
            "+jg local:232",
            " xor edx,edx",
            "-jmp local:236",
            "+jmp local:233",
            "+call fxterr.c::scan_8bit_terrain_",
            "+jmp local:238"
          ]
        },
        {
          "symbol": "fx3dobj1.c::draw_3d_object_",
          "source": "E:\\library\\3dvisual\\fx3dobj1.c",
          "first": "0x4a043c",
          "second": "0x4a053c",
          "first_instruction_count": 228,
          "second_instruction_count": 228,
          "diff": [
            "--- 0x4a043c",
            "+++ 0x4a053c",
            "@@ -69,11 +69,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -86,15 +86,15 @@",
            " mov ebx,m4[esp+None*1+0x2c08]",
            " mov eax,m4[esp+None*1+0x2c04]",
            " mov m4[None+None*1+fx3dobj1.c::_xeo_object],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -107,15 +107,15 @@",
            " mov ebx,m4[esp+None*1+0x2c08]",
            " mov eax,m4[esp+None*1+0x2c04]",
            " mov m4[None+None*1+fx3dobj1.c::_yeo_object],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "fx3dobj1.c::get_grid_object_intensity_values_",
          "source": "E:\\library\\3dvisual\\fx3dobj1.c",
          "first": "0x4a21f0",
          "second": "0x4a22f0",
          "first_instruction_count": 117,
          "second_instruction_count": 117,
          "diff": [
            "--- 0x4a21f0",
            "+++ 0x4a22f0",
            "@@ -33,12 +33,12 @@",
            " je local:98",
            " movsx edx,m1[ebp+None*1+0x0]",
            " shl edx,0x18",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            " mov m4[esp+None*1+0x10],edx",
            " movsx edx,m1[ebp+None*1+0x1]",
            " inc ebp",
            " shl edx,0x18",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov m4[esp+None*1+0xc],edx",
            " movsx edx,m1[ebp+None*1+0x1]",
            " inc ebp",
            "@@ -68,8 +68,8 @@",
            " mov esi,m4[esp+None*1+0x8]",
            " mov ebx,m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0x10]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax"
          ]
        },
        {
          "symbol": "fx3dobj1.c::get_true_3d_object_visibility_",
          "source": "E:\\library\\3dvisual\\fx3dobj1.c",
          "first": "0x4a076c",
          "second": "0x4a086c",
          "first_instruction_count": 225,
          "second_instruction_count": 225,
          "diff": [
            "--- 0x4a076c",
            "+++ 0x4a086c",
            "@@ -49,11 +49,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd494]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd498]",
            "+mov eax,m4[None+None*1+0xafd598]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd59c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -70,15 +70,15 @@",
            " mov m4[esp+eax*1+0x40],edx",
            " mov eax,m4[esp+None*1+0x6c]",
            " add ebp,0x2",
            "-mov edx,m4[None+None*1+0xafd49c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4a0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4a4]",
            "+mov edx,m4[None+None*1+0xafd5a0]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xafd5a4]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd5a8]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -95,15 +95,15 @@",
            " mov m4[esp+eax*1+0x20],edx",
            " mov eax,m4[esp+None*1+0x6c]",
            " add ebp,0x2",
            "-mov edx,m4[None+None*1+0xafd4a8]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4ac]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4b0]",
            "+mov edx,m4[None+None*1+0xafd5ac]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xafd5b0]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd5b4]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -150,11 +150,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd494]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd498]",
            "+mov eax,m4[None+None*1+0xafd598]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd59c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -170,15 +170,15 @@",
            " mov ebx,m4[esp+None*1+0x64]",
            " mov m4[esp+eax*1+0x40],edx",
            " mov eax,m4[esp+None*1+0x60]",
            "-mov edx,m4[None+None*1+0xafd49c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4a0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4a4]",
            "+mov edx,m4[None+None*1+0xafd5a0]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xafd5a4]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd5a8]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -194,15 +194,15 @@",
            " mov ebx,m4[esp+None*1+0x64]",
            " mov m4[esp+eax*1+0x20],edx",
            " mov eax,m4[esp+None*1+0x60]",
            "-mov edx,m4[None+None*1+0xafd4a8]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4ac]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4b0]",
            "+mov edx,m4[None+None*1+0xafd5ac]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xafd5b0]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd5b4]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "fx3dobj1.c::scan_completely_visible_true_3d_object_vertex_list_",
          "source": "E:\\library\\3dvisual\\fx3dobj1.c",
          "first": "0x4a0b6c",
          "second": "0x4a0c6c",
          "first_instruction_count": 335,
          "second_instruction_count": 335,
          "diff": [
            "--- 0x4a0b6c",
            "+++ 0x4a0c6c",
            "@@ -81,11 +81,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd494]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd498]",
            "+mov eax,m4[None+None*1+0xafd598]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd59c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -100,15 +100,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+0xafd49c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4a0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4a4]",
            "+mov edx,m4[None+None*1+0xafd5a0]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xafd5a4]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd5a8]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -123,15 +123,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov m4[esp+None*1+0x10],eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+0xafd4a8]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4ac]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4b0]",
            "+mov edx,m4[None+None*1+0xafd5ac]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xafd5b0]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd5b4]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -229,11 +229,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd494]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd498]",
            "+mov eax,m4[None+None*1+0xafd598]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd59c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -248,15 +248,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+0xafd49c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4a0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4a4]",
            "+mov edx,m4[None+None*1+0xafd5a0]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xafd5a4]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd5a8]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -271,15 +271,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov m4[esp+None*1+0x10],eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+0xafd4a8]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4ac]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4b0]",
            "+mov edx,m4[None+None*1+0xafd5ac]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xafd5b0]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd5b4]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "fx3dobj1.c::scan_partially_visible_true_3d_object_vertex_list_",
          "source": "E:\\library\\3dvisual\\fx3dobj1.c",
          "first": "0x4a0ff4",
          "second": "0x4a10f4",
          "first_instruction_count": 363,
          "second_instruction_count": 363,
          "diff": [
            "--- 0x4a0ff4",
            "+++ 0x4a10f4",
            "@@ -81,11 +81,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd494]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd498]",
            "+mov eax,m4[None+None*1+0xafd598]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd59c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -100,15 +100,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov m4[esp+None*1+0x10],eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+0xafd49c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4a0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4a4]",
            "+mov edx,m4[None+None*1+0xafd5a0]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xafd5a4]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd5a8]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -123,15 +123,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov m4[esp+None*1+0x14],eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+0xafd4a8]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4ac]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4b0]",
            "+mov edx,m4[None+None*1+0xafd5ac]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xafd5b0]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd5b4]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -243,11 +243,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd494]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd498]",
            "+mov eax,m4[None+None*1+0xafd598]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd59c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -262,15 +262,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+0xafd49c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4a0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4a4]",
            "+mov edx,m4[None+None*1+0xafd5a0]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xafd5a4]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd5a8]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -285,15 +285,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov m4[esp+None*1+0x18],eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edx,m4[None+None*1+0xafd4a8]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4ac]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4b0]",
            "+mov edx,m4[None+None*1+0xafd5ac]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xafd5b0]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xafd5b4]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "fx3dobj1.c::scan_true_3d_object_normal_list_",
          "source": "E:\\library\\3dvisual\\fx3dobj1.c",
          "first": "0x4a18b4",
          "second": "0x4a19b4",
          "first_instruction_count": 158,
          "second_instruction_count": 158,
          "diff": [
            "--- 0x4a18b4",
            "+++ 0x4a19b4",
            "@@ -11,18 +11,18 @@",
            " movsx eax,m2[ebp+None*1+0x2]",
            " add ebp,0x4",
            " mov m4[esp+None*1+0x1c],eax",
            "-mov ecx,m4[None+None*1+0xafd4bc]",
            "-mov ebx,m4[None+None*1+0xafd4b8]",
            "+mov ecx,m4[None+None*1+0xafd5c0]",
            "+mov ebx,m4[None+None*1+0xafd5bc]",
            " mov eax,m4[None+None*1+3dcore.c::_ls_uvec]",
            " mov edx,m4[None+None*1+3dcore.c::_b_factors]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a0]",
            "+mov eax,m4[None+None*1+0xaff624]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6ac]",
            "+mov eax,m4[None+None*1+0xaff630]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -31,19 +31,19 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ecx,m4[None+None*1+0xafd4bc]",
            "-mov ebx,m4[None+None*1+0xafd4b8]",
            "+mov ecx,m4[None+None*1+0xafd5c0]",
            "+mov ebx,m4[None+None*1+0xafd5bc]",
            " mov eax,m4[None+None*1+3dcore.c::_ls_uvec]",
            " mov m4[esp+None*1+0x0],edx",
            "-mov edx,m4[None+None*1+0xaff698]",
            "+mov edx,m4[None+None*1+0xaff61c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a4]",
            "+mov eax,m4[None+None*1+0xaff628]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6b0]",
            "+mov eax,m4[None+None*1+0xaff634]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -52,19 +52,19 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ecx,m4[None+None*1+0xafd4bc]",
            "-mov ebx,m4[None+None*1+0xafd4b8]",
            "+mov ecx,m4[None+None*1+0xafd5c0]",
            "+mov ebx,m4[None+None*1+0xafd5bc]",
            " mov eax,m4[None+None*1+3dcore.c::_ls_uvec]",
            " mov m4[esp+None*1+0x4],edx",
            "-mov edx,m4[None+None*1+0xaff69c]",
            "+mov edx,m4[None+None*1+0xaff620]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a8]",
            "+mov eax,m4[None+None*1+0xaff62c]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6b4]",
            "+mov eax,m4[None+None*1+0xaff638]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "fx3dobj2.c::draw_completely_visible_primary_face_",
          "source": "E:\\library\\3dvisual\\fx3dobj2.c",
          "first": "0x4a23e8",
          "second": "0x4a24e8",
          "first_instruction_count": 1914,
          "second_instruction_count": 1966,
          "diff": [
            "--- 0x4a23e8",
            "+++ 0x4a24e8",
            "@@ -2,39 +2,39 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-sub esp,0x9c",
            "+sub esp,0xac",
            " mov ebp,eax",
            "-mov m4[esp+None*1+0x1c],edx",
            "-mov esi,ebx",
            "+mov m4[esp+None*1+0x14],edx",
            "+mov ecx,ebx",
            " lea ebp,m4[eax+None*1+0x1]",
            " inc ebp",
            " xor edx,edx",
            " xor eax,eax",
            " mov dl,m1[ebp+None*1+0xffffffff]",
            " mov al,m1[ebp+None*1+0xfffffffe]",
            "-mov m4[esp+None*1+0x10],edx",
            "+mov m4[esp+None*1+0x30],edx",
            " cmp eax,0x15",
            "-ja local:1902",
            "+ja local:1954",
            " jmp m4[None+eax*4+fx3dobj1.c::set_nozzle_flame_+0x14]",
            "-xor ecx,ecx",
            "+xor ecx,ebx",
            " mov cl,m1[ebp+None*1+0x0]",
            " mov edi,0xffffffff",
            " inc ebp",
            " mov cl,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-mov ebx,m4[esp+None*1+0x10]",
            "-add ebx,edi",
            "-mov m4[esp+None*1+0x10],ebx",
            "-cmp edi,ebx",
            "+mov esi,m4[esp+None*1+0x30]",
            "+add esi,edi",
            "+mov m4[esp+None*1+0x30],esi",
            "+cmp edi,esi",
            " jne local:35",
            " mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            " mov al,m1[ebp+None*1+0x0]",
            " xor ebx,ebx",
            " lea eax,m4[eax+eax*4+0x0]",
            "@@ -49,86 +49,94 @@",
            " mov al,m1[ebp+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " inc ebp",
            "-mov m1[esp+None*1+0x3c],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x10]",
            "+mov m1[esp+None*1+0x70],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x30]",
            " dec eax",
            "-mov m4[esp+None*1+0x10],eax",
            "+mov m4[esp+None*1+0x30],eax",
            " je local:28",
            " xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "+mov edx,m4[esp+None*1+0x14]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov ecx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[esp+None*1+0x18],eax",
            "+mov m4[esp+None*1+0xc],eax",
            " mov edi,m4[ebx+None*1+0xc]",
            "-mov edx,m4[ebx+None*1+0x10]",
            "+mov edx,m4[eax+None*1+0xc]",
            " mov esi,m4[eax+None*1+0x10]",
            "-mov m4[esp+None*1+0xc],edx",
            "-mov ebx,m4[eax+None*1+0xc]",
            "+mov m4[esp+None*1+0x10],edx",
            "+mov ebx,m4[ebx+None*1+0x10]",
            " test ecx,ecx",
            "-jne local:86",
            "-mov edx,ebx",
            "-xor eax,eax",
            "-mov ecx,edi",
            "-mov al,m1[esp+None*1+0x3c]",
            "-mov ebx,m4[esp+None*1+0xc]",
            "-call line.asm::_draw_line",
            "-mov ebx,m4[esp+None*1+0x18]",
            "-jmp local:59",
            "+je local:110",
            "+mov eax,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test eax,eax",
            "+jne local:92",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push eax",
            "+push eax",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbLock@24",
            " mov eax,m4[None+None*1+0x724310]",
            "-mov edx,ebx",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            " mov ecx,edi",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "+xor eax,eax",
            "+inc edx",
            "+mov al,m1[esp+None*1+0x70]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edx",
            "+mov edx,m4[esp+None*1+0x10]",
            "+call line.asm::_draw_glide_line",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ecx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+je local:106",
            " mov ebx,m4[esp+None*1+0xc]",
            "-mov al,m1[esp+None*1+0x3c]",
            "-call line.asm::_draw_glide_line",
            "+jmp local:59",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-mov ebx,m4[esp+None*1+0x18]",
            "+jmp local:104",
            "+xor eax,eax",
            "+mov ecx,edi",
            "+mov al,m1[esp+None*1+0x70]",
            "+call line.asm::_draw_line",
            "+mov ebx,m4[esp+None*1+0xc]",
            " jmp local:59",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m1[esp+None*1+0x34],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            "+mov m1[esp+None*1+0xa0],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            " mov ecx,eax",
            " mov ebx,eax",
            "-mov esi,m4[esp+None*1+0x10]",
            "+mov esi,m4[esp+None*1+0x30]",
            " dec esi",
            "-mov m4[esp+None*1+0x10],esi",
            "-je local:131",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:119",
            "+mov m4[esp+None*1+0x30],esi",
            "+je local:139",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:127",
            " mov eax,ecx",
            " mov m4[ebx+None*1+0x24],esi",
            " call 3dcore.c::get_cyclic_order_",
            "@@ -136,158 +144,7 @@",
            " test eax,eax",
            " jl local:28",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0x34]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-and eax,0xff",
            "-mov edx,eax",
            "-mov ebx,eax",
            "-shl edx,0x18",
            "-shl ebx,0x10",
            "-add ebx,edx",
            "-mov edx,eax",
            "-shl edx,0x8",
            "-add edx,ebx",
            "-add edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x54],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x60],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov esi,m4[esp+None*1+0x10]",
            "-dec esi",
            "-mov m4[esp+None*1+0x10],esi",
            "-je local:185",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:173",
            "-mov eax,ecx",
            "-mov m4[ebx+None*1+0x24],esi",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-cmp m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status],0x0",
            "-je local:222",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:222",
            "-xor eax,eax",
            "-mov al,m1[None+None*1+0xd8d27e]",
            "-mov m4[esp+None*1+0x2c],eax",
            "-fild m2[esp+None*1+0x2c]",
            "-xor eax,eax",
            "-sub esp,0x4",
            "-mov al,m1[None+None*1+0xd8d27d]",
            "-fstp m4[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x30],eax",
            "-xor eax,eax",
            "-fild m2[esp+None*1+0x30]",
            "-mov al,m1[None+None*1+fx3dobj1.c::_afterburner_colour]",
            "-sub esp,0x4",
            "-mov m4[esp+None*1+0x34],eax",
            "-fstp m4[esp+None*1+0x0]",
            "-fild m2[esp+None*1+0x34]",
            "-sub esp,0x4",
            "-mov eax,ecx",
            "-fstp m4[esp+None*1+0x0]",
            "-call fxpoly1.c::_3dfx_fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0x60]",
            "-mov dl,m1[esp+None*1+0x54]",
            "-mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x4c],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov esi,m4[esp+None*1+0x10]",
            "-dec esi",
            "-mov m4[esp+None*1+0x10],esi",
            "-je local:264",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:252",
            "-mov eax,ecx",
            "-mov m4[ebx+None*1+0x24],esi",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-cmp m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status],0x0",
            "-je local:288",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:288",
            "-mov ebx,m4[None+None*1+fx3dobj1.c::_flame_transparency_setting]",
            "-push ebx",
            "-push m4[None+None*1+0xd8d278]",
            "-push m4[None+None*1+0xd8d274]",
            "-mov eax,ecx",
            "-push m4[None+None*1+fx3dobj1.c::_flame_colour]",
            "-call fxpoly1.c::_3dfx_fill_flame_translucent_rgb_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x4c]",
            "+mov al,m1[esp+None*1+0xa0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " and eax,0xff",
            " mov ebx,eax",
            "@@ -300,37 +157,40 @@",
            " add edx,ebx",
            " add edx,eax",
            " mov eax,ecx",
            "-call fxpoly1.c::fill_fine_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x58],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x98],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x9c],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            " mov ecx,eax",
            " mov ebx,eax",
            "-mov esi,m4[esp+None*1+0x10]",
            "+mov esi,m4[esp+None*1+0x30]",
            " dec esi",
            "-mov m4[esp+None*1+0x10],esi",
            "-je local:333",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:321",
            "+mov m4[esp+None*1+0x30],esi",
            "+je local:193",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:181",
            " mov eax,ecx",
            " mov m4[ebx+None*1+0x24],esi",
            " call 3dcore.c::get_cyclic_order_",
            "@@ -338,9 +198,157 @@",
            " test eax,eax",
            " jl local:28",
            " cmp m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status],0x0",
            "-je local:380",
            "+je local:230",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:380",
            "+je local:230",
            "+xor eax,eax",
            "+mov al,m1[None+None*1+0xd8d27e]",
            "+mov m4[esp+None*1+0x38],eax",
            "+fild m2[esp+None*1+0x38]",
            "+xor eax,eax",
            "+sub esp,0x4",
            "+mov al,m1[None+None*1+0xd8d27d]",
            "+fstp m4[esp+None*1+0x0]",
            "+mov m4[esp+None*1+0x3c],eax",
            "+xor eax,eax",
            "+fild m2[esp+None*1+0x3c]",
            "+mov al,m1[None+None*1+fx3dobj1.c::_afterburner_colour]",
            "+sub esp,0x4",
            "+mov m4[esp+None*1+0x40],eax",
            "+fstp m4[esp+None*1+0x0]",
            "+fild m2[esp+None*1+0x40]",
            "+sub esp,0x4",
            "+mov eax,ecx",
            "+fstp m4[esp+None*1+0x0]",
            "+call fxpoly1.c::_3dfx_fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+xor edx,edx",
            "+mov al,m1[esp+None*1+0x9c]",
            "+mov dl,m1[esp+None*1+0x98]",
            "+mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x78],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ecx,eax",
            "+mov ebx,eax",
            "+mov edx,m4[esp+None*1+0x30]",
            "+dec edx",
            "+mov m4[esp+None*1+0x30],edx",
            "+je local:272",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:259",
            "+mov eax,ecx",
            "+mov m4[ebx+None*1+0x24],edx",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status],0x0",
            "+je local:296",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:296",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_flame_transparency_setting]",
            "+push edx",
            "+push m4[None+None*1+0xd8d278]",
            "+push m4[None+None*1+0xd8d274]",
            "+mov eax,ecx",
            "+push m4[None+None*1+fx3dobj1.c::_flame_colour]",
            "+call fxpoly1.c::_3dfx_fill_flame_translucent_rgb_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x78]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            "+mov ebx,eax",
            "+mov edx,eax",
            "+shl ebx,0x18",
            "+shl edx,0x10",
            "+add edx,ebx",
            "+mov ebx,eax",
            "+shl ebx,0x8",
            "+add edx,ebx",
            "+add edx,eax",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_fine_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x7c],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ecx,eax",
            "+mov ebx,eax",
            "+mov edx,m4[esp+None*1+0x30]",
            "+dec edx",
            "+mov m4[esp+None*1+0x30],edx",
            "+je local:341",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:328",
            "+mov eax,ecx",
            "+mov m4[ebx+None*1+0x24],edx",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status],0x0",
            "+je local:388",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:388",
            " imul eax,m4[None+None*1+random.c::_random_number_seed],0x41c64e6d",
            " add eax,0x3039",
            " mov m4[None+None*1+random.c::_random_number_seed],eax",
            "@@ -352,7 +360,7 @@",
            " mov eax,m4[None+None*1+fx3dobj1.c::_stringy_stuff_transparency_setting]",
            " sub eax,edx",
            " test eax,eax",
            "-jle local:378",
            "+jle local:386",
            " imul eax,m4[None+None*1+random.c::_random_number_seed],0x41c64e6d",
            " add eax,0x3039",
            " mov m4[None+None*1+random.c::_random_number_seed],eax",
            "@@ -370,22 +378,22 @@",
            " push m4[None+None*1+fx3dobj1.c::_flame_colour]",
            " call fxpoly1.c::_3dfx_fill_translucent_rgb_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " xor edx,edx",
            "-jmp local:365",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x58]",
            "+jmp local:373",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x7c]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " and eax,0xff",
            "-mov ebx,eax",
            " mov edx,eax",
            "-shl ebx,0x18",
            "-shl edx,0x10",
            "+mov ebx,eax",
            "+shl edx,0x18",
            "+shl ebx,0x10",
            " add edx,ebx",
            " mov ebx,eax",
            " shl ebx,0x8",
            "@@ -394,84 +402,32 @@",
            " mov eax,ecx",
            " call fxpoly1.c::fill_coarse_meshed_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            " mov ecx,eax",
            " mov ebx,eax",
            "-mov esi,m4[esp+None*1+0x10]",
            "-dec esi",
            "-mov m4[esp+None*1+0x10],esi",
            "-je local:422",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:410",
            "-mov eax,ecx",
            "-mov m4[ebx+None*1+0x24],esi",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov edx,m4[None+None*1+0xafaedc]",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-cmp edx,0x2",
            "-je local:28",
            "-test eax,eax",
            "-jl local:28",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:444",
            "-mov ebx,0x32",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_glass_colour]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_translucent_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,3dpal.c::_remap_glass_colours",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_translucent_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov edx,m4[esp+None*1+0x10]",
            "+mov edx,m4[esp+None*1+0x30]",
            " dec edx",
            "-mov m4[esp+None*1+0x10],edx",
            "-je local:474",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:461",
            "+mov m4[esp+None*1+0x30],edx",
            "+je local:430",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:417",
            " mov eax,ecx",
            " mov m4[ebx+None*1+0x24],edx",
            " call 3dcore.c::get_cyclic_order_",
            "@@ -481,10 +437,62 @@",
            " je local:28",
            " test eax,eax",
            " jl local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:452",
            "+mov ebx,0x32",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_glass_colour]",
            "+mov eax,ecx",
            "+call fxpoly1.c::_3dfx_fill_translucent_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,3dpal.c::_remap_glass_colours",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_translucent_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ecx,eax",
            "+mov ebx,eax",
            "+mov edx,m4[esp+None*1+0x30]",
            "+dec edx",
            "+mov m4[esp+None*1+0x30],edx",
            "+je local:482",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:469",
            "+mov eax,ecx",
            "+mov m4[ebx+None*1+0x24],edx",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov edi,m4[None+None*1+0xafaedc]",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+cmp edi,0x2",
            "+je local:28",
            "+test eax,eax",
            "+jl local:28",
            " mov eax,ecx",
            " call fxpoly1.c::fill_translucent_heat_hazed_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -493,24 +501,23 @@",
            " inc ebp",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov m1[esp+None*1+0x30],al",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov m1[esp+None*1+0x80],al",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov m1[esp+None*1+0x68],al",
            "+mov m1[esp+None*1+0x88],al",
            " xor eax,eax",
            " movzx esi,m1[ebp+None*1+0xffffffff]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            " mov ecx,eax",
            " mov ebx,eax",
            "-mov edi,m4[esp+None*1+0x10]",
            "-dec edi",
            "-mov m4[esp+None*1+0x10],edi",
            "-je local:530",
            "+mov edx,m4[esp+None*1+0x30]",
            "+dec edx",
            "+mov m4[esp+None*1+0x30],edx",
            "+je local:538",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x0]",
            " shl eax,0x10",
            "@@ -522,12 +529,13 @@",
            " inc ebp",
            " mov m4[ebx+None*1+0x18],eax",
            " xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:508",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:515",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x0]",
            " shl eax,0x10",
            "@@ -539,15 +547,15 @@",
            " inc ebp",
            " mov m4[ebx+None*1+0x18],eax",
            " mov eax,ecx",
            "-mov m4[ebx+None*1+0x24],edi",
            "+mov m4[ebx+None*1+0x24],edx",
            " call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            " test m1[None+None*1+0xafaed4],0x1",
            "-je local:576",
            "+je local:584",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:565",
            "+je local:573",
            " lea edx,m4[esi+None*1+0xfffffffe]",
            " mov ebx,0x6",
            " mov eax,edx",
            "@@ -555,29 +563,28 @@",
            " idiv ebx",
            " lea edx,m4[eax+None*1+0x146]",
            " mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-mov edx,m4[eax+esi*4+0x0]",
            "-mov eax,ecx",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+mov eax,ecx",
            "+mov edx,m4[edx+esi*4+0x0]",
            " call fxpoly1.c::fill_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0x68]",
            "-mov dl,m1[esp+None*1+0x30]",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x88]",
            "+mov dl,m1[esp+None*1+0x80]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            "@@ -587,7 +594,7 @@",
            " mov eax,ecx",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -596,24 +603,23 @@",
            " inc ebp",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov m1[esp+None*1+0x5c],al",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov m1[esp+None*1+0x84],al",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov m1[esp+None*1+0x50],al",
            "+mov m1[esp+None*1+0x8c],al",
            " xor eax,eax",
            " movzx esi,m1[ebp+None*1+0xffffffff]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            " mov ecx,eax",
            " mov ebx,eax",
            "-mov edi,m4[esp+None*1+0x10]",
            "-dec edi",
            "-mov m4[esp+None*1+0x10],edi",
            "-je local:633",
            "+mov edx,m4[esp+None*1+0x30]",
            "+dec edx",
            "+mov m4[esp+None*1+0x30],edx",
            "+je local:640",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x0]",
            " shl eax,0x10",
            "@@ -625,12 +631,13 @@",
            " inc ebp",
            " mov m4[ebx+None*1+0x18],eax",
            " xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:611",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:617",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x0]",
            " shl eax,0x10",
            "@@ -642,15 +649,15 @@",
            " inc ebp",
            " mov m4[ebx+None*1+0x18],eax",
            " mov eax,ecx",
            "-mov m4[ebx+None*1+0x24],edi",
            "+mov m4[ebx+None*1+0x24],edx",
            " call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            " test m1[None+None*1+0xafaed4],0x1",
            "-je local:679",
            "+je local:686",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:668",
            "+je local:675",
            " lea edx,m4[esi+None*1+0xfffffffe]",
            " mov ebx,0x6",
            " mov eax,edx",
            "@@ -658,9 +665,9 @@",
            " idiv ebx",
            " lea edx,m4[eax+None*1+0x146]",
            " mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -671,16 +678,15 @@",
            " mov edx,m4[edx+esi*4+0x0]",
            " call fxpoly1.c::fill_masked_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0x50]",
            "-mov dl,m1[esp+None*1+0x5c]",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x8c]",
            "+mov dl,m1[esp+None*1+0x84]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            "@@ -690,20 +696,52 @@",
            " mov eax,ecx",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov m1[esp+None*1+0x3c],al",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+mov edx,m4[ecx+eax*4+0x0]",
            "+xor eax,eax",
            "+inc ebp",
            "+mov al,m1[esp+None*1+0x3c]",
            "+inc ebp",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+mov ecx,0xffffffff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov m1[esp+None*1+0x3c],al",
            "+mov edi,m4[esp+None*1+0x30]",
            "+add edi,ecx",
            "+mov m4[esp+None*1+0x30],edi",
            "+cmp ecx,edi",
            "+je local:28",
            "+mov edx,m4[esp+None*1+0x14]",
            "+xor eax,eax",
            "+xor ebx,ebx",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov bl,m1[esp+None*1+0x3c]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[eax+None*1+0x10]",
            "+mov eax,m4[eax+None*1+0xc]",
            "+inc ebp",
            "+call fxpoly1.c::set_point_",
            "+jmp local:719",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov m1[esp+None*1+0x74],al",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x1]",
            " shl eax,0x2",
            "-mov cl,m1[ebp+None*1+0x0]",
            " lea edx,m4[ebx+eax*1+0x0]",
            " xor eax,eax",
            "-mov edi,0xffffffff",
            "-mov al,cl",
            "+mov al,m1[esp+None*1+0x74]",
            " inc ebp",
            " mov edx,m4[edx+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "@@ -711,145 +749,124 @@",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov cl,al",
            "-mov edx,m4[esp+None*1+0x10]",
            "-add edx,edi",
            "-mov m4[esp+None*1+0x10],edx",
            "-cmp edi,edx",
            "+mov m1[esp+None*1+0x74],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ebx,eax",
            "+mov esi,m4[esp+None*1+0x30]",
            "+dec esi",
            "+mov m4[esp+None*1+0x30],esi",
            " je local:28",
            " xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-xor ebx,ebx",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov bl,cl",
            "-mov edx,m4[eax+None*1+0x10]",
            "-mov eax,m4[eax+None*1+0xc]",
            "-inc ebp",
            "-call fxpoly1.c::set_point_",
            "-jmp local:714",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov m1[esp+None*1+0x38],al",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-mov edx,m4[esi+eax*4+0x0]",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x38]",
            "-inc ebp",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-inc ebp",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov m1[esp+None*1+0x38],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov ebx,eax",
            "-mov ecx,m4[esp+None*1+0x10]",
            "-dec ecx",
            "-mov m4[esp+None*1+0x10],ecx",
            "-je local:28",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "+mov edx,m4[esp+None*1+0x14]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov m4[esp+None*1+0x24],eax",
            "-mov edx,m4[ebx+None*1+0xc]",
            "-mov edi,m4[ebx+None*1+0x10]",
            "+mov edi,m4[ebx+None*1+0xc]",
            "+mov edx,m4[eax+None*1+0xc]",
            " mov esi,m4[eax+None*1+0x10]",
            "-mov ebx,m4[eax+None*1+0xc]",
            " mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[esp+None*1+0x28],edx",
            "-test eax,eax",
            "-jne local:778",
            "-mov al,m1[esp+None*1+0x38]",
            "-mov ecx,m4[esp+None*1+0x28]",
            "-mov edx,ebx",
            "-mov ebx,edi",
            "-call line.asm::_draw_line",
            "-mov ebx,m4[esp+None*1+0x24]",
            "-jmp local:752",
            "+mov m4[esp+None*1+0x34],edx",
            "+mov ebx,m4[ebx+None*1+0x10]",
            "+test eax,eax",
            "+je local:810",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test edx,edx",
            "+jne local:792",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push edx",
            "+push edx",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbLock@24",
            " mov eax,m4[None+None*1+0x724310]",
            "-mov ecx,m4[esp+None*1+0x28]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "-mov edx,ebx",
            " mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "-mov ebx,edi",
            "-mov al,m1[esp+None*1+0x38]",
            "+mov edx,m4[esp+None*1+0x34]",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+xor eax,eax",
            "+inc ecx",
            "+mov al,m1[esp+None*1+0x74]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+mov ecx,edi",
            " call line.asm::_draw_glide_line",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ebx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            "+je local:806",
            "+mov ebx,m4[esp+None*1+0x24]",
            "+jmp local:759",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "+jmp local:804",
            "+mov al,m1[esp+None*1+0x74]",
            "+mov ecx,edi",
            "+call line.asm::_draw_line",
            " mov ebx,m4[esp+None*1+0x24]",
            "-jmp local:752",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x1c]",
            "+jmp local:759",
            "+inc ebp",
            "+mov edx,m4[esp+None*1+0x14]",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov m1[esp+None*1+0x84],al",
            "+mov m1[esp+None*1+0x50],al",
            " xor eax,eax",
            " movzx edi,m1[ebp+None*1+0xffffffff]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x10]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x30]",
            " dec eax",
            "-mov m4[esp+None*1+0x10],eax",
            "-je local:825",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:813",
            "-lea edx,m4[None+edi*4+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov eax,ecx",
            "-add esi,edx",
            "+mov m4[esp+None*1+0x30],eax",
            "+je local:840",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:828",
            "+shl edi,0x2",
            "+mov m4[ebx+None*1+0x24],eax",
            "+mov eax,esi",
            "+add ecx,edi",
            " call 3dcore.c::get_cyclic_order_",
            "-mov edx,m4[esi+None*1+0x0]",
            "+mov edx,m4[ecx+None*1+0x0]",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-mov m4[ecx+None*1+0x1c],edx",
            "+mov m4[esi+None*1+0x1c],edx",
            " test eax,eax",
            " jl local:28",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+test ebx,ebx",
            "+je local:854",
            " xor ebx,ebx",
            "-mov bl,m1[esp+None*1+0x84]",
            "+mov bl,m1[esp+None*1+0x50]",
            " mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov edi,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "+movzx edi,al",
            "+mov edx,m4[ecx+None*1+0x0]",
            " mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "-and edi,0xff",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " shl edi,0x18",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " and eax,0xff",
            " shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "+mov edx,m4[ecx+None*1+0x0]",
            " add edi,eax",
            " mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -857,7 +874,7 @@",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " and eax,0xff",
            " shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "+mov edx,m4[ecx+None*1+0x0]",
            " add edi,eax",
            " mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -865,11 +882,11 @@",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " xor edx,edx",
            " mov dl,al",
            "-mov eax,ecx",
            "+mov eax,esi",
            " add edx,edi",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -878,51 +895,52 @@",
            " inc ebp",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov m1[esp+None*1+0x64],al",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov m1[esp+None*1+0x54],al",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov m1[esp+None*1+0x7c],al",
            "+mov m1[esp+None*1+0x60],al",
            " xor eax,eax",
            " movzx edi,m1[ebp+None*1+0xffffffff]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x10]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x30]",
            " dec eax",
            "-mov m4[esp+None*1+0x10],eax",
            "-je local:905",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:893",
            "+mov m4[esp+None*1+0x30],eax",
            "+je local:922",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:910",
            " lea edx,m4[None+edi*4+0x0]",
            " mov m4[ebx+None*1+0x24],eax",
            "-mov eax,ecx",
            "-add esi,edx",
            "+mov eax,esi",
            "+add ecx,edx",
            " call 3dcore.c::get_cyclic_order_",
            "-mov edx,m4[esi+None*1+0x0]",
            "+mov edx,m4[ecx+None*1+0x0]",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-mov m4[ecx+None*1+0x1c],edx",
            "+mov m4[esi+None*1+0x1c],edx",
            " test eax,eax",
            " jl local:28",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x7c]",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x60]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov bl,al",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0x64]",
            "-mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[esp+None*1+0x54]",
            "+mov edx,m4[ecx+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            "@@ -932,57 +950,132 @@",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "-mov eax,ecx",
            "+mov eax,esi",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x1c]",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+inc ebp",
            "+mov edx,m4[esp+None*1+0x14]",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov m1[esp+None*1+0x6c],al",
            "+mov m1[esp+None*1+0x90],al",
            " xor eax,eax",
            " movzx edi,m1[ebp+None*1+0xffffffff]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x10]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x30]",
            " dec eax",
            "-mov m4[esp+None*1+0x10],eax",
            "-je local:968",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:956",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov eax,ecx",
            "+mov m4[esp+None*1+0x30],eax",
            "+je local:986",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:974",
            "+mov m4[ebx+None*1+0x24],eax",
            "+mov eax,esi",
            " call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            " lea eax,m4[None+edi*4+0x0]",
            " xor ebx,ebx",
            "-add esi,eax",
            "-mov bl,m1[esp+None*1+0x6c]",
            "-mov edx,m4[esi+None*1+0x0]",
            "+add ecx,eax",
            "+mov bl,m1[esp+None*1+0x90]",
            "+mov edx,m4[ecx+None*1+0x0]",
            " mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+movzx edi,al",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shl edi,0x18",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,esi",
            "+add edx,edi",
            "+call fxpoly1.c::fill_fine_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+inc ebp",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0xffffffff]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x94],al",
            "+xor eax,eax",
            "+movzx edi,m1[ebp+None*1+0xffffffff]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x30]",
            "+dec eax",
            "+mov m4[esp+None*1+0x30],eax",
            "+je local:1061",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:1049",
            "+mov m4[ebx+None*1+0x24],eax",
            "+mov eax,esi",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+lea eax,m4[None+edi*4+0x0]",
            "+xor ebx,ebx",
            "+add ecx,eax",
            "+mov bl,m1[esp+None*1+0x94]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov edi,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "+mov edx,m4[ecx+None*1+0x0]",
            " mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            " and edi,0xff",
            " shr edx,0x17",
            "@@ -991,7 +1084,7 @@",
            " shl edi,0x18",
            " and eax,0xff",
            " shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "+mov edx,m4[ecx+None*1+0x0]",
            " add edi,eax",
            " mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -999,7 +1092,7 @@",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " and eax,0xff",
            " shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "+mov edx,m4[ecx+None*1+0x0]",
            " add edi,eax",
            " mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -1007,357 +1100,420 @@",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " xor edx,edx",
            " mov dl,al",
            "-mov eax,ecx",
            "+mov eax,esi",
            " add edx,edi",
            "-call fxpoly1.c::fill_fine_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-xor ecx,ecx",
            "-inc ebp",
            "-mov m1[esp+None*1+0x70],al",
            "-xor eax,eax",
            "-mov cl,m1[ebp+None*1+0xffffffff]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov edi,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x10]",
            "-dec eax",
            "-mov m4[esp+None*1+0x10],eax",
            "-je local:1045",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:1033",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov eax,edi",
            "+call fxpoly1.c::fill_coarse_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov m1[esp+None*1+0xa4],al",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x5c],al",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x2c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x18],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x2c]",
            "+inc ebp",
            "+mov esi,eax",
            "+mov edx,m4[ecx+edx*4+0x0]",
            "+mov ebx,eax",
            "+mov m4[eax+None*1+0x1c],edx",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov edi,m4[esp+None*1+0x30]",
            "+dec edi",
            "+mov m4[esp+None*1+0x30],edi",
            "+je local:1162",
            "+mov eax,m4[esi+None*1+0x1c]",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+mov ebx,eax",
            "+jmp local:1138",
            "+mov eax,m4[esi+None*1+0x1c]",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+mov eax,esi",
            "+mov m4[ebx+None*1+0x24],edi",
            " call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            "-lea eax,m4[None+ecx*4+0x0]",
            "-xor ecx,ecx",
            "-add esi,eax",
            "-mov cl,m1[esp+None*1+0x70]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ebx,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-and ebx,0xff",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-shl ebx,0x18",
            "+mov eax,m4[esp+None*1+0x2c]",
            "+shl eax,0x2",
            "+mov bl,m1[None+None*1+0xafaed4]",
            "+add ecx,eax",
            "+test bl,0x1",
            "+je local:1217",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:1204",
            "+mov edx,m4[esp+None*1+0x18]",
            "+sub edx,0x2",
            "+mov ecx,0x6",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+lea edx,m4[eax+None*1+0x146]",
            "+mov eax,esi",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov eax,m4[esp+None*1+0x18]",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+mov ebx,m4[edx+eax*4+0x0]",
            "+mov eax,esi",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x5c]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xa4]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xa8],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x58],al",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x20],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x8],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov edi,m4[esp+None*1+0x30]",
            "+dec edi",
            "+mov m4[esp+None*1+0x30],edi",
            "+je local:1291",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:1269",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x20]",
            "+mov al,m1[ebp+None*1+0xffffffff]",
            "+shl edx,0x2",
            "+shl eax,0x10",
            "+add ecx,edx",
            "+mov m4[ebx+None*1+0x18],eax",
            "+mov eax,esi",
            "+mov m4[ebx+None*1+0x24],edi",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+mov m4[esi+None*1+0x1c],edx",
            "+test eax,eax",
            "+jl local:28",
            "+test m1[None+None*1+0xafaed4],0x1",
            "+je local:1345",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:1332",
            "+mov edx,m4[esp+None*1+0x8]",
            "+sub edx,0x2",
            "+mov ecx,0x6",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+lea edx,m4[eax+None*1+0x146]",
            "+mov eax,esi",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov eax,m4[esp+None*1+0x8]",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+mov ebx,m4[edx+eax*4+0x0]",
            "+mov eax,esi",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x58]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xa8]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x40],al",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov edi,m4[esp+None*1+0x30]",
            "+dec edi",
            "+mov m4[esp+None*1+0x30],edi",
            "+je local:1407",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:1390",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+mov eax,esi",
            "+mov m4[ebx+None*1+0x24],edi",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+test m1[None+None*1+0xafaed4],0x2",
            "+jne local:1468",
            "+mov eax,m4[esp+None*1+0x1c]",
            "+shl eax,0x2",
            "+mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+add ecx,eax",
            "+test edx,edx",
            "+xor ebx,ebx",
            "+mov bl,m1[esp+None*1+0x40]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov edi,eax",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+and edi,0xff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+shl edi,0x18",
            " and eax,0xff",
            " shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " and eax,0xff",
            " shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " xor edx,edx",
            " mov dl,al",
            "-mov eax,edi",
            "-add edx,ebx",
            "-call fxpoly1.c::fill_coarse_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x74],al",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x80],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "+mov eax,esi",
            "+add edx,edi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x40]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            "+mov ecx,eax",
            "+mov edx,eax",
            "+shl ecx,0x18",
            "+shl edx,0x10",
            "+add ecx,edx",
            "+mov edx,eax",
            "+shl edx,0x8",
            "+add edx,ecx",
            "+add edx,eax",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_gouraud_shaded_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x6c],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x4c],al",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " mov m4[esp+None*1+0x0],eax",
            " xor eax,eax",
            "-movzx edi,m1[ebp+None*1+0xffffffff]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x10]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x30]",
            " dec eax",
            "-mov m4[esp+None*1+0x10],eax",
            "-je local:1138",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:1116",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-shl edx,0x2",
            "-shl eax,0x10",
            "-add esi,edx",
            "-mov m4[ebx+None*1+0x18],eax",
            "-mov eax,ecx",
            "-mov m4[ebx+None*1+0x24],0x0",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-mov m4[ecx+None*1+0x1c],edx",
            "-test eax,eax",
            "-jl local:28",
            "-test m1[None+None*1+0xafaed4],0x1",
            "-je local:1188",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1177",
            "-lea edx,m4[edi+None*1+0xfffffffe]",
            "-mov ebx,0x6",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-idiv ebx",
            "-lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-mov ebx,m4[eax+edi*4+0x0]",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x80]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x74]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x78],al",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x88],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x4],eax",
            "-xor eax,eax",
            "-movzx edi,m1[ebp+None*1+0xffffffff]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov edx,m4[esp+None*1+0x10]",
            "-dec edx",
            "-mov m4[esp+None*1+0x10],edx",
            "-je local:1258",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:1235",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x24],edx",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov m4[ebx+None*1+0x18],eax",
            "-shl edx,0x2",
            "-mov eax,ecx",
            "-add esi,edx",
            "-inc ebp",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-mov m4[ecx+None*1+0x1c],edx",
            "-test eax,eax",
            "-jl local:28",
            "-test m1[None+None*1+0xafaed4],0x1",
            "-je local:1310",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1298",
            "-lea edx,m4[edi+None*1+0xfffffffe]",
            "-mov ebx,0x6",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-idiv ebx",
            "-lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov ebx,m4[eax+edi*4+0x0]",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x88]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x78]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x44],al",
            "-xor eax,eax",
            "-movzx edi,m1[ebp+None*1+0xffffffff]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x10]",
            "-dec eax",
            "-mov m4[esp+None*1+0x10],eax",
            "-je local:1369",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "+mov m4[esp+None*1+0x30],eax",
            "+je local:1525",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            " inc ebp",
            " mov m4[ebx+None*1+0x1c],eax",
            " xor eax,eax",
            "@@ -1366,175 +1522,67 @@",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov m4[ebx+None*1+0x24],eax",
            "-jmp local:1352",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "+jmp local:1508",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            " inc ebp",
            " mov m4[ebx+None*1+0x1c],eax",
            "-mov eax,ecx",
            "+mov eax,esi",
            " mov m4[ebx+None*1+0x24],0x0",
            " call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            " test m1[None+None*1+0xafaed4],0x2",
            "-je local:1403",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x44]",
            "+jne local:1571",
            "+mov eax,m4[esp+None*1+0x0]",
            "+shl eax,0x2",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+add ecx,eax",
            "+test ebx,ebx",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x4c]",
            "+mov edx,m4[ecx+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-and eax,0xff",
            "-mov ebx,eax",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x6c]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            " mov edx,eax",
            "-shl ebx,0x18",
            "-shl edx,0x10",
            "-add ebx,edx",
            "-mov edx,eax",
            "-shl edx,0x8",
            "-add edx,ebx",
            "-add edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_gouraud_shaded_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-shl edi,0x2",
            "-xor ebx,ebx",
            "-add esi,edi",
            "-mov bl,m1[esp+None*1+0x44]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x18",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov m4[esp+None*1+0x14],eax",
            "-mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-movzx edi,al",
            "-mov eax,m4[esp+None*1+0x14]",
            "-shl edi,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add edi,eax",
            "-mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add edi,eax",
            "-mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            " xor edx,edx",
            "-mov dl,al",
            "-mov eax,ecx",
            "-add edx,edi",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov m1[esp+None*1+0x8c],al",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x98],al",
            "-xor eax,eax",
            "-movzx edi,m1[ebp+None*1+0xffffffff]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x10]",
            "-dec eax",
            "-mov m4[esp+None*1+0x10],eax",
            "-je local:1482",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x1c],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:1465",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x1c],eax",
            "-mov eax,ecx",
            "-mov m4[ebx+None*1+0x24],0x0",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-test m1[None+None*1+0xafaed4],0x2",
            "-je local:1513",
            "-xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0x98]",
            "-mov dl,m1[esp+None*1+0x8c]",
            "+mov al,m1[esp+None*1+0x4c]",
            "+mov dl,m1[esp+None*1+0x6c]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "-mov eax,ecx",
            "+mov eax,esi",
            " call fxpoly1.c::fill_gouraud_shaded_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x98]",
            "-mov edx,m4[esi+edi*4+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x8c]",
            "-mov edx,m4[esi+edi*4+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -1543,30 +1591,31 @@",
            " inc ebp",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov m1[esp+None*1+0x94],al",
            "+mov m1[esp+None*1+0x64],al",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov m1[esp+None*1+0x40],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "+mov m1[esp+None*1+0x44],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov m4[esp+None*1+0x20],eax",
            "+mov m4[esp+None*1+0x28],eax",
            " xor eax,eax",
            " movzx edi,m1[ebp+None*1+0xffffffff]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov edx,m4[esp+None*1+0x10]",
            "-dec edx",
            "-mov m4[esp+None*1+0x10],edx",
            "-je local:1589",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x30]",
            "+dec eax",
            "+mov m4[esp+None*1+0x30],eax",
            "+je local:1637",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            " mov m4[ebx+None*1+0x1c],eax",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x1]",
            "@@ -1580,16 +1629,14 @@",
            " inc ebp",
            " mov m4[ebx+None*1+0x18],eax",
            " xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:1561",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:1610",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            " mov m4[ebx+None*1+0x1c],eax",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x1]",
            "@@ -1602,8 +1649,8 @@",
            " shl eax,0x10",
            " inc ebp",
            " mov m4[ebx+None*1+0x18],eax",
            "-mov eax,ecx",
            "-mov m4[ebx+None*1+0x24],edx",
            "+mov eax,esi",
            "+mov m4[ebx+None*1+0x24],0x0",
            " call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            "@@ -1612,20 +1659,22 @@",
            " cmp eax,0x3",
            " ja local:28",
            " jmp m4[None+eax*4+fx3dobj1.c::set_nozzle_flame_+0x6c]",
            "-mov eax,m4[esp+None*1+0x20]",
            "+mov eax,m4[esp+None*1+0x28]",
            " shl eax,0x2",
            "-add esi,eax",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x40]",
            "-mov edx,m4[esi+None*1+0x0]",
            "+mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+add ecx,eax",
            "+test edi,edi",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x44]",
            "+mov edx,m4[ecx+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov bl,al",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0x94]",
            "-mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[esp+None*1+0x64]",
            "+mov edx,m4[ecx+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            "@@ -1635,27 +1684,27 @@",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "-mov eax,ecx",
            "+mov eax,esi",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1663",
            "+je local:1712",
            " lea edx,m4[edi+None*1+0xfffffffe]",
            "-mov ebx,0x6",
            "+mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ebx",
            "+idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "+mov eax,esi",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -1663,47 +1712,48 @@",
            " ret ",
            " mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov ebx,m4[eax+edi*4+0x0]",
            "-mov eax,m4[esp+None*1+0x20]",
            "-mov edx,m4[esi+eax*4+0x0]",
            "-mov eax,ecx",
            "+mov eax,m4[esp+None*1+0x28]",
            "+mov edx,m4[ecx+eax*4+0x0]",
            "+mov eax,esi",
            " call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x40]",
            "-mov dl,m1[esp+None*1+0x94]",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+xor edx,edx",
            "+mov al,m1[esp+None*1+0x44]",
            "+mov dl,m1[esp+None*1+0x64]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "-mov eax,ecx",
            "+mov eax,esi",
            " call fxpoly1.c::fill_gouraud_shaded_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1711",
            "+je local:1761",
            " lea edx,m4[edi+None*1+0xfffffffe]",
            "-mov ebx,0x6",
            "+mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ebx",
            "+idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "+mov eax,esi",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -1711,10 +1761,10 @@",
            " ret ",
            " mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov edx,m4[eax+edi*4+0x0]",
            "-mov eax,ecx",
            "+mov eax,esi",
            " call fxpoly1.c::fill_gouraud_shaded_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -1723,31 +1773,31 @@",
            " inc ebp",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov m1[esp+None*1+0x90],al",
            "+mov m1[esp+None*1+0x68],al",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            " mov m1[esp+None*1+0x48],al",
            " xor eax,eax",
            "-mov edx,m4[esp+None*1+0x1c]",
            "+mov edx,m4[esp+None*1+0x14]",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov m4[esp+None*1+0x8],eax",
            "+mov m4[esp+None*1+0x4],eax",
            " xor eax,eax",
            " movzx edi,m1[ebp+None*1+0xffffffff]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x10]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x30]",
            " dec eax",
            "-mov m4[esp+None*1+0x10],eax",
            "-je local:1769",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "+mov m4[esp+None*1+0x30],eax",
            "+je local:1819",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            " mov m4[ebx+None*1+0x1c],eax",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x1]",
            "@@ -1766,9 +1816,9 @@",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov m4[ebx+None*1+0x24],eax",
            "-jmp local:1742",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "+jmp local:1792",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            " mov m4[ebx+None*1+0x1c],eax",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x1]",
            "@@ -1781,7 +1831,7 @@",
            " shl eax,0x10",
            " inc ebp",
            " mov m4[ebx+None*1+0x18],eax",
            "-mov eax,ecx",
            "+mov eax,esi",
            " mov m4[ebx+None*1+0x24],0x0",
            " call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "@@ -1791,20 +1841,22 @@",
            " cmp eax,0x3",
            " ja local:28",
            " jmp m4[None+eax*4+fx3dobj1.c::set_nozzle_flame_+0x7c]",
            "-mov eax,m4[esp+None*1+0x8]",
            "+mov eax,m4[esp+None*1+0x4]",
            " shl eax,0x2",
            "-add esi,eax",
            "+mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+add ecx,eax",
            "+test edi,edi",
            " xor eax,eax",
            " mov al,m1[esp+None*1+0x48]",
            "-mov edx,m4[esi+None*1+0x0]",
            "+mov edx,m4[ecx+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov bl,al",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0x90]",
            "-mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[esp+None*1+0x68]",
            "+mov edx,m4[ecx+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            "@@ -1814,27 +1866,27 @@",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "-mov eax,ecx",
            "+mov eax,esi",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1842",
            "+je local:1894",
            " lea edx,m4[edi+None*1+0xfffffffe]",
            "-mov ebx,0x6",
            "+mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ebx",
            "+idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "+mov eax,esi",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -1842,12 +1894,12 @@",
            " ret ",
            " mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov ebx,m4[eax+edi*4+0x0]",
            "-mov eax,m4[esp+None*1+0x8]",
            "-mov edx,m4[esi+eax*4+0x0]",
            "-mov eax,ecx",
            "+mov eax,m4[esp+None*1+0x4]",
            "+mov edx,m4[ecx+eax*4+0x0]",
            "+mov eax,esi",
            " call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -1856,34 +1908,34 @@",
            " xor eax,eax",
            " xor edx,edx",
            " mov al,m1[esp+None*1+0x48]",
            "-mov dl,m1[esp+None*1+0x90]",
            "+mov dl,m1[esp+None*1+0x68]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "-mov eax,ecx",
            "+mov eax,esi",
            " call fxpoly1.c::fill_gouraud_shaded_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1891",
            "+je local:1943",
            " lea edx,m4[edi+None*1+0xfffffffe]",
            "-mov ebx,0x6",
            "+mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ebx",
            "+idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x9c",
            "+mov eax,esi",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xac",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -1891,24 +1943,24 @@",
            " ret ",
            " mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov edx,m4[eax+edi*4+0x0]",
            "-mov eax,ecx",
            "+mov eax,esi",
            " call fxpoly1.c::fill_gouraud_shaded_masked_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-push 0x477",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+push 0x494",
            " push text:'\\\\library\\\\3dvisual\\\\fx3dobj2.c'",
            " push text:'Illegal render mode encountered in 3D object data.'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            " mov eax,ebp",
            "-add esp,0x9c",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "+add esp,0xac",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret "
          ]
        },
        {
          "symbol": "fx3dobj3.c::draw_completely_visible_secondary_face_",
          "source": "E:\\library\\3dvisual\\fx3dobj3.c",
          "first": "0x4a3a78",
          "second": "0x4a3c48",
          "first_instruction_count": 1653,
          "second_instruction_count": 1721,
          "diff": [
            "--- 0x4a3a78",
            "+++ 0x4a3c48",
            "@@ -2,39 +2,39 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-sub esp,0x80",
            "+sub esp,0xa0",
            " mov ebp,eax",
            "-mov m4[esp+None*1+0x4],edx",
            "-mov esi,ebx",
            "+mov m4[esp+None*1+0x14],edx",
            "+mov ecx,ebx",
            " lea ebp,m4[eax+None*1+0x1]",
            " inc ebp",
            " xor edx,edx",
            " xor eax,eax",
            " mov dl,m1[ebp+None*1+0xffffffff]",
            " mov al,m1[ebp+None*1+0xfffffffe]",
            "-mov m4[esp+None*1+0x2c],edx",
            "+mov m4[esp+None*1+0x20],edx",
            " cmp eax,0x15",
            "-ja local:1641",
            "-jmp m4[None+eax*4+fx3dobj2.c::draw_completely_visible_primary_face_+0x1618]",
            "-xor ecx,ecx",
            "+ja local:1709",
            "+jmp m4[None+eax*4+fx3dobj2.c::draw_completely_visible_primary_face_+0x16e8]",
            "+xor ecx,ebx",
            " mov cl,m1[ebp+None*1+0x0]",
            " mov edi,0xffffffff",
            " inc ebp",
            " mov cl,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-mov ebx,m4[esp+None*1+0x2c]",
            "-add ebx,edi",
            "-mov m4[esp+None*1+0x2c],ebx",
            "-cmp edi,ebx",
            "+mov esi,m4[esp+None*1+0x20]",
            "+add esi,edi",
            "+mov m4[esp+None*1+0x20],esi",
            "+cmp edi,esi",
            " jne local:35",
            " mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            " mov al,m1[ebp+None*1+0x0]",
            " xor ebx,ebx",
            " lea eax,m4[eax+eax*4+0x0]",
            "@@ -49,43 +49,39 @@",
            " mov al,m1[ebp+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " inc ebp",
            "-mov m1[esp+None*1+0x40],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x2c]",
            "-dec eax",
            "-mov m4[esp+None*1+0x2c],eax",
            "+mov m1[esp+None*1+0x70],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ebx,eax",
            "+mov edi,m4[esp+None*1+0x20]",
            "+dec edi",
            "+mov m4[esp+None*1+0x20],edi",
            " je local:28",
            " xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov ecx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[esp+None*1+0x0],eax",
            "-mov edx,m4[ebx+None*1+0xc]",
            "-mov edi,m4[eax+None*1+0xc]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[esp+None*1+0x1c],eax",
            "+mov edi,m4[ebx+None*1+0xc]",
            "+mov edx,m4[ebx+None*1+0x10]",
            " mov esi,m4[eax+None*1+0x10]",
            "-mov m4[esp+None*1+0x24],edx",
            "-mov ebx,m4[ebx+None*1+0x10]",
            "+mov m4[esp+None*1+0x2c],edx",
            "+mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov ebx,m4[eax+None*1+0xc]",
            "+test edx,edx",
            "+je local:112",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            " test ecx,ecx",
            "-jne local:85",
            "-mov ecx,m4[esp+None*1+0x24]",
            "-xor eax,eax",
            "-mov edx,edi",
            "-mov al,m1[esp+None*1+0x40]",
            "-call line.asm::_draw_line",
            "-mov ebx,m4[esp+None*1+0x0]",
            "-jmp local:59",
            "+jne local:92",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push ecx",
            "+push ecx",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            "@@ -93,1092 +89,61 @@",
            " mov eax,m4[None+None*1+0x724310]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "-mov ecx,m4[esp+None*1+0x24]",
            " mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "-mov edx,edi",
            "-mov al,m1[esp+None*1+0x40]",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+mov ecx,edi",
            "+xor eax,eax",
            "+inc edx",
            "+mov al,m1[esp+None*1+0x70]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edx",
            "+mov edx,ebx",
            "+mov ebx,m4[esp+None*1+0x2c]",
            " call line.asm::_draw_glide_line",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ecx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+je local:107",
            "+mov ebx,m4[esp+None*1+0x1c]",
            "+jmp local:59",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-mov ebx,m4[esp+None*1+0x0]",
            "+mov ebx,m4[esp+None*1+0x1c]",
            " jmp local:59",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x58],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "+mov edx,ebx",
            "+xor eax,eax",
            "+mov ecx,edi",
            "+mov al,m1[esp+None*1+0x70]",
            "+mov ebx,m4[esp+None*1+0x2c]",
            "+call line.asm::_draw_line",
            "+mov ebx,m4[esp+None*1+0x1c]",
            "+jmp local:59",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x84],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            " mov ecx,eax",
            " mov ebx,eax",
            "-mov esi,m4[esp+None*1+0x2c]",
            "-dec esi",
            "-mov m4[esp+None*1+0x2c],esi",
            "-je local:129",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:117",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x58]",
            "-mov m4[ebx+None*1+0x24],esi",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-and eax,0xff",
            "-mov ebx,eax",
            "-mov edx,eax",
            "-shl ebx,0x18",
            "-shl edx,0x10",
            "-add edx,ebx",
            "-mov ebx,eax",
            "-shl ebx,0x8",
            "-add edx,ebx",
            "-add edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x78],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x50],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov esi,m4[esp+None*1+0x2c]",
            "-dec esi",
            "-mov m4[esp+None*1+0x2c],esi",
            "-jne local:204",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status]",
            "-mov m4[ebx+None*1+0x24],esi",
            "-test eax,eax",
            "-je local:211",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:211",
            "-xor eax,eax",
            "-mov al,m1[None+None*1+0xd8d27e]",
            "-mov m4[esp+None*1+0x30],eax",
            "-fild m2[esp+None*1+0x30]",
            "-xor eax,eax",
            "-sub esp,0x4",
            "-mov al,m1[None+None*1+0xd8d27d]",
            "-fstp m4[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x34],eax",
            "-xor eax,eax",
            "-fild m2[esp+None*1+0x34]",
            "-mov al,m1[None+None*1+fx3dobj1.c::_afterburner_colour]",
            "-sub esp,0x4",
            "-mov m4[esp+None*1+0x38],eax",
            "-fstp m4[esp+None*1+0x0]",
            "-fild m2[esp+None*1+0x38]",
            "-sub esp,0x4",
            "-mov eax,ecx",
            "-fstp m4[esp+None*1+0x0]",
            "-call fxpoly1.c::_3dfx_fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:166",
            "-xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0x50]",
            "-mov dl,m1[esp+None*1+0x78]",
            "-mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x70],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x2c]",
            "-dec eax",
            "-mov m4[esp+None*1+0x2c],eax",
            "-je local:253",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:241",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov al,m1[esp+None*1+0x70]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-and eax,0xff",
            "-mov edx,eax",
            "-mov ebx,eax",
            "-shl edx,0x18",
            "-shl ebx,0x10",
            "-add edx,ebx",
            "-mov ebx,eax",
            "-shl ebx,0x8",
            "-add edx,ebx",
            "-add edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_fine_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x74],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov esi,m4[esp+None*1+0x2c]",
            "-dec esi",
            "-mov m4[esp+None*1+0x2c],esi",
            "-je local:298",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:286",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x74]",
            "-mov m4[ebx+None*1+0x24],esi",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-and eax,0xff",
            "-mov edx,eax",
            "-mov ebx,eax",
            "-shl edx,0x18",
            "-shl ebx,0x10",
            "-add ebx,edx",
            "-mov edx,eax",
            "-shl edx,0x8",
            "-add edx,ebx",
            "-add edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_coarse_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov esi,m4[esp+None*1+0x2c]",
            "-dec esi",
            "-mov m4[esp+None*1+0x2c],esi",
            "-jne local:351",
            "-mov eax,m4[None+None*1+0xafaedc]",
            "-mov m4[ebx+None*1+0x24],esi",
            "-cmp eax,0x2",
            "-je local:28",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:358",
            "-mov ebx,0x32",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_glass_colour]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_translucent_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:329",
            "-mov edx,3dpal.c::_remap_glass_colours",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_translucent_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov edx,m4[esp+None*1+0x2c]",
            "+mov edx,m4[esp+None*1+0x20]",
            " dec edx",
            "-mov m4[esp+None*1+0x2c],edx",
            "-jne local:393",
            "-mov edi,m4[None+None*1+0xafaedc]",
            "+mov m4[esp+None*1+0x20],edx",
            "+je local:143",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:130",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x84]",
            " mov m4[ebx+None*1+0x24],edx",
            "-cmp edi,0x2",
            "-je local:28",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_translucent_heat_hazed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:375",
            "-inc ebp",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov m1[esp+None*1+0x4c],al",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x54],al",
            "-xor eax,eax",
            "-movzx esi,m1[ebp+None*1+0xffffffff]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov edi,m4[esp+None*1+0x2c]",
            "-dec edi",
            "-mov m4[esp+None*1+0x2c],edi",
            "-jne local:453",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-mov al,m1[None+None*1+0xafaed4]",
            "-mov m4[ebx+None*1+0x24],edi",
            "-test al,0x1",
            "-je local:481",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:470",
            "-lea edx,m4[esi+None*1+0xfffffffe]",
            "-mov ebx,0x6",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-idiv ebx",
            "-lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:417",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-mov edx,m4[eax+esi*4+0x0]",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0x54]",
            "-mov dl,m1[esp+None*1+0x4c]",
            "-mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x4]",
            "-xor eax,eax",
            "-movzx esi,m1[ebp+None*1+0xffffffff]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov edi,m4[esp+None*1+0x2c]",
            "-dec edi",
            "-mov m4[esp+None*1+0x2c],edi",
            "-jne local:546",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x24],edi",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-mov bh,m1[None+None*1+0xafaed4]",
            "-inc ebp",
            "-test bh,0x1",
            "-je local:28",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:563",
            "-lea edx,m4[esi+None*1+0xfffffffe]",
            "-mov ebx,0x6",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-idiv ebx",
            "-lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:510",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-mov edx,m4[eax+esi*4+0x0]",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_masked_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x2",
            "-mov cl,m1[ebp+None*1+0x0]",
            "-lea edx,m4[ebx+eax*1+0x0]",
            "-xor eax,eax",
            "-mov edi,0xffffffff",
            "-mov al,cl",
            "-inc ebp",
            "-mov edx,m4[edx+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-inc ebp",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov cl,al",
            "-mov edx,m4[esp+None*1+0x2c]",
            "-add edx,edi",
            "-mov m4[esp+None*1+0x2c],edx",
            "-cmp edi,edx",
            "-je local:28",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-xor ebx,ebx",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov bl,cl",
            "-mov edx,m4[eax+None*1+0x10]",
            "-mov eax,m4[eax+None*1+0xc]",
            "-inc ebp",
            "-call fxpoly1.c::set_point_",
            "-jmp local:590",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov m1[esp+None*1+0x44],al",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-mov edx,m4[esi+eax*4+0x0]",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x44]",
            "-inc ebp",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-inc ebp",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov m1[esp+None*1+0x44],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov ebx,eax",
            "-mov ecx,m4[esp+None*1+0x2c]",
            "-dec ecx",
            "-mov m4[esp+None*1+0x2c],ecx",
            "-je local:28",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[esp+None*1+0x28],eax",
            "-mov edx,m4[ebx+None*1+0xc]",
            "-mov edi,m4[ebx+None*1+0x10]",
            "-mov esi,m4[eax+None*1+0x10]",
            "-mov ebx,m4[eax+None*1+0xc]",
            "-mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[esp+None*1+0x20],edx",
            "-test eax,eax",
            "-jne local:654",
            "-mov al,m1[esp+None*1+0x44]",
            "-mov ecx,m4[esp+None*1+0x20]",
            "-mov edx,ebx",
            "-mov ebx,edi",
            "-call line.asm::_draw_line",
            "-mov ebx,m4[esp+None*1+0x28]",
            "-jmp local:628",
            "-push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "-push 0x4",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbLock@24",
            "-mov eax,m4[None+None*1+0x724310]",
            "-mov ecx,m4[esp+None*1+0x20]",
            "-mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "-mov eax,m4[None+None*1+0x724314]",
            "-mov edx,ebx",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "-mov ebx,edi",
            "-mov al,m1[esp+None*1+0x44]",
            "-call line.asm::_draw_glide_line",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbUnlock@8",
            "-mov ebx,m4[esp+None*1+0x28]",
            "-jmp local:628",
            "-inc ebp",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0xc],eax",
            "-xor eax,eax",
            "-mov cl,m1[ebp+None*1+0xfffffffe]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov edi,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x2c]",
            "-dec eax",
            "-mov m4[esp+None*1+0x2c],eax",
            "-je local:702",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:690",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov eax,m4[esp+None*1+0xc]",
            "-shl eax,0x2",
            "-add esi,eax",
            "-mov eax,m4[esi+None*1+0x0]",
            "-mov edx,eax",
            "-mov m4[edi+None*1+0x1c],eax",
            "-and ecx,0xff",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ebx,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-and ebx,0xff",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-shl ebx,0x18",
            "-and eax,0xff",
            "-shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-xor edx,edx",
            "-mov dl,al",
            "-mov eax,edi",
            "-add edx,ebx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov m1[esp+None*1+0x5c],al",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x6c],al",
            "-xor eax,eax",
            "-movzx edi,m1[ebp+None*1+0xffffffff]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x2c]",
            "-dec eax",
            "-mov m4[esp+None*1+0x2c],eax",
            "-je local:778",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:766",
            "-mov m4[ebx+None*1+0x24],eax",
            "-lea eax,m4[None+edi*4+0x0]",
            "-add esi,eax",
            "-mov eax,m4[esi+None*1+0x0]",
            "-mov edx,eax",
            "-mov m4[ecx+None*1+0x1c],eax",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x6c]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x5c]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-xor ecx,ecx",
            "-inc ebp",
            "-mov m1[esp+None*1+0x60],al",
            "-xor eax,eax",
            "-mov cl,m1[ebp+None*1+0xffffffff]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov edi,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x2c]",
            "-dec eax",
            "-mov m4[esp+None*1+0x2c],eax",
            "-je local:838",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:826",
            "-mov m4[ebx+None*1+0x24],eax",
            "-lea eax,m4[None+ecx*4+0x0]",
            "-xor ecx,ecx",
            "-add esi,eax",
            "-mov cl,m1[esp+None*1+0x60]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-xor ebx,ebx",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shl ebx,0x18",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-xor edx,edx",
            "-mov dl,al",
            "-mov eax,edi",
            "-add edx,ebx",
            "-call fxpoly1.c::fill_fine_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x10],eax",
            "-xor eax,eax",
            "-mov cl,m1[ebp+None*1+0xfffffffe]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov edi,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x2c]",
            "-dec eax",
            "-mov m4[esp+None*1+0x2c],eax",
            "-je local:910",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:898",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov eax,m4[esp+None*1+0x10]",
            "-shl eax,0x2",
            "-add esi,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "-and ecx,0xff",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ebx,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-and ebx,0xff",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-shl ebx,0x18",
            "-and eax,0xff",
            "-shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-xor edx,edx",
            "-mov dl,al",
            "-mov eax,edi",
            "-add edx,ebx",
            "-call fxpoly1.c::fill_coarse_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x64],al",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x68],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x18],eax",
            "-xor eax,eax",
            "-movzx edi,m1[ebp+None*1+0xffffffff]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x2c]",
            "-dec eax",
            "-mov m4[esp+None*1+0x2c],eax",
            "-jne local:1016",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x18],eax",
            "-mov eax,m4[esp+None*1+0x18]",
            "-shl eax,0x2",
            "-inc ebp",
            "-add esi,eax",
            "-mov m4[ebx+None*1+0x24],0x0",
            "-inc ebp",
            "-mov eax,m4[esi+None*1+0x0]",
            "-mov bl,m1[None+None*1+0xafaed4]",
            "-mov m4[ecx+None*1+0x1c],eax",
            "-test bl,0x1",
            "-je local:1045",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1033",
            "-lea edx,m4[edi+None*1+0xfffffffe]",
            "-mov ebx,0x6",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-idiv ebx",
            "-lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:976",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov ebx,m4[eax+edi*4+0x0]",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,eax",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x68]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x64]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x14],eax",
            "-xor eax,eax",
            "-movzx edi,m1[ebp+None*1+0xffffffff]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x2c]",
            "-dec eax",
            "-mov m4[esp+None*1+0x2c],eax",
            "-jne local:1123",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov dh,m1[None+None*1+0xafaed4]",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x24],0x0",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-test dh,0x1",
            "-je local:28",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1140",
            "-lea edx,m4[edi+None*1+0xfffffffe]",
            "-mov ebx,0x6",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-idiv ebx",
            "-lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:1088",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-mov ebx,m4[eax+edi*4+0x0]",
            "-mov eax,m4[esp+None*1+0x14]",
            "-mov edx,m4[esi+eax*4+0x0]",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x38],al",
            "-xor eax,eax",
            "-movzx edi,m1[ebp+None*1+0xffffffff]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x2c]",
            "-dec eax",
            "-mov m4[esp+None*1+0x2c],eax",
            "-jne local:1201",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov dl,m1[None+None*1+0xafaed4]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "-mov m4[ebx+None*1+0x24],0x0",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x1c],eax",
            "-test dl,0x2",
            "-je local:1213",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x38]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " and eax,0xff",
            " mov ebx,eax",
            "@@ -1191,148 +156,79 @@",
            " add edx,ebx",
            " add edx,eax",
            " mov eax,ecx",
            "-call fxpoly1.c::fill_gouraud_shaded_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x1c],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:1166",
            "-shl edi,0x2",
            "-xor ebx,ebx",
            "-add esi,edi",
            "-mov bl,m1[esp+None*1+0x38]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-movzx edi,al",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "-shl edi,0x18",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add edi,eax",
            "-mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add edi,eax",
            "-mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x90],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x94],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ecx,eax",
            "+mov ebx,eax",
            "+mov edx,m4[esp+None*1+0x20]",
            "+dec edx",
            "+mov m4[esp+None*1+0x20],edx",
            "+jne local:217",
            "+mov edi,m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status]",
            "+mov m4[ebx+None*1+0x24],edx",
            "+test edi,edi",
            "+je local:225",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:225",
            "+xor eax,eax",
            "+mov al,m1[None+None*1+0xd8d27e]",
            "+mov m4[esp+None*1+0x44],eax",
            "+fild m2[esp+None*1+0x44]",
            "+xor eax,eax",
            "+sub esp,0x4",
            "+mov al,m1[None+None*1+0xd8d27d]",
            "+fstp m4[esp+None*1+0x0]",
            "+mov m4[esp+None*1+0x48],eax",
            "+xor eax,eax",
            "+fild m2[esp+None*1+0x48]",
            "+mov al,m1[None+None*1+fx3dobj1.c::_afterburner_colour]",
            "+sub esp,0x4",
            "+mov m4[esp+None*1+0x4c],eax",
            "+fstp m4[esp+None*1+0x0]",
            "+fild m2[esp+None*1+0x4c]",
            "+sub esp,0x4",
            "+mov eax,ecx",
            "+fstp m4[esp+None*1+0x0]",
            "+call fxpoly1.c::_3dfx_fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:179",
            "+xor eax,eax",
            " xor edx,edx",
            "-mov dl,al",
            "-mov eax,ecx",
            "-add edx,edi",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov m1[esp+None*1+0x34],al",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x3c],al",
            "-xor eax,eax",
            "-movzx edi,m1[ebp+None*1+0xffffffff]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov ecx,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x2c]",
            "-dec eax",
            "-mov m4[esp+None*1+0x2c],eax",
            "-jne local:1305",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x1c],eax",
            "-mov ah,m1[None+None*1+0xafaed4]",
            "-mov m4[ebx+None*1+0x24],0x0",
            "-test ah,0x2",
            "-je local:1317",
            "-xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0x3c]",
            "-mov dl,m1[esp+None*1+0x34]",
            "+mov al,m1[esp+None*1+0x94]",
            "+mov dl,m1[esp+None*1+0x90]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_gouraud_shaded_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x1c],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:1273",
            "-lea eax,m4[None+edi*4+0x0]",
            "-add esi,eax",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x3c]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x34]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            " push ax",
            " shl eax,0x10",
            " pop ax",
            "@@ -1340,44 +236,206 @@",
            " mov eax,ecx",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x78],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov ecx,eax",
            "+mov ebx,eax",
            "+mov edi,m4[esp+None*1+0x20]",
            "+dec edi",
            "+mov m4[esp+None*1+0x20],edi",
            "+je local:267",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:255",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x78]",
            "+mov m4[ebx+None*1+0x24],edi",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            "+mov ebx,eax",
            "+mov edx,eax",
            "+shl ebx,0x18",
            "+shl edx,0x10",
            "+add edx,ebx",
            "+mov ebx,eax",
            "+shl ebx,0x8",
            "+add edx,ebx",
            "+add edx,eax",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_fine_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x7c],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ecx,eax",
            "+mov ebx,eax",
            "+mov edx,m4[esp+None*1+0x20]",
            "+dec edx",
            "+mov m4[esp+None*1+0x20],edx",
            "+je local:313",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:300",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x7c]",
            "+mov m4[ebx+None*1+0x24],edx",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            "+mov ebx,eax",
            "+mov edx,eax",
            "+shl ebx,0x18",
            "+shl edx,0x10",
            "+add edx,ebx",
            "+mov ebx,eax",
            "+shl ebx,0x8",
            "+add edx,ebx",
            "+add edx,eax",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_coarse_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ecx,eax",
            "+mov ebx,eax",
            "+mov edx,m4[esp+None*1+0x20]",
            "+dec edx",
            "+mov m4[esp+None*1+0x20],edx",
            "+jne local:365",
            "+mov edi,m4[None+None*1+0xafaedc]",
            "+mov m4[ebx+None*1+0x24],edx",
            "+cmp edi,0x2",
            "+je local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:373",
            "+mov ebx,0x32",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_glass_colour]",
            "+mov eax,ecx",
            "+call fxpoly1.c::_3dfx_fill_translucent_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:343",
            "+mov edx,3dpal.c::_remap_glass_colours",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_translucent_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov edx,m4[esp+None*1+0x20]",
            "+dec edx",
            "+mov m4[esp+None*1+0x20],edx",
            "+jne local:407",
            "+mov m4[ebx+None*1+0x24],edx",
            "+cmp m4[None+None*1+0xafaedc],0x2",
            "+je local:28",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_translucent_heat_hazed_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:390",
            " inc ebp",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov m1[esp+None*1+0x48],al",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov m1[esp+None*1+0x80],al",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov m1[esp+None*1+0x7c],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x1c],eax",
            "-xor eax,eax",
            "-movzx edi,m1[ebp+None*1+0xffffffff]",
            "+mov m1[esp+None*1+0x98],al",
            "+xor eax,eax",
            "+movzx esi,m1[ebp+None*1+0xffffffff]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov ecx,eax",
            " mov ebx,eax",
            "-mov edx,m4[esp+None*1+0x2c]",
            "+mov edx,m4[esp+None*1+0x20]",
            " dec edx",
            "-mov m4[esp+None*1+0x2c],edx",
            "-jne local:1424",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "-mov m4[ebx+None*1+0x1c],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-inc ebp",
            "+mov m4[esp+None*1+0x20],edx",
            "+jne local:466",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            " mov m4[ebx+None*1+0x14],eax",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x1]",
            "@@ -1385,99 +443,59 @@",
            " shl eax,0x10",
            " inc ebp",
            " mov m4[ebx+None*1+0x18],eax",
            "-mov eax,m4[None+None*1+0xafaed4]",
            "+mov al,m1[None+None*1+0xafaed4]",
            " mov m4[ebx+None*1+0x24],edx",
            "-cmp eax,0x3",
            "-ja local:28",
            "-jmp m4[None+eax*4+fx3dobj2.c::draw_completely_visible_primary_face_+0x1670]",
            "-mov eax,m4[esp+None*1+0x1c]",
            "-shl eax,0x2",
            "-add esi,eax",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x7c]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x48]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "-mov m4[ebx+None*1+0x1c],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-jmp local:1367",
            "+test al,0x1",
            "+je local:495",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1464",
            "-lea edx,m4[edi+None*1+0xfffffffe]",
            "+je local:484",
            "+lea edx,m4[esi+None*1+0xfffffffe]",
            " mov ebx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv ebx",
            " lea edx,m4[eax+None*1+0x146]",
            " mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:430",
            " mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov ebx,m4[eax+edi*4+0x0]",
            "-mov edx,m4[esi+edx*4+0x0]",
            "+mov edx,m4[eax+esi*4+0x0]",
            " mov eax,ecx",
            "-call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x7c]",
            "-mov dl,m1[esp+None*1+0x48]",
            "+call fxpoly1.c::fill_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x98]",
            "+mov dl,m1[esp+None*1+0x80]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            "@@ -1485,63 +503,931 @@",
            " pop ax",
            " mov edx,eax",
            " mov eax,ecx",
            "-call fxpoly1.c::fill_gouraud_shaded_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+inc ebp",
            "+mov edx,m4[esp+None*1+0x14]",
            "+xor eax,eax",
            "+movzx esi,m1[ebp+None*1+0xffffffff]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ecx,eax",
            "+mov ebx,eax",
            "+mov edx,m4[esp+None*1+0x20]",
            "+dec edx",
            "+mov m4[esp+None*1+0x20],edx",
            "+jne local:558",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x24],edx",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+mov bh,m1[None+None*1+0xafaed4]",
            "+inc ebp",
            "+test bh,0x1",
            "+je local:28",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1512",
            "-lea edx,m4[edi+None*1+0xfffffffe]",
            "+je local:576",
            "+lea edx,m4[esi+None*1+0xfffffffe]",
            " mov ebx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv ebx",
            " lea edx,m4[eax+None*1+0x146]",
            " mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:522",
            " mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-mov edx,m4[eax+edi*4+0x0]",
            "+mov edx,m4[eax+esi*4+0x0]",
            " mov eax,ecx",
            "-call fxpoly1.c::fill_gouraud_shaded_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-inc ebp",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "+call fxpoly1.c::fill_masked_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov m1[esp+None*1+0x50],al",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+mov edx,m4[ecx+eax*4+0x0]",
            "+xor eax,eax",
            "+inc ebp",
            "+mov al,m1[esp+None*1+0x50]",
            "+inc ebp",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+mov ecx,0xffffffff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov m1[esp+None*1+0x50],al",
            "+mov edi,m4[esp+None*1+0x20]",
            "+add edi,ecx",
            "+mov m4[esp+None*1+0x20],edi",
            "+cmp ecx,edi",
            "+je local:28",
            "+mov edx,m4[esp+None*1+0x14]",
            "+xor eax,eax",
            "+xor ebx,ebx",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov bl,m1[esp+None*1+0x50]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[eax+None*1+0x10]",
            "+mov eax,m4[eax+None*1+0xc]",
            "+inc ebp",
            "+call fxpoly1.c::set_point_",
            "+jmp local:602",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov m1[esp+None*1+0x58],al",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+mov edx,m4[ecx+eax*4+0x0]",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x58]",
            "+inc ebp",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+inc ebp",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov m1[esp+None*1+0x58],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ebx,eax",
            "+mov esi,m4[esp+None*1+0x20]",
            "+dec esi",
            "+mov m4[esp+None*1+0x20],esi",
            "+je local:28",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[esp+None*1+0x40],eax",
            "+mov edi,m4[ebx+None*1+0xc]",
            "+mov edx,m4[eax+None*1+0xc]",
            "+mov esi,m4[eax+None*1+0x10]",
            "+mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov m4[esp+None*1+0x38],edx",
            "+mov ebx,m4[ebx+None*1+0x10]",
            "+test eax,eax",
            "+je local:691",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test edx,edx",
            "+jne local:673",
            "+push fxpoly1.c::_lfbinfo",
            "+push edx",
            "+push edx",
            "+push 0x4",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbLock@24",
            "+mov eax,m4[None+None*1+0x724310]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "+mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+mov edx,m4[esp+None*1+0x38]",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+xor eax,eax",
            "+inc ecx",
            "+mov al,m1[esp+None*1+0x58]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+mov ecx,edi",
            "+call line.asm::_draw_glide_line",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ebx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            "+je local:687",
            "+mov ebx,m4[esp+None*1+0x40]",
            "+jmp local:640",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbUnlock@8",
            "+jmp local:685",
            "+mov al,m1[esp+None*1+0x58]",
            "+mov ecx,edi",
            "+call line.asm::_draw_line",
            "+mov ebx,m4[esp+None*1+0x40]",
            "+jmp local:640",
            "+inc ebp",
            "+mov edx,m4[esp+None*1+0x14]",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " inc ebp",
            "-mov m4[esp+None*1+0x8],eax",
            "+mov m1[esp+None*1+0x9c],al",
            " xor eax,eax",
            " movzx edi,m1[ebp+None*1+0xffffffff]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x4]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x20]",
            "+dec eax",
            "+mov m4[esp+None*1+0x20],eax",
            "+jne local:764",
            "+mov m4[ebx+None*1+0x24],eax",
            "+lea eax,m4[None+edi*4+0x0]",
            "+add ecx,eax",
            "+mov eax,m4[ecx+None*1+0x0]",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov m4[esi+None*1+0x1c],eax",
            "+test ebx,ebx",
            "+je local:723",
            "+xor ebx,ebx",
            "+mov bl,m1[esp+None*1+0x9c]",
            "+mov edx,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+movzx edi,al",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shl edi,0x18",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,esi",
            "+add edx,edi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:709",
            "+inc ebp",
            "+mov al,m1[ebp+None*1+0xffffffff]",
            "+inc ebp",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov m1[esp+None*1+0x60],al",
            "+mov al,m1[ebp+None*1+0xffffffff]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x64],al",
            "+xor eax,eax",
            "+movzx edi,m1[ebp+None*1+0xffffffff]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov edx,m4[esp+None*1+0x20]",
            "+dec edx",
            "+mov m4[esp+None*1+0x20],edx",
            "+jne local:827",
            "+shl edi,0x2",
            "+add ecx,edi",
            "+mov m4[ebx+None*1+0x24],edx",
            "+mov eax,m4[ecx+None*1+0x0]",
            "+mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov m4[esi+None*1+0x1c],eax",
            "+test edx,edx",
            "+mov edx,eax",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x64]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x60]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:786",
            "+inc ebp",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0xffffffff]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x88],al",
            "+xor eax,eax",
            "+movzx edi,m1[ebp+None*1+0xffffffff]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x20]",
            "+dec eax",
            "+mov m4[esp+None*1+0x20],eax",
            "+je local:860",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:848",
            "+mov m4[ebx+None*1+0x24],eax",
            "+lea ebx,m4[None+edi*4+0x0]",
            "+add ebx,ecx",
            "+xor ecx,ecx",
            "+mov cl,m1[esp+None*1+0x88]",
            "+mov edx,m4[ebx+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov edi,eax",
            "+mov edx,m4[ebx+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+and edi,0xff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+shl edi,0x18",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[ebx+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+mov m4[esp+None*1+0x18],edi",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+movzx edi,al",
            "+mov eax,m4[esp+None*1+0x18]",
            "+shl edi,0x8",
            "+mov edx,m4[ebx+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,esi",
            "+add edx,edi",
            "+call fxpoly1.c::fill_fine_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+inc ebp",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0xffffffff]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x8c],al",
            "+xor eax,eax",
            "+movzx edi,m1[ebp+None*1+0xffffffff]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x20]",
            "+dec eax",
            "+mov m4[esp+None*1+0x20],eax",
            "+je local:933",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:921",
            "+mov m4[ebx+None*1+0x24],eax",
            "+lea ebx,m4[None+edi*4+0x0]",
            "+add ebx,ecx",
            "+xor ecx,ecx",
            "+mov cl,m1[esp+None*1+0x8c]",
            "+mov edx,m4[ebx+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov edi,eax",
            "+mov edx,m4[ebx+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+and edi,0xff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+shl edi,0x18",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[ebx+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[ebx+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,esi",
            "+add edx,edi",
            "+call fxpoly1.c::fill_coarse_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov m1[esp+None*1+0x68],al",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x5c],al",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x3c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x24],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x3c]",
            "+inc ebp",
            "+mov esi,eax",
            "+mov edx,m4[ecx+edx*4+0x0]",
            "+mov ebx,eax",
            "+mov m4[eax+None*1+0x1c],edx",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov edi,m4[esp+None*1+0x20]",
            "+dec edi",
            "+mov m4[esp+None*1+0x20],edi",
            "+jne local:1046",
            "+mov eax,m4[esi+None*1+0x1c]",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+mov eax,m4[esp+None*1+0x3c]",
            "+mov m4[ebx+None*1+0x24],edi",
            "+shl eax,0x2",
            "+mov bl,m1[None+None*1+0xafaed4]",
            "+add ecx,eax",
            "+test bl,0x1",
            "+je local:1079",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:1066",
            "+mov edx,m4[esp+None*1+0x24]",
            "+sub edx,0x2",
            "+mov ecx,0x6",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+lea edx,m4[eax+None*1+0x146]",
            "+mov eax,esi",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov eax,m4[esi+None*1+0x1c]",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+mov ebx,eax",
            "+jmp local:1005",
            "+mov eax,m4[esp+None*1+0x24]",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+mov ebx,m4[edx+eax*4+0x0]",
            "+mov eax,esi",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x5c]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x68]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x4],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0xc],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov edi,m4[esp+None*1+0x20]",
            "+dec edi",
            "+mov m4[esp+None*1+0x20],edi",
            "+jne local:1162",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov dh,m1[None+None*1+0xafaed4]",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x24],edi",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+test dh,0x1",
            "+je local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:1179",
            "+mov edx,m4[esp+None*1+0xc]",
            "+sub edx,0x2",
            "+mov ecx,0x6",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+lea edx,m4[eax+None*1+0x146]",
            "+mov eax,esi",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:1125",
            "+mov eax,m4[esp+None*1+0xc]",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+mov ebx,m4[edx+eax*4+0x0]",
            "+mov eax,m4[esp+None*1+0x4]",
            "+mov edx,m4[ecx+eax*4+0x0]",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x54],al",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x0],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov edi,m4[esp+None*1+0x20]",
            "+dec edi",
            "+mov m4[esp+None*1+0x20],edi",
            "+jne local:1270",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            "+mov dl,m1[None+None*1+0xafaed4]",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x24],edi",
            "+test dl,0x2",
            "+jne local:1282",
            "+mov eax,m4[esp+None*1+0x0]",
            "+shl eax,0x2",
            "+mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+add ecx,eax",
            "+test edx,edx",
            "+xor ebx,ebx",
            "+mov bl,m1[esp+None*1+0x54]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov edi,eax",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+and edi,0xff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+shl edi,0x18",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,esi",
            "+add edx,edi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:1208",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x54]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            " mov ecx,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x2c]",
            "+mov edx,eax",
            "+shl ecx,0x18",
            "+shl edx,0x10",
            "+add ecx,edx",
            "+mov edx,eax",
            "+shl edx,0x8",
            "+add edx,ecx",
            "+add edx,eax",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_gouraud_shaded_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x4c],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x48],al",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x30],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x20]",
            " dec eax",
            "-mov m4[esp+None*1+0x2c],eax",
            "-jne local:1561",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "+mov m4[esp+None*1+0x20],eax",
            "+jne local:1369",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+mov ah,m1[None+None*1+0xafaed4]",
            "+mov m4[ebx+None*1+0x24],0x0",
            "+test ah,0x2",
            "+jne local:1381",
            "+mov eax,m4[esp+None*1+0x30]",
            "+shl eax,0x2",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+add ecx,eax",
            "+test ebx,ebx",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x48]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x4c]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:1322",
            "+xor eax,eax",
            "+xor edx,edx",
            "+mov al,m1[esp+None*1+0x48]",
            "+mov dl,m1[esp+None*1+0x4c]",
            "+mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_gouraud_shaded_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x6c],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x74],al",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x10],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x28],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov edi,m4[esp+None*1+0x20]",
            "+dec edi",
            "+mov m4[esp+None*1+0x20],edi",
            "+jne local:1481",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            " mov m4[ebx+None*1+0x1c],eax",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x1]",
            "@@ -1555,13 +1441,47 @@",
            " inc ebp",
            " mov m4[ebx+None*1+0x18],eax",
            " mov eax,m4[None+None*1+0xafaed4]",
            "-mov m4[ebx+None*1+0x24],0x0",
            "+mov m4[ebx+None*1+0x24],edi",
            " cmp eax,0x3",
            " ja local:28",
            "-jmp m4[None+eax*4+fx3dobj2.c::draw_completely_visible_primary_face_+0x1680]",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "+jmp m4[None+eax*4+fx3dobj2.c::draw_completely_visible_primary_face_+0x1740]",
            "+mov eax,m4[esp+None*1+0x10]",
            "+shl eax,0x2",
            "+mov edi,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+add ecx,eax",
            "+test edi,edi",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x74]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x6c]",
            "+mov edx,m4[ecx+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            " mov m4[ebx+None*1+0x1c],eax",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x1]",
            "@@ -1580,74 +1500,222 @@",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov m4[ebx+None*1+0x24],eax",
            "-jmp local:1537",
            "+jmp local:1422",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1600",
            "-lea edx,m4[edi+None*1+0xfffffffe]",
            "-mov ebx,0x6",
            "+je local:1521",
            "+mov edx,m4[esp+None*1+0x28]",
            "+sub edx,0x2",
            "+mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ebx",
            "+idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-mov ebx,m4[eax+edi*4+0x0]",
            "-mov eax,m4[esp+None*1+0x8]",
            "-mov edx,m4[esi+eax*4+0x0]",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "+mov eax,esi",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov eax,m4[esp+None*1+0x28]",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+mov ebx,m4[edx+eax*4+0x0]",
            "+mov eax,m4[esp+None*1+0x10]",
            "+mov edx,m4[ecx+eax*4+0x0]",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+xor edx,edx",
            "+mov al,m1[esp+None*1+0x74]",
            "+mov dl,m1[esp+None*1+0x6c]",
            "+mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_gouraud_shaded_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1630",
            "-lea edx,m4[edi+None*1+0xfffffffe]",
            "-mov ebx,0x6",
            "+je local:1572",
            "+mov edx,m4[esp+None*1+0x28]",
            "+sub edx,0x2",
            "+mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ebx",
            "+idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "+mov eax,esi",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov eax,m4[esp+None*1+0x28]",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+mov edx,m4[edx+eax*4+0x0]",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_gouraud_shaded_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x8],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x34],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov edi,m4[esp+None*1+0x20]",
            "+dec edi",
            "+mov m4[esp+None*1+0x20],edi",
            "+jne local:1625",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+mov eax,m4[None+None*1+0xafaed4]",
            "+mov m4[ebx+None*1+0x24],edi",
            "+cmp eax,0x3",
            "+ja local:28",
            "+jmp m4[None+eax*4+fx3dobj2.c::draw_completely_visible_primary_face_+0x1750]",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[ecx+eax*4+0x0]",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+jmp local:1600",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:1665",
            "+mov edx,m4[esp+None*1+0x34]",
            "+sub edx,0x2",
            "+mov ecx,0x6",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+lea edx,m4[eax+None*1+0x146]",
            "+mov eax,esi",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov eax,m4[esp+None*1+0x34]",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+mov ebx,m4[edx+eax*4+0x0]",
            "+mov eax,m4[esp+None*1+0x8]",
            "+mov edx,m4[ecx+eax*4+0x0]",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:1697",
            "+mov edx,m4[esp+None*1+0x34]",
            "+sub edx,0x2",
            "+mov ecx,0x6",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+lea edx,m4[eax+None*1+0x146]",
            "+mov eax,esi",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x34]",
            " mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-mov edx,m4[eax+edi*4+0x0]",
            "-mov eax,ecx",
            "+mov edx,m4[eax+edx*4+0x0]",
            "+mov eax,esi",
            " call fxpoly1.c::fill_gouraud_shaded_masked_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-push 0x3c7",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+push 0x3de",
            " push text:'\\\\library\\\\3dvisual\\\\fx3dobj3.c'",
            " push text:'Illegal render mode encountered in 3D object data.'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            " mov eax,ebp",
            "-add esp,0x80",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "+add esp,0xa0",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret "
          ]
        },
        {
          "symbol": "fx3dobj4.c::draw_partially_visible_primary_face_",
          "source": "E:\\library\\3dvisual\\fx3dobj4.c",
          "first": "0x4a4d88",
          "second": "0x4a5098",
          "first_instruction_count": 3812,
          "second_instruction_count": 3990,
          "diff": [
            "--- 0x4a4d88",
            "+++ 0x4a5098",
            "@@ -14,17 +14,17 @@",
            " mov dl,m1[ebp+None*1+0xfffffffe]",
            " mov m4[esp+None*1+0x4],eax",
            " cmp edx,0x15",
            "-ja local:3800",
            "-jmp m4[None+edx*4+fx3dobj3.c::draw_completely_visible_secondary_face_+0x1278]",
            "+ja local:3978",
            "+jmp m4[None+edx*4+fx3dobj3.c::draw_completely_visible_secondary_face_+0x13b8]",
            " xor ecx,ecx",
            " mov cl,m1[ebp+None*1+0x0]",
            " mov edi,0xffffffff",
            " inc ebp",
            " mov cl,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-mov ebx,m4[esp+None*1+0x4]",
            "-add ebx,edi",
            "-mov m4[esp+None*1+0x4],ebx",
            "-cmp edi,ebx",
            "+mov eax,m4[esp+None*1+0x4]",
            "+add eax,edi",
            "+mov m4[esp+None*1+0x4],eax",
            "+cmp edi,eax",
            " jne local:35",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -38,13 +38,12 @@",
            " mov al,m1[ebp+None*1+0x0]",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[eax+None*1+0x20]",
            "-inc ebp",
            "-test edx,edx",
            "+mov ebx,m4[eax+None*1+0x20]",
            "+inc ebp",
            "+test ebx,ebx",
            " jne local:23",
            "-xor ebx,ebx",
            "+mov bl,cl",
            " mov edx,m4[eax+None*1+0x10]",
            "-mov bl,cl",
            " mov eax,m4[eax+None*1+0xc]",
            " call fxpoly1.c::set_point_",
            " jmp local:23",
            "@@ -72,25 +71,28 @@",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov edx,m4[ebx+None*1+0x20]",
            " mov ecx,m4[eax+None*1+0x20]",
            "-mov m4[esp+None*1+0x64],eax",
            "+mov m4[esp+None*1+0x84],eax",
            " test edx,ecx",
            "-je local:79",
            "-mov ebx,m4[esp+None*1+0x64]",
            "-jmp local:62",
            "+je local:78",
            "+mov ebx,m4[esp+None*1+0x84]",
            "+jmp local:61",
            " mov esi,edx",
            " or esi,ecx",
            "-jne local:118",
            "-mov edx,m4[ebx+None*1+0xc]",
            "-mov edi,m4[eax+None*1+0xc]",
            "+jne local:125",
            "+mov edx,m4[eax+None*1+0xc]",
            " mov esi,m4[eax+None*1+0x10]",
            "-mov m4[esp+None*1+0x54],edx",
            "-mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov edi,m4[ebx+None*1+0xc]",
            "+mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov m4[esp+None*1+0x5c],edx",
            " mov ebx,m4[ebx+None*1+0x10]",
            "+test eax,eax",
            "+je local:120",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            " test edx,edx",
            "-je local:111",
            "+jne local:103",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push edx",
            "+push edx",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            "@@ -98,46 +100,54 @@",
            " mov eax,m4[None+None*1+0x724310]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "-mov ecx,m4[esp+None*1+0x54]",
            " mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "-mov edx,edi",
            "+mov edx,m4[esp+None*1+0x5c]",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+xor eax,eax",
            "+inc ecx",
            " mov al,m1[esp+None*1+0xb8]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+mov ecx,edi",
            " call line.asm::_draw_glide_line",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ebx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            "+jne local:76",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-mov ebx,m4[esp+None*1+0x64]",
            "-jmp local:62",
            "-mov ecx,m4[esp+None*1+0x54]",
            "-xor eax,eax",
            "-mov edx,edi",
            "+mov ebx,m4[esp+None*1+0x84]",
            "+jmp local:61",
            " mov al,m1[esp+None*1+0xb8]",
            "+mov ecx,edi",
            " call line.asm::_draw_line",
            "-mov ebx,m4[esp+None*1+0x64]",
            "-jmp local:62",
            "+mov ebx,m4[esp+None*1+0x84]",
            "+jmp local:61",
            " lea edx,m4[esp+None*1+0x1c]",
            " mov m4[esp+None*1+0x1c],eax",
            " lea eax,m4[esp+None*1+0x18]",
            " mov m4[esp+None*1+0x18],ebx",
            " call 3dline.c::clip_raw_3d_line_",
            " test eax,eax",
            "-je local:77",
            "-mov ebx,m4[esp+None*1+0x18]",
            "-mov eax,m4[esp+None*1+0x1c]",
            "+je local:76",
            "+mov eax,m4[esp+None*1+0x18]",
            "+mov ebx,m4[esp+None*1+0x1c]",
            " mov esi,m4[esp+None*1+0x1c]",
            " mov edi,m4[esp+None*1+0x18]",
            "-mov ebx,m4[ebx+None*1+0x10]",
            "-mov eax,m4[eax+None*1+0xc]",
            "+mov eax,m4[eax+None*1+0x10]",
            "+mov ebx,m4[ebx+None*1+0xc]",
            " mov esi,m4[esi+None*1+0x10]",
            "-mov m4[esp+None*1+0x5c],eax",
            "+mov m4[esp+None*1+0x80],eax",
            " mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            " mov edi,m4[edi+None*1+0xc]",
            " test eax,eax",
            "-je local:158",
            "+je local:176",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test edx,edx",
            "+jne local:158",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push edx",
            "+push edx",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            "@@ -145,68 +155,77 @@",
            " mov eax,m4[None+None*1+0x724310]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "-mov edx,m4[esp+None*1+0x5c]",
            " mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+xor eax,eax",
            "+mov edx,ebx",
            "+mov al,m1[esp+None*1+0xb8]",
            "+inc ecx",
            "+mov ebx,m4[esp+None*1+0x80]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            " mov ecx,edi",
            "-mov al,m1[esp+None*1+0xb8]",
            " call line.asm::_draw_glide_line",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ebx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            "+jne local:76",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-mov ebx,m4[esp+None*1+0x64]",
            "-jmp local:62",
            "+mov ebx,m4[esp+None*1+0x84]",
            "+jmp local:61",
            " mov al,m1[esp+None*1+0xb8]",
            "-mov edx,m4[esp+None*1+0x5c]",
            "+mov edx,ebx",
            " mov ecx,edi",
            "+mov ebx,m4[esp+None*1+0x80]",
            " call line.asm::_draw_line",
            "-mov ebx,m4[esp+None*1+0x64]",
            "-jmp local:62",
            "+mov ebx,m4[esp+None*1+0x84]",
            "+jmp local:61",
            " mov edx,m4[esp+None*1+0x0]",
            " mov ecx,0xffffffff",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m1[esp+None*1+0xf0],al",
            "-xor eax,eax",
            "-xor esi,esi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov edi,eax",
            "+mov m1[esp+None*1+0xdc],al",
            "+xor eax,eax",
            "+xor edi,edi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov esi,eax",
            " mov ebx,eax",
            " mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            " mov m4[esp+None*1+0x4],eax",
            "-jne local:217",
            "+jne local:236",
            " mov m4[ebx+None*1+0x24],eax",
            " mov eax,m4[ebx+None*1+0x20]",
            " and ecx,eax",
            "-or esi,eax",
            "+or edi,eax",
            " test ecx,ecx",
            "-jne local:235",
            "-test esi,esi",
            "-jne local:228",
            "-mov eax,edi",
            "+jne local:254",
            "+test edi,edi",
            "+jne local:247",
            "+mov eax,esi",
            " call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0xf0]",
            "+mov al,m1[esp+None*1+0xdc]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " and eax,0xff",
            "-mov edx,eax",
            " mov ecx,eax",
            "-shl edx,0x18",
            "-shl ecx,0x10",
            "-add ecx,edx",
            "-mov edx,eax",
            "-shl edx,0x8",
            "+mov edx,eax",
            "+shl ecx,0x18",
            "+shl edx,0x10",
            "+add edx,ecx",
            "+mov ecx,eax",
            "+shl ecx,0x8",
            " add edx,ecx",
            " add edx,eax",
            "-mov eax,edi",
            "+mov eax,esi",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -224,15 +243,15 @@",
            " mov eax,m4[ebx+None*1+0x20]",
            " mov ebx,m4[ebx+None*1+0x24]",
            " and ecx,eax",
            "-or esi,eax",
            "-jmp local:178",
            "+or edi,eax",
            "+jmp local:197",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,edi",
            "-mov eax,esi",
            "+mov edx,esi",
            "+mov eax,edi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            " mov ebx,eax",
            " test eax,eax",
            "-jne local:243",
            "+jne local:262",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -246,7 +265,7 @@",
            " test eax,eax",
            " jl local:28",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0xf0]",
            "+mov al,m1[esp+None*1+0xdc]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " and eax,0xff",
            " mov edx,eax",
            "@@ -271,39 +290,40 @@",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " mov ecx,0xffffffff",
            "-mov m1[esp+None*1+0x110],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xec],al",
            "-xor eax,eax",
            "-xor esi,esi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edi,eax",
            "+mov m1[esp+None*1+0xf4],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xd4],al",
            "+xor eax,eax",
            "+xor edi,edi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov esi,eax",
            " mov ebx,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-dec edx",
            "-mov m4[esp+None*1+0x4],edx",
            "-jne local:333",
            "+mov eax,m4[esp+None*1+0x4]",
            "+dec eax",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:353",
            "+mov m4[ebx+None*1+0x24],eax",
            " mov eax,m4[ebx+None*1+0x20]",
            "-mov m4[ebx+None*1+0x24],edx",
            " and ecx,eax",
            "-or esi,eax",
            "+or edi,eax",
            " test ecx,ecx",
            "-jne local:372",
            "-test esi,esi",
            "-jne local:364",
            "-mov eax,edi",
            "+jne local:391",
            "+test edi,edi",
            "+jne local:383",
            "+mov eax,esi",
            " call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            " cmp m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status],0x0",
            "-je local:345",
            "+je local:364",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:345",
            "+je local:364",
            " xor eax,eax",
            " mov al,m1[None+None*1+0xd8d27e]",
            " mov m4[esp+None*1+0xb0],eax",
            "@@ -321,7 +341,7 @@",
            " fstp m4[esp+None*1+0x0]",
            " fild m2[esp+None*1+0xb8]",
            " sub esp,0x4",
            "-mov eax,edi",
            "+mov eax,esi",
            " fstp m4[esp+None*1+0x0]",
            " call fxpoly1.c::_3dfx_fill_polygon_",
            " mov eax,ebp",
            "@@ -332,7 +352,6 @@",
            " pop ecx",
            " ret ",
            " xor eax,eax",
            "-mov edx,m4[esp+None*1+0x0]",
            " mov al,m1[ebp+None*1+0x0]",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "@@ -341,35 +360,35 @@",
            " mov eax,m4[ebx+None*1+0x20]",
            " mov ebx,m4[ebx+None*1+0x24]",
            " and ecx,eax",
            "-or esi,eax",
            "-jmp local:285",
            "+or edi,eax",
            "+jmp local:305",
            " xor eax,eax",
            " xor edx,edx",
            "-mov al,m1[esp+None*1+0xec]",
            "-mov dl,m1[esp+None*1+0x110]",
            "+mov al,m1[esp+None*1+0xd4]",
            "+mov dl,m1[esp+None*1+0xf4]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,esi",
            " mov eax,edi",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,edi",
            "-mov eax,esi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            " mov edx,eax",
            "-mov edi,eax",
            "-test eax,eax",
            "-jne local:380",
            "+mov esi,eax",
            "+test eax,eax",
            "+jne local:399",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -383,9 +402,9 @@",
            " test eax,eax",
            " jl local:28",
            " cmp m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status],0x0",
            "-je local:345",
            "+je local:364",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:345",
            "+je local:364",
            " xor eax,eax",
            " mov al,m1[None+None*1+0xd8d27e]",
            " mov m4[esp+None*1+0xb0],eax",
            "@@ -417,42 +436,42 @@",
            " mov ecx,0xffffffff",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m1[esp+None*1+0xf4],al",
            "-xor eax,eax",
            "-xor esi,esi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov edi,eax",
            "+mov m1[esp+None*1+0xec],al",
            "+xor eax,eax",
            "+xor edi,edi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov esi,eax",
            " mov ebx,eax",
            " mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            " mov m4[esp+None*1+0x4],eax",
            "-jne local:464",
            "+jne local:483",
            " mov m4[ebx+None*1+0x24],eax",
            " mov eax,m4[ebx+None*1+0x20]",
            " and ecx,eax",
            "-or esi,eax",
            "+or edi,eax",
            " test ecx,ecx",
            "-jne local:505",
            "-test esi,esi",
            "-jne local:497",
            "-mov eax,edi",
            "+jne local:524",
            "+test edi,edi",
            "+jne local:516",
            "+mov eax,esi",
            " call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            " cmp m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status],0x0",
            "-je local:475",
            "+je local:494",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:475",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_flame_transparency_setting]",
            "-push eax",
            "+je local:494",
            "+mov edi,m4[None+None*1+fx3dobj1.c::_flame_transparency_setting]",
            "+push edi",
            " push m4[None+None*1+0xd8d278]",
            " push m4[None+None*1+0xd8d274]",
            "-mov eax,edi",
            "+mov eax,esi",
            " push m4[None+None*1+fx3dobj1.c::_flame_colour]",
            " call fxpoly1.c::_3dfx_fill_flame_translucent_rgb_polygon_",
            " mov eax,ebp",
            "@@ -471,10 +490,70 @@",
            " mov eax,m4[ebx+None*1+0x20]",
            " mov ebx,m4[ebx+None*1+0x24]",
            " and ecx,eax",
            "-or esi,eax",
            "-jmp local:429",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xf4]",
            "+or edi,eax",
            "+jmp local:448",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xec]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            "+mov ecx,eax",
            "+mov edx,eax",
            "+shl ecx,0x18",
            "+shl edx,0x10",
            "+add ecx,edx",
            "+mov edx,eax",
            "+shl edx,0x8",
            "+add edx,ecx",
            "+add edx,eax",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_fine_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,esi",
            "+mov eax,edi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov ecx,eax",
            "+mov esi,eax",
            "+test eax,eax",
            "+jne local:532",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status],0x0",
            "+je local:554",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:554",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_flame_transparency_setting]",
            "+push edx",
            "+push m4[None+None*1+0xd8d278]",
            "+push m4[None+None*1+0xd8d274]",
            "+mov eax,ecx",
            "+push m4[None+None*1+fx3dobj1.c::_flame_colour]",
            "+call fxpoly1.c::_3dfx_fill_flame_translucent_rgb_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xec]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " and eax,0xff",
            " mov edx,eax",
            "@@ -486,7 +565,7 @@",
            " shl ecx,0x8",
            " add edx,ecx",
            " add edx,eax",
            "-mov eax,edi",
            "+mov eax,esi",
            " call fxpoly1.c::fill_fine_meshed_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -495,46 +574,91 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,edi",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xf0],al",
            "+xor eax,eax",
            "+xor edi,edi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x4]",
            "+dec eax",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:646",
            "+mov m4[ebx+None*1+0x24],eax",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+and ecx,eax",
            "+or edi,eax",
            "+test ecx,ecx",
            "+jne local:688",
            "+test edi,edi",
            "+jne local:681",
            " mov eax,esi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov edx,eax",
            "-mov edi,eax",
            "-test eax,eax",
            "-jne local:513",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "+call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            " cmp m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status],0x0",
            "-je local:535",
            "+je local:659",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:535",
            "-mov ecx,m4[None+None*1+fx3dobj1.c::_flame_transparency_setting]",
            "-push ecx",
            "+je local:659",
            "+imul eax,m4[None+None*1+random.c::_random_number_seed],0x41c64e6d",
            "+add eax,0x3039",
            "+mov m4[None+None*1+random.c::_random_number_seed],eax",
            "+and eax,0x7fff0000",
            "+mov edx,eax",
            "+mov ecx,0x32",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_stringy_stuff_transparency_setting]",
            "+sub eax,edx",
            "+test eax,eax",
            "+jle local:657",
            "+imul eax,m4[None+None*1+random.c::_random_number_seed],0x41c64e6d",
            "+add eax,0x3039",
            "+mov m4[None+None*1+random.c::_random_number_seed],eax",
            "+and eax,0x7fff0000",
            "+mov edx,eax",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_stringy_stuff_transparency_setting]",
            "+sub eax,edx",
            "+mov edx,eax",
            "+push edx",
            " push m4[None+None*1+0xd8d278]",
            " push m4[None+None*1+0xd8d274]",
            "-mov eax,edx",
            "+mov eax,esi",
            " push m4[None+None*1+fx3dobj1.c::_flame_colour]",
            "-call fxpoly1.c::_3dfx_fill_flame_translucent_rgb_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xf4]",
            "+call fxpoly1.c::_3dfx_fill_translucent_rgb_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:590",
            "+xor edx,edx",
            "+jmp local:633",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xf0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " and eax,0xff",
            " mov ecx,eax",
            "@@ -546,20 +670,301 @@",
            " shl ecx,0x8",
            " add edx,ecx",
            " add edx,eax",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_coarse_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,esi",
            " mov eax,edi",
            "-call fxpoly1.c::fill_fine_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x0]",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov esi,eax",
            "+test eax,eax",
            "+jne local:696",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status],0x0",
            "+je local:741",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:741",
            "+imul eax,m4[None+None*1+random.c::_random_number_seed],0x41c64e6d",
            "+add eax,0x3039",
            "+mov m4[None+None*1+random.c::_random_number_seed],eax",
            "+and eax,0x7fff0000",
            "+mov edx,eax",
            "+mov ecx,0x32",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_stringy_stuff_transparency_setting]",
            "+sub eax,edx",
            "+test eax,eax",
            "+jle local:739",
            "+imul eax,m4[None+None*1+random.c::_random_number_seed],0x41c64e6d",
            "+add eax,0x3039",
            "+mov m4[None+None*1+random.c::_random_number_seed],eax",
            "+and eax,0x7fff0000",
            "+mov edx,eax",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_stringy_stuff_transparency_setting]",
            "+sub eax,edx",
            "+mov edx,eax",
            "+push edx",
            "+push m4[None+None*1+0xd8d278]",
            "+push m4[None+None*1+0xd8d274]",
            "+mov eax,esi",
            "+push m4[None+None*1+fx3dobj1.c::_flame_colour]",
            "+call fxpoly1.c::_3dfx_fill_translucent_rgb_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor edx,edx",
            "+jmp local:726",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xf0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            "+mov ecx,eax",
            "+mov edx,eax",
            "+shl ecx,0x18",
            "+shl edx,0x10",
            "+add ecx,edx",
            "+mov edx,eax",
            "+shl edx,0x8",
            "+add edx,ecx",
            "+add edx,eax",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_coarse_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x0]",
            "+inc ebp",
            "+xor eax,eax",
            " mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xc4],al",
            "+mov al,m1[ebp+None*1+0xffffffff]",
            "+xor edi,edi",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x4]",
            "+dec eax",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:807",
            "+mov m4[ebx+None*1+0x24],eax",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+and ecx,eax",
            "+or edi,eax",
            "+test ecx,ecx",
            "+jne local:835",
            "+test edi,edi",
            "+jne local:828",
            "+mov eax,esi",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov edx,m4[None+None*1+0xafaedc]",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+cmp edx,0x2",
            "+je local:28",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:818",
            "+mov ebx,0x32",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_glass_colour]",
            "+mov eax,esi",
            "+call fxpoly1.c::_3dfx_fill_translucent_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:774",
            "+mov edx,3dpal.c::_remap_glass_colours",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_translucent_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,esi",
            "+mov eax,edi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov ecx,eax",
            "+test eax,eax",
            "+jne local:843",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov esi,m4[None+None*1+0xafaedc]",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+cmp esi,0x2",
            "+je local:28",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:863",
            "+mov ebx,0x32",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_glass_colour]",
            "+mov eax,ecx",
            "+call fxpoly1.c::_3dfx_fill_translucent_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,3dpal.c::_remap_glass_colours",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_translucent_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x0]",
            "+inc ebp",
            "+xor eax,eax",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0xffffffff]",
            "+xor edi,edi",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov edx,m4[esp+None*1+0x4]",
            "+dec edx",
            "+mov m4[esp+None*1+0x4],edx",
            "+jne local:912",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov m4[ebx+None*1+0x24],edx",
            "+and ecx,eax",
            "+or edi,eax",
            "+test ecx,ecx",
            "+jne local:931",
            "+test edi,edi",
            "+jne local:924",
            "+mov eax,esi",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov edi,m4[None+None*1+0xafaedc]",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+cmp edi,0x2",
            "+je local:28",
            "+test eax,eax",
            "+jl local:28",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_translucent_heat_hazed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:883",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,esi",
            "+mov eax,edi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov edx,eax",
            "+test eax,eax",
            "+jne local:939",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov ebx,m4[None+None*1+0xafaedc]",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+cmp ebx,0x2",
            "+je local:28",
            "+test eax,eax",
            "+jl local:28",
            "+mov eax,edx",
            "+call fxpoly1.c::fill_translucent_heat_hazed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m1[esp+None*1+0xcc],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xd8],al",
            "+xor eax,eax",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x64],eax",
            " xor eax,eax",
            " xor esi,esi",
            " mov al,m1[ebp+None*1+0x0]",
            "@@ -572,61 +977,64 @@",
            " mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            " mov m4[esp+None*1+0x4],eax",
            "-jne local:627",
            "-mov m4[ebx+None*1+0x24],eax",
            "+jne local:1025",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+inc ebp",
            " mov eax,m4[ebx+None*1+0x20]",
            "+mov m4[ebx+None*1+0x24],0x0",
            " and ecx,eax",
            " or esi,eax",
            " test ecx,ecx",
            "-jne local:669",
            "-test esi,esi",
            "-jne local:662",
            "-mov eax,edi",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-cmp m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status],0x0",
            "-je local:640",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:640",
            "-imul eax,m4[None+None*1+random.c::_random_number_seed],0x41c64e6d",
            "-add eax,0x3039",
            "-mov m4[None+None*1+random.c::_random_number_seed],eax",
            "-and eax,0x7fff0000",
            "-mov edx,eax",
            "-mov ecx,0x32",
            "+jne local:1133",
            "+mov eax,m4[esp+None*1+0x64]",
            "+mov edx,m4[esp+None*1+0x64]",
            "+mov ecx,0x6",
            "+shl eax,0x2",
            "+sub edx,0x2",
            "+mov m4[esp+None*1+0x68],eax",
            "+mov eax,edx",
            " sar edx,0x1f",
            " idiv ecx",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_stringy_stuff_transparency_setting]",
            "-sub eax,edx",
            "-test eax,eax",
            "-jle local:638",
            "-imul eax,m4[None+None*1+random.c::_random_number_seed],0x41c64e6d",
            "-add eax,0x3039",
            "-mov m4[None+None*1+random.c::_random_number_seed],eax",
            "-and eax,0x7fff0000",
            "-mov edx,eax",
            "-sar edx,0x1f",
            "-idiv ecx",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_stringy_stuff_transparency_setting]",
            "-sub eax,edx",
            "-mov edx,eax",
            "-push edx",
            "-push m4[None+None*1+0xd8d278]",
            "-push m4[None+None*1+0xd8d274]",
            "-mov eax,edi",
            "-push m4[None+None*1+fx3dobj1.c::_flame_colour]",
            "-call fxpoly1.c::_3dfx_fill_translucent_rgb_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "+add eax,0x146",
            "+mov m4[esp+None*1+0x74],eax",
            "+test esi,esi",
            "+je local:1046",
            "+test m1[None+None*1+0xafaed4],0x1",
            "+je local:1126",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,edi",
            "+mov eax,esi",
            "+call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            "+mov ecx,eax",
            "+test eax,eax",
            "+jne local:1097",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov m4[ebx+None*1+0x24],eax",
            "@@ -635,24 +1043,80 @@",
            " mov ebx,m4[ebx+None*1+0x24]",
            " and ecx,eax",
            " or esi,eax",
            "-jmp local:571",
            "+jmp local:976",
            "+mov eax,edi",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+test m1[None+None*1+0xafaed4],0x1",
            "+je local:1078",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:1065",
            "+mov edx,m4[esp+None*1+0x74]",
            "+mov eax,edi",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ebx,m4[esp+None*1+0x68]",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+add eax,ebx",
            "+mov edx,m4[eax+None*1+0x0]",
            "+mov eax,edi",
            "+call fxpoly1.c::fill_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            " xor edx,edx",
            "-jmp local:614",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xc4]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-and eax,0xff",
            "-mov ecx,eax",
            "-mov edx,eax",
            "-shl ecx,0x18",
            "-shl edx,0x10",
            "-add ecx,edx",
            "-mov edx,eax",
            "-shl edx,0x8",
            "-add edx,ecx",
            "-add edx,eax",
            "+mov al,m1[esp+None*1+0xd8]",
            "+mov dl,m1[esp+None*1+0xcc]",
            "+mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            " mov eax,edi",
            "-call fxpoly1.c::fill_coarse_meshed_polygon_",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:1113",
            "+mov edx,m4[esp+None*1+0x74]",
            "+mov eax,ecx",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x68]",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+add eax,edx",
            "+mov edx,m4[eax+None*1+0x0]",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            " pop ebp",
            "@@ -664,9 +1128,9 @@",
            " mov edx,edi",
            " mov eax,esi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov edi,eax",
            "-test eax,eax",
            "-jne local:677",
            "+mov ecx,eax",
            "+test eax,eax",
            "+jne local:1141",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -679,75 +1143,41 @@",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            "-cmp m4[None+None*1+fx3dobj1.c::_nozzle_colour_hack_status],0x0",
            "-je local:722",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:722",
            "-imul eax,m4[None+None*1+random.c::_random_number_seed],0x41c64e6d",
            "-add eax,0x3039",
            "-mov m4[None+None*1+random.c::_random_number_seed],eax",
            "-and eax,0x7fff0000",
            "-mov edx,eax",
            "-mov ecx,0x32",
            "-sar edx,0x1f",
            "-idiv ecx",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_stringy_stuff_transparency_setting]",
            "-sub eax,edx",
            "-test eax,eax",
            "-jle local:720",
            "-imul eax,m4[None+None*1+random.c::_random_number_seed],0x41c64e6d",
            "-add eax,0x3039",
            "-mov m4[None+None*1+random.c::_random_number_seed],eax",
            "-and eax,0x7fff0000",
            "-mov edx,eax",
            "-sar edx,0x1f",
            "-idiv ecx",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_stringy_stuff_transparency_setting]",
            "-sub eax,edx",
            "-mov edx,eax",
            "-push edx",
            "-push m4[None+None*1+0xd8d278]",
            "-push m4[None+None*1+0xd8d274]",
            "-mov eax,edi",
            "-push m4[None+None*1+fx3dobj1.c::_flame_colour]",
            "-call fxpoly1.c::_3dfx_fill_translucent_rgb_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "+xor eax,eax",
            " xor edx,edx",
            "-jmp local:707",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xc4]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-and eax,0xff",
            "-mov edx,eax",
            "-mov ecx,eax",
            "-shl edx,0x18",
            "-shl ecx,0x10",
            "-add ecx,edx",
            "-mov edx,eax",
            "-shl edx,0x8",
            "-add edx,ecx",
            "-add edx,eax",
            "-mov eax,edi",
            "-call fxpoly1.c::fill_coarse_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x0]",
            "-inc ebp",
            "+mov al,m1[esp+None*1+0xd8]",
            "+mov dl,m1[esp+None*1+0xcc]",
            "+mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m1[esp+None*1+0xd0],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xe0],al",
            " xor eax,eax",
            " mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0xa0],eax",
            "+xor eax,eax",
            " xor esi,esi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov edx,m4[esp+None*1+0x0]",
            "@@ -756,209 +1186,7 @@",
            " mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            " mov m4[esp+None*1+0x4],eax",
            "-jne local:788",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-and ecx,eax",
            "-or esi,eax",
            "-test ecx,ecx",
            "-jne local:816",
            "-test esi,esi",
            "-jne local:809",
            "-mov eax,edi",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov edx,m4[None+None*1+0xafaedc]",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-cmp edx,0x2",
            "-je local:28",
            "-test eax,eax",
            "-jl local:28",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:799",
            "-mov ebx,0x32",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_glass_colour]",
            "-mov eax,edi",
            "-call fxpoly1.c::_3dfx_fill_translucent_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or esi,eax",
            "-jmp local:755",
            "-mov edx,3dpal.c::_remap_glass_colours",
            "-mov eax,edi",
            "-call fxpoly1.c::fill_translucent_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,edi",
            "-mov eax,esi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-jne local:824",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov esi,m4[None+None*1+0xafaedc]",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-cmp esi,0x2",
            "-je local:28",
            "-test eax,eax",
            "-jl local:28",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:844",
            "-mov ebx,0x32",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_glass_colour]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_translucent_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,3dpal.c::_remap_glass_colours",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_translucent_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x0]",
            "-inc ebp",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-xor edi,edi",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov esi,eax",
            "-mov ebx,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-dec edx",
            "-mov m4[esp+None*1+0x4],edx",
            "-jne local:893",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov m4[ebx+None*1+0x24],edx",
            "-and ecx,eax",
            "-or edi,eax",
            "-test ecx,ecx",
            "-jne local:912",
            "-test edi,edi",
            "-jne local:905",
            "-mov eax,esi",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov edi,m4[None+None*1+0xafaedc]",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-cmp edi,0x2",
            "-je local:28",
            "-test eax,eax",
            "-jl local:28",
            "-mov eax,esi",
            "-call fxpoly1.c::fill_translucent_heat_hazed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:864",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,esi",
            "-mov eax,edi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov edx,eax",
            "-test eax,eax",
            "-jne local:920",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov ebx,m4[None+None*1+0xafaedc]",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-cmp ebx,0x2",
            "-je local:28",
            "-test eax,eax",
            "-jl local:28",
            "-mov eax,edx",
            "-call fxpoly1.c::fill_translucent_heat_hazed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov m1[esp+None*1+0xc8],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xe8],al",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x30],eax",
            "-xor eax,eax",
            "-xor esi,esi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov edi,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x4]",
            "-dec eax",
            "-mov m4[esp+None*1+0x4],eax",
            "-jne local:1006",
            "+jne local:1234",
            " mov al,m1[ebp+None*1+0x0]",
            " shl eax,0x10",
            " mov m4[ebx+None*1+0x14],eax",
            "@@ -973,1431 +1201,9 @@",
            " and ecx,eax",
            " or esi,eax",
            " test ecx,ecx",
            "-jne local:1114",
            "-mov eax,m4[esp+None*1+0x30]",
            "-mov edx,m4[esp+None*1+0x30]",
            "-mov ecx,0x6",
            "-shl eax,0x2",
            "-sub edx,0x2",
            "-mov m4[esp+None*1+0x84],eax",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-idiv ecx",
            "-add eax,0x146",
            "-mov m4[esp+None*1+0x48],eax",
            "-test esi,esi",
            "-je local:1027",
            "-test m1[None+None*1+0xafaed4],0x1",
            "-je local:1107",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,edi",
            "-mov eax,esi",
            "-call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-jne local:1078",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or esi,eax",
            "-jmp local:957",
            "-mov eax,edi",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-test m1[None+None*1+0xafaed4],0x1",
            "-je local:1059",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1046",
            "-mov edx,m4[esp+None*1+0x48]",
            "-mov eax,edi",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ecx,m4[esp+None*1+0x84]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-add eax,ecx",
            "-mov edx,m4[eax+None*1+0x0]",
            "-mov eax,edi",
            "-call fxpoly1.c::fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0xe8]",
            "-mov dl,m1[esp+None*1+0xc8]",
            "-mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,edi",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1094",
            "-mov edx,m4[esp+None*1+0x48]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov eax,m4[esp+None*1+0x84]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-add edx,eax",
            "-mov eax,ecx",
            "-mov edx,m4[edx+None*1+0x0]",
            "-call fxpoly1.c::fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,edi",
            "-mov eax,esi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-jne local:1122",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0xe8]",
            "-mov dl,m1[esp+None*1+0xc8]",
            "-mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov m1[esp+None*1+0xcc],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x11c],al",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x9c],eax",
            "-xor eax,eax",
            "-xor esi,esi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov edi,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x4]",
            "-dec eax",
            "-mov m4[esp+None*1+0x4],eax",
            "-jne local:1215",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov m4[ebx+None*1+0x24],0x0",
            "-and ecx,eax",
            "-or esi,eax",
            "-test ecx,ecx",
            "-jne local:1323",
            "-mov eax,m4[esp+None*1+0x9c]",
            "-mov edx,m4[esp+None*1+0x9c]",
            "-mov ecx,0x6",
            "-shl eax,0x2",
            "-sub edx,0x2",
            "-mov m4[esp+None*1+0x88],eax",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-idiv ecx",
            "-add eax,0x146",
            "-mov m4[esp+None*1+0x2c],eax",
            "-test esi,esi",
            "-je local:1236",
            "-test m1[None+None*1+0xafaed4],0x1",
            "-je local:1316",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,edi",
            "-mov eax,esi",
            "-call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-jne local:1287",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or esi,eax",
            "-jmp local:1166",
            "-mov eax,edi",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-test m1[None+None*1+0xafaed4],0x1",
            "-je local:1268",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1255",
            "-mov edx,m4[esp+None*1+0x2c]",
            "-mov eax,edi",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ebx,m4[esp+None*1+0x88]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-add edx,ebx",
            "-mov eax,edi",
            "-mov edx,m4[edx+None*1+0x0]",
            "-call fxpoly1.c::fill_masked_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0x11c]",
            "-mov dl,m1[esp+None*1+0xcc]",
            "-mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,edi",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1303",
            "-mov edx,m4[esp+None*1+0x2c]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x88]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-add eax,edx",
            "-mov edx,m4[eax+None*1+0x0]",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_masked_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,edi",
            "-mov eax,esi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-jne local:1331",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0x11c]",
            "-mov dl,m1[esp+None*1+0xcc]",
            "-mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-mov cl,m1[ebp+None*1+0x0]",
            "-mov edx,m4[esi+eax*4+0x0]",
            "-xor eax,eax",
            "-mov al,cl",
            "-mov edi,0xffffffff",
            "-inc ebp",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-inc ebp",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov cl,al",
            "-mov ebx,m4[esp+None*1+0x4]",
            "-add ebx,edi",
            "-mov m4[esp+None*1+0x4],ebx",
            "-cmp edi,ebx",
            "-je local:28",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[eax+None*1+0x20]",
            "-inc ebp",
            "-test edx,edx",
            "-jne local:1368",
            "-xor ebx,ebx",
            "-mov edx,m4[eax+None*1+0x10]",
            "-mov bl,cl",
            "-mov eax,m4[eax+None*1+0xc]",
            "-call fxpoly1.c::set_point_",
            "-jmp local:1368",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov m1[esp+None*1+0xc0],al",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x2",
            "-lea edx,m4[ebx+eax*1+0x0]",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xc0]",
            "-inc ebp",
            "-mov edx,m4[edx+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-inc ebp",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov m1[esp+None*1+0xc0],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov ebx,eax",
            "-mov esi,m4[esp+None*1+0x4]",
            "-dec esi",
            "-mov m4[esp+None*1+0x4],esi",
            "-je local:28",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[ebx+None*1+0x20]",
            "-mov ecx,m4[eax+None*1+0x20]",
            "-mov m4[esp+None*1+0x14],eax",
            "-test edx,ecx",
            "-je local:1428",
            "-mov ebx,m4[esp+None*1+0x14]",
            "-jmp local:1411",
            "-mov esi,edx",
            "-or esi,ecx",
            "-jne local:1467",
            "-mov edx,m4[ebx+None*1+0xc]",
            "-mov edi,m4[eax+None*1+0xc]",
            "-mov esi,m4[eax+None*1+0x10]",
            "-mov m4[esp+None*1+0x58],edx",
            "-mov edx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov ebx,m4[ebx+None*1+0x10]",
            "-test edx,edx",
            "-je local:1460",
            "-push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "-push 0x4",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbLock@24",
            "-mov eax,m4[None+None*1+0x724310]",
            "-mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "-mov eax,m4[None+None*1+0x724314]",
            "-mov ecx,m4[esp+None*1+0x58]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "-mov edx,edi",
            "-mov al,m1[esp+None*1+0xc0]",
            "-call line.asm::_draw_glide_line",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbUnlock@8",
            "-mov ebx,m4[esp+None*1+0x14]",
            "-jmp local:1411",
            "-mov ecx,m4[esp+None*1+0x58]",
            "-xor eax,eax",
            "-mov edx,edi",
            "-mov al,m1[esp+None*1+0xc0]",
            "-call line.asm::_draw_line",
            "-mov ebx,m4[esp+None*1+0x14]",
            "-jmp local:1411",
            "-lea edx,m4[esp+None*1+0x1c]",
            "-mov m4[esp+None*1+0x1c],eax",
            "-lea eax,m4[esp+None*1+0x18]",
            "-mov m4[esp+None*1+0x18],ebx",
            "-call 3dline.c::clip_raw_3d_line_",
            "-test eax,eax",
            "-je local:1426",
            "-mov eax,m4[esp+None*1+0x18]",
            "-mov edi,m4[esp+None*1+0x18]",
            "-mov ebx,m4[esp+None*1+0x1c]",
            "-mov esi,m4[esp+None*1+0x1c]",
            "-mov eax,m4[eax+None*1+0xc]",
            "-mov edi,m4[edi+None*1+0x10]",
            "-mov ebx,m4[ebx+None*1+0xc]",
            "-mov m4[esp+None*1+0xc],eax",
            "-mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov esi,m4[esi+None*1+0x10]",
            "-test eax,eax",
            "-je local:1508",
            "-push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "-push 0x4",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbLock@24",
            "-mov eax,m4[None+None*1+0x724310]",
            "-mov ecx,m4[esp+None*1+0xc]",
            "-mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "-mov eax,m4[None+None*1+0x724314]",
            "-mov edx,ebx",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "-mov ebx,edi",
            "-mov al,m1[esp+None*1+0xc0]",
            "-call line.asm::_draw_glide_line",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbUnlock@8",
            "-mov ebx,m4[esp+None*1+0x14]",
            "-jmp local:1411",
            "-mov al,m1[esp+None*1+0xc0]",
            "-mov ecx,m4[esp+None*1+0xc]",
            "-mov edx,ebx",
            "-mov ebx,edi",
            "-call line.asm::_draw_line",
            "-mov ebx,m4[esp+None*1+0x14]",
            "-jmp local:1411",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xd4],al",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0xa0],eax",
            "-xor eax,eax",
            "-xor edi,edi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x68],eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x4]",
            "-dec eax",
            "-mov m4[esp+None*1+0x4],eax",
            "-jne local:1598",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-and ecx,eax",
            "-or edi,eax",
            "+jne local:1342",
            " mov eax,m4[esp+None*1+0xa0]",
            "-shl eax,0x2",
            "-add esi,eax",
            "-mov edx,m4[esp+None*1+0x68]",
            "-mov eax,m4[esi+None*1+0x0]",
            "-mov m4[edx+None*1+0x1c],eax",
            "-test ecx,ecx",
            "-jne local:1615",
            "-test edi,edi",
            "-jne local:1609",
            "-mov eax,edx",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-mov cl,m1[esp+None*1+0xd4]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ebx,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-and ebx,0xff",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-shl ebx,0x18",
            "-and eax,0xff",
            "-shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-xor edx,edx",
            "-mov dl,al",
            "-mov eax,m4[esp+None*1+0x68]",
            "-add edx,ebx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:1533",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov eax,edi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov edi,eax",
            "-test eax,eax",
            "-jne local:1623",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-xor ecx,ecx",
            "-mov cl,m1[esp+None*1+0xd4]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ebx,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-and ebx,0xff",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-shl ebx,0x18",
            "-and eax,0xff",
            "-shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-xor edx,edx",
            "-mov dl,al",
            "-mov eax,edi",
            "-add edx,ebx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov m1[esp+None*1+0xd8],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xfc],al",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x90],eax",
            "-xor eax,eax",
            "-xor edi,edi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x6c],eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x4]",
            "-dec eax",
            "-mov m4[esp+None*1+0x4],eax",
            "-jne local:1743",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-and ecx,eax",
            "-or edi,eax",
            "-mov eax,m4[esp+None*1+0x90]",
            "-shl eax,0x2",
            "-add esi,eax",
            "-mov edx,m4[esp+None*1+0x6c]",
            "-mov eax,m4[esi+None*1+0x0]",
            "-mov m4[edx+None*1+0x1c],eax",
            "-test ecx,ecx",
            "-jne local:1760",
            "-test edi,edi",
            "-jne local:1754",
            "-mov eax,edx",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xfc]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xd8]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,m4[esp+None*1+0x6c]",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:1691",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov eax,edi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-jne local:1768",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xfc]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xd8]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xdc],al",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0xa8],eax",
            "-xor eax,eax",
            "-xor edi,edi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x34],eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x4]",
            "-dec eax",
            "-mov m4[esp+None*1+0x4],eax",
            "-jne local:1881",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-and ecx,eax",
            "-or edi,eax",
            "-test ecx,ecx",
            "-jne local:1899",
            "-mov eax,m4[esp+None*1+0xa8]",
            "-shl eax,0x2",
            "-add esi,eax",
            "-test edi,edi",
            "-jne local:1892",
            "-mov eax,m4[esp+None*1+0x34]",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-mov cl,m1[esp+None*1+0xdc]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ebx,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-and ebx,0xff",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-shl ebx,0x18",
            "-and eax,0xff",
            "-shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-xor edx,edx",
            "-mov dl,al",
            "-mov eax,m4[esp+None*1+0x34]",
            "-add edx,ebx",
            "-call fxpoly1.c::fill_fine_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:1819",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x34]",
            "-mov eax,edi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov edi,eax",
            "-test eax,eax",
            "-jne local:1907",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-xor ecx,ecx",
            "-mov cl,m1[esp+None*1+0xdc]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ebx,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-and ebx,0xff",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-shl ebx,0x18",
            "-and eax,0xff",
            "-shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-xor edx,edx",
            "-mov dl,al",
            "-mov eax,edi",
            "-add edx,ebx",
            "-call fxpoly1.c::fill_fine_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xe0],al",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x44],eax",
            "-xor eax,eax",
            "-xor edi,edi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x38],eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x4]",
            "-dec eax",
            "-mov m4[esp+None*1+0x4],eax",
            "-jne local:2034",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-and ecx,eax",
            "-or edi,eax",
            "-test ecx,ecx",
            "-jne local:2052",
            "-mov eax,m4[esp+None*1+0x44]",
            "-shl eax,0x2",
            "-add esi,eax",
            "-test edi,edi",
            "-jne local:2045",
            "-mov eax,m4[esp+None*1+0x38]",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-mov cl,m1[esp+None*1+0xe0]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ebx,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-and ebx,0xff",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-shl ebx,0x18",
            "-and eax,0xff",
            "-shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-xor edx,edx",
            "-mov dl,al",
            "-mov eax,m4[esp+None*1+0x38]",
            "-add edx,ebx",
            "-call fxpoly1.c::fill_coarse_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:1972",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x38]",
            "-mov eax,edi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov edi,eax",
            "-test eax,eax",
            "-jne local:2060",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-xor ecx,ecx",
            "-mov cl,m1[esp+None*1+0xe0]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ebx,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-and ebx,0xff",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-shl ebx,0x18",
            "-and eax,0xff",
            "-shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-xor edx,edx",
            "-mov dl,al",
            "-mov eax,edi",
            "-add edx,ebx",
            "-call fxpoly1.c::fill_coarse_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xe4],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xf8],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x20],eax",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x4c],eax",
            "-xor eax,eax",
            "-xor edi,edi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x70],eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x4]",
            "-dec eax",
            "-mov m4[esp+None*1+0x4],eax",
            "-jne local:2187",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x18],eax",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-and ecx,eax",
            "-or edi,eax",
            "-mov eax,m4[esp+None*1+0x20]",
            "-shl eax,0x2",
            "-mov edx,m4[esp+None*1+0x70]",
            "-add esi,eax",
            "-mov m4[ebx+None*1+0x24],0x0",
            "-inc ebp",
            "-mov eax,m4[esi+None*1+0x0]",
            "-inc ebp",
            "-mov m4[edx+None*1+0x1c],eax",
            "-test ecx,ecx",
            "-jne local:2307",
            "-mov eax,m4[esp+None*1+0x4c]",
            "-mov edx,m4[esp+None*1+0x4c]",
            "-mov ecx,0x6",
            "-shl eax,0x2",
            "-sub edx,0x2",
            "-mov m4[esp+None*1+0x94],eax",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-idiv ecx",
            "-add eax,0x146",
            "-mov m4[esp+None*1+0x28],eax",
            "-test edi,edi",
            "-je local:2208",
            "-test m1[None+None*1+0xafaed4],0x1",
            "-je local:2300",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x70]",
            "-mov eax,edi",
            "-call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-jne local:2270",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:2132",
            "-mov eax,m4[esp+None*1+0x70]",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-test m1[None+None*1+0xafaed4],0x1",
            "-je local:2241",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:2227",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov eax,m4[esp+None*1+0x70]",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ebx,m4[esp+None*1+0x94]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-add eax,ebx",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov ebx,m4[eax+None*1+0x0]",
            "-mov eax,m4[esp+None*1+0x70]",
            "-call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xf8]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xe4]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,m4[esp+None*1+0x70]",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:2286",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x94]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-add eax,edx",
            "-mov ebx,m4[eax+None*1+0x0]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x70]",
            "-mov eax,edi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-jne local:2315",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xf8]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xe4]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x114],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x118],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0xac],eax",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x80],eax",
            "-xor eax,eax",
            "-xor edi,edi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x74],eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x4]",
            "-dec eax",
            "-mov m4[esp+None*1+0x4],eax",
            "-jne local:2428",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x18],eax",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-and ecx,eax",
            "-or edi,eax",
            "-mov eax,m4[esp+None*1+0xac]",
            "-shl eax,0x2",
            "-mov edx,m4[esp+None*1+0x74]",
            "-add esi,eax",
            "-mov m4[ebx+None*1+0x24],0x0",
            "-inc ebp",
            "-mov eax,m4[esi+None*1+0x0]",
            "-inc ebp",
            "-mov m4[edx+None*1+0x1c],eax",
            "-test ecx,ecx",
            "-jne local:2548",
            "-mov eax,m4[esp+None*1+0x80]",
            "-mov edx,m4[esp+None*1+0x80]",
            "+mov edx,m4[esp+None*1+0xa0]",
            " mov ecx,0x6",
            " shl eax,0x2",
            " sub edx,0x2",
            "@@ -2406,18 +1212,18 @@",
            " sar edx,0x1f",
            " idiv ecx",
            " add eax,0x146",
            "-mov m4[esp+None*1+0x8c],eax",
            "-test edi,edi",
            "-je local:2449",
            "+mov m4[esp+None*1+0x70],eax",
            "+test esi,esi",
            "+je local:1255",
            " test m1[None+None*1+0xafaed4],0x1",
            "-je local:2541",
            "+je local:1335",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x74]",
            "-mov eax,edi",
            "+mov edx,edi",
            "+mov eax,esi",
            " call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            " mov ecx,eax",
            " test eax,eax",
            "-jne local:2511",
            "+jne local:1306",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -2438,6 +1244,394 @@",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x1]",
            " inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or esi,eax",
            "+jmp local:1185",
            "+mov eax,edi",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+test m1[None+None*1+0xafaed4],0x1",
            "+je local:1287",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:1274",
            "+mov edx,m4[esp+None*1+0x70]",
            "+mov eax,edi",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ebx,m4[esp+None*1+0xa4]",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+add eax,ebx",
            "+mov edx,m4[eax+None*1+0x0]",
            "+mov eax,edi",
            "+call fxpoly1.c::fill_masked_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+xor edx,edx",
            "+mov al,m1[esp+None*1+0xe0]",
            "+mov dl,m1[esp+None*1+0xd0]",
            "+mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,edi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:1322",
            "+mov edx,m4[esp+None*1+0x70]",
            "+mov eax,ecx",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0xa4]",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+add eax,edx",
            "+mov edx,m4[eax+None*1+0x0]",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_masked_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,edi",
            "+mov eax,esi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov ecx,eax",
            "+test eax,eax",
            "+jne local:1350",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+xor eax,eax",
            "+xor edx,edx",
            "+mov al,m1[esp+None*1+0xe0]",
            "+mov dl,m1[esp+None*1+0xd0]",
            "+mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+mov cl,m1[ebp+None*1+0x0]",
            "+mov edx,m4[esi+eax*4+0x0]",
            "+xor eax,eax",
            "+mov al,cl",
            "+mov edi,0xffffffff",
            "+inc ebp",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+inc ebp",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov cl,al",
            "+mov eax,m4[esp+None*1+0x4]",
            "+add eax,edi",
            "+mov m4[esp+None*1+0x4],eax",
            "+cmp edi,eax",
            "+je local:28",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ebx,m4[eax+None*1+0x20]",
            "+inc ebp",
            "+test ebx,ebx",
            "+jne local:1387",
            "+mov bl,cl",
            "+mov edx,m4[eax+None*1+0x10]",
            "+mov eax,m4[eax+None*1+0xc]",
            "+call fxpoly1.c::set_point_",
            "+jmp local:1387",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov m1[esp+None*1+0x114],al",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+mov edx,m4[esi+eax*4+0x0]",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x114]",
            "+inc ebp",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+inc ebp",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov m1[esp+None*1+0x114],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x4]",
            "+dec eax",
            "+mov m4[esp+None*1+0x4],eax",
            "+je local:28",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[ebx+None*1+0x20]",
            "+mov ecx,m4[eax+None*1+0x20]",
            "+mov m4[esp+None*1+0x14],eax",
            "+test edx,ecx",
            "+je local:1444",
            "+mov ebx,m4[esp+None*1+0x14]",
            "+jmp local:1427",
            "+mov esi,edx",
            "+or esi,ecx",
            "+jne local:1491",
            "+mov edx,m4[eax+None*1+0xc]",
            "+mov esi,m4[eax+None*1+0x10]",
            "+mov edi,m4[ebx+None*1+0xc]",
            "+mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov m4[esp+None*1+0x60],edx",
            "+mov ebx,m4[ebx+None*1+0x10]",
            "+test eax,eax",
            "+je local:1486",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test edx,edx",
            "+jne local:1469",
            "+push fxpoly1.c::_lfbinfo",
            "+push edx",
            "+push edx",
            "+push 0x4",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbLock@24",
            "+mov eax,m4[None+None*1+0x724310]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "+mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+mov edx,m4[esp+None*1+0x60]",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+xor eax,eax",
            "+inc ecx",
            "+mov al,m1[esp+None*1+0x114]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+mov ecx,edi",
            "+call line.asm::_draw_glide_line",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ebx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            "+jne local:1442",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbUnlock@8",
            "+mov ebx,m4[esp+None*1+0x14]",
            "+jmp local:1427",
            "+mov al,m1[esp+None*1+0x114]",
            "+mov ecx,edi",
            "+call line.asm::_draw_line",
            "+mov ebx,m4[esp+None*1+0x14]",
            "+jmp local:1427",
            "+lea edx,m4[esp+None*1+0x1c]",
            "+mov m4[esp+None*1+0x1c],eax",
            "+lea eax,m4[esp+None*1+0x18]",
            "+mov m4[esp+None*1+0x18],ebx",
            "+call 3dline.c::clip_raw_3d_line_",
            "+test eax,eax",
            "+je local:1442",
            "+mov ebx,m4[esp+None*1+0x18]",
            "+mov eax,m4[esp+None*1+0x1c]",
            "+mov esi,m4[esp+None*1+0x1c]",
            "+mov edi,m4[esp+None*1+0x18]",
            "+mov ebx,m4[ebx+None*1+0x10]",
            "+mov eax,m4[eax+None*1+0xc]",
            "+mov esi,m4[esi+None*1+0x10]",
            "+mov m4[esp+None*1+0xc],eax",
            "+mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov edi,m4[edi+None*1+0xc]",
            "+test eax,eax",
            "+je local:1541",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test edx,edx",
            "+jne local:1524",
            "+push fxpoly1.c::_lfbinfo",
            "+push edx",
            "+push edx",
            "+push 0x4",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbLock@24",
            "+mov eax,m4[None+None*1+0x724310]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "+mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+mov edx,m4[esp+None*1+0xc]",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+xor eax,eax",
            "+inc ecx",
            "+mov al,m1[esp+None*1+0x114]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+mov ecx,edi",
            "+call line.asm::_draw_glide_line",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ebx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            "+jne local:1442",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbUnlock@8",
            "+mov ebx,m4[esp+None*1+0x14]",
            "+jmp local:1427",
            "+mov al,m1[esp+None*1+0x114]",
            "+mov edx,m4[esp+None*1+0xc]",
            "+mov ecx,edi",
            "+call line.asm::_draw_line",
            "+mov ebx,m4[esp+None*1+0x14]",
            "+jmp local:1427",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x100],al",
            "+xor eax,eax",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0xa8],eax",
            "+xor eax,eax",
            "+xor edi,edi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[esp+None*1+0x88],eax",
            "+mov ebx,eax",
            "+mov edx,m4[esp+None*1+0x4]",
            "+dec edx",
            "+mov m4[esp+None*1+0x4],edx",
            "+jne local:1631",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+and ecx,eax",
            "+or edi,eax",
            "+mov eax,m4[esp+None*1+0xa8]",
            "+shl eax,0x2",
            "+add esi,eax",
            "+mov m4[ebx+None*1+0x24],edx",
            "+mov edx,m4[esp+None*1+0x88]",
            "+mov eax,m4[esi+None*1+0x0]",
            "+mov m4[edx+None*1+0x1c],eax",
            "+test ecx,ecx",
            "+jne local:1691",
            "+test edi,edi",
            "+jne local:1685",
            "+mov eax,edx",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:1643",
            "+mov cl,m1[esp+None*1+0x100]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ebx,eax",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+and ebx,0xff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+shl ebx,0x18",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,m4[esp+None*1+0x88]",
            "+add edx,ebx",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov m4[ebx+None*1+0x24],eax",
            "@@ -2446,61 +1640,41 @@",
            " mov ebx,m4[ebx+None*1+0x24]",
            " and ecx,eax",
            " or edi,eax",
            "-jmp local:2373",
            "-mov eax,m4[esp+None*1+0x74]",
            "-call 3dcore.c::get_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-test m1[None+None*1+0xafaed4],0x1",
            "-je local:2482",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:2468",
            "-mov edx,m4[esp+None*1+0x8c]",
            "-mov eax,m4[esp+None*1+0x74]",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ebx,m4[esp+None*1+0xa4]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-add eax,ebx",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov ebx,m4[eax+None*1+0x0]",
            "-mov eax,m4[esp+None*1+0x74]",
            "-call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x118]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+jmp local:1564",
            "+mov cl,m1[esp+None*1+0x100]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+xor ebx,ebx",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x114]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,m4[esp+None*1+0x74]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shl ebx,0x18",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,m4[esp+None*1+0x88]",
            "+add edx,ebx",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -2509,43 +1683,12 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:2527",
            "-mov edx,m4[esp+None*1+0x8c]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0xa4]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-add eax,edx",
            "-mov ebx,m4[eax+None*1+0x0]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x74]",
            " mov eax,edi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            " mov ecx,eax",
            " test eax,eax",
            "-jne local:2556",
            "+jne local:1699",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -2558,27 +1701,43 @@",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x118]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x114]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+test ebx,ebx",
            "+je local:1748",
            "+xor ebx,ebx",
            "+mov bl,m1[esp+None*1+0x100]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+movzx edi,al",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shl edi,0x18",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            " mov eax,ecx",
            "+add edx,edi",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -2587,7 +1746,52 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "-mov edx,m4[esp+None*1+0x0]",
            "+mov bl,m1[esp+None*1+0x100]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov edi,eax",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+and edi,0xff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+shl edi,0x18",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,ecx",
            "+add edx,edi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m1[esp+None*1+0x110],al",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " mov m1[esp+None*1+0x10c],al",
            "@@ -2595,7 +1799,7 @@",
            " mov ecx,0xffffffff",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m4[esp+None*1+0x24],eax",
            "+mov m4[esp+None*1+0x38],eax",
            " xor eax,eax",
            " xor edi,edi",
            " mov al,m1[ebp+None*1+0x0]",
            "@@ -2603,36 +1807,505 @@",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov edx,m4[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x78],eax",
            "+mov m4[esp+None*1+0x8c],eax",
            " mov ebx,eax",
            " mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            " mov m4[esp+None*1+0x4],eax",
            "-jne local:2643",
            "-mov al,m1[ebp+None*1+0x0]",
            "+jne local:1866",
            "+mov m4[ebx+None*1+0x24],eax",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+and ecx,eax",
            "+or edi,eax",
            "+mov eax,m4[esp+None*1+0x38]",
            "+shl eax,0x2",
            "+add esi,eax",
            "+mov edx,m4[esp+None*1+0x8c]",
            "+mov eax,m4[esi+None*1+0x0]",
            "+mov m4[edx+None*1+0x1c],eax",
            "+test ecx,ecx",
            "+jne local:1883",
            "+test edi,edi",
            "+jne local:1877",
            "+mov eax,edx",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+test eax,eax",
            "+je local:1838",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x10c]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x110]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,m4[esp+None*1+0x8c]",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:1811",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov eax,edi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov ecx,eax",
            "+test eax,eax",
            "+jne local:1891",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x10c]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x110]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xe4],al",
            "+xor eax,eax",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0xac],eax",
            "+xor eax,eax",
            "+xor edi,edi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m4[esp+None*1+0x58],eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x4]",
            "+dec eax",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:2005",
            "+mov m4[ebx+None*1+0x24],eax",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+and ecx,eax",
            "+or edi,eax",
            "+test ecx,ecx",
            "+jne local:2023",
            "+mov eax,m4[esp+None*1+0xac]",
            "+shl eax,0x2",
            "+add esi,eax",
            "+test edi,edi",
            "+jne local:2016",
            "+mov eax,m4[esp+None*1+0x58]",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+mov cl,m1[esp+None*1+0xe4]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ebx,eax",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+and ebx,0xff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+shl ebx,0x18",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,m4[esp+None*1+0x58]",
            "+add edx,ebx",
            "+call fxpoly1.c::fill_fine_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:1943",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,m4[esp+None*1+0x58]",
            "+mov eax,edi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov edi,eax",
            "+test eax,eax",
            "+jne local:2031",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+xor ecx,ecx",
            "+mov cl,m1[esp+None*1+0xe4]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ebx,eax",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+and ebx,0xff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+shl ebx,0x18",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,edi",
            "+add edx,ebx",
            "+call fxpoly1.c::fill_fine_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xe8],al",
            "+xor eax,eax",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x3c],eax",
            "+xor eax,eax",
            "+xor edi,edi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m4[esp+None*1+0x50],eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x4]",
            "+dec eax",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:2158",
            "+mov m4[ebx+None*1+0x24],eax",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+and ecx,eax",
            "+or edi,eax",
            "+test ecx,ecx",
            "+jne local:2176",
            "+mov eax,m4[esp+None*1+0x3c]",
            "+shl eax,0x2",
            "+add esi,eax",
            "+test edi,edi",
            "+jne local:2169",
            "+mov eax,m4[esp+None*1+0x50]",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+mov cl,m1[esp+None*1+0xe8]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ebx,eax",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+and ebx,0xff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+shl ebx,0x18",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,m4[esp+None*1+0x50]",
            "+add edx,ebx",
            "+call fxpoly1.c::fill_coarse_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:2096",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,m4[esp+None*1+0x50]",
            "+mov eax,edi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov edi,eax",
            "+test eax,eax",
            "+jne local:2184",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+xor ecx,ecx",
            "+mov cl,m1[esp+None*1+0xe8]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ebx,eax",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+and ebx,0xff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+shl ebx,0x18",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,edi",
            "+add edx,ebx",
            "+call fxpoly1.c::fill_coarse_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov m1[esp+None*1+0xfc],al",
            "+mov al,m1[ebp+None*1+0x1]",
            "+mov m1[esp+None*1+0x108],al",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x2]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x48],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x2]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x7c],eax",
            "+xor eax,eax",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0x2]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,eax",
            "+mov m4[esp+None*1+0x90],eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x48]",
            "+xor edi,edi",
            "+inc ebp",
            " mov eax,m4[esi+eax*4+0x0]",
            "+inc ebp",
            "+mov m4[edx+None*1+0x1c],eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov eax,m4[esp+None*1+0x4]",
            "+dec eax",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:2316",
            "+mov eax,m4[esp+None*1+0x90]",
            "+mov eax,m4[eax+None*1+0x1c]",
            " mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            " inc ebp",
            " mov eax,m4[ebx+None*1+0x20]",
            " mov m4[ebx+None*1+0x24],0x0",
            " and ecx,eax",
            " or edi,eax",
            " test ecx,ecx",
            "-jne local:2764",
            "-mov eax,m4[esp+None*1+0x24]",
            "+jne local:2440",
            "+mov eax,m4[esp+None*1+0x48]",
            "+mov ecx,m4[esp+None*1+0x7c]",
            "+mov edx,m4[esp+None*1+0x7c]",
            " shl eax,0x2",
            "+shl ecx,0x2",
            "+sub edx,0x2",
            "+mov m4[esp+None*1+0x6c],ecx",
            " add esi,eax",
            "+mov ecx,0x6",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+add eax,0x146",
            "+mov m4[esp+None*1+0x44],eax",
            " test edi,edi",
            "-je local:2659",
            "-test m1[None+None*1+0xafaed4],0x2",
            "-je local:2757",
            "+je local:2340",
            "+test m1[None+None*1+0xafaed4],0x1",
            "+je local:2433",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x78]",
            "+mov edx,m4[esp+None*1+0x90]",
            " mov eax,edi",
            "-call fx3dgpol.c::clip_raw_3d_gouraud_shaded_polygon_",
            "-mov ebx,eax",
            "-test eax,eax",
            "-jne local:2731",
            "+call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            "+mov ecx,eax",
            "+test eax,eax",
            "+jne local:2403",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -2641,10 +2314,18 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "+mov eax,m4[esp+None*1+0x90]",
            "+mov eax,m4[eax+None*1+0x1c]",
            " mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x1]",
            " inc ebp",
            "@@ -2656,91 +2337,546 @@",
            " mov ebx,m4[ebx+None*1+0x24]",
            " and ecx,eax",
            " or edi,eax",
            "-jmp local:2607",
            "-mov eax,m4[esp+None*1+0x78]",
            "+jmp local:2260",
            "+mov eax,m4[esp+None*1+0x90]",
            " call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            "+test m1[None+None*1+0xafaed4],0x1",
            "+je local:2373",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:2359",
            "+mov edx,m4[esp+None*1+0x44]",
            "+mov eax,m4[esp+None*1+0x90]",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x6c]",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+add eax,edx",
            "+mov ebx,m4[eax+None*1+0x0]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov eax,m4[esp+None*1+0x90]",
            "+call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x108]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xfc]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,m4[esp+None*1+0x90]",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:2419",
            "+mov edx,m4[esp+None*1+0x44]",
            "+mov eax,ecx",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ebx,m4[esp+None*1+0x6c]",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+add eax,ebx",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov ebx,m4[eax+None*1+0x0]",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,m4[esp+None*1+0x90]",
            "+mov eax,edi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov ecx,eax",
            "+test eax,eax",
            "+jne local:2448",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x108]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xfc]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xf8],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x104],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x40],eax",
            "+xor eax,eax",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x4c],eax",
            "+xor eax,eax",
            "+xor edi,edi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m4[esp+None*1+0x28],eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x4]",
            "+dec eax",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:2562",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x18],eax",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+and ecx,eax",
            "+or edi,eax",
            "+mov eax,m4[esp+None*1+0x40]",
            "+shl eax,0x2",
            "+mov edx,m4[esp+None*1+0x28]",
            "+add esi,eax",
            "+mov m4[ebx+None*1+0x24],0x0",
            "+inc ebp",
            "+mov eax,m4[esi+None*1+0x0]",
            "+inc ebp",
            "+mov m4[edx+None*1+0x1c],eax",
            "+test ecx,ecx",
            "+jne local:2683",
            "+mov eax,m4[esp+None*1+0x4c]",
            "+mov edx,m4[esp+None*1+0x4c]",
            "+mov ecx,0x6",
            "+shl eax,0x2",
            "+sub edx,0x2",
            "+mov m4[esp+None*1+0x9c],eax",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+add eax,0x146",
            "+mov m4[esp+None*1+0x78],eax",
            "+test edi,edi",
            "+je local:2583",
            "+test m1[None+None*1+0xafaed4],0x1",
            "+je local:2676",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,m4[esp+None*1+0x28]",
            "+mov eax,edi",
            "+call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            "+mov ecx,eax",
            "+test eax,eax",
            "+jne local:2646",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:2507",
            "+mov eax,m4[esp+None*1+0x28]",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+test m1[None+None*1+0xafaed4],0x1",
            "+je local:2616",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:2602",
            "+mov edx,m4[esp+None*1+0x78]",
            "+mov eax,m4[esp+None*1+0x28]",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x9c]",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+add eax,edx",
            "+mov ebx,m4[eax+None*1+0x0]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov eax,m4[esp+None*1+0x28]",
            "+call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x104]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xf8]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,m4[esp+None*1+0x28]",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:2662",
            "+mov edx,m4[esp+None*1+0x78]",
            "+mov eax,ecx",
            "+call fxpoly1.c::_3dfx_fill_object_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ebx,m4[esp+None*1+0x9c]",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+add eax,ebx",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov ebx,m4[eax+None*1+0x0]",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,m4[esp+None*1+0x28]",
            "+mov eax,edi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov ecx,eax",
            "+test eax,eax",
            "+jne local:2691",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x104]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xf8]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x118],al",
            "+xor eax,eax",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x98],eax",
            "+xor eax,eax",
            "+xor edi,edi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m4[esp+None*1+0x94],eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x4]",
            "+dec eax",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:2779",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[esi+eax*4+0x0]",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov m4[ebx+None*1+0x24],0x0",
            "+and ecx,eax",
            "+or edi,eax",
            "+test ecx,ecx",
            "+jne local:2900",
            "+mov eax,m4[esp+None*1+0x98]",
            "+shl eax,0x2",
            "+add esi,eax",
            "+test edi,edi",
            "+je local:2795",
            " test m1[None+None*1+0xafaed4],0x2",
            "-je local:2688",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x10c]",
            "+je local:2893",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,m4[esp+None*1+0x94]",
            "+mov eax,edi",
            "+call fx3dgpol.c::clip_raw_3d_gouraud_shaded_polygon_",
            "+mov ebx,eax",
            "+test eax,eax",
            "+jne local:2867",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[esi+eax*4+0x0]",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:2743",
            "+mov eax,m4[esp+None*1+0x94]",
            "+call 3dcore.c::get_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+test m1[None+None*1+0xafaed4],0x2",
            "+jne local:2845",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+mov cl,m1[esp+None*1+0x118]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+xor ebx,ebx",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shl ebx,0x18",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,m4[esp+None*1+0x94]",
            "+add edx,ebx",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x118]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            "+mov edx,eax",
            "+mov ecx,eax",
            "+shl edx,0x18",
            "+shl ecx,0x10",
            "+add ecx,edx",
            "+mov edx,eax",
            "+shl edx,0x8",
            "+add edx,ecx",
            "+add edx,eax",
            "+mov eax,m4[esp+None*1+0x94]",
            "+call fxpoly1.c::fill_gouraud_shaded_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x118]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " and eax,0xff",
            " mov ecx,eax",
            " mov edx,eax",
            " shl ecx,0x18",
            " shl edx,0x10",
            "-add ecx,edx",
            "-mov edx,eax",
            "-shl edx,0x8",
            "-add edx,ecx",
            "-add edx,eax",
            "-mov eax,m4[esp+None*1+0x78]",
            "-call fxpoly1.c::fill_gouraud_shaded_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov cl,m1[esp+None*1+0x10c]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov edi,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-and edi,0xff",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-shl edi,0x18",
            "-and eax,0xff",
            "-shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add edi,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-xor ebx,ebx",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shl ebx,0x8",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-xor edx,edx",
            "-add ebx,edi",
            "-mov dl,al",
            "-mov eax,m4[esp+None*1+0x78]",
            "-add edx,ebx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x10c]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-and eax,0xff",
            "-mov edx,eax",
            "-mov ecx,eax",
            "-shl edx,0x18",
            "-shl ecx,0x10",
            " add ecx,edx",
            " mov edx,eax",
            " shl edx,0x8",
            "@@ -2756,59 +2892,60 @@",
            " pop ecx",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x78]",
            "+mov edx,m4[esp+None*1+0x94]",
            " mov eax,edi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov ecx,eax",
            "+test eax,eax",
            "+jne local:2908",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+call 3dcore.c::get_robust_cyclic_order_",
            "+mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "+test eax,eax",
            "+jl local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor ebx,ebx",
            "+mov bl,m1[esp+None*1+0x118]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov edi,eax",
            "-test eax,eax",
            "-jne local:2772",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-call 3dcore.c::get_robust_cyclic_order_",
            "-mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            "-test eax,eax",
            "-jl local:28",
            "-xor ecx,ecx",
            "-mov cl,m1[esp+None*1+0x10c]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ebx,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-and ebx,0xff",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-shl ebx,0x18",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+and edi,0xff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+shl edi,0x18",
            " and eax,0xff",
            " shl eax,0x10",
            " mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " and eax,0xff",
            " shl eax,0x8",
            " mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " xor edx,edx",
            " mov dl,al",
            "-mov eax,edi",
            "-add edx,ebx",
            "+mov eax,ecx",
            "+add edx,edi",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -2820,52 +2957,52 @@",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " mov edx,m4[esp+None*1+0x0]",
            "-mov m1[esp+None*1+0x100],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x104],al",
            "+mov m1[esp+None*1+0x11c],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xc0],al",
            " xor eax,eax",
            " mov ecx,0xffffffff",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m4[esp+None*1+0x98],eax",
            "+mov m4[esp+None*1+0x34],eax",
            " xor eax,eax",
            " xor edi,edi",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x3c],eax",
            "+mov m4[esp+None*1+0x2c],eax",
            " mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x4]",
            "-dec eax",
            "-mov m4[esp+None*1+0x4],eax",
            "-jne local:2876",
            "+mov edx,m4[esp+None*1+0x4]",
            "+dec edx",
            "+mov m4[esp+None*1+0x4],edx",
            "+jne local:3013",
            "+xor eax,eax",
            " mov al,m1[ebp+None*1+0x0]",
            " mov eax,m4[esi+eax*4+0x0]",
            " mov m4[ebx+None*1+0x1c],eax",
            " inc ebp",
            " mov eax,m4[ebx+None*1+0x20]",
            "-mov m4[ebx+None*1+0x24],0x0",
            "+mov m4[ebx+None*1+0x24],edx",
            " and ecx,eax",
            " or edi,eax",
            " test ecx,ecx",
            "-jne local:2977",
            "-mov eax,m4[esp+None*1+0x98]",
            "+jne local:3116",
            "+mov eax,m4[esp+None*1+0x34]",
            " shl eax,0x2",
            " add esi,eax",
            " test edi,edi",
            "-je local:2892",
            "+je local:3030",
            " test m1[None+None*1+0xafaed4],0x2",
            "-je local:2970",
            "+je local:3109",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x3c]",
            "+mov edx,m4[esp+None*1+0x2c]",
            " mov eax,edi",
            " call fx3dgpol.c::clip_raw_3d_gouraud_shaded_polygon_",
            " mov ecx,eax",
            " test eax,eax",
            "-jne local:2947",
            "+jne local:3086",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -2879,6 +3016,7 @@",
            " mov eax,m4[esi+eax*4+0x0]",
            " mov m4[ebx+None*1+0x1c],eax",
            " xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            " mov al,m1[ebp+None*1+0x1]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            "@@ -2889,25 +3027,55 @@",
            " mov ebx,m4[ebx+None*1+0x24]",
            " and ecx,eax",
            " or edi,eax",
            "-jmp local:2840",
            "-mov eax,m4[esp+None*1+0x3c]",
            "+jmp local:2976",
            "+mov eax,m4[esp+None*1+0x2c]",
            " call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            " test m1[None+None*1+0xafaed4],0x2",
            "-je local:2918",
            "+jne local:3067",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xc0]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0x11c]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,m4[esp+None*1+0x2c]",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            " xor eax,eax",
            " xor edx,edx",
            "-mov al,m1[esp+None*1+0x104]",
            "-mov dl,m1[esp+None*1+0x100]",
            "+mov al,m1[esp+None*1+0xc0]",
            "+mov dl,m1[esp+None*1+0x11c]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "-mov eax,m4[esp+None*1+0x3c]",
            "+mov eax,m4[esp+None*1+0x2c]",
            " call fxpoly1.c::fill_gouraud_shaded_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -2916,43 +3084,14 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x104]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x100]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,m4[esp+None*1+0x3c]",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x120",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            " call 3dcore.c::get_robust_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            " xor eax,eax",
            " xor edx,edx",
            "-mov al,m1[esp+None*1+0x104]",
            "-mov dl,m1[esp+None*1+0x100]",
            "+mov al,m1[esp+None*1+0xc0]",
            "+mov dl,m1[esp+None*1+0x11c]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            "@@ -2969,12 +3108,12 @@",
            " pop ecx",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x3c]",
            "+mov edx,m4[esp+None*1+0x2c]",
            " mov eax,edi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            " mov ecx,eax",
            " test eax,eax",
            "-jne local:2985",
            "+jne local:3124",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -2987,8 +3126,9 @@",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x104]",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xc0]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -2996,7 +3136,7 @@",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov bl,al",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0x100]",
            "+mov al,m1[esp+None*1+0x11c]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -3018,33 +3158,33 @@",
            " ret ",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m1[esp+None*1+0xd0],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xb4],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x60],eax",
            "+mov m1[esp+None*1+0xc4],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xbc],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x24],eax",
            " xor eax,eax",
            " mov ecx,0xffffffff",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m4[esp+None*1+0x50],eax",
            "+mov m4[esp+None*1+0x20],eax",
            " xor eax,eax",
            " xor edi,edi",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x7c],eax",
            "+mov m4[esp+None*1+0x54],eax",
            " mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x4]",
            "-dec eax",
            "-mov m4[esp+None*1+0x4],eax",
            "-jne local:3088",
            "+mov edx,m4[esp+None*1+0x4]",
            "+dec edx",
            "+mov m4[esp+None*1+0x4],edx",
            "+jne local:3228",
            "+xor eax,eax",
            " mov al,m1[ebp+None*1+0x0]",
            " mov eax,m4[esi+eax*4+0x0]",
            " mov m4[ebx+None*1+0x1c],eax",
            "@@ -3060,24 +3200,24 @@",
            " mov m4[ebx+None*1+0x18],eax",
            " inc ebp",
            " mov eax,m4[ebx+None*1+0x20]",
            "-mov m4[ebx+None*1+0x24],0x0",
            "+mov m4[ebx+None*1+0x24],edx",
            " and ecx,eax",
            " or edi,eax",
            " test ecx,ecx",
            "-jne local:3367",
            "+jne local:3510",
            " test edi,edi",
            "-je local:3114",
            "+je local:3255",
            " mov eax,m4[None+None*1+0xafaed4]",
            " cmp eax,0x3",
            " ja local:28",
            "-jmp m4[None+eax*4+fx3dobj3.c::draw_completely_visible_secondary_face_+0x12e0]",
            "+jmp m4[None+eax*4+fx3dobj3.c::draw_completely_visible_secondary_face_+0x1420]",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x7c]",
            "+mov edx,m4[esp+None*1+0x54]",
            " mov eax,edi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            " mov ecx,eax",
            " test eax,eax",
            "-jne local:3235",
            "+jne local:3376",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3101,6 +3241,7 @@",
            " inc ebp",
            " mov m4[ebx+None*1+0x18],eax",
            " xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            " mov al,m1[ebp+None*1+0x1]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            "@@ -3111,8 +3252,8 @@",
            " mov ebx,m4[ebx+None*1+0x24]",
            " and ecx,eax",
            " or edi,eax",
            "-jmp local:3043",
            "-mov eax,m4[esp+None*1+0x7c]",
            "+jmp local:3182",
            "+mov eax,m4[esp+None*1+0x54]",
            " call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            "@@ -3120,20 +3261,21 @@",
            " mov eax,m4[None+None*1+0xafaed4]",
            " cmp eax,0x3",
            " ja local:28",
            "-jmp m4[None+eax*4+fx3dobj3.c::draw_completely_visible_secondary_face_+0x12d0]",
            "-mov eax,m4[esp+None*1+0x60]",
            "+jmp m4[None+eax*4+fx3dobj3.c::draw_completely_visible_secondary_face_+0x1410]",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+mov eax,m4[esp+None*1+0x24]",
            " mov edx,m4[esi+eax*4+0x0]",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0xb4]",
            "+mov al,m1[esp+None*1+0xbc]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov bl,al",
            "-mov eax,m4[esp+None*1+0x60]",
            "+mov eax,m4[esp+None*1+0x24]",
            " mov edx,m4[esi+eax*4+0x0]",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0xd0]",
            "+mov al,m1[esp+None*1+0xc4]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            "@@ -3143,7 +3285,7 @@",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "-mov eax,m4[esp+None*1+0x7c]",
            "+mov eax,m4[esp+None*1+0x54]",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3153,15 +3295,15 @@",
            " pop ecx",
            " ret ",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:3172",
            "-mov edx,m4[esp+None*1+0x50]",
            "+je local:3314",
            "+mov edx,m4[esp+None*1+0x20]",
            " sub edx,0x2",
            " mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,m4[esp+None*1+0x7c]",
            "+mov eax,m4[esp+None*1+0x54]",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3170,12 +3312,12 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "-mov eax,m4[esp+None*1+0x50]",
            "+mov eax,m4[esp+None*1+0x20]",
            " mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov ebx,m4[edx+eax*4+0x0]",
            "-mov eax,m4[esp+None*1+0x60]",
            "+mov eax,m4[esp+None*1+0x24]",
            " mov edx,m4[esi+eax*4+0x0]",
            "-mov eax,m4[esp+None*1+0x7c]",
            "+mov eax,m4[esp+None*1+0x54]",
            " call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3185,16 +3327,15 @@",
            " pop ecx",
            " ret ",
            " xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0xb4]",
            "-mov dl,m1[esp+None*1+0xd0]",
            "+mov al,m1[esp+None*1+0xbc]",
            "+mov dl,m1[esp+None*1+0xc4]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "-mov eax,m4[esp+None*1+0x7c]",
            "+mov eax,m4[esp+None*1+0x54]",
            " call fxpoly1.c::fill_gouraud_shaded_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3204,15 +3345,15 @@",
            " pop ecx",
            " ret ",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:3223",
            "-mov edx,m4[esp+None*1+0x50]",
            "+je local:3364",
            "+mov edx,m4[esp+None*1+0x20]",
            " sub edx,0x2",
            " mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,m4[esp+None*1+0x7c]",
            "+mov eax,m4[esp+None*1+0x54]",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3221,10 +3362,10 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "-mov eax,m4[esp+None*1+0x50]",
            "+mov eax,m4[esp+None*1+0x20]",
            " mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov edx,m4[edx+eax*4+0x0]",
            "-mov eax,m4[esp+None*1+0x7c]",
            "+mov eax,m4[esp+None*1+0x54]",
            " call fxpoly1.c::fill_gouraud_shaded_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3237,11 +3378,13 @@",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            " jl local:28",
            "-mov eax,m4[esp+None*1+0x60]",
            "+mov eax,m4[esp+None*1+0x24]",
            " shl eax,0x2",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_use_glide]",
            " add esi,eax",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xb4]",
            "+test ebx,ebx",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xbc]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -3249,7 +3392,7 @@",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov bl,al",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0xd0]",
            "+mov al,m1[esp+None*1+0xc4]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -3270,12 +3413,12 @@",
            " pop ecx",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x7c]",
            "+mov edx,m4[esp+None*1+0x54]",
            " mov eax,edi",
            " call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-jne local:3286",
            "+mov edi,eax",
            "+test eax,eax",
            "+jne local:3429",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3289,15 +3432,15 @@",
            " test eax,eax",
            " jl local:28",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:3308",
            "-mov edx,m4[esp+None*1+0x50]",
            "+je local:3451",
            "+mov edx,m4[esp+None*1+0x20]",
            " sub edx,0x2",
            "-mov ebx,0x6",
            "+mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ebx",
            "+idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "+mov eax,edi",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3306,12 +3449,12 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "-mov edx,m4[esp+None*1+0x50]",
            "+mov edx,m4[esp+None*1+0x20]",
            " mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov ebx,m4[eax+edx*4+0x0]",
            "-mov eax,m4[esp+None*1+0x60]",
            "+mov eax,m4[esp+None*1+0x24]",
            " mov edx,m4[esi+eax*4+0x0]",
            "-mov eax,ecx",
            "+mov eax,edi",
            " call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3321,12 +3464,12 @@",
            " pop ecx",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x7c]",
            "+mov edx,m4[esp+None*1+0x54]",
            " mov eax,edi",
            " call fx3dgpol.c::clip_raw_3d_gouraud_shaded_polygon_",
            " mov ecx,eax",
            " test eax,eax",
            "-jne local:3337",
            "+jne local:3480",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3341,8 +3484,8 @@",
            " jl local:28",
            " xor eax,eax",
            " xor edx,edx",
            "-mov al,m1[esp+None*1+0xb4]",
            "-mov dl,m1[esp+None*1+0xd0]",
            "+mov al,m1[esp+None*1+0xbc]",
            "+mov dl,m1[esp+None*1+0xc4]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            "@@ -3359,12 +3502,12 @@",
            " pop ecx",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x7c]",
            "+mov edx,m4[esp+None*1+0x54]",
            " mov eax,edi",
            " call fx3dgtpo.c::clip_raw_3d_gouraud_shaded_textured_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-jne local:3375",
            "+mov ebx,eax",
            "+test eax,eax",
            "+jne local:3518",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3378,15 +3521,15 @@",
            " test eax,eax",
            " jl local:28",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:3397",
            "-mov edx,m4[esp+None*1+0x50]",
            "+je local:3540",
            "+mov edx,m4[esp+None*1+0x20]",
            " sub edx,0x2",
            "-mov ebx,0x6",
            "+mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ebx",
            "+idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "+mov eax,ebx",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3395,10 +3538,10 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "-mov eax,m4[esp+None*1+0x50]",
            "+mov eax,m4[esp+None*1+0x20]",
            " mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov edx,m4[edx+eax*4+0x0]",
            "-mov eax,ecx",
            "+mov eax,ebx",
            " call fxpoly1.c::fill_gouraud_shaded_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3409,10 +3552,10 @@",
            " ret ",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m1[esp+None*1+0xbc],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0x108],al",
            "+mov m1[esp+None*1+0xc8],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xb4],al",
            " xor eax,eax",
            " mov edx,m4[esp+None*1+0x0]",
            " mov al,m1[ebp+None*1+0x0]",
            "@@ -3430,12 +3573,12 @@",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov edx,m4[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x40],eax",
            "+mov m4[esp+None*1+0x30],eax",
            " mov ebx,eax",
            " mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            " mov m4[esp+None*1+0x4],eax",
            "-jne local:3479",
            "+jne local:3622",
            " mov al,m1[ebp+None*1+0x0]",
            " mov eax,m4[esi+eax*4+0x0]",
            " mov m4[ebx+None*1+0x1c],eax",
            "@@ -3455,20 +3598,20 @@",
            " and ecx,eax",
            " or edi,eax",
            " test ecx,ecx",
            "-jne local:3758",
            "+jne local:3936",
            " test edi,edi",
            "-je local:3505",
            "+je local:3648",
            " mov eax,m4[None+None*1+0xafaed4]",
            " cmp eax,0x3",
            " ja local:28",
            "-jmp m4[None+eax*4+fx3dobj3.c::draw_completely_visible_secondary_face_+0x1300]",
            "+jmp m4[None+eax*4+fx3dobj3.c::draw_completely_visible_secondary_face_+0x1440]",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x40]",
            "+mov edx,m4[esp+None*1+0x30]",
            " mov eax,edi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            " mov ecx,eax",
            " test eax,eax",
            "-jne local:3626",
            "+jne local:3802",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3502,8 +3645,8 @@",
            " mov ebx,m4[ebx+None*1+0x24]",
            " and ecx,eax",
            " or edi,eax",
            "-jmp local:3434",
            "-mov eax,m4[esp+None*1+0x40]",
            "+jmp local:3577",
            "+mov eax,m4[esp+None*1+0x30]",
            " call 3dcore.c::get_cyclic_order_",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],eax",
            " test eax,eax",
            "@@ -3511,11 +3654,14 @@",
            " mov eax,m4[None+None*1+0xafaed4]",
            " cmp eax,0x3",
            " ja local:28",
            "-jmp m4[None+eax*4+fx3dobj3.c::draw_completely_visible_secondary_face_+0x12f0]",
            "+jmp m4[None+eax*4+fx3dobj3.c::draw_completely_visible_secondary_face_+0x1430]",
            "+mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+test eax,eax",
            "+je local:3691",
            " mov eax,m4[esp+None*1+0x10]",
            " mov edx,m4[esi+eax*4+0x0]",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0x108]",
            "+mov al,m1[esp+None*1+0xb4]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            "@@ -3524,7 +3670,7 @@",
            " mov eax,m4[esp+None*1+0x10]",
            " mov edx,m4[esi+eax*4+0x0]",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0xbc]",
            "+mov al,m1[esp+None*1+0xc8]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            "@@ -3534,7 +3680,7 @@",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "-mov eax,m4[esp+None*1+0x40]",
            "+mov eax,m4[esp+None*1+0x30]",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3543,8 +3689,38 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "+mov edx,m4[esp+None*1+0x10]",
            "+mov al,m1[esp+None*1+0xb4]",
            "+mov edx,m4[esi+edx*4+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x10]",
            "+mov al,m1[esp+None*1+0xc8]",
            "+mov edx,m4[esi+edx*4+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,m4[esp+None*1+0x30]",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x120",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:3563",
            "+je local:3739",
            " mov edx,m4[esp+None*1+0x8]",
            " sub edx,0x2",
            " mov ecx,0x6",
            "@@ -3552,7 +3728,7 @@",
            " sar edx,0x1f",
            " idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,m4[esp+None*1+0x40]",
            "+mov eax,m4[esp+None*1+0x30]",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3564,9 +3740,9 @@",
            " mov eax,m4[esp+None*1+0x8]",
            " mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov ebx,m4[edx+eax*4+0x0]",
            "-mov edx,m4[esp+None*1+0x10]",
            "-mov eax,m4[esp+None*1+0x40]",
            "-mov edx,m4[esi+edx*4+0x0]",
            "+mov eax,m4[esp+None*1+0x10]",
            "+mov edx,m4[esi+eax*4+0x0]",
            "+mov eax,m4[esp+None*1+0x30]",
            " call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3577,15 +3753,15 @@",
            " ret ",
            " xor eax,eax",
            " xor edx,edx",
            "-mov al,m1[esp+None*1+0x108]",
            "-mov dl,m1[esp+None*1+0xbc]",
            "+mov al,m1[esp+None*1+0xb4]",
            "+mov dl,m1[esp+None*1+0xc8]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "-mov eax,m4[esp+None*1+0x40]",
            "+mov eax,m4[esp+None*1+0x30]",
            " call fxpoly1.c::fill_gouraud_shaded_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3595,7 +3771,7 @@",
            " pop ecx",
            " ret ",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:3614",
            "+je local:3790",
            " mov edx,m4[esp+None*1+0x8]",
            " sub edx,0x2",
            " mov ecx,0x6",
            "@@ -3603,7 +3779,7 @@",
            " sar edx,0x1f",
            " idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,m4[esp+None*1+0x40]",
            "+mov eax,m4[esp+None*1+0x30]",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3615,7 +3791,7 @@",
            " mov eax,m4[esp+None*1+0x8]",
            " mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov edx,m4[edx+eax*4+0x0]",
            "-mov eax,m4[esp+None*1+0x40]",
            "+mov eax,m4[esp+None*1+0x30]",
            " call fxpoly1.c::fill_gouraud_shaded_masked_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3630,9 +3806,11 @@",
            " jl local:28",
            " mov eax,m4[esp+None*1+0x10]",
            " shl eax,0x2",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_use_glide]",
            " add esi,eax",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x108]",
            "+test ebx,ebx",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xb4]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -3640,7 +3818,7 @@",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov bl,al",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0xbc]",
            "+mov al,m1[esp+None*1+0xc8]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -3661,12 +3839,12 @@",
            " pop ecx",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x40]",
            "+mov edx,m4[esp+None*1+0x30]",
            " mov eax,edi",
            " call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-jne local:3677",
            "+mov edi,eax",
            "+test eax,eax",
            "+jne local:3855",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3680,15 +3858,15 @@",
            " test eax,eax",
            " jl local:28",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:3699",
            "+je local:3877",
            " mov edx,m4[esp+None*1+0x8]",
            " sub edx,0x2",
            "-mov ebx,0x6",
            "+mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ebx",
            "+idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "+mov eax,edi",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3702,7 +3880,7 @@",
            " mov ebx,m4[edx+eax*4+0x0]",
            " mov eax,m4[esp+None*1+0x10]",
            " mov edx,m4[esi+eax*4+0x0]",
            "-mov eax,ecx",
            "+mov eax,edi",
            " call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3712,12 +3890,12 @@",
            " pop ecx",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x40]",
            "+mov edx,m4[esp+None*1+0x30]",
            " mov eax,edi",
            " call fx3dgpol.c::clip_raw_3d_gouraud_shaded_polygon_",
            " mov ecx,eax",
            " test eax,eax",
            "-jne local:3728",
            "+jne local:3906",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3732,8 +3910,8 @@",
            " jl local:28",
            " xor eax,eax",
            " xor edx,edx",
            "-mov al,m1[esp+None*1+0x108]",
            "-mov dl,m1[esp+None*1+0xbc]",
            "+mov al,m1[esp+None*1+0xb4]",
            "+mov dl,m1[esp+None*1+0xc8]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            "@@ -3750,12 +3928,12 @@",
            " pop ecx",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x40]",
            "+mov edx,m4[esp+None*1+0x30]",
            " mov eax,edi",
            " call fx3dgtpo.c::clip_raw_3d_gouraud_shaded_textured_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-jne local:3766",
            "+mov ebx,eax",
            "+test eax,eax",
            "+jne local:3944",
            " mov m4[None+None*1+fx3dobj1.c::_face_cyclic],0xffffffff",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3769,15 +3947,15 @@",
            " test eax,eax",
            " jl local:28",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:3788",
            "+je local:3966",
            " mov edx,m4[esp+None*1+0x8]",
            " sub edx,0x2",
            "-mov ebx,0x6",
            "+mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ebx",
            "+idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "+mov eax,ebx",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3789,7 +3967,7 @@",
            " mov eax,m4[esp+None*1+0x8]",
            " mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov edx,m4[edx+eax*4+0x0]",
            "-mov eax,ecx",
            "+mov eax,ebx",
            " call fxpoly1.c::fill_gouraud_shaded_masked_textured_polygon_",
            " mov eax,ebp",
            " add esp,0x120",
            "@@ -3798,7 +3976,7 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "-push 0x90a",
            "+push 0x94b",
            " push text:'\\\\library\\\\3dvisual\\\\fx3dobj4.c'",
            " push text:'Illegal render mode encountered in 3D object data.'",
            " call debuglog.c::debug_log_fatal_long_"
          ]
        },
        {
          "symbol": "fx3dobj5.c::draw_partially_visible_secondary_face_",
          "source": "E:\\library\\3dvisual\\fx3dobj5.c",
          "first": "0x4a7da8",
          "second": "0x4a8388",
          "first_instruction_count": 2930,
          "second_instruction_count": 3001,
          "diff": [
            "--- 0x4a7da8",
            "+++ 0x4a8388",
            "@@ -2,9 +2,9 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-sub esp,0x104",
            "+sub esp,0x108",
            " mov ebp,eax",
            "-mov m4[esp+None*1+0x44],edx",
            "+mov m4[esp+None*1+0x0],edx",
            " mov esi,ebx",
            " lea ebp,m4[eax+None*1+0x1]",
            " inc ebp",
            "@@ -12,39 +12,38 @@",
            " xor edx,edx",
            " mov al,m1[ebp+None*1+0xffffffff]",
            " mov dl,m1[ebp+None*1+0xfffffffe]",
            "-mov m4[esp+None*1+0x28],eax",
            "+mov m4[esp+None*1+0x4],eax",
            " cmp edx,0x15",
            "-ja local:2918",
            "-jmp m4[None+edx*4+fx3dobj4.c::draw_partially_visible_primary_face_+0x2f88]",
            "+ja local:2989",
            "+jmp m4[None+edx*4+fx3dobj4.c::draw_partially_visible_primary_face_+0x3258]",
            " xor ecx,ecx",
            " mov cl,m1[ebp+None*1+0x0]",
            " mov edi,0xffffffff",
            " inc ebp",
            " mov cl,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-mov edx,m4[esp+None*1+0x28]",
            "-add edx,edi",
            "-mov m4[esp+None*1+0x28],edx",
            "-cmp edi,edx",
            "+mov eax,m4[esp+None*1+0x4]",
            "+add eax,edi",
            "+mov m4[esp+None*1+0x4],eax",
            "+cmp edi,eax",
            " jne local:35",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov esi,m4[eax+None*1+0x20]",
            "-inc ebp",
            "-test esi,esi",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ebx,m4[eax+None*1+0x20]",
            "+inc ebp",
            "+test ebx,ebx",
            " jne local:23",
            "-xor ebx,ebx",
            "+mov bl,cl",
            " mov edx,m4[eax+None*1+0x10]",
            "-mov bl,cl",
            " mov eax,m4[eax+None*1+0xc]",
            " call fxpoly1.c::set_point_",
            " jmp local:23",
            "@@ -52,45 +51,48 @@",
            " mov al,m1[ebp+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " inc ebp",
            "-mov m1[esp+None*1+0xe0],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x44]",
            "+mov m1[esp+None*1+0xc8],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov ebx,eax",
            "-mov ecx,m4[esp+None*1+0x28]",
            "+mov ecx,m4[esp+None*1+0x4]",
            " dec ecx",
            "-mov m4[esp+None*1+0x28],ecx",
            "-je local:28",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x44]",
            "+mov m4[esp+None*1+0x4],ecx",
            "+je local:28",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov edx,m4[ebx+None*1+0x20]",
            " mov edi,m4[eax+None*1+0x20]",
            "-mov m4[esp+None*1+0x9c],eax",
            "+mov m4[esp+None*1+0x4c],eax",
            " test edx,edi",
            "-je local:79",
            "-mov ebx,m4[esp+None*1+0x9c]",
            "-jmp local:62",
            "+je local:78",
            "+mov ebx,m4[esp+None*1+0x4c]",
            "+jmp local:61",
            " mov esi,edx",
            " or esi,edi",
            "-jne local:117",
            "-mov edi,m4[eax+None*1+0xc]",
            "+jne local:128",
            "+mov edx,m4[ebx+None*1+0x10]",
            "+mov edi,m4[ebx+None*1+0xc]",
            " mov esi,m4[eax+None*1+0x10]",
            "-mov edx,m4[ebx+None*1+0xc]",
            "+mov ebx,m4[eax+None*1+0xc]",
            " mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[esp+None*1+0xa8],edx",
            "-mov ebx,m4[ebx+None*1+0x10]",
            "-test eax,eax",
            "-je local:111",
            "+mov m4[esp+None*1+0x48],edx",
            "+test eax,eax",
            "+je local:121",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test edx,edx",
            "+jne local:103",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push edx",
            "+push edx",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            "@@ -98,45 +100,57 @@",
            " mov eax,m4[None+None*1+0x724310]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "-mov ecx,m4[esp+None*1+0xa8]",
            " mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "-mov edx,edi",
            "-mov al,m1[esp+None*1+0xe0]",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+xor eax,eax",
            "+mov edx,ebx",
            "+mov al,m1[esp+None*1+0xc8]",
            "+inc ecx",
            "+mov ebx,m4[esp+None*1+0x48]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+mov ecx,edi",
            " call line.asm::_draw_glide_line",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ebx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            "+jne local:76",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-mov ebx,m4[esp+None*1+0x9c]",
            "-jmp local:62",
            "-mov al,m1[esp+None*1+0xe0]",
            "-mov ecx,m4[esp+None*1+0xa8]",
            "-mov edx,edi",
            "+mov ebx,m4[esp+None*1+0x4c]",
            "+jmp local:61",
            "+mov al,m1[esp+None*1+0xc8]",
            "+mov edx,ebx",
            "+mov ecx,edi",
            "+mov ebx,m4[esp+None*1+0x48]",
            " call line.asm::_draw_line",
            "-mov ebx,m4[esp+None*1+0x9c]",
            "-jmp local:62",
            "-lea edx,m4[esp+None*1+0x4]",
            "-mov m4[esp+None*1+0x4],eax",
            "-mov eax,esp",
            "-mov m4[esp+None*1+0x0],ebx",
            "+mov ebx,m4[esp+None*1+0x4c]",
            "+jmp local:61",
            "+lea edx,m4[esp+None*1+0x18]",
            "+mov m4[esp+None*1+0x18],eax",
            "+lea eax,m4[esp+None*1+0x14]",
            "+mov m4[esp+None*1+0x14],ebx",
            " call 3dline.c::clip_raw_3d_line_",
            " test eax,eax",
            "-je local:77",
            "-mov eax,m4[esp+None*1+0x0]",
            "-mov ebx,m4[esp+None*1+0x0]",
            "-mov edi,m4[esp+None*1+0x4]",
            "-mov esi,m4[esp+None*1+0x4]",
            "+je local:76",
            "+mov ebx,m4[esp+None*1+0x14]",
            "+mov eax,m4[esp+None*1+0x18]",
            "+mov esi,m4[esp+None*1+0x18]",
            "+mov edi,m4[esp+None*1+0x14]",
            " mov ecx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov ebx,m4[ebx+None*1+0x10]",
            " mov eax,m4[eax+None*1+0xc]",
            "-mov ebx,m4[ebx+None*1+0x10]",
            "+mov esi,m4[esi+None*1+0x10]",
            " mov edi,m4[edi+None*1+0xc]",
            "-mov esi,m4[esi+None*1+0x10]",
            "-mov m4[esp+None*1+0xa4],eax",
            "+mov m4[esp+None*1+0x64],eax",
            " test ecx,ecx",
            "-je local:157",
            "+je local:178",
            "+mov eax,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test eax,eax",
            "+jne local:161",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push eax",
            "+push eax",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            "@@ -144,42 +158,49 @@",
            " mov eax,m4[None+None*1+0x724310]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "-mov ecx,m4[esp+None*1+0xa4]",
            " mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "-mov edx,edi",
            "-mov al,m1[esp+None*1+0xe0]",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+mov ecx,edi",
            "+xor eax,eax",
            "+inc edx",
            "+mov al,m1[esp+None*1+0xc8]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edx",
            "+mov edx,m4[esp+None*1+0x64]",
            " call line.asm::_draw_glide_line",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ecx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+jne local:76",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-mov ebx,m4[esp+None*1+0x9c]",
            "-jmp local:62",
            "-mov ecx,m4[esp+None*1+0xa4]",
            "-xor eax,eax",
            "-mov edx,edi",
            "-mov al,m1[esp+None*1+0xe0]",
            "+mov ebx,m4[esp+None*1+0x4c]",
            "+jmp local:61",
            "+mov edx,m4[esp+None*1+0x64]",
            "+xor eax,eax",
            "+mov ecx,edi",
            "+mov al,m1[esp+None*1+0xc8]",
            " call line.asm::_draw_line",
            "-mov ebx,m4[esp+None*1+0x9c]",
            "-jmp local:62",
            "-mov edx,m4[esp+None*1+0x44]",
            "+mov ebx,m4[esp+None*1+0x4c]",
            "+jmp local:61",
            "+mov edx,m4[esp+None*1+0x0]",
            " mov ecx,0xffffffff",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m1[esp+None*1+0x100],al",
            "+mov m1[esp+None*1+0xf0],al",
            " xor eax,eax",
            " xor edi,edi",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "+mov edx,m4[esp+None*1+0x0]",
            " mov esi,eax",
            " mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "+mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:217",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:240",
            " mov m4[ebx+None*1+0x24],eax",
            " mov eax,m4[ebx+None*1+0x20]",
            " and ecx,eax",
            "@@ -187,53 +208,55 @@",
            " test ecx,ecx",
            " jne local:28",
            " test edi,edi",
            "-je local:228",
            "+je local:251",
            " mov ecx,vertex.c::_vertex_buffer",
            " mov edx,esi",
            " mov eax,edi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            "-test eax,eax",
            "-je local:28",
            "-xor edx,edx",
            "-mov dl,m1[esp+None*1+0x100]",
            "-mov dl,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "-and edx,0xff",
            "-mov ebx,edx",
            "-mov ecx,edx",
            "-shl ebx,0x18",
            "-shl ecx,0x10",
            "-add ebx,ecx",
            "-mov ecx,edx",
            "-shl ecx,0x8",
            "-add ecx,ebx",
            "-add edx,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:178",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0x100]",
            "+mov ebx,eax",
            "+test eax,eax",
            "+je local:28",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xf0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " and eax,0xff",
            " mov ecx,eax",
            " mov edx,eax",
            " shl ecx,0x18",
            " shl edx,0x10",
            "+add edx,ecx",
            "+mov ecx,eax",
            "+shl ecx,0x8",
            "+add edx,ecx",
            "+add edx,eax",
            "+mov eax,ebx",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:199",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xf0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            "+mov edx,eax",
            "+mov ecx,eax",
            "+shl edx,0x18",
            "+shl ecx,0x10",
            " add ecx,edx",
            " mov edx,eax",
            " shl edx,0x8",
            "@@ -242,568 +265,41 @@",
            " mov eax,esi",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x44]",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x0]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " mov ecx,0xffffffff",
            "-mov m1[esp+None*1+0xb8],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xd4],al",
            "-xor eax,eax",
            "-xor edi,edi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov esi,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "-dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:305",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-and ecx,eax",
            "-or edi,eax",
            "-test ecx,ecx",
            "-jne local:28",
            "-test edi,edi",
            "-je local:316",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,esi",
            "-mov eax,edi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-je local:28",
            "-xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0xd4]",
            "-mov dl,m1[esp+None*1+0xb8]",
            "-mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:267",
            "-xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0xd4]",
            "-mov dl,m1[esp+None*1+0xb8]",
            "-mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,esi",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xc0],al",
            "-xor eax,eax",
            "-xor edi,edi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov esi,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "-dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:388",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-and ecx,eax",
            "-or edi,eax",
            "-test ecx,ecx",
            "-jne local:28",
            "-test edi,edi",
            "-je local:399",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,esi",
            "-mov eax,edi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-test eax,eax",
            "-je local:28",
            "-xor edx,edx",
            "-mov dl,m1[esp+None*1+0xc0]",
            "-mov dl,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "-and edx,0xff",
            "-mov ebx,edx",
            "-mov ecx,edx",
            "-shl ebx,0x18",
            "-shl ecx,0x10",
            "-add ebx,ecx",
            "-mov ecx,edx",
            "-shl ecx,0x8",
            "-add ecx,ebx",
            "-add edx,ecx",
            "-call fxpoly1.c::fill_fine_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:349",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xc0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-and eax,0xff",
            "-mov ecx,eax",
            "-mov edx,eax",
            "-shl ecx,0x18",
            "-shl edx,0x10",
            "-add ecx,edx",
            "-mov edx,eax",
            "-shl edx,0x8",
            "-add edx,ecx",
            "-add edx,eax",
            "-mov eax,esi",
            "-call fxpoly1.c::fill_fine_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xe4],al",
            "-xor eax,eax",
            "-xor edi,edi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov esi,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "-dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:476",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-and ecx,eax",
            "-or edi,eax",
            "-test ecx,ecx",
            "-jne local:28",
            "-test edi,edi",
            "-je local:487",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,esi",
            "-mov eax,edi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov ebx,eax",
            "-test eax,eax",
            "-je local:28",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xe4]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-and eax,0xff",
            "-mov ecx,eax",
            "-mov edx,eax",
            "-shl ecx,0x18",
            "-shl edx,0x10",
            "-add ecx,edx",
            "-mov edx,eax",
            "-shl edx,0x8",
            "-add edx,ecx",
            "-add edx,eax",
            "-mov eax,ebx",
            "-call fxpoly1.c::fill_coarse_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:435",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xe4]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-and eax,0xff",
            "-mov ecx,eax",
            "-mov edx,eax",
            "-shl ecx,0x18",
            "-shl edx,0x10",
            "-add ecx,edx",
            "-mov edx,eax",
            "-shl edx,0x8",
            "-add edx,ecx",
            "-add edx,eax",
            "-mov eax,esi",
            "-call fxpoly1.c::fill_coarse_meshed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x44]",
            "-inc ebp",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "+mov m1[esp+None*1+0x104],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xfc],al",
            "+xor eax,eax",
            " xor esi,esi",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            " mov edi,eax",
            " mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "+mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:547",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:328",
            " mov m4[ebx+None*1+0x24],eax",
            " mov eax,m4[ebx+None*1+0x20]",
            " and ecx,eax",
            " or esi,eax",
            "-cmp m4[None+None*1+0xafaedc],0x2",
            "-je local:28",
            " test ecx,ecx",
            " jne local:28",
            " test esi,esi",
            "-jne local:568",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:558",
            "-mov ebx,0x32",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_glass_colour]",
            "-mov eax,edi",
            "-call fxpoly1.c::_3dfx_fill_translucent_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or esi,eax",
            "-jmp local:520",
            "-mov edx,3dpal.c::_remap_glass_colours",
            "-mov eax,edi",
            "-call fxpoly1.c::fill_translucent_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,edi",
            "-mov eax,esi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-test eax,eax",
            "-je local:28",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:586",
            "-mov ebx,0x32",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_glass_colour]",
            "-call fxpoly1.c::_3dfx_fill_translucent_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,3dpal.c::_remap_glass_colours",
            "-call fxpoly1.c::fill_translucent_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x44]",
            "-inc ebp",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0xffffffff]",
            "-xor edi,edi",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov esi,eax",
            "-mov ebx,eax",
            "-mov edx,m4[esp+None*1+0x28]",
            "-dec edx",
            "-mov m4[esp+None*1+0x28],edx",
            "-jne local:634",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov m4[ebx+None*1+0x24],edx",
            "-mov edx,m4[None+None*1+0xafaedc]",
            "-and ecx,eax",
            "-or edi,eax",
            "-cmp edx,0x2",
            "-je local:28",
            "-test ecx,ecx",
            "-jne local:28",
            "-test edi,edi",
            "-je local:646",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,esi",
            "-mov eax,edi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-test eax,eax",
            "-je local:28",
            "-call fxpoly1.c::fill_translucent_heat_hazed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:605",
            "-mov eax,esi",
            "-call fxpoly1.c::fill_translucent_heat_hazed_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov m1[esp+None*1+0xbc],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xd8],al",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x10],eax",
            "-xor eax,eax",
            "-xor esi,esi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov edi,eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "-dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:722",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov m4[ebx+None*1+0x24],0x0",
            "-and ecx,eax",
            "-or esi,eax",
            "-test ecx,ecx",
            "-jne local:28",
            "-mov eax,m4[esp+None*1+0x10]",
            "-mov edx,m4[esp+None*1+0x10]",
            "-mov ecx,0x6",
            "-shl eax,0x2",
            "-sub edx,0x2",
            "-mov m4[esp+None*1+0x6c],eax",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-idiv ecx",
            "-add eax,0x146",
            "-mov m4[esp+None*1+0x70],eax",
            "-test esi,esi",
            "-jne local:775",
            "-test m1[None+None*1+0xafaed4],0x1",
            "-je local:756",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:743",
            "-mov edx,eax",
            "-mov eax,edi",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or esi,eax",
            "-jmp local:676",
            "-mov edx,m4[esp+None*1+0x6c]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-add eax,edx",
            "-mov edx,m4[eax+None*1+0x0]",
            "-mov eax,edi",
            "-call fxpoly1.c::fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-xor edx,edx",
            "-mov al,m1[esp+None*1+0xd8]",
            "-mov dl,m1[esp+None*1+0xbc]",
            "-mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,edi",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-test m1[None+None*1+0xafaed4],0x1",
            "-je local:806",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,edi",
            "-mov eax,esi",
            "-call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            "-test eax,eax",
            "-je local:28",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:794",
            "-mov edx,m4[esp+None*1+0x70]",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ebx,m4[esp+None*1+0x6c]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-add edx,ebx",
            "-mov edx,m4[edx+None*1+0x0]",
            "-call fxpoly1.c::fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "+je local:339",
            " mov ecx,vertex.c::_vertex_buffer",
            " mov edx,edi",
            " mov eax,esi",
            "@@ -813,8 +309,8 @@",
            " je local:28",
            " xor eax,eax",
            " xor edx,edx",
            "-mov al,m1[esp+None*1+0xd8]",
            "-mov dl,m1[esp+None*1+0xbc]",
            "+mov al,m1[esp+None*1+0xfc]",
            "+mov dl,m1[esp+None*1+0x104]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            "@@ -824,68 +320,426 @@",
            " mov eax,ecx",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x44]",
            "-xor eax,eax",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or esi,eax",
            "+jmp local:290",
            "+xor eax,eax",
            "+xor edx,edx",
            "+mov al,m1[esp+None*1+0xfc]",
            "+mov dl,m1[esp+None*1+0x104]",
            "+mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,edi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x0]",
            " mov ecx,0xffffffff",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m4[esp+None*1+0x60],eax",
            "+mov m1[esp+None*1+0xf8],al",
            " xor eax,eax",
            " xor esi,esi",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "+mov edx,m4[esp+None*1+0x0]",
            " mov edi,eax",
            " mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "+mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:893",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov m4[ebx+None*1+0x24],0x0",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:413",
            "+mov m4[ebx+None*1+0x24],eax",
            "+mov eax,m4[ebx+None*1+0x20]",
            " and ecx,eax",
            " or esi,eax",
            " test ecx,ecx",
            " jne local:28",
            "-mov eax,m4[esp+None*1+0x60]",
            "-mov edx,m4[esp+None*1+0x60]",
            "+test esi,esi",
            "+je local:424",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,edi",
            "+mov eax,esi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov ebx,eax",
            "+test eax,eax",
            "+je local:28",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xf8]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            "+mov ecx,eax",
            "+mov edx,eax",
            "+shl ecx,0x18",
            "+shl edx,0x10",
            "+add ecx,edx",
            "+mov edx,eax",
            "+shl edx,0x8",
            "+add edx,ecx",
            "+add edx,eax",
            "+mov eax,ebx",
            "+call fxpoly1.c::fill_fine_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or esi,eax",
            "+jmp local:372",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xf8]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            "+mov ecx,eax",
            "+mov edx,eax",
            "+shl ecx,0x18",
            "+shl edx,0x10",
            "+add edx,ecx",
            "+mov ecx,eax",
            "+shl ecx,0x8",
            "+add edx,ecx",
            "+add edx,eax",
            "+mov eax,edi",
            "+call fxpoly1.c::fill_fine_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xf4],al",
            "+xor eax,eax",
            "+xor esi,esi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov edi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x4]",
            "+dec eax",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:501",
            "+mov m4[ebx+None*1+0x24],eax",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+and ecx,eax",
            "+or esi,eax",
            "+test ecx,ecx",
            "+jne local:28",
            "+test esi,esi",
            "+je local:512",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,edi",
            "+mov eax,esi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov ebx,eax",
            "+test eax,eax",
            "+je local:28",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xf4]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            "+mov edx,eax",
            "+mov ecx,eax",
            "+shl edx,0x18",
            "+shl ecx,0x10",
            "+add edx,ecx",
            "+mov ecx,eax",
            "+shl ecx,0x8",
            "+add edx,ecx",
            "+add edx,eax",
            "+mov eax,ebx",
            "+call fxpoly1.c::fill_coarse_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or esi,eax",
            "+jmp local:460",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xf4]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            "+mov edx,eax",
            "+mov ecx,eax",
            "+shl edx,0x18",
            "+shl ecx,0x10",
            "+add ecx,edx",
            "+mov edx,eax",
            "+shl edx,0x8",
            "+add edx,ecx",
            "+add edx,eax",
            "+mov eax,edi",
            "+call fxpoly1.c::fill_coarse_meshed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x0]",
            "+inc ebp",
            "+xor eax,eax",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0xffffffff]",
            "+xor edi,edi",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov esi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x4]",
            "+dec eax",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:572",
            "+mov m4[ebx+None*1+0x24],eax",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+and ecx,eax",
            "+or edi,eax",
            "+cmp m4[None+None*1+0xafaedc],0x2",
            "+je local:28",
            "+test ecx,ecx",
            "+jne local:28",
            "+test edi,edi",
            "+jne local:593",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:583",
            "+mov ebx,0x32",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_glass_colour]",
            "+mov eax,esi",
            "+call fxpoly1.c::_3dfx_fill_translucent_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:545",
            "+mov edx,3dpal.c::_remap_glass_colours",
            "+mov eax,esi",
            "+call fxpoly1.c::fill_translucent_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,esi",
            "+mov eax,edi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+test eax,eax",
            "+je local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:611",
            "+mov ebx,0x32",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_glass_colour]",
            "+call fxpoly1.c::_3dfx_fill_translucent_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,3dpal.c::_remap_glass_colours",
            "+call fxpoly1.c::fill_translucent_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x0]",
            "+inc ebp",
            "+xor eax,eax",
            "+mov esi,0xffffffff",
            "+mov al,m1[ebp+None*1+0xffffffff]",
            "+xor edi,edi",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[esp+None*1+0xa8],eax",
            "+mov ebx,eax",
            "+mov edx,m4[esp+None*1+0x4]",
            "+dec edx",
            "+mov m4[esp+None*1+0x4],edx",
            "+jne local:659",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+and esi,eax",
            "+or edi,eax",
            "+mov eax,m4[None+None*1+0xafaedc]",
            "+mov m4[ebx+None*1+0x24],edx",
            "+cmp eax,0x2",
            "+je local:28",
            "+test esi,esi",
            "+jne local:28",
            "+test edi,edi",
            "+je local:671",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,m4[esp+None*1+0xa8]",
            "+mov eax,edi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+test eax,eax",
            "+je local:28",
            "+call fxpoly1.c::fill_translucent_heat_hazed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and esi,eax",
            "+or edi,eax",
            "+jmp local:630",
            "+mov eax,m4[esp+None*1+0xa8]",
            "+call fxpoly1.c::fill_translucent_heat_hazed_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m1[esp+None*1+0xd4],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0x100],al",
            "+xor eax,eax",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x54],eax",
            "+xor eax,eax",
            "+xor esi,esi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edi,eax",
            "+mov ebx,eax",
            "+mov edx,m4[esp+None*1+0x4]",
            "+dec edx",
            "+mov m4[esp+None*1+0x4],edx",
            "+jne local:747",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov m4[ebx+None*1+0x24],edx",
            "+and ecx,eax",
            "+or esi,eax",
            "+test ecx,ecx",
            "+jne local:28",
            "+mov eax,m4[esp+None*1+0x54]",
            "+mov edx,m4[esp+None*1+0x54]",
            " mov ecx,0x6",
            " shl eax,0x2",
            " sub edx,0x2",
            "-mov m4[esp+None*1+0xc],eax",
            "+mov m4[esp+None*1+0x38],eax",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv ecx",
            " add eax,0x146",
            "-mov m4[esp+None*1+0x74],eax",
            "+mov m4[esp+None*1+0x50],eax",
            " test esi,esi",
            "-jne local:927",
            "+jne local:801",
            " test m1[None+None*1+0xafaed4],0x1",
            "-je local:28",
            "+je local:782",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:914",
            "+je local:769",
            " mov edx,eax",
            " mov eax,edi",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -901,6 +755,7 @@",
            " inc ebp",
            " mov m4[ebx+None*1+0x18],eax",
            " xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            " mov al,m1[ebp+None*1+0x1]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            "@@ -911,22 +766,41 @@",
            " mov ebx,m4[ebx+None*1+0x24]",
            " and ecx,eax",
            " or esi,eax",
            "-jmp local:847",
            "-mov edx,m4[esp+None*1+0xc]",
            "+jmp local:700",
            "+mov esi,m4[esp+None*1+0x38]",
            " mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-add eax,edx",
            "+add eax,esi",
            " mov edx,m4[eax+None*1+0x0]",
            " mov eax,edi",
            "-call fxpoly1.c::fill_masked_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "+call fxpoly1.c::fill_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+xor edx,edx",
            "+mov al,m1[esp+None*1+0x100]",
            "+mov dl,m1[esp+None*1+0xd4]",
            "+mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,edi",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " test m1[None+None*1+0xafaed4],0x1",
            "-je local:28",
            "+je local:832",
            " mov ecx,vertex.c::_vertex_buffer",
            " mov edx,edi",
            " mov eax,esi",
            "@@ -934,23 +808,175 @@",
            " test eax,eax",
            " je local:28",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:946",
            "-mov edx,m4[esp+None*1+0x74]",
            "+je local:820",
            "+mov edx,m4[esp+None*1+0x50]",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ebx,m4[esp+None*1+0xc]",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ecx,m4[esp+None*1+0x38]",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+add edx,ecx",
            "+mov edx,m4[edx+None*1+0x0]",
            "+call fxpoly1.c::fill_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,edi",
            "+mov eax,esi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov ecx,eax",
            "+test eax,eax",
            "+je local:28",
            "+xor eax,eax",
            "+xor edx,edx",
            "+mov al,m1[esp+None*1+0x100]",
            "+mov dl,m1[esp+None*1+0xd4]",
            "+mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x0]",
            "+xor eax,eax",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x88],eax",
            "+xor eax,eax",
            "+xor esi,esi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov edi,eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x4]",
            "+dec eax",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:919",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov m4[ebx+None*1+0x24],0x0",
            "+and ecx,eax",
            "+or esi,eax",
            "+test ecx,ecx",
            "+jne local:28",
            "+mov eax,m4[esp+None*1+0x88]",
            "+mov edx,m4[esp+None*1+0x88]",
            "+mov ecx,0x6",
            "+shl eax,0x2",
            "+sub edx,0x2",
            "+mov m4[esp+None*1+0x98],eax",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+add eax,0x146",
            "+mov m4[esp+None*1+0x3c],eax",
            "+test esi,esi",
            "+jne local:953",
            "+test m1[None+None*1+0xafaed4],0x1",
            "+je local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:940",
            "+mov edx,eax",
            "+mov eax,edi",
            "+call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or esi,eax",
            "+jmp local:873",
            "+mov eax,m4[esp+None*1+0x98]",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+add edx,eax",
            "+mov eax,edi",
            "+mov edx,m4[edx+None*1+0x0]",
            "+call fxpoly1.c::fill_masked_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+test m1[None+None*1+0xafaed4],0x1",
            "+je local:28",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,edi",
            "+mov eax,esi",
            "+call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            "+test eax,eax",
            "+je local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:972",
            "+mov edx,m4[esp+None*1+0x3c]",
            "+call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ebx,m4[esp+None*1+0x98]",
            " mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " add edx,ebx",
            " mov edx,m4[edx+None*1+0x0]",
            " call fxpoly1.c::fill_masked_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -970,197 +996,272 @@",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov cl,al",
            "-mov edx,m4[esp+None*1+0x28]",
            "-add edx,edi",
            "-mov m4[esp+None*1+0x28],edx",
            "-cmp edi,edx",
            "-je local:28",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov esi,m4[eax+None*1+0x20]",
            "-inc ebp",
            "-test esi,esi",
            "-jne local:972",
            "-xor ebx,ebx",
            "+mov eax,m4[esp+None*1+0x4]",
            "+add eax,edi",
            "+mov m4[esp+None*1+0x4],eax",
            "+cmp edi,eax",
            "+je local:28",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov ebx,m4[eax+None*1+0x20]",
            "+inc ebp",
            "+test ebx,ebx",
            "+jne local:998",
            "+mov bl,cl",
            " mov edx,m4[eax+None*1+0x10]",
            "-mov bl,cl",
            " mov eax,m4[eax+None*1+0xc]",
            " call fxpoly1.c::set_point_",
            "-jmp local:972",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov m1[esp+None*1+0xb4],al",
            "+jmp local:998",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov m1[esp+None*1+0xd8],al",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x1]",
            " mov edx,m4[esi+eax*4+0x0]",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0xb4]",
            "+mov al,m1[esp+None*1+0xd8]",
            " inc ebp",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " inc ebp",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov m1[esp+None*1+0xb4],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x44]",
            "+mov m1[esp+None*1+0xd8],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov ebx,eax",
            "-mov ecx,m4[esp+None*1+0x28]",
            "-dec ecx",
            "-mov m4[esp+None*1+0x28],ecx",
            "-je local:28",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x44]",
            "+mov esi,m4[esp+None*1+0x4]",
            "+dec esi",
            "+mov m4[esp+None*1+0x4],esi",
            "+je local:28",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            " mov edx,m4[ebx+None*1+0x20]",
            "-mov edi,m4[eax+None*1+0x20]",
            "-mov m4[esp+None*1+0xa0],eax",
            "-test edx,edi",
            "-je local:1030",
            "-mov ebx,m4[esp+None*1+0xa0]",
            "-jmp local:1013",
            "+mov ecx,m4[eax+None*1+0x20]",
            "+mov m4[esp+None*1+0x10],eax",
            "+test edx,ecx",
            "+je local:1055",
            "+mov ebx,m4[esp+None*1+0x10]",
            "+jmp local:1038",
            " mov esi,edx",
            "-or esi,edi",
            "-jne local:1070",
            "+or esi,ecx",
            "+jne local:1105",
            " mov edx,m4[ebx+None*1+0x10]",
            " mov edi,m4[ebx+None*1+0xc]",
            " mov esi,m4[eax+None*1+0x10]",
            " mov ebx,m4[eax+None*1+0xc]",
            " mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[esp+None*1+0xac],edx",
            "-test eax,eax",
            "-je local:1063",
            "+mov m4[esp+None*1+0x60],edx",
            "+test eax,eax",
            "+je local:1098",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test edx,edx",
            "+jne local:1080",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push edx",
            "+push edx",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbLock@24",
            " mov eax,m4[None+None*1+0x724310]",
            "-mov edx,ebx",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+xor eax,eax",
            "+mov edx,ebx",
            "+mov al,m1[esp+None*1+0xd8]",
            "+inc ecx",
            "+mov ebx,m4[esp+None*1+0x60]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            " mov ecx,edi",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "-mov ebx,m4[esp+None*1+0xac]",
            "-mov al,m1[esp+None*1+0xb4]",
            " call line.asm::_draw_glide_line",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ebx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            "+jne local:1053",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-mov ebx,m4[esp+None*1+0xa0]",
            "-jmp local:1013",
            "-mov al,m1[esp+None*1+0xb4]",
            "+mov ebx,m4[esp+None*1+0x10]",
            "+jmp local:1038",
            "+mov al,m1[esp+None*1+0xd8]",
            " mov edx,ebx",
            " mov ecx,edi",
            "-mov ebx,m4[esp+None*1+0xac]",
            "+mov ebx,m4[esp+None*1+0x60]",
            " call line.asm::_draw_line",
            "-mov ebx,m4[esp+None*1+0xa0]",
            "-jmp local:1013",
            "-lea edx,m4[esp+None*1+0x4]",
            "-mov m4[esp+None*1+0x4],eax",
            "-mov eax,esp",
            "-mov m4[esp+None*1+0x0],ebx",
            "+mov ebx,m4[esp+None*1+0x10]",
            "+jmp local:1038",
            "+lea edx,m4[esp+None*1+0x18]",
            "+mov m4[esp+None*1+0x18],eax",
            "+lea eax,m4[esp+None*1+0x14]",
            "+mov m4[esp+None*1+0x14],ebx",
            " call 3dline.c::clip_raw_3d_line_",
            " test eax,eax",
            "-je local:1028",
            "-mov eax,m4[esp+None*1+0x0]",
            "-mov ebx,m4[esp+None*1+0x4]",
            "-mov esi,m4[esp+None*1+0x4]",
            "-mov edi,m4[esp+None*1+0x0]",
            "-mov ecx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov eax,m4[eax+None*1+0x10]",
            "+je local:1053",
            "+mov eax,m4[esp+None*1+0x14]",
            "+mov edi,m4[esp+None*1+0x14]",
            "+mov ebx,m4[esp+None*1+0x18]",
            "+mov esi,m4[esp+None*1+0x18]",
            "+mov eax,m4[eax+None*1+0xc]",
            "+mov edi,m4[edi+None*1+0x10]",
            " mov ebx,m4[ebx+None*1+0xc]",
            "+mov m4[esp+None*1+0xc],eax",
            "+mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            " mov esi,m4[esi+None*1+0x10]",
            "-mov edi,m4[edi+None*1+0xc]",
            "-mov m4[esp+None*1+0x24],eax",
            "-test ecx,ecx",
            "-je local:1111",
            "+test eax,eax",
            "+je local:1156",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test edx,edx",
            "+jne local:1138",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push edx",
            "+push edx",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbLock@24",
            " mov eax,m4[None+None*1+0x724310]",
            "-mov edx,ebx",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "-mov ecx,edi",
            " mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "-mov ebx,m4[esp+None*1+0x24]",
            "-mov al,m1[esp+None*1+0xb4]",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+xor eax,eax",
            "+mov edx,ebx",
            "+mov al,m1[esp+None*1+0xd8]",
            "+inc ecx",
            "+mov ebx,edi",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+mov ecx,m4[esp+None*1+0xc]",
            " call line.asm::_draw_glide_line",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ebx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            "+jne local:1053",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-mov ebx,m4[esp+None*1+0xa0]",
            "-jmp local:1013",
            "+mov ebx,m4[esp+None*1+0x10]",
            "+jmp local:1038",
            "+mov al,m1[esp+None*1+0xd8]",
            "+mov ecx,m4[esp+None*1+0xc]",
            " mov edx,ebx",
            "-xor eax,eax",
            "-mov ecx,edi",
            "-mov al,m1[esp+None*1+0xb4]",
            "-mov ebx,m4[esp+None*1+0x24]",
            "+mov ebx,edi",
            " call line.asm::_draw_line",
            "-mov ebx,m4[esp+None*1+0xa0]",
            "-jmp local:1013",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xf0],al",
            "+mov ebx,m4[esp+None*1+0x10]",
            "+jmp local:1038",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xb8],al",
            " xor eax,eax",
            " mov ecx,0xffffffff",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m4[esp+None*1+0x8],eax",
            "+mov m4[esp+None*1+0xa4],eax",
            " xor eax,eax",
            " xor edi,edi",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov m4[esp+None*1+0x84],eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m4[esp+None*1+0x20],eax",
            " mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "+mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:1204",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:1242",
            " mov m4[ebx+None*1+0x24],eax",
            " mov eax,m4[ebx+None*1+0x20]",
            " and ecx,eax",
            " or edi,eax",
            "-mov eax,m4[esp+None*1+0x8]",
            "+mov eax,m4[esp+None*1+0xa4]",
            " shl eax,0x2",
            " add esi,eax",
            "-mov edx,m4[esp+None*1+0x84]",
            "+mov edx,m4[esp+None*1+0x20]",
            " mov eax,m4[esi+None*1+0x0]",
            " mov m4[edx+None*1+0x1c],eax",
            " test ecx,ecx",
            " jne local:28",
            " test edi,edi",
            "-je local:1215",
            "+jne local:1253",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+mov cl,m1[esp+None*1+0xb8]",
            "+mov edx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ebx,eax",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+and ebx,0xff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+shl ebx,0x18",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,m4[esp+None*1+0x20]",
            "+add edx,ebx",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:1181",
            " mov ecx,vertex.c::_vertex_buffer",
            " mov eax,edi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            " mov edi,eax",
            " test eax,eax",
            " je local:28",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+test ecx,ecx",
            "+je local:1263",
            " xor ecx,ecx",
            "-mov cl,m1[esp+None*1+0xf0]",
            "+mov cl,m1[esp+None*1+0xb8]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -1196,112 +1297,101 @@",
            " add edx,ebx",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m1[esp+None*1+0xe0],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xe8],al",
            "+xor eax,eax",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0xa0],eax",
            "+xor eax,eax",
            "+xor edi,edi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m4[esp+None*1+0x68],eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x4]",
            "+dec eax",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:1374",
            " mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "+mov eax,m4[ebx+None*1+0x20]",
            " and ecx,eax",
            " or edi,eax",
            "-jmp local:1137",
            "-mov cl,m1[esp+None*1+0xf0]",
            "-mov edx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-xor ebx,ebx",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shl ebx,0x18",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-xor edx,edx",
            "-mov dl,al",
            "-mov eax,m4[esp+None*1+0x84]",
            "-add edx,ebx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov m1[esp+None*1+0xe8],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xdc],al",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x4c],eax",
            "-xor eax,eax",
            "-xor edi,edi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov m4[esp+None*1+0x18],eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "-dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:1331",
            "-mov m4[ebx+None*1+0x24],eax",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-and ecx,eax",
            "-or edi,eax",
            "-mov eax,m4[esp+None*1+0x4c]",
            "+mov eax,m4[esp+None*1+0xa0]",
            " shl eax,0x2",
            " add esi,eax",
            "-mov edx,m4[esp+None*1+0x18]",
            "+mov edx,m4[esp+None*1+0x68]",
            " mov eax,m4[esi+None*1+0x0]",
            " mov m4[edx+None*1+0x1c],eax",
            " test ecx,ecx",
            " jne local:28",
            " test edi,edi",
            "-je local:1342",
            "+jne local:1385",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+mov edx,eax",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xe8]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xe0]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,m4[esp+None*1+0x68]",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:1326",
            " mov ecx,vertex.c::_vertex_buffer",
            " mov eax,edi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            " mov ecx,eax",
            " test eax,eax",
            " je local:28",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xdc]",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xe8]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -1309,7 +1399,7 @@",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov bl,al",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0xe8]",
            "+mov al,m1[esp+None*1+0xe0]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -1323,130 +1413,90 @@",
            " mov eax,ecx",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:1278",
            "-mov edx,eax",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xdc]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xe8]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,m4[esp+None*1+0x18]",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xc8],al",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xdc],al",
            " xor eax,eax",
            " mov ecx,0xffffffff",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m4[esp+None*1+0x34],eax",
            "+mov m4[esp+None*1+0x8c],eax",
            " xor eax,eax",
            " xor edi,edi",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "+mov edx,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x80],eax",
            " mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "+mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:1454",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:1504",
            " mov m4[ebx+None*1+0x24],eax",
            " mov eax,m4[ebx+None*1+0x20]",
            " and ecx,eax",
            " or edi,eax",
            " test ecx,ecx",
            " jne local:28",
            "-mov eax,m4[esp+None*1+0x34]",
            "+mov eax,m4[esp+None*1+0x8c]",
            " shl eax,0x2",
            " add esi,eax",
            " test edi,edi",
            "-je local:1465",
            "+je local:1515",
            " mov ecx,vertex.c::_vertex_buffer",
            " mov edx,m4[esp+None*1+0x80]",
            " mov eax,edi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-je local:28",
            "-xor ebx,ebx",
            "-mov bl,m1[esp+None*1+0xc8]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov edi,eax",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "-and edi,0xff",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-shl edi,0x18",
            "+test eax,eax",
            "+je local:28",
            "+xor ecx,ecx",
            "+mov cl,m1[esp+None*1+0xdc]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ebx,eax",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+and ebx,0xff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+shl ebx,0x18",
            " and eax,0xff",
            " shl eax,0x10",
            " mov edx,m4[esi+None*1+0x0]",
            "-add edi,eax",
            "-mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " and eax,0xff",
            " shl eax,0x8",
            " mov edx,m4[esi+None*1+0x0]",
            "-add edi,eax",
            "-mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " xor edx,edx",
            " mov dl,al",
            "-mov eax,ecx",
            "-add edx,edi",
            "+mov eax,edi",
            "+add edx,ebx",
            " call fxpoly1.c::fill_fine_meshed_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -1462,21 +1512,21 @@",
            " mov ebx,m4[ebx+None*1+0x24]",
            " and ecx,eax",
            " or edi,eax",
            "-jmp local:1389",
            "-mov cl,m1[esp+None*1+0xc8]",
            "+jmp local:1439",
            "+mov cl,m1[esp+None*1+0xdc]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ebx,eax",
            "+xor ebx,ebx",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-and ebx,0xff",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " shl ebx,0x18",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " and eax,0xff",
            " shl eax,0x10",
            " mov edx,m4[esi+None*1+0x0]",
            "@@ -1499,54 +1549,54 @@",
            " add edx,ebx",
            " call fxpoly1.c::fill_fine_meshed_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xf4],al",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xd0],al",
            " xor eax,eax",
            " mov ecx,0xffffffff",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m4[esp+None*1+0x48],eax",
            "+mov m4[esp+None*1+0x9c],eax",
            " xor eax,eax",
            " xor edi,edi",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov m4[esp+None*1+0x7c],eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m4[esp+None*1+0x94],eax",
            " mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "+mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:1590",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:1640",
            " mov m4[ebx+None*1+0x24],eax",
            " mov eax,m4[ebx+None*1+0x20]",
            " and ecx,eax",
            " or edi,eax",
            " test ecx,ecx",
            " jne local:28",
            "-mov eax,m4[esp+None*1+0x48]",
            "+mov eax,m4[esp+None*1+0x9c]",
            " shl eax,0x2",
            " add esi,eax",
            " test edi,edi",
            "-je local:1601",
            "+je local:1651",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x7c]",
            "+mov edx,m4[esp+None*1+0x94]",
            " mov eax,edi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            " mov edi,eax",
            " test eax,eax",
            " je local:28",
            " xor ecx,ecx",
            "-mov cl,m1[esp+None*1+0xf4]",
            "+mov cl,m1[esp+None*1+0xd0]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -1582,7 +1632,7 @@",
            " add edx,ebx",
            " call fxpoly1.c::fill_coarse_meshed_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -1598,8 +1648,8 @@",
            " mov ebx,m4[ebx+None*1+0x24]",
            " and ecx,eax",
            " or edi,eax",
            "-jmp local:1525",
            "-mov cl,m1[esp+None*1+0xf4]",
            "+jmp local:1575",
            "+mov cl,m1[esp+None*1+0xd0]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -1631,248 +1681,53 @@",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " xor edx,edx",
            " mov dl,al",
            "-mov eax,m4[esp+None*1+0x7c]",
            "+mov eax,m4[esp+None*1+0x94]",
            " add edx,ebx",
            " call fxpoly1.c::fill_coarse_meshed_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xcc],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov m1[esp+None*1+0xbc],al",
            "+mov al,m1[ebp+None*1+0x1]",
            " mov m1[esp+None*1+0xec],al",
            " xor eax,eax",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x38],eax",
            "+mov al,m1[ebp+None*1+0x2]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x44],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x2]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x58],eax",
            " xor eax,eax",
            " mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x64],eax",
            "-xor eax,eax",
            "+mov al,m1[ebp+None*1+0x2]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,eax",
            "+mov m4[esp+None*1+0x24],eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x44]",
            " xor edi,edi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov m4[esp+None*1+0x1c],eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "+inc ebp",
            "+mov eax,m4[esi+eax*4+0x0]",
            "+inc ebp",
            "+mov m4[edx+None*1+0x1c],eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:1720",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x18],eax",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-and ecx,eax",
            "-or edi,eax",
            "-mov eax,m4[esp+None*1+0x38]",
            "-shl eax,0x2",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-add esi,eax",
            "-mov m4[ebx+None*1+0x24],0x0",
            "-inc ebp",
            "-mov eax,m4[esi+None*1+0x0]",
            "-inc ebp",
            "-mov m4[edx+None*1+0x1c],eax",
            "-test ecx,ecx",
            "-jne local:28",
            "-mov eax,m4[esp+None*1+0x64]",
            "-mov edx,m4[esp+None*1+0x64]",
            "-mov ecx,0x6",
            "-shl eax,0x2",
            "-sub edx,0x2",
            "-mov m4[esp+None*1+0x40],eax",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-idiv ecx",
            "-add eax,0x146",
            "-mov m4[esp+None*1+0x3c],eax",
            "-test edi,edi",
            "-jne local:1784",
            "-test m1[None+None*1+0xafaed4],0x1",
            "-je local:1755",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1741",
            "-mov edx,m4[esp+None*1+0x3c]",
            "-mov eax,m4[esp+None*1+0x1c]",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:1668",
            "-mov edx,m4[esp+None*1+0x40]",
            "-mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-add eax,edx",
            "-mov ebx,m4[eax+None*1+0x0]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov eax,m4[esp+None*1+0x1c]",
            "-call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xec]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xcc]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,m4[esp+None*1+0x1c]",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-test m1[None+None*1+0xafaed4],0x1",
            "-je local:1816",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov eax,edi",
            "-call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            "-test eax,eax",
            "-je local:28",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1803",
            "-mov edx,m4[esp+None*1+0x3c]",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ebx,m4[esp+None*1+0x40]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-add edx,ebx",
            "-mov ebx,m4[edx+None*1+0x0]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-mov eax,edi",
            "-call fx3dpoly.c::clip_raw_3d_polygon_",
            "-mov ecx,eax",
            "-test eax,eax",
            "-je local:28",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xec]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xcc]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x58],eax",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x68],eax",
            "-xor eax,eax",
            "-xor edi,edi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov m4[esp+None*1+0x2c],eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "-dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:1923",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:1775",
            "+mov eax,m4[esp+None*1+0x24]",
            "+mov eax,m4[eax+None*1+0x1c]",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            " mov al,m1[ebp+None*1+0x0]",
            " shl eax,0x10",
            " mov m4[ebx+None*1+0x14],eax",
            "@@ -1888,39 +1743,39 @@",
            " or edi,eax",
            " test ecx,ecx",
            " jne local:28",
            "-mov eax,m4[esp+None*1+0x58]",
            "-mov ecx,m4[esp+None*1+0x68]",
            "-mov edx,m4[esp+None*1+0x68]",
            "+mov eax,m4[esp+None*1+0x44]",
            "+mov ecx,m4[esp+None*1+0x58]",
            "+mov edx,m4[esp+None*1+0x58]",
            " shl eax,0x2",
            " shl ecx,0x2",
            " sub edx,0x2",
            "-mov m4[esp+None*1+0x5c],ecx",
            "+mov m4[esp+None*1+0x84],ecx",
            " add esi,eax",
            " mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv ecx",
            " add eax,0x146",
            "-mov m4[esp+None*1+0x14],eax",
            "+mov m4[esp+None*1+0x7c],eax",
            " test edi,edi",
            "-jne local:1958",
            "+jne local:1843",
            " test m1[None+None*1+0xafaed4],0x1",
            "-je local:28",
            "+je local:1813",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1944",
            "-mov edx,m4[esp+None*1+0x2c]",
            "-mov eax,m4[esi+None*1+0x0]",
            "-mov m4[edx+None*1+0x1c],eax",
            "-mov edx,m4[esp+None*1+0x14]",
            "-mov eax,m4[esp+None*1+0x2c]",
            "+je local:1799",
            "+mov edx,m4[esp+None*1+0x7c]",
            "+mov eax,m4[esp+None*1+0x24]",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov eax,m4[esp+None*1+0x24]",
            "+mov eax,m4[eax+None*1+0x1c]",
            "+mov m4[ebx+None*1+0x1c],eax",
            " xor eax,eax",
            " mov al,m1[ebp+None*1+0x0]",
            " shl eax,0x10",
            "@@ -1941,16 +1796,221 @@",
            " mov ebx,m4[ebx+None*1+0x24]",
            " and ecx,eax",
            " or edi,eax",
            "-jmp local:1871",
            "-mov edx,m4[esp+None*1+0x5c]",
            "+jmp local:1722",
            "+mov edx,m4[esp+None*1+0x84]",
            " mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " add eax,edx",
            " mov ebx,m4[eax+None*1+0x0]",
            " mov edx,m4[esi+None*1+0x0]",
            "-mov eax,m4[esp+None*1+0x2c]",
            "+mov eax,m4[esp+None*1+0x24]",
            "+call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xec]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xbc]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,m4[esp+None*1+0x24]",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+test m1[None+None*1+0xafaed4],0x1",
            "+je local:1875",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,m4[esp+None*1+0x24]",
            "+mov eax,edi",
            "+call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            "+test eax,eax",
            "+je local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:1862",
            "+mov edx,m4[esp+None*1+0x7c]",
            "+call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ecx,m4[esp+None*1+0x84]",
            "+mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+add edx,ecx",
            "+mov ebx,m4[edx+None*1+0x0]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,m4[esp+None*1+0x24]",
            "+mov eax,edi",
            "+call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov ecx,eax",
            "+test eax,eax",
            "+je local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xec]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xbc]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,ecx",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x34],eax",
            "+xor eax,eax",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0xac],eax",
            "+xor eax,eax",
            "+xor edi,edi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m4[esp+None*1+0x6c],eax",
            "+mov ebx,eax",
            "+mov eax,m4[esp+None*1+0x4]",
            "+dec eax",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:1983",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov m4[ebx+None*1+0x24],0x0",
            "+and ecx,eax",
            "+or edi,eax",
            "+test ecx,ecx",
            "+jne local:28",
            "+mov eax,m4[esp+None*1+0x34]",
            "+mov ecx,m4[esp+None*1+0xac]",
            "+mov edx,m4[esp+None*1+0xac]",
            "+shl eax,0x2",
            "+shl ecx,0x2",
            "+sub edx,0x2",
            "+mov m4[esp+None*1+0xb0],ecx",
            "+add esi,eax",
            "+mov ecx,0x6",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+add eax,0x146",
            "+mov m4[esp+None*1+0x40],eax",
            "+test edi,edi",
            "+jne local:2018",
            "+test m1[None+None*1+0xafaed4],0x1",
            "+je local:28",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:2004",
            "+mov edx,m4[esp+None*1+0x6c]",
            "+mov eax,m4[esi+None*1+0x0]",
            "+mov m4[edx+None*1+0x1c],eax",
            "+mov edx,m4[esp+None*1+0x40]",
            "+mov eax,m4[esp+None*1+0x6c]",
            "+call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:1931",
            "+mov edx,m4[esp+None*1+0xb0]",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+add eax,edx",
            "+mov ebx,m4[eax+None*1+0x0]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov eax,m4[esp+None*1+0x6c]",
            " call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -1959,59 +2019,59 @@",
            " test m1[None+None*1+0xafaed4],0x1",
            " je local:28",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x2c]",
            "+mov edx,m4[esp+None*1+0x6c]",
            " mov eax,edi",
            " call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            " test eax,eax",
            " je local:28",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1979",
            "+je local:2039",
            " mov edx,m4[esi+None*1+0x0]",
            " mov m4[eax+None*1+0x1c],edx",
            "-mov edx,m4[esp+None*1+0x14]",
            "+mov edx,m4[esp+None*1+0x40]",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov ebx,m4[esp+None*1+0x5c]",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov ebx,m4[esp+None*1+0xb0]",
            " mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " add edx,ebx",
            " mov ebx,m4[edx+None*1+0x0]",
            " mov edx,m4[esi+None*1+0x0]",
            " call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xd0],al",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xe4],al",
            " xor eax,eax",
            " mov ecx,0xffffffff",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m4[esp+None*1+0x50],eax",
            "+mov m4[esp+None*1+0x90],eax",
            " xor eax,eax",
            " xor edi,edi",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov m4[esp+None*1+0x8c],eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m4[esp+None*1+0x70],eax",
            " mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "+mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:2053",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:2134",
            " mov al,m1[ebp+None*1+0x0]",
            " mov eax,m4[esi+eax*4+0x0]",
            " mov m4[ebx+None*1+0x1c],eax",
            "@@ -2022,110 +2082,111 @@",
            " or edi,eax",
            " test ecx,ecx",
            " jne local:28",
            "-mov eax,m4[esp+None*1+0x50]",
            "+mov eax,m4[esp+None*1+0x90]",
            " shl eax,0x2",
            " add esi,eax",
            " test edi,edi",
            "-jne local:2111",
            "+jne local:2172",
            " test m1[None+None*1+0xafaed4],0x2",
            "-je local:2069",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xd0]",
            "+jne local:2150",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+mov cl,m1[esp+None*1+0xe4]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+xor ebx,ebx",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shl ebx,0x18",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x10",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+and eax,0xff",
            "+shl eax,0x8",
            "+mov edx,m4[esi+None*1+0x0]",
            "+add ebx,eax",
            "+mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+xor edx,edx",
            "+mov dl,al",
            "+mov eax,m4[esp+None*1+0x70]",
            "+add edx,ebx",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[esi+eax*4+0x0]",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:2070",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xe4]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+and eax,0xff",
            "+mov ecx,eax",
            "+mov edx,eax",
            "+shl ecx,0x18",
            "+shl edx,0x10",
            "+add edx,ecx",
            "+mov ecx,eax",
            "+shl ecx,0x8",
            "+add edx,ecx",
            "+add edx,eax",
            "+mov eax,m4[esp+None*1+0x70]",
            "+call fxpoly1.c::fill_gouraud_shaded_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+test m1[None+None*1+0xafaed4],0x2",
            "+je local:2203",
            "+mov ecx,vertex.c::_vertex_buffer",
            "+mov edx,m4[esp+None*1+0x70]",
            "+mov eax,edi",
            "+call fx3dgpol.c::clip_raw_3d_gouraud_shaded_polygon_",
            "+mov ebx,eax",
            "+test eax,eax",
            "+je local:28",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xe4]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " and eax,0xff",
            " mov edx,eax",
            " mov ecx,eax",
            " shl edx,0x18",
            " shl ecx,0x10",
            "-add ecx,edx",
            "-mov edx,eax",
            "-shl edx,0x8",
            "-add edx,ecx",
            "-add edx,eax",
            "-mov eax,m4[esp+None*1+0x8c]",
            "-call fxpoly1.c::fill_gouraud_shaded_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "-mov m4[ebx+None*1+0x1c],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:2010",
            "-mov cl,m1[esp+None*1+0xd0]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-xor ebx,ebx",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shl ebx,0x18",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x10",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-and eax,0xff",
            "-shl eax,0x8",
            "-mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-xor edx,edx",
            "-mov dl,al",
            "-mov eax,m4[esp+None*1+0x8c]",
            "-add edx,ebx",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-test m1[None+None*1+0xafaed4],0x2",
            "-je local:2142",
            "-mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x8c]",
            "-mov eax,edi",
            "-call fx3dgpol.c::clip_raw_3d_gouraud_shaded_polygon_",
            "-mov ebx,eax",
            "-test eax,eax",
            "-je local:28",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xd0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-and eax,0xff",
            "-mov ecx,eax",
            "-mov edx,eax",
            "-shl ecx,0x18",
            "-shl edx,0x10",
            " add ecx,edx",
            " mov edx,eax",
            " shl edx,0x8",
            "@@ -2134,172 +2195,177 @@",
            " mov eax,ebx",
            " call fxpoly1.c::fill_gouraud_shaded_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x8c]",
            "+mov edx,m4[esp+None*1+0x70]",
            " mov eax,edi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            "+mov ecx,eax",
            "+test eax,eax",
            "+je local:28",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+test ebx,ebx",
            "+je local:2214",
            "+xor ebx,ebx",
            "+mov bl,m1[esp+None*1+0xe4]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov edi,eax",
            "-test eax,eax",
            "-je local:28",
            "-xor ecx,ecx",
            "-mov cl,m1[esp+None*1+0xd0]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-xor ebx,ebx",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "-shl ebx,0x18",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            "+and edi,0xff",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+shl edi,0x18",
            " and eax,0xff",
            " shl eax,0x10",
            " mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " and eax,0xff",
            " shl eax,0x8",
            " mov edx,m4[esi+None*1+0x0]",
            "-add ebx,eax",
            "-mov al,m1[ecx+None*1+3dpal.c::_remap_visual_colours]",
            "+add edi,eax",
            "+mov al,m1[ebx+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            " mov dh,al",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " xor edx,edx",
            " mov dl,al",
            "-mov eax,edi",
            "-add edx,ebx",
            "+mov eax,ecx",
            "+add edx,edi",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov m1[esp+None*1+0xb0],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xfc],al",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m1[esp+None*1+0xc0],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xc4],al",
            " xor eax,eax",
            " mov ecx,0xffffffff",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m4[esp+None*1+0x54],eax",
            "+mov m4[esp+None*1+0x30],eax",
            " xor eax,eax",
            " xor edi,edi",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov m4[esp+None*1+0x30],eax",
            "+mov m4[esp+None*1+0x74],eax",
            " mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "-dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:2253",
            "+mov edx,m4[esp+None*1+0x4]",
            "+dec edx",
            "+mov m4[esp+None*1+0x4],edx",
            "+jne local:2328",
            "+xor eax,eax",
            " mov al,m1[ebp+None*1+0x0]",
            " mov eax,m4[esi+eax*4+0x0]",
            " mov m4[ebx+None*1+0x1c],eax",
            " inc ebp",
            " mov eax,m4[ebx+None*1+0x20]",
            "-mov m4[ebx+None*1+0x24],0x0",
            "+mov m4[ebx+None*1+0x24],edx",
            " and ecx,eax",
            " or edi,eax",
            " test ecx,ecx",
            " jne local:28",
            "-mov eax,m4[esp+None*1+0x54]",
            "+mov eax,m4[esp+None*1+0x30]",
            " shl eax,0x2",
            " add esi,eax",
            " test edi,edi",
            "-jne local:2298",
            "+jne local:2364",
            " test m1[None+None*1+0xafaed4],0x2",
            "-je local:2269",
            "+jne local:2345",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xc4]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov bl,al",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xc0]",
            "+mov edx,m4[esi+None*1+0x0]",
            "+mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "+shr edx,0x17",
            "+mov dh,al",
            "+mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "+mov ah,bl",
            "+push ax",
            "+shl eax,0x10",
            "+pop ax",
            "+mov edx,eax",
            "+mov eax,m4[esp+None*1+0x74]",
            "+call fxpoly1.c::fill_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[esi+eax*4+0x0]",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:2276",
            " xor eax,eax",
            " xor edx,edx",
            "-mov al,m1[esp+None*1+0xfc]",
            "-mov dl,m1[esp+None*1+0xb0]",
            "+mov al,m1[esp+None*1+0xc4]",
            "+mov dl,m1[esp+None*1+0xc0]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "-mov eax,m4[esp+None*1+0x30]",
            "+mov eax,m4[esp+None*1+0x74]",
            " call fxpoly1.c::fill_gouraud_shaded_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "-mov m4[ebx+None*1+0x1c],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:2213",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xfc]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov bl,al",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xb0]",
            "-mov edx,m4[esi+None*1+0x0]",
            "-mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            "-shr edx,0x17",
            "-mov dh,al",
            "-mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            "-mov ah,bl",
            "-push ax",
            "-shl eax,0x10",
            "-pop ax",
            "-mov edx,eax",
            "-mov eax,m4[esp+None*1+0x30]",
            "-call fxpoly1.c::fill_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " test m1[None+None*1+0xafaed4],0x2",
            "-je local:2326",
            "+je local:2392",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x30]",
            "+mov edx,m4[esp+None*1+0x74]",
            " mov eax,edi",
            " call fx3dgpol.c::clip_raw_3d_gouraud_shaded_polygon_",
            " mov ecx,eax",
            "@@ -2307,8 +2373,8 @@",
            " je local:28",
            " xor eax,eax",
            " xor edx,edx",
            "-mov al,m1[esp+None*1+0xfc]",
            "-mov dl,m1[esp+None*1+0xb0]",
            "+mov al,m1[esp+None*1+0xc4]",
            "+mov dl,m1[esp+None*1+0xc0]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            "@@ -2318,21 +2384,22 @@",
            " mov eax,ecx",
            " call fxpoly1.c::fill_gouraud_shaded_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x30]",
            "+mov edx,m4[esp+None*1+0x74]",
            " mov eax,edi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            " mov ecx,eax",
            " test eax,eax",
            " je local:28",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xfc]",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xc4]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -2340,7 +2407,7 @@",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov bl,al",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0xb0]",
            "+mov al,m1[esp+None*1+0xc0]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -2354,41 +2421,41 @@",
            " mov eax,ecx",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xc4],al",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m1[esp+None*1+0xf8],al",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x88],eax",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xcc],al",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m1[esp+None*1+0xb4],al",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x1c],eax",
            " xor eax,eax",
            " mov ecx,0xffffffff",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            "-mov m4[esp+None*1+0x94],eax",
            "+mov m4[esp+None*1+0x5c],eax",
            " xor eax,eax",
            " xor edi,edi",
            " mov al,m1[ebp+None*1+0x0]",
            " inc ebp",
            " lea eax,m4[eax+eax*4+0x0]",
            " lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov m4[esp+None*1+0x98],eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov m4[esp+None*1+0x28],eax",
            " mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "+mov eax,m4[esp+None*1+0x4]",
            " dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:2449",
            "+mov m4[esp+None*1+0x4],eax",
            "+jne local:2519",
            " mov al,m1[ebp+None*1+0x0]",
            " mov eax,m4[esi+eax*4+0x0]",
            " mov m4[ebx+None*1+0x1c],eax",
            "@@ -2410,16 +2477,19 @@",
            " test ecx,ecx",
            " jne local:28",
            " test edi,edi",
            "-jne local:2556",
            "+jne local:2626",
            " mov eax,m4[None+None*1+0xafaed4]",
            " cmp eax,0x3",
            " ja local:28",
            "-jmp m4[None+eax*4+fx3dobj4.c::draw_partially_visible_primary_face_+0x2fe0]",
            "-mov eax,m4[esp+None*1+0x88]",
            "+jmp m4[None+eax*4+fx3dobj4.c::draw_partially_visible_primary_face_+0x32b0]",
            "+mov eax,m4[esp+None*1+0x1c]",
            " shl eax,0x2",
            " add esi,eax",
            "-xor eax,eax",
            "-mov al,m1[esp+None*1+0xf8]",
            "+mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+test eax,eax",
            "+je local:2491",
            "+xor eax,eax",
            "+mov al,m1[esp+None*1+0xb4]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -2427,7 +2497,7 @@",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov bl,al",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0xc4]",
            "+mov al,m1[esp+None*1+0xcc]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -2438,10 +2508,10 @@",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "-mov eax,m4[esp+None*1+0x98]",
            "+mov eax,m4[esp+None*1+0x28]",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -2472,34 +2542,34 @@",
            " mov ebx,m4[ebx+None*1+0x24]",
            " and ecx,eax",
            " or edi,eax",
            "-jmp local:2387",
            "+jmp local:2454",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:2493",
            "-mov edx,m4[esp+None*1+0x94]",
            "+je local:2563",
            "+mov edx,m4[esp+None*1+0x5c]",
            " sub edx,0x2",
            " mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,m4[esp+None*1+0x98]",
            "+mov eax,m4[esp+None*1+0x28]",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov eax,m4[esp+None*1+0x94]",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov eax,m4[esp+None*1+0x5c]",
            " mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov ebx,m4[edx+eax*4+0x0]",
            "-mov eax,m4[esp+None*1+0x88]",
            "+mov eax,m4[esp+None*1+0x1c]",
            " mov edx,m4[esi+eax*4+0x0]",
            "-mov eax,m4[esp+None*1+0x98]",
            "+mov eax,m4[esp+None*1+0x28]",
            " call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -2507,48 +2577,48 @@",
            " ret ",
            " xor eax,eax",
            " xor edx,edx",
            "-mov al,m1[esp+None*1+0xf8]",
            "-mov dl,m1[esp+None*1+0xc4]",
            "+mov al,m1[esp+None*1+0xb4]",
            "+mov dl,m1[esp+None*1+0xcc]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            " shl eax,0x10",
            " pop ax",
            " mov edx,eax",
            "-mov eax,m4[esp+None*1+0x98]",
            "+mov eax,m4[esp+None*1+0x28]",
            " call fxpoly1.c::fill_gouraud_shaded_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:2544",
            "-mov edx,m4[esp+None*1+0x94]",
            "+je local:2614",
            "+mov edx,m4[esp+None*1+0x5c]",
            " sub edx,0x2",
            " mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,m4[esp+None*1+0x98]",
            "+mov eax,m4[esp+None*1+0x28]",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov eax,m4[esp+None*1+0x94]",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov eax,m4[esp+None*1+0x5c]",
            " mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov edx,m4[edx+eax*4+0x0]",
            "-mov eax,m4[esp+None*1+0x98]",
            "+mov eax,m4[esp+None*1+0x28]",
            " call fxpoly1.c::fill_gouraud_shaded_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -2557,19 +2627,19 @@",
            " mov eax,m4[None+None*1+0xafaed4]",
            " cmp eax,0x3",
            " ja local:28",
            "-jmp m4[None+eax*4+fx3dobj4.c::draw_partially_visible_primary_face_+0x2ff0]",
            "+jmp m4[None+eax*4+fx3dobj4.c::draw_partially_visible_primary_face_+0x32c0]",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x98]",
            "+mov edx,m4[esp+None*1+0x28]",
            " mov eax,edi",
            " call fx3dpoly.c::clip_raw_3d_polygon_",
            " mov ecx,eax",
            " test eax,eax",
            " je local:28",
            "-mov eax,m4[esp+None*1+0x88]",
            "+mov eax,m4[esp+None*1+0x1c]",
            " shl eax,0x2",
            " add esi,eax",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0xf8]",
            "+mov al,m1[esp+None*1+0xb4]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -2577,7 +2647,7 @@",
            " mov al,m1[edx+None*1+colour.c::_colour_intensity]",
            " mov bl,al",
            " xor eax,eax",
            "-mov al,m1[esp+None*1+0xc4]",
            "+mov al,m1[esp+None*1+0xcc]",
            " mov edx,m4[esi+None*1+0x0]",
            " mov al,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " shr edx,0x17",
            "@@ -2591,22 +2661,22 @@",
            " mov eax,ecx",
            " call fxpoly1.c::fill_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x98]",
            "+mov edx,m4[esp+None*1+0x28]",
            " mov eax,edi",
            " call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            " mov ecx,eax",
            " test eax,eax",
            " je local:28",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:2624",
            "-mov edx,m4[esp+None*1+0x94]",
            "+je local:2694",
            "+mov edx,m4[esp+None*1+0x5c]",
            " sub edx,0x2",
            " mov ebx,0x6",
            " mov eax,edx",
            "@@ -2616,28 +2686,28 @@",
            " mov eax,ecx",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov eax,m4[esp+None*1+0x94]",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov eax,m4[esp+None*1+0x5c]",
            " mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov ebx,m4[edx+eax*4+0x0]",
            "-mov edx,m4[esp+None*1+0x88]",
            "+mov eax,m4[esp+None*1+0x1c]",
            "+mov edx,m4[esi+eax*4+0x0]",
            " mov eax,ecx",
            "-mov edx,m4[esi+edx*4+0x0]",
            " call fxpoly1.c::fill_constant_shaded_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x98]",
            "+mov edx,m4[esp+None*1+0x28]",
            " mov eax,edi",
            " call fx3dgpol.c::clip_raw_3d_gouraud_shaded_polygon_",
            " mov ecx,eax",
            "@@ -2645,8 +2715,8 @@",
            " je local:28",
            " xor eax,eax",
            " xor edx,edx",
            "-mov al,m1[esp+None*1+0xf8]",
            "-mov dl,m1[esp+None*1+0xc4]",
            "+mov al,m1[esp+None*1+0xb4]",
            "+mov dl,m1[esp+None*1+0xcc]",
            " mov ah,m1[eax+None*1+3dpal.c::_remap_visual_colours]",
            " mov al,m1[edx+None*1+3dpal.c::_remap_visual_colours]",
            " push ax",
            "@@ -2656,181 +2726,182 @@",
            " mov eax,ecx",
            " call fxpoly1.c::fill_gouraud_shaded_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x98]",
            "+mov edx,m4[esp+None*1+0x28]",
            " mov eax,edi",
            " call fx3dgtpo.c::clip_raw_3d_gouraud_shaded_textured_polygon_",
            "-mov ecx,eax",
            "+mov ebx,eax",
            " test eax,eax",
            " je local:28",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:2689",
            "-mov edx,m4[esp+None*1+0x94]",
            "-sub edx,0x2",
            "-mov ebx,0x6",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-idiv ebx",
            "-lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "-call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov eax,m4[esp+None*1+0x94]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-mov edx,m4[edx+eax*4+0x0]",
            "-mov eax,ecx",
            "-call fxpoly1.c::fill_gouraud_shaded_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x78],eax",
            "-xor eax,eax",
            "-mov ecx,0xffffffff",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-mov m4[esp+None*1+0x20],eax",
            "-xor eax,eax",
            "-xor edi,edi",
            "-mov al,m1[ebp+None*1+0x0]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov m4[esp+None*1+0x90],eax",
            "-mov ebx,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "-dec eax",
            "-mov m4[esp+None*1+0x28],eax",
            "-jne local:2750",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "-mov m4[ebx+None*1+0x1c],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x2]",
            "-inc ebp",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov m4[ebx+None*1+0x24],0x0",
            "-and ecx,eax",
            "-or edi,eax",
            "-test ecx,ecx",
            "-jne local:28",
            "-test edi,edi",
            "-jne local:2838",
            "-mov eax,m4[None+None*1+0xafaed4]",
            "-cmp eax,0x3",
            "-ja local:28",
            "-jmp m4[None+eax*4+fx3dobj4.c::draw_partially_visible_primary_face_+0x3000]",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x0]",
            "-mov eax,m4[esi+eax*4+0x0]",
            "-mov m4[ebx+None*1+0x1c],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-shl eax,0x10",
            "-mov m4[ebx+None*1+0x14],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x2]",
            "-inc ebp",
            "-shl eax,0x10",
            "-inc ebp",
            "-mov m4[ebx+None*1+0x18],eax",
            "-xor eax,eax",
            "-mov al,m1[ebp+None*1+0x1]",
            "-inc ebp",
            "-lea eax,m4[eax+eax*4+0x0]",
            "-lea eax,m4[edx+eax*8+0x0]",
            "-mov m4[ebx+None*1+0x24],eax",
            "-inc ebp",
            "-mov eax,m4[ebx+None*1+0x20]",
            "-mov ebx,m4[ebx+None*1+0x24]",
            "-and ecx,eax",
            "-or edi,eax",
            "-jmp local:2720",
            "-cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:2794",
            "-mov edx,m4[esp+None*1+0x20]",
            "+je local:2759",
            "+mov edx,m4[esp+None*1+0x5c]",
            " sub edx,0x2",
            " mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,m4[esp+None*1+0x90]",
            "+mov eax,ebx",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov eax,m4[esp+None*1+0x20]",
            "-mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-mov ebx,m4[edx+eax*4+0x0]",
            "-mov edx,m4[esp+None*1+0x78]",
            "-mov eax,m4[esp+None*1+0x90]",
            "-mov edx,m4[esi+edx*4+0x0]",
            "-call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            "-mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x5c]",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+mov edx,m4[eax+edx*4+0x0]",
            "+mov eax,ebx",
            "+call fxpoly1.c::fill_gouraud_shaded_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x2c],eax",
            "+xor eax,eax",
            "+mov ecx,0xffffffff",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+mov m4[esp+None*1+0x8],eax",
            "+xor eax,eax",
            "+xor edi,edi",
            "+mov al,m1[ebp+None*1+0x0]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[esp+None*1+0x78],eax",
            "+mov ebx,eax",
            "+mov edx,m4[esp+None*1+0x4]",
            "+dec edx",
            "+mov m4[esp+None*1+0x4],edx",
            "+jne local:2820",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[esi+eax*4+0x0]",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x2]",
            "+inc ebp",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov m4[ebx+None*1+0x24],edx",
            "+and ecx,eax",
            "+or edi,eax",
            "+test ecx,ecx",
            "+jne local:28",
            "+test edi,edi",
            "+jne local:2909",
            "+mov eax,m4[None+None*1+0xafaed4]",
            "+cmp eax,0x3",
            "+ja local:28",
            "+jmp m4[None+eax*4+fx3dobj4.c::draw_partially_visible_primary_face_+0x32d0]",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x0]",
            "+mov eax,m4[esi+eax*4+0x0]",
            "+mov m4[ebx+None*1+0x1c],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x1]",
            "+shl eax,0x10",
            "+mov m4[ebx+None*1+0x14],eax",
            "+xor eax,eax",
            "+mov al,m1[ebp+None*1+0x2]",
            "+inc ebp",
            "+shl eax,0x10",
            "+inc ebp",
            "+mov m4[ebx+None*1+0x18],eax",
            "+xor eax,eax",
            "+mov edx,m4[esp+None*1+0x0]",
            "+mov al,m1[ebp+None*1+0x1]",
            "+inc ebp",
            "+lea eax,m4[eax+eax*4+0x0]",
            "+lea eax,m4[edx+eax*8+0x0]",
            "+mov m4[ebx+None*1+0x24],eax",
            "+inc ebp",
            "+mov eax,m4[ebx+None*1+0x20]",
            "+mov ebx,m4[ebx+None*1+0x24]",
            "+and ecx,eax",
            "+or edi,eax",
            "+jmp local:2789",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:2826",
            "-mov edx,m4[esp+None*1+0x20]",
            "+je local:2865",
            "+mov edx,m4[esp+None*1+0x8]",
            " sub edx,0x2",
            " mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            " idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,m4[esp+None*1+0x90]",
            "+mov eax,m4[esp+None*1+0x78]",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov eax,m4[esp+None*1+0x20]",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov eax,m4[esp+None*1+0x8]",
            " mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "-mov edx,m4[edx+eax*4+0x0]",
            "-mov eax,m4[esp+None*1+0x90]",
            "+mov ebx,m4[edx+eax*4+0x0]",
            "+mov eax,m4[esp+None*1+0x2c]",
            "+mov edx,m4[esi+eax*4+0x0]",
            "+mov eax,m4[esp+None*1+0x78]",
            "+call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:2897",
            "+mov edx,m4[esp+None*1+0x8]",
            "+sub edx,0x2",
            "+mov ecx,0x6",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+idiv ecx",
            "+lea edx,m4[eax+None*1+0x146]",
            "+mov eax,m4[esp+None*1+0x78]",
            "+call fxpoly1.c::_3dfx_fill_textured_polygon_",
            "+mov eax,ebp",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov edx,m4[esp+None*1+0x8]",
            "+mov eax,m4[None+None*1+fx3dobj1.c::_object_textures]",
            "+mov edx,m4[eax+edx*4+0x0]",
            "+mov eax,m4[esp+None*1+0x78]",
            " call fxpoly1.c::fill_gouraud_shaded_masked_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -2839,92 +2910,92 @@",
            " mov eax,m4[None+None*1+0xafaed4]",
            " cmp eax,0x3",
            " ja local:28",
            "-jmp m4[None+eax*4+fx3dobj4.c::draw_partially_visible_primary_face_+0x3010]",
            "+jmp m4[None+eax*4+fx3dobj4.c::draw_partially_visible_primary_face_+0x32e0]",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x90]",
            "+mov edx,m4[esp+None*1+0x78]",
            " mov eax,edi",
            " call fx3dtpol.c::clip_raw_3d_textured_polygon_",
            "-mov ecx,eax",
            "+mov edi,eax",
            " test eax,eax",
            " je local:28",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:2867",
            "-mov edx,m4[esp+None*1+0x20]",
            "+je local:2938",
            "+mov edx,m4[esp+None*1+0x8]",
            " sub edx,0x2",
            "-mov ebx,0x6",
            "+mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ebx",
            "+idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "+mov eax,edi",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov eax,m4[esp+None*1+0x20]",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov eax,m4[esp+None*1+0x8]",
            " mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov ebx,m4[edx+eax*4+0x0]",
            "-mov eax,m4[esp+None*1+0x78]",
            "-mov edx,m4[esi+eax*4+0x0]",
            "-mov eax,ecx",
            "+mov edx,m4[esp+None*1+0x2c]",
            "+mov eax,edi",
            "+mov edx,m4[esi+edx*4+0x0]",
            " call fxpoly1.c::fill_constant_shaded_masked_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "+add esp,0x108",
            " pop ebp",
            " pop edi",
            " pop esi",
            " pop ecx",
            " ret ",
            " mov ecx,vertex.c::_vertex_buffer",
            "-mov edx,m4[esp+None*1+0x90]",
            "+mov edx,m4[esp+None*1+0x78]",
            " mov eax,edi",
            " call fx3dgtpo.c::clip_raw_3d_gouraud_shaded_textured_polygon_",
            "-mov ecx,eax",
            "+mov ebx,eax",
            " test eax,eax",
            " je local:28",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:2906",
            "-mov edx,m4[esp+None*1+0x20]",
            "+je local:2977",
            "+mov edx,m4[esp+None*1+0x8]",
            " sub edx,0x2",
            "-mov ebx,0x6",
            "+mov ecx,0x6",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ebx",
            "+idiv ecx",
            " lea edx,m4[eax+None*1+0x146]",
            "-mov eax,ecx",
            "+mov eax,ebx",
            " call fxpoly1.c::_3dfx_fill_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-mov eax,m4[esp+None*1+0x20]",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+mov eax,m4[esp+None*1+0x8]",
            " mov edx,m4[None+None*1+fx3dobj1.c::_object_textures]",
            " mov edx,m4[edx+eax*4+0x0]",
            "-mov eax,ecx",
            "+mov eax,ebx",
            " call fxpoly1.c::fill_gouraud_shaded_masked_textured_polygon_",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "-push 0x6bc",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret ",
            "+push 0x6eb",
            " push text:'\\\\library\\\\3dvisual\\\\fx3dobj5.c'",
            " push text:'Illegal render mode encountered in 3D object data.'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            " mov eax,ebp",
            "-add esp,0x104",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-ret ",
            "+add esp,0x108",
            "+pop ebp",
            "+pop edi",
            "+pop esi",
            "+pop ecx",
            "+ret "
          ]
        },
        {
          "symbol": "fxexplod.c::draw_explosion_",
          "source": "E:\\library\\3dvisual\\fxexplod.c",
          "first": "0x4aaad4",
          "second": "0x4ab154",
          "first_instruction_count": 251,
          "second_instruction_count": 251,
          "diff": [
            "--- 0x4aaad4",
            "+++ 0x4ab154",
            "@@ -37,11 +37,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -54,15 +54,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -75,15 +75,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov ebp,edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "fxexplod.c::scan_explosions_",
          "source": "E:\\library\\3dvisual\\fxexplod.c",
          "first": "0x4aa89c",
          "second": "0x4aaf1c",
          "first_instruction_count": 176,
          "second_instruction_count": 176,
          "diff": [
            "--- 0x4aa89c",
            "+++ 0x4aaf1c",
            "@@ -34,15 +34,15 @@",
            " mov m4[esp+None*1+0x0],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x14]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -115,15 +115,15 @@",
            " mov m4[esp+None*1+0x8],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "fxgloop.c::check_for_quit_game_",
          "source": "E:\\apache\\source\\fxgloop.c",
          "first": "0x4047c4",
          "second": "0x4047f4",
          "first_instruction_count": 72,
          "second_instruction_count": 81,
          "diff": [
            "--- 0x4047c4",
            "+++ 0x4047f4",
            "@@ -8,65 +8,74 @@",
            " add esp,0x14",
            " pop edx",
            " ret ",
            "-push edi",
            "-push esi",
            " push ecx",
            "-push ebx",
            " call screen.c::reset_screen_extent_",
            "+cmp m4[None+None*1+fxpoly1.c::_fx_buffer_counter],0x0",
            "+jne local:25",
            " push fxpoly1.c::_lfbinfo",
            " push edx",
            " push edx",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            "-mov ebx,0x74",
            " call LINKER MODULE::_grLfbLock@24",
            " mov eax,m4[None+None*1+0x724310]",
            "-mov esi,cockpits.c::_end_mission_yn",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+push edi",
            "+push esi",
            "+push ebx",
            "+mov esi,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+mov ebx,0x74",
            "+inc esi",
            " mov ecx,0xd2",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],esi",
            "+mov esi,cockpits.c::_end_mission_yn",
            " call sprite.asm::_draw_glide_sprite",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbUnlock@8",
            "+mov edi,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec edi",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edi",
            "+je local:72",
            " push 0x1",
            " call LINKER MODULE::_grBufferSwap@4",
            " call palette.c::update_palette_registers_",
            " call sndsetup.c::pause_all_sound_",
            "-lea eax,m4[esp+None*1+0x10]",
            "+pop ebx",
            "+pop esi",
            "+pop edi",
            "+lea eax,m4[esp+None*1+0x4]",
            " call event.c::get_event_",
            " test eax,eax",
            "-jne local:37",
            "-lea eax,m4[esp+None*1+0x10]",
            "-call event.c::get_event_",
            "-test eax,eax",
            "-je local:41",
            "-mov ebx,m4[esp+None*1+0x10]",
            "-cmp ebx,0x1",
            "-jne local:41",
            "-mov eax,m4[esp+None*1+0x14]",
            "-and eax,0xff",
            "-cmp eax,0x15",
            "-jne local:67",
            "-mov eax,ebx",
            "-call dieflag.c::set_die_flag_",
            "-pop ebx",
            "+jne local:46",
            " pop ecx",
            "-pop esi",
            "-pop edi",
            " mov eax,esp",
            " call event.c::get_event_",
            " test eax,eax",
            "-jne local:58",
            "+je local:51",
            "+cmp m4[esp+None*1+0x0],0x1",
            "+jne local:51",
            "+mov eax,m4[esp+None*1+0x4]",
            "+and eax,0xff",
            "+cmp eax,0x15",
            "+jne local:76",
            "+mov eax,0x1",
            "+call dieflag.c::set_die_flag_",
            "+mov eax,esp",
            "+call event.c::get_event_",
            "+test eax,eax",
            "+jne local:63",
            " call timer.c::get_delta_ticks_",
            " call sndsetup.c::resume_all_sound_",
            " add esp,0x14",
            " pop edx",
            " ret ",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbUnlock@8",
            "+jmp local:39",
            " cmp eax,0x31",
            "-jne local:41",
            "-xor esi,esi",
            "-mov m4[None+None*1+gamedata.c::_prompt_for_game_quit],esi",
            "-jmp local:54",
            "+jne local:51",
            "+xor edx,edx",
            "+mov m4[None+None*1+gamedata.c::_prompt_for_game_quit],edx",
            "+jmp local:63"
          ]
        },
        {
          "symbol": "fxgloop.c::game_loop_",
          "source": "E:\\apache\\source\\fxgloop.c",
          "first": "0x403dcc",
          "second": "0x403e3c",
          "first_instruction_count": 456,
          "second_instruction_count": 429,
          "diff": [
            "--- 0x403dcc",
            "+++ 0x403e3c",
            "@@ -5,7 +5,7 @@",
            " push edi",
            " push ebp",
            " mov ebp,esp",
            "-sub esp,0x58",
            "+sub esp,0x54",
            " and esp,0xfffffff8",
            " mov ecx,0x38",
            " mov esi,gamedata.c::_game_visual_config",
            "@@ -22,8 +22,8 @@",
            " xor edx,edx",
            " mov eax,text:'Global Time'",
            " mov m4[esp+None*1+0x50],edx",
            "+mov m4[esp+None*1+0x48],edx",
            " mov m4[esp+None*1+0x4c],edx",
            "-mov m4[esp+None*1+0x48],edx",
            " mov edx,0x8",
            " call monitor.c::add_monitor_",
            " mov ebx,fxgloop.c::_acceleration",
            "@@ -73,20 +73,20 @@",
            " mov edx,m4[None+None*1+fxgloop.c::_game_loop_active]",
            " mov m4[None+None*1+fxpoly1.c::_use_glide],eax",
            " test edx,edx",
            "-je local:327",
            "+je local:303",
            " push 0xffff",
            " push 0x0",
            " push 0x0",
            " call LINKER MODULE::_grBufferClear@12",
            " call keyboard.c::check_for_weird_win95_keyboard_problem_",
            " cmp m4[None+None*1+fxgloop.c::_game_paused],0x0",
            "-jne local:407",
            "-cmp m4[esp+None*1+0x4c],0x0",
            "+jne local:381",
            "+cmp m4[esp+None*1+0x48],0x0",
            " je local:126",
            " call fxgloop.c::preamble_",
            " call daytime.c::update_lighting_",
            " cmp m4[None+None*1+mul_chat.c::_message_being_written],0x0",
            "-je local:143",
            "+je local:141",
            " call mul_chat.c::process_message_",
            " mov eax,m4[None+None*1+gamedata.c::_accelerated_time]",
            " mov m4[None+None*1+fxgloop.c::_acceleration],eax",
            "@@ -95,45 +95,43 @@",
            " mov eax,m4[None+None*1+0x5080bc]",
            " mov m4[esp+None*1+0x4],eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov ebx,0x1",
            "+mov ecx,0x1",
            " mov m4[esp+None*1+0x8],eax",
            " mov eax,m4[esp+None*1+0x4]",
            "-mov edi,m4[None+None*1+gamedata.c::_delta_time]",
            "+mov ebx,m4[None+None*1+gamedata.c::_delta_time]",
            " mov m4[esp+None*1+0xc],eax",
            " mov eax,m4[None+None*1+control.c::_control_input_type]",
            "-mov m4[esp+None*1+0x54],edi",
            "-cmp eax,ebx",
            "-je local:145",
            "+mov edi,ebx",
            "+cmp eax,ecx",
            "+je local:143",
            " call joystick.c::read_joystick_",
            " call links.c::general_send_game_sync_",
            "-mov eax,m4[None+None*1+fxgloop.c::_acceleration]",
            "+mov edx,m4[None+None*1+fxgloop.c::_acceleration]",
            " xor esi,esi",
            "-test eax,eax",
            "-jle local:217",
            "+test edx,edx",
            "+jle local:200",
            " mov eax,m4[None+None*1+fxgloop.c::_frame_ticks]",
            " call dbrecord.c::record_time_elapsed_",
            " mov eax,m4[None+None*1+fxgloop.c::_frame_ticks]",
            " mov edx,m4[None+None*1+gamedata.c::_game_clock_time]",
            " add edx,eax",
            "-mov ecx,m4[None+None*1+mul_chat.c::_message_being_written]",
            "+mov eax,m4[None+None*1+mul_chat.c::_message_being_written]",
            " mov m4[None+None*1+gamedata.c::_game_clock_time],edx",
            "-test ecx,ecx",
            "+test eax,eax",
            " jne local:122",
            " call control.c::update_controls_",
            "-mov eax,m4[None+None*1+gamedata.c::_game_mode]",
            "-cmp eax,0x6",
            "-ja local:385",
            "-jmp m4[None+eax*4+initpref.c::process_preferences_+0x350]",
            "+mov edx,m4[None+None*1+gamedata.c::_game_mode]",
            "+cmp edx,0x6",
            "+ja local:359",
            "+jmp m4[None+edx*4+initpref.c::process_preferences_+0x350]",
            " mov eax,m4[None+None*1+fxgloop.c::_advance_frames]",
            " mov edx,m4[esp+None*1+0x50]",
            " inc eax",
            " cmp eax,edx",
            "-jge local:139",
            "-mov ebx,0x1",
            "-mov dh,m1[None+None*1+modemprf.c::_rods_connect]",
            "-mov m4[esp+None*1+0x4c],ebx",
            "-test dh,dh",
            "-je local:137",
            "+jge local:137",
            "+mov m4[esp+None*1+0x48],0x1",
            "+cmp m1[None+None*1+modemprf.c::_rods_connect],0x0",
            "+je local:135",
            " call secure.c::set_game_timeouts_",
            " call fxgloop.c::unamble_",
            " jmp local:86",
            "@@ -153,61 +151,46 @@",
            " mov eax,0x2a",
            " call keyboard.c::check_key_",
            " test eax,eax",
            "-jne local:157",
            "+jne local:155",
            " call server.c::maintain_multi_player_list_",
            " call multidr.c::update_remote_drones_",
            "-jmp local:166",
            "+jmp local:164",
            " mov eax,0x2a",
            " call keyboard.c::check_key_",
            " test eax,eax",
            "-jne local:164",
            "+jne local:162",
            " call server.c::maintain_multi_player_list_",
            " call multidr.c::update_remote_drones_",
            " call movement.c::update_drones_",
            "-mov eax,m4[esp+None*1+0x54]",
            "-mov m4[None+None*1+gamedata.c::_delta_time],eax",
            " mov eax,m4[esp+None*1+0x8]",
            "+mov m4[None+None*1+gamedata.c::_delta_time],edi",
            " mov m4[None+None*1+gamedata.c::_frame_time],eax",
            " mov eax,m4[esp+None*1+0xc]",
            " xor edx,edx",
            " mov m4[None+None*1+0x5080bc],eax",
            "-test ebx,ebx",
            "-jle local:181",
            "+test ecx,ecx",
            "+jle local:178",
            " cmp m4[None+None*1+fxgloop.c::_following_mate],0x0",
            "-jne local:178",
            "+jne local:175",
            " call model.c::update_flight_model_",
            " inc edx",
            "-cmp edx,ebx",
            "-jl local:175",
            "+cmp edx,ecx",
            "+jl local:172",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+gamedata.c::_frame_time],eax",
            " mov eax,m4[esp+None*1+0x4]",
            "-mov m4[None+None*1+gamedata.c::_delta_time],edi",
            "+mov m4[None+None*1+gamedata.c::_delta_time],ebx",
            " mov m4[None+None*1+0x5080bc],eax",
            " call weapons.c::update_weapons_",
            " mov edx,m4[None+None*1+gamedata.c::_game_mode]",
            " cmp edx,0x4",
            "-jae local:391",
            "+jae local:365",
            " cmp edx,0x1",
            "-jne local:394",
            "-push fxpoly1.c::_lfbinfo",
            "+jne local:368",
            " xor eax,eax",
            "-push eax",
            "-push eax",
            "-push 0x4",
            "-push 0x1",
            "-push 0x1",
            "+mov edx,0x1",
            " mov m4[None+None*1+fxpoly1.c::_use_glide],eax",
            "-call LINKER MODULE::_grLfbLock@24",
            "-mov eax,m4[None+None*1+0x724310]",
            "-mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "-mov eax,m4[None+None*1+0x724314]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            " call avionics.c::update_avionics_systems_",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbUnlock@8",
            "-mov edx,0x1",
            " mov m4[None+None*1+fxpoly1.c::_use_glide],edx",
            " call commspan.c::update_comms_panel_",
            " mov eax,m4[None+None*1+gamedata.c::_delta_time]",
            "@@ -217,32 +200,39 @@",
            " jl local:112",
            " call elevate.c::update_hydra_elevation_",
            " call views.c::update_view_mode_",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test edx,edx",
            "+jne local:216",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push edx",
            "+push edx",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbLock@24",
            " mov eax,m4[None+None*1+0x724310]",
            "-mov esi,m4[None+None*1+views.c::_view_mode]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "-mov ecx,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            " mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-mov ebx,ecx",
            "+mov esi,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+inc esi",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_lfbuffer]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],esi",
            "+mov esi,m4[None+None*1+views.c::_view_mode]",
            "+mov ecx,ebx",
            "+mov eax,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            " mov edx,eax",
            " sar edx,0x1f",
            " shl edx,0x2",
            " sbb eax,edx",
            " sar eax,0x2",
            " test esi,esi",
            "-jbe local:396",
            "+jbe local:370",
            " cmp esi,0x5",
            "-jne local:398",
            "+jne local:372",
            " imul eax,eax,0x3bc",
            "-lea ebx,m4[ecx+eax*1+0x0]",
            "-add ecx,0x9fc",
            "+lea ecx,m4[ebx+eax*1+0x0]",
            "+add ebx,0x9fc",
            " xor esi,esi",
            " xor edi,edi",
            " mov eax,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            "@@ -252,72 +242,58 @@",
            " sbb eax,edx",
            " sar eax,0x2",
            " inc esi",
            "+mov m4[ecx+None*1+0x0],edi",
            "+add ecx,0x4",
            "+shl eax,0x2",
            " mov m4[ebx+None*1+0x0],edi",
            "-add ebx,0x4",
            "-shl eax,0x2",
            "-mov m4[ecx+None*1+0x0],edi",
            "-add ecx,eax",
            "+add ebx,eax",
            " cmp esi,0x1e0",
            "-jl local:247",
            "+jl local:237",
            " xor edx,edx",
            " inc edx",
            "-mov m4[ebx+None*1+0x0],0x0",
            "-add ebx,0x4",
            "+mov m4[ecx+None*1+0x0],0x0",
            "+add ecx,0x4",
            " cmp edx,0xa0",
            "-jl local:262",
            "+jl local:252",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec edx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edx",
            "+jne local:264",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            " call cockpits.c::draw_cockpit_",
            "-push fxpoly1.c::_lfbinfo",
            "-xor ebx,ebx",
            "-push ebx",
            "-push ebx",
            "-push 0x4",
            "-push 0x1",
            "-push 0x1",
            "-mov m4[None+None*1+fxpoly1.c::_use_glide],ebx",
            "-call LINKER MODULE::_grLfbLock@24",
            "-mov eax,m4[None+None*1+0x724310]",
            "-mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "-mov eax,m4[None+None*1+0x724314]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            " call avionics.c::draw_avionics_displays_",
            "-push 0x1",
            "-push 0x1",
            "-mov esi,0x1",
            "-call LINKER MODULE::_grLfbUnlock@8",
            "-mov m4[None+None*1+fxpoly1.c::_use_glide],esi",
            " call cockpits.c::new_routine_to_download_cockpit_screen_to_lfb_",
            " call debug.c::display_debug_information_",
            " call mul_chat.c::display_multi_player_chat_stuff_",
            " call palette.c::update_palette_registers_",
            " cmp m4[None+None*1+gamedata.c::_prompt_for_game_quit],0x0",
            "-je local:297",
            "+je local:273",
            " call fxgloop.c::check_for_quit_game_",
            "-cmp m4[esp+None*1+0x48],0x0",
            "-jne local:310",
            "+cmp m4[esp+None*1+0x4c],0x0",
            "+jne local:286",
            " mov eax,m4[None+None*1+drone.c::_user_drone]",
            " mov edx,m4[eax+None*1+0xb4]",
            " cmp m4[edx+None*1+0x18],0x0",
            "-jne local:310",
            "+jne local:286",
            " mov edx,m4[None+None*1+gamedata.c::_game_clock_time]",
            " cmp edx,m4[eax+None*1+0xcc]",
            "-jle local:310",
            "+jle local:286",
            " mov eax,0x19",
            "-mov esi,0x1",
            "+mov ebx,0x1",
            " call sound.c::play_cockpit_effect_",
            "-mov m4[esp+None*1+0x48],esi",
            "-mov edi,m4[None+None*1+fxgloop.c::_two_player_exit_countdown]",
            "-test edi,edi",
            "-je local:320",
            "-mov eax,0x1",
            "-mov edx,edi",
            "-mov m4[None+None*1+fxgloop.c::_two_player_going_to_quit],eax",
            "-sub edx,eax",
            "-mov m4[None+None*1+fxgloop.c::_two_player_exit_countdown],edx",
            "-jne local:320",
            "-mov m4[None+None*1+fxgloop.c::_game_loop_active],edx",
            "+mov m4[esp+None*1+0x4c],ebx",
            "+mov esi,m4[None+None*1+fxgloop.c::_two_player_exit_countdown]",
            "+test esi,esi",
            "+je local:296",
            "+mov edi,0x1",
            "+mov eax,esi",
            "+mov m4[None+None*1+fxgloop.c::_two_player_going_to_quit],edi",
            "+sub eax,edi",
            "+mov m4[None+None*1+fxgloop.c::_two_player_exit_countdown],eax",
            "+jne local:296",
            "+mov m4[None+None*1+fxgloop.c::_game_loop_active],eax",
            " push 0x1",
            " call LINKER MODULE::_grBufferSwap@4",
            " xor ecx,ecx",
            "@@ -330,34 +306,31 @@",
            " mov m4[None+None*1+fxpoly1.c::_use_glide],esi",
            " call LINKER MODULE::_grSstControl@4",
            " cmp m4[None+None*1+server.c::_client_server],0x0",
            "-je local:447",
            "+je local:422",
            " mov edx,m4[None+None*1+server.c::_server_connection_number]",
            " cmp edx,m4[None+None*1+apnet.c::_my_connection_number]",
            "-jne local:445",
            "+jne local:420",
            " call server.c::send_server_left_game_",
            " xor ecx,ecx",
            " mov dl,m1[None+None*1+modemprf.c::_rods_connect]",
            " mov m4[None+None*1+fxgloop.c::_following_mate],ecx",
            " test dl,dl",
            "-je local:362",
            "-mov esi,m4[None+None*1+fxgloop.c::_advance_frames]",
            "-xor ebx,ebx",
            "-test esi,esi",
            "-jle local:352",
            "+je local:336",
            "+cmp m4[None+None*1+fxgloop.c::_advance_frames],0x0",
            "+jle local:326",
            " call apser.c::rx_serial_packet_",
            "-mov edx,m4[None+None*1+fxgloop.c::_advance_frames]",
            "-inc ebx",
            "-cmp ebx,edx",
            "-jl local:346",
            "-lea eax,m4[eax+None*1+0x0]",
            "-mov ecx,m4[None+None*1+gamedata.c::_game_mode]",
            "-cmp ecx,0x1",
            "-jne local:360",
            "-mov ebx,m4[None+None*1+apser.c::_combat_score]",
            "-cmp ebx,ecx",
            "-jne local:449",
            "+mov ebx,m4[None+None*1+fxgloop.c::_advance_frames]",
            "+inc ecx",
            "+cmp ecx,ebx",
            "+jl local:320",
            "+mov esi,m4[None+None*1+gamedata.c::_game_mode]",
            "+cmp esi,0x1",
            "+jne local:334",
            "+mov edi,m4[None+None*1+apser.c::_combat_score]",
            "+cmp edi,esi",
            "+jne local:424",
            " mov eax,m4[None+None*1+apnet.c::_my_connection_number]",
            "-add m4[None+eax*4+multidr.c::_multi_player_kill_record],ebx",
            "+add m4[None+eax*4+multidr.c::_multi_player_kill_record],esi",
            " call secure.c::set_menu_timeouts_",
            " call modemprf.c::init_post_game_sequence_",
            " call modemprf.c::enable_player_menu_buttons_",
            "@@ -388,14 +361,14 @@",
            " push text:'unknown game_mode'",
            " call debuglog.c::debug_log_fatal_long_",
            " add esp,0xc",
            "-jmp local:166",
            "-jbe local:192",
            "+jmp local:164",
            "+jbe local:189",
            " cmp edx,0x5",
            "-je local:192",
            "+je local:189",
            " call war.c::update_war_model_",
            "-jmp local:192",
            "+jmp local:189",
            " imul eax,eax,0x3dc",
            "-jmp local:243",
            "+jmp local:233",
            " mov eax,m4[None+None*1+fxpoly1.c::_lfb_modulo]",
            " mov edx,eax",
            " sar edx,0x1f",
            "@@ -403,54 +376,54 @@",
            " sbb eax,edx",
            " sar eax,0x2",
            " imul eax,eax,0x77c",
            "-add ebx,eax",
            "-jmp local:244",
            "+add ecx,eax",
            "+jmp local:234",
            " call control.c::update_controls_",
            " call events.c::process_events_",
            " cmp m4[None+None*1+control.c::_control_input_type],0x1",
            "-je local:438",
            "+je local:413",
            " call joystick.c::read_joystick_",
            " mov eax,m4[None+None*1+gamedata.c::_delta_time]",
            " call fx3dmain.c::update_3d_visual_",
            " call views.c::update_view_mode_",
            " call cockpits.c::draw_cockpit_",
            "-push fxpoly1.c::_lfbinfo",
            "-xor esi,esi",
            "-push esi",
            "-push esi",
            "-push 0x4",
            "-push 0x1",
            "-push 0x1",
            "-mov m4[None+None*1+fxpoly1.c::_use_glide],esi",
            "-call LINKER MODULE::_grLfbLock@24",
            "-mov eax,m4[None+None*1+0x724310]",
            "-mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "-mov eax,m4[None+None*1+0x724314]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            " call avionics.c::draw_avionics_displays_",
            "-push 0x1",
            "-push 0x1",
            "-mov edi,0x1",
            "-call LINKER MODULE::_grLfbUnlock@8",
            "-mov m4[None+None*1+fxpoly1.c::_use_glide],edi",
            " call cockpits.c::new_routine_to_download_cockpit_screen_to_lfb_",
            "+push 0x1e0",
            "+push 0x280",
            "+mov ecx,0x1e0",
            "+push 0x0",
            "+mov ebx,0x280",
            "+xor edx,edx",
            "+push 0x0",
            "+xor eax,eax",
            "+mov esi,0xc8",
            "+call 2dcore.c::set_2d_viewport_and_window_",
            "+mov eax,text.c::_standard_5x9",
            "+mov ebx,0x12c",
            "+mov dh,0x1",
            "+call text.c::set_text_font_",
            "+mov eax,text:'GAME PAUSED'",
            "+mov m4[None+None*1+text.c::_text_x_position],ebx",
            "+mov m4[None+None*1+text.c::_text_y_position],esi",
            "+mov m1[None+None*1+text.c::_text_colour],dh",
            "+call text.c::print_text_string_",
            " call palette.c::update_palette_registers_",
            "-jmp local:320",
            "+jmp local:296",
            " cmp m4[None+None*1+control.c::_control_has_rudder],0x0",
            "-jne local:411",
            "+jne local:385",
            " cmp m4[None+None*1+control.c::_control_has_abs_throttle],0x0",
            "-jne local:411",
            "+jne local:385",
            " cmp m4[None+None*1+control.c::_control_has_rel_throttle],0x0",
            "-jne local:411",
            "-jmp local:412",
            "+jne local:385",
            "+jmp local:386",
            " call server.c::send_client_left_game_",
            "-jmp local:337",
            "+jmp local:313",
            " call links.c::general_send_user_left_game_",
            "-jmp local:337",
            "-cmp ebx,0xffffffff",
            "-jne local:360",
            "-mov edi,m4[None+None*1+apnet.c::_my_connection_number]",
            "-mov eax,ecx",
            "-sub eax,edi",
            "-add m4[None+eax*4+multidr.c::_multi_player_kill_record],ecx",
            "-jmp local:360",
            "+jmp local:313",
            "+cmp edi,0xffffffff",
            "+jne local:334",
            "+mov edx,m4[None+None*1+apnet.c::_my_connection_number]",
            "+mov eax,esi",
            "+sub eax,edx",
            "+jmp local:333"
          ]
        },
        {
          "symbol": "fxhaze.c::draw_haze_",
          "source": "E:\\library\\3dvisual\\fxhaze.c",
          "first": "0x4ab9b0",
          "second": "0x4ac030",
          "first_instruction_count": 214,
          "second_instruction_count": 214,
          "diff": [
            "--- 0x4ab9b0",
            "+++ 0x4ac030",
            "@@ -25,11 +25,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -42,15 +42,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x10],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov edx,m4[None+None*1+0xaff660]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -63,15 +63,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "fxhaze.c::draw_haze_trail_",
          "source": "E:\\library\\3dvisual\\fxhaze.c",
          "first": "0x4ab620",
          "second": "0x4abca0",
          "first_instruction_count": 91,
          "second_instruction_count": 91,
          "diff": [
            "--- 0x4ab620",
            "+++ 0x4abca0",
            "@@ -13,7 +13,7 @@",
            " mov eax,m4[edi+None*1+0x8]",
            " mov m4[esp+None*1+0x8],eax",
            " mov m4[esp+None*1+0x14],eax",
            "-mov eax,0xffffec00",
            "+mov eax,0xfffff000",
            " mov edx,m4[ecx+None*1+0x18]",
            " imul edx",
            " shld edx,eax,0x1",
            "@@ -21,14 +21,14 @@",
            " adc edx,0x0",
            " add m4[esp+None*1+0x0],edx",
            " mov edx,m4[ecx+None*1+0x1c]",
            "-mov eax,0xffffec00",
            "+mov eax,0xfffff000",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            " add m4[esp+None*1+0x4],edx",
            " mov edx,m4[ecx+None*1+0x20]",
            "-mov eax,0xffffec00",
            "+mov eax,0xfffff000",
            " mov ecx,m4[esp+None*1+0x8]",
            " imul edx",
            " shld edx,eax,0x1",
            "@@ -54,7 +54,7 @@",
            " sar eax,cl",
            " mov m4[esp+None*1+0x18],eax",
            " mov eax,0x1",
            "-mov esi,0xe6",
            "+mov esi,0xf0",
            " shl eax,cl",
            " xor edi,edi",
            " mov m4[esp+None*1+0x24],eax"
          ]
        },
        {
          "symbol": "fxhaze.c::scan_haze_",
          "source": "E:\\library\\3dvisual\\fxhaze.c",
          "first": "0x4ab780",
          "second": "0x4abe00",
          "first_instruction_count": 176,
          "second_instruction_count": 176,
          "diff": [
            "--- 0x4ab780",
            "+++ 0x4abe00",
            "@@ -34,15 +34,15 @@",
            " mov m4[esp+None*1+0x0],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x14]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -115,15 +115,15 @@",
            " mov m4[esp+None*1+0x8],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "fxinit.c::free_texture_memory_",
          "source": "E:\\library\\gfxinit\\fxinit.c",
          "first": "0x48b440",
          "second": "0x48b4f8",
          "first_instruction_count": 25,
          "second_instruction_count": 25,
          "diff": [
            "--- 0x48b440",
            "+++ 0x48b4f8",
            "@@ -12,7 +12,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov ebx,0x605",
            "+mov ebx,0x60e",
            " mov eax,edx",
            " mov edx,text:'\\\\library\\\\gfxinit\\\\fxinit.c'",
            " call memory.c::mem_free_"
          ]
        },
        {
          "symbol": "fxinit.c::load_in_explosions_",
          "source": "E:\\library\\gfxinit\\fxinit.c",
          "first": "0x48a2ec",
          "second": "0x48a3ac",
          "first_instruction_count": 660,
          "second_instruction_count": 660,
          "diff": [
            "--- 0x48a2ec",
            "+++ 0x48a3ac",
            "@@ -115,7 +115,7 @@",
            " call LINKER MODULE::_grGlideShutdown@0",
            " mov eax,0xffffffff",
            " call exit::exit_",
            "-mov ebx,0x219",
            "+mov ebx,0x21d",
            " mov edx,text:'\\\\library\\\\gfxinit\\\\fxinit.c'",
            " mov eax,m4[esp+None*1+0x20c]",
            " mov esi,m4[esp+None*1+0x1d4]",
            "@@ -236,7 +236,7 @@",
            " call LINKER MODULE::_grGlideShutdown@0",
            " mov eax,0xffffffff",
            " call exit::exit_",
            "-mov ebx,0x26b",
            "+mov ebx,0x274",
            " mov edx,text:'\\\\library\\\\gfxinit\\\\fxinit.c'",
            " mov eax,m4[esp+None*1+0x204]",
            " mov esi,m4[esp+None*1+0x1d8]",
            "@@ -362,7 +362,7 @@",
            " call LINKER MODULE::_grGlideShutdown@0",
            " mov eax,0xffffffff",
            " call exit::exit_",
            "-mov ebx,0x2c8",
            "+mov ebx,0x2d1",
            " mov edx,text:'\\\\library\\\\gfxinit\\\\fxinit.c'",
            " mov eax,m4[esp+None*1+0x1f8]",
            " mov edi,m4[esp+None*1+0x1dc]",
            "@@ -483,7 +483,7 @@",
            " call LINKER MODULE::_grGlideShutdown@0",
            " mov eax,0xffffffff",
            " call exit::exit_",
            "-mov ebx,0x31a",
            "+mov ebx,0x323",
            " mov edx,text:'\\\\library\\\\gfxinit\\\\fxinit.c'",
            " mov eax,m4[esp+None*1+0x214]",
            " mov edi,m4[esp+None*1+0x1d0]",
            "@@ -604,7 +604,7 @@",
            " call LINKER MODULE::_grGlideShutdown@0",
            " mov eax,0xffffffff",
            " call exit::exit_",
            "-mov ebx,0x36c",
            "+mov ebx,0x375",
            " mov edx,text:'\\\\library\\\\gfxinit\\\\fxinit.c'",
            " mov eax,m4[esp+None*1+0x218]",
            " mov edi,m4[esp+None*1+0x1e0]"
          ]
        },
        {
          "symbol": "fxinit.c::load_in_object_textures_",
          "source": "E:\\library\\gfxinit\\fxinit.c",
          "first": "0x489ea0",
          "second": "0x489fc0",
          "first_instruction_count": 99,
          "second_instruction_count": 80,
          "diff": [
            "--- 0x489ea0",
            "+++ 0x489fc0",
            "@@ -4,7 +4,7 @@",
            " push esi",
            " push edi",
            " push ebp",
            "-sub esp,0xd0",
            "+sub esp,0x4",
            " mov edi,eax",
            " push 0x0",
            " mov ebx,0x3",
            "@@ -12,29 +12,17 @@",
            " mov ebp,0x1000",
            " call LINKER MODULE::_grTexMaxAddress@4",
            " mov edx,0x2",
            "-mov m4[esp+None*1+0xcc],eax",
            "+mov m4[esp+None*1+0x0],eax",
            " mov m4[None+None*1+0xafaaa0],ebx",
            " mov m4[None+None*1+0xafaaa4],esi",
            " mov m4[None+None*1+0xafaeac],ebp",
            "-mov ebx,text:'OBJTEXT.BIN'",
            "-mov eax,esp",
            "+mov edi,m4[edi+None*1+0x0]",
            "+mov esi,0x146",
            "+mov ebp,fxpoly1.c::_texture_information",
            "+mov ebx,m4[None+None*1+fx3dobj1.c::_object_texture_data]",
            " mov m4[None+None*1+0xafaa98],edx",
            " mov m4[None+None*1+0xafaa9c],edx",
            "-mov edx,text:'3DDATA\\\\'",
            "-mov edi,m4[edi+None*1+0x0]",
            "-call file.c::get_file_spec_",
            "-mov eax,m4[None+None*1+fxinit.c::_object_texture_data]",
            "-test eax,eax",
            "-jne local:91",
            "-mov ecx,0x6d",
            "-mov ebx,text:'\\\\library\\\\gfxinit\\\\fxinit.c'",
            "-lea edx,m4[esp+None*1+0xc8]",
            "-mov eax,esp",
            "-mov esi,0x146",
            "-mov ebp,fxpoly1.c::_texture_information",
            "-call file.c::load_variable_length_file_verbose_",
            "-mov m4[None+None*1+fxinit.c::_object_texture_data],eax",
            "-lea ebx,m4[eax+None*1+0x4]",
            "+add ebx,0x4",
            " add ebp,0x1e90",
            " mov m4[None+None*1+fx3dobj1.c::_object_textures],ebx",
            " mov edx,0x1",
            "@@ -42,46 +30,41 @@",
            " call calloc::calloc_",
            " mov m4[None+None*1+0xafaea8],eax",
            " test eax,eax",
            "-jne local:48",
            "-call LINKER MODULE::_grGlideShutdown@0",
            "-mov eax,0xffffffff",
            "-call exit::exit_",
            "-mov ecx,m4[ebx+None*1+0x0]",
            "-lea eax,m4[ebx+None*1+0x4]",
            "-test ecx,ecx",
            "-je local:97",
            "-mov edx,m4[None+None*1+fxinit.c::_object_texture_data]",
            "-add ecx,edx",
            "-mov m4[ebx+None*1+0x0],ecx",
            "-mov ebx,eax",
            "+je local:74",
            "+mov eax,m4[ebx+None*1+0x0]",
            "+lea edx,m4[ebx+None*1+0x4]",
            "+test eax,eax",
            "+je local:78",
            "+mov eax,m4[eax+None*1+0x8]",
            "+mov m4[None+None*1+0xafaea8],eax",
            " imul eax,esi,0x18",
            "-lea edx,m4[ecx+None*1+0xc]",
            "-mov m4[None+None*1+0xafaea8],edx",
            "-mov edx,m4[None+None*1+0xafaa98]",
            "+mov ebx,m4[None+None*1+0xafaa98]",
            " mov m4[eax+None*1+0x722084],edi",
            "-mov m4[eax+None*1+fxpoly1.c::_texture_information],edx",
            "-mov edx,m4[None+None*1+0xafaa9c]",
            "-mov m4[eax+None*1+0x722074],edx",
            "-mov edx,m4[None+None*1+0xafaaa0]",
            "-mov m4[eax+None*1+0x722078],edx",
            "-mov edx,m4[None+None*1+0xafaaa4]",
            "+mov m4[eax+None*1+fxpoly1.c::_texture_information],ebx",
            "+mov ebx,m4[None+None*1+0xafaa9c]",
            "+mov m4[eax+None*1+0x722074],ebx",
            "+mov ebx,m4[None+None*1+0xafaaa0]",
            "+mov m4[eax+None*1+0x722078],ebx",
            "+mov ebx,m4[None+None*1+0xafaaa4]",
            " push ebp",
            "-mov m4[eax+None*1+0x72207c],edx",
            "-mov edx,m4[None+None*1+0xafaea8]",
            "+mov m4[eax+None*1+0x72207c],ebx",
            "+mov ebx,m4[None+None*1+0xafaea8]",
            " push 0x3",
            "-mov m4[eax+None*1+0x722080],edx",
            "+mov m4[eax+None*1+0x722080],ebx",
            "+mov ebx,edx",
            " call LINKER MODULE::_grTexTextureMemRequired@8",
            "+mov edx,m4[esp+None*1+0x0]",
            " add edi,eax",
            "-cmp edi,m4[esp+None*1+0xcc]",
            "-jle local:79",
            "+cmp edi,edx",
            "+jle local:62",
            " call LINKER MODULE::_grGlideShutdown@0",
            " mov eax,0xffffffff",
            " call exit::exit_",
            " inc esi",
            " add ebp,0x18",
            " cmp esi,0x171",
            "-jl local:39",
            "-add esp,0xd0",
            "+jl local:27",
            "+add esp,0x4",
            " pop ebp",
            " pop edi",
            " pop esi",
            "@@ -89,11 +72,9 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov ebx,0x6b",
            "-mov edx,text:'\\\\library\\\\gfxinit\\\\fxinit.c'",
            "-call memory.c::mem_free_",
            "-xor edx,edx",
            "-mov m4[None+None*1+fxinit.c::_object_texture_data],edx",
            "-jmp local:28",
            "-mov ebx,eax",
            "-jmp local:81",
            "+call LINKER MODULE::_grGlideShutdown@0",
            "+mov eax,0xffffffff",
            "+call exit::exit_",
            "+jmp local:33",
            "+mov ebx,edx",
            "+jmp local:64"
          ]
        },
        {
          "symbol": "fxinit.c::setup_3dfx_textures_",
          "source": "E:\\library\\gfxinit\\fxinit.c",
          "first": "0x48afec",
          "second": "0x48b0ac",
          "first_instruction_count": 187,
          "second_instruction_count": 186,
          "diff": [
            "--- 0x48afec",
            "+++ 0x48b0ac",
            "@@ -35,7 +35,7 @@",
            " mov edi,eax",
            " mov esi,eax",
            " test eax,eax",
            "-je local:183",
            "+je local:182",
            " mov ebx,ecx",
            " xor edx,edx",
            " call fseek::fseek_",
            "@@ -117,11 +117,10 @@",
            " lea eax,m4[esp+None*1+0x64]",
            " xor esi,esi",
            " call fxinit.c::load_in_object_textures_",
            "-lea eax,m4[None+esi*4+0x0]",
            "+imul eax,esi,0x18",
            " push edi",
            "-sub eax,esi",
            " push 0x3",
            "-mov ebx,m4[None+eax*8+0x722084]",
            "+mov ebx,m4[eax+None*1+0x722084]",
            " push ebx",
            " push 0x0",
            " add edi,0x18"
          ]
        },
        {
          "symbol": "fxpoly1.c::_3dfx_fill_object_textured_polygon_",
          "source": "E:\\library\\graphics\\fxpoly1.c",
          "first": "0x4730ec",
          "second": "0x473240",
          "first_instruction_count": 128,
          "second_instruction_count": 101,
          "diff": [
            "--- 0x4730ec",
            "+++ 0x473240",
            "@@ -1,21 +1,14 @@",
            "+push edi",
            "+sub esp,0x8",
            "+mov edi,eax",
            "+cmp edx,0x171",
            "+jle local:8",
            "+add esp,0x8",
            "+pop edi",
            "+ret ",
            "+push esi",
            "+push ecx",
            " push ebx",
            "-push ecx",
            "-push esi",
            "-push edi",
            "-push ebp",
            "-mov ebp,esp",
            "-sub esp,0x2c",
            "-and esp,0xfffffff8",
            "-mov ebx,eax",
            "-cmp edx,0x171",
            "-jle local:18",
            "-mov esp,ebp",
            "-pop ebp",
            "-pop edi",
            "-pop esi",
            "-pop ecx",
            "-pop ebx",
            "-ret ",
            " lea eax,m4[None+edx*4+0x0]",
            " sub eax,edx",
            " mov edx,fxpoly1.c::_texture_information",
            "@@ -32,49 +25,35 @@",
            " push 0x0",
            " push 0x1",
            " push 0x3",
            "+mov ebx,edi",
            "+xor esi,esi",
            " call LINKER MODULE::_grColorCombine@20",
            "-mov eax,m4[ebx+None*1+0x1c]",
            "-sar eax,0x17",
            "-mov m4[esp+None*1+0x28],eax",
            "-fild m4[esp+None*1+0x28]",
            "-fsubr m8[None+None*1+constant:0000000000006040]",
            "-fmul m8[None+None*1+constant:295c8fc2f528dc3f]",
            "-fadd m8[None+None*1+constant:0000000000004c40]",
            "-fld m8[None+None*1+constant:0000000000e06f40]",
            "-fld st(0)",
            "-fxch st(0),st(2)",
            "-fstp m8[esp+None*1+0x8]",
            "-fxch st(0),st(1)",
            "-fsub m8[esp+None*1+0x8]",
            "-fst m8[esp+None*1+0x0]",
            "-fcompp ",
            "-fnstsw ax",
            "-sahf ",
            "-jae local:123",
            "-mov eax,m4[esp+None*1+0x0]",
            "-mov m4[esp+None*1+0x10],eax",
            "-mov eax,m4[esp+None*1+0x4]",
            "-mov m4[esp+None*1+0x14],eax",
            "-fldz ",
            "-fcomp m8[esp+None*1+0x10]",
            "-fnstsw ax",
            "-sahf ",
            "+test edi,edi",
            "+je local:91",
            "+xor ecx,ecx",
            " mov edi,0x4040",
            "-xor esi,esi",
            "-xor ecx,ecx",
            " fld m4[None+None*1+3dcore.c::_vertex_snapper]",
            " fild m4[ebx+None*1+0xc]",
            " fadd st(1)",
            "-mov eax,m4[esp+None*1+0x18]",
            " fstp m4[ecx+None*1+fxpoly1.c::_v_ptr]",
            " fild m4[ebx+None*1+0x10]",
            "-mov m4[ecx+None*1+0x71e47c],eax",
            "-mov eax,m4[esp+None*1+0x1c]",
            "-mov m4[ecx+None*1+0x71e480],eax",
            "-mov eax,m4[esp+None*1+0x20]",
            " faddp st(1)",
            "-mov m4[ecx+None*1+0x71e484],eax",
            " fstp m4[ecx+None*1+0x71e474]",
            "+mov eax,m4[ebx+None*1+0x1c]",
            "+sar eax,0x17",
            "+mov m4[esp+None*1+0x10],eax",
            "+fild m4[esp+None*1+0x10]",
            "+fstp m4[ecx+None*1+0x71e47c]",
            "+mov eax,m4[ebx+None*1+0x1c]",
            "+sar eax,0x17",
            "+mov m4[esp+None*1+0x10],eax",
            "+fild m4[esp+None*1+0x10]",
            "+fstp m4[ecx+None*1+0x71e480]",
            "+mov eax,m4[ebx+None*1+0x1c]",
            "+sar eax,0x17",
            "+mov m4[esp+None*1+0x10],eax",
            "+fild m4[esp+None*1+0x10]",
            "+fstp m4[ecx+None*1+0x71e484]",
            " fild m4[ebx+None*1+0x4]",
            " fmul m4[None+None*1+fxpoly1.c::_max_fogging_range]",
            " fmul m4[None+None*1+constant:00fe7f47]",
            "@@ -87,8 +66,8 @@",
            " mov edx,eax",
            " sar edx,0x1f",
            " idiv edi",
            "-mov m4[esp+None*1+0x28],eax",
            "-fild m4[esp+None*1+0x28]",
            "+mov m4[esp+None*1+0x10],eax",
            "+fild m4[esp+None*1+0x10]",
            " fld st(0)",
            " fmul m4[ecx+None*1+0x71e490]",
            " fstp m4[ecx+None*1+0x71e494]",
            "@@ -96,9 +75,9 @@",
            " mov edx,eax",
            " sar edx,0x1f",
            " idiv edi",
            "-mov m4[esp+None*1+0x28],eax",
            "+mov m4[esp+None*1+0x10],eax",
            " add ecx,0x3c",
            "-fild m4[esp+None*1+0x28]",
            "+fild m4[esp+None*1+0x10]",
            " fstp st(1)",
            " fmul m4[ecx+None*1+0x71e454]",
            " mov eax,m4[ecx+None*1+0x71e454]",
            "@@ -107,22 +86,16 @@",
            " mov ebx,m4[ebx+None*1+0x24]",
            " inc esi",
            " test ebx,ebx",
            "-je local:112",
            "+je local:91",
            " cmp ecx,0x3c00",
            "-jl local:64",
            "+jl local:34",
            " push fxpoly1.c::_v_ptr",
            " push esi",
            " call LINKER MODULE::_grDrawPolygonVertexList@8",
            " inc m4[None+None*1+fxpoly1.c::_polygons_per_frame]",
            "-mov esp,ebp",
            "-pop ebp",
            "+pop ebx",
            "+pop ecx",
            "+pop esi",
            "+add esp,0x8",
            " pop edi",
            "-pop esi",
            "-pop ecx",
            "-pop ebx",
            " ret ",
            "-xor ecx,ecx",
            "-mov esi,0x406fe000",
            "-mov m4[esp+None*1+0x10],ecx",
            "-mov m4[esp+None*1+0x14],esi",
            "-jmp local:57"
          ]
        },
        {
          "symbol": "fxpoly1.c::_3dfx_fill_textured_polygon_",
          "source": "E:\\library\\graphics\\fxpoly1.c",
          "first": "0x472f60",
          "second": "0x4730f0",
          "first_instruction_count": 117,
          "second_instruction_count": 101,
          "diff": [
            "--- 0x472f60",
            "+++ 0x4730f0",
            "@@ -1,11 +1,9 @@",
            " push edi",
            "-push ebp",
            " sub esp,0x8",
            " mov edi,eax",
            " cmp edx,0x171",
            "-jle local:10",
            "+jle local:8",
            " add esp,0x8",
            "-pop ebp",
            " pop edi",
            " ret ",
            " push esi",
            "@@ -31,10 +29,9 @@",
            " xor esi,esi",
            " call LINKER MODULE::_grColorCombine@20",
            " test edi,edi",
            "-je local:100",
            "-mov edi,0x80",
            "-mov ebp,0x4040",
            "+je local:91",
            " xor ecx,ecx",
            "+mov edi,0x4040",
            " fld m4[None+None*1+3dcore.c::_vertex_snapper]",
            " fild m4[ebx+None*1+0xc]",
            " fadd st(1)",
            "@@ -44,22 +41,16 @@",
            " fstp m4[ecx+None*1+0x71e474]",
            " mov eax,m4[ebx+None*1+0x1c]",
            " sar eax,0x17",
            "-cmp eax,0x80",
            "-jle local:111",
            " mov m4[esp+None*1+0x10],eax",
            " fild m4[esp+None*1+0x10]",
            " fstp m4[ecx+None*1+0x71e47c]",
            " mov eax,m4[ebx+None*1+0x1c]",
            " sar eax,0x17",
            "-cmp eax,0x80",
            "-jle local:113",
            " mov m4[esp+None*1+0x10],eax",
            " fild m4[esp+None*1+0x10]",
            " fstp m4[ecx+None*1+0x71e480]",
            " mov eax,m4[ebx+None*1+0x1c]",
            " sar eax,0x17",
            "-cmp eax,0x80",
            "-jle local:115",
            " mov m4[esp+None*1+0x10],eax",
            " fild m4[esp+None*1+0x10]",
            " fstp m4[ecx+None*1+0x71e484]",
            "@@ -74,7 +65,7 @@",
            " mov eax,m4[ebx+None*1+0x14]",
            " mov edx,eax",
            " sar edx,0x1f",
            "-idiv ebp",
            "+idiv edi",
            " mov m4[esp+None*1+0x10],eax",
            " fild m4[esp+None*1+0x10]",
            " fld st(0)",
            "@@ -83,7 +74,7 @@",
            " mov eax,m4[ebx+None*1+0x18]",
            " mov edx,eax",
            " sar edx,0x1f",
            "-idiv ebp",
            "+idiv edi",
            " mov m4[esp+None*1+0x10],eax",
            " add ecx,0x3c",
            " fild m4[esp+None*1+0x10]",
            "@@ -95,9 +86,9 @@",
            " mov ebx,m4[ebx+None*1+0x24]",
            " inc esi",
            " test ebx,ebx",
            "-je local:100",
            "+je local:91",
            " cmp ecx,0x3c00",
            "-jl local:37",
            "+jl local:34",
            " push fxpoly1.c::_v_ptr",
            " push esi",
            " call LINKER MODULE::_grDrawPolygonVertexList@8",
            "@@ -106,12 +97,5 @@",
            " pop ecx",
            " pop esi",
            " add esp,0x8",
            "-pop ebp",
            " pop edi",
            " ret ",
            "-mov eax,edi",
            "-jmp local:48",
            "-mov eax,edi",
            "-jmp local:55",
            "-mov eax,edi",
            "-jmp local:62"
          ]
        },
        {
          "symbol": "fxpoly1.c::_3dfx_fill_unfogged_translucent_cloud_polygon_",
          "source": "E:\\library\\graphics\\fxpoly1.c",
          "first": "0x473714",
          "second": "0x47381c",
          "first_instruction_count": 114,
          "second_instruction_count": 117,
          "diff": [
            "--- 0x473714",
            "+++ 0x47381c",
            "@@ -76,7 +76,7 @@",
            " fstp m4[ecx+None*1+0x71e484]",
            " cmp edx,0xa0",
            " jge local:108",
            "-mov edx,0x1",
            "+mov edx,0xa",
            " add ecx,0x3c",
            " mov m4[esp+None*1+0x0],edx",
            " mov m4[ecx+None*1+0x71e454],0x3f800000",
            "@@ -106,9 +106,12 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-cmp edx,0x1",
            "+cmp edx,0xc0",
            "+jle local:112",
            "+mov edx,0xf4",
            "+jmp local:79",
            "+cmp edx,0xa",
            " jl local:78",
            "-cmp edx,0xfe",
            "-jle local:79",
            "-mov edx,0xfe",
            "+cmp edx,0xf4",
            "+jg local:110",
            " jmp local:79"
          ]
        },
        {
          "symbol": "fxsmoke.c::draw_smoke_",
          "source": "E:\\library\\3dvisual\\fxsmoke.c",
          "first": "0x4ab294",
          "second": "0x4ab914",
          "first_instruction_count": 206,
          "second_instruction_count": 206,
          "diff": [
            "--- 0x4ab294",
            "+++ 0x4ab914",
            "@@ -25,11 +25,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -42,15 +42,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov edx,m4[None+None*1+0xaff660]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -63,15 +63,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x10],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "fxsmoke.c::scan_smoke_",
          "source": "E:\\library\\3dvisual\\fxsmoke.c",
          "first": "0x4ab05c",
          "second": "0x4ab6dc",
          "first_instruction_count": 176,
          "second_instruction_count": 176,
          "diff": [
            "--- 0x4ab05c",
            "+++ 0x4ab6dc",
            "@@ -34,15 +34,15 @@",
            " mov m4[esp+None*1+0x0],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x14]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -115,15 +115,15 @@",
            " mov m4[esp+None*1+0x8],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "fxterr.c::draw_completely_visible_contour_lines_",
          "source": "E:\\library\\3dvisual\\fxterr.c",
          "first": "0x4b713c",
          "second": "0x4b77b0",
          "first_instruction_count": 751,
          "second_instruction_count": 785,
          "diff": [
            "--- 0x4b713c",
            "+++ 0x4b77b0",
            "@@ -2,8 +2,8 @@",
            " push edi",
            " push ebp",
            " sub esp,0x84",
            "-mov ebp,eax",
            "-mov m4[esp+None*1+0x80],edx",
            "+mov m4[esp+None*1+0x80],eax",
            "+mov ebp,edx",
            " mov m4[esp+None*1+0x70],ecx",
            " mov eax,m4[None+None*1+drawmap.c::_map_configuration]",
            " mov edx,eax",
            "@@ -36,29 +36,29 @@",
            " cmp ebx,esi",
            " jne local:39",
            " cmp esi,m4[esp+None*1+0xa4]",
            "-je local:746",
            "+je local:780",
            " cmp ebx,m4[esp+None*1+0xa4]",
            " jle local:63",
            " mov edx,m4[esp+None*1+0x9c]",
            "-mov edi,m4[esp+None*1+0x80]",
            "+mov ecx,m4[esp+None*1+0x80]",
            "+mov eax,m4[esp+None*1+0xa0]",
            "+mov esi,edx",
            "+xor ecx,edx",
            "+xor ebp,eax",
            "+mov edi,ecx",
            "+mov edx,eax",
            "+xor esi,ecx",
            "+mov m4[esp+None*1+0x80],ecx",
            "+mov m4[esp+None*1+0x9c],esi",
            "+xor edi,esi",
            "+xor edx,ebp",
            " mov esi,m4[esp+None*1+0xa4]",
            "-mov ecx,edx",
            "+mov m4[esp+None*1+0x80],edi",
            "+mov edi,esi",
            "+xor ebx,esi",
            "+mov m4[esp+None*1+0xa0],edx",
            "+xor edi,ebx",
            " xor ebp,edx",
            "-xor ebx,esi",
            "-xor ecx,ebp",
            "-mov edx,m4[esp+None*1+0xa0]",
            "-mov m4[esp+None*1+0x9c],ecx",
            "-mov eax,edx",
            "-xor edi,edx",
            "-xor ebp,ecx",
            "-mov m4[esp+None*1+0x80],edi",
            "-xor eax,edi",
            "-mov ecx,edi",
            "-mov m4[esp+None*1+0xa0],eax",
            "-mov edi,esi",
            "-xor ecx,eax",
            "-xor edi,ebx",
            "-mov m4[esp+None*1+0x80],ecx",
            " mov m4[esp+None*1+0xa4],edi",
            " xor ebx,edi",
            " mov edx,m4[esp+None*1+0x98]",
            "@@ -96,111 +96,113 @@",
            " mov m4[esp+None*1+0x98],esi",
            " cmp ebx,m4[esp+None*1+0x98]",
            " jle local:120",
            "-mov eax,m4[esp+None*1+0x70]",
            "-mov edx,eax",
            "+mov edx,m4[esp+None*1+0x70]",
            "+mov eax,m4[esp+None*1+0x80]",
            "+mov edi,m4[esp+None*1+0x94]",
            "+mov ecx,edx",
            "+xor eax,edx",
            "+xor ebp,edi",
            "+mov esi,eax",
            "+xor ecx,eax",
            "+mov m4[esp+None*1+0x80],eax",
            "+mov m4[esp+None*1+0x70],ecx",
            "+mov eax,edi",
            "+xor esi,ecx",
            "+mov ecx,m4[esp+None*1+0x98]",
            "+mov m4[esp+None*1+0x80],esi",
            "+xor eax,ebp",
            "+mov esi,ecx",
            "+xor ebx,ecx",
            "+mov m4[esp+None*1+0x94],eax",
            "+xor esi,ebx",
            " xor ebp,eax",
            "-xor edx,ebp",
            "-mov m4[esp+None*1+0x70],edx",
            "-xor ebp,edx",
            "-mov edx,m4[esp+None*1+0x94]",
            "-mov esi,m4[esp+None*1+0x80]",
            "-mov edi,edx",
            "-xor esi,edx",
            "-mov edx,m4[esp+None*1+0x98]",
            "-mov m4[esp+None*1+0x80],esi",
            "-xor edi,esi",
            "-mov eax,esi",
            "-mov m4[esp+None*1+0x94],edi",
            "-mov ecx,edx",
            "-xor ebx,edx",
            "-xor eax,edi",
            "-xor ecx,ebx",
            "-mov m4[esp+None*1+0x80],eax",
            "-mov m4[esp+None*1+0x98],ecx",
            "-xor ebx,ecx",
            "+mov m4[esp+None*1+0x98],esi",
            "+xor ebx,esi",
            " mov edx,m4[esp+None*1+0x74]",
            "-mov ecx,m4[esp+None*1+0xa0]",
            "-mov edi,m4[esp+None*1+0x80]",
            "-mov eax,m4[esp+None*1+0x98]",
            "-lea esi,m4[ebx+None*1+0xffffffff]",
            "+mov esi,m4[esp+None*1+0xa0]",
            "+mov edi,m4[esp+None*1+0x9c]",
            " dec edx",
            "-sub ecx,edi",
            "+lea ecx,m4[ebx+None*1+0xffffffff]",
            " mov m4[esp+None*1+0x8],edx",
            " mov edx,m4[esp+None*1+0xa4]",
            "-mov edi,m4[esp+None*1+0x9c]",
            "+mov eax,m4[esp+None*1+0x80]",
            " sub edx,ebx",
            "-sub edi,ebp",
            "+sub esi,ebp",
            " mov m4[esp+None*1+0xc],edx",
            "-cmp ebx,eax",
            "-jne local:287",
            "+mov edx,m4[esp+None*1+0x98]",
            "+sub edi,eax",
            "+cmp ebx,edx",
            "+jne local:296",
            "+mov edx,m4[esp+None*1+0xc]",
            "+mov ebx,m4[esp+None*1+0xc]",
            " mov m4[esp+None*1+0x4c],edx",
            "+mov edx,edi",
            " mov eax,edi",
            "-mov edx,edi",
            "-mov edi,m4[esp+None*1+0xc]",
            "-sar edx,0x1f",
            "-idiv edi",
            "+sar edx,0x1f",
            "+idiv ebx",
            " mov m4[esp+None*1+0x14],eax",
            "+mov edx,esi",
            "+mov eax,esi",
            "+sar edx,0x1f",
            "+idiv ebx",
            "+mov edi,m4[esp+None*1+0x70]",
            "+mov edx,m4[esp+None*1+0x9c]",
            "+sub edx,edi",
            "+mov m4[esp+None*1+0x3c],eax",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+idiv ebx",
            "+mov esi,m4[esp+None*1+0x94]",
            "+mov edx,m4[esp+None*1+0xa0]",
            "+sub edx,esi",
            "+mov m4[esp+None*1+0x28],eax",
            "+mov eax,edx",
            "+sar edx,0x1f",
            "+idiv ebx",
            "+mov m4[esp+None*1+0x34],eax",
            " mov edx,ecx",
            " mov eax,ecx",
            " sar edx,0x1f",
            "-idiv edi",
            "-mov ebx,m4[esp+None*1+0x70]",
            "-mov edx,m4[esp+None*1+0x9c]",
            "-sub edx,ebx",
            "-mov m4[esp+None*1+0x3c],eax",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-idiv edi",
            "-mov edx,m4[esp+None*1+0xa0]",
            "-mov m4[esp+None*1+0x28],eax",
            "-mov eax,m4[esp+None*1+0x94]",
            "-sub edx,eax",
            "-mov eax,edx",
            "-sar edx,0x1f",
            "-idiv edi",
            "-mov ebx,m4[esp+None*1+0x74]",
            "-mov m4[esp+None*1+0x34],eax",
            "-mov edx,esi",
            "-mov eax,esi",
            "-sar edx,0x1f",
            "-idiv ebx",
            "+idiv m4[esp+None*1+0x74]",
            " mov ecx,m4[esp+None*1+0x8]",
            " sub ecx,edx",
            " mov m4[esp+None*1+0x64],ecx",
            "-mov eax,m4[esp+None*1+0x4c]",
            "-dec eax",
            "-mov m4[esp+None*1+0x4c],eax",
            "-cmp eax,0xffffffff",
            "-je local:746",
            "-mov ecx,m4[esp+None*1+0x64]",
            "-test ecx,ecx",
            "+mov ebx,m4[esp+None*1+0x4c]",
            "+dec ebx",
            "+mov m4[esp+None*1+0x4c],ebx",
            "+cmp ebx,0xffffffff",
            "+je local:780",
            "+mov edi,m4[esp+None*1+0x64]",
            "+test edi,edi",
            " je local:195",
            "-mov esi,m4[esp+None*1+0x64]",
            "-mov edi,m4[esp+None*1+0x14]",
            "-mov edx,m4[esp+None*1+0x3c]",
            "-mov eax,m4[esp+None*1+0x80]",
            "+mov edx,m4[esp+None*1+0x14]",
            "+mov eax,m4[esp+None*1+0x80]",
            "+mov edi,m4[esp+None*1+0x64]",
            " mov ecx,m4[esp+None*1+0x70]",
            " mov ebx,m4[esp+None*1+0x94]",
            "-dec esi",
            "-add ebp,edi",
            " add eax,edx",
            "+mov edx,m4[esp+None*1+0x3c]",
            "+dec edi",
            "+add ebp,edx",
            " mov edx,m4[esp+None*1+0x28]",
            " mov m4[esp+None*1+0x80],eax",
            " add ecx,edx",
            " mov edx,m4[esp+None*1+0x34]",
            "-mov m4[esp+None*1+0x64],esi",
            "+mov m4[esp+None*1+0x64],edi",
            " add ebx,edx",
            " mov m4[esp+None*1+0x70],ecx",
            " mov m4[esp+None*1+0x94],ebx",
            " jmp local:169",
            " mov edx,m4[esp+None*1+0x74]",
            "-mov ebx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            " mov m4[esp+None*1+0x64],edx",
            "-test ebx,ebx",
            "-je local:251",
            "+test eax,eax",
            "+je local:260",
            "+cmp m4[None+None*1+fxpoly1.c::_fx_buffer_counter],0x0",
            "+jne local:213",
            " push fxpoly1.c::_lfbinfo",
            "-push ecx",
            "-push ecx",
            "+push edi",
            "+push edi",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            "@@ -208,8 +210,11 @@",
            " mov ecx,m4[None+None*1+0x724310]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],ecx",
            " mov ecx,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],ecx",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+inc ecx",
            " mov eax,m4[esp+None*1+0x94]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],ecx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            " sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            " imul edx",
            "@@ -224,15 +229,15 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,m4[None+None*1+2dcore.c::_viewport_x_min_2d]",
            "-mov eax,m4[esp+None*1+0x80]",
            "-mov ecx,edx",
            "-sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            " mov eax,ebp",
            "+mov ecx,edx",
            "+sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "+mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            "+mov eax,m4[esp+None*1+0x80]",
            " mov ebx,edx",
            " sub eax,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_x_2d]",
            "@@ -245,6 +250,10 @@",
            " mov edx,ecx",
            " mov ecx,edi",
            " call line.asm::_draw_glide_line",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ebx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            "+jne local:177",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "@@ -264,15 +273,15 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,m4[None+None*1+2dcore.c::_viewport_x_min_2d]",
            "-mov eax,m4[esp+None*1+0x80]",
            "-mov edi,edx",
            "-sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            " mov eax,ebp",
            "+mov edi,edx",
            "+sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "+mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            "+mov eax,m4[esp+None*1+0x80]",
            " mov ebx,edx",
            " sub eax,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_x_2d]",
            "@@ -286,18 +295,17 @@",
            " call line.asm::_draw_line",
            " jmp local:177",
            " mov edx,m4[esp+None*1+0x94]",
            "-mov eax,m4[esp+None*1+0x80]",
            "-sub edx,eax",
            "+sub edx,ebp",
            " mov m4[esp+None*1+0x4],edx",
            " mov edx,m4[esp+None*1+0x70]",
            "-sub edx,ebp",
            "+sub edx,eax",
            " mov m4[esp+None*1+0x0],edx",
            " mov edx,m4[esp+None*1+0x98]",
            " sub edx,ebx",
            " mov eax,m4[esp+None*1+0xa4]",
            " mov ebx,edx",
            " cmp eax,m4[esp+None*1+0x98]",
            "-jne local:450",
            "+jne local:465",
            " mov eax,m4[esp+None*1+0x0]",
            " mov edx,eax",
            " sar edx,0x1f",
            "@@ -313,56 +321,58 @@",
            " sar edx,0x1f",
            " idiv ebx",
            " mov m4[esp+None*1+0x2c],eax",
            "+mov edx,esi",
            "+mov eax,esi",
            "+sar edx,0x1f",
            "+idiv ebx",
            "+mov m4[esp+None*1+0x38],eax",
            " mov edx,ecx",
            " mov eax,ecx",
            " sar edx,0x1f",
            "-idiv ebx",
            "-mov m4[esp+None*1+0x38],eax",
            "-mov edx,esi",
            "-mov eax,esi",
            "-sar edx,0x1f",
            " idiv m4[esp+None*1+0x74]",
            "-mov m4[esp+None*1+0x68],ebp",
            "+mov m4[esp+None*1+0x6c],ebp",
            " mov ecx,m4[esp+None*1+0x8]",
            " mov m4[esp+None*1+0x48],ebx",
            " sub ecx,edx",
            " mov edx,m4[esp+None*1+0x80]",
            " mov m4[esp+None*1+0x5c],ecx",
            "-mov m4[esp+None*1+0x6c],edx",
            "-mov ebx,m4[esp+None*1+0x48]",
            "+mov m4[esp+None*1+0x68],edx",
            "+mov edx,m4[esp+None*1+0x48]",
            "+dec edx",
            "+mov m4[esp+None*1+0x48],edx",
            "+cmp edx,0xffffffff",
            "+je local:780",
            "+mov ebx,m4[esp+None*1+0x5c]",
            "+test ebx,ebx",
            "+je local:365",
            "+mov ebx,m4[esp+None*1+0x5c]",
            "+mov edx,m4[esp+None*1+0x30]",
            "+mov esi,m4[esp+None*1+0x80]",
            "+mov edi,m4[esp+None*1+0x20]",
            "+mov eax,m4[esp+None*1+0x68]",
            "+mov ecx,m4[esp+None*1+0x6c]",
            " dec ebx",
            "-mov m4[esp+None*1+0x48],ebx",
            "-cmp ebx,0xffffffff",
            "-je local:746",
            "-mov edi,m4[esp+None*1+0x5c]",
            "-test edi,edi",
            "-je local:357",
            "-mov edx,m4[esp+None*1+0x5c]",
            "-mov ecx,m4[esp+None*1+0x30]",
            "-mov ebx,m4[esp+None*1+0x80]",
            "-dec edx",
            "-mov esi,m4[esp+None*1+0x68]",
            "+add esi,edx",
            "+add ebp,edi",
            "+mov edx,m4[esp+None*1+0x2c]",
            "+mov m4[esp+None*1+0x80],esi",
            "+add eax,edx",
            "+mov edx,m4[esp+None*1+0x38]",
            "+mov m4[esp+None*1+0x5c],ebx",
            "+add ecx,edx",
            "+mov m4[esp+None*1+0x68],eax",
            "+mov m4[esp+None*1+0x6c],ecx",
            "+jmp local:339",
            "+mov edx,m4[esp+None*1+0x74]",
            "+mov esi,m4[None+None*1+fxpoly1.c::_use_glide]",
            " mov m4[esp+None*1+0x5c],edx",
            "-mov edx,m4[esp+None*1+0x20]",
            "-mov edi,m4[esp+None*1+0x6c]",
            "-add ebx,edx",
            "-mov edx,m4[esp+None*1+0x2c]",
            "-add ebp,ecx",
            "-add esi,edx",
            "-mov edx,m4[esp+None*1+0x38]",
            "-mov m4[esp+None*1+0x80],ebx",
            "-add edi,edx",
            "-mov m4[esp+None*1+0x68],esi",
            "-mov m4[esp+None*1+0x6c],edi",
            "-jmp local:331",
            "-mov edx,m4[esp+None*1+0x74]",
            "-mov eax,m4[None+None*1+fxpoly1.c::_use_glide]",
            "-mov m4[esp+None*1+0x5c],edx",
            "-test eax,eax",
            "-je local:413",
            "+test esi,esi",
            "+je local:428",
            "+cmp m4[None+None*1+fxpoly1.c::_fx_buffer_counter],0x0",
            "+jne local:383",
            " push fxpoly1.c::_lfbinfo",
            "-push edi",
            "-push edi",
            "+push ebx",
            "+push ebx",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            "@@ -370,8 +380,9 @@",
            " mov ecx,m4[None+None*1+0x724310]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],ecx",
            " mov ecx,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],ecx",
            "+inc m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            " mov eax,m4[esp+None*1+0x6c]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],ecx",
            " sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            " imul edx",
            "@@ -386,15 +397,15 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,m4[None+None*1+2dcore.c::_viewport_x_min_2d]",
            "-mov eax,m4[esp+None*1+0x80]",
            "-mov ecx,edx",
            "-sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            " mov eax,ebp",
            "+mov ecx,edx",
            "+sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "+mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            "+mov eax,m4[esp+None*1+0x80]",
            " mov ebx,edx",
            " sub eax,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_x_2d]",
            "@@ -407,10 +418,14 @@",
            " mov edx,ecx",
            " mov ecx,edi",
            " call line.asm::_draw_glide_line",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec edx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edx",
            "+jne local:347",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-jmp local:339",
            "+jmp local:347",
            " mov eax,m4[esp+None*1+0x6c]",
            " sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "@@ -426,15 +441,15 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,m4[None+None*1+2dcore.c::_viewport_x_min_2d]",
            "-mov eax,m4[esp+None*1+0x80]",
            "-mov ecx,edx",
            "-sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            " mov eax,ebp",
            "+mov ecx,edx",
            "+sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "+mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            "+mov eax,m4[esp+None*1+0x80]",
            " mov ebx,edx",
            " sub eax,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_x_2d]",
            "@@ -447,15 +462,15 @@",
            " mov edx,ecx",
            " mov ecx,edi",
            " call line.asm::_draw_line",
            "-jmp local:339",
            "+jmp local:347",
            " mov eax,edi",
            " mov edx,edi",
            " mov edi,m4[esp+None*1+0xc]",
            " sar edx,0x1f",
            " idiv edi",
            " mov m4[esp+None*1+0x40],eax",
            "-mov edx,ecx",
            "-mov eax,ecx",
            "+mov edx,esi",
            "+mov eax,esi",
            " sar edx,0x1f",
            " idiv edi",
            " mov m4[esp+None*1+0x44],eax",
            "@@ -468,105 +483,107 @@",
            " mov edx,eax",
            " sar edx,0x1f",
            " idiv ebx",
            "+mov edi,m4[esp+None*1+0x74]",
            "+mov m4[esp+None*1+0x18],eax",
            "+mov edx,ecx",
            "+mov eax,ecx",
            "+sar edx,0x1f",
            "+idiv edi",
            " mov m4[esp+None*1+0x50],ebx",
            "-mov ebx,m4[esp+None*1+0x74]",
            "-mov m4[esp+None*1+0x18],eax",
            "-mov edx,esi",
            "-mov eax,esi",
            "-sar edx,0x1f",
            "-idiv ebx",
            " mov ecx,m4[esp+None*1+0x8]",
            "-mov m4[esp+None*1+0x7c],ebp",
            "+mov m4[esp+None*1+0x78],ebp",
            " sub ecx,edx",
            " mov edx,m4[esp+None*1+0x80]",
            " mov m4[esp+None*1+0x60],ecx",
            "-mov m4[esp+None*1+0x78],edx",
            "-mov esi,m4[esp+None*1+0x50]",
            "-dec esi",
            "-mov m4[esp+None*1+0x50],esi",
            "-cmp esi,0xffffffff",
            "-jne local:540",
            "+mov m4[esp+None*1+0x7c],edx",
            "+mov ebx,m4[esp+None*1+0x50]",
            "+dec ebx",
            "+mov m4[esp+None*1+0x50],ebx",
            "+cmp ebx,0xffffffff",
            "+jne local:556",
            " mov edx,m4[esp+None*1+0xa4]",
            "-sub edx,m4[esp+None*1+0x98]",
            "-mov ecx,m4[esp+None*1+0x7c]",
            "+mov edi,m4[esp+None*1+0x98]",
            "+sub edx,edi",
            "+mov eax,m4[esp+None*1+0x7c]",
            " mov m4[esp+None*1+0x54],edx",
            " mov edx,m4[esp+None*1+0x9c]",
            "-sub edx,ecx",
            "-mov ebx,m4[esp+None*1+0x54]",
            "+sub edx,eax",
            "+mov ecx,m4[esp+None*1+0x54]",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ebx",
            "-mov esi,m4[esp+None*1+0x78]",
            "+idiv ecx",
            "+mov ebx,m4[esp+None*1+0x78]",
            " mov edx,m4[esp+None*1+0xa0]",
            "-sub edx,esi",
            "+sub edx,ebx",
            " mov m4[esp+None*1+0x24],eax",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ebx",
            "-mov edx,m4[esp+None*1+0x98]",
            "-mov ecx,m4[esp+None*1+0x74]",
            "-dec edx",
            "+idiv ecx",
            "+lea edx,m4[edi+None*1+0xffffffff]",
            " mov m4[esp+None*1+0x10],eax",
            "+mov edi,m4[esp+None*1+0x74]",
            " mov eax,edx",
            " sar edx,0x1f",
            "-idiv ecx",
            "-dec ecx",
            "+idiv edi",
            "+lea ecx,m4[edi+None*1+0xffffffff]",
            " sub ecx,edx",
            " mov m4[esp+None*1+0x58],ecx",
            "-mov edi,m4[esp+None*1+0x54]",
            "-dec edi",
            "-mov m4[esp+None*1+0x54],edi",
            "-cmp edi,0xffffffff",
            "-je local:746",
            "-cmp m4[esp+None*1+0x58],0x0",
            "-je local:654",
            "-mov ebx,m4[esp+None*1+0x58]",
            "-mov esi,m4[esp+None*1+0x40]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov edi,m4[esp+None*1+0x80]",
            "-mov eax,m4[esp+None*1+0x7c]",
            "-mov ecx,m4[esp+None*1+0x78]",
            "-dec ebx",
            "+mov eax,m4[esp+None*1+0x54]",
            "+dec eax",
            "+mov m4[esp+None*1+0x54],eax",
            "+cmp eax,0xffffffff",
            "+je local:780",
            "+mov ecx,m4[esp+None*1+0x58]",
            "+test ecx,ecx",
            "+je local:678",
            "+mov ecx,m4[esp+None*1+0x58]",
            "+mov edx,m4[esp+None*1+0x40]",
            "+mov ebx,m4[esp+None*1+0x80]",
            "+mov esi,m4[esp+None*1+0x44]",
            "+mov edi,m4[esp+None*1+0x7c]",
            "+mov eax,m4[esp+None*1+0x78]",
            "+dec ecx",
            "+add ebx,edx",
            " add ebp,esi",
            "+mov edx,m4[esp+None*1+0x24]",
            "+mov m4[esp+None*1+0x80],ebx",
            " add edi,edx",
            "-mov edx,m4[esp+None*1+0x24]",
            "-mov m4[esp+None*1+0x80],edi",
            "+mov edx,m4[esp+None*1+0x10]",
            "+mov m4[esp+None*1+0x58],ecx",
            " add eax,edx",
            "-mov edx,m4[esp+None*1+0x10]",
            "-mov m4[esp+None*1+0x58],ebx",
            "+mov m4[esp+None*1+0x7c],edi",
            "+mov m4[esp+None*1+0x78],eax",
            "+jmp local:530",
            "+mov eax,m4[esp+None*1+0x60]",
            "+test eax,eax",
            "+je local:577",
            "+mov eax,m4[esp+None*1+0x60]",
            "+mov edx,m4[esp+None*1+0x40]",
            "+mov ecx,m4[esp+None*1+0x80]",
            "+mov ebx,m4[esp+None*1+0x44]",
            "+mov esi,m4[esp+None*1+0x7c]",
            "+mov edi,m4[esp+None*1+0x78]",
            "+dec eax",
            " add ecx,edx",
            "-mov m4[esp+None*1+0x7c],eax",
            "-mov m4[esp+None*1+0x78],ecx",
            "-jmp local:515",
            "-mov ebx,m4[esp+None*1+0x60]",
            "-test ebx,ebx",
            "-je local:561",
            "-mov edi,m4[esp+None*1+0x60]",
            "-mov eax,m4[esp+None*1+0x40]",
            "-mov edx,m4[esp+None*1+0x44]",
            "-mov ecx,m4[esp+None*1+0x80]",
            "-mov ebx,m4[esp+None*1+0x7c]",
            "-mov esi,m4[esp+None*1+0x78]",
            "-dec edi",
            "-add ebp,eax",
            "-add ecx,edx",
            "+add ebp,ebx",
            " mov edx,m4[esp+None*1+0x1c]",
            " mov m4[esp+None*1+0x80],ecx",
            "-add ebx,edx",
            "+add esi,edx",
            " mov edx,m4[esp+None*1+0x18]",
            "-mov m4[esp+None*1+0x60],edi",
            "-add esi,edx",
            "-mov m4[esp+None*1+0x7c],ebx",
            "-mov m4[esp+None*1+0x78],esi",
            "-jmp local:483",
            "+mov m4[esp+None*1+0x60],eax",
            "+add edi,edx",
            "+mov m4[esp+None*1+0x7c],esi",
            "+mov m4[esp+None*1+0x78],edi",
            "+jmp local:498",
            " mov edx,m4[esp+None*1+0x74]",
            "-mov esi,m4[None+None*1+fxpoly1.c::_use_glide]",
            " mov m4[esp+None*1+0x60],edx",
            "-test esi,esi",
            "-je local:617",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:641",
            "+cmp m4[None+None*1+fxpoly1.c::_fx_buffer_counter],0x0",
            "+jne local:594",
            " push fxpoly1.c::_lfbinfo",
            "-push ebx",
            "-push ebx",
            "+push eax",
            "+push eax",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            "@@ -574,8 +591,11 @@",
            " mov ecx,m4[None+None*1+0x724310]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],ecx",
            " mov ecx,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],ecx",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+inc ebx",
            " mov eax,m4[esp+None*1+0x78]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],ecx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            " sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            " imul edx",
            "@@ -590,15 +610,15 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,m4[None+None*1+2dcore.c::_viewport_x_min_2d]",
            "-mov eax,m4[esp+None*1+0x80]",
            "-mov ecx,edx",
            "-sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            " mov eax,ebp",
            "+mov ecx,edx",
            "+sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "+mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            "+mov eax,m4[esp+None*1+0x80]",
            " mov ebx,edx",
            " sub eax,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_x_2d]",
            "@@ -611,10 +631,14 @@",
            " mov edx,ecx",
            " mov ecx,edi",
            " call line.asm::_draw_glide_line",
            "+mov esi,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec esi",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],esi",
            "+jne local:559",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-jmp local:543",
            "+jmp local:559",
            " mov eax,m4[esp+None*1+0x78]",
            " sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "@@ -630,15 +654,15 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,m4[None+None*1+2dcore.c::_viewport_x_min_2d]",
            "-mov eax,m4[esp+None*1+0x80]",
            "-mov ecx,edx",
            "-sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            " mov eax,ebp",
            "+mov ecx,edx",
            "+sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "+mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            "+mov eax,m4[esp+None*1+0x80]",
            " mov ebx,edx",
            " sub eax,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_x_2d]",
            "@@ -651,15 +675,17 @@",
            " mov edx,ecx",
            " mov ecx,edi",
            " call line.asm::_draw_line",
            "-jmp local:543",
            "+jmp local:559",
            " mov edx,m4[esp+None*1+0x74]",
            "-mov ecx,m4[None+None*1+fxpoly1.c::_use_glide]",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_use_glide]",
            " mov m4[esp+None*1+0x58],edx",
            "-test ecx,ecx",
            "-je local:710",
            "+test ebx,ebx",
            "+je local:743",
            "+cmp m4[None+None*1+fxpoly1.c::_fx_buffer_counter],0x0",
            "+jne local:696",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push ecx",
            "+push ecx",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            "@@ -667,8 +693,11 @@",
            " mov ecx,m4[None+None*1+0x724310]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],ecx",
            " mov ecx,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],ecx",
            "+mov edi,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+inc edi",
            " mov eax,m4[esp+None*1+0x78]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],ecx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edi",
            " sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            " imul edx",
            "@@ -683,15 +712,15 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,m4[None+None*1+2dcore.c::_viewport_x_min_2d]",
            "-mov eax,m4[esp+None*1+0x80]",
            "-mov ebx,edx",
            "-sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            " mov eax,ebp",
            "+mov ebx,edx",
            "+sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "+mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            "+mov eax,m4[esp+None*1+0x80]",
            " mov edi,edx",
            " sub eax,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_x_2d]",
            "@@ -704,10 +733,14 @@",
            " mov edx,ebx",
            " mov ebx,edi",
            " call line.asm::_draw_glide_line",
            "+mov eax,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec eax",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],eax",
            "+jne local:538",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-jmp local:522",
            "+jmp local:538",
            " mov eax,m4[esp+None*1+0x78]",
            " sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "@@ -723,16 +756,16 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,m4[None+None*1+2dcore.c::_viewport_x_min_2d]",
            "-mov eax,m4[esp+None*1+0x80]",
            "-mov edi,edx",
            "-sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            " mov eax,ebp",
            " mov ebx,edx",
            "+sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "+mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            "+mov eax,m4[esp+None*1+0x80]",
            "+mov edi,edx",
            " sub eax,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_x_2d]",
            " imul edx",
            "@@ -741,9 +774,10 @@",
            " adc edx,m4[None+None*1+2dcore.c::_viewport_x_min_2d]",
            " mov eax,0xc7",
            " mov ecx,edx",
            "-mov edx,edi",
            "+mov edx,ebx",
            "+mov ebx,edi",
            " call line.asm::_draw_line",
            "-jmp local:522",
            "+jmp local:538",
            " add esp,0x84",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "fxterr.c::draw_partially_visible_contour_lines_",
          "source": "E:\\library\\3dvisual\\fxterr.c",
          "first": "0x4b7c90",
          "second": "0x4b839c",
          "first_instruction_count": 1090,
          "second_instruction_count": 1165,
          "diff": [
            "--- 0x4b7c90",
            "+++ 0x4b839c",
            "@@ -36,7 +36,7 @@",
            " cmp ebx,esi",
            " jne local:39",
            " cmp esi,m4[esp+None*1+0xb4]",
            "-je local:1085",
            "+je local:1160",
            " cmp ebx,m4[esp+None*1+0xb4]",
            " jle local:63",
            " mov eax,m4[esp+None*1+0xac]",
            "@@ -132,7 +132,7 @@",
            " sub ecx,ebp",
            " mov m4[esp+None*1+0x1c],eax",
            " cmp ebx,edx",
            "-jne local:371",
            "+jne local:391",
            " mov ebx,m4[esp+None*1+0x1c]",
            " mov m4[esp+None*1+0x5c],eax",
            " mov edx,esi",
            "@@ -166,31 +166,31 @@",
            " mov eax,m4[esp+None*1+0x18]",
            " sub eax,edx",
            " mov m4[esp+None*1+0x70],eax",
            "-mov ecx,m4[esp+None*1+0x5c]",
            "-dec ecx",
            "-mov m4[esp+None*1+0x5c],ecx",
            "-cmp ecx,0xffffffff",
            "-je local:1085",
            "+mov ebx,m4[esp+None*1+0x5c]",
            "+dec ebx",
            "+mov m4[esp+None*1+0x5c],ebx",
            "+cmp ebx,0xffffffff",
            "+je local:1160",
            "+mov edi,m4[esp+None*1+0x70]",
            "+test edi,edi",
            "+je local:194",
            "+mov eax,m4[esp+None*1+0x30]",
            "+mov edi,m4[esp+None*1+0x90]",
            " mov esi,m4[esp+None*1+0x70]",
            "-test esi,esi",
            "-je local:194",
            "-mov edx,m4[esp+None*1+0x70]",
            "-mov eax,m4[esp+None*1+0x30]",
            "-mov ecx,m4[esp+None*1+0x90]",
            "-mov ebx,m4[esp+None*1+0x38]",
            "-mov esi,m4[esp+None*1+0x84]",
            "-mov edi,m4[esp+None*1+0xa4]",
            "-dec edx",
            "+mov edx,m4[esp+None*1+0x84]",
            "+mov ecx,m4[esp+None*1+0xa4]",
            "+add edi,eax",
            "+mov eax,m4[esp+None*1+0x38]",
            "+dec esi",
            "+add ebp,eax",
            "+mov eax,m4[esp+None*1+0x44]",
            "+mov m4[esp+None*1+0x90],edi",
            "+add edx,eax",
            "+mov eax,m4[esp+None*1+0x28]",
            "+mov m4[esp+None*1+0x70],esi",
            " add ecx,eax",
            "-add ebp,ebx",
            "-mov eax,m4[esp+None*1+0x44]",
            "-mov m4[esp+None*1+0x90],ecx",
            "-add esi,eax",
            "-mov eax,m4[esp+None*1+0x28]",
            "-mov m4[esp+None*1+0x70],edx",
            "-add edi,eax",
            "-mov m4[esp+None*1+0x84],esi",
            "-mov m4[esp+None*1+0xa4],edi",
            "+mov m4[esp+None*1+0x84],edx",
            "+mov m4[esp+None*1+0xa4],ecx",
            " jmp local:168",
            " mov eax,m4[esp+None*1+0x78]",
            " mov ecx,m4[esp+None*1+0x90]",
            "@@ -233,12 +233,15 @@",
            " jne local:176",
            " mov ecx,edx",
            " or ecx,eax",
            "-jne local:325",
            "+jne local:336",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:288",
            "+je local:299",
            "+mov eax,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test eax,eax",
            "+jne local:252",
            " push fxpoly1.c::_lfbinfo",
            "-push esi",
            "-push esi",
            "+push eax",
            "+push eax",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            "@@ -247,7 +250,10 @@",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            " mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-mov eax,ebx",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+inc edx",
            "+mov eax,m4[esp+None*1+0xa4]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edx",
            " sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            " imul edx",
            "@@ -263,25 +269,30 @@",
            " shl eax,0x2",
            " adc edx,m4[None+None*1+2dcore.c::_viewport_x_min_2d]",
            " mov eax,ebp",
            "+mov ebx,edx",
            "+sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "+mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            "+mov eax,m4[esp+None*1+0x90]",
            " mov edi,edx",
            "-sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,m4[None+None*1+2dcore.c::_viewport_y_max_2d]",
            "-mov eax,m4[esp+None*1+0x90]",
            "-mov ebx,edx",
            "-sub eax,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            "-mov edx,m4[None+None*1+2dcore.c::_scale_x_2d]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,m4[None+None*1+2dcore.c::_viewport_x_min_2d]",
            "-mov eax,0xc7",
            "-mov ecx,edx",
            "-mov edx,edi",
            "+sub eax,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            "+mov edx,m4[None+None*1+2dcore.c::_scale_x_2d]",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,m4[None+None*1+2dcore.c::_viewport_x_min_2d]",
            "+mov eax,0xc7",
            "+mov ecx,edx",
            "+mov edx,ebx",
            "+mov ebx,edi",
            " call line.asm::_draw_glide_line",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ecx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+jne local:176",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "@@ -340,24 +351,33 @@",
            " test eax,eax",
            " je local:176",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:364",
            "+je local:384",
            "+cmp m4[None+None*1+fxpoly1.c::_fx_buffer_counter],0x0",
            "+jne local:367",
            " push fxpoly1.c::_lfbinfo",
            "-push esi",
            "-push esi",
            "+push edi",
            "+push edi",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbLock@24",
            "-mov esi,m4[esp+None*1+0xc]",
            "-mov edx,m4[esp+None*1+0x8]",
            " mov eax,m4[None+None*1+0x724310]",
            "-mov ebx,m4[esp+None*1+0x4]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+mov eax,0xc7",
            "+mov esi,m4[esp+None*1+0xc]",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+mov edx,m4[esp+None*1+0x8]",
            "+inc ecx",
            "+mov ebx,m4[esp+None*1+0x4]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            " mov ecx,m4[esp+None*1+0x0]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-mov eax,0xc7",
            " call line.asm::_draw_glide_line",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ebx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            "+jne local:176",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "@@ -381,7 +401,7 @@",
            " mov edx,m4[esp+None*1+0xb4]",
            " mov ebx,eax",
            " cmp edx,m4[esp+None*1+0xa8]",
            "-jne local:620",
            "+jne local:659",
            " mov eax,m4[esp+None*1+0x10]",
            " mov edx,eax",
            " sar edx,0x1f",
            "@@ -418,75 +438,78 @@",
            " dec ebx",
            " mov m4[esp+None*1+0x58],ebx",
            " cmp ebx,0xffffffff",
            "-je local:1085",
            "+je local:1160",
            " mov edi,m4[esp+None*1+0x68]",
            " test edi,edi",
            "-je local:442",
            "-mov ecx,m4[esp+None*1+0x68]",
            "+je local:462",
            " mov eax,m4[esp+None*1+0x34]",
            "-mov ebx,m4[esp+None*1+0x90]",
            "-mov esi,m4[esp+None*1+0x3c]",
            "-mov edi,m4[esp+None*1+0x80]",
            "-mov edx,m4[esp+None*1+0x7c]",
            "-dec ecx",
            "-add ebx,eax",
            "-add ebp,esi",
            "+mov edi,m4[esp+None*1+0x90]",
            "+mov esi,m4[esp+None*1+0x68]",
            "+mov edx,m4[esp+None*1+0x80]",
            "+mov ecx,m4[esp+None*1+0x7c]",
            "+add edi,eax",
            "+mov eax,m4[esp+None*1+0x3c]",
            "+dec esi",
            "+add ebp,eax",
            " mov eax,m4[esp+None*1+0x4c]",
            "-mov m4[esp+None*1+0x90],ebx",
            "-add edi,eax",
            "+mov m4[esp+None*1+0x90],edi",
            "+add edx,eax",
            " mov eax,m4[esp+None*1+0x2c]",
            "-mov m4[esp+None*1+0x68],ecx",
            "-add edx,eax",
            "-mov m4[esp+None*1+0x80],edi",
            "-mov m4[esp+None*1+0x7c],edx",
            "-jmp local:416",
            "+mov m4[esp+None*1+0x68],esi",
            "+add ecx,eax",
            "+mov m4[esp+None*1+0x80],edx",
            "+mov m4[esp+None*1+0x7c],ecx",
            "+jmp local:436",
            " mov eax,m4[esp+None*1+0x78]",
            " mov ecx,m4[esp+None*1+0x90]",
            " mov ebx,ebp",
            " mov m4[esp+None*1+0x68],eax",
            " xor eax,eax",
            " cmp ebx,m4[None+None*1+2dcore.c::_window_y_max_2d]",
            "-jle local:451",
            "+jle local:471",
            " or eax,0x8",
            "-jmp local:454",
            "+jmp local:474",
            " cmp ebx,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-jge local:454",
            "+jge local:474",
            " or eax,0x4",
            " cmp ecx,m4[None+None*1+2dcore.c::_window_x_max_2d]",
            "-jle local:458",
            "+jle local:478",
            " or eax,0x2",
            "-jmp local:461",
            "+jmp local:481",
            " cmp ecx,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            "-jge local:461",
            "+jge local:481",
            " or eax,0x1",
            " mov ebx,m4[esp+None*1+0x7c]",
            " mov ecx,m4[esp+None*1+0x80]",
            " mov edx,eax",
            " xor eax,eax",
            " cmp ebx,m4[None+None*1+2dcore.c::_window_y_max_2d]",
            "-jle local:469",
            "+jle local:489",
            " or eax,0x8",
            "-jmp local:472",
            "+jmp local:492",
            " cmp ebx,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-jge local:472",
            "+jge local:492",
            " or eax,0x4",
            " cmp ecx,m4[None+None*1+2dcore.c::_window_x_max_2d]",
            "-jle local:476",
            "+jle local:496",
            " or eax,0x2",
            "-jmp local:479",
            "+jmp local:499",
            " cmp ecx,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            "-jge local:479",
            "+jge local:499",
            " or eax,0x1",
            " test edx,eax",
            "-jne local:424",
            "+jne local:444",
            " mov ecx,edx",
            " or ecx,eax",
            "-jne local:574",
            "+jne local:604",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:537",
            "+je local:567",
            "+mov eax,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test eax,eax",
            "+jne local:520",
            " push fxpoly1.c::_lfbinfo",
            "-push edi",
            "-push edi",
            "+push eax",
            "+push eax",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            "@@ -495,7 +518,10 @@",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            " mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-mov eax,ebx",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+inc edx",
            "+mov eax,m4[esp+None*1+0x7c]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edx",
            " sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            " imul edx",
            "@@ -531,10 +557,14 @@",
            " mov edx,ecx",
            " mov ecx,edi",
            " call line.asm::_draw_glide_line",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ecx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+jne local:444",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-jmp local:424",
            "+jmp local:444",
            " mov eax,ebx",
            " sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "@@ -571,7 +601,7 @@",
            " mov edx,ecx",
            " mov ecx,edi",
            " call line.asm::_draw_line",
            "-jmp local:424",
            "+jmp local:444",
            " mov ecx,m4[esp+None*1+0x90]",
            " mov m4[esp+None*1+0xc],ebx",
            " push eax",
            "@@ -587,9 +617,11 @@",
            " mov m4[esp+None*1+0xc],ebp",
            " call 2dline.c::clip_raw_2d_line_",
            " test eax,eax",
            "-je local:424",
            "+je local:444",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:613",
            "+je local:652",
            "+cmp m4[None+None*1+fxpoly1.c::_fx_buffer_counter],0x0",
            "+jne local:635",
            " push fxpoly1.c::_lfbinfo",
            " push edi",
            " push edi",
            "@@ -597,27 +629,34 @@",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbLock@24",
            "-mov esi,m4[esp+None*1+0xc]",
            "-mov edx,m4[esp+None*1+0x8]",
            " mov eax,m4[None+None*1+0x724310]",
            "-mov ebx,m4[esp+None*1+0x4]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+mov eax,0xc7",
            "+mov esi,m4[esp+None*1+0xc]",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+mov edx,m4[esp+None*1+0x8]",
            "+inc ecx",
            "+mov ebx,m4[esp+None*1+0x4]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            " mov ecx,m4[esp+None*1+0x0]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-mov eax,0xc7",
            " call line.asm::_draw_glide_line",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ebx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            "+jne local:444",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-jmp local:424",
            "+jmp local:444",
            " mov eax,0xc7",
            " mov esi,m4[esp+None*1+0xc]",
            " mov edx,m4[esp+None*1+0x8]",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov ecx,m4[esp+None*1+0x0]",
            " call line.asm::_draw_line",
            "-jmp local:424",
            "+jmp local:444",
            " mov eax,esi",
            " mov edx,esi",
            " mov esi,m4[esp+None*1+0x1c]",
            "@@ -655,7 +694,7 @@",
            " dec eax",
            " mov m4[esp+None*1+0x60],eax",
            " cmp eax,0xffffffff",
            "-jne local:710",
            "+jne local:750",
            " mov eax,m4[esp+None*1+0xb4]",
            " mov ecx,m4[esp+None*1+0xa8]",
            " mov ebx,m4[esp+None*1+0x78]",
            "@@ -683,95 +722,98 @@",
            " sar edx,0x1f",
            " idiv edi",
            " mov m4[esp+None*1+0x48],eax",
            "-mov edi,m4[esp+None*1+0x64]",
            "-dec edi",
            "-mov m4[esp+None*1+0x64],edi",
            "-cmp edi,0xffffffff",
            "-je local:1085",
            "-cmp m4[esp+None*1+0x6c],0x0",
            "-je local:907",
            "+mov ecx,m4[esp+None*1+0x64]",
            "+dec ecx",
            "+mov m4[esp+None*1+0x64],ecx",
            "+cmp ecx,0xffffffff",
            "+je local:1160",
            "+mov esi,m4[esp+None*1+0x6c]",
            "+test esi,esi",
            "+je local:966",
            "+mov ebx,m4[esp+None*1+0x6c]",
            " mov eax,m4[esp+None*1+0x54]",
            "-mov edi,m4[esp+None*1+0x90]",
            "-mov esi,m4[esp+None*1+0x6c]",
            "+mov esi,m4[esp+None*1+0x90]",
            "+mov edi,m4[esp+None*1+0x50]",
            " mov edx,m4[esp+None*1+0x8c]",
            " mov ecx,m4[esp+None*1+0x88]",
            "-add edi,eax",
            "-mov eax,m4[esp+None*1+0x50]",
            "-dec esi",
            "-add ebp,eax",
            "+dec ebx",
            "+add esi,eax",
            "+add ebp,edi",
            " mov eax,m4[esp+None*1+0x40]",
            "-mov m4[esp+None*1+0x90],edi",
            "+mov m4[esp+None*1+0x90],esi",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x48]",
            "-mov m4[esp+None*1+0x6c],esi",
            "+mov m4[esp+None*1+0x6c],ebx",
            " add ecx,eax",
            " mov m4[esp+None*1+0x8c],edx",
            " mov m4[esp+None*1+0x88],ecx",
            "-jmp local:685",
            "+jmp local:724",
            " cmp m4[esp+None*1+0x74],0x0",
            "-je local:730",
            "-mov eax,m4[esp+None*1+0x74]",
            "-mov edx,m4[esp+None*1+0x90]",
            "-mov ecx,m4[esp+None*1+0x50]",
            "-dec eax",
            "-mov ebx,m4[esp+None*1+0x8c]",
            "-mov m4[esp+None*1+0x74],eax",
            "+je local:770",
            "+mov ecx,m4[esp+None*1+0x74]",
            " mov eax,m4[esp+None*1+0x54]",
            "-mov esi,m4[esp+None*1+0x88]",
            "+mov ebx,m4[esp+None*1+0x90]",
            "+mov esi,m4[esp+None*1+0x50]",
            "+mov edi,m4[esp+None*1+0x8c]",
            "+mov edx,m4[esp+None*1+0x88]",
            "+dec ecx",
            "+add ebx,eax",
            "+add ebp,esi",
            "+mov eax,m4[esp+None*1+0x24]",
            "+mov m4[esp+None*1+0x90],ebx",
            "+add edi,eax",
            "+mov eax,m4[esp+None*1+0x20]",
            "+mov m4[esp+None*1+0x74],ecx",
            " add edx,eax",
            "-mov eax,m4[esp+None*1+0x24]",
            "-add ebp,ecx",
            "-add ebx,eax",
            "-mov eax,m4[esp+None*1+0x20]",
            "-mov m4[esp+None*1+0x90],edx",
            "-add esi,eax",
            "-mov m4[esp+None*1+0x8c],ebx",
            "-mov m4[esp+None*1+0x88],esi",
            "-jmp local:653",
            "+mov m4[esp+None*1+0x8c],edi",
            "+mov m4[esp+None*1+0x88],edx",
            "+jmp local:692",
            " mov eax,m4[esp+None*1+0x78]",
            " mov ecx,m4[esp+None*1+0x90]",
            " mov ebx,ebp",
            " mov m4[esp+None*1+0x74],eax",
            " xor eax,eax",
            " cmp ebx,m4[None+None*1+2dcore.c::_window_y_max_2d]",
            "-jle local:739",
            "+jle local:779",
            " or eax,0x8",
            "-jmp local:742",
            "+jmp local:782",
            " cmp ebx,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-jge local:742",
            "+jge local:782",
            " or eax,0x4",
            " cmp ecx,m4[None+None*1+2dcore.c::_window_x_max_2d]",
            "-jle local:746",
            "+jle local:786",
            " or eax,0x2",
            "-jmp local:749",
            "+jmp local:789",
            " cmp ecx,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            "-jge local:749",
            "+jge local:789",
            " or eax,0x1",
            " mov ebx,m4[esp+None*1+0x88]",
            " mov ecx,m4[esp+None*1+0x8c]",
            " mov edx,eax",
            " xor eax,eax",
            " cmp ebx,m4[None+None*1+2dcore.c::_window_y_max_2d]",
            "-jle local:757",
            "+jle local:797",
            " or eax,0x8",
            "-jmp local:760",
            "+jmp local:800",
            " cmp ebx,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-jge local:760",
            "+jge local:800",
            " or eax,0x4",
            " cmp ecx,m4[None+None*1+2dcore.c::_window_x_max_2d]",
            "-jle local:764",
            "+jle local:804",
            " or eax,0x2",
            "-jmp local:767",
            "+jmp local:807",
            " cmp ecx,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            "-jge local:767",
            "+jge local:807",
            " or eax,0x1",
            " test edx,eax",
            "-jne local:712",
            "+jne local:752",
            " mov ecx,edx",
            " or ecx,eax",
            "-jne local:861",
            "+jne local:910",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:825",
            "+je local:874",
            "+cmp m4[None+None*1+fxpoly1.c::_fx_buffer_counter],0x0",
            "+jne local:827",
            " push fxpoly1.c::_lfbinfo",
            " push ecx",
            " push ecx",
            "@@ -783,7 +825,10 @@",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            " mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-mov eax,ebx",
            "+mov edi,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+inc edi",
            "+mov eax,m4[esp+None*1+0x88]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edi",
            " sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            " imul edx",
            "@@ -819,11 +864,15 @@",
            " mov edx,ecx",
            " mov ecx,edi",
            " call line.asm::_draw_glide_line",
            "+mov eax,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec eax",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],eax",
            "+jne local:752",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-jmp local:712",
            "-mov eax,ebx",
            "+jmp local:752",
            "+mov eax,m4[esp+None*1+0x88]",
            " sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            " imul edx",
            "@@ -858,7 +907,7 @@",
            " mov ecx,edx",
            " mov edx,edi",
            " call line.asm::_draw_line",
            "-jmp local:712",
            "+jmp local:752",
            " mov ecx,m4[esp+None*1+0x90]",
            " mov m4[esp+None*1+0xc],ebx",
            " push eax",
            "@@ -874,81 +923,93 @@",
            " mov m4[esp+None*1+0xc],ebp",
            " call 2dline.c::clip_raw_2d_line_",
            " test eax,eax",
            "-je local:712",
            "+je local:752",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:900",
            "+je local:959",
            "+mov edi,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test edi,edi",
            "+jne local:942",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push edi",
            "+push edi",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbLock@24",
            "+mov eax,m4[None+None*1+0x724310]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "+mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            " mov esi,m4[esp+None*1+0xc]",
            " mov edx,m4[esp+None*1+0x8]",
            "-mov eax,m4[None+None*1+0x724310]",
            "+mov eax,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            " mov ebx,m4[esp+None*1+0x4]",
            "-mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "-mov eax,m4[None+None*1+0x724314]",
            "+inc eax",
            " mov ecx,m4[esp+None*1+0x0]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],eax",
            " mov eax,0xc7",
            " call line.asm::_draw_glide_line",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec edx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edx",
            "+jne local:752",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-jmp local:712",
            "+jmp local:752",
            " mov eax,0xc7",
            " mov esi,m4[esp+None*1+0xc]",
            " mov edx,m4[esp+None*1+0x8]",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov ecx,m4[esp+None*1+0x0]",
            " call line.asm::_draw_line",
            "-jmp local:712",
            "+jmp local:752",
            " mov eax,m4[esp+None*1+0x78]",
            " mov ecx,m4[esp+None*1+0x90]",
            " mov ebx,ebp",
            " mov m4[esp+None*1+0x6c],eax",
            " xor eax,eax",
            " cmp ebx,m4[None+None*1+2dcore.c::_window_y_max_2d]",
            "-jle local:916",
            "+jle local:975",
            " or eax,0x8",
            "-jmp local:919",
            "+jmp local:978",
            " cmp ebx,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-jge local:919",
            "+jge local:978",
            " or eax,0x4",
            " cmp ecx,m4[None+None*1+2dcore.c::_window_x_max_2d]",
            "-jle local:923",
            "+jle local:982",
            " or eax,0x2",
            "-jmp local:926",
            "+jmp local:985",
            " cmp ecx,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            "-jge local:926",
            "+jge local:985",
            " or eax,0x1",
            " mov ebx,m4[esp+None*1+0x88]",
            " mov ecx,m4[esp+None*1+0x8c]",
            " mov edx,eax",
            " xor eax,eax",
            " cmp ebx,m4[None+None*1+2dcore.c::_window_y_max_2d]",
            "-jle local:934",
            "+jle local:993",
            " or eax,0x8",
            "-jmp local:937",
            "+jmp local:996",
            " cmp ebx,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            "-jge local:937",
            "+jge local:996",
            " or eax,0x4",
            " cmp ecx,m4[None+None*1+2dcore.c::_window_x_max_2d]",
            "-jle local:941",
            "+jle local:1000",
            " or eax,0x2",
            "-jmp local:944",
            "+jmp local:1003",
            " cmp ecx,m4[None+None*1+2dcore.c::_window_x_min_2d]",
            "-jge local:944",
            "+jge local:1003",
            " or eax,0x1",
            " test edx,eax",
            "-jne local:692",
            "+jne local:732",
            " mov ecx,edx",
            " or ecx,eax",
            "-jne local:1039",
            "+jne local:1105",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1002",
            "+je local:1068",
            "+cmp m4[None+None*1+fxpoly1.c::_fx_buffer_counter],0x0",
            "+jne local:1023",
            " push fxpoly1.c::_lfbinfo",
            " push ecx",
            " push ecx",
            "@@ -960,6 +1021,7 @@",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            " mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+inc m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            " mov eax,m4[esp+None*1+0x88]",
            " sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            "@@ -996,11 +1058,15 @@",
            " mov edx,ecx",
            " mov ecx,edi",
            " call line.asm::_draw_glide_line",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec edx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edx",
            "+jne local:732",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-jmp local:692",
            "-mov eax,m4[esp+None*1+0x88]",
            "+jmp local:732",
            "+mov eax,ebx",
            " sub eax,m4[None+None*1+2dcore.c::_window_y_min_2d]",
            " mov edx,m4[None+None*1+2dcore.c::_scale_y_2d]",
            " imul edx",
            "@@ -1036,7 +1102,7 @@",
            " mov edx,ecx",
            " mov ecx,edi",
            " call line.asm::_draw_line",
            "-jmp local:692",
            "+jmp local:732",
            " mov ecx,m4[esp+None*1+0x90]",
            " mov m4[esp+None*1+0xc],ebx",
            " push eax",
            "@@ -1052,37 +1118,46 @@",
            " mov m4[esp+None*1+0xc],ebp",
            " call 2dline.c::clip_raw_2d_line_",
            " test eax,eax",
            "-je local:692",
            "+je local:732",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-je local:1078",
            "+je local:1153",
            "+cmp m4[None+None*1+fxpoly1.c::_fx_buffer_counter],0x0",
            "+jne local:1136",
            " push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "+push esi",
            "+push esi",
            " push 0x4",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbLock@24",
            "-mov esi,m4[esp+None*1+0xc]",
            "-mov edx,m4[esp+None*1+0x8]",
            " mov eax,m4[None+None*1+0x724310]",
            "-mov ebx,m4[esp+None*1+0x4]",
            " mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            " mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+mov eax,0xc7",
            "+mov esi,m4[esp+None*1+0xc]",
            "+mov edx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+mov ebx,m4[esp+None*1+0x4]",
            "+inc edx",
            " mov ecx,m4[esp+None*1+0x0]",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-mov eax,0xc7",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],edx",
            "+mov edx,m4[esp+None*1+0x8]",
            " call line.asm::_draw_glide_line",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec ecx",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ecx",
            "+jne local:732",
            " push 0x1",
            " push 0x1",
            " call LINKER MODULE::_grLfbUnlock@8",
            "-jmp local:692",
            "+jmp local:732",
            " mov eax,0xc7",
            " mov esi,m4[esp+None*1+0xc]",
            " mov edx,m4[esp+None*1+0x8]",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov ecx,m4[esp+None*1+0x0]",
            " call line.asm::_draw_line",
            "-jmp local:692",
            "+jmp local:732",
            " add esp,0x94",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "fxterr.c::get_terrain_coords_",
          "source": "E:\\library\\3dvisual\\fxterr.c",
          "first": "0x4b0624",
          "second": "0x4b0c98",
          "first_instruction_count": 319,
          "second_instruction_count": 319,
          "diff": [
            "--- 0x4b0624",
            "+++ 0x4b0c98",
            "@@ -190,7 +190,7 @@",
            " shl eax,0x6",
            " adc edx,0x0",
            " mov edi,edx",
            "-mov m4[ecx+None*1+0xec08e0],edx",
            "+mov m4[ecx+None*1+0xefe8e0],edx",
            " mov edx,m4[esp+None*1+0x38]",
            " xor eax,eax",
            " mov m4[ecx+None*1+fxterr.c::_grid_post_coords],ebp",
            "@@ -198,11 +198,11 @@",
            " mov ebx,edi",
            " shl eax,0x17",
            " mov edx,esi",
            "-mov m4[ecx+None*1+0xec08f4],eax",
            "-mov eax,ebp",
            "-mov m4[ecx+None*1+0xec08dc],esi",
            "+mov m4[ecx+None*1+0xefe8f4],eax",
            "+mov eax,ebp",
            "+mov m4[ecx+None*1+0xefe8dc],esi",
            " call 3dcore.c::get_3d_outcode_",
            "-mov m4[ecx+None*1+0xec08f8],eax",
            "+mov m4[ecx+None*1+0xefe8f8],eax",
            " test eax,eax",
            " je local:292",
            " mov ebp,m4[esp+None*1+0x3c]",
            "@@ -302,7 +302,7 @@",
            " cmp eax,m4[None+None*1+3dcore.c::_viewport_x_max_3d]",
            " jle local:304",
            " mov eax,m4[None+None*1+3dcore.c::_viewport_x_max_3d]",
            "-mov m4[ecx+None*1+0xec08e4],eax",
            "+mov m4[ecx+None*1+0xefe8e4],eax",
            " mov eax,edi",
            " add eax,ebx",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_height_3d]",
            "@@ -315,5 +315,5 @@",
            " cmp edx,m4[None+None*1+3dcore.c::_viewport_y_min_3d]",
            " jge local:317",
            " mov edx,m4[None+None*1+3dcore.c::_viewport_y_min_3d]",
            "-mov m4[ecx+None*1+0xec08e8],edx",
            "+mov m4[ecx+None*1+0xefe8e8],edx",
            " jmp local:207"
          ]
        },
        {
          "symbol": "fxterr.c::initialise_terrain_",
          "source": "E:\\library\\3dvisual\\fxterr.c",
          "first": "0x4af6f0",
          "second": "0x4afd70",
          "first_instruction_count": 333,
          "second_instruction_count": 328,
          "diff": [
            "--- 0x4af6f0",
            "+++ 0x4afd70",
            "@@ -13,11 +13,10 @@",
            " add edx,0x68",
            " mov ecx,text:'\\\\library\\\\3dvisual\\\\fxterr.c'",
            " call file.c::get_file_spec_",
            "-push 0x251",
            "+push 0x268",
            " mov ebx,0x122412",
            " mov edx,fxterr.c::_terrain_grid",
            " lea eax,m4[esp+None*1+0x4]",
            "-mov esi,fxterr.c::_terrain_texture_bitmaps",
            " call file.c::load_file_verbose_",
            " mov ebx,text:'TERRTEXT.BMP'",
            " mov edx,m4[None+None*1+3dconfig.c::_visual_initialisation]",
            "@@ -25,25 +24,25 @@",
            " add edx,0x68",
            " mov ecx,text:'\\\\library\\\\3dvisual\\\\fxterr.c'",
            " call file.c::get_file_spec_",
            "-push 0x276",
            "+push 0x28d",
            " mov ebx,0x30800",
            " mov edx,fxterr.c::_terrain_texture_bitmaps",
            " lea eax,m4[esp+None*1+0x4]",
            "-add esi,0x18400",
            " call file.c::load_file_verbose_",
            " mov edx,fxterr.c::_terrain_textures",
            "+add edx,0x48c",
            "+mov esi,fxterr.c::_terrain_texture_bitmaps",
            "+mov m4[esp+None*1+0xd4],edx",
            "+mov edx,fxterr.c::_terrain_texture_bitmaps",
            " mov ebx,fxterr.c::_terrain_textures",
            "-mov ecx,fxterr.c::_terrain_texture_bitmaps",
            "-xor eax,eax",
            "-add edx,0x48c",
            "-mov m4[esp+None*1+0xd4],ecx",
            "-mov m4[esp+None*1+0xe0],edx",
            "+add edx,0x18400",
            "+xor eax,eax",
            "+mov m4[esp+None*1+0xcc],edx",
            " xor edx,edx",
            " imul ecx,eax,0xc",
            " mov m4[ecx+None*1+fxterr.c::_terrain_textures],0x1",
            "-mov m4[ecx+None*1+0xdfd6ac],0x20",
            "-mov edi,m4[esp+None*1+0xd4]",
            "-mov m4[ecx+None*1+0xdfd6b0],edi",
            "+mov m4[ecx+None*1+0xe3b6b0],esi",
            "+mov m4[ecx+None*1+0xe3b6ac],0x20",
            " lea ecx,m4[eax+None*1+0x61]",
            " imul ecx,ecx,0xc",
            " mov m4[edx+None*1+fxterr.c::_forward_crease_textures],ebx",
            "@@ -51,114 +50,115 @@",
            " mov edi,0x1",
            " add ebx,0xc",
            " mov m4[ecx+None*1+fxterr.c::_terrain_textures],edi",
            "-inc eax",
            "-mov m4[ecx+None*1+0xdfd6b0],esi",
            " mov edi,0x20",
            " add esi,0x400",
            "-mov m4[ecx+None*1+0xdfd6ac],edi",
            "-mov edi,m4[esp+None*1+0xd4]",
            "-mov ecx,m4[esp+None*1+0xe0]",
            "+mov m4[ecx+None*1+0xe3b6ac],edi",
            "+mov edi,m4[esp+None*1+0xcc]",
            "+inc eax",
            "+mov m4[ecx+None*1+0xe3b6b0],edi",
            "+mov ecx,m4[esp+None*1+0xd4]",
            " add edi,0x400",
            " mov m4[edx+None*1+0xfb9e74],ecx",
            " add ecx,0xc",
            "-mov m4[esp+None*1+0xd4],edi",
            "-mov m4[esp+None*1+0xe0],ecx",
            "+mov m4[esp+None*1+0xcc],edi",
            "+mov m4[esp+None*1+0xd4],ecx",
            " cmp eax,0x61",
            " jl local:41",
            " mov ebx,text:'TEXT64.RAW'",
            "-mov edx,m4[None+None*1+3dconfig.c::_visual_initialisation]",
            "-mov eax,esp",
            "+mov eax,esp",
            "+mov ecx,text:'\\\\library\\\\3dvisual\\\\fxterr.c'",
            "+mov edx,m4[None+None*1+3dconfig.c::_visual_initialisation]",
            "+mov esi,fxterr.c::_terrain_detailed_textures",
            " add edx,0x68",
            "-mov ecx,text:'\\\\library\\\\3dvisual\\\\fxterr.c'",
            "-call file.c::get_file_spec_",
            "-push 0x28d",
            "+mov edi,fxterr.c::_terrain_detailed_texture_bitmaps",
            "+call file.c::get_file_spec_",
            "+add esi,0x48c",
            "+push 0x2a4",
            " mov ebx,0xc2000",
            " mov edx,fxterr.c::_terrain_detailed_texture_bitmaps",
            " lea eax,m4[esp+None*1+0x4]",
            "-call file.c::load_file_verbose_",
            "-mov edx,fxterr.c::_terrain_detailed_textures",
            "-add edx,0x48c",
            "-mov esi,fxterr.c::_terrain_detailed_texture_bitmaps",
            "-mov m4[esp+None*1+0xdc],edx",
            "-mov edx,fxterr.c::_terrain_detailed_texture_bitmaps",
            "-mov ebx,fxterr.c::_terrain_detailed_textures",
            "-add edx,0x61000",
            "-xor eax,eax",
            "-mov m4[esp+None*1+0xd0],edx",
            "+mov m4[esp+None*1+0xdc],edi",
            "+call file.c::load_file_verbose_",
            "+mov ebx,fxterr.c::_terrain_detailed_texture_bitmaps",
            "+mov ecx,fxterr.c::_terrain_detailed_textures",
            "+xor eax,eax",
            "+xor edx,edx",
            "+add ebx,0x61000",
            "+mov m4[esp+None*1+0xe0],ecx",
            "+imul ecx,eax,0xc",
            "+mov m4[ecx+None*1+fxterr.c::_terrain_detailed_textures],0x2",
            "+mov m4[ecx+None*1+0xe3bfc4],0x40",
            "+mov edi,m4[esp+None*1+0xd8]",
            "+mov m4[ecx+None*1+0xe3bfc8],edi",
            "+mov ecx,m4[esp+None*1+0xe0]",
            "+mov m4[edx+None*1+fxterr.c::_forward_crease_detailed_textures],ecx",
            "+lea ecx,m4[eax+None*1+0x61]",
            "+imul ecx,ecx,0xc",
            "+mov m4[edx+None*1+fxterr.c::_reverse_crease_detailed_textures],esi",
            "+add edx,0x4",
            "+mov edi,0x2",
            "+add esi,0xc",
            "+mov m4[ecx+None*1+fxterr.c::_terrain_detailed_textures],edi",
            "+inc eax",
            "+mov m4[ecx+None*1+0xe3bfc8],ebx",
            "+mov edi,0x40",
            "+add ebx,0x1000",
            "+mov m4[ecx+None*1+0xe3bfc4],edi",
            "+mov ecx,m4[esp+None*1+0xe0]",
            "+mov edi,m4[esp+None*1+0xd8]",
            "+add ecx,0xc",
            "+add edi,0x1000",
            "+mov m4[esp+None*1+0xe0],ecx",
            "+mov m4[esp+None*1+0xd8],edi",
            "+cmp eax,0x61",
            "+jl local:87",
            "+mov ebx,text:'TEXT64SP.RAW'",
            "+mov eax,esp",
            "+mov edx,m4[None+None*1+3dconfig.c::_visual_initialisation]",
            "+mov ecx,text:'\\\\library\\\\3dvisual\\\\fxterr.c'",
            "+add edx,0x68",
            "+mov esi,fxterr.c::_terrain_spot_texture_bitmaps",
            "+call file.c::get_file_spec_",
            "+push 0x2bb",
            "+mov ebx,0x3e000",
            "+mov edx,fxterr.c::_terrain_spot_texture_bitmaps",
            "+lea eax,m4[esp+None*1+0x4]",
            "+add esi,0x1f000",
            "+call file.c::load_file_verbose_",
            "+mov edx,fxterr.c::_terrain_spot_textures",
            "+mov ecx,fxterr.c::_terrain_spot_textures",
            "+mov ebx,fxterr.c::_terrain_spot_texture_bitmaps",
            "+xor eax,eax",
            "+add edx,0x174",
            "+mov m4[esp+None*1+0xd0],ecx",
            "+mov m4[esp+None*1+0xe4],edx",
            " xor edx,edx",
            " imul ecx,eax,0xc",
            "-mov m4[ecx+None*1+fxterr.c::_terrain_detailed_textures],0x2",
            "-mov m4[ecx+None*1+0xdfdfc8],esi",
            "-mov m4[ecx+None*1+0xdfdfc4],0x40",
            "-lea ecx,m4[eax+None*1+0x61]",
            "-imul ecx,ecx,0xc",
            "-mov m4[edx+None*1+fxterr.c::_forward_crease_detailed_textures],ebx",
            "-add edx,0x4",
            "-mov edi,0x2",
            "-add ebx,0xc",
            "-mov m4[ecx+None*1+fxterr.c::_terrain_detailed_textures],edi",
            "-mov edi,0x40",
            "-add esi,0x1000",
            "-mov m4[ecx+None*1+0xdfdfc4],edi",
            "-mov edi,m4[esp+None*1+0xd0]",
            "-inc eax",
            "-mov m4[ecx+None*1+0xdfdfc8],edi",
            "-mov ecx,m4[esp+None*1+0xdc]",
            "-add edi,0x1000",
            "-mov m4[edx+None*1+0xfb9cf0],ecx",
            "-add ecx,0xc",
            "-mov m4[esp+None*1+0xd0],edi",
            "-mov m4[esp+None*1+0xdc],ecx",
            "-cmp eax,0x61",
            "-jl local:88",
            "-mov ebx,text:'TEXT64SP.RAW'",
            "-mov eax,esp",
            "-mov ecx,text:'\\\\library\\\\3dvisual\\\\fxterr.c'",
            "-mov edx,m4[None+None*1+3dconfig.c::_visual_initialisation]",
            "-mov esi,fxterr.c::_terrain_spot_texture_bitmaps",
            "-add edx,0x68",
            "-mov edi,fxterr.c::_terrain_spot_texture_bitmaps",
            "-call file.c::get_file_spec_",
            "-add esi,0x1f000",
            "-push 0x2a4",
            "-mov ebx,0x3e000",
            "-mov edx,fxterr.c::_terrain_spot_texture_bitmaps",
            "-lea eax,m4[esp+None*1+0x4]",
            "-mov m4[esp+None*1+0xd0],edi",
            "-call file.c::load_file_verbose_",
            "-mov ebx,fxterr.c::_terrain_spot_textures",
            "-mov ecx,fxterr.c::_terrain_spot_textures",
            "-xor eax,eax",
            "-xor edx,edx",
            "-add ebx,0x174",
            "-mov m4[esp+None*1+0xd8],ecx",
            "-imul ecx,eax,0xc",
            " mov m4[ecx+None*1+fxterr.c::_terrain_spot_textures],0x2",
            "+mov m4[ecx+None*1+0xdf72c8],ebx",
            " mov m4[ecx+None*1+0xdf72c4],0x40",
            "-mov edi,m4[esp+None*1+0xcc]",
            "-mov m4[ecx+None*1+0xdf72c8],edi",
            "-mov ecx,m4[esp+None*1+0xd8]",
            "+mov ecx,m4[esp+None*1+0xd0]",
            " mov m4[edx+None*1+fxterr.c::_forward_crease_spot_textures],ecx",
            " lea ecx,m4[eax+None*1+0x1f]",
            " imul ecx,ecx,0xc",
            "-mov m4[edx+None*1+fxterr.c::_reverse_crease_spot_textures],ebx",
            " add edx,0x4",
            " mov edi,0x2",
            "-add ebx,0xc",
            "+add ebx,0x1000",
            " mov m4[ecx+None*1+fxterr.c::_terrain_spot_textures],edi",
            " inc eax",
            " mov m4[ecx+None*1+0xdf72c8],esi",
            " mov edi,0x40",
            " add esi,0x1000",
            " mov m4[ecx+None*1+0xdf72c4],edi",
            "-mov ecx,m4[esp+None*1+0xd8]",
            "-mov edi,m4[esp+None*1+0xcc]",
            "+mov edi,m4[esp+None*1+0xd0]",
            "+mov ecx,m4[esp+None*1+0xe4]",
            "+add edi,0xc",
            "+mov m4[edx+None*1+0xfb9ff8],ecx",
            " add ecx,0xc",
            "-add edi,0x1000",
            "-mov m4[esp+None*1+0xd8],ecx",
            "-mov m4[esp+None*1+0xcc],edi",
            "+mov m4[esp+None*1+0xd0],edi",
            "+mov m4[esp+None*1+0xe4],ecx",
            " cmp eax,0x1f",
            "-jl local:134",
            "+jl local:135",
            " mov ebx,text:'TERRTEXT.CMP'",
            " mov eax,esp",
            " mov edx,m4[None+None*1+3dconfig.c::_visual_initialisation]",
            "@@ -166,26 +166,26 @@",
            " add edx,0x4",
            " mov esi,fxterr.c::_terrain_texture_colmaps",
            " call file.c::get_file_spec_",
            "-push 0x2bb",
            "+push 0x2d2",
            " mov ebx,0x6100",
            " mov edx,fxterr.c::_terrain_texture_colmaps",
            " lea eax,m4[esp+None*1+0x4]",
            "-add esi,0x1840",
            "+add esi,0x3080",
            " call file.c::load_file_verbose_",
            " mov ecx,fxterr.c::_terrain_texture_colmaps",
            " mov ebx,fxterr.c::_terrain_texture_colmaps",
            " mov edx,fxterr.c::_terrain_texture_colmaps",
            " xor eax,eax",
            " add ecx,0x48c0",
            "-add ebx,0x3080",
            "-mov m4[eax+None*1+fxterr.c::_rhs_forward_crease_colours],esi",
            "-mov m4[eax+None*1+fxterr.c::_lhs_reverse_crease_colours],ebx",
            "+add ebx,0x1840",
            "+mov m4[eax+None*1+fxterr.c::_rhs_forward_crease_colours],ebx",
            "+mov m4[eax+None*1+fxterr.c::_lhs_reverse_crease_colours],esi",
            " mov m4[eax+None*1+fxterr.c::_rhs_reverse_crease_colours],ecx",
            " mov m4[eax+None*1+fxterr.c::_lhs_forward_crease_colours],edx",
            " add eax,0x4",
            " add ecx,0x40",
            "+add esi,0x40",
            " add ebx,0x40",
            "-add esi,0x40",
            " add edx,0x40",
            " cmp eax,0x184",
            " jne local:180",
            "@@ -193,23 +193,18 @@",
            " xor eax,eax",
            " xor ebx,ebx",
            " mov m4[None+None*1+fxterr.c::_max_terrain_elevation],eax",
            "-lea eax,m4[None+ebx*8+0x0]",
            "-add eax,ebx",
            "-add eax,eax",
            "-mov edx,eax",
            "-shl eax,0x8",
            " mov ecx,esi",
            "-add eax,edx",
            "+imul eax,ebx,0x1212",
            " xor edx,edx",
            " mov edi,m4[None+None*1+fxterr.c::_max_terrain_elevation]",
            " mov dx,m2[eax+None*1+fxterr.c::_terrain_grid]",
            " cmp edx,edi",
            "-jge local:208",
            "+jge local:203",
            " mov edx,edi",
            " add eax,0x12",
            " mov m4[None+None*1+fxterr.c::_max_terrain_elevation],edx",
            " cmp eax,ecx",
            "-jne local:202",
            "+jne local:197",
            " inc ebx",
            " add esi,0x1212",
            " cmp ebx,0x101",
            "@@ -220,57 +215,57 @@",
            " mov m4[esp+None*1+0xec],eax",
            " xor ecx,ecx",
            " mov edx,0x4",
            "-mov m4[esp+None*1+0xe4],ecx",
            "+mov m4[esp+None*1+0xdc],ecx",
            " mov m4[esp+None*1+0xe8],edx",
            " mov eax,m4[esp+None*1+0xec]",
            " shl eax,0x2",
            " mov m4[esp+None*1+0x100],eax",
            " mov eax,m4[esp+None*1+0xe8]",
            "-mov m4[esp+None*1+0xf4],eax",
            "-mov eax,m4[esp+None*1+0xe4]",
            "+mov m4[esp+None*1+0xf8],eax",
            "+mov eax,m4[esp+None*1+0xdc]",
            " mov edi,m4[esp+None*1+0x100]",
            "-mov m4[esp+None*1+0x108],eax",
            "+mov m4[esp+None*1+0x104],eax",
            " imul eax,edi,0x1212",
            " mov m4[esp+None*1+0xf0],eax",
            " imul eax,edi,0x2800",
            " mov ecx,m4[esp+None*1+0xe8]",
            "-mov m4[esp+None*1+0xf8],eax",
            "+mov m4[esp+None*1+0xf4],eax",
            " imul eax,ecx,0x2800",
            " xor ebx,ebx",
            " mov esi,0x4",
            " mov m4[esp+None*1+0x10c],ebx",
            "-mov m4[esp+None*1+0x104],esi",
            "+mov m4[esp+None*1+0x108],esi",
            " mov m4[esp+None*1+0xfc],eax",
            " mov eax,m4[esp+None*1+0x10c]",
            " shl eax,0x2",
            " mov m4[esp+None*1+0x11c],eax",
            "-mov eax,m4[esp+None*1+0x104]",
            "-mov ebx,m4[esp+None*1+0xf4]",
            "+mov eax,m4[esp+None*1+0x108]",
            "+mov ebx,m4[esp+None*1+0xf8]",
            " mov m4[esp+None*1+0x120],eax",
            " mov eax,m4[esp+None*1+0x100]",
            " xor edi,edi",
            " cmp eax,ebx",
            "-jge local:299",
            "+jge local:294",
            " mov eax,m4[esp+None*1+0xf0]",
            " mov m4[esp+None*1+0x114],eax",
            "-mov eax,m4[esp+None*1+0xf8]",
            "+mov eax,m4[esp+None*1+0xf4]",
            " mov m4[esp+None*1+0x118],eax",
            " mov eax,m4[esp+None*1+0xfc]",
            " mov m4[esp+None*1+0x110],eax",
            "-mov edx,m4[esp+None*1+0x120]",
            "-mov esi,m4[esp+None*1+0x11c]",
            "-cmp esi,edx",
            "-jge local:290",
            "-imul ebx,esi,0x12",
            "+mov esi,m4[esp+None*1+0x120]",
            "+mov ecx,m4[esp+None*1+0x11c]",
            "+cmp ecx,esi",
            "+jge local:285",
            "+imul ebx,ecx,0x12",
            " add ebx,m4[esp+None*1+0x114]",
            "-imul ecx,esi,0x28",
            "+imul esi,ecx,0x28",
            " mov eax,m4[esp+None*1+0x118]",
            " mov edx,ebx",
            "-add ecx,eax",
            "+add esi,eax",
            " xor eax,eax",
            " mov ax,m2[edx+None*1+fxterr.c::_terrain_grid]",
            " cmp edi,eax",
            "-jle local:331",
            "+jle local:326",
            " xor eax,eax",
            " mov al,m1[ebx+None*1+0xfba5aa]",
            " mov m4[esp+None*1+0x124],eax",
            "@@ -278,16 +273,16 @@",
            " fmul m8[None+None*1+constant:191818181818a83f]",
            " add edx,0x12",
            " fadd m8[None+None*1+constant:0000000000606340]",
            "-add ecx,0x28",
            "+add esi,0x28",
            " call fchop::__CHP",
            " fistp m4[esp+None*1+0xc8]",
            " mov eax,m4[esp+None*1+0xc8]",
            "-inc esi",
            "-mov m4[ecx+None*1+0xb000a4],eax",
            "+inc ecx",
            "+mov m4[esi+None*1+0xb000a4],eax",
            " mov eax,m4[esp+None*1+0x120]",
            " add ebx,0x12",
            "-cmp esi,eax",
            "-jl local:269",
            "+cmp ecx,eax",
            "+jl local:264",
            " mov esi,m4[esp+None*1+0x114]",
            " mov eax,m4[esp+None*1+0x118]",
            " mov edx,m4[esp+None*1+0x110]",
            "@@ -296,31 +291,31 @@",
            " mov m4[esp+None*1+0x114],esi",
            " mov m4[esp+None*1+0x118],eax",
            " cmp eax,edx",
            "-jl local:259",
            "-mov eax,m4[esp+None*1+0x108]",
            "-mov ecx,m4[esp+None*1+0x104]",
            "+jl local:254",
            "+mov eax,m4[esp+None*1+0x104]",
            "+mov ecx,m4[esp+None*1+0x108]",
            " mov esi,m4[esp+None*1+0x10c]",
            " shl edi,0x8",
            " add ecx,0x4",
            " lea ebx,m4[eax+None*1+0x4]",
            " inc esi",
            " mov m4[eax+None*1+fxterr.c::_max_sector_terrain_elevation],edi",
            "-mov m4[esp+None*1+0x104],ecx",
            "-mov m4[esp+None*1+0x108],ebx",
            "+mov m4[esp+None*1+0x108],ecx",
            "+mov m4[esp+None*1+0x104],ebx",
            " mov m4[esp+None*1+0x10c],esi",
            " cmp esi,0x40",
            "-jl local:243",
            "-mov edx,m4[esp+None*1+0xe4]",
            "+jl local:238",
            "+mov edx,m4[esp+None*1+0xdc]",
            " mov ecx,m4[esp+None*1+0xec]",
            " mov eax,m4[esp+None*1+0xe8]",
            " add edx,0x100",
            " inc ecx",
            " add eax,0x4",
            "-mov m4[esp+None*1+0xe4],edx",
            "+mov m4[esp+None*1+0xdc],edx",
            " mov m4[esp+None*1+0xec],ecx",
            " mov m4[esp+None*1+0xe8],eax",
            " cmp ecx,0x40",
            "-jl local:224",
            "+jl local:219",
            " mov esp,ebp",
            " pop ebp",
            " pop edi",
            "@@ -330,4 +325,4 @@",
            " pop ebx",
            " ret ",
            " mov edi,eax",
            "-jmp local:273",
            "+jmp local:268"
          ]
        },
        {
          "symbol": "fxterr.c::initialise_terrain_palette_",
          "source": "E:\\library\\3dvisual\\fxterr.c",
          "first": "0x4afdd0",
          "second": "0x4b0444",
          "first_instruction_count": 333,
          "second_instruction_count": 333,
          "diff": [
            "--- 0x4afdd0",
            "+++ 0x4b0444",
            "@@ -299,7 +299,7 @@",
            " add edx,0x68",
            " mov ecx,text:'\\\\library\\\\3dvisual\\\\fxterr.c'",
            " call file.c::get_file_spec_",
            "-push 0x398",
            "+push 0x3af",
            " mov ebx,0x2",
            " mov edx,fxterr.c::_terrain_colours",
            " lea eax,m4[esp+None*1+0x4]"
          ]
        },
        {
          "symbol": "fxterr.c::load_warzone_texture_maps_",
          "source": "E:\\library\\3dvisual\\fxterr.c",
          "first": "0x4afd34",
          "second": "0x4b03a8",
          "first_instruction_count": 42,
          "second_instruction_count": 42,
          "diff": [
            "--- 0x4afd34",
            "+++ 0x4b03a8",
            "@@ -9,7 +9,7 @@",
            " mov edx,esi",
            " mov ecx,text:'\\\\library\\\\3dvisual\\\\fxterr.c'",
            " call file.c::get_file_spec_",
            "-push 0x304",
            "+push 0x31b",
            " mov ebx,0x30800",
            " mov edx,fxterr.c::_terrain_texture_bitmaps",
            " lea eax,m4[esp+None*1+0x4]",
            "@@ -19,7 +19,7 @@",
            " mov edx,esi",
            " mov ecx,text:'\\\\library\\\\3dvisual\\\\fxterr.c'",
            " call file.c::get_file_spec_",
            "-push 0x308",
            "+push 0x31f",
            " mov ebx,0xc2000",
            " mov edx,fxterr.c::_terrain_detailed_texture_bitmaps",
            " lea eax,m4[esp+None*1+0x4]",
            "@@ -29,7 +29,7 @@",
            " mov edx,esi",
            " mov ecx,text:'\\\\library\\\\3dvisual\\\\fxterr.c'",
            " call file.c::get_file_spec_",
            "-push 0x30c",
            "+push 0x323",
            " mov ebx,0x3e000",
            " mov edx,fxterr.c::_terrain_spot_texture_bitmaps",
            " lea eax,m4[esp+None*1+0x4]"
          ]
        },
        {
          "symbol": "fxterr.c::render_constant_shaded_terrain_",
          "source": "E:\\library\\3dvisual\\fxterr.c",
          "first": "0x4b2118",
          "second": "0x4b278c",
          "first_instruction_count": 310,
          "second_instruction_count": 310,
          "diff": [
            "--- 0x4b2118",
            "+++ 0x4b278c",
            "@@ -28,10 +28,10 @@",
            " sar edx,0x18",
            " mov ebp,edi",
            " shl edx,0x18",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            " mov m4[esp+None*1+0x20],edx",
            " mov edx,m4[eax+None*1+0x7]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar edx,0x18",
            " mov eax,m4[eax+None*1+0x8]",
            " shl edx,0x18",
            "@@ -62,8 +62,8 @@",
            " mov esi,m4[esp+None*1+0x30]",
            " mov ebx,m4[esp+None*1+0x10]",
            " mov eax,m4[esp+None*1+0x20]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -146,12 +146,12 @@",
            " mov ebp,edx",
            " mov edx,m4[eax+None*1+0x3]",
            " sar edx,0x18",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " shl edx,0x18",
            " mov m4[esp+None*1+0x40],edi",
            " mov m4[esp+None*1+0x18],edx",
            " mov edx,m4[eax+None*1+0x4]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            " sar edx,0x18",
            " mov eax,m4[eax+None*1+0x5]",
            " shl edx,0x18",
            "@@ -189,14 +189,14 @@",
            " mov m4[edx+None*1+0x126c],edx",
            " mov m4[edx+None*1+0x24],esi",
            " mov edx,m4[eax+None*1+0x3]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            " sar edx,0x18",
            " mov ebp,ecx",
            " shl edx,0x18",
            " mov m4[esp+None*1+0x40],esi",
            " mov m4[esp+None*1+0x1c],edx",
            " mov edx,m4[eax+None*1+0x4]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar edx,0x18",
            " mov eax,m4[eax+None*1+0x5]",
            " shl edx,0x18",
            "@@ -236,10 +236,10 @@",
            " sar edx,0x18",
            " mov m4[esp+None*1+0x40],ecx",
            " shl edx,0x18",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            " mov m4[esp+None*1+0x3c],edx",
            " mov edx,m4[eax+None*1+0x7]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar edx,0x18",
            " mov eax,m4[eax+None*1+0x8]",
            " shl edx,0x18"
          ]
        },
        {
          "symbol": "fxterr.c::render_gouraud_shaded_terrain_",
          "source": "E:\\library\\3dvisual\\fxterr.c",
          "first": "0x4b2504",
          "second": "0x4b2b78",
          "first_instruction_count": 837,
          "second_instruction_count": 837,
          "diff": [
            "--- 0x4b2504",
            "+++ 0x4b2b78",
            "@@ -45,9 +45,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x38],eax",
            " mov eax,m4[esp+None*1+0x4]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -75,8 +75,8 @@",
            " mov esi,m4[esp+None*1+0x94]",
            " mov ebx,m4[esp+None*1+0x38]",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -104,9 +104,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x34],eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -133,8 +133,8 @@",
            " mov esi,m4[esp+None*1+0x90]",
            " mov ebx,m4[esp+None*1+0x34]",
            " mov eax,m4[esp+None*1+0x6c]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -162,9 +162,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x30],eax",
            " mov eax,m4[esp+None*1+0xa8]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -191,8 +191,8 @@",
            " mov esi,m4[esp+None*1+0x8c]",
            " mov ebx,m4[esp+None*1+0x30]",
            " mov eax,m4[esp+None*1+0x68]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -244,12 +244,12 @@",
            " mov eax,m4[ebx+None*1+0x1]",
            " sar eax,0x18",
            " shl eax,0x18",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            " mov m4[esp+None*1+0x20],eax",
            " mov eax,m4[ebx+None*1+0x2]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " sar eax,0x18",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " shl eax,0x18",
            " mov ebx,m4[esp+None*1+0x20]",
            " mov m4[esp+None*1+0x7c],eax",
            "@@ -275,8 +275,8 @@",
            " mov esi,m4[esp+None*1+0x7c]",
            " mov ebx,m4[esp+None*1+0x20]",
            " mov eax,m4[esp+None*1+0x58]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -304,9 +304,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x1c],eax",
            " mov eax,m4[esp+None*1+0x8]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -333,8 +333,8 @@",
            " mov esi,m4[esp+None*1+0x78]",
            " mov ebx,m4[esp+None*1+0x1c]",
            " mov eax,m4[esp+None*1+0x54]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -362,9 +362,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x18],eax",
            " mov eax,m4[esp+None*1+0x4]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -391,8 +391,8 @@",
            " mov esi,m4[esp+None*1+0x74]",
            " mov ebx,m4[esp+None*1+0x18]",
            " mov eax,m4[esp+None*1+0x50]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -429,13 +429,13 @@",
            " mov eax,m4[eax+None*1+0x1]",
            " sar eax,0x18",
            " shl eax,0x18",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            " mov m4[esp+None*1+0x2c],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0xa4],edx",
            " mov m4[esp+None*1+0x9c],ecx",
            " mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -462,8 +462,8 @@",
            " mov esi,m4[esp+None*1+0x70]",
            " mov ebx,m4[esp+None*1+0x2c]",
            " mov eax,m4[esp+None*1+0x64]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -491,9 +491,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x28],eax",
            " mov eax,m4[esp+None*1+0xa8]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -520,8 +520,8 @@",
            " mov esi,m4[esp+None*1+0x84]",
            " mov ebx,m4[esp+None*1+0x28]",
            " mov eax,m4[esp+None*1+0x60]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -549,9 +549,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x24],eax",
            " mov eax,m4[esp+None*1+0x8]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -578,8 +578,8 @@",
            " mov esi,m4[esp+None*1+0x80]",
            " mov ebx,m4[esp+None*1+0x24]",
            " mov eax,m4[esp+None*1+0x5c]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -622,13 +622,13 @@",
            " mov eax,m4[eax+None*1+0x1]",
            " sar eax,0x18",
            " shl eax,0x18",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            " mov m4[esp+None*1+0x48],eax",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[esp+None*1+0xa4],ecx",
            " mov m4[esp+None*1+0x9c],edx",
            " mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -655,8 +655,8 @@",
            " mov esi,m4[esp+None*1+0x4c]",
            " mov ebx,m4[esp+None*1+0x48]",
            " mov eax,m4[esp+None*1+0x44]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -684,9 +684,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x40],eax",
            " mov eax,m4[esp+None*1+0x4]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -713,8 +713,8 @@",
            " mov esi,m4[esp+None*1+0x98]",
            " mov ebx,m4[esp+None*1+0x40]",
            " mov eax,m4[esp+None*1+0x14]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -742,9 +742,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x3c],eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -771,8 +771,8 @@",
            " mov esi,m4[esp+None*1+0x88]",
            " mov ebx,m4[esp+None*1+0x3c]",
            " mov eax,m4[esp+None*1+0x10]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax"
          ]
        },
        {
          "symbol": "fxterr.c::render_gouraud_shaded_textured_perspective_terrain_",
          "source": "E:\\library\\3dvisual\\fxterr.c",
          "first": "0x4b3250",
          "second": "0x4b38c4",
          "first_instruction_count": 960,
          "second_instruction_count": 960,
          "diff": [
            "--- 0x4b3250",
            "+++ 0x4b38c4",
            "@@ -62,13 +62,13 @@",
            " mov eax,m4[eax+None*1+0x1]",
            " sar eax,0x18",
            " shl eax,0x18",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            " mov m4[esp+None*1+0x34],eax",
            " mov eax,m4[esp+None*1+0x4]",
            " mov m4[esp+None*1+0xa4],edx",
            " mov m4[esp+None*1+0xa8],ecx",
            " mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -96,8 +96,8 @@",
            " mov esi,m4[esp+None*1+0x90]",
            " mov ebx,m4[esp+None*1+0x34]",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -125,9 +125,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x30],eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -154,8 +154,8 @@",
            " mov esi,m4[esp+None*1+0x8c]",
            " mov ebx,m4[esp+None*1+0x30]",
            " mov eax,m4[esp+None*1+0x6c]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -183,9 +183,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x2c],eax",
            " mov eax,m4[esp+None*1+0xac]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -212,8 +212,8 @@",
            " mov esi,m4[esp+None*1+0x88]",
            " mov ebx,m4[esp+None*1+0x2c]",
            " mov eax,m4[esp+None*1+0x68]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -285,9 +285,9 @@",
            " mov m4[esp+None*1+0x64],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov eax,m4[eax+None*1+0x1]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-sar eax,0x18",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+sar eax,0x18",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " shl eax,0x18",
            " add edx,0x61",
            " mov m4[esp+None*1+0x28],eax",
            "@@ -322,8 +322,8 @@",
            " mov esi,m4[esp+None*1+0x84]",
            " mov ebx,m4[esp+None*1+0x28]",
            " mov eax,m4[esp+None*1+0x64]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -351,9 +351,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x24],eax",
            " mov eax,m4[esp+None*1+0xac]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -380,8 +380,8 @@",
            " mov esi,m4[esp+None*1+0x80]",
            " mov ebx,m4[esp+None*1+0x24]",
            " mov eax,m4[esp+None*1+0x60]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -409,9 +409,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x20],eax",
            " mov eax,m4[esp+None*1+0x8]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -438,8 +438,8 @@",
            " mov esi,m4[esp+None*1+0x4c]",
            " mov ebx,m4[esp+None*1+0x20]",
            " mov eax,m4[esp+None*1+0x5c]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -509,8 +509,8 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x1c],eax",
            " mov eax,m4[esp+None*1+0xac]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov eax,m4[eax+None*1+0x2]",
            " mov m4[esp+None*1+0xa4],edx",
            " sar eax,0x18",
            "@@ -540,8 +540,8 @@",
            " mov esi,m4[esp+None*1+0x98]",
            " mov ebx,m4[esp+None*1+0x1c]",
            " mov eax,m4[esp+None*1+0x58]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -569,9 +569,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x18],eax",
            " mov eax,m4[esp+None*1+0x8]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -598,8 +598,8 @@",
            " mov esi,m4[esp+None*1+0x74]",
            " mov ebx,m4[esp+None*1+0x18]",
            " mov eax,m4[esp+None*1+0x54]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -627,9 +627,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x14],eax",
            " mov eax,m4[esp+None*1+0x4]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -656,8 +656,8 @@",
            " mov esi,m4[esp+None*1+0x70]",
            " mov ebx,m4[esp+None*1+0x14]",
            " mov eax,m4[esp+None*1+0x50]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -742,11 +742,11 @@",
            " mov m4[esp+None*1+0x40],eax",
            " mov eax,m4[esp+None*1+0x8]",
            " mov eax,m4[eax+None*1+0x1]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            " sar eax,0x18",
            " add edx,0x61",
            " shl eax,0x18",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov m4[esp+None*1+0x48],eax",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[esp+None*1+0xa4],edx",
            "@@ -779,8 +779,8 @@",
            " mov esi,m4[esp+None*1+0x44]",
            " mov ebx,m4[esp+None*1+0x48]",
            " mov eax,m4[esp+None*1+0x40]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -808,9 +808,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x3c],eax",
            " mov eax,m4[esp+None*1+0x4]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -837,8 +837,8 @@",
            " mov esi,m4[esp+None*1+0x7c]",
            " mov ebx,m4[esp+None*1+0x3c]",
            " mov eax,m4[esp+None*1+0x78]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax",
            "@@ -866,9 +866,9 @@",
            " shl eax,0x18",
            " mov m4[esp+None*1+0x38],eax",
            " mov eax,m4[esp+None*1+0x0]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov eax,m4[eax+None*1+0x2]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov eax,m4[eax+None*1+0x2]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " sar eax,0x18",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " shl eax,0x18",
            "@@ -895,8 +895,8 @@",
            " mov esi,m4[esp+None*1+0x94]",
            " mov ebx,m4[esp+None*1+0x38]",
            " mov eax,m4[esp+None*1+0x10]",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            " imul edx",
            " xchg ebx,eax"
          ]
        },
        {
          "symbol": "gndobjs.c::scan_ground_objects_",
          "source": "E:\\library\\3dvisual\\gndobjs.c",
          "first": "0x493a30",
          "second": "0x493b20",
          "first_instruction_count": 245,
          "second_instruction_count": 245,
          "diff": [
            "--- 0x493a30",
            "+++ 0x493b20",
            "@@ -88,15 +88,15 @@",
            " mov eax,m4[esp+None*1+0x24]",
            " mov ecx,edi",
            " mov m4[esp+None*1+0x38],edi",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -175,15 +175,15 @@",
            " neg ecx",
            " mov eax,m4[esp+None*1+0x18]",
            " mov m4[esp+None*1+0x20],ecx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "go.c::application_main_",
          "source": "E:\\apache\\source\\go.c",
          "first": "0x402d50",
          "second": "0x402d50",
          "first_instruction_count": 138,
          "second_instruction_count": 138,
          "diff": [
            "--- 0x402d50",
            "+++ 0x402d50",
            "@@ -4,8 +4,8 @@",
            " push edi",
            " push ebp",
            " sub esp,0x104",
            "-mov edi,eax",
            "-mov ebp,edx",
            "+mov ecx,eax",
            "+mov edi,edx",
            " mov edx,0x1",
            " xor eax,eax",
            " mov m4[None+None*1+mouse.c::_mouse_dont_change_palette],edx",
            "@@ -14,8 +14,8 @@",
            " call start.c::print_user_message_",
            " xor eax,eax",
            " call start.c::print_user_message_",
            "-push text:'Jan 14 1998'",
            "-push text:'16:53:57'",
            "+push text:'Jun 13 1998'",
            "+push text:'17:22:33'",
            " push text:'%s %s'",
            " lea eax,m4[esp+None*1+0xc]",
            " push eax",
            "@@ -37,9 +37,9 @@",
            " mov eax,text:'apache.rop'",
            " mov m4[None+None*1+file.c::_number_protection_files],edx",
            " call config.c::install_lib32_",
            "-mov ecx,m4[None+None*1+file.c::_cd_is_there]",
            "+mov ebp,m4[None+None*1+file.c::_cd_is_there]",
            " xor esi,esi",
            "-test ecx,ecx",
            "+test ebp,ebp",
            " je local:44",
            " mov m4[None+None*1+apnet.c::_theres_a_cd_out_there_somewhere],0x1",
            " mov edx,go.c::apache_exit_",
            "@@ -54,13 +54,10 @@",
            " mov edx,go.c::apache_exit_",
            " mov eax,0xb053",
            " call key.c::register_key_",
            "-call fxinit.c::initialise_3dfx_",
            "-push 0x2",
            "-call LINKER MODULE::_grSstControl@4",
            " mov eax,text:'APACHEGS'",
            " call cmndline.c::process_environment_variable_",
            "-mov edx,ebp",
            "-mov eax,edi",
            "+mov edx,edi",
            "+mov eax,ecx",
            " call cmndline.c::process_command_line_",
            " call initpref.c::process_preferences_",
            " mov eax,text:'   Sound'",
            "@@ -81,9 +78,12 @@",
            " mov m4[None+None*1+mouse.c::_mouse_dont_change_palette],ecx",
            " call setmap.c::set_map_",
            " call runs.c::get_quick_start_game_runs_",
            "-mov edi,0x1",
            " mov m4[esp+None*1+0x100],eax",
            " call topten.c::initialise_top_ten_",
            "+call fxinit.c::initialise_3dfx_",
            "+push 0x2",
            "+mov edi,0x1",
            "+call LINKER MODULE::_grSstControl@4",
            " call intro.c::intro_sequence_",
            " mov m4[None+None*1+mouse.c::_mouse_dont_change_palette],edi",
            " call menus.c::setup_menus_",
            "@@ -115,7 +115,7 @@",
            " call start.c::print_user_message_",
            " mov eax,0x3",
            " mov m4[None+None*1+mouse.c::_mouse_dont_change_palette],edx",
            "-jmp local:81",
            "+jmp local:78",
            " mov edx,ebx",
            " mov eax,esi",
            " call modemprf.c::notify_flight_2_player_button_"
          ]
        },
        {
          "symbol": "goggles.c::set_goggles_flir_mode_",
          "source": "E:\\apache\\source\\avionics\\goggles.c",
          "first": "0x4583f4",
          "second": "0x458444",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x4583f4",
            "+++ 0x458444",
            "@@ -15,7 +15,7 @@",
            " add eax,edx",
            " mov edx,m4[eax+None*1+0x0]",
            " mov m4[None+None*1+goggles.c::_goggles_distance],edx",
            "-mov edx,m4[None+None*1+constant:e4314e00]",
            "+mov edx,m4[None+None*1+constant:00324e00]",
            " mov m4[None+None*1+goggles.c::_goggles_device_name],edx",
            " mov edx,m4[eax+None*1+0x8]",
            " mov eax,m4[eax+None*1+0x4]"
          ]
        },
        {
          "symbol": "goggles.c::set_goggles_tv_mode_",
          "source": "E:\\apache\\source\\avionics\\goggles.c",
          "first": "0x458454",
          "second": "0x4584a4",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x458454",
            "+++ 0x4584a4",
            "@@ -15,7 +15,7 @@",
            " add eax,edx",
            " mov edx,m4[eax+None*1+0x0]",
            " mov m4[None+None*1+goggles.c::_goggles_distance],edx",
            "-mov edx,m4[None+None*1+constant:ec314e00]",
            "+mov edx,m4[None+None*1+constant:08324e00]",
            " mov m4[None+None*1+goggles.c::_goggles_device_name],edx",
            " mov edx,m4[eax+None*1+0x8]",
            " mov eax,m4[eax+None*1+0x4]"
          ]
        },
        {
          "symbol": "goggles.c::set_goggles_viewpoint_",
          "source": "E:\\apache\\source\\avionics\\goggles.c",
          "first": "0x457e9c",
          "second": "0x457eec",
          "first_instruction_count": 359,
          "second_instruction_count": 359,
          "diff": [
            "--- 0x457e9c",
            "+++ 0x457eec",
            "@@ -44,11 +44,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -62,15 +62,15 @@",
            " mov eax,m4[esp+None*1+0xc]",
            " mov ebp,edx",
            " mov m4[esp+None*1+0x0],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -84,15 +84,15 @@",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[esp+None*1+0x18],edx",
            " mov m4[esp+None*1+0x4],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "helmet.c::set_helmet_viewpoint_",
          "source": "E:\\apache\\source\\avionics\\helmet.c",
          "first": "0x458610",
          "second": "0x458660",
          "first_instruction_count": 314,
          "second_instruction_count": 314,
          "diff": [
            "--- 0x458610",
            "+++ 0x458660",
            "@@ -44,11 +44,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -62,15 +62,15 @@",
            " mov eax,m4[esp+None*1+0x0]",
            " mov ebp,edx",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -84,15 +84,15 @@",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x18],edx",
            " mov m4[esp+None*1+0x10],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "horizon.c::initialise_horizon_",
          "source": "E:\\library\\3dvisual\\horizon.c",
          "first": "0x494de0",
          "second": "0x494ed0",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x494de0",
            "+++ 0x494ed0",
            "@@ -3,22 +3,22 @@",
            " push edx",
            " mov edx,0x98",
            " mov ebx,horizon.c::_sky_viewpoint",
            "-mov ah,m1[None+None*1+0xd88a7c]",
            "+mov ah,m1[None+None*1+0xd88a80]",
            " xor ecx,ecx",
            " mov m4[None+None*1+horizon.c::_sky_instance],edx",
            "-mov m4[None+None*1+0xd88a40],ecx",
            "-mov m4[None+None*1+0xd88a44],ebx",
            "-mov m4[None+None*1+0xd88a4c],ecx",
            "-mov m4[None+None*1+0xd88a58],ecx",
            "+mov m4[None+None*1+0xd88a44],ecx",
            "+mov m4[None+None*1+0xd88a48],ebx",
            "+mov m4[None+None*1+0xd88a50],ecx",
            " mov m4[None+None*1+0xd88a5c],ecx",
            " mov m4[None+None*1+0xd88a60],ecx",
            " mov m4[None+None*1+0xd88a64],ecx",
            " mov m4[None+None*1+0xd88a68],ecx",
            "+mov m4[None+None*1+0xd88a6c],ecx",
            " and ah,0xef",
            "-mov m4[None+None*1+0xd88a6c],ecx",
            "-mov m1[None+None*1+0xd88a7c],ah",
            "+mov m4[None+None*1+0xd88a70],ecx",
            "+mov m1[None+None*1+0xd88a80],ah",
            " mov eax,0xd889bc",
            "-mov m4[None+None*1+0xd88a70],ecx",
            "+mov m4[None+None*1+0xd88a74],ecx",
            " call matrix.c::mat_identity_3x3_",
            " pop edx",
            " pop ecx"
          ]
        },
        {
          "symbol": "ihadss.c::display_viewing_device_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45a9d8",
          "second": "0x45a9fc",
          "first_instruction_count": 69,
          "second_instruction_count": 66,
          "diff": [
            "--- 0x45a9d8",
            "+++ 0x45a9fc",
            "@@ -56,12 +56,9 @@",
            " mov ebx,m4[None+None*1+text.c::_text_x_position]",
            " mov esi,m4[None+None*1+text.c::_text_y_position]",
            " sub ebx,eax",
            "-mov eax,m4[None+None*1+ihadss.c::_char_y_adjust]",
            "+add esi,m4[None+None*1+ihadss.c::_char_y_adjust]",
            " mov m4[None+None*1+text.c::_text_x_position],ebx",
            "-add esi,eax",
            "-mov eax,m4[None+None*1+goggles.c::_goggles_magnification_string]",
            " mov m4[None+None*1+text.c::_text_y_position],esi",
            "-call text.c::print_text_string_",
            " pop ebx",
            " pop ecx",
            " pop edx"
          ]
        },
        {
          "symbol": "ihadss.c::display_weapons_information_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45b38c",
          "second": "0x45b3a4",
          "first_instruction_count": 291,
          "second_instruction_count": 291,
          "diff": [
            "--- 0x45b38c",
            "+++ 0x45b3a4",
            "@@ -7,7 +7,7 @@",
            " cmp eax,0x6",
            " ja local:9",
            " jmp m4[None+eax*4+ihadss.c::draw_lock_diamond_+0x158]",
            "-push 0x7d9",
            "+push 0x7d7",
            " push text:'\\\\apache\\\\source\\\\avionics\\\\ihadss.c'",
            " push text:'Trying to display weapons info for unknown/illegal weapon type'",
            " call debuglog.c::debug_log_fatal_long_",
            "@@ -187,7 +187,7 @@",
            " jmp local:79",
            " push text:'No IR Signature'",
            " jmp local:79",
            "-push 0x85d",
            "+push 0x85b",
            " push text:'\\\\apache\\\\source\\\\avionics\\\\ihadss.c'",
            " push text:'Apache weapon lock status illegal'",
            " call debuglog.c::debug_log_fatal_long_"
          ]
        },
        {
          "symbol": "ihadss.c::draw_ihadss_display_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x458bc0",
          "second": "0x458c10",
          "first_instruction_count": 85,
          "second_instruction_count": 69,
          "diff": [
            "--- 0x458bc0",
            "+++ 0x458c10",
            "@@ -1,14 +1,12 @@",
            "-push edx",
            "-mov edx,0x1",
            "-mov ah,m1[None+None*1+0x6748c5]",
            "-mov m4[None+None*1+fxpoly1.c::_use_glide],edx",
            "-test ah,0x10",
            "-je local:8",
            "-pop edx",
            "+push ecx",
            "+push esi",
            "+push ebp",
            "+test m1[None+None*1+0x6748c5],0x10",
            "+je local:9",
            "+pop ebp",
            "+pop esi",
            "+pop ecx",
            " ret ",
            "-push edi",
            "-push ecx",
            "-push ebx",
            " call ihadss.c::set_ihadss_viewport_and_window_",
            " xor eax,eax",
            " call 2dcore.c::set_2d_rotation_",
            "@@ -19,8 +17,11 @@",
            " call ihadss.c::draw_layout_grid_",
            " mov eax,m4[None+None*1+ihadss.c::_ihadss_mode]",
            " cmp eax,0x3",
            "-ja local:37",
            "+ja local:5",
            " jmp m4[None+eax*4+ihadss.c::initialise_ihadss_display_+0x150]",
            "+cmp m4[None+None*1+0x5b3c6c],0x0",
            "+je local:24",
            "+call ihadss.c::draw_aiming_target_box_",
            " call ihadss.c::draw_line_of_sight_reticle_",
            " call ihadss.c::draw_heading_scale_",
            " call ihadss.c::draw_pitch_ladder_",
            "@@ -31,29 +32,15 @@",
            " call ihadss.c::display_engine_information_",
            " call ihadss.c::display_viewing_device_",
            " call ihadss.c::display_weapons_information_",
            "-mov eax,m4[None+None*1+views.c::_view_mode]",
            "-cmp eax,0xc",
            "-jne local:48",
            "+mov ebp,m4[None+None*1+views.c::_view_mode]",
            "+cmp ebp,0xc",
            "+je local:39",
            "+cmp ebp,0xd",
            "+jne local:5",
            " call ihadss.c::draw_tads_field_of_view_",
            "-xor ecx,ecx",
            "-mov m4[None+None*1+fxpoly1.c::_use_glide],ecx",
            "-pop ebx",
            "+pop ebp",
            "+pop esi",
            " pop ecx",
            "-pop edi",
            "-pop edx",
            "-ret ",
            "-cmp m4[None+None*1+0x5b3c6c],0x0",
            "-je local:23",
            "-call ihadss.c::draw_aiming_target_box_",
            "-jmp local:23",
            "-cmp eax,0xd",
            "-je local:36",
            "-xor ecx,ecx",
            "-mov m4[None+None*1+fxpoly1.c::_use_glide],ecx",
            "-pop ebx",
            "-pop ecx",
            "-pop edi",
            "-pop edx",
            " ret ",
            " call ihadss.c::draw_pitch_ladder_",
            " call ihadss.c::display_airspeed_information_",
            "@@ -61,25 +48,22 @@",
            " call ihadss.c::display_engine_information_",
            " call ihadss.c::draw_heading_scale_",
            " call ihadss.c::draw_climb_rate_and_altitude_indicators_",
            "-mov ebx,m4[None+None*1+apweapon.c::_current_weapon]",
            "-cmp ebx,0x4",
            "-je local:69",
            "-cmp ebx,0x5",
            "-je local:69",
            "+mov ecx,m4[None+None*1+apweapon.c::_current_weapon]",
            "+cmp ecx,0x4",
            "+je local:56",
            "+cmp ecx,0x5",
            "+je local:56",
            " call ihadss.c::draw_line_of_sight_reticle_",
            " call ihadss.c::display_viewing_device_",
            " call ihadss.c::draw_targeting_reticle_",
            " call ihadss.c::display_weapons_information_",
            "-mov edi,m4[None+None*1+views.c::_view_mode]",
            "-cmp edi,0xc",
            "-je local:36",
            "-cmp edi,0xd",
            "-jne local:37",
            "+mov esi,m4[None+None*1+views.c::_view_mode]",
            "+cmp esi,0xc",
            "+je local:64",
            "+cmp esi,0xd",
            "+jne local:5",
            " call ihadss.c::draw_tads_field_of_view_",
            "-xor ecx,ecx",
            "-mov m4[None+None*1+fxpoly1.c::_use_glide],ecx",
            "-pop ebx",
            "+pop ebp",
            "+pop esi",
            " pop ecx",
            "-pop edi",
            "-pop edx",
            " ret "
          ]
        },
        {
          "symbol": "ihadss.c::draw_point_direction_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45b970",
          "second": "0x45b988",
          "first_instruction_count": 122,
          "second_instruction_count": 122,
          "diff": [
            "--- 0x45b970",
            "+++ 0x45b988",
            "@@ -36,11 +36,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -54,15 +54,15 @@",
            " mov eax,m4[esp+None*1+0x0]",
            " mov ebp,edx",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -75,15 +75,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x10],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "ihadss.c::draw_targeting_reticle_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45abfc",
          "second": "0x45ac14",
          "first_instruction_count": 16,
          "second_instruction_count": 16,
          "diff": [
            "--- 0x45abfc",
            "+++ 0x45ac14",
            "@@ -7,7 +7,7 @@",
            " cmp eax,0x6",
            " ja local:9",
            " jmp m4[None+eax*4+ihadss.c::set_tads_ihadss_symbol_+0x20]",
            "-push 0x6e6",
            "+push 0x6e4",
            " push text:'\\\\apache\\\\source\\\\avionics\\\\ihadss.c'",
            " push text:'Trying to draw targetting system for unknown/illegal weapon type'",
            " call debuglog.c::debug_log_fatal_long_"
          ]
        },
        {
          "symbol": "ihadss.c::translate_real_position_to_display_point_",
          "source": "E:\\apache\\source\\avionics\\ihadss.c",
          "first": "0x45bdbc",
          "second": "0x45bdd4",
          "first_instruction_count": 192,
          "second_instruction_count": 192,
          "diff": [
            "--- 0x45bdbc",
            "+++ 0x45bdd4",
            "@@ -37,11 +37,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -54,15 +54,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -75,15 +75,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov ebp,edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "line.asm::_draw_glide_line",
          "source": "\\library\\graphics\\line.asm",
          "first": "0x4c28c0",
          "second": "0x4c3120",
          "first_instruction_count": 147,
          "second_instruction_count": 147,
          "diff": [
            "--- 0x4c28c0",
            "+++ 0x4c3120",
            "@@ -22,7 +22,7 @@",
            " pop edx",
            " and eax,0xff",
            " mov eax,m4[None+eax*4+palette.c::_ARGBColour]",
            "-jmp m4[None+ebp*4+constant:30294c00]",
            "+jmp m4[None+ebp*4+constant:90314c00]",
            " mov ecx,edx",
            " inc ecx",
            " mov ebx,edx"
          ]
        },
        {
          "symbol": "line.asm::_draw_line",
          "source": "\\library\\graphics\\line.asm",
          "first": "0x4c2780",
          "second": "0x4c2fe0",
          "first_instruction_count": 138,
          "second_instruction_count": 138,
          "diff": [
            "--- 0x4c2780",
            "+++ 0x4c2fe0",
            "@@ -13,7 +13,7 @@",
            " or ebp,0x1",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            "-jmp m4[None+ebp*4+constant:d0274c00]",
            "+jmp m4[None+ebp*4+constant:30304c00]",
            " mov ecx,edx",
            " inc ecx",
            " mov ebx,edx"
          ]
        },
        {
          "symbol": "log.c::set_current_log_",
          "source": "E:\\apache\\source\\menus\\logs\\log.c",
          "first": "0x41681c",
          "second": "0x41687c",
          "first_instruction_count": 41,
          "second_instruction_count": 41,
          "diff": [
            "--- 0x41681c",
            "+++ 0x41687c",
            "@@ -22,7 +22,7 @@",
            " call _strcmp::strcmp_",
            " test eax,eax",
            " je local:39",
            "-mov ebp,m4[ecx+None*1+constant:ac9c4d00]",
            "+mov ebp,m4[ecx+None*1+constant:c89c4d00]",
            " add ecx,0x8",
            " inc ebx",
            " test ebp,ebp"
          ]
        },
        {
          "symbol": "logscrn.c::initialise_log_screen_",
          "source": "E:\\apache\\source\\menus\\logs\\logscrn.c",
          "first": "0x416a20",
          "second": "0x416a80",
          "first_instruction_count": 492,
          "second_instruction_count": 492,
          "diff": [
            "--- 0x416a20",
            "+++ 0x416a80",
            "@@ -136,7 +136,7 @@",
            " call object.c::create_object_",
            " mov edx,ebx",
            " add esp,0x50",
            "-mov m4[edi+None*1+0x52b2cc],eax",
            "+mov m4[edi+None*1+0x52b3cc],eax",
            " cmp ecx,0x10e",
            " jl local:147",
            " add esi,0x12"
          ]
        },
        {
          "symbol": "mfd.c::draw_co_pilot_mfds_",
          "source": "E:\\apache\\source\\avionics\\mfd.c",
          "first": "0x45c6e0",
          "second": "0x45c700",
          "first_instruction_count": 138,
          "second_instruction_count": 138,
          "diff": [
            "--- 0x45c6e0",
            "+++ 0x45c700",
            "@@ -40,7 +40,7 @@",
            " test m1[None+None*1+0x6748c5],0x1",
            " je local:58",
            " mov eax,mfd.c::_co_pilot_middle_mfd_viewport",
            "-call m4[None+None*1+constant:58cd4500]",
            "+call m4[None+None*1+constant:78cd4500]",
            " call screen.c::reset_screen_extent_",
            " mov eax,m4[None+None*1+gamedata.c::_game_video_mode]",
            " cmp eax,0x1"
          ]
        },
        {
          "symbol": "mfd.c::get_next_mfd_mode_",
          "source": "E:\\apache\\source\\avionics\\mfd.c",
          "first": "0x45cbcc",
          "second": "0x45cbec",
          "first_instruction_count": 49,
          "second_instruction_count": 49,
          "diff": [
            "--- 0x45cbcc",
            "+++ 0x45cbec",
            "@@ -39,7 +39,7 @@",
            " inc eax",
            " add edx,0x4",
            " jmp local:36",
            "-mov eax,m4[edx+None*1+constant:24034600]",
            "+mov eax,m4[edx+None*1+constant:44034600]",
            " pop ebp",
            " pop edi",
            " pop esi"
          ]
        },
        {
          "symbol": "mfdfunc.c::mfd_radar_",
          "source": "E:\\apache\\source\\avionics\\mfdfunc.c",
          "first": "0x45cf64",
          "second": "0x45cf84",
          "first_instruction_count": 806,
          "second_instruction_count": 806,
          "diff": [
            "--- 0x45cf64",
            "+++ 0x45cf84",
            "@@ -78,7 +78,7 @@",
            " mov edx,ecx",
            " call 2dline.c::draw_2d_line_",
            " push 0xd1",
            "-mov ecx,fxpoly1.c::_3dfx_fill_flame_translucent_rgb_polygon_+0x94",
            "+mov ecx,fxpoly1.c::_3dfx_fill_translucent_rgb_polygon_+0x70",
            " mov ebx,0x76ac00",
            " mov eax,0xff895400",
            " mov edx,ecx",
            "@@ -145,7 +145,7 @@",
            " call 2dline.c::draw_2d_line_",
            " push 0xd1",
            " mov ecx,0x76ac00",
            "-mov ebx,fxpoly1.c::_3dfx_fill_flame_translucent_rgb_polygon_+0x94",
            "+mov ebx,fxpoly1.c::_3dfx_fill_translucent_rgb_polygon_+0x70",
            " mov edx,0xff895400",
            " mov eax,ebx",
            " call 2dline.c::draw_2d_line_",
            "@@ -172,7 +172,7 @@",
            " xor eax,eax",
            " call 2dwrap.c::draw_2d_circle_",
            " mov ecx,0xd3",
            "-mov ebx,fxpoly1.c::_3dfx_fill_flame_translucent_rgb_polygon_+0x94",
            "+mov ebx,fxpoly1.c::_3dfx_fill_translucent_rgb_polygon_+0x70",
            " xor edx,edx",
            " xor eax,eax",
            " call 2dwrap.c::draw_2d_circle_"
          ]
        },
        {
          "symbol": "mfdfunc.c::mfd_weapons_",
          "source": "E:\\apache\\source\\avionics\\mfdfunc.c",
          "first": "0x45edd0",
          "second": "0x45edf0",
          "first_instruction_count": 1044,
          "second_instruction_count": 1044,
          "diff": [
            "--- 0x45edd0",
            "+++ 0x45edf0",
            "@@ -81,10 +81,10 @@",
            " sub edi,eax",
            " mov eax,m4[ebp+None*1+0x4]",
            " call setblock.asm::_set_block",
            "-mov eax,m4[None+None*1+0x62e5b0]",
            "+mov eax,m4[None+None*1+0x62e5cc]",
            " cmp eax,0x1",
            " jae local:723",
            "-mov eax,m4[None+None*1+0x62e5c4]",
            "+mov eax,m4[None+None*1+0x62e5e0]",
            " cmp eax,0x1",
            " jae local:745",
            " mov eax,m4[None+None*1+apweapon.c::_apache_weapons]",
            "@@ -92,23 +92,23 @@",
            " cmp eax,0x3",
            " ja local:98",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x48c]",
            "-mov eax,m4[None+None*1+0x62e560]",
            "+mov eax,m4[None+None*1+0x62e57c]",
            " cmp eax,0x4",
            " ja local:817",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x49c]",
            "-mov eax,m4[None+None*1+0x62e584]",
            "+mov eax,m4[None+None*1+0x62e5a0]",
            " sub eax,0x2",
            " cmp eax,0x3",
            " ja local:107",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x4c4]",
            "-mov eax,m4[None+None*1+0x62e588]",
            "+mov eax,m4[None+None*1+0x62e5a4]",
            " cmp eax,0x4",
            " ja local:944",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x4d4]",
            " mov edx,0x4b",
            " mov eax,0x3b",
            " call 2dwrap.c::set_2d_text_position_",
            "-mov ebx,m4[None+None*1+0x62e5d8]",
            "+mov ebx,m4[None+None*1+0x62e5f4]",
            " push ebx",
            " push text:'%04d'",
            " lea eax,m4[esp+None*1+0x8]",
            "@@ -120,7 +120,7 @@",
            " call text.c::print_text_string_",
            " mov eax,0x3b",
            " call 2dwrap.c::set_2d_text_position_",
            "-mov esi,m4[None+None*1+0x62e600]",
            "+mov esi,m4[None+None*1+0x62e61c]",
            " push esi",
            " push text:'C:%02d'",
            " lea eax,m4[esp+None*1+0x8]",
            "@@ -132,7 +132,7 @@",
            " call text.c::print_text_string_",
            " mov eax,0x3b",
            " call 2dwrap.c::set_2d_text_position_",
            "-mov edi,m4[None+None*1+0x62e5ec]",
            "+mov edi,m4[None+None*1+0x62e608]",
            " push edi",
            " push text:'F:%02d'",
            " lea eax,m4[esp+None*1+0x8]",
            "@@ -272,10 +272,10 @@",
            " sub edi,ecx",
            " mov ecx,m4[ebp+None*1+0x0]",
            " call setblock.asm::_set_block",
            "-mov eax,m4[None+None*1+0x62e5b0]",
            "+mov eax,m4[None+None*1+0x62e5cc]",
            " cmp eax,0x1",
            " jae local:402",
            "-mov eax,m4[None+None*1+0x62e5c4]",
            "+mov eax,m4[None+None*1+0x62e5e0]",
            " cmp eax,0x1",
            " jae local:424",
            " mov eax,m4[None+None*1+apweapon.c::_apache_weapons]",
            "@@ -283,23 +283,23 @@",
            " cmp eax,0x3",
            " ja local:289",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x41c]",
            "-mov eax,m4[None+None*1+0x62e560]",
            "+mov eax,m4[None+None*1+0x62e57c]",
            " cmp eax,0x4",
            " ja local:496",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x42c]",
            "-mov eax,m4[None+None*1+0x62e584]",
            "+mov eax,m4[None+None*1+0x62e5a0]",
            " sub eax,0x2",
            " cmp eax,0x3",
            " ja local:298",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x454]",
            "-mov eax,m4[None+None*1+0x62e588]",
            "+mov eax,m4[None+None*1+0x62e5a4]",
            " cmp eax,0x4",
            " ja local:623",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x464]",
            " mov edx,0x26",
            " mov eax,0x1b",
            " call 2dwrap.c::set_2d_text_position_",
            "-mov ebp,m4[None+None*1+0x62e5d8]",
            "+mov ebp,m4[None+None*1+0x62e5f4]",
            " push ebp",
            " push text:'%04d'",
            " lea eax,m4[esp+None*1+0x8]",
            "@@ -311,7 +311,7 @@",
            " call text.c::print_text_string_",
            " mov eax,edx",
            " call 2dwrap.c::set_2d_text_position_",
            "-mov eax,m4[None+None*1+0x62e600]",
            "+mov eax,m4[None+None*1+0x62e61c]",
            " push eax",
            " push text:'%02d'",
            " lea eax,m4[esp+None*1+0x8]",
            "@@ -323,7 +323,7 @@",
            " call text.c::print_text_string_",
            " mov eax,0x1f",
            " call 2dwrap.c::set_2d_text_position_",
            "-mov edx,m4[None+None*1+0x62e5ec]",
            "+mov edx,m4[None+None*1+0x62e608]",
            " push edx",
            " push text:'%02d'",
            " lea eax,m4[esp+None*1+0x8]",
            "@@ -462,8 +462,8 @@",
            " add ebx,0x1b",
            " add eax,0x36",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e560]",
            "-mov edi,m4[None+None*1+0x62e574]",
            "+mov eax,m4[None+None*1+0x62e57c]",
            "+mov edi,m4[None+None*1+0x62e590]",
            " mov edx,m4[esp+None*1+0x18]",
            " add eax,edi",
            " add edx,eax",
            "@@ -487,8 +487,8 @@",
            " add ebx,0x1b",
            " add eax,0x36",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e560]",
            "-mov ebx,m4[None+None*1+0x62e574]",
            "+mov eax,m4[None+None*1+0x62e57c]",
            "+mov ebx,m4[None+None*1+0x62e590]",
            " mov esi,m4[esp+None*1+0x1c]",
            " add eax,ebx",
            " add esi,eax",
            "@@ -530,7 +530,7 @@",
            " add ebx,0x22",
            " add eax,0xc",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e574]",
            "+mov eax,m4[None+None*1+0x62e590]",
            " cmp eax,0x4",
            " ja local:536",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x440]",
            "@@ -589,8 +589,8 @@",
            " add ebx,0x1b",
            " add eax,0x2e",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e588]",
            "-mov esi,m4[None+None*1+0x62e59c]",
            "+mov eax,m4[None+None*1+0x62e5a4]",
            "+mov esi,m4[None+None*1+0x62e5b8]",
            " mov edi,m4[esp+None*1+0x18]",
            " add eax,esi",
            " add edi,eax",
            "@@ -614,8 +614,8 @@",
            " add ebx,0x1b",
            " add eax,0x2e",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e588]",
            "-mov ecx,m4[None+None*1+0x62e59c]",
            "+mov eax,m4[None+None*1+0x62e5a4]",
            "+mov ecx,m4[None+None*1+0x62e5b8]",
            " mov ebx,m4[esp+None*1+0x1c]",
            " add eax,ecx",
            " add ebx,eax",
            "@@ -657,7 +657,7 @@",
            " add ebx,0x22",
            " add eax,0x14",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e59c]",
            "+mov eax,m4[None+None*1+0x62e5b8]",
            " cmp eax,0x4",
            " ja local:663",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x478]",
            "@@ -783,8 +783,8 @@",
            " add ebx,0x34",
            " add eax,0x6c",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e560]",
            "-mov ebx,m4[None+None*1+0x62e574]",
            "+mov eax,m4[None+None*1+0x62e57c]",
            "+mov ebx,m4[None+None*1+0x62e590]",
            " mov esi,m4[esp+None*1+0x18]",
            " add eax,ebx",
            " add esi,eax",
            "@@ -808,8 +808,8 @@",
            " add ebx,0x34",
            " add eax,0x6c",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e560]",
            "-mov edx,m4[None+None*1+0x62e574]",
            "+mov eax,m4[None+None*1+0x62e57c]",
            "+mov edx,m4[None+None*1+0x62e590]",
            " mov ecx,m4[esp+None*1+0x1c]",
            " add eax,edx",
            " add ecx,eax",
            "@@ -851,7 +851,7 @@",
            " add ebx,0x42",
            " add eax,0x1a",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e574]",
            "+mov eax,m4[None+None*1+0x62e590]",
            " cmp eax,0x4",
            " ja local:857",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x4b0]",
            "@@ -910,8 +910,8 @@",
            " add ebx,0x34",
            " add eax,0x5a",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e588]",
            "-mov edx,m4[None+None*1+0x62e59c]",
            "+mov eax,m4[None+None*1+0x62e5a4]",
            "+mov edx,m4[None+None*1+0x62e5b8]",
            " mov ecx,m4[esp+None*1+0x18]",
            " add eax,edx",
            " add ecx,eax",
            "@@ -935,8 +935,8 @@",
            " add ebx,0x34",
            " add eax,0x5a",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e588]",
            "-mov edi,m4[None+None*1+0x62e59c]",
            "+mov eax,m4[None+None*1+0x62e5a4]",
            "+mov edi,m4[None+None*1+0x62e5b8]",
            " mov ebp,m4[esp+None*1+0x1c]",
            " add eax,edi",
            " add ebp,eax",
            "@@ -978,7 +978,7 @@",
            " add ebx,0x42",
            " add eax,0x2b",
            " call setmblk.asm::_set_masked_block",
            "-mov eax,m4[None+None*1+0x62e59c]",
            "+mov eax,m4[None+None*1+0x62e5b8]",
            " cmp eax,0x4",
            " ja local:984",
            " jmp m4[None+eax*4+mfdfunc.c::mfd_draw_frag_plan_+0x4e8]"
          ]
        },
        {
          "symbol": "missions.c::get_tag_",
          "source": "E:\\apache\\source\\menus\\missions\\missions.c",
          "first": "0x423604",
          "second": "0x423664",
          "first_instruction_count": 42,
          "second_instruction_count": 42,
          "diff": [
            "--- 0x423604",
            "+++ 0x423664",
            "@@ -12,7 +12,7 @@",
            " test edx,edx",
            " jl local:22",
            " mov eax,ebx",
            "-mov edx,m4[ecx+None*1+constant:f4b94d00]",
            "+mov edx,m4[ecx+None*1+constant:10ba4d00]",
            " call _strcmp::strcmp_",
            " test eax,eax",
            " je local:35"
          ]
        },
        {
          "symbol": "missions.c::process_mission_data_",
          "source": "E:\\apache\\source\\menus\\missions\\missions.c",
          "first": "0x423aa8",
          "second": "0x423b08",
          "first_instruction_count": 531,
          "second_instruction_count": 531,
          "diff": [
            "--- 0x423aa8",
            "+++ 0x423b08",
            "@@ -246,7 +246,7 @@",
            " ret ",
            " mov eax,ebx",
            " call atoi::atoi_",
            "-mov m4[None+None*1+0x62e5d8],eax",
            "+mov m4[None+None*1+0x62e5f4],eax",
            " add esp,0x420",
            " pop ecx",
            " pop ebx"
          ]
        },
        {
          "symbol": "misssave.c::save_mission_weapons_",
          "source": "E:\\apache\\source\\menus\\missions\\misssave.c",
          "first": "0x425db4",
          "second": "0x425e14",
          "first_instruction_count": 54,
          "second_instruction_count": 54,
          "diff": [
            "--- 0x425db4",
            "+++ 0x425e14",
            "@@ -19,7 +19,7 @@",
            " add edi,0x14",
            " cmp esi,0x9",
            " jl local:14",
            "-mov ebx,m4[None+None*1+0x62e614]",
            "+mov ebx,m4[None+None*1+0x62e630]",
            " push ebx",
            " push text:':Gun\\n%d\\n'",
            " lea edx,m4[esp+None*1+0x8]"
          ]
        },
        {
          "symbol": "mobobjs.c::bounding_box_point_collision_test_",
          "source": "E:\\library\\3dvisual\\mobobjs.c",
          "first": "0x49796c",
          "second": "0x497a5c",
          "first_instruction_count": 165,
          "second_instruction_count": 165,
          "diff": [
            "--- 0x49796c",
            "+++ 0x497a5c",
            "@@ -39,11 +39,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -56,15 +56,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x28],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -77,15 +77,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x24],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "mobobjs.c::get_rotated_mobile_object_collision_test_",
          "source": "E:\\library\\3dvisual\\mobobjs.c",
          "first": "0x497b2c",
          "second": "0x497c1c",
          "first_instruction_count": 125,
          "second_instruction_count": 125,
          "diff": [
            "--- 0x497b2c",
            "+++ 0x497c1c",
            "@@ -35,11 +35,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd494]",
            "+mov eax,m4[None+None*1+0xafd598]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd498]",
            "+mov eax,m4[None+None*1+0xafd59c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -52,15 +52,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0xc],edx",
            "-mov edx,m4[None+None*1+0xafd49c]",
            "+mov edx,m4[None+None*1+0xafd5a0]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4a0]",
            "+mov eax,m4[None+None*1+0xafd5a4]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4a4]",
            "+mov eax,m4[None+None*1+0xafd5a8]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -73,15 +73,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x10],edx",
            "-mov edx,m4[None+None*1+0xafd4a8]",
            "+mov edx,m4[None+None*1+0xafd5ac]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xafd4ac]",
            "+mov eax,m4[None+None*1+0xafd5b0]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xafd4b0]",
            "+mov eax,m4[None+None*1+0xafd5b4]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "mobobjs.c::scan_mobile_objects_",
          "source": "E:\\library\\3dvisual\\mobobjs.c",
          "first": "0x496eb0",
          "second": "0x496fa0",
          "first_instruction_count": 382,
          "second_instruction_count": 382,
          "diff": [
            "--- 0x496eb0",
            "+++ 0x496fa0",
            "@@ -58,15 +58,15 @@",
            " mov m4[esp+None*1+0x8],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x18]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -168,15 +168,15 @@",
            " mov ebx,m4[esp+None*1+0x24]",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x14]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -235,15 +235,15 @@",
            " mov m4[esp+None*1+0x1c],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x20]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -330,15 +330,15 @@",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0x10]",
            " mov m4[esp+None*1+0x0],ebx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "model_a.c::engine_calculations_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43ebe4",
          "second": "0x43ec44",
          "first_instruction_count": 229,
          "second_instruction_count": 229,
          "diff": [
            "--- 0x43ebe4",
            "+++ 0x43ec44",
            "@@ -51,7 +51,7 @@",
            " mov m4[None+None*1+model_a.c::_engine_torque],eax",
            " mov eax,m4[esp+None*1+0x14]",
            " mov edi,m4[None+None*1+model_a.c::_zdotT]",
            "-mov m4[None+None*1+0x5a47e4],eax",
            "+mov m4[None+None*1+0x5a47ec],eax",
            " test edi,edi",
            " jle local:178",
            " xor eax,eax",
            "@@ -80,7 +80,7 @@",
            " je local:188",
            " xor eax,eax",
            " mov m4[None+None*1+model_a.c::_engine_rpm_ss],eax",
            "-mov m4[None+None*1+0x5a476c],eax",
            "+mov m4[None+None*1+0x5a4774],eax",
            " fld m8[None+None*1+model_a.c::_collective]",
            " fmul m8[esp+None*1+0x8]",
            " fmul m8[None+None*1+constant:9a9999999999993f]",
            "@@ -107,17 +107,17 @@",
            " xor esi,esi",
            " mov edi,0x3ff00000",
            " mov m4[None+None*1+model_a.c::_left_engine_temperature],esi",
            "-mov m4[None+None*1+0x5a47c4],esi",
            "+mov m4[None+None*1+0x5a47d4],esi",
            " mov m4[None+None*1+model_a.c::_left_engine_rpm],esi",
            "-mov m4[None+None*1+0x5a477c],edi",
            "+mov m4[None+None*1+0x5a4784],edi",
            " test m1[None+None*1+0x6748c6],0x20",
            " je local:221",
            " xor ecx,ecx",
            " mov ebx,0x3ff00000",
            " mov m4[None+None*1+model_a.c::_right_engine_temperature],ecx",
            "-mov m4[None+None*1+0x5a479c],ecx",
            "+mov m4[None+None*1+0x5a47a4],ecx",
            " mov m4[None+None*1+model_a.c::_right_engine_rpm],ecx",
            "-mov m4[None+None*1+0x5a47ec],ebx",
            "+mov m4[None+None*1+0x5a47f4],ebx",
            " fld m8[None+None*1+model_a.c::_engine_torque_ss]",
            " fsub m8[None+None*1+model_a.c::_engine_torque]",
            " fmul m8[None+None*1+constant:0000000000000040]",
            "@@ -173,7 +173,7 @@",
            " jmp local:49",
            " mov eax,m4[None+None*1+model_a.c::_engine_torque]",
            " mov m4[esp+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x5a47e4]",
            "+mov eax,m4[None+None*1+0x5a47ec]",
            " mov m4[esp+None*1+0x4],eax",
            " jmp local:45",
            " fild m4[None+None*1+model_a.c::_zdotT]",
            "@@ -206,7 +206,7 @@",
            " jbe local:210",
            " xor ecx,ecx",
            " mov m4[None+None*1+model_a.c::_rotor_rpm_ss],ecx",
            "-mov m4[None+None*1+0x5a4784],ecx",
            "+mov m4[None+None*1+0x5a478c],ecx",
            " jmp local:97",
            " fld m8[None+None*1+model_a.c::_rotor_rpm]",
            " fcomp m8[None+None*1+constant:0000000000002440]",
            "@@ -216,13 +216,13 @@",
            " jmp local:97",
            " mov eax,m4[None+None*1+model_a.c::_engine_rpm]",
            " mov m4[None+None*1+model_a.c::_left_engine_rpm],eax",
            "-mov eax,m4[None+None*1+0x5a4794]",
            "-mov m4[None+None*1+0x5a477c],eax",
            "+mov eax,m4[None+None*1+0x5a479c]",
            "+mov m4[None+None*1+0x5a4784],eax",
            " jmp local:112",
            " mov eax,m4[None+None*1+model_a.c::_engine_rpm]",
            " mov m4[None+None*1+model_a.c::_right_engine_rpm],eax",
            "-mov eax,m4[None+None*1+0x5a4794]",
            "-mov m4[None+None*1+0x5a47ec],eax",
            "+mov eax,m4[None+None*1+0x5a479c]",
            "+mov m4[None+None*1+0x5a47f4],eax",
            " jmp local:120",
            " fld m8[esp+None*1+0x18]",
            " fmul m8[None+None*1+constant:9a9999999999b93f]"
          ]
        },
        {
          "symbol": "model_a.c::engine_temperature_calculations_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43ef98",
          "second": "0x43eff8",
          "first_instruction_count": 75,
          "second_instruction_count": 75,
          "diff": [
            "--- 0x43ef98",
            "+++ 0x43eff8",
            "@@ -39,13 +39,13 @@",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[None+None*1+model_a.c::_engine_temperature],eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov m4[None+None*1+0x5a47ac],eax",
            "+mov m4[None+None*1+0x5a47bc],eax",
            " test m1[None+None*1+0x6748c6],0x40",
            " jne local:48",
            " mov eax,m4[esp+None*1+0x8]",
            " mov m4[None+None*1+model_a.c::_left_engine_temperature],eax",
            " mov eax,m4[esp+None*1+0xc]",
            "-mov m4[None+None*1+0x5a47c4],eax",
            "+mov m4[None+None*1+0x5a47d4],eax",
            " test m1[None+None*1+0x6748c6],0x80",
            " je local:65",
            " mov esp,ebp",
            "@@ -60,13 +60,13 @@",
            " jmp local:38",
            " mov eax,m4[None+None*1+model_a.c::_engine_temperature]",
            " mov m4[esp+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x5a47ac]",
            "+mov eax,m4[None+None*1+0x5a47bc]",
            " mov m4[esp+None*1+0x4],eax",
            " jmp local:34",
            " mov eax,m4[None+None*1+model_a.c::_engine_temperature]",
            " mov m4[None+None*1+model_a.c::_right_engine_temperature],eax",
            "-mov eax,m4[None+None*1+0x5a47ac]",
            "-mov m4[None+None*1+0x5a479c],eax",
            "+mov eax,m4[None+None*1+0x5a47bc]",
            "+mov m4[None+None*1+0x5a47a4],eax",
            " mov esp,ebp",
            " pop ebp",
            " pop edx"
          ]
        },
        {
          "symbol": "model_a.c::fuel_calculations_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43e9fc",
          "second": "0x43ea5c",
          "first_instruction_count": 106,
          "second_instruction_count": 106,
          "diff": [
            "--- 0x43e9fc",
            "+++ 0x43ea5c",
            "@@ -28,7 +28,7 @@",
            " mov m4[None+None*1+0x5a4964],edi",
            " or dh,0x30",
            " mov m4[None+None*1+model_a.c::_fuel],edi",
            "-mov m4[None+None*1+0x5a4774],edi",
            "+mov m4[None+None*1+0x5a477c],edi",
            " mov m1[None+None*1+0x6748c6],dh",
            " pop edx",
            " pop edi",
            "@@ -98,7 +98,7 @@",
            " xor ebx,ebx",
            " mov esi,0x40a77000",
            " mov m4[None+None*1+model_a.c::_fuel],ebx",
            "-mov m4[None+None*1+0x5a4774],esi",
            "+mov m4[None+None*1+0x5a477c],esi",
            " add esp,0x8",
            " pop esi",
            " pop ecx"
          ]
        },
        {
          "symbol": "model_a.c::initialise_apache_flight_model_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43b918",
          "second": "0x43b978",
          "first_instruction_count": 669,
          "second_instruction_count": 669,
          "diff": [
            "--- 0x43b918",
            "+++ 0x43b978",
            "@@ -17,12 +17,12 @@",
            " mov m4[None+None*1+model_a.c::_over_torque_flag],ecx",
            " mov m4[None+None*1+model_a.c::_reset_altitude],ecx",
            " mov m4[None+None*1+model_a.c::_model_acceleration],ecx",
            "-mov m4[None+None*1+0x5a4824],eax",
            "+mov m4[None+None*1+0x5a4834],eax",
            " xor eax,eax",
            " mov ecx,m4[None+None*1+model.c::_model_vp]",
            "-mov m4[None+None*1+0x5a4894],eax",
            "+mov m4[None+None*1+0x5a489c],eax",
            " mov m4[None+None*1+model_a.c::_dz],eax",
            "-mov m4[None+None*1+0x5a489c],eax",
            "+mov m4[None+None*1+0x5a48a4],eax",
            " mov eax,m4[ecx+None*1+0x0]",
            " mov edx,eax",
            " sar edx,0x1f",
            "@@ -56,14 +56,14 @@",
            " mov m4[None+None*1+model_a.c::_max_speed_message],ebx",
            " mov m4[None+None*1+model_a.c::_pull_up_message],ebx",
            " mov m4[None+None*1+model_a.c::_preset_altitude],ebx",
            "-mov m4[None+None*1+0x5a47cc],ebx",
            "+mov m4[None+None*1+0x5a474c],ebx",
            " mov m4[None+None*1+model_a.c::_terrain_follow],ebx",
            " mov m4[None+None*1+model_a.c::_Wt],ebx",
            " mov m4[None+None*1+model_a.c::_weight_factor],ebx",
            "-mov m4[None+None*1+0x5a47a4],ebx",
            "+mov m4[None+None*1+0x5a47b4],ebx",
            " mov m4[None+None*1+0x5a48b4],esi",
            " mov m4[None+None*1+model_a.c::_dx],edi",
            "-mov m4[None+None*1+0x5a488c],edi",
            "+mov m4[None+None*1+0x5a4894],edi",
            " mov ebx,0xfe68f1b0",
            " mov m4[None+None*1+model_a.c::_dy],edi",
            " mov m4[None+None*1+model_a.c::_M],ebx",
            "@@ -90,25 +90,25 @@",
            " mov eax,0x3fa99999",
            " mov m4[None+None*1+model_a.c::_max_fuel_consumption],edi",
            " mov m4[None+None*1+model_a.c::_engine_rpm],edx",
            "+mov m4[None+None*1+0x5a479c],ecx",
            "+mov m4[None+None*1+model_a.c::_engine_torque],edx",
            "+mov m4[None+None*1+0x5a47ec],edx",
            "+mov m4[None+None*1+model_a.c::_rotor_rpm],edx",
            " mov m4[None+None*1+0x5a4794],ecx",
            "-mov m4[None+None*1+model_a.c::_engine_torque],edx",
            "-mov m4[None+None*1+0x5a47e4],edx",
            "-mov m4[None+None*1+model_a.c::_rotor_rpm],edx",
            "-mov m4[None+None*1+0x5a478c],ecx",
            " mov m4[None+None*1+model_a.c::_rotor_torque],edx",
            " mov m4[None+None*1+model_a.c::_engine_timer],edx",
            "-mov m4[None+None*1+0x5a4764],edx",
            "+mov m4[None+None*1+0x5a476c],edx",
            " mov m4[None+None*1+model_a.c::_max_speed_timer],edx",
            "-mov m4[None+None*1+0x5a47dc],edx",
            "+mov m4[None+None*1+0x5a47e4],edx",
            " mov m4[None+None*1+model_a.c::_left_engine_temperature],edx",
            "-mov m4[None+None*1+0x5a47c4],edx",
            "+mov m4[None+None*1+0x5a47d4],edx",
            " mov m4[None+None*1+model_a.c::_right_engine_temperature],edx",
            "-mov m4[None+None*1+0x5a479c],edx",
            "+mov m4[None+None*1+0x5a47a4],edx",
            " mov m4[None+None*1+model_a.c::_engine_temperature],edx",
            "-mov m4[None+None*1+0x5a47ac],edx",
            "+mov m4[None+None*1+0x5a47bc],edx",
            " mov m4[None+None*1+model_a.c::_engine_rpm_ss],edx",
            " mov m4[None+None*1+model_a.c::_engine_torque_ss],edx",
            "-mov m4[None+None*1+0x5a475c],edx",
            "+mov m4[None+None*1+0x5a4764],edx",
            " mov m4[None+None*1+model_a.c::_rotor_rpm_ss],edx",
            " mov m4[None+None*1+model_a.c::_left_engine_rpm],edx",
            " mov m4[None+None*1+model_a.c::_right_engine_rpm],edx",
            "@@ -116,7 +116,7 @@",
            " fstp m8[None+None*1+model_a.c::_Wt]",
            " mov m4[None+None*1+model_a.c::_wind_gust],edx",
            " mov ecx,0x40528000",
            "-mov m4[None+None*1+0x5a4754],eax",
            "+mov m4[None+None*1+0x5a475c],eax",
            " fxch st(0),st(2)",
            " call fchop::__CHP",
            " fxch st(0),st(1)",
            "@@ -130,10 +130,10 @@",
            " mov ecx,0x40590000",
            " mov edx,m4[esp+None*1+0xc]",
            " mov eax,m4[esp+None*1+0x10]",
            "-mov m4[None+None*1+0x5a476c],ecx",
            "+mov m4[None+None*1+0x5a4774],ecx",
            "+mov m4[None+None*1+0x5a478c],ecx",
            " mov m4[None+None*1+0x5a4784],ecx",
            "-mov m4[None+None*1+0x5a477c],ecx",
            "-mov m4[None+None*1+0x5a47ec],ecx",
            "+mov m4[None+None*1+0x5a47f4],ecx",
            " call model_a.c::get_relative_ground_height_",
            " mov edx,eax",
            " sar edx,0x1f",
            "@@ -200,19 +200,19 @@",
            " mov m4[None+None*1+model.c::_model_pitch],edx",
            " mov m4[None+None*1+model.c::_model_roll],edx",
            " mov m4[None+None*1+model_a.c::_psidot],edx",
            "+mov m4[None+None*1+0x5a483c],edx",
            "+mov m4[None+None*1+model_a.c::_thetadot],edx",
            "+mov m4[None+None*1+0x5a4844],edx",
            "+mov m4[None+None*1+model_a.c::_phidot],edx",
            "+mov m4[None+None*1+0x5a487c],edx",
            "+mov m4[None+None*1+model_a.c::_rho],edx",
            "+mov m4[None+None*1+0x5a484c],edx",
            "+mov m4[None+None*1+model_a.c::_rdem],edx",
            "+mov m4[None+None*1+0x5a481c],edx",
            "+mov m4[None+None*1+model_a.c::_qdem],edx",
            "+mov m4[None+None*1+0x5a4824],edx",
            "+mov m4[None+None*1+model_a.c::_pdem],edx",
            " mov m4[None+None*1+0x5a482c],edx",
            "-mov m4[None+None*1+model_a.c::_thetadot],edx",
            "-mov m4[None+None*1+0x5a4834],edx",
            "-mov m4[None+None*1+model_a.c::_phidot],edx",
            "-mov m4[None+None*1+0x5a4874],edx",
            "-mov m4[None+None*1+model_a.c::_rho],edx",
            "-mov m4[None+None*1+0x5a483c],edx",
            "-mov m4[None+None*1+model_a.c::_rdem],edx",
            "-mov m4[None+None*1+0x5a4814],edx",
            "-mov m4[None+None*1+model_a.c::_qdem],edx",
            "-mov m4[None+None*1+0x5a481c],edx",
            "-mov m4[None+None*1+model_a.c::_pdem],edx",
            "-mov m4[None+None*1+0x5a48a4],edx",
            " fxch st(0),st(2)",
            " fstp m8[None+None*1+model_a.c::_phi]",
            " fxch st(0),st(2)",
            "@@ -231,7 +231,7 @@",
            " mov edx,0x3fb6fa7f",
            " mov m4[None+None*1+model.c::_apache_landed],ecx",
            " mov m4[None+None*1+model_a.c::_landing_question_asked],ecx",
            "-mov m4[None+None*1+0x5a47bc],edi",
            "+mov m4[None+None*1+0x5a47cc],edi",
            " mov m4[None+None*1+model_a.c::_theta],eax",
            " mov m4[None+None*1+model_a.c::_rotor_sound],ebx",
            " mov ecx,0x38e38e5",
            "@@ -245,9 +245,9 @@",
            " xor esi,esi",
            " mov edi,0x406dc000",
            " mov m4[None+None*1+model_a.c::_z],esi",
            "-mov m4[None+None*1+0x5a485c],edx",
            "+mov m4[None+None*1+0x5a47ac],edx",
            " mov m4[None+None*1+model_a.c::_collective],esi",
            "-mov m4[None+None*1+0x5a47bc],ebx",
            "+mov m4[None+None*1+0x5a47cc],ebx",
            " mov m4[None+None*1+model_a.c::_u],esi",
            " mov m4[None+None*1+constant:00000000],edi",
            " push model_a.c::_mat_attitude",
            "@@ -374,15 +374,15 @@",
            " mov m4[None+None*1+model_a.c::_p],esi",
            " mov m4[None+None*1+0x5a48cc],esi",
            " mov m4[None+None*1+model_a.c::_q],esi",
            "-mov m4[None+None*1+0x5a4844],esi",
            "+mov m4[None+None*1+0x5a4854],esi",
            " mov m4[None+None*1+model_a.c::_r],esi",
            "-mov m4[None+None*1+0x5a484c],esi",
            "+mov m4[None+None*1+0x5a485c],esi",
            " mov m4[None+None*1+model_a.c::_pmax],esi",
            "-mov m4[None+None*1+0x5a480c],esi",
            "+mov m4[None+None*1+0x5a4814],esi",
            " mov m4[None+None*1+model_a.c::_rmax],esi",
            "+mov m4[None+None*1+0x5a4804],esi",
            "+mov m4[None+None*1+model_a.c::_qmax],esi",
            " mov m4[None+None*1+0x5a47fc],esi",
            "-mov m4[None+None*1+model_a.c::_qmax],esi",
            "-mov m4[None+None*1+0x5a47f4],esi",
            " mov m4[None+None*1+model_a.c::_Tz],esi",
            " mov m4[None+None*1+constant:00804b40],esi",
            " mov m4[None+None*1+model_a.c::_Tzw],esi",
            "@@ -393,15 +393,15 @@",
            " mov m4[None+None*1+constant:00000000],edi",
            " mov m4[None+None*1+model_a.c::_zdotT],edi",
            " mov m4[None+None*1+model_a.c::_zdotss],edi",
            "-mov m4[None+None*1+0x5a47d4],edi",
            "+mov m4[None+None*1+0x5a47dc],edi",
            " mov m4[None+None*1+model_a.c::_zdotT_engine],edi",
            " mov m4[None+None*1+0x5a494c],edi",
            " mov m4[None+None*1+model_a.c::_udot],edi",
            "+mov m4[None+None*1+0x5a4874],edi",
            "+mov m4[None+None*1+model_a.c::_vdot],edi",
            " mov m4[None+None*1+0x5a486c],edi",
            "-mov m4[None+None*1+model_a.c::_vdot],edi",
            "+mov m4[None+None*1+model_a.c::_v],edi",
            " mov m4[None+None*1+0x5a4864],edi",
            "-mov m4[None+None*1+model_a.c::_v],edi",
            "-mov m4[None+None*1+0x5a4854],edi",
            " mov m4[None+None*1+model_a.c::_beta],edi",
            " mov m4[None+None*1+0x5a48ac],edi",
            " mov m4[None+None*1+model_a.c::_eta],edi",
            "@@ -420,22 +420,22 @@",
            " mov m4[None+None*1+model_a.c::_timer],edi",
            " mov m4[None+None*1+constant:00000000],edi",
            " mov m4[None+None*1+model_a.c::_turnrate],edi",
            "-mov m4[None+None*1+0x5a4804],edi",
            "+mov m4[None+None*1+0x5a480c],edi",
            " mov m4[None+None*1+model_a.c::_sin_phi],edi",
            " mov m4[None+None*1+0x5a4664],edi",
            " mov m4[None+None*1+model_a.c::_cos_phi],edi",
            " mov m4[None+None*1+0x5a4674],ebx",
            " mov ebx,model_a.c::_dx",
            " mov edx,0xb",
            "-mov m4[None+None*1+0x5a489c],esi",
            "+mov m4[None+None*1+0x5a48a4],esi",
            " fxch st(0),st(2)",
            " fstp m8[None+None*1+model_a.c::_cos_theta]",
            " xor eax,eax",
            " fstp m8[None+None*1+model_a.c::_sin_theta]",
            " mov m4[None+None*1+model_a.c::_my_roll],eax",
            "-mov m4[None+None*1+0x5a487c],eax",
            "+mov m4[None+None*1+0x5a4884],eax",
            " mov m4[None+None*1+model_a.c::_roll_decay_ss],eax",
            "-mov m4[None+None*1+0x5a4884],eax",
            "+mov m4[None+None*1+0x5a488c],eax",
            " mov m4[None+None*1+model_a.c::_roll_decay],eax",
            " mov m4[None+None*1+0x5a48e4],eax",
            " mov m4[None+None*1+model_a.c::_delta_fuel],eax",
            "@@ -661,7 +661,7 @@",
            " mov m4[None+None*1+model_a.c::_landing_question_asked],edx",
            " mov m4[None+None*1+model_a.c::_collective],edx",
            " mov m4[None+None*1+model.c::_apache_landed],edx",
            "-mov m4[None+None*1+0x5a47bc],0x40524000",
            "+mov m4[None+None*1+0x5a47cc],0x40524000",
            " jmp local:239",
            " xor ecx,ecx",
            " mov m4[None+None*1+model_a.c::_u],ecx"
          ]
        },
        {
          "symbol": "model_a.c::model_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43de6c",
          "second": "0x43decc",
          "first_instruction_count": 725,
          "second_instruction_count": 725,
          "diff": [
            "--- 0x43de6c",
            "+++ 0x43decc",
            "@@ -232,7 +232,7 @@",
            " ja local:235",
            " xor edi,edi",
            " mov m4[None+None*1+model_a.c::_v],edi",
            "-mov m4[None+None*1+0x5a4854],edi",
            "+mov m4[None+None*1+0x5a4864],edi",
            " mov bl,m1[None+None*1+0x6748c6]",
            " test bl,0x10",
            " jne local:462",
            "@@ -254,7 +254,7 @@",
            " mov eax,m4[esp+None*1+0x30]",
            " mov m4[None+None*1+model_a.c::_z],eax",
            " mov eax,m4[esp+None*1+0x34]",
            "-mov m4[None+None*1+0x5a485c],eax",
            "+mov m4[None+None*1+0x5a47ac],eax",
            " fld m8[None+None*1+model_a.c::_z]",
            " fcomp m8[esp+None*1+0x30]",
            " fnstsw ax",
            "@@ -301,7 +301,7 @@",
            " xor edi,edi",
            " mov eax,0x1",
            " mov m4[None+None*1+model_a.c::_vdot],edi",
            "-mov m4[None+None*1+0x5a4864],edi",
            "+mov m4[None+None*1+0x5a486c],edi",
            " call debug.c::breakout_",
            " fld m8[None+None*1+model_a.c::_vdot]",
            " fmul m8[None+None*1+gamedata.c::_frame_time]",
            "@@ -318,7 +318,7 @@",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[None+None*1+model_a.c::_v],eax",
            " mov eax,m4[esp+None*1+0x4]",
            "-mov m4[None+None*1+0x5a4854],eax",
            "+mov m4[None+None*1+0x5a4864],eax",
            " fild m4[None+None*1+model_a.c::_Tzw]",
            " fcomp m8[None+None*1+model_a.c::_rotor_torque]",
            " fnstsw ax",
            "@@ -471,11 +471,11 @@",
            " mov m4[None+None*1+model_a.c::_u],edx",
            " mov m4[None+None*1+constant:00000000],edx",
            " mov m4[None+None*1+model_a.c::_udot],edx",
            "+mov m4[None+None*1+0x5a4874],edx",
            "+mov m4[None+None*1+model_a.c::_vdot],edx",
            " mov m4[None+None*1+0x5a486c],edx",
            "-mov m4[None+None*1+model_a.c::_vdot],edx",
            "+mov m4[None+None*1+model_a.c::_v],edx",
            " mov m4[None+None*1+0x5a4864],edx",
            "-mov m4[None+None*1+model_a.c::_v],edx",
            "-mov m4[None+None*1+0x5a4854],edx",
            " jmp local:257",
            " fld m8[esp+None*1+0x8]",
            " fmul m8[None+None*1+model_a.c::_beta]",
            "@@ -687,7 +687,7 @@",
            " jmp local:317",
            " mov eax,m4[None+None*1+model_a.c::_v]",
            " mov m4[esp+None*1+0x40],eax",
            "-mov eax,m4[None+None*1+0x5a4854]",
            "+mov eax,m4[None+None*1+0x5a4864]",
            " mov m4[esp+None*1+0x44],eax",
            " mov eax,m4[esp+None*1+0x40]",
            " mov m4[esp+None*1+0x0],eax"
          ]
        },
        {
          "symbol": "model_a.c::model_faults_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43f098",
          "second": "0x43f0f8",
          "first_instruction_count": 315,
          "second_instruction_count": 315,
          "diff": [
            "--- 0x43f098",
            "+++ 0x43f0f8",
            "@@ -72,7 +72,7 @@",
            " mov m4[None+None*1+model_a.c::_left_engine_temperature],edx",
            " mov edx,m4[esp+None*1+0x4]",
            " fldz ",
            "-mov m4[None+None*1+0x5a47c4],edx",
            "+mov m4[None+None*1+0x5a47d4],edx",
            " fcomp m8[None+None*1+model_a.c::_right_engine_temperature]",
            " fnstsw ax",
            " sahf ",
            "@@ -84,7 +84,7 @@",
            " mov m4[None+None*1+model_a.c::_right_engine_temperature],edx",
            " mov edx,m4[esp+None*1+0x1c]",
            " mov ah,m1[None+None*1+0x6748c6]",
            "-mov m4[None+None*1+0x5a479c],edx",
            "+mov m4[None+None*1+0x5a47a4],edx",
            " test ah,0x10",
            " je local:244",
            " test ah,0x20",
            "@@ -111,7 +111,7 @@",
            " mov m4[None+None*1+model_a.c::_rotor_sound],ecx",
            " xor ebx,ebx",
            " mov m4[None+None*1+model_a.c::_engine_rpm_ss],ebx",
            "-mov m4[None+None*1+0x5a476c],ebx",
            "+mov m4[None+None*1+0x5a4774],ebx",
            " cmp m4[None+None*1+model_a.c::_over_torque_flag],0x0",
            " je local:173",
            " fld m8[None+None*1+model_a.c::_engine_torque_ss]",
            "@@ -183,7 +183,7 @@",
            " mov m4[None+None*1+model_a.c::_engine_timer],edx",
            " mov edx,m4[esp+None*1+0x24]",
            " fld m8[esp+None*1+0x20]",
            "-mov m4[None+None*1+0x5a4764],edx",
            "+mov m4[None+None*1+0x5a476c],edx",
            " fcomp m8[None+None*1+constant:000000000040af40]",
            " fnstsw ax",
            " sahf ",
            "@@ -217,7 +217,7 @@",
            " jmp local:69",
            " mov edx,m4[None+None*1+model_a.c::_left_engine_temperature]",
            " mov m4[esp+None*1+0x10],edx",
            "-mov edx,m4[None+None*1+0x5a47c4]",
            "+mov edx,m4[None+None*1+0x5a47d4]",
            " mov m4[esp+None*1+0x14],edx",
            " mov edx,m4[esp+None*1+0x10]",
            " mov m4[esp+None*1+0x0],edx",
            "@@ -239,7 +239,7 @@",
            " jmp local:82",
            " mov edx,m4[None+None*1+model_a.c::_right_engine_temperature]",
            " mov m4[esp+None*1+0x8],edx",
            "-mov edx,m4[None+None*1+0x5a479c]",
            "+mov edx,m4[None+None*1+0x5a47a4]",
            " mov m4[esp+None*1+0xc],edx",
            " jmp local:234",
            " mov dh,m1[None+None*1+0x6748c6]",
            "@@ -293,7 +293,7 @@",
            " jmp local:181",
            " mov edx,m4[None+None*1+model_a.c::_engine_timer]",
            " mov m4[esp+None*1+0x28],edx",
            "-mov edx,m4[None+None*1+0x5a4764]",
            "+mov edx,m4[None+None*1+0x5a476c]",
            " jmp local:287",
            " mov ebx,0x7d0",
            " mov edx,0x3",
            "@@ -303,7 +303,7 @@",
            " mov bh,m1[None+None*1+0x6748c6]",
            " mov m4[None+None*1+model_a.c::_engine_timer],esi",
            " or bh,0xc0",
            "-mov m4[None+None*1+0x5a4764],esi",
            "+mov m4[None+None*1+0x5a476c],esi",
            " mov m1[None+None*1+0x6748c6],bh",
            " mov esp,ebp",
            " pop ebp"
          ]
        },
        {
          "symbol": "model_a.c::set_apache_fuel_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43eb80",
          "second": "0x43ebe0",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x43eb80",
            "+++ 0x43ebe0",
            "@@ -9,7 +9,7 @@",
            " fadd m8[esp+None*1+0x10]",
            " mov eax,m4[esp+None*1+0x14]",
            " fstp m8[None+None*1+model_a.c::_Wt]",
            "-mov m4[None+None*1+0x5a4774],eax",
            "+mov m4[None+None*1+0x5a477c],eax",
            " fcomp m8[esp+None*1+0x10]",
            " fnstsw ax",
            " sahf "
          ]
        },
        {
          "symbol": "model_a.c::set_apache_model_collective_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43f8d4",
          "second": "0x43f934",
          "first_instruction_count": 139,
          "second_instruction_count": 139,
          "diff": [
            "--- 0x43f8d4",
            "+++ 0x43f934",
            "@@ -19,7 +19,7 @@",
            " xor eax,eax",
            " mov edx,0x40240000",
            " mov m4[None+None*1+model_a.c::_collective],eax",
            "-mov m4[None+None*1+0x5a47bc],edx",
            "+mov m4[None+None*1+0x5a47cc],edx",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -41,7 +41,7 @@",
            " xor edi,edi",
            " mov ebp,0x40340000",
            " mov m4[None+None*1+model_a.c::_collective],edi",
            "-mov m4[None+None*1+0x5a47bc],ebp",
            "+mov m4[None+None*1+0x5a47cc],ebp",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -53,7 +53,7 @@",
            " xor ebx,ebx",
            " mov esi,0x403e0000",
            " mov m4[None+None*1+model_a.c::_collective],ebx",
            "-mov m4[None+None*1+0x5a47bc],esi",
            "+mov m4[None+None*1+0x5a47cc],esi",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -65,7 +65,7 @@",
            " xor edx,edx",
            " mov ecx,0x40440000",
            " mov m4[None+None*1+model_a.c::_collective],edx",
            "-mov m4[None+None*1+0x5a47bc],ecx",
            "+mov m4[None+None*1+0x5a47cc],ecx",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -77,7 +77,7 @@",
            " xor ebp,ebp",
            " mov eax,0x40490000",
            " mov m4[None+None*1+model_a.c::_collective],ebp",
            "-mov m4[None+None*1+0x5a47bc],eax",
            "+mov m4[None+None*1+0x5a47cc],eax",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -89,7 +89,7 @@",
            " xor esi,esi",
            " mov edi,0x404e0000",
            " mov m4[None+None*1+model_a.c::_collective],esi",
            "-mov m4[None+None*1+0x5a47bc],edi",
            "+mov m4[None+None*1+0x5a47cc],edi",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -101,7 +101,7 @@",
            " xor ecx,ecx",
            " mov ebx,0x40518000",
            " mov m4[None+None*1+model_a.c::_collective],ecx",
            "-mov m4[None+None*1+0x5a47bc],ebx",
            "+mov m4[None+None*1+0x5a47cc],ebx",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -116,7 +116,7 @@",
            " xor edi,edi",
            " mov ebp,0x40568000",
            " mov m4[None+None*1+model_a.c::_collective],edi",
            "-mov m4[None+None*1+0x5a47bc],ebp",
            "+mov m4[None+None*1+0x5a47cc],ebp",
            " mov eax,0x1",
            " pop ebx",
            " pop esi",
            "@@ -128,7 +128,7 @@",
            " xor ebx,ebx",
            " mov esi,0x40590000",
            " mov m4[None+None*1+model_a.c::_collective],ebx",
            "-mov m4[None+None*1+0x5a47bc],esi",
            "+mov m4[None+None*1+0x5a47cc],esi",
            " mov eax,0x1",
            " pop ebx",
            " pop esi"
          ]
        },
        {
          "symbol": "model_a.c::update_apache_flight_model_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43c5a0",
          "second": "0x43c600",
          "first_instruction_count": 729,
          "second_instruction_count": 729,
          "diff": [
            "--- 0x43c5a0",
            "+++ 0x43c600",
            "@@ -214,7 +214,7 @@",
            " mov m4[None+None*1+model_a.c::_z],eax",
            " mov eax,m4[esp+None*1+0x14]",
            " fldz ",
            "-mov m4[None+None*1+0x5a485c],eax",
            "+mov m4[None+None*1+0x5a47ac],eax",
            " fcomp m8[None+None*1+model_a.c::_x]",
            " fnstsw ax",
            " sahf ",
            "@@ -265,7 +265,7 @@",
            " fnstsw ax",
            " sahf ",
            " ja local:284",
            "-mov edx,m4[None+None*1+0x5a489c]",
            "+mov edx,m4[None+None*1+0x5a48a4]",
            " mov ecx,m4[None+None*1+model_a.c::_dz]",
            " test edx,0x7fffffff",
            " jne local:273",
            "@@ -609,7 +609,7 @@",
            " jmp local:212",
            " mov eax,m4[None+None*1+model_a.c::_z]",
            " mov m4[esp+None*1+0x38],eax",
            "-mov eax,m4[None+None*1+0x5a485c]",
            "+mov eax,m4[None+None*1+0x5a47ac]",
            " mov m4[esp+None*1+0x3c],eax",
            " jmp local:604",
            " fld m8[None+None*1+model_a.c::_x]"
          ]
        },
        {
          "symbol": "model_a.c::update_control_rates_",
          "source": "E:\\apache\\source\\models\\model_a.c",
          "first": "0x43d230",
          "second": "0x43d290",
          "first_instruction_count": 738,
          "second_instruction_count": 738,
          "diff": [
            "--- 0x43d230",
            "+++ 0x43d290",
            "@@ -78,7 +78,7 @@",
            " mov m4[None+None*1+model_a.c::_collective],eax",
            " mov eax,m4[esp+None*1+0x1c]",
            " fld m8[None+None*1+model_a.c::_engine_torque]",
            "-mov m4[None+None*1+0x5a47bc],eax",
            "+mov m4[None+None*1+0x5a47cc],eax",
            " fcomp m8[None+None*1+constant:0000000000004940]",
            " fnstsw ax",
            " sahf ",
            "@@ -114,13 +114,13 @@",
            " mov m4[None+None*1+model_a.c::_p],edx",
            " mov m4[None+None*1+0x5a48cc],edx",
            " mov m4[None+None*1+model_a.c::_q],edx",
            "-mov m4[None+None*1+0x5a4844],edx",
            "+mov m4[None+None*1+0x5a4854],edx",
            " mov m4[None+None*1+model_a.c::_qdem],edx",
            "-mov m4[None+None*1+0x5a481c],edx",
            "+mov m4[None+None*1+0x5a4824],edx",
            " mov m4[None+None*1+model_a.c::_pdem],edx",
            "-mov m4[None+None*1+0x5a48a4],edx",
            "+mov m4[None+None*1+0x5a482c],edx",
            " mov m4[None+None*1+model_a.c::_r],edx",
            "-mov m4[None+None*1+0x5a484c],edx",
            "+mov m4[None+None*1+0x5a485c],edx",
            " fld m8[None+None*1+model_a.c::_z]",
            " fcomp m8[esp+None*1+0x8]",
            " fnstsw ax",
            "@@ -139,7 +139,7 @@",
            " mov edi,0x4ae74625",
            " mov eax,0x3fb65718",
            " mov m4[None+None*1+model_a.c::_rmax],edi",
            "-mov m4[None+None*1+0x5a47fc],eax",
            "+mov m4[None+None*1+0x5a4804],eax",
            " fld m8[None+None*1+model_a.c::_Jr]",
            " fchs ",
            " fmul m8[None+None*1+model_a.c::_rmax]",
            "@@ -171,7 +171,7 @@",
            " fnstsw ax",
            " sahf ",
            " ja local:174",
            "-xor m1[None+None*1+0x5a4807],0x80",
            "+xor m1[None+None*1+0x5a480f],0x80",
            " fld m8[None+None*1+model_a.c::_cos_phi]",
            " fld st(0)",
            " fabs ",
            "@@ -426,7 +426,7 @@",
            " jmp local:76",
            " mov eax,m4[None+None*1+model_a.c::_collective]",
            " mov m4[esp+None*1+0x0],eax",
            "-mov eax,m4[None+None*1+0x5a47bc]",
            "+mov eax,m4[None+None*1+0x5a47cc]",
            " mov m4[esp+None*1+0x4],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x18],eax",
            "@@ -625,7 +625,7 @@",
            " jmp local:142",
            " xor ebx,ebx",
            " mov m4[None+None*1+model_a.c::_rmax],ebx",
            "-mov m4[None+None*1+0x5a47fc],ebx",
            "+mov m4[None+None*1+0x5a4804],ebx",
            " jmp local:142",
            " fld m8[None+None*1+model_a.c::_u]",
            " fcomp m8[None+None*1+constant:0000000000003140]",
            "@@ -641,7 +641,7 @@",
            " jmp local:162",
            " xor edx,edx",
            " mov m4[None+None*1+model_a.c::_turnrate],edx",
            "-mov m4[None+None*1+0x5a4804],edx",
            "+mov m4[None+None*1+0x5a480c],edx",
            " jmp local:163",
            " fldz ",
            " fcomp m8[None+None*1+model_a.c::_psi]",
            "@@ -729,7 +729,7 @@",
            " mov eax,m4[None+None*1+model_a.c::_phi]",
            " mov m4[None+None*1+model_a.c::_my_roll],eax",
            " mov eax,m4[None+None*1+constant:00000000]",
            "-mov m4[None+None*1+0x5a487c],eax",
            "+mov m4[None+None*1+0x5a4884],eax",
            " jmp local:364",
            " mov edx,0x33333333",
            " mov ecx,0x3fd33333"
          ]
        },
        {
          "symbol": "modemprf.c::do_preamble_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40b430",
          "second": "0x40b490",
          "first_instruction_count": 29,
          "second_instruction_count": 29,
          "diff": [
            "--- 0x40b430",
            "+++ 0x40b490",
            "@@ -13,16 +13,16 @@",
            " ret ",
            " mov m4[None+None*1+modemprf.c::_player_game_mode],0x2",
            " jmp local:4",
            "-mov eax,m4[None+None*1+constant:78814d00]",
            "+mov eax,m4[None+None*1+constant:94814d00]",
            " call modemprf.c::add_modem_message_line_",
            "-mov eax,m4[None+None*1+constant:dc814d00]",
            "+mov eax,m4[None+None*1+constant:f8814d00]",
            " call modemprf.c::add_modem_message_line_",
            " call modemprf.c::hang_up_the_phone_",
            " pop ebx",
            " ret ",
            "-mov eax,m4[None+None*1+constant:bc814d00]",
            "+mov eax,m4[None+None*1+constant:d8814d00]",
            " call modemprf.c::add_modem_message_line_",
            "-mov eax,m4[None+None*1+constant:dc814d00]",
            "+mov eax,m4[None+None*1+constant:f8814d00]",
            " call modemprf.c::add_modem_message_line_",
            " call modemprf.c::hang_up_the_phone_",
            " pop ebx"
          ]
        },
        {
          "symbol": "modemprf.c::do_the_necessary_checks_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40fecc",
          "second": "0x40ff2c",
          "first_instruction_count": 54,
          "second_instruction_count": 54,
          "diff": [
            "--- 0x40fecc",
            "+++ 0x40ff2c",
            "@@ -28,9 +28,9 @@",
            " jbe local:38",
            " cmp edx,0x102",
            " jne local:46",
            "-mov eax,m4[None+None*1+constant:78814d00]",
            "+mov eax,m4[None+None*1+constant:94814d00]",
            " call modemprf.c::add_modem_message_line_",
            "-mov eax,m4[None+None*1+constant:dc814d00]",
            "+mov eax,m4[None+None*1+constant:f8814d00]",
            " call modemprf.c::add_modem_message_line_",
            " call modemprf.c::hang_up_the_phone_",
            " mov eax,0x1",
            "@@ -38,7 +38,7 @@",
            " ret ",
            " mov eax,text:'No response - Timed out'",
            " call modemprf.c::add_modem_message_line_",
            "-mov eax,m4[None+None*1+constant:dc814d00]",
            "+mov eax,m4[None+None*1+constant:f8814d00]",
            " call modemprf.c::add_modem_message_line_",
            " call modemprf.c::hang_up_the_phone_",
            " mov eax,0x1"
          ]
        },
        {
          "symbol": "modemprf.c::print_uart_error_type_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40f7b4",
          "second": "0x40f814",
          "first_instruction_count": 33,
          "second_instruction_count": 33,
          "diff": [
            "--- 0x40f7b4",
            "+++ 0x40f814",
            "@@ -1,4 +1,4 @@",
            "-mov eax,m4[None+None*1+constant:1c824d00]",
            "+mov eax,m4[None+None*1+constant:38824d00]",
            " call modemprf.c::add_modem_message_line_",
            " call sercomms.c::get_serial_comms_error_flags_",
            " test al,0x2"
          ]
        },
        {
          "symbol": "modemprf.c::report_modem_response_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40f6fc",
          "second": "0x40f75c",
          "first_instruction_count": 73,
          "second_instruction_count": 73,
          "diff": [
            "--- 0x40f6fc",
            "+++ 0x40f75c",
            "@@ -42,10 +42,10 @@",
            " je local:19",
            " mov eax,m4[edx+None*1+modemprf.c::_modem_messages]",
            " jmp local:16",
            "-mov eax,m4[None+None*1+constant:bc814d00]",
            "+mov eax,m4[None+None*1+constant:d8814d00]",
            " call modemprf.c::add_modem_message_line_",
            " jmp local:25",
            "-mov eax,m4[None+None*1+constant:08824d00]",
            "+mov eax,m4[None+None*1+constant:24824d00]",
            " call modemprf.c::add_modem_message_line_",
            " add esp,0x4",
            " pop ebp",
            "@@ -63,7 +63,7 @@",
            " pop esi",
            " pop ecx",
            " ret ",
            "-mov eax,m4[None+None*1+constant:30824d00]",
            "+mov eax,m4[None+None*1+constant:4c824d00]",
            " call modemprf.c::add_modem_message_line_",
            " add esp,0x4",
            " pop ebp"
          ]
        },
        {
          "symbol": "modemprf.c::test_for_and_abort_if_no_modem_data_carrier_",
          "source": "E:\\apache\\source\\menus\\modemprf.c",
          "first": "0x40fe28",
          "second": "0x40fe88",
          "first_instruction_count": 12,
          "second_instruction_count": 12,
          "diff": [
            "--- 0x40fe28",
            "+++ 0x40fe88",
            "@@ -3,9 +3,9 @@",
            " je local:5",
            " mov eax,0x1",
            " ret ",
            "-mov eax,m4[None+None*1+constant:78814d00]",
            "+mov eax,m4[None+None*1+constant:94814d00]",
            " call modemprf.c::add_modem_message_line_",
            "-mov eax,m4[None+None*1+constant:dc814d00]",
            "+mov eax,m4[None+None*1+constant:f8814d00]",
            " call modemprf.c::add_modem_message_line_",
            " call modemprf.c::hang_up_the_phone_",
            " xor eax,eax"
          ]
        },
        {
          "symbol": "mul_chat.c::parse_multi_message_command_",
          "source": "E:\\apache\\source\\apnet\\mul_chat.c",
          "first": "0x437518",
          "second": "0x437578",
          "first_instruction_count": 100,
          "second_instruction_count": 100,
          "diff": [
            "--- 0x437518",
            "+++ 0x437578",
            "@@ -83,7 +83,7 @@",
            " lea ebx,m4[esp+None*1+0x14]",
            " lea edx,m4[esp+None*1+0xa]",
            " mov eax,esp",
            "-call m4[edi+None*1+constant:b07b4300]",
            "+call m4[edi+None*1+constant:107c4300]",
            " jmp local:47",
            " mov eax,text:'Not enough arguments'",
            " call mul_chat.c::add_multi_message_"
          ]
        },
        {
          "symbol": "mul_comm.c::version_command_routine_",
          "source": "E:\\apache\\source\\apnet\\mul_comm.c",
          "first": "0x437a54",
          "second": "0x437ab4",
          "first_instruction_count": 26,
          "second_instruction_count": 26,
          "diff": [
            "--- 0x437a54",
            "+++ 0x437ab4",
            "@@ -3,11 +3,11 @@",
            " sub esp,0x88",
            " mov ecx,0x9",
            " lea edi,m4[esp+None*1+0x64]",
            "-push text:'16:55:28'",
            "+push text:'17:24:01'",
            " mov esi,mul_chat.c::parse_multi_message_command_+0x128",
            " mov edx,m4[None+None*1+gamedata.c::_global_version]",
            " mov eax,m4[None+None*1+gamedata.c::_product_language]",
            "-push text:'Jan 14 1998'",
            "+push text:'Jun 13 1998'",
            " rep movsd m4[edi+None*1+0x0],m4[esi+None*1+0x0]",
            " push edx",
            " mov ecx,m4[esp+eax*4+0x70]"
          ]
        },
        {
          "symbol": "music.c::save_and_stop_music_",
          "source": "E:\\apache\\source\\sound\\music.c",
          "first": "0x446490",
          "second": "0x4464f0",
          "first_instruction_count": 44,
          "second_instruction_count": 44,
          "diff": [
            "--- 0x446490",
            "+++ 0x4464f0",
            "@@ -32,7 +32,7 @@",
            " xor ecx,ecx",
            " mov m4[eax+None*1+constant:00000000],ecx",
            " mov m4[eax+None*1+constant:00000000],ecx",
            "-mov esi,m4[eax+None*1+constant:b8fe4d00]",
            "+mov esi,m4[eax+None*1+constant:d4fe4d00]",
            " add eax,0x28",
            " test esi,esi",
            " jne local:31"
          ]
        },
        {
          "symbol": "palette.c::update_palette_registers_",
          "source": "E:\\library\\graphics\\palette.c",
          "first": "0x46eec0",
          "second": "0x46f000",
          "first_instruction_count": 372,
          "second_instruction_count": 379,
          "diff": [
            "--- 0x46eec0",
            "+++ 0x46f000",
            "@@ -58,96 +58,97 @@",
            " and cl,0x3",
            " repne movsb m1[edi+None*1+0x0],m1[esi+None*1+0x0]",
            " pop edi",
            "-mov edx,m4[None+None*1+palette.c::_root]",
            "-mov m4[esp+None*1+0x28],edx",
            "-test edx,edx",
            "-je local:253",
            "-mov edx,m4[esp+None*1+0x28]",
            "-cmp m4[edx+None*1+0x18],0x0",
            "-jle local:248",
            "-mov edx,m4[edx+None*1+0xc]",
            "-mov m4[esp+None*1+0x1c],edx",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov edx,m4[edx+None*1+0x10]",
            "-mov m4[esp+None*1+0x4],edx",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov edx,m4[edx+None*1+0x1c]",
            "-mov m4[esp+None*1+0x2c],edx",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov edx,m4[edx+None*1+0x20]",
            "-mov ecx,m4[esp+None*1+0x28]",
            "+mov eax,m4[None+None*1+palette.c::_root]",
            "+mov m4[esp+None*1+0x24],eax",
            "+test eax,eax",
            "+je local:255",
            "+mov eax,m4[esp+None*1+0x24]",
            "+cmp m4[eax+None*1+0x18],0x0",
            "+jle local:250",
            "+mov eax,m4[eax+None*1+0xc]",
            "+mov m4[esp+None*1+0x48],eax",
            "+mov eax,m4[esp+None*1+0x24]",
            "+mov eax,m4[eax+None*1+0x10]",
            "+mov m4[esp+None*1+0x4],eax",
            "+mov eax,m4[esp+None*1+0x24]",
            "+mov eax,m4[eax+None*1+0x1c]",
            "+mov m4[esp+None*1+0x28],eax",
            "+mov eax,m4[esp+None*1+0x24]",
            "+mov ecx,m4[esp+None*1+0x24]",
            "+mov eax,m4[eax+None*1+0x20]",
            "+mov edx,m4[esp+None*1+0x24]",
            "+mov m4[esp+None*1+0x30],eax",
            "+mov eax,m4[esp+None*1+0x24]",
            "+mov ecx,m4[ecx+None*1+0x18]",
            "+mov edi,m4[edx+None*1+0x0]",
            "+mov eax,m4[eax+None*1+0x24]",
            "+mov ebx,m4[esp+None*1+0x48]",
            "+mov m4[esp+None*1+0x2c],eax",
            "+mov eax,m4[esp+None*1+0x48]",
            "+lea ebx,m4[ebx+ebx*2+0x0]",
            "+shl eax,0x2",
            "+test edi,edi",
            "+jne local:293",
            "+mov m4[esp+None*1+0x44],edi",
            "+cmp m4[esp+None*1+0x4],0x0",
            "+jle local:217",
            "+mov edx,m4[esp+None*1+0x48]",
            "+add edx,edx",
            "+mov m4[esp+None*1+0x3c],eax",
            " mov m4[esp+None*1+0x34],edx",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov ecx,m4[ecx+None*1+0x18]",
            "-mov edx,m4[edx+None*1+0x24]",
            "-mov ebx,m4[esp+None*1+0x1c]",
            "-mov m4[esp+None*1+0x30],edx",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov esi,m4[esp+None*1+0x1c]",
            "-lea ebx,m4[ebx+ebx*2+0x0]",
            "-mov edi,m4[edx+None*1+0x0]",
            "-shl esi,0x2",
            "-test edi,edi",
            "-jne local:289",
            "-mov eax,m4[esp+None*1+0x4]",
            "-mov m4[esp+None*1+0x18],edi",
            "-test eax,eax",
            "-jle local:215",
            "-mov edx,m4[esp+None*1+0x1c]",
            "-add edx,edx",
            "-mov m4[esp+None*1+0x40],esi",
            "-mov m4[esp+None*1+0x38],edx",
            "-xor edx,edx",
            "-mov dl,m1[ebx+None*1+palette.c::_modified_rgb_values]",
            "+mov edi,m4[esp+None*1+0x28]",
            "+xor eax,eax",
            "+xor edx,edx",
            "+mov al,m1[ebx+None*1+palette.c::_modified_rgb_values]",
            "+mov dl,m1[ebx+None*1+0x707492]",
            "+shl eax,0x10",
            " shl edx,0x10",
            "-mov m4[esp+None*1+0x10],edx",
            "-xor edx,edx",
            "-mov dl,m1[ebx+None*1+0x707491]",
            "-shl edx,0x10",
            "-mov edi,m4[esp+None*1+0x10]",
            "-mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[esp+None*1+0x2c]",
            "-sub edx,edi",
            "-mov m4[esp+None*1+0x24],edx",
            "-movzx esi,m1[ebx+None*1+0x707492]",
            "-mov eax,m4[esp+None*1+0x24]",
            "-mov edx,ecx",
            "-mov edi,m4[esp+None*1+0x34]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-sar edx,0x10",
            "-mov eax,m4[esp+None*1+0x14]",
            "+mov m4[esp+None*1+0x14],eax",
            "+mov m4[esp+None*1+0x20],edx",
            "+xor eax,eax",
            "+mov esi,m4[esp+None*1+0x14]",
            "+mov al,m1[ebx+None*1+0x707491]",
            "+mov edx,ecx",
            "+shl eax,0x10",
            "+sub edi,esi",
            "+mov m4[esp+None*1+0x18],eax",
            "+mov eax,edi",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+sar edx,0x10",
            "+mov esi,m4[esp+None*1+0x2c]",
            " mov m4[esp+None*1+0x4c],edx",
            "-sub edi,eax",
            "-fild m4[esp+None*1+0x4c]",
            "-mov edx,ecx",
            "+mov eax,m4[esp+None*1+0x30]",
            "+fild m4[esp+None*1+0x4c]",
            "+mov edx,m4[esp+None*1+0x18]",
            " fadd m8[None+None*1+palette.c::_tmp_average_rgb_values]",
            "+sub eax,edx",
            "+fstp m8[None+None*1+palette.c::_tmp_average_rgb_values]",
            "+mov edx,ecx",
            "+mov m4[esp+None*1+0x1c],eax",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+sar edx,0x10",
            "+mov eax,m4[esp+None*1+0x20]",
            "+mov m4[esp+None*1+0x4c],edx",
            "+sub esi,eax",
            "+fild m4[esp+None*1+0x4c]",
            "+mov edx,ecx",
            "+fadd m8[None+None*1+0x707c98]",
            "+mov eax,esi",
            "+fstp m8[None+None*1+0x707c98]",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            "+sar edx,0x10",
            " mov eax,edi",
            "-fstp m8[None+None*1+palette.c::_tmp_average_rgb_values]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-sar edx,0x10",
            "-shl esi,0x10",
            " mov m4[esp+None*1+0x4c],edx",
            "-mov edx,m4[esp+None*1+0x30]",
            "-sub edx,esi",
            "-fild m4[esp+None*1+0x4c]",
            "-mov m4[esp+None*1+0x20],edx",
            "-fadd m8[None+None*1+0x707c98]",
            "-mov eax,m4[esp+None*1+0x20]",
            "-mov edx,ecx",
            "-fstp m8[None+None*1+0x707c98]",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-sar edx,0x10",
            "-mov m4[esp+None*1+0x4c],edx",
            "-mov eax,m4[esp+None*1+0x24]",
            "+mov edi,m4[esp+None*1+0x14]",
            " fild m4[esp+None*1+0x4c]",
            " fadd m8[None+None*1+0x707ca0]",
            " mov edx,ecx",
            "@@ -156,26 +157,26 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-add m4[esp+None*1+0x10],edx",
            "-mov edx,ecx",
            "-mov eax,edi",
            "-imul edx",
            "-shld edx,eax,0x1",
            "-shl eax,0x2",
            "-adc edx,0x0",
            "-mov edi,m4[esp+None*1+0x14]",
            "-mov eax,m4[esp+None*1+0x20]",
            "+mov eax,m4[esp+None*1+0x1c]",
            " add edi,edx",
            " mov edx,ecx",
            " imul edx",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "+add m4[esp+None*1+0x18],edx",
            "+mov edx,ecx",
            "+mov eax,esi",
            "+mov esi,m4[esp+None*1+0x20]",
            "+imul edx",
            "+shld edx,eax,0x1",
            "+shl eax,0x2",
            "+adc edx,0x0",
            " add esi,edx",
            "-mov edx,m4[esp+None*1+0x10]",
            "+mov edx,edi",
            " sar edx,0x10",
            " mov m1[ebx+None*1+palette.c::_modified_rgb_values],dl",
            "-mov edx,edi",
            "+mov edx,m4[esp+None*1+0x18]",
            " sar edx,0x10",
            " mov m1[ebx+None*1+0x707491],dl",
            " mov edx,esi",
            "@@ -183,40 +184,41 @@",
            " mov m1[ebx+None*1+0x707492],dl",
            " xor edx,edx",
            " mov dl,m1[ebx+None*1+0x707491]",
            "+mov m4[esp+None*1+0x20],esi",
            " mov esi,edx",
            " xor edx,edx",
            " mov dl,m1[ebx+None*1+palette.c::_modified_rgb_values]",
            " shl esi,0x8",
            " shl edx,0x10",
            "+add ebx,0x3",
            "+or esi,edx",
            "+xor edx,edx",
            " mov m4[esp+None*1+0x14],edi",
            "-or esi,edx",
            "-xor edx,edx",
            "-mov edi,m4[esp+None*1+0x18]",
            "-mov dl,m1[ebx+None*1+0x707493]",
            "-inc edi",
            "+mov dl,m1[ebx+None*1+palette.c::_modified_rgb_values]",
            "+mov eax,m4[esp+None*1+0x3c]",
            " or edx,esi",
            "-mov esi,m4[esp+None*1+0x40]",
            "-add ebx,0x3",
            "-mov m4[esp+None*1+0x18],edi",
            "-mov m4[esi+None*1+palette.c::_ARGBColour],edx",
            "-mov edx,m4[esp+None*1+0x38]",
            "-xor esi,esi",
            "-lea eax,m4[edx+None*1+0x2]",
            "-mov m2[edx+None*1+palette.c::_RGB16Bit],si",
            "-mov edx,m4[esp+None*1+0x40]",
            "-mov esi,m4[esp+None*1+0x1c]",
            "-mov m4[esp+None*1+0x38],eax",
            "+mov esi,m4[esp+None*1+0x44]",
            "+mov m4[eax+None*1+palette.c::_ARGBColour],edx",
            "+mov eax,m4[esp+None*1+0x34]",
            "+inc esi",
            "+xor edx,edx",
            "+lea edi,m4[eax+None*1+0x2]",
            "+mov m4[esp+None*1+0x44],esi",
            "+mov m2[eax+None*1+palette.c::_RGB16Bit],dx",
            "+mov eax,m4[esp+None*1+0x3c]",
            "+mov edx,m4[esp+None*1+0x48]",
            "+mov m4[esp+None*1+0x34],edi",
            "+mov edi,m4[esp+None*1+0x4]",
            "+add eax,0x4",
            "+inc edx",
            "+mov m4[esp+None*1+0x3c],eax",
            "+mov m4[esp+None*1+0x48],edx",
            "+cmp esi,edi",
            "+jl local:98",
            " mov eax,m4[esp+None*1+0x4]",
            "-add edx,0x4",
            "-inc esi",
            "-mov m4[esp+None*1+0x40],edx",
            "-mov m4[esp+None*1+0x1c],esi",
            "-cmp edi,eax",
            "-jl local:99",
            "-mov edx,m4[esp+None*1+0x4]",
            "-test edx,edx",
            "-jle local:233",
            "-mov m4[esp+None*1+0x4c],edx",
            "+test eax,eax",
            "+jle local:235",
            "+mov m4[esp+None*1+0x4c],eax",
            " fld m8[None+None*1+palette.c::_tmp_average_rgb_values]",
            " fild m4[esp+None*1+0x4c]",
            " fld1 ",
            "@@ -246,14 +248,14 @@",
            " fstp m8[None+None*1+0x707cb8]",
            " fstp m8[None+None*1+palette.c::_average_rgb_values]",
            " inc m4[esp+None*1+0x0]",
            "-mov edx,m4[esp+None*1+0x28]",
            "-mov edx,m4[edx+None*1+0x28]",
            "-mov m4[esp+None*1+0x28],edx",
            "-test edx,edx",
            "+mov eax,m4[esp+None*1+0x24]",
            "+mov eax,m4[eax+None*1+0x28]",
            "+mov m4[esp+None*1+0x24],eax",
            "+test eax,eax",
            " jne local:64",
            " mov edx,m4[esp+None*1+0x0]",
            " test edx,edx",
            "-jle local:271",
            "+jle local:273",
            " mov m4[esp+None*1+0x4c],edx",
            " fld m8[None+None*1+palette.c::_average_rgb_values]",
            " fild m4[esp+None*1+0x4c]",
            "@@ -273,12 +275,14 @@",
            " mov eax,palette.c::_modified_rgb_values",
            " xor edx,edx",
            " call ddraw.c::set_windows_palette_registers_",
            "+cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "+je local:283",
            " mov ebx,0x100",
            " mov eax,palette.c::_modified_rgb_values",
            " xor edx,edx",
            "-xor ecx,ecx",
            " call fxinit.c::download_rgb_palette_",
            "-mov m4[None+None*1+palette.c::_palette_modified],ecx",
            "+xor ebx,ebx",
            "+mov m4[None+None*1+palette.c::_palette_modified],ebx",
            " mov esp,ebp",
            " pop ebp",
            " pop edi",
            "@@ -287,26 +291,29 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-xor eax,eax",
            "-mov edx,m4[esp+None*1+0x4]",
            "-mov m4[esp+None*1+0x44],eax",
            "-test edx,edx",
            "-jle local:247",
            "-mov m4[esp+None*1+0x48],ebx",
            "-mov m4[esp+None*1+0x3c],esi",
            "-mov ecx,m4[esp+None*1+0x48]",
            "-xor edx,edx",
            "+xor edx,edx",
            "+mov ecx,m4[esp+None*1+0x4]",
            "+mov m4[esp+None*1+0x40],edx",
            "+test ecx,ecx",
            "+jle local:249",
            "+mov m4[esp+None*1+0x10],ebx",
            "+mov m4[esp+None*1+0x38],eax",
            "+mov edx,m4[esp+None*1+0x10]",
            "+xor eax,eax",
            "+mov al,m1[edx+None*1+palette.c::_modified_rgb_values]",
            "+mov m4[esp+None*1+0x14],eax",
            "+xor eax,eax",
            " mov edi,0xe147ae1",
            "-mov dl,m1[ecx+None*1+palette.c::_modified_rgb_values]",
            "-movzx esi,m1[ecx+None*1+0x707492]",
            "-mov m4[esp+None*1+0x10],edx",
            "-xor edx,edx",
            "-mov eax,m4[esp+None*1+0x10]",
            "-mov dl,m1[ecx+None*1+0x707491]",
            "+mov al,m1[edx+None*1+0x707491]",
            " mov ecx,0x4b851eb7",
            "-mov m4[esp+None*1+0x14],edx",
            "-mov ebx,edx",
            "+mov m4[esp+None*1+0x18],eax",
            "+xor eax,eax",
            "+mov ebx,m4[esp+None*1+0x18]",
            "+mov al,m1[edx+None*1+0x707492]",
            " mov edx,0x26666666",
            "+mov m4[esp+None*1+0x20],eax",
            "+mov esi,eax",
            "+mov eax,m4[esp+None*1+0x14]",
            " imul edx",
            " xchg ebx,eax",
            " xchg edx,ecx",
            "@@ -321,52 +328,52 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov eax,m4[esp+None*1+0x2c]",
            "+mov edi,m4[esp+None*1+0x28]",
            " mov ecx,edx",
            "-test eax,eax",
            "-je local:368",
            "-mov ebx,m4[esp+None*1+0x48]",
            "-mov m1[ebx+None*1+palette.c::_modified_rgb_values],dl",
            "-mov edx,m4[esp+None*1+0x34]",
            "-test edx,edx",
            "-je local:333",
            "-mov edx,ecx",
            "-mov ebx,m4[esp+None*1+0x48]",
            "-mov m1[ebx+None*1+0x707491],dl",
            "+test edi,edi",
            "+je local:373",
            "+mov eax,m4[esp+None*1+0x10]",
            "+mov m1[eax+None*1+palette.c::_modified_rgb_values],dl",
            " cmp m4[esp+None*1+0x30],0x0",
            "-je local:370",
            "-mov edx,ecx",
            "-mov ecx,m4[esp+None*1+0x48]",
            "-mov m1[ecx+None*1+0x707492],dl",
            "-mov edx,m4[esp+None*1+0x48]",
            "-xor ecx,ecx",
            "-mov ebx,m4[esp+None*1+0x48]",
            "-mov cl,m1[edx+None*1+0x707491]",
            "-xor edx,edx",
            "-mov dl,m1[ebx+None*1+palette.c::_modified_rgb_values]",
            "+je local:375",
            "+mov edx,ecx",
            "+mov eax,m4[esp+None*1+0x10]",
            "+mov m1[eax+None*1+0x707491],dl",
            "+cmp m4[esp+None*1+0x2c],0x0",
            "+je local:377",
            "+mov eax,m4[esp+None*1+0x10]",
            "+xor edx,edx",
            "+mov ebx,m4[esp+None*1+0x40]",
            "+mov dl,m1[eax+None*1+0x707491]",
            "+mov m1[eax+None*1+0x707492],cl",
            "+mov ecx,edx",
            "+xor edx,edx",
            "+mov esi,m4[esp+None*1+0x4]",
            "+mov dl,m1[eax+None*1+palette.c::_modified_rgb_values]",
            " shl ecx,0x8",
            " shl edx,0x10",
            "+inc ebx",
            " or ecx,edx",
            " xor edx,edx",
            "-mov dl,m1[ebx+None*1+0x707492]",
            "+mov m4[esp+None*1+0x40],ebx",
            "+mov dl,m1[eax+None*1+0x707492]",
            "+mov eax,m4[esp+None*1+0x38]",
            " or edx,ecx",
            "-mov ecx,m4[esp+None*1+0x3c]",
            "-mov esi,m4[esp+None*1+0x44]",
            "-mov edi,m4[esp+None*1+0x4]",
            "-mov m4[ecx+None*1+palette.c::_ARGBColour],edx",
            "-lea edx,m4[ecx+None*1+0x4]",
            "-inc esi",
            "-lea ecx,m4[ebx+None*1+0x3]",
            "-mov m4[esp+None*1+0x44],esi",
            "-mov ebx,m4[esp+None*1+0x1c]",
            "-mov m4[esp+None*1+0x3c],edx",
            "-inc ebx",
            "+mov ecx,m4[esp+None*1+0x48]",
            "+mov m4[eax+None*1+palette.c::_ARGBColour],edx",
            "+add eax,0x4",
            "+mov edx,m4[esp+None*1+0x10]",
            "+mov m4[esp+None*1+0x38],eax",
            "+inc ecx",
            "+add edx,0x3",
            " mov m4[esp+None*1+0x48],ecx",
            "-mov m4[esp+None*1+0x1c],ebx",
            "-cmp esi,edi",
            "-jge local:247",
            "-jmp local:296",
            "-xor edx,edx",
            "-jmp local:327",
            "-xor edx,edx",
            "-jmp local:338",
            "+mov m4[esp+None*1+0x10],edx",
            "+cmp ebx,esi",
            "+jge local:249",
            "+jmp local:300",
            "+xor edx,edx",
            "+jmp local:334",
            "+xor edx,edx",
            "+jmp local:339",
            "+xor ecx,ecx",
            "+jmp local:343"
          ]
        },
        {
          "symbol": "pause.c::game_pause_",
          "source": "E:\\apache\\source\\pause.c",
          "first": "0x403934",
          "second": "0x403934",
          "first_instruction_count": 99,
          "second_instruction_count": 120,
          "diff": [
            "--- 0x403934",
            "+++ 0x403934",
            "@@ -22,61 +22,77 @@",
            " push eax",
            " push eax",
            " mov ecx,0x100",
            "+push eax",
            " mov edx,0x7fffffff",
            "-push eax",
            " xor ebx,ebx",
            "-xor esi,esi",
            " call palette.c::create_fader_",
            "-mov edi,eax",
            "+mov esi,eax",
            " call timer.c::fast_clock_",
            "-mov ebp,0x1",
            "-mov ebx,0x64",
            "-mov edx,0x7fffffff",
            "-mov eax,esi",
            "-imul edx",
            "-idiv ebx",
            "-mov ecx,ebp",
            "-mov ebx,ebp",
            "-mov edx,eax",
            "-mov eax,edi",
            "-inc esi",
            "-call palette.c::set_fader_level_",
            "-call vidbios.c::_wait_for_vertical_retrace",
            "-cmp esi,0x32",
            "-jle local:32",
            "-xor esi,esi",
            "+mov eax,m4[None+None*1+gamedata.c::_delta_time]",
            "+xor ebx,ebx",
            "+call fx3dmain.c::update_3d_visual_",
            "+call views.c::update_view_mode_",
            "+call cockpits.c::draw_cockpit_",
            "+mov edi,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+mov m4[None+None*1+fxpoly1.c::_use_glide],ebx",
            "+test edi,edi",
            "+jne local:50",
            "+push fxpoly1.c::_lfbinfo",
            "+push ebx",
            "+push ebx",
            "+push 0x4",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbLock@24",
            "+mov eax,m4[None+None*1+0x724310]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "+mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+inc m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+call avionics.c::draw_avionics_displays_",
            "+mov eax,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec eax",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],eax",
            "+je local:110",
            "+mov m4[None+None*1+fxpoly1.c::_use_glide],0x1",
            "+call cockpits.c::new_routine_to_download_cockpit_screen_to_lfb_",
            "+push 0x1e0",
            "+push 0x280",
            "+mov ebx,0x280",
            "+push 0x0",
            "+xor edx,edx",
            "+mov ecx,0x1e0",
            "+push 0x0",
            "+xor eax,eax",
            "+mov edi,0xc8",
            "+call 2dcore.c::set_2d_viewport_and_window_",
            "+mov eax,text.c::_standard_5x9",
            "+mov ebx,0x12c",
            "+call text.c::set_text_font_",
            "+mov ah,0x1",
            "+mov m4[None+None*1+text.c::_text_x_position],ebx",
            "+mov m1[None+None*1+text.c::_text_colour],ah",
            "+mov eax,text:'GAME PAUSED'",
            "+mov m4[None+None*1+text.c::_text_y_position],edi",
            "+call text.c::print_text_string_",
            "+push 0x1",
            "+call LINKER MODULE::_grBufferSwap@4",
            " lea eax,m4[esp+None*1+0x10]",
            " call event.c::get_event_",
            " test eax,eax",
            "-je local:94",
            "-mov ebx,m4[esp+None*1+0x10]",
            "-cmp ebx,0x1",
            "-jne local:94",
            "+je local:114",
            "+mov ebp,m4[esp+None*1+0x10]",
            "+cmp ebp,0x1",
            "+jne local:114",
            " mov eax,m4[esp+None*1+0x14]",
            " and eax,0xff",
            " cmp eax,0x19",
            "-jne local:94",
            "-mov esi,0x31",
            "-mov ebp,ebx",
            "-mov ebx,0x64",
            "-mov edx,0x7fffffff",
            "+jne local:114",
            "+mov ebx,ebp",
            " mov eax,esi",
            "-imul edx",
            "-idiv ebx",
            "-mov ecx,ebp",
            "-mov ebx,ebp",
            "-mov edx,eax",
            "-mov eax,edi",
            "-dec esi",
            "-call palette.c::set_fader_level_",
            "-call vidbios.c::_wait_for_vertical_retrace",
            "-test esi,esi",
            "-jge local:60",
            "-mov ebx,0x1",
            "-mov eax,edi",
            " xor edx,edx",
            " call palette.c::set_fader_level_",
            "-mov eax,edi",
            "+mov eax,esi",
            " call palette.c::destroy_fader_",
            " pop ebx",
            " pop ecx",
            "@@ -85,15 +101,20 @@",
            " mov eax,esp",
            " call event.c::get_event_",
            " test eax,eax",
            "-jne local:84",
            "+jne local:100",
            " call timer.c::get_delta_ticks_",
            " call sndsetup.c::resume_all_sound_",
            " add esp,0x14",
            " pop ebp",
            " pop edx",
            " ret ",
            "-cmp esi,m4[None+None*1+start.c::_repaint_game_screen]",
            "-je local:47",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbUnlock@8",
            "+jmp local:56",
            "+cmp m4[None+None*1+start.c::_repaint_game_screen],0x0",
            "+je local:79",
            "+xor edx,edx",
            " call screen.c::down_load_screen_",
            "-mov m4[None+None*1+start.c::_repaint_game_screen],esi",
            "-jmp local:47",
            "+mov m4[None+None*1+start.c::_repaint_game_screen],edx",
            "+jmp local:79"
          ]
        },
        {
          "symbol": "payload.c::notify_payload_pod1_menu_",
          "source": "E:\\apache\\source\\menus\\maps\\payload.c",
          "first": "0x42053c",
          "second": "0x42059c",
          "first_instruction_count": 4,
          "second_instruction_count": 4,
          "diff": [
            "--- 0x42053c",
            "+++ 0x42059c",
            "@@ -1,4 +1,4 @@",
            " mov eax,m4[edx+None*1+0x4]",
            " mov m4[None+None*1+apweapon.c::_apache_weapons],eax",
            "-mov m4[None+None*1+0x62e570],eax",
            "+mov m4[None+None*1+0x62e58c],eax",
            " jmp payload.c::update_payload_"
          ]
        },
        {
          "symbol": "payload.c::notify_payload_pod2_menu_",
          "source": "E:\\apache\\source\\menus\\maps\\payload.c",
          "first": "0x420550",
          "second": "0x4205b0",
          "first_instruction_count": 4,
          "second_instruction_count": 4,
          "diff": [
            "--- 0x420550",
            "+++ 0x4205b0",
            "@@ -1,4 +1,4 @@",
            " mov eax,m4[edx+None*1+0x4]",
            "-mov m4[None+None*1+0x62e584],eax",
            "-mov m4[None+None*1+0x62e598],eax",
            "+mov m4[None+None*1+0x62e5a0],eax",
            "+mov m4[None+None*1+0x62e5b4],eax",
            " jmp payload.c::update_payload_"
          ]
        },
        {
          "symbol": "payload.c::notify_payload_wingtip_menu_",
          "source": "E:\\apache\\source\\menus\\maps\\payload.c",
          "first": "0x420528",
          "second": "0x420588",
          "first_instruction_count": 4,
          "second_instruction_count": 4,
          "diff": [
            "--- 0x420528",
            "+++ 0x420588",
            "@@ -1,4 +1,4 @@",
            " mov eax,m4[edx+None*1+0x4]",
            "-mov m4[None+None*1+0x62e5ac],eax",
            "-mov m4[None+None*1+0x62e5c0],eax",
            "+mov m4[None+None*1+0x62e5c8],eax",
            "+mov m4[None+None*1+0x62e5dc],eax",
            " jmp payload.c::update_payload_"
          ]
        },
        {
          "symbol": "payload.c::update_payload_",
          "source": "E:\\apache\\source\\menus\\maps\\payload.c",
          "first": "0x4205dc",
          "second": "0x42063c",
          "first_instruction_count": 207,
          "second_instruction_count": 207,
          "diff": [
            "--- 0x4205dc",
            "+++ 0x42063c",
            "@@ -1,7 +1,7 @@",
            " push edx",
            " call apweapon.c::reinitialise_apache_weapons_",
            " call thread.c::forbid_",
            "-mov eax,m4[None+None*1+0x62e5ac]",
            "+mov eax,m4[None+None*1+0x62e5c8]",
            " test eax,eax",
            " jbe local:104",
            " cmp eax,0x6",
            "@@ -16,7 +16,7 @@",
            " mov edx,text:'None'",
            " mov eax,m4[None+None*1+payload.c::_payload_pod1_button]",
            " call utext.c::set_object_text_",
            "-mov eax,m4[None+None*1+0x62e584]",
            "+mov eax,m4[None+None*1+0x62e5a0]",
            " cmp eax,0x5",
            " ja local:134",
            " jmp m4[None+eax*4+payload.c::notify_payload_pod2_menu_+0x2c]",
            "@@ -83,9 +83,9 @@",
            " mov eax,m4[None+None*1+payload.c::_payload_li_hd]",
            " xor edx,edx",
            " call uoaccess.c::set_object_displayable_",
            "-cmp m4[None+None*1+0x62e5ac],0x6",
            "+cmp m4[None+None*1+0x62e5c8],0x6",
            " jne local:158",
            "-mov eax,m4[None+None*1+0x62e584]",
            "+mov eax,m4[None+None*1+0x62e5a0]",
            " cmp eax,0x5",
            " ja local:97",
            " jmp m4[None+eax*4+payload.c::notify_payload_pod2_menu_+0x44]",
            "@@ -156,7 +156,7 @@",
            " mov edx,0x1",
            " mov eax,m4[None+None*1+payload.c::_payload_lw_st_hr]",
            " jmp local:96",
            "-mov eax,m4[None+None*1+0x62e584]",
            "+mov eax,m4[None+None*1+0x62e5a0]",
            " cmp eax,0x5",
            " ja local:97",
            " jmp m4[None+eax*4+payload.c::notify_payload_pod2_menu_+0x5c]"
          ]
        },
        {
          "symbol": "polyline.c::draw_poly_line_",
          "source": "E:\\library\\graphics\\polyline.c",
          "first": "0x46f6d0",
          "second": "0x46f830",
          "first_instruction_count": 56,
          "second_instruction_count": 68,
          "diff": [
            "--- 0x46f6d0",
            "+++ 0x46f830",
            "@@ -8,9 +8,46 @@",
            " mov ebx,eax",
            " mov ebp,m4[ebx+None*1+0x24]",
            " test ebp,ebp",
            "-je local:49",
            "+je local:61",
            " cmp m4[None+None*1+fxpoly1.c::_use_glide],0x0",
            "-jne local:24",
            "+je local:50",
            "+mov ecx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+test ecx,ecx",
            "+jne local:27",
            "+push fxpoly1.c::_lfbinfo",
            "+push ecx",
            "+push ecx",
            "+push 0x4",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbLock@24",
            "+mov eax,m4[None+None*1+0x724310]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "+mov eax,m4[None+None*1+0x724314]",
            "+mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "+mov esi,m4[ebp+None*1+0x10]",
            "+mov edx,m4[ebp+None*1+0xc]",
            "+mov ecx,m4[ebx+None*1+0x10]",
            "+mov edi,m4[ebx+None*1+0xc]",
            "+mov ebx,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+xor eax,eax",
            "+inc ebx",
            "+mov al,m1[esp+None*1+0x0]",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],ebx",
            "+mov ebx,ecx",
            "+mov ecx,edi",
            "+call line.asm::_draw_glide_line",
            "+mov esi,m4[None+None*1+fxpoly1.c::_fx_buffer_counter]",
            "+dec esi",
            "+mov m4[None+None*1+fxpoly1.c::_fx_buffer_counter],esi",
            "+je local:45",
            "+mov ebx,ebp",
            "+jmp local:8",
            "+push 0x1",
            "+push 0x1",
            "+call LINKER MODULE::_grLfbUnlock@8",
            "+mov ebx,ebp",
            "+jmp local:8",
            " mov esi,m4[ebp+None*1+0x10]",
            " mov edx,m4[ebp+None*1+0xc]",
            " mov ecx,m4[ebx+None*1+0x10]",
            "@@ -22,31 +59,6 @@",
            " call line.asm::_draw_line",
            " mov ebx,ebp",
            " jmp local:8",
            "-push fxpoly1.c::_lfbinfo",
            "-push 0x0",
            "-push 0x0",
            "-push 0x4",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbLock@24",
            "-mov eax,m4[None+None*1+0x724310]",
            "-mov esi,m4[ebp+None*1+0x10]",
            "-mov edx,m4[ebp+None*1+0xc]",
            "-mov ecx,m4[ebx+None*1+0x10]",
            "-mov edi,m4[ebx+None*1+0xc]",
            "-mov m4[None+None*1+fxpoly1.c::_fx_lfbuffer],eax",
            "-mov eax,m4[None+None*1+0x724314]",
            "-mov ebx,ecx",
            "-mov m4[None+None*1+fxpoly1.c::_lfb_modulo],eax",
            "-xor eax,eax",
            "-mov ecx,edi",
            "-mov al,m1[esp+None*1+0x0]",
            "-call line.asm::_draw_glide_line",
            "-push 0x1",
            "-push 0x1",
            "-call LINKER MODULE::_grLfbUnlock@8",
            "-mov ebx,ebp",
            "-jmp local:8",
            " add esp,0x4",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "prefscrn.c::initialise_preferences_screen_",
          "source": "E:\\apache\\source\\menus\\prefscrn.c",
          "first": "0x406480",
          "second": "0x4064e0",
          "first_instruction_count": 862,
          "second_instruction_count": 862,
          "diff": [
            "--- 0x406480",
            "+++ 0x4064e0",
            "@@ -790,52 +790,52 @@",
            " mov m4[None+None*1+0x518250],esi",
            " mov m4[None+None*1+prefscrn.c::_coolie_t],edi",
            " mov ebx,ebp",
            "-mov m4[None+None*1+0x5182b0],ebp",
            "-mov m4[None+None*1+0x5182b4],esi",
            "+mov m4[None+None*1+0x5182b4],ebp",
            " mov m4[None+None*1+0x5182b8],esi",
            "+mov m4[None+None*1+0x5182bc],esi",
            " mov m4[None+None*1+prefscrn.c::_coolie_l],ebp",
            "-mov m4[None+None*1+0x518288],esi",
            "+mov m4[None+None*1+0x51828c],esi",
            " mov m4[None+None*1+prefscrn.c::_coolie_r],ebp",
            "-mov m4[None+None*1+0x51829c],esi",
            " mov m4[None+None*1+0x5182a0],esi",
            "+mov m4[None+None*1+0x5182a4],esi",
            " mov m4[None+None*1+prefscrn.c::_coolie_c],ebp",
            " mov m4[None+None*1+0x518260],esi",
            " mov m4[None+None*1+0x518264],esi",
            "-mov m4[None+None*1+0x518274],esi",
            " mov m4[None+None*1+0x518278],esi",
            "+mov m4[None+None*1+0x51827c],esi",
            " xor ecx,ecx",
            " mov edi,0xf",
            " mov esi,0x8",
            " mov m4[None+None*1+0x518254],eax",
            "-mov m4[None+None*1+0x5182cc],ecx",
            "+mov m4[None+None*1+0x5182d0],ecx",
            " xor ebx,ebp",
            " mov ebp,0x10",
            " lea edx,m4[eax+None*1+0x80]",
            "-mov m4[None+None*1+0x51828c],ebx",
            "-mov m4[None+None*1+0x518298],edi",
            "+mov m4[None+None*1+0x518290],ebx",
            "+mov m4[None+None*1+0x51829c],edi",
            " mov m4[None+None*1+prefscrn.c::_throttle_vt],esi",
            " mov ebx,0x7",
            " mov edi,0xb",
            "-mov m4[None+None*1+0x5182bc],edx",
            "+mov m4[None+None*1+0x5182c0],edx",
            " lea edx,m4[eax+None*1+0x100]",
            " mov m4[None+None*1+prefscrn.c::_throttle_hz],ebp",
            "-mov m4[None+None*1+0x518290],edx",
            "+mov m4[None+None*1+0x518294],edx",
            " mov edx,0xf",
            " mov m4[None+None*1+0x51825c],ebx",
            "-mov m4[None+None*1+0x518284],edx",
            "+mov m4[None+None*1+0x518288],edx",
            " lea edx,m4[eax+None*1+0x180]",
            "-mov m4[None+None*1+0x5182c4],edi",
            "-mov m4[None+None*1+0x5182a4],edx",
            "+mov m4[None+None*1+0x5182c8],edi",
            "+mov m4[None+None*1+0x5182a8],edx",
            " lea edx,m4[eax+None*1+0x200]",
            " xor ebp,ebp",
            " mov m4[None+None*1+0x518268],edx",
            " lea edx,m4[eax+None*1+0x300]",
            "-mov m4[None+None*1+0x5182c8],ebp",
            "-mov m4[None+None*1+0x51827c],edx",
            "+mov m4[None+None*1+0x5182cc],ebp",
            "+mov m4[None+None*1+0x518280],edx",
            " add eax,0x400",
            " mov edx,0x6",
            "-mov m4[None+None*1+0x5182d0],eax",
            "-mov m4[None+None*1+0x518270],edx",
            "+mov m4[None+None*1+0x5182d4],eax",
            "+mov m4[None+None*1+0x518274],edx",
            " jmp local:585",
            " push 0x0",
            " push prefscrn.c::notify_preferences_network_button_"
          ]
        },
        {
          "symbol": "rounds.c::check_round_target_lock_",
          "source": "E:\\apache\\source\\weapons\\rounds.c",
          "first": "0x44cf90",
          "second": "0x44cff0",
          "first_instruction_count": 334,
          "second_instruction_count": 334,
          "diff": [
            "--- 0x44cf90",
            "+++ 0x44cff0",
            "@@ -255,7 +255,7 @@",
            " sub edx,ebp",
            " sub eax,edi",
            " call range.c::get_3d_range_",
            "-cmp eax,cap.c::do_cap_scan_+0xc4",
            "+cmp eax,cap.c::do_cap_scan_+0xa4",
            " jbe local:86",
            " mov al,m1[ecx+None*1+0xb4]",
            " mov m4[ecx+None*1+0xf0],0x0",
            "@@ -279,7 +279,7 @@",
            " sub eax,edx",
            " mov edx,edi",
            " call range.c::get_3d_range_",
            "-cmp eax,cap.c::do_cap_scan_+0xc4",
            "+cmp eax,cap.c::do_cap_scan_+0xa4",
            " jbe local:86",
            " mov ah,m1[ecx+None*1+0xb4]",
            " mov m4[ecx+None*1+0xf0],0x0"
          ]
        },
        {
          "symbol": "scancirc.asm::_scan_convert_circle",
          "source": "\\library\\graphics\\scancirc.asm",
          "first": "0x4c2a2c",
          "second": "0x4c328c",
          "first_instruction_count": 754,
          "second_instruction_count": 754,
          "diff": [
            "--- 0x4c2a2c",
            "+++ 0x4c328c",
            "@@ -82,7 +82,7 @@",
            " cmp ecx,m4[None+None*1+screen.c::_screen_x_min]",
            " jge local:84",
            " or ebp,0x1",
            "-jmp m4[None+ebp*4+constant:782b4c00]",
            "+jmp m4[None+ebp*4+constant:d8334c00]",
            " cmp esi,m4[None+None*1+screen.c::_screen_y_min]",
            " jge local:88",
            " mov esi,m4[None+None*1+screen.c::_screen_y_min]"
          ]
        },
        {
          "symbol": "scangour.asm::_scan_convert_gouraud_shaded_polygon",
          "source": "\\library\\graphics\\scangour.asm",
          "first": "0x4c3564",
          "second": "0x4c3dc4",
          "first_instruction_count": 90,
          "second_instruction_count": 90,
          "diff": [
            "--- 0x4c3564",
            "+++ 0x4c3dc4",
            "@@ -60,7 +60,7 @@",
            " pop ebp",
            " pop edx",
            " pop eax",
            "-call m4[None+ecx*4+constant:ec364c00]",
            "+call m4[None+ecx*4+constant:4c3f4c00]",
            " cmp m4[edi+None*1+0x24],0x0",
            " je local:71",
            " mov edi,esi"
          ]
        },
        {
          "symbol": "scangtxt.asm::_scan_convert_gouraud_shaded_textured_polygon",
          "source": "\\library\\graphics\\scangtxt.asm",
          "first": "0x4c3970",
          "second": "0x4c41d0",
          "first_instruction_count": 118,
          "second_instruction_count": 118,
          "diff": [
            "--- 0x4c3970",
            "+++ 0x4c41d0",
            "@@ -80,7 +80,7 @@",
            " pop ebp",
            " pop edx",
            " pop eax",
            "-call m4[None+ecx*4+constant:c03b4c00]",
            "+call m4[None+ecx*4+constant:20444c00]",
            " cmp m4[edi+None*1+0x24],0x0",
            " je local:91",
            " mov edi,esi"
          ]
        },
        {
          "symbol": "scanpoly.asm::_scan_convert_polygon",
          "source": "\\library\\graphics\\scanpoly.asm",
          "first": "0x4c4094",
          "second": "0x4c48f4",
          "first_instruction_count": 67,
          "second_instruction_count": 67,
          "diff": [
            "--- 0x4c4094",
            "+++ 0x4c48f4",
            "@@ -41,7 +41,7 @@",
            " cmp edx,ebp",
            " jbe local:43",
            " or ecx,0x1",
            "-call m4[None+ecx*4+constant:b0414c00]",
            "+call m4[None+ecx*4+constant:104a4c00]",
            " cmp m4[edi+None*1+0x24],0x0",
            " je local:52",
            " mov edi,esi"
          ]
        },
        {
          "symbol": "scantext.asm::_scan_convert_textured_polygon",
          "source": "\\library\\graphics\\scantext.asm",
          "first": "0x4c42e0",
          "second": "0x4c4b40",
          "first_instruction_count": 104,
          "second_instruction_count": 104,
          "diff": [
            "--- 0x4c42e0",
            "+++ 0x4c4b40",
            "@@ -70,7 +70,7 @@",
            " pop ebp",
            " pop edx",
            " pop eax",
            "-call m4[None+ecx*4+constant:cc444c00]",
            "+call m4[None+ecx*4+constant:2c4d4c00]",
            " cmp m4[edi+None*1+0x24],0x0",
            " je local:81",
            " mov edi,esi"
          ]
        },
        {
          "symbol": "secscan.c::get_culled_sector_scan_",
          "source": "E:\\library\\3dvisual\\secscan.c",
          "first": "0x4991e4",
          "second": "0x4992d4",
          "first_instruction_count": 668,
          "second_instruction_count": 668,
          "diff": [
            "--- 0x4991e4",
            "+++ 0x4992d4",
            "@@ -88,11 +88,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[None+None*1+0xaff660]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xaff66c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -105,15 +105,15 @@",
            " mov ebx,m4[ebp+None*1+0x4]",
            " mov eax,m4[ebp+None*1+0x0]",
            " mov m4[esp+None*1+0x0],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "+mov edx,m4[None+None*1+0xaff658]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -315,11 +315,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[None+None*1+0xaff660]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xaff66c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -332,15 +332,15 @@",
            " mov ebx,m4[ebp+None*1+0x4]",
            " mov eax,m4[ebp+None*1+0x0]",
            " mov m4[esp+None*1+0x0],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "+mov edx,m4[None+None*1+0xaff658]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "secscan.c::get_map_sector_visibility_",
          "source": "E:\\library\\3dvisual\\secscan.c",
          "first": "0x49a6c8",
          "second": "0x49a7b8",
          "first_instruction_count": 50,
          "second_instruction_count": 50,
          "diff": [
            "--- 0x49a6c8",
            "+++ 0x49a7b8",
            "@@ -6,34 +6,34 @@",
            " mov eax,m4[None+None*1+secscan.c::_map_xeo]",
            " mov m4[esp+None*1+0x0],eax",
            " mov eax,m4[None+None*1+secscan.c::_map_yeo]",
            "-mov edx,m4[None+None*1+0xafd188]",
            "+mov edx,m4[None+None*1+0xafd28c]",
            " mov m4[esp+None*1+0x10],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " add eax,edx",
            "-mov edx,m4[None+None*1+0xafc774]",
            "-mov ecx,m4[None+None*1+0xafcb38]",
            "+mov edx,m4[None+None*1+0xafc878]",
            "+mov ecx,m4[None+None*1+0xafcc3c]",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x10]",
            " mov m4[esp+None*1+0x4],edx",
            "-mov edx,m4[None+None*1+0xafc0e0]",
            "+mov edx,m4[None+None*1+0xafc1e4]",
            " add eax,ecx",
            "-mov ebx,m4[None+None*1+0xafd1c8]",
            "+mov ebx,m4[None+None*1+0xafd2cc]",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xafc774]",
            "+mov edx,m4[None+None*1+0xafc878]",
            " add eax,ebx",
            " add edx,eax",
            "-mov esi,m4[None+None*1+0xafcb78]",
            "+mov esi,m4[None+None*1+0xafcc7c]",
            " mov m4[esp+None*1+0x8],edx",
            " mov edx,m4[esp+None*1+0x10]",
            "-mov ecx,m4[None+None*1+0xafc0e0]",
            "+mov ecx,m4[None+None*1+0xafc1e4]",
            " add edx,esi",
            " add ecx,edx",
            " mov m4[esp+None*1+0x18],ecx",
            "-mov ecx,m4[None+None*1+0xafc734]",
            "+mov ecx,m4[None+None*1+0xafc838]",
            " add ecx,eax",
            "-mov eax,m4[None+None*1+0xafc0a0]",
            "+mov eax,m4[None+None*1+0xafc1a4]",
            " mov ebx,0x4",
            " add eax,edx",
            " lea edx,m4[esp+None*1+0x10]"
          ]
        },
        {
          "symbol": "secscan.c::get_rons_culled_sector_scan_",
          "source": "E:\\library\\3dvisual\\secscan.c",
          "first": "0x497c80",
          "second": "0x497d70",
          "first_instruction_count": 1336,
          "second_instruction_count": 1336,
          "diff": [
            "--- 0x497c80",
            "+++ 0x497d70",
            "@@ -35,11 +35,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xaff660]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff66c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -53,15 +53,15 @@",
            " mov eax,m4[esp+None*1+0x74]",
            " mov m4[esp+None*1+0x114],edx",
            " mov m4[esp+None*1+0x98],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xaff658]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -75,15 +75,15 @@",
            " mov eax,m4[esp+None*1+0x74]",
            " mov m4[esp+None*1+0xf8],edx",
            " mov m4[esp+None*1+0x9c],edx",
            "-mov edx,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff65c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -108,11 +108,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xaff660]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff66c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -126,15 +126,15 @@",
            " mov eax,m4[esp+None*1+0x38]",
            " mov m4[esp+None*1+0xfc],edx",
            " mov m4[esp+None*1+0xc8],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xaff658]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -148,15 +148,15 @@",
            " mov eax,m4[esp+None*1+0x38]",
            " mov m4[esp+None*1+0x100],edx",
            " mov m4[esp+None*1+0xcc],edx",
            "-mov edx,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff65c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -181,11 +181,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xaff660]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff66c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -199,15 +199,15 @@",
            " mov eax,m4[esp+None*1+0x68]",
            " mov m4[esp+None*1+0x154],edx",
            " mov m4[esp+None*1+0x5c],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xaff658]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -221,15 +221,15 @@",
            " mov eax,m4[esp+None*1+0x68]",
            " mov m4[esp+None*1+0xe0],edx",
            " mov m4[esp+None*1+0x60],edx",
            "-mov edx,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff65c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -254,11 +254,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xaff660]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff66c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -272,15 +272,15 @@",
            " mov eax,m4[esp+None*1+0xb0]",
            " mov m4[esp+None*1+0xe8],edx",
            " mov m4[esp+None*1+0x8c],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xaff658]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -294,15 +294,15 @@",
            " mov eax,m4[esp+None*1+0xb0]",
            " mov m4[esp+None*1+0x158],edx",
            " mov m4[esp+None*1+0x90],edx",
            "-mov edx,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff65c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -607,11 +607,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff658]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -624,15 +624,15 @@",
            " mov ebx,m4[esp+None*1+0xc0]",
            " mov eax,m4[esp+None*1+0xbc]",
            " mov m4[esp+None*1+0xb0],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xaff660]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -645,15 +645,15 @@",
            " mov ebx,m4[esp+None*1+0xc0]",
            " mov eax,m4[esp+None*1+0xbc]",
            " mov m4[esp+None*1+0xb4],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -677,11 +677,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff658]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -694,15 +694,15 @@",
            " mov ebx,m4[esp+None*1+0x84]",
            " mov eax,m4[esp+None*1+0x80]",
            " mov m4[esp+None*1+0x68],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xaff660]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -715,15 +715,15 @@",
            " mov ebx,m4[esp+None*1+0x84]",
            " mov eax,m4[esp+None*1+0x80]",
            " mov m4[esp+None*1+0x6c],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -750,11 +750,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff658]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -767,15 +767,15 @@",
            " mov ebx,m4[esp+None*1+0xa8]",
            " mov eax,m4[esp+None*1+0xa4]",
            " mov m4[esp+None*1+0x74],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xaff660]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -788,15 +788,15 @@",
            " mov ebx,m4[esp+None*1+0xa8]",
            " mov eax,m4[esp+None*1+0xa4]",
            " mov m4[esp+None*1+0x78],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -823,11 +823,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff658]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -840,15 +840,15 @@",
            " mov ebx,m4[esp+None*1+0x48]",
            " mov eax,m4[esp+None*1+0x44]",
            " mov m4[esp+None*1+0x38],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xaff660]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -861,15 +861,15 @@",
            " mov ebx,m4[esp+None*1+0x48]",
            " mov eax,m4[esp+None*1+0x44]",
            " mov m4[esp+None*1+0x3c],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -1006,11 +1006,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xaff660]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff66c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -1026,15 +1026,15 @@",
            " mov ebx,m4[ebx+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x0]",
            " mov m4[esp+None*1+0x110],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov edx,m4[None+None*1+0xaff658]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -1050,15 +1050,15 @@",
            " mov ebx,m4[ebx+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x0]",
            " mov m4[esp+None*1+0x118],edx",
            "-mov edx,m4[None+None*1+0xaff638]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff65c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "shadows.c::draw_3d_object_shadow_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49a780",
          "second": "0x49a870",
          "first_instruction_count": 272,
          "second_instruction_count": 272,
          "diff": [
            "--- 0x49a780",
            "+++ 0x49a870",
            "@@ -127,11 +127,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -144,15 +144,15 @@",
            " mov ebx,m4[esp+None*1+0x2c0c]",
            " mov eax,m4[esp+None*1+0x2c18]",
            " mov m4[None+None*1+fx3dobj1.c::_xeo_object],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -165,15 +165,15 @@",
            " mov ebx,m4[esp+None*1+0x2c0c]",
            " mov eax,m4[esp+None*1+0x2c18]",
            " mov m4[None+None*1+fx3dobj1.c::_yeo_object],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "shadows.c::draw_completely_visible_primary_shadow_face_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49bfac",
          "second": "0x49c09c",
          "first_instruction_count": 163,
          "second_instruction_count": 163,
          "diff": [
            "--- 0x49bfac",
            "+++ 0x49c09c",
            "@@ -148,7 +148,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-push 0x56c",
            "+push 0x56e",
            " push text:'\\\\library\\\\3dvisual\\\\shadows.c'",
            " push text:'Illegal render mode encountered in 3D object data.'",
            " call debuglog.c::debug_log_fatal_long_"
          ]
        },
        {
          "symbol": "shadows.c::draw_completely_visible_secondary_shadow_face_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49c19c",
          "second": "0x49c28c",
          "first_instruction_count": 158,
          "second_instruction_count": 158,
          "diff": [
            "--- 0x49c19c",
            "+++ 0x49c28c",
            "@@ -143,7 +143,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-push 0x630",
            "+push 0x632",
            " push text:'\\\\library\\\\3dvisual\\\\shadows.c'",
            " push text:'Illegal render mode encountered in 3D object data.'",
            " call debuglog.c::debug_log_fatal_long_"
          ]
        },
        {
          "symbol": "shadows.c::draw_partially_visible_primary_shadow_face_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49c378",
          "second": "0x49c468",
          "first_instruction_count": 259,
          "second_instruction_count": 259,
          "diff": [
            "--- 0x49c378",
            "+++ 0x49c468",
            "@@ -244,7 +244,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-push 0x742",
            "+push 0x744",
            " push text:'\\\\library\\\\3dvisual\\\\shadows.c'",
            " push text:'Illegal render mode encountered in 3D object data.'",
            " call debuglog.c::debug_log_fatal_long_"
          ]
        },
        {
          "symbol": "shadows.c::draw_partially_visible_secondary_shadow_face_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49c674",
          "second": "0x49c764",
          "first_instruction_count": 225,
          "second_instruction_count": 225,
          "diff": [
            "--- 0x49c674",
            "+++ 0x49c764",
            "@@ -210,7 +210,7 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-push 0x84c",
            "+push 0x84e",
            " push text:'\\\\library\\\\3dvisual\\\\shadows.c'",
            " push text:'Illegal render mode encountered in 3D object data.'",
            " call debuglog.c::debug_log_fatal_long_"
          ]
        },
        {
          "symbol": "shadows.c::get_true_3d_object_visibility_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49ab70",
          "second": "0x49ac60",
          "first_instruction_count": 346,
          "second_instruction_count": 346,
          "diff": [
            "--- 0x49ab70",
            "+++ 0x49ac60",
            "@@ -48,11 +48,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff698]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff69c]",
            "+mov eax,m4[None+None*1+0xaff61c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff620]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -65,15 +65,15 @@",
            " mov ebx,m4[esp+None*1+0x70]",
            " mov eax,m4[esp+None*1+0x6c]",
            " mov m4[esp+None*1+0x78],edx",
            "-mov edx,m4[None+None*1+0xaff6a0]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a4]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6a8]",
            "+mov edx,m4[None+None*1+0xaff624]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff628]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff62c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -86,15 +86,15 @@",
            " mov ebx,m4[esp+None*1+0x70]",
            " mov eax,m4[esp+None*1+0x6c]",
            " mov m4[esp+None*1+0x74],edx",
            "-mov edx,m4[None+None*1+0xaff6ac]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6b0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6b4]",
            "+mov edx,m4[None+None*1+0xaff630]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff634]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff638]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -123,7 +123,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ebx,m4[None+None*1+0xaff634]",
            "+mov ebx,m4[None+None*1+0xaff658]",
            " add edi,edx",
            " mov eax,m4[None+None*1+3dcore.c::_a_factors]",
            " mov ecx,edi",
            "@@ -143,8 +143,8 @@",
            " add edx,ebx",
            " add ebp,0x2",
            " mov m4[esp+eax*1+0x40],edx",
            "-mov ebx,m4[None+None*1+0xaff640]",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov ebx,m4[None+None*1+0xaff664]",
            "+mov eax,m4[None+None*1+0xaff660]",
            " mov ecx,edi",
            " mov edx,esi",
            " imul edx",
            "@@ -158,10 +158,10 @@",
            " adc edx,0x0",
            " add edx,m4[None+None*1+fx3dobj1.c::_yeo_object]",
            " mov eax,m4[esp+None*1+0x84]",
            "-mov ebx,m4[None+None*1+0xaff64c]",
            "+mov ebx,m4[None+None*1+0xaff670]",
            " mov ecx,edi",
            " mov m4[esp+eax*1+0x0],edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xaff66c]",
            " mov edx,esi",
            " imul edx",
            " xchg ebx,eax",
            "@@ -210,11 +210,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff698]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff69c]",
            "+mov eax,m4[None+None*1+0xaff61c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff620]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -227,15 +227,15 @@",
            " mov ebx,m4[esp+None*1+0x64]",
            " mov eax,m4[esp+None*1+0x60]",
            " mov m4[esp+None*1+0x74],edx",
            "-mov edx,m4[None+None*1+0xaff6a0]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a4]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6a8]",
            "+mov edx,m4[None+None*1+0xaff624]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff628]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff62c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -248,15 +248,15 @@",
            " mov ebx,m4[esp+None*1+0x64]",
            " mov eax,m4[esp+None*1+0x60]",
            " mov m4[esp+None*1+0x78],edx",
            "-mov edx,m4[None+None*1+0xaff6ac]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6b0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6b4]",
            "+mov edx,m4[None+None*1+0xaff630]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff634]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff638]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -284,7 +284,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ebx,m4[None+None*1+0xaff634]",
            "+mov ebx,m4[None+None*1+0xaff658]",
            " add esi,edx",
            " mov eax,m4[None+None*1+3dcore.c::_a_factors]",
            " mov ecx,esi",
            "@@ -302,10 +302,10 @@",
            " add ebp,0x2",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x80]",
            "-mov ebx,m4[None+None*1+0xaff640]",
            "+mov ebx,m4[None+None*1+0xaff664]",
            " mov ecx,esi",
            " mov m4[esp+eax*1+0x40],edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[None+None*1+0xaff660]",
            " mov edx,edi",
            " add ebp,0x2",
            " imul edx",
            "@@ -319,11 +319,11 @@",
            " adc edx,0x0",
            " mov eax,m4[esp+None*1+0x80]",
            " mov ecx,m4[None+None*1+fx3dobj1.c::_yeo_object]",
            "-mov ebx,m4[None+None*1+0xaff64c]",
            "+mov ebx,m4[None+None*1+0xaff670]",
            " add edx,ecx",
            " mov ecx,esi",
            " mov m4[esp+eax*1+0x0],edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xaff66c]",
            " mov edx,edi",
            " add ebp,0x2",
            " imul edx"
          ]
        },
        {
          "symbol": "shadows.c::scan_completely_visible_3d_object_face_list_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49ba48",
          "second": "0x49bb38",
          "first_instruction_count": 64,
          "second_instruction_count": 64,
          "diff": [
            "--- 0x49ba48",
            "+++ 0x49bb38",
            "@@ -56,7 +56,7 @@",
            " call shadows.c::process_gosub_",
            " mov ecx,eax",
            " jmp local:6",
            "-push 0x282",
            "+push 0x284",
            " push text:'\\\\library\\\\3dvisual\\\\shadows.c'",
            " push text:'Illegal face type encountered in 3D object data.'",
            " call debuglog.c::debug_log_fatal_long_"
          ]
        },
        {
          "symbol": "shadows.c::scan_completely_visible_true_3d_object_vertex_list_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49afd0",
          "second": "0x49b0c0",
          "first_instruction_count": 407,
          "second_instruction_count": 407,
          "diff": [
            "--- 0x49afd0",
            "+++ 0x49b0c0",
            "@@ -60,11 +60,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff698]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff69c]",
            "+mov eax,m4[None+None*1+0xaff61c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff620]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -77,15 +77,15 @@",
            " mov ebx,m4[esp+None*1+0x10]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[esp+None*1+0x18],edx",
            "-mov edx,m4[None+None*1+0xaff6a0]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a4]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6a8]",
            "+mov edx,m4[None+None*1+0xaff624]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff628]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff62c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -98,15 +98,15 @@",
            " mov ebx,m4[esp+None*1+0x10]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xaff6ac]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6b0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6b4]",
            "+mov edx,m4[None+None*1+0xaff630]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff634]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff638]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -134,7 +134,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ebx,m4[None+None*1+0xaff634]",
            "+mov ebx,m4[None+None*1+0xaff658]",
            " add edi,edx",
            " mov eax,m4[None+None*1+3dcore.c::_a_factors]",
            " mov ecx,edi",
            "@@ -154,8 +154,8 @@",
            " add eax,edx",
            " add ebp,0x2",
            " mov m4[esp+None*1+0x20],eax",
            "-mov ebx,m4[None+None*1+0xaff640]",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov ebx,m4[None+None*1+0xaff664]",
            "+mov eax,m4[None+None*1+0xaff660]",
            " mov ecx,edi",
            " mov edx,esi",
            " imul edx",
            "@@ -168,12 +168,12 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,m4[None+None*1+fx3dobj1.c::_yeo_object]",
            "-mov ebx,m4[None+None*1+0xaff64c]",
            "+mov ebx,m4[None+None*1+0xaff670]",
            " add eax,edx",
            " mov ecx,edi",
            " mov m4[esp+None*1+0x18],eax",
            " mov edx,esi",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xaff66c]",
            " imul edx",
            " xchg ebx,eax",
            " xchg edx,ecx",
            "@@ -243,11 +243,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff698]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff69c]",
            "+mov eax,m4[None+None*1+0xaff61c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff620]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -260,15 +260,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xaff6a0]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a4]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6a8]",
            "+mov edx,m4[None+None*1+0xaff624]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff628]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff62c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -281,15 +281,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x18],edx",
            "-mov edx,m4[None+None*1+0xaff6ac]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6b0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6b4]",
            "+mov edx,m4[None+None*1+0xaff630]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff634]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff638]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -317,7 +317,7 @@",
            " shld edx,eax,0x1",
            " shl eax,0x2",
            " adc edx,0x0",
            "-mov ebx,m4[None+None*1+0xaff634]",
            "+mov ebx,m4[None+None*1+0xaff658]",
            " add esi,edx",
            " mov eax,m4[None+None*1+3dcore.c::_a_factors]",
            " mov ecx,esi",
            "@@ -332,12 +332,12 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,m4[None+None*1+fx3dobj1.c::_xeo_object]",
            "-mov ebx,m4[None+None*1+0xaff640]",
            "+mov ebx,m4[None+None*1+0xaff664]",
            " add eax,edx",
            " mov ecx,esi",
            " mov m4[esp+None*1+0x1c],eax",
            " mov edx,edi",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[None+None*1+0xaff660]",
            " add ebp,0x2",
            " imul edx",
            " xchg ebx,eax",
            "@@ -349,12 +349,12 @@",
            " shl eax,0x2",
            " adc edx,0x0",
            " mov eax,m4[None+None*1+fx3dobj1.c::_yeo_object]",
            "-mov ebx,m4[None+None*1+0xaff64c]",
            "+mov ebx,m4[None+None*1+0xaff670]",
            " add eax,edx",
            " mov ecx,esi",
            " mov m4[esp+None*1+0x28],eax",
            " mov edx,edi",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xaff66c]",
            " add ebp,0x2",
            " imul edx",
            " xchg ebx,eax"
          ]
        },
        {
          "symbol": "shadows.c::scan_partially_visible_3d_object_face_list_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49bb1c",
          "second": "0x49bc0c",
          "first_instruction_count": 64,
          "second_instruction_count": 64,
          "diff": [
            "--- 0x49bb1c",
            "+++ 0x49bc0c",
            "@@ -56,7 +56,7 @@",
            " call shadows.c::process_gosub_",
            " mov ecx,eax",
            " jmp local:6",
            "-push 0x2e6",
            "+push 0x2e8",
            " push text:'\\\\library\\\\3dvisual\\\\shadows.c'",
            " push text:'Illegal face type encountered in 3D object data.'",
            " call debuglog.c::debug_log_fatal_long_"
          ]
        },
        {
          "symbol": "shadows.c::scan_partially_visible_true_3d_object_vertex_list_",
          "source": "E:\\library\\3dvisual\\shadows.c",
          "first": "0x49b4cc",
          "second": "0x49b5bc",
          "first_instruction_count": 432,
          "second_instruction_count": 432,
          "diff": [
            "--- 0x49b4cc",
            "+++ 0x49b5bc",
            "@@ -60,11 +60,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff698]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff69c]",
            "+mov eax,m4[None+None*1+0xaff61c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff620]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -77,15 +77,15 @@",
            " mov ebx,m4[esp+None*1+0x10]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[esp+None*1+0x18],edx",
            "-mov edx,m4[None+None*1+0xaff6a0]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a4]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6a8]",
            "+mov edx,m4[None+None*1+0xaff624]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff628]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff62c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -98,15 +98,15 @@",
            " mov ebx,m4[esp+None*1+0x10]",
            " mov eax,m4[esp+None*1+0xc]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xaff6ac]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6b0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6b4]",
            "+mov edx,m4[None+None*1+0xaff630]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff634]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff638]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -135,7 +135,7 @@",
            " adc edx,0x0",
            " mov eax,m4[esp+None*1+0x14]",
            " add eax,edx",
            "-mov ebx,m4[None+None*1+0xaff634]",
            "+mov ebx,m4[None+None*1+0xaff658]",
            " mov m4[esp+None*1+0x28],eax",
            " mov edx,edi",
            " mov ecx,m4[esp+None*1+0x28]",
            "@@ -156,8 +156,8 @@",
            " add ebp,0x2",
            " mov m4[esp+None*1+0x20],eax",
            " mov ecx,m4[esp+None*1+0x28]",
            "-mov ebx,m4[None+None*1+0xaff640]",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov ebx,m4[None+None*1+0xaff664]",
            "+mov eax,m4[None+None*1+0xaff660]",
            " mov edx,edi",
            " imul edx",
            " xchg ebx,eax",
            "@@ -170,8 +170,8 @@",
            " adc edx,0x0",
            " mov ecx,m4[esp+None*1+0x28]",
            " mov esi,m4[None+None*1+fx3dobj1.c::_yeo_object]",
            "-mov ebx,m4[None+None*1+0xaff64c]",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov ebx,m4[None+None*1+0xaff670]",
            "+mov eax,m4[None+None*1+0xaff66c]",
            " add esi,edx",
            " mov edx,edi",
            " imul edx",
            "@@ -256,11 +256,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff698]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff69c]",
            "+mov eax,m4[None+None*1+0xaff61c]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff620]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -273,15 +273,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xaff6a0]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6a4]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6a8]",
            "+mov edx,m4[None+None*1+0xaff624]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff628]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff62c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -294,15 +294,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x18],edx",
            "-mov edx,m4[None+None*1+0xaff6ac]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff6b0]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff6b4]",
            "+mov edx,m4[None+None*1+0xaff630]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff634]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff638]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -330,7 +330,7 @@",
            " adc edx,0x0",
            " mov eax,m4[esp+None*1+0x18]",
            " add eax,edx",
            "-mov ebx,m4[None+None*1+0xaff634]",
            "+mov ebx,m4[None+None*1+0xaff658]",
            " mov m4[esp+None*1+0x2c],eax",
            " mov edx,edi",
            " mov ecx,m4[esp+None*1+0x2c]",
            "@@ -347,10 +347,10 @@",
            " mov eax,m4[None+None*1+fx3dobj1.c::_xeo_object]",
            " mov ecx,m4[esp+None*1+0x2c]",
            " add eax,edx",
            "-mov ebx,m4[None+None*1+0xaff640]",
            "+mov ebx,m4[None+None*1+0xaff664]",
            " mov m4[esp+None*1+0x24],eax",
            " mov edx,edi",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[None+None*1+0xaff660]",
            " add ebp,0x2",
            " imul edx",
            " xchg ebx,eax",
            "@@ -363,8 +363,8 @@",
            " adc edx,0x0",
            " mov ecx,m4[esp+None*1+0x2c]",
            " mov esi,m4[None+None*1+fx3dobj1.c::_yeo_object]",
            "-mov ebx,m4[None+None*1+0xaff64c]",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov ebx,m4[None+None*1+0xaff670]",
            "+mov eax,m4[None+None*1+0xaff66c]",
            " add esi,edx",
            " mov edx,edi",
            " add ebp,0x2"
          ]
        },
        {
          "symbol": "ship.c::get_relative_offset_",
          "source": "E:\\apache\\source\\drone\\ship.c",
          "first": "0x42b5e4",
          "second": "0x42b644",
          "first_instruction_count": 97,
          "second_instruction_count": 97,
          "diff": [
            "--- 0x42b5e4",
            "+++ 0x42b644",
            "@@ -33,11 +33,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -50,15 +50,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[ebp+None*1+0x0],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -71,15 +71,15 @@",
            " mov ebx,m4[esp+None*1+0x4]",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[ebp+None*1+0x4],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "sound.c::deinitialise_sound_data_",
          "source": "E:\\apache\\source\\sound\\sound.c",
          "first": "0x445240",
          "second": "0x4452a0",
          "first_instruction_count": 28,
          "second_instruction_count": 28,
          "diff": [
            "--- 0x445240",
            "+++ 0x4452a0",
            "@@ -10,7 +10,7 @@",
            " mov esi,m4[ebx+None*1+constant:00000000]",
            " test esi,esi",
            " jne local:22",
            "-mov ecx,m4[ebx+None*1+constant:b8fe4d00]",
            "+mov ecx,m4[ebx+None*1+constant:d4fe4d00]",
            " add ebx,0x28",
            " test ecx,ecx",
            " jne local:9"
          ]
        },
        {
          "symbol": "starmap.c::draw_moon_",
          "source": "E:\\library\\3dvisual\\starmap.c",
          "first": "0x49d024",
          "second": "0x49d114",
          "first_instruction_count": 341,
          "second_instruction_count": 341,
          "diff": [
            "--- 0x49d024",
            "+++ 0x49d114",
            "@@ -21,24 +21,24 @@",
            " mov eax,m4[None+None*1+3dcore.c::_ls_uvec]",
            " sar eax,0x8",
            " mov m4[esp+None*1+0xec],eax",
            "-mov eax,m4[None+None*1+0xafd4b8]",
            "+mov eax,m4[None+None*1+0xafd5bc]",
            " sar eax,0x8",
            " mov m4[esp+None*1+0xe4],eax",
            "-mov eax,m4[None+None*1+0xafd4bc]",
            "+mov eax,m4[None+None*1+0xafd5c0]",
            " sar eax,0x8",
            " mov ebx,m4[esp+None*1+0xe4]",
            " mov m4[esp+None*1+0xe8],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0xec]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -57,11 +57,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -74,15 +74,15 @@",
            " mov ebx,m4[esp+None*1+0xe4]",
            " mov eax,m4[esp+None*1+0xec]",
            " mov m4[esp+None*1+0xe0],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "starmap.c::draw_sun_",
          "source": "E:\\library\\3dvisual\\starmap.c",
          "first": "0x49ca68",
          "second": "0x49cb58",
          "first_instruction_count": 371,
          "second_instruction_count": 371,
          "diff": [
            "--- 0x49ca68",
            "+++ 0x49cb58",
            "@@ -18,12 +18,12 @@",
            " pop ecx",
            " pop ebx",
            " ret ",
            "-mov edi,m4[None+None*1+0xafd4bc]",
            "-mov esi,m4[None+None*1+0xaff644]",
            "-mov ecx,m4[None+None*1+0xafd4b8]",
            "-mov ebx,m4[None+None*1+0xaff640]",
            "+mov edi,m4[None+None*1+0xafd5c0]",
            "+mov esi,m4[None+None*1+0xaff668]",
            "+mov ecx,m4[None+None*1+0xafd5bc]",
            "+mov ebx,m4[None+None*1+0xaff664]",
            " mov edx,m4[None+None*1+3dcore.c::_ls_uvec]",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[None+None*1+0xaff660]",
            " imul edx",
            " xchg ebx,eax",
            " xchg edx,ecx",
            "@@ -46,24 +46,24 @@",
            " mov eax,m4[None+None*1+3dcore.c::_ls_uvec]",
            " sar eax,0x8",
            " mov m4[esp+None*1+0xec],eax",
            "-mov eax,m4[None+None*1+0xafd4b8]",
            "+mov eax,m4[None+None*1+0xafd5bc]",
            " sar eax,0x8",
            " mov m4[esp+None*1+0xe4],eax",
            "-mov eax,m4[None+None*1+0xafd4bc]",
            "+mov eax,m4[None+None*1+0xafd5c0]",
            " sar eax,0x8",
            " mov ebx,m4[esp+None*1+0xe4]",
            " mov m4[esp+None*1+0xe8],eax",
            " mov ecx,eax",
            " mov eax,m4[esp+None*1+0xec]",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "+mov edx,m4[None+None*1+0xaff660]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -82,11 +82,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "+mov eax,m4[None+None*1+0xaff658]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -99,15 +99,15 @@",
            " mov ebx,m4[esp+None*1+0xe4]",
            " mov eax,m4[esp+None*1+0xec]",
            " mov m4[esp+None*1+0xe0],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "strtol::_stol_",
          "source": "strtol",
          "first": "0x4d1938",
          "second": "0x4d2198",
          "first_instruction_count": 119,
          "second_instruction_count": 119,
          "diff": [
            "--- 0x4d1938",
            "+++ 0x4d2198",
            "@@ -69,7 +69,7 @@",
            " mov m4[esp+None*1+0x8],eax",
            " cmp eax,esi",
            " jge local:82",
            "-cmp ebx,m4[edi+None*1+constant:0a694e00]",
            "+cmp ebx,m4[edi+None*1+constant:02694e00]",
            " jbe local:74",
            " mov cl,0x1",
            " mov eax,ebx"
          ]
        },
        {
          "symbol": "supscan.c::get_culled_super_sector_scan_",
          "source": "E:\\library\\3dvisual\\supscan.c",
          "first": "0x49d4a0",
          "second": "0x49d590",
          "first_instruction_count": 320,
          "second_instruction_count": 320,
          "diff": [
            "--- 0x49d4a0",
            "+++ 0x49d590",
            "@@ -110,11 +110,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff63c]",
            "+mov eax,m4[None+None*1+0xaff660]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff648]",
            "+mov eax,m4[None+None*1+0xaff66c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -127,15 +127,15 @@",
            " mov ebx,m4[ebp+None*1+0x4]",
            " mov eax,m4[ebp+None*1+0x0]",
            " mov m4[esp+None*1+0x0],edx",
            "-mov edx,m4[None+None*1+0xaff634]",
            "+mov edx,m4[None+None*1+0xaff658]",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "+mov eax,m4[None+None*1+0xaff664]",
            " imul ebx",
            " mov ebx,eax",
            " xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "+mov eax,m4[None+None*1+0xaff670]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "supscan.c::get_map_super_sector_visibility_",
          "source": "E:\\library\\3dvisual\\supscan.c",
          "first": "0x49dddc",
          "second": "0x49decc",
          "first_instruction_count": 50,
          "second_instruction_count": 50,
          "diff": [
            "--- 0x49dddc",
            "+++ 0x49decc",
            "@@ -6,34 +6,34 @@",
            " mov eax,m4[None+None*1+supscan.c::_map_xeo_ss]",
            " mov m4[esp+None*1+0x0],eax",
            " mov eax,m4[None+None*1+supscan.c::_map_yeo_ss]",
            "-mov edx,m4[None+None*1+0xafcf64]",
            "+mov edx,m4[None+None*1+0xafd068]",
            " mov m4[esp+None*1+0x10],eax",
            " mov eax,m4[esp+None*1+0x0]",
            " add eax,edx",
            "-mov edx,m4[None+None*1+0xafc3cc]",
            "-mov ecx,m4[None+None*1+0xafc40c]",
            "+mov edx,m4[None+None*1+0xafc4d0]",
            "+mov ecx,m4[None+None*1+0xafc510]",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x10]",
            " mov m4[esp+None*1+0x4],edx",
            "-mov edx,m4[None+None*1+0xafbc78]",
            "+mov edx,m4[None+None*1+0xafbd7c]",
            " add eax,ecx",
            "-mov ebx,m4[None+None*1+0xafcf68]",
            "+mov ebx,m4[None+None*1+0xafd06c]",
            " add edx,eax",
            " mov eax,m4[esp+None*1+0x0]",
            " mov m4[esp+None*1+0x14],edx",
            "-mov edx,m4[None+None*1+0xafc3cc]",
            "+mov edx,m4[None+None*1+0xafc4d0]",
            " add eax,ebx",
            " add edx,eax",
            "-mov esi,m4[None+None*1+0xafc410]",
            "+mov esi,m4[None+None*1+0xafc514]",
            " mov m4[esp+None*1+0x8],edx",
            " mov edx,m4[esp+None*1+0x10]",
            "-mov ecx,m4[None+None*1+0xafbc78]",
            "+mov ecx,m4[None+None*1+0xafbd7c]",
            " add edx,esi",
            " add ecx,edx",
            " mov m4[esp+None*1+0x18],ecx",
            "-mov ecx,m4[None+None*1+0xafc3c8]",
            "+mov ecx,m4[None+None*1+0xafc4cc]",
            " add ecx,eax",
            "-mov eax,m4[None+None*1+0xafbc74]",
            "+mov eax,m4[None+None*1+0xafbd78]",
            " mov ebx,0x4",
            " add eax,edx",
            " lea edx,m4[esp+None*1+0x10]"
          ]
        },
        {
          "symbol": "tads.c::get_tads_target_",
          "source": "E:\\apache\\source\\avionics\\tads.c",
          "first": "0x4607e0",
          "second": "0x460800",
          "first_instruction_count": 821,
          "second_instruction_count": 821,
          "diff": [
            "--- 0x4607e0",
            "+++ 0x460800",
            "@@ -163,11 +163,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff658]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -180,15 +180,15 @@",
            " mov ebx,m4[None+None*1+0x674a74]",
            " mov eax,m4[None+None*1+0x674a70]",
            " mov m4[None+None*1+0x674a7c],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xaff660]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -201,15 +201,15 @@",
            " mov ebx,m4[None+None*1+0x674a74]",
            " mov eax,m4[None+None*1+0x674a70]",
            " mov m4[None+None*1+0x674a80],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -387,11 +387,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff658]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -404,15 +404,15 @@",
            " mov ebx,m4[None+None*1+0x674a74]",
            " mov eax,m4[None+None*1+0x674a70]",
            " mov m4[None+None*1+0x674a7c],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xaff660]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -425,15 +425,15 @@",
            " mov ebx,m4[None+None*1+0x674a74]",
            " mov eax,m4[None+None*1+0x674a70]",
            " mov m4[None+None*1+0x674a80],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -505,11 +505,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff658]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -522,15 +522,15 @@",
            " mov ebx,m4[None+None*1+0x674a74]",
            " mov eax,m4[None+None*1+0x674a70]",
            " mov m4[None+None*1+0x674a7c],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xaff660]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -543,15 +543,15 @@",
            " mov ebx,m4[None+None*1+0x674a74]",
            " mov eax,m4[None+None*1+0x674a70]",
            " mov m4[None+None*1+0x674a80],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -640,11 +640,11 @@",
            " imul edx",
            " mov esi,eax",
            " mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff634]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff638]",
            "+mov eax,m4[None+None*1+0xaff658]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff65c]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -657,15 +657,15 @@",
            " mov ebx,m4[None+None*1+0x674a74]",
            " mov eax,m4[None+None*1+0x674a70]",
            " mov m4[None+None*1+0x674a7c],edx",
            "-mov edx,m4[None+None*1+0xaff63c]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff640]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff644]",
            "+mov edx,m4[None+None*1+0xaff660]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff664]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff668]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx",
            "@@ -678,15 +678,15 @@",
            " mov ebx,m4[None+None*1+0x674a74]",
            " mov eax,m4[None+None*1+0x674a70]",
            " mov m4[None+None*1+0x674a80],edx",
            "-mov edx,m4[None+None*1+0xaff648]",
            "-imul edx",
            "-mov esi,eax",
            "-mov edi,edx",
            "-mov eax,m4[None+None*1+0xaff64c]",
            "-imul ebx",
            "-mov ebx,eax",
            "-xchg ecx,edx",
            "-mov eax,m4[None+None*1+0xaff650]",
            "+mov edx,m4[None+None*1+0xaff66c]",
            "+imul edx",
            "+mov esi,eax",
            "+mov edi,edx",
            "+mov eax,m4[None+None*1+0xaff670]",
            "+imul ebx",
            "+mov ebx,eax",
            "+xchg ecx,edx",
            "+mov eax,m4[None+None*1+0xaff674]",
            " imul edx",
            " add eax,ebx",
            " adc edx,ecx"
          ]
        },
        {
          "symbol": "thread.c::_start_thread@4",
          "source": "E:\\library\\system\\thread.c",
          "first": "0x4802a0",
          "second": "0x4803c0",
          "first_instruction_count": 41,
          "second_instruction_count": 41,
          "diff": [
            "--- 0x4802a0",
            "+++ 0x4803c0",
            "@@ -33,7 +33,7 @@",
            " pop esi",
            " pop ebx",
            " ret 0x4",
            "-push 0x50e",
            "+push 0x518",
            " push text:'\\\\library\\\\system\\\\thread.c'",
            " push text:'Oh poo.'",
            " call debuglog.c::debug_log_fatal_long_"
          ]
        },
        {
          "symbol": "thread.c::end_thread_",
          "source": "E:\\library\\system\\thread.c",
          "first": "0x47fef0",
          "second": "0x480000",
          "first_instruction_count": 41,
          "second_instruction_count": 46,
          "diff": [
            "--- 0x47fef0",
            "+++ 0x480000",
            "@@ -1,41 +1,46 @@",
            "+push ebx",
            " push ecx",
            " push edx",
            "+push ebp",
            " sub esp,0x4",
            "+xor edx,edx",
            "+mov m4[esp+None*1+0x0],edx",
            " call m4[None+None*1+constant:e24c0d00]",
            "-xor edx,edx",
            "-mov ecx,m4[None+None*1+thread.c::_current_thread]",
            "-mov m4[None+None*1+thread.c::_number_of_threads],edx",
            "-test ecx,ecx",
            "-jl local:34",
            "-push edi",
            "-push ebx",
            "-lea eax,m4[None+ecx*4+0x0]",
            "-sub eax,ecx",
            "+xor ecx,ecx",
            "+mov ebx,m4[None+None*1+thread.c::_current_thread]",
            "+mov m4[None+None*1+thread.c::_number_of_threads],ecx",
            "+test ebx,ebx",
            "+jl local:37",
            "+mov edx,ebx",
            "+lea eax,m4[None+ebx*4+0x0]",
            "+sub eax,ebx",
            " shl eax,0x2",
            "-add eax,ecx",
            "+add eax,ebx",
            " shl eax,0x4",
            "+mov m4[eax+None*1+thread.c::_thread],ecx",
            "+xor edx,ebx",
            " mov ecx,m4[eax+None*1+constant:00000000]",
            "-mov m4[eax+None*1+thread.c::_thread],edx",
            " xor eax,eax",
            " cmp m4[edx+None*1+thread.c::_thread],0x0",
            "-jne local:38",
            "+jne local:43",
            " inc eax",
            " add edx,0xd0",
            " cmp eax,0x18",
            "-jl local:19",
            "-lea eax,m4[esp+None*1+0x8]",
            "+jl local:23",
            "+mov eax,esp",
            " push eax",
            "-mov edi,0x1",
            "-push edi",
            "+mov ebp,0x1",
            "+push ebp",
            " push ecx",
            "-mov m4[None+None*1+thread.c::_thread_rescheduled],edi",
            "+mov m4[None+None*1+thread.c::_thread_rescheduled],ebp",
            " call m4[None+None*1+constant:c64e0d00]",
            "-pop ebx",
            "-pop edi",
            "+call m4[None+None*1+constant:5c4d0d00]",
            " add esp,0x4",
            "+pop ebp",
            " pop edx",
            " pop ecx",
            "+pop ebx",
            " ret ",
            " lea ebx,m4[eax+None*1+0x1]",
            " mov m4[None+None*1+thread.c::_number_of_threads],ebx",
            "-jmp local:21",
            "+jmp local:25"
          ]
        },
        {
          "symbol": "thread.c::kill_thread_",
          "source": "E:\\library\\system\\thread.c",
          "first": "0x480010",
          "second": "0x480130",
          "first_instruction_count": 6,
          "second_instruction_count": 6,
          "diff": [
            "--- 0x480010",
            "+++ 0x480130",
            "@@ -1,4 +1,4 @@",
            "-push 0x350",
            "+push 0x35a",
            " push text:'\\\\library\\\\system\\\\thread.c'",
            " push text:'What the f**k is kill_thread'",
            " call debuglog.c::debug_log_fatal_long_"
          ]
        },
        {
          "symbol": "timeutil::__isindst_",
          "source": "timeutil",
          "first": "0x4cecc8",
          "second": "0x4cf528",
          "first_instruction_count": 233,
          "second_instruction_count": 233,
          "diff": [
            "--- 0x4cecc8",
            "+++ 0x4cf528",
            "@@ -6,7 +6,7 @@",
            " push ebp",
            " sub esp,0x1c",
            " mov ecx,eax",
            "-mov eax,m4[None+None*1+constant:bd6d5000]",
            "+mov eax,m4[None+None*1+constant:c56d5000]",
            " mov dl,m1[eax+None*1+0x0]",
            " xor edi,edi",
            " test dl,dl"
          ]
        },
        {
          "symbol": "tline.asm::_draw_translucent_line",
          "source": "\\library\\graphics\\tline.asm",
          "first": "0x4c4fa0",
          "second": "0x4c5800",
          "first_instruction_count": 162,
          "second_instruction_count": 162,
          "diff": [
            "--- 0x4c4fa0",
            "+++ 0x4c5800",
            "@@ -13,7 +13,7 @@",
            " or ebp,0x1",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            "-jmp m4[None+ebp*4+constant:f74f4c00]",
            "+jmp m4[None+ebp*4+constant:57584c00]",
            " mov ecx,edx",
            " inc ecx",
            " mov ebx,edx"
          ]
        },
        {
          "symbol": "tmpfl::__GetTmpPath_",
          "source": "tmpfl",
          "first": "0x4ccf75",
          "second": "0x4cd7d5",
          "first_instruction_count": 82,
          "second_instruction_count": 82,
          "diff": [
            "--- 0x4ccf75",
            "+++ 0x4cd7d5",
            "@@ -5,7 +5,7 @@",
            " push edi",
            " cmp m1[None+None*1+constant:00],0x0",
            " jne local:75",
            "-mov ebx,text:'8cN'",
            "+mov ebx,text:'0cN'",
            " jmp local:31",
            " call getenv::getenv_",
            " mov edx,eax"
          ]
        },
        {
          "symbol": "txtdline.asm::_draw_textured_dline",
          "source": "\\library\\graphics\\txtdline.asm",
          "first": "0x4c511c",
          "second": "0x4c597c",
          "first_instruction_count": 57,
          "second_instruction_count": 57,
          "diff": [
            "--- 0x4c511c",
            "+++ 0x4c597c",
            "@@ -10,7 +10,7 @@",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            " inc edx",
            "-jmp m4[None+ebp*4+constant:40514c00]",
            "+jmp m4[None+ebp*4+constant:a0594c00]",
            " mov ebx,m4[None+None*1+screen.c::_screen_y_inc]",
            " inc ebx",
            " mov ecx,m4[None+None*1+linetext.asm::_line_texture]"
          ]
        },
        {
          "symbol": "txtline.asm::_draw_textured_line",
          "source": "\\library\\graphics\\txtline.asm",
          "first": "0x4c51e0",
          "second": "0x4c5a40",
          "first_instruction_count": 155,
          "second_instruction_count": 155,
          "diff": [
            "--- 0x4c51e0",
            "+++ 0x4c5a40",
            "@@ -13,7 +13,7 @@",
            " or ebp,0x1",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            "-jmp m4[None+ebp*4+constant:38524c00]",
            "+jmp m4[None+ebp*4+constant:985a4c00]",
            " mov ecx,edx",
            " inc ecx",
            " mov ebx,edx"
          ]
        },
        {
          "symbol": "txttline.asm::_draw_textured_translucent_line",
          "source": "\\library\\graphics\\txttline.asm",
          "first": "0x4c5368",
          "second": "0x4c5bc8",
          "first_instruction_count": 194,
          "second_instruction_count": 194,
          "diff": [
            "--- 0x4c5368",
            "+++ 0x4c5bc8",
            "@@ -13,7 +13,7 @@",
            " or ebp,0x1",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            "-jmp m4[None+ebp*4+constant:d3534c00]",
            "+jmp m4[None+ebp*4+constant:335c4c00]",
            " mov ecx,edx",
            " inc ecx",
            " mov ebx,edx"
          ]
        },
        {
          "symbol": "txtxline.asm::_draw_textured_xored_line",
          "source": "\\library\\graphics\\txtxline.asm",
          "first": "0x4c55cc",
          "second": "0x4c5e2c",
          "first_instruction_count": 163,
          "second_instruction_count": 163,
          "diff": [
            "--- 0x4c55cc",
            "+++ 0x4c5e2c",
            "@@ -13,7 +13,7 @@",
            " or ebp,0x1",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            "-jmp m4[None+ebp*4+constant:26564c00]",
            "+jmp m4[None+ebp*4+constant:865e4c00]",
            " mov ecx,edx",
            " inc ecx",
            " mov ebx,edx"
          ]
        },
        {
          "symbol": "umaptask.c::notify_menu_formation_class_menu_",
          "source": "E:\\apache\\source\\menus\\maps\\umaptask.c",
          "first": "0x41ca58",
          "second": "0x41cab8",
          "first_instruction_count": 525,
          "second_instruction_count": 525,
          "diff": [
            "--- 0x41ca58",
            "+++ 0x41cab8",
            "@@ -10,11 +10,11 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov edx,m4[None+None*1+constant:fccc4d00]",
            "+mov edx,m4[None+None*1+constant:18cd4d00]",
            " push edx",
            " push 0x2",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:e8cc4d00]",
            "+mov ecx,m4[None+None*1+constant:04cd4d00]",
            " push ecx",
            " push 0x1",
            " push 0x34",
            "@@ -34,30 +34,30 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov edi,m4[None+None*1+constant:10dc4d00]",
            "+mov edi,m4[None+None*1+constant:2cdc4d00]",
            " push edi",
            " push 0x53",
            " push 0x34",
            " push 0x33",
            "-mov ebp,m4[None+None*1+constant:88d54d00]",
            "+mov ebp,m4[None+None*1+constant:a4d54d00]",
            " push ebp",
            " push 0x32",
            " push 0x34",
            " push 0x33",
            "-mov edx,m4[None+None*1+constant:70d34d00]",
            "+mov edx,m4[None+None*1+constant:8cd34d00]",
            " push edx",
            " push 0x26",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:48d34d00]",
            "+mov ecx,m4[None+None*1+constant:64d34d00]",
            " push ecx",
            " push 0x25",
            " push 0x34",
            " push 0x33",
            "-mov ebx,m4[None+None*1+constant:40cf4d00]",
            "+mov ebx,m4[None+None*1+constant:5ccf4d00]",
            " push ebx",
            " push 0xf",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:44cd4d00]",
            "+mov esi,m4[None+None*1+constant:60cd4d00]",
            " push esi",
            " push 0x4",
            " push 0x34",
            "@@ -77,19 +77,19 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov edi,m4[None+None*1+constant:50ce4d00]",
            "+mov edi,m4[None+None*1+constant:6cce4d00]",
            " push edi",
            " push 0xa",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:24ce4d00]",
            "+mov ebp,m4[None+None*1+constant:40ce4d00]",
            " push ebp",
            " push 0x9",
            " push 0x34",
            "-mov edx,m4[None+None*1+constant:f8cd4d00]",
            "+mov edx,m4[None+None*1+constant:14ce4d00]",
            " push edx",
            " push 0x8",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:cccd4d00]",
            "+mov ecx,m4[None+None*1+constant:e8cd4d00]",
            " push ecx",
            " push 0x7",
            " push 0x34",
            "@@ -109,57 +109,57 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov ecx,m4[None+None*1+constant:18d24d00]",
            "+mov ecx,m4[None+None*1+constant:34d24d00]",
            " push ecx",
            " push 0x1e",
            " push 0x34",
            " push 0x33",
            "-mov ebx,m4[None+None*1+constant:74d04d00]",
            "+mov ebx,m4[None+None*1+constant:90d04d00]",
            " push ebx",
            " push 0x15",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:40d04d00]",
            "+mov esi,m4[None+None*1+constant:5cd04d00]",
            " push esi",
            " push 0x14",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:d8cf4d00]",
            "+mov edi,m4[None+None*1+constant:f4cf4d00]",
            " push edi",
            " push 0x12",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:a4cf4d00]",
            "+mov ebp,m4[None+None*1+constant:c0cf4d00]",
            " push ebp",
            " push 0x11",
            " push 0x34",
            " push 0x33",
            "-mov edx,m4[None+None*1+constant:04d14d00]",
            "+mov edx,m4[None+None*1+constant:20d14d00]",
            " push edx",
            " push 0x18",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:d8d04d00]",
            "+mov ecx,m4[None+None*1+constant:f4d04d00]",
            " push ecx",
            " push 0x17",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:98db4d00]",
            "+mov ebx,m4[None+None*1+constant:b4db4d00]",
            " push ebx",
            " push 0x50",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:a0cd4d00]",
            "+mov esi,m4[None+None*1+constant:bccd4d00]",
            " push esi",
            " push 0x6",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:c0db4d00]",
            "+mov edi,m4[None+None*1+constant:dcdb4d00]",
            " push edi",
            " push 0x51",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:74cd4d00]",
            "+mov ebp,m4[None+None*1+constant:90cd4d00]",
            " push ebp",
            " push 0x5",
            " push 0x34",
            "-mov edx,m4[None+None*1+constant:e8db4d00]",
            "+mov edx,m4[None+None*1+constant:04dc4d00]",
            " push edx",
            " push 0x52",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:48db4d00]",
            "+mov ecx,m4[None+None*1+constant:64db4d00]",
            " push ecx",
            " push 0x4e",
            " push 0x34",
            "@@ -179,78 +179,78 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov ebp,m4[None+None*1+constant:d4d64d00]",
            "+mov ebp,m4[None+None*1+constant:f0d64d00]",
            " push ebp",
            " push 0x39",
            " push 0x34",
            "-mov edx,m4[None+None*1+constant:70d24d00]",
            "+mov edx,m4[None+None*1+constant:8cd24d00]",
            " push edx",
            " push 0x20",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:ecd54d00]",
            "-push ecx",
            "-push 0x34",
            "-push 0x34",
            "-mov ebx,m4[None+None*1+constant:60d14d00]",
            "+mov ecx,m4[None+None*1+constant:08d64d00]",
            "+push ecx",
            "+push 0x34",
            "+push 0x34",
            "+mov ebx,m4[None+None*1+constant:7cd14d00]",
            " push ebx",
            " push 0x1a",
            " push 0x34",
            " push 0x33",
            "-mov esi,m4[None+None*1+constant:a0dc4d00]",
            "+mov esi,m4[None+None*1+constant:bcdc4d00]",
            " push esi",
            " push 0x57",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:84dc4d00]",
            "+mov edi,m4[None+None*1+constant:a0dc4d00]",
            " push edi",
            " push 0x56",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:68dc4d00]",
            "+mov ebp,m4[None+None*1+constant:84dc4d00]",
            " push ebp",
            " push 0x55",
            " push 0x34",
            "-mov edx,m4[None+None*1+constant:c4d34d00]",
            "+mov edx,m4[None+None*1+constant:e0d34d00]",
            " push edx",
            " push 0x28",
            " push 0x34",
            " push 0x33",
            "-mov ecx,m4[None+None*1+constant:1cd34d00]",
            "+mov ecx,m4[None+None*1+constant:38d34d00]",
            " push ecx",
            " push 0x24",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:f4d24d00]",
            "+mov ebx,m4[None+None*1+constant:10d34d00]",
            " push ebx",
            " push 0x23",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:ecd34d00]",
            "+mov esi,m4[None+None*1+constant:08d44d00]",
            " push esi",
            " push 0x29",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:c8d24d00]",
            "+mov edi,m4[None+None*1+constant:e4d24d00]",
            " push edi",
            " push 0x22",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:9cd24d00]",
            "-push ebp",
            "-push 0x21",
            "-push 0x34",
            "-push 0x33",
            "-mov edx,m4[None+None*1+constant:acd64d00]",
            "+mov ebp,m4[None+None*1+constant:b8d24d00]",
            "+push ebp",
            "+push 0x21",
            "+push 0x34",
            "+push 0x33",
            "+mov edx,m4[None+None*1+constant:c8d64d00]",
            " push edx",
            " push 0x38",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:80d64d00]",
            "+mov ecx,m4[None+None*1+constant:9cd64d00]",
            " push ecx",
            " push 0x37",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:b8d54d00]",
            "-push ebx",
            "-push 0x33",
            "-push 0x34",
            "-mov esi,m4[None+None*1+constant:a8d04d00]",
            "+mov ebx,m4[None+None*1+constant:d4d54d00]",
            "+push ebx",
            "+push 0x33",
            "+push 0x34",
            "+mov esi,m4[None+None*1+constant:c4d04d00]",
            " push esi",
            " push 0x16",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:14cd4d00]",
            "+mov edi,m4[None+None*1+constant:30cd4d00]",
            " push edi",
            " push 0x3",
            " push 0x34",
            "@@ -270,85 +270,85 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov ebx,m4[None+None*1+constant:48d84d00]",
            "+mov ebx,m4[None+None*1+constant:64d84d00]",
            " push ebx",
            " push 0x42",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:10d84d00]",
            "+mov esi,m4[None+None*1+constant:2cd84d00]",
            " push esi",
            " push 0x41",
            " push 0x34",
            " push 0x33",
            "-mov edi,m4[None+None*1+constant:54d54d00]",
            "+mov edi,m4[None+None*1+constant:70d54d00]",
            " push edi",
            " push 0x31",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:20d54d00]",
            "+mov ebp,m4[None+None*1+constant:3cd54d00]",
            " push ebp",
            " push 0x30",
            " push 0x34",
            " push 0x33",
            "-mov edx,m4[None+None*1+constant:74d44d00]",
            "+mov edx,m4[None+None*1+constant:90d44d00]",
            " push edx",
            " push 0x2c",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:44d44d00]",
            "+mov ecx,m4[None+None*1+constant:60d44d00]",
            " push ecx",
            " push 0x2b",
            " push 0x34",
            " push 0x33",
            "-mov ebx,m4[None+None*1+constant:88d74d00]",
            "+mov ebx,m4[None+None*1+constant:a4d74d00]",
            " push ebx",
            " push 0x3e",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:40dc4d00]",
            "+mov esi,m4[None+None*1+constant:5cdc4d00]",
            " push esi",
            " push 0x54",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:68d74d00]",
            "+mov edi,m4[None+None*1+constant:84d74d00]",
            " push edi",
            " push 0x3d",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:98d34d00]",
            "+mov ebp,m4[None+None*1+constant:b4d34d00]",
            " push ebp",
            " push 0x27",
            " push 0x34",
            "-mov edx,m4[None+None*1+constant:44d24d00]",
            "+mov edx,m4[None+None*1+constant:60d24d00]",
            " push edx",
            " push 0x1f",
            " push 0x34",
            " push 0x33",
            "-mov ecx,m4[None+None*1+constant:0cd04d00]",
            "+mov ecx,m4[None+None*1+constant:28d04d00]",
            " push ecx",
            " push 0x13",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:18d44d00]",
            "+mov ebx,m4[None+None*1+constant:34d44d00]",
            " push ebx",
            " push 0x2a",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:74cf4d00]",
            "+mov esi,m4[None+None*1+constant:90cf4d00]",
            " push esi",
            " push 0x10",
            " push 0x34",
            " push 0x33",
            "-mov edi,m4[None+None*1+constant:f4d44d00]",
            "+mov edi,m4[None+None*1+constant:10d54d00]",
            " push edi",
            " push 0x2f",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:94d14d00]",
            "+mov ebp,m4[None+None*1+constant:b0d14d00]",
            " push ebp",
            " push 0x1b",
            " push 0x34",
            " push 0x33",
            "-mov edx,m4[None+None*1+constant:30d14d00]",
            "+mov edx,m4[None+None*1+constant:4cd14d00]",
            " push edx",
            " push 0x19",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:14cf4d00]",
            "+mov ecx,m4[None+None*1+constant:30cf4d00]",
            " push ecx",
            " push 0xe",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:e8ce4d00]",
            "+mov ebx,m4[None+None*1+constant:04cf4d00]",
            " push ebx",
            " push 0xd",
            " push 0x34",
            "@@ -368,33 +368,33 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov ebp,m4[None+None*1+constant:d0d44d00]",
            "+mov ebp,m4[None+None*1+constant:ecd44d00]",
            " push ebp",
            " push 0x2e",
            " push 0x34",
            "-mov edx,m4[None+None*1+constant:a4d44d00]",
            "+mov edx,m4[None+None*1+constant:c0d44d00]",
            " push edx",
            " push 0x2d",
            " push 0x34",
            " push 0x33",
            "-mov ecx,m4[None+None*1+constant:c0dc4d00]",
            "+mov ecx,m4[None+None*1+constant:dcdc4d00]",
            " push ecx",
            " push 0x58",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:70db4d00]",
            "+mov ebx,m4[None+None*1+constant:8cdb4d00]",
            " push ebx",
            " push 0x4f",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:c8d14d00]",
            "+mov esi,m4[None+None*1+constant:e4d14d00]",
            " push esi",
            " push 0x1c",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:f0d14d00]",
            "+mov edi,m4[None+None*1+constant:0cd24d00]",
            " push edi",
            " push 0x1d",
            " push 0x34",
            " push 0x33",
            "-mov ebp,m4[None+None*1+constant:7cce4d00]",
            "+mov ebp,m4[None+None*1+constant:98ce4d00]",
            " push ebp",
            " push 0xb",
            " push 0x34",
            "@@ -414,15 +414,15 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov edx,m4[None+None*1+constant:48d74d00]",
            "+mov edx,m4[None+None*1+constant:64d74d00]",
            " push edx",
            " push 0x3c",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:24d74d00]",
            "+mov ecx,m4[None+None*1+constant:40d74d00]",
            " push ecx",
            " push 0x3b",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:00d74d00]",
            "+mov ebx,m4[None+None*1+constant:1cd74d00]",
            " push ebx",
            " push 0x3a",
            " push 0x34",
            "@@ -442,71 +442,71 @@",
            " push 0x0",
            " push umaptask.c::notify_menu_formation_type_menu_",
            " push 0x21",
            "-mov edx,m4[None+None*1+constant:00db4d00]",
            "+mov edx,m4[None+None*1+constant:1cdb4d00]",
            " push edx",
            " push 0x4d",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:b4da4d00]",
            "+mov ecx,m4[None+None*1+constant:d0da4d00]",
            " push ecx",
            " push 0x4c",
            " push 0x34",
            " push 0x33",
            "-mov ebx,m4[None+None*1+constant:70da4d00]",
            "+mov ebx,m4[None+None*1+constant:8cda4d00]",
            " push ebx",
            " push 0x4b",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:28da4d00]",
            "+mov esi,m4[None+None*1+constant:44da4d00]",
            " push esi",
            " push 0x4a",
            " push 0x34",
            " push 0x33",
            "-mov edi,m4[None+None*1+constant:f0d94d00]",
            "+mov edi,m4[None+None*1+constant:0cda4d00]",
            " push edi",
            " push 0x49",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:b4d94d00]",
            "+mov ebp,m4[None+None*1+constant:d0d94d00]",
            " push ebp",
            " push 0x48",
            " push 0x34",
            "-mov edx,m4[None+None*1+constant:74d94d00]",
            "+mov edx,m4[None+None*1+constant:90d94d00]",
            " push edx",
            " push 0x47",
            " push 0x34",
            " push 0x33",
            "-mov ecx,m4[None+None*1+constant:e4d74d00]",
            "+mov ecx,m4[None+None*1+constant:00d84d00]",
            " push ecx",
            " push 0x40",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:a8d74d00]",
            "+mov ebx,m4[None+None*1+constant:c4d74d00]",
            " push ebx",
            " push 0x3f",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:50d64d00]",
            "+mov esi,m4[None+None*1+constant:6cd64d00]",
            " push esi",
            " push 0x36",
            " push 0x34",
            "-mov edi,m4[None+None*1+constant:acce4d00]",
            "+mov edi,m4[None+None*1+constant:c8ce4d00]",
            " push edi",
            " push 0xc",
            " push 0x34",
            "-mov ebp,m4[None+None*1+constant:14d64d00]",
            "+mov ebp,m4[None+None*1+constant:30d64d00]",
            " push ebp",
            " push 0x35",
            " push 0x34",
            " push 0x33",
            "-mov edx,m4[None+None*1+constant:38d94d00]",
            "+mov edx,m4[None+None*1+constant:54d94d00]",
            " push edx",
            " push 0x46",
            " push 0x34",
            "-mov ecx,m4[None+None*1+constant:f8d84d00]",
            "+mov ecx,m4[None+None*1+constant:14d94d00]",
            " push ecx",
            " push 0x45",
            " push 0x34",
            "-mov ebx,m4[None+None*1+constant:bcd84d00]",
            "+mov ebx,m4[None+None*1+constant:d8d84d00]",
            " push ebx",
            " push 0x44",
            " push 0x34",
            "-mov esi,m4[None+None*1+constant:7cd84d00]",
            "+mov esi,m4[None+None*1+constant:98d84d00]",
            " push esi",
            " push 0x43",
            " push 0x34"
          ]
        },
        {
          "symbol": "userdr.c::construct_apache_drone_",
          "source": "E:\\apache\\source\\drone\\userdr.c",
          "first": "0x42f83c",
          "second": "0x42f89c",
          "first_instruction_count": 56,
          "second_instruction_count": 56,
          "diff": [
            "--- 0x42f83c",
            "+++ 0x42f89c",
            "@@ -23,20 +23,20 @@",
            " mov edi,m4[edi+None*1+0x1c]",
            " mov m4[None+None*1+model.c::_model_vp],ebp",
            " mov ebp,m4[edi+None*1+0x8]",
            "-mov m4[None+None*1+0x62e6a8],ebp",
            "+mov m4[None+None*1+0x62e548],ebp",
            " mov ebp,m4[edi+None*1+0x18]",
            " mov edx,model.c::_model_rel_vp_instance",
            "-mov m4[None+None*1+0x62e6b4],ebp",
            "+mov m4[None+None*1+0x62e554],ebp",
            " mov ebp,m4[edi+None*1+0xc]",
            " mov ah,m1[esi+None*1+0x1c5]",
            "-mov m4[None+None*1+0x62e6ac],ebp",
            "+mov m4[None+None*1+0x62e54c],ebp",
            " mov ebp,m4[edi+None*1+0x1c]",
            " mov m4[None+None*1+model.c::_model_rel_vp],edx",
            "-mov m4[None+None*1+0x62e6b8],ebp",
            "+mov m4[None+None*1+0x62e558],ebp",
            " mov ebp,m4[edi+None*1+0x10]",
            " mov edi,m4[edi+None*1+0x20]",
            "-mov m4[None+None*1+0x62e6b0],ebp",
            "-mov m4[None+None*1+0x62e6bc],edi",
            "+mov m4[None+None*1+0x62e550],ebp",
            "+mov m4[None+None*1+0x62e55c],edi",
            " test ah,0x4",
            " jne local:48",
            " pop ebp"
          ]
        },
        {
          "symbol": "views.c::enter_view_mode_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x461a9c",
          "second": "0x461abc",
          "first_instruction_count": 184,
          "second_instruction_count": 184,
          "diff": [
            "--- 0x461a9c",
            "+++ 0x461abc",
            "@@ -89,16 +89,16 @@",
            " mov m4[None+None*1+views.c::_remote_camera_position],edx",
            " mov edx,m4[eax+None*1+0x4]",
            " mov eax,m4[eax+None*1+0x8]",
            "-mov m4[None+None*1+0x674b28],eax",
            "+mov m4[None+None*1+0x674b2c],eax",
            " mov eax,m4[None+None*1+views.c::_remote_camera_position]",
            "-mov m4[None+None*1+0x674b24],edx",
            "+mov m4[None+None*1+0x674b28],edx",
            " call fxterr.c::get_terrain_elevation_",
            "-mov edi,m4[None+None*1+0x674b28]",
            "+mov edi,m4[None+None*1+0x674b2c]",
            " add eax,0x400",
            " cmp eax,edi",
            " jge local:100",
            " mov eax,edi",
            "-mov m4[None+None*1+0x674b28],eax",
            "+mov m4[None+None*1+0x674b2c],eax",
            " add esp,0xc",
            " pop ebp",
            " pop edi"
          ]
        },
        {
          "symbol": "views.c::get_remote_camera_view_",
          "source": "E:\\apache\\source\\avionics\\views.c",
          "first": "0x462810",
          "second": "0x462830",
          "first_instruction_count": 38,
          "second_instruction_count": 38,
          "diff": [
            "--- 0x462810",
            "+++ 0x462830",
            "@@ -10,11 +10,11 @@",
            " mov ecx,m4[eax+None*1+0x0]",
            " sub ecx,ebx",
            " mov m4[esp+None*1+0x0],ecx",
            "-mov esi,m4[None+None*1+0x674b24]",
            "+mov esi,m4[None+None*1+0x674b28]",
            " mov ecx,m4[eax+None*1+0x4]",
            " sub ecx,esi",
            " mov m4[esp+None*1+0x4],ecx",
            "-mov edi,m4[None+None*1+0x674b28]",
            "+mov edi,m4[None+None*1+0x674b2c]",
            " mov eax,m4[eax+None*1+0x8]",
            " sub eax,edi",
            " mov m4[esp+None*1+0x8],eax",
            "@@ -23,9 +23,9 @@",
            " call vector.c::get_3d_normalised_unit_vector_",
            " mov eax,m4[None+None*1+views.c::_remote_camera_position]",
            " mov m4[edx+None*1+0xfffffff4],eax",
            "-mov eax,m4[None+None*1+0x674b24]",
            "+mov eax,m4[None+None*1+0x674b28]",
            " mov m4[edx+None*1+0xfffffff8],eax",
            "-mov eax,m4[None+None*1+0x674b28]",
            "+mov eax,m4[None+None*1+0x674b2c]",
            " mov m4[edx+None*1+0xfffffffc],eax",
            " mov eax,esp",
            " call matrix.c::get_matrix_from_unit_vector_"
          ]
        },
        {
          "symbol": "vstxline.asm::_draw_textured_xored_video_line",
          "source": "\\library\\graphics\\vstxline.asm",
          "first": "0x4c5a24",
          "second": "0x4c6284",
          "first_instruction_count": 217,
          "second_instruction_count": 217,
          "diff": [
            "--- 0x4c5a24",
            "+++ 0x4c6284",
            "@@ -11,7 +11,7 @@",
            " cmp edx,esi",
            " jbe local:13",
            " or ebp,0x1",
            "-jmp m4[None+ebp*4+constant:785a4c00]",
            "+jmp m4[None+ebp*4+constant:d8624c00]",
            " mov edi,edx",
            " inc edi",
            " mov ebp,edx"
          ]
        },
        {
          "symbol": "vsxline.asm::_draw_xored_video_line",
          "source": "\\library\\graphics\\vsxline.asm",
          "first": "0x4c58dc",
          "second": "0x4c613c",
          "first_instruction_count": 176,
          "second_instruction_count": 176,
          "diff": [
            "--- 0x4c58dc",
            "+++ 0x4c613c",
            "@@ -11,7 +11,7 @@",
            " cmp edx,esi",
            " jbe local:13",
            " or ebp,0x1",
            "-jmp m4[None+ebp*4+constant:25594c00]",
            "+jmp m4[None+ebp*4+constant:85614c00]",
            " mov edi,edx",
            " inc edi",
            " mov ebp,edx"
          ]
        },
        {
          "symbol": "war.c::initialise_warmodel_map_",
          "source": "E:\\apache\\source\\warmodel\\war.c",
          "first": "0x4634c8",
          "second": "0x4634e8",
          "first_instruction_count": 21,
          "second_instruction_count": 21,
          "diff": [
            "--- 0x4634c8",
            "+++ 0x4634e8",
            "@@ -14,7 +14,7 @@",
            " pop ebx",
            " add eax,0x70",
            " xor dl,dl",
            "-mov m1[eax+None*1+views.c::_remote_camera_position],dl",
            "+mov m1[eax+None*1+views.c::_crash_camera_heading],dl",
            " cmp eax,0x36b00",
            " jne local:14",
            " pop edx"
          ]
        },
        {
          "symbol": "winfo.c::_patch_apache_ships_info",
          "source": "E:\\apache\\source\\weapons\\winfo.c",
          "first": "0x451970",
          "second": "0x4519d0",
          "first_instruction_count": 189,
          "second_instruction_count": 193,
          "diff": [
            "--- 0x451970",
            "+++ 0x4519d0",
            "@@ -3,7 +3,9 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[ecx+None*1+0x21c0004e],dh",
            "+add al,dl",
            "+and m4[esi+None*1+0x0],ecx",
            "+fsub m8[ecx+None*1+0x0]",
            " dec esi",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "@@ -19,10 +21,59 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add ah,cl",
            "+add al,ch",
            " and m4[esi+None*1+0x0],ecx",
            "-fsub m4[ecx+None*1+0x0]",
            "+hlt ",
            "+and m4[esi+None*1+0x0],ecx",
            "+add m4[eax+None*1+0x0],eax",
            "+add m1[eax+None*1+0x0],al",
            "+add eax,m4[eax+None*1+0x0]",
            "+add m1[eax+None*1+0x0],al",
            "+adc m1[edi+None*1+0x0],ah",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+in al,0x1",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[edx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+and cl,m1[esi+None*1+0x0]",
            "+sbb m1[edx+None*1+0x0],ah",
            " dec esi",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:50",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add cl,ch",
            "+add m4[eax+None*1+0x0],eax",
            "+add al,cl",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+eax*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+and al,0x22",
            "+dec esi",
            "+add m1[edx+None*1+0x0],bh",
            "+dec esi",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:68",
            "+add m1[eax+None*1+0x0],al",
            "+and m1[edi+None*1+0x0],ah",
            "+mov al,m1[None+None*1+0x32000001]",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[edx+None*1+0x4e],al",
            "+add m1[edx+None*1+0x4e],bl",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            "@@ -32,63 +83,12 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-in al,0x1",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[edx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add ah,ah",
            "-and m4[esi+None*1+0x0],ecx",
            "-cld ",
            "-and m4[esi+None*1+0x0],ecx",
            "-add m4[eax+None*1+0x0],eax",
            "-add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "-add m1[eax+None*1+0x0],al",
            "-xor m1[ebp+None*1+0x0],dh",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add cl,ch",
            "-add m4[eax+None*1+0x0],eax",
            "-add al,cl",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+eax*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-or m1[edx+None*1+0x0],ah",
            "-dec esi",
            "-add m1[eax+None*1+0x0],ah",
            "-and cl,m1[esi+None*1+0x0]",
            "-add m4[eax+None*1+0x0],eax",
            "-add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "-add m1[eax+None*1+0x0],al",
            "-xor m1[ebp+None*1+0x0],dh",
            "-add m1[eax+None*1+0x0],al",
            "-and m1[edi+None*1+0x0],ah",
            "-mov al,m1[None+None*1+0x32000001]",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[ecx+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],ch",
            "-and cl,m1[esi+None*1+0x0]",
            "-inc eax",
            "-and cl,m1[esi+None*1+0x0]",
            "-add m4[eax+None*1+0x0],eax",
            "-add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "-add m1[eax+None*1+0x0],al",
            "-adc m1[edi+None*1+0x0],ah",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],al",
            " mov m4[None+None*1+0x32000001],eax",
            " add m1[eax+None*1+0x0],al",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x22],cl",
            "-dec esi",
            "-add m1[eax+None*1+0x22],al",
            "-dec esi",
            "+add m1[edx+None*1+0x4e],ah",
            "+add m1[edx+None*1+0x4e],bl",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            "@@ -103,15 +103,13 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x22],ah",
            "-dec esi",
            "-add m1[edx+None*1+0x4e],dh",
            "-add m1[ecx+None*1+0x0],al",
            "+add m1[edx+None*1+0x4e],bh",
            "+add m1[eax+None*1+0x1004e22],dl",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],dh",
            "-jne local:114",
            "+jne local:112",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x1],al",
            "@@ -119,28 +117,30 @@",
            " enter 0x0,0x0",
            " add al,0x0",
            " add m1[eax+None*1+0x0],al",
            "-jl winfo.c::_patch_apache_ships_info+0x12c",
            "+cwde ",
            "+and cl,m1[esi+None*1+0x0]",
            "+cmp al,0x22",
            " dec esi",
            "-add m1[eax+None*1+0x0],ah",
            "-and cl,m1[esi+None*1+0x0]",
            "-add m4[eax+None*1+0x0],eax",
            "+add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "+add m1[ebx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-xor m1[ebp+None*1+0x0],dh",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:129",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0x0],al",
            " add al,m1[eax+None*1+0x0]",
            " add m1[esi+None*1+0x4000000],dl",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0xa4004e22],dl",
            "-and cl,m1[esi+None*1+0x0]",
            "-add m4[eax+None*1+0x0],eax",
            "+add m1[edx+None*1+0x22c0004e],ch",
            "+dec esi",
            "+add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "+add m1[ebx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-xor m1[ebp+None*1+0x0],dh",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:143",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add ch,bh",
            "@@ -148,14 +148,16 @@",
            " add m1[eax+eax*1+0x0],ah",
            " add m1[edx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[edx+None*1+0x22c4004e],ch",
            "+add al,cl",
            "+and cl,m1[esi+None*1+0x0]",
            "+loopne winfo.c::_patch_apache_ships_info+0x178",
            " dec esi",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],dh",
            "-jne local:158",
            "+jne local:160",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x1],bl",
            "@@ -164,9 +166,9 @@",
            " add m1[eax+None*1+0x0],al",
            " add m4[eax+None*1+0x0],eax",
            " add m1[eax+None*1+0x0],al",
            "-shl m1[edx+None*1+0x0],0x1",
            "-dec esi",
            "-add ah,bl",
            "+in al,dx",
            "+and cl,m1[esi+None*1+0x0]",
            "+clc ",
            " and cl,m1[esi+None*1+0x0]",
            " add m4[eax+None*1+0x0],eax",
            " add m1[eax+None*1+0x0],al",
            "@@ -177,9 +179,11 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0xc8000000],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[None+None*1+0xe8000000],al",
            "-and cl,m1[esi+None*1+0x0]",
            "-call 0x1456933",
            "+add m1[None+None*1+0x4000000],al",
            "+and ecx,m4[esi+None*1+0x0]",
            "+add al,0x23",
            "+dec esi",
            "+add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al"
          ]
        },
        {
          "symbol": "winfo.c::_patch_hind_ships_info",
          "source": "E:\\apache\\source\\weapons\\winfo.c",
          "first": "0x4517c0",
          "second": "0x451820",
          "first_instruction_count": 195,
          "second_instruction_count": 194,
          "diff": [
            "--- 0x4517c0",
            "+++ 0x451820",
            "@@ -2,7 +2,9 @@",
            " add m1[eax+eax*1+0x0],ah",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[ecx+None*1+0x21c0004e],dh",
            "+add al,dl",
            "+and m4[esi+None*1+0x0],ecx",
            "+fsub m8[ecx+None*1+0x0]",
            " dec esi",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "@@ -19,15 +21,13 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "+call 0xf4456676",
            " and m4[esi+None*1+0x0],ecx",
            "-fsub m4[ecx+None*1+0x0]",
            "-dec esi",
            "-add m1[ecx+None*1+0x0],al",
            "+add m4[eax+None*1+0x0],eax",
            " add m1[eax+None*1+0x0],al",
            "-add m1[ebx+None*1+0x0],al",
            "+add eax,m4[eax+None*1+0x0]",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],dl",
            "-daa ",
            "+adc m1[edi+None*1+0x0],ah",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "@@ -36,15 +36,16 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add ah,ah",
            "-and m4[esi+None*1+0x0],ecx",
            "-cld ",
            "-and m4[esi+None*1+0x0],ecx",
            "-add m4[eax+None*1+0x0],eax",
            " add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "+and cl,m1[esi+None*1+0x0]",
            "+sbb m1[edx+None*1+0x0],ah",
            "+dec esi",
            "+add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-xor m1[ebp+None*1+0x0],dh",
            "+add m1[ebx+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],al",
            "+add m1[eax+None*1+0x0],dh",
            "+jne local:48",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add cl,ch",
            "@@ -52,9 +53,9 @@",
            " add m1[eax+eax*1+0x0],ah",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],cl",
            "-and cl,m1[esi+None*1+0x0]",
            "-and m1[edx+None*1+0x0],ah",
            "+add m1[edx+None*1+0x0],ah",
            "+dec esi",
            "+add m1[edx+None*1+0x0],bh",
            " dec esi",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "@@ -68,15 +69,14 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x0],ch",
            "-and cl,m1[esi+None*1+0x0]",
            "-inc eax",
            "-and cl,m1[esi+None*1+0x0]",
            "-add m4[eax+None*1+0x0],eax",
            "+add m1[edx+None*1+0x4e],al",
            "+add m1[edx+None*1+0x4e],bl",
            "+add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add eax,m4[eax+None*1+0x0]",
            "+add m1[ebx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-adc m1[edi+None*1+0x0],ah",
            "+add m1[eax+None*1+0x0],dl",
            "+daa ",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "@@ -84,10 +84,8 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x22],cl",
            "-dec esi",
            "-add m1[eax+None*1+0x22],al",
            "-dec esi",
            "+add m1[edx+None*1+0x4e],ah",
            "+add m1[edx+None*1+0x4e],bl",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            "@@ -103,16 +101,14 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-pushal ",
            "-and cl,m1[esi+None*1+0x0]",
            "-je winfo.c::_patch_hind_ships_info+0x10c",
            "+jl winfo.c::_patch_hind_ships_info+0x108",
            " dec esi",
            "-add m1[ecx+None*1+0x0],al",
            "+add m1[eax+None*1+0x1004e22],dl",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],dh",
            "-jne local:116",
            "+jne local:111",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x1],al",
            "@@ -120,8 +116,7 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[edx+None*1+0x4e],bh",
            "-add m1[eax+None*1+0x0],ah",
            "+add m1[eax+None*1+0x3c004e22],bl",
            " and cl,m1[esi+None*1+0x0]",
            " add m4[eax+None*1+0x0],eax",
            " add m1[eax+None*1+0x0],al",
            "@@ -136,15 +131,15 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[eax+None*1+0x29],cl",
            "+add m1[ecx+ebp*1+0x4e],ah",
            "+add m1[eax+None*1+0x29],dh",
            " dec esi",
            "-add m1[ecx+ebp*1+0x4e],dl",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],dh",
            "-jne local:148",
            "+jne local:142",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add ch,bh",
            "@@ -152,14 +147,16 @@",
            " add m1[eax+eax*1+0x0],ah",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add m1[edx+None*1+0x22c4004e],ch",
            "+add al,cl",
            "+and cl,m1[esi+None*1+0x0]",
            "+loopne winfo.c::_patch_hind_ships_info+0x178",
            " dec esi",
            " add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],dh",
            "-jne local:163",
            "+jne local:159",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x1],bl",
            "@@ -168,9 +165,9 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-shl m1[edx+None*1+0x0],0x1",
            "-dec esi",
            "-add ah,bl",
            "+in al,dx",
            "+and cl,m1[esi+None*1+0x0]",
            "+clc ",
            " and cl,m1[esi+None*1+0x0]",
            " add m4[eax+None*1+0x0],eax",
            " add m1[eax+None*1+0x0],al",
            "@@ -183,9 +180,11 @@",
            " add m1[eax+None*1+0x0],al",
            " add m1[edx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "-add al,ch",
            "-and cl,m1[esi+None*1+0x0]",
            "-call 0x1456783",
            "+add m1[ebx+None*1+0x0],al",
            "+dec esi",
            "+add m1[ebx+None*1+0x0],al",
            "+dec esi",
            "+add m1[ecx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[ebx+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al"
          ]
        },
        {
          "symbol": "winfo.c::_patch_info",
          "source": "E:\\apache\\source\\weapons\\winfo.c",
          "first": "0x44e880",
          "second": "0x44e8e0",
          "first_instruction_count": 51,
          "second_instruction_count": 50,
          "diff": [
            "--- 0x44e880",
            "+++ 0x44e8e0",
            "@@ -4,9 +4,9 @@",
            " add m1[eax+None*1+0x0],al",
            " inc m4[eax+None*1+0x0]",
            " add m1[eax+None*1+0x0],al",
            "-in al,dx",
            "-adc ecx,m4[esi+None*1+0x0]",
            "-add m1[esi+ecx*2+0x0],dl",
            "+or m1[esi+ecx*2+0x0],dl",
            "+add m1[esp+edx*1+0x0],bl",
            "+dec esi",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "@@ -22,10 +22,10 @@",
            " add m1[eax+None*1+0x0],al",
            " add bh,bh",
            " add m1[eax+None*1+0x0],al",
            "-add m1[esp+edx*1+0x0],cl",
            "-dec esi",
            "-add m1[esp+edx*1+0x0],bl",
            "-dec esi",
            "+add m1[eax+None*1+0x0],ch",
            "+adc al,0x4e",
            "+add m1[eax+None*1+0x0],bh",
            "+adc al,0x4e",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            "@@ -41,10 +41,9 @@",
            " add m1[eax+None*1+0x0],al",
            " inc m4[eax+None*1+0x0]",
            " add m1[eax+None*1+0x0],al",
            "-and al,0x14",
            "-dec esi",
            "-add m1[eax+None*1+0x0],bh",
            "+inc eax",
            " adc al,0x4e",
            "+add m1[esp+edx*1+0x4e],dl",
            " add m1[eax+None*1+0x0],al",
            " add m1[eax+None*1+0x0],al",
            " add m1[None+None*1+0x50000000],al"
          ]
        },
        {
          "symbol": "winfo.c::initialise_weapon_data_",
          "source": "E:\\apache\\source\\weapons\\winfo.c",
          "first": "0x451b60",
          "second": "0x451bc0",
          "first_instruction_count": 1478,
          "second_instruction_count": 1478,
          "diff": [
            "--- 0x451b60",
            "+++ 0x451bc0",
            "@@ -176,7 +176,7 @@",
            " mov m1[None+None*1+0x672e7b],bh",
            " call winfo.c::like_",
            " mov eax,0x12c00",
            "-mov edx,cap.c::do_cap_scan_+0xc4",
            "+mov edx,cap.c::do_cap_scan_+0xa4",
            " mov ebx,0x51400",
            " mov m4[None+None*1+0x672b78],ebp",
            " mov m4[None+None*1+0x672b74],ecx",
            "@@ -269,7 +269,7 @@",
            " mov ebx,0x258",
            " mov esi,0x64",
            " call winfo.c::like_",
            "-mov eax,cap.c::do_cap_scan_+0xc4",
            "+mov eax,cap.c::do_cap_scan_+0xa4",
            " mov edx,0x1e00",
            " mov m4[None+None*1+0x672c48],edi",
            " mov m4[None+None*1+0x672c34],ebp",
            "@@ -340,7 +340,7 @@",
            " mov m4[None+None*1+0x673168],eax",
            " mov m4[None+None*1+0x67317c],ecx",
            " mov edx,0x32",
            "-mov ebx,cap.c::do_cap_scan_+0xc4",
            "+mov ebx,cap.c::do_cap_scan_+0xa4",
            " mov eax,0x4",
            " mov esi,0x2a4",
            " mov cl,0x3",
            "@@ -358,7 +358,7 @@",
            " mov m1[None+None*1+0x6730e9],cl",
            " mov m4[None+None*1+0x673110],ebp",
            " mov ecx,0x3e800",
            "-mov ebx,cap.c::do_cap_scan_+0xc4",
            "+mov ebx,cap.c::do_cap_scan_+0xa4",
            " mov esi,0x3e8",
            " mov edi,0x85",
            " mov ebp,0x29400",
            "@@ -375,7 +375,7 @@",
            " xor eax,eax",
            " mov m4[None+None*1+0x6733a0],esi",
            " call winfo.c::like_",
            "-mov eax,prefscrn.c::do_preferences_calibration_+0x29c",
            "+mov eax,prefscrn.c::do_preferences_calibration_+0x23c",
            " mov edx,0x1e00",
            " mov esi,0x64",
            " mov m4[None+None*1+0x672d18],edi",
            "@@ -519,7 +519,7 @@",
            " mov m1[None+None*1+0x6733c3],bl",
            " mov m4[None+None*1+0x6733e8],ecx",
            " mov bh,0x4",
            "-mov esi,scancirc.asm::_scan_convert_circle+0x1d4",
            "+mov esi,drawtmtx.asm::_draw_translucent_masked_textured_scan_lines+0x6e4",
            " mov edi,0x212",
            " mov ebp,0x138800",
            " mov ch,m1[None+None*1+0x6733c0]",
            "@@ -587,7 +587,7 @@",
            " mov eax,0x18",
            " mov m4[None+None*1+0x673424],esi",
            " xor edi,edi",
            "-mov esi,scancirc.asm::_scan_convert_circle+0x1d4",
            "+mov esi,drawtmtx.asm::_draw_translucent_masked_textured_scan_lines+0x6e4",
            " mov m4[None+None*1+0x673450],edi",
            " mov m4[None+None*1+0x673478],ebp",
            " mov m4[None+None*1+0x673440],edx"
          ]
        },
        {
          "symbol": "xline.asm::_draw_xored_line",
          "source": "\\library\\graphics\\xline.asm",
          "first": "0x4c578c",
          "second": "0x4c5fec",
          "first_instruction_count": 146,
          "second_instruction_count": 146,
          "diff": [
            "--- 0x4c578c",
            "+++ 0x4c5fec",
            "@@ -13,7 +13,7 @@",
            " or ebp,0x1",
            " mov edi,m4[None+ebx*4+screen.c::_screen_line_start]",
            " add edi,ecx",
            "-jmp m4[None+ebp*4+constant:de574c00]",
            "+jmp m4[None+ebp*4+constant:3e604c00]",
            " mov ecx,edx",
            " inc ecx",
            " mov ebx,edx"
          ]
        }
      ],
      "only_first": [],
      "only_second": []
    }
  ]
}
