Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int __fastcall main_(int a1, int a2, int a3, int a4)
- {
- int v4; // eax@1
- int v5; // edx@4
- int v6; // eax@4
- int v7; // eax@4
- int v8; // eax@4
- int v9; // eax@4
- int v10; // eax@5
- int v11; // eax@5
- int v12; // edi@8
- int v13; // esi@8
- int v14; // ebx@10
- int v15; // ebx@10
- double v16; // ST14_8@10
- int v17; // edx@12
- int v18; // eax@43
- double v19; // ST14_8@44
- int v20; // eax@55
- _UNKNOWN *v21; // ecx@62
- int v22; // edx@63
- int v23; // edx@64
- int v24; // ecx@64
- int v25; // eax@64
- int v26; // eax@64
- int v27; // eax@64
- int v28; // eax@64
- int v29; // edx@65
- int v30; // eax@82
- int v31; // eax@82
- int v32; // eax@82
- int v33; // eax@82
- int v34; // eax@82
- int v35; // eax@82
- int v36; // eax@82
- int v37; // eax@82
- int v38; // eax@82
- int v39; // eax@82
- int v40; // eax@82
- int v41; // eax@82
- int v42; // eax@82
- int result; // eax@84
- int v44; // eax@85
- int v45; // eax@85
- int v46; // ebx@85
- int v47; // eax@85
- int v48; // eax@85
- int v49; // eax@86
- int v50; // eax@86
- int v51; // ebx@86
- int v52; // eax@86
- int v53; // eax@86
- int v54; // eax@87
- int v55; // eax@87
- char v56; // [sp+0h] [bp-D0h]@1
- int v57; // [sp+34h] [bp-9Ch]@1
- int v58; // [sp+38h] [bp-98h]@1
- int v59; // [sp+3Ch] [bp-94h]@1
- char v60; // [sp+40h] [bp-90h]@1
- char v61; // [sp+44h] [bp-8Ch]@1
- double v62; // [sp+50h] [bp-80h]@64
- double v63; // [sp+58h] [bp-78h]@64
- double v64; // [sp+60h] [bp-70h]@64
- double v65; // [sp+68h] [bp-68h]@64
- int v66; // [sp+70h] [bp-60h]@16
- int v67; // [sp+74h] [bp-5Ch]@4
- int v68; // [sp+78h] [bp-58h]@1
- int v69; // [sp+7Ch] [bp-54h]@1
- int v70; // [sp+80h] [bp-50h]@1
- int v71; // [sp+84h] [bp-4Ch]@1
- int v72; // [sp+88h] [bp-48h]@1
- int (*v73)(); // [sp+8Ch] [bp-44h]@1
- int v74; // [sp+90h] [bp-40h]@1
- unsigned int v75; // [sp+94h] [bp-3Ch]@1
- int v76; // [sp+98h] [bp-38h]@1
- int v77; // [sp+9Ch] [bp-34h]@62
- int v78; // [sp+A0h] [bp-30h]@64
- int v79; // [sp+A4h] [bp-2Ch]@12
- int v80; // [sp+A8h] [bp-28h]@85
- int v81; // [sp+ACh] [bp-24h]@8
- unsigned __int8 v82; // [sp+B0h] [bp-20h]@13
- unsigned __int8 v83; // [sp+B4h] [bp-1Ch]@11
- unsigned __int8 v84; // [sp+B8h] [bp-18h]@13
- int v85; // [sp+C4h] [bp-Ch]@1
- int v86; // [sp+C8h] [bp-8h]@1
- v86 = a4;
- v85 = a2;
- v57 = dword_107414;
- v58 = (int)&unk_761E0;
- dword_107414 = (int)&v57;
- v68 = 0;
- v69 = 1259;
- v70 = 1229;
- v71 = 340;
- v72 = (int)&unk_100000;
- v73 = (int (*)())((char *)sub_2D781 + 3);
- v74 = 0;
- v75 = 257;
- v60 |= 1u;
- v59 = 2;
- v76 = sub_51060(&v61, &unk_105EB0, 9);
- v59 = 4;
- v60 &= 0xFEu;
- v4 = setjmp_(&v56);
- if ( (unsigned int)v4 < 2 )
- {
- if ( v4 == 1 )
- {
- v59 = 6;
- sub_4F410(&unk_105EB0);
- sub_5B3A4(&unk_107498, dword_107410);
- v44 = sub_59A7C(&unk_107498, unknown_libname_10);
- v45 = sub_59A7C(v44, unknown_libname_10);
- sub_59A7C(v45, unknown_libname_10);
- operator__(&unk_107498, "****************************************************************\n");
- v46 = sub_556A0(v80);
- v47 = operator__(&unk_107498, "* c3D ERROR: ");
- v48 = operator__(v47, v46);
- sub_59A7C(v48, unknown_libname_10);
- operator__(&unk_107498, "****************************************************************\n");
- _wcpp_2_catch_done__();
- v59 = 1;
- goto LABEL_83;
- }
- }
- else
- {
- if ( (unsigned int)v4 <= 2 )
- {
- v59 = 8;
- sub_4F410(&unk_105EB0);
- sub_5B3A4(&unk_107498, dword_107410);
- v49 = sub_59A7C(&unk_107498, unknown_libname_10);
- v50 = sub_59A7C(v49, unknown_libname_10);
- sub_59A7C(v50, unknown_libname_10);
- operator__(&unk_107498, "****************************************************************\n");
- v51 = sub_49F10(v80);
- v52 = operator__(&unk_107498, "* DVect ERROR: ");
- v53 = operator__(v52, v51);
- sub_59A7C(v53, unknown_libname_10);
- operator__(&unk_107498, "****************************************************************\n");
- _wcpp_2_catch_done__();
- v59 = 1;
- goto LABEL_83;
- }
- if ( v4 == 3 )
- {
- v59 = 10;
- sub_4F410(&unk_105EB0);
- sub_5B3A4(&unk_107498, dword_107410);
- v54 = sub_59A7C(&unk_107498, unknown_libname_10);
- v55 = sub_59A7C(v54, unknown_libname_10);
- sub_59A7C(v55, unknown_libname_10);
- operator__(&unk_107498, "****************************************************************\n");
- operator__(&unk_107498, "* Unknown Exception\n");
- operator__(&unk_107498, "****************************************************************\n");
- _wcpp_2_catch_done__();
- v59 = 1;
- goto LABEL_83;
- }
- }
- dword_107410 = dword_1074A8;
- v6 = operator__(&unk_107498, "### Initializing r3D from: ");
- v7 = operator__(v6, &unk_74EE2);
- sub_59A7C(v7, unknown_libname_10);
- sub_55860(&unk_AECA8, "SWORLD1.DAT");
- operator__(&unk_107498, "### After r3D Init\n");
- v8 = operator__(&unk_107498, "### Opening LOG FILE: ");
- v9 = operator__(v8, "SWORLD1.LOG");
- sub_59A7C(v9, unknown_libname_10);
- v67 = fopen_("SWORLD1.LOG", "w");
- if ( !v67 )
- {
- v10 = operator__(&unk_107498, "###### Cannot Create LOG FILE:");
- v11 = operator__(v10, "SWORLD1.LOG");
- sub_59A7C(v11, unknown_libname_10);
- goto LABEL_84;
- }
- sub_510B0(&v61, v5, sub_10010, __CS__);
- v75 = dword_7091C[8 * v68];
- sub_4F970(&unk_105EB0, v67);
- sub_4FC40(&unk_105EB0, (unsigned __int16)v75, v67);
- ((void (__cdecl *)(int, _DWORD, char))fprintf_)(v67, "\n\n### T_B3D : Setting Video Mode\n", v56);
- sub_50260(0);
- sub_50570(&unk_105EB0, v67, 1);
- fprintf_(v67, "\t ERROR Returned = 0x%X\n", dword_106F54);
- if ( dword_106F54 )
- {
- sub_59A7C(&unk_107498, unknown_libname_10);
- operator__(&unk_107498, "*********************************************************************\n");
- operator__(&unk_107498, "* c3D ERROR: You need VESA 640x480 256 Color mode to run this demo *\n");
- operator__(&unk_107498, "*********************************************************************\n");
- goto LABEL_84;
- }
- fprintf_(v67, "\n\n### T_B3D : Programming Palette\n");
- sub_4F8A0(&unk_105EB0);
- fprintf_(v67, "\t ERROR Returned = 0x%X\n", dword_106F54);
- v13 = *MK_FP(word_106F6A, 18);
- v12 = *MK_FP(word_106F6A, 20) & 0xFFFF;
- v81 = v12 * v13;
- if ( v12 * v13 > (unsigned int)loc_4B000 )
- {
- fprintf_(v67, "\t ERROR - Too Small Screen\n");
- goto LABEL_84;
- }
- sub_49D80(&unk_106F9C, &unk_BAEB0, v13, v12);
- dword_1073E8 = 255;
- dword_1073E4 = 0;
- dword_1073EC = 40;
- dword_1073F0 = 220;
- dword_106FE0 = 1;
- dword_106FD0 = (dword_106FD8 / 2 - 9 * dword_106FDC / 2) * dword_106FD4 + dword_106FC8;
- dword_106FCC = (dword_106FD8 / 2 - 9 * dword_106FDC / 2) * dword_106FD4 + dword_106FC8;
- v15 = v81;
- memset_(&unk_BAEB0, 0, v81);
- sub_50570(&unk_105EB0, v67, v15);
- fprintf_(v67, "### T_B3D: About to Prepare Video\n");
- HIDWORD(v16) = dword_70934[8 * v68];
- LODWORD(v16) = dword_70930[8 * v68];
- sub_55C50(
- dword_70920[8 * v68],
- dword_70924[8 * v68],
- dword_70928[8 * v68],
- dword_7092C[8 * v68],
- dword_70938[8 * v68],
- v16);
- sub_55920(4);
- sub_55A90(&unk_AECA8, v72, v73, v74);
- sub_5B3A4(&unk_107498, &unk_106F9C);
- sub_57840(&unk_AECA8);
- v14 = 32 * v68;
- sub_58100(dword_70924[8 * v68] - dword_70920[8 * v68] + 1, dword_7092C[8 * v68] - dword_70928[8 * v68] + 1);
- sub_503E0(&unk_105EB0, &unk_BAEB0);
- do
- v83 = byte_BAEAC;
- while ( !byte_BAEAC );
- sub_57840(&unk_AECA8);
- sub_503E0(&unk_105EB0, v17);
- v79 = 0;
- do
- {
- LABEL_13:
- v82 = v84;
- v84 = v83;
- v83 = byte_BAEAC;
- }
- while ( !byte_BAEAC );
- LABEL_14:
- if ( v83 == v84 )
- {
- if ( v83 == v82 )
- v66 = 32;
- else
- v66 = 16;
- }
- else
- {
- v66 = 8;
- }
- while ( 1 )
- {
- LOBYTE(v14) = v83;
- if ( v83 >= 0x48u )
- {
- v17 = v66 >> 31;
- v20 = v66 / 2;
- if ( v83 <= 0x48u )
- {
- if ( !sub_55AB0(&unk_AECA8, v20 + v66) )
- {
- if ( v79 )
- {
- sub_578E0(&unk_AECA8, &unk_BAEB0);
- sub_503E0(&unk_105EB0, v17);
- }
- goto LABEL_13;
- }
- }
- else
- {
- if ( v83 < 0x4Du )
- {
- if ( v83 <= 0x49u )
- {
- if ( !sub_55B30(&unk_AECA8, v66) )
- {
- if ( v79 )
- {
- sub_578E0(&unk_AECA8, &unk_BAEB0);
- sub_503E0(&unk_105EB0, v17);
- }
- goto LABEL_13;
- }
- }
- else
- {
- if ( v83 != 75 )
- goto LABEL_45;
- sub_55B50(&unk_AECA8, v66, v14);
- }
- }
- else
- {
- if ( v83 <= 0x4Du )
- {
- sub_55B50(&unk_AECA8, -v66, v14);
- }
- else
- {
- if ( v83 < 0x50u )
- goto LABEL_45;
- if ( v83 <= 0x50u )
- {
- if ( !sub_55AB0(&unk_AECA8, -v66 - v20) )
- {
- if ( v79 )
- {
- sub_578E0(&unk_AECA8, &unk_BAEB0);
- sub_503E0(&unk_105EB0, v17);
- }
- goto LABEL_13;
- }
- }
- else
- {
- if ( v83 != 81 )
- goto LABEL_45;
- if ( !sub_55B30(&unk_AECA8, -v66) )
- {
- if ( v79 )
- {
- sub_578E0(&unk_AECA8, &unk_BAEB0);
- sub_503E0(&unk_105EB0, v17);
- }
- goto LABEL_13;
- }
- }
- }
- }
- }
- LABEL_32:
- sub_57890(&unk_AECA8);
- v82 = v84;
- v84 = v83;
- v83 = byte_BAEAC;
- if ( byte_BAEAC )
- {
- v79 = 1;
- sub_57930(&unk_AECA8, &unk_BAEB0);
- sub_503E0(&unk_105EB0, v17);
- goto LABEL_14;
- }
- v79 = (unsigned __int8)byte_BAEAC;
- sub_578E0(&unk_AECA8, &unk_BAEB0);
- sub_503E0(&unk_105EB0, v17);
- goto LABEL_13;
- }
- if ( v83 < 0x14u )
- break;
- if ( v83 > 0x14u )
- {
- if ( v83 >= 0x1Fu )
- {
- if ( v83 <= 0x1Fu )
- {
- if ( dword_7093C[8 * v68] )
- ++v68;
- else
- v68 = 0;
- }
- else
- {
- if ( v83 != 48 )
- goto LABEL_45;
- if ( !v68 )
- {
- while ( dword_7091C[8 * v68] )
- ++v68;
- }
- --v68;
- }
- if ( dword_7091C[8 * v68] != v75 )
- {
- v75 = dword_7091C[8 * v68];
- sub_50260(0);
- HIWORD(v13) = 0;
- sub_4F8A0(&unk_105EB0);
- LOWORD(v13) = *MK_FP(word_106F6A, 18);
- v12 = *MK_FP(word_106F6A, 20);
- sub_49D80(&unk_106F9C, &unk_BAEB0, v13, *MK_FP(word_106F6A, 20));
- dword_106FE0 = 1;
- dword_1073F0 = 220;
- dword_1073E8 = 255;
- dword_1073E4 = 0;
- dword_1073EC = 40;
- v18 = dword_106FD4 * (dword_106FD8 / 2 - 3 * dword_106FDC / 2);
- dword_106FD0 = v18 + dword_106FC8;
- dword_106FCC = v18 + dword_106FC8;
- }
- memset_(&unk_BAEB0, 0, v12 * v13);
- HIDWORD(v19) = dword_70934[8 * v68];
- LODWORD(v19) = dword_70930[8 * v68];
- sub_55C50(
- dword_70920[8 * v68],
- dword_70924[8 * v68],
- dword_70928[8 * v68],
- dword_7092C[8 * v68],
- dword_70938[8 * v68],
- v19);
- sub_57840(&unk_AECA8);
- v79 = 1;
- }
- LABEL_45:
- if ( v79 )
- sub_578E0(&unk_AECA8, v17);
- v14 = 32 * v68;
- sub_58100(dword_70924[8 * v68] - dword_70920[8 * v68] + 1, dword_7092C[8 * v68] - dword_70928[8 * v68] + 1);
- goto LABEL_48;
- }
- v77 = *MK_FP(word_106F52, 1132);
- v14 = 0;
- v21 = &unk_AECA8;
- do
- {
- sub_55B50(v21, 24, v14);
- sub_57890(v21);
- sub_57930(v21, &unk_BAEB0);
- ++v14;
- sub_503E0(&unk_105EB0, v22);
- }
- while ( v14 < 30 );
- v78 = *MK_FP(word_106F52, 1132);
- sub_578E0(&unk_AECA8, &unk_BAEB0);
- sub_503E0(&unk_105EB0, v23);
- v79 = v24;
- HIDWORD(v65) = v24;
- LODWORD(v65) = v78 - v77;
- v64 = (long double)*(signed __int64 *)&v65 * dbl_756BC * dbl_756C4;
- v65 = 1.0 / v64;
- v25 = operator__(&unk_107498, "FRAME RATE=");
- v63 = v65;
- v26 = __outfloat(v25, &v63);
- v27 = operator__(v26, "[FPS] ");
- v62 = v64;
- v28 = __outfloat(v27, &v62);
- operator__(v28, "[s]\n");
- operator__(&unk_107498, &unk_7512A);
- LABEL_48:
- sub_503E0(&unk_105EB0, &unk_BAEB0);
- do
- {
- do
- {
- v82 = v84;
- v84 = v83;
- v83 = byte_BAEAC;
- }
- while ( !byte_BAEAC );
- }
- while ( v83 == v84 );
- if ( v75 < 0x100 )
- {
- v14 = v12 * v13;
- memset_(&unk_BAEB0, 0, v12 * v13);
- }
- sub_57840(&unk_AECA8);
- sub_503E0(&unk_105EB0, v17);
- }
- if ( v83 != 1 )
- goto LABEL_45;
- sub_57840(&unk_AECA8);
- sub_503E0(&unk_105EB0, v29);
- operator__(&unk_107498, "DO YOU REALLY WANT TO EXIT? (Y/N)\n");
- operator__(&unk_107498, &unk_7514F);
- sub_503E0(&unk_105EB0, &unk_BAEB0);
- do
- {
- do
- {
- v82 = v84;
- v84 = v83;
- v83 = byte_BAEAC;
- }
- while ( !byte_BAEAC );
- }
- while ( v83 == v84 );
- if ( v83 != 21 )
- goto LABEL_32;
- fclose_(v67);
- sub_4F410(&unk_105EB0);
- sub_5B3A4(&unk_107498, dword_107410);
- v30 = operator__(&unk_107498, "*****************************************************************\n");
- v31 = operator__(v30, "* Real-Time 3D Rendering System (C)1996 SAJ FAZA *\n");
- v32 = operator__(v31, "* PO Box 8024, Huntington Beach CA, 92615-8024 *\n");
- v33 = operator__(v32, "* Tel (909) 794-0130 Fax/Msg (909) 794-5720 *\n");
- v34 = operator__(v33, "* E-Mail: faza@faza.win.net *\n");
- v35 = operator__(v34, "* Web Site: http://www.win.net/faza *\n");
- v36 = operator__(v35, "* *\n");
- v37 = operator__(v36, "* Please Check my Web Site Again. I am working on: *\n");
- v38 = operator__(v37, "* 1. DirectX (Windows95) Version of Cube 3D *\n");
- v39 = operator__(v38, "* 2. Creating more examples, more detailed models *\n");
- v40 = operator__(v39, "* 3. Completing \"dynamic loading\" allowing creating huge *\n");
- v41 = operator__(v40, "* disk-based models. See documentation on the web. *\n");
- v42 = operator__(v41, "* 4. Further speeding up the algorithm *\n");
- operator__(v42, "*****************************************************************\n\n\n");
- LABEL_83:
- v59 = 1;
- LABEL_84:
- _wcpp_2_destruct_all__();
- result = v57;
- dword_107414 = v57;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement