16003 lines
459 KiB
C
16003 lines
459 KiB
C
/*
|
|
* Raw Ghidra decompilation of TDKPIN.EXE.
|
|
* Function boundaries and names are analysis artifacts, not original source symbols.
|
|
*/
|
|
|
|
/* ===== 1000:0002 FUN_1000_0002 ===== */
|
|
|
|
void __stdcall16far FUN_1000_0002(int param_1,undefined2 param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
undefined2 uVar8;
|
|
undefined2 uVar9;
|
|
|
|
uVar6 = param_2;
|
|
uVar1 = CREATECOMPATIBLEDC();
|
|
uVar2 = CREATECOMPATIBLEDC(0x1228,param_2,uVar6);
|
|
uVar3 = CREATECOMPATIBLEDC(0x1228,param_2);
|
|
uVar4 = CREATECOMPATIBLEBITMAP(0x1228,0xe,0xe);
|
|
uVar5 = SELECTOBJECT(0x1228,DAT_1028_085b);
|
|
uVar6 = SELECTOBJECT(0x1228,*(undefined2 *)(param_1 * 2 + 0x430b));
|
|
uVar7 = SELECTOBJECT(0x1228,uVar4);
|
|
BITBLT(0x1228,0x20,0xcc,0x4d,0x54,uVar1,0xe,0xe,0,0);
|
|
BITBLT(0x1228,0x20,0xcc,0,0,uVar2,0x7b,0x2a,0x4f,0x37);
|
|
uVar9 = uVar1;
|
|
BITBLT(0x1228,0x20,0xcc,0,0,uVar3,0xe,0xe,0x4d,0x54);
|
|
uVar8 = uVar3;
|
|
SELECTOBJECT(0x1228,uVar7);
|
|
uVar7 = uVar2;
|
|
SELECTOBJECT(0x1228,uVar6);
|
|
uVar6 = uVar1;
|
|
SELECTOBJECT(0x1228,uVar5);
|
|
DELETEOBJECT(0x1228,uVar4,uVar6,uVar7,uVar8,uVar9);
|
|
DELETEDC(0x1228,uVar3);
|
|
DELETEDC(0x1228,uVar2);
|
|
DELETEDC(0x1228,uVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:0100 FUN_1000_0100 ===== */
|
|
|
|
void __stdcall16far FUN_1000_0100(undefined4 param_1)
|
|
|
|
{
|
|
FUN_1018_1b57((int)param_1,(int)((ulong)param_1 >> 0x10));
|
|
FUN_1010_03af(1,1,1,0x222,0x1028);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:0121 FUN_1000_0121 ===== */
|
|
|
|
void __stdcall16far FUN_1000_0121(undefined4 param_1)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined4 uVar2;
|
|
|
|
if (DAT_1028_06fc == 0) {
|
|
uVar2 = FUN_1000_01d3(0,0,0x9e,0x22c,0x1028,0,0);
|
|
uVar1 = (undefined2)((ulong)param_1 >> 0x10);
|
|
*(undefined2 *)((int)param_1 + 8) = (int)uVar2;
|
|
*(undefined2 *)((int)param_1 + 10) = (int)((ulong)uVar2 >> 0x10);
|
|
}
|
|
else {
|
|
(*DAT_1028_0666)();
|
|
FUN_1020_0061();
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:016c FUN_1000_016c ===== */
|
|
|
|
void __stdcall16far FUN_1000_016c(undefined4 param_1,undefined2 *param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 *puVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
|
|
uVar4 = (undefined2)((ulong)param_2 >> 0x10);
|
|
puVar3 = (undefined2 *)param_2;
|
|
FUN_1018_1274((int)param_1,(int)((ulong)param_1 >> 0x10),puVar3,uVar4);
|
|
*param_2 = 0x3000;
|
|
uVar2 = DAT_1028_06fe;
|
|
uVar1 = LOADICON(0x1018,0x3e4,0);
|
|
puVar3[6] = uVar1;
|
|
uVar5 = 0;
|
|
uVar1 = LOADCURSOR(0x1228,0x7f00,0);
|
|
puVar3[7] = uVar1;
|
|
uVar2 = GETSTOCKOBJECT(0x1228,0,uVar5,uVar2);
|
|
puVar3[8] = uVar2;
|
|
puVar3[5] = DAT_1028_06fe;
|
|
puVar3[3] = 0;
|
|
puVar3[4] = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:01d3 FUN_1000_01d3 ===== */
|
|
|
|
undefined4 __stdcall16far
|
|
FUN_1000_01d3(undefined4 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4,
|
|
undefined2 param_5,undefined2 param_6)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
bool bVar4;
|
|
int iVar5;
|
|
|
|
bVar4 = true;
|
|
FUN_1020_03ef();
|
|
if (!bVar4) {
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar2 = (int)param_1;
|
|
FUN_1018_1106(iVar2,uVar3,0,param_3,param_4,param_5,param_6);
|
|
*(undefined2 *)(iVar2 + 0x2d) = 0x280;
|
|
*(undefined2 *)(iVar2 + 0x2f) = 0x1e0;
|
|
iVar5 = 0x1018;
|
|
iVar1 = GETSYSTEMMETRICS(0x1018,0,*(int *)(iVar2 + 0x2d) / 2);
|
|
*(int *)(iVar2 + 0x29) = iVar1 / 2 - iVar5;
|
|
iVar5 = 0x1228;
|
|
iVar1 = GETSYSTEMMETRICS(0x1228,1,*(int *)(iVar2 + 0x2f) / 2);
|
|
*(int *)(iVar2 + 0x2b) = iVar1 / 2 - iVar5;
|
|
*(undefined2 *)(iVar2 + 0x21) = 0;
|
|
*(undefined2 *)(iVar2 + 0x23) = 0x86ca;
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
/* ===== 1000:0270 FUN_1000_0270 ===== */
|
|
|
|
void __stdcall16far FUN_1000_0270(undefined4 param_1)
|
|
|
|
{
|
|
char cVar1;
|
|
undefined1 uVar2;
|
|
undefined2 uVar3;
|
|
int in_DX;
|
|
int iVar4;
|
|
int iVar5;
|
|
undefined2 uVar6;
|
|
undefined2 unaff_SS;
|
|
undefined4 uVar7;
|
|
undefined1 *puVar8;
|
|
undefined2 uVar9;
|
|
undefined2 uVar10;
|
|
undefined1 *puVar11;
|
|
undefined1 *puVar12;
|
|
undefined2 uVar13;
|
|
undefined2 uVar14;
|
|
undefined1 local_2d2 [256];
|
|
undefined2 local_1d2;
|
|
undefined1 local_d0 [101];
|
|
undefined1 local_6b [103];
|
|
int local_4;
|
|
|
|
DAT_1028_07cf = 0;
|
|
DAT_1028_0874 = 0;
|
|
DAT_1028_0875 = 0;
|
|
uVar6 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar5 = (int)param_1;
|
|
*(undefined2 *)(iVar5 + 0x41) = 0;
|
|
*(undefined2 *)(iVar5 + 0x43) = 0;
|
|
*(undefined2 *)(iVar5 + 0x45) = 0;
|
|
*(undefined2 *)(iVar5 + 0x47) = 0;
|
|
FUN_1020_0167();
|
|
if (in_DX < 0x40) {
|
|
(*DAT_1028_0666)(0x1020,0x2010,0x2aa,0x1028,0x260,0x1028,0);
|
|
FUN_1018_0f38(iVar5,uVar6);
|
|
FUN_1020_0061(0x1018);
|
|
}
|
|
FUN_1018_170c(iVar5,uVar6);
|
|
uVar14 = 0;
|
|
uVar3 = LOADCURSOR(0x1018,0x7f02,0);
|
|
SETCURSOR(0x1228,uVar3,uVar14);
|
|
FUN_1008_0023(*(undefined2 *)(iVar5 + 4));
|
|
FUN_1008_1326(0x4450,0x1028,999,0,DAT_1028_06fe);
|
|
FUN_1008_11c5();
|
|
DAT_1028_07cc = 1;
|
|
*(undefined2 *)(iVar5 + 0x4d) = 0;
|
|
*(undefined2 *)(iVar5 + 0x4f) = 0;
|
|
*(undefined1 *)(iVar5 + 0x51) = 0;
|
|
*(undefined1 *)(iVar5 + 0xbd8) = 0;
|
|
uVar7 = GETTICKCOUNT(0x1008);
|
|
DAT_1028_0722 = (undefined2)((ulong)uVar7 >> 0x10);
|
|
DAT_1028_0720 = (undefined2)uVar7;
|
|
*(undefined2 *)(iVar5 + 0xbe3) = 0;
|
|
DAT_1028_07c7 = 0;
|
|
DAT_1028_07c8 = 0;
|
|
DAT_1028_086d = 10;
|
|
DAT_1028_086f = 10;
|
|
DAT_1028_0873 = 0;
|
|
DAT_1028_07ca = 0;
|
|
DAT_1028_07cb = 0;
|
|
DAT_1028_07c9 = 1;
|
|
*(undefined2 *)(iVar5 + 0xbca) = 0;
|
|
*(undefined2 *)(iVar5 + 0xbcc) = 0;
|
|
*(undefined1 *)(iVar5 + 0xbd9) = 0;
|
|
*(undefined2 *)(iVar5 + 0xbc2) = 0xf588;
|
|
*(undefined2 *)(iVar5 + 0xbc4) = 4;
|
|
*(undefined2 *)(iVar5 + 0xbc6) = 0x4d48;
|
|
*(undefined2 *)(iVar5 + 0xbc8) = 6;
|
|
DAT_1028_07d3 = *(uint *)(iVar5 + 0xbc2);
|
|
DAT_1028_07d5 = *(int *)(iVar5 + 0xbc4);
|
|
DAT_1028_07d7 = *(uint *)(iVar5 + 0xbc6);
|
|
DAT_1028_07d9 = *(int *)(iVar5 + 0xbc8);
|
|
*(undefined1 *)(iVar5 + 0xbdd) = 0;
|
|
*(undefined1 *)(iVar5 + 0xbdf) = 0;
|
|
*(undefined1 *)(iVar5 + 0xbdc) = 0;
|
|
*(undefined1 *)(iVar5 + 0xbe0) = 0;
|
|
*(undefined1 *)(iVar5 + 0xbe1) = 0;
|
|
*(undefined1 *)(iVar5 + 0xbe2) = 0;
|
|
DAT_1028_07c5 = 0;
|
|
*(undefined1 *)(iVar5 + 0xbde) = 1;
|
|
DAT_1028_07d0 = 0;
|
|
DAT_1028_07d1 = 0;
|
|
*(undefined1 *)(iVar5 + 0x61) = 1;
|
|
DAT_1028_086b = 99;
|
|
DAT_1028_0869 = 0;
|
|
DAT_1028_0876 = 0;
|
|
DAT_1028_0878 = 0;
|
|
DAT_1028_087a = 0;
|
|
DAT_1028_087c = 0;
|
|
local_4 = 1;
|
|
while( true ) {
|
|
*(undefined1 *)(iVar5 + local_4 + 0x47b) = 0;
|
|
*(undefined1 *)(iVar5 + local_4 + 0x48f) = 0;
|
|
*(undefined1 *)(iVar5 + local_4 + 0x4a3) = 0;
|
|
*(undefined1 *)(iVar5 + local_4 + 0x4b7) = 0;
|
|
if (local_4 == 0x14) break;
|
|
local_4 = local_4 + 1;
|
|
}
|
|
local_4 = 1;
|
|
while( true ) {
|
|
*(undefined2 *)(local_4 * 4 + 0x97e) = 0;
|
|
*(undefined2 *)(local_4 * 4 + 0x980) = 0;
|
|
*(undefined2 *)(local_4 * 4 + 0x98e) = 0;
|
|
*(undefined2 *)(local_4 * 4 + 0x990) = 0;
|
|
*(undefined1 *)(local_4 + 0x9a1) = 1;
|
|
*(undefined2 *)(local_4 * 2 + 0x9a4) = 0;
|
|
*(undefined2 *)(local_4 * 2 + 0x81f) = 0xffff;
|
|
*(undefined1 *)(local_4 + 0x816) = 1;
|
|
*(undefined2 *)(local_4 * 4 + 0x835) = 1;
|
|
*(undefined2 *)(local_4 * 4 + 0x837) = 0;
|
|
*(undefined1 *)(local_4 + 0x81a) = 1;
|
|
if (local_4 == 4) break;
|
|
local_4 = local_4 + 1;
|
|
}
|
|
DAT_1028_0829 = 0x22e0;
|
|
DAT_1028_082b = 2;
|
|
DAT_1028_082d = 0xeb10;
|
|
DAT_1028_082f = 9;
|
|
DAT_1028_0831 = 0xd620;
|
|
DAT_1028_0833 = 0x13;
|
|
DAT_1028_0835 = 0x900;
|
|
DAT_1028_0837 = 0x3d;
|
|
*(undefined2 *)(iVar5 + 0xbaa) = 0;
|
|
*(undefined2 *)(iVar5 + 0xbac) = 0;
|
|
*(undefined2 *)(iVar5 + 0xbae) = 0;
|
|
*(undefined2 *)(iVar5 + 0xbb0) = 0;
|
|
*(undefined2 *)(iVar5 + 0xbce) = 0;
|
|
*(undefined2 *)(iVar5 + 0xbd0) = 0;
|
|
*(undefined2 *)(iVar5 + 0xbd2) = 0;
|
|
iVar4 = DAT_1028_07d5 + (uint)(0xfe0b < DAT_1028_07d3);
|
|
uVar3 = FUN_1020_08e6();
|
|
*(undefined2 *)(iVar5 + 0xba2) = uVar3;
|
|
*(int *)(iVar5 + 0xba4) = iVar4;
|
|
*(undefined2 *)(iVar5 + 0xbb2) = 0;
|
|
*(undefined2 *)(iVar5 + 0xbb4) = 0;
|
|
iVar4 = DAT_1028_07d9 + (uint)(0xfe0b < DAT_1028_07d7);
|
|
uVar3 = FUN_1020_08e6();
|
|
*(undefined2 *)(iVar5 + 0xba6) = uVar3;
|
|
*(int *)(iVar5 + 0xba8) = iVar4;
|
|
*(undefined2 *)(iVar5 + 0xbb6) = 0;
|
|
*(undefined2 *)(iVar5 + 3000) = 0;
|
|
*(undefined1 *)(iVar5 + 0xbda) = 0;
|
|
*(undefined1 *)(iVar5 + 0xbdb) = 0;
|
|
*(undefined2 *)(iVar5 + 0xbd4) = 0;
|
|
*(undefined2 *)(iVar5 + 0xbd6) = 0;
|
|
puVar12 = local_6b;
|
|
puVar11 = local_2d2;
|
|
uVar3 = unaff_SS;
|
|
uVar14 = unaff_SS;
|
|
FUN_1020_082e(0);
|
|
FUN_1008_2f2f(puVar11,uVar3,puVar12,uVar14);
|
|
puVar11 = local_d0;
|
|
puVar12 = local_6b;
|
|
uVar10 = 0x1008;
|
|
uVar9 = 0x26e;
|
|
puVar8 = local_2d2;
|
|
uVar3 = unaff_SS;
|
|
uVar14 = unaff_SS;
|
|
uVar13 = unaff_SS;
|
|
FUN_1020_082e(0);
|
|
uVar3 = FUN_1020_0a7d(puVar8,uVar3,uVar9,uVar10);
|
|
FUN_1008_2f07(uVar3,puVar12,uVar14,puVar11,uVar13);
|
|
FUN_1008_2f4d(0x2c3,0x1028,local_d0,unaff_SS);
|
|
uVar3 = 0x1028;
|
|
DAT_1028_07cd = GETPRIVATEPROFILEINT(0x1008,local_d0,unaff_SS,1,0x2d0,0x1028,0x2c7);
|
|
if ((DAT_1028_07cd == 0) || (5 < DAT_1028_07cd)) {
|
|
DAT_1028_07cd = 1;
|
|
}
|
|
uVar14 = 0x1028;
|
|
uVar2 = GETPRIVATEPROFILEINT(0x1228,local_d0,unaff_SS,3,0x2d9,0x1028,0x2c7);
|
|
*(undefined1 *)(iVar5 + 0x60) = uVar2;
|
|
if ((*(char *)(iVar5 + 0x60) == '\0') || (5 < *(byte *)(iVar5 + 0x60))) {
|
|
*(undefined1 *)(iVar5 + 0x60) = 3;
|
|
}
|
|
cVar1 = *(char *)(iVar5 + 0x60);
|
|
if (cVar1 == '\x01') {
|
|
*(undefined2 *)(iVar5 + 0x5a) = 0xf;
|
|
*(undefined2 *)(iVar5 + 0x5c) = 0;
|
|
*(undefined2 *)(iVar5 + 0x56) = 0xed8;
|
|
*(undefined2 *)(iVar5 + 0x58) = 0;
|
|
local_1d2 = 0x32;
|
|
DAT_1028_0871 = 5;
|
|
}
|
|
else if (cVar1 == '\x02') {
|
|
*(undefined2 *)(iVar5 + 0x5a) = 0xf;
|
|
*(undefined2 *)(iVar5 + 0x5c) = 0;
|
|
*(undefined2 *)(iVar5 + 0x56) = 0xed8;
|
|
*(undefined2 *)(iVar5 + 0x58) = 0;
|
|
local_1d2 = 0x28;
|
|
DAT_1028_0871 = 4;
|
|
}
|
|
else if (cVar1 == '\x03') {
|
|
*(undefined2 *)(iVar5 + 0x5a) = 0xf;
|
|
*(undefined2 *)(iVar5 + 0x5c) = 0;
|
|
*(undefined2 *)(iVar5 + 0x56) = 0xed8;
|
|
*(undefined2 *)(iVar5 + 0x58) = 0;
|
|
local_1d2 = 0x1e;
|
|
DAT_1028_0871 = 3;
|
|
}
|
|
else if (cVar1 == '\x04') {
|
|
*(undefined2 *)(iVar5 + 0x5a) = 0xf;
|
|
*(undefined2 *)(iVar5 + 0x5c) = 0;
|
|
*(undefined2 *)(iVar5 + 0x56) = 0xed8;
|
|
*(undefined2 *)(iVar5 + 0x58) = 0;
|
|
local_1d2 = 0x14;
|
|
DAT_1028_0871 = 2;
|
|
}
|
|
else if (cVar1 == '\x05') {
|
|
*(undefined2 *)(iVar5 + 0x5a) = 0xf;
|
|
*(undefined2 *)(iVar5 + 0x5c) = 0;
|
|
*(undefined2 *)(iVar5 + 0x56) = 0xed8;
|
|
*(undefined2 *)(iVar5 + 0x58) = 0;
|
|
local_1d2 = 10;
|
|
DAT_1028_0871 = 1;
|
|
}
|
|
else {
|
|
*(undefined2 *)(iVar5 + 0x5a) = 0xf;
|
|
*(undefined2 *)(iVar5 + 0x5c) = 0;
|
|
*(undefined2 *)(iVar5 + 0x56) = 0xed8;
|
|
*(undefined2 *)(iVar5 + 0x58) = 0;
|
|
local_1d2 = 0x1e;
|
|
DAT_1028_0871 = 3;
|
|
}
|
|
uVar7 = FUN_1008_28a3(0,0,0x5c0,0,1,local_1d2,*(undefined2 *)(iVar5 + 4));
|
|
*(undefined2 *)(iVar5 + 0x49) = (int)uVar7;
|
|
*(undefined2 *)(iVar5 + 0x4b) = (int)((ulong)uVar7 >> 0x10);
|
|
if (*(int *)(iVar5 + 0x49) == 0 && *(int *)(iVar5 + 0x4b) == 0) {
|
|
(*DAT_1028_0666)(0x1008,0x2010,0x2aa,0x1028,0x2df,0x1028,*(undefined2 *)(iVar5 + 4),uVar14,uVar3
|
|
);
|
|
FUN_1020_0061(0x1008);
|
|
}
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x1c9,0,0x7d,0,0x1a1,0,7,0,0,0,2,1,1);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x1db,0,300,0,0x1db,0,10,0,0,0,2,1,2);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0xcd7d,0xcccc,0x4ccc,0,0,
|
|
0x1d8,0,0x78,0,0x1c4,0,0x78,0,0,0,2,1,0xa9);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0xcd7d,0xcccc,0x4ccc,0,0,
|
|
0x1c4,0,0xc3,0,0x1d8,0,0xc3,0,0,0,2,1,0xaa);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0xcd7d,0xcccc,0x4ccc,0,0,
|
|
0x1bd,0,0x86,0,0x1ce,0,0x86,0,0,0,2,1,3);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,8,0,
|
|
0,0,0,0,0x1be,0,0x8d,0,0,1,1,1,4);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x1d3,0,0x94,0,0x1bd,0,0x94,0,0,0,2,1,5);
|
|
FUN_1008_0138(0x1b5,0xa3,0x185,0x97,0,0,0,0,2,0,0,6,0x102,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1d3,0,0xa4
|
|
,0,0x1be,0,0x94,0,0,0,4,0,6);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x1d2,0,0xa4,0,0x1bd,0,0xa5,0,0,0,2,1,7);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,8,0,
|
|
0,0,0,0,0x1be,0,0xac,0,0,1,1,1,8);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0xcd7d,0xcccc,0x4ccc,0,0,
|
|
0x1d3,0,0xb4,0,0x1bd,0,0xb3,0,0,0,2,1,9);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x19e,0,0x130,0,0x1c9,0,0xb7,0,0,0,2,1,10);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x3d,0,0x12a,0,0xa5,0,0x12a,0,0,0,2,1,0xb);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,5000,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0
|
|
,0,0x8e,0,0x12a,0,0x8e,0,0x136,0,0,0,2,1,0xc);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,7,0,
|
|
0,0,0,0,0x88,0,0x12a,0,0,1,1,1,0xd);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x68,0,0x124,0,0x88,0,0x123,0,0,0,2,1,0xe);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0xcd7f,0xcccc,0x4ccc,0,0,
|
|
100,0,0x119,0,0x6d,0,300,0,0,0,2,1,0xf);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0xcd7f,0xcccc,0x4ccc,0,0,
|
|
0x87,0,0x113,0,0x60,0,0x122,0,0,0,2,1,0x10);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,7,0,
|
|
0,0,0,0,0x86,0,0x10d,0,0,1,1,1,0x11);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,7,0,
|
|
0,0,0,0,0x73,0,0x101,0,0,1,1,1,0x1a);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x72,0,0xf8,0,0x8b,0,0x108,0,0,0,2,1,0x12);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x5b,0,0x101,0,0x72,0,0xf9,0,0,0,2,1,0x13);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x31,0,0x115,0,0x5b,0,0x101,0,0,0,2,1,0x14);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x20,0,0x11f,0,0x33,0,0x115,0,0,0,2,1,0x15);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x30,0,0x12f,0,0x2a,0,0x11b,0,0,0,2,1,0x16);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x44,0,0x140,0,0x30,0,0x12e,0,0,0,2,1,0x17);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x1c9,0,0x140,0,0x44,0,0x140,0,0,0,2,1,0x18);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0xcd7d,0xcccc,0x4ccc,0,0,
|
|
0x1b1,0,0x14c,0,0x1b1,0,0x13b,0,0,0,2,1,0x19);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7e,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x43,0,0x146,0,0x4e,0,0x148,0,0,0,2,1,0x1b);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7e,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x39,0,0x142,0,0x43,0,0x146,0,0,0,2,1,0x1c);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7e,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x30,0,0x13c,0,0x39,0,0x142,0,0,0,2,1,0x1d);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7e,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x29,0,0x133,0,0x30,0,0x13c,0,0,0,2,1,0x1e);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7e,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x24,0,0x128,0,0x29,0,0x133,0,0,0,2,1,0x1f);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7e,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x23,0,0x11d,0,0x24,0,0x128,0,0,0,2,1,0x20);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x23,0,0x70,0,0x23,0,0x11d,0,0,0,2,1,0x21);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x28,0,99,0,0x22,0,0x79,0,0,0,2,1,0x22);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x33,0,0x4e,0,0x28,0,100,0,0,0,2,1,0x23);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x45,0,0x42,0,0x32,0,0x4f,0,0,0,2,1,0x24);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x5d,0,0x39,0,0x41,0,0x44,0,0,0,2,1,0x25);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0xae,0,0x3b,0,0x52,0,0x3b,0,0,0,2,1,0x26);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0xbe,0,0x43,0,0xa7,0,0x3a,0,0,0,2,1,0x27);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,8,0,
|
|
0,0,0,0,0xc1,0,0x3c,0,0,1,1,1,0x28);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0xd2,0,0x29,0,199,0,0x40,0,0,0,2,1,0x29);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,8,0,
|
|
0,0,0,0,0xcb,0,0x26,0,0,1,1,1,0x2a);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0xb9,0,0x16,0,0xce,0,0x1f,0,0,0,2,1,0x2b);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x1f,0,0x16,0,0xb9,0,0x16,0,0,0,2,1,0x2c);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0x86a0,1,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0xcd7f,0xcccc,0x4ccc
|
|
,0,0,0x21,0,0xb,0,0x21,0,0x17,0,0,0,2,1,0x2d);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0xbe,0,0xd,0,0x1e,0,0xd,0,0,0,2,1,0x2e);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0xfa,0,0x20,0,0xb9,0,0xc,0,0,0,2,1,0x2f);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,8,0,
|
|
0,0,0,0,0xfb,0,0x19,0,0,1,1,1,0x30);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x140,0,10,0,0xfb,0,0x21,0,0,0,2,1,0x31);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x1ab,0,0xc,0,0x119,0,0xc,0,0,0,2,1,0x32);
|
|
FUN_1008_0138(0xa3,0xb4,0x85,0x96,0,0,0,0,1,1000,0,0,0x40,0xcd7f,0xcccc,0x4ccc,0xcd7d,0xcccc,
|
|
0xcccc,0xcd7d,0xcccc,0x4ccc,0xcd80,0xcccc,0x4ccc,0x17,0,0,0,0,0,0xa8,0,0xa5,0,0,1,1,
|
|
1,0x33);
|
|
FUN_1008_0138(0x7d,0xdd,0x5f,0xbf,0,0,0,0,1,1000,0,0,0x40,0xcd7f,0xcccc,0x4ccc,0xcd7d,0xcccc,
|
|
0xcccc,0xcd7d,0xcccc,0x4ccc,0xcd80,0xcccc,0x4ccc,0x17,0,0,0,0,0,0x82,0,0xce,0,0,1,1,
|
|
1,0x34);
|
|
FUN_1008_0138(0xb4,0xea,0x96,0xcc,0,0,0,0,1,1000,0,0,0x40,0xcd7f,0xcccc,0x4ccc,0xcd7d,0xcccc,
|
|
0xcccc,0xcd7d,0xcccc,0x4ccc,0xcd80,0xcccc,0x4ccc,0x17,0,0,0,0,0,0xb9,0,0xdb,0,0,1,1,
|
|
1,0x35);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x80,0,0,8,0,0,0,0,0,
|
|
0x138,0,0x35,0,0,1,1,1,0x36);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0xcd7f,0xcccc,0x4ccc,0xcd7f,0xcccc,0xcccc,0xcd7d,0xcccc,
|
|
0x4ccc,0x80,0,0,0,0,0x48,0,0x30,0,0xfffb,0xffff,6,0,1,0,2,1,0x37);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x80,0,0,8,0,0,0,0,0,0,0,
|
|
0xfff7,0xffff,1,1,1,1,0x38);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x80,0,0,0,0,0xffe6,
|
|
0xffff,0xffd1,0xffff,7,0,0xffff,0xffff,1,0,2,1,0x39);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x80,0,0,8,0,0,0,0,0,
|
|
0xfff9,0xffff,3,0,1,1,1,1,0x3a);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x80,0,0,0,0,0xffd3,
|
|
0xffff,0,0,0,0,0xfff8,0xffff,1,0,2,1,0x3b);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,10,0
|
|
,0,0,0,0,0x13a,0,0x1d,0,0,1,1,1,0x3c);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x80,0,0,0,0,0x16f,0,0x25
|
|
,0,0x138,0,0x25,0,0,0,2,1,0x3d);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7c,0xcccc,0x4ccc,0xcd7f,0xcccc,0x4ccc,0,0,
|
|
0x194,0,0x6e,0,0x16f,0,0x25,0,0,0,2,1,0x3e);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x195,0,0x13,0,0x1ac,0,0x5c,0,0,0,2,1,0x3f);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x137,0,0x13,0,0x195,0,0x13,0,0,0,2,1,0x40);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x80,0,0,0xf,0,0,0,0,0,
|
|
0x1a1,0,0x67,0,0,1,1,1,0x41);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7e,0xcccc,0x4ccc,0x80,0,0,0,0,0x1b1,0,0x8d
|
|
,0,0x196,0,0x70,0,0,0,2,1,0x42);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7e,0xcccc,0x4ccc,0x80,0,0,9,0,0,0,0,0,
|
|
0x1b7,0,0x86,0,0,1,1,1,0x43);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7e,0xcccc,0x4ccc,0x80,0,0,0,0,0x1af,0,0x61
|
|
,0,0x1bf,0,0x82,0,0,0,2,1,0x44);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x80,0,0,8,0,0,0,0,0,
|
|
0x138,0,0x104,0,0,1,1,1,0x45);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x80,0,0,0,0,0x2d,0,0,0,0
|
|
,0,7,0,1,0,2,1,0x46);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x80,0,0,8,0,0,0,0,0,
|
|
0xffff,0xffff,0xfff9,0xffff,1,1,1,1,0x47);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x80,0,0,0,0,0x16,0,
|
|
0xffd1,0xffff,8,0,1,0,1,0,2,1,0x48);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x80,0,0,8,0,0,0,0,0,
|
|
0xfff8,0xffff,0,0,1,1,1,1,0x49);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0xcd7f,0xcccc,0x4ccc,0xcd7f,0xcccc,0xcccc,0xcd7d,0xcccc,
|
|
0x4ccc,0x80,0,0,0,0,0xffb9,0xffff,0x32,0,0xfffe,0xffff,0xfff7,0xffff,1,0,2,1,0x4a);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,9,0,
|
|
0,0,0,0,0x138,0,0x11c,0,0,1,1,1,0x4b);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x80,0,0,0,0,0x195,0,
|
|
0x124,0,0x137,0,0x124,0,0,0,2,1,0x4c);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x1ac,0,0xdd,0,0x195,0,0x124,0,0,0,2,1,0x4d);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7c,0xcccc,0x4ccc,0x80,0,0,0,0,0x16f,0,
|
|
0x113,0,0x194,0,0xcd,0,0,0,2,1,0x4e);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x138,0,0x113,0,0x16f,0,0x113,0,0,0,2,1,0x4f);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7e,0xcccc,0x4ccc,0x80,0,0,0xf,0,0,0,0,0,
|
|
0x1a1,0,0xd2,0,0,1,1,1,0x50);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7e,0xcccc,0x4ccc,0x80,0,0,0,0,0x1bf,0,0xb1
|
|
,0,0x1af,0,0xd8,0,0,0,2,1,0x51);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7e,0xcccc,0x4ccc,0x80,0,0,9,0,0,0,0,0,
|
|
0x1b7,0,0xb3,0,0,1,1,1,0x52);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0xcd7e,0xcccc,0x4ccc,0x80,0,0,0,0,0x196,0,0xc9
|
|
,0,0x1b1,0,0xac,0,0,0,2,1,0x53);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0x5dc,0,0,4,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,0xdd,0,0x28
|
|
,0,0xcd,0,0x49,0,0,0,2,1,0x54);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,0xcd,0,0x49,0,
|
|
0xc1,0,0x43,0,0,0,2,1,0x55);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,0xd1,0,0x22,0,
|
|
0xdd,0,0x28,0,0,0,2,1,0x56);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0x5dc,0,0x55,6,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,0xe7,0,
|
|
0x2a,0,0xd5,0,0x4c,0,0,0,2,0,0x57);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0x5dc,0,0x56,6,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,0xef,0,
|
|
0x2d,0,0xdd,0,0x4f,0,0,0,2,0,0x58);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0x13,0,0,0,0,0,0x72
|
|
,0,0x121,0,0,0,3,1,0x59);
|
|
FUN_1008_0138(0xf6,0x132,0xe7,0x11a,0,0,0,0,3,0x5dc,0,0x5a,0x208a,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,
|
|
0x1999,0,0,0xf7,0,0x124,0,0x111,0,0x124,0,0,0,2,1,0x5a);
|
|
FUN_1008_0138(0xf6,0x132,0xe7,0x11a,0,0,0,0,3,0x5dc,0,0x5a,0x208a,0,0,0,0,0,0,0,0,0,0xcd7f,0xcccc,
|
|
0x4ccc,0,0,0x111,0,0x124,0,0x111,0,0x12e,0,0,0,2,1,0x5b);
|
|
FUN_1008_0138(0xf6,0x132,0xe7,0x11a,0,0,0,0,3,0x5dc,0,0x5a,0x208a,0,0,0,0,0,0,0,0,0,0xcd7f,0xcccc,
|
|
0x4ccc,0,0,0xf7,0,0x12e,0,0xf7,0,0x124,0,0,0,2,1,0x5c);
|
|
FUN_1008_0138(0xe7,0x132,0xd9,0x11a,0,0,0,0,3,0x5dc,0,0x5d,0x208a,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,
|
|
0x1999,0,0,0xe7,0,0x124,0,0x100,0,0x124,0,0,0,2,1,0x5d);
|
|
FUN_1008_0138(0xe7,0x132,0xd9,0x11a,0,0,0,0,3,0x5dc,0,0x5d,0x208a,0,0,0,0,0,0,0,0,0,0xcd7f,0xcccc,
|
|
0x4ccc,0,0,0x100,0,0x124,0,0x100,0,0x12e,0,0,0,2,1,0x5e);
|
|
FUN_1008_0138(0xe7,0x132,0xd9,0x11a,0,0,0,0,3,0x5dc,0,0x5d,0x208a,0,0,0,0,0,0,0,0,0,0xcd7f,0xcccc,
|
|
0x4ccc,0,0,0xe7,0,0x12e,0,0xe7,0,0x124,0,0,0,2,1,0x5f);
|
|
FUN_1008_0138(0xd8,0x132,0xca,0x11a,0,0,0,0,3,0x5dc,0,0x60,0x208a,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,
|
|
0x1999,0,0,0xd9,0,0x124,0,0xf1,0,0x124,0,0,0,2,1,0x60);
|
|
FUN_1008_0138(0xd8,0x132,0xca,0x11a,0,0,0,0,3,0x5dc,0,0x60,0x208a,0,0,0,0,0,0,0,0,0,0xcd7f,0xcccc,
|
|
0x4ccc,0,0,0xf1,0,0x124,0,0xf1,0,0x12e,0,0,0,2,1,0x61);
|
|
FUN_1008_0138(0xd8,0x132,0xca,0x11a,0,0,0,0,3,0x5dc,0,0x60,0x208a,0,0,0,0,0,0,0,0,0,0xcd7f,0xcccc,
|
|
0x4ccc,0,0,0xd9,0,0x12e,0,0xd9,0,0x124,0,0,0,2,1,0x62);
|
|
FUN_1008_0138(0xc9,0x132,0xbb,0x11a,0,0,0,0,3,0x5dc,0,99,0x208a,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,
|
|
0x1999,0,0,0xc9,0,0x124,0,0xe2,0,0x124,0,0,0,2,1,99);
|
|
FUN_1008_0138(0xc9,0x132,0xbb,0x11a,0,0,0,0,3,0,0,99,0x208a,0,0,0,0,0,0,0,0,0,0xcd7f,0xcccc,0x4ccc
|
|
,0,0,0xe2,0,0x124,0,0xe2,0,0x12e,0,0,0,2,1,100);
|
|
FUN_1008_0138(0xc9,0x132,0xbb,0x11a,0,0,0,0,3,0,0,99,0x208a,0,0,0,0,0,0,0,0,0,0xcd7f,0xcccc,0x4ccc
|
|
,0,0,0xca,0,0x12e,0,0xca,0,0x124,0,0,0,2,1,0x65);
|
|
FUN_1008_0138(0xba,0x132,0xae,0x11a,0,0,0,0,3,0x5dc,0,0x66,0x208a,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,
|
|
0x1999,0,0,0xbb,0,0x124,0,0xd2,0,0x124,0,0,0,2,1,0x66);
|
|
FUN_1008_0138(0xba,0x132,0xae,0x11a,0,0,0,0,3,0,0,0x66,0x208a,0,0,0,0,0,0,0,0,0,0xcd7f,0xcccc,
|
|
0x4ccc,0,0,0xd1,0,0x124,0,0xd2,0,0x12e,0,0,0,2,1,0x67);
|
|
FUN_1008_0138(0xba,0x132,0xae,0x11a,0,0,0,0,3,0,0,0x66,0x208a,0,0,0,0,0,0,0,0,0,0xcd7f,0xcccc,
|
|
0x4ccc,0,0,0xb7,0,0x12e,0,0xbc,0,0x124,0,0,0,2,1,0x68);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0xcd7e,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0xe0,0,0x94,0,0xf2,0,0xcb,0,0,0,2,1,0x69);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0xe,
|
|
0,0,0,0,0,0xd4,0,0x9c,0,0,1,1,1,0x6a);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0x9a7f,0x9999,0x1999,0xcd7f,0xcccc,0xcccc,0xcd7d,0xcccc,
|
|
0x4ccc,0x9a80,0x9999,0x1999,0,0,0xd9,0,0xd7,0,0xc6,0,0x9e,0,0,0,2,1,0x6b);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0xe,
|
|
0,0,0,0,0,0xe6,0,0xd2,0,0,1,1,1,0x6c);
|
|
FUN_1008_0138(0xec,0xce,0xd6,0xc0,0,0,0,0,3,0x5dc,0,0x6d,0x2092,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,
|
|
0x1999,0,0,0xf6,0,0xbb,0,0xfd,0,0xd1,0,0,0,2,1,0x6d);
|
|
FUN_1008_0138(0xdc,0xcd,0xd6,0xc0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,
|
|
0xfd,0,0xd1,0,0xee,0,0xd6,0,0,0,2,1,0x6e);
|
|
FUN_1008_0138(0xdc,0xcd,0xd6,0xc0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,
|
|
0xea,0,0xbf,0,0xf6,0,0xbb,0,0,0,2,1,0x6f);
|
|
FUN_1008_0138(0xe7,0xbf,0xd1,0xb2,0,0,0,0,3,0x5dc,0,0x70,0x2092,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,
|
|
0x1999,0,0,0xef,0,0xa9,0,0xf9,0,0xc6,0,0,0,2,1,0x70);
|
|
FUN_1008_0138(0xdc,0xcd,0xd6,0xc0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,
|
|
0xf9,0,0xc6,0,0xed,0,0xca,0,0,0,2,1,0x71);
|
|
FUN_1008_0138(0xdc,0xcd,0xd6,0xc0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,
|
|
0xe3,0,0xad,0,0xef,0,0xa9,0,0,0,2,1,0x72);
|
|
FUN_1008_0138(0xe2,0xb1,0xcc,0xa3,0,0,0,0,3,0x5dc,0,0x73,0x2092,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,
|
|
0x1999,0,0,0xe9,0,0x99,0,0xf3,0,0xb6,0,0,0,2,1,0x73);
|
|
FUN_1008_0138(0xdc,0xcd,0xd6,0xc0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,
|
|
0xf3,0,0xb6,0,0xe7,0,0xba,0,0,0,2,1,0x74);
|
|
FUN_1008_0138(0xdc,0xcd,0xd6,0xc0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,
|
|
0xdd,0,0x9d,0,0xe9,0,0x99,0,0,0,2,1,0x75);
|
|
FUN_1008_0138(0xdd,0xa3,0xc6,0x95,0,0,0,0,3,0x5dc,0,0x76,0x2092,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,
|
|
0x1999,0,0,0xe2,0,0x8b,0,0xed,0,0xa3,0,0,0,2,1,0x76);
|
|
FUN_1008_0138(0xdc,0xcd,0xd6,0xc0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,
|
|
0xed,0,0xa3,0,0xe1,0,0xa7,0,0,0,2,1,0x77);
|
|
FUN_1008_0138(0xdc,0xcd,0xd6,0xc0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,
|
|
0xd3,0,0x90,0,0xe2,0,0x8b,0,0,0,2,1,0x78);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,2000,0,0,0x400,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,0xa0,0,
|
|
0x54,0,0x95,0,0x69,0,0,0,2,1,0x79);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,0x95,0,0x69,0,
|
|
0x8b,0,0x65,0,0,0,2,1,0x7a);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,0x96,0,0x50,0,
|
|
0xa0,0,0x54,0,0,0,2,1,0x7b);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x97,0,0x57,0,0x8b,0,0x6f,0,0,0,2,1,0x7c);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,8,0,
|
|
0,0,0,0,0x92,0,0x54,0,0,1,1,1,0x7d);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x6c,0,0x4d,0,0x93,0,0x4d,0,0,0,2,1,0x7e);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x6a,0,0x57,0,0x6c,0,0x4d,0,0,0,2,1,0x7f);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x8d,0,0x6e,0,0x6a,0,0x57,0,0,0,2,1,0x80);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0x13,0,0,0,0,0,0x60
|
|
,0,0x60,0,0,0,3,1,0x81);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0x13,0,0,0,0,0,0x45
|
|
,0,0x73,0,0,0,3,1,0x82);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0x13,0,0,0,0,0,0x50
|
|
,0,0x93,0,0,0,3,1,0x83);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0x13,0,0,0,0,0,0x70
|
|
,0,0x93,0,0,0,3,1,0x84);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0x13,0,0,0,0,0,0x7b
|
|
,0,0x73,0,0,0,3,1,0x85);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0x14
|
|
,0,0,0,0,0,0x60,0,0x7c,0,0,1,1,1,0x86);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0x11
|
|
,0,0,0,0,0,0x4e,0,100,0,0,1,1,1,0x87);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0x11
|
|
,0,0,0,0,0,0x44,0,0x85,0,0,1,1,1,0x88);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0x11
|
|
,0,0,0,0,0,0x60,0,0x9a,0,0,1,1,1,0x89);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0x11
|
|
,0,0,0,0,0,0x7d,0,0x85,0,0,1,1,1,0x8a);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0x11
|
|
,0,0,0,0,0,0x72,0,100,0,0,1,1,1,0x8b);
|
|
FUN_1008_0138(0xbc,0x1f,0xae,0x11,0,0,0,0,1,1000,0,0,0xc0,0,0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,0,0,0,
|
|
0xca,0,0x18,0,0,0,4,1,0x8c);
|
|
FUN_1008_0138(0xa9,0x19,0x9b,0xb,0,0,0,0,1,1000,0,0,0xc0,0,0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,0,0,0,
|
|
0xb6,0,0x12,0,0,0,4,1,0x8d);
|
|
FUN_1008_0138(0x96,0x18,0x88,10,0,0,0,0,1,0x5dc,0,0,0xc0,0,0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,0,0,0,
|
|
0xa4,0,0x11,0,0,0,4,1,0x8e);
|
|
FUN_1008_0138(0x83,0x18,0x75,10,0,0,0,0,1,0x5dc,0,0,0xc0,0,0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,0,0,0,
|
|
0x91,0,0x11,0,0,0,4,1,0x8f);
|
|
FUN_1008_0138(0x70,0x18,0x62,10,0,0,0,0,1,2000,0,0,0xc0,0,0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,0,0,0,0x7e
|
|
,0,0x11,0,0,0,4,1,0x90);
|
|
FUN_1008_0138(0x5d,0x18,0x4f,10,0,0,0,0,1,2000,0,0,0xc0,0,0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,0,0,0,0x6b
|
|
,0,0x11,0,0,0,4,1,0x91);
|
|
FUN_1008_0138(0x4f,0x18,0x3c,10,0,0,0,0,1,0x9c4,0,0,0xc0,0,0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,0,0,0,
|
|
0x57,0,0x11,0,0,0,4,1,0x92);
|
|
FUN_1008_0138(0x37,0x18,0x29,10,0,0,0,0,1,3000,0,0,0xc0,0,0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,0,0,0,0x44
|
|
,0,0x11,0,0,0,4,1,0x93);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0x13,0,0,0,0,0,0x2b
|
|
,0,0x11,0,0,0,3,1,0x94);
|
|
FUN_1008_0138(0x49,0x4d,0x39,0x3c,0,0,0,0,1,500,0,0,0x140,0,0,0,0,0,0,0,0,0,0,0,0,0x10,0,0,0,0,0,
|
|
0x55,0,0x44,0,0,0,4,0,0x95);
|
|
FUN_1008_0138(0x32,0xd3,0x28,199,0,0,0,0,1,500,0,0,0x1000,0,0,0,0,0,0,0,0,0,0,0,0,0xb,0,0,0,0,0,
|
|
0x43,0,0xcd,0,0,0,4,1,0x96);
|
|
FUN_1008_0138(0x33,0xf0,0x29,0xe4,0,0,0,0,1,500,0,0,0x1000,0,0,0,0,0,0,0,0,0,0,0,0,0xb,0,0,0,0,0,
|
|
0x42,0,0xe9,0,0,0,4,1,0x97);
|
|
FUN_1008_0138(0x34,0x10d,0x2a,0x101,0,0,0,0,1,500,0,0,0x1000,0,0,0,0,0,0,0,0,0,0,0,0,0xb,0,0,0,0,0
|
|
,0x42,0,0x108,0,0,0,4,1,0x98);
|
|
FUN_1008_0138(0x188,0x17,0x158,0xb,0,0,0,0,2,0,0,0,0x100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x194,0,0x1b,
|
|
0,0x154,0,6,0,0,0,4,0,0x99);
|
|
FUN_1008_0138(0x18a,0x12f,0x15a,0x123,0,0,0,0,2,0,0,0,0x100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x192,0,
|
|
0x133,0,0x154,0,0x11b,0,0,0,4,0,0x9a);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0xb,
|
|
0,0,0,0,0,0x4f,0,0xb7,0,0,1,1,1,0x9b);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x34,0,0xb8,0,0x4b,0,0xac,0,0,0,2,1,0x9c);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0xb,
|
|
0,0,0,0,0,0x38,0,0xc3,0,0,1,1,1,0x9d);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x52,0,0xc1,0,0x3d,0,0xcd,0,0,0,2,1,0x9e);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0xb,
|
|
0,0,0,0,0,0x4f,0,0xd4,0,0,1,1,1,0x9f);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x34,0,0xd5,0,0x4b,0,0xc9,0,0,0,2,1,0xa0);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0xb,
|
|
0,0,0,0,0,0x38,0,0xe0,0,0,1,1,1,0xa1);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x52,0,0xde,0,0x3d,0,0xea,0,0,0,2,1,0xa2);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0xb,
|
|
0,0,0,0,0,0x4f,0,0xf1,0,0,1,1,1,0xa3);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x34,0,0xf2,0,0x4b,0,0xe6,0,0,0,2,1,0xa4);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0xb,
|
|
0,0,0,0,0,0x38,0,0xfd,0,0,1,1,1,0xa5);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x52,0,0xfb,0,0x3d,0,0x107,0,0,0,2,1,0xa6);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,9,0,0,0,0,0,0x10c,0
|
|
,299,0,0,0,1,1,0xa7);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,0x111,0,0x123,0
|
|
,0x123,0,0x12a,0,0,0,2,1,0xa8);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0xcd7d,0xcccc,0x4ccc,0x9a80,0x9999,0x1999,0,0,
|
|
0x4e,0,0x148,0,0x1ba,0,0x148,0,0,0,2,1,0xa9);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,100,0,0x12a,0,
|
|
0x1a4,0,0x12a,0,0,0,2,1,0xaa);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,0xbe,0,0x12a,0,
|
|
0x10b,0,0x12a,0,0,0,2,1,0xab);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,9,0,0,0,0,0,0xbf,0,
|
|
299,0,0,0,1,1,0xac);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9a80,0x9999,0x1999,0,0,0xa5,0,0x12a,0,
|
|
0xbc,0,0x123,0,0,0,2,1,0xad);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x6680,0x6666,0x6666,0x11,0,0,0,0,0,0,0,
|
|
0,0,0,1,1,1,0xae);
|
|
FUN_1008_0138(0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0x6680,0x6666,0x6666,0x11,0,0,0,0,0,0,0,
|
|
0,0,0,1,1,0,0xaf);
|
|
FUN_1008_0787(0x143,0x79,0x130,0x67,1);
|
|
FUN_1008_0787(299,0x89,0x118,0x77,2);
|
|
FUN_1008_0787(0x123,0xa6,0x110,0x94,3);
|
|
FUN_1008_0787(299,0xc3,0x118,0xb1,4);
|
|
FUN_1008_0787(0x142,0xd3,0x12f,0xc1,5);
|
|
FUN_1008_0787(0x14,0,0x14,0,6);
|
|
FUN_1008_0787(0x14,0,0x14,0,7);
|
|
FUN_1008_0787(0x14,0,0x14,0,8);
|
|
FUN_1008_0787(0x14,0,0x14,0,9);
|
|
FUN_1008_0787(0x14,0,0x14,0,10);
|
|
FUN_1008_0787(0x14,0,0x14,0,0xb);
|
|
FUN_1008_0787(0x14,0,0x14,0,0xc);
|
|
FUN_1008_0787(0x14,0,0x14,0,0xd);
|
|
FUN_1008_0787(0x14,0,0x14,0,0xe);
|
|
FUN_1008_0787(0x54,0x67,0x44,0x57,0xf);
|
|
FUN_1008_0787(0x39,0x7b,0x29,0x69,0x10);
|
|
FUN_1008_0787(0x43,0x9a,0x33,0x8a,0x11);
|
|
FUN_1008_0787(99,0x9a,0x53,0x8a,0x12);
|
|
FUN_1008_0787(0x6e,0x7a,0x5e,0x6a,0x13);
|
|
FUN_1008_0787(0x1e,0x19,0xe,9,0x14);
|
|
local_4 = 1;
|
|
while( true ) {
|
|
*(undefined1 *)(iVar5 + local_4 + 0x3cc) = *(undefined1 *)(local_4 * 0x53 + 0x98f);
|
|
*(undefined2 *)(iVar5 + local_4 * 2 + 0xa42) = *(undefined2 *)(local_4 * 0x53 + 0x99e);
|
|
*(undefined1 *)(iVar5 + local_4 + 0x61) = 0;
|
|
if (local_4 == 0xaf) break;
|
|
local_4 = local_4 + 1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:51f5 FUN_1000_51f5 ===== */
|
|
|
|
void __stdcall16far FUN_1000_51f5(undefined4 param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
uint uVar4;
|
|
int iVar5;
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar6;
|
|
int local_4;
|
|
|
|
uVar6 = 0;
|
|
uVar2 = LOADCURSOR(unaff_CS,0x7f02,0);
|
|
uVar3 = SETCURSOR(0x1228,uVar2,uVar6);
|
|
FUN_1008_10e3(uVar2,uVar6,uVar3);
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar5 = (int)param_1;
|
|
*(undefined1 *)(iVar5 + 0xbd9) = 1;
|
|
*(undefined1 *)(iVar5 + 0xbd8) = 1;
|
|
uVar4 = *(uint *)(iVar5 + 0x49) | *(uint *)(iVar5 + 0x4b);
|
|
if (uVar4 != 0) {
|
|
piVar1 = (int *)*(undefined4 *)(iVar5 + 0x49);
|
|
(*(code *)*(undefined2 *)(*piVar1 + 8))
|
|
(0x1008,(int *)piVar1,(int)((ulong)piVar1 >> 0x10),CONCAT11((char)(uVar4 >> 8),1));
|
|
}
|
|
FUN_1008_00e2();
|
|
DELETEOBJECT(0x1008,*(undefined2 *)(iVar5 + 0x52));
|
|
DELETEOBJECT(0x1228,DAT_1028_0859);
|
|
DELETEOBJECT(0x1228,DAT_1028_0863);
|
|
DELETEOBJECT(0x1228,DAT_1028_0865);
|
|
DELETEOBJECT(0x1228,DAT_1028_085f);
|
|
DELETEOBJECT(0x1228,DAT_1028_085b);
|
|
DELETEOBJECT(0x1228,DAT_1028_0861);
|
|
DELETEOBJECT(0x1228,DAT_1028_085d);
|
|
local_4 = 0;
|
|
while( true ) {
|
|
DELETEOBJECT(0x1228,*(undefined2 *)(local_4 * 2 + 0x430b));
|
|
if (local_4 == 7) break;
|
|
local_4 = local_4 + 1;
|
|
}
|
|
local_4 = 1;
|
|
while( true ) {
|
|
DELETEOBJECT(0x1228,*(undefined2 *)(local_4 * 2 + 0x4319));
|
|
if (local_4 == 4) break;
|
|
local_4 = local_4 + 1;
|
|
}
|
|
local_4 = 1;
|
|
while( true ) {
|
|
DELETEOBJECT(0x1228,((undefined2 *)&DAT_1028_4321)[local_4]);
|
|
if (local_4 == 9) break;
|
|
local_4 = local_4 + 1;
|
|
}
|
|
SETCURSOR(0x1228,uVar3);
|
|
POSTQUITMESSAGE(0x1228,0x12);
|
|
FUN_1018_121b(iVar5,uVar2,0);
|
|
INVALIDATERECT(0x1018,1,0,0,*(undefined2 *)(iVar5 + 4));
|
|
FUN_1020_0439();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:531e FUN_1000_531e ===== */
|
|
|
|
void __stdcall16far FUN_1000_531e(int param_1,byte param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 unaff_SS;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
|
|
uVar4 = *(undefined2 *)(param_1 + 0xe);
|
|
uVar1 = CREATECOMPATIBLEDC();
|
|
*(undefined2 *)(param_1 + -0xc) = uVar1;
|
|
uVar1 = *(undefined2 *)(param_1 + -0xc);
|
|
uVar2 = SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -2));
|
|
*(undefined2 *)(param_1 + -4) = uVar2;
|
|
uVar2 = *(undefined2 *)(param_1 + 0xe);
|
|
BITBLT(0x1228,0x20,0xcc,0,0,*(undefined2 *)(param_1 + -0xc),0xd,(param_2 - 1) * 7,0x148,0xca);
|
|
uVar3 = *(undefined2 *)(param_1 + -0xc);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -4));
|
|
DELETEOBJECT(0x1228,*(undefined2 *)(param_1 + -0xc),uVar3,uVar2,uVar1,uVar4);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:5390 FUN_1000_5390 ===== */
|
|
|
|
void __stdcall16far
|
|
FUN_1000_5390(undefined4 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
int iVar3;
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar4;
|
|
undefined2 unaff_SS;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
undefined2 uVar8;
|
|
undefined2 uVar9;
|
|
int local_20;
|
|
undefined1 local_16 [4];
|
|
int local_12;
|
|
int local_10;
|
|
undefined2 local_e;
|
|
undefined2 local_c;
|
|
undefined2 local_a;
|
|
undefined2 local_8;
|
|
undefined2 local_6;
|
|
undefined2 local_4;
|
|
|
|
uVar2 = param_4;
|
|
uVar1 = SELECTPALETTE(unaff_CS,0,DAT_1028_444e);
|
|
UNREALIZEOBJECT(0x1228,DAT_1028_444e,uVar2);
|
|
REALIZEPALETTE(0x1228,param_4);
|
|
uVar4 = 0x1008;
|
|
FUN_1008_00e2();
|
|
iVar3 = (int)param_1;
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
if (DAT_1028_07cc != '\0') {
|
|
local_4 = FUN_1008_149d(0x3e3,0,DAT_1028_06fe);
|
|
uVar6 = CREATECOMPATIBLEDC(0x1008,param_4);
|
|
local_e = uVar6;
|
|
local_6 = SELECTOBJECT(0x1228,local_4);
|
|
uVar5 = param_4;
|
|
BITBLT(0x1228,0x20,0xcc,0,0,local_e,0x1e0,0x280,0,0);
|
|
uVar4 = local_e;
|
|
SELECTOBJECT(0x1228,local_6);
|
|
DELETEOBJECT(0x1228,local_e,uVar4,uVar5,uVar6);
|
|
DELETEOBJECT(0x1228,local_4);
|
|
local_4 = FUN_1008_149d(0x3e2,0,DAT_1028_06fe);
|
|
FUN_1000_531e(&stack0xfffe,2);
|
|
FUN_1008_0f2e();
|
|
FUN_1000_531e(&stack0xfffe,3);
|
|
FUN_1000_531e(&stack0xfffe,4);
|
|
DAT_1028_085d = FUN_1008_149d(0x3e6,0,DAT_1028_06fe);
|
|
FUN_1000_531e(&stack0xfffe,5);
|
|
DAT_1028_085b = FUN_1008_149d(0x3e6,0,DAT_1028_06fe);
|
|
FUN_1000_531e(&stack0xfffe,6);
|
|
DAT_1028_0861 = LOADBITMAP(0x1000,500,0);
|
|
local_20 = 0;
|
|
while( true ) {
|
|
FUN_1000_531e(&stack0xfffe,local_20 + 7);
|
|
uVar4 = FUN_1008_149d(local_20 + 400,local_20 + 400 >> 0xf,DAT_1028_06fe);
|
|
*(undefined2 *)(local_20 * 2 + 0x430b) = uVar4;
|
|
if (local_20 == 7) break;
|
|
local_20 = local_20 + 1;
|
|
}
|
|
local_20 = 1;
|
|
while( true ) {
|
|
FUN_1000_531e(&stack0xfffe,local_20 + 0xe);
|
|
uVar4 = FUN_1008_149d(local_20 + 700,local_20 + 700 >> 0xf,DAT_1028_06fe);
|
|
*(undefined2 *)(local_20 * 2 + 0x4319) = uVar4;
|
|
if (local_20 == 4) break;
|
|
local_20 = local_20 + 1;
|
|
}
|
|
local_20 = 1;
|
|
while( true ) {
|
|
FUN_1000_531e(&stack0xfffe,local_20 + 0x12);
|
|
uVar4 = FUN_1008_149d(local_20 + 800,local_20 + 800 >> 0xf,DAT_1028_06fe);
|
|
((undefined2 *)&DAT_1028_4321)[local_20] = uVar4;
|
|
if (local_20 == 9) break;
|
|
local_20 = local_20 + 1;
|
|
}
|
|
FUN_1000_531e(&stack0xfffe,0x1c);
|
|
uVar4 = LOADBITMAP(0x1000,0x66,0);
|
|
*(undefined2 *)(iVar3 + 0x54) = uVar4;
|
|
FUN_1000_531e(&stack0xfffe,0x1d);
|
|
DAT_1028_0863 = FUN_1008_149d(900,0,DAT_1028_06fe);
|
|
FUN_1000_531e(&stack0xfffe,0x1e);
|
|
uVar4 = LOADBITMAP(0x1000,0x65,0);
|
|
*(undefined2 *)(iVar3 + 0x52) = uVar4;
|
|
FUN_1000_531e(&stack0xfffe,0x1f);
|
|
DAT_1028_085f = FUN_1008_149d(0x3e5,0,DAT_1028_06fe);
|
|
FUN_1000_531e(&stack0xfffe,0x20);
|
|
DAT_1028_0865 = FUN_1008_149d(0x385,0,DAT_1028_06fe);
|
|
FUN_1000_531e(&stack0xfffe,0x21);
|
|
DAT_1028_0859 = FUN_1008_149d(600,0,DAT_1028_06fe);
|
|
FUN_1000_531e(&stack0xfffe,0x22);
|
|
DAT_1028_07cc = '\0';
|
|
FUN_1000_531e(&stack0xfffe,0x23);
|
|
DELETEOBJECT(0x1000,local_4);
|
|
uVar5 = param_4;
|
|
SELECTPALETTE(0x1228,0,uVar1);
|
|
uVar7 = 0;
|
|
uVar6 = LOADCURSOR(0x1228,0x7f00,0);
|
|
uVar4 = 0x1228;
|
|
SETCURSOR(0x1228,uVar6,uVar7,uVar5);
|
|
}
|
|
if (*(char *)(iVar3 + 0xbd8) == '\0') {
|
|
*(undefined1 *)(iVar3 + 0xbd9) = 1;
|
|
local_c = CREATECOMPATIBLEDC(uVar4,param_4);
|
|
local_e = CREATECOMPATIBLEDC(0x1228,param_4);
|
|
GETCLIENTRECT(0x1228,local_16,unaff_SS);
|
|
local_a = CREATECOMPATIBLEBITMAP(0x1228,local_10 + 1,local_12 + 1);
|
|
local_6 = SELECTOBJECT(0x1228,DAT_1028_085b);
|
|
local_8 = SELECTOBJECT(0x1228,local_a);
|
|
uVar9 = local_e;
|
|
BITBLT(0x1228,0x20,0xcc,0,0,local_c,local_10,local_12,0,0);
|
|
uVar8 = local_c;
|
|
BITBLT(0x1228,0x20,0xcc,0,0,local_e,local_10,local_12,0,0);
|
|
uVar5 = 0xcc;
|
|
uVar4 = 0x20;
|
|
uVar7 = param_4;
|
|
BITBLT(0x1228,0x20,0xcc,0,0,local_e,local_10,local_12,0,0);
|
|
uVar6 = local_e;
|
|
SELECTOBJECT(0x1228,local_8);
|
|
DELETEOBJECT(0x1228,local_a,uVar6,uVar7,uVar8,uVar9);
|
|
DELETEDC(0x1228,local_e);
|
|
uVar7 = 0x1228;
|
|
uVar6 = 0x5706;
|
|
uVar8 = local_6;
|
|
uVar9 = local_c;
|
|
SELECTOBJECT(0x1228,local_6);
|
|
if ((((0 < *(int *)(iVar3 + 0xba4)) ||
|
|
((-1 < *(int *)(iVar3 + 0xba4) && (*(int *)(iVar3 + 0xba2) != 0)))) &&
|
|
((0 < *(int *)(iVar3 + 0xba8) ||
|
|
((-1 < *(int *)(iVar3 + 0xba8) && (*(int *)(iVar3 + 0xba6) != 0)))))) &&
|
|
(*(char *)(iVar3 + 0xbde) == '\0')) {
|
|
uVar8 = local_c;
|
|
local_6 = SELECTOBJECT(0x1228,*(undefined2 *)(iVar3 + 0x54));
|
|
uVar7 = param_4;
|
|
BITBLT(0x1228,0xc6,0x88,0,0,local_c,*(int *)(iVar3 + 0xba6) + 0x13,
|
|
*(int *)(iVar3 + 0xba2) + 0x13,*(undefined2 *)(iVar3 + 0xba6),
|
|
*(undefined2 *)(iVar3 + 0xba2));
|
|
uVar6 = local_c;
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(iVar3 + 0x52));
|
|
uVar5 = param_4;
|
|
BITBLT(0x1228,0x86,0xee,0,0,local_c,*(int *)(iVar3 + 0xba6) + 0x13,
|
|
*(int *)(iVar3 + 0xba2) + 0x13,*(undefined2 *)(iVar3 + 0xba6),
|
|
*(undefined2 *)(iVar3 + 0xba2));
|
|
uVar4 = local_c;
|
|
SELECTOBJECT(0x1228,local_6);
|
|
}
|
|
DELETEDC(0x1228,local_c,uVar4,uVar5,uVar6,uVar7,uVar8,uVar9);
|
|
*(undefined2 *)(iVar3 + 0x4d) = 0;
|
|
*(undefined2 *)(iVar3 + 0x4f) = 0;
|
|
*(undefined1 *)(iVar3 + 0xbd9) = 0;
|
|
SELECTPALETTE(0x1228,0,uVar1);
|
|
uVar4 = 0;
|
|
uVar1 = LOADCURSOR(0x1228,0x7f00,0);
|
|
SETCURSOR(0x1228,uVar1,uVar4,param_4);
|
|
uVar1 = *(undefined2 *)(iVar3 + 4);
|
|
GETCLIENTRECT(0x1228,local_16,unaff_SS);
|
|
local_e = GETDC(0x1228,*(undefined2 *)(iVar3 + 4),uVar1);
|
|
uVar2 = *(undefined2 *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar1 = FUN_1020_08a9();
|
|
FUN_1008_0996(local_e,uVar1,uVar2);
|
|
local_20 = 1;
|
|
while( true ) {
|
|
iVar3 = *(int *)(local_20 * 4 + 0x980);
|
|
if ((0 < iVar3) || ((-1 < iVar3 && (*(int *)(local_20 * 4 + 0x97e) != 0)))) {
|
|
FUN_1008_0996(local_e,local_20,local_20 >> 0xf);
|
|
}
|
|
if (local_20 == 4) break;
|
|
local_20 = local_20 + 1;
|
|
}
|
|
DAT_1028_086b = 99;
|
|
FUN_1008_0b9e(DAT_1028_07d1,local_e);
|
|
RELEASEDC(0x1008,local_e);
|
|
DAT_1028_07cb = 1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:58e7 FUN_1000_58e7 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1000_58e7(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 local_4;
|
|
|
|
uVar3 = (undefined2)((ulong)param_2 >> 0x10);
|
|
iVar2 = (int)param_2;
|
|
if (*(int *)(iVar2 + 4) == 0) {
|
|
DAT_1028_07c4 = '\0';
|
|
local_4 = 0;
|
|
}
|
|
else if (DAT_1028_07c4 == '\0') {
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar1 = ISICONIC();
|
|
if (iVar1 == 0) {
|
|
DAT_1028_07c4 = '\x01';
|
|
INVALIDATERECT(0x1228,0,0,0,*(undefined2 *)((int)param_1 + 4));
|
|
UPDATEWINDOW(0x1228,*(undefined2 *)((int)param_1 + 4));
|
|
*(undefined2 *)(iVar2 + 10) = 0;
|
|
*(undefined2 *)(iVar2 + 0xc) = 0;
|
|
local_4 = 0;
|
|
}
|
|
}
|
|
return local_4;
|
|
}
|
|
|
|
|
|
/* ===== 1000:5956 FUN_1000_5956 ===== */
|
|
|
|
void __stdcall16far FUN_1000_5956(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
undefined2 unaff_CS;
|
|
|
|
uVar2 = (undefined2)((ulong)param_2 >> 0x10);
|
|
iVar1 = (int)param_2;
|
|
if ((*(int *)(iVar1 + 4) == 0) && (DAT_1028_07c4 == '\0')) {
|
|
DAT_1028_07c4 = '\x01';
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
INVALIDATERECT(unaff_CS,0,0,0,*(undefined2 *)((int)param_1 + 4));
|
|
UPDATEWINDOW(0x1228,*(undefined2 *)((int)param_1 + 4));
|
|
*(undefined2 *)(iVar1 + 10) = 0;
|
|
*(undefined2 *)(iVar1 + 0xc) = 0;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:59a0 FUN_1000_59a0 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1000_59a0(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
undefined2 uVar8;
|
|
undefined2 uVar9;
|
|
undefined2 local_4;
|
|
|
|
local_4 = 1;
|
|
uVar6 = (undefined2)((ulong)param_2 >> 0x10);
|
|
iVar4 = (int)param_2;
|
|
uVar7 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar5 = (int)param_1;
|
|
if (*(int *)(iVar4 + 4) != *(int *)(iVar5 + 4)) {
|
|
uVar9 = *(undefined2 *)(iVar4 + 4);
|
|
iVar1 = GETPARENT();
|
|
if (iVar1 != *(int *)(iVar5 + 4)) {
|
|
uVar7 = *(undefined2 *)(iVar5 + 4);
|
|
uVar2 = GETDC(0x1228,uVar7,uVar9);
|
|
uVar8 = uVar2;
|
|
uVar3 = SELECTPALETTE(0x1228,1,DAT_1028_444e);
|
|
REALIZEPALETTE(0x1228,uVar2,uVar8,uVar7,uVar9,uVar3);
|
|
UPDATECOLORS(0x1228,uVar2);
|
|
SELECTPALETTE(0x1228,0,uVar3);
|
|
RELEASEDC(0x1228,uVar2);
|
|
*(undefined2 *)(iVar4 + 10) = 0;
|
|
*(undefined2 *)(iVar4 + 0xc) = 0;
|
|
local_4 = 0;
|
|
}
|
|
}
|
|
return local_4;
|
|
}
|
|
|
|
|
|
/* ===== 1000:5a37 FUN_1000_5a37 ===== */
|
|
|
|
int __stdcall16far FUN_1000_5a37(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
int iVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
uVar5 = *(undefined2 *)((int)param_1 + 4);
|
|
uVar1 = GETDC();
|
|
uVar6 = uVar1;
|
|
uVar2 = SELECTPALETTE(0x1228,0,DAT_1028_444e);
|
|
iVar3 = REALIZEPALETTE(0x1228,uVar1,uVar6,uVar5);
|
|
SELECTPALETTE(0x1228,0,uVar2);
|
|
RELEASEDC(0x1228,uVar1);
|
|
if (0 < iVar3) {
|
|
INVALIDATERECT(0x1228,0,0,0,*(undefined2 *)((int)param_1 + 4));
|
|
}
|
|
uVar5 = (undefined2)((ulong)param_2 >> 0x10);
|
|
*(int *)((int)param_2 + 10) = iVar3;
|
|
*(undefined2 *)((int)param_2 + 0xc) = 0;
|
|
return iVar3;
|
|
}
|
|
|
|
|
|
/* ===== 1000:5ab7 FUN_1000_5ab7 ===== */
|
|
|
|
void __stdcall16far FUN_1000_5ab7(undefined4 param_1,uint *param_2)
|
|
|
|
{
|
|
uint uVar1;
|
|
undefined2 uVar2;
|
|
|
|
uVar2 = (undefined2)((ulong)param_2 >> 0x10);
|
|
FUN_1018_1274((int)param_1,(int)((ulong)param_1 >> 0x10),(uint *)param_2,uVar2);
|
|
uVar1 = GETSTOCKOBJECT(0x1018,5);
|
|
((uint *)param_2)[8] = uVar1;
|
|
*param_2 = *param_2 | 0x3800;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:5aea FUN_1000_5aea ===== */
|
|
|
|
undefined4 __stdcall16far
|
|
FUN_1000_5aea(undefined4 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4,
|
|
undefined2 param_5,undefined2 param_6)
|
|
|
|
{
|
|
uint uVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
bool bVar4;
|
|
|
|
bVar4 = true;
|
|
FUN_1020_03ef();
|
|
if (!bVar4) {
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar2 = (int)param_1;
|
|
FUN_1018_1106(iVar2,uVar3,0,param_3,param_4,param_5,param_6);
|
|
*(undefined2 *)(iVar2 + 0x41) = param_5;
|
|
*(undefined2 *)(iVar2 + 0x43) = param_6;
|
|
*(undefined2 *)(iVar2 + 0x2d) = 0x168;
|
|
*(undefined2 *)(iVar2 + 0x2f) = 300;
|
|
*(int *)(iVar2 + 0x29) = 0x140 - *(int *)(iVar2 + 0x2d) / 2;
|
|
*(int *)(iVar2 + 0x2b) = 0xe6 - *(int *)(iVar2 + 0x2f) / 2;
|
|
uVar1 = *(uint *)(iVar2 + 0x23);
|
|
*(uint *)(iVar2 + 0x21) = *(uint *)(iVar2 + 0x21) | 2;
|
|
*(uint *)(iVar2 + 0x23) = uVar1 | 0x4680;
|
|
SETFOCUS(0x1018,*(undefined2 *)(iVar2 + 4));
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
/* ===== 1000:5ba6 FUN_1000_5ba6 ===== */
|
|
|
|
void __stdcall16far FUN_1000_5ba6(undefined4 param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
|
|
uVar5 = DAT_1028_0867;
|
|
DELETEOBJECT();
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar1 = (int)param_1;
|
|
uVar4 = (undefined2)((ulong)*(undefined4 *)(iVar1 + 0x41) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(iVar1 + 0x41);
|
|
*(undefined2 *)(iVar2 + 0x41) = 0;
|
|
*(undefined2 *)(iVar2 + 0x43) = 0;
|
|
*(undefined2 *)(iVar1 + 0x41) = 0;
|
|
*(undefined2 *)(iVar1 + 0x43) = 0;
|
|
FUN_1018_121b(iVar1,uVar3,0);
|
|
FUN_1020_0439(uVar5);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:5be5 FUN_1000_5be5 ===== */
|
|
|
|
void __stdcall16far FUN_1000_5be5(undefined4 param_1)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
|
|
uVar1 = (undefined2)((ulong)param_1 >> 0x10);
|
|
FUN_1018_170c((int)param_1,uVar1);
|
|
DAT_1028_0867 = FUN_1008_149d(0x3e1,0,DAT_1028_06fe);
|
|
SETFOCUS(0x1008,*(undefined2 *)((int)param_1 + 4));
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:5c13 FUN_1000_5c13 ===== */
|
|
|
|
void __stdcall16far FUN_1000_5c13(void)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
undefined2 in_stack_0000000c;
|
|
undefined1 *puVar3;
|
|
int iVar4;
|
|
undefined1 *puVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
undefined1 local_26c [256];
|
|
undefined2 local_16c;
|
|
undefined2 local_16a;
|
|
undefined2 local_168;
|
|
undefined2 local_166;
|
|
undefined2 local_164;
|
|
undefined2 local_162;
|
|
int local_160;
|
|
int local_15e;
|
|
undefined1 local_15c [256];
|
|
undefined1 local_5c [41];
|
|
undefined1 local_33 [41];
|
|
undefined2 local_a;
|
|
undefined4 local_8;
|
|
undefined2 local_4;
|
|
|
|
uVar1 = in_stack_0000000c;
|
|
local_4 = SELECTPALETTE(unaff_CS,0,DAT_1028_444e);
|
|
UNREALIZEOBJECT(0x1228,DAT_1028_444e,uVar1);
|
|
REALIZEPALETTE(0x1228,in_stack_0000000c);
|
|
uVar1 = CREATECOMPATIBLEDC(0x1228,in_stack_0000000c);
|
|
local_16a = uVar1;
|
|
local_164 = SELECTOBJECT(0x1228,DAT_1028_0867);
|
|
local_16c = CREATECOMPATIBLEDC(0x1228,in_stack_0000000c,uVar1);
|
|
local_168 = CREATECOMPATIBLEBITMAP(0x1228,300,0x168);
|
|
uVar1 = local_16c;
|
|
local_166 = SELECTOBJECT(0x1228,local_168);
|
|
local_8 = GETTEXTCOLOR(0x1228,local_16c,uVar1,in_stack_0000000c);
|
|
local_a = SETTEXTALIGN(0x1228,6);
|
|
local_162 = SETBKMODE(0x1228,1);
|
|
BITBLT(0x1228,0x20,0xcc,0,0,local_16a,300,0x168,0,0);
|
|
SETTEXTCOLOR(0x1228,0,0);
|
|
FUN_1008_2ee5(0x2f4,0x1028,local_33,unaff_SS);
|
|
uVar7 = 0xb4;
|
|
uVar6 = 0x1b;
|
|
puVar3 = local_33;
|
|
uVar1 = unaff_SS;
|
|
uVar2 = FUN_1008_2e92(local_33,unaff_SS);
|
|
TEXTOUT(0x1008,uVar2,puVar3,uVar1,uVar6,uVar7);
|
|
local_15e = 1;
|
|
while( true ) {
|
|
local_160 = local_15e * 0x14 + 0x28;
|
|
SETTEXTALIGN(0x1228,0);
|
|
if (local_15e < 10) {
|
|
FUN_1008_2ee5(0x300,0x1028,local_33,unaff_SS);
|
|
}
|
|
else {
|
|
FUN_1008_2ee5(0x2ff,0x1028,local_33,unaff_SS);
|
|
}
|
|
FUN_1020_1629(0xff,local_15c,unaff_SS,0,local_15e,local_15e >> 0xf);
|
|
FUN_1008_2f2f(local_15c,unaff_SS,local_5c,unaff_SS);
|
|
FUN_1008_2f4d(local_5c,unaff_SS,local_33,unaff_SS);
|
|
FUN_1008_2f4d(0x303,0x1028,local_33,unaff_SS);
|
|
puVar3 = local_5c;
|
|
puVar5 = local_26c;
|
|
uVar1 = unaff_SS;
|
|
uVar2 = unaff_SS;
|
|
FUN_1020_0b00(0x16,local_15e * 0x16 + 0x890,0x1028);
|
|
FUN_1008_2f2f(puVar5,uVar1,puVar3,uVar2);
|
|
FUN_1008_2f4d(local_5c,unaff_SS,local_33,unaff_SS);
|
|
uVar6 = 0x1e;
|
|
puVar3 = local_33;
|
|
uVar1 = unaff_SS;
|
|
iVar4 = local_160;
|
|
uVar2 = FUN_1008_2e92(local_33,unaff_SS);
|
|
TEXTOUT(0x1008,uVar2,puVar3,uVar1,iVar4,uVar6);
|
|
SETTEXTALIGN(0x1228,2);
|
|
FUN_1020_1629(0xff,local_15c,unaff_SS,0,*(undefined2 *)(local_15e * 4 + 0x87a),
|
|
*(undefined2 *)(local_15e * 4 + 0x87c));
|
|
FUN_1008_2f2f(local_15c,unaff_SS,local_33,unaff_SS);
|
|
uVar6 = 0x140;
|
|
puVar3 = local_33;
|
|
uVar1 = unaff_SS;
|
|
iVar4 = local_160;
|
|
uVar2 = FUN_1008_2e92(local_33,unaff_SS);
|
|
TEXTOUT(0x1008,uVar2,puVar3,uVar1,iVar4,uVar6);
|
|
if (local_15e == 10) break;
|
|
local_15e = local_15e + 1;
|
|
}
|
|
BITBLT(0x1228,0x20,0xcc,0,0,local_16c,300,0x168,0,0);
|
|
uVar7 = local_16c;
|
|
SETTEXTCOLOR(0x1228,local_8);
|
|
uVar6 = local_16c;
|
|
SETTEXTALIGN(0x1228,local_a);
|
|
uVar2 = local_16c;
|
|
SETBKMODE(0x1228,local_162);
|
|
uVar1 = local_16c;
|
|
SELECTOBJECT(0x1228,local_166);
|
|
DELETEOBJECT(0x1228,local_168,uVar1,uVar2,uVar6,uVar7);
|
|
DELETEDC(0x1228,local_16c);
|
|
uVar1 = local_16a;
|
|
SELECTOBJECT(0x1228,local_164);
|
|
DELETEDC(0x1228,local_16a,uVar1);
|
|
SELECTPALETTE(0x1228,0,local_4);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:5ee6 FUN_1000_5ee6 ===== */
|
|
|
|
void __stdcall16far FUN_1000_5ee6(undefined4 param_1)
|
|
|
|
{
|
|
FUN_1008_00e2();
|
|
FUN_1018_0f38((int)param_1,(int)((ulong)param_1 >> 0x10));
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:5efc FUN_1000_5efc ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1000_5efc(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
undefined2 local_4;
|
|
|
|
if ((*(uint *)((int)param_2 + 8) & 0xff) != 0x1c) {
|
|
FUN_1008_00e2();
|
|
FUN_1018_0f38((int)param_1,(int)((ulong)param_1 >> 0x10));
|
|
}
|
|
return local_4;
|
|
}
|
|
|
|
|
|
/* ===== 1000:5f29 FUN_1000_5f29 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1000_5f29(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
undefined2 uVar8;
|
|
undefined2 uVar9;
|
|
undefined2 local_4;
|
|
|
|
local_4 = 1;
|
|
uVar6 = (undefined2)((ulong)param_2 >> 0x10);
|
|
iVar4 = (int)param_2;
|
|
uVar7 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar5 = (int)param_1;
|
|
if (*(int *)(iVar4 + 4) != *(int *)(iVar5 + 4)) {
|
|
uVar9 = *(undefined2 *)(iVar4 + 4);
|
|
iVar1 = GETPARENT();
|
|
if (iVar1 != *(int *)(iVar5 + 4)) {
|
|
uVar7 = *(undefined2 *)(iVar5 + 4);
|
|
uVar2 = GETDC(0x1228,uVar7,uVar9);
|
|
uVar8 = uVar2;
|
|
uVar3 = SELECTPALETTE(0x1228,1,DAT_1028_444e);
|
|
REALIZEPALETTE(0x1228,uVar2,uVar8,uVar7,uVar9,uVar3);
|
|
UPDATECOLORS(0x1228,uVar2);
|
|
SELECTPALETTE(0x1228,0,uVar3);
|
|
RELEASEDC(0x1228,uVar2);
|
|
*(undefined2 *)(iVar4 + 10) = 0;
|
|
*(undefined2 *)(iVar4 + 0xc) = 0;
|
|
local_4 = 0;
|
|
}
|
|
}
|
|
return local_4;
|
|
}
|
|
|
|
|
|
/* ===== 1000:5fc0 FUN_1000_5fc0 ===== */
|
|
|
|
int __stdcall16far FUN_1000_5fc0(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
int iVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
uVar5 = *(undefined2 *)((int)param_1 + 4);
|
|
uVar1 = GETDC();
|
|
uVar6 = uVar1;
|
|
uVar2 = SELECTPALETTE(0x1228,0,DAT_1028_444e);
|
|
iVar3 = REALIZEPALETTE(0x1228,uVar1,uVar6,uVar5);
|
|
SELECTPALETTE(0x1228,0,uVar2);
|
|
RELEASEDC(0x1228,uVar1);
|
|
if (0 < iVar3) {
|
|
INVALIDATERECT(0x1228,0,0,0,*(undefined2 *)((int)param_1 + 4));
|
|
}
|
|
uVar5 = (undefined2)((ulong)param_2 >> 0x10);
|
|
*(int *)((int)param_2 + 10) = iVar3;
|
|
*(undefined2 *)((int)param_2 + 0xc) = 0;
|
|
return iVar3;
|
|
}
|
|
|
|
|
|
/* ===== 1000:6040 FUN_1000_6040 ===== */
|
|
|
|
void __stdcall16far FUN_1000_6040(undefined4 param_1,uint *param_2)
|
|
|
|
{
|
|
uint uVar1;
|
|
undefined2 uVar2;
|
|
|
|
uVar2 = (undefined2)((ulong)param_2 >> 0x10);
|
|
FUN_1018_1274((int)param_1,(int)((ulong)param_1 >> 0x10),(uint *)param_2,uVar2);
|
|
uVar1 = GETSTOCKOBJECT(0x1018,5);
|
|
((uint *)param_2)[8] = uVar1;
|
|
*param_2 = *param_2 | 0x3800;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:6073 FUN_1000_6073 ===== */
|
|
|
|
undefined4 __stdcall16far
|
|
FUN_1000_6073(undefined4 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4,
|
|
undefined2 param_5,undefined2 param_6)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
bool bVar3;
|
|
|
|
bVar3 = true;
|
|
FUN_1020_03ef();
|
|
if (!bVar3) {
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar1 = (int)param_1;
|
|
FUN_1018_1106(iVar1,uVar2,0,param_3,param_4,param_5,param_6);
|
|
*(undefined2 *)(iVar1 + 0x41) = param_5;
|
|
*(undefined2 *)(iVar1 + 0x43) = param_6;
|
|
*(undefined2 *)(iVar1 + 0x2d) = 0x280;
|
|
*(undefined2 *)(iVar1 + 0x2f) = 0x1cc;
|
|
*(undefined2 *)(iVar1 + 0x29) = 0;
|
|
*(undefined2 *)(iVar1 + 0x2b) = 0;
|
|
*(undefined2 *)(iVar1 + 0x21) = 2;
|
|
*(undefined2 *)(iVar1 + 0x23) = 0x4600;
|
|
SETFOCUS(0x1018,*(undefined2 *)(iVar1 + 4));
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
/* ===== 1000:60e7 FUN_1000_60e7 ===== */
|
|
|
|
void __stdcall16far FUN_1000_60e7(undefined4 param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar1 = (int)param_1;
|
|
uVar4 = (undefined2)((ulong)*(undefined4 *)(iVar1 + 0x41) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(iVar1 + 0x41);
|
|
*(undefined2 *)(iVar2 + 0x45) = 0;
|
|
*(undefined2 *)(iVar2 + 0x47) = 0;
|
|
*(undefined2 *)(iVar1 + 0x41) = 0;
|
|
*(undefined2 *)(iVar1 + 0x43) = 0;
|
|
uVar4 = DAT_1028_0867;
|
|
DELETEOBJECT();
|
|
FUN_1018_121b(iVar1,uVar3,0);
|
|
FUN_1020_0439(uVar4);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:6129 FUN_1000_6129 ===== */
|
|
|
|
void __stdcall16far FUN_1000_6129(undefined4 param_1)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
FUN_1018_170c((int)param_1,uVar2);
|
|
uVar3 = 0;
|
|
uVar1 = LOADCURSOR(0x1018,0x7f02,0);
|
|
SETCURSOR(0x1228,uVar1,uVar3);
|
|
DAT_1028_0867 = FUN_1008_149d(DAT_1028_07cd + 1000,0,DAT_1028_06fe);
|
|
SETFOCUS(0x1008,*(undefined2 *)((int)param_1 + 4));
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:616e FUN_1000_616e ===== */
|
|
|
|
void __stdcall16far FUN_1000_616e(void)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 unaff_CS;
|
|
undefined2 in_stack_0000000c;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
|
|
uVar4 = in_stack_0000000c;
|
|
uVar1 = SELECTPALETTE(unaff_CS,0,DAT_1028_444e);
|
|
UNREALIZEOBJECT(0x1228,DAT_1028_444e,uVar4);
|
|
REALIZEPALETTE(0x1228,in_stack_0000000c);
|
|
uVar2 = CREATECOMPATIBLEDC(0x1228,in_stack_0000000c);
|
|
uVar6 = uVar2;
|
|
uVar3 = SELECTOBJECT(0x1228,DAT_1028_0867);
|
|
uVar5 = in_stack_0000000c;
|
|
BITBLT(0x1228,0x20,0xcc,0,0,uVar2,0x1cc,0x280,0,0);
|
|
uVar4 = uVar2;
|
|
SELECTOBJECT(0x1228,uVar3);
|
|
DELETEDC(0x1228,uVar2,uVar4,uVar5,uVar6);
|
|
SELECTPALETTE(0x1228,0,uVar1);
|
|
uVar5 = 0;
|
|
uVar4 = LOADCURSOR(0x1228,0x7f00,0);
|
|
SETCURSOR(0x1228,uVar4,uVar5,in_stack_0000000c);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:6202 FUN_1000_6202 ===== */
|
|
|
|
void __stdcall16far FUN_1000_6202(undefined4 param_1)
|
|
|
|
{
|
|
FUN_1008_00e2();
|
|
FUN_1018_0f38((int)param_1,(int)((ulong)param_1 >> 0x10));
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:6218 FUN_1000_6218 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1000_6218(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
undefined2 local_4;
|
|
|
|
if ((*(uint *)((int)param_2 + 8) & 0xff) != 0x3b) {
|
|
FUN_1008_00e2();
|
|
FUN_1018_0f38((int)param_1,(int)((ulong)param_1 >> 0x10));
|
|
}
|
|
return local_4;
|
|
}
|
|
|
|
|
|
/* ===== 1000:6245 FUN_1000_6245 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1000_6245(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
undefined2 uVar8;
|
|
undefined2 uVar9;
|
|
undefined2 local_4;
|
|
|
|
local_4 = 1;
|
|
uVar6 = (undefined2)((ulong)param_2 >> 0x10);
|
|
iVar4 = (int)param_2;
|
|
uVar7 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar5 = (int)param_1;
|
|
if (*(int *)(iVar4 + 4) != *(int *)(iVar5 + 4)) {
|
|
uVar9 = *(undefined2 *)(iVar4 + 4);
|
|
iVar1 = GETPARENT();
|
|
if (iVar1 != *(int *)(iVar5 + 4)) {
|
|
uVar7 = *(undefined2 *)(iVar5 + 4);
|
|
uVar2 = GETDC(0x1228,uVar7,uVar9);
|
|
uVar8 = uVar2;
|
|
uVar3 = SELECTPALETTE(0x1228,1,DAT_1028_444e);
|
|
REALIZEPALETTE(0x1228,uVar2,uVar8,uVar7,uVar9,uVar3);
|
|
UPDATECOLORS(0x1228,uVar2);
|
|
SELECTPALETTE(0x1228,0,uVar3);
|
|
RELEASEDC(0x1228,uVar2);
|
|
*(undefined2 *)(iVar4 + 10) = 0;
|
|
*(undefined2 *)(iVar4 + 0xc) = 0;
|
|
local_4 = 0;
|
|
}
|
|
}
|
|
return local_4;
|
|
}
|
|
|
|
|
|
/* ===== 1000:62dc FUN_1000_62dc ===== */
|
|
|
|
int __stdcall16far FUN_1000_62dc(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
int iVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
uVar5 = *(undefined2 *)((int)param_1 + 4);
|
|
uVar1 = GETDC();
|
|
uVar6 = uVar1;
|
|
uVar2 = SELECTPALETTE(0x1228,0,DAT_1028_444e);
|
|
iVar3 = REALIZEPALETTE(0x1228,uVar1,uVar6,uVar5);
|
|
SELECTPALETTE(0x1228,0,uVar2);
|
|
RELEASEDC(0x1228,uVar1);
|
|
if (0 < iVar3) {
|
|
INVALIDATERECT(0x1228,0,0,0,*(undefined2 *)((int)param_1 + 4));
|
|
}
|
|
uVar5 = (undefined2)((ulong)param_2 >> 0x10);
|
|
*(int *)((int)param_2 + 10) = iVar3;
|
|
*(undefined2 *)((int)param_2 + 0xc) = 0;
|
|
return iVar3;
|
|
}
|
|
|
|
|
|
/* ===== 1000:635c FUN_1000_635c ===== */
|
|
|
|
void __stdcall16far
|
|
FUN_1000_635c(undefined2 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4,
|
|
undefined2 param_5,undefined2 param_6)
|
|
|
|
{
|
|
FUN_1008_07b6(param_1,param_2,param_3,param_4,param_5,param_6);
|
|
FUN_1008_093f(param_2,param_3,param_4,param_5,param_6);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:638e FUN_1000_638e ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1000_638e(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
uint uVar1;
|
|
uint uVar2;
|
|
uint uVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
undefined2 in_BX;
|
|
int iVar6;
|
|
int iVar7;
|
|
undefined2 uVar8;
|
|
undefined2 uVar9;
|
|
undefined2 uVar10;
|
|
bool bVar11;
|
|
undefined2 uVar12;
|
|
byte local_a;
|
|
byte local_9;
|
|
|
|
uVar8 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar6 = (int)param_1;
|
|
iVar7 = (int)param_2;
|
|
uVar9 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if ((*(int *)(iVar6 + 0x41) == 0 && *(int *)(iVar6 + 0x43) == 0) &&
|
|
(*(int *)(iVar6 + 0x45) == 0 && *(int *)(iVar6 + 0x47) == 0)) {
|
|
uVar1 = *(uint *)(iVar7 + 8) & 0xff;
|
|
if ((DAT_1028_07cf != '\0') && (uVar1 == 0x3c)) {
|
|
DAT_1028_0855 = 0;
|
|
DAT_1028_0857 = 0;
|
|
DAT_1028_07c7 = 1;
|
|
}
|
|
if ((DAT_1028_07cf != '\0') && (uVar1 == 0x41)) {
|
|
DAT_1028_07d3 = DAT_1028_3340;
|
|
DAT_1028_07d5 = DAT_1028_3342;
|
|
DAT_1028_07d7 = DAT_1028_3344;
|
|
DAT_1028_07d9 = DAT_1028_3346;
|
|
*(undefined2 *)(iVar6 + 0xbaa) = 0;
|
|
*(undefined2 *)(iVar6 + 0xbac) = 0;
|
|
*(undefined2 *)(iVar6 + 0xbae) = 0;
|
|
*(undefined2 *)(iVar6 + 0xbb0) = 0;
|
|
}
|
|
if ((((*(char *)(iVar6 + 0xbdd) == '\0') && (*(char *)(iVar6 + 0xbdf) == '\0')) &&
|
|
(uVar1 == 0x50)) && (DAT_1028_07d0 != 0)) {
|
|
iVar4 = *(int *)(iVar6 + 0x5c);
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar3 = FUN_1020_1017();
|
|
uVar1 = *(uint *)(iVar6 + 0xbae);
|
|
iVar5 = *(int *)(iVar6 + 0xbb0);
|
|
*(int *)(iVar6 + 0xbae) = uVar1 - uVar3;
|
|
*(int *)(iVar6 + 0xbb0) = (iVar5 - iVar4) - (uint)(uVar1 < uVar3);
|
|
iVar4 = *(int *)(iVar6 + 0x56);
|
|
iVar5 = (~*(uint *)(iVar6 + 0x58) + 1) - (uint)(iVar4 != 0);
|
|
if ((*(int *)(iVar6 + 0xbb0) < iVar5) ||
|
|
((*(int *)(iVar6 + 0xbb0) <= iVar5 &&
|
|
(*(uint *)(iVar6 + 0xbae) <= (uint)-iVar4 && -*(uint *)(iVar6 + 0xbae) != iVar4)))) {
|
|
uVar3 = FUN_1020_14a4(*(undefined2 *)(iVar6 + 0x56));
|
|
iVar4 = *(int *)(iVar6 + 0x56);
|
|
uVar1 = *(uint *)(iVar6 + 0x58);
|
|
uVar2 = -iVar4;
|
|
*(int *)(iVar6 + 0xbae) = uVar2 + uVar3 / 0x28;
|
|
*(int *)(iVar6 + 0xbb0) =
|
|
((~uVar1 + 1) - (uint)(iVar4 != 0)) + (uint)CARRY2(uVar2,uVar3 / 0x28);
|
|
}
|
|
else {
|
|
uVar1 = *(uint *)(iVar6 + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
iVar4 = FUN_1020_1017();
|
|
iVar5 = (~uVar1 + 1) - (uint)(iVar4 != 0);
|
|
if ((iVar5 < *(int *)(iVar6 + 0xbb0)) ||
|
|
((iVar5 <= *(int *)(iVar6 + 0xbb0) &&
|
|
((uint)-iVar4 < *(uint *)(iVar6 + 0xbae) || -*(uint *)(iVar6 + 0xbae) == iVar4)))) {
|
|
uVar3 = FUN_1020_14a4(*(undefined2 *)(iVar6 + 0x56));
|
|
uVar1 = *(uint *)(iVar6 + 0xbae);
|
|
iVar4 = *(int *)(iVar6 + 0xbb0);
|
|
*(int *)(iVar6 + 0xbae) = uVar1 - uVar3 / 0x28;
|
|
*(int *)(iVar6 + 0xbb0) = iVar4 - (uint)(uVar1 < uVar3 / 0x28);
|
|
}
|
|
}
|
|
DAT_1028_07fb = *(uint *)(iVar6 + 0xbae);
|
|
DAT_1028_07fd = *(int *)(iVar6 + 0xbb0);
|
|
*(undefined1 *)(iVar6 + 0xbdd) = 1;
|
|
*(undefined1 *)(iVar6 + 0xbde) = 0;
|
|
FUN_1008_0002(2);
|
|
uVar8 = GETDC(0x1008,*(undefined2 *)(iVar6 + 4));
|
|
FUN_1000_635c(DAT_1028_0865,0x12,0x15,0x1aa,0x13a,uVar8);
|
|
RELEASEDC(0x1000,uVar8);
|
|
}
|
|
else if (uVar1 == 0x1d) {
|
|
*(undefined1 *)(iVar6 + 0xbda) = 0;
|
|
}
|
|
else if (uVar1 == 0x1c) {
|
|
*(undefined1 *)(iVar6 + 0xbdb) = 0;
|
|
}
|
|
else if ((DAT_1028_07c6 == '\0') && (((uVar1 == 0x2a || (uVar1 == 0x51)) || (uVar1 == 0x39)))) {
|
|
FUN_1008_0002(0x13);
|
|
if (uVar1 == 0x2a) {
|
|
FUN_1020_14a4(0x14);
|
|
iVar5 = 0;
|
|
uVar2 = FUN_1020_08a9();
|
|
uVar3 = *(uint *)(iVar6 + 0xbaa);
|
|
iVar4 = *(int *)(iVar6 + 0xbac);
|
|
*(int *)(iVar6 + 0xbaa) = uVar3 - uVar2;
|
|
*(int *)(iVar6 + 0xbac) = (iVar4 - iVar5) - (uint)(uVar3 < uVar2);
|
|
}
|
|
else if (uVar1 == 0x51) {
|
|
FUN_1020_14a4(0x14);
|
|
iVar5 = 0;
|
|
uVar2 = FUN_1020_08a9();
|
|
uVar3 = *(uint *)(iVar6 + 0xbaa);
|
|
iVar4 = *(int *)(iVar6 + 0xbac);
|
|
*(int *)(iVar6 + 0xbaa) = uVar2 + *(uint *)(iVar6 + 0xbaa);
|
|
*(int *)(iVar6 + 0xbac) = iVar5 + iVar4 + (uint)CARRY2(uVar2,uVar3);
|
|
}
|
|
else if (uVar1 == 0x39) {
|
|
iVar4 = *(int *)(iVar6 + 0x5c);
|
|
uVar10 = FUN_1020_100b();
|
|
FUN_1020_14c1(uVar10,in_BX,iVar4);
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0feb();
|
|
FUN_1020_0ff7();
|
|
uVar2 = FUN_1020_1017();
|
|
uVar3 = *(uint *)(iVar6 + 0xbaa);
|
|
iVar5 = *(int *)(iVar6 + 0xbac);
|
|
*(int *)(iVar6 + 0xbaa) = uVar2 + *(uint *)(iVar6 + 0xbaa);
|
|
*(int *)(iVar6 + 0xbac) = iVar4 + iVar5 + (uint)CARRY2(uVar2,uVar3);
|
|
FUN_1020_14a4(0x14);
|
|
iVar5 = 0;
|
|
uVar2 = FUN_1020_08a9();
|
|
uVar3 = *(uint *)(iVar6 + 0xbae);
|
|
iVar4 = *(int *)(iVar6 + 0xbb0);
|
|
*(int *)(iVar6 + 0xbae) = uVar3 - uVar2;
|
|
*(int *)(iVar6 + 0xbb0) = (iVar4 - iVar5) - (uint)(uVar3 < uVar2);
|
|
}
|
|
if (1 < *(byte *)(iVar6 + 0x61)) {
|
|
if (uVar1 == 0x2a) {
|
|
iVar4 = *(int *)(iVar6 + 0x5c);
|
|
uVar1 = FUN_1020_08a9();
|
|
bVar11 = DAT_1028_07f3 < uVar1;
|
|
DAT_1028_07f3 = DAT_1028_07f3 - uVar1;
|
|
DAT_1028_07f5 = (DAT_1028_07f5 - iVar4) - (uint)bVar11;
|
|
iVar4 = *(int *)(iVar6 + 0x5c);
|
|
uVar1 = FUN_1020_08a9();
|
|
bVar11 = DAT_1028_07f7 < uVar1;
|
|
DAT_1028_07f7 = DAT_1028_07f7 - uVar1;
|
|
DAT_1028_07f9 = (DAT_1028_07f9 - iVar4) - (uint)bVar11;
|
|
}
|
|
else if (uVar1 == 0x51) {
|
|
iVar4 = *(int *)(iVar6 + 0x5c);
|
|
uVar1 = FUN_1020_08a9();
|
|
bVar11 = CARRY2(uVar1,DAT_1028_07f3);
|
|
DAT_1028_07f3 = uVar1 + DAT_1028_07f3;
|
|
DAT_1028_07f5 = iVar4 + DAT_1028_07f5 + (uint)bVar11;
|
|
iVar4 = *(int *)(iVar6 + 0x5c);
|
|
uVar1 = FUN_1020_08a9();
|
|
bVar11 = CARRY2(uVar1,DAT_1028_07f7);
|
|
DAT_1028_07f7 = uVar1 + DAT_1028_07f7;
|
|
DAT_1028_07f9 = iVar4 + DAT_1028_07f9 + (uint)bVar11;
|
|
}
|
|
else if (uVar1 == 0x39) {
|
|
FUN_1020_14a4(0x15);
|
|
uVar1 = FUN_1020_08a9();
|
|
FUN_1020_14a4(100);
|
|
FUN_1020_08a9();
|
|
uVar3 = FUN_1020_08a9();
|
|
bVar11 = CARRY2(uVar1,DAT_1028_07f3);
|
|
DAT_1028_07f3 = uVar1 + DAT_1028_07f3;
|
|
DAT_1028_07f5 = ((int)uVar1 >> 0xf) + DAT_1028_07f5 + (uint)bVar11;
|
|
bVar11 = CARRY2(uVar1,DAT_1028_07f7);
|
|
DAT_1028_07f7 = uVar1 + DAT_1028_07f7;
|
|
DAT_1028_07f9 = ((int)uVar1 >> 0xf) + DAT_1028_07f9 + (uint)bVar11;
|
|
bVar11 = CARRY2(uVar3,DAT_1028_07fb);
|
|
DAT_1028_07fb = uVar3 + DAT_1028_07fb;
|
|
DAT_1028_07fd = ((int)uVar3 >> 0xf) + DAT_1028_07fd + (uint)bVar11;
|
|
bVar11 = CARRY2(uVar3,DAT_1028_07ff);
|
|
DAT_1028_07ff = uVar3 + DAT_1028_07ff;
|
|
DAT_1028_0801 = ((int)uVar3 >> 0xf) + DAT_1028_0801 + (uint)bVar11;
|
|
}
|
|
}
|
|
*(int *)(iVar6 + 0x5e) = *(int *)(iVar6 + 0x5e) + 0x19;
|
|
iVar4 = FUN_1020_14a4(10);
|
|
if (iVar4 + 0x1eU < *(uint *)(iVar6 + 0x5e)) {
|
|
FUN_1008_0002(0x14);
|
|
DAT_1028_07c6 = '\x01';
|
|
*(undefined1 *)(iVar6 + 0xbda) = 0;
|
|
*(undefined1 *)(iVar6 + 0xbdb) = 0;
|
|
uVar8 = GETDC(0x1008,*(undefined2 *)(iVar6 + 4));
|
|
FUN_1008_0837(0x14,0x94,0xf3,0x54,uVar8);
|
|
FUN_1008_093f(0x14,0x94,0xf3,0x54,uVar8);
|
|
RELEASEDC(0x1008,uVar8);
|
|
}
|
|
}
|
|
else if (uVar1 == 0x58) {
|
|
if (DAT_1028_43f2 == '\0') {
|
|
if (DAT_1028_43ee != 0) {
|
|
DAT_1028_43f2 = '\x01';
|
|
}
|
|
}
|
|
else {
|
|
DAT_1028_43f2 = '\0';
|
|
}
|
|
}
|
|
else if (((*(char *)(iVar6 + 0xbde) != '\0') && ((uVar1 == 0x4e || (uVar1 == 0x1b)))) &&
|
|
(DAT_1028_07d0 < 4)) {
|
|
DAT_1028_07c9 = 0;
|
|
uVar10 = 0x1008;
|
|
FUN_1008_0002(1);
|
|
DAT_1028_07d0 = DAT_1028_07d0 + 1;
|
|
*(undefined1 *)(iVar6 + 0xbdd) = 0;
|
|
*(undefined1 *)(iVar6 + 0xbdf) = 0;
|
|
DAT_1028_07c5 = 1;
|
|
*(undefined1 *)(iVar6 + 0x61) = 1;
|
|
DAT_1028_0874 = 0;
|
|
local_9 = 1;
|
|
while( true ) {
|
|
*(undefined2 *)((uint)local_9 * 2 + 0x81f) = 0xffff;
|
|
local_a = 1;
|
|
while( true ) {
|
|
*(undefined1 *)(iVar6 + (uint)local_9 * 0xaf + (uint)local_a + 0x61) =
|
|
*(undefined1 *)(iVar6 + (uint)local_a + 0x3cc);
|
|
*(undefined2 *)(iVar6 + (uint)local_9 * 0x15e + (uint)local_a * 2 + 0x36c) =
|
|
*(undefined2 *)(iVar6 + (uint)local_a * 2 + 0xa42);
|
|
if (local_a == 0xaf) break;
|
|
local_a = local_a + 1;
|
|
}
|
|
uVar10 = GETDC(uVar10,*(undefined2 *)(iVar6 + 4));
|
|
if (DAT_1028_07d0 < local_9) {
|
|
*(undefined2 *)((uint)local_9 * 4 + 0x97e) = 0;
|
|
*(undefined2 *)((uint)local_9 * 4 + 0x980) = 0;
|
|
FUN_1008_08bb(0x2a,0x11c,(local_9 - 1) * 0x2d + 0x10e,0x15c,uVar10);
|
|
FUN_1008_093f(0x2a,0x11c,(local_9 - 1) * 0x2d + 0x10e,0x15c,uVar10);
|
|
}
|
|
FUN_1008_0dbd(0,uVar10);
|
|
uVar12 = *(undefined2 *)(iVar6 + 4);
|
|
RELEASEDC(0x1008,uVar10);
|
|
if (local_9 == 1) {
|
|
uVar10 = GETDC(0x1228,*(undefined2 *)(iVar6 + 4),uVar12);
|
|
FUN_1008_0837(0x1e,0x11c,0xe8,0x173,uVar10);
|
|
FUN_1008_093f(0x1e,0x11c,0xe8,0x173,uVar10);
|
|
FUN_1008_0996(uVar10,0,0);
|
|
FUN_1008_0b9e(1,uVar10);
|
|
RELEASEDC(0x1008,uVar10);
|
|
}
|
|
uVar10 = 0x1228;
|
|
if (local_9 == 4) break;
|
|
local_9 = local_9 + 1;
|
|
}
|
|
local_a = 1;
|
|
while( true ) {
|
|
*(undefined1 *)((uint)local_a * 0x53 + 0x98f) =
|
|
*(undefined1 *)(iVar6 + (uint)local_a + 0x3cc);
|
|
*(undefined2 *)((uint)local_a * 0x53 + 0x99e) =
|
|
*(undefined2 *)(iVar6 + (uint)local_a * 2 + 0xa42);
|
|
if (local_a == 0xaf) break;
|
|
local_a = local_a + 1;
|
|
}
|
|
DAT_1028_07d1 = 1;
|
|
}
|
|
}
|
|
*(undefined2 *)(iVar7 + 10) = 0;
|
|
*(undefined2 *)(iVar7 + 0xc) = 0;
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1000:6b37 FUN_1000_6b37 ===== */
|
|
|
|
void __stdcall16far FUN_1000_6b37(int param_1,undefined2 param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 unaff_SS;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
|
|
uVar2 = *(undefined2 *)(param_1 + -0xc);
|
|
uVar1 = CREATECOMPATIBLEDC();
|
|
*(undefined2 *)(param_1 + -0xe) = uVar1;
|
|
uVar2 = CREATECOMPATIBLEDC(0x1228,*(undefined2 *)(param_1 + -0xc),uVar2);
|
|
*(undefined2 *)(param_1 + -0x10) = uVar2;
|
|
uVar2 = SELECTOBJECT(0x1228,DAT_1028_085b);
|
|
*(undefined2 *)(param_1 + -0x12) = uVar2;
|
|
uVar2 = *(undefined2 *)(param_1 + -0x10);
|
|
uVar1 = SELECTOBJECT(0x1228,DAT_1028_0865);
|
|
*(undefined2 *)(param_1 + -0x14) = uVar1;
|
|
uVar1 = *(undefined2 *)(param_1 + -0xe);
|
|
BITBLT(0x1228,0x20,0xcc,0,param_2,*(undefined2 *)(param_1 + -0x10),0x12,0x15,0x1aa,0x13a);
|
|
uVar4 = *(undefined2 *)(param_1 + -0x10);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -0x14));
|
|
uVar3 = *(undefined2 *)(param_1 + -0xe);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -0x12));
|
|
DELETEDC(0x1228,*(undefined2 *)(param_1 + -0x10),uVar3,uVar4,uVar1,uVar2);
|
|
DELETEDC(0x1228,*(undefined2 *)(param_1 + -0xe));
|
|
FUN_1008_093f(0x12,0x15,0x1aa,0x13a,*(undefined2 *)(param_1 + -0xc));
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:6bf8 FUN_1000_6bf8 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1000_6bf8(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
uint uVar2;
|
|
uint uVar3;
|
|
undefined2 uVar4;
|
|
uint uVar5;
|
|
uint uVar6;
|
|
int iVar7;
|
|
int iVar8;
|
|
int iVar9;
|
|
undefined2 uVar10;
|
|
undefined2 uVar11;
|
|
undefined4 uVar12;
|
|
undefined2 local_4;
|
|
|
|
uVar10 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar8 = (int)param_1;
|
|
uVar6 = *(uint *)(iVar8 + 0x5c);
|
|
iVar1 = FUN_1020_08a9();
|
|
iVar9 = (int)param_2;
|
|
uVar11 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if ((*(int *)(iVar8 + 0x41) == 0 && *(int *)(iVar8 + 0x43) == 0) &&
|
|
(*(int *)(iVar8 + 0x45) == 0 && *(int *)(iVar8 + 0x47) == 0)) {
|
|
uVar2 = *(uint *)(iVar9 + 8) & 0xff;
|
|
if (uVar2 == 0x3b) {
|
|
uVar12 = FUN_1000_6073(0,0,0x17e,0x306,0x1028,iVar8,uVar10);
|
|
uVar12 = (*(code *)*(undefined2 *)(*DAT_1028_064e + 0x34))
|
|
(0x1000,(int *)DAT_1028_064e,(int)((ulong)DAT_1028_064e >> 0x10),uVar12);
|
|
*(undefined2 *)(iVar8 + 0x45) = (int)uVar12;
|
|
*(undefined2 *)(iVar8 + 0x47) = (int)((ulong)uVar12 >> 0x10);
|
|
FUN_1018_0e9e((int)*(undefined4 *)(iVar8 + 0x45),
|
|
(int)((ulong)*(undefined4 *)(iVar8 + 0x45) >> 0x10),1);
|
|
return local_4;
|
|
}
|
|
if (((*(char *)(iVar8 + 0xbdd) == '\0') && (*(char *)(iVar8 + 0xbdf) == '\0')) &&
|
|
(uVar2 == 0x50)) {
|
|
uVar5 = uVar6;
|
|
uVar3 = FUN_1020_08e6();
|
|
uVar2 = *(uint *)(iVar8 + 0xbae);
|
|
iVar7 = *(int *)(iVar8 + 0xbb0);
|
|
*(int *)(iVar8 + 0xbae) = uVar2 - uVar3;
|
|
*(int *)(iVar8 + 0xbb0) = (iVar7 - uVar5) - (uint)(uVar2 < uVar3);
|
|
*(undefined2 *)(iVar8 + 0xbaa) = 0;
|
|
*(undefined2 *)(iVar8 + 0xbac) = 0;
|
|
if (DAT_1028_07d0 != '\0') {
|
|
uVar4 = GETDC(0x1020,*(undefined2 *)(iVar8 + 4));
|
|
iVar7 = (~uVar6 + 1) - (uint)(iVar1 != 0);
|
|
if ((iVar7 < *(int *)(iVar8 + 0xbb0)) ||
|
|
((iVar7 <= *(int *)(iVar8 + 0xbb0) && ((uint)-iVar1 < *(uint *)(iVar8 + 0xbae))))) {
|
|
FUN_1000_6b37(&stack0xfffe,0x15);
|
|
}
|
|
else {
|
|
uVar2 = uVar6;
|
|
uVar5 = FUN_1020_08a9();
|
|
if (((int)uVar2 < *(int *)(iVar8 + 0xbb0)) ||
|
|
(((int)uVar2 <= *(int *)(iVar8 + 0xbb0) && (uVar5 < *(uint *)(iVar8 + 0xbae))))) {
|
|
FUN_1000_6b37(&stack0xfffe,0x2a);
|
|
}
|
|
else {
|
|
uVar2 = uVar6;
|
|
uVar5 = FUN_1020_08a9();
|
|
if (((int)uVar2 < *(int *)(iVar8 + 0xbb0)) ||
|
|
(((int)uVar2 <= *(int *)(iVar8 + 0xbb0) && (uVar5 < *(uint *)(iVar8 + 0xbae))))) {
|
|
FUN_1000_6b37(&stack0xfffe,0x3f);
|
|
}
|
|
else {
|
|
uVar2 = uVar6;
|
|
uVar5 = FUN_1020_08a9();
|
|
if (((int)uVar2 < *(int *)(iVar8 + 0xbb0)) ||
|
|
(((int)uVar2 <= *(int *)(iVar8 + 0xbb0) && (uVar5 < *(uint *)(iVar8 + 0xbae))))) {
|
|
FUN_1000_6b37(&stack0xfffe,0x54);
|
|
}
|
|
else {
|
|
uVar2 = uVar6;
|
|
uVar5 = FUN_1020_08a9();
|
|
if (((int)uVar2 < *(int *)(iVar8 + 0xbb0)) ||
|
|
(((int)uVar2 <= *(int *)(iVar8 + 0xbb0) && (uVar5 < *(uint *)(iVar8 + 0xbae)))))
|
|
{
|
|
FUN_1000_6b37(&stack0xfffe,0x69);
|
|
}
|
|
else {
|
|
uVar2 = uVar6;
|
|
uVar5 = FUN_1020_08a9();
|
|
if (((int)uVar2 < *(int *)(iVar8 + 0xbb0)) ||
|
|
(((int)uVar2 <= *(int *)(iVar8 + 0xbb0) && (uVar5 < *(uint *)(iVar8 + 0xbae))))
|
|
) {
|
|
FUN_1000_6b37(&stack0xfffe,0x7e);
|
|
}
|
|
else {
|
|
uVar2 = uVar6;
|
|
uVar5 = FUN_1020_08a9();
|
|
if (((int)uVar2 < *(int *)(iVar8 + 0xbb0)) ||
|
|
(((int)uVar2 <= *(int *)(iVar8 + 0xbb0) && (uVar5 < *(uint *)(iVar8 + 0xbae))
|
|
))) {
|
|
FUN_1000_6b37(&stack0xfffe,0x93);
|
|
}
|
|
else {
|
|
uVar2 = uVar6;
|
|
uVar5 = FUN_1020_08a9();
|
|
if (((int)uVar2 < *(int *)(iVar8 + 0xbb0)) ||
|
|
(((int)uVar2 <= *(int *)(iVar8 + 0xbb0) &&
|
|
(uVar5 < *(uint *)(iVar8 + 0xbae))))) {
|
|
FUN_1000_6b37(&stack0xfffe,0xa8);
|
|
}
|
|
else {
|
|
uVar2 = uVar6;
|
|
uVar5 = FUN_1020_08a9();
|
|
if (((int)uVar2 < *(int *)(iVar8 + 0xbb0)) ||
|
|
(((int)uVar2 <= *(int *)(iVar8 + 0xbb0) &&
|
|
(uVar5 < *(uint *)(iVar8 + 0xbae))))) {
|
|
FUN_1000_6b37(&stack0xfffe,0xbd);
|
|
}
|
|
else {
|
|
uVar2 = FUN_1020_08a9();
|
|
if (((int)uVar6 < *(int *)(iVar8 + 0xbb0)) ||
|
|
(((int)uVar6 <= *(int *)(iVar8 + 0xbb0) &&
|
|
(uVar2 < *(uint *)(iVar8 + 0xbae))))) {
|
|
FUN_1000_6b37(&stack0xfffe,0xd2);
|
|
}
|
|
else {
|
|
FUN_1000_6b37(&stack0xfffe,0xe7);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
RELEASEDC(0x1000,uVar4);
|
|
}
|
|
}
|
|
else if (DAT_1028_07c6 == '\0') {
|
|
if (uVar2 == 0x1d) {
|
|
*(undefined1 *)(iVar8 + 0xbda) = 1;
|
|
}
|
|
if (uVar2 == 0x1c) {
|
|
*(undefined1 *)(iVar8 + 0xbdb) = 1;
|
|
}
|
|
}
|
|
}
|
|
*(undefined2 *)(iVar9 + 10) = 0;
|
|
*(undefined2 *)(iVar9 + 0xc) = 0;
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1000:6f27 FUN_1000_6f27 ===== */
|
|
|
|
void __stdcall16far FUN_1000_6f27(int param_1)
|
|
|
|
{
|
|
undefined1 uVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
undefined2 uVar8;
|
|
undefined2 uVar9;
|
|
undefined2 uVar10;
|
|
undefined2 unaff_SS;
|
|
undefined2 uVar11;
|
|
undefined2 uVar12;
|
|
undefined2 uVar13;
|
|
undefined2 uVar14;
|
|
undefined2 uVar15;
|
|
undefined2 uVar16;
|
|
undefined2 local_24;
|
|
undefined2 local_22;
|
|
undefined2 local_20;
|
|
undefined2 local_1e;
|
|
undefined2 local_1c;
|
|
undefined2 local_1a;
|
|
undefined2 local_18;
|
|
undefined2 local_16;
|
|
undefined2 local_14;
|
|
undefined2 local_12;
|
|
undefined2 local_10;
|
|
|
|
uVar10 = *(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4);
|
|
uVar3 = GETDC();
|
|
uVar4 = CREATECOMPATIBLEDC(0x1228,uVar3,uVar10);
|
|
uVar5 = CREATECOMPATIBLEDC(0x1228,uVar3);
|
|
uVar14 = uVar3;
|
|
uVar6 = CREATECOMPATIBLEBITMAP(0x1228,0x5a,0x5b);
|
|
uVar9 = uVar4;
|
|
uVar7 = SELECTOBJECT(0x1228,DAT_1028_0859);
|
|
uVar10 = uVar5;
|
|
uVar8 = SELECTOBJECT(0x1228,uVar6);
|
|
if ((DAT_1028_0857 < 0) || ((DAT_1028_0857 < 1 && (DAT_1028_0855 < 6)))) {
|
|
uVar16 = 0;
|
|
uVar15 = 0;
|
|
uVar13 = 0x5b;
|
|
uVar12 = 0x5a;
|
|
uVar11 = uVar4;
|
|
uVar9 = FUN_1020_08a9(uVar4,0x5a,0x5b,0,0,uVar5,uVar10,uVar9,uVar14);
|
|
uVar10 = 0x1228;
|
|
BITBLT(0x1020,0x20,0xcc,0,uVar9,uVar11,uVar12,uVar13,uVar15,uVar16);
|
|
}
|
|
else {
|
|
SELECTOBJECT(0x1228,DAT_1028_085d);
|
|
BITBLT(0x1228,0x20,0xcc,0x21,0x4f,uVar4,0x5a,0x5b,0,0);
|
|
SELECTOBJECT(0x1228,DAT_1028_0859);
|
|
iVar2 = DAT_1028_3371;
|
|
DAT_1028_3371 = DAT_1028_33c4;
|
|
DAT_1028_33c4 = DAT_1028_3417;
|
|
DAT_1028_3417 = DAT_1028_346a;
|
|
DAT_1028_346a = DAT_1028_34bd;
|
|
DAT_1028_34bd = iVar2;
|
|
uVar1 = *(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + 0x476);
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + 0x476) =
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + 0x477);
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + 0x477) =
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + 0x478);
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + 0x478) =
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + 0x479);
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + 0x479) =
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + 0x47a);
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + 0x47a) = uVar1;
|
|
local_10 = 0xf;
|
|
while( true ) {
|
|
uVar10 = 0x1000;
|
|
FUN_1000_7e92(param_1,local_10);
|
|
if (local_10 == 0x13) break;
|
|
local_10 = local_10 + 1;
|
|
}
|
|
}
|
|
if (DAT_1028_0855 == 1) {
|
|
uVar10 = 0x1008;
|
|
FUN_1008_0002(0xb);
|
|
local_12 = 9;
|
|
local_1c = 0x29;
|
|
local_14 = 0x17;
|
|
local_1e = 0xb;
|
|
local_16 = 0x38;
|
|
local_20 = 0xe;
|
|
local_18 = 0x3f;
|
|
local_22 = 0x2f;
|
|
local_1a = 0x23;
|
|
local_24 = 0x3f;
|
|
}
|
|
else if (DAT_1028_0855 == 2) {
|
|
local_12 = 0xb;
|
|
local_1c = 0x2d;
|
|
local_14 = 0x12;
|
|
local_1e = 0xd;
|
|
local_16 = 0x34;
|
|
local_20 = 0xb;
|
|
local_18 = 0x3f;
|
|
local_22 = 0x2a;
|
|
local_1a = 0x27;
|
|
local_24 = 0x40;
|
|
}
|
|
else if (DAT_1028_0855 == 3) {
|
|
local_12 = 0xd;
|
|
local_1c = 0x32;
|
|
local_14 = 0xf;
|
|
local_1e = 0x11;
|
|
local_16 = 0x2e;
|
|
local_20 = 9;
|
|
local_18 = 0x40;
|
|
local_22 = 0x25;
|
|
local_1a = 0x2c;
|
|
local_24 = 0x3e;
|
|
}
|
|
else if (DAT_1028_0855 == 4) {
|
|
local_12 = 0x11;
|
|
local_1c = 0x37;
|
|
local_14 = 0xb;
|
|
local_1e = 0x17;
|
|
local_16 = 0x27;
|
|
local_20 = 7;
|
|
local_18 = 0x40;
|
|
local_22 = 0x1e;
|
|
local_1a = 0x32;
|
|
local_24 = 0x3b;
|
|
}
|
|
else if (DAT_1028_0855 == 5) {
|
|
local_12 = 0x15;
|
|
local_1c = 0x3c;
|
|
local_14 = 9;
|
|
local_1e = 0x1c;
|
|
local_16 = 0x23;
|
|
local_20 = 7;
|
|
local_18 = 0x3e;
|
|
local_22 = 0x19;
|
|
local_1a = 0x36;
|
|
local_24 = 0x38;
|
|
}
|
|
else if (DAT_1028_0855 == 6) {
|
|
local_12 = 8;
|
|
local_1c = 0x23;
|
|
local_14 = 0x1a;
|
|
local_1e = 8;
|
|
local_16 = 0x3b;
|
|
local_20 = 0x12;
|
|
local_18 = 0x3b;
|
|
local_22 = 0x32;
|
|
local_1a = 0x1b;
|
|
local_24 = 0x3d;
|
|
}
|
|
if (DAT_1028_3371 != 0) {
|
|
BITBLT(uVar10,0xc6,0x88,0x11,0x1c7,uVar4,0x11,0x11,local_1c,local_12);
|
|
uVar10 = 0x1228;
|
|
BITBLT(0x1228,0x86,0xee,0,0x1c7,uVar4,0x11,0x11,local_1c,local_12);
|
|
}
|
|
if (DAT_1028_33c4 != 0) {
|
|
BITBLT(uVar10,0xc6,0x88,0x11,0x1c7,uVar4,0x11,0x11,local_1e,local_14);
|
|
uVar10 = 0x1228;
|
|
BITBLT(0x1228,0x86,0xee,0,0x1c7,uVar4,0x11,0x11,local_1e,local_14);
|
|
}
|
|
if (DAT_1028_3417 != 0) {
|
|
BITBLT(uVar10,0xc6,0x88,0x11,0x1c7,uVar4,0x11,0x11,local_20,local_16);
|
|
uVar10 = 0x1228;
|
|
BITBLT(0x1228,0x86,0xee,0,0x1c7,uVar4,0x11,0x11,local_20,local_16);
|
|
}
|
|
if (DAT_1028_346a != 0) {
|
|
BITBLT(uVar10,0xc6,0x88,0x11,0x1c7,uVar4,0x11,0x11,local_22,local_18);
|
|
uVar10 = 0x1228;
|
|
BITBLT(0x1228,0x86,0xee,0,0x1c7,uVar4,0x11,0x11,local_22,local_18);
|
|
}
|
|
if (DAT_1028_34bd != 0) {
|
|
BITBLT(uVar10,0xc6,0x88,0x11,0x1c7,uVar4,0x11,0x11,local_24,local_1a);
|
|
uVar10 = 0x1228;
|
|
BITBLT(0x1228,0x86,0xee,0,0x1c7,uVar4,0x11,0x11,local_24,local_1a);
|
|
}
|
|
uVar14 = uVar3;
|
|
BITBLT(uVar10,0x20,0xcc,0,0,uVar5,0x5a,0x5b,0x21,0x4f);
|
|
uVar9 = uVar4;
|
|
SELECTOBJECT(0x1228,uVar7);
|
|
uVar10 = uVar5;
|
|
SELECTOBJECT(0x1228,uVar8);
|
|
DELETEOBJECT(0x1228,uVar6,uVar10,uVar9,uVar14);
|
|
DELETEDC(0x1228,uVar5);
|
|
DELETEDC(0x1228,uVar4);
|
|
RELEASEDC(0x1228,uVar3);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:7440 FUN_1000_7440 ===== */
|
|
|
|
void __stdcall16far FUN_1000_7440(int param_1)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
int iVar8;
|
|
undefined2 uVar9;
|
|
undefined2 unaff_SS;
|
|
undefined2 uVar10;
|
|
undefined2 uVar11;
|
|
undefined2 uVar12;
|
|
undefined2 uVar13;
|
|
undefined2 uVar14;
|
|
undefined2 uVar15;
|
|
undefined2 uVar16;
|
|
undefined2 uVar17;
|
|
undefined2 uVar18;
|
|
undefined2 uVar19;
|
|
|
|
uVar7 = *(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4);
|
|
uVar1 = GETDC();
|
|
uVar2 = CREATECOMPATIBLEDC(0x1228,uVar1,uVar7);
|
|
uVar7 = uVar2;
|
|
uVar3 = SELECTOBJECT(0x1228,DAT_1028_085f);
|
|
uVar4 = CREATECOMPATIBLEDC(0x1228,uVar1,uVar7);
|
|
uVar5 = CREATECOMPATIBLEBITMAP(0x1228,0x7b,0x5b);
|
|
uVar19 = uVar4;
|
|
uVar6 = SELECTOBJECT(0x1228,uVar5);
|
|
uVar14 = 0x4f;
|
|
uVar12 = 0;
|
|
uVar7 = uVar2;
|
|
uVar16 = uVar4;
|
|
BITBLT(0x1228,0x20,0xcc,0,0x4f,uVar2,0x7b,0x5b,0,0);
|
|
uVar18 = 0x1228;
|
|
uVar9 = 0x1228;
|
|
uVar17 = 0x74c1;
|
|
uVar13 = DAT_1028_0859;
|
|
uVar15 = uVar2;
|
|
SELECTOBJECT(0x1228,DAT_1028_0859);
|
|
if (((int)DAT_1028_0851 < 1) || (0x2c < (int)DAT_1028_0851)) {
|
|
if (((int)DAT_1028_0851 < 0x2d) || (0x39 < (int)DAT_1028_0851)) {
|
|
if (((int)DAT_1028_0851 < 0x3a) || (0x41 < (int)DAT_1028_0851)) {
|
|
if (((int)DAT_1028_0851 < 0x42) || (0x80 < (int)DAT_1028_0851)) {
|
|
if (((int)DAT_1028_0851 < 0x81) || (0x9e < (int)DAT_1028_0851)) {
|
|
if (((int)DAT_1028_0851 < 0x9f) || (0xdd < (int)DAT_1028_0851)) {
|
|
if (((int)DAT_1028_0851 < 0xde) || (0xe5 < (int)DAT_1028_0851)) {
|
|
if (((int)DAT_1028_0851 < 0xe6) || (0xed < (int)DAT_1028_0851)) {
|
|
if ((0xed < (int)DAT_1028_0851) && ((int)DAT_1028_0851 < 0x11a)) {
|
|
if ((DAT_1028_0853 == 0) && (DAT_1028_0851 == 0xee)) {
|
|
uVar9 = 0x1008;
|
|
FUN_1008_0002(0xd);
|
|
}
|
|
uVar17 = uVar4;
|
|
BITBLT(uVar9,0xc6,0x88,0x5a,0x16a,uVar2,0x5a,0x5b,0x21,0);
|
|
uVar7 = uVar4;
|
|
BITBLT(0x1228,0x86,0xee,0x5a,0x1c5,uVar2,0x5a,0x5b,0x21,0);
|
|
uVar16 = 0x14;
|
|
uVar15 = 0;
|
|
uVar13 = 0x2d;
|
|
uVar17 = FUN_1020_08a9(0x2d,0,0x14,uVar4,uVar7,uVar17);
|
|
uVar18 = 0x2d;
|
|
uVar7 = uVar2;
|
|
iVar8 = FUN_1020_08a9(0x2d,uVar2,uVar17);
|
|
BITBLT(0x1020,0xc6,0x88,iVar8 + 0x5a,uVar18,uVar7,uVar17,uVar13,uVar15,uVar16);
|
|
uVar16 = 0x14;
|
|
uVar15 = 0;
|
|
uVar13 = 0x2d;
|
|
uVar17 = FUN_1020_08a9(0x2d,0,0x14,uVar4);
|
|
uVar18 = 0;
|
|
uVar7 = uVar2;
|
|
iVar8 = FUN_1020_08a9(0,uVar2,uVar17);
|
|
BITBLT(0x1020,0x86,0xee,iVar8 + 0x5a,uVar18,uVar7,uVar17,uVar13,uVar15,uVar16);
|
|
if ((DAT_1028_0853 == 0) && (DAT_1028_0851 == 0x119)) {
|
|
SELECTOBJECT(0x1228,DAT_1028_085b);
|
|
SELECTOBJECT(0x1228,DAT_1028_085d);
|
|
BITBLT(0x1228,0x20,0xcc,0,0x4f,uVar2,0x5a,0x5b,0,0x4f);
|
|
SELECTOBJECT(0x1228,uVar5);
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if ((DAT_1028_0853 == 0) && (DAT_1028_0851 == 0xe6)) {
|
|
uVar9 = 0x1008;
|
|
FUN_1008_0002(0xc);
|
|
}
|
|
BITBLT(uVar9,0xc6,0x88,0x5a,0x16a,uVar2,0x5a,0x5b,0x21,0);
|
|
BITBLT(0x1228,0x86,0xee,0x5a,0x1c5,uVar2,0x5a,0x5b,0x21,0);
|
|
BITBLT(0x1228,0xc6,0x88,0x5a,0x2d,uVar2,0x58,0x2d,0,0x14);
|
|
BITBLT(0x1228,0x86,0xee,0x5a,0,uVar2,0x58,0x2d,0,0x14);
|
|
}
|
|
}
|
|
else {
|
|
if ((DAT_1028_0853 == 0) && (DAT_1028_0851 == 0xde)) {
|
|
uVar9 = 0x1008;
|
|
FUN_1008_118f();
|
|
}
|
|
BITBLT(uVar9,0xc6,0x88,0x5a,0x16a,uVar2,0x5a,0x5b,0x21,0);
|
|
BITBLT(0x1228,0x86,0xee,0x5a,0x1c5,uVar2,0x5a,0x5b,0x21,0);
|
|
BITBLT(0x1228,0xc6,0x88,0x5a,0x87,uVar2,0x58,0x2d,0,0x14);
|
|
BITBLT(0x1228,0x86,0xee,0x5a,0x5a,uVar2,0x58,0x2d,0,0x14);
|
|
}
|
|
}
|
|
else {
|
|
if ((DAT_1028_0853 == 0) && (DAT_1028_0851 == 0x9f)) {
|
|
uVar9 = 0x1008;
|
|
FUN_1008_0002(0xd);
|
|
}
|
|
uVar7 = uVar4;
|
|
BITBLT(uVar9,0x20,0xcc,0x5a,0xb4,uVar2,0x5a,0x5b,0x21,0);
|
|
if ((DAT_1028_0853 < 0) || ((DAT_1028_0853 < 1 && (DAT_1028_0851 < 0xcc)))) {
|
|
uVar16 = 0;
|
|
uVar15 = 0;
|
|
uVar13 = 0x5b;
|
|
uVar17 = FUN_1020_08a9(0x5b,0,0,uVar4,uVar7);
|
|
uVar18 = 0x16a;
|
|
uVar7 = uVar2;
|
|
iVar8 = FUN_1020_08a9(0x16a,uVar2,uVar17);
|
|
BITBLT(0x1020,0xc6,0x88,iVar8 + 0x5a,uVar18,uVar7,uVar17,uVar13,uVar15,uVar16);
|
|
uVar16 = 0;
|
|
uVar15 = 0;
|
|
uVar13 = 0x5b;
|
|
uVar17 = FUN_1020_08a9(0x5b,0,0,uVar4);
|
|
uVar18 = 0x1c5;
|
|
uVar7 = uVar2;
|
|
iVar8 = FUN_1020_08a9(0x1c5,uVar2,uVar17);
|
|
BITBLT(0x1020,0x86,0xee,iVar8 + 0x5a,uVar18,uVar7,uVar17,uVar13,uVar15,uVar16);
|
|
}
|
|
else {
|
|
uVar17 = 0;
|
|
uVar7 = FUN_1020_08a9(0,uVar4);
|
|
BITBLT(0x1020,0xc6,0x88,0x5a,0x16a,uVar2,0x5a,0x5b,uVar7,uVar17);
|
|
uVar17 = 0;
|
|
uVar7 = FUN_1020_08a9(0,uVar4);
|
|
BITBLT(0x1020,0x86,0xee,0x5a,0x1c5,uVar2,0x5a,0x5b,uVar7,uVar17);
|
|
}
|
|
if ((0 < DAT_1028_0853) || ((-1 < DAT_1028_0853 && (0xb0 < DAT_1028_0851)))) {
|
|
if ((DAT_1028_0853 == 0) && (DAT_1028_0851 == 0xdd)) {
|
|
BITBLT(0x1228,0xc6,0x88,0x5a,0x87,uVar2,0x58,0x2d,0,0x14);
|
|
BITBLT(0x1228,0x86,0xee,0x5a,0x5a,uVar2,0x58,0x2d,0,0x14);
|
|
}
|
|
else {
|
|
uVar16 = 0x14;
|
|
uVar15 = 0;
|
|
uVar13 = 0x2d;
|
|
uVar17 = FUN_1020_08a9(0x2d,0,0x14,uVar4);
|
|
uVar18 = 0x87;
|
|
uVar7 = uVar2;
|
|
iVar8 = FUN_1020_08a9(0x87,uVar2,uVar17);
|
|
BITBLT(0x1020,0xc6,0x88,iVar8 + 0x59,uVar18,uVar7,uVar17,uVar13,uVar15,uVar16);
|
|
uVar16 = 0x14;
|
|
uVar15 = 0;
|
|
uVar13 = 0x2d;
|
|
uVar17 = FUN_1020_08a9(0x2d,0,0x14,uVar4);
|
|
uVar18 = 0x5a;
|
|
uVar7 = uVar2;
|
|
iVar8 = FUN_1020_08a9(0x5a,uVar2,uVar17);
|
|
BITBLT(0x1020,0x86,0xee,iVar8 + 0x59,uVar18,uVar7,uVar17,uVar13,uVar15,uVar16);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if ((DAT_1028_0853 == 0) && (DAT_1028_0851 == 0x81)) {
|
|
uVar9 = 0x1008;
|
|
FUN_1008_118f();
|
|
}
|
|
BITBLT(uVar9,0x20,0xcc,0x5a,0xb4,uVar2,0x5a,0x5b,0x21,0);
|
|
}
|
|
}
|
|
else {
|
|
if ((DAT_1028_0853 == 0) && (DAT_1028_0851 == 0x42)) {
|
|
uVar9 = 0x1008;
|
|
FUN_1008_0002(0xd);
|
|
}
|
|
uVar7 = uVar4;
|
|
BITBLT(uVar9,0x20,0xcc,0x5a,0xb4,uVar2,0x5a,0x5b,0x21,0);
|
|
if ((DAT_1028_0853 < 0) || ((DAT_1028_0853 < 1 && (DAT_1028_0851 < 0x53)))) {
|
|
uVar17 = 0;
|
|
uVar7 = FUN_1020_08a9(0,uVar4);
|
|
BITBLT(0x1020,0xc6,0x88,0x5a,0x16a,uVar2,0x5a,0x5b,uVar7,uVar17);
|
|
uVar17 = 0;
|
|
uVar7 = FUN_1020_08a9(0,uVar4);
|
|
BITBLT(0x1020,0x86,0xee,0x5a,0x10f,uVar2,0x5a,0x5b,uVar7,uVar17);
|
|
}
|
|
else {
|
|
uVar16 = 0;
|
|
uVar15 = 0;
|
|
uVar13 = 0x5b;
|
|
uVar17 = FUN_1020_08a9(0x5b,0,0,uVar4,uVar7);
|
|
uVar18 = 0x16a;
|
|
uVar7 = uVar2;
|
|
iVar8 = FUN_1020_08a9(0x16a,uVar2,uVar17);
|
|
BITBLT(0x1020,0xc6,0x88,iVar8 + 0x5a,uVar18,uVar7,uVar17,uVar13,uVar15,uVar16);
|
|
uVar16 = 0;
|
|
uVar15 = 0;
|
|
uVar13 = 0x5b;
|
|
uVar17 = FUN_1020_08a9(0x5b,0,0,uVar4);
|
|
uVar18 = 0x10f;
|
|
uVar7 = uVar2;
|
|
iVar8 = FUN_1020_08a9(0x10f,uVar2,uVar17);
|
|
BITBLT(0x1020,0x86,0xee,iVar8 + 0x5a,uVar18,uVar7,uVar17,uVar13,uVar15,uVar16);
|
|
}
|
|
if ((DAT_1028_0853 < 0) || ((DAT_1028_0853 < 1 && (DAT_1028_0851 < 0x6f)))) {
|
|
uVar16 = 0x14;
|
|
uVar15 = 0;
|
|
uVar13 = 0x2d;
|
|
uVar17 = FUN_1020_08a9(0x2d,0,0x14,uVar4);
|
|
uVar18 = 0x87;
|
|
uVar7 = uVar2;
|
|
iVar8 = FUN_1020_08a9(0x87,uVar2,uVar17);
|
|
BITBLT(0x1020,0xc6,0x88,iVar8 + 0x5a,uVar18,uVar7,uVar17,uVar13,uVar15,uVar16);
|
|
uVar16 = 0x14;
|
|
uVar15 = 0;
|
|
uVar13 = 0x2d;
|
|
uVar17 = FUN_1020_08a9(0x2d,0,0x14,uVar4);
|
|
uVar18 = 0x5a;
|
|
uVar7 = uVar2;
|
|
iVar8 = FUN_1020_08a9(0x5a,uVar2,uVar17);
|
|
BITBLT(0x1020,0x86,0xee,iVar8 + 0x5a,uVar18,uVar7,uVar17,uVar13,uVar15,uVar16);
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if ((DAT_1028_0853 == 0) && (DAT_1028_0851 == 0x3a)) {
|
|
uVar9 = 0x1008;
|
|
FUN_1008_0002(0xc);
|
|
}
|
|
BITBLT(uVar9,0xc6,0x88,0x5a,0x87,uVar2,0x58,0x2d,0,0x14);
|
|
BITBLT(0x1228,0x86,0xee,0x5a,0x5a,uVar2,0x58,0x2d,0,0x14);
|
|
}
|
|
}
|
|
else {
|
|
if ((DAT_1028_0853 == 0) && (DAT_1028_0851 == 0x2d)) {
|
|
uVar9 = 0x1008;
|
|
FUN_1008_118f();
|
|
}
|
|
BITBLT(uVar9,0xc6,0x88,0x5a,0x2d,uVar2,0x58,0x2d,0,0x14);
|
|
BITBLT(0x1228,0x86,0xee,0x5a,0,uVar2,0x58,0x2d,0,0x14);
|
|
}
|
|
}
|
|
else {
|
|
if ((DAT_1028_0853 == 0) && (DAT_1028_0851 == 1)) {
|
|
FUN_1008_0002(0xd);
|
|
uVar13 = uVar4;
|
|
SELECTOBJECT(0x1008,DAT_1028_085b);
|
|
uVar18 = uVar4;
|
|
BITBLT(0x1228,0x20,0xcc,0x5a,0x10f,uVar2,0x5a,0x5b,0,0x4f);
|
|
uVar14 = 0x1228;
|
|
uVar12 = 0x751d;
|
|
uVar7 = uVar5;
|
|
uVar17 = uVar4;
|
|
SELECTOBJECT(0x1228,uVar5);
|
|
}
|
|
uVar11 = 0x14;
|
|
uVar10 = 0;
|
|
uVar9 = 0x2d;
|
|
uVar17 = FUN_1020_08a9(0x2d,0,0x14,uVar4,uVar12,uVar14,uVar7,uVar17,uVar18,uVar13,uVar15,uVar16,
|
|
uVar19);
|
|
uVar18 = 0x2d;
|
|
uVar7 = uVar2;
|
|
iVar8 = FUN_1020_08a9(0x2d,uVar2,uVar17);
|
|
BITBLT(0x1020,0xc6,0x88,iVar8 + 0x59,uVar18,uVar7,uVar17,uVar9,uVar10,uVar11);
|
|
uVar16 = 0x14;
|
|
uVar15 = 0;
|
|
uVar13 = 0x2d;
|
|
uVar17 = FUN_1020_08a9(0x2d,0,0x14,uVar4);
|
|
uVar18 = 0;
|
|
uVar7 = uVar2;
|
|
iVar8 = FUN_1020_08a9(0,uVar2,uVar17);
|
|
BITBLT(0x1020,0x86,0xee,iVar8 + 0x59,uVar18,uVar7,uVar17,uVar13,uVar15,uVar16);
|
|
}
|
|
uVar18 = uVar1;
|
|
BITBLT(0x1228,0x20,0xcc,0,0,uVar4,0x7b,0x5b,0,0x4f);
|
|
uVar17 = uVar4;
|
|
SELECTOBJECT(0x1228,uVar6);
|
|
uVar7 = uVar2;
|
|
SELECTOBJECT(0x1228,uVar3);
|
|
DELETEOBJECT(0x1228,uVar5,uVar7,uVar17,uVar18);
|
|
DELETEDC(0x1228,uVar4);
|
|
DELETEDC(0x1228,uVar2);
|
|
RELEASEDC(0x1228,uVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:7e12 FUN_1000_7e12 ===== */
|
|
|
|
void __stdcall16far FUN_1000_7e12(undefined2 param_1,uint param_2)
|
|
|
|
{
|
|
if ((param_2 != 0) && (param_2 < 0xb0)) {
|
|
if ((*(uint *)(param_2 * 0x53 + 0x99c) & 0x80) == 0x80) {
|
|
if (*(char *)(param_2 * 0x53 + 0x98f) == '\0') {
|
|
FUN_1000_b30b(param_1,param_2);
|
|
}
|
|
else {
|
|
FUN_1000_b3f3(param_1,param_2);
|
|
}
|
|
}
|
|
else if ((*(uint *)(param_2 * 0x53 + 0x99c) & 0x100) == 0x100) {
|
|
if (*(char *)(param_2 * 0x53 + 0x98f) == '\0') {
|
|
FUN_1000_b3f3(param_1,param_2);
|
|
}
|
|
else {
|
|
FUN_1000_b30b(param_1,param_2);
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:7e92 FUN_1000_7e92 ===== */
|
|
|
|
void __stdcall16far FUN_1000_7e92(int param_1,int param_2)
|
|
|
|
{
|
|
undefined2 unaff_SS;
|
|
|
|
if (*(char *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + param_2 + 0x467) ==
|
|
'\0') {
|
|
FUN_1000_b3f3(param_1,param_2 + 1000);
|
|
}
|
|
else {
|
|
FUN_1000_b30b(param_1,param_2 + 1000);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:7ed9 FUN_1000_7ed9 ===== */
|
|
|
|
/* WARNING: Removing unreachable block (ram,0x10008133) */
|
|
|
|
void __stdcall16far FUN_1000_7ed9(int param_1,int param_2,uint param_3,int param_4,int param_5)
|
|
|
|
{
|
|
uint uVar1;
|
|
uint uVar2;
|
|
uint uVar3;
|
|
uint uVar4;
|
|
uint uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
undefined2 uVar8;
|
|
int iVar9;
|
|
int iVar10;
|
|
int iVar11;
|
|
int iVar12;
|
|
uint uVar13;
|
|
int extraout_DX;
|
|
undefined2 uVar14;
|
|
int iVar15;
|
|
undefined2 unaff_SS;
|
|
bool bVar16;
|
|
undefined1 uVar17;
|
|
undefined1 uVar18;
|
|
undefined4 uVar19;
|
|
uint local_86;
|
|
uint local_84;
|
|
uint local_76;
|
|
int local_74;
|
|
uint local_36;
|
|
int local_34;
|
|
uint local_32;
|
|
int local_30;
|
|
uint local_2e;
|
|
int local_2c;
|
|
uint local_2a;
|
|
int local_28;
|
|
uint local_1e;
|
|
int local_1c;
|
|
uint local_1a;
|
|
int local_18;
|
|
uint local_a;
|
|
uint local_8;
|
|
uint local_6;
|
|
uint local_4;
|
|
|
|
FUN_1008_0002(0x15);
|
|
if (param_4 == 1) {
|
|
FUN_1020_1017();
|
|
local_1a = DAT_1028_1e80 + 0xd8f0;
|
|
local_18 = DAT_1028_1e82 - (uint)(DAT_1028_1e80 < 10000);
|
|
local_1e = DAT_1028_1e84;
|
|
local_1c = DAT_1028_1e86;
|
|
local_2a = DAT_1028_1edb + 20000;
|
|
local_28 = DAT_1028_1edd + (uint)(0xb1df < DAT_1028_1edb);
|
|
local_2e = DAT_1028_1edf;
|
|
local_2c = DAT_1028_1ee1;
|
|
local_32 = DAT_1028_1f79 + 20000;
|
|
local_30 = DAT_1028_1f7b + (uint)(0xb1df < DAT_1028_1f79);
|
|
local_36 = DAT_1028_1f7d;
|
|
local_34 = DAT_1028_1f7f;
|
|
}
|
|
else if (param_4 == 2) {
|
|
FUN_1020_1017();
|
|
local_1a = DAT_1028_235d + 10000;
|
|
local_18 = DAT_1028_235f + (uint)(0xd8ef < DAT_1028_235d);
|
|
local_1e = DAT_1028_2361;
|
|
local_1c = DAT_1028_2363;
|
|
local_2a = DAT_1028_2456 + 0xb1e0;
|
|
local_28 = DAT_1028_2458 - (uint)(DAT_1028_2456 < 20000);
|
|
local_2e = DAT_1028_245a;
|
|
local_2c = DAT_1028_245c;
|
|
local_32 = DAT_1028_23b8 + 0xb1e0;
|
|
local_30 = DAT_1028_23ba - (uint)(DAT_1028_23b8 < 20000);
|
|
local_36 = DAT_1028_23bc;
|
|
local_34 = DAT_1028_23be;
|
|
}
|
|
uVar3 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar1 = FUN_1020_1017();
|
|
uVar2 = uVar1 + local_1e;
|
|
iVar9 = uVar3 + local_1c + (uint)CARRY2(uVar1,local_1e);
|
|
uVar3 = (uint)*(byte *)((int)*(undefined4 *)(param_1 + 6) + 0x61);
|
|
if (uVar3 != 0) {
|
|
local_76 = 1;
|
|
local_74 = 0;
|
|
while( true ) {
|
|
if (1 < *(byte *)((int)*(undefined4 *)(param_1 + 6) + 0x61)) {
|
|
FUN_1000_c36b(param_1,local_76 - 1,local_74 - (uint)(local_76 == 0));
|
|
}
|
|
if ((param_3 == 0xffff) && (param_2 == -1)) {
|
|
iVar10 = (local_28 - DAT_1028_07d5) - (uint)(local_2a < DAT_1028_07d3);
|
|
FUN_1020_08e6();
|
|
FUN_1020_08e6();
|
|
iVar11 = ((local_2c - (uint)(local_2e < 43000)) - DAT_1028_07d9) -
|
|
(uint)(local_2e + 0x5808 < DAT_1028_07d7);
|
|
FUN_1020_08e6();
|
|
FUN_1020_08e6();
|
|
uVar1 = FUN_1020_08a9();
|
|
iVar12 = iVar10;
|
|
uVar4 = FUN_1020_08a9();
|
|
local_6 = uVar4 - uVar1;
|
|
local_4 = (iVar12 - iVar11) - (uint)(uVar4 < uVar1);
|
|
FUN_1020_08e6();
|
|
iVar12 = ((local_2c + (uint)(0xd11f < local_2e)) - DAT_1028_07d9) -
|
|
(uint)(local_2e + 12000 < DAT_1028_07d7);
|
|
FUN_1020_08e6();
|
|
uVar1 = FUN_1020_08a9();
|
|
uVar4 = FUN_1020_08a9();
|
|
local_a = uVar4 - uVar1;
|
|
local_8 = (iVar10 - iVar12) - (uint)(uVar4 < uVar1);
|
|
}
|
|
else {
|
|
iVar10 = (local_30 - DAT_1028_07d5) - (uint)(local_32 < DAT_1028_07d3);
|
|
FUN_1020_08e6();
|
|
FUN_1020_08e6();
|
|
iVar11 = ((local_34 - (uint)(local_36 < 12000)) - DAT_1028_07d9) -
|
|
(uint)(local_36 + 0xd120 < DAT_1028_07d7);
|
|
FUN_1020_08e6();
|
|
FUN_1020_08e6();
|
|
uVar1 = FUN_1020_08a9();
|
|
iVar12 = iVar10;
|
|
uVar4 = FUN_1020_08a9();
|
|
local_6 = uVar4 - uVar1;
|
|
local_4 = (iVar12 - iVar11) - (uint)(uVar4 < uVar1);
|
|
FUN_1020_08e6();
|
|
iVar12 = ((local_34 + (uint)(0x5807 < local_36)) - DAT_1028_07d9) -
|
|
(uint)(local_36 + 43000 < DAT_1028_07d7);
|
|
FUN_1020_08e6();
|
|
uVar1 = FUN_1020_08a9();
|
|
uVar4 = FUN_1020_08a9();
|
|
local_a = uVar4 - uVar1;
|
|
local_8 = (iVar10 - iVar12) - (uint)(uVar4 < uVar1);
|
|
}
|
|
uVar1 = DAT_1028_07d3 - local_1a;
|
|
uVar4 = (DAT_1028_07d5 - local_18) - (uint)(DAT_1028_07d3 < local_1a);
|
|
if ((int)uVar4 < 0) {
|
|
bVar16 = uVar1 != 0;
|
|
uVar1 = -uVar1;
|
|
uVar4 = (~uVar4 + 1) - (uint)bVar16;
|
|
}
|
|
uVar5 = DAT_1028_07d7 - uVar2;
|
|
uVar13 = (DAT_1028_07d9 - iVar9) - (uint)(DAT_1028_07d7 < uVar2);
|
|
if ((int)uVar13 < 0) {
|
|
bVar16 = uVar5 != 0;
|
|
uVar5 = -uVar5;
|
|
uVar13 = (~uVar13 + 1) - (uint)bVar16;
|
|
}
|
|
if ((((int)uVar4 < 0) || (((int)uVar4 < 1 && (uVar1 < 54000)))) &&
|
|
(((int)uVar13 < 0 || (((int)uVar13 < 1 && (uVar5 < 54000)))))) {
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
uVar19 = FUN_1020_0ff1(0x1020);
|
|
FUN_1020_100b((int)uVar19,iVar12,(int)((ulong)uVar19 >> 0x10));
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1(0x1020);
|
|
iVar12 = extraout_DX;
|
|
FUN_1020_0fe5();
|
|
FUN_1020_10be();
|
|
FUN_1020_0ff7();
|
|
uVar1 = FUN_1020_1017();
|
|
if (((iVar12 < 0) || ((iVar12 < 1 && (uVar1 < 0xd2f1)))) &&
|
|
(((((param_5 == 0 &&
|
|
((param_4 == 1 && ((local_4 < 0x8000 || ((-2 < (int)local_4 && (0xfc18 < local_6)))))
|
|
))) && (((int)local_8 < 0 || (((int)local_8 < 1 && (local_a < 1000)))))) &&
|
|
((local_18 < DAT_1028_07d5 ||
|
|
((local_18 <= DAT_1028_07d5 && (local_1a < DAT_1028_07d3)))))) ||
|
|
(((((param_5 == 0 && (param_4 == 2)) &&
|
|
(((int)local_4 < 0 || (((int)local_4 < 1 && (local_6 < 1000)))))) &&
|
|
((local_8 < 0x8000 || ((-2 < (int)local_8 && (0xfc18 < local_a)))))) &&
|
|
((DAT_1028_07d5 < local_18 ||
|
|
((DAT_1028_07d5 <= local_18 && (DAT_1028_07d3 < local_1a)))))))))) {
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
FUN_1020_1017();
|
|
FUN_1020_100b();
|
|
uVar1 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
FUN_1020_1017();
|
|
FUN_1020_100b();
|
|
if ((param_3 == 0xffff) && (param_2 == -1)) {
|
|
uVar4 = (local_28 - local_18) - (uint)(local_2a < local_1a);
|
|
uVar17 = false;
|
|
uVar18 = uVar4 == 0;
|
|
if ((int)uVar4 < 0) {
|
|
uVar5 = ~uVar4 + 1;
|
|
uVar17 = ~uVar4 != 0xffff || uVar5 < (local_2a != local_1a);
|
|
uVar18 = uVar5 == (local_2a != local_1a);
|
|
}
|
|
FUN_1020_100b();
|
|
FUN_1020_1007();
|
|
if ((bool)uVar17 || (bool)uVar18) {
|
|
local_86 = local_2e + 0x5808;
|
|
local_84 = local_2c - (uint)(local_2e < 43000);
|
|
}
|
|
else {
|
|
uVar4 = DAT_1028_07d3 - local_1a;
|
|
uVar1 = (DAT_1028_07d5 - local_18) - (uint)(DAT_1028_07d3 < local_1a);
|
|
if ((int)uVar1 < 0) {
|
|
bVar16 = uVar4 != 0;
|
|
uVar4 = -uVar4;
|
|
uVar1 = (~uVar1 + 1) - (uint)bVar16;
|
|
}
|
|
local_86 = (uVar2 - uVar4) + 5000;
|
|
local_84 = ((iVar9 - uVar1) - (uint)(uVar2 < uVar4)) + (uint)(0xec77 < uVar2 - uVar4);
|
|
}
|
|
local_84 = (local_84 - DAT_1028_07d9) - (uint)(local_86 < DAT_1028_07d7);
|
|
}
|
|
else {
|
|
uVar4 = (local_30 - local_18) - (uint)(local_32 < local_1a);
|
|
uVar17 = false;
|
|
uVar18 = uVar4 == 0;
|
|
if ((int)uVar4 < 0) {
|
|
uVar5 = ~uVar4 + 1;
|
|
uVar17 = ~uVar4 != 0xffff || uVar5 < (local_32 != local_1a);
|
|
uVar18 = uVar5 == (local_32 != local_1a);
|
|
}
|
|
FUN_1020_100b();
|
|
FUN_1020_1007();
|
|
if ((bool)uVar17 || (bool)uVar18) {
|
|
local_86 = local_36 + 43000;
|
|
local_84 = local_34 + (uint)(0x5807 < local_36);
|
|
}
|
|
else {
|
|
iVar12 = (local_30 - local_18) - (uint)(local_32 < local_1a);
|
|
uVar6 = FUN_1020_100b();
|
|
uVar4 = (DAT_1028_07d5 - local_18) - (uint)(DAT_1028_07d3 < local_1a);
|
|
FUN_1020_08a9(uVar6,uVar1,iVar12);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
uVar1 = FUN_1020_1017();
|
|
local_86 = uVar2 - uVar1;
|
|
local_84 = (iVar9 - uVar4) - (uint)(uVar2 < uVar1);
|
|
uVar1 = uVar4;
|
|
}
|
|
local_84 = (local_84 - DAT_1028_07d9) - (uint)(local_86 < DAT_1028_07d7);
|
|
}
|
|
if ((int)local_84 < 0) {
|
|
uVar1 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
iVar12 = FUN_1020_1017();
|
|
local_86 = -iVar12;
|
|
local_84 = (~local_84 + 1) - (uint)(iVar12 != 0);
|
|
}
|
|
else {
|
|
local_86 = 0;
|
|
local_84 = 0;
|
|
}
|
|
uVar14 = 0;
|
|
uVar8 = uVar14;
|
|
uVar7 = FUN_1020_100b();
|
|
uVar6 = *(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 0xbb0);
|
|
FUN_1020_100b(uVar7,uVar1,uVar8);
|
|
uVar8 = FUN_1020_0ff7();
|
|
FUN_1020_100b(uVar8,uVar1,uVar6);
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0fe5();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_1017();
|
|
uVar8 = uVar14;
|
|
uVar7 = FUN_1020_100b();
|
|
uVar6 = *(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 0xbb0);
|
|
FUN_1020_100b(uVar7,uVar1,uVar8);
|
|
uVar7 = FUN_1020_0ff7();
|
|
uVar8 = *(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 0xbac);
|
|
FUN_1020_100b(uVar7,uVar1,uVar6);
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0feb();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_1017();
|
|
uVar6 = uVar14;
|
|
uVar7 = FUN_1020_100b();
|
|
FUN_1020_100b(uVar7,uVar1,uVar6);
|
|
FUN_1020_0ffd();
|
|
FUN_1020_10be();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0fe5();
|
|
uVar6 = FUN_1020_100b();
|
|
uVar7 = 0;
|
|
iVar11 = 0;
|
|
FUN_1020_0fe5(uVar6,uVar1,uVar8);
|
|
FUN_1020_0ff7();
|
|
uVar1 = FUN_1020_1017();
|
|
iVar12 = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar4 = FUN_1020_1017();
|
|
iVar10 = iVar12 + iVar11 + (uint)CARRY2(uVar4,uVar1);
|
|
uVar6 = uVar14;
|
|
uVar8 = FUN_1020_100b();
|
|
iVar11 = iVar10;
|
|
FUN_1020_100b(uVar8,uVar7,uVar6);
|
|
uVar6 = FUN_1020_0ff7();
|
|
iVar12 = 0;
|
|
FUN_1020_100b(uVar6,uVar7,iVar11);
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0feb();
|
|
FUN_1020_0ffd();
|
|
uVar4 = FUN_1020_1017();
|
|
uVar6 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar1 = *(uint *)(iVar15 + 0xbaa);
|
|
iVar11 = *(int *)(iVar15 + 0xbac);
|
|
*(int *)(iVar15 + 0xbaa) = uVar4 + *(uint *)(iVar15 + 0xbaa);
|
|
*(int *)(iVar15 + 0xbac) = iVar12 + iVar11 + (uint)CARRY2(uVar4,uVar1);
|
|
uVar8 = FUN_1020_100b();
|
|
uVar6 = 0;
|
|
FUN_1020_100b(uVar8,uVar7,uVar14);
|
|
uVar8 = FUN_1020_0ff7();
|
|
FUN_1020_100b(uVar8,uVar7,uVar6);
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0fe5();
|
|
FUN_1020_0ffd();
|
|
uVar4 = FUN_1020_1017();
|
|
uVar6 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar11 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar1 = *(uint *)(iVar11 + 0xbae);
|
|
iVar12 = *(int *)(iVar11 + 0xbb0);
|
|
*(int *)(iVar11 + 0xbae) = uVar4 + *(uint *)(iVar11 + 0xbae);
|
|
*(int *)(iVar11 + 0xbb0) = iVar10 + iVar12 + (uint)CARRY2(uVar4,uVar1);
|
|
uVar6 = *(undefined2 *)(iVar11 + 0xbb0);
|
|
uVar8 = FUN_1020_100b();
|
|
uVar1 = local_84;
|
|
FUN_1020_08a9(uVar8,uVar7,uVar6);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
uVar6 = FUN_1020_1017();
|
|
FUN_1000_beff(param_1,uVar6,uVar1,local_86,local_84);
|
|
}
|
|
}
|
|
if (1 < *(byte *)((int)*(undefined4 *)(param_1 + 6) + 0x61)) {
|
|
FUN_1000_c426(param_1,local_76 - 1,local_74 - (uint)(local_76 == 0));
|
|
}
|
|
if ((local_74 == 0) && (local_76 == uVar3)) break;
|
|
bVar16 = 0xfffe < local_76;
|
|
local_76 = local_76 + 1;
|
|
local_74 = local_74 + (uint)bVar16;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:8b0d FUN_1000_8b0d ===== */
|
|
|
|
void __stdcall16far FUN_1000_8b0d(int param_1,int param_2,int param_3,char param_4)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
uint uVar2;
|
|
undefined2 uVar3;
|
|
uint uVar4;
|
|
int iVar5;
|
|
undefined2 uVar6;
|
|
undefined2 unaff_SS;
|
|
bool bVar7;
|
|
undefined2 uVar8;
|
|
|
|
uVar1 = *(undefined4 *)(*(int *)(param_1 + 6) + 6);
|
|
uVar8 = *(undefined2 *)((int)uVar1 + 4);
|
|
uVar6 = 0x1228;
|
|
uVar3 = GETDC();
|
|
if ((param_3 == 0) && (param_2 == 1)) {
|
|
*(undefined2 *)(param_1 + -4) = 0;
|
|
*(undefined2 *)(param_1 + -2) = 0;
|
|
*(undefined2 *)(param_1 + -8) = 43000;
|
|
*(undefined2 *)(param_1 + -6) = 0;
|
|
}
|
|
else {
|
|
*(undefined2 *)(param_1 + -4) = 0;
|
|
*(undefined2 *)(param_1 + -2) = 0;
|
|
*(undefined2 *)(param_1 + -8) = 0x5808;
|
|
*(undefined2 *)(param_1 + -6) = 0xffff;
|
|
}
|
|
if (param_4 == '\x01') {
|
|
iVar5 = param_3;
|
|
FUN_1020_08a9(uVar8);
|
|
FUN_1020_100b();
|
|
uVar4 = FUN_1020_1017();
|
|
bVar7 = CARRY2(DAT_1028_1ed3,uVar4);
|
|
DAT_1028_1ed3 = DAT_1028_1ed3 + uVar4;
|
|
DAT_1028_1ed5 = DAT_1028_1ed5 + iVar5 + (uint)bVar7;
|
|
iVar5 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar4 = FUN_1020_1017();
|
|
bVar7 = CARRY2(DAT_1028_1ed7,uVar4);
|
|
DAT_1028_1ed7 = DAT_1028_1ed7 + uVar4;
|
|
DAT_1028_1ed9 = DAT_1028_1ed9 + iVar5 + (uint)bVar7;
|
|
iVar5 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar4 = FUN_1020_1017();
|
|
bVar7 = CARRY2(DAT_1028_1edb,uVar4);
|
|
DAT_1028_1edb = DAT_1028_1edb + uVar4;
|
|
DAT_1028_1edd = DAT_1028_1edd + iVar5 + (uint)bVar7;
|
|
iVar5 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar4 = FUN_1020_1017();
|
|
bVar7 = CARRY2(DAT_1028_1edf,uVar4);
|
|
DAT_1028_1edf = DAT_1028_1edf + uVar4;
|
|
DAT_1028_1ee1 = DAT_1028_1ee1 + iVar5 + (uint)bVar7;
|
|
if ((DAT_1028_1ed5 < DAT_1028_1edd) ||
|
|
((DAT_1028_1ed5 <= DAT_1028_1edd && (DAT_1028_1ed3 < DAT_1028_1edb)))) {
|
|
DAT_1028_1ec5 = DAT_1028_1ed5 - (uint)(DAT_1028_1ed3 < 5000);
|
|
DAT_1028_1ecd = DAT_1028_1edd + (uint)(0xec77 < DAT_1028_1edb);
|
|
uVar4 = DAT_1028_1ed3;
|
|
uVar2 = DAT_1028_1edb;
|
|
}
|
|
else {
|
|
DAT_1028_1ec5 = DAT_1028_1edd - (uint)(DAT_1028_1edb < 5000);
|
|
DAT_1028_1ecd = DAT_1028_1ed5 + (uint)(0xec77 < DAT_1028_1ed3);
|
|
uVar4 = DAT_1028_1edb;
|
|
uVar2 = DAT_1028_1ed3;
|
|
}
|
|
DAT_1028_1ecb = uVar2 + 5000;
|
|
DAT_1028_1ec3 = uVar4 + 0xec78;
|
|
if ((DAT_1028_1ed9 < DAT_1028_1ee1) ||
|
|
((DAT_1028_1ed9 <= DAT_1028_1ee1 && (DAT_1028_1ed7 < DAT_1028_1edf)))) {
|
|
DAT_1028_1ec9 = DAT_1028_1ed9 - (uint)(DAT_1028_1ed7 < 5000);
|
|
DAT_1028_1ed1 = DAT_1028_1ee1 + (uint)(0xec77 < DAT_1028_1edf);
|
|
uVar4 = DAT_1028_1ed7;
|
|
uVar2 = DAT_1028_1edf;
|
|
}
|
|
else {
|
|
DAT_1028_1ec9 = DAT_1028_1ee1 - (uint)(DAT_1028_1edf < 5000);
|
|
DAT_1028_1ed1 = DAT_1028_1ed9 + (uint)(0xec77 < DAT_1028_1ed7);
|
|
uVar4 = DAT_1028_1edf;
|
|
uVar2 = DAT_1028_1ed7;
|
|
}
|
|
DAT_1028_1ecf = uVar2 + 5000;
|
|
DAT_1028_1ec7 = uVar4 + 0xec78;
|
|
iVar5 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar4 = FUN_1020_1017();
|
|
bVar7 = CARRY2(DAT_1028_1f26,uVar4);
|
|
DAT_1028_1f26 = DAT_1028_1f26 + uVar4;
|
|
DAT_1028_1f28 = DAT_1028_1f28 + iVar5 + (uint)bVar7;
|
|
iVar5 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar4 = FUN_1020_1017();
|
|
bVar7 = CARRY2(DAT_1028_1f2a,uVar4);
|
|
DAT_1028_1f2a = DAT_1028_1f2a + uVar4;
|
|
DAT_1028_1f2c = DAT_1028_1f2c + iVar5 + (uint)bVar7;
|
|
iVar5 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar4 = FUN_1020_1017();
|
|
bVar7 = CARRY2(DAT_1028_1f16,uVar4);
|
|
DAT_1028_1f16 = DAT_1028_1f16 + uVar4;
|
|
DAT_1028_1f18 = DAT_1028_1f18 + iVar5 + (uint)bVar7;
|
|
iVar5 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar4 = FUN_1020_1017();
|
|
bVar7 = CARRY2(DAT_1028_1f1a,uVar4);
|
|
DAT_1028_1f1a = DAT_1028_1f1a + uVar4;
|
|
DAT_1028_1f1c = DAT_1028_1f1c + iVar5 + (uint)bVar7;
|
|
iVar5 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar4 = FUN_1020_1017();
|
|
bVar7 = DAT_1028_1f1e < uVar4;
|
|
DAT_1028_1f1e = DAT_1028_1f1e - uVar4;
|
|
DAT_1028_1f20 = (DAT_1028_1f20 - iVar5) - (uint)bVar7;
|
|
iVar5 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar4 = FUN_1020_1017();
|
|
bVar7 = DAT_1028_1f22 < uVar4;
|
|
DAT_1028_1f22 = DAT_1028_1f22 - uVar4;
|
|
DAT_1028_1f24 = (DAT_1028_1f24 - iVar5) - (uint)bVar7;
|
|
iVar5 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar4 = FUN_1020_1017();
|
|
bVar7 = DAT_1028_1f79 < uVar4;
|
|
DAT_1028_1f79 = DAT_1028_1f79 - uVar4;
|
|
DAT_1028_1f7b = (DAT_1028_1f7b - iVar5) - (uint)bVar7;
|
|
iVar5 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar4 = FUN_1020_1017();
|
|
bVar7 = CARRY2(DAT_1028_1f7d,uVar4);
|
|
DAT_1028_1f7d = DAT_1028_1f7d + uVar4;
|
|
DAT_1028_1f7f = DAT_1028_1f7f + iVar5 + (uint)bVar7;
|
|
iVar5 = param_3;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar4 = FUN_1020_1017();
|
|
bVar7 = DAT_1028_1f81 < uVar4;
|
|
DAT_1028_1f81 = DAT_1028_1f81 - uVar4;
|
|
DAT_1028_1f83 = (DAT_1028_1f83 - iVar5) - (uint)bVar7;
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
uVar4 = FUN_1020_1017();
|
|
bVar7 = CARRY2(DAT_1028_1f85,uVar4);
|
|
DAT_1028_1f85 = DAT_1028_1f85 + uVar4;
|
|
DAT_1028_1f87 = DAT_1028_1f87 + param_3 + (uint)bVar7;
|
|
if ((DAT_1028_1f7b < DAT_1028_1f83) ||
|
|
((DAT_1028_1f7b <= DAT_1028_1f83 && (DAT_1028_1f79 < DAT_1028_1f81)))) {
|
|
DAT_1028_1f6b = DAT_1028_1f7b - (uint)(DAT_1028_1f79 < 5000);
|
|
DAT_1028_1f73 = DAT_1028_1f83 + (uint)(0xec77 < DAT_1028_1f81);
|
|
uVar4 = DAT_1028_1f79;
|
|
uVar2 = DAT_1028_1f81;
|
|
}
|
|
else {
|
|
DAT_1028_1f6b = DAT_1028_1f83 - (uint)(DAT_1028_1f81 < 5000);
|
|
DAT_1028_1f73 = DAT_1028_1f7b + (uint)(0xec77 < DAT_1028_1f79);
|
|
uVar4 = DAT_1028_1f81;
|
|
uVar2 = DAT_1028_1f79;
|
|
}
|
|
DAT_1028_1f71 = uVar2 + 5000;
|
|
DAT_1028_1f69 = uVar4 + 0xec78;
|
|
if ((DAT_1028_1f7f < DAT_1028_1f87) ||
|
|
((DAT_1028_1f7f <= DAT_1028_1f87 && (DAT_1028_1f7d < DAT_1028_1f85)))) {
|
|
DAT_1028_1f6f = DAT_1028_1f7f - (uint)(DAT_1028_1f7d < 5000);
|
|
DAT_1028_1f77 = DAT_1028_1f87 + (uint)(0xec77 < DAT_1028_1f85);
|
|
uVar4 = DAT_1028_1f7d;
|
|
uVar2 = DAT_1028_1f85;
|
|
}
|
|
else {
|
|
DAT_1028_1f6f = DAT_1028_1f87 - (uint)(DAT_1028_1f85 < 5000);
|
|
DAT_1028_1f77 = DAT_1028_1f7f + (uint)(0xec77 < DAT_1028_1f7d);
|
|
uVar4 = DAT_1028_1f85;
|
|
uVar2 = DAT_1028_1f7d;
|
|
}
|
|
DAT_1028_1f75 = uVar2 + 5000;
|
|
DAT_1028_1f6d = uVar4 + 0xec78;
|
|
uVar1 = *(undefined4 *)(*(int *)(param_1 + 6) + 6);
|
|
if (*(int *)((int)uVar1 + 0xbd4) == 0) {
|
|
FUN_1008_08bb(0x34,0x2f,0x175,0x5d,uVar3);
|
|
}
|
|
else {
|
|
FUN_1008_0837(0x34,0x2f,0x175,0x5d,uVar3);
|
|
}
|
|
uVar6 = 0x1008;
|
|
FUN_1008_093f(0x34,0x2f,0x175,0x5d,uVar3);
|
|
}
|
|
else if (param_4 == '\x02') {
|
|
iVar5 = param_3;
|
|
uVar4 = FUN_1020_08a9(uVar8);
|
|
bVar7 = DAT_1028_245e < uVar4;
|
|
DAT_1028_245e = DAT_1028_245e - uVar4;
|
|
DAT_1028_2460 = (DAT_1028_2460 - iVar5) - (uint)bVar7;
|
|
iVar5 = param_3;
|
|
uVar4 = FUN_1020_08a9();
|
|
bVar7 = CARRY2(DAT_1028_2462,uVar4);
|
|
DAT_1028_2462 = DAT_1028_2462 + uVar4;
|
|
DAT_1028_2464 = DAT_1028_2464 + iVar5 + (uint)bVar7;
|
|
iVar5 = param_3;
|
|
uVar4 = FUN_1020_08a9();
|
|
bVar7 = DAT_1028_2456 < uVar4;
|
|
DAT_1028_2456 = DAT_1028_2456 - uVar4;
|
|
DAT_1028_2458 = (DAT_1028_2458 - iVar5) - (uint)bVar7;
|
|
iVar5 = param_3;
|
|
uVar4 = FUN_1020_08a9();
|
|
bVar7 = CARRY2(DAT_1028_245a,uVar4);
|
|
DAT_1028_245a = DAT_1028_245a + uVar4;
|
|
DAT_1028_245c = DAT_1028_245c + iVar5 + (uint)bVar7;
|
|
if ((DAT_1028_2458 < DAT_1028_2460) ||
|
|
((DAT_1028_2458 <= DAT_1028_2460 && (DAT_1028_2456 < DAT_1028_245e)))) {
|
|
DAT_1028_2448 = DAT_1028_2458 - (uint)(DAT_1028_2456 < 5000);
|
|
DAT_1028_2450 = DAT_1028_2460 + (uint)(0xec77 < DAT_1028_245e);
|
|
uVar4 = DAT_1028_2456;
|
|
uVar2 = DAT_1028_245e;
|
|
}
|
|
else {
|
|
DAT_1028_2448 = DAT_1028_2460 - (uint)(DAT_1028_245e < 5000);
|
|
DAT_1028_2450 = DAT_1028_2458 + (uint)(0xec77 < DAT_1028_2456);
|
|
uVar4 = DAT_1028_245e;
|
|
uVar2 = DAT_1028_2456;
|
|
}
|
|
DAT_1028_244e = uVar2 + 5000;
|
|
DAT_1028_2446 = uVar4 + 0xec78;
|
|
if ((DAT_1028_245c < DAT_1028_2464) ||
|
|
((DAT_1028_245c <= DAT_1028_2464 && (DAT_1028_245a < DAT_1028_2462)))) {
|
|
DAT_1028_244c = DAT_1028_245c - (uint)(DAT_1028_245a < 5000);
|
|
DAT_1028_2454 = DAT_1028_2464 + (uint)(0xec77 < DAT_1028_2462);
|
|
uVar4 = DAT_1028_245a;
|
|
uVar2 = DAT_1028_2462;
|
|
}
|
|
else {
|
|
DAT_1028_244c = DAT_1028_2464 - (uint)(DAT_1028_2462 < 5000);
|
|
DAT_1028_2454 = DAT_1028_245c + (uint)(0xec77 < DAT_1028_245a);
|
|
uVar4 = DAT_1028_2462;
|
|
uVar2 = DAT_1028_245a;
|
|
}
|
|
DAT_1028_2452 = uVar2 + 5000;
|
|
DAT_1028_244a = uVar4 + 0xec78;
|
|
iVar5 = param_3;
|
|
uVar4 = FUN_1020_08a9();
|
|
bVar7 = DAT_1028_2403 < uVar4;
|
|
DAT_1028_2403 = DAT_1028_2403 - uVar4;
|
|
DAT_1028_2405 = (DAT_1028_2405 - iVar5) - (uint)bVar7;
|
|
iVar5 = param_3;
|
|
uVar4 = FUN_1020_08a9();
|
|
bVar7 = CARRY2(DAT_1028_2407,uVar4);
|
|
DAT_1028_2407 = DAT_1028_2407 + uVar4;
|
|
DAT_1028_2409 = DAT_1028_2409 + iVar5 + (uint)bVar7;
|
|
iVar5 = param_3;
|
|
uVar4 = FUN_1020_08a9();
|
|
bVar7 = DAT_1028_23f3 < uVar4;
|
|
DAT_1028_23f3 = DAT_1028_23f3 - uVar4;
|
|
DAT_1028_23f5 = (DAT_1028_23f5 - iVar5) - (uint)bVar7;
|
|
iVar5 = param_3;
|
|
uVar4 = FUN_1020_08a9();
|
|
bVar7 = CARRY2(DAT_1028_23f7,uVar4);
|
|
DAT_1028_23f7 = DAT_1028_23f7 + uVar4;
|
|
DAT_1028_23f9 = DAT_1028_23f9 + iVar5 + (uint)bVar7;
|
|
iVar5 = param_3;
|
|
uVar4 = FUN_1020_08a9();
|
|
bVar7 = CARRY2(DAT_1028_23fb,uVar4);
|
|
DAT_1028_23fb = DAT_1028_23fb + uVar4;
|
|
DAT_1028_23fd = DAT_1028_23fd + iVar5 + (uint)bVar7;
|
|
iVar5 = param_3;
|
|
uVar4 = FUN_1020_08a9();
|
|
bVar7 = DAT_1028_23ff < uVar4;
|
|
DAT_1028_23ff = DAT_1028_23ff - uVar4;
|
|
DAT_1028_2401 = (DAT_1028_2401 - iVar5) - (uint)bVar7;
|
|
iVar5 = param_3;
|
|
uVar4 = FUN_1020_08a9();
|
|
bVar7 = CARRY2(DAT_1028_23b8,uVar4);
|
|
DAT_1028_23b8 = DAT_1028_23b8 + uVar4;
|
|
DAT_1028_23ba = DAT_1028_23ba + iVar5 + (uint)bVar7;
|
|
iVar5 = param_3;
|
|
uVar4 = FUN_1020_08a9();
|
|
bVar7 = CARRY2(DAT_1028_23bc,uVar4);
|
|
DAT_1028_23bc = DAT_1028_23bc + uVar4;
|
|
DAT_1028_23be = DAT_1028_23be + iVar5 + (uint)bVar7;
|
|
iVar5 = param_3;
|
|
uVar4 = FUN_1020_08a9();
|
|
bVar7 = CARRY2(DAT_1028_23b0,uVar4);
|
|
DAT_1028_23b0 = DAT_1028_23b0 + uVar4;
|
|
DAT_1028_23b2 = DAT_1028_23b2 + iVar5 + (uint)bVar7;
|
|
uVar4 = FUN_1020_08a9();
|
|
bVar7 = CARRY2(DAT_1028_23b4,uVar4);
|
|
DAT_1028_23b4 = DAT_1028_23b4 + uVar4;
|
|
DAT_1028_23b6 = DAT_1028_23b6 + param_3 + (uint)bVar7;
|
|
if ((DAT_1028_23b2 < DAT_1028_23ba) ||
|
|
((DAT_1028_23b2 <= DAT_1028_23ba && (DAT_1028_23b0 < DAT_1028_23b8)))) {
|
|
DAT_1028_23a2 = DAT_1028_23b2 - (uint)(DAT_1028_23b0 < 5000);
|
|
DAT_1028_23aa = DAT_1028_23ba + (uint)(0xec77 < DAT_1028_23b8);
|
|
uVar4 = DAT_1028_23b0;
|
|
uVar2 = DAT_1028_23b8;
|
|
}
|
|
else {
|
|
DAT_1028_23a2 = DAT_1028_23ba - (uint)(DAT_1028_23b8 < 5000);
|
|
DAT_1028_23aa = DAT_1028_23b2 + (uint)(0xec77 < DAT_1028_23b0);
|
|
uVar4 = DAT_1028_23b8;
|
|
uVar2 = DAT_1028_23b0;
|
|
}
|
|
DAT_1028_23a8 = uVar2 + 5000;
|
|
DAT_1028_23a0 = uVar4 + 0xec78;
|
|
if ((DAT_1028_23b6 < DAT_1028_23be) ||
|
|
((DAT_1028_23b6 <= DAT_1028_23be && (DAT_1028_23b4 < DAT_1028_23bc)))) {
|
|
DAT_1028_23a6 = DAT_1028_23b6 - (uint)(DAT_1028_23b4 < 5000);
|
|
DAT_1028_23ae = DAT_1028_23be + (uint)(0xec77 < DAT_1028_23bc);
|
|
uVar4 = DAT_1028_23b4;
|
|
uVar2 = DAT_1028_23bc;
|
|
}
|
|
else {
|
|
DAT_1028_23a6 = DAT_1028_23be - (uint)(DAT_1028_23bc < 5000);
|
|
DAT_1028_23ae = DAT_1028_23b6 + (uint)(0xec77 < DAT_1028_23b4);
|
|
uVar4 = DAT_1028_23bc;
|
|
uVar2 = DAT_1028_23b4;
|
|
}
|
|
DAT_1028_23ac = uVar2 + 5000;
|
|
DAT_1028_23a4 = uVar4 + 0xec78;
|
|
uVar1 = *(undefined4 *)(*(int *)(param_1 + 6) + 6);
|
|
if (*(int *)((int)uVar1 + 0xbd6) == 0) {
|
|
FUN_1008_08bb(0x35,0x2d,0x174,0xaf,uVar3);
|
|
}
|
|
else {
|
|
FUN_1008_0837(0x35,0x2d,0x174,0xaf,uVar3);
|
|
}
|
|
uVar6 = 0x1008;
|
|
FUN_1008_093f(0x35,0x2d,0x174,0xaf,uVar3);
|
|
}
|
|
RELEASEDC(uVar6,uVar3);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:99f0 FUN_1000_99f0 ===== */
|
|
|
|
void __stdcall16far FUN_1000_99f0(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 unaff_SS;
|
|
|
|
uVar2 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar1 = (int)*(undefined4 *)(param_1 + 6);
|
|
if ((*(char *)(iVar1 + 0xbda) == '\0') || (*(int *)(iVar1 + 0xbd4) != 0)) {
|
|
uVar2 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar1 = (int)*(undefined4 *)(param_1 + 6);
|
|
if ((*(char *)(iVar1 + 0xbda) == '\0') && (*(int *)(iVar1 + 0xbd4) != 0)) {
|
|
*(int *)(iVar1 + 0xbd4) = *(int *)(iVar1 + 0xbd4) + -1;
|
|
FUN_1000_7ed9(param_1,1,0,1,0);
|
|
FUN_1000_8b0d(&stack0xfffe,1,0,1);
|
|
}
|
|
}
|
|
else {
|
|
*(int *)(iVar1 + 0xbd4) = *(int *)(iVar1 + 0xbd4) + 1;
|
|
FUN_1000_7ed9(param_1,0xffff,0xffff,1,0);
|
|
FUN_1000_8b0d(&stack0xfffe,0xffff,0xffff,1);
|
|
}
|
|
uVar2 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar1 = (int)*(undefined4 *)(param_1 + 6);
|
|
if ((*(char *)(iVar1 + 0xbdb) == '\0') || (*(int *)(iVar1 + 0xbd6) != 0)) {
|
|
uVar2 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar1 = (int)*(undefined4 *)(param_1 + 6);
|
|
if ((*(char *)(iVar1 + 0xbdb) == '\0') && (*(int *)(iVar1 + 0xbd6) != 0)) {
|
|
*(int *)(iVar1 + 0xbd6) = *(int *)(iVar1 + 0xbd6) + -1;
|
|
FUN_1000_7ed9(param_1,1,0,2,0);
|
|
FUN_1000_8b0d(&stack0xfffe,1,0,2);
|
|
}
|
|
}
|
|
else {
|
|
*(int *)(iVar1 + 0xbd6) = *(int *)(iVar1 + 0xbd6) + 1;
|
|
FUN_1000_7ed9(param_1,0xffff,0xffff,2,0);
|
|
FUN_1000_8b0d(&stack0xfffe,0xffff,0xffff,2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:9ae0 FUN_1000_9ae0 ===== */
|
|
|
|
undefined2 __stdcall16far
|
|
FUN_1000_9ae0(int param_1,uint param_2,int param_3,uint param_4,int param_5,uint param_6,int param_7
|
|
,uint param_8,int param_9)
|
|
|
|
{
|
|
uint uVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 unaff_SS;
|
|
undefined1 local_3;
|
|
|
|
uVar3 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar1 = *(uint *)(iVar2 + 0xbba);
|
|
iVar2 = *(int *)(iVar2 + 0xbbc);
|
|
if ((param_9 < iVar2) || ((param_9 <= iVar2 && (param_8 <= uVar1)))) {
|
|
uVar3 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar1 = *(uint *)(iVar2 + 0xbbe);
|
|
iVar2 = *(int *)(iVar2 + 0xbc0);
|
|
if ((param_7 < iVar2) || ((param_7 <= iVar2 && (param_6 <= uVar1)))) {
|
|
uVar3 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar1 = *(uint *)(iVar2 + 0xbba);
|
|
iVar2 = *(int *)(iVar2 + 0xbbc);
|
|
if ((iVar2 < param_5) || ((iVar2 <= param_5 && (uVar1 <= param_4)))) {
|
|
uVar3 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar1 = *(uint *)(iVar2 + 0xbbe);
|
|
iVar2 = *(int *)(iVar2 + 0xbc0);
|
|
if ((iVar2 < param_3) || ((iVar2 <= param_3 && (uVar1 <= param_2)))) {
|
|
local_3 = 1;
|
|
goto LAB_1000_9b62;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
local_3 = 0;
|
|
LAB_1000_9b62:
|
|
return CONCAT11((char)(uVar1 >> 8),local_3);
|
|
}
|
|
|
|
|
|
/* ===== 1000:9b69 FUN_1000_9b69 ===== */
|
|
|
|
undefined2 __stdcall16far
|
|
FUN_1000_9b69(undefined2 param_1,uint param_2,int param_3,uint param_4,int param_5,uint param_6,
|
|
int param_7,uint param_8,int param_9)
|
|
|
|
{
|
|
uint uVar1;
|
|
undefined1 local_3;
|
|
|
|
uVar1 = DAT_1028_07db;
|
|
if ((param_9 < DAT_1028_07dd) || ((param_9 <= DAT_1028_07dd && (param_8 <= DAT_1028_07db)))) {
|
|
if ((param_7 < DAT_1028_07e1) ||
|
|
((uVar1 = DAT_1028_07df, param_7 <= DAT_1028_07e1 &&
|
|
(uVar1 = DAT_1028_07df, param_6 <= DAT_1028_07df)))) {
|
|
if ((DAT_1028_07dd < param_5) ||
|
|
((uVar1 = DAT_1028_07db, DAT_1028_07dd <= param_5 && (DAT_1028_07db <= param_4)))) {
|
|
uVar1 = DAT_1028_07df;
|
|
if ((DAT_1028_07e1 < param_3) || ((DAT_1028_07e1 <= param_3 && (DAT_1028_07df <= param_2))))
|
|
{
|
|
local_3 = 1;
|
|
goto LAB_1000_9bc3;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
local_3 = 0;
|
|
LAB_1000_9bc3:
|
|
return CONCAT11((char)(uVar1 >> 8),local_3);
|
|
}
|
|
|
|
|
|
/* ===== 1000:9bca FUN_1000_9bca ===== */
|
|
|
|
void __stdcall16far FUN_1000_9bca(int param_1)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
uint uVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
|
|
uVar1 = *(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4);
|
|
GETCLIENTRECT(unaff_CS,param_1 + -0x1a,unaff_SS);
|
|
uVar1 = GETDC(0x1228,*(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4),uVar1);
|
|
*(undefined2 *)(param_1 + -0xc) = uVar1;
|
|
uVar1 = CREATECOMPATIBLEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
*(undefined2 *)(param_1 + -0xe) = uVar1;
|
|
uVar1 = CREATECOMPATIBLEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
*(undefined2 *)(param_1 + -0x10) = uVar1;
|
|
uVar1 = CREATECOMPATIBLEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
*(undefined2 *)(param_1 + -0x12) = uVar1;
|
|
uVar1 = *(undefined2 *)(param_1 + -0xc);
|
|
uVar2 = CREATECOMPATIBLEBITMAP(0x1228,100,100);
|
|
*(undefined2 *)(param_1 + -8) = uVar2;
|
|
iVar4 = DAT_1028_07d5 + (uint)(0xfe0b < DAT_1028_07d3);
|
|
uVar3 = FUN_1020_08e6(uVar1);
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(int *)(iVar5 + 0xba2) = uVar3 - 8;
|
|
*(int *)(iVar5 + 0xba4) = iVar4 - (uint)(uVar3 < 8);
|
|
iVar4 = DAT_1028_07d9 + (uint)(0xfe0b < DAT_1028_07d7);
|
|
uVar3 = FUN_1020_08e6();
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(int *)(iVar5 + 0xba6) = uVar3 - 8;
|
|
*(int *)(iVar5 + 0xba8) = iVar4 - (uint)(uVar3 < 8);
|
|
*(int *)(param_1 + -0x20) = *(int *)(iVar5 + 0xba2) + -1;
|
|
*(undefined2 *)(param_1 + -0x1c) = 1;
|
|
*(int *)(param_1 + -0x22) = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0xba6) + -1;
|
|
*(undefined2 *)(param_1 + -0x1e) = 1;
|
|
*(undefined2 *)(param_1 + -0x28) = 0x13;
|
|
*(undefined2 *)(param_1 + -0x2a) = 0x13;
|
|
uVar1 = SELECTOBJECT(0x1020,DAT_1028_085b);
|
|
*(undefined2 *)(param_1 + -2) = uVar1;
|
|
uVar1 = SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -8));
|
|
*(undefined2 *)(param_1 + -4) = uVar1;
|
|
BITBLT(0x1228,0x20,0xcc,*(undefined2 *)(param_1 + -0x22),*(undefined2 *)(param_1 + -0x20),
|
|
*(undefined2 *)(param_1 + -0xe),*(undefined2 *)(param_1 + -0x2a),
|
|
*(undefined2 *)(param_1 + -0x28),0,0);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 0x54));
|
|
BITBLT(0x1228,0xc6,0x88,0,0,*(undefined2 *)(param_1 + -0xe),0x13,0x13,
|
|
*(undefined2 *)(param_1 + -0x1e),*(undefined2 *)(param_1 + -0x1c));
|
|
SELECTOBJECT(0x1228,*(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 0x52));
|
|
BITBLT(0x1228,0x86,0xee,0,0,*(undefined2 *)(param_1 + -0xe),0x13,0x13,
|
|
*(undefined2 *)(param_1 + -0x1e),*(undefined2 *)(param_1 + -0x1c));
|
|
if (0x1ba < *(int *)(param_1 + -0x22) + *(int *)(param_1 + -0x2a)) {
|
|
if (*(int *)(param_1 + -0x22) < 0x1bb) {
|
|
*(int *)(param_1 + -0x2a) = 0x1bb - *(int *)(param_1 + -0x22);
|
|
}
|
|
else {
|
|
*(undefined2 *)(param_1 + -0x2a) = 0;
|
|
}
|
|
}
|
|
uVar1 = *(undefined2 *)(param_1 + -0xc);
|
|
BITBLT(0x1228,0x20,0xcc,0,0,*(undefined2 *)(param_1 + -0x10),*(undefined2 *)(param_1 + -0x2a),
|
|
*(undefined2 *)(param_1 + -0x28),*(undefined2 *)(param_1 + -0x22),
|
|
*(undefined2 *)(param_1 + -0x20));
|
|
uVar2 = *(undefined2 *)(param_1 + -0xe);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -2));
|
|
uVar7 = *(undefined2 *)(param_1 + -0x10);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -4));
|
|
uVar6 = *(undefined2 *)(param_1 + -0x12);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -6));
|
|
DELETEOBJECT(0x1228,*(undefined2 *)(param_1 + -8),uVar6,uVar7,uVar2,uVar1);
|
|
DELETEDC(0x1228,*(undefined2 *)(param_1 + -0xe));
|
|
DELETEDC(0x1228,*(undefined2 *)(param_1 + -0x10));
|
|
DELETEDC(0x1228,*(undefined2 *)(param_1 + -0x12));
|
|
RELEASEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:9e85 FUN_1000_9e85 ===== */
|
|
|
|
void __stdcall16far FUN_1000_9e85(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 unaff_SS;
|
|
|
|
if ((((DAT_1028_3371 != 0) && (DAT_1028_33c4 != 0)) && (DAT_1028_3417 != 0)) &&
|
|
((DAT_1028_346a != 0 && (DAT_1028_34bd != 0)))) {
|
|
DAT_1028_0851 = 0;
|
|
DAT_1028_0853 = 0;
|
|
DAT_1028_07c8 = 1;
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0xbdd) = 0;
|
|
}
|
|
DAT_1028_07c6 = 0;
|
|
uVar2 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar1 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar1 + 0x5e) = 0;
|
|
DAT_1028_07d3 = 0xf588;
|
|
DAT_1028_07d5 = 4;
|
|
DAT_1028_07d7 = 0x4d48;
|
|
DAT_1028_07d9 = 6;
|
|
*(undefined2 *)(iVar1 + 0xbba) = 0xf588;
|
|
*(undefined2 *)(iVar1 + 0xbbc) = 4;
|
|
*(undefined2 *)(iVar1 + 0xbbe) = 0x4d48;
|
|
*(undefined2 *)(iVar1 + 0xbc0) = 6;
|
|
*(undefined2 *)(iVar1 + 0xbc2) = 0xf588;
|
|
*(undefined2 *)(iVar1 + 0xbc4) = 4;
|
|
*(undefined2 *)(iVar1 + 0xbc6) = 0x4d48;
|
|
*(undefined2 *)(iVar1 + 0xbc8) = 6;
|
|
*(undefined2 *)(iVar1 + 0xbae) = 0;
|
|
*(undefined2 *)(iVar1 + 0xbb0) = 0;
|
|
*(undefined2 *)(iVar1 + 0xbaa) = 0;
|
|
*(undefined2 *)(iVar1 + 0xbac) = 0;
|
|
*(undefined2 *)(iVar1 + 0xbce) = 0;
|
|
*(undefined2 *)(iVar1 + 0xbd0) = 0;
|
|
*(undefined2 *)(iVar1 + 0xbd2) = 0;
|
|
*(undefined2 *)(iVar1 + 0xbca) = 0;
|
|
*(undefined2 *)(iVar1 + 0xbcc) = 0;
|
|
*(undefined1 *)(iVar1 + 0xbdd) = 0;
|
|
FUN_1000_9bca(param_1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:9f73 FUN_1000_9f73 ===== */
|
|
|
|
void __stdcall16far FUN_1000_9f73(int param_1)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
uint uVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
|
|
uVar1 = *(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4);
|
|
GETCLIENTRECT(unaff_CS,param_1 + -0x1a,unaff_SS);
|
|
uVar1 = GETDC(0x1228,*(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4),uVar1);
|
|
*(undefined2 *)(param_1 + -0xc) = uVar1;
|
|
uVar1 = CREATECOMPATIBLEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
*(undefined2 *)(param_1 + -0xe) = uVar1;
|
|
uVar1 = CREATECOMPATIBLEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
*(undefined2 *)(param_1 + -0x10) = uVar1;
|
|
uVar1 = CREATECOMPATIBLEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
*(undefined2 *)(param_1 + -0x12) = uVar1;
|
|
uVar1 = *(undefined2 *)(param_1 + -0xc);
|
|
uVar2 = CREATECOMPATIBLEBITMAP(0x1228,100,100);
|
|
*(undefined2 *)(param_1 + -8) = uVar2;
|
|
iVar4 = DAT_1028_07d5 + (uint)(0xfe0b < DAT_1028_07d3);
|
|
uVar3 = FUN_1020_08e6(uVar1);
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(int *)(iVar5 + 0xba2) = uVar3 - 8;
|
|
*(int *)(iVar5 + 0xba4) = iVar4 - (uint)(uVar3 < 8);
|
|
iVar4 = DAT_1028_07d9 + (uint)(0xfe0b < DAT_1028_07d7);
|
|
uVar3 = FUN_1020_08e6();
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(int *)(iVar5 + 0xba6) = uVar3 - 8;
|
|
*(int *)(iVar5 + 0xba8) = iVar4 - (uint)(uVar3 < 8);
|
|
iVar4 = (DAT_1028_07d5 - *(int *)(iVar5 + 0xbc4)) -
|
|
(uint)(DAT_1028_07d3 < *(uint *)(iVar5 + 0xbc2));
|
|
uVar1 = FUN_1020_08e6();
|
|
uVar2 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar5 + 0xbb2) = uVar1;
|
|
*(int *)(iVar5 + 0xbb4) = iVar4;
|
|
iVar4 = (DAT_1028_07d9 - *(int *)(iVar5 + 0xbc8)) -
|
|
(uint)(DAT_1028_07d7 < *(uint *)(iVar5 + 0xbc6));
|
|
uVar1 = FUN_1020_08e6();
|
|
uVar2 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar5 + 0xbb6) = uVar1;
|
|
*(int *)(iVar5 + 3000) = iVar4;
|
|
if ((*(int *)(iVar5 + 0xbb4) < 1) &&
|
|
((*(int *)(iVar5 + 0xbb4) < 0 || (*(int *)(iVar5 + 0xbb2) == 0)))) {
|
|
*(int *)(param_1 + -0x20) = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0xba2) + -1;
|
|
*(undefined2 *)(param_1 + -0x1c) = 1;
|
|
}
|
|
else {
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar4 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(int *)(param_1 + -0x20) = (*(int *)(iVar4 + 0xba2) - *(int *)(iVar4 + 0xbb2)) + -1;
|
|
*(int *)(param_1 + -0x1c) = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0xbb2) + 1;
|
|
}
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
iVar4 = *(int *)(iVar5 + 3000);
|
|
if ((iVar4 < 1) && ((iVar4 < 0 || (*(int *)(iVar5 + 0xbb6) == 0)))) {
|
|
*(int *)(param_1 + -0x22) = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0xba6) + -1;
|
|
*(undefined2 *)(param_1 + -0x1e) = 1;
|
|
}
|
|
else {
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar4 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(int *)(param_1 + -0x22) = (*(int *)(iVar4 + 0xba6) - *(int *)(iVar4 + 0xbb6)) + -1;
|
|
*(int *)(param_1 + -0x1e) = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0xbb6) + 1;
|
|
}
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
iVar4 = *(int *)(iVar5 + 0xbb2);
|
|
if (*(int *)(iVar5 + 0xbb4) < 0) {
|
|
iVar4 = -iVar4;
|
|
}
|
|
*(int *)(param_1 + -0x28) = iVar4 + 0x13;
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
iVar4 = *(int *)(iVar5 + 0xbb6);
|
|
if (*(int *)(iVar5 + 3000) < 0) {
|
|
iVar4 = -iVar4;
|
|
}
|
|
*(int *)(param_1 + -0x2a) = iVar4 + 0x13;
|
|
uVar1 = SELECTOBJECT(0x1020,DAT_1028_085b);
|
|
*(undefined2 *)(param_1 + -2) = uVar1;
|
|
uVar1 = SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -8));
|
|
*(undefined2 *)(param_1 + -4) = uVar1;
|
|
BITBLT(0x1228,0x20,0xcc,*(undefined2 *)(param_1 + -0x22),*(undefined2 *)(param_1 + -0x20),
|
|
*(undefined2 *)(param_1 + -0xe),*(undefined2 *)(param_1 + -0x2a),
|
|
*(undefined2 *)(param_1 + -0x28),0,0);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 0x54));
|
|
BITBLT(0x1228,0xc6,0x88,0,0,*(undefined2 *)(param_1 + -0xe),0x13,0x13,
|
|
*(undefined2 *)(param_1 + -0x1e),*(undefined2 *)(param_1 + -0x1c));
|
|
SELECTOBJECT(0x1228,*(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 0x52));
|
|
BITBLT(0x1228,0x86,0xee,0,0,*(undefined2 *)(param_1 + -0xe),0x13,0x13,
|
|
*(undefined2 *)(param_1 + -0x1e),*(undefined2 *)(param_1 + -0x1c));
|
|
if (0x1ba < *(int *)(param_1 + -0x22) + *(int *)(param_1 + -0x2a)) {
|
|
if (*(int *)(param_1 + -0x22) < 0x1bb) {
|
|
*(int *)(param_1 + -0x2a) = 0x1bb - *(int *)(param_1 + -0x22);
|
|
}
|
|
else {
|
|
*(undefined2 *)(param_1 + -0x2a) = 0;
|
|
}
|
|
}
|
|
uVar1 = *(undefined2 *)(param_1 + -0xc);
|
|
BITBLT(0x1228,0x20,0xcc,0,0,*(undefined2 *)(param_1 + -0x10),*(undefined2 *)(param_1 + -0x2a),
|
|
*(undefined2 *)(param_1 + -0x28),*(undefined2 *)(param_1 + -0x22),
|
|
*(undefined2 *)(param_1 + -0x20));
|
|
uVar2 = *(undefined2 *)(param_1 + -0xe);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -2));
|
|
uVar7 = *(undefined2 *)(param_1 + -0x10);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -4));
|
|
uVar6 = *(undefined2 *)(param_1 + -0x12);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -6));
|
|
DELETEOBJECT(0x1228,*(undefined2 *)(param_1 + -8),uVar6,uVar7,uVar2,uVar1);
|
|
DELETEDC(0x1228,*(undefined2 *)(param_1 + -0xe));
|
|
DELETEDC(0x1228,*(undefined2 *)(param_1 + -0x10));
|
|
DELETEDC(0x1228,*(undefined2 *)(param_1 + -0x12));
|
|
RELEASEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:a38e FUN_1000_a38e ===== */
|
|
|
|
void __stdcall16far FUN_1000_a38e(int param_1,char param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
uint uVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
undefined2 uVar6;
|
|
|
|
uVar1 = *(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4);
|
|
GETCLIENTRECT(unaff_CS,param_1 + -0x1a,unaff_SS);
|
|
uVar1 = GETDC(0x1228,*(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4),uVar1);
|
|
*(undefined2 *)(param_1 + -0xc) = uVar1;
|
|
uVar1 = CREATECOMPATIBLEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
*(undefined2 *)(param_1 + -0xe) = uVar1;
|
|
uVar1 = CREATECOMPATIBLEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
*(undefined2 *)(param_1 + -0x10) = uVar1;
|
|
uVar1 = CREATECOMPATIBLEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
*(undefined2 *)(param_1 + -0x12) = uVar1;
|
|
uVar1 = *(undefined2 *)(param_1 + -0xc);
|
|
uVar2 = CREATECOMPATIBLEBITMAP(0x1228,100,100);
|
|
*(undefined2 *)(param_1 + -8) = uVar2;
|
|
uVar2 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar4 = (int)*(undefined4 *)(param_1 + 6);
|
|
iVar4 = *(int *)(iVar4 + 0xbc4) + (uint)(0xfe0b < *(uint *)(iVar4 + 0xbc2));
|
|
uVar3 = FUN_1020_08e6(uVar1);
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(int *)(iVar5 + 0xba2) = uVar3 - 8;
|
|
*(int *)(iVar5 + 0xba4) = iVar4 - (uint)(uVar3 < 8);
|
|
iVar4 = *(int *)(iVar5 + 0xbc8) + (uint)(0xfe0b < *(uint *)(iVar5 + 0xbc6));
|
|
uVar3 = FUN_1020_08e6();
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(int *)(iVar5 + 0xba6) = uVar3 - 8;
|
|
*(int *)(iVar5 + 0xba8) = iVar4 - (uint)(uVar3 < 8);
|
|
*(int *)(param_1 + -0x20) = *(int *)(iVar5 + 0xba2) + -1;
|
|
*(undefined2 *)(param_1 + -0x1c) = 1;
|
|
*(int *)(param_1 + -0x22) = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0xba6) + -1;
|
|
*(undefined2 *)(param_1 + -0x1e) = 1;
|
|
*(undefined2 *)(param_1 + -0x28) = 0x13;
|
|
*(undefined2 *)(param_1 + -0x2a) = 0x13;
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar4 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar4 + 0xbaa) = 0;
|
|
*(undefined2 *)(iVar4 + 0xbac) = 0;
|
|
*(undefined2 *)(iVar4 + 0xbae) = 0;
|
|
*(undefined2 *)(iVar4 + 0xbb0) = 0;
|
|
uVar1 = SELECTOBJECT(0x1020,DAT_1028_085b);
|
|
*(undefined2 *)(param_1 + -2) = uVar1;
|
|
uVar1 = SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -8));
|
|
*(undefined2 *)(param_1 + -4) = uVar1;
|
|
BITBLT(0x1228,0x20,0xcc,*(undefined2 *)(param_1 + -0x22),*(undefined2 *)(param_1 + -0x20),
|
|
*(undefined2 *)(param_1 + -0xe),*(undefined2 *)(param_1 + -0x2a),
|
|
*(undefined2 *)(param_1 + -0x28),0,0);
|
|
if (0x1ba < *(int *)(param_1 + -0x22) + *(int *)(param_1 + -0x2a)) {
|
|
if (*(int *)(param_1 + -0x22) < 0x1bb) {
|
|
*(int *)(param_1 + -0x2a) = 0x1bb - *(int *)(param_1 + -0x22);
|
|
}
|
|
else {
|
|
*(undefined2 *)(param_1 + -0x2a) = 0;
|
|
}
|
|
}
|
|
if (param_2 == '\0') {
|
|
BITBLT(0x1228,0x20,0xcc,0,0,*(undefined2 *)(param_1 + -0x10),*(undefined2 *)(param_1 + -0x2a),
|
|
*(undefined2 *)(param_1 + -0x28),*(undefined2 *)(param_1 + -0x22),
|
|
*(undefined2 *)(param_1 + -0x20));
|
|
}
|
|
uVar1 = *(undefined2 *)(param_1 + -0xe);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -2));
|
|
uVar2 = *(undefined2 *)(param_1 + -0x10);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -4));
|
|
uVar6 = *(undefined2 *)(param_1 + -0x12);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -6));
|
|
DELETEOBJECT(0x1228,*(undefined2 *)(param_1 + -8),uVar6,uVar2,uVar1);
|
|
DELETEDC(0x1228,*(undefined2 *)(param_1 + -0xe));
|
|
DELETEDC(0x1228,*(undefined2 *)(param_1 + -0x10));
|
|
DELETEDC(0x1228,*(undefined2 *)(param_1 + -0x12));
|
|
RELEASEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:a604 FUN_1000_a604 ===== */
|
|
|
|
void __stdcall16far FUN_1000_a604(int param_1)
|
|
|
|
{
|
|
uint uVar1;
|
|
undefined2 uVar2;
|
|
int iVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
int iVar6;
|
|
int iVar7;
|
|
undefined2 unaff_SS;
|
|
bool bVar8;
|
|
undefined2 uVar9;
|
|
uint local_16;
|
|
int local_14;
|
|
|
|
uVar9 = *(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4);
|
|
uVar2 = GETDC();
|
|
local_16 = 1;
|
|
local_14 = 0;
|
|
while( true ) {
|
|
iVar3 = FUN_1020_08a9(uVar9,uVar2);
|
|
iVar4 = iVar3 + 0x187;
|
|
iVar3 = iVar3 + 0x18b;
|
|
iVar5 = (DAT_1028_07d1 - 1) * 0x2c;
|
|
iVar6 = iVar5 + 0x12a;
|
|
iVar5 = iVar5 + 0x12e;
|
|
uVar1 = *(uint *)((uint)DAT_1028_07d1 * 2 + 0x81f);
|
|
iVar7 = (int)uVar1 >> 0xf;
|
|
if ((local_14 < iVar7) || ((local_14 <= iVar7 && (local_16 <= uVar1)))) {
|
|
FUN_1008_0837((iVar5 - iVar6) + 1,(iVar3 - iVar4) + 1,iVar6,iVar4,uVar2);
|
|
}
|
|
else {
|
|
FUN_1008_08bb((iVar5 - iVar6) + 1,(iVar3 - iVar4) + 1,iVar6,iVar4,uVar2);
|
|
}
|
|
FUN_1008_093f((iVar5 - iVar6) + 1,(iVar3 - iVar4) + 1,iVar6,iVar4,uVar2);
|
|
if ((local_14 == 0) && (local_16 == 6)) break;
|
|
bVar8 = 0xfffe < local_16;
|
|
local_16 = local_16 + 1;
|
|
local_14 = local_14 + (uint)bVar8;
|
|
}
|
|
RELEASEDC(0x1008,uVar2);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:a70e FUN_1000_a70e ===== */
|
|
|
|
void __stdcall16far FUN_1000_a70e(int param_1)
|
|
|
|
{
|
|
undefined2 unaff_SS;
|
|
|
|
DAT_1028_07d0 = 0;
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0xbde) = 1;
|
|
DAT_1028_07c9 = 1;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:a72c FUN_1000_a72c ===== */
|
|
|
|
void __stdcall16far FUN_1000_a72c(int param_1)
|
|
|
|
{
|
|
undefined2 unaff_SS;
|
|
byte local_4;
|
|
byte local_3;
|
|
|
|
local_3 = 1;
|
|
while( true ) {
|
|
FUN_1000_7e12(param_1,local_3);
|
|
for (local_4 = 1;
|
|
*(undefined2 *)
|
|
((int)*(undefined4 *)(param_1 + 6) + (uint)local_4 * 0x15e + (uint)local_3 * 2 + 0x36c) =
|
|
*(undefined2 *)((uint)local_3 * 0x53 + 0x99e), local_4 != 4; local_4 = local_4 + 1) {
|
|
}
|
|
if (local_3 == 0xaf) break;
|
|
local_3 = local_3 + 1;
|
|
}
|
|
for (local_3 = 1; FUN_1000_b3f3(param_1,local_3 + 1000), local_3 != 5; local_3 = local_3 + 1) {
|
|
}
|
|
FUN_1000_bda2(param_1,0,0);
|
|
DAT_1028_0874 = 0;
|
|
local_3 = 1;
|
|
while( true ) {
|
|
if (local_3 <= DAT_1028_07d0) {
|
|
DAT_1028_07d1 = local_3;
|
|
*(undefined2 *)((uint)local_3 * 4 + 0x97e) = 0;
|
|
*(undefined2 *)((uint)local_3 * 4 + 0x980) = 0;
|
|
*(undefined2 *)((uint)local_3 * 4 + 0x98e) = 0;
|
|
*(undefined2 *)((uint)local_3 * 4 + 0x990) = 0;
|
|
*(undefined1 *)(local_3 + 0x9a1) = 1;
|
|
*(undefined2 *)((uint)local_3 * 2 + 0x9a4) = 0;
|
|
FUN_1000_bc36(param_1,0,0);
|
|
*(undefined1 *)(local_3 + 0x816) = 1;
|
|
if (local_3 < 2) {
|
|
*(undefined2 *)((uint)local_3 * 2 + 0x81f) = 2;
|
|
}
|
|
else {
|
|
*(undefined2 *)((uint)local_3 * 2 + 0x81f) = 3;
|
|
}
|
|
FUN_1000_a604(param_1);
|
|
*(undefined2 *)((uint)local_3 * 4 + 0x835) = 1;
|
|
*(undefined2 *)((uint)local_3 * 4 + 0x837) = 0;
|
|
*(undefined1 *)(local_3 + 0x81a) = 1;
|
|
for (local_4 = 1;
|
|
*(undefined1 *)
|
|
((int)*(undefined4 *)(param_1 + 6) + (uint)local_3 * 0x14 + (uint)local_4 + 0x467) = 0,
|
|
local_4 != 0x14; local_4 = local_4 + 1) {
|
|
}
|
|
}
|
|
if (local_3 == 4) break;
|
|
local_3 = local_3 + 1;
|
|
}
|
|
DAT_1028_07d1 = 1;
|
|
DAT_1028_07d2 = 0;
|
|
for (local_4 = '\x01'; FUN_1000_7e92(param_1,local_4), local_4 != '\x14';
|
|
local_4 = local_4 + '\x01') {
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:a8ea FUN_1000_a8ea ===== */
|
|
|
|
void __stdcall16far FUN_1000_a8ea(void)
|
|
|
|
{
|
|
uint uVar1;
|
|
int iVar2;
|
|
undefined2 unaff_SS;
|
|
uint auStack_32 [22];
|
|
int local_6;
|
|
int local_4;
|
|
|
|
local_6 = _LCREAT();
|
|
if (local_6 != -1) {
|
|
FUN_1020_16c9();
|
|
local_4 = 1;
|
|
while( true ) {
|
|
iVar2 = local_4;
|
|
uVar1 = *(uint *)(local_4 * 4 + 0x87c);
|
|
auStack_32[local_4 * 2] =
|
|
*(uint *)(local_4 * 4 + 0x87a) ^ s_IWIKTDK_Highscores_1028_0010._0_2_;
|
|
auStack_32[iVar2 * 2 + 1] = uVar1 ^ s_IWIKTDK_Highscores_1028_0010._2_2_;
|
|
FUN_1008_2ee5();
|
|
if (local_4 == 10) break;
|
|
local_4 = local_4 + 1;
|
|
}
|
|
_LWRITE();
|
|
_LWRITE();
|
|
_LWRITE();
|
|
_LCLOSE();
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:a99c FUN_1000_a99c ===== */
|
|
|
|
void __stdcall16far FUN_1000_a99c(void)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
uint uVar2;
|
|
undefined2 uVar3;
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar4;
|
|
undefined2 unaff_SS;
|
|
undefined1 uVar5;
|
|
undefined1 *puVar6;
|
|
undefined1 *puVar7;
|
|
int iVar8;
|
|
undefined2 uVar9;
|
|
undefined1 local_23f [256];
|
|
undefined1 local_13f [252];
|
|
uint auStack_43 [22];
|
|
undefined1 local_17 [16];
|
|
char local_7;
|
|
int local_6;
|
|
int local_4;
|
|
|
|
local_7 = '\0';
|
|
uVar9 = 0x1028;
|
|
iVar8 = 800;
|
|
local_6 = _LOPEN(unaff_CS,0,800);
|
|
if (local_6 == -1) {
|
|
iVar8 = 0x1028;
|
|
local_6 = _LOPEN(0x1228,0x40,800);
|
|
}
|
|
uVar5 = local_6 == -1;
|
|
if (!(bool)uVar5) {
|
|
_LREAD(0x1228,0x10,local_17,unaff_SS);
|
|
puVar7 = local_13f;
|
|
uVar3 = unaff_SS;
|
|
FUN_1020_0b00(0x10,local_17,unaff_SS);
|
|
puVar6 = local_23f;
|
|
uVar1 = unaff_SS;
|
|
FUN_1020_0b00(0x10,0x14,0x1028);
|
|
uVar4 = 0x1020;
|
|
FUN_1020_0ac3(puVar6,uVar1,puVar7,uVar3);
|
|
if ((bool)uVar5) {
|
|
local_7 = '\x01';
|
|
_LREAD(0x1020,0x28,auStack_43 + 2,unaff_SS);
|
|
uVar4 = 0x1228;
|
|
_LREAD(0x1228,0xdc,0x8a6,0x1028);
|
|
local_4 = 1;
|
|
while( true ) {
|
|
uVar2 = auStack_43[local_4 * 2 + 1] ^ s_IWIKTDK_Highscores_1028_0010._2_2_;
|
|
*(uint *)(local_4 * 4 + 0x87a) =
|
|
auStack_43[local_4 * 2] ^ s_IWIKTDK_Highscores_1028_0010._0_2_;
|
|
*(uint *)(local_4 * 4 + 0x87c) = uVar2;
|
|
if (local_4 == 10) break;
|
|
local_4 = local_4 + 1;
|
|
}
|
|
}
|
|
iVar8 = local_6;
|
|
_LCLOSE(uVar4,local_6);
|
|
}
|
|
if (local_7 == '\0') {
|
|
local_4 = 1;
|
|
while( true ) {
|
|
uVar3 = 0;
|
|
uVar1 = FUN_1020_08a9(iVar8,uVar9);
|
|
*(undefined2 *)(local_4 * 4 + 0x87a) = uVar1;
|
|
*(undefined2 *)(local_4 * 4 + 0x87c) = uVar3;
|
|
if (local_4 == 10) break;
|
|
local_4 = local_4 + 1;
|
|
}
|
|
FUN_1008_2ee5(0x32d,0x1028,0x8a6,0x1028);
|
|
FUN_1008_2ee5(0x32d,0x1028,0x8bc,0x1028);
|
|
FUN_1008_2ee5(0x32d,0x1028,0x8d2,0x1028);
|
|
FUN_1008_2ee5(0x32d,0x1028,0x8e8,0x1028);
|
|
FUN_1008_2ee5(0x32d,0x1028,0x8fe,0x1028);
|
|
FUN_1008_2ee5(0x32d,0x1028,0x914,0x1028);
|
|
FUN_1008_2ee5(0x32d,0x1028,0x92a,0x1028);
|
|
FUN_1008_2ee5(0x32d,0x1028,0x940,0x1028);
|
|
FUN_1008_2ee5(0x32d,0x1028,0x956,0x1028);
|
|
FUN_1008_2ee5(0x32d,0x1028,0x96c,0x1028);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:ab3c FUN_1000_ab3c ===== */
|
|
|
|
void __stdcall16far FUN_1000_ab3c(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 unaff_SS;
|
|
undefined4 uVar3;
|
|
|
|
if (DAT_1028_07d2 != 0) {
|
|
FUN_1008_2ee5(0x336,0x1028,(uint)DAT_1028_07d2 * 0x16 + 0x890,0x1028);
|
|
uVar3 = FUN_1008_1607(0,0,0x1ce,0x16,(uint)DAT_1028_07d2 * 0x16 + 0x890,0x1028,0x373,0x1028,
|
|
0x349,0x1028,(int)*(undefined4 *)(param_1 + 6),
|
|
(int)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10));
|
|
(*(code *)*(undefined2 *)(*DAT_1028_064e + 0x38))
|
|
(0x1008,(int *)DAT_1028_064e,(int)((ulong)DAT_1028_064e >> 0x10),uVar3);
|
|
}
|
|
uVar3 = FUN_1000_5aea(0,0,0x10e,0x38b,0x1028,(int)*(undefined4 *)(param_1 + 6),
|
|
(int)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10));
|
|
uVar3 = (*(code *)*(undefined2 *)(*DAT_1028_064e + 0x34))
|
|
(0x1000,(int *)DAT_1028_064e,(int)((ulong)DAT_1028_064e >> 0x10),uVar3);
|
|
uVar2 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar1 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar1 + 0x41) = (int)uVar3;
|
|
*(undefined2 *)(iVar1 + 0x43) = (int)((ulong)uVar3 >> 0x10);
|
|
FUN_1018_0e9e((int)*(undefined4 *)(iVar1 + 0x41),
|
|
(int)((ulong)*(undefined4 *)(iVar1 + 0x41) >> 0x10),1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:abe5 FUN_1000_abe5 ===== */
|
|
|
|
void __stdcall16far FUN_1000_abe5(undefined2 param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
int iVar3;
|
|
uint local_8;
|
|
int local_6;
|
|
|
|
local_6 = 1;
|
|
while( true ) {
|
|
iVar3 = *(int *)((uint)DAT_1028_07d1 * 4 + 0x980);
|
|
iVar1 = *(int *)(local_6 * 4 + 0x87c);
|
|
if ((iVar1 < iVar3) ||
|
|
((iVar1 <= iVar3 &&
|
|
(*(uint *)(local_6 * 4 + 0x87a) < *(uint *)((uint)DAT_1028_07d1 * 4 + 0x97e))))) break;
|
|
if (local_6 == 10) {
|
|
return;
|
|
}
|
|
local_6 = local_6 + 1;
|
|
}
|
|
if (local_6 + 1U < 0xb) {
|
|
local_8 = 10;
|
|
while( true ) {
|
|
iVar3 = (local_8 - 1) * 4;
|
|
uVar2 = *(undefined2 *)(iVar3 + 0x87c);
|
|
*(undefined2 *)(local_8 * 4 + 0x87a) = *(undefined2 *)(iVar3 + 0x87a);
|
|
*(undefined2 *)(local_8 * 4 + 0x87c) = uVar2;
|
|
FUN_1020_0891(0x16,local_8 * 0x16 + 0x890,0x1028,(local_8 - 1) * 0x16 + 0x890,0x1028);
|
|
if (local_8 == local_6 + 1U) break;
|
|
local_8 = local_8 - 1;
|
|
}
|
|
}
|
|
uVar2 = *(undefined2 *)((uint)DAT_1028_07d1 * 4 + 0x980);
|
|
*(undefined2 *)(local_6 * 4 + 0x87a) = *(undefined2 *)((uint)DAT_1028_07d1 * 4 + 0x97e);
|
|
*(undefined2 *)(local_6 * 4 + 0x87c) = uVar2;
|
|
DAT_1028_07d2 = (undefined1)local_6;
|
|
FUN_1000_ab3c(param_1);
|
|
FUN_1000_a8ea(param_1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:acc2 FUN_1000_acc2 ===== */
|
|
|
|
void __stdcall16far FUN_1000_acc2(undefined2 param_1)
|
|
|
|
{
|
|
byte bVar1;
|
|
byte bVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined1 local_14c;
|
|
|
|
uVar5 = 0x1228;
|
|
uVar3 = GETDC();
|
|
bVar2 = DAT_1028_07d1;
|
|
bVar1 = DAT_1028_07d0;
|
|
if (DAT_1028_07d0 != 0) {
|
|
local_14c = 1;
|
|
while( true ) {
|
|
FUN_1008_0837(0x1f,0x8b,(local_14c - 1) * 0x2c + 0x114,0x1d8,uVar3);
|
|
FUN_1008_093f(0x1f,0x8b,(local_14c - 1) * 0x2c + 0x114,0x1d8,uVar3);
|
|
DAT_1028_07d1 = local_14c;
|
|
if (local_14c == bVar2) {
|
|
FUN_1000_bc36(param_1,0,0);
|
|
uVar5 = *(undefined2 *)((uint)local_14c * 4 + 0x990);
|
|
uVar4 = FUN_1020_08a9();
|
|
FUN_1000_bda2(param_1,uVar4,uVar5);
|
|
FUN_1000_0002(*(undefined2 *)((uint)local_14c * 2 + 0x9a4),uVar3);
|
|
FUN_1008_093f(0x7b,0x2a,0x4f,0x37,uVar3);
|
|
FUN_1008_0837(0xb,0xb,(local_14c - 1) * 0x2c + 0x118,0x174,uVar3);
|
|
FUN_1008_093f(0xb,0xb,(local_14c - 1) * 0x2c + 0x118,0x174,uVar3);
|
|
}
|
|
else {
|
|
FUN_1000_bc36(param_1,0xffff,0xffff);
|
|
FUN_1008_08bb(0xb,0xb,(local_14c - 1) * 0x2c + 0x118,0x174,uVar3);
|
|
FUN_1008_093f(0xb,0xb,(local_14c - 1) * 0x2c + 0x118,0x174,uVar3);
|
|
}
|
|
uVar5 = 0x1008;
|
|
if (local_14c == bVar1) break;
|
|
local_14c = local_14c + 1;
|
|
}
|
|
}
|
|
DAT_1028_07d1 = bVar2;
|
|
RELEASEDC(uVar5,uVar3);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:ae6e FUN_1000_ae6e ===== */
|
|
|
|
void __stdcall16far FUN_1000_ae6e(int param_1)
|
|
|
|
{
|
|
byte bVar1;
|
|
uint uVar2;
|
|
undefined1 extraout_AH;
|
|
int iVar3;
|
|
int iVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
undefined2 unaff_SS;
|
|
int local_9;
|
|
byte local_4;
|
|
|
|
if ((DAT_1028_0874 == '\0') && (DAT_1028_399a != 0)) {
|
|
DAT_1028_0874 = '\0';
|
|
FUN_1000_a38e(param_1,0);
|
|
uVar7 = DAT_1028_396b;
|
|
DAT_1028_07d3 = DAT_1028_3969;
|
|
DAT_1028_07d5 = DAT_1028_396b;
|
|
DAT_1028_07d7 = DAT_1028_396d;
|
|
DAT_1028_07d9 = DAT_1028_396f;
|
|
uVar5 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar3 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar3 + 0xbc2) = DAT_1028_3969;
|
|
*(undefined2 *)(iVar3 + 0xbc4) = uVar7;
|
|
uVar7 = DAT_1028_07d9;
|
|
*(undefined2 *)(iVar3 + 0xbc6) = DAT_1028_07d7;
|
|
*(undefined2 *)(iVar3 + 0xbc8) = uVar7;
|
|
*(undefined1 *)(iVar3 + (uint)DAT_1028_07d1 * 0x14 + 0x47b) = 0;
|
|
FUN_1000_b3f3(param_1,0x3fc);
|
|
FUN_1000_bdde(param_1,1,0);
|
|
uVar7 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar3 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar3 + 0xbaa) = 0;
|
|
*(undefined2 *)(iVar3 + 0xbac) = 0;
|
|
uVar7 = *(undefined2 *)(iVar3 + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar5 = FUN_1020_1017();
|
|
uVar6 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar3 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar3 + 0xbae) = uVar5;
|
|
*(undefined2 *)(iVar3 + 0xbb0) = uVar7;
|
|
*(undefined2 *)(iVar3 + 0xbca) = 0;
|
|
*(undefined2 *)(iVar3 + 0xbcc) = 0;
|
|
*(undefined2 *)(iVar3 + 0xbce) = 0;
|
|
*(undefined2 *)(iVar3 + 0xbd0) = 0;
|
|
*(undefined2 *)(iVar3 + 0xbd2) = 0;
|
|
DAT_1028_399a = 0;
|
|
DAT_1028_0875 = 1;
|
|
DAT_1028_41f9 = 1;
|
|
*(undefined1 *)(iVar3 + 0x61) = 1;
|
|
}
|
|
else {
|
|
DAT_1028_0875 = 0;
|
|
FUN_1008_0002(8);
|
|
iVar3 = param_1;
|
|
FUN_1000_a38e(param_1,0);
|
|
if (DAT_1028_0874 == '\0') {
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0xbdd) = 0;
|
|
}
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0xbdc) = 0;
|
|
if (*(int *)((uint)DAT_1028_07d1 * 2 + 0x81f) == 0) {
|
|
uVar7 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar3 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined1 *)(iVar3 + 0xbda) = 0;
|
|
*(undefined1 *)(iVar3 + 0xbdb) = 0;
|
|
FUN_1000_a99c(param_1);
|
|
iVar3 = 0x1000;
|
|
FUN_1000_abe5(param_1);
|
|
}
|
|
uVar7 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar4 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar4 + 0xbce) = 0;
|
|
*(undefined2 *)(iVar4 + 0xbd0) = 0;
|
|
*(undefined2 *)(iVar4 + 0xbd2) = 0;
|
|
local_4 = 1;
|
|
while( true ) {
|
|
*(undefined1 *)
|
|
((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0xaf + (uint)local_4 + 0x61) =
|
|
*(undefined1 *)((uint)local_4 * 0x53 + 0x98f);
|
|
*(undefined2 *)
|
|
((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x15e + (uint)local_4 * 2 + 0x36c)
|
|
= *(undefined2 *)((uint)local_4 * 0x53 + 0x99e);
|
|
bVar1 = DAT_1028_07d1;
|
|
if (local_4 == 0xaf) break;
|
|
local_4 = local_4 + 1;
|
|
}
|
|
do {
|
|
uVar2 = (uint)DAT_1028_07d1 % (uint)DAT_1028_07d0 + 1;
|
|
DAT_1028_07d1 = (byte)uVar2;
|
|
if (0 < *(int *)((uVar2 & 0xff) * 2 + 0x81f)) break;
|
|
} while (DAT_1028_07d1 != bVar1);
|
|
if (*(int *)((uVar2 & 0xff) * 2 + 0x81f) < 1) {
|
|
DAT_1028_07d1 = 0;
|
|
FUN_1000_a70e(param_1);
|
|
if (DAT_1028_07d2 == '\0') {
|
|
uVar7 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar3 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined1 *)(iVar3 + 0xbda) = 0;
|
|
*(undefined1 *)(iVar3 + 0xbdb) = 0;
|
|
FUN_1000_ab3c(param_1);
|
|
}
|
|
}
|
|
else {
|
|
local_4 = 1;
|
|
while( true ) {
|
|
*(undefined1 *)((uint)local_4 * 0x53 + 0x98f) =
|
|
*(undefined1 *)
|
|
((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0xaf + (uint)local_4 + 0x61
|
|
);
|
|
*(undefined2 *)((uint)local_4 * 0x53 + 0x99e) =
|
|
*(undefined2 *)
|
|
((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x15e + (uint)local_4 * 2 +
|
|
0x36c);
|
|
if (DAT_1028_07d1 != bVar1) {
|
|
iVar3 = param_1;
|
|
FUN_1000_7e12(param_1,local_4);
|
|
}
|
|
if (local_4 == 0xaf) break;
|
|
local_4 = local_4 + 1;
|
|
}
|
|
local_4 = '\x01';
|
|
while( true ) {
|
|
if (DAT_1028_07d1 != bVar1) {
|
|
iVar3 = param_1;
|
|
FUN_1000_7e92(param_1,local_4);
|
|
}
|
|
if (local_4 == '\x14') break;
|
|
local_4 = local_4 + '\x01';
|
|
}
|
|
local_4 = 2;
|
|
while( true ) {
|
|
if (local_4 <= *(byte *)(DAT_1028_07d1 + 0x816)) {
|
|
iVar3 = param_1;
|
|
FUN_1000_b30b(param_1,local_4 + 999);
|
|
}
|
|
if (local_4 == 6) break;
|
|
local_4 = local_4 + 1;
|
|
}
|
|
if (DAT_1028_07d1 != bVar1) {
|
|
local_9 = 0;
|
|
local_4 = 1;
|
|
while( true ) {
|
|
if (*(char *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 +
|
|
(uint)local_4 + 0x46c) != '\0') {
|
|
local_9 = local_9 + 1;
|
|
}
|
|
if (local_4 == 9) break;
|
|
local_4 = local_4 + 1;
|
|
}
|
|
uVar7 = GETDC(0x1000,*(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4));
|
|
FUN_1008_0dbd(local_9,uVar7);
|
|
FUN_1008_0b9e(CONCAT11(extraout_AH,DAT_1028_07d1),uVar7);
|
|
iVar3 = *(int *)((int)*(undefined4 *)(param_1 + 6) + 4);
|
|
RELEASEDC(0x1008,uVar7);
|
|
}
|
|
FUN_1000_acc2(param_1);
|
|
*(int *)((uint)DAT_1028_07d1 * 2 + 0x81f) = *(int *)((uint)DAT_1028_07d1 * 2 + 0x81f) + -1;
|
|
FUN_1000_9e85(param_1);
|
|
uVar7 = GETDC(0x1000,*(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4),iVar3);
|
|
FUN_1008_08bb(0x14,0x94,0xf3,0x54,uVar7);
|
|
FUN_1008_093f(0x14,0x94,0xf3,0x54,uVar7);
|
|
RELEASEDC(0x1008,uVar7);
|
|
FUN_1000_a604(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:b2c8 FUN_1000_b2c8 ===== */
|
|
|
|
void __stdcall16far
|
|
FUN_1000_b2c8(undefined2 param_1,int param_2,int param_3,int param_4,int param_5,undefined2 param_6)
|
|
|
|
{
|
|
FUN_1008_0837((param_2 - param_4) + 1,(param_3 - param_5) + 1,param_4,param_5,param_6);
|
|
FUN_1008_093f((param_2 - param_4) + 1,(param_3 - param_5) + 1,param_4,param_5,param_6);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:b30b FUN_1000_b30b ===== */
|
|
|
|
void __stdcall16far FUN_1000_b30b(undefined2 param_1,uint param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
|
|
uVar1 = GETDC();
|
|
if (param_2 < 0xb0) {
|
|
iVar2 = param_2 * 0x53;
|
|
uVar3 = 0x1000;
|
|
FUN_1000_b2c8(&stack0xfffe,*(undefined2 *)(iVar2 + 0x9ac),*(undefined2 *)(iVar2 + 0x9aa),
|
|
*(undefined2 *)(iVar2 + 0x9a8),*(undefined2 *)(iVar2 + 0x9a6),uVar1);
|
|
}
|
|
else if ((param_2 < 0x3ee) || (0x3f6 < param_2)) {
|
|
iVar2 = (param_2 - 1000) * 8;
|
|
uVar3 = 0x1000;
|
|
FUN_1000_b2c8(&stack0xfffe,*(undefined2 *)(iVar2 + 0x4269),*(undefined2 *)(iVar2 + 16999),
|
|
*(undefined2 *)(iVar2 + 0x4265),*(undefined2 *)(iVar2 + 0x4263),uVar1);
|
|
}
|
|
else {
|
|
uVar3 = 0x1008;
|
|
FUN_1008_0dbd(param_2 - 0x3ed,uVar1);
|
|
}
|
|
RELEASEDC(uVar3,uVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:b3b0 FUN_1000_b3b0 ===== */
|
|
|
|
void __stdcall16far
|
|
FUN_1000_b3b0(undefined2 param_1,int param_2,int param_3,int param_4,int param_5,undefined2 param_6)
|
|
|
|
{
|
|
FUN_1008_08bb((param_2 - param_4) + 1,(param_3 - param_5) + 1,param_4,param_5,param_6);
|
|
FUN_1008_093f((param_2 - param_4) + 1,(param_3 - param_5) + 1,param_4,param_5,param_6);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:b3f3 FUN_1000_b3f3 ===== */
|
|
|
|
void __stdcall16far FUN_1000_b3f3(undefined2 param_1,uint param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int iVar2;
|
|
|
|
uVar1 = GETDC();
|
|
if (param_2 < 0xb0) {
|
|
iVar2 = param_2 * 0x53;
|
|
FUN_1000_b3b0(&stack0xfffe,*(undefined2 *)(iVar2 + 0x9ac),*(undefined2 *)(iVar2 + 0x9aa),
|
|
*(undefined2 *)(iVar2 + 0x9a8),*(undefined2 *)(iVar2 + 0x9a6),uVar1);
|
|
}
|
|
else {
|
|
iVar2 = (param_2 - 1000) * 8;
|
|
FUN_1000_b3b0(&stack0xfffe,*(undefined2 *)(iVar2 + 0x4269),*(undefined2 *)(iVar2 + 16999),
|
|
*(undefined2 *)(iVar2 + 0x4265),*(undefined2 *)(iVar2 + 0x4263),uVar1);
|
|
}
|
|
RELEASEDC(0x1000,uVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:b476 FUN_1000_b476 ===== */
|
|
|
|
void __stdcall16far FUN_1000_b476(int param_1,uint param_2,uint param_3)
|
|
|
|
{
|
|
uint uVar1;
|
|
bool bVar2;
|
|
int iVar3;
|
|
uint uVar4;
|
|
undefined2 uVar5;
|
|
int iVar6;
|
|
undefined2 uVar7;
|
|
undefined2 unaff_SS;
|
|
uint local_7;
|
|
byte local_3;
|
|
|
|
if (DAT_1028_07c6 == '\0') {
|
|
if ((((param_2 & 1) == 1) && (0x80 < param_3)) && (param_3 < 0x86)) {
|
|
*(undefined1 *)
|
|
((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + param_3 + 0x3f5) = 1;
|
|
FUN_1000_b30b(param_1,param_3 + 0x376);
|
|
}
|
|
if ((param_2 & 2) == 2) {
|
|
iVar6 = *(int *)(param_3 * 0x53 + 0x99e);
|
|
*(undefined1 *)(iVar6 * 0x53 + 0x98f) = 0;
|
|
FUN_1000_7e12(param_1,iVar6);
|
|
if ((param_2 & 0x2000) == 0x2000) {
|
|
*(undefined1 *)((iVar6 + 1) * 0x53 + 0x98f) = 0;
|
|
*(undefined1 *)((iVar6 + 2) * 0x53 + 0x98f) = 0;
|
|
}
|
|
}
|
|
if ((((param_2 & 0x400) == 0x400) && (DAT_1028_07c7 == '\0')) && (DAT_1028_07c8 == '\0')) {
|
|
DAT_1028_0855 = 0;
|
|
DAT_1028_0857 = 0;
|
|
DAT_1028_07c7 = '\x01';
|
|
}
|
|
if ((param_2 & 4) == 4) {
|
|
FUN_1008_0002(0xc);
|
|
DAT_1028_39de = 1;
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0xaf + 0xf6) = 1;
|
|
uVar7 = 0x1000;
|
|
FUN_1000_b30b(param_1,0x95);
|
|
if (DAT_1028_399a == 0) {
|
|
iVar6 = *(int *)((uint)DAT_1028_07d1 * 2 + 0x9a4);
|
|
do {
|
|
uVar7 = 0x1020;
|
|
iVar3 = FUN_1020_14a4(6);
|
|
*(int *)((uint)DAT_1028_07d1 * 2 + 0x9a4) = iVar3 + 1;
|
|
} while (*(int *)((uint)DAT_1028_07d1 * 2 + 0x9a4) == iVar6);
|
|
}
|
|
else {
|
|
*(undefined2 *)((uint)DAT_1028_07d1 * 2 + 0x9a4) = 7;
|
|
}
|
|
uVar7 = GETDC(uVar7,*(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4));
|
|
FUN_1000_0002(*(undefined2 *)((uint)DAT_1028_07d1 * 2 + 0x9a4),uVar7);
|
|
FUN_1008_093f(0x7b,0x2a,0x4f,0x37,uVar7);
|
|
RELEASEDC(0x1008,uVar7);
|
|
}
|
|
if ((param_2 & 8) == 8) {
|
|
FUN_1008_0002(0xc);
|
|
bVar2 = true;
|
|
local_3 = 0;
|
|
while (*(char *)(((uint)local_3 * 3 + 0x5a) * 0x53 + 0x98f) == '\0') {
|
|
if (local_3 == 4) goto LAB_1000_b66c;
|
|
local_3 = local_3 + 1;
|
|
}
|
|
bVar2 = false;
|
|
LAB_1000_b66c:
|
|
if (bVar2) {
|
|
FUN_1008_0002(0x11);
|
|
if (*(char *)(DAT_1028_07d1 + 0x816) == '\x06') {
|
|
FUN_1000_bc36(param_1,50000,0);
|
|
}
|
|
else {
|
|
if (*(char *)(DAT_1028_07d1 + 0x816) == '\x01') {
|
|
*(undefined1 *)(DAT_1028_07d1 + 0x816) = 2;
|
|
}
|
|
else {
|
|
*(char *)(DAT_1028_07d1 + 0x816) = *(char *)(DAT_1028_07d1 + 0x816) + '\x01';
|
|
}
|
|
FUN_1000_b30b(param_1,*(byte *)(DAT_1028_07d1 + 0x816) + 999);
|
|
}
|
|
local_3 = 0;
|
|
while( true ) {
|
|
*(undefined1 *)(((uint)local_3 * 3 + 0x5a) * 0x53 + 0x98f) = 1;
|
|
*(undefined1 *)(((uint)local_3 * 3 + 0x5b) * 0x53 + 0x98f) = 1;
|
|
*(undefined1 *)(((uint)local_3 * 3 + 0x5c) * 0x53 + 0x98f) = 1;
|
|
FUN_1000_7e12(param_1,(uint)local_3 * 3 + 0x5a);
|
|
if (local_3 == 4) break;
|
|
local_3 = local_3 + 1;
|
|
}
|
|
}
|
|
}
|
|
if ((param_2 & 0x10) == 0x10) {
|
|
FUN_1008_0002(0xc);
|
|
bVar2 = true;
|
|
local_3 = 0;
|
|
while (*(char *)(((uint)local_3 * 3 + 0x6d) * 0x53 + 0x98f) == '\0') {
|
|
if (local_3 == 3) goto LAB_1000_b79e;
|
|
local_3 = local_3 + 1;
|
|
}
|
|
bVar2 = false;
|
|
LAB_1000_b79e:
|
|
if (bVar2) {
|
|
local_7 = 1;
|
|
local_3 = 1;
|
|
while( true ) {
|
|
if (*(char *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 +
|
|
(uint)local_3 + 0x46c) != '\0') {
|
|
local_7 = local_7 + 1;
|
|
}
|
|
if (local_3 == 9) break;
|
|
local_3 = local_3 + 1;
|
|
}
|
|
if (local_7 < 9) {
|
|
FUN_1008_0002(0x11);
|
|
*(undefined1 *)
|
|
((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + local_7 + 0x46c) = 1;
|
|
FUN_1000_b30b(param_1,local_7 + 0x3ed);
|
|
FUN_1000_bc36(param_1,local_7 * 10000,0);
|
|
}
|
|
else if (local_7 == 9) {
|
|
FUN_1008_0002(0x11);
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + 0x475) =
|
|
1;
|
|
FUN_1000_b30b(param_1,0x3f6);
|
|
FUN_1000_bc36(param_1,0x5f90,0);
|
|
uVar7 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar6 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined1 *)(iVar6 + 0xbdc) = 1;
|
|
DAT_1028_3b2a = 1;
|
|
DAT_1028_0b81 = 1;
|
|
DAT_1028_3b7d = 1;
|
|
uVar7 = GETDC(0x1000,*(undefined2 *)(iVar6 + 4));
|
|
FUN_1008_0837((DAT_1028_3b47 - DAT_1028_3b43) + 1,(DAT_1028_3b45 - DAT_1028_3b41) + 1,
|
|
DAT_1028_3b43,DAT_1028_3b41,uVar7);
|
|
FUN_1008_093f((DAT_1028_3b47 - DAT_1028_3b43) + 1,(DAT_1028_3b45 - DAT_1028_3b41) + 1,
|
|
DAT_1028_3b43,DAT_1028_3b41,uVar7);
|
|
FUN_1008_0837((DAT_1028_3b9a - DAT_1028_3b96) + 1,(DAT_1028_3b98 - DAT_1028_3b94) + 1,
|
|
DAT_1028_3b96,DAT_1028_3b94,uVar7);
|
|
FUN_1008_093f((DAT_1028_3b9a - DAT_1028_3b96) + 1,(DAT_1028_3b98 - DAT_1028_3b94) + 1,
|
|
DAT_1028_3b96,DAT_1028_3b94,uVar7);
|
|
FUN_1008_0837((DAT_1028_0b9e - DAT_1028_0b9a) + 1,(DAT_1028_0b9c - DAT_1028_0b98) + 1,
|
|
DAT_1028_0b9a,DAT_1028_0b98,uVar7);
|
|
FUN_1008_093f((DAT_1028_0b9e - DAT_1028_0b9a) + 1,(DAT_1028_0b9c - DAT_1028_0b98) + 1,
|
|
DAT_1028_0b9a,DAT_1028_0b98,uVar7);
|
|
RELEASEDC(0x1008,uVar7);
|
|
}
|
|
else {
|
|
FUN_1008_0002(7);
|
|
if (*(char *)((int)*(undefined4 *)(param_1 + 6) + 0xbdc) == '\0') {
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0xbdc) = 1;
|
|
}
|
|
else {
|
|
uVar1 = *(uint *)((uint)DAT_1028_07d1 * 4 + 0x98e);
|
|
iVar6 = *(int *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar4 = (uint)DAT_1028_07d1;
|
|
*(int *)(uVar4 * 4 + 0x98e) = uVar1 + 0x86a0;
|
|
*(int *)(uVar4 * 4 + 0x990) = iVar6 + 1 + (uint)(0x795f < uVar1);
|
|
uVar7 = *(undefined2 *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar5 = FUN_1020_08a9();
|
|
FUN_1000_bda2(param_1,uVar5,uVar7);
|
|
}
|
|
}
|
|
local_3 = 0;
|
|
while( true ) {
|
|
*(undefined1 *)(((uint)local_3 * 3 + 0x6d) * 0x53 + 0x98f) = 1;
|
|
*(undefined1 *)(((uint)local_3 * 3 + 0x6e) * 0x53 + 0x98f) = 1;
|
|
*(undefined1 *)(((uint)local_3 * 3 + 0x6f) * 0x53 + 0x98f) = 1;
|
|
FUN_1000_7e12(param_1,(uint)local_3 * 3 + 0x6d);
|
|
if (local_3 == 3) break;
|
|
local_3 = local_3 + 1;
|
|
}
|
|
}
|
|
}
|
|
if ((param_2 & 0x1000) == 0x1000) {
|
|
if (param_3 == 0x96) {
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0xf7) = 10;
|
|
FUN_1000_b30b(param_1,0x96);
|
|
DAT_1028_3b2a = 1;
|
|
FUN_1000_b30b(param_1,0x99);
|
|
}
|
|
else if (param_3 == 0x97) {
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0xf8) = 10;
|
|
FUN_1000_b30b(param_1,0x97);
|
|
DAT_1028_0b81 = 1;
|
|
FUN_1000_b30b(param_1,6);
|
|
}
|
|
else if (param_3 == 0x98) {
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0xf9) = 10;
|
|
FUN_1000_b30b(param_1,0x98);
|
|
DAT_1028_3b7d = 1;
|
|
FUN_1000_b30b(param_1,0x9a);
|
|
}
|
|
}
|
|
if ((param_2 & 0x40) == 0x40) {
|
|
if (param_3 == 0x33) {
|
|
FUN_1008_0002(6);
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0x94) = 5;
|
|
FUN_1000_b30b(param_1,0x33);
|
|
iVar6 = (*(byte *)(DAT_1028_07d1 + 0x816) - 1) * 1000;
|
|
FUN_1000_bc36(param_1,iVar6,iVar6 >> 0xf);
|
|
}
|
|
else if (param_3 == 0x34) {
|
|
FUN_1008_0002(6);
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0x95) = 5;
|
|
FUN_1000_b30b(param_1,0x34);
|
|
iVar6 = (*(byte *)(DAT_1028_07d1 + 0x816) - 1) * 1000;
|
|
FUN_1000_bc36(param_1,iVar6,iVar6 >> 0xf);
|
|
}
|
|
else if (param_3 == 0x35) {
|
|
FUN_1008_0002(6);
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0x96) = 5;
|
|
FUN_1000_b30b(param_1,0x35);
|
|
iVar6 = (*(byte *)(DAT_1028_07d1 + 0x816) - 1) * 1000;
|
|
FUN_1000_bc36(param_1,iVar6,iVar6 >> 0xf);
|
|
}
|
|
else if ((0x8b < param_3) && (param_3 < 0x94)) {
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + param_3 + 0x61) = 0x14;
|
|
FUN_1000_b30b(param_1,param_3);
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:bc36 FUN_1000_bc36 ===== */
|
|
|
|
void __stdcall16far FUN_1000_bc36(int param_1,uint param_2,int param_3)
|
|
|
|
{
|
|
uint *puVar1;
|
|
int *piVar2;
|
|
uint uVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
undefined2 uVar6;
|
|
uint uVar7;
|
|
int iVar8;
|
|
undefined2 unaff_SS;
|
|
undefined2 uVar9;
|
|
|
|
uVar9 = *(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4);
|
|
uVar6 = GETDC();
|
|
if (((param_3 != -1) || (param_2 != 0xffff)) && (DAT_1028_07c6 == '\0')) {
|
|
if (DAT_1028_0874 != '\0') {
|
|
param_2 = FUN_1020_08a9(uVar9);
|
|
}
|
|
if (*(char *)((int)*(undefined4 *)(param_1 + 6) + 0xbdc) != '\0') {
|
|
param_2 = FUN_1020_08a9(uVar9);
|
|
}
|
|
uVar3 = *(uint *)((uint)DAT_1028_07d1 * 4 + 0x97e);
|
|
iVar4 = *(int *)((uint)DAT_1028_07d1 * 4 + 0x980);
|
|
uVar7 = (uint)DAT_1028_07d1;
|
|
*(int *)(uVar7 * 4 + 0x97e) = uVar3 + param_2;
|
|
*(int *)(uVar7 * 4 + 0x980) = iVar4 + param_3 + (uint)CARRY2(uVar3,param_2);
|
|
iVar4 = *(int *)((uint)DAT_1028_07d1 * 4 + 0x837);
|
|
if ((iVar4 < 0) || ((iVar4 < 1 && (*(uint *)((uint)DAT_1028_07d1 * 4 + 0x835) < 5)))) {
|
|
iVar8 = *(int *)((uint)DAT_1028_07d1 * 4 + 0x835) * 4;
|
|
iVar4 = *(int *)(iVar8 + 0x827);
|
|
iVar5 = *(int *)((uint)DAT_1028_07d1 * 4 + 0x980);
|
|
if ((iVar4 < iVar5) ||
|
|
((iVar4 <= iVar5 &&
|
|
(*(uint *)(iVar8 + 0x825) <= *(uint *)((uint)DAT_1028_07d1 * 4 + 0x97e))))) {
|
|
FUN_1008_0002(7);
|
|
uVar7 = (uint)DAT_1028_07d1;
|
|
puVar1 = (uint *)(uVar7 * 4 + 0x835);
|
|
uVar3 = *puVar1;
|
|
*puVar1 = *puVar1 + 1;
|
|
piVar2 = (int *)(uVar7 * 4 + 0x837);
|
|
*piVar2 = *piVar2 + (uint)(0xfffe < uVar3);
|
|
piVar2 = (int *)((uint)DAT_1028_07d1 * 2 + 0x81f);
|
|
*piVar2 = *piVar2 + 1;
|
|
FUN_1000_a604(param_1);
|
|
}
|
|
}
|
|
FUN_1008_0b9e(DAT_1028_07d1,uVar6);
|
|
}
|
|
FUN_1008_0996(uVar6,DAT_1028_07d1,0);
|
|
RELEASEDC(0x1008,uVar6);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:bda2 FUN_1000_bda2 ===== */
|
|
|
|
void __stdcall16far FUN_1000_bda2(undefined2 param_1,undefined2 param_2,undefined2 param_3)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
|
|
uVar1 = GETDC();
|
|
FUN_1008_0996(uVar1,param_2,param_3);
|
|
RELEASEDC(0x1008,uVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:bdde FUN_1000_bdde ===== */
|
|
|
|
void __stdcall16far FUN_1000_bdde(undefined2 param_1,int param_2)
|
|
|
|
{
|
|
uint uVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
|
|
iVar2 = DAT_1028_07d5;
|
|
iVar3 = (param_2 + 0xad) * 0x53;
|
|
*(uint *)(iVar3 + 0x96d) = DAT_1028_07d3;
|
|
*(int *)(iVar3 + 0x96f) = iVar2;
|
|
iVar2 = DAT_1028_07d9;
|
|
iVar3 = (param_2 + 0xad) * 0x53;
|
|
*(uint *)(iVar3 + 0x971) = DAT_1028_07d7;
|
|
*(int *)(iVar3 + 0x973) = iVar2;
|
|
uVar1 = DAT_1028_07d3 + 0xc180;
|
|
iVar2 = DAT_1028_07d5 - (uint)(DAT_1028_07d3 < 16000);
|
|
iVar3 = (param_2 + 0xad) * 0x53;
|
|
*(int *)(iVar3 + 0x95d) = DAT_1028_07d3 + 0xadf8;
|
|
*(int *)(iVar3 + 0x95f) = iVar2 - (uint)(uVar1 < 5000);
|
|
uVar1 = DAT_1028_07d7 + 0xc180;
|
|
iVar2 = DAT_1028_07d9 - (uint)(DAT_1028_07d7 < 16000);
|
|
iVar3 = (param_2 + 0xad) * 0x53;
|
|
*(int *)(iVar3 + 0x961) = DAT_1028_07d7 + 0xadf8;
|
|
*(int *)(iVar3 + 0x963) = iVar2 - (uint)(uVar1 < 5000);
|
|
uVar1 = DAT_1028_07d3 + 16000;
|
|
iVar2 = DAT_1028_07d5 + (uint)(0xc17f < DAT_1028_07d3);
|
|
iVar3 = (param_2 + 0xad) * 0x53;
|
|
*(int *)(iVar3 + 0x965) = DAT_1028_07d3 + 21000;
|
|
*(int *)(iVar3 + 0x967) = iVar2 + (uint)(0xec77 < uVar1);
|
|
uVar1 = DAT_1028_07d7 + 16000;
|
|
iVar2 = DAT_1028_07d9 + (uint)(0xc17f < DAT_1028_07d7);
|
|
iVar3 = (param_2 + 0xad) * 0x53;
|
|
*(int *)(iVar3 + 0x969) = DAT_1028_07d7 + 21000;
|
|
*(int *)(iVar3 + 0x96b) = iVar2 + (uint)(0xec77 < uVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:beff FUN_1000_beff ===== */
|
|
|
|
void __stdcall16far FUN_1000_beff(int param_1,uint param_2,int param_3,uint param_4,int param_5)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
uint uVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
bool bVar6;
|
|
undefined2 uVar7;
|
|
undefined2 uVar8;
|
|
|
|
uVar1 = *(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4);
|
|
GETCLIENTRECT(unaff_CS,param_1 + -0x1a,unaff_SS);
|
|
uVar1 = GETDC(0x1228,*(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 4),uVar1);
|
|
*(undefined2 *)(param_1 + -0xc) = uVar1;
|
|
uVar1 = CREATECOMPATIBLEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
*(undefined2 *)(param_1 + -0xe) = uVar1;
|
|
uVar1 = CREATECOMPATIBLEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
*(undefined2 *)(param_1 + -0x10) = uVar1;
|
|
uVar1 = CREATECOMPATIBLEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
*(undefined2 *)(param_1 + -0x12) = uVar1;
|
|
uVar1 = *(undefined2 *)(param_1 + -0xc);
|
|
uVar2 = CREATECOMPATIBLEBITMAP(0x1228,100,100);
|
|
*(undefined2 *)(param_1 + -8) = uVar2;
|
|
iVar4 = DAT_1028_07d5;
|
|
uVar2 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(uint *)(iVar5 + 0xbc2) = DAT_1028_07d3;
|
|
*(int *)(iVar5 + 0xbc4) = iVar4;
|
|
iVar4 = DAT_1028_07d9;
|
|
*(uint *)(iVar5 + 0xbc6) = DAT_1028_07d7;
|
|
*(int *)(iVar5 + 0xbc8) = iVar4;
|
|
bVar6 = CARRY2(DAT_1028_07d7,param_4);
|
|
DAT_1028_07d7 = DAT_1028_07d7 + param_4;
|
|
DAT_1028_07d9 = DAT_1028_07d9 + param_5 + (uint)bVar6;
|
|
bVar6 = CARRY2(DAT_1028_07d3,param_2);
|
|
DAT_1028_07d3 = DAT_1028_07d3 + param_2;
|
|
DAT_1028_07d5 = DAT_1028_07d5 + param_3 + (uint)bVar6;
|
|
iVar4 = DAT_1028_07d5 + (uint)(0xfe0b < DAT_1028_07d3);
|
|
uVar3 = FUN_1020_08e6(uVar1);
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(int *)(iVar5 + 0xba2) = uVar3 - 8;
|
|
*(int *)(iVar5 + 0xba4) = iVar4 - (uint)(uVar3 < 8);
|
|
iVar4 = DAT_1028_07d9 + (uint)(0xfe0b < DAT_1028_07d7);
|
|
uVar3 = FUN_1020_08e6();
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(int *)(iVar5 + 0xba6) = uVar3 - 8;
|
|
*(int *)(iVar5 + 0xba8) = iVar4 - (uint)(uVar3 < 8);
|
|
iVar4 = (DAT_1028_07d5 - *(int *)(iVar5 + 0xbc4)) -
|
|
(uint)(DAT_1028_07d3 < *(uint *)(iVar5 + 0xbc2));
|
|
uVar1 = FUN_1020_08e6();
|
|
uVar2 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar5 + 0xbb2) = uVar1;
|
|
*(int *)(iVar5 + 0xbb4) = iVar4;
|
|
iVar4 = (DAT_1028_07d9 - *(int *)(iVar5 + 0xbc8)) -
|
|
(uint)(DAT_1028_07d7 < *(uint *)(iVar5 + 0xbc6));
|
|
uVar1 = FUN_1020_08e6();
|
|
uVar2 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar5 + 0xbb6) = uVar1;
|
|
*(int *)(iVar5 + 3000) = iVar4;
|
|
if ((*(int *)(iVar5 + 0xbb4) < 1) &&
|
|
((*(int *)(iVar5 + 0xbb4) < 0 || (*(int *)(iVar5 + 0xbb2) == 0)))) {
|
|
*(int *)(param_1 + -0x20) = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0xba2) + -1;
|
|
*(undefined2 *)(param_1 + -0x1c) = 1;
|
|
}
|
|
else {
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar4 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(int *)(param_1 + -0x20) = (*(int *)(iVar4 + 0xba2) - *(int *)(iVar4 + 0xbb2)) + -1;
|
|
*(int *)(param_1 + -0x1c) = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0xbb2) + 1;
|
|
}
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
iVar4 = *(int *)(iVar5 + 3000);
|
|
if ((iVar4 < 1) && ((iVar4 < 0 || (*(int *)(iVar5 + 0xbb6) == 0)))) {
|
|
*(int *)(param_1 + -0x22) = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0xba6) + -1;
|
|
*(undefined2 *)(param_1 + -0x1e) = 1;
|
|
}
|
|
else {
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar4 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(int *)(param_1 + -0x22) = (*(int *)(iVar4 + 0xba6) - *(int *)(iVar4 + 0xbb6)) + -1;
|
|
*(int *)(param_1 + -0x1e) = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0xbb6) + 1;
|
|
}
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
iVar4 = *(int *)(iVar5 + 0xbb2);
|
|
if (*(int *)(iVar5 + 0xbb4) < 0) {
|
|
iVar4 = -iVar4;
|
|
}
|
|
*(int *)(param_1 + -0x28) = iVar4 + 0x13;
|
|
uVar1 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar5 = (int)*(undefined4 *)(param_1 + 6);
|
|
iVar4 = *(int *)(iVar5 + 0xbb6);
|
|
if (*(int *)(iVar5 + 3000) < 0) {
|
|
iVar4 = -iVar4;
|
|
}
|
|
*(int *)(param_1 + -0x2a) = iVar4 + 0x13;
|
|
uVar1 = SELECTOBJECT(0x1020,DAT_1028_085b);
|
|
*(undefined2 *)(param_1 + -2) = uVar1;
|
|
uVar1 = SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -8));
|
|
*(undefined2 *)(param_1 + -4) = uVar1;
|
|
BITBLT(0x1228,0x20,0xcc,*(undefined2 *)(param_1 + -0x22),*(undefined2 *)(param_1 + -0x20),
|
|
*(undefined2 *)(param_1 + -0xe),*(undefined2 *)(param_1 + -0x2a),
|
|
*(undefined2 *)(param_1 + -0x28),0,0);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 0x54));
|
|
BITBLT(0x1228,0xc6,0x88,0,0,*(undefined2 *)(param_1 + -0xe),0x13,0x13,
|
|
*(undefined2 *)(param_1 + -0x1e),*(undefined2 *)(param_1 + -0x1c));
|
|
SELECTOBJECT(0x1228,*(undefined2 *)((int)*(undefined4 *)(param_1 + 6) + 0x52));
|
|
BITBLT(0x1228,0x86,0xee,0,0,*(undefined2 *)(param_1 + -0xe),0x13,0x13,
|
|
*(undefined2 *)(param_1 + -0x1e),*(undefined2 *)(param_1 + -0x1c));
|
|
if (0x1ba < *(int *)(param_1 + -0x22) + *(int *)(param_1 + -0x2a)) {
|
|
if (*(int *)(param_1 + -0x22) < 0x1bb) {
|
|
*(int *)(param_1 + -0x2a) = 0x1bb - *(int *)(param_1 + -0x22);
|
|
}
|
|
else {
|
|
*(undefined2 *)(param_1 + -0x2a) = 0;
|
|
}
|
|
}
|
|
uVar1 = *(undefined2 *)(param_1 + -0xc);
|
|
BITBLT(0x1228,0x20,0xcc,0,0,*(undefined2 *)(param_1 + -0x10),*(undefined2 *)(param_1 + -0x2a),
|
|
*(undefined2 *)(param_1 + -0x28),*(undefined2 *)(param_1 + -0x22),
|
|
*(undefined2 *)(param_1 + -0x20));
|
|
uVar2 = *(undefined2 *)(param_1 + -0xe);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -2));
|
|
uVar8 = *(undefined2 *)(param_1 + -0x10);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -4));
|
|
uVar7 = *(undefined2 *)(param_1 + -0x12);
|
|
SELECTOBJECT(0x1228,*(undefined2 *)(param_1 + -6));
|
|
DELETEOBJECT(0x1228,*(undefined2 *)(param_1 + -8),uVar7,uVar8,uVar2,uVar1);
|
|
DELETEDC(0x1228,*(undefined2 *)(param_1 + -0xe));
|
|
DELETEDC(0x1228,*(undefined2 *)(param_1 + -0x10));
|
|
DELETEDC(0x1228,*(undefined2 *)(param_1 + -0x12));
|
|
RELEASEDC(0x1228,*(undefined2 *)(param_1 + -0xc));
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:c36b FUN_1000_c36b ===== */
|
|
|
|
void __stdcall16far FUN_1000_c36b(int param_1,int param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 unaff_SS;
|
|
|
|
DAT_1028_07d3 = *(undefined2 *)(param_2 * 4 + 0x7e3);
|
|
DAT_1028_07d5 = *(undefined2 *)(param_2 * 4 + 0x7e5);
|
|
DAT_1028_07d7 = *(undefined2 *)(param_2 * 4 + 0x7eb);
|
|
DAT_1028_07d9 = *(undefined2 *)(param_2 * 4 + 0x7ed);
|
|
uVar1 = *(undefined2 *)(param_2 * 4 + 0x7f5);
|
|
uVar4 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar2 + 0xbaa) = *(undefined2 *)(param_2 * 4 + 0x7f3);
|
|
*(undefined2 *)(iVar2 + 0xbac) = uVar1;
|
|
uVar1 = *(undefined2 *)(param_2 * 4 + 0x7fd);
|
|
uVar4 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar2 + 0xbae) = *(undefined2 *)(param_2 * 4 + 0x7fb);
|
|
*(undefined2 *)(iVar2 + 0xbb0) = uVar1;
|
|
iVar2 = param_2 * 6;
|
|
uVar1 = *(undefined2 *)(iVar2 + 0x80d);
|
|
uVar4 = *(undefined2 *)(iVar2 + 0x80f);
|
|
uVar5 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar3 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar3 + 0xbce) = *(undefined2 *)(iVar2 + 0x80b);
|
|
*(undefined2 *)(iVar3 + 0xbd0) = uVar1;
|
|
*(undefined2 *)(iVar3 + 0xbd2) = uVar4;
|
|
uVar1 = *(undefined2 *)(param_2 * 4 + 0x805);
|
|
uVar4 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar2 + 0xbca) = *(undefined2 *)(param_2 * 4 + 0x803);
|
|
*(undefined2 *)(iVar2 + 0xbcc) = uVar1;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:c426 FUN_1000_c426 ===== */
|
|
|
|
void __stdcall16far FUN_1000_c426(int param_1,int param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 unaff_SS;
|
|
|
|
uVar1 = DAT_1028_07d5;
|
|
*(undefined2 *)(param_2 * 4 + 0x7e3) = DAT_1028_07d3;
|
|
*(undefined2 *)(param_2 * 4 + 0x7e5) = uVar1;
|
|
uVar1 = DAT_1028_07d9;
|
|
*(undefined2 *)(param_2 * 4 + 0x7eb) = DAT_1028_07d7;
|
|
*(undefined2 *)(param_2 * 4 + 0x7ed) = uVar1;
|
|
uVar4 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar1 = *(undefined2 *)(iVar2 + 0xbac);
|
|
*(undefined2 *)(param_2 * 4 + 0x7f3) = *(undefined2 *)(iVar2 + 0xbaa);
|
|
*(undefined2 *)(param_2 * 4 + 0x7f5) = uVar1;
|
|
uVar4 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar1 = *(undefined2 *)(iVar2 + 0xbb0);
|
|
*(undefined2 *)(param_2 * 4 + 0x7fb) = *(undefined2 *)(iVar2 + 0xbae);
|
|
*(undefined2 *)(param_2 * 4 + 0x7fd) = uVar1;
|
|
uVar5 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar3 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar1 = *(undefined2 *)(iVar3 + 0xbd0);
|
|
uVar4 = *(undefined2 *)(iVar3 + 0xbd2);
|
|
iVar2 = param_2 * 6;
|
|
*(undefined2 *)(iVar2 + 0x80b) = *(undefined2 *)(iVar3 + 0xbce);
|
|
*(undefined2 *)(iVar2 + 0x80d) = uVar1;
|
|
*(undefined2 *)(iVar2 + 0x80f) = uVar4;
|
|
uVar4 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar1 = *(undefined2 *)(iVar2 + 0xbcc);
|
|
*(undefined2 *)(param_2 * 4 + 0x803) = *(undefined2 *)(iVar2 + 0xbca);
|
|
*(undefined2 *)(param_2 * 4 + 0x805) = uVar1;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:c4e1 FUN_1000_c4e1 ===== */
|
|
|
|
void __stdcall16far FUN_1000_c4e1(int param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
uint uVar2;
|
|
undefined2 uVar3;
|
|
uint uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 unaff_SS;
|
|
|
|
iVar1 = *(int *)((uint)DAT_1028_07d1 * 2 + 0x9a4);
|
|
if (iVar1 == 1) {
|
|
uVar4 = *(uint *)((uint)DAT_1028_07d1 * 4 + 0x98e);
|
|
iVar1 = *(int *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar2 = (uint)DAT_1028_07d1;
|
|
*(int *)(uVar2 * 4 + 0x98e) = uVar4 + 10000;
|
|
*(int *)(uVar2 * 4 + 0x990) = iVar1 + (uint)(0xd8ef < uVar4);
|
|
uVar5 = *(undefined2 *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar3 = FUN_1020_08a9();
|
|
FUN_1000_bda2(param_1,uVar3,uVar5);
|
|
}
|
|
else if (iVar1 == 2) {
|
|
uVar4 = *(uint *)((uint)DAT_1028_07d1 * 4 + 0x98e);
|
|
iVar1 = *(int *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar2 = (uint)DAT_1028_07d1;
|
|
*(int *)(uVar2 * 4 + 0x98e) = uVar4 + 20000;
|
|
*(int *)(uVar2 * 4 + 0x990) = iVar1 + (uint)(0xb1df < uVar4);
|
|
uVar5 = *(undefined2 *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar3 = FUN_1020_08a9();
|
|
FUN_1000_bda2(param_1,uVar3,uVar5);
|
|
}
|
|
else if (iVar1 == 3) {
|
|
uVar4 = *(uint *)((uint)DAT_1028_07d1 * 4 + 0x98e);
|
|
iVar1 = *(int *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar2 = (uint)DAT_1028_07d1;
|
|
*(int *)(uVar2 * 4 + 0x98e) = uVar4 + 50000;
|
|
*(int *)(uVar2 * 4 + 0x990) = iVar1 + (uint)(0x3caf < uVar4);
|
|
uVar5 = *(undefined2 *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar3 = FUN_1020_08a9();
|
|
FUN_1000_bda2(param_1,uVar3,uVar5);
|
|
}
|
|
else if (iVar1 == 4) {
|
|
uVar4 = *(uint *)((uint)DAT_1028_07d1 * 4 + 0x98e);
|
|
iVar1 = *(int *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar2 = (uint)DAT_1028_07d1;
|
|
*(int *)(uVar2 * 4 + 0x98e) = uVar4 + 0x86a0;
|
|
*(int *)(uVar2 * 4 + 0x990) = iVar1 + 1 + (uint)(0x795f < uVar4);
|
|
uVar5 = *(undefined2 *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar3 = FUN_1020_08a9();
|
|
FUN_1000_bda2(param_1,uVar3,uVar5);
|
|
}
|
|
else if (iVar1 == 5) {
|
|
uVar4 = *(uint *)((uint)DAT_1028_07d1 * 4 + 0x98e);
|
|
iVar1 = *(int *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar2 = (uint)DAT_1028_07d1;
|
|
*(int *)(uVar2 * 4 + 0x98e) = uVar4 + 0xd40;
|
|
*(int *)(uVar2 * 4 + 0x990) = iVar1 + 3 + (uint)(0xf2bf < uVar4);
|
|
uVar5 = *(undefined2 *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar3 = FUN_1020_08a9();
|
|
FUN_1000_bda2(param_1,uVar3,uVar5);
|
|
}
|
|
else if (iVar1 == 6) {
|
|
uVar5 = *(undefined2 *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar3 = FUN_1020_08a9();
|
|
FUN_1000_bc36(param_1,uVar3,uVar5);
|
|
uVar4 = (uint)DAT_1028_07d1;
|
|
*(undefined2 *)(uVar4 * 4 + 0x98e) = 0;
|
|
*(undefined2 *)(uVar4 * 4 + 0x990) = 0;
|
|
FUN_1000_bda2(param_1,0,0);
|
|
}
|
|
else if ((iVar1 == 7) && (DAT_1028_399a != 0)) {
|
|
if ((param_2 < 0) || (DAT_1028_399a != param_2)) {
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0xbe0) = 1;
|
|
DAT_1028_0874 = 1;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:c79c FUN_1000_c79c ===== */
|
|
|
|
void __stdcall16far FUN_1000_c79c(int param_1)
|
|
|
|
{
|
|
uint *puVar1;
|
|
int *piVar2;
|
|
byte bVar3;
|
|
undefined2 uVar4;
|
|
int iVar5;
|
|
char cVar6;
|
|
uint uVar7;
|
|
uint uVar8;
|
|
uint uVar9;
|
|
uint uVar10;
|
|
uint uVar11;
|
|
uint extraout_DX;
|
|
uint extraout_DX_00;
|
|
int extraout_DX_01;
|
|
uint extraout_DX_02;
|
|
uint extraout_DX_03;
|
|
uint extraout_DX_04;
|
|
uint uVar12;
|
|
int extraout_DX_05;
|
|
int extraout_DX_06;
|
|
uint in_BX;
|
|
int iVar13;
|
|
int iVar14;
|
|
int iVar15;
|
|
int iVar16;
|
|
int iVar17;
|
|
int iVar18;
|
|
undefined2 uVar19;
|
|
undefined2 unaff_SS;
|
|
bool bVar20;
|
|
bool bVar21;
|
|
uint uVar22;
|
|
int in_stack_0000d8a2;
|
|
uint in_stack_0000d8b0;
|
|
int in_stack_0000d8b2;
|
|
uint in_stack_0000d8c2;
|
|
int in_stack_0000d8cc;
|
|
int in_stack_0000d8ce;
|
|
int in_stack_0000d8d0;
|
|
undefined2 local_7c;
|
|
uint local_7a;
|
|
uint local_78;
|
|
undefined2 local_76;
|
|
uint local_74;
|
|
uint local_72;
|
|
uint local_70;
|
|
uint local_6e;
|
|
uint local_68;
|
|
uint local_66;
|
|
uint local_64;
|
|
uint local_62;
|
|
undefined2 local_40;
|
|
uint local_3e;
|
|
undefined2 local_3c;
|
|
uint local_16;
|
|
uint local_14;
|
|
uint local_12;
|
|
uint local_10;
|
|
uint local_e;
|
|
uint local_c;
|
|
uint local_8;
|
|
int local_4;
|
|
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar13 = (int)*(undefined4 *)(param_1 + 6);
|
|
puVar1 = (uint *)(iVar13 + 0x4d);
|
|
uVar10 = *puVar1;
|
|
*puVar1 = *puVar1 + 1;
|
|
*(int *)(iVar13 + 0x4f) = *(int *)(iVar13 + 0x4f) + (uint)(0xfffe < uVar10);
|
|
iVar5 = DAT_1028_0871;
|
|
bVar3 = *(byte *)(iVar13 + 0x61);
|
|
if (bVar3 == 0) {
|
|
return;
|
|
}
|
|
local_8 = 1;
|
|
while( true ) {
|
|
if (1 < *(byte *)((int)*(undefined4 *)(param_1 + 6) + 0x61)) {
|
|
FUN_1000_c36b();
|
|
}
|
|
iVar13 = DAT_1028_07d5;
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar14 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(uint *)(iVar14 + 0xbc2) = DAT_1028_07d3;
|
|
*(int *)(iVar14 + 0xbc4) = iVar13;
|
|
iVar13 = DAT_1028_07d9;
|
|
*(uint *)(iVar14 + 0xbc6) = DAT_1028_07d7;
|
|
*(int *)(iVar14 + 0xbc8) = iVar13;
|
|
if (iVar5 != 0) break;
|
|
LAB_1000_ea63:
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar13 = (int)*(undefined4 *)(param_1 + 6);
|
|
if ((*(char *)(iVar13 + 0xbdd) != '\0') && (*(char *)(iVar13 + 0xbe2) == '\0')) {
|
|
FUN_1000_9f73();
|
|
}
|
|
if (1 < *(byte *)((int)*(undefined4 *)(param_1 + 6) + 0x61)) {
|
|
FUN_1000_c426();
|
|
}
|
|
if (local_8 == bVar3) {
|
|
return;
|
|
}
|
|
local_8 = local_8 + 1;
|
|
}
|
|
iVar13 = 1;
|
|
LAB_1000_c839:
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar10 = *(uint *)(iVar15 + 0xbae);
|
|
iVar14 = *(int *)(iVar15 + 0xbb0);
|
|
uVar11 = *(uint *)(iVar15 + 0x5a);
|
|
iVar16 = *(int *)(iVar15 + 0x5c);
|
|
*(int *)(iVar15 + 0xbae) = uVar10 + *(uint *)(iVar15 + 0x5a);
|
|
*(int *)(iVar15 + 0xbb0) = iVar14 + iVar16 + (uint)CARRY2(uVar10,uVar11);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
local_14 = extraout_DX;
|
|
FUN_1020_0fe5();
|
|
FUN_1020_10be();
|
|
FUN_1020_0ff7();
|
|
local_16 = FUN_1020_1017();
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar16 = (int)*(undefined4 *)(param_1 + 6);
|
|
iVar14 = *(int *)(iVar16 + 0x58);
|
|
if ((iVar14 < (int)local_14) ||
|
|
((uVar10 = in_BX, iVar14 <= (int)local_14 && (*(uint *)(iVar16 + 0x56) < local_16)))) {
|
|
FUN_1020_100b();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
iVar14 = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0xbac);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar11 = FUN_1020_1017();
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar10 = *(uint *)(iVar15 + 0xbaa);
|
|
iVar16 = *(int *)(iVar15 + 0xbac);
|
|
*(int *)(iVar15 + 0xbaa) = uVar10 - uVar11;
|
|
*(int *)(iVar15 + 0xbac) = (iVar16 - iVar14) - (uint)(uVar10 < uVar11);
|
|
FUN_1020_100b();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
uVar10 = *(uint *)((int)*(undefined4 *)(param_1 + 6) + 0xbb0);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar22 = FUN_1020_1017();
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar16 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar11 = *(uint *)(iVar16 + 0xbae);
|
|
iVar14 = *(int *)(iVar16 + 0xbb0);
|
|
*(int *)(iVar16 + 0xbae) = uVar11 - uVar22;
|
|
*(int *)(iVar16 + 0xbb0) = (iVar14 - uVar10) - (uint)(uVar11 < uVar22);
|
|
local_16 = *(uint *)(iVar16 + 0x56);
|
|
local_14 = *(uint *)(iVar16 + 0x58);
|
|
}
|
|
iVar14 = DAT_1028_07d5;
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar16 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(uint *)(iVar16 + 0xbba) = DAT_1028_07d3;
|
|
*(int *)(iVar16 + 0xbbc) = iVar14;
|
|
iVar14 = DAT_1028_07d9;
|
|
*(uint *)(iVar16 + 0xbbe) = DAT_1028_07d7;
|
|
*(int *)(iVar16 + 0xbc0) = iVar14;
|
|
DAT_1028_07db = DAT_1028_07d3 + *(uint *)(iVar16 + 0xbaa);
|
|
DAT_1028_07dd =
|
|
DAT_1028_07d5 + *(int *)(iVar16 + 0xbac) +
|
|
(uint)CARRY2(DAT_1028_07d3,*(uint *)(iVar16 + 0xbaa));
|
|
DAT_1028_07df = DAT_1028_07d7 + *(uint *)(iVar16 + 0xbae);
|
|
DAT_1028_07e1 =
|
|
DAT_1028_07d9 + *(int *)(iVar16 + 0xbb0) +
|
|
(uint)CARRY2(DAT_1028_07d7,*(uint *)(iVar16 + 0xbae));
|
|
local_e = *(uint *)(iVar16 + 0xbaa);
|
|
local_c = *(uint *)(iVar16 + 0xbac);
|
|
local_12 = *(uint *)(iVar16 + 0xbae);
|
|
local_10 = *(uint *)(iVar16 + 0xbb0);
|
|
uVar11 = *(uint *)(iVar16 + 0xbac);
|
|
FUN_1020_100b();
|
|
FUN_1020_100b();
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar14 = (int)*(undefined4 *)(param_1 + 6);
|
|
local_40 = *(undefined2 *)(iVar14 + 0xbce);
|
|
local_3e = *(uint *)(iVar14 + 0xbd0);
|
|
local_3c = *(undefined2 *)(iVar14 + 0xbd2);
|
|
iVar14 = 0;
|
|
local_70 = 0x423f;
|
|
local_6e = 0xf;
|
|
in_BX = local_3e;
|
|
if (((((DAT_1028_07dd < 0) ||
|
|
(((DAT_1028_07dd < 1 && (DAT_1028_07db == 0)) || (5 < DAT_1028_07dd)))) ||
|
|
(((4 < DAT_1028_07dd && (0x3020 < DAT_1028_07db)) || (DAT_1028_07e1 < 0)))) ||
|
|
((DAT_1028_07e1 < 1 && (DAT_1028_07df == 0)))) ||
|
|
((7 < DAT_1028_07e1 || ((6 < DAT_1028_07e1 && (0x4e0 < DAT_1028_07df)))))) {
|
|
if (*(byte *)((int)*(undefined4 *)(param_1 + 6) + 0x61) < 2) {
|
|
FUN_1000_ae6e();
|
|
}
|
|
else {
|
|
*(undefined1 *)((local_8 + 0xad) * 0x53 + 0x98f) = 0;
|
|
DAT_1028_0874 = '\0';
|
|
}
|
|
}
|
|
if ((DAT_1028_07d9 < 3) || ((DAT_1028_07d9 < 4 && (DAT_1028_07d7 < 0xd860)))) {
|
|
uVar22 = 1;
|
|
}
|
|
else {
|
|
uVar22 = 2;
|
|
}
|
|
local_4 = 1;
|
|
do {
|
|
iVar16 = local_4 * 0x53;
|
|
bVar21 = false;
|
|
if ((((*(uint *)(iVar16 + 0x9a4) & uVar22) != 0) && (*(char *)(iVar16 + 0x98f) == '\x01')) &&
|
|
(cVar6 = FUN_1000_9b69(), cVar6 != '\0')) {
|
|
cVar6 = *(char *)CONCAT22(0x1028,(char *)(iVar16 + 0x95b));
|
|
uVar12 = in_BX;
|
|
if (cVar6 == '\x01') {
|
|
if (0xaf - local_8 != local_4) {
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
uVar7 = extraout_DX_00;
|
|
FUN_1020_0fe5();
|
|
FUN_1020_10be();
|
|
FUN_1020_0ff7();
|
|
uVar9 = FUN_1020_1017();
|
|
if ((int)uVar7 < 0) {
|
|
bVar20 = uVar9 != 0;
|
|
uVar9 = -uVar9;
|
|
uVar7 = (~uVar7 + 1) - (uint)bVar20;
|
|
}
|
|
uVar12 = *(uint *)(iVar16 + 0x981);
|
|
uVar8 = FUN_1020_1017();
|
|
local_68 = uVar9 - uVar8;
|
|
local_66 = (uVar7 - uVar12) - (uint)(uVar9 < uVar8);
|
|
if ((*(char *)(iVar16 + 0x95c) == '\x01') &&
|
|
(((int)local_66 < (int)local_14 ||
|
|
(((int)local_66 <= (int)local_14 && (local_68 <= local_16)))))) {
|
|
LAB_1000_cd0a:
|
|
if (*(char *)(iVar16 + 0x95c) == '\x01') {
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
local_74 = *(int *)(iVar15 + 0xbc0) + DAT_1028_07e1 +
|
|
(uint)CARRY2(*(uint *)(iVar15 + 0xbbe),DAT_1028_07df);
|
|
uVar12 = FUN_1020_08e6();
|
|
local_72 = (*(int *)(iVar16 + 0x973) - local_74) -
|
|
(uint)(*(uint *)(iVar16 + 0x971) < uVar12);
|
|
FUN_1020_100b();
|
|
FUN_1020_1017();
|
|
local_76 = FUN_1020_100b();
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
iVar15 = *(int *)(iVar15 + 0xbbc) + DAT_1028_07dd +
|
|
(uint)CARRY2(*(uint *)(iVar15 + 0xbba),DAT_1028_07db);
|
|
local_7a = 0;
|
|
uVar12 = FUN_1020_08e6();
|
|
local_78 = (iVar15 - *(int *)(iVar16 + 0x96f)) -
|
|
(uint)(uVar12 < *(uint *)(iVar16 + 0x96d));
|
|
FUN_1020_100b();
|
|
FUN_1020_1017();
|
|
local_7c = FUN_1020_100b();
|
|
}
|
|
else {
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
local_74 = *(int *)(iVar15 + 0xbc0) + DAT_1028_07e1 +
|
|
(uint)CARRY2(*(uint *)(iVar15 + 0xbbe),DAT_1028_07df);
|
|
uVar12 = FUN_1020_08e6();
|
|
local_72 = (*(int *)(iVar16 + 0x973) - local_74) -
|
|
(uint)(*(uint *)(iVar16 + 0x971) < uVar12);
|
|
FUN_1020_100b();
|
|
FUN_1020_1017();
|
|
local_76 = FUN_1020_100b();
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
iVar15 = *(int *)(iVar15 + 0xbbc) + DAT_1028_07dd +
|
|
(uint)CARRY2(*(uint *)(iVar15 + 0xbba),DAT_1028_07db);
|
|
local_7a = 0;
|
|
uVar12 = FUN_1020_08e6();
|
|
local_78 = (iVar15 - *(int *)(iVar16 + 0x96f)) -
|
|
(uint)(uVar12 < *(uint *)(iVar16 + 0x96d));
|
|
FUN_1020_100b();
|
|
FUN_1020_1017();
|
|
local_7c = FUN_1020_100b();
|
|
}
|
|
if (*(char *)(iVar16 + 0x95c) == '\x02') {
|
|
if ((char)local_76 != '\0') {
|
|
local_72 = local_72 ^ 0x8000;
|
|
}
|
|
if ((char)local_7c != '\0') {
|
|
local_78 = local_78 ^ 0x8000;
|
|
}
|
|
}
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
uVar12 = local_74;
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
iVar15 = extraout_DX_01;
|
|
FUN_1020_0fe5();
|
|
FUN_1020_10be();
|
|
FUN_1020_0ff7();
|
|
iVar17 = FUN_1020_1017();
|
|
if ((iVar15 < 1) && ((iVar15 < 0 || (iVar17 == 0)))) {
|
|
local_64 = 0;
|
|
local_62 = 0;
|
|
}
|
|
else {
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
local_62 = uVar11;
|
|
uVar12 = uVar10;
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0feb();
|
|
FUN_1020_0ffd();
|
|
local_64 = FUN_1020_1017();
|
|
}
|
|
if ((int)local_62 < 0) {
|
|
uVar7 = local_68;
|
|
uVar12 = local_66;
|
|
if ((int)local_66 < 0) {
|
|
uVar7 = -local_68;
|
|
uVar12 = (~local_66 + 1) - (uint)(local_68 != 0);
|
|
}
|
|
uVar9 = local_64;
|
|
uVar8 = local_62;
|
|
if ((int)local_62 < 0) {
|
|
uVar9 = -local_64;
|
|
uVar8 = (~local_62 + 1) - (uint)(local_64 != 0);
|
|
}
|
|
if (((int)uVar12 < (int)uVar8) || (((int)uVar12 <= (int)uVar8 && (uVar7 <= uVar9)))) {
|
|
bVar21 = 0xf447 < local_68;
|
|
local_68 = local_68 + 3000;
|
|
local_66 = local_66 + bVar21;
|
|
bVar21 = true;
|
|
}
|
|
}
|
|
}
|
|
else if (*(char *)(iVar16 + 0x95c) == '\x02') {
|
|
iVar15 = (~local_66 + 1) - (uint)(local_68 != 0);
|
|
if ((iVar15 < (int)local_14) ||
|
|
((uVar12 = local_14, iVar15 <= (int)local_14 &&
|
|
(-local_68 < local_16 || -local_16 == local_68)))) goto LAB_1000_cd0a;
|
|
}
|
|
}
|
|
}
|
|
else if (cVar6 == '\x04') {
|
|
if (DAT_1028_07c6 == '\0') {
|
|
DAT_1028_0875 = '\0';
|
|
uVar12 = *(uint *)(iVar16 + 0x97f);
|
|
iVar15 = *(int *)(iVar16 + 0x981);
|
|
iVar17 = FUN_1020_1017();
|
|
if ((iVar15 < 1) && ((iVar15 < 0 || (iVar17 == 0)))) {
|
|
cVar6 = FUN_1000_9ae0();
|
|
if ((cVar6 != '\0') && (((local_4 == 0x99 || (local_4 == 0x9a)) || (local_4 == 6)))) {
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
local_e = FUN_1020_1017();
|
|
FUN_1020_100b();
|
|
FUN_1020_14c1();
|
|
FUN_1020_0ff7();
|
|
uVar12 = 0;
|
|
uVar7 = 0;
|
|
FUN_1020_0feb();
|
|
FUN_1020_0ff7();
|
|
iVar15 = FUN_1020_1017();
|
|
local_12 = -iVar15;
|
|
local_10 = (~uVar7 + 1) - (uint)(iVar15 != 0);
|
|
DAT_1028_07db = DAT_1028_07d3 + local_e;
|
|
DAT_1028_07dd = DAT_1028_07d5 + local_c + (uint)CARRY2(DAT_1028_07d3,local_e);
|
|
DAT_1028_07df = DAT_1028_07d7 + local_12;
|
|
DAT_1028_07e1 = DAT_1028_07d9 + local_10 + (uint)CARRY2(DAT_1028_07d7,local_12);
|
|
cVar6 = FUN_1000_9b69();
|
|
if (cVar6 == '\0') {
|
|
*(undefined1 *)(local_4 * 0x53 + 0x98f) = 0;
|
|
}
|
|
FUN_1000_b3f3();
|
|
}
|
|
}
|
|
else {
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
local_66 = extraout_DX_02;
|
|
FUN_1020_0fe5();
|
|
FUN_1020_10be();
|
|
FUN_1020_0ff7();
|
|
local_68 = FUN_1020_1017();
|
|
if ((int)local_66 < 0) {
|
|
bVar20 = local_68 != 0;
|
|
local_68 = -local_68;
|
|
local_66 = (~local_66 + 1) - (uint)bVar20;
|
|
}
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
uVar7 = extraout_DX_03;
|
|
FUN_1020_0fe5();
|
|
FUN_1020_10be();
|
|
FUN_1020_0ff7();
|
|
uVar9 = FUN_1020_1017();
|
|
if ((int)uVar7 < 0) {
|
|
bVar20 = uVar9 != 0;
|
|
uVar9 = -uVar9;
|
|
uVar7 = (~uVar7 + 1) - (uint)bVar20;
|
|
}
|
|
uVar12 = *(uint *)(iVar16 + 0x97f);
|
|
iVar15 = *(int *)(iVar16 + 0x981);
|
|
uVar8 = FUN_1020_1017();
|
|
if (((int)uVar7 < iVar15) || (((int)uVar7 <= iVar15 && (uVar9 <= uVar8)))) {
|
|
if ((*(uint *)(iVar16 + 0x99c) & 0x4000) != 0x4000) {
|
|
*(uint *)(iVar16 + 0x99c) = *(uint *)(iVar16 + 0x99c) | 0x4000;
|
|
FUN_1008_0002();
|
|
FUN_1020_08a9();
|
|
FUN_1000_bc36();
|
|
if (local_4 == 0x95) {
|
|
DAT_1028_39de = 0;
|
|
*(undefined1 *)
|
|
((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0xaf + 0xf6) = 0;
|
|
FUN_1000_b3f3();
|
|
FUN_1000_c4e1();
|
|
GETDC();
|
|
*(undefined2 *)((uint)DAT_1028_07d1 * 2 + 0x9a4) = 0;
|
|
FUN_1000_0002();
|
|
FUN_1008_093f();
|
|
RELEASEDC();
|
|
}
|
|
FUN_1000_b476();
|
|
FUN_1020_14c1();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0feb();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
local_e = FUN_1020_1017();
|
|
FUN_1020_14c1();
|
|
FUN_1020_0ff7();
|
|
uVar12 = 0xa3d;
|
|
FUN_1020_0feb();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
local_12 = FUN_1020_1017();
|
|
}
|
|
}
|
|
else {
|
|
*(uint *)(iVar16 + 0x99c) = *(uint *)(iVar16 + 0x99c) & 0xbfff;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if (cVar6 == '\x02') {
|
|
local_72 = (*(int *)(iVar16 + 0x977) - *(int *)(iVar16 + 0x96f)) -
|
|
(uint)(*(uint *)(iVar16 + 0x975) < *(uint *)(iVar16 + 0x96d));
|
|
local_76 = FUN_1020_100b();
|
|
local_78 = (*(int *)(iVar16 + 0x97b) - *(int *)(iVar16 + 0x973)) -
|
|
(uint)(*(uint *)(iVar16 + 0x979) < *(uint *)(iVar16 + 0x971));
|
|
local_7a = in_BX;
|
|
local_7c = FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
FUN_1020_0fe5();
|
|
FUN_1020_10be();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_1017();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0ffd();
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar12 = (*(int *)(iVar15 + 0xbbc) - *(int *)(iVar16 + 0x96f)) -
|
|
(uint)(*(uint *)(iVar15 + 0xbba) < *(uint *)(iVar16 + 0x96d));
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0feb();
|
|
FUN_1020_0ffd();
|
|
local_66 = uVar12 & 0x7fff;
|
|
local_68 = FUN_1020_1017();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff7();
|
|
local_62 = local_78;
|
|
uVar12 = local_7a;
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0feb();
|
|
FUN_1020_0ffd();
|
|
local_64 = FUN_1020_1017();
|
|
if ((((int)local_66 < (int)local_14) ||
|
|
((local_74 = in_BX, (int)local_66 <= (int)local_14 &&
|
|
(local_74 = in_BX, local_68 <= local_16)))) &&
|
|
(((int)local_62 < 0 ||
|
|
((local_74 = in_BX, (int)local_62 < 1 && (local_74 = in_BX, local_64 < 0xb)))))) {
|
|
uVar12 = local_66 - (local_68 < 10);
|
|
uVar7 = local_64;
|
|
uVar9 = local_62;
|
|
if ((int)local_62 < 0) {
|
|
uVar7 = -local_64;
|
|
uVar9 = (~local_62 + 1) - (uint)(local_64 != 0);
|
|
}
|
|
if (((int)uVar12 < (int)uVar9) ||
|
|
((local_74 = in_BX, (int)uVar12 <= (int)uVar9 &&
|
|
(local_74 = in_BX, local_68 - 10 <= uVar7)))) {
|
|
uVar12 = (*(int *)(iVar16 + 0x96f) - DAT_1028_07d5) -
|
|
(uint)(*(uint *)(iVar16 + 0x96d) < DAT_1028_07d3);
|
|
uVar7 = FUN_1020_08a9();
|
|
iVar15 = (*(int *)(iVar16 + 0x973) - DAT_1028_07d9) -
|
|
(uint)(*(uint *)(iVar16 + 0x971) < DAT_1028_07d7);
|
|
uVar9 = FUN_1020_08a9();
|
|
uVar8 = (iVar15 - uVar12) - (uint)(uVar9 < uVar7);
|
|
if ((uVar8 < 0x8000) ||
|
|
((local_74 = in_BX, -2 < (int)uVar8 && (local_74 = in_BX, 0xfff5 < uVar9 - uVar7))))
|
|
{
|
|
uVar12 = (*(int *)(iVar16 + 0x977) - DAT_1028_07d5) -
|
|
(uint)(*(uint *)(iVar16 + 0x975) < DAT_1028_07d3);
|
|
uVar7 = FUN_1020_08a9();
|
|
iVar15 = (*(int *)(iVar16 + 0x97b) - DAT_1028_07d9) -
|
|
(uint)(*(uint *)(iVar16 + 0x979) < DAT_1028_07d7);
|
|
uVar9 = FUN_1020_08a9();
|
|
iVar15 = (iVar15 - uVar12) - (uint)(uVar9 < uVar7);
|
|
if ((iVar15 < 0) ||
|
|
((local_74 = in_BX, iVar15 < 1 && (local_74 = in_BX, uVar9 - uVar7 < 0xb)))) {
|
|
bVar21 = true;
|
|
local_74 = in_BX;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if (cVar6 == '\x03') {
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
uVar12 = extraout_DX_04;
|
|
FUN_1020_0fe5();
|
|
FUN_1020_10be();
|
|
FUN_1020_0ff7();
|
|
uVar7 = FUN_1020_1017();
|
|
if ((int)uVar12 < 0) {
|
|
bVar20 = uVar7 != 0;
|
|
uVar7 = -uVar7;
|
|
uVar12 = (~uVar12 + 1) - (uint)bVar20;
|
|
}
|
|
uVar9 = *(uint *)(iVar16 + 0x981);
|
|
uVar8 = FUN_1020_1017();
|
|
local_68 = uVar7 - uVar8;
|
|
local_66 = (uVar12 - uVar9) - (uint)(uVar7 < uVar8);
|
|
uVar12 = (int)local_8 >> 0xf;
|
|
if (((((int)local_66 < -1) || (((int)local_66 < 0 && (local_68 < 0xd509)))) &&
|
|
((*(int *)(iVar16 + 0x99e) == 0 ||
|
|
(((*(int *)(iVar16 + 0x99e) != 99 &&
|
|
(*(char *)((int)*(undefined4 *)(param_1 + 6) + 0x61) == '\x01')) ||
|
|
((uVar9 = uVar12, -1 < (int)local_8 && (*(uint *)(iVar16 + 0x99e) == local_8))))))))
|
|
&& ((local_4 != 0x94 || (DAT_1028_0875 == '\0')))) {
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar17 = (int)*(undefined4 *)(param_1 + 6);
|
|
iVar15 = *(int *)(iVar17 + 0xbcc);
|
|
if ((iVar15 < 0) || ((iVar15 < 1 && (*(uint *)(iVar17 + 0xbca) < 300)))) {
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
puVar1 = (uint *)(iVar15 + 0xbba);
|
|
uVar12 = *(uint *)(iVar16 + 0x96d) - *puVar1;
|
|
uVar7 = (*(int *)(iVar16 + 0x96f) - *(int *)(iVar15 + 0xbbc)) -
|
|
(uint)(*(uint *)(iVar16 + 0x96d) < *puVar1);
|
|
if ((int)uVar7 < 0) {
|
|
bVar20 = uVar12 != 0;
|
|
uVar12 = -uVar12;
|
|
uVar7 = (~uVar7 + 1) - (uint)bVar20;
|
|
}
|
|
if (((int)uVar7 < 0) || (((int)uVar7 < 1 && (uVar12 < 500)))) {
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
puVar1 = (uint *)(iVar15 + 0xbbe);
|
|
uVar12 = *(uint *)(iVar16 + 0x971) - *puVar1;
|
|
uVar7 = (*(int *)(iVar16 + 0x973) - *(int *)(iVar15 + 0xbc0)) -
|
|
(uint)(*(uint *)(iVar16 + 0x971) < *puVar1);
|
|
if ((int)uVar7 < 0) {
|
|
bVar20 = uVar12 != 0;
|
|
uVar12 = -uVar12;
|
|
uVar7 = (~uVar7 + 1) - (uint)bVar20;
|
|
}
|
|
if (((int)uVar7 < 0) || (((int)uVar7 < 1 && (uVar12 < 500)))) {
|
|
uVar12 = local_c;
|
|
if ((int)local_c < 0) {
|
|
bVar20 = local_e != 0;
|
|
local_e = -local_e;
|
|
uVar12 = (~local_c + 1) - (uint)bVar20;
|
|
}
|
|
if (((int)uVar12 < 0) || (((int)uVar12 < 1 && (local_e < 500)))) {
|
|
uVar12 = local_10;
|
|
if ((int)local_10 < 0) {
|
|
bVar20 = local_12 != 0;
|
|
local_12 = -local_12;
|
|
uVar12 = (~local_10 + 1) - (uint)bVar20;
|
|
}
|
|
if (((int)uVar12 < 0) || (((int)uVar12 < 1 && (local_12 < 500)))) {
|
|
local_e = 0;
|
|
local_c = 0;
|
|
local_12 = 0;
|
|
local_10 = 0;
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
if (*(int *)(iVar15 + 0xbca) == 0 && *(int *)(iVar15 + 0xbcc) == 0) {
|
|
*(uint *)(iVar16 + 0x99e) = local_8;
|
|
FUN_1008_0002();
|
|
}
|
|
uVar12 = uVar9;
|
|
if (local_4 == 0x59) {
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar15 + 0xbca) = 300;
|
|
*(undefined2 *)(iVar15 + 0xbcc) = 0;
|
|
}
|
|
else {
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar17 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar7 = *(uint *)(iVar17 + 0xbca);
|
|
iVar15 = *(int *)(iVar17 + 0xbcc);
|
|
*(int *)(iVar17 + 0xbca) = uVar7 + 5;
|
|
*(int *)(iVar17 + 0xbcc) = iVar15 + (uint)(0xfffa < uVar7);
|
|
}
|
|
goto LAB_1000_e060;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ((DAT_1028_07d5 < *(int *)(iVar16 + 0x96f)) ||
|
|
((DAT_1028_07d5 <= *(int *)(iVar16 + 0x96f) &&
|
|
(DAT_1028_07d3 < *(uint *)(iVar16 + 0x96d))))) {
|
|
iVar15 = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0x5c);
|
|
uVar12 = FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar7 = FUN_1020_1017();
|
|
local_e = uVar7 + uVar12;
|
|
local_c = local_c + iVar15 + (uint)CARRY2(uVar7,uVar12);
|
|
}
|
|
else {
|
|
iVar15 = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0x5c);
|
|
uVar12 = FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar7 = FUN_1020_1017();
|
|
local_e = uVar7 - uVar12;
|
|
local_c = (local_c - iVar15) - (uint)(uVar7 < uVar12);
|
|
}
|
|
if ((DAT_1028_07d9 < *(int *)(iVar16 + 0x973)) ||
|
|
((DAT_1028_07d9 <= *(int *)(iVar16 + 0x973) &&
|
|
(DAT_1028_07d7 < *(uint *)(iVar16 + 0x971))))) {
|
|
uVar12 = *(uint *)((int)*(undefined4 *)(param_1 + 6) + 0x5c);
|
|
uVar7 = FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar9 = FUN_1020_1017();
|
|
local_12 = uVar9 + uVar7;
|
|
local_10 = local_10 + uVar12 + (uint)CARRY2(uVar9,uVar7);
|
|
}
|
|
else {
|
|
uVar12 = *(uint *)((int)*(undefined4 *)(param_1 + 6) + 0x5c);
|
|
uVar7 = FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar9 = FUN_1020_1017();
|
|
local_12 = uVar9 - uVar7;
|
|
local_10 = (local_10 - uVar12) - (uint)(uVar9 < uVar7);
|
|
}
|
|
}
|
|
else if (local_4 == 0x59) {
|
|
uVar12 = uVar9;
|
|
if (DAT_1028_0874 == '\0') {
|
|
DAT_1028_07ca = 1;
|
|
iVar15 = FUN_1020_14a4();
|
|
if (iVar15 == 0) {
|
|
DAT_1028_086f = 1;
|
|
}
|
|
else if (iVar15 == 1) {
|
|
DAT_1028_086f = 6;
|
|
}
|
|
else if (iVar15 == 2) {
|
|
DAT_1028_086f = 7;
|
|
}
|
|
else if (iVar15 == 3) {
|
|
DAT_1028_086f = 0x12;
|
|
}
|
|
DAT_1028_0873 = 1;
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0xbdf) = 1;
|
|
local_40 = 0;
|
|
local_3e = 0;
|
|
local_3c = 0;
|
|
for (iVar15 = 0xc; *(undefined1 *)(iVar15 * 0x53 + 0x98f) = 0, uVar12 = uVar9,
|
|
iVar15 != 0x14; iVar15 = iVar15 + 1) {
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if ((local_4 < 0x81) || (0x85 < local_4)) {
|
|
if (local_4 == 0x94) {
|
|
*(undefined1 *)
|
|
((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + 0x47b) = 1;
|
|
FUN_1000_b30b();
|
|
}
|
|
}
|
|
else {
|
|
uVar12 = 5000;
|
|
iVar17 = 0;
|
|
iVar15 = 1;
|
|
while( true ) {
|
|
if (*(int *)((iVar15 + 0x80) * 0x53 + 0x99e) != 0) {
|
|
uVar12 = FUN_1020_08a9();
|
|
}
|
|
if (iVar15 == 5) break;
|
|
iVar15 = iVar15 + 1;
|
|
}
|
|
uVar7 = *(uint *)((uint)DAT_1028_07d1 * 4 + 0x98e);
|
|
iVar15 = *(int *)((uint)DAT_1028_07d1 * 4 + 0x990);
|
|
uVar9 = (uint)DAT_1028_07d1;
|
|
*(int *)(uVar9 * 4 + 0x98e) = uVar7 + uVar12;
|
|
*(int *)(uVar9 * 4 + 0x990) = iVar15 + iVar17 + (uint)CARRY2(uVar7,uVar12);
|
|
if ((iVar17 == 2) && (uVar12 == 0x7100)) {
|
|
FUN_1020_08a9();
|
|
FUN_1000_bc36();
|
|
uVar12 = (uint)DAT_1028_07d1;
|
|
*(undefined2 *)(uVar12 * 4 + 0x98e) = 0;
|
|
*(undefined2 *)(uVar12 * 4 + 0x990) = 0;
|
|
*(char *)(DAT_1028_07d1 + 0x9a1) = *(char *)(DAT_1028_07d1 + 0x9a1) + '\x01';
|
|
piVar2 = (int *)((uint)DAT_1028_07d1 * 2 + 0x81f);
|
|
*piVar2 = *piVar2 + 1;
|
|
FUN_1000_a604();
|
|
GETDC();
|
|
RELEASEDC();
|
|
if (((DAT_1028_07c7 == '\0') && (DAT_1028_07c8 == '\0')) && (DAT_1028_0874 == '\0'))
|
|
{
|
|
DAT_1028_0851 = 0;
|
|
DAT_1028_0853 = 0;
|
|
DAT_1028_07c8 = '\x01';
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0xbdd) = 0;
|
|
}
|
|
DAT_1028_0874 = '\0';
|
|
}
|
|
else {
|
|
*(undefined1 *)
|
|
((int)*(undefined4 *)(param_1 + 6) + (uint)DAT_1028_07d1 * 0x14 + local_4 + 0x3f5)
|
|
= 1;
|
|
FUN_1000_b30b();
|
|
}
|
|
uVar9 = 0;
|
|
FUN_1020_08a9();
|
|
FUN_1000_bda2();
|
|
}
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar15 + 0xbca) = 0;
|
|
*(undefined2 *)(iVar15 + 0xbcc) = 0;
|
|
uVar12 = uVar9;
|
|
if (*(char *)(iVar15 + 0x61) == '\x01') {
|
|
if (local_4 == 0x94) {
|
|
DAT_1028_399a = 2;
|
|
}
|
|
else {
|
|
*(undefined2 *)(iVar16 + 0x99e) = 99;
|
|
}
|
|
if (DAT_1028_07c6 == '\0') {
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0xbe2) = 1;
|
|
}
|
|
else {
|
|
FUN_1000_ae6e();
|
|
uVar12 = uVar9;
|
|
}
|
|
}
|
|
else {
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0xbe1) = 1;
|
|
*(undefined1 *)((local_8 + 0xad) * 0x53 + 0x98f) = 0;
|
|
*(undefined2 *)(iVar16 + 0x99e) = 2;
|
|
}
|
|
}
|
|
}
|
|
else if (((local_66 < 0x8000) || ((-2 < (int)local_66 && (0xd508 < local_68)))) &&
|
|
((uVar9 = uVar12, -1 < (int)local_8 && (*(uint *)(iVar16 + 0x99e) == local_8)))) {
|
|
*(undefined2 *)(iVar16 + 0x99e) = 0;
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar15 + 0xbca) = 0;
|
|
*(undefined2 *)(iVar15 + 0xbcc) = 0;
|
|
}
|
|
else {
|
|
uVar12 = uVar9;
|
|
if ((((int)local_66 < (int)local_14) ||
|
|
(((int)local_66 <= (int)local_14 && (local_68 <= local_16)))) &&
|
|
(((local_66 < 0x8000 || ((-2 < (int)local_66 && (0xd507 < local_68)))) &&
|
|
(*(int *)(iVar16 + 0x99e) != 0)))) {
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
local_72 = (*(int *)(iVar16 + 0x973) - *(int *)(iVar15 + 0xbc0)) -
|
|
(uint)(*(uint *)(iVar16 + 0x971) < *(uint *)(iVar15 + 0xbbe));
|
|
FUN_1020_100b();
|
|
FUN_1020_1017();
|
|
local_76 = FUN_1020_100b();
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
local_78 = (*(int *)(iVar15 + 0xbbc) - *(int *)(iVar16 + 0x96f)) -
|
|
(uint)(*(uint *)(iVar15 + 0xbba) < *(uint *)(iVar16 + 0x96d));
|
|
local_7a = uVar9;
|
|
FUN_1020_100b();
|
|
FUN_1020_1017();
|
|
local_7c = FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
uVar12 = uVar9;
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
iVar15 = extraout_DX_05;
|
|
FUN_1020_0fe5();
|
|
FUN_1020_10be();
|
|
FUN_1020_0ff7();
|
|
iVar17 = FUN_1020_1017();
|
|
if ((iVar15 < 1) && ((iVar15 < 0 || (iVar17 == 0)))) {
|
|
local_64 = 0;
|
|
local_62 = 0;
|
|
}
|
|
else {
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
local_62 = uVar11;
|
|
uVar12 = uVar10;
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0feb();
|
|
FUN_1020_0ffd();
|
|
local_64 = FUN_1020_1017();
|
|
}
|
|
local_74 = uVar9;
|
|
if ((int)local_62 < 0) {
|
|
uVar7 = local_68;
|
|
uVar12 = local_66;
|
|
if ((int)local_66 < 0) {
|
|
uVar7 = -local_68;
|
|
uVar12 = (~local_66 + 1) - (uint)(local_68 != 0);
|
|
}
|
|
uVar9 = local_64;
|
|
uVar8 = local_62;
|
|
if ((int)local_62 < 0) {
|
|
uVar9 = -local_64;
|
|
uVar8 = (~local_62 + 1) - (uint)(local_64 != 0);
|
|
}
|
|
if (((int)uVar12 < (int)uVar8) || (((int)uVar12 <= (int)uVar8 && (uVar7 <= uVar9)))) {
|
|
bVar21 = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
LAB_1000_e060:
|
|
in_BX = uVar12;
|
|
if (bVar21) {
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar15 + 0xbca) = 0;
|
|
*(undefined2 *)(iVar15 + 0xbcc) = 0;
|
|
if (((int)local_66 < (int)local_6e) ||
|
|
(((int)local_66 <= (int)local_6e && (local_68 <= local_70)))) {
|
|
local_70 = local_68;
|
|
local_6e = local_66;
|
|
iVar14 = iVar14 + 1;
|
|
iVar15 = iVar14 * 0x34;
|
|
*(uint *)(&stack0xd89e + iVar15) = local_68;
|
|
*(uint *)(&stack0xd8a0 + iVar15) = local_66;
|
|
*(int *)(&stack0xd86e + iVar15) = local_4;
|
|
*(undefined2 *)(&stack0xd870 + iVar15) = local_76;
|
|
*(uint *)(&stack0xd872 + iVar15) = local_74;
|
|
*(uint *)(&stack0xd874 + iVar15) = local_72;
|
|
*(undefined2 *)(&stack0xd876 + iVar15) = local_7c;
|
|
*(uint *)(&stack0xd878 + iVar15) = local_7a;
|
|
*(uint *)(&stack0xd87a + iVar15) = local_78;
|
|
uVar19 = *(undefined2 *)(iVar16 + 0x98b);
|
|
uVar4 = *(undefined2 *)(iVar16 + 0x98d);
|
|
*(undefined2 *)(&stack0xd886 + iVar15) = *(undefined2 *)(iVar16 + 0x989);
|
|
*(undefined2 *)(&stack0xd888 + iVar15) = uVar19;
|
|
*(undefined2 *)(&stack0xd88a + iVar15) = uVar4;
|
|
uVar19 = *(undefined2 *)(iVar16 + 0x985);
|
|
uVar4 = *(undefined2 *)(iVar16 + 0x987);
|
|
*(undefined2 *)(&stack0xd880 + iVar15) = *(undefined2 *)(iVar16 + 0x983);
|
|
*(undefined2 *)(&stack0xd882 + iVar15) = uVar19;
|
|
*(undefined2 *)(&stack0xd884 + iVar15) = uVar4;
|
|
*(uint *)(&stack0xd87c + iVar15) = local_64;
|
|
*(uint *)(&stack0xd87e + iVar15) = local_62;
|
|
uVar19 = *(undefined2 *)(iVar16 + 0x992);
|
|
uVar4 = *(undefined2 *)(iVar16 + 0x994);
|
|
*(undefined2 *)(&stack0xd88c + iVar15) = *(undefined2 *)(iVar16 + 0x990);
|
|
*(undefined2 *)(&stack0xd88e + iVar15) = uVar19;
|
|
*(undefined2 *)(&stack0xd890 + iVar15) = uVar4;
|
|
in_BX = *(uint *)(iVar16 + 0x998);
|
|
uVar19 = *(undefined2 *)(iVar16 + 0x99a);
|
|
*(undefined2 *)(&stack0xd892 + iVar15) = *(undefined2 *)(iVar16 + 0x996);
|
|
*(uint *)(&stack0xd894 + iVar15) = in_BX;
|
|
*(undefined2 *)(&stack0xd896 + iVar15) = uVar19;
|
|
*(undefined2 *)(&stack0xd898 + iVar15) = *(undefined2 *)(iVar16 + 0x99c);
|
|
uVar19 = *(undefined2 *)(iVar16 + 0x9a2);
|
|
*(undefined2 *)(&stack0xd89a + iVar15) = *(undefined2 *)(iVar16 + 0x9a0);
|
|
*(undefined2 *)(&stack0xd89c + iVar15) = uVar19;
|
|
}
|
|
}
|
|
}
|
|
if (local_4 == 0xaf) break;
|
|
local_4 = local_4 + 1;
|
|
} while( true );
|
|
if (iVar14 != 0) {
|
|
if (in_stack_0000d8cc != 0) {
|
|
FUN_1000_b476();
|
|
}
|
|
if (in_stack_0000d8ce != 0 || in_stack_0000d8d0 != 0) {
|
|
bVar21 = true;
|
|
FUN_1020_1007();
|
|
if (bVar21) {
|
|
FUN_1000_bc36();
|
|
}
|
|
}
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
FUN_1020_0fe5();
|
|
FUN_1020_10be();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_1017();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0fe5();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_1017();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_10be();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_100b();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0ffd();
|
|
iVar16 = 0x4ccc;
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0feb();
|
|
FUN_1020_0feb();
|
|
FUN_1020_1017();
|
|
local_3e = 0x9999;
|
|
local_3c = 0x1999;
|
|
FUN_1020_0ff7();
|
|
local_40 = FUN_1020_0fe5();
|
|
if ((in_stack_0000d8a2 == 0xae) || (in_stack_0000d8a2 == 0xaf)) {
|
|
iVar17 = (in_stack_0000d8a2 + -0xae) * 4;
|
|
iVar15 = *(int *)(iVar17 + 0x805);
|
|
if ((iVar15 < 0) || ((iVar15 < 1 && (*(int *)(iVar17 + 0x803) == 0)))) {
|
|
FUN_1020_100b();
|
|
iVar17 = in_stack_0000d8b2;
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0ffd();
|
|
uVar11 = FUN_1020_1017();
|
|
iVar15 = (in_stack_0000d8a2 + -0xae) * 4;
|
|
uVar10 = *(uint *)(iVar15 + 0x7f3);
|
|
iVar15 = *(int *)(iVar15 + 0x7f5);
|
|
iVar18 = (in_stack_0000d8a2 + -0xae) * 4;
|
|
*(int *)(iVar18 + 0x7f3) = uVar10 + uVar11;
|
|
*(int *)(iVar18 + 0x7f5) = iVar15 + iVar17 + (uint)CARRY2(uVar10,uVar11);
|
|
FUN_1020_100b();
|
|
iVar17 = in_stack_0000d8b2;
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0ffd();
|
|
uVar11 = FUN_1020_1017();
|
|
iVar15 = (in_stack_0000d8a2 + -0xae) * 4;
|
|
uVar10 = *(uint *)(iVar15 + 0x7fb);
|
|
iVar15 = *(int *)(iVar15 + 0x7fd);
|
|
iVar18 = (in_stack_0000d8a2 + -0xae) * 4;
|
|
*(int *)(iVar18 + 0x7fb) = uVar10 - uVar11;
|
|
*(int *)(iVar18 + 0x7fd) = (iVar15 - iVar17) - (uint)(uVar10 < uVar11);
|
|
}
|
|
}
|
|
FUN_1020_100b();
|
|
FUN_1020_100b();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0ffd();
|
|
in_BX = 0;
|
|
local_62 = 0;
|
|
FUN_1020_0fe5();
|
|
FUN_1020_0feb();
|
|
FUN_1020_0ff7();
|
|
local_64 = FUN_1020_1017();
|
|
if (DAT_1028_07c6 == '\0') {
|
|
bVar21 = false;
|
|
in_BX = in_stack_0000d8c2;
|
|
FUN_1020_1007();
|
|
if (bVar21) {
|
|
iVar15 = *(int *)((int)*(undefined4 *)(param_1 + 6) + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar10 = FUN_1020_1017();
|
|
if ((in_stack_0000d8b2 < iVar15) ||
|
|
((in_stack_0000d8b2 <= iVar15 && (in_stack_0000d8b0 < uVar10)))) {
|
|
if (in_stack_0000d8ce == 0 && in_stack_0000d8d0 == 0) {
|
|
FUN_1008_0002();
|
|
}
|
|
else {
|
|
FUN_1000_bc36();
|
|
}
|
|
in_BX = *(uint *)((int)*(undefined4 *)(param_1 + 6) + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar10 = FUN_1020_1017();
|
|
bVar21 = local_64 < uVar10;
|
|
local_64 = local_64 - uVar10;
|
|
local_62 = (local_62 - in_BX) - (uint)bVar21;
|
|
}
|
|
}
|
|
}
|
|
FUN_1020_100b();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0feb();
|
|
FUN_1020_0ffd();
|
|
uVar11 = FUN_1020_1017();
|
|
FUN_1020_100b();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar10 = local_62;
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
FUN_1020_0fe5();
|
|
FUN_1020_0ffd();
|
|
uVar22 = FUN_1020_1017();
|
|
bVar21 = CARRY2(local_e,uVar11);
|
|
local_e = local_e + uVar11;
|
|
local_c = local_c + iVar16 + (uint)bVar21;
|
|
bVar21 = CARRY2(local_12,uVar22);
|
|
local_12 = local_12 + uVar22;
|
|
local_10 = local_10 + uVar10 + (uint)bVar21;
|
|
if (in_stack_0000d8a2 == 0x19) {
|
|
if (((int)local_14 < 0) || (((int)local_14 < 1 && (local_16 < 1000)))) {
|
|
*(undefined1 *)((int)*(undefined4 *)(param_1 + 6) + 0xbdd) = 0;
|
|
local_12 = 0;
|
|
local_10 = 0;
|
|
}
|
|
local_c = 0;
|
|
local_e = 0;
|
|
}
|
|
else if (in_stack_0000d8a2 == 2) {
|
|
if (*(byte *)((int)*(undefined4 *)(param_1 + 6) + 0x61) < 2) {
|
|
FUN_1000_ae6e();
|
|
}
|
|
else {
|
|
*(undefined1 *)((local_8 + 0xad) * 0x53 + 0x98f) = 0;
|
|
DAT_1028_0874 = '\0';
|
|
}
|
|
}
|
|
}
|
|
if (*(char *)((int)*(undefined4 *)(param_1 + 6) + 0xbdd) != '\0') {
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar16 = (int)*(undefined4 *)(param_1 + 6);
|
|
*(undefined2 *)(iVar16 + 0xbce) = local_40;
|
|
*(uint *)(iVar16 + 0xbd0) = local_3e;
|
|
*(undefined2 *)(iVar16 + 0xbd2) = local_3c;
|
|
*(uint *)(iVar16 + 0xbaa) = local_e;
|
|
*(uint *)(iVar16 + 0xbac) = local_c;
|
|
*(uint *)(iVar16 + 0xbae) = local_12;
|
|
*(uint *)(iVar16 + 0xbb0) = local_10;
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
FUN_1020_0ff1();
|
|
iVar15 = extraout_DX_06;
|
|
FUN_1020_0fe5();
|
|
FUN_1020_10be();
|
|
FUN_1020_0ff7();
|
|
uVar10 = FUN_1020_1017();
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar17 = (int)*(undefined4 *)(param_1 + 6);
|
|
iVar16 = *(int *)(iVar17 + 0x58);
|
|
if ((iVar16 < iVar15) ||
|
|
((in_BX = local_3e, iVar16 <= iVar15 && (*(uint *)(iVar17 + 0x56) < uVar10)))) {
|
|
FUN_1020_100b();
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar16 = (int)*(undefined4 *)(param_1 + 6);
|
|
iVar17 = (iVar15 - *(int *)(iVar16 + 0x58)) - (uint)(uVar10 < *(uint *)(iVar16 + 0x56));
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
uVar22 = FUN_1020_1017();
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar18 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar11 = *(uint *)(iVar18 + 0xbaa);
|
|
iVar16 = *(int *)(iVar18 + 0xbac);
|
|
*(int *)(iVar18 + 0xbaa) = uVar11 - uVar22;
|
|
*(int *)(iVar18 + 0xbac) = (iVar16 - iVar17) - (uint)(uVar11 < uVar22);
|
|
FUN_1020_100b();
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar16 = (int)*(undefined4 *)(param_1 + 6);
|
|
in_BX = (iVar15 - *(int *)(iVar16 + 0x58)) - (uint)(uVar10 < *(uint *)(iVar16 + 0x56));
|
|
FUN_1020_08a9();
|
|
FUN_1020_100b();
|
|
FUN_1020_0ffd();
|
|
uVar11 = FUN_1020_1017();
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar15 = (int)*(undefined4 *)(param_1 + 6);
|
|
uVar10 = *(uint *)(iVar15 + 0xbae);
|
|
iVar16 = *(int *)(iVar15 + 0xbb0);
|
|
*(int *)(iVar15 + 0xbae) = uVar10 - uVar11;
|
|
*(int *)(iVar15 + 0xbb0) = (iVar16 - in_BX) - (uint)(uVar10 < uVar11);
|
|
}
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar16 = (int)*(undefined4 *)(param_1 + 6);
|
|
bVar21 = CARRY2(DAT_1028_07d3,*(uint *)(iVar16 + 0xbaa));
|
|
DAT_1028_07d3 = DAT_1028_07d3 + *(uint *)(iVar16 + 0xbaa);
|
|
DAT_1028_07d5 = DAT_1028_07d5 + *(int *)(iVar16 + 0xbac) + (uint)bVar21;
|
|
bVar21 = CARRY2(DAT_1028_07d7,*(uint *)(iVar16 + 0xbae));
|
|
DAT_1028_07d7 = DAT_1028_07d7 + *(uint *)(iVar16 + 0xbae);
|
|
DAT_1028_07d9 = DAT_1028_07d9 + *(int *)(iVar16 + 0xbb0) + (uint)bVar21;
|
|
FUN_1000_bdde();
|
|
}
|
|
if (iVar14 != 0) goto LAB_1000_ea63;
|
|
uVar19 = (undefined2)((ulong)*(undefined4 *)(param_1 + 6) >> 0x10);
|
|
iVar14 = (int)*(undefined4 *)(param_1 + 6);
|
|
if (((*(char *)(iVar14 + 0xbe2) == '\x01') || (*(char *)(iVar14 + 0xbe1) == '\x01')) ||
|
|
(iVar13 == iVar5)) goto LAB_1000_ea63;
|
|
iVar13 = iVar13 + 1;
|
|
goto LAB_1000_c839;
|
|
}
|
|
|
|
|
|
/* ===== 1000:eab1 exported_ordinal_10 ===== */
|
|
|
|
void __stdcall16far exported_ordinal_10(undefined4 param_1)
|
|
|
|
{
|
|
char *pcVar1;
|
|
undefined1 uVar2;
|
|
undefined1 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
undefined2 uVar8;
|
|
int iVar9;
|
|
uint uVar10;
|
|
int iVar11;
|
|
int iVar12;
|
|
undefined2 uVar13;
|
|
undefined2 unaff_CS;
|
|
bool bVar14;
|
|
undefined2 uVar15;
|
|
undefined2 uVar16;
|
|
undefined2 uVar17;
|
|
undefined2 uVar18;
|
|
undefined1 local_4d;
|
|
int local_30;
|
|
int local_2e;
|
|
|
|
uVar13 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar12 = (int)param_1;
|
|
if (*(int *)(iVar12 + 0x41) != 0 || *(int *)(iVar12 + 0x43) != 0) {
|
|
return;
|
|
}
|
|
if (*(int *)(iVar12 + 0x45) != 0 || *(int *)(iVar12 + 0x47) != 0) {
|
|
return;
|
|
}
|
|
if (*(char *)(iVar12 + 0xbd8) != '\0') {
|
|
return;
|
|
}
|
|
if (*(char *)(iVar12 + 0xbd9) != '\0') {
|
|
return;
|
|
}
|
|
if (DAT_1028_07cc != '\0') {
|
|
return;
|
|
}
|
|
if (*(char *)(iVar12 + 0x51) != '\0') {
|
|
return;
|
|
}
|
|
if (DAT_1028_07c4 == '\0') {
|
|
return;
|
|
}
|
|
*(undefined1 *)(iVar12 + 0x51) = 1;
|
|
if (DAT_1028_07c5 != '\0') {
|
|
local_30 = 1;
|
|
while( true ) {
|
|
unaff_CS = 0x1000;
|
|
FUN_1000_7e12(&stack0xfffe,local_30);
|
|
if (local_30 == 0xaf) break;
|
|
local_30 = local_30 + 1;
|
|
}
|
|
DAT_1028_07c5 = '\0';
|
|
}
|
|
bVar14 = 0xfffe < DAT_1028_0876;
|
|
DAT_1028_0876 = DAT_1028_0876 + 1;
|
|
DAT_1028_0878 = DAT_1028_0878 + (uint)bVar14;
|
|
if (*(char *)(iVar12 + 0xbdd) != '\0') {
|
|
if ((DAT_1028_07ca != '\0') && (DAT_1028_0874 == '\0')) {
|
|
if (DAT_1028_086d == DAT_1028_086f) {
|
|
if (DAT_1028_086d == 10) {
|
|
uVar8 = GETDC(unaff_CS,*(undefined2 *)(iVar12 + 4));
|
|
FUN_1008_0e08(0,0,uVar8);
|
|
RELEASEDC(0x1008,uVar8);
|
|
if (DAT_1028_0873 == '\0') {
|
|
DAT_1028_07ca = '\0';
|
|
for (local_2e = 0xc; *(undefined1 *)(local_2e * 0x53 + 0x98f) = 1, local_2e != 0x14;
|
|
local_2e = local_2e + 1) {
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
uVar18 = GETDC(unaff_CS,*(undefined2 *)(iVar12 + 4));
|
|
FUN_1008_0e08(0,DAT_1028_086d,uVar18);
|
|
uVar8 = *(undefined2 *)(iVar12 + 4);
|
|
RELEASEDC(0x1008,uVar18);
|
|
DAT_1028_086f = 10;
|
|
DAT_1028_0873 = '\0';
|
|
DAT_1028_2679 = 0;
|
|
*(undefined2 *)(iVar12 + 0xbca) = 0;
|
|
*(undefined2 *)(iVar12 + 0xbcc) = 0;
|
|
*(undefined2 *)(iVar12 + 0xbce) = 0;
|
|
*(undefined2 *)(iVar12 + 0xbd0) = 0;
|
|
*(undefined2 *)(iVar12 + 0xbd2) = 0;
|
|
if (DAT_1028_086d == 1) {
|
|
DAT_1028_07d3 = 0xefd0;
|
|
DAT_1028_07d5 = 3;
|
|
DAT_1028_07d7 = 0x30b0;
|
|
DAT_1028_07d9 = 1;
|
|
uVar18 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b(uVar8);
|
|
FUN_1020_0ff7();
|
|
uVar8 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbaa) = uVar8;
|
|
*(undefined2 *)(iVar12 + 0xbac) = uVar18;
|
|
uVar8 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar18 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbae) = uVar18;
|
|
*(undefined2 *)(iVar12 + 0xbb0) = uVar8;
|
|
}
|
|
else if (DAT_1028_086d == 2) {
|
|
DAT_1028_07d3 = 0xf3b8;
|
|
DAT_1028_07d5 = 3;
|
|
DAT_1028_07d7 = 0x3c68;
|
|
DAT_1028_07d9 = 1;
|
|
uVar18 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b(uVar8);
|
|
FUN_1020_0ff7();
|
|
uVar8 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbaa) = uVar8;
|
|
*(undefined2 *)(iVar12 + 0xbac) = uVar18;
|
|
uVar8 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar18 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbae) = uVar18;
|
|
*(undefined2 *)(iVar12 + 0xbb0) = uVar8;
|
|
}
|
|
else if (DAT_1028_086d == 3) {
|
|
DAT_1028_07d3 = 0xefd0;
|
|
DAT_1028_07d5 = 3;
|
|
DAT_1028_07d7 = 0x30b0;
|
|
DAT_1028_07d9 = 1;
|
|
uVar18 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b(uVar8);
|
|
FUN_1020_0ff7();
|
|
uVar8 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbaa) = uVar8;
|
|
*(undefined2 *)(iVar12 + 0xbac) = uVar18;
|
|
uVar8 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar18 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbae) = uVar18;
|
|
*(undefined2 *)(iVar12 + 0xbb0) = uVar8;
|
|
}
|
|
else if (DAT_1028_086d == 4) {
|
|
DAT_1028_07d3 = 0xfb88;
|
|
DAT_1028_07d5 = 3;
|
|
DAT_1028_07d7 = 0x4ff0;
|
|
DAT_1028_07d9 = 1;
|
|
uVar18 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b(uVar8);
|
|
FUN_1020_0ff7();
|
|
uVar8 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbaa) = uVar8;
|
|
*(undefined2 *)(iVar12 + 0xbac) = uVar18;
|
|
uVar8 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar18 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbae) = uVar18;
|
|
*(undefined2 *)(iVar12 + 0xbb0) = uVar8;
|
|
}
|
|
else if (DAT_1028_086d == 5) {
|
|
DAT_1028_07d3 = 0xf10;
|
|
DAT_1028_07d5 = 4;
|
|
DAT_1028_07d7 = 0x5f90;
|
|
DAT_1028_07d9 = 1;
|
|
uVar18 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b(uVar8);
|
|
FUN_1020_0ff7();
|
|
uVar8 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbaa) = uVar8;
|
|
*(undefined2 *)(iVar12 + 0xbac) = uVar18;
|
|
uVar8 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar18 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbae) = uVar18;
|
|
*(undefined2 *)(iVar12 + 0xbb0) = uVar8;
|
|
}
|
|
else if (DAT_1028_086d == 6) {
|
|
DAT_1028_07d3 = 0x1eb0;
|
|
DAT_1028_07d5 = 4;
|
|
DAT_1028_07d7 = 0x6f30;
|
|
DAT_1028_07d9 = 1;
|
|
uVar18 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b(uVar8);
|
|
FUN_1020_0ff7();
|
|
uVar8 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbaa) = uVar8;
|
|
*(undefined2 *)(iVar12 + 0xbac) = uVar18;
|
|
uVar8 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar18 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbae) = uVar18;
|
|
*(undefined2 *)(iVar12 + 0xbb0) = uVar8;
|
|
}
|
|
else if (DAT_1028_086d == 7) {
|
|
DAT_1028_07d3 = 0x3238;
|
|
DAT_1028_07d5 = 4;
|
|
DAT_1028_07d7 = 0x7ae8;
|
|
DAT_1028_07d9 = 1;
|
|
uVar18 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b(uVar8);
|
|
FUN_1020_0ff7();
|
|
uVar8 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbaa) = uVar8;
|
|
*(undefined2 *)(iVar12 + 0xbac) = uVar18;
|
|
uVar8 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar18 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbae) = uVar18;
|
|
*(undefined2 *)(iVar12 + 0xbb0) = uVar8;
|
|
}
|
|
else if (DAT_1028_086d == 8) {
|
|
DAT_1028_07d3 = 0x3df0;
|
|
DAT_1028_07d5 = 4;
|
|
DAT_1028_07d7 = 0x7ed0;
|
|
DAT_1028_07d9 = 1;
|
|
uVar18 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b(uVar8);
|
|
FUN_1020_0ff7();
|
|
uVar8 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbaa) = uVar8;
|
|
*(undefined2 *)(iVar12 + 0xbac) = uVar18;
|
|
uVar8 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar18 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbae) = uVar18;
|
|
*(undefined2 *)(iVar12 + 0xbb0) = uVar8;
|
|
}
|
|
else if (DAT_1028_086d == 9) {
|
|
DAT_1028_07d3 = 0x4d90;
|
|
DAT_1028_07d5 = 4;
|
|
DAT_1028_07d7 = 0x8a88;
|
|
DAT_1028_07d9 = 1;
|
|
uVar18 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b(uVar8);
|
|
FUN_1020_0ff7();
|
|
uVar8 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbaa) = uVar8;
|
|
*(undefined2 *)(iVar12 + 0xbac) = uVar18;
|
|
uVar8 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar18 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbae) = uVar18;
|
|
*(undefined2 *)(iVar12 + 0xbb0) = uVar8;
|
|
}
|
|
else if (DAT_1028_086d == 0x12) {
|
|
DAT_1028_07d3 = 0xf588;
|
|
DAT_1028_07d5 = 4;
|
|
DAT_1028_07d7 = 0x6760;
|
|
DAT_1028_07d9 = 1;
|
|
*(undefined2 *)(iVar12 + 0xbaa) = 0;
|
|
*(undefined2 *)(iVar12 + 0xbac) = 0;
|
|
*(undefined2 *)(iVar12 + 0xbae) = 1000;
|
|
*(undefined2 *)(iVar12 + 0xbb0) = 0;
|
|
}
|
|
FUN_1000_c426(&stack0xfffe,1,0);
|
|
FUN_1000_9bca(&stack0xfffe);
|
|
FUN_1008_0002(0x10);
|
|
*(undefined1 *)(iVar12 + 0xbdf) = 0;
|
|
}
|
|
}
|
|
else {
|
|
uVar8 = GETDC(unaff_CS,*(undefined2 *)(iVar12 + 4));
|
|
if (DAT_1028_086d < DAT_1028_086f) {
|
|
DAT_1028_086d = DAT_1028_086d + 1;
|
|
}
|
|
else {
|
|
DAT_1028_086d = DAT_1028_086d - 1;
|
|
}
|
|
FUN_1008_0e08(CONCAT11((char)(DAT_1028_086d >> 8),DAT_1028_0873),DAT_1028_086d,uVar8);
|
|
RELEASEDC(0x1008,uVar8);
|
|
}
|
|
}
|
|
local_2e = 1;
|
|
while( true ) {
|
|
if ((*(char *)(iVar12 + local_2e + 0x61) != '\0') &&
|
|
(pcVar1 = (char *)(iVar12 + local_2e + 0x61), *pcVar1 = *pcVar1 + -1,
|
|
*(char *)(iVar12 + local_2e + 0x61) == '\0')) {
|
|
FUN_1000_b3f3(&stack0xfffe,local_2e);
|
|
}
|
|
if (local_2e == 0xaf) break;
|
|
local_2e = local_2e + 1;
|
|
}
|
|
if (DAT_1028_07c7 != '\0') {
|
|
if ((DAT_1028_0857 < 0) || ((DAT_1028_0857 < 1 && (DAT_1028_0855 < 6)))) {
|
|
bVar14 = 0xfffe < DAT_1028_0855;
|
|
DAT_1028_0855 = DAT_1028_0855 + 1;
|
|
DAT_1028_0857 = DAT_1028_0857 + (uint)bVar14;
|
|
FUN_1000_6f27(&stack0xfffe);
|
|
}
|
|
else {
|
|
DAT_1028_07c7 = '\0';
|
|
}
|
|
}
|
|
uVar18 = DAT_1028_07e9;
|
|
uVar8 = DAT_1028_07e5;
|
|
if (1 < *(byte *)(iVar12 + 0x61)) {
|
|
if (DAT_1028_41f9 == '\0') {
|
|
if (*(char *)(iVar12 + 0xbe1) == '\0') {
|
|
*(undefined2 *)(iVar12 + 0xbc2) = DAT_1028_07e3;
|
|
*(undefined2 *)(iVar12 + 0xbc4) = uVar8;
|
|
uVar8 = DAT_1028_07ed;
|
|
*(undefined2 *)(iVar12 + 0xbc6) = DAT_1028_07eb;
|
|
*(undefined2 *)(iVar12 + 0xbc8) = uVar8;
|
|
FUN_1000_a38e(&stack0xfffe,0);
|
|
}
|
|
else {
|
|
*(undefined1 *)(iVar12 + 0xbe1) = 0;
|
|
}
|
|
*(undefined1 *)(iVar12 + 0x61) = 1;
|
|
uVar8 = DAT_1028_07e9;
|
|
DAT_1028_0874 = '\0';
|
|
DAT_1028_41f9 = '\x01';
|
|
if (DAT_1028_424c == '\0') {
|
|
*(undefined2 *)(iVar12 + 0xbc2) = DAT_1028_07e7;
|
|
*(undefined2 *)(iVar12 + 0xbc4) = uVar8;
|
|
uVar8 = DAT_1028_07f1;
|
|
*(undefined2 *)(iVar12 + 0xbc6) = DAT_1028_07ef;
|
|
*(undefined2 *)(iVar12 + 0xbc8) = uVar8;
|
|
FUN_1000_ae6e(&stack0xfffe);
|
|
}
|
|
else {
|
|
DAT_1028_07e3 = DAT_1028_07e7;
|
|
DAT_1028_07e5 = DAT_1028_07e9;
|
|
DAT_1028_07eb = DAT_1028_07ef;
|
|
DAT_1028_07ed = DAT_1028_07f1;
|
|
DAT_1028_07f3 = DAT_1028_07f7;
|
|
DAT_1028_07f5 = DAT_1028_07f9;
|
|
DAT_1028_07fb = DAT_1028_07ff;
|
|
DAT_1028_07fd = DAT_1028_0801;
|
|
DAT_1028_080b = DAT_1028_0811;
|
|
DAT_1028_080d = DAT_1028_0813;
|
|
DAT_1028_080f = DAT_1028_0815;
|
|
DAT_1028_0803 = DAT_1028_0807;
|
|
DAT_1028_0805 = DAT_1028_0809;
|
|
FUN_1000_c36b(&stack0xfffe,0,0);
|
|
DAT_1028_424c = '\0';
|
|
}
|
|
}
|
|
else if (DAT_1028_424c == '\0') {
|
|
if (*(char *)(iVar12 + 0xbe1) == '\0') {
|
|
*(undefined2 *)(iVar12 + 0xbc2) = DAT_1028_07e7;
|
|
*(undefined2 *)(iVar12 + 0xbc4) = uVar18;
|
|
uVar8 = DAT_1028_07f1;
|
|
*(undefined2 *)(iVar12 + 0xbc6) = DAT_1028_07ef;
|
|
*(undefined2 *)(iVar12 + 0xbc8) = uVar8;
|
|
FUN_1000_a38e(&stack0xfffe,0);
|
|
}
|
|
else {
|
|
*(undefined1 *)(iVar12 + 0xbe1) = 0;
|
|
}
|
|
*(undefined1 *)(iVar12 + 0x61) = 1;
|
|
DAT_1028_0874 = '\0';
|
|
FUN_1000_c36b(&stack0xfffe,0,0);
|
|
}
|
|
}
|
|
if ((*(char *)(iVar12 + 0xbd8) == '\0') && (*(char *)(iVar12 + 0xbdf) == '\0')) {
|
|
FUN_1000_c79c(&stack0xfffe);
|
|
}
|
|
if (*(char *)(iVar12 + 0xbe2) == '\x01') {
|
|
*(undefined1 *)(iVar12 + 0xbe2) = 0;
|
|
FUN_1000_c426(&stack0xfffe,1,0);
|
|
FUN_1000_bdde(&stack0xfffe,2,0);
|
|
FUN_1000_9e85(&stack0xfffe);
|
|
uVar8 = GETDC(0x1000,*(undefined2 *)(iVar12 + 4));
|
|
FUN_1008_08bb(0x14,0x94,0xf3,0x54,uVar8);
|
|
FUN_1008_093f(0x14,0x94,0xf3,0x54,uVar8);
|
|
RELEASEDC(0x1008,uVar8);
|
|
FUN_1000_c426(&stack0xfffe,0,0);
|
|
FUN_1000_bdde(&stack0xfffe,1,0);
|
|
}
|
|
if (*(char *)(iVar12 + 0xbe0) == '\x01') {
|
|
FUN_1000_c426(&stack0xfffe,0,0);
|
|
FUN_1000_bdde(&stack0xfffe,1,0);
|
|
uVar8 = DAT_1028_396b;
|
|
DAT_1028_07d3 = DAT_1028_3969;
|
|
DAT_1028_07d5 = DAT_1028_396b;
|
|
DAT_1028_07d7 = DAT_1028_396d;
|
|
DAT_1028_07d9 = DAT_1028_396f;
|
|
*(undefined2 *)(iVar12 + 0xbc2) = DAT_1028_3969;
|
|
*(undefined2 *)(iVar12 + 0xbc4) = uVar8;
|
|
uVar8 = DAT_1028_07d9;
|
|
*(undefined2 *)(iVar12 + 0xbc6) = DAT_1028_07d7;
|
|
*(undefined2 *)(iVar12 + 0xbc8) = uVar8;
|
|
FUN_1000_a38e(&stack0xfffe,0);
|
|
*(undefined1 *)(iVar12 + (uint)DAT_1028_07d1 * 0x14 + 0x47b) = 0;
|
|
FUN_1000_b3f3(&stack0xfffe,0x3fc);
|
|
*(undefined2 *)(iVar12 + 0xbaa) = 0;
|
|
*(undefined2 *)(iVar12 + 0xbac) = 0;
|
|
uVar8 = *(undefined2 *)(iVar12 + 0x58);
|
|
FUN_1020_100b();
|
|
FUN_1020_0ff7();
|
|
uVar18 = FUN_1020_1017();
|
|
*(undefined2 *)(iVar12 + 0xbae) = uVar18;
|
|
*(undefined2 *)(iVar12 + 0xbb0) = uVar8;
|
|
*(undefined2 *)(iVar12 + 0xbca) = 0;
|
|
*(undefined2 *)(iVar12 + 0xbcc) = 0;
|
|
*(undefined2 *)(iVar12 + 0xbce) = 0;
|
|
*(undefined2 *)(iVar12 + 0xbd0) = 0;
|
|
*(undefined2 *)(iVar12 + 0xbd2) = 0;
|
|
DAT_1028_399a = 2;
|
|
FUN_1000_c426(&stack0xfffe,1,0);
|
|
FUN_1000_bdde(&stack0xfffe,2,0);
|
|
DAT_1028_41f9 = '\x01';
|
|
DAT_1028_424c = '\x01';
|
|
*(undefined1 *)(iVar12 + 0x61) = 2;
|
|
DAT_1028_0874 = '\x01';
|
|
*(undefined1 *)(iVar12 + 0xbe0) = 0;
|
|
}
|
|
goto LAB_1000_fd59;
|
|
}
|
|
if (DAT_1028_07c9 != '\0') {
|
|
iVar9 = 2;
|
|
iVar11 = 0;
|
|
FUN_1020_08e6();
|
|
if (iVar9 == 0 && iVar11 == 0) {
|
|
FUN_1020_08e6();
|
|
iVar9 = FUN_1020_08e6();
|
|
if ((iVar9 < 0) || (7 < iVar9)) {
|
|
if ((7 < iVar9) && (iVar9 < 0x10)) {
|
|
FUN_1000_b3f3(&stack0xfffe,iVar9 + 0x84);
|
|
}
|
|
}
|
|
else {
|
|
FUN_1000_b30b(&stack0xfffe,iVar9 + 0x8c);
|
|
}
|
|
}
|
|
iVar9 = 4;
|
|
iVar11 = 0;
|
|
FUN_1020_08e6();
|
|
if (iVar9 == 0 && iVar11 == 0) {
|
|
FUN_1020_08e6();
|
|
iVar9 = FUN_1020_08e6();
|
|
if (iVar9 == 0) {
|
|
FUN_1000_b30b(&stack0xfffe,0x3e9);
|
|
FUN_1000_b3f3(&stack0xfffe,0x3ea);
|
|
}
|
|
else if ((iVar9 < 1) || (4 < iVar9)) {
|
|
if ((4 < iVar9) && (iVar9 < 9)) {
|
|
FUN_1000_b30b(&stack0xfffe,0x3f1 - iVar9);
|
|
FUN_1000_b3f3(&stack0xfffe,0x3f2 - iVar9);
|
|
}
|
|
}
|
|
else {
|
|
FUN_1000_b30b(&stack0xfffe,iVar9 + 0x3e9);
|
|
FUN_1000_b3f3(&stack0xfffe,iVar9 + 1000);
|
|
}
|
|
}
|
|
iVar9 = 0x20;
|
|
uVar8 = 0x1020;
|
|
FUN_1020_08e6();
|
|
if (iVar9 == 0) {
|
|
FUN_1000_b30b(&stack0xfffe,0x99);
|
|
FUN_1000_b30b(&stack0xfffe,0x9a);
|
|
uVar8 = 0x1000;
|
|
FUN_1000_b30b(&stack0xfffe,6);
|
|
}
|
|
else if (iVar9 == 0x10) {
|
|
FUN_1000_b3f3(&stack0xfffe,0x99);
|
|
FUN_1000_b3f3(&stack0xfffe,0x9a);
|
|
uVar8 = 0x1000;
|
|
FUN_1000_b3f3(&stack0xfffe,6);
|
|
}
|
|
iVar9 = 4;
|
|
iVar11 = 0;
|
|
uVar18 = 0xf62f;
|
|
FUN_1020_08e6();
|
|
if (iVar9 == 0 && iVar11 == 0) {
|
|
uVar8 = *(undefined2 *)(iVar12 + 4);
|
|
uVar15 = GETDC(0x1020,uVar8);
|
|
FUN_1020_08e6();
|
|
iVar9 = FUN_1020_08e6();
|
|
if (iVar9 < 5) {
|
|
iVar9 = (iVar9 * 3 + 0x5a) * 0x53;
|
|
local_4d = (undefined1)(iVar9 + 0x95b);
|
|
uVar2 = (undefined1)((uint)(iVar9 + 0x95b) >> 8);
|
|
uVar3 = 0x10;
|
|
FUN_1008_0837((*(int *)(iVar9 + 0x9ac) - *(int *)(iVar9 + 0x9a8)) + 1,
|
|
(*(int *)(iVar9 + 0x9aa) - *(int *)(iVar9 + 0x9a6)) + -10,
|
|
*(undefined2 *)(iVar9 + 0x9a8),*(undefined2 *)(iVar9 + 0x9a6),uVar15);
|
|
iVar9 = CONCAT11(uVar2,local_4d);
|
|
uVar18 = (undefined2)(CONCAT13(uVar3,CONCAT12(0x28,iVar9)) >> 0x10);
|
|
FUN_1008_093f((*(int *)(iVar9 + 0x51) - *(int *)(iVar9 + 0x4d)) + 1,
|
|
(*(int *)(iVar9 + 0x4f) - *(int *)(iVar9 + 0x4b)) + -10,
|
|
*(undefined2 *)(iVar9 + 0x4d),*(undefined2 *)(iVar9 + 0x4b),uVar15);
|
|
}
|
|
else {
|
|
iVar9 = ((iVar9 + -5) * 3 + 0x5a) * 0x53;
|
|
local_4d = (undefined1)(iVar9 + 0x95b);
|
|
uVar2 = (undefined1)((uint)(iVar9 + 0x95b) >> 8);
|
|
uVar3 = 0x10;
|
|
FUN_1008_08bb((*(int *)(iVar9 + 0x9ac) - *(int *)(iVar9 + 0x9a8)) + 1,
|
|
(*(int *)(iVar9 + 0x9aa) - *(int *)(iVar9 + 0x9a6)) + -10,
|
|
*(undefined2 *)(iVar9 + 0x9a8),*(undefined2 *)(iVar9 + 0x9a6),uVar15);
|
|
iVar9 = CONCAT11(uVar2,local_4d);
|
|
uVar18 = (undefined2)(CONCAT13(uVar3,CONCAT12(0x28,iVar9)) >> 0x10);
|
|
FUN_1008_093f((*(int *)(iVar9 + 0x51) - *(int *)(iVar9 + 0x4d)) + 1,
|
|
(*(int *)(iVar9 + 0x4f) - *(int *)(iVar9 + 0x4b)) + -10,
|
|
*(undefined2 *)(iVar9 + 0x4d),*(undefined2 *)(iVar9 + 0x4b),uVar15);
|
|
}
|
|
uVar18 = *(undefined2 *)(iVar12 + 4);
|
|
RELEASEDC(0x1008,uVar15);
|
|
}
|
|
iVar9 = 4;
|
|
iVar11 = 0;
|
|
FUN_1020_08e6(uVar18,uVar8);
|
|
if (iVar9 == 0 && iVar11 == 0) {
|
|
uVar15 = GETDC(0x1020,*(undefined2 *)(iVar12 + 4));
|
|
FUN_1020_08e6();
|
|
uVar16 = 0x1020;
|
|
iVar9 = FUN_1020_08e6();
|
|
if (iVar9 == 0) {
|
|
FUN_1008_0837(9,9,0xd1,0x96,uVar15);
|
|
FUN_1008_093f(9,9,0xd1,0x96,uVar15);
|
|
FUN_1008_08bb(9,9,0xe0,0xc0,uVar15);
|
|
uVar16 = 0x1008;
|
|
FUN_1008_093f(9,9,0xe0,0xc0,uVar15);
|
|
}
|
|
else if (iVar9 == 1) {
|
|
FUN_1008_0837(9,9,0xd6,0xa4,uVar15);
|
|
FUN_1008_093f(9,9,0xd6,0xa4,uVar15);
|
|
FUN_1008_08bb(9,9,0xd1,0x96,uVar15);
|
|
uVar16 = 0x1008;
|
|
FUN_1008_093f(9,9,0xd1,0x96,uVar15);
|
|
}
|
|
else if (iVar9 == 2) {
|
|
FUN_1008_0837(9,9,0xdb,0xb2,uVar15);
|
|
FUN_1008_093f(9,9,0xdb,0xb2,uVar15);
|
|
FUN_1008_08bb(9,9,0xd6,0xa4,uVar15);
|
|
uVar16 = 0x1008;
|
|
FUN_1008_093f(9,9,0xd6,0xa4,uVar15);
|
|
}
|
|
else if (iVar9 == 3) {
|
|
FUN_1008_0837(9,9,0xe0,0xc0,uVar15);
|
|
FUN_1008_093f(9,9,0xe0,0xc0,uVar15);
|
|
FUN_1008_08bb(9,9,0xdb,0xb2,uVar15);
|
|
uVar16 = 0x1008;
|
|
FUN_1008_093f(9,9,0xdb,0xb2,uVar15);
|
|
}
|
|
RELEASEDC(uVar16,uVar15);
|
|
}
|
|
iVar9 = 8;
|
|
iVar11 = 0;
|
|
FUN_1020_08e6(uVar18,uVar8);
|
|
if (iVar9 == 0 && iVar11 == 0) {
|
|
uVar8 = GETDC(0x1020,*(undefined2 *)(iVar12 + 4));
|
|
FUN_1020_08e6();
|
|
iVar9 = FUN_1020_08e6();
|
|
if (iVar9 < 10) {
|
|
FUN_1008_0dbd(iVar9,uVar8);
|
|
}
|
|
else {
|
|
FUN_1008_0dbd(0x12 - iVar9,uVar8);
|
|
}
|
|
RELEASEDC(0x1008,uVar8);
|
|
}
|
|
iVar9 = 6;
|
|
iVar11 = 0;
|
|
unaff_CS = 0x1020;
|
|
FUN_1020_08e6();
|
|
if (iVar9 == 0 && iVar11 == 0) {
|
|
bVar14 = 0xfffe < DAT_1028_087a;
|
|
DAT_1028_087a = DAT_1028_087a + 1;
|
|
DAT_1028_087c = DAT_1028_087c + (uint)bVar14;
|
|
uVar4 = GETDC(0x1020,*(undefined2 *)(iVar12 + 4));
|
|
uVar5 = CREATECOMPATIBLEDC(0x1228,uVar4);
|
|
uVar6 = CREATECOMPATIBLEDC(0x1228,uVar4);
|
|
uVar7 = CREATECOMPATIBLEBITMAP(0x1228,0x1e,0x11c);
|
|
uVar2 = SELECTOBJECT(0x1228,DAT_1028_085f);
|
|
uVar16 = uVar6;
|
|
uVar3 = SELECTOBJECT(0x1228,uVar7);
|
|
uVar15 = uVar6;
|
|
BITBLT(0x1228,0x20,0xcc,0x115,0x1d9,uVar5,0x1e,100,0,0);
|
|
uVar18 = uVar6;
|
|
BITBLT(0x1228,0x20,0xcc,0xe9,0x1d8,uVar5,0x1e,0x89,0,100);
|
|
uVar8 = uVar5;
|
|
SELECTOBJECT(0x1228,DAT_1028_0861);
|
|
iVar9 = 0x31;
|
|
iVar11 = 0;
|
|
FUN_1020_08e6(uVar8,uVar18,uVar15,uVar16);
|
|
if ((iVar11 < 1) && ((iVar11 < 0 || (iVar9 == 0)))) {
|
|
LAB_1000_fabd:
|
|
uVar16 = 0;
|
|
uVar15 = 0;
|
|
FUN_1020_08e6(0,0,uVar6);
|
|
iVar9 = FUN_1020_08a9();
|
|
iVar9 = 0xed - iVar9;
|
|
uVar18 = 0x1e;
|
|
uVar8 = uVar5;
|
|
FUN_1020_08e6(uVar5,0x1e,iVar9);
|
|
iVar11 = FUN_1020_08a9();
|
|
BITBLT(0x1020,0xc6,0x88,0,iVar11 + 400,uVar8,uVar18,iVar9,uVar15,uVar16);
|
|
FUN_1020_08e6(uVar6);
|
|
iVar9 = FUN_1020_08a9();
|
|
iVar9 = 0xed - iVar9;
|
|
uVar18 = 0;
|
|
FUN_1020_08e6(0,iVar9);
|
|
uVar8 = FUN_1020_08a9();
|
|
BITBLT(0x1020,0xc6,0x88,0,0xa0,uVar5,0x1e,uVar8,uVar18,iVar9);
|
|
}
|
|
else {
|
|
uVar10 = 0x31;
|
|
iVar9 = 0;
|
|
FUN_1020_08e6(uVar8,uVar18,uVar15);
|
|
if ((-1 < iVar9) && ((0 < iVar9 || (0x15 < uVar10)))) goto LAB_1000_fabd;
|
|
uVar17 = 0;
|
|
uVar16 = 0;
|
|
uVar15 = 0xed;
|
|
uVar18 = 0x1e;
|
|
uVar8 = uVar5;
|
|
FUN_1020_08e6(uVar5,0x1e,0xed,0,0,uVar6);
|
|
iVar9 = FUN_1020_08a9();
|
|
BITBLT(0x1020,0xc6,0x88,0,iVar9 + 400,uVar8,uVar18,uVar15,uVar16,uVar17);
|
|
}
|
|
uVar18 = uVar4;
|
|
BITBLT(0x1228,0x20,0xcc,0,0,uVar6,0x1e,0xed,0xe9,0x174);
|
|
uVar8 = uVar5;
|
|
SELECTOBJECT(0x28,uVar2);
|
|
uVar2 = (undefined1)uVar6;
|
|
SELECTOBJECT(0x28,uVar3);
|
|
DELETEOBJECT(0x28,(char)uVar7,uVar2,uVar8,uVar18);
|
|
DELETEDC(0x1228,(char)uVar5);
|
|
DELETEDC(0x1228,uVar6);
|
|
unaff_CS = 0x1228;
|
|
RELEASEDC(0x1228,uVar4);
|
|
}
|
|
}
|
|
if ((DAT_1028_07c8 != '\0') && (*(char *)(iVar12 + 0xbdd) == '\0')) {
|
|
*(undefined1 *)(iVar12 + 0xbdf) = 1;
|
|
if ((DAT_1028_0853 < 0) || ((DAT_1028_0853 < 1 && (DAT_1028_0851 < 0x119)))) {
|
|
if ((DAT_1028_0853 == 0) && (DAT_1028_0851 == 1)) {
|
|
for (local_30 = 0x81; *(undefined2 *)(local_30 * 0x53 + 0x99e) = 0, local_30 != 0x85;
|
|
local_30 = local_30 + 1) {
|
|
}
|
|
}
|
|
bVar14 = 0xfffe < DAT_1028_0851;
|
|
DAT_1028_0851 = DAT_1028_0851 + 1;
|
|
DAT_1028_0853 = DAT_1028_0853 + (uint)bVar14;
|
|
FUN_1000_7440(&stack0xfffe);
|
|
}
|
|
else {
|
|
DAT_1028_07c8 = '\0';
|
|
*(undefined1 *)(iVar12 + 0xbdf) = 0;
|
|
DAT_1028_0851 = 0;
|
|
DAT_1028_0853 = 0;
|
|
uVar8 = GETDC(unaff_CS,*(undefined2 *)(iVar12 + 4));
|
|
FUN_1008_08bb(0x46,0x44,0x29,0x57,uVar8);
|
|
FUN_1008_093f(0x46,0x44,0x29,0x57,uVar8);
|
|
RELEASEDC(0x1008,uVar8);
|
|
for (local_30 = 0xf;
|
|
*(undefined1 *)(iVar12 + (uint)DAT_1028_07d1 * 0x14 + local_30 + 0x467) = 0,
|
|
local_30 != 0x13; local_30 = local_30 + 1) {
|
|
}
|
|
}
|
|
}
|
|
if (*(int *)((uint)DAT_1028_07d0 * 2 + 0x81f) == -1) {
|
|
FUN_1000_a72c(&stack0xfffe);
|
|
FUN_1000_acc2(&stack0xfffe);
|
|
FUN_1000_a604(&stack0xfffe);
|
|
FUN_1000_9e85(&stack0xfffe);
|
|
uVar8 = GETDC(0x1000,*(undefined2 *)(iVar12 + 4));
|
|
FUN_1008_08bb(0x14,0x94,0xf3,0x54,uVar8);
|
|
FUN_1008_093f(0x14,0x94,0xf3,0x54,uVar8);
|
|
RELEASEDC(0x1008,uVar8);
|
|
DAT_1028_0876 = 0;
|
|
DAT_1028_0878 = 0;
|
|
}
|
|
LAB_1000_fd59:
|
|
FUN_1000_99f0(&stack0xfffe);
|
|
FUN_1008_00e2();
|
|
*(undefined1 *)(iVar12 + 0x51) = 0;
|
|
if (*(int *)(iVar12 + 0x5e) != 0) {
|
|
*(int *)(iVar12 + 0x5e) = *(int *)(iVar12 + 0x5e) + -1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1000:fd85 ne_program_entry ===== */
|
|
|
|
/* WARNING: Control flow encountered bad instruction data */
|
|
|
|
void ne_program_entry(void)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined4 uVar2;
|
|
|
|
INITTASK();
|
|
FUN_1020_0002();
|
|
FUN_1008_298a();
|
|
FUN_1008_2554();
|
|
FUN_1010_0472();
|
|
FUN_1008_15c2();
|
|
FUN_1008_11b8();
|
|
FUN_1008_0f27();
|
|
uVar1 = 0x1228;
|
|
uVar2 = GETVERSION(0x1008);
|
|
DAT_1028_07c1 = (undefined2)((ulong)uVar2 >> 0x10);
|
|
DAT_1028_07bf = (undefined2)uVar2;
|
|
if ((byte)uVar2 < 3) {
|
|
LAB_1000_fdf4:
|
|
(*DAT_1028_0666)(0x1228,0x10,0x3c8,0x1028,0x396,0x1028,0);
|
|
}
|
|
else {
|
|
if ((byte)uVar2 == 3) {
|
|
if ((byte)((ulong)uVar2 >> 8) < 10) goto LAB_1000_fdf4;
|
|
}
|
|
uVar1 = 0x1018;
|
|
FUN_1018_1a61(0x748,0x1028,0x24,0x3e1,0x1028);
|
|
(*(code *)*(undefined2 *)(DAT_1028_0748 + 0x1c))(0x1018,0x748,0x1028);
|
|
(*(code *)*(undefined2 *)(DAT_1028_0748 + 8))(0x1018,0x748,0x1028,0);
|
|
}
|
|
FUN_1020_0061(uVar1);
|
|
/* WARNING: Bad instruction - Truncating control flow here */
|
|
halt_baddata();
|
|
}
|
|
|
|
|
|
/* ===== 1008:0002 FUN_1008_0002 ===== */
|
|
|
|
void __stdcall16far FUN_1008_0002(undefined2 param_1)
|
|
|
|
{
|
|
if ((DAT_1028_07c6 == '\0') && (DAT_1028_43f2 != '\0')) {
|
|
FUN_1008_1131(param_1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:0023 FUN_1008_0023 ===== */
|
|
|
|
void __stdcall16far FUN_1008_0023(undefined2 param_1)
|
|
|
|
{
|
|
undefined2 *puVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 *puVar5;
|
|
undefined2 uVar6;
|
|
int local_8;
|
|
|
|
puVar5 = (undefined2 *)FUN_1020_012d(0x404);
|
|
uVar6 = (undefined2)((ulong)puVar5 >> 0x10);
|
|
puVar1 = (undefined2 *)puVar5;
|
|
if (puVar5 != (undefined2 *)0x0) {
|
|
*puVar5 = 0x300;
|
|
puVar1[1] = 0x100;
|
|
local_8 = 0;
|
|
while( true ) {
|
|
*(undefined1 *)(puVar1 + local_8 * 2 + 2) = 0;
|
|
*(undefined1 *)((int)puVar1 + local_8 * 4 + 5) = 0;
|
|
*(undefined1 *)(puVar1 + local_8 * 2 + 3) = 0;
|
|
*(undefined1 *)((int)puVar1 + local_8 * 4 + 7) = 4;
|
|
if (local_8 == 0xff) break;
|
|
local_8 = local_8 + 1;
|
|
}
|
|
uVar2 = GETDC(0x1020,param_1);
|
|
uVar4 = uVar2;
|
|
uVar3 = CREATEPALETTE(0x1228,puVar1);
|
|
uVar3 = SELECTPALETTE(0x1228,0,uVar3);
|
|
REALIZEPALETTE(0x1228,uVar2,uVar6,uVar4);
|
|
uVar6 = uVar2;
|
|
uVar4 = SELECTPALETTE(0x1228,1,uVar3);
|
|
DELETEOBJECT(0x1228,uVar4,uVar6);
|
|
RELEASEDC(0x1228,uVar2);
|
|
FUN_1020_0147(0x404,puVar5);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:00e2 FUN_1008_00e2 ===== */
|
|
|
|
void __cdecl16far FUN_1008_00e2(void)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
undefined1 local_14 [2];
|
|
int local_12;
|
|
|
|
do {
|
|
iVar1 = PEEKMESSAGE(unaff_CS,1,0x32,0,0,local_14,unaff_SS);
|
|
if ((((iVar1 != 0) && (local_12 != 0x580)) && (local_12 != 0x100)) && (local_12 != 0x101)) {
|
|
TRANSLATEMESSAGE(0x1228,local_14);
|
|
DISPATCHMESSAGE(0x1228,local_14);
|
|
}
|
|
unaff_CS = 0x1228;
|
|
} while (iVar1 != 0);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:0138 FUN_1008_0138 ===== */
|
|
|
|
void __stdcall16far
|
|
FUN_1008_0138(undefined2 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4,
|
|
undefined2 param_5,int param_6,undefined2 param_7,int param_8,undefined2 param_9,
|
|
undefined2 param_10,undefined2 param_11,undefined2 param_12,undefined2 param_13,
|
|
undefined2 param_14,undefined2 param_15,undefined2 param_16,undefined2 param_17,
|
|
undefined2 param_18,undefined2 param_19,undefined2 param_20,undefined2 param_21,
|
|
undefined2 param_22,undefined2 param_23,undefined2 param_24,undefined2 param_25,
|
|
uint param_26,int param_27,uint param_28,int param_29,uint param_30,int param_31,
|
|
uint param_32,int param_33,uint param_34,int param_35,char param_36,undefined1 param_37
|
|
,char param_38,undefined1 param_39,uint param_40)
|
|
|
|
{
|
|
uint uVar1;
|
|
undefined2 uVar2;
|
|
uint uVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
undefined2 uVar6;
|
|
int iVar7;
|
|
bool bVar8;
|
|
uint local_a;
|
|
int local_8;
|
|
uint local_6;
|
|
int local_4;
|
|
|
|
if (param_40 < 0xb0) {
|
|
iVar7 = param_40 * 0x53;
|
|
*(undefined1 *)(iVar7 + 0x95b) = param_38;
|
|
if (param_26 == 0 && param_27 == 0) {
|
|
param_38 = '\x02';
|
|
}
|
|
else {
|
|
param_38 = '\x01';
|
|
}
|
|
if (param_36 == '\x01') {
|
|
bVar8 = CARRY2(DAT_1028_0849,param_34);
|
|
param_34 = DAT_1028_0849 + param_34;
|
|
param_35 = DAT_1028_084b + param_35 + (uint)bVar8;
|
|
bVar8 = CARRY2(DAT_1028_084d,param_32);
|
|
param_32 = DAT_1028_084d + param_32;
|
|
param_33 = DAT_1028_084f + param_33 + (uint)bVar8;
|
|
local_6 = param_34 + param_30;
|
|
local_4 = param_35 + param_31 + (uint)CARRY2(param_34,param_30);
|
|
local_a = param_32 + param_28;
|
|
local_8 = param_33 + param_29 + (uint)CARRY2(param_32,param_28);
|
|
}
|
|
else {
|
|
bVar8 = 0x13 < param_32;
|
|
param_32 = param_32 - 0x14;
|
|
param_33 = param_33 + -1 + (uint)bVar8;
|
|
local_6 = param_30;
|
|
local_4 = param_31;
|
|
local_a = param_28 - 0x14;
|
|
local_8 = param_29 + -1 + (uint)(0x13 < param_28);
|
|
}
|
|
if (((local_4 < 1) && ((local_4 < 0 || (local_6 == 0)))) ||
|
|
((local_4 <= param_35 && ((local_4 < param_35 || (local_6 <= param_34)))))) {
|
|
if (((local_4 < 1) && ((local_4 < 0 || (local_6 == 0)))) ||
|
|
((param_35 <= local_4 && ((param_35 < local_4 || (param_34 <= local_6)))))) {
|
|
iVar4 = (param_35 - param_27) - (uint)(param_34 < param_26);
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x95d) = uVar2;
|
|
*(int *)(iVar7 + 0x95f) = iVar4;
|
|
iVar4 = param_35 + param_27 + (uint)CARRY2(param_34,param_26);
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x965) = uVar2;
|
|
*(int *)(iVar7 + 0x967) = iVar4;
|
|
}
|
|
else {
|
|
iVar4 = local_4;
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x95d) = uVar2;
|
|
*(int *)(iVar7 + 0x95f) = iVar4;
|
|
iVar4 = param_35;
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x965) = uVar2;
|
|
*(int *)(iVar7 + 0x967) = iVar4;
|
|
}
|
|
}
|
|
else {
|
|
iVar4 = param_35;
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x95d) = uVar2;
|
|
*(int *)(iVar7 + 0x95f) = iVar4;
|
|
iVar4 = local_4;
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x965) = uVar2;
|
|
*(int *)(iVar7 + 0x967) = iVar4;
|
|
}
|
|
if (((local_8 < 1) && ((local_8 < 0 || (local_a == 0)))) ||
|
|
((local_8 <= param_33 && ((local_8 < param_33 || (local_a <= param_32)))))) {
|
|
if (((local_8 < 1) && ((local_8 < 0 || (local_a == 0)))) ||
|
|
((param_33 <= local_8 && ((param_33 < local_8 || (param_32 <= local_a)))))) {
|
|
iVar4 = (param_33 - param_27) - (uint)(param_32 < param_26);
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x961) = uVar2;
|
|
*(int *)(iVar7 + 0x963) = iVar4;
|
|
iVar4 = param_33 + param_27 + (uint)CARRY2(param_32,param_26);
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x969) = uVar2;
|
|
*(int *)(iVar7 + 0x96b) = iVar4;
|
|
}
|
|
else {
|
|
iVar4 = local_8;
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x961) = uVar2;
|
|
*(int *)(iVar7 + 0x963) = iVar4;
|
|
iVar4 = param_33;
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x969) = uVar2;
|
|
*(int *)(iVar7 + 0x96b) = iVar4;
|
|
}
|
|
}
|
|
else {
|
|
iVar4 = param_33;
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x961) = uVar2;
|
|
*(int *)(iVar7 + 0x963) = iVar4;
|
|
iVar4 = local_8;
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x969) = uVar2;
|
|
*(int *)(iVar7 + 0x96b) = iVar4;
|
|
}
|
|
if (param_38 == '\x01') {
|
|
iVar4 = param_35;
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x96d) = uVar2;
|
|
*(int *)(iVar7 + 0x96f) = iVar4;
|
|
iVar4 = param_33;
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x971) = uVar2;
|
|
*(int *)(iVar7 + 0x973) = iVar4;
|
|
*(undefined2 *)(iVar7 + 0x975) = 0;
|
|
*(undefined2 *)(iVar7 + 0x977) = 0;
|
|
*(undefined2 *)(iVar7 + 0x979) = 0;
|
|
*(undefined2 *)(iVar7 + 0x97b) = 0;
|
|
uVar6 = 0;
|
|
FUN_1020_08a9();
|
|
uVar2 = FUN_1020_100b();
|
|
*(undefined2 *)(iVar7 + 0x97d) = uVar2;
|
|
*(undefined2 *)(iVar7 + 0x97f) = uVar6;
|
|
*(int *)(iVar7 + 0x981) = param_27;
|
|
if ((*(int *)(iVar7 + 0x95f) < *(int *)(iVar7 + 0x96f)) ||
|
|
((*(int *)(iVar7 + 0x95f) <= *(int *)(iVar7 + 0x96f) &&
|
|
(*(uint *)(iVar7 + 0x95d) < *(uint *)(iVar7 + 0x96d))))) {
|
|
uVar1 = *(uint *)(iVar7 + 0x95d);
|
|
iVar4 = *(int *)(iVar7 + 0x95f);
|
|
*(int *)(iVar7 + 0x95d) = uVar1 + 0xec78;
|
|
*(int *)(iVar7 + 0x95f) = iVar4 - (uint)(uVar1 < 5000);
|
|
}
|
|
else {
|
|
iVar5 = param_8;
|
|
uVar3 = FUN_1020_08a9();
|
|
uVar1 = *(uint *)(iVar7 + 0x95d);
|
|
iVar4 = *(int *)(iVar7 + 0x95f);
|
|
*(int *)(iVar7 + 0x95d) = uVar3 + *(uint *)(iVar7 + 0x95d);
|
|
*(int *)(iVar7 + 0x95f) = iVar5 + iVar4 + (uint)CARRY2(uVar3,uVar1);
|
|
}
|
|
if ((*(int *)(iVar7 + 0x963) < *(int *)(iVar7 + 0x973)) ||
|
|
((*(int *)(iVar7 + 0x963) <= *(int *)(iVar7 + 0x973) &&
|
|
(*(uint *)(iVar7 + 0x961) < *(uint *)(iVar7 + 0x971))))) {
|
|
uVar1 = *(uint *)(iVar7 + 0x961);
|
|
iVar4 = *(int *)(iVar7 + 0x963);
|
|
*(int *)(iVar7 + 0x961) = uVar1 + 0xec78;
|
|
*(int *)(iVar7 + 0x963) = iVar4 - (uint)(uVar1 < 5000);
|
|
}
|
|
else {
|
|
iVar5 = param_6;
|
|
uVar3 = FUN_1020_08a9();
|
|
uVar1 = *(uint *)(iVar7 + 0x961);
|
|
iVar4 = *(int *)(iVar7 + 0x963);
|
|
*(int *)(iVar7 + 0x961) = uVar3 + *(uint *)(iVar7 + 0x961);
|
|
*(int *)(iVar7 + 0x963) = iVar5 + iVar4 + (uint)CARRY2(uVar3,uVar1);
|
|
}
|
|
if ((*(int *)(iVar7 + 0x96f) < *(int *)(iVar7 + 0x967)) ||
|
|
((*(int *)(iVar7 + 0x96f) <= *(int *)(iVar7 + 0x967) &&
|
|
(*(uint *)(iVar7 + 0x96d) < *(uint *)(iVar7 + 0x965))))) {
|
|
uVar1 = *(uint *)(iVar7 + 0x965);
|
|
iVar4 = *(int *)(iVar7 + 0x967);
|
|
*(int *)(iVar7 + 0x965) = uVar1 + 5000;
|
|
*(int *)(iVar7 + 0x967) = iVar4 + (uint)(0xec77 < uVar1);
|
|
}
|
|
else {
|
|
uVar3 = FUN_1020_08a9();
|
|
uVar1 = *(uint *)(iVar7 + 0x965);
|
|
iVar4 = *(int *)(iVar7 + 0x967);
|
|
*(int *)(iVar7 + 0x965) = uVar3 + *(uint *)(iVar7 + 0x965);
|
|
*(int *)(iVar7 + 0x967) = param_8 + iVar4 + (uint)CARRY2(uVar3,uVar1);
|
|
}
|
|
if ((*(int *)(iVar7 + 0x973) < *(int *)(iVar7 + 0x96b)) ||
|
|
((*(int *)(iVar7 + 0x973) <= *(int *)(iVar7 + 0x96b) &&
|
|
(*(uint *)(iVar7 + 0x971) < *(uint *)(iVar7 + 0x969))))) {
|
|
uVar1 = *(uint *)(iVar7 + 0x969);
|
|
iVar4 = *(int *)(iVar7 + 0x96b);
|
|
*(int *)(iVar7 + 0x969) = uVar1 + 5000;
|
|
*(int *)(iVar7 + 0x96b) = iVar4 + (uint)(0xec77 < uVar1);
|
|
}
|
|
else {
|
|
uVar3 = FUN_1020_08a9();
|
|
uVar1 = *(uint *)(iVar7 + 0x969);
|
|
iVar4 = *(int *)(iVar7 + 0x96b);
|
|
*(int *)(iVar7 + 0x969) = uVar3 + *(uint *)(iVar7 + 0x969);
|
|
*(int *)(iVar7 + 0x96b) = param_6 + iVar4 + (uint)CARRY2(uVar3,uVar1);
|
|
}
|
|
DAT_1028_0849 = param_34;
|
|
DAT_1028_084b = param_35;
|
|
DAT_1028_084d = param_32;
|
|
DAT_1028_084f = param_33;
|
|
}
|
|
else if (param_38 == '\x02') {
|
|
uVar1 = *(uint *)(iVar7 + 0x95d);
|
|
iVar4 = *(int *)(iVar7 + 0x95f);
|
|
*(int *)(iVar7 + 0x95d) = uVar1 + 0xec78;
|
|
*(int *)(iVar7 + 0x95f) = iVar4 - (uint)(uVar1 < 5000);
|
|
uVar1 = *(uint *)(iVar7 + 0x965);
|
|
iVar4 = *(int *)(iVar7 + 0x967);
|
|
*(int *)(iVar7 + 0x965) = uVar1 + 5000;
|
|
*(int *)(iVar7 + 0x967) = iVar4 + (uint)(0xec77 < uVar1);
|
|
uVar1 = *(uint *)(iVar7 + 0x961);
|
|
iVar4 = *(int *)(iVar7 + 0x963);
|
|
*(int *)(iVar7 + 0x961) = uVar1 + 0xec78;
|
|
*(int *)(iVar7 + 0x963) = iVar4 - (uint)(uVar1 < 5000);
|
|
uVar1 = *(uint *)(iVar7 + 0x969);
|
|
iVar4 = *(int *)(iVar7 + 0x96b);
|
|
*(int *)(iVar7 + 0x969) = uVar1 + 5000;
|
|
*(int *)(iVar7 + 0x96b) = iVar4 + (uint)(0xec77 < uVar1);
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x96d) = uVar2;
|
|
*(int *)(iVar7 + 0x96f) = param_35;
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x971) = uVar2;
|
|
*(int *)(iVar7 + 0x973) = param_33;
|
|
iVar4 = local_4;
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x975) = uVar2;
|
|
*(int *)(iVar7 + 0x977) = iVar4;
|
|
iVar4 = local_8;
|
|
uVar2 = FUN_1020_08a9();
|
|
*(undefined2 *)(iVar7 + 0x979) = uVar2;
|
|
*(int *)(iVar7 + 0x97b) = iVar4;
|
|
DAT_1028_0849 = local_6;
|
|
DAT_1028_084b = local_4;
|
|
DAT_1028_084d = local_a;
|
|
DAT_1028_084f = local_8;
|
|
*(undefined2 *)(iVar7 + 0x97d) = 0;
|
|
*(undefined2 *)(iVar7 + 0x97f) = 0;
|
|
*(undefined2 *)(iVar7 + 0x981) = 0;
|
|
}
|
|
*(undefined2 *)(iVar7 + 0x983) = param_23;
|
|
*(undefined2 *)(iVar7 + 0x985) = param_24;
|
|
*(undefined2 *)(iVar7 + 0x987) = param_25;
|
|
*(undefined2 *)(iVar7 + 0x989) = param_20;
|
|
*(undefined2 *)(iVar7 + 0x98b) = param_21;
|
|
*(undefined2 *)(iVar7 + 0x98d) = param_22;
|
|
*(undefined1 *)(iVar7 + 0x98f) = param_39;
|
|
*(undefined2 *)(iVar7 + 0x990) = param_17;
|
|
*(undefined2 *)(iVar7 + 0x992) = param_18;
|
|
*(undefined2 *)(iVar7 + 0x994) = param_19;
|
|
*(undefined2 *)(iVar7 + 0x996) = param_14;
|
|
*(undefined2 *)(iVar7 + 0x998) = param_15;
|
|
*(undefined2 *)(iVar7 + 0x99a) = param_16;
|
|
*(undefined1 *)(iVar7 + 0x95c) = param_37;
|
|
*(undefined2 *)(iVar7 + 0x99c) = param_13;
|
|
*(undefined2 *)(iVar7 + 0x99e) = param_12;
|
|
*(undefined2 *)(iVar7 + 0x9a0) = param_10;
|
|
*(undefined2 *)(iVar7 + 0x9a2) = param_11;
|
|
*(undefined2 *)(iVar7 + 0x9a4) = param_9;
|
|
*(undefined2 *)(iVar7 + 0x9a6) = param_4;
|
|
*(undefined2 *)(iVar7 + 0x9a8) = param_3;
|
|
*(undefined2 *)(iVar7 + 0x9aa) = param_2;
|
|
*(undefined2 *)(iVar7 + 0x9ac) = param_1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:0787 FUN_1008_0787 ===== */
|
|
|
|
void __stdcall16far
|
|
FUN_1008_0787(undefined2 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4,
|
|
int param_5)
|
|
|
|
{
|
|
param_5 = param_5 * 8;
|
|
*(undefined2 *)(param_5 + 0x4263) = param_4;
|
|
*(undefined2 *)(param_5 + 0x4265) = param_3;
|
|
*(undefined2 *)(param_5 + 16999) = param_2;
|
|
*(undefined2 *)(param_5 + 0x4269) = param_1;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:07b6 FUN_1008_07b6 ===== */
|
|
|
|
void __stdcall16far
|
|
FUN_1008_07b6(undefined2 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4,
|
|
undefined2 param_5,undefined2 param_6)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
|
|
uVar4 = param_6;
|
|
uVar1 = CREATECOMPATIBLEDC();
|
|
uVar2 = CREATECOMPATIBLEDC(0x1228,param_6,uVar4);
|
|
uVar3 = SELECTOBJECT(0x1228,DAT_1028_085b);
|
|
uVar7 = uVar2;
|
|
uVar4 = SELECTOBJECT(0x1228,param_1);
|
|
uVar6 = uVar1;
|
|
BITBLT(0x1228,0x20,0xcc,0,0,uVar2,param_2,param_3,param_4,param_5);
|
|
uVar5 = uVar2;
|
|
SELECTOBJECT(0x1228,uVar4);
|
|
uVar4 = uVar1;
|
|
SELECTOBJECT(0x1228,uVar3);
|
|
DELETEDC(0x1228,uVar2,uVar4,uVar5,uVar6,uVar7);
|
|
DELETEDC(0x1228,uVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:0837 FUN_1008_0837 ===== */
|
|
|
|
void __stdcall16far
|
|
FUN_1008_0837(undefined2 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4,
|
|
undefined2 param_5)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
|
|
uVar4 = param_5;
|
|
uVar1 = CREATECOMPATIBLEDC();
|
|
uVar2 = CREATECOMPATIBLEDC(0x1228,param_5,uVar4);
|
|
uVar3 = SELECTOBJECT(0x1228,DAT_1028_085b);
|
|
uVar7 = uVar2;
|
|
uVar4 = SELECTOBJECT(0x1228,DAT_1028_085f);
|
|
uVar6 = uVar1;
|
|
BITBLT(0x1228,0x20,0xcc,param_3,param_4,uVar2,param_1,param_2,param_3,param_4);
|
|
uVar5 = uVar2;
|
|
SELECTOBJECT(0x1228,uVar4);
|
|
uVar4 = uVar1;
|
|
SELECTOBJECT(0x1228,uVar3);
|
|
DELETEDC(0x1228,uVar2,uVar4,uVar5,uVar6,uVar7);
|
|
DELETEDC(0x1228,uVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:08bb FUN_1008_08bb ===== */
|
|
|
|
void __stdcall16far
|
|
FUN_1008_08bb(undefined2 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4,
|
|
undefined2 param_5)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
|
|
uVar4 = param_5;
|
|
uVar1 = CREATECOMPATIBLEDC();
|
|
uVar2 = CREATECOMPATIBLEDC(0x1228,param_5,uVar4);
|
|
uVar3 = SELECTOBJECT(0x1228,DAT_1028_085b);
|
|
uVar7 = uVar2;
|
|
uVar4 = SELECTOBJECT(0x1228,DAT_1028_085d);
|
|
uVar6 = uVar1;
|
|
BITBLT(0x1228,0x20,0xcc,param_3,param_4,uVar2,param_1,param_2,param_3,param_4);
|
|
uVar5 = uVar2;
|
|
SELECTOBJECT(0x1228,uVar4);
|
|
uVar4 = uVar1;
|
|
SELECTOBJECT(0x1228,uVar3);
|
|
DELETEDC(0x1228,uVar2,uVar4,uVar5,uVar6,uVar7);
|
|
DELETEDC(0x1228,uVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:093f FUN_1008_093f ===== */
|
|
|
|
void __stdcall16far
|
|
FUN_1008_093f(undefined2 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4,
|
|
undefined2 param_5)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
|
|
uVar5 = param_5;
|
|
uVar1 = CREATECOMPATIBLEDC();
|
|
uVar4 = uVar1;
|
|
uVar2 = SELECTOBJECT(0x1228,DAT_1028_085b);
|
|
BITBLT(0x1228,0x20,0xcc,param_3,param_4,uVar1,param_1,param_2,param_3,param_4);
|
|
uVar3 = uVar1;
|
|
SELECTOBJECT(0x1228,uVar2);
|
|
DELETEDC(0x1228,uVar1,uVar3,param_5,uVar4,uVar5);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:0996 FUN_1008_0996 ===== */
|
|
|
|
void __stdcall16far FUN_1008_0996(undefined2 param_1,uint param_2,int param_3)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
int iVar6;
|
|
byte bVar7;
|
|
undefined2 uVar8;
|
|
undefined2 uVar9;
|
|
undefined2 uVar10;
|
|
undefined2 uVar11;
|
|
undefined2 local_32;
|
|
undefined2 local_1c;
|
|
undefined1 local_4;
|
|
|
|
uVar2 = param_1;
|
|
uVar1 = CREATECOMPATIBLEDC();
|
|
uVar2 = CREATECOMPATIBLEDC(0x1228,param_1,uVar2);
|
|
uVar3 = CREATECOMPATIBLEBITMAP(0x1228,0x28,0x96);
|
|
if (param_2 == 1) {
|
|
local_32 = 0x129;
|
|
}
|
|
else if (param_2 == 2) {
|
|
local_32 = 0x155;
|
|
}
|
|
else if (param_2 == 3) {
|
|
local_32 = 0x181;
|
|
}
|
|
else if (param_2 == 4) {
|
|
local_32 = 0x1ad;
|
|
}
|
|
else {
|
|
local_32 = 0xfd;
|
|
}
|
|
if ((param_3 < 0) ||
|
|
((((param_3 < 1 && (param_2 == 0)) || (0 < param_3)) || ((-1 < param_3 && (4 < param_2)))))) {
|
|
local_1c = param_3;
|
|
}
|
|
else {
|
|
local_1c = *(int *)(param_2 * 4 + 0x980);
|
|
}
|
|
uVar11 = uVar1;
|
|
uVar4 = SELECTOBJECT(0x1228,DAT_1028_085b);
|
|
uVar10 = uVar2;
|
|
uVar5 = SELECTOBJECT(0x1228,uVar3);
|
|
uVar9 = uVar2;
|
|
BITBLT(0x1228,0x20,0xcc,local_32 + -0x14,0x1de,uVar1,0x28,0x82,0,0);
|
|
local_4 = 0;
|
|
while( true ) {
|
|
bVar7 = 10;
|
|
FUN_1020_08e6(uVar9,uVar10,uVar11);
|
|
uVar8 = 0x1020;
|
|
iVar6 = FUN_1020_08e6();
|
|
if ((((bVar7 != 0) || (0 < local_1c)) || ((-1 < local_1c && (iVar6 != 0)))) || (local_4 == 0)) {
|
|
SELECTOBJECT(0x1020,DAT_1028_0861);
|
|
uVar8 = 0x1228;
|
|
BITBLT(0x1228,0xc6,0x88,0,(uint)bVar7 << 4,uVar1,0x1c,0x10,0,(7 - (uint)local_4) * 0x10);
|
|
}
|
|
if (local_4 == 7) break;
|
|
local_4 = local_4 + 1;
|
|
}
|
|
BITBLT(uVar8,0x20,0xcc,0,0,uVar2,0x28,0x82,local_32 + -0x14,0x1de);
|
|
uVar10 = uVar1;
|
|
SELECTOBJECT(0x1228,uVar4);
|
|
uVar9 = uVar2;
|
|
SELECTOBJECT(0x1228,uVar5);
|
|
DELETEOBJECT(0x1228,uVar3,uVar9,uVar10,param_1);
|
|
DELETEDC(0x1228,uVar1);
|
|
DELETEDC(0x1228,uVar2);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:0b9e FUN_1008_0b9e ===== */
|
|
|
|
void __stdcall16far FUN_1008_0b9e(byte param_1,undefined2 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int local_6;
|
|
int local_4;
|
|
|
|
if ((((param_1 == DAT_1028_07d1) || (DAT_1028_086b == 99)) && (param_1 != 0)) && (param_1 < 5)) {
|
|
iVar1 = *(int *)((uint)param_1 * 4 + 0x980);
|
|
if ((iVar1 < 0x14) && ((iVar1 < 0x13 || (*(uint *)((uint)param_1 * 4 + 0x97e) < 0xd621)))) {
|
|
iVar1 = *(int *)((uint)param_1 * 4 + 0x980);
|
|
if ((iVar1 < 10) && ((iVar1 < 9 || (*(uint *)((uint)param_1 * 4 + 0x97e) < 0xeb11)))) {
|
|
iVar1 = *(int *)((uint)param_1 * 4 + 0x980);
|
|
if ((iVar1 < 3) && ((iVar1 < 2 || (*(uint *)((uint)param_1 * 4 + 0x97e) < 0x22e1)))) {
|
|
iVar1 = *(int *)((uint)param_1 * 4 + 0x980);
|
|
if ((iVar1 < 1) && ((iVar1 < 0 || (*(uint *)((uint)param_1 * 4 + 0x97e) < 0x7d1)))) {
|
|
local_4 = 0;
|
|
}
|
|
else {
|
|
local_4 = 1;
|
|
}
|
|
}
|
|
else {
|
|
local_4 = 2;
|
|
}
|
|
}
|
|
else {
|
|
local_4 = 3;
|
|
}
|
|
}
|
|
else {
|
|
local_4 = 4;
|
|
}
|
|
if (local_4 != DAT_1028_086b) {
|
|
if (local_4 == 0) {
|
|
FUN_1008_0837(0x8e,0x92,0x45,0x17c,param_2);
|
|
}
|
|
else {
|
|
FUN_1008_07b6(*(undefined2 *)(local_4 * 2 + 0x4319),0x8e,0x92,0x45,0x17c,param_2);
|
|
}
|
|
FUN_1008_093f(0x8e,0x92,0x45,0x17c,param_2);
|
|
local_6 = 0;
|
|
while( true ) {
|
|
if (local_6 == local_4) {
|
|
FUN_1008_0837(0xb,0xb,(4 - local_6) * 0x17 + 0x4d,0x220,param_2);
|
|
FUN_1008_093f(0xb,0xb,(4 - local_6) * 0x17 + 0x4d,0x220,param_2);
|
|
}
|
|
else {
|
|
FUN_1008_08bb(0xb,0xb,(4 - local_6) * 0x17 + 0x4d,0x220,param_2);
|
|
FUN_1008_093f(0xb,0xb,(4 - local_6) * 0x17 + 0x4d,0x220,param_2);
|
|
}
|
|
if (local_6 == 4) break;
|
|
local_6 = local_6 + 1;
|
|
}
|
|
}
|
|
DAT_1028_086b = local_4;
|
|
}
|
|
else if (param_1 == 0) {
|
|
FUN_1008_08bb(0x8e,0x92,0x45,0x17c,param_2);
|
|
FUN_1008_093f(0x8e,0x92,0x45,0x17c,param_2);
|
|
local_6 = 0;
|
|
while( true ) {
|
|
FUN_1008_08bb(0xb,0xb,(4 - local_6) * 0x17 + 0x4d,0x220,param_2);
|
|
FUN_1008_093f(0xb,0xb,(4 - local_6) * 0x17 + 0x4d,0x220,param_2);
|
|
if (local_6 == 4) break;
|
|
local_6 = local_6 + 1;
|
|
}
|
|
DAT_1028_086b = 99;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:0dbd FUN_1008_0dbd ===== */
|
|
|
|
void __stdcall16far FUN_1008_0dbd(int param_1,undefined2 param_2)
|
|
|
|
{
|
|
if (param_1 == 0) {
|
|
FUN_1008_08bb(0x3d,0x44,300,0x7b,param_2);
|
|
}
|
|
else {
|
|
FUN_1008_07b6(((undefined2 *)&DAT_1028_4321)[param_1],0x3d,0x44,300,0x7b,param_2);
|
|
}
|
|
FUN_1008_093f(0x3d,0x44,300,0x7b,param_2);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:0e08 FUN_1008_0e08 ===== */
|
|
|
|
void __stdcall16far FUN_1008_0e08(char param_1,uint param_2,undefined2 param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
undefined2 local_16;
|
|
|
|
if (param_2 == 0) {
|
|
FUN_1008_08bb(0x4a,100,0x2f,0xee,param_3);
|
|
FUN_1008_093f(0x4a,100,0x2f,0xee,param_3);
|
|
}
|
|
else {
|
|
uVar3 = param_3;
|
|
uVar2 = CREATECOMPATIBLEDC();
|
|
uVar3 = CREATECOMPATIBLEDC(0x1228,param_3,uVar3);
|
|
uVar4 = SELECTOBJECT(0x1228,DAT_1028_085b);
|
|
uVar5 = SELECTOBJECT(0x1228,DAT_1028_0863);
|
|
local_16 = 0;
|
|
if (param_1 == '\0') {
|
|
local_16 = 0x94;
|
|
}
|
|
if (9 < param_2) {
|
|
local_16 = local_16 + 0x4a;
|
|
param_2 = param_2 - 9;
|
|
}
|
|
iVar1 = (param_2 - 1) * 100;
|
|
uVar7 = uVar2;
|
|
BITBLT(0x1228,0x20,0xcc,local_16,iVar1,uVar3,0x4a,100,0x2f,0xee);
|
|
BITBLT(0x1228,0x20,0xcc,local_16,iVar1,uVar3,0x4a,100,0x2f,0xee);
|
|
uVar6 = uVar2;
|
|
SELECTOBJECT(0x1228,uVar4);
|
|
uVar4 = uVar3;
|
|
SELECTOBJECT(0x1228,uVar5);
|
|
DELETEDC(0x1228,uVar3,uVar4,uVar6,param_3,uVar7);
|
|
DELETEDC(0x1228,uVar2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:0f27 FUN_1008_0f27 ===== */
|
|
|
|
void __cdecl16far FUN_1008_0f27(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:0f2e FUN_1008_0f2e ===== */
|
|
|
|
void __cdecl16far FUN_1008_0f2e(void)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
int unaff_BP;
|
|
undefined2 unaff_SS;
|
|
undefined4 uVar4;
|
|
undefined1 *puVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
undefined2 uVar8;
|
|
undefined1 *puVar9;
|
|
undefined1 *puVar10;
|
|
undefined1 local_2de [512];
|
|
undefined1 local_de [102];
|
|
undefined1 local_78 [102];
|
|
undefined2 local_12;
|
|
undefined4 local_10;
|
|
int local_c;
|
|
int local_a;
|
|
undefined2 local_8;
|
|
undefined2 local_6;
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
DAT_1028_43f2 = 0;
|
|
DAT_1028_43f3 = 0;
|
|
DAT_1028_43ee = 0;
|
|
puVar10 = local_78;
|
|
puVar9 = local_2de;
|
|
uVar1 = unaff_SS;
|
|
uVar8 = unaff_SS;
|
|
FUN_1020_082e(0);
|
|
FUN_1008_2f2f(puVar9,uVar1,puVar10,uVar8);
|
|
puVar9 = local_de;
|
|
puVar10 = local_78;
|
|
uVar7 = 0x1008;
|
|
uVar6 = 0xf2c;
|
|
puVar5 = local_2de;
|
|
uVar1 = unaff_SS;
|
|
uVar8 = unaff_SS;
|
|
uVar3 = unaff_SS;
|
|
FUN_1020_082e(0);
|
|
uVar1 = FUN_1020_0a7d(puVar5,uVar1,uVar6,uVar7);
|
|
FUN_1008_2f07(uVar1,puVar10,uVar8,puVar9,uVar3);
|
|
FUN_1008_2f4d(0x442,0x1028,local_de,unaff_SS);
|
|
uVar1 = 0x1028;
|
|
local_c = GETPRIVATEPROFILEINT(0x1008,local_de,unaff_SS,1,0x44f,0x1028,0x446);
|
|
if ((local_c != 0) && (DAT_1028_43ee = WAVEOUTGETNUMDEVS(0x1228,uVar1), DAT_1028_43ee != 0)) {
|
|
iVar2 = WAVEOUTGETDEVCAPS(0x1228,0x30,0x43be,0x1028);
|
|
if (iVar2 == 0) {
|
|
if ((DAT_1028_43ea & 4) == 0) {
|
|
DAT_1028_43f4 = -1;
|
|
}
|
|
else {
|
|
local_8 = 0;
|
|
local_6 = 0;
|
|
WAVEOUTGETVOLUME(0x1228,&local_8,unaff_SS);
|
|
DAT_1028_43f4 = (local_8._1_1_ / 10) * '\n';
|
|
}
|
|
local_a = 1;
|
|
while( true ) {
|
|
if (*(int *)(local_a * 4 + 0x3e6) != 0 || *(int *)(local_a * 4 + 1000) != 0) {
|
|
uVar1 = DAT_1028_06fe;
|
|
uVar8 = DAT_1028_06fe;
|
|
uVar3 = FINDRESOURCE(0x1228,0x455,0x1028,local_a + 2000,local_a + 2000 >> 0xf);
|
|
local_12 = LOADRESOURCE(0x1228,uVar3);
|
|
uVar4 = FUN_1008_15c7(*(undefined2 *)(local_a * 4 + 0x3e6),
|
|
*(undefined2 *)(local_a * 4 + 1000),0x42);
|
|
*(int *)((undefined1 *)&DAT_1028_43f2 + local_a * 4) = (int)uVar4;
|
|
*(int *)((undefined1 *)&DAT_1028_43f4 + local_a * 4) = (int)((ulong)uVar4 >> 0x10);
|
|
local_10 = LOCKRESOURCE(0x1008,local_12,uVar1,uVar8);
|
|
FUN_1020_16a5(*(undefined2 *)(local_a * 4 + 0x3e6),
|
|
(int)*(undefined4 *)((undefined1 *)&DAT_1028_43f2 + local_a * 4),
|
|
(int)((ulong)*(undefined4 *)((undefined1 *)&DAT_1028_43f2 + local_a * 4) >>
|
|
0x10),local_10);
|
|
GLOBALUNLOCK(0x1020,local_12);
|
|
FREERESOURCE(0x1228,local_12);
|
|
}
|
|
if (local_a == 0x16) break;
|
|
local_a = local_a + 1;
|
|
}
|
|
DAT_1028_43f2 = 1;
|
|
}
|
|
else {
|
|
DAT_1028_43ee = 0;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:10e3 FUN_1008_10e3 ===== */
|
|
|
|
void __cdecl16far FUN_1008_10e3(void)
|
|
|
|
{
|
|
undefined2 unaff_CS;
|
|
int local_6;
|
|
|
|
if (DAT_1028_43ee != 0) {
|
|
if (DAT_1028_43f3 != '\0') {
|
|
SNDPLAYSOUND(unaff_CS,0,0);
|
|
}
|
|
local_6 = 1;
|
|
while( true ) {
|
|
FUN_1008_15e7(*(undefined2 *)((undefined1 *)&DAT_1028_43f2 + local_6 * 4),
|
|
*(undefined2 *)((undefined1 *)&DAT_1028_43f4 + local_6 * 4));
|
|
if (local_6 == 0x16) break;
|
|
local_6 = local_6 + 1;
|
|
}
|
|
DAT_1028_43f3 = '\0';
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1131 FUN_1008_1131 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1008_1131(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar2;
|
|
undefined2 local_6;
|
|
|
|
if (((DAT_1028_43ee != 0) && (DAT_1028_43f2 != '\0')) &&
|
|
(*(int *)(param_1 * 4 + 0x3e6) != 0 || *(int *)(param_1 * 4 + 1000) != 0)) {
|
|
uVar2 = unaff_CS;
|
|
if (DAT_1028_43f3 != '\0') {
|
|
uVar2 = 0x1228;
|
|
SNDPLAYSOUND(unaff_CS,0,0);
|
|
}
|
|
iVar1 = SNDPLAYSOUND(uVar2,5,(int)*(undefined4 *)((undefined1 *)&DAT_1028_43f2 + param_1 * 4));
|
|
DAT_1028_43f3 = iVar1 != 0;
|
|
}
|
|
return local_6;
|
|
}
|
|
|
|
|
|
/* ===== 1008:118f FUN_1008_118f ===== */
|
|
|
|
undefined2 __cdecl16far FUN_1008_118f(void)
|
|
|
|
{
|
|
undefined2 unaff_CS;
|
|
undefined2 local_6;
|
|
|
|
if ((DAT_1028_43ee != 0) && (DAT_1028_43f3 != '\0')) {
|
|
SNDPLAYSOUND(unaff_CS,0,0);
|
|
}
|
|
return local_6;
|
|
}
|
|
|
|
|
|
/* ===== 1008:11b8 FUN_1008_11b8 ===== */
|
|
|
|
void __cdecl16far FUN_1008_11b8(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:11c5 FUN_1008_11c5 ===== */
|
|
|
|
/* WARNING: Removing unreachable block (ram,0x1008123e) */
|
|
/* WARNING: Removing unreachable block (ram,0x10081234) */
|
|
|
|
void __cdecl16far FUN_1008_11c5(void)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 *puVar2;
|
|
undefined2 uVar3;
|
|
bool bVar4;
|
|
undefined2 *puVar5;
|
|
uint local_10;
|
|
int local_e;
|
|
|
|
iVar1 = FUN_1020_08a9();
|
|
puVar5 = (undefined2 *)FUN_1020_012d(iVar1 + 8);
|
|
uVar3 = (undefined2)((ulong)puVar5 >> 0x10);
|
|
puVar2 = (undefined2 *)puVar5;
|
|
puVar2[1] = 0x100;
|
|
*puVar5 = 0x300;
|
|
local_10 = 0;
|
|
local_e = 0;
|
|
while( true ) {
|
|
iVar1 = FUN_1020_08a9();
|
|
*(undefined1 *)(puVar2 + local_10 * 2 + 2) = *(undefined1 *)(iVar1 + 0x4450);
|
|
iVar1 = FUN_1020_08a9();
|
|
*(undefined1 *)((int)puVar2 + local_10 * 4 + 5) = *(undefined1 *)(iVar1 + 0x4451);
|
|
iVar1 = FUN_1020_08a9();
|
|
*(undefined1 *)(puVar2 + local_10 * 2 + 3) = *(undefined1 *)(iVar1 + 0x4452);
|
|
*(undefined1 *)((int)puVar2 + local_10 * 4 + 7) = 0;
|
|
if ((local_e == 0) && (local_10 == 0xff)) break;
|
|
bVar4 = 0xfffe < local_10;
|
|
local_10 = local_10 + 1;
|
|
local_e = local_e + (uint)bVar4;
|
|
}
|
|
DAT_1028_444e = CREATEPALETTE(0x1020,puVar2);
|
|
uVar3 = FUN_1020_039d(puVar5,uVar3);
|
|
FUN_1020_0147(uVar3,puVar5);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1326 FUN_1008_1326 ===== */
|
|
|
|
void __stdcall16far
|
|
FUN_1008_1326(undefined4 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int iVar2;
|
|
undefined1 uVar3;
|
|
undefined2 unaff_CS;
|
|
undefined4 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 local_e;
|
|
|
|
uVar5 = param_4;
|
|
uVar1 = FINDRESOURCE(unaff_CS,0x45a,0x1028,param_2,param_3);
|
|
uVar1 = LOADRESOURCE(0x1228,uVar1);
|
|
uVar4 = LOCKRESOURCE(0x1228,uVar1,param_4,uVar5);
|
|
local_e = 0;
|
|
while( true ) {
|
|
iVar2 = FUN_1020_039d();
|
|
uVar3 = *(undefined1 *)((int)uVar4 + iVar2);
|
|
iVar2 = FUN_1020_039d();
|
|
*(undefined1 *)((int)param_1 + iVar2) = uVar3;
|
|
if (local_e == 0x2ff) break;
|
|
local_e = local_e + 1;
|
|
}
|
|
GLOBALUNLOCK(0x1020,uVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:13a8 FUN_1008_13a8 ===== */
|
|
|
|
void __stdcall16far FUN_1008_13a8(undefined4 param_1)
|
|
|
|
{
|
|
uint uVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
undefined2 uVar6;
|
|
bool bVar7;
|
|
uint local_10;
|
|
int local_e;
|
|
|
|
uVar6 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar5 = (int)param_1;
|
|
iVar4 = -(uint)(1 << ((byte)*(undefined2 *)(iVar5 + 0xe) & 0x1f) == 0);
|
|
uVar1 = FUN_1020_08a9();
|
|
iVar2 = uVar1 + 8;
|
|
iVar4 = iVar4 + (uint)(0xfff7 < uVar1);
|
|
local_10 = 0;
|
|
local_e = 0;
|
|
while( true ) {
|
|
iVar3 = FUN_1020_08a9(iVar2,iVar4);
|
|
*(undefined1 *)(iVar5 + local_10 * 4 + 0x2a) = *(undefined1 *)(iVar3 + 0x4450);
|
|
iVar3 = FUN_1020_08a9();
|
|
*(undefined1 *)(iVar5 + local_10 * 4 + 0x29) = *(undefined1 *)(iVar3 + 0x4451);
|
|
iVar3 = FUN_1020_08a9();
|
|
*(undefined1 *)(iVar5 + local_10 * 4 + 0x28) = *(undefined1 *)(iVar3 + 0x4452);
|
|
*(undefined1 *)(iVar5 + local_10 * 4 + 0x2b) = 0;
|
|
if ((local_e == 0) && (local_10 == 0xff)) break;
|
|
bVar7 = 0xfffe < local_10;
|
|
local_10 = local_10 + 1;
|
|
local_e = local_e + (uint)bVar7;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:149d FUN_1008_149d ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1008_149d(undefined2 param_1,undefined2 param_2,undefined2 param_3)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
int unaff_BP;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
undefined4 uVar3;
|
|
undefined4 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined1 local_32 [14];
|
|
byte local_24;
|
|
undefined2 local_a;
|
|
undefined2 local_8;
|
|
undefined2 local_6;
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
uVar5 = param_3;
|
|
local_a = FINDRESOURCE(unaff_CS,0x45e,0x1028,param_1,param_2);
|
|
local_8 = LOADRESOURCE(0x1228,local_a);
|
|
uVar3 = LOCKRESOURCE(0x1228,local_8,param_3,uVar5);
|
|
FUN_1020_0891(0x28,local_32,unaff_SS,uVar3);
|
|
uVar4 = FUN_1020_012d((1 << (local_24 & 0x1f)) * 4 + 0x28);
|
|
FUN_1020_0891(0x28,uVar4,local_32,unaff_SS);
|
|
FUN_1008_13a8(uVar4);
|
|
uVar6 = 0x1028;
|
|
uVar1 = CREATEDC(0x1008,0,0,0,0,0,0,0x462);
|
|
uVar5 = uVar1;
|
|
uVar2 = SELECTPALETTE(0x1228,0,DAT_1028_444e);
|
|
UNREALIZEOBJECT(0x1228,DAT_1028_444e,uVar5,uVar6);
|
|
REALIZEPALETTE(0x1228,uVar1);
|
|
uVar6 = uVar1;
|
|
local_6 = CREATEDIBITMAP(0x1228,0,uVar4,(int)uVar3 + 0x28,(int)((ulong)uVar3 >> 0x10),4,0,local_32
|
|
,unaff_SS);
|
|
uVar5 = uVar1;
|
|
SELECTPALETTE(0x1228,0,uVar2);
|
|
DELETEDC(0x1228,uVar1,uVar5,uVar6);
|
|
GLOBALUNLOCK(0x1228,local_8);
|
|
FREERESOURCE(0x1228,local_8);
|
|
return local_6;
|
|
}
|
|
|
|
|
|
/* ===== 1008:15c2 FUN_1008_15c2 ===== */
|
|
|
|
void __cdecl16far FUN_1008_15c2(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:15c7 FUN_1008_15c7 ===== */
|
|
|
|
void __stdcall16far FUN_1008_15c7(undefined2 param_1,undefined2 param_2,undefined2 param_3)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int unaff_BP;
|
|
int iVar2;
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar3;
|
|
|
|
iVar2 = unaff_BP + 1;
|
|
uVar3 = 0x1028;
|
|
uVar1 = GLOBALALLOC(unaff_CS,param_1,param_2);
|
|
GLOBALLOCK(0x1228,uVar1,param_3,uVar3,iVar2);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:15e7 FUN_1008_15e7 ===== */
|
|
|
|
void __stdcall16far FUN_1008_15e7(undefined2 param_1,undefined2 param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int unaff_BP;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
|
|
iVar2 = unaff_BP + 1;
|
|
uVar3 = 0x1028;
|
|
uVar1 = GLOBALHANDLE();
|
|
GLOBALUNLOCK(0x1228,uVar1,uVar1,param_2,uVar3,iVar2);
|
|
GLOBALFREE(0x1228);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1607 FUN_1008_1607 ===== */
|
|
|
|
undefined4 __stdcall16far
|
|
FUN_1008_1607(undefined4 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4,
|
|
undefined2 param_5,undefined2 param_6,undefined2 param_7,undefined2 param_8,
|
|
undefined2 param_9,undefined2 param_10,undefined2 param_11)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
bool bVar3;
|
|
undefined2 local_8;
|
|
|
|
bVar3 = true;
|
|
FUN_1020_03ef();
|
|
if (!bVar3) {
|
|
if (DAT_1028_066a == '\0') {
|
|
local_8 = 0x7f02;
|
|
}
|
|
else {
|
|
local_8 = 0x7f05;
|
|
}
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar1 = (int)param_1;
|
|
FUN_1008_2996(iVar1,uVar2,0,local_8,0,param_10,param_11);
|
|
*(undefined2 *)(iVar1 + 0x26) = param_8;
|
|
*(undefined2 *)(iVar1 + 0x28) = param_9;
|
|
*(undefined2 *)(iVar1 + 0x2a) = param_6;
|
|
*(undefined2 *)(iVar1 + 0x2c) = param_7;
|
|
*(undefined2 *)(iVar1 + 0x2e) = param_4;
|
|
*(undefined2 *)(iVar1 + 0x30) = param_5;
|
|
*(undefined2 *)(iVar1 + 0x32) = param_3;
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
/* ===== 1008:168e FUN_1008_168e ===== */
|
|
|
|
undefined1 __stdcall16far FUN_1008_168e(undefined4 param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 unaff_CS;
|
|
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar1 = (int)param_1;
|
|
GETDLGITEMTEXT(unaff_CS,*(undefined2 *)(iVar1 + 0x32),*(undefined2 *)(iVar1 + 0x2e),
|
|
*(undefined2 *)(iVar1 + 0x30),0x65);
|
|
return 1;
|
|
}
|
|
|
|
|
|
/* ===== 1008:16be FUN_1008_16be ===== */
|
|
|
|
void __stdcall16far FUN_1008_16be(undefined4 param_1)
|
|
|
|
{
|
|
int unaff_BP;
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
|
|
iVar1 = unaff_BP + 1;
|
|
uVar4 = 0x1028;
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar2 = (int)param_1;
|
|
FUN_1018_0d9b(iVar2,uVar3);
|
|
SETWINDOWTEXT(0x1018,*(undefined2 *)(iVar2 + 0x26),*(undefined2 *)(iVar2 + 0x28),
|
|
*(undefined2 *)(iVar2 + 4),uVar4,iVar1);
|
|
SETDLGITEMTEXT(0x1228,*(undefined2 *)(iVar2 + 0x2a),*(undefined2 *)(iVar2 + 0x2c),100);
|
|
SETDLGITEMTEXT(0x1228,*(undefined2 *)(iVar2 + 0x2e),*(undefined2 *)(iVar2 + 0x30),0x65);
|
|
SENDDLGITEMMESSAGE(0x1228,0,0,*(int *)(iVar2 + 0x32) + -1,0x415,0x65);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:172f FUN_1008_172f ===== */
|
|
|
|
int FUN_1008_172f(int param_1,int param_2)
|
|
|
|
{
|
|
undefined2 local_4;
|
|
|
|
if (param_2 < param_1) {
|
|
local_4 = param_2;
|
|
}
|
|
else {
|
|
local_4 = param_1;
|
|
}
|
|
return local_4;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1754 FUN_1008_1754 ===== */
|
|
|
|
int FUN_1008_1754(int param_1,int param_2)
|
|
|
|
{
|
|
undefined2 local_4;
|
|
|
|
if (param_1 < param_2) {
|
|
local_4 = param_2;
|
|
}
|
|
else {
|
|
local_4 = param_1;
|
|
}
|
|
return local_4;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1779 FUN_1008_1779 ===== */
|
|
|
|
void __cdecl16near FUN_1008_1779(void)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 unaff_CS;
|
|
undefined4 uVar2;
|
|
|
|
uVar1 = DAT_1028_0586;
|
|
if (DAT_1028_058f == '\0') {
|
|
DAT_1028_4ad4 = GETDC();
|
|
}
|
|
else {
|
|
DAT_1028_4ad4 = BEGINPAINT(unaff_CS,0x4ad6,0x1028,DAT_1028_0586);
|
|
}
|
|
uVar1 = GETSTOCKOBJECT(0x1228,0x10,DAT_1028_4ad4,uVar1);
|
|
DAT_1028_4af6 = SELECTOBJECT(0x1228,uVar1);
|
|
uVar2 = GETSYSCOLOR(0x1228,8,DAT_1028_4ad4);
|
|
SETTEXTCOLOR(0x1228,uVar2);
|
|
uVar2 = GETSYSCOLOR(0x1228,5,DAT_1028_4ad4);
|
|
SETBKCOLOR(0x1228,uVar2);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:17e2 FUN_1008_17e2 ===== */
|
|
|
|
void __cdecl16near FUN_1008_17e2(void)
|
|
|
|
{
|
|
undefined2 unaff_CS;
|
|
|
|
SELECTOBJECT(unaff_CS,DAT_1028_4af6);
|
|
if (DAT_1028_058f == '\0') {
|
|
RELEASEDC(0x1228,DAT_1028_4ad4);
|
|
}
|
|
else {
|
|
ENDPAINT(0x1228,0x4ad6,0x1028);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1818 FUN_1008_1818 ===== */
|
|
|
|
void __cdecl16near FUN_1008_1818(void)
|
|
|
|
{
|
|
undefined2 unaff_CS;
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
|
|
uVar2 = DAT_1028_0586;
|
|
CREATECARET(unaff_CS,2,DAT_1028_4ace,0);
|
|
iVar1 = (DAT_1028_0544 - DAT_1028_0548) * DAT_1028_4ace;
|
|
SETCARETPOS(0x1228,(DAT_1028_0546 - DAT_1028_054a) * DAT_1028_4ad0 + DAT_1028_4ad2);
|
|
SHOWCARET(0x1228,DAT_1028_0586,iVar1,uVar2);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:185b FUN_1008_185b ===== */
|
|
|
|
void __cdecl16near FUN_1008_185b(void)
|
|
|
|
{
|
|
DESTROYCARET();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1865 FUN_1008_1865 ===== */
|
|
|
|
void __cdecl16near FUN_1008_1865(void)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
|
|
uVar3 = 0;
|
|
uVar2 = 0;
|
|
uVar1 = FUN_1008_1754(DAT_1028_4aca,1);
|
|
SETSCROLLRANGE(unaff_CS,0,uVar1,uVar2,uVar3);
|
|
SETSCROLLPOS(0x1228,1,DAT_1028_0548,0);
|
|
uVar3 = 1;
|
|
uVar2 = 0;
|
|
uVar1 = FUN_1008_1754(DAT_1028_4acc,1);
|
|
SETSCROLLRANGE(0x1228,0,uVar1,uVar2,uVar3);
|
|
SETSCROLLPOS(0x1228,1,DAT_1028_054a,1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:18d0 FUN_1008_18d0 ===== */
|
|
|
|
void __cdecl16near FUN_1008_18d0(void)
|
|
|
|
{
|
|
if ((DAT_1028_058d != '\0') && (DAT_1028_058e != '\0')) {
|
|
FUN_1008_185b();
|
|
}
|
|
FUN_1020_0061();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:18ee FUN_1008_18ee ===== */
|
|
|
|
void __stdcall16far FUN_1008_18ee(undefined2 param_1,undefined2 param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
|
|
if (DAT_1028_058c != '\0') {
|
|
uVar5 = 0;
|
|
uVar1 = FUN_1008_172f(DAT_1028_4aca,param_2);
|
|
iVar2 = FUN_1008_1754(uVar1,uVar5);
|
|
uVar1 = 0;
|
|
uVar5 = FUN_1008_172f(DAT_1028_4acc,param_1);
|
|
iVar3 = FUN_1008_1754(uVar5,uVar1);
|
|
if ((iVar2 != DAT_1028_0548) || (iVar3 != DAT_1028_054a)) {
|
|
uVar5 = unaff_CS;
|
|
if (iVar2 != DAT_1028_0548) {
|
|
uVar5 = 0x1228;
|
|
uVar1 = DAT_1028_0586;
|
|
SETSCROLLPOS(unaff_CS,1,iVar2,0);
|
|
}
|
|
uVar4 = uVar5;
|
|
if (iVar3 != DAT_1028_054a) {
|
|
uVar4 = 0x1228;
|
|
SETSCROLLPOS(uVar5,1,iVar3,1);
|
|
}
|
|
uVar5 = DAT_1028_0586;
|
|
SCROLLWINDOW(uVar4,0,0,0,0,(DAT_1028_054a - iVar3) * DAT_1028_4ad0,
|
|
(DAT_1028_0548 - iVar2) * DAT_1028_4ace);
|
|
DAT_1028_0548 = iVar2;
|
|
DAT_1028_054a = iVar3;
|
|
UPDATEWINDOW(0x1228,DAT_1028_0586,uVar5,uVar1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:19b7 FUN_1008_19b7 ===== */
|
|
|
|
void __cdecl16far FUN_1008_19b7(void)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
|
|
iVar1 = (DAT_1028_0544 - DAT_1028_4ac6) + 1;
|
|
uVar2 = FUN_1008_172f(DAT_1028_0544,DAT_1028_0548);
|
|
uVar2 = FUN_1008_1754(uVar2,iVar1);
|
|
iVar1 = (DAT_1028_0546 - DAT_1028_4ac8) + 1;
|
|
uVar3 = FUN_1008_172f(DAT_1028_0546,DAT_1028_054a);
|
|
uVar3 = FUN_1008_1754(uVar3,iVar1);
|
|
FUN_1008_18ee(uVar3,uVar2);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:19f8 FUN_1008_19f8 ===== */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
undefined4 FUN_1008_19f8(int param_1,int param_2)
|
|
|
|
{
|
|
param_1 = param_1 + DAT_1028_0588;
|
|
if (DAT_1028_0542 <= param_1) {
|
|
param_1 = param_1 - DAT_1028_0542;
|
|
}
|
|
return CONCAT22((int)((ulong)_DAT_1028_4ac2 >> 0x10),
|
|
(int)_DAT_1028_4ac2 + param_1 * DAT_1028_0540 + param_2);
|
|
}
|
|
|
|
|
|
/* ===== 1008:1a39 FUN_1008_1a39 ===== */
|
|
|
|
void FUN_1008_1a39(int param_1,int param_2)
|
|
|
|
{
|
|
undefined2 unaff_CS;
|
|
undefined4 uVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
undefined2 uVar4;
|
|
|
|
if (param_2 < param_1) {
|
|
FUN_1008_1779();
|
|
iVar3 = (param_2 - DAT_1028_0548) * DAT_1028_4ace;
|
|
iVar2 = (DAT_1028_0546 - DAT_1028_054a) * DAT_1028_4ad0;
|
|
uVar4 = DAT_1028_4ad4;
|
|
uVar1 = FUN_1008_19f8(DAT_1028_0546,param_2);
|
|
TEXTOUT(unaff_CS,param_1 - param_2,uVar1,iVar2,iVar3);
|
|
FUN_1008_17e2(uVar4);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1a82 FUN_1008_1a82 ===== */
|
|
|
|
void FUN_1008_1a82(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 unaff_SS;
|
|
undefined4 uVar2;
|
|
undefined2 uVar3;
|
|
|
|
FUN_1008_1a39(*(undefined2 *)(param_1 + -6),*(undefined2 *)(param_1 + -4));
|
|
*(undefined2 *)(param_1 + -4) = 0;
|
|
*(undefined2 *)(param_1 + -6) = 0;
|
|
DAT_1028_0544 = 0;
|
|
iVar1 = DAT_1028_0546 + 1;
|
|
if (DAT_1028_0546 + 1 == DAT_1028_0542) {
|
|
DAT_1028_0588 = DAT_1028_0588 + 1;
|
|
if (DAT_1028_0588 == DAT_1028_0542) {
|
|
DAT_1028_0588 = 0;
|
|
}
|
|
uVar2 = FUN_1008_19f8(DAT_1028_0546,0);
|
|
FUN_1020_16c9(0x20,DAT_1028_0540,uVar2);
|
|
uVar3 = DAT_1028_0586;
|
|
SCROLLWINDOW(0x1020,0,0,0,0,-DAT_1028_4ad0,0);
|
|
UPDATEWINDOW(0x1228,DAT_1028_0586,uVar3);
|
|
iVar1 = DAT_1028_0546;
|
|
}
|
|
DAT_1028_0546 = iVar1;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1b11 FUN_1008_1b11 ===== */
|
|
|
|
void __stdcall16far FUN_1008_1b11(int param_1,byte *param_2)
|
|
|
|
{
|
|
int unaff_BP;
|
|
undefined2 uVar1;
|
|
byte *pbVar2;
|
|
undefined1 *puVar3;
|
|
byte bVar4;
|
|
int iVar5;
|
|
int iVar6;
|
|
undefined2 uVar7;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uVar7 = 0x1028;
|
|
uVar1 = 0x1008;
|
|
FUN_1008_2442();
|
|
iVar5 = DAT_1028_0544;
|
|
iVar6 = DAT_1028_0544;
|
|
for (; param_1 != 0; param_1 = param_1 + -1) {
|
|
bVar4 = *param_2;
|
|
if (bVar4 < 0x20) {
|
|
if (bVar4 == 0xd) {
|
|
FUN_1008_1a82(&iStack_2);
|
|
}
|
|
else if (bVar4 == 8) {
|
|
if (0 < DAT_1028_0544) {
|
|
DAT_1028_0544 = DAT_1028_0544 + -1;
|
|
puVar3 = (undefined1 *)FUN_1008_19f8(DAT_1028_0546,DAT_1028_0544);
|
|
*puVar3 = 0x20;
|
|
if (DAT_1028_0544 < iVar6) {
|
|
iVar6 = DAT_1028_0544;
|
|
}
|
|
}
|
|
}
|
|
else if (bVar4 == 7) {
|
|
MESSAGEBEEP(uVar1,0,iVar5,iVar6,uVar7);
|
|
uVar1 = 0x1228;
|
|
}
|
|
}
|
|
else {
|
|
bVar4 = *param_2;
|
|
pbVar2 = (byte *)FUN_1008_19f8(DAT_1028_0546,DAT_1028_0544);
|
|
*pbVar2 = bVar4;
|
|
DAT_1028_0544 = DAT_1028_0544 + 1;
|
|
if (iVar5 < DAT_1028_0544) {
|
|
iVar5 = DAT_1028_0544;
|
|
}
|
|
if (DAT_1028_0544 == DAT_1028_0540) {
|
|
FUN_1008_1a82(&iStack_2);
|
|
}
|
|
}
|
|
param_2 = (byte *)CONCAT22(param_2._2_2_,(byte *)param_2 + 1);
|
|
}
|
|
FUN_1008_1a39(iVar5,iVar6);
|
|
if (DAT_1028_055e != '\0') {
|
|
FUN_1008_19b7();
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1be9 FUN_1008_1be9 ===== */
|
|
|
|
void __stdcall16far FUN_1008_1be9(void)
|
|
|
|
{
|
|
undefined2 unaff_SS;
|
|
|
|
FUN_1008_1b11(1,&stack0x0004,unaff_SS);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1c03 FUN_1008_1c03 ===== */
|
|
|
|
bool __cdecl16far FUN_1008_1c03(void)
|
|
|
|
{
|
|
int iVar1;
|
|
int unaff_BP;
|
|
undefined2 uVar2;
|
|
undefined2 unaff_SS;
|
|
undefined1 local_18 [2];
|
|
int local_16;
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
uVar2 = 0x1008;
|
|
FUN_1008_2442();
|
|
while (iVar1 = PEEKMESSAGE(uVar2,1,0,0,0,local_18,unaff_SS), iVar1 != 0) {
|
|
if (local_16 == 0x12) {
|
|
FUN_1008_18d0();
|
|
}
|
|
TRANSLATEMESSAGE(0x1228,local_18);
|
|
uVar2 = 0x1228;
|
|
DISPATCHMESSAGE(0x1228,local_18);
|
|
}
|
|
return 0 < DAT_1028_058a;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1c5f FUN_1008_1c5f ===== */
|
|
|
|
undefined1 __cdecl16far FUN_1008_1c5f(void)
|
|
|
|
{
|
|
char cVar1;
|
|
int unaff_BP;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined1 uVar4;
|
|
undefined2 uVar5;
|
|
|
|
iVar2 = unaff_BP + 1;
|
|
uVar5 = 0x1028;
|
|
FUN_1008_19b7();
|
|
uVar3 = 0x1008;
|
|
cVar1 = FUN_1008_1c03();
|
|
if (cVar1 == '\0') {
|
|
DAT_1028_058e = 1;
|
|
if (DAT_1028_058d != '\0') {
|
|
uVar3 = 0x1c84;
|
|
FUN_1008_1818();
|
|
}
|
|
do {
|
|
WAITMESSAGE(uVar3,0x1008,uVar5,iVar2);
|
|
cVar1 = FUN_1008_1c03();
|
|
} while (cVar1 == '\0');
|
|
if (DAT_1028_058d != '\0') {
|
|
FUN_1008_185b();
|
|
}
|
|
DAT_1028_058e = 0;
|
|
}
|
|
DAT_1028_058a = DAT_1028_058a + -1;
|
|
uVar4 = DAT_1028_4af8;
|
|
FUN_1020_16a5(DAT_1028_058a,(undefined1 *)&DAT_1028_4af8,0x1028,0x4af9,0x1028);
|
|
return uVar4;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1cc6 FUN_1008_1cc6 ===== */
|
|
|
|
int __stdcall16far FUN_1008_1cc6(int param_1,undefined4 param_2)
|
|
|
|
{
|
|
uint uVar1;
|
|
byte bVar2;
|
|
int iVar3;
|
|
undefined2 uVar4;
|
|
uint local_a;
|
|
|
|
local_a = 0;
|
|
do {
|
|
bVar2 = FUN_1008_1c5f();
|
|
iVar3 = (int)param_2;
|
|
uVar4 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if (bVar2 == 8) {
|
|
if (local_a != 0) {
|
|
local_a = local_a - 1;
|
|
FUN_1008_1be9(8);
|
|
}
|
|
}
|
|
else if ((0x1f < bVar2) && (local_a < param_1 - 2U)) {
|
|
*(byte *)(iVar3 + local_a) = bVar2;
|
|
FUN_1008_1be9(CONCAT11((char)(local_a >> 8),bVar2));
|
|
local_a = local_a + 1;
|
|
}
|
|
} while ((bVar2 != 0xd) && ((DAT_1028_055f == '\0' || (bVar2 != 0x1a))));
|
|
*(byte *)(iVar3 + local_a) = bVar2;
|
|
uVar1 = local_a + 1;
|
|
if (bVar2 == 0xd) {
|
|
*(undefined1 *)(iVar3 + uVar1) = 10;
|
|
FUN_1008_1be9(CONCAT11((char)(uVar1 >> 8),0xd));
|
|
uVar1 = local_a + 2;
|
|
}
|
|
local_a = uVar1;
|
|
FUN_1008_19b7();
|
|
return local_a;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1d77 FUN_1008_1d77 ===== */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void __cdecl16near FUN_1008_1d77(void)
|
|
|
|
{
|
|
DAT_1028_058c = 1;
|
|
_DAT_1028_4ac2 = FUN_1020_012d(DAT_1028_0540 * DAT_1028_0542);
|
|
FUN_1020_16c9(CONCAT11((char)((uint)(DAT_1028_0540 * DAT_1028_0542) >> 8),0x20),
|
|
DAT_1028_0540 * DAT_1028_0542,_DAT_1028_4ac2);
|
|
if (DAT_1028_0560 == '\0') {
|
|
GETSYSTEMMENU(0x1020,0);
|
|
ENABLEMENUITEM(0x1228,3,0xf060);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1dcc FUN_1008_1dcc ===== */
|
|
|
|
void __cdecl16near FUN_1008_1dcc(void)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
undefined2 unaff_CS;
|
|
undefined4 uVar4;
|
|
int iVar5;
|
|
int iVar6;
|
|
int local_8;
|
|
|
|
DAT_1028_058f = 1;
|
|
FUN_1008_1779();
|
|
iVar1 = FUN_1008_1754(DAT_1028_4ada / DAT_1028_4ace + DAT_1028_0548,0);
|
|
iVar2 = FUN_1008_172f((DAT_1028_4ade + DAT_1028_4ace + -1) / DAT_1028_4ace + DAT_1028_0548,
|
|
DAT_1028_0540);
|
|
local_8 = FUN_1008_1754(DAT_1028_4adc / DAT_1028_4ad0 + DAT_1028_054a,0);
|
|
iVar3 = FUN_1008_172f((DAT_1028_4ae0 + DAT_1028_4ad0 + -1) / DAT_1028_4ad0 + DAT_1028_054a,
|
|
DAT_1028_0542);
|
|
for (; local_8 < iVar3; local_8 = local_8 + 1) {
|
|
iVar6 = (iVar1 - DAT_1028_0548) * DAT_1028_4ace;
|
|
iVar5 = (local_8 - DAT_1028_054a) * DAT_1028_4ad0;
|
|
uVar4 = FUN_1008_19f8(local_8,iVar1);
|
|
TEXTOUT(unaff_CS,iVar2 - iVar1,uVar4,iVar5,iVar6);
|
|
unaff_CS = 0x1228;
|
|
}
|
|
FUN_1008_17e2();
|
|
DAT_1028_058f = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1e8a FUN_1008_1e8a ===== */
|
|
|
|
int FUN_1008_1e8a(int param_1,int param_2,int param_3,int param_4)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 unaff_SS;
|
|
undefined2 local_4;
|
|
|
|
iVar1 = *(int *)(param_1 + 6);
|
|
if (iVar1 == 0) {
|
|
local_4 = param_4 + -1;
|
|
}
|
|
else if (iVar1 == 1) {
|
|
local_4 = param_4 + 1;
|
|
}
|
|
else if (iVar1 == 2) {
|
|
local_4 = param_4 - param_3;
|
|
}
|
|
else if (iVar1 == 3) {
|
|
local_4 = param_4 + param_3;
|
|
}
|
|
else if (iVar1 == 6) {
|
|
local_4 = 0;
|
|
}
|
|
else if (iVar1 == 7) {
|
|
local_4 = param_2;
|
|
}
|
|
else if (iVar1 == 4) {
|
|
local_4 = *(int *)(param_1 + 4);
|
|
}
|
|
else {
|
|
local_4 = param_4;
|
|
}
|
|
return local_4;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1f0c FUN_1008_1f0c ===== */
|
|
|
|
void FUN_1008_1f0c(undefined2 param_1,undefined2 param_2,int param_3)
|
|
|
|
{
|
|
undefined2 local_6;
|
|
undefined2 local_4;
|
|
|
|
local_4 = DAT_1028_0548;
|
|
local_6 = DAT_1028_054a;
|
|
if (param_3 == 0) {
|
|
local_4 = FUN_1008_1e8a(&stack0xfffe,DAT_1028_4aca,DAT_1028_4ac6 / 2,DAT_1028_0548);
|
|
}
|
|
else if (param_3 == 1) {
|
|
local_6 = FUN_1008_1e8a(&stack0xfffe,DAT_1028_4acc,DAT_1028_4ac8,DAT_1028_054a);
|
|
}
|
|
FUN_1008_18ee(local_6,local_4);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1f68 FUN_1008_1f68 ===== */
|
|
|
|
void FUN_1008_1f68(int param_1,int param_2)
|
|
|
|
{
|
|
if ((DAT_1028_058d != '\0') && (DAT_1028_058e != '\0')) {
|
|
FUN_1008_185b();
|
|
}
|
|
DAT_1028_4ac6 = param_2 / DAT_1028_4ace;
|
|
DAT_1028_4ac8 = param_1 / DAT_1028_4ad0;
|
|
DAT_1028_4aca = FUN_1008_1754(DAT_1028_0540 - DAT_1028_4ac6,0);
|
|
DAT_1028_4acc = FUN_1008_1754(DAT_1028_0542 - DAT_1028_4ac8,0);
|
|
DAT_1028_0548 = FUN_1008_172f(DAT_1028_4aca,DAT_1028_0548);
|
|
DAT_1028_054a = FUN_1008_172f(DAT_1028_4acc,DAT_1028_054a);
|
|
FUN_1008_1865();
|
|
if ((DAT_1028_058d != '\0') && (DAT_1028_058e != '\0')) {
|
|
FUN_1008_1818();
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:1fe8 FUN_1008_1fe8 ===== */
|
|
|
|
void FUN_1008_1fe8(undefined4 param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
int iVar3;
|
|
int iVar4;
|
|
undefined2 uVar5;
|
|
int iVar6;
|
|
int local_26;
|
|
undefined2 local_24;
|
|
int local_1e;
|
|
int local_1a;
|
|
int local_6;
|
|
int local_4;
|
|
|
|
FUN_1008_1779();
|
|
uVar2 = DAT_1028_4ad4;
|
|
GETTEXTMETRICS(unaff_CS,&local_26,unaff_SS);
|
|
DAT_1028_4ace = local_1a;
|
|
DAT_1028_4ad0 = local_26 + local_1e;
|
|
DAT_1028_4ad2 = local_24;
|
|
iVar1 = GETSYSTEMMETRICS(0x1228,0x20,uVar2);
|
|
iVar1 = GETSYSTEMMETRICS(0x1228,2,iVar1 << 1);
|
|
iVar6 = 0;
|
|
uVar5 = 0x1228;
|
|
uVar2 = GETSYSTEMMETRICS(0x1228,0,DAT_1028_0540 * DAT_1028_4ace + iVar1);
|
|
local_4 = FUN_1008_172f(uVar2,uVar5);
|
|
local_4 = local_4 + iVar6;
|
|
iVar1 = GETSYSTEMMETRICS(0x1228,0x21);
|
|
uVar2 = GETSYSTEMMETRICS(0x1228,4,iVar1 << 1);
|
|
iVar4 = 0x1228;
|
|
iVar1 = GETSYSTEMMETRICS(0x1228,3,uVar2);
|
|
iVar6 = 1;
|
|
uVar5 = 0x1228;
|
|
uVar2 = GETSYSTEMMETRICS(0x1228,1,DAT_1028_0542 * DAT_1028_4ad0 + iVar1 + iVar4);
|
|
local_6 = FUN_1008_172f(uVar2,uVar5);
|
|
local_6 = local_6 + iVar6;
|
|
uVar5 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar6 = (int)param_1;
|
|
*(int *)(iVar6 + 4) = local_4;
|
|
*(int *)(iVar6 + 6) = local_6;
|
|
iVar1 = GETSYSTEMMETRICS(0x1228,0x20);
|
|
iVar4 = 0x1228;
|
|
iVar1 = GETSYSTEMMETRICS(0x1228,2,iVar1 << 1);
|
|
*(int *)(iVar6 + 0xc) = DAT_1028_4ace * 0x10 + iVar1 + iVar4;
|
|
uVar2 = GETSYSTEMMETRICS(0x1228,4);
|
|
iVar1 = GETSYSTEMMETRICS(0x1228,0x21,uVar2);
|
|
iVar3 = 3;
|
|
iVar4 = 0x1228;
|
|
iVar1 = GETSYSTEMMETRICS(0x1228,3,iVar1 << 1);
|
|
*(int *)(iVar6 + 0xe) = DAT_1028_4ad0 * 4 + iVar1 + iVar4 + iVar3;
|
|
*(int *)(iVar6 + 0x10) = local_4;
|
|
*(int *)(iVar6 + 0x12) = local_6;
|
|
FUN_1008_17e2();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:211a FUN_1008_211a ===== */
|
|
|
|
void FUN_1008_211a(char param_1)
|
|
|
|
{
|
|
if ((DAT_1028_0560 != '\0') && (param_1 == '\x03')) {
|
|
FUN_1008_18d0();
|
|
}
|
|
if (DAT_1028_058a < 0x40) {
|
|
((undefined1 *)&DAT_1028_4af8)[DAT_1028_058a] = param_1;
|
|
DAT_1028_058a = DAT_1028_058a + 1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2147 FUN_1008_2147 ===== */
|
|
|
|
void FUN_1008_2147(char param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
int local_6;
|
|
|
|
if ((DAT_1028_0560 != '\0') && (param_1 == '\x03')) {
|
|
FUN_1008_18d0();
|
|
}
|
|
iVar1 = GETKEYSTATE();
|
|
local_6 = 1;
|
|
while ((iVar2 = local_6 * 4, *(char *)(iVar2 + 0x58c) != param_1 ||
|
|
((bool)*(char *)(iVar2 + 0x58d) != iVar1 < 0))) {
|
|
if (local_6 == 0xc) {
|
|
return;
|
|
}
|
|
local_6 = local_6 + 1;
|
|
}
|
|
FUN_1008_1f0c(0,*(undefined1 *)(iVar2 + 0x58f),*(undefined1 *)(iVar2 + 0x58e));
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:21ba FUN_1008_21ba ===== */
|
|
|
|
void __cdecl16near FUN_1008_21ba(void)
|
|
|
|
{
|
|
DAT_1028_058d = 1;
|
|
if (DAT_1028_058e != '\0') {
|
|
FUN_1008_1818();
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:21ce FUN_1008_21ce ===== */
|
|
|
|
void __cdecl16near FUN_1008_21ce(void)
|
|
|
|
{
|
|
if (DAT_1028_058e != '\0') {
|
|
FUN_1008_185b();
|
|
}
|
|
DAT_1028_058d = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:21e2 FUN_1008_21e2 ===== */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void __cdecl16near FUN_1008_21e2(void)
|
|
|
|
{
|
|
FUN_1020_0147(DAT_1028_0540 * DAT_1028_0542,DAT_1028_4ac2,_DAT_1028_4ac4);
|
|
DAT_1028_0544 = 0;
|
|
DAT_1028_0546 = 0;
|
|
DAT_1028_0548 = 0;
|
|
DAT_1028_054a = 0;
|
|
POSTQUITMESSAGE(0x1020,0);
|
|
DAT_1028_058c = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2219 FUN_1008_2219 ===== */
|
|
|
|
undefined4 __stdcall16far
|
|
FUN_1008_2219(undefined2 param_1,undefined2 param_2,undefined2 param_3,int param_4,
|
|
undefined2 param_5)
|
|
|
|
{
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
undefined4 uVar1;
|
|
|
|
uVar1 = 0;
|
|
*(undefined2 *)&DAT_1028_0586 = param_5;
|
|
if (param_4 == 1) {
|
|
FUN_1008_1d77();
|
|
uVar1 = 0;
|
|
}
|
|
else if (param_4 == 0xf) {
|
|
FUN_1008_1dcc();
|
|
uVar1 = 0;
|
|
}
|
|
else if (param_4 == 0x115) {
|
|
FUN_1008_1f0c(param_1,param_3,1);
|
|
uVar1 = 0;
|
|
}
|
|
else if (param_4 == 0x114) {
|
|
FUN_1008_1f0c(param_1,param_3,0);
|
|
uVar1 = 0;
|
|
}
|
|
else if (param_4 == 5) {
|
|
FUN_1008_1f68(param_2,param_1);
|
|
uVar1 = 0;
|
|
}
|
|
else if (param_4 == 0x24) {
|
|
FUN_1008_1fe8(param_1,param_2);
|
|
uVar1 = 0;
|
|
}
|
|
else if (param_4 == 0x102) {
|
|
FUN_1008_211a(CONCAT11(1,(undefined1)param_3));
|
|
uVar1 = 0;
|
|
}
|
|
else if (param_4 == 0x100) {
|
|
FUN_1008_2147(CONCAT11(1,(undefined1)param_3));
|
|
uVar1 = 0;
|
|
}
|
|
else if (param_4 == 7) {
|
|
FUN_1008_21ba();
|
|
uVar1 = 0;
|
|
}
|
|
else if (param_4 == 8) {
|
|
FUN_1008_21ce();
|
|
uVar1 = 0;
|
|
}
|
|
else if (param_4 == 2) {
|
|
FUN_1008_21e2();
|
|
}
|
|
else {
|
|
uVar1 = DEFWINDOWPROC(unaff_CS,param_1,param_2,param_3,param_4);
|
|
}
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
/* ===== 1008:22fc FUN_1008_22fc ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1008_22fc(undefined4 param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar1 = (int)param_1;
|
|
if (*(int *)(iVar1 + 8) != 0) {
|
|
FUN_1008_1b11(*(undefined2 *)(iVar1 + 8),*(undefined2 *)(iVar1 + 0xc),
|
|
*(undefined2 *)(iVar1 + 0xe));
|
|
*(undefined2 *)(iVar1 + 8) = 0;
|
|
FUN_1008_1c03();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1008:233c FUN_1008_233c ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1008_233c(undefined4 param_1)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar2 = (int)param_1;
|
|
uVar1 = FUN_1008_1cc6(*(undefined2 *)(iVar2 + 4),*(undefined2 *)(iVar2 + 0xc),
|
|
*(undefined2 *)(iVar2 + 0xe));
|
|
*(undefined2 *)(iVar2 + 10) = uVar1;
|
|
*(undefined2 *)(iVar2 + 8) = 0;
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2374 FUN_1008_2374 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1008_2374(void)
|
|
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1008:238b FUN_1008_238b ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1008_238b(undefined4 param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar1 = (int)param_1;
|
|
if (*(int *)(iVar1 + 2) == -0x284f) {
|
|
*(undefined2 *)(iVar1 + 0x14) = 0x233c;
|
|
*(undefined2 *)(iVar1 + 0x16) = 0x1008;
|
|
*(undefined2 *)(iVar1 + 0x18) = 0;
|
|
*(undefined2 *)(iVar1 + 0x1a) = 0;
|
|
}
|
|
else {
|
|
*(undefined2 *)(iVar1 + 2) = 0xd7b2;
|
|
*(undefined2 *)(iVar1 + 0x14) = 0x22fc;
|
|
*(undefined2 *)(iVar1 + 0x16) = 0x1008;
|
|
*(undefined2 *)(iVar1 + 0x18) = 0x22fc;
|
|
*(undefined2 *)(iVar1 + 0x1a) = 0x1008;
|
|
}
|
|
*(undefined2 *)(iVar1 + 0x1c) = 0x2374;
|
|
*(undefined2 *)(iVar1 + 0x1e) = 0x1008;
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1008:23fd FUN_1008_23fd ===== */
|
|
|
|
void __stdcall16far FUN_1008_23fd(undefined2 *param_1)
|
|
|
|
{
|
|
undefined2 *puVar1;
|
|
undefined2 uVar2;
|
|
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
puVar1 = (undefined2 *)param_1;
|
|
*param_1 = 0xffff;
|
|
puVar1[1] = 0xd7b0;
|
|
puVar1[2] = 0x80;
|
|
puVar1[6] = puVar1 + 0x40;
|
|
puVar1[7] = uVar2;
|
|
puVar1[8] = 0x238b;
|
|
puVar1[9] = 0x1008;
|
|
*(undefined1 *)(puVar1 + 0x18) = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2442 FUN_1008_2442 ===== */
|
|
|
|
void __cdecl16far FUN_1008_2442(void)
|
|
|
|
{
|
|
int unaff_BP;
|
|
int iVar1;
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar2;
|
|
|
|
iVar1 = unaff_BP + 1;
|
|
if (DAT_1028_058c == '\0') {
|
|
DAT_1028_0586 =
|
|
CREATEWINDOW(unaff_CS,0,0,DAT_1028_06fe,0,0,DAT_1028_053e,DAT_1028_053c,DAT_1028_053a,
|
|
DAT_1028_0538,0,0xff,0x4a6e,0x1028,DAT_1028_0578,DAT_1028_057a,0x1028);
|
|
uVar2 = DAT_1028_0586;
|
|
SHOWWINDOW(0x1228,DAT_1028_0700);
|
|
UPDATEWINDOW(0x1228,DAT_1028_0586,uVar2,iVar1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:24a5 FUN_1008_24a5 ===== */
|
|
|
|
void __cdecl16far FUN_1008_24a5(void)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int iVar2;
|
|
int unaff_BP;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
undefined1 local_9a [128];
|
|
undefined1 local_1a [18];
|
|
undefined2 local_8;
|
|
undefined2 local_6;
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
DAT_1028_0712 = DAT_1028_4abe;
|
|
DAT_1028_0714 = DAT_1028_4ac0;
|
|
if ((DAT_1028_058c != '\0') && (DAT_1028_0718 == 0 && DAT_1028_071a == 0)) {
|
|
local_8 = 0x4a6e;
|
|
local_6 = 0x1028;
|
|
WVSPRINTF(unaff_CS,&local_8,unaff_SS,DAT_1028_054c,DAT_1028_054e,local_9a);
|
|
SETWINDOWTEXT(0x1228,local_9a);
|
|
uVar1 = GETSYSTEMMENU(0x1228,0);
|
|
ENABLEMENUITEM(0x1228,0,0xf060);
|
|
DAT_1028_0560 = 0;
|
|
while (iVar2 = GETMESSAGE(0x1228,0,0,0,local_1a,unaff_SS,uVar1), iVar2 != 0) {
|
|
uVar1 = unaff_SS;
|
|
TRANSLATEMESSAGE(0x1228,local_1a);
|
|
DISPATCHMESSAGE(0x1228,local_1a);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2554 FUN_1008_2554 ===== */
|
|
|
|
void __cdecl16far FUN_1008_2554(void)
|
|
|
|
{
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar1;
|
|
|
|
if (DAT_1028_06fc == 0) {
|
|
DAT_1028_056c = DAT_1028_06fe;
|
|
DAT_1028_056e = LOADICON(unaff_CS,0x7f00,0);
|
|
DAT_1028_0570 = LOADCURSOR(0x1228,0x7f00,0);
|
|
DAT_1028_0572 = 6;
|
|
REGISTERCLASS(0x1228,0x562);
|
|
}
|
|
FUN_1008_23fd(0x4b38,0x1028);
|
|
uVar1 = 0x1028;
|
|
FUN_1020_0527(0x1008,0x4b38);
|
|
FUN_1020_038f(uVar1);
|
|
FUN_1008_23fd(0x4c38,0x1028);
|
|
uVar1 = 0x1028;
|
|
FUN_1020_052c(0x1008,0x4c38);
|
|
FUN_1020_038f(uVar1);
|
|
uVar1 = DAT_1028_06fe;
|
|
GETMODULEFILENAME(0x1020,0x50,0x4a6e,0x1028);
|
|
Ordinal_6(0x1228,0x4a6e,0x1028,0x4a6e,0x1028,uVar1);
|
|
DAT_1028_4abe = DAT_1028_0712;
|
|
DAT_1028_4ac0 = DAT_1028_0714;
|
|
DAT_1028_0712 = 0x24a5;
|
|
DAT_1028_0714 = 0x1008;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2608 FUN_1008_2608 ===== */
|
|
|
|
void __cdecl16near FUN_1008_2608(void)
|
|
|
|
{
|
|
char *pcVar1;
|
|
char *pcVar2;
|
|
code *pcVar3;
|
|
int iVar4;
|
|
char *unaff_DI;
|
|
char *pcVar5;
|
|
undefined2 unaff_ES;
|
|
undefined2 unaff_SS;
|
|
char local_52 [80];
|
|
|
|
pcVar5 = local_52;
|
|
iVar4 = 0x4f;
|
|
do {
|
|
pcVar1 = unaff_DI;
|
|
unaff_DI = unaff_DI + 1;
|
|
if (*pcVar1 == '\0') break;
|
|
pcVar2 = pcVar5;
|
|
pcVar5 = pcVar5 + 1;
|
|
*pcVar2 = *pcVar1;
|
|
iVar4 = iVar4 + -1;
|
|
} while (iVar4 != 0);
|
|
*pcVar5 = '\0';
|
|
Ordinal_5();
|
|
pcVar3 = (code *)swi(0x21);
|
|
(*pcVar3)();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2643 FUN_1008_2643 ===== */
|
|
|
|
char * __stdcall16far FUN_1008_2643(char *param_1,char *param_2,char *param_3)
|
|
|
|
{
|
|
char *pcVar1;
|
|
char *pcVar2;
|
|
char cVar3;
|
|
char cVar4;
|
|
uint uVar5;
|
|
char *pcVar6;
|
|
char *pcVar7;
|
|
char *pcVar8;
|
|
undefined2 uVar9;
|
|
undefined2 uVar10;
|
|
bool bVar11;
|
|
undefined2 uVar12;
|
|
|
|
uVar12 = 0x1028;
|
|
uVar10 = (undefined2)((ulong)param_1 >> 0x10);
|
|
pcVar6 = (char *)param_1;
|
|
uVar9 = (undefined2)((ulong)param_3 >> 0x10);
|
|
uVar5 = 0x4f;
|
|
pcVar8 = (char *)param_3;
|
|
do {
|
|
if (uVar5 != 0) {
|
|
pcVar7 = (char *)param_2;
|
|
do {
|
|
pcVar1 = pcVar7;
|
|
pcVar7 = pcVar7 + 1;
|
|
if (*pcVar1 == '\0') break;
|
|
pcVar2 = pcVar8;
|
|
pcVar8 = pcVar8 + 1;
|
|
*pcVar2 = *pcVar1;
|
|
uVar5 = uVar5 - 1;
|
|
} while (uVar5 != 0);
|
|
}
|
|
bVar11 = false;
|
|
*pcVar8 = '\0';
|
|
FUN_1008_2608(pcVar6,uVar10,uVar12);
|
|
if ((!bVar11) && ((uVar5 & 0x18) == 0)) {
|
|
return param_3;
|
|
}
|
|
uVar5 = 0x4f;
|
|
cVar3 = *pcVar6;
|
|
cVar4 = '\0';
|
|
pcVar8 = (char *)param_3;
|
|
if (cVar3 == '\0') {
|
|
*param_3 = '\0';
|
|
return param_3;
|
|
}
|
|
do {
|
|
pcVar6 = pcVar6 + 1;
|
|
if (cVar3 == ';') break;
|
|
if (uVar5 != 0) {
|
|
pcVar1 = pcVar8;
|
|
pcVar8 = pcVar8 + 1;
|
|
*pcVar1 = cVar3;
|
|
uVar5 = uVar5 - 1;
|
|
cVar4 = cVar3;
|
|
}
|
|
cVar3 = *pcVar6;
|
|
} while (cVar3 != '\0');
|
|
if (((uVar5 != 0) && (cVar4 != ':')) && (cVar4 != '\\')) {
|
|
pcVar1 = pcVar8;
|
|
pcVar8 = pcVar8 + 1;
|
|
*pcVar1 = '\\';
|
|
uVar5 = uVar5 - 1;
|
|
}
|
|
} while( true );
|
|
}
|
|
|
|
|
|
/* ===== 1008:26b0 FUN_1008_26b0 ===== */
|
|
|
|
uint __stdcall16far
|
|
FUN_1008_26b0(int param_1,int param_2,int param_3,int param_4,int param_5,int param_6,int param_7,
|
|
undefined2 param_8)
|
|
|
|
{
|
|
long lVar1;
|
|
undefined4 local_14;
|
|
int local_10;
|
|
undefined2 local_e;
|
|
uint local_c;
|
|
uint local_a;
|
|
uint local_8;
|
|
|
|
lVar1 = FUN_1008_2fe3(0x5c,param_7,param_8);
|
|
if (lVar1 == 0) {
|
|
lVar1 = FUN_1008_2fe3(0x3a,param_7,param_8);
|
|
}
|
|
local_e = (undefined2)((ulong)lVar1 >> 0x10);
|
|
local_10 = (int)lVar1;
|
|
if (lVar1 == 0) {
|
|
local_10 = param_7;
|
|
local_e = param_8;
|
|
}
|
|
else {
|
|
local_10 = local_10 + 1;
|
|
}
|
|
local_14 = (char *)FUN_1008_2fbb(0x2e,local_10,local_e);
|
|
if (local_14 == (char *)0x0) {
|
|
local_14 = (char *)FUN_1008_2ea9(local_10,local_e);
|
|
}
|
|
local_8 = local_10 - param_7;
|
|
if (0x43 < local_8) {
|
|
local_8 = 0x43;
|
|
}
|
|
local_a = (int)(char *)local_14 - local_10;
|
|
if (8 < local_a) {
|
|
local_a = 8;
|
|
}
|
|
local_c = 0;
|
|
lVar1 = FUN_1008_2fbb(0x3f,local_10,local_e);
|
|
if (lVar1 == 0) {
|
|
lVar1 = FUN_1008_2fbb(0x2a,local_10,local_e);
|
|
if (lVar1 == 0) goto LAB_1008_2784;
|
|
}
|
|
local_c = 8;
|
|
LAB_1008_2784:
|
|
if (local_8 != 0) {
|
|
local_c = local_c | 4;
|
|
}
|
|
if (local_a != 0) {
|
|
local_c = local_c | 2;
|
|
}
|
|
if (*local_14 != '\0') {
|
|
local_c = local_c | 1;
|
|
}
|
|
if (param_5 != 0 || param_6 != 0) {
|
|
FUN_1008_2f07(local_8,param_7,param_8,param_5,param_6);
|
|
}
|
|
if (param_3 != 0 || param_4 != 0) {
|
|
FUN_1008_2f07(local_a,local_10,local_e,param_3,param_4);
|
|
}
|
|
if (param_1 != 0 || param_2 != 0) {
|
|
FUN_1008_2f07(4,(char *)local_14,local_14._2_2_,param_1,param_2);
|
|
}
|
|
return local_c;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2819 FUN_1008_2819 ===== */
|
|
|
|
char * __stdcall16far FUN_1008_2819(undefined2 param_1,undefined2 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined4 local_e;
|
|
char *local_8;
|
|
undefined2 local_6;
|
|
|
|
iVar1 = FUN_1008_2e92(param_1,param_2);
|
|
local_e = (char *)GETDOSENVIRONMENT(0x1008);
|
|
do {
|
|
if (*local_e == '\0') {
|
|
local_8 = (char *)0x0;
|
|
local_6 = 0;
|
|
LAB_1008_2896:
|
|
return (char *)CONCAT22(local_6,local_8);
|
|
}
|
|
iVar2 = FUN_1008_2f70(iVar1,param_1,param_2,(char *)local_e,local_e._2_2_);
|
|
if ((iVar2 == 0) && (((char *)local_e)[iVar1] == '=')) {
|
|
local_8 = (char *)local_e + iVar1 + 1;
|
|
local_6 = local_e._2_2_;
|
|
goto LAB_1008_2896;
|
|
}
|
|
iVar2 = FUN_1008_2e92((char *)local_e,local_e._2_2_);
|
|
local_e = (char *)CONCAT22(local_e._2_2_,(char *)local_e + iVar2 + 1);
|
|
} while( true );
|
|
}
|
|
|
|
|
|
/* ===== 1008:28a3 FUN_1008_28a3 ===== */
|
|
|
|
undefined4 __stdcall16far
|
|
FUN_1008_28a3(undefined4 param_1,undefined2 param_2,undefined1 param_3,undefined2 param_4,
|
|
undefined2 param_5,undefined2 param_6)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
bool bVar4;
|
|
|
|
FUN_1020_03cb();
|
|
bVar4 = true;
|
|
FUN_1020_03ef();
|
|
if (!bVar4) {
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar2 = (int)param_1;
|
|
FUN_1008_2d99(iVar2,uVar3,0);
|
|
*(undefined2 *)(iVar2 + 2) = 0;
|
|
*(undefined2 *)(iVar2 + 4) = param_6;
|
|
uVar1 = FUN_1008_295c(iVar2,uVar3,param_3,param_4,param_5);
|
|
*(undefined2 *)(iVar2 + 2) = uVar1;
|
|
if (*(int *)(iVar2 + 2) == 0) {
|
|
FUN_1020_0439();
|
|
}
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2906 FUN_1008_2906 ===== */
|
|
|
|
void __stdcall16far FUN_1008_2906(undefined4 param_1)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
|
|
FUN_1020_03cb();
|
|
uVar1 = (undefined2)((ulong)param_1 >> 0x10);
|
|
FUN_1008_2932((int)param_1,uVar1);
|
|
FUN_1008_2dcd((int)param_1,uVar1,0);
|
|
FUN_1020_0439();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2932 FUN_1008_2932 ===== */
|
|
|
|
void __stdcall16far FUN_1008_2932(undefined4 param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
|
|
FUN_1020_03cb();
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar1 = (int)param_1;
|
|
if (*(int *)(iVar1 + 2) != 0) {
|
|
TIMEKILLEVENT(0x1020,*(undefined2 *)(iVar1 + 2));
|
|
}
|
|
*(undefined2 *)(iVar1 + 2) = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:295c FUN_1008_295c ===== */
|
|
|
|
undefined2 __stdcall16far
|
|
FUN_1008_295c(undefined2 param_1,undefined2 param_2,undefined1 param_3,undefined2 param_4,
|
|
undefined2 param_5)
|
|
|
|
{
|
|
undefined1 extraout_AH;
|
|
undefined2 uVar1;
|
|
|
|
FUN_1020_03cb();
|
|
uVar1 = SYSTEMTIMERMAKE(0x1020,CONCAT11(extraout_AH,param_3),param_4,param_5);
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
/* ===== 1008:298a FUN_1008_298a ===== */
|
|
|
|
void __cdecl16far FUN_1008_298a(void)
|
|
|
|
{
|
|
FUN_1020_03cb();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2996 FUN_1008_2996 ===== */
|
|
|
|
undefined4 __stdcall16far
|
|
FUN_1008_2996(undefined4 param_1,undefined2 param_2,undefined2 param_3,int param_4,
|
|
undefined2 param_5,undefined2 param_6)
|
|
|
|
{
|
|
int unaff_BP;
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
bool bVar3;
|
|
undefined4 uVar4;
|
|
|
|
bVar3 = true;
|
|
FUN_1020_03ef(0x1028,unaff_BP + 1);
|
|
if (!bVar3) {
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar1 = (int)param_1;
|
|
FUN_1018_0341(iVar1,uVar2,0,param_5,param_6);
|
|
FUN_1018_0627(iVar1,uVar2);
|
|
if (param_4 == 0) {
|
|
*(undefined2 *)(iVar1 + 0x1d) = param_3;
|
|
*(undefined2 *)(iVar1 + 0x1f) = 0;
|
|
}
|
|
else {
|
|
uVar4 = FUN_1008_302c(param_3,param_4);
|
|
*(undefined2 *)(iVar1 + 0x1d) = (int)uVar4;
|
|
*(undefined2 *)(iVar1 + 0x1f) = (int)((ulong)uVar4 >> 0x10);
|
|
}
|
|
*(undefined2 *)(iVar1 + 0x21) = 0;
|
|
*(undefined2 *)(iVar1 + 0x23) = 0;
|
|
*(undefined1 *)(iVar1 + 0x25) = 0;
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2a0e FUN_1008_2a0e ===== */
|
|
|
|
void __stdcall16far FUN_1008_2a0e(undefined4 param_1)
|
|
|
|
{
|
|
int unaff_BP;
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
|
|
iVar1 = unaff_BP + 1;
|
|
uVar4 = 0x1028;
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar2 = (int)param_1;
|
|
if (*(int *)(iVar2 + 0x1f) != 0) {
|
|
FUN_1008_3099(*(undefined2 *)(iVar2 + 0x1d),*(undefined2 *)(iVar2 + 0x1f));
|
|
}
|
|
FUN_1018_03ff(iVar2,uVar3,0);
|
|
FUN_1020_0439(uVar4,iVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2a45 FUN_1008_2a45 ===== */
|
|
|
|
uint __stdcall16far FUN_1008_2a45(undefined4 param_1)
|
|
|
|
{
|
|
uint in_AX;
|
|
uint uVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 local_8;
|
|
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar2 = (int)param_1;
|
|
if (*(int *)(iVar2 + 2) == 0) {
|
|
FUN_1018_0627(iVar2,uVar3);
|
|
FUN_1018_05f3(iVar2,uVar3);
|
|
*(undefined1 *)(iVar2 + 0x25) = 0;
|
|
if (*(int *)(iVar2 + 6) == 0 && *(int *)(iVar2 + 8) == 0) {
|
|
local_8 = 0;
|
|
}
|
|
else {
|
|
local_8 = *(undefined2 *)((int)*(undefined4 *)(iVar2 + 6) + 4);
|
|
}
|
|
in_AX = (*DAT_1028_0652)(0x1018,*(undefined2 *)(iVar2 + 0x21),*(undefined2 *)(iVar2 + 0x23),
|
|
*(undefined2 *)(iVar2 + 0x12),*(undefined2 *)(iVar2 + 0x14),local_8,
|
|
*(undefined2 *)(iVar2 + 0x1d),*(undefined2 *)(iVar2 + 0x1f),
|
|
DAT_1028_06fe);
|
|
*(uint *)(iVar2 + 4) = in_AX;
|
|
if (*(int *)(iVar2 + 4) == 0) {
|
|
*(undefined2 *)(iVar2 + 2) = 0xffff;
|
|
}
|
|
}
|
|
uVar1 = in_AX & 0xff00;
|
|
if (*(int *)(iVar2 + 2) == 0) {
|
|
uVar1 = uVar1 + 1;
|
|
}
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2ae3 FUN_1008_2ae3 ===== */
|
|
|
|
int __stdcall16far FUN_1008_2ae3(undefined4 param_1)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 local_8;
|
|
undefined2 local_6;
|
|
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar2 = (int)param_1;
|
|
if (*(int *)(iVar2 + 2) == 0) {
|
|
FUN_1018_0627(iVar2,uVar4);
|
|
FUN_1018_05f3(iVar2,uVar4);
|
|
*(undefined1 *)(iVar2 + 0x25) = 1;
|
|
if (*(int *)(iVar2 + 6) == 0 && *(int *)(iVar2 + 8) == 0) {
|
|
local_8 = 0;
|
|
}
|
|
else {
|
|
local_8 = *(undefined2 *)((int)*(undefined4 *)(iVar2 + 6) + 4);
|
|
}
|
|
uVar5 = (undefined2)((ulong)DAT_1028_064e >> 0x10);
|
|
uVar1 = *(undefined2 *)((int)DAT_1028_064e + 0xe);
|
|
uVar5 = *(undefined2 *)((int)DAT_1028_064e + 0x10);
|
|
local_6 = (*DAT_1028_0656)(0x1018,*(undefined2 *)(iVar2 + 0x21),*(undefined2 *)(iVar2 + 0x23),
|
|
*(undefined2 *)(iVar2 + 0x12),*(undefined2 *)(iVar2 + 0x14),local_8,
|
|
*(undefined2 *)(iVar2 + 0x1d),*(undefined2 *)(iVar2 + 0x1f),
|
|
DAT_1028_06fe);
|
|
uVar6 = (undefined2)((ulong)DAT_1028_064e >> 0x10);
|
|
iVar3 = (int)DAT_1028_064e;
|
|
*(undefined2 *)(iVar3 + 0xe) = uVar1;
|
|
*(undefined2 *)(iVar3 + 0x10) = uVar5;
|
|
if (local_6 == -1) {
|
|
*(undefined2 *)(iVar2 + 2) = 0xffff;
|
|
}
|
|
*(undefined2 *)(iVar2 + 4) = 0;
|
|
}
|
|
else {
|
|
local_6 = *(int *)(iVar2 + 2);
|
|
}
|
|
return local_6;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2bb1 FUN_1008_2bb1 ===== */
|
|
|
|
void __stdcall16far FUN_1008_2bb1(undefined2 param_1,undefined4 param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
|
|
uVar1 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if (*(int *)((int)param_2 + 4) != 0) {
|
|
FUN_1018_060d((int)param_2,uVar1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2bd1 FUN_1008_2bd1 ===== */
|
|
|
|
void __stdcall16far FUN_1008_2bd1(undefined4 param_1,undefined2 param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
|
|
uVar1 = (undefined2)((ulong)param_1 >> 0x10);
|
|
if (*(char *)((int)param_1 + 0x25) != '\0') {
|
|
FUN_1018_085a((int)param_1,uVar1,0x2bb1,0x1008);
|
|
ENDDIALOG(0x1018,param_2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2c08 FUN_1008_2c08 ===== */
|
|
|
|
void __stdcall16far FUN_1008_2c08(int *param_1)
|
|
|
|
{
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x38))();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2c1f FUN_1008_2c1f ===== */
|
|
|
|
void __stdcall16far FUN_1008_2c1f(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
char cVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
|
|
uVar3 = (undefined2)((ulong)DAT_1028_064e >> 0x10);
|
|
iVar2 = (int)param_2;
|
|
uVar4 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if (((int)((ulong)param_1 >> 0x10) == ((int *)DAT_1028_064e)[5]) &&
|
|
((int *)param_1 == (int *)((int *)DAT_1028_064e)[4])) {
|
|
cVar1 = (*(code *)*(undefined2 *)(*DAT_1028_064e + 0x44))();
|
|
*(int *)(iVar2 + 10) = (int)(cVar1 == '\0');
|
|
*(undefined2 *)(iVar2 + 0xc) = 0;
|
|
}
|
|
else {
|
|
cVar1 = (*(code *)*(undefined2 *)(*param_1 + 0x3c))();
|
|
*(int *)(iVar2 + 10) = (int)(cVar1 == '\0');
|
|
*(undefined2 *)(iVar2 + 0xc) = 0;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2c83 FUN_1008_2c83 ===== */
|
|
|
|
void __stdcall16far FUN_1008_2c83(undefined2 param_1,undefined2 param_2,undefined4 param_3)
|
|
|
|
{
|
|
int *piVar1;
|
|
int iVar2;
|
|
int unaff_BP;
|
|
int iVar3;
|
|
undefined2 uVar4;
|
|
long lVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
|
|
iVar3 = unaff_BP + 1;
|
|
uVar7 = 0x1028;
|
|
uVar4 = (undefined2)((ulong)param_3 >> 0x10);
|
|
uVar6 = *(undefined2 *)((int)param_3 + 4);
|
|
SETFOCUS();
|
|
lVar5 = FUN_1018_0097(*(undefined2 *)((int)param_3 + 4));
|
|
uVar4 = (undefined2)((ulong)lVar5 >> 0x10);
|
|
iVar2 = (int)lVar5;
|
|
if ((lVar5 != 0) && (*(int *)(iVar2 + 0x43) != 0 || *(int *)(iVar2 + 0x45) != 0)) {
|
|
piVar1 = (int *)*(undefined4 *)(iVar2 + 0x43);
|
|
(*(code *)*(undefined2 *)(*piVar1 + 0xc))
|
|
(0x1018,(int *)piVar1,(int)((ulong)piVar1 >> 0x10),uVar6,lVar5,uVar7,iVar3);
|
|
}
|
|
DAT_1028_06f2 = 1;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2cd9 FUN_1008_2cd9 ===== */
|
|
|
|
void __stdcall16far FUN_1008_2cd9(undefined2 param_1,undefined2 param_2,undefined4 param_3)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
|
|
uVar1 = (undefined2)((ulong)param_3 >> 0x10);
|
|
*(undefined2 *)((int)param_3 + 10) = 0;
|
|
*(undefined2 *)((int)param_3 + 0xc) = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2cf2 FUN_1008_2cf2 ===== */
|
|
|
|
void __stdcall16far FUN_1008_2cf2(int *param_1)
|
|
|
|
{
|
|
char cVar1;
|
|
undefined2 uVar2;
|
|
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
if (*(char *)((int)(int *)param_1 + 0x25) == '\0') {
|
|
FUN_1018_0f38((int *)param_1,uVar2);
|
|
}
|
|
else {
|
|
cVar1 = (*(code *)*(undefined2 *)(*param_1 + 0x3c))();
|
|
if (cVar1 != '\0') {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x44))();
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x50))();
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2d3a FUN_1008_2d3a ===== */
|
|
|
|
void __stdcall16far FUN_1008_2d3a(int *param_1)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
|
|
uVar1 = (undefined2)((ulong)param_1 >> 0x10);
|
|
if (*(char *)((int)(int *)param_1 + 0x25) == '\0') {
|
|
FUN_1018_0f38((int *)param_1,uVar1);
|
|
}
|
|
else {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x50))();
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2d66 FUN_1008_2d66 ===== */
|
|
|
|
void __stdcall16far FUN_1008_2d66(void)
|
|
|
|
{
|
|
FUN_1020_16e1();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2d87 FUN_1008_2d87 ===== */
|
|
|
|
void __cdecl16far FUN_1008_2d87(void)
|
|
|
|
{
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2d99 FUN_1008_2d99 ===== */
|
|
|
|
undefined4 __stdcall16far FUN_1008_2d99(undefined4 param_1)
|
|
|
|
{
|
|
int unaff_BP;
|
|
|
|
FUN_1020_03ef(0x1028,unaff_BP + 1);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2db3 FUN_1008_2db3 ===== */
|
|
|
|
void __stdcall16far FUN_1008_2db3(int *param_1)
|
|
|
|
{
|
|
(*(code *)*(undefined2 *)(*param_1 + 8))();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2dcd FUN_1008_2dcd ===== */
|
|
|
|
void __stdcall16far FUN_1008_2dcd(void)
|
|
|
|
{
|
|
int unaff_BP;
|
|
|
|
FUN_1020_0439(0x1028,unaff_BP + 1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2de0 FUN_1008_2de0 ===== */
|
|
|
|
uint __cdecl16far FUN_1008_2de0(void)
|
|
|
|
{
|
|
uint uVar1;
|
|
|
|
uVar1 = (DAT_1028_06f6 | DAT_1028_06f8) & 0xff00;
|
|
if ((DAT_1028_06f6 | DAT_1028_06f8) == 0) {
|
|
uVar1 = 1;
|
|
}
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2dff FUN_1008_2dff ===== */
|
|
|
|
void __cdecl16far FUN_1008_2dff(void)
|
|
|
|
{
|
|
char cVar1;
|
|
int unaff_BP;
|
|
undefined4 uVar2;
|
|
|
|
cVar1 = FUN_1008_2de0(0x1028,unaff_BP + 1);
|
|
uVar2 = CONCAT22(DAT_1028_06f8,DAT_1028_06f6);
|
|
if (cVar1 != '\0') {
|
|
uVar2 = FUN_1020_012d(DAT_1028_06f4);
|
|
}
|
|
DAT_1028_06f8 = (undefined2)((ulong)uVar2 >> 0x10);
|
|
DAT_1028_06f6 = (undefined2)uVar2;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2e22 FUN_1008_2e22 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1008_2e22(int param_1)
|
|
|
|
{
|
|
char cVar1;
|
|
undefined2 local_6;
|
|
|
|
if (param_1 != 0) {
|
|
if (DAT_1028_06fa == '\0') {
|
|
cVar1 = FUN_1008_2de0();
|
|
if (cVar1 == '\0') {
|
|
FUN_1020_0147(DAT_1028_06f4,DAT_1028_06f6,DAT_1028_06f8);
|
|
DAT_1028_06f6 = 0;
|
|
DAT_1028_06f8 = 0;
|
|
local_6 = 2;
|
|
}
|
|
else {
|
|
local_6 = 0;
|
|
}
|
|
}
|
|
else {
|
|
local_6 = 1;
|
|
}
|
|
}
|
|
return local_6;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2e76 FUN_1008_2e76 ===== */
|
|
|
|
void __cdecl16far FUN_1008_2e76(void)
|
|
|
|
{
|
|
int unaff_BP;
|
|
|
|
FUN_1008_2dff(0x1028,unaff_BP + 1);
|
|
DAT_1028_070e = 0x2e22;
|
|
DAT_1028_0710 = 0x1008;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2e92 FUN_1008_2e92 ===== */
|
|
|
|
int __stdcall16far FUN_1008_2e92(char *param_1)
|
|
|
|
{
|
|
char *pcVar1;
|
|
int iVar2;
|
|
char *pcVar3;
|
|
|
|
pcVar3 = (char *)param_1;
|
|
iVar2 = -1;
|
|
do {
|
|
if (iVar2 == 0) break;
|
|
iVar2 = iVar2 + -1;
|
|
pcVar1 = pcVar3;
|
|
pcVar3 = pcVar3 + 1;
|
|
} while (*pcVar1 != '\0');
|
|
return -2 - iVar2;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2ea9 FUN_1008_2ea9 ===== */
|
|
|
|
char * __stdcall16far FUN_1008_2ea9(char *param_1)
|
|
|
|
{
|
|
char *pcVar1;
|
|
int iVar2;
|
|
char *pcVar3;
|
|
undefined2 uVar4;
|
|
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
pcVar3 = (char *)param_1;
|
|
iVar2 = -1;
|
|
do {
|
|
if (iVar2 == 0) break;
|
|
iVar2 = iVar2 + -1;
|
|
pcVar1 = pcVar3;
|
|
pcVar3 = pcVar3 + 1;
|
|
} while (*pcVar1 != '\0');
|
|
return (char *)CONCAT22(uVar4,pcVar3 + -1);
|
|
}
|
|
|
|
|
|
/* ===== 1008:2ec0 FUN_1008_2ec0 ===== */
|
|
|
|
undefined1 * __stdcall16far FUN_1008_2ec0(int param_1,undefined1 *param_2,undefined1 *param_3)
|
|
|
|
{
|
|
undefined1 *puVar1;
|
|
undefined1 *puVar2;
|
|
undefined1 *puVar3;
|
|
undefined1 *puVar4;
|
|
byte bVar5;
|
|
|
|
bVar5 = 0;
|
|
puVar3 = (undefined1 *)param_2;
|
|
puVar4 = (undefined1 *)param_3;
|
|
if (puVar3 < puVar4) {
|
|
bVar5 = 1;
|
|
puVar3 = puVar3 + param_1 + -1;
|
|
puVar4 = puVar4 + param_1 + -1;
|
|
}
|
|
for (; param_1 != 0; param_1 = param_1 + -1) {
|
|
puVar2 = puVar4;
|
|
puVar4 = puVar4 + (uint)bVar5 * -2 + 1;
|
|
puVar1 = puVar3;
|
|
puVar3 = puVar3 + (uint)bVar5 * -2 + 1;
|
|
*puVar2 = *puVar1;
|
|
}
|
|
return param_3;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2ee5 FUN_1008_2ee5 ===== */
|
|
|
|
char * __stdcall16far FUN_1008_2ee5(char *param_1,char *param_2)
|
|
|
|
{
|
|
char *pcVar1;
|
|
char *pcVar2;
|
|
uint uVar3;
|
|
char *pcVar4;
|
|
char *pcVar5;
|
|
undefined2 uVar6;
|
|
|
|
uVar6 = (undefined2)((ulong)param_1 >> 0x10);
|
|
pcVar4 = (char *)param_1;
|
|
uVar3 = 0xffff;
|
|
pcVar5 = pcVar4;
|
|
do {
|
|
if (uVar3 == 0) break;
|
|
uVar3 = uVar3 - 1;
|
|
pcVar1 = pcVar5;
|
|
pcVar5 = pcVar5 + 1;
|
|
} while (*pcVar1 != '\0');
|
|
pcVar5 = (char *)param_2;
|
|
for (uVar3 = ~uVar3; uVar3 != 0; uVar3 = uVar3 - 1) {
|
|
pcVar2 = pcVar5;
|
|
pcVar5 = pcVar5 + 1;
|
|
pcVar1 = pcVar4;
|
|
pcVar4 = pcVar4 + 1;
|
|
*pcVar2 = *pcVar1;
|
|
}
|
|
return param_2;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2f07 FUN_1008_2f07 ===== */
|
|
|
|
char * __stdcall16far FUN_1008_2f07(int param_1,char *param_2,char *param_3)
|
|
|
|
{
|
|
char *pcVar1;
|
|
char *pcVar2;
|
|
int iVar3;
|
|
char *pcVar4;
|
|
char *pcVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
|
|
uVar6 = (undefined2)((ulong)param_2 >> 0x10);
|
|
pcVar4 = (char *)param_2;
|
|
iVar3 = param_1;
|
|
pcVar5 = pcVar4;
|
|
do {
|
|
if (iVar3 == 0) break;
|
|
iVar3 = iVar3 + -1;
|
|
pcVar1 = pcVar5;
|
|
pcVar5 = pcVar5 + 1;
|
|
} while (*pcVar1 != '\0');
|
|
uVar7 = (undefined2)((ulong)param_3 >> 0x10);
|
|
pcVar5 = (char *)param_3;
|
|
for (param_1 = param_1 - iVar3; param_1 != 0; param_1 = param_1 + -1) {
|
|
pcVar2 = pcVar5;
|
|
pcVar5 = pcVar5 + 1;
|
|
pcVar1 = pcVar4;
|
|
pcVar4 = pcVar4 + 1;
|
|
*pcVar2 = *pcVar1;
|
|
}
|
|
*pcVar5 = '\0';
|
|
return param_3;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2f2f FUN_1008_2f2f ===== */
|
|
|
|
byte * __stdcall16far FUN_1008_2f2f(byte *param_1,byte *param_2)
|
|
|
|
{
|
|
byte *pbVar1;
|
|
uint uVar2;
|
|
byte *pbVar3;
|
|
byte *pbVar4;
|
|
undefined2 uVar5;
|
|
|
|
pbVar3 = (byte *)param_1;
|
|
uVar5 = (undefined2)((ulong)param_2 >> 0x10);
|
|
pbVar4 = (byte *)param_2;
|
|
for (uVar2 = (uint)*param_1; pbVar3 = pbVar3 + 1, uVar2 != 0; uVar2 = uVar2 - 1) {
|
|
pbVar1 = pbVar4;
|
|
pbVar4 = pbVar4 + 1;
|
|
*pbVar1 = *pbVar3;
|
|
}
|
|
*pbVar4 = 0;
|
|
return param_2;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2f4d FUN_1008_2f4d ===== */
|
|
|
|
undefined4 __stdcall16far
|
|
FUN_1008_2f4d(undefined2 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
|
|
uVar1 = FUN_1008_2ea9(param_3,param_4);
|
|
FUN_1008_2ee5(param_1,param_2,uVar1);
|
|
return CONCAT22(param_4,param_3);
|
|
}
|
|
|
|
|
|
/* ===== 1008:2f70 FUN_1008_2f70 ===== */
|
|
|
|
void __stdcall16far FUN_1008_2f70(int param_1,char *param_2,char *param_3)
|
|
|
|
{
|
|
char *pcVar1;
|
|
char *pcVar2;
|
|
byte bVar3;
|
|
int iVar4;
|
|
undefined1 uVar5;
|
|
int iVar6;
|
|
uint uVar7;
|
|
char *pcVar8;
|
|
char *pcVar9;
|
|
undefined2 uVar10;
|
|
undefined2 uVar11;
|
|
bool bVar12;
|
|
|
|
uVar10 = (undefined2)((ulong)param_2 >> 0x10);
|
|
pcVar9 = (char *)param_2;
|
|
if (param_1 != 0) {
|
|
iVar4 = 0;
|
|
iVar6 = param_1;
|
|
pcVar8 = pcVar9;
|
|
do {
|
|
if (iVar6 == 0) break;
|
|
iVar6 = iVar6 + -1;
|
|
pcVar1 = pcVar8;
|
|
pcVar8 = pcVar8 + 1;
|
|
} while (*pcVar1 != '\0');
|
|
param_1 = param_1 - iVar6;
|
|
bVar12 = param_1 == 0;
|
|
uVar11 = (undefined2)((ulong)param_3 >> 0x10);
|
|
pcVar8 = (char *)param_3;
|
|
LAB_1008_2f90:
|
|
do {
|
|
if (param_1 != 0) {
|
|
param_1 = param_1 + -1;
|
|
pcVar2 = pcVar9;
|
|
pcVar9 = pcVar9 + 1;
|
|
pcVar1 = pcVar8;
|
|
pcVar8 = pcVar8 + 1;
|
|
bVar12 = *pcVar1 == *pcVar2;
|
|
if (bVar12) goto LAB_1008_2f90;
|
|
}
|
|
if (bVar12) {
|
|
return;
|
|
}
|
|
bVar3 = pcVar8[-1];
|
|
uVar5 = (undefined1)((uint)iVar4 >> 8);
|
|
iVar4 = CONCAT11(uVar5,bVar3);
|
|
if ((0x60 < bVar3) && (bVar3 < 0x7b)) {
|
|
iVar4 = CONCAT11(uVar5,bVar3 - 0x20);
|
|
}
|
|
bVar3 = pcVar9[-1];
|
|
uVar7 = (uint)bVar3;
|
|
if ((0x60 < bVar3) && (bVar3 < 0x7b)) {
|
|
uVar7 = (uint)(byte)(bVar3 - 0x20);
|
|
}
|
|
iVar4 = iVar4 - uVar7;
|
|
bVar12 = true;
|
|
} while (iVar4 == 0);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:2fbb FUN_1008_2fbb ===== */
|
|
|
|
char * __stdcall16far FUN_1008_2fbb(char param_1,char *param_2)
|
|
|
|
{
|
|
char *pcVar1;
|
|
char *pcVar2;
|
|
uint uVar3;
|
|
undefined2 uVar4;
|
|
char *pcVar5;
|
|
undefined2 uVar6;
|
|
bool bVar7;
|
|
|
|
uVar6 = (undefined2)((ulong)param_2 >> 0x10);
|
|
pcVar5 = (char *)param_2;
|
|
uVar3 = 0xffff;
|
|
bVar7 = true;
|
|
pcVar2 = pcVar5;
|
|
do {
|
|
if (uVar3 == 0) break;
|
|
uVar3 = uVar3 - 1;
|
|
pcVar1 = pcVar2;
|
|
pcVar2 = pcVar2 + 1;
|
|
bVar7 = *pcVar1 == '\0';
|
|
} while (!bVar7);
|
|
uVar3 = ~uVar3;
|
|
do {
|
|
if (uVar3 == 0) break;
|
|
uVar3 = uVar3 - 1;
|
|
pcVar1 = pcVar5;
|
|
pcVar5 = pcVar5 + 1;
|
|
bVar7 = param_1 == *pcVar1;
|
|
} while (!bVar7);
|
|
pcVar2 = (char *)0x0;
|
|
uVar4 = 0;
|
|
if (bVar7) {
|
|
pcVar2 = pcVar5 + -1;
|
|
uVar4 = uVar6;
|
|
}
|
|
return (char *)CONCAT22(uVar4,pcVar2);
|
|
}
|
|
|
|
|
|
/* ===== 1008:2fe3 FUN_1008_2fe3 ===== */
|
|
|
|
char * __stdcall16far FUN_1008_2fe3(char param_1,char *param_2)
|
|
|
|
{
|
|
char *pcVar1;
|
|
char *pcVar2;
|
|
uint uVar3;
|
|
undefined2 uVar4;
|
|
char *pcVar5;
|
|
undefined2 uVar6;
|
|
bool bVar7;
|
|
|
|
uVar6 = (undefined2)((ulong)param_2 >> 0x10);
|
|
pcVar5 = (char *)param_2;
|
|
uVar3 = 0xffff;
|
|
do {
|
|
if (uVar3 == 0) break;
|
|
uVar3 = uVar3 - 1;
|
|
pcVar1 = pcVar5;
|
|
pcVar5 = pcVar5 + 1;
|
|
} while (*pcVar1 != '\0');
|
|
uVar3 = ~uVar3;
|
|
pcVar5 = pcVar5 + -1;
|
|
bVar7 = pcVar5 == (char *)0x0;
|
|
do {
|
|
if (uVar3 == 0) break;
|
|
uVar3 = uVar3 - 1;
|
|
pcVar1 = pcVar5;
|
|
pcVar5 = pcVar5 + -1;
|
|
bVar7 = param_1 == *pcVar1;
|
|
} while (!bVar7);
|
|
pcVar2 = (char *)0x0;
|
|
uVar4 = 0;
|
|
if (bVar7) {
|
|
pcVar2 = pcVar5 + 1;
|
|
uVar4 = uVar6;
|
|
}
|
|
return (char *)CONCAT22(uVar4,pcVar2);
|
|
}
|
|
|
|
|
|
/* ===== 1008:300a FUN_1008_300a ===== */
|
|
|
|
void __stdcall16far FUN_1008_300a(char *param_1,char *param_2)
|
|
|
|
{
|
|
char *pcVar1;
|
|
uint uVar2;
|
|
int iVar3;
|
|
char *pcVar4;
|
|
char *pcVar5;
|
|
undefined2 uVar6;
|
|
|
|
uVar6 = (undefined2)((ulong)param_1 >> 0x10);
|
|
pcVar4 = (char *)param_1;
|
|
uVar2 = 0xffff;
|
|
pcVar5 = pcVar4;
|
|
do {
|
|
if (uVar2 == 0) break;
|
|
uVar2 = uVar2 - 1;
|
|
pcVar1 = pcVar5;
|
|
pcVar5 = pcVar5 + 1;
|
|
} while (*pcVar1 != '\0');
|
|
iVar3 = ~uVar2 - 1;
|
|
pcVar5 = (char *)param_2;
|
|
*param_2 = (char)iVar3;
|
|
for (; pcVar5 = pcVar5 + 1, iVar3 != 0; iVar3 = iVar3 + -1) {
|
|
pcVar1 = pcVar4;
|
|
pcVar4 = pcVar4 + 1;
|
|
*pcVar5 = *pcVar1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1008:302c FUN_1008_302c ===== */
|
|
|
|
undefined4 __stdcall16far FUN_1008_302c(char *param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
long lVar2;
|
|
undefined4 uVar3;
|
|
|
|
uVar3 = 0;
|
|
if (((char *)param_1 != (char *)0x0 || param_1._2_2_ != 0) && (uVar3 = 0, *param_1 != '\0')) {
|
|
iVar1 = FUN_1008_2e92((char *)param_1,param_1._2_2_);
|
|
lVar2 = FUN_1020_012d(iVar1 + 1);
|
|
uVar3 = 0;
|
|
if (lVar2 != 0) {
|
|
uVar3 = FUN_1008_2ec0(iVar1 + 1,(char *)param_1,param_1._2_2_,lVar2);
|
|
}
|
|
}
|
|
return uVar3;
|
|
}
|
|
|
|
|
|
/* ===== 1008:3099 FUN_1008_3099 ===== */
|
|
|
|
void __stdcall16far FUN_1008_3099(int param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
if (param_1 != 0 || param_2 != 0) {
|
|
iVar1 = FUN_1008_2e92(param_1,param_2);
|
|
FUN_1020_0147(iVar1 + 1,param_1,param_2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1010:0002 FUN_1010_0002 ===== */
|
|
|
|
void __cdecl16far FUN_1010_0002(void)
|
|
|
|
{
|
|
if (0x1f < DAT_1028_4781) {
|
|
FREELIBRARY();
|
|
}
|
|
DAT_1028_4784 = 0;
|
|
DAT_1028_4750 = 0;
|
|
DAT_1028_4752 = 0;
|
|
DAT_1028_4754 = 0;
|
|
DAT_1028_4756 = 0;
|
|
DAT_1028_4758 = 0;
|
|
DAT_1028_475a = 0;
|
|
DAT_1028_475c = 0;
|
|
DAT_1028_475e = 0;
|
|
DAT_1028_4760 = 0;
|
|
DAT_1028_4762 = 0;
|
|
DAT_1028_4764 = 0;
|
|
DAT_1028_4766 = 0;
|
|
DAT_1028_4768 = 0;
|
|
DAT_1028_476a = 0;
|
|
DAT_1028_476c = 0;
|
|
DAT_1028_476e = 0;
|
|
DAT_1028_4770 = 0;
|
|
DAT_1028_4772 = 0;
|
|
DAT_1028_4774 = 0;
|
|
DAT_1028_4776 = 0;
|
|
DAT_1028_4778 = 0;
|
|
DAT_1028_477a = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1010:0079 FUN_1010_0079 ===== */
|
|
|
|
void __cdecl16far FUN_1010_0079(void)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
|
|
if ((DAT_1028_4784 != '\0') && (DAT_1028_4778 != (code *)0x0 || DAT_1028_477a != 0)) {
|
|
uVar1 = GETCURRENTTASK();
|
|
(*DAT_1028_4778)(0x1228,uVar1);
|
|
FUN_1010_0002();
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1010:00a2 FUN_1010_00a2 ===== */
|
|
|
|
undefined2 __stdcall16far
|
|
FUN_1010_00a2(undefined2 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4)
|
|
|
|
{
|
|
undefined1 extraout_AH;
|
|
undefined1 extraout_AH_00;
|
|
undefined1 extraout_AH_01;
|
|
undefined1 extraout_AH_02;
|
|
undefined1 extraout_AH_03;
|
|
undefined1 uVar1;
|
|
int unaff_BP;
|
|
undefined2 unaff_SS;
|
|
undefined4 uVar2;
|
|
char *pcVar3;
|
|
undefined1 local_163 [9];
|
|
undefined1 local_15a [5];
|
|
undefined1 local_155 [256];
|
|
char local_55 [80];
|
|
undefined1 local_5;
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
local_5 = 0;
|
|
local_155[0] = 0;
|
|
FUN_1008_2643(local_155,unaff_SS,param_3,param_4,local_55,unaff_SS);
|
|
if (local_55[0] == '\0') {
|
|
GETWINDOWSDIRECTORY(0x1008,0xff,local_155);
|
|
FUN_1008_2643(local_155,unaff_SS,param_3,param_4,local_55,unaff_SS);
|
|
if (local_55[0] == '\0') {
|
|
GETSYSTEMDIRECTORY(0x1008,0xff,local_155);
|
|
FUN_1008_2643(local_155,unaff_SS,param_3,param_4,local_55,unaff_SS);
|
|
if (local_55[0] == '\0') {
|
|
GETMODULEHANDLE(0x1008,param_1);
|
|
GETMODULEFILENAME(0x1228,0x100,local_155,unaff_SS);
|
|
FUN_1008_26b0(local_15a,unaff_SS,local_163,unaff_SS,local_155,unaff_SS,local_155,unaff_SS);
|
|
FUN_1008_2643(local_155,unaff_SS,param_3,param_4,local_55,unaff_SS);
|
|
if (local_55[0] == '\0') {
|
|
pcVar3 = local_55;
|
|
uVar2 = FUN_1008_2819(0x46a,0x1028);
|
|
FUN_1008_2643(uVar2,param_3,param_4,pcVar3,unaff_SS);
|
|
uVar1 = extraout_AH_03;
|
|
if (local_55[0] != '\0') {
|
|
local_5 = 1;
|
|
}
|
|
}
|
|
else {
|
|
local_5 = 1;
|
|
uVar1 = extraout_AH_02;
|
|
}
|
|
}
|
|
else {
|
|
local_5 = 1;
|
|
uVar1 = extraout_AH_01;
|
|
}
|
|
}
|
|
else {
|
|
local_5 = 1;
|
|
uVar1 = extraout_AH_00;
|
|
}
|
|
}
|
|
else {
|
|
local_5 = 1;
|
|
uVar1 = extraout_AH;
|
|
}
|
|
return CONCAT11(uVar1,local_5);
|
|
}
|
|
|
|
|
|
/* ===== 1010:01c2 FUN_1010_01c2 ===== */
|
|
|
|
char __stdcall16far
|
|
FUN_1010_01c2(undefined1 param_1,undefined1 param_2,char param_3,undefined2 param_4,
|
|
undefined2 param_5)
|
|
|
|
{
|
|
char cVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
code *pcVar4;
|
|
undefined4 uVar5;
|
|
undefined4 uVar6;
|
|
uint uVar7;
|
|
uint uVar8;
|
|
uint uVar9;
|
|
uint uVar10;
|
|
undefined2 uVar11;
|
|
undefined2 uVar12;
|
|
char local_5;
|
|
|
|
local_5 = '\x01';
|
|
if (DAT_1028_4784 == '\0') {
|
|
if (DAT_1028_478c == '\0') {
|
|
uVar12 = 0x8000;
|
|
SETERRORMODE();
|
|
uVar11 = 0x1028;
|
|
DAT_1028_4781 = LOADLIBRARY(0x1228,0x478d);
|
|
uVar3 = 0x1228;
|
|
SETERRORMODE(0x1228,0,uVar11,uVar12);
|
|
}
|
|
else {
|
|
uVar3 = 0x1010;
|
|
cVar1 = FUN_1010_00a2(param_4,param_5,0x478d,0x1028);
|
|
if (cVar1 == '\0') {
|
|
DAT_1028_4781 = 0;
|
|
}
|
|
else {
|
|
uVar3 = 0x1228;
|
|
DAT_1028_4781 = LOADLIBRARY(0x1010,0x478d);
|
|
}
|
|
}
|
|
if (0x1f < DAT_1028_4781) {
|
|
pcVar4 = (code *)GETPROCADDRESS(uVar3,0x470,0x1028);
|
|
DAT_1028_4752 = (undefined2)((ulong)pcVar4 >> 0x10);
|
|
DAT_1028_4750 = (code *)pcVar4;
|
|
uVar5 = GETPROCADDRESS(0x1228,0x482,0x1028);
|
|
DAT_1028_4756 = (undefined2)((ulong)uVar5 >> 0x10);
|
|
DAT_1028_4754 = (undefined2)uVar5;
|
|
uVar5 = GETPROCADDRESS(0x1228,0x493,0x1028);
|
|
DAT_1028_475a = (undefined2)((ulong)uVar5 >> 0x10);
|
|
DAT_1028_4758 = (undefined2)uVar5;
|
|
pcVar4 = (code *)GETPROCADDRESS(0x1228,0x4a3,0x1028);
|
|
DAT_1028_475e = (undefined2)((ulong)pcVar4 >> 0x10);
|
|
DAT_1028_475c = (code *)pcVar4;
|
|
uVar5 = GETPROCADDRESS(0x1228,0x4b0,0x1028);
|
|
DAT_1028_4762 = (undefined2)((ulong)uVar5 >> 0x10);
|
|
DAT_1028_4760 = (undefined2)uVar5;
|
|
pcVar4 = (code *)GETPROCADDRESS(0x1228,0x4c3,0x1028);
|
|
DAT_1028_4766 = (undefined2)((ulong)pcVar4 >> 0x10);
|
|
DAT_1028_4764 = (code *)pcVar4;
|
|
pcVar4 = (code *)GETPROCADDRESS(0x1228,0x4cf,0x1028);
|
|
DAT_1028_476a = (undefined2)((ulong)pcVar4 >> 0x10);
|
|
DAT_1028_4768 = (code *)pcVar4;
|
|
uVar9 = 0x1028;
|
|
uVar10 = DAT_1028_4781;
|
|
uVar5 = GETPROCADDRESS(0x1228,0x4dd,0x1028);
|
|
DAT_1028_476e = (undefined2)((ulong)uVar5 >> 0x10);
|
|
DAT_1028_476c = (undefined2)uVar5;
|
|
if (DAT_1028_478c == '\0') {
|
|
uVar9 = DAT_1028_4781;
|
|
uVar6 = GETPROCADDRESS(0x1228,0x4ee,0x1028);
|
|
uVar5 = CONCAT22(DAT_1028_476e,DAT_1028_476c);
|
|
}
|
|
else {
|
|
uVar6 = 0;
|
|
}
|
|
DAT_1028_4772 = (undefined2)((ulong)uVar6 >> 0x10);
|
|
DAT_1028_4770 = (undefined2)uVar6;
|
|
DAT_1028_476e = (undefined2)((ulong)uVar5 >> 0x10);
|
|
DAT_1028_476c = (undefined2)uVar5;
|
|
uVar8 = DAT_1028_4781;
|
|
uVar5 = GETPROCADDRESS(0x1228,0x501,0x1028);
|
|
DAT_1028_4776 = (undefined2)((ulong)uVar5 >> 0x10);
|
|
DAT_1028_4774 = (undefined2)uVar5;
|
|
uVar7 = DAT_1028_4781;
|
|
uVar5 = GETPROCADDRESS(0x1228,0x512,0x1028);
|
|
DAT_1028_477a = (undefined2)((ulong)uVar5 >> 0x10);
|
|
DAT_1028_4778 = (undefined2)uVar5;
|
|
uVar3 = GETCURRENTTASK(0x1228,uVar7,uVar8,uVar9,uVar10);
|
|
iVar2 = (*DAT_1028_4768)(0x1228,uVar3);
|
|
DAT_1028_4784 = iVar2 != 0;
|
|
if ((bool)DAT_1028_4784) {
|
|
DAT_1028_477c = (*DAT_1028_4764)(0x1228);
|
|
iVar2 = (*DAT_1028_475c)(0x1228);
|
|
if ((iVar2 == 0) || (DAT_1028_477c < 9)) {
|
|
DAT_1028_4784 = false;
|
|
}
|
|
else {
|
|
DAT_1028_4784 = true;
|
|
}
|
|
}
|
|
if ((bool)DAT_1028_4784 == false) {
|
|
FUN_1010_0002();
|
|
}
|
|
else {
|
|
DAT_1028_477f = param_2;
|
|
DAT_1028_4780 = param_1;
|
|
if ((DAT_1028_478c == '\0') && (param_3 != '\0')) {
|
|
iVar2 = (*DAT_1028_4750)(0x1228,DAT_1028_06fe);
|
|
DAT_1028_477e = iVar2 != 0;
|
|
}
|
|
else {
|
|
DAT_1028_477e = 0;
|
|
}
|
|
}
|
|
}
|
|
local_5 = DAT_1028_4784;
|
|
}
|
|
return local_5;
|
|
}
|
|
|
|
|
|
/* ===== 1010:03af FUN_1010_03af ===== */
|
|
|
|
undefined2 __stdcall16far
|
|
FUN_1010_03af(undefined1 param_1,undefined1 param_2,undefined1 param_3,undefined2 param_4,
|
|
undefined2 param_5)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
|
|
uVar1 = FUN_1010_01c2(param_1,param_2,param_3,param_4,param_5);
|
|
DAT_1028_4783 = 0;
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
/* ===== 1010:03e0 FUN_1010_03e0 ===== */
|
|
|
|
void __stdcall16far FUN_1010_03e0(undefined4 param_1)
|
|
|
|
{
|
|
int unaff_BP;
|
|
|
|
FUN_1010_0079(0x1028,unaff_BP + 1);
|
|
FUN_1018_1b08((int)param_1,(int)((ulong)param_1 >> 0x10),0);
|
|
FUN_1020_0439();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1010:0405 FUN_1010_0405 ===== */
|
|
|
|
undefined1 __stdcall16far FUN_1010_0405(byte *param_1)
|
|
|
|
{
|
|
byte *pbVar1;
|
|
byte *pbVar2;
|
|
int iVar3;
|
|
uint uVar4;
|
|
int unaff_BP;
|
|
byte *pbVar5;
|
|
undefined2 unaff_SS;
|
|
undefined1 local_185 [128];
|
|
byte local_105;
|
|
byte abStack_104 [255];
|
|
undefined1 local_5;
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
pbVar5 = (byte *)param_1;
|
|
local_105 = *param_1;
|
|
pbVar2 = abStack_104;
|
|
for (uVar4 = (uint)local_105; pbVar5 = pbVar5 + 1, uVar4 != 0; uVar4 = uVar4 - 1) {
|
|
pbVar1 = pbVar2;
|
|
pbVar2 = pbVar2 + 1;
|
|
*pbVar1 = *pbVar5;
|
|
}
|
|
FUN_1020_0667(&local_105,unaff_SS,local_185,unaff_SS);
|
|
FUN_1020_06ab(1,local_185,unaff_SS);
|
|
iVar3 = FUN_1020_0388();
|
|
if (iVar3 == 0) {
|
|
local_5 = 1;
|
|
FUN_1020_072c(local_185,unaff_SS);
|
|
FUN_1020_038f();
|
|
}
|
|
else {
|
|
local_5 = 0;
|
|
}
|
|
return local_5;
|
|
}
|
|
|
|
|
|
/* ===== 1010:0472 FUN_1010_0472 ===== */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void __cdecl16far FUN_1010_0472(void)
|
|
|
|
{
|
|
char cVar1;
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar2;
|
|
undefined2 unaff_SS;
|
|
undefined1 *puVar3;
|
|
undefined1 *puVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined1 local_202 [256];
|
|
undefined1 local_102 [256];
|
|
|
|
DAT_1028_47a2 = GETSYSTEMDIRECTORY(unaff_CS,200,0x47a4);
|
|
puVar4 = local_102;
|
|
uVar5 = unaff_SS;
|
|
FUN_1008_300a(0x47a4,0x1028);
|
|
FUN_1020_0a51(0x470,0x1008);
|
|
puVar3 = local_202;
|
|
uVar2 = unaff_SS;
|
|
FUN_1008_300a(0x522,0x1028);
|
|
FUN_1020_0a51(puVar3,uVar2);
|
|
FUN_1020_09ec(0xff,0x486d,0x1028,puVar4,uVar5);
|
|
puVar4 = local_102;
|
|
uVar5 = unaff_SS;
|
|
FUN_1008_300a(0x47a4,0x1028);
|
|
FUN_1020_0a51(0x470,0x1008);
|
|
puVar3 = local_202;
|
|
uVar2 = unaff_SS;
|
|
FUN_1008_300a(0x52c,0x1028);
|
|
FUN_1020_0a51(puVar3,uVar2);
|
|
uVar2 = 0x1020;
|
|
FUN_1020_09ec(0xff,0x496d,0x1028,puVar4,uVar5);
|
|
if (DAT_1028_47a2 != 0) {
|
|
uVar6 = 0x1028;
|
|
uVar5 = 0x478d;
|
|
puVar4 = local_102;
|
|
uVar2 = unaff_SS;
|
|
FUN_1008_300a(0x52c,0x1028);
|
|
FUN_1008_2f2f(puVar4,uVar2,uVar5,uVar6);
|
|
uVar2 = 0x1010;
|
|
cVar1 = FUN_1010_0405(0x496d,0x1028);
|
|
if (cVar1 == '\0') {
|
|
uVar2 = 0x1010;
|
|
cVar1 = FUN_1010_0405(0x486d,0x1028);
|
|
if (cVar1 != '\0') {
|
|
uVar6 = 0x1028;
|
|
uVar5 = 0x478d;
|
|
puVar4 = local_102;
|
|
FUN_1008_300a(0x522,0x1028);
|
|
uVar2 = 0x1008;
|
|
FUN_1008_2f2f(puVar4,unaff_SS,uVar5,uVar6);
|
|
}
|
|
}
|
|
}
|
|
DAT_1028_4750 = 0;
|
|
DAT_1028_4752 = 0;
|
|
DAT_1028_4754 = 0;
|
|
DAT_1028_4756 = 0;
|
|
DAT_1028_4758 = 0;
|
|
DAT_1028_475a = 0;
|
|
DAT_1028_475c = 0;
|
|
DAT_1028_475e = 0;
|
|
DAT_1028_4760 = 0;
|
|
DAT_1028_4762 = 0;
|
|
DAT_1028_4764 = 0;
|
|
DAT_1028_4766 = 0;
|
|
DAT_1028_4768 = 0;
|
|
DAT_1028_476a = 0;
|
|
DAT_1028_476c = 0;
|
|
DAT_1028_476e = 0;
|
|
DAT_1028_4770 = 0;
|
|
DAT_1028_4772 = 0;
|
|
DAT_1028_4774 = 0;
|
|
DAT_1028_4776 = 0;
|
|
DAT_1028_4778 = 0;
|
|
DAT_1028_477a = 0;
|
|
_DAT_1028_478a = GETVERSION(uVar2);
|
|
uVar2 = _DAT_1028_478a;
|
|
if ((DAT_1028_478a == '\x03') &&
|
|
(DAT_1028_478b = (byte)((uint)_DAT_1028_478a >> 8), DAT_1028_478b < 10)) {
|
|
DAT_1028_478c = 1;
|
|
}
|
|
else {
|
|
DAT_1028_478c = 0;
|
|
}
|
|
DAT_1028_477e = 0;
|
|
DAT_1028_477f = 0;
|
|
DAT_1028_4780 = 1;
|
|
DAT_1028_4781 = 0;
|
|
DAT_1028_4783 = 0;
|
|
DAT_1028_4784 = 0;
|
|
_DAT_1028_478a = uVar2;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0002 FUN_1018_0002 ===== */
|
|
|
|
void __cdecl16near FUN_1018_0002(void)
|
|
|
|
{
|
|
int *piVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
int in_AX;
|
|
int iVar4;
|
|
int in_BX;
|
|
int *piVar5;
|
|
int *piVar6;
|
|
bool bVar7;
|
|
|
|
piVar5 = (int *)*(int *)(in_BX + 4);
|
|
if ((piVar5 != (int *)0x0) && (in_AX != piVar5[1])) {
|
|
bVar7 = false;
|
|
do {
|
|
iVar4 = piVar5[3];
|
|
piVar6 = piVar5 + 4;
|
|
do {
|
|
if (iVar4 == 0) break;
|
|
iVar4 = iVar4 + -1;
|
|
piVar1 = piVar6;
|
|
piVar6 = piVar6 + 1;
|
|
bVar7 = in_AX == *piVar1;
|
|
} while (!bVar7);
|
|
if (bVar7) {
|
|
iVar2 = piVar5[3];
|
|
iVar3 = *(int *)(in_BX + 4);
|
|
*(int *)(iVar3 + 2) = in_AX;
|
|
*(undefined2 *)(iVar3 + 4) = piVar6 + ((iVar2 + -1) * 2 - iVar4);
|
|
return;
|
|
}
|
|
piVar5 = (int *)*piVar5;
|
|
bVar7 = piVar5 == (int *)0x0;
|
|
} while (!bVar7);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0045 FUN_1018_0045 ===== */
|
|
|
|
void __stdcall16far FUN_1018_0045(undefined2 param_1,undefined2 param_2)
|
|
|
|
{
|
|
undefined2 unaff_CS;
|
|
|
|
SETPROP(unaff_CS,param_2,0x67a,0x1028);
|
|
SETPROP(0x1228,param_1,0x67e,0x1028);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0071 FUN_1018_0071 ===== */
|
|
|
|
void __stdcall16far FUN_1018_0071(void)
|
|
|
|
{
|
|
undefined2 unaff_CS;
|
|
|
|
REMOVEPROP(unaff_CS,0x67a,0x1028);
|
|
REMOVEPROP(0x1228,0x67e,0x1028);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0097 FUN_1018_0097 ===== */
|
|
|
|
undefined4 __stdcall16far FUN_1018_0097(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
char *pcVar2;
|
|
undefined2 uVar3;
|
|
int iVar4;
|
|
undefined2 uVar5;
|
|
char *pcVar6;
|
|
|
|
iVar1 = ISWINDOW();
|
|
iVar4 = iVar1 >> 0xf;
|
|
uVar3 = 0;
|
|
if (iVar1 != 0) {
|
|
pcVar6 = (char *)GETWINDOWLONG(0x1228,0xfffc);
|
|
uVar5 = (undefined2)((ulong)pcVar6 >> 0x10);
|
|
pcVar2 = (char *)pcVar6;
|
|
if (((*pcVar6 == -0x18) && (-1 - (int)pcVar2 == *(int *)(pcVar2 + 1))) &&
|
|
(*(int *)0x2 == 0x2e5b)) {
|
|
uVar3 = *(undefined2 *)(pcVar2 + 3);
|
|
iVar4 = *(int *)(pcVar2 + 5);
|
|
}
|
|
else {
|
|
GETPROP(0x1228,0x67a,0x1028);
|
|
iVar4 = param_1;
|
|
uVar3 = GETPROP(0x1228,0x67e,0x1028);
|
|
}
|
|
}
|
|
return CONCAT22(iVar4,uVar3);
|
|
}
|
|
|
|
|
|
/* ===== 1018:0103 FUN_1018_0103 ===== */
|
|
|
|
void __cdecl16near FUN_1018_0103(void)
|
|
|
|
{
|
|
(*DAT_1028_0682)();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0133 FUN_1018_0133 ===== */
|
|
|
|
undefined4 __stdcall16far
|
|
FUN_1018_0133(undefined2 param_1,undefined2 param_2,undefined2 param_3,int param_4,int param_5)
|
|
|
|
{
|
|
int *in_BX;
|
|
undefined2 *unaff_DI;
|
|
undefined2 unaff_ES;
|
|
undefined2 unaff_SS;
|
|
|
|
in_BX[2] = param_5;
|
|
if (param_4 < 0) {
|
|
unaff_DI = (undefined2 *)(*in_BX + 0xc);
|
|
}
|
|
else {
|
|
FUN_1018_0002();
|
|
}
|
|
if (*(int *)&DAT_1028_0684 != 0) {
|
|
FUN_1018_0103();
|
|
}
|
|
(*(code *)*unaff_DI)();
|
|
return CONCAT22(param_3,param_4);
|
|
}
|
|
|
|
|
|
/* ===== 1018:018b FUN_1018_018b ===== */
|
|
|
|
void __stdcall16far
|
|
FUN_1018_018b(undefined2 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4,
|
|
undefined2 param_5)
|
|
|
|
{
|
|
undefined2 *puVar1;
|
|
undefined4 uVar2;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
undefined2 uVar3;
|
|
|
|
uVar2 = *(undefined4 *)((int)*(undefined4 *)&DAT_1028_0676 + 0x12);
|
|
uVar3 = param_5;
|
|
SETWINDOWLONG(unaff_CS,(int)uVar2,(int)((ulong)uVar2 >> 0x10),0xfffc);
|
|
FUN_1018_0045((int)*(undefined4 *)&DAT_1028_0676,
|
|
(int)((ulong)*(undefined4 *)&DAT_1028_0676 >> 0x10),param_5);
|
|
puVar1 = (undefined2 *)((int)*(undefined4 *)&DAT_1028_0676 + 0x12);
|
|
(*(code *)*puVar1)(0x1018,param_1,param_2,param_3,param_4,param_5,uVar3);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:01dc FUN_1018_01dc ===== */
|
|
|
|
undefined1 * __stdcall16far FUN_1018_01dc(undefined2 param_1,undefined2 param_2)
|
|
|
|
{
|
|
undefined1 *puVar1;
|
|
undefined2 *puVar2;
|
|
undefined2 uVar3;
|
|
int iVar4;
|
|
undefined2 unaff_CS;
|
|
undefined2 *puVar5;
|
|
undefined2 uVar6;
|
|
undefined4 local_10;
|
|
|
|
if (DAT_1028_066e == (undefined1 *)0x0 && DAT_1028_0670 == 0) {
|
|
uVar6 = 0;
|
|
uVar3 = GLOBALALLOC(unaff_CS,0x100,0);
|
|
puVar5 = (undefined2 *)GLOBALLOCK(0x1228,uVar3,uVar6);
|
|
uVar6 = (undefined2)((ulong)puVar5 >> 0x10);
|
|
puVar2 = (undefined2 *)puVar5;
|
|
*puVar5 = DAT_1028_066c;
|
|
FUN_1020_16a5(5,puVar2 + 1,uVar6,0x686,0x1028);
|
|
uVar3 = DAT_1028_0674;
|
|
*(undefined2 *)((int)puVar2 + 7) = DAT_1028_0672;
|
|
*(undefined2 *)((int)puVar2 + 9) = uVar3;
|
|
local_10 = (undefined1 *)CONCAT22(uVar6,(undefined1 *)((int)puVar2 + 0xb));
|
|
do {
|
|
*local_10 = 0xe8;
|
|
iVar4 = (int)((ulong)local_10 >> 0x10);
|
|
*(int *)((undefined1 *)local_10 + 1) = -1 - (int)(undefined1 *)local_10;
|
|
*(undefined1 **)((undefined1 *)local_10 + 3) = DAT_1028_066e;
|
|
*(int *)((undefined1 *)local_10 + 5) = DAT_1028_0670;
|
|
DAT_1028_066e = (undefined1 *)local_10;
|
|
local_10._0_2_ = (undefined1 *)local_10 + 7;
|
|
local_10 = (undefined1 *)CONCAT22(iVar4,(undefined1 *)local_10);
|
|
DAT_1028_0670 = iVar4;
|
|
} while ((undefined1 *)local_10 != (undefined1 *)0x100);
|
|
unaff_CS = 0x1228;
|
|
DAT_1028_066c = uVar6;
|
|
PRESTOCHANGOSELECTOR(0x1020,uVar6);
|
|
}
|
|
iVar4 = DAT_1028_0670;
|
|
puVar1 = DAT_1028_066e;
|
|
uVar3 = ALLOCCSTODSALIAS(unaff_CS,DAT_1028_0670);
|
|
DAT_1028_066e = *(undefined1 **)(puVar1 + 3);
|
|
DAT_1028_0670 = *(int *)(puVar1 + 5);
|
|
*(undefined2 *)(puVar1 + 3) = param_1;
|
|
*(undefined2 *)(puVar1 + 5) = param_2;
|
|
FREESELECTOR(0x1228,uVar3);
|
|
return (undefined1 *)CONCAT22(iVar4,puVar1);
|
|
}
|
|
|
|
|
|
/* ===== 1018:02fa FUN_1018_02fa ===== */
|
|
|
|
void __stdcall16far FUN_1018_02fa(int param_1,undefined2 param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
int unaff_BP;
|
|
int iVar3;
|
|
undefined2 uVar4;
|
|
int iVar5;
|
|
undefined2 uVar6;
|
|
|
|
iVar3 = unaff_BP + 1;
|
|
uVar6 = 0x1028;
|
|
uVar4 = param_2;
|
|
iVar5 = param_1;
|
|
uVar2 = ALLOCCSTODSALIAS();
|
|
uVar1 = DAT_1028_0670;
|
|
*(undefined2 *)(iVar5 + 3) = DAT_1028_066e;
|
|
*(undefined2 *)(iVar5 + 5) = uVar1;
|
|
FREESELECTOR(0x1228,uVar2,uVar4,iVar5,uVar2,uVar6,iVar3);
|
|
DAT_1028_066e = param_1;
|
|
DAT_1028_0670 = param_2;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0341 FUN_1018_0341 ===== */
|
|
|
|
undefined4 __stdcall16far
|
|
FUN_1018_0341(undefined4 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4)
|
|
|
|
{
|
|
int unaff_BP;
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
bool bVar3;
|
|
undefined4 uVar4;
|
|
|
|
bVar3 = true;
|
|
FUN_1020_03ef(0x1028,unaff_BP + 1);
|
|
if (!bVar3) {
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar1 = (int)param_1;
|
|
FUN_1008_2d99(iVar1,uVar2,0);
|
|
*(undefined2 *)(iVar1 + 2) = 0;
|
|
*(undefined2 *)(iVar1 + 4) = 0;
|
|
*(undefined2 *)(iVar1 + 0x17) = 0;
|
|
*(undefined2 *)(iVar1 + 6) = param_3;
|
|
*(undefined2 *)(iVar1 + 8) = param_4;
|
|
if (*(int *)(iVar1 + 6) == 0 && *(int *)(iVar1 + 8) == 0) {
|
|
*(undefined2 *)(iVar1 + 0x19) = 0;
|
|
*(undefined2 *)(iVar1 + 0x1b) = 0;
|
|
}
|
|
else {
|
|
FUN_1018_069a((int)*(undefined4 *)(iVar1 + 6),(int)((ulong)*(undefined4 *)(iVar1 + 6) >> 0x10)
|
|
,iVar1,uVar2);
|
|
}
|
|
*(undefined2 *)(iVar1 + 10) = 0;
|
|
*(undefined2 *)(iVar1 + 0xc) = 0;
|
|
*(undefined2 *)(iVar1 + 0xe) = 0;
|
|
*(undefined2 *)(iVar1 + 0x10) = 0;
|
|
uVar4 = FUN_1018_01dc(iVar1,uVar2);
|
|
*(undefined2 *)(iVar1 + 0x12) = (int)uVar4;
|
|
*(undefined2 *)(iVar1 + 0x14) = (int)((ulong)uVar4 >> 0x10);
|
|
*(undefined1 *)(iVar1 + 0x16) = 0;
|
|
FUN_1018_060d(iVar1,uVar2);
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
/* ===== 1018:03e9 FUN_1018_03e9 ===== */
|
|
|
|
void __stdcall16far FUN_1018_03e9(undefined2 param_1,undefined4 param_2)
|
|
|
|
{
|
|
FUN_1008_2db3((int)param_2,(int)((ulong)param_2 >> 0x10));
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:03ff FUN_1018_03ff ===== */
|
|
|
|
void __stdcall16far FUN_1018_03ff(int *param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined2 uVar2;
|
|
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar1 = (int *)param_1;
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x24))();
|
|
FUN_1018_085a(piVar1,uVar2,0x3e9,0x1018);
|
|
if (piVar1[3] != 0 || piVar1[4] != 0) {
|
|
FUN_1018_071c((int)*(undefined4 *)(piVar1 + 3),(int)((ulong)*(undefined4 *)(piVar1 + 3) >> 0x10)
|
|
,piVar1,uVar2);
|
|
}
|
|
FUN_1018_02fa(piVar1[9],piVar1[10]);
|
|
FUN_1008_2dcd(piVar1,uVar2,0);
|
|
FUN_1020_0439();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0466 FUN_1018_0466 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1018_0466(int param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined1 uVar2;
|
|
undefined2 unaff_SS;
|
|
|
|
iVar1 = *(int *)((int)param_2 + 0x17);
|
|
if ((*(int *)(param_1 + -6) < 0) || (iVar1 != *(int *)(param_1 + -6))) {
|
|
uVar2 = 0;
|
|
}
|
|
else {
|
|
uVar2 = 1;
|
|
}
|
|
return CONCAT11((char)((uint)iVar1 >> 8),uVar2);
|
|
}
|
|
|
|
|
|
/* ===== 1018:049e FUN_1018_049e ===== */
|
|
|
|
uint __stdcall16far FUN_1018_049e(undefined2 param_1,int *param_2)
|
|
|
|
{
|
|
uint uVar1;
|
|
int iVar2;
|
|
int unaff_BP;
|
|
int *piVar3;
|
|
undefined2 uVar4;
|
|
undefined1 local_58 [82];
|
|
char local_6;
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
uVar4 = (undefined2)((ulong)param_2 >> 0x10);
|
|
piVar3 = (int *)param_2;
|
|
uVar1 = FUN_1018_0673(piVar3,uVar4,4);
|
|
if ((char)uVar1 != '\0') {
|
|
uVar1 = (*(code *)*(undefined2 *)(*param_2 + 0x20))(0x1018,piVar3,uVar4);
|
|
if ((char)uVar1 == '\0') {
|
|
uVar1 = uVar1 & 0xff00;
|
|
goto LAB_1018_04d1;
|
|
}
|
|
}
|
|
uVar1 = CONCAT11((char)(uVar1 >> 8),1);
|
|
LAB_1018_04d1:
|
|
local_6 = (char)uVar1;
|
|
if (local_6 != '\0') {
|
|
iVar2 = ISICONIC(0x1018,piVar3[2]);
|
|
uVar1 = 0;
|
|
if (iVar2 != 0) {
|
|
GETWINDOWTEXT(0x1228,0x51,local_58);
|
|
uVar1 = SETWINDOWTEXT(0x1228,local_58);
|
|
}
|
|
}
|
|
uVar1 = uVar1 & 0xff00;
|
|
if (local_6 == '\0') {
|
|
uVar1 = uVar1 + 1;
|
|
}
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0524 FUN_1018_0524 ===== */
|
|
|
|
undefined1 __stdcall16far FUN_1018_0524(undefined2 param_1,undefined4 param_2)
|
|
|
|
{
|
|
char cVar1;
|
|
undefined2 uVar2;
|
|
|
|
uVar2 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if ((*(int *)((int)param_2 + 0x17) == 0) &&
|
|
(cVar1 = FUN_1018_049e(param_1,(int)param_2,uVar2), cVar1 != '\0')) {
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1018:055c FUN_1018_055c ===== */
|
|
|
|
uint __stdcall16far FUN_1018_055c(undefined4 param_1)
|
|
|
|
{
|
|
uint uVar1;
|
|
int unaff_BP;
|
|
undefined2 uVar2;
|
|
long lVar3;
|
|
undefined4 uVar4;
|
|
char local_d;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
local_d = '\0';
|
|
do {
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
lVar3 = FUN_1018_080d((int)param_1,uVar2,0x466,0x1018);
|
|
uVar1 = 0;
|
|
if (lVar3 != 0) {
|
|
uVar1 = FUN_1018_049e(&iStack_2,lVar3);
|
|
local_d = (char)uVar1;
|
|
}
|
|
} while ((local_d == '\0') && (uVar1 = 0, lVar3 != 0));
|
|
if (local_d == '\0') {
|
|
uVar4 = FUN_1018_080d((int)param_1,uVar2,0x524,0x1018);
|
|
uVar1 = (uint)uVar4 | (uint)((ulong)uVar4 >> 0x10);
|
|
if (uVar1 == 0) {
|
|
return 1;
|
|
}
|
|
}
|
|
return uVar1 & 0xff00;
|
|
}
|
|
|
|
|
|
/* ===== 1018:05dc FUN_1018_05dc ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1018_05dc(void)
|
|
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1018:05f3 FUN_1018_05f3 ===== */
|
|
|
|
void __stdcall16far FUN_1018_05f3(undefined4 param_1)
|
|
|
|
{
|
|
FUN_1018_0641((int)param_1,(int)((ulong)param_1 >> 0x10),1,1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:060d FUN_1018_060d ===== */
|
|
|
|
void __stdcall16far FUN_1018_060d(undefined4 param_1)
|
|
|
|
{
|
|
FUN_1018_0641((int)param_1,(int)((ulong)param_1 >> 0x10),1,4);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0627 FUN_1018_0627 ===== */
|
|
|
|
void __stdcall16far FUN_1018_0627(undefined4 param_1)
|
|
|
|
{
|
|
FUN_1018_0641((int)param_1,(int)((ulong)param_1 >> 0x10),0,4);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0641 FUN_1018_0641 ===== */
|
|
|
|
void __stdcall16far FUN_1018_0641(undefined4 param_1,char param_2,byte param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
|
|
iVar1 = (int)param_1;
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
if (param_2 == '\0') {
|
|
*(byte *)(iVar1 + 0x16) = ~param_3 & *(byte *)(iVar1 + 0x16);
|
|
}
|
|
else {
|
|
*(byte *)(iVar1 + 0x16) = *(byte *)(iVar1 + 0x16) | param_3;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0673 FUN_1018_0673 ===== */
|
|
|
|
uint __stdcall16far FUN_1018_0673(undefined4 param_1,byte param_2)
|
|
|
|
{
|
|
uint in_AX;
|
|
uint uVar1;
|
|
|
|
uVar1 = in_AX & 0xff00;
|
|
if ((*(byte *)((int)param_1 + 0x16) & param_2) == param_2) {
|
|
uVar1 = uVar1 + 1;
|
|
}
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
/* ===== 1018:069a FUN_1018_069a ===== */
|
|
|
|
void __stdcall16far FUN_1018_069a(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
|
|
if ((int)param_2 != 0 || param_2._2_2_ != 0) {
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar1 = (int)param_1;
|
|
if (*(int *)(iVar1 + 10) == 0 && *(int *)(iVar1 + 0xc) == 0) {
|
|
*(int *)(iVar1 + 10) = (int)param_2;
|
|
*(int *)(iVar1 + 0xc) = param_2._2_2_;
|
|
*(int *)((int)param_2 + 0x19) = (int)param_2;
|
|
*(int *)((int)param_2 + 0x1b) = param_2._2_2_;
|
|
}
|
|
else {
|
|
uVar4 = (undefined2)((ulong)*(undefined4 *)(iVar1 + 10) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(iVar1 + 10);
|
|
uVar5 = *(undefined2 *)(iVar2 + 0x1b);
|
|
*(undefined2 *)((int)param_2 + 0x19) = *(undefined2 *)(iVar2 + 0x19);
|
|
*(undefined2 *)((int)param_2 + 0x1b) = uVar5;
|
|
uVar5 = (undefined2)((ulong)*(undefined4 *)(iVar1 + 10) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(iVar1 + 10);
|
|
*(int *)(iVar2 + 0x19) = (int)param_2;
|
|
*(int *)(iVar2 + 0x1b) = param_2._2_2_;
|
|
*(int *)(iVar1 + 10) = (int)param_2;
|
|
*(int *)(iVar1 + 0xc) = param_2._2_2_;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:071c FUN_1018_071c ===== */
|
|
|
|
void __stdcall16far FUN_1018_071c(undefined4 param_1,int param_2,int param_3)
|
|
|
|
{
|
|
int *piVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
int local_c;
|
|
int iStack_a;
|
|
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar2 = (int)param_1;
|
|
if (*(int *)(iVar2 + 10) != 0 || *(int *)(iVar2 + 0xc) != 0) {
|
|
local_c = *(int *)(iVar2 + 10);
|
|
iStack_a = *(int *)(iVar2 + 0xc);
|
|
while (((*(int *)(local_c + 0x1b) != *(int *)(iVar2 + 0xc) ||
|
|
(*(int *)(local_c + 0x19) != *(int *)(iVar2 + 10))) &&
|
|
((*(int *)(local_c + 0x1b) != param_3 || (*(int *)(local_c + 0x19) != param_2))))) {
|
|
piVar1 = (int *)(local_c + 0x19);
|
|
iStack_a = *(int *)(local_c + 0x1b);
|
|
local_c = *piVar1;
|
|
}
|
|
if ((*(int *)(local_c + 0x1b) == param_3) && (*(int *)(local_c + 0x19) == param_2)) {
|
|
if ((*(int *)(local_c + 0x1b) == iStack_a) && (*(int *)(local_c + 0x19) == local_c)) {
|
|
*(undefined2 *)(iVar2 + 10) = 0;
|
|
*(undefined2 *)(iVar2 + 0xc) = 0;
|
|
}
|
|
else {
|
|
if ((*(int *)(local_c + 0x1b) == *(int *)(iVar2 + 0xc)) &&
|
|
(*(int *)(local_c + 0x19) == *(int *)(iVar2 + 10))) {
|
|
*(int *)(iVar2 + 10) = local_c;
|
|
*(int *)(iVar2 + 0xc) = iStack_a;
|
|
}
|
|
uVar4 = (undefined2)((ulong)*(undefined4 *)(local_c + 0x19) >> 0x10);
|
|
iVar2 = (int)*(undefined4 *)(local_c + 0x19);
|
|
uVar3 = *(undefined2 *)(iVar2 + 0x1b);
|
|
*(undefined2 *)(local_c + 0x19) = *(undefined2 *)(iVar2 + 0x19);
|
|
*(undefined2 *)(local_c + 0x1b) = uVar3;
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:080d FUN_1018_080d ===== */
|
|
|
|
undefined4 __stdcall16far FUN_1018_080d(undefined4 param_1,code *param_2)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
char cVar2;
|
|
int iVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
int iVar6;
|
|
int iVar7;
|
|
|
|
uVar1 = *(undefined4 *)((int)param_1 + 10);
|
|
iVar5 = (int)((ulong)uVar1 >> 0x10);
|
|
iVar3 = (int)uVar1;
|
|
iVar4 = iVar3;
|
|
iVar6 = iVar5;
|
|
iVar7 = iVar5;
|
|
if (iVar5 != 0 || iVar3 != 0) {
|
|
do {
|
|
iVar6 = (int)((ulong)*(undefined4 *)(iVar4 + 0x19) >> 0x10);
|
|
iVar4 = (int)*(undefined4 *)(iVar4 + 0x19);
|
|
cVar2 = (*param_2)();
|
|
if (cVar2 != '\0') goto LAB_1018_084f;
|
|
iVar7 = iVar6;
|
|
} while ((iVar4 != iVar3) || (iVar6 != iVar5));
|
|
iVar4 = 0;
|
|
iVar6 = 0;
|
|
}
|
|
LAB_1018_084f:
|
|
return CONCAT22(iVar6,iVar4);
|
|
}
|
|
|
|
|
|
/* ===== 1018:085a FUN_1018_085a ===== */
|
|
|
|
void __stdcall16far FUN_1018_085a(undefined4 param_1,code *param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 uVar2;
|
|
int iVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
int iVar6;
|
|
|
|
uVar2 = *(undefined4 *)((int)param_1 + 10);
|
|
iVar5 = (int)((ulong)uVar2 >> 0x10);
|
|
iVar3 = (int)uVar2;
|
|
if (iVar5 != 0 || iVar3 != 0) {
|
|
iVar4 = (int)*(undefined4 *)(iVar3 + 0x19);
|
|
iVar6 = (int)((ulong)*(undefined4 *)(iVar3 + 0x19) >> 0x10);
|
|
while ((iVar4 != iVar3 || (iVar6 != iVar5))) {
|
|
iVar1 = *(int *)(iVar4 + 0x1b);
|
|
iVar4 = *(int *)(iVar4 + 0x19);
|
|
(*param_2)();
|
|
iVar6 = iVar1;
|
|
}
|
|
(*param_2)();
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:08ac FUN_1018_08ac ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1018_08ac(void)
|
|
|
|
{
|
|
return 0xffff;
|
|
}
|
|
|
|
|
|
/* ===== 1018:08c3 FUN_1018_08c3 ===== */
|
|
|
|
void __stdcall16far
|
|
FUN_1018_08c3(undefined2 param_1,undefined2 param_2,undefined2 *param_3,undefined4 param_4)
|
|
|
|
{
|
|
undefined2 *puVar1;
|
|
int unaff_BP;
|
|
|
|
FUN_1018_0002((int)param_4,(int)((ulong)param_4 >> 0x10),(undefined2 *)param_3,
|
|
(int)((ulong)param_3 >> 0x10),0x1028,unaff_BP + 1);
|
|
if (DAT_1028_0684 != 0) {
|
|
FUN_1018_0103();
|
|
}
|
|
puVar1 = (undefined2 *)param_3;
|
|
(*(code *)*puVar1)();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:08f0 FUN_1018_08f0 ===== */
|
|
|
|
void __stdcall16far FUN_1018_08f0(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
char cVar1;
|
|
int iVar2;
|
|
uint uVar3;
|
|
int *piVar4;
|
|
int iVar5;
|
|
int iVar6;
|
|
undefined2 uVar7;
|
|
undefined2 uVar8;
|
|
int *piVar9;
|
|
long lVar10;
|
|
int iVar11;
|
|
int iVar12;
|
|
int local_6;
|
|
|
|
iVar12 = 1;
|
|
iVar6 = (int)((ulong)param_1 >> 0x10);
|
|
piVar4 = (int *)param_1;
|
|
uVar8 = 0x1018;
|
|
iVar11 = iVar6;
|
|
cVar1 = FUN_1018_0673(param_1,1);
|
|
iVar5 = (int)param_2;
|
|
uVar7 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if ((cVar1 != '\0') && (*(int *)(iVar5 + 6) == 0 && *(int *)(iVar5 + 8) == 0)) {
|
|
iVar12 = piVar4[2];
|
|
iVar11 = *(int *)(iVar5 + 4);
|
|
uVar8 = 0x1228;
|
|
iVar2 = GETDLGITEM(0x1018,iVar11);
|
|
if (iVar2 != 0) {
|
|
uVar8 = 0x1228;
|
|
iVar11 = iVar2;
|
|
uVar3 = SENDMESSAGE(0x1228,0,0,0,0x87);
|
|
if ((uVar3 & 0x30) != 0) {
|
|
*(int *)(iVar5 + 6) = iVar2;
|
|
*(undefined2 *)(iVar5 + 8) = 0;
|
|
}
|
|
}
|
|
}
|
|
if (*(int *)(iVar5 + 6) == 0) {
|
|
if (*(uint *)(iVar5 + 4) < 0x6000) {
|
|
local_6 = GETFOCUS(uVar8);
|
|
piVar9 = (int *)FUN_1018_0097(local_6);
|
|
while (((piVar9 == (int *)0x0 && (local_6 != 0)) && (local_6 != piVar4[2]))) {
|
|
local_6 = GETPARENT(0x1018,local_6);
|
|
piVar9 = (int *)FUN_1018_0097(local_6);
|
|
}
|
|
if (piVar9 == (int *)0x0) {
|
|
piVar9 = param_1;
|
|
}
|
|
FUN_1018_08c3(0x10,*(int *)(iVar5 + 4) + -0x6000,iVar5,uVar7,piVar9);
|
|
}
|
|
else {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))(uVar8,param_1,iVar5,uVar7,iVar11,iVar12);
|
|
}
|
|
}
|
|
else {
|
|
iVar12 = piVar4[2];
|
|
uVar8 = GETDLGITEM(uVar8,*(undefined2 *)(iVar5 + 4));
|
|
lVar10 = FUN_1018_0097(uVar8);
|
|
if ((lVar10 == 0) || (0xfff < *(uint *)(iVar5 + 8))) {
|
|
if (*(uint *)(iVar5 + 4) < 0x1000) {
|
|
FUN_1018_08c3(0x14,*(int *)(iVar5 + 4) + -0x8000,iVar5,uVar7,param_1);
|
|
}
|
|
else {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x14))(0x1018,param_1,iVar5,uVar7,iVar12);
|
|
}
|
|
}
|
|
else {
|
|
FUN_1018_08c3(0x18,*(int *)(iVar5 + 8) + -0x7000,iVar5,uVar7,lVar10);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0a85 FUN_1018_0a85 ===== */
|
|
|
|
void __stdcall16far FUN_1018_0a85(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
uint uVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
long lVar5;
|
|
undefined2 uVar6;
|
|
|
|
uVar3 = (undefined2)((ulong)param_2 >> 0x10);
|
|
iVar2 = (int)param_2;
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
if (*(int *)(iVar2 + 8) == 0) {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))();
|
|
}
|
|
else {
|
|
lVar5 = FUN_1018_0097(*(undefined2 *)(iVar2 + 8));
|
|
if (lVar5 == 0) {
|
|
uVar6 = *(undefined2 *)(iVar2 + 8);
|
|
uVar1 = GETWINDOWWORD(0x1018,0xfff4);
|
|
if (uVar1 < 0x1000) {
|
|
FUN_1018_08c3(0x14,uVar1 + 0x8000,iVar2,uVar3,(int *)param_1,uVar4);
|
|
}
|
|
else {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x14))(0x1228,(int *)param_1,uVar4,iVar2,uVar3,uVar6);
|
|
}
|
|
}
|
|
else {
|
|
FUN_1018_08c3(0x18,*(int *)(iVar2 + 4) + -0x7000,iVar2,uVar3,lVar5);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0b25 FUN_1018_0b25 ===== */
|
|
|
|
void __stdcall16far FUN_1018_0b25(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
uint extraout_DX;
|
|
int unaff_BP;
|
|
int iVar1;
|
|
int *piVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 unaff_CS;
|
|
int iVar5;
|
|
undefined2 uVar6;
|
|
|
|
iVar1 = unaff_BP + 1;
|
|
uVar6 = 0x1028;
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar2 = (int *)param_1;
|
|
iVar5 = piVar2[2];
|
|
GETWINDOWLONG(unaff_CS,0xfff0);
|
|
uVar4 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if ((extraout_DX & 0x20) == 0) {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x48))(0x1228,piVar2,uVar3,(int)param_2,uVar4);
|
|
}
|
|
else {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))
|
|
(0x1228,piVar2,uVar3,(int)param_2,uVar4,iVar5,uVar6,iVar1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0b6c FUN_1018_0b6c ===== */
|
|
|
|
void __stdcall16far FUN_1018_0b6c(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
uint extraout_DX;
|
|
int unaff_BP;
|
|
int iVar1;
|
|
int *piVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 unaff_CS;
|
|
int iVar5;
|
|
undefined2 uVar6;
|
|
|
|
iVar1 = unaff_BP + 1;
|
|
uVar6 = 0x1028;
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar2 = (int *)param_1;
|
|
iVar5 = piVar2[2];
|
|
GETWINDOWLONG(unaff_CS,0xfff0);
|
|
uVar4 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if ((extraout_DX & 0x10) == 0) {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x48))(0x1228,piVar2,uVar3,(int)param_2,uVar4);
|
|
}
|
|
else {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))
|
|
(0x1228,piVar2,uVar3,(int)param_2,uVar4,iVar5,uVar6,iVar1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0bb3 FUN_1018_0bb3 ===== */
|
|
|
|
void __stdcall16far FUN_1018_0bb3(int *param_1,int *param_2)
|
|
|
|
{
|
|
int unaff_BP;
|
|
int iVar1;
|
|
int *piVar2;
|
|
int *piVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 unaff_CS;
|
|
long lVar6;
|
|
undefined2 uVar7;
|
|
|
|
iVar1 = unaff_BP + 1;
|
|
uVar7 = 0x1028;
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar2 = (int *)param_1;
|
|
if (*param_2 == piVar2[2]) {
|
|
lVar6 = 0;
|
|
}
|
|
else if (piVar2[3] == 0 && piVar2[4] == 0) {
|
|
unaff_CS = 0x1018;
|
|
lVar6 = FUN_1018_0097(*param_2);
|
|
}
|
|
else {
|
|
lVar6 = CONCAT22(piVar2[4],piVar2[3]);
|
|
}
|
|
piVar3 = (int *)param_2;
|
|
uVar5 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if (lVar6 == 0) {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))(unaff_CS,piVar2,uVar4,piVar3,uVar5,0,0,uVar7,iVar1);
|
|
}
|
|
else {
|
|
FUN_1018_08c3(0x10,piVar3[2] + -0x6000,piVar3,uVar5,lVar6);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0c3d FUN_1018_0c3d ===== */
|
|
|
|
void __stdcall16far FUN_1018_0c3d(int *param_1)
|
|
|
|
{
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0c59 FUN_1018_0c59 ===== */
|
|
|
|
void __stdcall16far FUN_1018_0c59(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar5;
|
|
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar1 = (int)param_1;
|
|
if (*(int *)(iVar1 + 6) != 0 || *(int *)(iVar1 + 8) != 0) {
|
|
uVar4 = (undefined2)((ulong)param_2 >> 0x10);
|
|
iVar2 = (int)param_2;
|
|
if (*(int *)(iVar2 + 2) == 0x111) {
|
|
FUN_1018_08c3(0x14,*(int *)(iVar2 + 4) + -0x8000,iVar2,uVar4,*(undefined2 *)(iVar1 + 6),
|
|
*(undefined2 *)(iVar1 + 8));
|
|
}
|
|
else {
|
|
uVar5 = *(undefined2 *)(iVar1 + 6);
|
|
uVar3 = *(undefined2 *)(iVar1 + 4);
|
|
iVar1 = GETWINDOWWORD(unaff_CS,0xfff4);
|
|
FUN_1018_08c3(0x14,iVar1 + -0x8000,uVar3,iVar2,uVar4,uVar5);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0cc7 FUN_1018_0cc7 ===== */
|
|
|
|
void __stdcall16far FUN_1018_0cc7(undefined2 param_1,undefined4 param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
|
|
uVar1 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if (*(int *)((int)param_2 + 4) != 0) {
|
|
FUN_1018_060d((int)param_2,uVar1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0ce7 FUN_1018_0ce7 ===== */
|
|
|
|
void __stdcall16far FUN_1018_0ce7(undefined4 param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
char cVar2;
|
|
int unaff_BP;
|
|
int iVar3;
|
|
int iVar4;
|
|
undefined2 uVar5;
|
|
long lVar6;
|
|
undefined2 uVar7;
|
|
|
|
iVar3 = unaff_BP + 1;
|
|
uVar7 = 0x1028;
|
|
uVar5 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar4 = (int)param_1;
|
|
if (*(int *)(iVar4 + 4) != 0) {
|
|
FUN_1018_085a(iVar4,uVar5,0xcc7,0x1018);
|
|
cVar2 = FUN_1018_0673(iVar4,uVar5,8);
|
|
if (cVar2 != '\0') {
|
|
piVar1 = (int *)*(undefined4 *)(iVar4 + 6);
|
|
lVar6 = (*(code *)*(undefined2 *)(*piVar1 + 0x30))
|
|
(0x1018,(int *)piVar1,(int)((ulong)piVar1 >> 0x10),uVar7,iVar3);
|
|
if (lVar6 != 0) {
|
|
piVar1 = (int *)*(undefined4 *)(iVar4 + 6);
|
|
(*(code *)*(undefined2 *)(*piVar1 + 0x30))
|
|
(0x1018,(int *)piVar1,(int)((ulong)piVar1 >> 0x10));
|
|
SENDMESSAGE(0x1018,0,0,*(undefined2 *)(iVar4 + 4),0x221);
|
|
return;
|
|
}
|
|
}
|
|
DESTROYWINDOW(0x1018,*(undefined2 *)(iVar4 + 4));
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0d6a FUN_1018_0d6a ===== */
|
|
|
|
char * __stdcall16far FUN_1018_0d6a(void)
|
|
|
|
{
|
|
return s_TurboWindow_1028_068c;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0d8a FUN_1018_0d8a ===== */
|
|
|
|
void __stdcall16far FUN_1018_0d8a(void)
|
|
|
|
{
|
|
int unaff_BP;
|
|
|
|
FUN_1008_2d87(0x1028,unaff_BP + 1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0d9b FUN_1018_0d9b ===== */
|
|
|
|
void __stdcall16far FUN_1018_0d9b(int *param_1)
|
|
|
|
{
|
|
char cVar1;
|
|
int unaff_BP;
|
|
int iVar2;
|
|
int *piVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
|
|
iVar2 = unaff_BP + 1;
|
|
uVar5 = 0x1028;
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar3 = (int *)param_1;
|
|
cVar1 = FUN_1018_055c(piVar3,uVar4);
|
|
if (cVar1 == '\0') {
|
|
piVar3[1] = -4;
|
|
}
|
|
else {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x44))(0x1018,piVar3,uVar4,2,uVar5,iVar2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0dcd FUN_1018_0dcd ===== */
|
|
|
|
void __stdcall16far FUN_1018_0dcd(int param_1,int *param_2)
|
|
|
|
{
|
|
char cVar1;
|
|
int unaff_BP;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 unaff_SS;
|
|
undefined2 uVar4;
|
|
|
|
iVar2 = unaff_BP + 1;
|
|
uVar4 = 0x1028;
|
|
uVar3 = (undefined2)((ulong)param_2 >> 0x10);
|
|
cVar1 = FUN_1018_0673((int *)param_2,uVar3,0x10);
|
|
if (cVar1 != '\0') {
|
|
iVar2 = (*(code *)*(undefined2 *)(*param_2 + 0x40))
|
|
(0x1018,(int *)param_2,uVar3,*(undefined2 *)(param_1 + 10),
|
|
*(undefined2 *)(param_1 + -6),*(undefined2 *)(param_1 + -4),uVar4,iVar2);
|
|
*(int *)(param_1 + -6) = *(int *)(param_1 + -6) + iVar2;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0e0a FUN_1018_0e0a ===== */
|
|
|
|
void __stdcall16far FUN_1018_0e0a(undefined4 param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar1 = (int)param_1;
|
|
if (*(int *)(iVar1 + 0xe) != 0 || *(int *)(iVar1 + 0x10) != 0) {
|
|
FUN_1018_085a(iVar1,uVar2,0xdcd,0x1018);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0e46 FUN_1018_0e46 ===== */
|
|
|
|
undefined1 __stdcall16far FUN_1018_0e46(int *param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
int unaff_BP;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
undefined4 uVar2;
|
|
undefined1 local_20 [27];
|
|
undefined1 local_5;
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
local_5 = 1;
|
|
uVar2 = (*(code *)*(undefined2 *)(*param_1 + 0x2c))();
|
|
iVar1 = GETCLASSINFO(unaff_CS,local_20,unaff_SS,uVar2);
|
|
if (iVar1 == 0) {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x34))
|
|
(0x1228,(int *)param_1,(int)((ulong)param_1 >> 0x10),local_20);
|
|
iVar1 = REGISTERCLASS(0x1228,local_20);
|
|
local_5 = iVar1 != 0;
|
|
}
|
|
return local_5;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0e9e FUN_1018_0e9e ===== */
|
|
|
|
void __stdcall16far FUN_1018_0e9e(undefined4 param_1,undefined2 param_2)
|
|
|
|
{
|
|
undefined2 unaff_CS;
|
|
|
|
if (*(int *)((int)param_1 + 4) != 0) {
|
|
SHOWWINDOW(unaff_CS,param_2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0ec0 FUN_1018_0ec0 ===== */
|
|
|
|
undefined1 __stdcall16far FUN_1018_0ec0(undefined2 param_1,int *param_2)
|
|
|
|
{
|
|
char cVar1;
|
|
|
|
if ((((int *)param_2)[2] != 0) &&
|
|
(cVar1 = (*(code *)*(undefined2 *)(*param_2 + 0x3c))(), cVar1 == '\0')) {
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0ef4 FUN_1018_0ef4 ===== */
|
|
|
|
uint __stdcall16far FUN_1018_0ef4(undefined4 param_1)
|
|
|
|
{
|
|
uint uVar1;
|
|
uint uVar2;
|
|
undefined4 uVar3;
|
|
|
|
uVar3 = FUN_1018_080d((int)param_1,(int)((ulong)param_1 >> 0x10),0xec0,0x1018);
|
|
uVar1 = (uint)uVar3 | (uint)((ulong)uVar3 >> 0x10);
|
|
uVar2 = uVar1 & 0xff00;
|
|
if (uVar1 == 0) {
|
|
uVar2 = 1;
|
|
}
|
|
return uVar2;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0f22 FUN_1018_0f22 ===== */
|
|
|
|
void __stdcall16far FUN_1018_0f22(undefined4 param_1)
|
|
|
|
{
|
|
FUN_1018_0f38((int)param_1,(int)((ulong)param_1 >> 0x10));
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0f38 FUN_1018_0f38 ===== */
|
|
|
|
void __stdcall16far FUN_1018_0f38(int *param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
char local_5;
|
|
|
|
iVar1 = (int)((ulong)param_1 >> 0x10);
|
|
uVar2 = (undefined2)((ulong)DAT_1028_064e >> 0x10);
|
|
if ((iVar1 == ((int *)DAT_1028_064e)[5]) && ((int *)param_1 == (int *)((int *)DAT_1028_064e)[4]))
|
|
{
|
|
local_5 = (*(code *)*(undefined2 *)(*DAT_1028_064e + 0x44))();
|
|
}
|
|
else {
|
|
local_5 = (*(code *)*(undefined2 *)(*param_1 + 0x3c))();
|
|
}
|
|
if (local_5 != '\0') {
|
|
FUN_1008_2db3((int *)param_1,iVar1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0f8d FUN_1018_0f8d ===== */
|
|
|
|
void __stdcall16far FUN_1018_0f8d(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 unaff_CS;
|
|
|
|
iVar1 = (int)((ulong)param_1 >> 0x10);
|
|
uVar2 = (undefined2)((ulong)DAT_1028_064e >> 0x10);
|
|
if ((iVar1 == *(int *)((int)DAT_1028_064e + 10)) &&
|
|
((int *)param_1 == (int *)*(int *)((int)DAT_1028_064e + 8))) {
|
|
unaff_CS = 0x1228;
|
|
POSTQUITMESSAGE();
|
|
}
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))
|
|
(unaff_CS,(int *)param_1,iVar1,(int)param_2,(int)((ulong)param_2 >> 0x10));
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0fcc FUN_1018_0fcc ===== */
|
|
|
|
void __stdcall16far FUN_1018_0fcc(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
int unaff_BP;
|
|
int iVar1;
|
|
int *piVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
|
|
iVar1 = unaff_BP + 1;
|
|
uVar4 = 0x1028;
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar2 = (int *)param_1;
|
|
FUN_1018_0071(piVar2[2]);
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))
|
|
(0x1018,piVar2,uVar3,(int)param_2,(int)((ulong)param_2 >> 0x10),uVar4,iVar1);
|
|
piVar2[2] = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:0ffd FUN_1018_0ffd ===== */
|
|
|
|
void __stdcall16far FUN_1018_0ffd(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
char cVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))();
|
|
if (*(int *)((int)param_2 + 4) != 0) {
|
|
cVar1 = FUN_1018_0673((int *)param_1,uVar2,1);
|
|
uVar3 = (undefined2)((ulong)DAT_1028_064e >> 0x10);
|
|
if (cVar1 == '\0') {
|
|
FUN_1018_1bdf((int)DAT_1028_064e,uVar3,0,0);
|
|
}
|
|
else {
|
|
FUN_1018_1bdf((int)DAT_1028_064e,uVar3,(int *)param_1,uVar2);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1054 FUN_1018_1054 ===== */
|
|
|
|
void __stdcall16far FUN_1018_1054(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
char cVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
|
|
uVar3 = (undefined2)((ulong)DAT_1028_064e >> 0x10);
|
|
iVar2 = (int)param_2;
|
|
uVar4 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if (((int)((ulong)param_1 >> 0x10) == ((int *)DAT_1028_064e)[5]) &&
|
|
((int *)param_1 == (int *)((int *)DAT_1028_064e)[4])) {
|
|
cVar1 = (*(code *)*(undefined2 *)(*DAT_1028_064e + 0x44))();
|
|
*(int *)(iVar2 + 10) = (int)cVar1;
|
|
*(int *)(iVar2 + 0xc) = (int)cVar1 >> 0xf;
|
|
}
|
|
else {
|
|
cVar1 = (*(code *)*(undefined2 *)(*param_1 + 0x3c))();
|
|
*(int *)(iVar2 + 10) = (int)cVar1;
|
|
*(int *)(iVar2 + 0xc) = (int)cVar1 >> 0xf;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:10aa FUN_1018_10aa ===== */
|
|
|
|
void __stdcall16far FUN_1018_10aa(int *param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
|
|
iVar1 = (int)((ulong)param_1 >> 0x10);
|
|
uVar2 = (undefined2)((ulong)DAT_1028_064e >> 0x10);
|
|
if ((iVar1 == *(int *)((int)DAT_1028_064e + 10)) &&
|
|
((int *)param_1 == (int *)*(int *)((int)DAT_1028_064e + 8))) {
|
|
FUN_1018_0f38((int *)param_1,iVar1);
|
|
}
|
|
else {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x10))();
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:10e9 FUN_1018_10e9 ===== */
|
|
|
|
undefined4 __stdcall16far FUN_1018_10e9(void)
|
|
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1106 FUN_1018_1106 ===== */
|
|
|
|
undefined4 __stdcall16far
|
|
FUN_1018_1106(undefined4 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4,
|
|
int *param_5)
|
|
|
|
{
|
|
int unaff_BP;
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined2 *puVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
bool bVar6;
|
|
undefined4 uVar7;
|
|
long lVar8;
|
|
undefined2 *puVar9;
|
|
undefined2 uVar10;
|
|
|
|
iVar1 = unaff_BP + 1;
|
|
uVar10 = 0x1028;
|
|
bVar6 = true;
|
|
FUN_1020_03ef();
|
|
if (!bVar6) {
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar2 = (int)param_1;
|
|
FUN_1018_0341(iVar2,uVar4,0,(int *)param_5,param_5._2_2_);
|
|
puVar9 = (undefined2 *)CONCAT22(uVar4,(undefined2 *)(iVar2 + 0x1d));
|
|
uVar7 = FUN_1008_302c(param_3,param_4);
|
|
uVar5 = (undefined2)((ulong)puVar9 >> 0x10);
|
|
puVar3 = (undefined2 *)puVar9;
|
|
*puVar9 = (int)uVar7;
|
|
puVar3[1] = (int)((ulong)uVar7 >> 0x10);
|
|
*(undefined2 *)(iVar2 + 0x37) = 0x22c;
|
|
*(undefined2 *)(iVar2 + 0x39) = 0x1228;
|
|
if ((int *)param_5 == (int *)0x0 && param_5._2_2_ == 0) {
|
|
puVar3[2] = 0;
|
|
puVar3[3] = 0xcf;
|
|
}
|
|
else {
|
|
lVar8 = (*(code *)*(undefined2 *)(*param_5 + 0x30))
|
|
(0x1008,(int *)param_5,param_5._2_2_,puVar9,uVar10,iVar1);
|
|
if (lVar8 == 0) {
|
|
uVar10 = (undefined2)((ulong)puVar9 >> 0x10);
|
|
((undefined2 *)puVar9)[2] = 0;
|
|
((undefined2 *)puVar9)[3] = 0x1000;
|
|
}
|
|
else {
|
|
FUN_1018_0641(iVar2,uVar4,1,8);
|
|
*(undefined2 *)(iVar2 + 0x37) = 0x2b0;
|
|
*(undefined2 *)(iVar2 + 0x39) = 0x1228;
|
|
uVar10 = (undefined2)((ulong)puVar9 >> 0x10);
|
|
((undefined2 *)puVar9)[2] = 0;
|
|
((undefined2 *)puVar9)[3] = 0x400;
|
|
}
|
|
}
|
|
uVar10 = (undefined2)((ulong)puVar9 >> 0x10);
|
|
puVar3 = (undefined2 *)puVar9;
|
|
puVar3[4] = 0;
|
|
puVar3[5] = 0;
|
|
puVar3[6] = 0x8000;
|
|
puVar3[7] = 0;
|
|
puVar3[8] = 0x8000;
|
|
puVar3[9] = 0;
|
|
puVar3[10] = 0;
|
|
puVar3[0xb] = 0;
|
|
puVar3[0xc] = 0;
|
|
*(undefined2 *)(iVar2 + 0x3b) = 0;
|
|
*(undefined2 *)(iVar2 + 0x3d) = 0;
|
|
*(undefined2 *)(iVar2 + 0x3f) = 0;
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
/* ===== 1018:121b FUN_1018_121b ===== */
|
|
|
|
void __stdcall16far FUN_1018_121b(undefined4 param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
uint uVar2;
|
|
int unaff_BP;
|
|
int iVar3;
|
|
int iVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
|
|
iVar3 = unaff_BP + 1;
|
|
uVar6 = 0x1028;
|
|
uVar5 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar4 = (int)param_1;
|
|
FUN_1008_3099(*(undefined2 *)(iVar4 + 0x1d),*(undefined2 *)(iVar4 + 0x1f));
|
|
uVar2 = *(uint *)(iVar4 + 0x3b) | *(uint *)(iVar4 + 0x3d);
|
|
if (uVar2 != 0) {
|
|
piVar1 = (int *)*(undefined4 *)(iVar4 + 0x3b);
|
|
(*(code *)*(undefined2 *)(*piVar1 + 8))
|
|
(0x1008,(int *)piVar1,(int)((ulong)piVar1 >> 0x10),CONCAT11((char)(uVar2 >> 8),1),
|
|
uVar6,iVar3);
|
|
*(undefined2 *)(iVar4 + 0x3b) = 0;
|
|
*(undefined2 *)(iVar4 + 0x3d) = 0;
|
|
}
|
|
FUN_1018_03ff(iVar4,uVar5,0);
|
|
FUN_1020_0439();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1274 FUN_1018_1274 ===== */
|
|
|
|
void __stdcall16far FUN_1018_1274(int *param_1,undefined2 *param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
int unaff_BP;
|
|
int iVar2;
|
|
undefined2 *puVar3;
|
|
undefined2 uVar4;
|
|
undefined2 unaff_CS;
|
|
undefined4 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
undefined2 uVar8;
|
|
|
|
iVar2 = unaff_BP + 1;
|
|
uVar8 = 0x1028;
|
|
uVar4 = (undefined2)((ulong)param_2 >> 0x10);
|
|
puVar3 = (undefined2 *)param_2;
|
|
puVar3[3] = 0;
|
|
puVar3[4] = 0;
|
|
puVar3[5] = DAT_1028_06fe;
|
|
uVar7 = 0;
|
|
uVar1 = LOADICON(unaff_CS,0x7f00,0);
|
|
puVar3[6] = uVar1;
|
|
uVar6 = 0;
|
|
uVar1 = LOADCURSOR(0x1228,0x7f00,0);
|
|
puVar3[7] = uVar1;
|
|
puVar3[8] = 6;
|
|
puVar3[9] = 0;
|
|
puVar3[10] = 0;
|
|
uVar5 = (*(code *)*(undefined2 *)(*param_1 + 0x2c))
|
|
(0x1228,(int *)param_1,(int)((ulong)param_1 >> 0x10),uVar6,uVar7,uVar8,iVar2);
|
|
puVar3[0xb] = (int)uVar5;
|
|
puVar3[0xc] = (int)((ulong)uVar5 >> 0x10);
|
|
*param_2 = 3;
|
|
puVar3[1] = 0x18b;
|
|
puVar3[2] = 0x1018;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:12f5 FUN_1018_12f5 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1018_12f5(undefined4 param_1)
|
|
|
|
{
|
|
return *(undefined2 *)((int)param_1 + 0x35);
|
|
}
|
|
|
|
|
|
/* ===== 1018:1311 FUN_1018_1311 ===== */
|
|
|
|
void __stdcall16far FUN_1018_1311(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
undefined2 unaff_CS;
|
|
undefined4 uVar4;
|
|
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
uVar3 = (undefined2)((ulong)param_2 >> 0x10);
|
|
iVar1 = (int)param_2;
|
|
uVar4 = CALLWINDOWPROC(unaff_CS,*(undefined2 *)(iVar1 + 6),*(undefined2 *)(iVar1 + 8),
|
|
*(undefined2 *)(iVar1 + 4),*(undefined2 *)(iVar1 + 2),
|
|
*(undefined2 *)((int)param_1 + 4),*(undefined2 *)((int)param_1 + 0x37));
|
|
*(undefined2 *)(iVar1 + 10) = (int)uVar4;
|
|
*(undefined2 *)(iVar1 + 0xc) = (int)((ulong)uVar4 >> 0x10);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:134f FUN_1018_134f ===== */
|
|
|
|
uint __stdcall16far FUN_1018_134f(int *param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
char cVar2;
|
|
uint in_AX;
|
|
uint uVar3;
|
|
int unaff_BP;
|
|
int *piVar4;
|
|
undefined2 uVar5;
|
|
undefined2 unaff_SS;
|
|
undefined4 uVar6;
|
|
undefined2 uVar7;
|
|
int iVar8;
|
|
undefined4 local_2a;
|
|
undefined4 local_26;
|
|
undefined2 local_22;
|
|
undefined2 local_20;
|
|
undefined2 local_1e;
|
|
undefined2 local_1c;
|
|
undefined2 local_1a;
|
|
undefined2 local_18;
|
|
undefined2 local_16;
|
|
undefined2 local_14;
|
|
undefined2 local_12;
|
|
long local_c;
|
|
undefined2 local_8;
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
uVar5 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar4 = (int *)param_1;
|
|
if (piVar4[1] == 0) {
|
|
FUN_1018_0627(piVar4,uVar5);
|
|
if (piVar4[3] == 0 && piVar4[4] == 0) {
|
|
local_8 = 0;
|
|
}
|
|
else {
|
|
local_8 = *(undefined2 *)((int)*(undefined4 *)(piVar4 + 3) + 4);
|
|
}
|
|
cVar2 = FUN_1018_0673(piVar4,uVar5,2);
|
|
if (cVar2 == '\0') {
|
|
in_AX = (*(code *)*(undefined2 *)(*param_1 + 0x1c))(0x1018,piVar4,uVar5);
|
|
if ((char)in_AX != '\0') {
|
|
DAT_1028_0676 = piVar4;
|
|
DAT_1028_0678 = uVar5;
|
|
cVar2 = FUN_1018_0673(piVar4,uVar5,8);
|
|
if (cVar2 == '\0') {
|
|
local_2a = (undefined2 *)CONCAT22(uVar5,(undefined2 *)((int)piVar4 + 0x1d));
|
|
uVar7 = *(undefined2 *)((int)piVar4 + 0x27);
|
|
uVar6 = (*(code *)*(undefined2 *)(*param_1 + 0x2c))
|
|
(0x1018,piVar4,uVar5,*(undefined2 *)((int)piVar4 + 0x25),uVar7);
|
|
in_AX = CREATEWINDOWEX(0x1018,*(undefined2 *)((int)piVar4 + 0x31),
|
|
*(undefined2 *)((int)piVar4 + 0x33),DAT_1028_06fe,
|
|
*(undefined2 *)((int)piVar4 + 0x35),local_8,
|
|
*(undefined2 *)((int)piVar4 + 0x2f),
|
|
*(undefined2 *)((int)piVar4 + 0x2d),
|
|
*(undefined2 *)((int)piVar4 + 0x2b),
|
|
*(undefined2 *)((int)piVar4 + 0x29),
|
|
*(undefined2 *)((int)piVar4 + 0x21),
|
|
*(undefined2 *)((int)piVar4 + 0x23),*local_2a,
|
|
*(undefined2 *)((int)piVar4 + 0x1f),uVar6,uVar7);
|
|
piVar4[2] = in_AX;
|
|
}
|
|
else {
|
|
local_26 = (*(code *)*(undefined2 *)(*param_1 + 0x2c))(0x1018,piVar4,uVar5);
|
|
local_22 = *(undefined2 *)((int)piVar4 + 0x1d);
|
|
local_20 = *(undefined2 *)((int)piVar4 + 0x1f);
|
|
local_1e = DAT_1028_06fe;
|
|
local_1c = *(undefined2 *)((int)piVar4 + 0x29);
|
|
local_1a = *(undefined2 *)((int)piVar4 + 0x2b);
|
|
local_18 = *(undefined2 *)((int)piVar4 + 0x2d);
|
|
local_16 = *(undefined2 *)((int)piVar4 + 0x2f);
|
|
local_14 = *(undefined2 *)((int)piVar4 + 0x21);
|
|
local_12 = *(undefined2 *)((int)piVar4 + 0x23);
|
|
piVar1 = *(int **)(piVar4 + 3);
|
|
local_c = (*(code *)*(undefined2 *)(*piVar1 + 0x30))
|
|
(0x1018,(int *)piVar1,(int)((ulong)piVar1 >> 0x10));
|
|
in_AX = 0;
|
|
if (local_c != 0) {
|
|
in_AX = SENDMESSAGE(0x1018,&local_26,unaff_SS,0,0x220);
|
|
piVar4[2] = in_AX;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
in_AX = GETDLGITEM(0x1018,*(undefined2 *)((int)piVar4 + 0x35));
|
|
piVar4[2] = in_AX;
|
|
}
|
|
if (piVar4[2] == 0) {
|
|
piVar4[1] = -1;
|
|
}
|
|
else {
|
|
uVar6 = FUN_1018_0097(piVar4[2]);
|
|
in_AX = (uint)uVar6 | (uint)((ulong)uVar6 >> 0x10);
|
|
if (in_AX == 0) {
|
|
FUN_1018_0045(piVar4,uVar5,piVar4[2]);
|
|
iVar8 = piVar4[2];
|
|
uVar6 = SETWINDOWLONG(0x1018,piVar4[9],piVar4[10],0xfffc);
|
|
*(undefined2 *)((int)piVar4 + 0x37) = (int)uVar6;
|
|
*(undefined2 *)((int)piVar4 + 0x39) = (int)((ulong)uVar6 >> 0x10);
|
|
in_AX = (*(code *)*(undefined2 *)(*param_1 + 0x38))(0x1228,piVar4,uVar5,iVar8);
|
|
}
|
|
}
|
|
}
|
|
uVar3 = in_AX & 0xff00;
|
|
if (piVar4[1] == 0) {
|
|
uVar3 = uVar3 + 1;
|
|
}
|
|
return uVar3;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1547 FUN_1018_1547 ===== */
|
|
|
|
void __stdcall16far FUN_1018_1547(undefined4 param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar2 = (int)param_1;
|
|
if (*(int *)(iVar2 + 0x3f) != 0) {
|
|
iVar1 = ISWINDOW();
|
|
if (iVar1 != 0) {
|
|
iVar1 = ISICONIC(0x1228,*(undefined2 *)(iVar2 + 4));
|
|
if (iVar1 == 0) {
|
|
SETFOCUS(0x1228,*(undefined2 *)(iVar2 + 0x3f));
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1586 FUN_1018_1586 ===== */
|
|
|
|
void __stdcall16far FUN_1018_1586(undefined4 param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
|
|
iVar1 = GETFOCUS();
|
|
if (iVar1 != 0) {
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar2 = ISCHILD(0x1228,iVar1,*(undefined2 *)((int)param_1 + 4));
|
|
if (iVar2 != 0) {
|
|
*(int *)((int)param_1 + 0x3f) = iVar1;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:15c0 FUN_1018_15c0 ===== */
|
|
|
|
void __stdcall16far FUN_1018_15c0(undefined4 param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
char cVar2;
|
|
int iVar3;
|
|
int unaff_BP;
|
|
int iVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 unaff_SS;
|
|
long lVar7;
|
|
undefined2 uVar8;
|
|
int local_c;
|
|
int local_a;
|
|
int local_8;
|
|
int local_6;
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
uVar5 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar4 = (int)param_1;
|
|
iVar3 = ISICONIC();
|
|
if (iVar3 != 0) {
|
|
return;
|
|
}
|
|
iVar3 = ISZOOMED(0x1228,*(undefined2 *)(iVar4 + 4));
|
|
if (iVar3 != 0) {
|
|
return;
|
|
}
|
|
uVar8 = *(undefined2 *)(iVar4 + 4);
|
|
uVar6 = 0x1228;
|
|
GETWINDOWRECT(0x1228,&local_c,unaff_SS);
|
|
*(int *)(iVar4 + 0x2d) = local_8 - local_c;
|
|
*(int *)(iVar4 + 0x2f) = local_6 - local_a;
|
|
if (*(int *)(iVar4 + 6) != 0 || *(int *)(iVar4 + 8) != 0) {
|
|
piVar1 = (int *)*(undefined4 *)(iVar4 + 6);
|
|
lVar7 = (*(code *)*(undefined2 *)(*piVar1 + 0x30))
|
|
(0x1228,(int *)piVar1,(int)((ulong)piVar1 >> 0x10),uVar8);
|
|
if (lVar7 != 0) {
|
|
uVar6 = 0x1018;
|
|
cVar2 = FUN_1018_0673(iVar4,uVar5,8);
|
|
if (cVar2 != '\0') {
|
|
SCREENTOCLIENT(0x1018,&local_c,unaff_SS);
|
|
goto LAB_1018_1685;
|
|
}
|
|
}
|
|
if ((*(uint *)(iVar4 + 0x23) & 0x4000) != 0) {
|
|
SCREENTOCLIENT(uVar6,&local_c,unaff_SS);
|
|
}
|
|
}
|
|
LAB_1018_1685:
|
|
*(int *)(iVar4 + 0x29) = local_c;
|
|
*(int *)(iVar4 + 0x2b) = local_a;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:169d FUN_1018_169d ===== */
|
|
|
|
void __stdcall16far FUN_1018_169d(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
char cVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
undefined2 uVar4;
|
|
|
|
uVar3 = (undefined2)((ulong)param_2 >> 0x10);
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
uVar2 = (undefined2)param_1;
|
|
FUN_1018_0ffd(uVar2,uVar4,(int)param_2,uVar3);
|
|
cVar1 = FUN_1018_0673(uVar2,uVar4,1);
|
|
if (cVar1 != '\0') {
|
|
if (*(int *)((int)param_2 + 4) == 0) {
|
|
FUN_1018_1586(uVar2,uVar4);
|
|
}
|
|
else {
|
|
FUN_1018_1547(uVar2,uVar4);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:16eb FUN_1018_16eb ===== */
|
|
|
|
void __stdcall16far FUN_1018_16eb(void)
|
|
|
|
{
|
|
FUN_1020_16e1();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:170c FUN_1018_170c ===== */
|
|
|
|
void __stdcall16far FUN_1018_170c(undefined4 param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
char cVar2;
|
|
int unaff_BP;
|
|
int iVar3;
|
|
int iVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
|
|
iVar3 = unaff_BP + 1;
|
|
uVar7 = 0x1028;
|
|
uVar5 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar4 = (int)param_1;
|
|
FUN_1018_0d9b(iVar4,uVar5);
|
|
uVar6 = 0x1018;
|
|
cVar2 = FUN_1018_0673(iVar4,uVar5,8);
|
|
if (cVar2 != '\0') {
|
|
uVar6 = 0x1228;
|
|
SETFOCUS(0x1018,*(undefined2 *)(iVar4 + 4),uVar7,iVar3);
|
|
}
|
|
if (*(int *)(iVar4 + 0x3b) != 0 || *(int *)(iVar4 + 0x3d) != 0) {
|
|
piVar1 = (int *)*(undefined4 *)(iVar4 + 0x3b);
|
|
(*(code *)*(undefined2 *)(*piVar1 + 0x10))(uVar6,(int *)piVar1,(int)((ulong)piVar1 >> 0x10));
|
|
}
|
|
FUN_1018_15c0(iVar4,uVar5);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1761 FUN_1018_1761 ===== */
|
|
|
|
void __stdcall16far FUN_1018_1761(int *param_1)
|
|
|
|
{
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x38))();
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1788 FUN_1018_1788 ===== */
|
|
|
|
void __stdcall16far FUN_1018_1788(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
uint extraout_DX;
|
|
int unaff_BP;
|
|
int iVar2;
|
|
int *piVar3;
|
|
int iVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 unaff_CS;
|
|
int iVar7;
|
|
undefined2 uVar8;
|
|
|
|
iVar2 = unaff_BP + 1;
|
|
uVar8 = 0x1028;
|
|
uVar5 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar3 = (int *)param_1;
|
|
iVar7 = piVar3[2];
|
|
GETWINDOWLONG(unaff_CS,0xfff0);
|
|
iVar4 = (int)param_2;
|
|
uVar6 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if ((extraout_DX & 0x10) == 0) {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x48))(0x1228,piVar3,uVar5,iVar4,uVar6);
|
|
}
|
|
else if (*(int *)((int)piVar3 + 0x3b) == 0 && *(int *)((int)piVar3 + 0x3d) == 0) {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))(0x1228,piVar3,uVar5,iVar4,uVar6,iVar7,uVar8,iVar2);
|
|
}
|
|
else {
|
|
piVar1 = (int *)*(undefined4 *)((int)piVar3 + 0x3b);
|
|
(*(code *)*(undefined2 *)(*piVar1 + 0x20))
|
|
(0x1228,(int *)piVar1,(int)((ulong)piVar1 >> 0x10),*(undefined2 *)(iVar4 + 6),
|
|
*(undefined2 *)(iVar4 + 4));
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:17f8 FUN_1018_17f8 ===== */
|
|
|
|
void __stdcall16far FUN_1018_17f8(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
uint extraout_DX;
|
|
int unaff_BP;
|
|
int iVar2;
|
|
int *piVar3;
|
|
int iVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 unaff_CS;
|
|
int iVar7;
|
|
undefined2 uVar8;
|
|
|
|
iVar2 = unaff_BP + 1;
|
|
uVar8 = 0x1028;
|
|
uVar5 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar3 = (int *)param_1;
|
|
iVar7 = piVar3[2];
|
|
GETWINDOWLONG(unaff_CS,0xfff0);
|
|
iVar4 = (int)param_2;
|
|
uVar6 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if ((extraout_DX & 0x20) == 0) {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x48))(0x1228,piVar3,uVar5,iVar4,uVar6);
|
|
}
|
|
else if (*(int *)((int)piVar3 + 0x3b) == 0 && *(int *)((int)piVar3 + 0x3d) == 0) {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))(0x1228,piVar3,uVar5,iVar4,uVar6,iVar7,uVar8,iVar2);
|
|
}
|
|
else {
|
|
piVar1 = (int *)*(undefined4 *)((int)piVar3 + 0x3b);
|
|
(*(code *)*(undefined2 *)(*piVar1 + 0x1c))
|
|
(0x1228,(int *)piVar1,(int)((ulong)piVar1 >> 0x10),*(undefined2 *)(iVar4 + 6),
|
|
*(undefined2 *)(iVar4 + 4));
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1868 FUN_1018_1868 ===== */
|
|
|
|
void __stdcall16far FUN_1018_1868(int *param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
int unaff_BP;
|
|
int *piVar2;
|
|
undefined2 uVar3;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
undefined1 local_24 [32];
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar2 = (int *)param_1;
|
|
BEGINPAINT(unaff_CS,local_24,unaff_SS,piVar2[2]);
|
|
if (*(int *)((int)piVar2 + 0x3b) != 0 || *(int *)((int)piVar2 + 0x3d) != 0) {
|
|
piVar1 = (int *)*(undefined4 *)((int)piVar2 + 0x3b);
|
|
(*(code *)*(undefined2 *)(*piVar1 + 0x14))
|
|
(0x1228,(int *)piVar1,(int)((ulong)piVar1 >> 0x10),local_24);
|
|
}
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x4c))(0x1228,piVar2,uVar3,local_24);
|
|
if (*(int *)((int)piVar2 + 0x3b) != 0 || *(int *)((int)piVar2 + 0x3d) != 0) {
|
|
piVar1 = (int *)*(undefined4 *)((int)piVar2 + 0x3b);
|
|
(*(code *)*(undefined2 *)(*piVar1 + 0x18))(0x1228,(int *)piVar1,(int)((ulong)piVar1 >> 0x10));
|
|
}
|
|
ENDPAINT(0x1228,local_24,unaff_SS);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:18e9 FUN_1018_18e9 ===== */
|
|
|
|
void __stdcall16far FUN_1018_18e9(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
undefined2 *puVar1;
|
|
int unaff_BP;
|
|
int *piVar2;
|
|
int iVar3;
|
|
undefined2 uVar4;
|
|
undefined2 uVar5;
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar6;
|
|
undefined2 unaff_SS;
|
|
int local_c;
|
|
int local_a;
|
|
int local_8;
|
|
int local_6;
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar2 = (int *)param_1;
|
|
iVar3 = (int)param_2;
|
|
uVar5 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if ((*(int *)((int)piVar2 + 0x3b) != 0 || *(int *)((int)piVar2 + 0x3d) != 0) &&
|
|
(*(int *)(iVar3 + 4) != 1)) {
|
|
puVar1 = (undefined2 *)(*(int *)*(undefined4 *)((int)piVar2 + 0x3b) + 0xc);
|
|
(*(code *)*puVar1)();
|
|
}
|
|
uVar6 = unaff_CS;
|
|
if (*(int *)(iVar3 + 4) == 0) {
|
|
uVar6 = 0x1228;
|
|
GETWINDOWRECT(unaff_CS,&local_c,unaff_SS);
|
|
*(int *)((int)piVar2 + 0x2f) = local_6 - local_a;
|
|
*(int *)((int)piVar2 + 0x2d) = local_8 - local_c;
|
|
}
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))(uVar6,piVar2,uVar4,iVar3,uVar5);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1960 FUN_1018_1960 ===== */
|
|
|
|
void __stdcall16far FUN_1018_1960(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
int unaff_BP;
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
|
|
iVar1 = unaff_BP + 1;
|
|
uVar3 = 0x1028;
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
FUN_1018_15c0((int *)param_1,uVar2);
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))
|
|
(0x1018,(int *)param_1,uVar2,(int)param_2,(int)((ulong)param_2 >> 0x10),uVar3,iVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1986 FUN_1018_1986 ===== */
|
|
|
|
void __stdcall16far FUN_1018_1986(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
int iVar2;
|
|
int unaff_BP;
|
|
int *piVar3;
|
|
undefined2 uVar4;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
int iVar5;
|
|
undefined1 local_16 [2];
|
|
int local_14;
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar3 = (int *)param_1;
|
|
if ((*(int *)((int)piVar3 + 0x3b) != 0 || *(int *)((int)piVar3 + 0x3d) != 0) &&
|
|
(*(char *)((int)*(undefined4 *)((int)piVar3 + 0x3b) + 0x22) != '\0')) {
|
|
iVar5 = piVar3[2];
|
|
SETCAPTURE();
|
|
do {
|
|
iVar2 = PEEKMESSAGE(0x1228,1,0,0,0,local_16,unaff_SS);
|
|
if (iVar2 != 0) {
|
|
TRANSLATEMESSAGE(0x1228,local_16);
|
|
DISPATCHMESSAGE(0x1228,local_16);
|
|
}
|
|
piVar1 = (int *)*(undefined4 *)((int)piVar3 + 0x3b);
|
|
(*(code *)*(undefined2 *)(*piVar1 + 0x24))
|
|
(0x1228,(int *)piVar1,(int)((ulong)piVar1 >> 0x10),iVar5);
|
|
} while (local_14 != 0x202);
|
|
unaff_CS = 0x1228;
|
|
RELEASECAPTURE(0x1228);
|
|
}
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))
|
|
(unaff_CS,piVar3,uVar4,(int)param_2,(int)((ulong)param_2 >> 0x10));
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1a0e FUN_1018_1a0e ===== */
|
|
|
|
void __stdcall16far FUN_1018_1a0e(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
char cVar2;
|
|
int unaff_BP;
|
|
int iVar3;
|
|
int *piVar4;
|
|
undefined2 uVar5;
|
|
undefined2 uVar6;
|
|
undefined2 uVar7;
|
|
|
|
iVar3 = unaff_BP + 1;
|
|
uVar7 = 0x1028;
|
|
uVar5 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar4 = (int *)param_1;
|
|
cVar2 = FUN_1018_0673(piVar4,uVar5,1);
|
|
uVar6 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if (cVar2 != '\0') {
|
|
iVar1 = *(int *)((int)param_2 + 4);
|
|
if (iVar1 == -0xfe0) {
|
|
FUN_1018_1586(piVar4,uVar5);
|
|
}
|
|
else if (iVar1 == -0xee0) {
|
|
FUN_1018_1547(piVar4,uVar5);
|
|
}
|
|
}
|
|
(*(code *)*(undefined2 *)(*param_1 + 0xc))(0x1018,piVar4,uVar5,(int)param_2,uVar6,uVar7,iVar3);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1a61 FUN_1018_1a61 ===== */
|
|
|
|
int * __stdcall16far FUN_1018_1a61(int *param_1,undefined2 param_2,int param_3,int param_4)
|
|
|
|
{
|
|
int unaff_BP;
|
|
int *piVar1;
|
|
undefined2 uVar2;
|
|
bool bVar3;
|
|
undefined4 uVar4;
|
|
undefined2 uVar5;
|
|
|
|
bVar3 = true;
|
|
FUN_1020_03ef(0x1028,unaff_BP + 1);
|
|
if (!bVar3) {
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar1 = (int *)param_1;
|
|
FUN_1008_2d99(piVar1,uVar2,0);
|
|
piVar1[2] = param_3;
|
|
piVar1[3] = param_4;
|
|
DAT_1028_064e._0_2_ = piVar1;
|
|
DAT_1028_064e._2_2_ = uVar2;
|
|
piVar1[6] = 0;
|
|
piVar1[1] = 0;
|
|
piVar1[4] = 0;
|
|
piVar1[5] = 0;
|
|
piVar1[7] = 0;
|
|
piVar1[8] = 0;
|
|
uVar5 = 0x1018;
|
|
uVar4 = MAKEPROCINSTANCE(0x1008,DAT_1028_06fe,0x133);
|
|
DAT_1028_0674 = (undefined2)((ulong)uVar4 >> 0x10);
|
|
DAT_1028_0672 = (undefined2)uVar4;
|
|
FUN_1008_2e76(uVar5);
|
|
if (DAT_1028_06fc == 0) {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x10))(0x1008,piVar1,uVar2);
|
|
}
|
|
if (piVar1[1] == 0) {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x14))(0x1008,piVar1,uVar2);
|
|
}
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1b08 FUN_1018_1b08 ===== */
|
|
|
|
void __stdcall16far FUN_1018_1b08(undefined4 param_1)
|
|
|
|
{
|
|
int unaff_BP;
|
|
int iVar1;
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar2;
|
|
undefined2 uVar3;
|
|
|
|
iVar1 = unaff_BP + 1;
|
|
uVar3 = 0x1028;
|
|
uVar2 = DAT_1028_0674;
|
|
FREEPROCINSTANCE(unaff_CS,DAT_1028_0672);
|
|
FUN_1008_2dcd((int)param_1,(int)((ulong)param_1 >> 0x10),0);
|
|
FUN_1020_0439(uVar2,uVar3,iVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1b35 FUN_1018_1b35 ===== */
|
|
|
|
undefined1 __stdcall16far FUN_1018_1b35(void)
|
|
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1b4b FUN_1018_1b4b ===== */
|
|
|
|
void __stdcall16far FUN_1018_1b4b(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1b57 FUN_1018_1b57 ===== */
|
|
|
|
void __stdcall16far FUN_1018_1b57(int *param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined2 uVar2;
|
|
undefined4 uVar3;
|
|
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar1 = (int *)param_1;
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x18))();
|
|
uVar3 = (*(code *)*(undefined2 *)(*param_1 + 0x34))();
|
|
piVar1[4] = (int)uVar3;
|
|
piVar1[5] = (int)((ulong)uVar3 >> 0x10);
|
|
if (piVar1[4] == 0 && piVar1[5] == 0) {
|
|
piVar1[1] = -5;
|
|
}
|
|
else {
|
|
FUN_1018_0e9e((int)*(undefined4 *)(piVar1 + 4),(int)((ulong)*(undefined4 *)(piVar1 + 4) >> 0x10)
|
|
,DAT_1028_0700);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1bb0 FUN_1018_1bb0 ===== */
|
|
|
|
void __stdcall16far FUN_1018_1bb0(int *param_1)
|
|
|
|
{
|
|
if (((int *)param_1)[1] == 0) {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x20))();
|
|
}
|
|
else {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x40))();
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1bdf FUN_1018_1bdf ===== */
|
|
|
|
void __stdcall16far FUN_1018_1bdf(undefined4 param_1,undefined2 param_2,undefined2 param_3)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
|
|
uVar1 = (undefined2)((ulong)param_1 >> 0x10);
|
|
*(undefined2 *)((int)param_1 + 0xe) = param_2;
|
|
*(undefined2 *)((int)param_1 + 0x10) = param_3;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1bfc FUN_1018_1bfc ===== */
|
|
|
|
void __stdcall16far FUN_1018_1bfc(int *param_1)
|
|
|
|
{
|
|
char cVar1;
|
|
char cVar2;
|
|
int iVar3;
|
|
int unaff_BP;
|
|
int *piVar4;
|
|
undefined2 uVar5;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
undefined1 local_16 [2];
|
|
int local_14;
|
|
int local_12;
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
cVar1 = '\0';
|
|
do {
|
|
iVar3 = PEEKMESSAGE(unaff_CS,1,0,0,0,local_16,unaff_SS);
|
|
piVar4 = (int *)param_1;
|
|
uVar5 = (undefined2)((ulong)param_1 >> 0x10);
|
|
if (iVar3 == 0) {
|
|
cVar2 = (*(code *)*(undefined2 *)(*param_1 + 0xc))(0x1228,piVar4,uVar5);
|
|
if (cVar2 == '\0') {
|
|
cVar1 = '\x12';
|
|
WAITMESSAGE();
|
|
}
|
|
}
|
|
else if (local_14 == 0x12) {
|
|
cVar1 = '\x01';
|
|
}
|
|
else {
|
|
cVar2 = (*(code *)*(undefined2 *)(*param_1 + 0x24))(0x1228,piVar4,uVar5,local_16);
|
|
if (cVar2 == '\0') {
|
|
TRANSLATEMESSAGE(0x1228,local_16);
|
|
DISPATCHMESSAGE(0x1228,local_16);
|
|
}
|
|
}
|
|
unaff_CS = 0x1228;
|
|
} while (cVar1 == '\0');
|
|
piVar4[1] = local_12;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1c7f FUN_1018_1c7f ===== */
|
|
|
|
undefined1 __stdcall16far FUN_1018_1c7f(int *param_1)
|
|
|
|
{
|
|
char cVar1;
|
|
|
|
cVar1 = (*(code *)*(undefined2 *)(*param_1 + 0x28))();
|
|
if (((cVar1 == '\0') && (cVar1 = (*(code *)*(undefined2 *)(*param_1 + 0x30))(), cVar1 == '\0')) &&
|
|
(cVar1 = (*(code *)*(undefined2 *)(*param_1 + 0x2c))(), cVar1 == '\0')) {
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1cd6 FUN_1018_1cd6 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1018_1cd6(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
uint uVar1;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
undefined2 unaff_CS;
|
|
undefined1 local_5;
|
|
|
|
local_5 = false;
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar2 = (int)param_1;
|
|
uVar1 = *(uint *)(iVar2 + 0xe) | *(uint *)(iVar2 + 0x10);
|
|
if ((uVar1 != 0) && (*(int *)((int)*(undefined4 *)(iVar2 + 0xe) + 4) != 0)) {
|
|
iVar2 = ISDIALOGMESSAGE(unaff_CS,(int)param_2,(int)((ulong)param_2 >> 0x10));
|
|
local_5 = iVar2 != 0;
|
|
uVar1 = CONCAT11((char)((uint)-iVar2 >> 8),local_5);
|
|
}
|
|
return CONCAT11((char)(uVar1 >> 8),local_5);
|
|
}
|
|
|
|
|
|
/* ===== 1018:1d22 FUN_1018_1d22 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1018_1d22(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 unaff_CS;
|
|
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
if (*(int *)((int)param_1 + 0xc) != 0) {
|
|
iVar1 = TRANSLATEACCELERATOR
|
|
(unaff_CS,(int)param_2,(int)((ulong)param_2 >> 0x10),
|
|
*(undefined2 *)((int)param_1 + 0xc));
|
|
if (iVar1 != 0) {
|
|
return 1;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1d64 FUN_1018_1d64 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1018_1d64(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
undefined2 *puVar1;
|
|
int iVar2;
|
|
undefined2 unaff_CS;
|
|
long lVar3;
|
|
|
|
puVar1 = (undefined2 *)(*(int *)*(undefined4 *)((int)param_1 + 8) + 0x30);
|
|
lVar3 = (*(code *)*puVar1)();
|
|
if ((lVar3 != 0) &&
|
|
(iVar2 = TRANSLATEMDISYSACCEL(unaff_CS,(int)param_2,(int)((ulong)param_2 >> 0x10)), iVar2 != 0)
|
|
) {
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1db1 FUN_1018_1db1 ===== */
|
|
|
|
int * __stdcall16far FUN_1018_1db1(int *param_1,int *param_2)
|
|
|
|
{
|
|
char cVar1;
|
|
undefined1 extraout_AH;
|
|
undefined1 extraout_AH_00;
|
|
int unaff_BP;
|
|
undefined2 uVar2;
|
|
int *piVar3;
|
|
int *piVar4;
|
|
int iVar5;
|
|
int iVar6;
|
|
|
|
piVar3 = (int *)0x0;
|
|
iVar5 = 0;
|
|
piVar4 = piVar3;
|
|
iVar6 = iVar5;
|
|
if ((int *)param_2 != (int *)0x0 || param_2._2_2_ != 0) {
|
|
cVar1 = FUN_1008_2de0(0,0,0x1028,unaff_BP + 1);
|
|
uVar2 = (undefined2)((ulong)param_1 >> 0x10);
|
|
if (cVar1 == '\0') {
|
|
piVar4 = (int *)param_2;
|
|
iVar6 = param_2._2_2_;
|
|
if (((int *)param_2)[1] != 0) {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x40))(0x1008,(int *)param_1,uVar2,((int *)param_2)[1])
|
|
;
|
|
(*(code *)*(undefined2 *)(*param_2 + 8))
|
|
(0x1008,(int *)param_2,param_2._2_2_,CONCAT11(extraout_AH_00,1));
|
|
piVar4 = piVar3;
|
|
iVar6 = iVar5;
|
|
}
|
|
}
|
|
else {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x40))(0x1008,(int *)param_1,uVar2,0xfffe);
|
|
(*(code *)*(undefined2 *)(*param_2 + 8))
|
|
(0x1008,(int *)param_2,param_2._2_2_,CONCAT11(extraout_AH,1));
|
|
FUN_1008_2dff();
|
|
piVar4 = piVar3;
|
|
iVar6 = iVar5;
|
|
}
|
|
}
|
|
return (int *)CONCAT22(iVar6,piVar4);
|
|
}
|
|
|
|
|
|
/* ===== 1018:1e39 FUN_1018_1e39 ===== */
|
|
|
|
int * __stdcall16far FUN_1018_1e39(int *param_1,int *param_2)
|
|
|
|
{
|
|
char cVar1;
|
|
long lVar2;
|
|
int *local_8;
|
|
int local_6;
|
|
|
|
local_8 = (int *)0x0;
|
|
local_6 = 0;
|
|
if ((int *)param_2 != (int *)0x0 || param_2._2_2_ != 0) {
|
|
lVar2 = (*(code *)*(undefined2 *)(*param_1 + 0x3c))();
|
|
if (lVar2 != 0) {
|
|
cVar1 = (*(code *)*(undefined2 *)(*param_2 + 0x20))();
|
|
if (cVar1 == '\0') {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x40))();
|
|
(*(code *)*(undefined2 *)(*param_2 + 8))();
|
|
}
|
|
else {
|
|
local_8 = (int *)param_2;
|
|
local_6 = param_2._2_2_;
|
|
}
|
|
}
|
|
}
|
|
return (int *)CONCAT22(local_6,local_8);
|
|
}
|
|
|
|
|
|
/* ===== 1018:1eb0 FUN_1018_1eb0 ===== */
|
|
|
|
int __stdcall16far FUN_1018_1eb0(int *param_1,int *param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
long lVar2;
|
|
int local_6;
|
|
|
|
local_6 = 2;
|
|
lVar2 = (*(code *)*(undefined2 *)(*param_1 + 0x3c))();
|
|
if (lVar2 != 0) {
|
|
iVar1 = (*(code *)*(undefined2 *)(*param_2 + 0x4c))();
|
|
if (iVar1 < 0) {
|
|
(*(code *)*(undefined2 *)(*param_1 + 0x40))();
|
|
iVar1 = local_6;
|
|
}
|
|
local_6 = iVar1;
|
|
(*(code *)*(undefined2 *)(*param_2 + 8))();
|
|
}
|
|
return local_6;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1f14 FUN_1018_1f14 ===== */
|
|
|
|
void __stdcall16far FUN_1018_1f14(void)
|
|
|
|
{
|
|
int iVar1;
|
|
int unaff_BP;
|
|
undefined2 unaff_CS;
|
|
undefined2 unaff_SS;
|
|
undefined1 local_24 [32];
|
|
undefined2 uStack_4;
|
|
int iStack_2;
|
|
|
|
iStack_2 = unaff_BP + 1;
|
|
uStack_4 = 0x1028;
|
|
WVSPRINTF(unaff_CS,&stack0x0008,unaff_SS,0x698,0x1028,local_24);
|
|
iVar1 = (*DAT_1028_0666)(0x1228,0x14,0x6b3,0x1028,local_24);
|
|
if (iVar1 == 7) {
|
|
FUN_1020_0061(0x1228);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1018:1f56 FUN_1018_1f56 ===== */
|
|
|
|
undefined1 __stdcall16far FUN_1018_1f56(undefined4 param_1)
|
|
|
|
{
|
|
undefined2 *puVar1;
|
|
undefined1 uVar2;
|
|
|
|
puVar1 = (undefined2 *)(*(int *)*(undefined4 *)((int)param_1 + 8) + 0x3c);
|
|
uVar2 = (*(code *)*puVar1)();
|
|
return uVar2;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0002 FUN_1020_0002 ===== */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void __cdecl16far FUN_1020_0002(void)
|
|
|
|
{
|
|
code *pcVar1;
|
|
int in_AX;
|
|
int iVar2;
|
|
uint uVar3;
|
|
undefined2 in_DX;
|
|
undefined2 in_BX;
|
|
int unaff_BP;
|
|
int iVar4;
|
|
undefined2 unaff_SI;
|
|
undefined2 unaff_DI;
|
|
int unaff_ES;
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar5;
|
|
int iVar6;
|
|
|
|
iVar4 = unaff_BP + 1;
|
|
iVar6 = 0x1028;
|
|
if (in_AX != 0) {
|
|
uVar5 = 0;
|
|
DAT_1028_06fc = unaff_SI;
|
|
DAT_1028_06fe = unaff_DI;
|
|
DAT_1028_0700 = in_DX;
|
|
DAT_1028_0702._0_2_ = in_BX;
|
|
DAT_1028_0702._2_2_ = unaff_ES;
|
|
DAT_1028_071c = unaff_ES;
|
|
WAITEVENT();
|
|
unaff_CS = 0x1228;
|
|
iVar2 = INITAPP(0x1228,DAT_1028_06fe,uVar5);
|
|
if (iVar2 != 0) {
|
|
uVar3 = GETWINFLAGS(0x1228);
|
|
DAT_1028_0726 = 0;
|
|
if (((uVar3 & 0xc0) == 0) && (DAT_1028_0726 = 1, (uVar3 & 2) == 0)) {
|
|
DAT_1028_0726 = 2;
|
|
}
|
|
DAT_1028_0724 = 0x6c;
|
|
return;
|
|
}
|
|
}
|
|
pcVar1 = (code *)swi(0x21);
|
|
_DAT_1028_0716 = (*pcVar1)();
|
|
DAT_1028_0718 = iVar6;
|
|
if ((DAT_1028_0718 != 0 || iVar4 != 0) && (iVar4 != -1)) {
|
|
iVar4 = *(int *)0x0;
|
|
}
|
|
DAT_1028_071a = iVar4;
|
|
if (DAT_1028_071c != 0) {
|
|
FUN_1020_00d2();
|
|
}
|
|
if (DAT_1028_0718 != 0 || DAT_1028_071a != 0) {
|
|
FUN_1020_00f0();
|
|
FUN_1020_00f0();
|
|
FUN_1020_00f0();
|
|
MESSAGEBOX(unaff_CS,0x1010,0,0,0x728,0x1028);
|
|
}
|
|
pcVar1 = (code *)swi(0x21);
|
|
(*pcVar1)();
|
|
if ((int)((ulong)_DAT_1028_0712 >> 0x10) != 0 || (int)_DAT_1028_0712 != 0) {
|
|
_DAT_1028_0712 = 0;
|
|
DAT_1028_071e = 0;
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:005d FUN_1020_005d ===== */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void FUN_1020_005d(int param_1)
|
|
|
|
{
|
|
code *pcVar1;
|
|
undefined2 in_AX;
|
|
undefined2 unaff_CS;
|
|
int in_stack_00000000;
|
|
|
|
if ((in_stack_00000000 != 0 || param_1 != 0) && (param_1 != -1)) {
|
|
param_1 = *(int *)0x0;
|
|
}
|
|
_DAT_1028_0716 = in_AX;
|
|
DAT_1028_0718 = in_stack_00000000;
|
|
DAT_1028_071a = param_1;
|
|
if (DAT_1028_071c != 0) {
|
|
FUN_1020_00d2();
|
|
}
|
|
if (DAT_1028_0718 != 0 || DAT_1028_071a != 0) {
|
|
FUN_1020_00f0();
|
|
FUN_1020_00f0();
|
|
FUN_1020_00f0();
|
|
MESSAGEBOX(unaff_CS,0x1010,0,0,0x728);
|
|
}
|
|
pcVar1 = (code *)swi(0x21);
|
|
(*pcVar1)();
|
|
if ((int)((ulong)_DAT_1028_0712 >> 0x10) != 0 || (int)_DAT_1028_0712 != 0) {
|
|
_DAT_1028_0712 = 0;
|
|
DAT_1028_071e = 0;
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0061 FUN_1020_0061 ===== */
|
|
|
|
/* WARNING: Removing unreachable block (ram,0x1020006e) */
|
|
/* WARNING: Removing unreachable block (ram,0x10200073) */
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void FUN_1020_0061(void)
|
|
|
|
{
|
|
code *pcVar1;
|
|
undefined2 in_AX;
|
|
undefined2 unaff_CS;
|
|
|
|
DAT_1028_0718 = 0;
|
|
DAT_1028_071a = 0;
|
|
_DAT_1028_0716 = in_AX;
|
|
if (DAT_1028_071c != 0) {
|
|
FUN_1020_00d2();
|
|
}
|
|
if (DAT_1028_0718 != 0 || DAT_1028_071a != 0) {
|
|
FUN_1020_00f0();
|
|
FUN_1020_00f0();
|
|
FUN_1020_00f0();
|
|
MESSAGEBOX(unaff_CS,0x1010,0,0,0x728,0x1028);
|
|
}
|
|
pcVar1 = (code *)swi(0x21);
|
|
(*pcVar1)();
|
|
if ((int)((ulong)_DAT_1028_0712 >> 0x10) == 0 && (int)_DAT_1028_0712 == 0) {
|
|
return;
|
|
}
|
|
_DAT_1028_0712 = 0;
|
|
DAT_1028_071e = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:00d2 FUN_1020_00d2 ===== */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void __cdecl16near FUN_1020_00d2(void)
|
|
|
|
{
|
|
if ((int)((ulong)_DAT_1028_0712 >> 0x10) != 0 || (int)_DAT_1028_0712 != 0) {
|
|
_DAT_1028_0712 = 0;
|
|
DAT_1028_071e = 0;
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:00f0 FUN_1020_00f0 ===== */
|
|
|
|
void __cdecl16near FUN_1020_00f0(void)
|
|
|
|
{
|
|
uint in_AX;
|
|
uint uVar1;
|
|
uint in_CX;
|
|
byte bVar2;
|
|
byte *in_BX;
|
|
char cVar3;
|
|
|
|
do {
|
|
uVar1 = in_AX / in_CX;
|
|
cVar3 = (char)(in_AX % in_CX);
|
|
bVar2 = cVar3 + 0x30;
|
|
if (0x39 < bVar2) {
|
|
bVar2 = cVar3 + 0x37;
|
|
}
|
|
in_BX = in_BX + -1;
|
|
*in_BX = bVar2;
|
|
in_AX = uVar1;
|
|
} while (uVar1 != 0);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:012d FUN_1020_012d ===== */
|
|
|
|
void __stdcall16far FUN_1020_012d(void)
|
|
|
|
{
|
|
int unaff_BP;
|
|
undefined1 in_CF;
|
|
|
|
FUN_1020_01ca(0x1028,unaff_BP + 1);
|
|
if (!(bool)in_CF) {
|
|
return;
|
|
}
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0147 FUN_1020_0147 ===== */
|
|
|
|
void __stdcall16far FUN_1020_0147(void)
|
|
|
|
{
|
|
int unaff_BP;
|
|
undefined1 in_CF;
|
|
|
|
FUN_1020_02d7(0x1028,unaff_BP + 1);
|
|
if (!(bool)in_CF) {
|
|
return;
|
|
}
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0167 FUN_1020_0167 ===== */
|
|
|
|
int __cdecl16far FUN_1020_0167(void)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
|
|
iVar1 = GETFREESPACE();
|
|
iVar2 = DAT_1028_0706;
|
|
if (DAT_1028_0706 != 0) {
|
|
do {
|
|
iVar1 = iVar1 + *(int *)0x8;
|
|
iVar2 = *(int *)0xa;
|
|
} while (iVar2 != DAT_1028_0706);
|
|
}
|
|
return iVar1;
|
|
}
|
|
|
|
|
|
/* ===== 1020:01ca FUN_1020_01ca ===== */
|
|
|
|
void __cdecl16near FUN_1020_01ca(void)
|
|
|
|
{
|
|
uint uVar1;
|
|
uint in_AX;
|
|
uint uVar2;
|
|
undefined1 uVar3;
|
|
|
|
uVar1 = in_AX;
|
|
if (in_AX != 0) {
|
|
do {
|
|
DAT_1028_4d38 = uVar1;
|
|
uVar3 = DAT_1028_4d38 < DAT_1028_0708;
|
|
if ((bool)uVar3) {
|
|
FUN_1020_023c();
|
|
if (!(bool)uVar3) {
|
|
return;
|
|
}
|
|
FUN_1020_0222();
|
|
LAB_1020_0201:
|
|
if (!(bool)uVar3) {
|
|
return;
|
|
}
|
|
}
|
|
else {
|
|
FUN_1020_0222();
|
|
if (!(bool)uVar3) {
|
|
return;
|
|
}
|
|
if ((DAT_1028_0708 != 0) &&
|
|
(uVar3 = DAT_1028_4d38 < DAT_1028_070a - 0xcU, DAT_1028_4d38 <= DAT_1028_070a - 0xcU)) {
|
|
FUN_1020_023c();
|
|
goto LAB_1020_0201;
|
|
}
|
|
}
|
|
uVar2 = 0;
|
|
if (DAT_1028_070e != (code *)0x0 || DAT_1028_0710 != 0) {
|
|
uVar2 = (*DAT_1028_070e)();
|
|
}
|
|
uVar1 = DAT_1028_4d38;
|
|
} while (1 < uVar2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0222 FUN_1020_0222 ===== */
|
|
|
|
void __cdecl16near FUN_1020_0222(void)
|
|
|
|
{
|
|
undefined2 in_AX;
|
|
int iVar1;
|
|
undefined2 unaff_CS;
|
|
undefined2 uVar2;
|
|
|
|
uVar2 = DAT_1028_070c;
|
|
iVar1 = GLOBALALLOC(unaff_CS,in_AX,0);
|
|
if (iVar1 != 0) {
|
|
GLOBALLOCK(0x1228,iVar1,uVar2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:023c FUN_1020_023c ===== */
|
|
|
|
undefined2 __cdecl16near FUN_1020_023c(void)
|
|
|
|
{
|
|
uint uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 in_BX;
|
|
uint unaff_ES;
|
|
bool bVar3;
|
|
|
|
bVar3 = false;
|
|
uVar1 = DAT_1028_0706;
|
|
if (DAT_1028_0706 != 0) {
|
|
do {
|
|
unaff_ES = uVar1;
|
|
FUN_1020_02a6();
|
|
if (!bVar3) {
|
|
DAT_1028_0706 = unaff_ES;
|
|
return in_BX;
|
|
}
|
|
uVar1 = *(uint *)0xa;
|
|
bVar3 = uVar1 < DAT_1028_0706;
|
|
} while (uVar1 != DAT_1028_0706);
|
|
}
|
|
uVar2 = FUN_1020_026a();
|
|
if (!bVar3) {
|
|
uVar2 = in_BX;
|
|
FUN_1020_02a6();
|
|
DAT_1028_0706 = unaff_ES;
|
|
}
|
|
return uVar2;
|
|
}
|
|
|
|
|
|
/* ===== 1020:026a FUN_1020_026a ===== */
|
|
|
|
undefined2 __cdecl16near FUN_1020_026a(void)
|
|
|
|
{
|
|
undefined2 in_AX;
|
|
int iVar1;
|
|
undefined2 uVar2;
|
|
undefined2 extraout_DX;
|
|
undefined1 in_CF;
|
|
|
|
FUN_1020_0222();
|
|
if (!(bool)in_CF) {
|
|
*(undefined2 *)0x0 = 0x5054;
|
|
*(undefined2 *)0x2 = 0;
|
|
*(undefined2 *)0x4 = 0xc;
|
|
*(undefined2 *)0x6 = 0;
|
|
iVar1 = DAT_1028_070a + -0xc;
|
|
*(int *)0x8 = iVar1;
|
|
uVar2 = extraout_DX;
|
|
if (DAT_1028_0706 != 0) {
|
|
LOCK();
|
|
uVar2 = *(undefined2 *)0xa;
|
|
*(undefined2 *)0xa = extraout_DX;
|
|
UNLOCK();
|
|
}
|
|
*(undefined2 *)0xa = uVar2;
|
|
*(undefined2 *)0xc = 0;
|
|
*(int *)0xe = iVar1;
|
|
}
|
|
return in_AX;
|
|
}
|
|
|
|
|
|
/* ===== 1020:02a6 FUN_1020_02a6 ===== */
|
|
|
|
void __cdecl16near FUN_1020_02a6(void)
|
|
|
|
{
|
|
int *piVar1;
|
|
uint in_AX;
|
|
int iVar2;
|
|
int *piVar3;
|
|
int *piVar4;
|
|
undefined2 unaff_ES;
|
|
|
|
piVar1 = (int *)0x4;
|
|
do {
|
|
piVar3 = piVar1;
|
|
piVar1 = (int *)*piVar3;
|
|
if (piVar1 == (int *)0x0) {
|
|
return;
|
|
}
|
|
iVar2 = piVar1[1] - in_AX;
|
|
} while ((uint)piVar1[1] < in_AX);
|
|
piVar4 = (int *)*piVar1;
|
|
if (iVar2 != 0) {
|
|
piVar4 = (int *)((int)piVar1 + in_AX);
|
|
*piVar4 = *piVar1;
|
|
piVar4[1] = iVar2;
|
|
}
|
|
*piVar3 = (int)piVar4;
|
|
*(int *)0x8 = *(int *)0x8 - in_AX;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:02d7 FUN_1020_02d7 ===== */
|
|
|
|
void __cdecl16near FUN_1020_02d7(void)
|
|
|
|
{
|
|
int in_AX;
|
|
uint uVar1;
|
|
int iVar2;
|
|
uint *in_CX;
|
|
int in_BX;
|
|
uint *puVar3;
|
|
uint *puVar4;
|
|
|
|
if (in_AX == 0) {
|
|
return;
|
|
}
|
|
if (in_CX != (uint *)0x0) {
|
|
uVar1 = in_AX + 3U & 0xfffc;
|
|
if (*(int *)0x0 != 0x5054) {
|
|
return;
|
|
}
|
|
if (((uint)in_CX & 3) != 0) {
|
|
return;
|
|
}
|
|
puVar4 = (uint *)0x4;
|
|
do {
|
|
puVar3 = puVar4;
|
|
puVar4 = (uint *)*puVar3;
|
|
if (puVar4 == (uint *)0x0) goto LAB_1020_0306;
|
|
} while (puVar4 <= in_CX && in_CX != puVar4);
|
|
if (in_CX == puVar4) {
|
|
return;
|
|
}
|
|
LAB_1020_0306:
|
|
*in_CX = (uint)puVar4;
|
|
in_CX[1] = uVar1;
|
|
iVar2 = uVar1 + *(int *)0x8;
|
|
*(int *)0x8 = iVar2;
|
|
if (iVar2 + 0xc != DAT_1028_070a) {
|
|
FUN_1020_0327();
|
|
*puVar3 = (uint)in_CX;
|
|
puVar4 = (uint *)((int)puVar3 + puVar3[1]);
|
|
if (puVar4 != (uint *)*puVar3) {
|
|
return;
|
|
}
|
|
*puVar3 = *puVar4;
|
|
puVar3[1] = puVar3[1] + puVar4[1];
|
|
return;
|
|
}
|
|
iVar2 = DAT_1028_0706;
|
|
DAT_1028_0706 = 0;
|
|
if (in_BX != *(int *)0xa) {
|
|
do {
|
|
DAT_1028_0706 = iVar2;
|
|
iVar2 = *(int *)0xa;
|
|
} while (*(int *)0xa != in_BX);
|
|
*(int *)0xa = *(int *)0xa;
|
|
}
|
|
}
|
|
if ((in_BX != 0x1028) && (iVar2 = GLOBALHANDLE(), iVar2 != 0)) {
|
|
GLOBALUNLOCK(0x1228,iVar2,iVar2);
|
|
GLOBALFREE(0x1228);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0327 FUN_1020_0327 ===== */
|
|
|
|
void __cdecl16near FUN_1020_0327(void)
|
|
|
|
{
|
|
int *in_BX;
|
|
int *piVar1;
|
|
undefined2 unaff_ES;
|
|
|
|
piVar1 = (int *)((int)in_BX + in_BX[1]);
|
|
if (piVar1 == (int *)*in_BX) {
|
|
*in_BX = *piVar1;
|
|
in_BX[1] = in_BX[1] + piVar1[1];
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0388 FUN_1020_0388 ===== */
|
|
|
|
undefined2 __cdecl16far FUN_1020_0388(void)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
|
|
uVar1 = DAT_1028_071e;
|
|
LOCK();
|
|
DAT_1028_071e = 0;
|
|
UNLOCK();
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
/* ===== 1020:038f FUN_1020_038f ===== */
|
|
|
|
void __cdecl16far FUN_1020_038f(void)
|
|
|
|
{
|
|
if (DAT_1028_071e == 0) {
|
|
return;
|
|
}
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:039d FUN_1020_039d ===== */
|
|
|
|
void __cdecl16far FUN_1020_039d(void)
|
|
|
|
{
|
|
uint in_AX;
|
|
int in_DX;
|
|
uint *unaff_DI;
|
|
undefined2 in_stack_00000002;
|
|
|
|
if ((((int)unaff_DI[1] < in_DX) || (((int)unaff_DI[1] <= in_DX && (*unaff_DI <= in_AX)))) &&
|
|
((in_DX < (int)unaff_DI[3] || ((in_DX <= (int)unaff_DI[3] && (in_AX <= unaff_DI[2])))))) {
|
|
return;
|
|
}
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:03cb FUN_1020_03cb ===== */
|
|
|
|
void __cdecl16far FUN_1020_03cb(void)
|
|
|
|
{
|
|
uint in_AX;
|
|
uint uVar1;
|
|
undefined2 unaff_SS;
|
|
|
|
if (((in_AX < 0xfc00) && ((undefined1 *)(in_AX + 0x400) < &stack0x0000)) &&
|
|
(uVar1 = -((int)(in_AX + 0x400) - (int)&stack0x0000), *(uint *)0xa <= uVar1)) {
|
|
if (uVar1 < *(uint *)0xe) {
|
|
*(uint *)0xe = uVar1;
|
|
}
|
|
return;
|
|
}
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:03ef FUN_1020_03ef ===== */
|
|
|
|
/* WARNING: Unable to track spacebase fully for stack */
|
|
|
|
void __cdecl16far FUN_1020_03ef(void)
|
|
|
|
{
|
|
int iVar1;
|
|
int unaff_BP;
|
|
int unaff_DI;
|
|
undefined2 unaff_SS;
|
|
bool bVar2;
|
|
long lVar3;
|
|
|
|
iVar1 = *(int *)(unaff_BP + 10);
|
|
if (iVar1 != 0) {
|
|
lVar3 = *(long *)(unaff_BP + 6);
|
|
bVar2 = false;
|
|
if (lVar3 == 0) {
|
|
lVar3 = FUN_1020_01ca();
|
|
if (bVar2) {
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
if (lVar3 == 0) {
|
|
return;
|
|
}
|
|
*(undefined2 *)(unaff_BP + 6) = (int)lVar3;
|
|
*(undefined2 *)(unaff_BP + 8) = (int)((ulong)lVar3 >> 0x10);
|
|
}
|
|
else {
|
|
*(undefined2 *)(unaff_BP + 10) = 0;
|
|
}
|
|
*(int *)((int)lVar3 + unaff_DI) = iVar1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0439 FUN_1020_0439 ===== */
|
|
|
|
/* WARNING: Unable to track spacebase fully for stack */
|
|
|
|
void __cdecl16far FUN_1020_0439(void)
|
|
|
|
{
|
|
int unaff_BP;
|
|
undefined2 unaff_SS;
|
|
bool bVar1;
|
|
|
|
bVar1 = false;
|
|
if (*(int *)(unaff_BP + 10) != 0) {
|
|
FUN_1020_02d7(0x1028);
|
|
if (bVar1) {
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
}
|
|
*(undefined2 *)(unaff_BP + 6) = 0;
|
|
*(undefined2 *)(unaff_BP + 8) = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0527 FUN_1020_0527 ===== */
|
|
|
|
void FUN_1020_0527(void)
|
|
|
|
{
|
|
FUN_1020_0534();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:052c FUN_1020_052c ===== */
|
|
|
|
void FUN_1020_052c(void)
|
|
|
|
{
|
|
FUN_1020_0534();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0534 FUN_1020_0534 ===== */
|
|
|
|
void __stdcall16far FUN_1020_0534(undefined4 param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined2 in_DX;
|
|
int unaff_BP;
|
|
int iVar2;
|
|
int iVar3;
|
|
undefined2 uVar4;
|
|
bool bVar5;
|
|
undefined2 uVar6;
|
|
|
|
iVar2 = unaff_BP + 1;
|
|
uVar6 = 0x1028;
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar3 = (int)param_1;
|
|
iVar1 = *(int *)(iVar3 + 2);
|
|
if ((iVar1 == -0x284f) || (iVar1 == -0x284e)) {
|
|
FUN_1020_0586(iVar3,uVar4);
|
|
}
|
|
else if (iVar1 != -0x2850) {
|
|
DAT_1028_071e = 0x66;
|
|
return;
|
|
}
|
|
bVar5 = true;
|
|
*(undefined2 *)(iVar3 + 2) = in_DX;
|
|
*(undefined2 *)(iVar3 + 8) = 0;
|
|
*(undefined2 *)(iVar3 + 10) = 0;
|
|
FUN_1020_05c7(uVar6,iVar2);
|
|
if (!bVar5) {
|
|
*(undefined2 *)(iVar3 + 2) = 0xd7b0;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0586 FUN_1020_0586 ===== */
|
|
|
|
void __stdcall16far FUN_1020_0586(undefined4 param_1)
|
|
|
|
{
|
|
char cVar1;
|
|
int unaff_BP;
|
|
int iVar2;
|
|
undefined2 uVar3;
|
|
|
|
cVar1 = '\x01';
|
|
uVar3 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar2 = (int)param_1;
|
|
if (*(int *)(iVar2 + 2) != -0x284f) {
|
|
if (*(int *)(iVar2 + 2) != -0x284e) {
|
|
DAT_1028_071e = 0x67;
|
|
return;
|
|
}
|
|
cVar1 = '\x01';
|
|
FUN_1020_05c7(1,0x1028,unaff_BP + 1);
|
|
}
|
|
if (cVar1 != '\0') {
|
|
FUN_1020_05c7();
|
|
*(undefined2 *)(iVar2 + 2) = 0xd7b0;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:05c7 FUN_1020_05c7 ===== */
|
|
|
|
void __cdecl16near FUN_1020_05c7(void)
|
|
|
|
{
|
|
int iVar1;
|
|
int in_BX;
|
|
int unaff_DI;
|
|
|
|
iVar1 = (*(code *)*(undefined2 *)(in_BX + unaff_DI))();
|
|
if (iVar1 != 0) {
|
|
DAT_1028_071e = iVar1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:05d8 FUN_1020_05d8 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1020_05d8(undefined4 param_1)
|
|
|
|
{
|
|
code *pcVar1;
|
|
undefined2 uVar2;
|
|
int iVar3;
|
|
undefined2 uVar4;
|
|
undefined1 in_CF;
|
|
|
|
uVar4 = (undefined2)((ulong)param_1 >> 0x10);
|
|
iVar3 = (int)param_1;
|
|
pcVar1 = (code *)swi(0x21);
|
|
uVar2 = (*pcVar1)();
|
|
if ((bool)in_CF) {
|
|
*(undefined2 *)(iVar3 + 10) = 0;
|
|
}
|
|
else {
|
|
*(undefined2 *)(iVar3 + 10) = uVar2;
|
|
uVar2 = 0;
|
|
}
|
|
*(undefined2 *)(iVar3 + 8) = 0;
|
|
return uVar2;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0608 FUN_1020_0608 ===== */
|
|
|
|
int __stdcall16far FUN_1020_0608(undefined4 param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
code *pcVar2;
|
|
int iVar3;
|
|
int iVar4;
|
|
bool bVar5;
|
|
|
|
bVar5 = false;
|
|
LOCK();
|
|
piVar1 = (int *)((int)param_1 + 8);
|
|
iVar4 = *piVar1;
|
|
*piVar1 = 0;
|
|
UNLOCK();
|
|
pcVar2 = (code *)swi(0x21);
|
|
iVar3 = (*pcVar2)();
|
|
if ((!bVar5) && (bVar5 = iVar3 != iVar4, iVar3 = 0, bVar5)) {
|
|
iVar3 = 0x65;
|
|
}
|
|
return iVar3;
|
|
}
|
|
|
|
|
|
/* ===== 1020:062d FUN_1020_062d ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1020_062d(undefined4 param_1)
|
|
|
|
{
|
|
code *pcVar1;
|
|
undefined2 uVar2;
|
|
bool bVar3;
|
|
|
|
bVar3 = false;
|
|
LOCK();
|
|
*(undefined2 *)((int)param_1 + 8) = 0;
|
|
UNLOCK();
|
|
pcVar1 = (code *)swi(0x21);
|
|
uVar2 = (*pcVar1)();
|
|
if (!bVar3) {
|
|
uVar2 = 0;
|
|
}
|
|
return uVar2;
|
|
}
|
|
|
|
|
|
/* ===== 1020:064d FUN_1020_064d ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1020_064d(uint *param_1)
|
|
|
|
{
|
|
code *pcVar1;
|
|
undefined2 uVar2;
|
|
bool bVar3;
|
|
|
|
bVar3 = *param_1 < 4;
|
|
if (4 < *param_1) {
|
|
pcVar1 = (code *)swi(0x21);
|
|
uVar2 = (*pcVar1)();
|
|
if (bVar3) {
|
|
return uVar2;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0667 FUN_1020_0667 ===== */
|
|
|
|
void __stdcall16far FUN_1020_0667(byte *param_1,undefined2 *param_2)
|
|
|
|
{
|
|
byte *pbVar1;
|
|
byte *pbVar2;
|
|
int iVar3;
|
|
uint uVar4;
|
|
byte *pbVar5;
|
|
byte *pbVar6;
|
|
undefined2 uVar7;
|
|
|
|
uVar7 = (undefined2)((ulong)param_2 >> 0x10);
|
|
pbVar6 = (byte *)((undefined2 *)param_2 + 1);
|
|
*param_2 = 0;
|
|
pbVar6[0] = 0xb0;
|
|
pbVar6[1] = 0xd7;
|
|
for (iVar3 = 0x16; pbVar6 = pbVar6 + 2, iVar3 != 0; iVar3 = iVar3 + -1) {
|
|
pbVar6[0] = 0;
|
|
pbVar6[1] = 0;
|
|
}
|
|
uVar4 = 0x4f;
|
|
pbVar5 = (byte *)param_1 + 1;
|
|
if (0x4e < *param_1) goto LAB_1020_0697;
|
|
for (uVar4 = (uint)*param_1; uVar4 != 0; uVar4 = uVar4 - 1) {
|
|
LAB_1020_0697:
|
|
pbVar1 = pbVar5;
|
|
pbVar5 = pbVar5 + 1;
|
|
if (*pbVar1 == 0) break;
|
|
pbVar2 = pbVar6;
|
|
pbVar6 = pbVar6 + 1;
|
|
*pbVar2 = *pbVar1;
|
|
}
|
|
*pbVar6 = 0;
|
|
Ordinal_5();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:06ab FUN_1020_06ab ===== */
|
|
|
|
void __stdcall16far FUN_1020_06ab(undefined2 param_1,undefined2 *param_2)
|
|
|
|
{
|
|
code *pcVar1;
|
|
undefined2 uVar2;
|
|
undefined2 *puVar3;
|
|
undefined2 uVar4;
|
|
bool bVar5;
|
|
undefined2 in_stack_00000000;
|
|
|
|
uVar4 = (undefined2)((ulong)param_2 >> 0x10);
|
|
puVar3 = (undefined2 *)param_2;
|
|
if (puVar3[1] != -0x2850) {
|
|
if (puVar3[1] != -0x284d) {
|
|
DAT_1028_071e = 0x66;
|
|
return;
|
|
}
|
|
FUN_1020_072c(puVar3,uVar4);
|
|
}
|
|
uVar2 = 0;
|
|
if (*(char *)(puVar3 + 0x18) != '\0') {
|
|
bVar5 = false;
|
|
pcVar1 = (code *)swi(0x21);
|
|
uVar2 = (*pcVar1)();
|
|
if (bVar5) {
|
|
*(undefined2 *)&DAT_1028_071e = uVar2;
|
|
return;
|
|
}
|
|
}
|
|
puVar3[1] = 0xd7b3;
|
|
*param_2 = uVar2;
|
|
puVar3[2] = param_1;
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:072c FUN_1020_072c ===== */
|
|
|
|
void __stdcall16far FUN_1020_072c(uint *param_1)
|
|
|
|
{
|
|
code *pcVar1;
|
|
undefined2 uVar2;
|
|
bool bVar3;
|
|
undefined1 in_ZF;
|
|
|
|
FUN_1020_0751();
|
|
if ((bool)in_ZF) {
|
|
bVar3 = *param_1 < 4;
|
|
if (4 < *param_1) {
|
|
pcVar1 = (code *)swi(0x21);
|
|
uVar2 = (*pcVar1)();
|
|
if (bVar3) {
|
|
DAT_1028_071e = uVar2;
|
|
}
|
|
}
|
|
((uint *)param_1)[1] = 0xd7b0;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0751 FUN_1020_0751 ===== */
|
|
|
|
void __cdecl16near FUN_1020_0751(void)
|
|
|
|
{
|
|
int unaff_DI;
|
|
undefined2 unaff_ES;
|
|
|
|
if (*(int *)(unaff_DI + 2) != -0x284d) {
|
|
DAT_1028_071e = 0x67;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:07fe FUN_1020_07fe ===== */
|
|
|
|
void __stdcall16far FUN_1020_07fe(uint param_1,int param_2,undefined4 param_3)
|
|
|
|
{
|
|
code *pcVar1;
|
|
undefined2 uVar2;
|
|
bool bVar3;
|
|
undefined1 in_ZF;
|
|
|
|
uVar2 = (undefined2)((ulong)param_3 >> 0x10);
|
|
FUN_1020_0751();
|
|
if ((bool)in_ZF) {
|
|
bVar3 = CARRY2(param_2 * *(int *)((int)param_3 + 4),
|
|
(uint)((ulong)param_1 * (ulong)*(uint *)((int)param_3 + 4) >> 0x10));
|
|
pcVar1 = (code *)swi(0x21);
|
|
uVar2 = (*pcVar1)();
|
|
if (bVar3) {
|
|
DAT_1028_071e = uVar2;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:082e FUN_1020_082e ===== */
|
|
|
|
int __stdcall16far FUN_1020_082e(int param_1,undefined1 *param_2)
|
|
|
|
{
|
|
undefined1 *puVar1;
|
|
int iVar2;
|
|
undefined1 *in_BX;
|
|
int unaff_BP;
|
|
undefined1 *puVar3;
|
|
undefined2 uVar4;
|
|
undefined2 unaff_CS;
|
|
|
|
puVar3 = (undefined1 *)param_2;
|
|
uVar4 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if (param_1 == 0) {
|
|
param_1 = GETMODULEFILENAME(unaff_CS,0xff,puVar3 + 1,uVar4);
|
|
*param_2 = (char)param_1;
|
|
}
|
|
else {
|
|
iVar2 = FUN_1020_0871(0x1028,0x1028,unaff_BP + 1);
|
|
*param_2 = (char)iVar2;
|
|
for (; puVar3 = puVar3 + 1, iVar2 != 0; iVar2 = iVar2 + -1) {
|
|
puVar1 = in_BX;
|
|
in_BX = in_BX + 1;
|
|
*puVar3 = *puVar1;
|
|
}
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0871 FUN_1020_0871 ===== */
|
|
|
|
void __cdecl16near FUN_1020_0871(void)
|
|
|
|
{
|
|
byte *pbVar1;
|
|
int in_CX;
|
|
byte *pbVar2;
|
|
byte *pbVar3;
|
|
undefined2 uVar4;
|
|
|
|
uVar4 = (undefined2)((ulong)DAT_1028_0702 >> 0x10);
|
|
pbVar3 = (byte *)DAT_1028_0702;
|
|
LAB_1020_0876:
|
|
do {
|
|
pbVar2 = pbVar3;
|
|
pbVar1 = pbVar2;
|
|
if (*pbVar2 != 0) {
|
|
pbVar3 = pbVar2 + 1;
|
|
if (*pbVar2 < 0x21) goto LAB_1020_0876;
|
|
}
|
|
do {
|
|
pbVar3 = pbVar1;
|
|
pbVar1 = pbVar3 + 1;
|
|
} while (0x20 < *pbVar3);
|
|
if ((pbVar3 == pbVar2) || (in_CX = in_CX + -1, in_CX == 0)) {
|
|
return;
|
|
}
|
|
} while( true );
|
|
}
|
|
|
|
|
|
/* ===== 1020:0891 FUN_1020_0891 ===== */
|
|
|
|
void __stdcall16far FUN_1020_0891(int param_1,undefined1 *param_2,undefined1 *param_3)
|
|
|
|
{
|
|
undefined1 *puVar1;
|
|
undefined1 *puVar2;
|
|
undefined1 *puVar3;
|
|
undefined1 *puVar4;
|
|
|
|
puVar3 = (undefined1 *)param_3;
|
|
puVar4 = (undefined1 *)param_2;
|
|
for (; param_1 != 0; param_1 = param_1 + -1) {
|
|
puVar2 = puVar4;
|
|
puVar4 = puVar4 + 1;
|
|
puVar1 = puVar3;
|
|
puVar3 = puVar3 + 1;
|
|
*puVar2 = *puVar1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:08a9 FUN_1020_08a9 ===== */
|
|
|
|
int __cdecl16far FUN_1020_08a9(void)
|
|
|
|
{
|
|
int in_AX;
|
|
int in_CX;
|
|
|
|
if (1 < DAT_1028_0726) {
|
|
return in_AX * in_CX;
|
|
}
|
|
return in_AX * in_CX;
|
|
}
|
|
|
|
|
|
/* ===== 1020:08e6 FUN_1020_08e6 ===== */
|
|
|
|
int __cdecl16far FUN_1020_08e6(void)
|
|
|
|
{
|
|
uint uVar1;
|
|
uint in_AX;
|
|
int iVar2;
|
|
int iVar3;
|
|
uint in_CX;
|
|
uint uVar4;
|
|
uint in_DX;
|
|
uint in_BX;
|
|
int iVar5;
|
|
uint uVar6;
|
|
uint uVar7;
|
|
int iVar8;
|
|
bool bVar9;
|
|
bool bVar10;
|
|
|
|
if (1 < DAT_1028_0726) {
|
|
if (CONCAT22(in_BX,in_CX) != 0) {
|
|
return (int)(CONCAT22(in_DX,in_AX) / CONCAT22(in_BX,in_CX));
|
|
}
|
|
LAB_1020_095f:
|
|
iVar3 = FUN_1020_005d();
|
|
return iVar3;
|
|
}
|
|
bVar10 = (int)in_DX < 0;
|
|
if (bVar10) {
|
|
bVar9 = in_AX != 0;
|
|
in_AX = -in_AX;
|
|
in_DX = -(in_DX + bVar9);
|
|
}
|
|
uVar7 = (uint)bVar10;
|
|
if (in_BX == 0) {
|
|
if (in_CX == 0) goto LAB_1020_095f;
|
|
LAB_1020_0967:
|
|
iVar3 = (int)(((ulong)in_DX % (ulong)in_CX << 0x10 | (ulong)in_AX) / (ulong)in_CX);
|
|
}
|
|
else {
|
|
if ((int)in_BX < 0) {
|
|
uVar7 = uVar7 + 2;
|
|
bVar9 = in_CX != 0;
|
|
in_CX = -in_CX;
|
|
in_BX = -(in_BX + bVar9);
|
|
if (in_BX == 0) goto LAB_1020_0967;
|
|
}
|
|
iVar5 = 0;
|
|
iVar3 = 0;
|
|
iVar8 = 0x10;
|
|
do {
|
|
iVar2 = iVar3 * 2;
|
|
bVar9 = (int)in_AX < 0;
|
|
in_AX = in_AX << 1 | (uint)(iVar3 < 0);
|
|
uVar4 = in_DX << 1 | (uint)bVar9;
|
|
uVar6 = iVar5 << 1 | (uint)((int)in_DX < 0);
|
|
in_DX = uVar4 - in_CX;
|
|
uVar4 = (uint)(uVar4 < in_CX);
|
|
uVar1 = uVar6 - in_BX;
|
|
iVar5 = uVar1 - uVar4;
|
|
iVar3 = iVar2 + 1;
|
|
if (uVar6 < in_BX || uVar1 < uVar4) {
|
|
bVar9 = CARRY2(in_DX,in_CX);
|
|
in_DX = in_DX + in_CX;
|
|
iVar5 = iVar5 + in_BX + (uint)bVar9;
|
|
iVar3 = iVar2;
|
|
}
|
|
iVar8 = iVar8 + -1;
|
|
} while (iVar8 != 0);
|
|
}
|
|
uVar7 = uVar7 >> 1;
|
|
if (bVar10) {
|
|
uVar7 = uVar7 + 1;
|
|
}
|
|
if (uVar7 == 1) {
|
|
iVar3 = -iVar3;
|
|
}
|
|
return iVar3;
|
|
}
|
|
|
|
|
|
/* ===== 1020:09ec FUN_1020_09ec ===== */
|
|
|
|
void __stdcall16far FUN_1020_09ec(byte param_1,byte *param_2,byte *param_3)
|
|
|
|
{
|
|
byte bVar1;
|
|
uint uVar2;
|
|
byte *pbVar3;
|
|
byte *pbVar4;
|
|
|
|
pbVar3 = (byte *)param_3;
|
|
pbVar4 = (byte *)param_2;
|
|
bVar1 = *param_3;
|
|
if (param_1 < *param_3) {
|
|
bVar1 = param_1;
|
|
}
|
|
*param_2 = bVar1;
|
|
uVar2 = (uint)bVar1;
|
|
while( true ) {
|
|
pbVar4 = pbVar4 + 1;
|
|
pbVar3 = pbVar3 + 1;
|
|
if (uVar2 == 0) break;
|
|
uVar2 = uVar2 - 1;
|
|
*pbVar4 = *pbVar3;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0a10 FUN_1020_0a10 ===== */
|
|
|
|
void __stdcall16far FUN_1020_0a10(uint param_1,uint param_2,byte *param_3,byte *param_4)
|
|
|
|
{
|
|
byte *pbVar1;
|
|
uint uVar2;
|
|
byte *pbVar3;
|
|
byte *pbVar4;
|
|
|
|
pbVar4 = (byte *)param_4;
|
|
if ((int)param_2 < 1) {
|
|
param_2 = 1;
|
|
}
|
|
pbVar3 = (byte *)param_3 + param_2;
|
|
if (*param_3 < param_2) {
|
|
uVar2 = 0;
|
|
}
|
|
else {
|
|
uVar2 = (*param_3 - param_2) + 1;
|
|
if ((int)param_1 < 0) {
|
|
param_1 = 0;
|
|
}
|
|
if (param_1 < uVar2) {
|
|
uVar2 = param_1;
|
|
}
|
|
}
|
|
*param_4 = (byte)uVar2;
|
|
for (; pbVar4 = pbVar4 + 1, uVar2 != 0; uVar2 = uVar2 - 1) {
|
|
pbVar1 = pbVar3;
|
|
pbVar3 = pbVar3 + 1;
|
|
*pbVar4 = *pbVar1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0a51 FUN_1020_0a51 ===== */
|
|
|
|
void __stdcall16far FUN_1020_0a51(byte *param_1,byte *param_2)
|
|
|
|
{
|
|
byte bVar1;
|
|
byte bVar2;
|
|
byte bVar3;
|
|
uint uVar4;
|
|
byte *pbVar5;
|
|
byte *pbVar6;
|
|
|
|
pbVar5 = (byte *)param_1;
|
|
bVar2 = *param_2;
|
|
bVar3 = *param_1;
|
|
bVar1 = *param_2;
|
|
*param_2 = *param_2 + bVar3;
|
|
if (CARRY1(bVar1,bVar3)) {
|
|
*param_2 = 0xff;
|
|
bVar3 = ~bVar2;
|
|
}
|
|
pbVar6 = (byte *)param_2 + bVar2;
|
|
uVar4 = (uint)bVar3;
|
|
while( true ) {
|
|
pbVar6 = pbVar6 + 1;
|
|
pbVar5 = pbVar5 + 1;
|
|
if (uVar4 == 0) break;
|
|
uVar4 = uVar4 - 1;
|
|
*pbVar6 = *pbVar5;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0a7d FUN_1020_0a7d ===== */
|
|
|
|
byte * __stdcall16far FUN_1020_0a7d(byte *param_1,byte *param_2)
|
|
|
|
{
|
|
byte *pbVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
uint uVar4;
|
|
byte *pbVar5;
|
|
byte *pbVar6;
|
|
byte *pbVar7;
|
|
undefined2 uVar8;
|
|
undefined2 uVar9;
|
|
bool bVar10;
|
|
|
|
uVar9 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if (*param_2 != 0) {
|
|
uVar4 = (uint)*param_2;
|
|
uVar8 = (undefined2)((ulong)param_1 >> 0x10);
|
|
if (uVar4 <= *param_1) {
|
|
iVar2 = (*param_1 - uVar4) + 1;
|
|
pbVar7 = (byte *)param_1 + 1;
|
|
pbVar6 = pbVar7;
|
|
do {
|
|
pbVar5 = (byte *)param_2 + 1;
|
|
bVar10 = pbVar6 == (byte *)0x0;
|
|
do {
|
|
if (iVar2 == 0) break;
|
|
iVar2 = iVar2 + -1;
|
|
pbVar1 = pbVar7;
|
|
pbVar7 = pbVar7 + 1;
|
|
bVar10 = *pbVar5 == *pbVar1;
|
|
} while (!bVar10);
|
|
if (!bVar10) {
|
|
return (byte *)0x0;
|
|
}
|
|
iVar3 = uVar4 - 1;
|
|
bVar10 = iVar3 == 0;
|
|
pbVar6 = pbVar7;
|
|
do {
|
|
pbVar5 = pbVar5 + 1;
|
|
if (iVar3 == 0) break;
|
|
iVar3 = iVar3 + -1;
|
|
pbVar1 = pbVar6;
|
|
pbVar6 = pbVar6 + 1;
|
|
bVar10 = *pbVar5 == *pbVar1;
|
|
} while (bVar10);
|
|
if (bVar10) {
|
|
return pbVar7 + (-1 - (int)(byte *)param_1);
|
|
}
|
|
pbVar6 = (byte *)param_2 + 1;
|
|
} while( true );
|
|
}
|
|
}
|
|
return (byte *)0x0;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0ac3 FUN_1020_0ac3 ===== */
|
|
|
|
void __stdcall16far FUN_1020_0ac3(byte *param_1,byte *param_2)
|
|
|
|
{
|
|
byte bVar1;
|
|
uint uVar2;
|
|
byte *pbVar3;
|
|
byte *pbVar4;
|
|
|
|
pbVar3 = (byte *)param_2;
|
|
pbVar4 = (byte *)param_1;
|
|
bVar1 = *param_2;
|
|
if (*param_1 < *param_2) {
|
|
bVar1 = *param_1;
|
|
}
|
|
if (bVar1 != 0) {
|
|
uVar2 = (uint)bVar1;
|
|
do {
|
|
pbVar4 = pbVar4 + 1;
|
|
pbVar3 = pbVar3 + 1;
|
|
if (uVar2 == 0) {
|
|
return;
|
|
}
|
|
uVar2 = uVar2 - 1;
|
|
} while (*pbVar3 == *pbVar4);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0b00 FUN_1020_0b00 ===== */
|
|
|
|
void __stdcall16far FUN_1020_0b00(int param_1,undefined1 *param_2,undefined1 *param_3)
|
|
|
|
{
|
|
undefined1 *puVar1;
|
|
undefined1 *puVar2;
|
|
undefined1 *puVar3;
|
|
|
|
puVar3 = (undefined1 *)param_3;
|
|
puVar2 = (undefined1 *)param_2;
|
|
*param_3 = (char)param_1;
|
|
for (; puVar3 = puVar3 + 1, param_1 != 0; param_1 = param_1 + -1) {
|
|
puVar1 = puVar2;
|
|
puVar2 = puVar2 + 1;
|
|
*puVar3 = *puVar1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0b1b FUN_1020_0b1b ===== */
|
|
|
|
void __stdcall16far
|
|
FUN_1020_0b1b(int param_1,undefined2 param_2,undefined4 param_3,undefined4 param_4)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 unaff_SS;
|
|
undefined1 *puVar3;
|
|
undefined1 *puVar4;
|
|
undefined2 uVar5;
|
|
undefined1 local_202 [256];
|
|
undefined1 local_102 [256];
|
|
|
|
if (param_1 < 1) {
|
|
param_1 = 1;
|
|
}
|
|
puVar4 = local_102;
|
|
uVar2 = (undefined2)((ulong)param_3 >> 0x10);
|
|
uVar1 = (undefined2)param_3;
|
|
uVar5 = unaff_SS;
|
|
FUN_1020_0a10(param_1 + -1,1,uVar1,uVar2);
|
|
FUN_1020_0a51((int)param_4,(int)((ulong)param_4 >> 0x10));
|
|
puVar3 = local_202;
|
|
FUN_1020_0a10(0xff,param_1,uVar1,uVar2);
|
|
FUN_1020_0a51(puVar3,unaff_SS);
|
|
FUN_1020_09ec(param_2,uVar1,uVar2,puVar4,uVar5);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0b7a FUN_1020_0b7a ===== */
|
|
|
|
void __stdcall16far FUN_1020_0b7a(int param_1,int param_2,undefined4 param_3)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
undefined2 uVar2;
|
|
undefined2 unaff_SS;
|
|
undefined1 *puVar3;
|
|
undefined1 *puVar4;
|
|
undefined2 uVar5;
|
|
undefined1 local_202 [256];
|
|
undefined1 local_102 [256];
|
|
|
|
if (((0 < param_1) && (0 < param_2)) && (param_2 < 0x100)) {
|
|
if (0xff < param_1) {
|
|
param_1 = 0xff;
|
|
}
|
|
puVar4 = local_102;
|
|
uVar2 = (undefined2)((ulong)param_3 >> 0x10);
|
|
uVar1 = (undefined2)param_3;
|
|
uVar5 = unaff_SS;
|
|
FUN_1020_0a10(param_2 + -1,1,uVar1,uVar2);
|
|
puVar3 = local_202;
|
|
FUN_1020_0a10(0xff,param_2 + param_1,uVar1,uVar2);
|
|
FUN_1020_0a51(puVar3,unaff_SS);
|
|
FUN_1020_09ec(0xff,uVar1,uVar2,puVar4,uVar5);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0be9 FUN_1020_0be9 ===== */
|
|
|
|
int __stdcall16far FUN_1020_0be9(int *param_1)
|
|
|
|
{
|
|
code *pcVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
uint extraout_DX;
|
|
int iVar4;
|
|
int *piVar5;
|
|
undefined2 uVar6;
|
|
bool bVar7;
|
|
|
|
uVar6 = (undefined2)((ulong)param_1 >> 0x10);
|
|
piVar5 = (int *)param_1;
|
|
*param_1 = 0;
|
|
if (piVar5[1] != -0x284f) {
|
|
*param_1 = *param_1 + 1;
|
|
}
|
|
bVar7 = false;
|
|
if ((char)piVar5[0x18] != '\0') {
|
|
pcVar1 = (code *)swi(0x21);
|
|
iVar2 = (*pcVar1)();
|
|
if (bVar7) {
|
|
return iVar2;
|
|
}
|
|
*param_1 = iVar2;
|
|
}
|
|
iVar2 = 0x5d8;
|
|
iVar3 = 0;
|
|
iVar4 = 0;
|
|
if (piVar5[1] != -0x284f) {
|
|
pcVar1 = (code *)swi(0x21);
|
|
(*pcVar1)();
|
|
iVar2 = 0x62d;
|
|
iVar3 = 0x62d;
|
|
iVar4 = 0x1020;
|
|
if ((extraout_DX & 0x80) == 0) {
|
|
if (piVar5[1] == -0x284d) {
|
|
FUN_1020_0c76();
|
|
}
|
|
iVar2 = 0x608;
|
|
iVar3 = 0;
|
|
iVar4 = 0;
|
|
}
|
|
piVar5[1] = -0x284e;
|
|
}
|
|
piVar5[10] = iVar2;
|
|
piVar5[0xb] = 0x1020;
|
|
piVar5[0xc] = iVar3;
|
|
piVar5[0xd] = iVar4;
|
|
piVar5[0xe] = 0x64d;
|
|
piVar5[0xf] = 0x1020;
|
|
return 0;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0c76 FUN_1020_0c76 ===== */
|
|
|
|
void __cdecl16near FUN_1020_0c76(void)
|
|
|
|
{
|
|
bool bVar1;
|
|
code *pcVar2;
|
|
int iVar3;
|
|
int iVar4;
|
|
int unaff_DI;
|
|
undefined1 uVar5;
|
|
undefined4 uVar6;
|
|
|
|
pcVar2 = (code *)swi(0x21);
|
|
uVar6 = (*pcVar2)();
|
|
bVar1 = (uint)((ulong)uVar6 >> 0x10) < (uint)((uint)uVar6 < 0x80);
|
|
uVar5 = !bVar1 && bVar1;
|
|
pcVar2 = (code *)swi(0x21);
|
|
(*pcVar2)();
|
|
pcVar2 = (code *)swi(0x21);
|
|
iVar3 = (*pcVar2)();
|
|
if ((bool)uVar5) {
|
|
iVar3 = 0;
|
|
}
|
|
iVar4 = 0;
|
|
while( true ) {
|
|
if (iVar4 == iVar3) {
|
|
return;
|
|
}
|
|
if (*(char *)(iVar4 + unaff_DI + 0x80) == '\x1a') break;
|
|
iVar4 = iVar4 + 1;
|
|
}
|
|
pcVar2 = (code *)swi(0x21);
|
|
(*pcVar2)();
|
|
pcVar2 = (code *)swi(0x21);
|
|
(*pcVar2)();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0cd0 FUN_1020_0cd0 ===== */
|
|
|
|
undefined4 FUN_1020_0cd0(void)
|
|
|
|
{
|
|
uint uVar1;
|
|
byte bVar2;
|
|
uint in_AX;
|
|
uint uVar3;
|
|
uint uVar4;
|
|
char cVar5;
|
|
uint in_CX;
|
|
uint uVar6;
|
|
uint in_DX;
|
|
uint uVar7;
|
|
uint in_BX;
|
|
uint uVar8;
|
|
uint uVar9;
|
|
uint unaff_SI;
|
|
uint unaff_DI;
|
|
uint uVar10;
|
|
uint uVar11;
|
|
bool bVar12;
|
|
bool bVar13;
|
|
undefined4 uVar14;
|
|
|
|
uVar10 = unaff_DI ^ 0x8000;
|
|
if ((byte)in_CX != 0) {
|
|
if ((byte)in_AX == 0) {
|
|
LAB_1020_0d54:
|
|
return CONCAT22(uVar10,in_CX);
|
|
}
|
|
uVar4 = in_AX;
|
|
uVar7 = in_DX;
|
|
uVar8 = in_BX;
|
|
if ((byte)in_CX < (byte)in_AX) {
|
|
uVar4 = in_CX;
|
|
in_CX = in_AX;
|
|
uVar7 = uVar10;
|
|
uVar8 = unaff_SI;
|
|
unaff_SI = in_BX;
|
|
uVar10 = in_DX;
|
|
}
|
|
bVar2 = -((char)uVar4 - (char)in_CX);
|
|
if (0x28 < bVar2) goto LAB_1020_0d54;
|
|
uVar3 = CONCAT11((char)(uVar7 >> 8),(char)in_CX) & 0x80ff;
|
|
uVar4 = uVar4 & 0xff00;
|
|
uVar7 = uVar7 | 0x8000;
|
|
uVar11 = uVar10 | 0x8000;
|
|
for (; 7 < bVar2; bVar2 = bVar2 - 8) {
|
|
uVar4 = CONCAT11((char)uVar8,(char)(uVar4 >> 8));
|
|
uVar8 = CONCAT11((char)uVar7,(char)(uVar8 >> 8));
|
|
uVar7 = uVar7 >> 8;
|
|
}
|
|
uVar6 = CONCAT11((char)(in_CX >> 8),bVar2);
|
|
while (bVar2 != 0) {
|
|
uVar1 = uVar7 & 1;
|
|
uVar7 = uVar7 >> 1;
|
|
uVar9 = uVar8 & 1;
|
|
uVar8 = uVar8 >> 1 | (uint)(uVar1 != 0) << 0xf;
|
|
uVar4 = uVar4 >> 1 | (uint)(uVar9 != 0) << 0xf;
|
|
bVar2 = (char)uVar6 - 1;
|
|
uVar6 = CONCAT11((char)(uVar6 >> 8),bVar2);
|
|
}
|
|
if ((int)(uVar3 ^ uVar10) < 0) {
|
|
in_AX = uVar4 - uVar6;
|
|
uVar9 = (uVar8 - unaff_SI) - (uint)(uVar4 < uVar6);
|
|
uVar10 = (uint)(uVar8 < unaff_SI || uVar8 - unaff_SI < (uint)(uVar4 < uVar6));
|
|
in_DX = (uVar7 - uVar11) - uVar10;
|
|
if (uVar7 < uVar11 || uVar7 - uVar11 < uVar10) {
|
|
uVar10 = ~uVar9;
|
|
bVar12 = in_AX == 0;
|
|
in_AX = -in_AX;
|
|
uVar9 = uVar10 + bVar12;
|
|
in_DX = ~in_DX + (uint)CARRY2(uVar10,(uint)bVar12);
|
|
uVar3 = uVar3 ^ 0x8000;
|
|
}
|
|
if ((in_DX == 0 && uVar9 == 0) && in_AX == 0) goto LAB_1020_0d53;
|
|
while (-1 < (int)in_DX) {
|
|
bVar12 = (int)in_AX < 0;
|
|
in_AX = in_AX << 1;
|
|
bVar13 = (int)uVar9 < 0;
|
|
uVar9 = uVar9 << 1 | (uint)bVar12;
|
|
in_DX = in_DX << 1 | (uint)bVar13;
|
|
cVar5 = (char)uVar3 + -1;
|
|
uVar3 = CONCAT11((char)(uVar3 >> 8),cVar5);
|
|
if (cVar5 == '\0') {
|
|
uVar14 = FUN_1020_0e93();
|
|
return uVar14;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
in_AX = uVar4 + uVar6;
|
|
uVar9 = uVar8 + unaff_SI + (uint)CARRY2(uVar4,uVar6);
|
|
uVar10 = (uint)(CARRY2(uVar8,unaff_SI) || CARRY2(uVar8 + unaff_SI,(uint)CARRY2(uVar4,uVar6)));
|
|
uVar4 = uVar7 + uVar11;
|
|
in_DX = uVar4 + uVar10;
|
|
if (CARRY2(uVar7,uVar11) || CARRY2(uVar4,uVar10)) {
|
|
uVar8 = in_DX & 1;
|
|
in_DX = in_DX >> 1 | (uint)(CARRY2(uVar7,uVar11) || CARRY2(uVar4,uVar10)) << 0xf;
|
|
uVar10 = uVar9 & 1;
|
|
uVar9 = uVar9 >> 1 | (uint)(uVar8 != 0) << 0xf;
|
|
in_AX = in_AX >> 1 | (uint)(uVar10 != 0) << 0xf;
|
|
cVar5 = (char)uVar3 + '\x01';
|
|
uVar3 = CONCAT11((char)(uVar3 >> 8),cVar5);
|
|
if (cVar5 == '\0') goto LAB_1020_0d61;
|
|
}
|
|
}
|
|
bVar12 = 0xff7f < in_AX;
|
|
in_AX = in_AX + 0x80;
|
|
uVar10 = (uint)CARRY2(uVar9,(uint)bVar12);
|
|
bVar12 = CARRY2(in_DX,uVar10);
|
|
in_DX = in_DX + uVar10;
|
|
if (bVar12) {
|
|
in_DX = in_DX >> 1 | 0x8000;
|
|
cVar5 = (char)uVar3 + '\x01';
|
|
uVar3 = CONCAT11((char)(uVar3 >> 8),cVar5);
|
|
if (cVar5 == '\0') {
|
|
LAB_1020_0d61:
|
|
return CONCAT22(in_DX,in_AX);
|
|
}
|
|
}
|
|
in_AX = CONCAT11((char)(in_AX >> 8),(char)uVar3);
|
|
in_DX = CONCAT11((byte)((in_DX & 0x7fff) >> 8) | (byte)(uVar3 >> 8),(char)(in_DX & 0x7fff));
|
|
}
|
|
LAB_1020_0d53:
|
|
return CONCAT22(in_DX,in_AX);
|
|
}
|
|
|
|
|
|
/* ===== 1020:0cd4 FUN_1020_0cd4 ===== */
|
|
|
|
undefined4 __cdecl16near FUN_1020_0cd4(void)
|
|
|
|
{
|
|
uint uVar1;
|
|
byte bVar2;
|
|
uint in_AX;
|
|
uint uVar3;
|
|
uint uVar4;
|
|
char cVar5;
|
|
uint in_CX;
|
|
uint uVar6;
|
|
uint in_DX;
|
|
uint uVar7;
|
|
uint in_BX;
|
|
uint uVar8;
|
|
uint uVar9;
|
|
uint unaff_SI;
|
|
uint unaff_DI;
|
|
uint uVar10;
|
|
bool bVar11;
|
|
bool bVar12;
|
|
undefined4 uVar13;
|
|
|
|
if ((byte)in_CX != 0) {
|
|
if ((byte)in_AX == 0) {
|
|
LAB_1020_0d54:
|
|
return CONCAT22(unaff_DI,in_CX);
|
|
}
|
|
uVar4 = in_AX;
|
|
uVar7 = in_DX;
|
|
uVar8 = in_BX;
|
|
if ((byte)in_CX < (byte)in_AX) {
|
|
uVar4 = in_CX;
|
|
in_CX = in_AX;
|
|
uVar7 = unaff_DI;
|
|
uVar8 = unaff_SI;
|
|
unaff_SI = in_BX;
|
|
unaff_DI = in_DX;
|
|
}
|
|
bVar2 = -((char)uVar4 - (char)in_CX);
|
|
if (0x28 < bVar2) goto LAB_1020_0d54;
|
|
uVar3 = CONCAT11((char)(uVar7 >> 8),(char)in_CX) & 0x80ff;
|
|
uVar4 = uVar4 & 0xff00;
|
|
uVar7 = uVar7 | 0x8000;
|
|
uVar10 = unaff_DI | 0x8000;
|
|
for (; 7 < bVar2; bVar2 = bVar2 - 8) {
|
|
uVar4 = CONCAT11((char)uVar8,(char)(uVar4 >> 8));
|
|
uVar8 = CONCAT11((char)uVar7,(char)(uVar8 >> 8));
|
|
uVar7 = uVar7 >> 8;
|
|
}
|
|
uVar6 = CONCAT11((char)(in_CX >> 8),bVar2);
|
|
while (bVar2 != 0) {
|
|
uVar1 = uVar7 & 1;
|
|
uVar7 = uVar7 >> 1;
|
|
uVar9 = uVar8 & 1;
|
|
uVar8 = uVar8 >> 1 | (uint)(uVar1 != 0) << 0xf;
|
|
uVar4 = uVar4 >> 1 | (uint)(uVar9 != 0) << 0xf;
|
|
bVar2 = (char)uVar6 - 1;
|
|
uVar6 = CONCAT11((char)(uVar6 >> 8),bVar2);
|
|
}
|
|
if ((int)(uVar3 ^ unaff_DI) < 0) {
|
|
in_AX = uVar4 - uVar6;
|
|
uVar9 = (uVar8 - unaff_SI) - (uint)(uVar4 < uVar6);
|
|
uVar4 = (uint)(uVar8 < unaff_SI || uVar8 - unaff_SI < (uint)(uVar4 < uVar6));
|
|
in_DX = (uVar7 - uVar10) - uVar4;
|
|
if (uVar7 < uVar10 || uVar7 - uVar10 < uVar4) {
|
|
uVar7 = ~uVar9;
|
|
bVar11 = in_AX == 0;
|
|
in_AX = -in_AX;
|
|
uVar9 = uVar7 + bVar11;
|
|
in_DX = ~in_DX + (uint)CARRY2(uVar7,(uint)bVar11);
|
|
uVar3 = uVar3 ^ 0x8000;
|
|
}
|
|
if ((in_DX == 0 && uVar9 == 0) && in_AX == 0) goto LAB_1020_0d53;
|
|
while (-1 < (int)in_DX) {
|
|
bVar11 = (int)in_AX < 0;
|
|
in_AX = in_AX << 1;
|
|
bVar12 = (int)uVar9 < 0;
|
|
uVar9 = uVar9 << 1 | (uint)bVar11;
|
|
in_DX = in_DX << 1 | (uint)bVar12;
|
|
cVar5 = (char)uVar3 + -1;
|
|
uVar3 = CONCAT11((char)(uVar3 >> 8),cVar5);
|
|
if (cVar5 == '\0') {
|
|
uVar13 = FUN_1020_0e93();
|
|
return uVar13;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
in_AX = uVar4 + uVar6;
|
|
uVar9 = uVar8 + unaff_SI + (uint)CARRY2(uVar4,uVar6);
|
|
uVar4 = (uint)(CARRY2(uVar8,unaff_SI) || CARRY2(uVar8 + unaff_SI,(uint)CARRY2(uVar4,uVar6)));
|
|
uVar8 = uVar7 + uVar10;
|
|
in_DX = uVar8 + uVar4;
|
|
if (CARRY2(uVar7,uVar10) || CARRY2(uVar8,uVar4)) {
|
|
uVar6 = in_DX & 1;
|
|
in_DX = in_DX >> 1 | (uint)(CARRY2(uVar7,uVar10) || CARRY2(uVar8,uVar4)) << 0xf;
|
|
uVar7 = uVar9 & 1;
|
|
uVar9 = uVar9 >> 1 | (uint)(uVar6 != 0) << 0xf;
|
|
in_AX = in_AX >> 1 | (uint)(uVar7 != 0) << 0xf;
|
|
cVar5 = (char)uVar3 + '\x01';
|
|
uVar3 = CONCAT11((char)(uVar3 >> 8),cVar5);
|
|
if (cVar5 == '\0') goto LAB_1020_0d61;
|
|
}
|
|
}
|
|
bVar11 = 0xff7f < in_AX;
|
|
in_AX = in_AX + 0x80;
|
|
uVar7 = (uint)CARRY2(uVar9,(uint)bVar11);
|
|
bVar11 = CARRY2(in_DX,uVar7);
|
|
in_DX = in_DX + uVar7;
|
|
if (bVar11) {
|
|
in_DX = in_DX >> 1 | 0x8000;
|
|
cVar5 = (char)uVar3 + '\x01';
|
|
uVar3 = CONCAT11((char)(uVar3 >> 8),cVar5);
|
|
if (cVar5 == '\0') {
|
|
LAB_1020_0d61:
|
|
return CONCAT22(in_DX,in_AX);
|
|
}
|
|
}
|
|
in_AX = CONCAT11((char)(in_AX >> 8),(char)uVar3);
|
|
in_DX = CONCAT11((byte)((in_DX & 0x7fff) >> 8) | (byte)(uVar3 >> 8),(char)(in_DX & 0x7fff));
|
|
}
|
|
LAB_1020_0d53:
|
|
return CONCAT22(in_DX,in_AX);
|
|
}
|
|
|
|
|
|
/* ===== 1020:0d97 FUN_1020_0d97 ===== */
|
|
|
|
undefined4 __cdecl16near FUN_1020_0d97(void)
|
|
|
|
{
|
|
long lVar1;
|
|
long lVar2;
|
|
ulong uVar3;
|
|
long lVar4;
|
|
byte bVar5;
|
|
undefined2 in_AX;
|
|
byte bVar7;
|
|
uint uVar6;
|
|
byte bVar8;
|
|
uint in_CX;
|
|
int iVar9;
|
|
uint in_DX;
|
|
uint uVar10;
|
|
uint uVar11;
|
|
uint uVar12;
|
|
uint uVar13;
|
|
uint uVar14;
|
|
uint in_BX;
|
|
uint uVar15;
|
|
uint uVar16;
|
|
uint uVar17;
|
|
uint uVar18;
|
|
uint uVar19;
|
|
uint uVar20;
|
|
uint unaff_SI;
|
|
uint unaff_DI;
|
|
uint uVar21;
|
|
uint uVar22;
|
|
uint uVar23;
|
|
bool bVar24;
|
|
undefined4 uVar25;
|
|
|
|
bVar5 = (byte)in_AX;
|
|
bVar7 = (byte)((uint)in_AX >> 8);
|
|
if ((bVar5 == 0) || (bVar8 = (byte)in_CX, bVar8 == 0)) {
|
|
uVar25 = FUN_1020_0e93();
|
|
return uVar25;
|
|
}
|
|
iVar9 = CONCAT11((((byte)(in_DX >> 8) ^ (byte)(unaff_DI >> 8)) & 0x80) + CARRY1(bVar5,bVar8),
|
|
bVar5 + bVar8);
|
|
bVar5 = (byte)(in_CX >> 8);
|
|
uVar20 = in_DX | 0x8000;
|
|
uVar21 = unaff_DI | 0x8000;
|
|
if (((bVar7 == 0) &&
|
|
(uVar6 = in_CX & 0xff00, uVar14 = uVar20, uVar10 = unaff_SI, uVar22 = uVar21, in_BX == 0)) ||
|
|
((bVar5 == 0 &&
|
|
(uVar6 = (uint)bVar7 << 8, uVar14 = uVar21, uVar10 = in_BX, uVar22 = uVar20, unaff_SI == 0))))
|
|
{
|
|
uVar3 = (ulong)uVar10 * (ulong)uVar14 + ((ulong)uVar6 * (ulong)uVar14 >> 0x10);
|
|
uVar15 = (uint)uVar3;
|
|
lVar1 = (ulong)uVar22 * (ulong)uVar14 + (uVar3 >> 0x10);
|
|
}
|
|
else {
|
|
lVar1 = (ulong)bVar7 * 0x100 * (ulong)unaff_SI;
|
|
lVar4 = lVar1 + (ulong)((uint)bVar7 * (uint)bVar5);
|
|
uVar22 = (uint)((ulong)lVar4 >> 0x10);
|
|
lVar2 = (ulong)in_BX * (ulong)bVar5 * 0x100;
|
|
uVar10 = (uint)((ulong)lVar2 >> 0x10);
|
|
uVar6 = (uint)CARRY2((uint)lVar4,(uint)lVar2);
|
|
uVar14 = uVar22 + uVar10;
|
|
uVar15 = uVar14 + uVar6;
|
|
uVar16 = (uint)CARRY2((uint)((ulong)lVar1 >> 0x10),
|
|
(uint)CARRY2((uint)bVar7 * (uint)bVar5,(uint)lVar1)) +
|
|
(uint)(CARRY2(uVar22,uVar10) || CARRY2(uVar14,uVar6));
|
|
lVar1 = (ulong)bVar7 * 0x100 * (ulong)uVar21;
|
|
uVar11 = (uint)((ulong)lVar1 >> 0x10);
|
|
uVar6 = (uint)lVar1;
|
|
uVar23 = uVar15 + uVar6;
|
|
uVar6 = (uint)CARRY2(uVar15,uVar6);
|
|
uVar22 = uVar16 + uVar11;
|
|
uVar17 = uVar22 + uVar6;
|
|
uVar12 = (uint)((ulong)in_BX * (ulong)unaff_SI >> 0x10);
|
|
uVar10 = (uint)((ulong)in_BX * (ulong)unaff_SI);
|
|
uVar14 = (uint)CARRY2(uVar23,uVar10);
|
|
uVar15 = uVar17 + uVar12;
|
|
uVar18 = uVar15 + uVar14;
|
|
lVar1 = (ulong)uVar20 * (ulong)bVar5 * 0x100;
|
|
uVar13 = (uint)((ulong)lVar1 >> 0x10);
|
|
uVar10 = (uint)CARRY2(uVar23 + uVar10,(uint)lVar1);
|
|
uVar23 = uVar18 + uVar13;
|
|
uVar19 = uVar23 + uVar10;
|
|
uVar12 = (uint)(CARRY2(uVar16,uVar11) || CARRY2(uVar22,uVar6)) +
|
|
(uint)(CARRY2(uVar17,uVar12) || CARRY2(uVar15,uVar14)) +
|
|
(uint)(CARRY2(uVar18,uVar13) || CARRY2(uVar23,uVar10));
|
|
uVar23 = (uint)((ulong)in_BX * (ulong)uVar21 >> 0x10);
|
|
uVar6 = (uint)((ulong)in_BX * (ulong)uVar21);
|
|
uVar22 = uVar19 + uVar6;
|
|
uVar6 = (uint)CARRY2(uVar19,uVar6);
|
|
uVar10 = uVar12 + uVar23;
|
|
uVar13 = uVar10 + uVar6;
|
|
uVar11 = (uint)((ulong)uVar20 * (ulong)unaff_SI >> 0x10);
|
|
uVar14 = (uint)((ulong)uVar20 * (ulong)unaff_SI);
|
|
uVar15 = uVar22 + uVar14;
|
|
uVar14 = (uint)CARRY2(uVar22,uVar14);
|
|
uVar22 = uVar13 + uVar11;
|
|
lVar1 = (ulong)uVar20 * (ulong)uVar21 +
|
|
CONCAT22((uint)(CARRY2(uVar12,uVar23) || CARRY2(uVar10,uVar6)) +
|
|
(uint)(CARRY2(uVar13,uVar11) || CARRY2(uVar22,uVar14)),uVar22 + uVar14);
|
|
}
|
|
if (-1 < lVar1) {
|
|
bVar24 = (int)uVar15 < 0;
|
|
uVar15 = uVar15 << 1;
|
|
lVar1 = CONCAT22((int)((ulong)lVar1 >> 0x10) << 1 | (uint)((int)lVar1 < 0),
|
|
(int)lVar1 << 1 | (uint)bVar24);
|
|
iVar9 = iVar9 + -1;
|
|
}
|
|
uVar6 = (uint)((ulong)lVar1 >> 0x10);
|
|
uVar21 = iVar9 + 0x7f7f;
|
|
uVar20 = (uint)CARRY2((uint)lVar1,(uint)(0xff7f < uVar15));
|
|
uVar14 = uVar6 + uVar20;
|
|
if (CARRY2(uVar6,uVar20)) {
|
|
uVar14 = uVar14 >> 1 | 0x8000;
|
|
uVar21 = iVar9 + 0x7f80;
|
|
}
|
|
if ((uVar21 & 0x4000) != 0) {
|
|
return 0;
|
|
}
|
|
return CONCAT22(CONCAT11((byte)(uVar14 >> 8) ^ (byte)(uVar21 + 1 >> 8),(char)uVar14),
|
|
CONCAT11((char)(uVar15 + 0x80 >> 8),(char)(uVar21 + 1)));
|
|
}
|
|
|
|
|
|
/* ===== 1020:0e93 FUN_1020_0e93 ===== */
|
|
|
|
void __cdecl16near FUN_1020_0e93(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0e9a FUN_1020_0e9a ===== */
|
|
|
|
undefined4 __cdecl16near FUN_1020_0e9a(void)
|
|
|
|
{
|
|
byte bVar1;
|
|
undefined1 uVar2;
|
|
char cVar3;
|
|
undefined2 in_AX;
|
|
int iVar4;
|
|
byte bVar5;
|
|
undefined2 in_CX;
|
|
byte bVar7;
|
|
uint uVar6;
|
|
uint in_DX;
|
|
char cVar9;
|
|
uint uVar8;
|
|
uint in_BX;
|
|
uint uVar10;
|
|
uint unaff_BP;
|
|
uint uVar11;
|
|
uint unaff_SI;
|
|
uint unaff_DI;
|
|
uint uVar12;
|
|
bool bVar13;
|
|
bool bVar14;
|
|
int in_stack_00000000;
|
|
|
|
bVar1 = (byte)in_AX;
|
|
if (bVar1 == 0) {
|
|
return 0;
|
|
}
|
|
uVar12 = unaff_DI | 0x8000;
|
|
uVar11 = in_DX | 0x8000;
|
|
cVar9 = (((byte)(in_DX >> 8) ^ (byte)(unaff_DI >> 8)) & 0x80) - (bVar1 < (byte)in_CX);
|
|
iVar4 = CONCAT11((char)((uint)in_AX >> 8),2);
|
|
uVar8 = 1;
|
|
do {
|
|
bVar13 = uVar11 < uVar12;
|
|
bVar7 = (byte)((uint)in_CX >> 8);
|
|
bVar5 = (byte)((uint)iVar4 >> 8);
|
|
if ((uVar11 == uVar12) && (bVar13 = in_BX < unaff_SI, in_BX == unaff_SI)) {
|
|
bVar13 = bVar5 < bVar7;
|
|
}
|
|
if (!bVar13) {
|
|
iVar4 = CONCAT11(bVar5 - bVar7,(char)iVar4);
|
|
bVar13 = in_BX < unaff_SI;
|
|
uVar10 = in_BX - unaff_SI;
|
|
in_BX = uVar10 - (bVar5 < bVar7);
|
|
uVar10 = (uint)(bVar13 || uVar10 < (bVar5 < bVar7));
|
|
bVar13 = uVar11 < uVar12 || uVar11 - uVar12 < uVar10;
|
|
uVar11 = (uVar11 - uVar12) - uVar10;
|
|
}
|
|
while( true ) {
|
|
bVar14 = (int)uVar8 < 0;
|
|
uVar8 = uVar8 << 1 | (uint)bVar13;
|
|
if (bVar14) {
|
|
cVar3 = (char)iVar4 + -1;
|
|
iVar4 = CONCAT11((char)((uint)iVar4 >> 8),cVar3);
|
|
if (cVar3 < '\0') {
|
|
uVar11 = ~(uVar8 << 6);
|
|
uVar10 = ~CONCAT11(cVar9,bVar1 - (byte)in_CX);
|
|
uVar12 = unaff_BP ^ 0xffff;
|
|
if (-1 < (int)uVar12) {
|
|
uVar11 = uVar11 << 1;
|
|
uVar10 = uVar10 << 1 | (uint)(-1 < (int)(uVar8 << 6));
|
|
uVar12 = uVar12 << 1 | (uint)(-1 < cVar9);
|
|
in_stack_00000000 = in_stack_00000000 + -1;
|
|
}
|
|
uVar6 = in_stack_00000000 + 0x8080;
|
|
uVar8 = (uint)CARRY2(uVar10,(uint)(0xff7f < uVar11));
|
|
uVar10 = uVar12 + uVar8;
|
|
if (CARRY2(uVar12,uVar8)) {
|
|
uVar10 = uVar10 >> 1 | 0x8000;
|
|
uVar6 = in_stack_00000000 + 0x8081;
|
|
}
|
|
if ((uVar6 & 0x4000) != 0) {
|
|
return 0;
|
|
}
|
|
return CONCAT22(CONCAT11((byte)(uVar10 >> 8) ^ (byte)(uVar6 + 1 >> 8),(char)uVar10),
|
|
CONCAT11((char)(uVar11 + 0x80 >> 8),(char)(uVar6 + 1)));
|
|
}
|
|
uVar8 = 1;
|
|
if (cVar3 == '\0') {
|
|
uVar8 = 0x40;
|
|
}
|
|
}
|
|
bVar13 = iVar4 < 0;
|
|
uVar2 = (undefined1)iVar4;
|
|
bVar5 = (char)((uint)iVar4 >> 8) * '\x02';
|
|
iVar4 = CONCAT11(bVar5,uVar2);
|
|
bVar14 = (int)in_BX < 0;
|
|
in_BX = in_BX << 1 | (uint)bVar13;
|
|
bVar13 = -1 < (int)uVar11;
|
|
uVar11 = uVar11 << 1 | (uint)bVar14;
|
|
if (bVar13) break;
|
|
iVar4 = CONCAT11(bVar5 - bVar7,uVar2);
|
|
bVar13 = in_BX < unaff_SI;
|
|
uVar10 = in_BX - unaff_SI;
|
|
in_BX = uVar10 - (bVar5 < bVar7);
|
|
uVar11 = (uVar11 - uVar12) - (uint)(bVar13 || uVar10 < (bVar5 < bVar7));
|
|
bVar13 = false;
|
|
}
|
|
} while( true );
|
|
}
|
|
|
|
|
|
/* ===== 1020:0f11 FUN_1020_0f11 ===== */
|
|
|
|
void __cdecl16near FUN_1020_0f11(void)
|
|
|
|
{
|
|
uint in_DX;
|
|
uint unaff_DI;
|
|
bool bVar1;
|
|
|
|
if ((int)(in_DX ^ unaff_DI) < 0) {
|
|
return;
|
|
}
|
|
bVar1 = (in_DX & 0x8000) == 0;
|
|
if ((!bVar1) && (FUN_1020_0f28(), !bVar1)) {
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0f28 FUN_1020_0f28 ===== */
|
|
|
|
void __cdecl16near FUN_1020_0f28(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0f3b FUN_1020_0f3b ===== */
|
|
|
|
void __cdecl16near FUN_1020_0f3b(void)
|
|
|
|
{
|
|
uint uVar1;
|
|
uint in_AX;
|
|
uint in_DX;
|
|
bool bVar2;
|
|
|
|
if (in_AX != 0 || in_DX != 0) {
|
|
if ((int)in_DX < 0) {
|
|
bVar2 = in_AX != 0;
|
|
in_AX = -in_AX;
|
|
in_DX = -(uint)bVar2 - in_DX;
|
|
}
|
|
uVar1 = in_AX;
|
|
if ((in_DX == 0) && (uVar1 = 0, in_DX = in_AX, (char)(in_AX >> 8) == '\0')) {
|
|
in_DX = in_AX << 8;
|
|
}
|
|
while (-1 < (int)in_DX) {
|
|
in_DX = in_DX * 2 + (uint)CARRY2(uVar1,uVar1);
|
|
uVar1 = uVar1 * 2;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0f77 FUN_1020_0f77 ===== */
|
|
|
|
void __cdecl16near FUN_1020_0f77(void)
|
|
|
|
{
|
|
byte in_AL;
|
|
byte bVar1;
|
|
|
|
bVar1 = -in_AL + 0xa0;
|
|
if (in_AL < 0xa1) {
|
|
if (bVar1 < 0x20) {
|
|
if (0xf < bVar1) {
|
|
bVar1 = -in_AL + 0x90;
|
|
}
|
|
if (7 < bVar1) {
|
|
bVar1 = bVar1 - 8;
|
|
}
|
|
for (; bVar1 != 0; bVar1 = bVar1 - 1) {
|
|
}
|
|
}
|
|
else if (bVar1 != 0x20) {
|
|
return;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0fe5 FUN_1020_0fe5 ===== */
|
|
|
|
void __cdecl16far FUN_1020_0fe5(void)
|
|
|
|
{
|
|
undefined1 in_CF;
|
|
|
|
FUN_1020_0cd4();
|
|
if (!(bool)in_CF) {
|
|
return;
|
|
}
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0feb FUN_1020_0feb ===== */
|
|
|
|
void __cdecl16far FUN_1020_0feb(void)
|
|
|
|
{
|
|
undefined1 in_CF;
|
|
|
|
FUN_1020_0cd0();
|
|
if (!(bool)in_CF) {
|
|
return;
|
|
}
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0ff1 FUN_1020_0ff1 ===== */
|
|
|
|
void FUN_1020_0ff1(void)
|
|
|
|
{
|
|
undefined1 in_CF;
|
|
|
|
FUN_1020_0d97();
|
|
if (!(bool)in_CF) {
|
|
return;
|
|
}
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0ff7 FUN_1020_0ff7 ===== */
|
|
|
|
void __cdecl16far FUN_1020_0ff7(void)
|
|
|
|
{
|
|
undefined1 in_CF;
|
|
|
|
FUN_1020_0d97();
|
|
if (!(bool)in_CF) {
|
|
return;
|
|
}
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:0ffd FUN_1020_0ffd ===== */
|
|
|
|
void __cdecl16far FUN_1020_0ffd(void)
|
|
|
|
{
|
|
char in_CL;
|
|
bool bVar1;
|
|
|
|
bVar1 = false;
|
|
if (in_CL == '\0') {
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
FUN_1020_0e9a();
|
|
if (!bVar1) {
|
|
return;
|
|
}
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:1007 FUN_1020_1007 ===== */
|
|
|
|
void __cdecl16far FUN_1020_1007(void)
|
|
|
|
{
|
|
FUN_1020_0f11();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:100b FUN_1020_100b ===== */
|
|
|
|
void __cdecl16far FUN_1020_100b(void)
|
|
|
|
{
|
|
FUN_1020_0f3b();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:1017 FUN_1020_1017 ===== */
|
|
|
|
void __cdecl16far FUN_1020_1017(void)
|
|
|
|
{
|
|
undefined1 in_CF;
|
|
|
|
FUN_1020_0f77();
|
|
if (!(bool)in_CF) {
|
|
return;
|
|
}
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:1031 FUN_1020_1031 ===== */
|
|
|
|
void __cdecl16near FUN_1020_1031(void)
|
|
|
|
{
|
|
FUN_1020_0cd4();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:104f FUN_1020_104f ===== */
|
|
|
|
void __cdecl16near FUN_1020_104f(void)
|
|
|
|
{
|
|
FUN_1020_0e9a();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:10be FUN_1020_10be ===== */
|
|
|
|
uint __cdecl16far FUN_1020_10be(void)
|
|
|
|
{
|
|
char cVar1;
|
|
byte bVar2;
|
|
uint in_AX;
|
|
uint uVar3;
|
|
uint in_DX;
|
|
undefined2 in_BX;
|
|
undefined2 uVar4;
|
|
undefined4 uVar5;
|
|
|
|
cVar1 = (char)in_AX;
|
|
if (cVar1 != '\0') {
|
|
if ((in_DX & 0x8000) != 0) {
|
|
uVar3 = FUN_1020_005d();
|
|
return uVar3;
|
|
}
|
|
do {
|
|
uVar4 = in_BX;
|
|
FUN_1020_104f();
|
|
uVar5 = FUN_1020_1031();
|
|
in_AX = (uint)(byte)((char)uVar5 - 1);
|
|
bVar2 = FUN_1020_0cd0(in_AX,uVar4,(int)((ulong)uVar5 >> 0x10));
|
|
} while ((byte)(((char)(cVar1 + -0x80) >> 1) + 0x6cU) <= bVar2);
|
|
}
|
|
return in_AX;
|
|
}
|
|
|
|
|
|
/* ===== 1020:14a4 FUN_1020_14a4 ===== */
|
|
|
|
int __stdcall16far FUN_1020_14a4(uint param_1)
|
|
|
|
{
|
|
long lVar1;
|
|
ulong uVar2;
|
|
|
|
uVar2 = FUN_1020_1501();
|
|
lVar1 = (uVar2 >> 0x10) * (ulong)param_1;
|
|
return (int)((ulong)lVar1 >> 0x10) +
|
|
(uint)CARRY2((uint)lVar1,(uint)((uVar2 & 0xffff) * (ulong)param_1 >> 0x10));
|
|
}
|
|
|
|
|
|
/* ===== 1020:14c1 FUN_1020_14c1 ===== */
|
|
|
|
char __cdecl16far FUN_1020_14c1(void)
|
|
|
|
{
|
|
char cVar1;
|
|
int iVar2;
|
|
ulong uVar3;
|
|
|
|
uVar3 = FUN_1020_1501();
|
|
cVar1 = -0x80;
|
|
iVar2 = 0x20;
|
|
do {
|
|
if ((uVar3 & 0x80000000) != 0) {
|
|
return cVar1;
|
|
}
|
|
uVar3 = CONCAT22((int)(uVar3 >> 0x10) << 1 | (uint)((int)uVar3 < 0),(int)uVar3 << 1);
|
|
cVar1 = cVar1 + -1;
|
|
iVar2 = iVar2 + -1;
|
|
} while (iVar2 != 0);
|
|
return '\0';
|
|
}
|
|
|
|
|
|
/* ===== 1020:1501 FUN_1020_1501 ===== */
|
|
|
|
void __cdecl16near FUN_1020_1501(void)
|
|
|
|
{
|
|
uint uVar1;
|
|
char cVar2;
|
|
int iVar3;
|
|
|
|
uVar1 = (uint)((ulong)DAT_1028_0720 * (ulong)DAT_1020_1537);
|
|
cVar2 = (char)(DAT_1028_0720 << 3);
|
|
iVar3 = (int)((ulong)DAT_1028_0720 * (ulong)DAT_1020_1537 >> 0x10) +
|
|
CONCAT11((char)((DAT_1028_0720 << 3) >> 8) + cVar2,cVar2) + DAT_1028_0722 * 5;
|
|
DAT_1028_0720 = uVar1 + 1;
|
|
DAT_1028_0722 =
|
|
CONCAT11((char)((uint)iVar3 >> 8) + (char)DAT_1028_0722 * '\x04' + (char)(DAT_1028_0722 << 7)
|
|
,(char)iVar3) + (uint)(0xfffe < uVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:1546 FUN_1020_1546 ===== */
|
|
|
|
void __cdecl16near FUN_1020_1546(void)
|
|
|
|
{
|
|
ulong uVar1;
|
|
uint in_AX;
|
|
byte bVar2;
|
|
uint in_DX;
|
|
byte *unaff_DI;
|
|
undefined2 unaff_ES;
|
|
char cVar3;
|
|
|
|
if ((int)in_DX < 0) {
|
|
FUN_1020_1562();
|
|
unaff_DI[-1] = 0x2d;
|
|
return;
|
|
}
|
|
do {
|
|
uVar1 = (ulong)in_DX;
|
|
in_DX = in_DX / 10;
|
|
uVar1 = uVar1 % 10 << 0x10 | (ulong)in_AX;
|
|
in_AX = (uint)(uVar1 / 10);
|
|
cVar3 = (char)(uVar1 % 10);
|
|
bVar2 = cVar3 + 0x30;
|
|
if (0x39 < bVar2) {
|
|
bVar2 = cVar3 + 0x37;
|
|
}
|
|
unaff_DI = unaff_DI + -1;
|
|
*unaff_DI = bVar2;
|
|
} while (in_AX != 0 || in_DX != 0);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:1562 FUN_1020_1562 ===== */
|
|
|
|
void __cdecl16near FUN_1020_1562(void)
|
|
|
|
{
|
|
ulong uVar1;
|
|
uint in_AX;
|
|
byte bVar2;
|
|
uint in_BX;
|
|
uint unaff_SI;
|
|
byte *unaff_DI;
|
|
undefined2 unaff_ES;
|
|
char cVar3;
|
|
|
|
do {
|
|
uVar1 = (ulong)in_BX;
|
|
in_BX = in_BX / unaff_SI;
|
|
uVar1 = uVar1 % (ulong)unaff_SI << 0x10 | (ulong)in_AX;
|
|
in_AX = (uint)(uVar1 / unaff_SI);
|
|
cVar3 = (char)(uVar1 % (ulong)unaff_SI);
|
|
bVar2 = cVar3 + 0x30;
|
|
if (0x39 < bVar2) {
|
|
bVar2 = cVar3 + 0x37;
|
|
}
|
|
unaff_DI = unaff_DI + -1;
|
|
*unaff_DI = bVar2;
|
|
} while (in_AX != 0 || in_BX != 0);
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:1582 FUN_1020_1582 ===== */
|
|
|
|
undefined4 __cdecl16near FUN_1020_1582(void)
|
|
|
|
{
|
|
int iVar1;
|
|
uint uVar2;
|
|
int iVar3;
|
|
uint uVar4;
|
|
int in_CX;
|
|
uint uVar5;
|
|
uint uVar6;
|
|
byte bVar7;
|
|
byte bVar8;
|
|
uint uVar9;
|
|
char cVar10;
|
|
uint uVar11;
|
|
byte *unaff_DI;
|
|
undefined2 unaff_ES;
|
|
bool bVar12;
|
|
bool bVar13;
|
|
|
|
iVar1 = 0;
|
|
uVar5 = 0;
|
|
uVar11 = 0;
|
|
if (in_CX == 0) goto LAB_1020_15e7;
|
|
if (*unaff_DI == 0x2b) {
|
|
LAB_1020_1597:
|
|
unaff_DI = unaff_DI + 1;
|
|
in_CX = in_CX + -1;
|
|
if (in_CX == 0) goto LAB_1020_15e7;
|
|
}
|
|
else if (*unaff_DI == 0x2d) {
|
|
uVar11 = 0xffff;
|
|
goto LAB_1020_1597;
|
|
}
|
|
if (*unaff_DI != 0x24) {
|
|
do {
|
|
uVar9 = (uint)(byte)(*unaff_DI - 0x30);
|
|
if ((byte)(*unaff_DI - 0x3a) < 0xf6) break;
|
|
if ((uVar5 & 0xf000) != 0) goto LAB_1020_15e7;
|
|
uVar2 = iVar1 * 2;
|
|
uVar6 = uVar5 << 1 | (uint)(iVar1 < 0);
|
|
iVar3 = iVar1 << 2;
|
|
uVar4 = iVar1 * 8;
|
|
uVar5 = iVar1 * 10;
|
|
iVar1 = uVar5 + uVar9;
|
|
uVar5 = ((uVar6 << 1 | (uint)((int)uVar2 < 0)) << 1 | (uint)(iVar3 < 0)) + uVar6 +
|
|
(uint)CARRY2(uVar4,uVar2) + (uint)CARRY2(uVar5,uVar9);
|
|
unaff_DI = unaff_DI + 1;
|
|
in_CX = in_CX + -1;
|
|
} while (in_CX != 0);
|
|
LAB_1020_15d1:
|
|
if (iVar1 != 0 || uVar5 != 0) {
|
|
if ((int)uVar11 < 0) {
|
|
bVar12 = iVar1 != 0;
|
|
iVar1 = -iVar1;
|
|
uVar5 = -(uint)bVar12 - uVar5;
|
|
}
|
|
if ((int)(uVar11 ^ uVar5) < 0) goto LAB_1020_15e7;
|
|
}
|
|
return CONCAT22(uVar5,iVar1);
|
|
}
|
|
iVar3 = in_CX + -1;
|
|
if (iVar3 != 0) {
|
|
do {
|
|
unaff_DI = unaff_DI + 1;
|
|
bVar7 = *unaff_DI;
|
|
if (0x60 < bVar7) {
|
|
bVar7 = bVar7 - 0x20;
|
|
}
|
|
bVar8 = bVar7 - 0x30;
|
|
if ((byte)(bVar7 - 0x3a) < 0xf6) {
|
|
if ((byte)(bVar7 + 0xb9) < 0xfa) goto LAB_1020_15d1;
|
|
bVar8 = bVar7 - 0x37;
|
|
}
|
|
cVar10 = '\x04';
|
|
do {
|
|
bVar12 = iVar1 < 0;
|
|
iVar1 = iVar1 << 1;
|
|
bVar13 = (int)uVar5 < 0;
|
|
uVar5 = uVar5 << 1 | (uint)bVar12;
|
|
if (bVar13) goto LAB_1020_15e7;
|
|
cVar10 = cVar10 + -1;
|
|
} while (cVar10 != '\0');
|
|
iVar1 = CONCAT11((char)((uint)iVar1 >> 8),(byte)iVar1 | bVar8);
|
|
iVar3 = iVar3 + -1;
|
|
if (iVar3 == 0) {
|
|
if ((int)uVar11 < 0) {
|
|
bVar12 = iVar1 != 0;
|
|
iVar1 = -iVar1;
|
|
uVar5 = -(uint)bVar12 - uVar5;
|
|
}
|
|
return CONCAT22(uVar5,iVar1);
|
|
}
|
|
} while( true );
|
|
}
|
|
LAB_1020_15e7:
|
|
return CONCAT22(uVar5,iVar1);
|
|
}
|
|
|
|
|
|
/* ===== 1020:1629 FUN_1020_1629 ===== */
|
|
|
|
void __stdcall16far FUN_1020_1629(int param_1,undefined1 *param_2,int param_3)
|
|
|
|
{
|
|
undefined1 *puVar1;
|
|
int in_CX;
|
|
undefined1 *puVar2;
|
|
undefined1 *puVar3;
|
|
undefined2 uVar4;
|
|
undefined2 unaff_SS;
|
|
|
|
FUN_1020_1546();
|
|
uVar4 = (undefined2)((ulong)param_2 >> 0x10);
|
|
if (param_1 < param_3) {
|
|
param_3 = param_1;
|
|
}
|
|
if (param_1 < in_CX) {
|
|
in_CX = param_1;
|
|
}
|
|
if (param_3 < in_CX) {
|
|
param_3 = in_CX;
|
|
}
|
|
puVar3 = (undefined1 *)param_2 + 1;
|
|
*param_2 = (char)param_3;
|
|
param_3 = param_3 - in_CX;
|
|
puVar2 = &stack0xfffe;
|
|
if (param_3 != 0) {
|
|
for (; puVar2 = &stack0xfffe, param_3 != 0; param_3 = param_3 + -1) {
|
|
puVar1 = puVar3;
|
|
puVar3 = puVar3 + 1;
|
|
*puVar1 = 0x20;
|
|
}
|
|
}
|
|
for (; in_CX != 0; in_CX = in_CX + -1) {
|
|
puVar1 = puVar3;
|
|
puVar3 = puVar3 + 1;
|
|
*puVar1 = *puVar2;
|
|
puVar2 = puVar2 + 1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:1674 FUN_1020_1674 ===== */
|
|
|
|
undefined2 __stdcall16far FUN_1020_1674(int *param_1,byte *param_2)
|
|
|
|
{
|
|
undefined2 uVar1;
|
|
uint uVar2;
|
|
int iVar3;
|
|
byte *pbVar4;
|
|
bool bVar5;
|
|
|
|
bVar5 = false;
|
|
uVar2 = (uint)*param_2;
|
|
pbVar4 = (byte *)param_2;
|
|
while ((pbVar4 = pbVar4 + 1, uVar2 != 0 && (bVar5 = *pbVar4 < 0x20, *pbVar4 == 0x20))) {
|
|
uVar2 = uVar2 - 1;
|
|
}
|
|
uVar1 = FUN_1020_1582();
|
|
if ((bVar5) || (iVar3 = 0, uVar2 != 0)) {
|
|
iVar3 = (int)pbVar4 - (int)(byte *)param_2;
|
|
uVar1 = 0;
|
|
}
|
|
*param_1 = iVar3;
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
/* ===== 1020:16a5 FUN_1020_16a5 ===== */
|
|
|
|
void __stdcall16far FUN_1020_16a5(int param_1,undefined1 *param_2,undefined1 *param_3)
|
|
|
|
{
|
|
undefined1 *puVar1;
|
|
undefined1 *puVar2;
|
|
undefined1 *puVar3;
|
|
undefined1 *puVar4;
|
|
byte bVar5;
|
|
|
|
puVar3 = (undefined1 *)param_3;
|
|
puVar4 = (undefined1 *)param_2;
|
|
bVar5 = 0;
|
|
if (puVar3 < puVar4) {
|
|
puVar3 = puVar3 + param_1 + -1;
|
|
puVar4 = puVar4 + param_1 + -1;
|
|
bVar5 = 1;
|
|
}
|
|
for (; param_1 != 0; param_1 = param_1 + -1) {
|
|
puVar2 = puVar4;
|
|
puVar4 = puVar4 + (uint)bVar5 * -2 + 1;
|
|
puVar1 = puVar3;
|
|
puVar3 = puVar3 + (uint)bVar5 * -2 + 1;
|
|
*puVar2 = *puVar1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:16c9 FUN_1020_16c9 ===== */
|
|
|
|
void __stdcall16far FUN_1020_16c9(undefined1 param_1,int param_2,undefined1 *param_3)
|
|
|
|
{
|
|
undefined1 *puVar1;
|
|
undefined1 *puVar2;
|
|
|
|
puVar2 = (undefined1 *)param_3;
|
|
for (; param_2 != 0; param_2 = param_2 + -1) {
|
|
puVar1 = puVar2;
|
|
puVar2 = puVar2 + 1;
|
|
*puVar1 = param_1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:16e1 FUN_1020_16e1 ===== */
|
|
|
|
void FUN_1020_16e1(void)
|
|
|
|
{
|
|
uint *unaff_DI;
|
|
|
|
FUN_1020_16e6();
|
|
/* WARNING: Could not recover jumptable at 0x102016e4. Too many branches */
|
|
/* WARNING: Treating indirect jump as call */
|
|
(*(code *)(ulong)*unaff_DI)();
|
|
return;
|
|
}
|
|
|
|
|
|
/* ===== 1020:16e6 FUN_1020_16e6 ===== */
|
|
|
|
void __cdecl16near FUN_1020_16e6(void)
|
|
|
|
{
|
|
int *piVar1;
|
|
int *piVar2;
|
|
int iVar3;
|
|
int in_AX;
|
|
int iVar4;
|
|
int *piVar5;
|
|
int unaff_DI;
|
|
int *piVar6;
|
|
bool bVar7;
|
|
|
|
piVar2 = (int *)*(int *)(unaff_DI + 4);
|
|
piVar5 = piVar2;
|
|
if (in_AX == piVar2[1]) {
|
|
return;
|
|
}
|
|
do {
|
|
bVar7 = false;
|
|
iVar3 = piVar5[3];
|
|
piVar6 = piVar5 + 4;
|
|
iVar4 = iVar3;
|
|
do {
|
|
if (iVar4 == 0) break;
|
|
iVar4 = iVar4 + -1;
|
|
piVar1 = piVar6;
|
|
piVar6 = piVar6 + 1;
|
|
bVar7 = in_AX == *piVar1;
|
|
} while (!bVar7);
|
|
if (bVar7) {
|
|
piVar2[1] = in_AX;
|
|
piVar2[2] = (int)(piVar6 + ((iVar3 + -1) * 2 - iVar4));
|
|
return;
|
|
}
|
|
piVar1 = piVar5;
|
|
piVar5 = (int *)*piVar1;
|
|
if ((int *)*piVar1 == (int *)0x0) {
|
|
FUN_1020_005d();
|
|
return;
|
|
}
|
|
} while( true );
|
|
}
|
|
|
|
|
|
/* SUMMARY: total=655 internal=363 external=292 succeeded=363 failed=0 */
|