From 778ec712bf2b2d9dae4212fdb310eb189177420b Mon Sep 17 00:00:00 2001 From: Richard Burgess <> Date: Thu, 9 Feb 1995 11:16:50 +0000 Subject: [PATCH] autocommit for file dated 1995-02-09 11:16:50 --- ossource/jobc.asm | 2360 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2360 insertions(+) create mode 100644 ossource/jobc.asm diff --git a/ossource/jobc.asm b/ossource/jobc.asm new file mode 100644 index 0000000..01e080b --- /dev/null +++ b/ossource/jobc.asm @@ -0,0 +1,2360 @@ + +.DATA +EXTRN _AllocExch FWORD +EXTRN _DeAllocExch FWORD +EXTRN _GetTSSExch FWORD +EXTRN _SetPriority FWORD +EXTRN _NewTask FWORD +EXTRN _SpawnTask FWORD +EXTRN _SendMsg FWORD +EXTRN _ISendMsg FWORD +EXTRN _WaitMsg FWORD +EXTRN _CheckMsg FWORD +EXTRN _Request FWORD +EXTRN _MoveRequest FWORD +EXTRN _Respond FWORD +EXTRN _AllocPage FWORD +EXTRN _AllocOSPage FWORD +EXTRN _AllocDMAPage FWORD +EXTRN _DeAllocPage FWORD +EXTRN _QueryPages FWORD +EXTRN _GetPhyAdd FWORD +EXTRN _AliasMem FWORD +EXTRN _DeAliasMem FWORD +EXTRN _CopyData FWORD +EXTRN _FillData FWORD +EXTRN _CompareNCS FWORD +EXTRN _Compare FWORD +EXTRN _OutByte FWORD +EXTRN _OutWord FWORD +EXTRN _InByte FWORD +EXTRN _InWord FWORD +EXTRN _ReadCMOS FWORD +EXTRN _Alarm FWORD +EXTRN _KillAlarm FWORD +EXTRN _Sleep FWORD +EXTRN _MicroDelay FWORD +EXTRN _GetCMOSTime FWORD +EXTRN _GetCMOSDate FWORD +EXTRN _GetTimerTick FWORD +EXTRN _Tone FWORD +EXTRN _Beep FWORD +EXTRN _SetVidOwner FWORD +EXTRN _SetNormVid FWORD +EXTRN _GetNormVid FWORD +EXTRN _ClrScr FWORD +EXTRN _GetVidChar FWORD +EXTRN _SetXY FWORD +EXTRN _PutVidAttrs FWORD +EXTRN _PutVidChars FWORD +EXTRN _GetVidOwner FWORD +EXTRN _GetXY FWORD +EXTRN _ScrollVid FWORD +EXTRN _TTYOut FWORD +EXTRN _EditLine FWORD +EXTRN _ReadKbd FWORD +EXTRN _GetpJCB FWORD +EXTRN _GetJobNum FWORD +EXTRN _LoadNewJob FWORD +EXTRN _Chain FWORD +EXTRN _ExitJob FWORD +EXTRN _KillJob FWORD +EXTRN _SetUserName FWORD +EXTRN _GetUserName FWORD +EXTRN _SetCmdLine FWORD +EXTRN _GetCmdLine FWORD +EXTRN _SetPath FWORD +EXTRN _GetPath FWORD +EXTRN _SetExitJob FWORD +EXTRN _GetExitJob FWORD +EXTRN _SetSysIn FWORD +EXTRN _GetSysIn FWORD +EXTRN _SetSysOut FWORD +EXTRN _GetSysOut FWORD +EXTRN _SetJobName FWORD +EXTRN _RegisterSvc FWORD +EXTRN _UnRegisterSvc FWORD +EXTRN _GetSystemDisk FWORD +EXTRN _CreateFile FWORD +EXTRN _CreateDir FWORD +EXTRN _DeleteDir FWORD +EXTRN _OpenFile FWORD +EXTRN _RenameFile FWORD +EXTRN _GetFileSize FWORD +EXTRN _SetFileSize FWORD +EXTRN _ReadBlock FWORD +EXTRN _WriteBlock FWORD +EXTRN _ReadBytes FWORD +EXTRN _WriteBytes FWORD +EXTRN _GetFileLFA FWORD +EXTRN _SetFileLFA FWORD +EXTRN _CloseFile FWORD +EXTRN _DeleteFile FWORD +EXTRN _GetDirSector FWORD +_offCode DD 0 +_offData DD 0 +_nCDFIX DD 0 +_oCDFIX DD 0 +_nCCFIX DD 0 +_oCCFIX DD 0 +_nDDFIX DD 0 +_oDDFIX DD 0 +_nDCFIX DD 0 +_oDCFIX DD 0 +EXTRN _KillExch DD +L_lit DB 75,66,68,0,86,73,68,0 +_TmpStack DD 128 DUP(0) +_pNewJCB DD 0h +_pTmpJCB DD 0h +_pCrntJCB DD 0h +_JobNum DD 0h +_JobNumE DD 0h +_job_fhE DD 0h +_ExchE DD 0h +_ercE DD 0h +_iE DD 0h +_BogusMsg DD 2 DUP(0) +_pPDE DD 0h +_pExchJCBE DD 0h +_KeyCodeE DD 0h +_aFileE DB 80 DUP(0) +_cbFileE DD 0h +_pCode DD 0h +_pData DD 0h +_pStack DD 0h +_sCode DD 0h +_sData DD 0h +_sStack DD 0h +_oCode DD 0h +_oData DD 0h +_pStart DD 0h +_filetype DB 0h +_tag DB 5 DUP(0) + + +.CODE +EXTRN _AllocJCB: NEAR +EXTRN _RemoveRdyJob: NEAR +EXTRN _GetExchOwner: NEAR +EXTRN _SetExchOwner: NEAR +EXTRN _SendAbort: NEAR +EXTRN _xprintf: NEAR +EXTRN _Dump: NEAR +_CleanUserPD: + PUSH EBP + MOV EBP,ESP + SUB ESP,24 + MOV EAX,768 + MOV DWORD PTR [EBP-4], EAX +L_1: + MOV EAX,DWORD PTR [EBP-4] + CMP EAX,1024 + SETL AL + AND AL,AL + JZ L_2 + JMP SHORT L_3 +L_4: + MOV EAX,DWORD PTR [EBP-4] + INC DWORD PTR [EBP-4] + JMP SHORT L_1 +L_3: + MOV EAX,DWORD PTR [EBP-4] + SHL EAX,2 + MOV ESI,DWORD PTR [EBP+8] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] + AND EAX,EAX + JZ L_5 + MOV EAX,DWORD PTR [EBP-4] + SHL EAX,2 + MOV ESI,DWORD PTR [EBP+8] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] + AND EAX,-4096 + MOV DWORD PTR [EBP-20], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX +L_6: + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,1024 + SETL AL + AND AL,AL + JZ L_7 + JMP SHORT L_8 +L_9: + MOV EAX,DWORD PTR [EBP-8] + INC DWORD PTR [EBP-8] + JMP SHORT L_6 +L_8: + XOR EAX,EAX + MOV DWORD PTR [EBP-12], EAX + MOV EAX,DWORD PTR [EBP-4] + SUB EAX,512 + MOV ECX,4194304 + IMUL ECX + MOV EBX,EAX + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,4096 + IMUL ECX + ADD EAX,EBX + MOV DWORD PTR [EBP-24], EAX +L_10: + MOV EAX,DWORD PTR [EBP-8] + INC DWORD PTR [EBP-8] + SHL EAX,2 + MOV ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] + AND EAX,EAX + JZ L_12 + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,1024 + SETL AL + AND AL,AL +L_12: + JZ L_11 + MOV EAX,DWORD PTR [EBP-12] + INC DWORD PTR [EBP-12] + JMP L_10 +L_11: + MOV EAX,DWORD PTR [EBP-12] + AND EAX,EAX + JZ L_13 + PUSH DWORD PTR [EBP-24] + PUSH DWORD PTR [EBP-12] + CALL FWORD PTR _DeAllocPage + MOV DWORD PTR [EBP-16], EAX +L_13: + JMP L_9 +L_7: +L_5: + JMP L_4 +L_2: + MOV ESP,EBP + POP EBP + RETN 4 +_GetRunFile: + PUSH EBP + MOV EBP,ESP + SUB ESP,18 + XOR EAX,EAX + MOV _offCode, EAX + XOR EAX,EAX + MOV _offData, EAX + XOR EAX,EAX + MOV _nCDFIX, EAX + XOR EAX,EAX + MOV _oCDFIX, EAX + XOR EAX,EAX + MOV _nCCFIX, EAX + XOR EAX,EAX + MOV _oCCFIX, EAX + XOR EAX,EAX + MOV _nDDFIX, EAX + XOR EAX,EAX + MOV _oDDFIX, EAX + XOR EAX,EAX + MOV _nDCFIX, EAX + XOR EAX,EAX + MOV _oDCFIX, EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-12], EAX + MOV ESI,DWORD PTR [EBP+8] + XOR EAX,EAX + MOV DWORD PTR [ESI], EAX + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP+12] + XOR EAX,EAX + PUSH EAX + PUSH 1 + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + CALL FWORD PTR _OpenFile + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_14 + XOR EAX,EAX + MOV BYTE PTR [EBP-17], AL +L_15: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL + JZ L_17 + MOVSX EAX,BYTE PTR [EBP-17] + AND EAX,EAX + SETZ AL + AND AL,AL +L_17: + JZ L_16 + MOV ESI,OFFSET _tag + XOR EAX,EAX + MOV BYTE PTR [ESI], AL + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _tag + PUSH 5 + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX + MOV ESI,OFFSET _tag + XOR EAX,EAX + MOV AL,BYTE PTR [ESI] + JMP L_19 +L_20: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _filetype + PUSH 1 + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX + MOVSX EAX,_filetype + CMP EAX,1 + SETL AL + AND AL,AL + JNZ L_21 + MOVSX EAX,_filetype + CMP EAX,3 + SETG AL + AND AL,AL +L_21: + JZ L_22 + MOV EAX,30074 + MOV DWORD PTR [EBP-4], EAX +L_22: + JMP L_18 +L_23: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _sStack + PUSH 4 + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_24 + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _sCode + PUSH 4 + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX +L_24: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_25 + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _sData + PUSH 4 + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX +L_25: + JMP L_18 +L_26: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _offData + PUSH 4 + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX + JMP L_18 +L_27: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _offCode + PUSH 4 + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX + JMP L_18 +L_28: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _pStart + PUSH 4 + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX + JMP L_18 +L_29: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _oCode + CALL FWORD PTR _GetFileLFA + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_30 + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _tag + MOV EAX,_oCode + ADD EAX,DWORD PTR [ESI+1] + PUSH EAX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_30: + JMP L_18 +L_31: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _oData + CALL FWORD PTR _GetFileLFA + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_32 + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _tag + MOV EAX,_oData + ADD EAX,DWORD PTR [ESI+1] + PUSH EAX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_32: + JMP L_18 +L_33: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _oCDFIX + CALL FWORD PTR _GetFileLFA + MOV DWORD PTR [EBP-4], EAX + MOV ESI,OFFSET _tag + MOV EAX,DWORD PTR [ESI+1] + MOV ECX,4 + CDQ + IDIV ECX + MOV _nCDFIX, EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_34 + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _tag + MOV EAX,_oCDFIX + ADD EAX,DWORD PTR [ESI+1] + PUSH EAX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_34: + JMP L_18 +L_35: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _oCCFIX + CALL FWORD PTR _GetFileLFA + MOV DWORD PTR [EBP-4], EAX + MOV ESI,OFFSET _tag + MOV EAX,DWORD PTR [ESI+1] + MOV ECX,4 + CDQ + IDIV ECX + MOV _nCCFIX, EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_36 + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _tag + MOV EAX,_oCCFIX + ADD EAX,DWORD PTR [ESI+1] + PUSH EAX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_36: + JMP L_18 +L_37: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _oDDFIX + CALL FWORD PTR _GetFileLFA + MOV DWORD PTR [EBP-4], EAX + MOV ESI,OFFSET _tag + MOV EAX,DWORD PTR [ESI+1] + MOV ECX,4 + CDQ + IDIV ECX + MOV _nDDFIX, EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_38 + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _tag + MOV EAX,_oDDFIX + ADD EAX,DWORD PTR [ESI+1] + PUSH EAX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_38: + JMP L_18 +L_39: + PUSH DWORD PTR [EBP-12] + PUSH OFFSET _oDCFIX + CALL FWORD PTR _GetFileLFA + MOV DWORD PTR [EBP-4], EAX + MOV ESI,OFFSET _tag + MOV EAX,DWORD PTR [ESI+1] + MOV ECX,4 + CDQ + IDIV ECX + MOV _nDCFIX, EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_40 + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _tag + MOV EAX,_oDCFIX + ADD EAX,DWORD PTR [ESI+1] + PUSH EAX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_40: + JMP L_18 +L_41: + MOV EAX,1 + MOV BYTE PTR [EBP-17], AL + JMP L_18 +L_42: + PUSH DWORD PTR [EBP-12] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetFileLFA + MOV DWORD PTR [EBP-4], EAX + MOV ESI,OFFSET _tag + MOV EAX,DWORD PTR [ESI+1] + CMP EAX,1024 + SETG AL + AND AL,AL + JZ L_43 + MOV EAX,74 + MOV DWORD PTR [EBP-4], EAX +L_43: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_44 + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _tag + MOV EAX,DWORD PTR [EBP-8] + ADD EAX,DWORD PTR [ESI+1] + PUSH EAX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_44: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_45 + MOV EAX,74 + MOV DWORD PTR [EBP-4], EAX +L_45: + JMP L_18 +L_19: + CMP EAX,255 + JE L_41 + CMP EAX,195 + JE L_39 + CMP EAX,194 + JE L_37 + CMP EAX,193 + JE L_35 + CMP EAX,192 + JE L_33 + CMP EAX,178 + JE L_31 + CMP EAX,176 + JE L_29 + CMP EAX,150 + JE L_28 + CMP EAX,148 + JE L_27 + CMP EAX,146 + JE L_26 + CMP EAX,144 + JE L_23 + CMP EAX,128 + JE L_20 + JMP L_42 +L_18: + JMP L_15 +L_16: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_46 + PUSH DWORD PTR [EBP-12] + CALL FWORD PTR _CloseFile +L_46: +L_14: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_47 + MOV ESI,DWORD PTR [EBP+8] + MOV EAX,DWORD PTR [EBP-12] + MOV DWORD PTR [ESI], EAX +L_47: + MOV EAX,DWORD PTR [EBP-4] +L_48: + MOV ESP,EBP + POP EBP + RETN 12 +PUBLIC __SetExitJob: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,79 + SETG AL + AND AL,AL + JZ L_49 + MOV EAX,76 + JMP L_50 +L_49: + MOV EAX,DWORD PTR [EBP+12] + AND EAX,EAX + JNZ L_52 + MOV ESI,_pTmpJCB + XOR EAX,EAX + MOV BYTE PTR [ESI+146], AL + JMP L_53 +L_52: + PUSH DWORD PTR [EBP+16] + MOV ESI,_pTmpJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,146 + PUSH EAX + PUSH DWORD PTR [EBP+12] + CALL FWORD PTR _CopyData + MOV ESI,_pTmpJCB + MOV EAX,DWORD PTR [EBP+12] + MOV BYTE PTR [ESI+146], AL +L_53: +L_51: + XOR EAX,EAX +L_50: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __GetExitJob: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pTmpJCB + MOVSX EAX,BYTE PTR [ESI+146] + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP-8] + AND EAX,EAX + JZ L_54 + MOV ESI,_pTmpJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,146 + PUSH EAX + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-8] + CALL FWORD PTR _CopyData +L_54: + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __SetPath: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,69 + SETG AL + AND AL,AL + JZ L_56 + MOV EAX,76 + JMP L_57 +L_56: + MOV EAX,DWORD PTR [EBP+12] + AND EAX,EAX + JNZ L_59 + MOV ESI,_pTmpJCB + XOR EAX,EAX + MOV BYTE PTR [ESI+76], AL + JMP L_60 +L_59: + PUSH DWORD PTR [EBP+16] + MOV ESI,_pTmpJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,76 + PUSH EAX + PUSH DWORD PTR [EBP+12] + CALL FWORD PTR _CopyData + MOV ESI,_pTmpJCB + MOV EAX,DWORD PTR [EBP+12] + MOV BYTE PTR [ESI+76], AL +L_60: +L_58: + XOR EAX,EAX +L_57: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __GetPath: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + PUSH DWORD PTR [EBP+20] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP-8] + AND EAX,EAX + JNZ L_61 + MOV ESI,_pTmpJCB + MOVSX EAX,BYTE PTR [ESI+76] + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_62 + MOV ESI,_pTmpJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,76 + PUSH EAX + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-4] + CALL FWORD PTR _CopyData +L_62: + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP-4] + MOV DWORD PTR [ESI], EAX +L_61: + MOV EAX,DWORD PTR [EBP-8] + MOV ESP,EBP + POP EBP + RETF 12 +PUBLIC __SetCmdLine: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,79 + SETG AL + AND AL,AL + JZ L_64 + MOV EAX,76 + JMP L_65 +L_64: + MOV EAX,DWORD PTR [EBP+12] + AND EAX,EAX + JNZ L_67 + MOV ESI,_pTmpJCB + XOR EAX,EAX + MOV BYTE PTR [ESI+226], AL + JMP L_68 +L_67: + PUSH DWORD PTR [EBP+16] + MOV ESI,_pTmpJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,226 + PUSH EAX + PUSH DWORD PTR [EBP+12] + CALL FWORD PTR _CopyData + MOV ESI,_pTmpJCB + MOV EAX,DWORD PTR [EBP+12] + MOV BYTE PTR [ESI+226], AL +L_68: +L_66: + XOR EAX,EAX +L_65: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __GetCmdLine: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pTmpJCB + MOVSX EAX,BYTE PTR [ESI+226] + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP-8] + AND EAX,EAX + JZ L_69 + MOV ESI,_pTmpJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,226 + PUSH EAX + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-8] + CALL FWORD PTR _CopyData +L_69: + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __SetUserName: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,29 + SETG AL + AND AL,AL + JZ L_71 + MOV EAX,76 + JMP L_72 +L_71: + MOV EAX,DWORD PTR [EBP+12] + AND EAX,EAX + JNZ L_74 + MOV ESI,_pTmpJCB + XOR EAX,EAX + MOV BYTE PTR [ESI+46], AL + JMP L_75 +L_74: + PUSH DWORD PTR [EBP+16] + MOV ESI,_pTmpJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,46 + PUSH EAX + PUSH DWORD PTR [EBP+12] + CALL FWORD PTR _CopyData + MOV ESI,_pTmpJCB + MOV EAX,DWORD PTR [EBP+12] + MOV BYTE PTR [ESI+46], AL +L_75: +L_73: + XOR EAX,EAX +L_72: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __GetUserName: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pTmpJCB + MOVSX EAX,BYTE PTR [ESI+46] + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP-8] + AND EAX,EAX + JZ L_76 + MOV ESI,_pTmpJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,46 + PUSH EAX + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-8] + CALL FWORD PTR _CopyData +L_76: + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __SetSysIn: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,49 + SETG AL + AND AL,AL + JNZ L_78 + MOV EAX,DWORD PTR [EBP+12] + AND EAX,EAX + SETZ AL + AND AL,AL +L_78: + JZ L_79 + MOV EAX,76 + JMP L_80 +L_79: + PUSH DWORD PTR [EBP+16] + MOV ESI,_pTmpJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,306 + PUSH EAX + PUSH DWORD PTR [EBP+12] + CALL FWORD PTR _CopyData + MOV ESI,_pTmpJCB + MOV EAX,DWORD PTR [EBP+12] + MOV BYTE PTR [ESI+306], AL +L_81: + XOR EAX,EAX +L_80: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __GetSysIn: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pTmpJCB + MOVSX EAX,BYTE PTR [ESI+306] + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP-8] + AND EAX,EAX + JZ L_82 + MOV ESI,_pTmpJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,306 + PUSH EAX + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-8] + CALL FWORD PTR _CopyData +L_82: + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __SetSysOut: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,49 + SETG AL + AND AL,AL + JNZ L_84 + MOV EAX,DWORD PTR [EBP+12] + AND EAX,EAX + SETZ AL + AND AL,AL +L_84: + JZ L_85 + MOV EAX,76 + JMP L_86 +L_85: + PUSH DWORD PTR [EBP+16] + MOV ESI,_pTmpJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,356 + PUSH EAX + PUSH DWORD PTR [EBP+12] + CALL FWORD PTR _CopyData + MOV ESI,_pTmpJCB + MOV EAX,DWORD PTR [EBP+12] + MOV BYTE PTR [ESI+356], AL +L_87: + XOR EAX,EAX +L_86: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __GetSysOut: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pTmpJCB + MOVSX EAX,BYTE PTR [ESI+356] + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP-8] + AND EAX,EAX + JZ L_88 + MOV ESI,_pTmpJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,356 + PUSH EAX + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-8] + CALL FWORD PTR _CopyData +L_88: + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __SetJobName: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetJobNum + PUSH DWORD PTR [EBP-4] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,13 + SETG AL + AND AL,AL + JZ L_90 + MOV EAX,13 + MOV DWORD PTR [EBP+12], EAX +L_90: + MOV EAX,DWORD PTR [EBP+12] + AND EAX,EAX + JZ L_91 + PUSH DWORD PTR [EBP+16] + MOV ESI,_pTmpJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,4 + PUSH EAX + PUSH DWORD PTR [EBP+12] + CALL FWORD PTR _CopyData +L_91: + MOV ESI,_pTmpJCB + MOV EAX,DWORD PTR [EBP+12] + MOV BYTE PTR [ESI+4], AL + XOR EAX,EAX + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __LoadNewJob: + PUSH EBP + MOV EBP,ESP + SUB ESP,44 + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+16] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + CALL _GetRunFile + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_93 + XOR EAX,EAX + MOV _JobNum, EAX + XOR EAX,EAX + MOV _pNewJCB, EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-24], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-28], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-32], EAX + PUSH OFFSET _JobNum + PUSH OFFSET _pNewJCB + CALL _AllocJCB + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_94 + PUSH 3 + LEA EAX,DWORD PTR [EBP-24] + PUSH EAX + CALL FWORD PTR _AllocOSPage + MOV DWORD PTR [EBP-4], EAX +L_94: + MOV EAX,DWORD PTR [EBP-24] + ADD EAX,4096 + MOV DWORD PTR [EBP-28], EAX + MOV EAX,DWORD PTR [EBP-24] + ADD EAX,8192 + MOV DWORD PTR [EBP-32], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_95 + PUSH DWORD PTR [EBP-28] + PUSH 4096 + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _FillData + PUSH DWORD PTR [EBP-32] + PUSH 4096 + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _FillData + PUSH 1 + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pTmpJCB + MOV EAX,DWORD PTR [ESI+18] + MOV DWORD PTR [EBP-36], EAX + PUSH 1 + PUSH DWORD PTR [EBP-28] + LEA EAX,DWORD PTR [EBP-44] + PUSH EAX + CALL FWORD PTR _GetPhyAdd + MOV EAX,DWORD PTR [EBP-44] + OR EAX,7 + MOV DWORD PTR [EBP-44], EAX + MOV EAX,1024 + MOV ESI,DWORD PTR [EBP-36] + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-44] + MOV DWORD PTR [ESI], EAX + MOV EAX,3072 + MOV ESI,DWORD PTR [EBP-36] + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-28] + MOV DWORD PTR [ESI], EAX + MOV EAX,_sStack + MOV ECX,4096 + CDQ + IDIV ECX + MOV DWORD PTR [EBP-20], EAX + MOV EAX,_sStack + MOV ECX,4096 + CDQ + IDIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_96 + MOV EAX,DWORD PTR [EBP-20] + INC DWORD PTR [EBP-20] +L_96: + PUSH DWORD PTR [EBP-20] + PUSH OFFSET _pStack + CALL FWORD PTR _AllocPage + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-20] + MOV ECX,4096 + IMUL ECX + MOV _sStack, EAX + MOV EAX,_sCode + MOV ECX,4096 + CDQ + IDIV ECX + MOV DWORD PTR [EBP-20], EAX + MOV EAX,_sCode + MOV ECX,4096 + CDQ + IDIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_97 + MOV EAX,DWORD PTR [EBP-20] + INC DWORD PTR [EBP-20] +L_97: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_98 + PUSH DWORD PTR [EBP-20] + PUSH OFFSET _pCode + CALL FWORD PTR _AllocPage + MOV DWORD PTR [EBP-4], EAX +L_98: + MOV EAX,_sData + MOV ECX,4096 + CDQ + IDIV ECX + MOV DWORD PTR [EBP-20], EAX + MOV EAX,_sData + MOV ECX,4096 + CDQ + IDIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_99 + MOV EAX,DWORD PTR [EBP-20] + INC DWORD PTR [EBP-20] +L_99: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_100 + PUSH DWORD PTR [EBP-20] + PUSH OFFSET _pData + CALL FWORD PTR _AllocPage + MOV DWORD PTR [EBP-4], EAX +L_100: + PUSH DWORD PTR [EBP-36] + PUSH DWORD PTR [EBP-24] + PUSH 4096 + CALL FWORD PTR _CopyData + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_101 + PUSH DWORD PTR [EBP-12] + PUSH _oCode + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_101: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_102 + PUSH DWORD PTR [EBP-12] + PUSH _pCode + PUSH _sCode + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX +L_102: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_103 + PUSH DWORD PTR [EBP-12] + PUSH _oData + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_103: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_104 + PUSH DWORD PTR [EBP-12] + PUSH _pData + PUSH _sData + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX +L_104: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_105 + MOV EAX,_nCDFIX + AND EAX,EAX + JZ L_106 + PUSH DWORD PTR [EBP-12] + PUSH _oCDFIX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_107: + MOV EAX,_nCDFIX + DEC _nCDFIX + AND EAX,EAX + JZ L_109 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL +L_109: + JZ L_108 + PUSH DWORD PTR [EBP-12] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX + MOV EAX,_pCode + ADD EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [EBP-40], EAX + MOV ESI,DWORD PTR [EBP-40] + MOV EBX,ESI + MOV ESI,DWORD PTR [EBP-40] + MOV EAX,DWORD PTR [ESI] + SUB EAX,_offData + ADD EAX,_pData + MOV DWORD PTR [EBX], EAX + JMP L_107 +L_108: +L_106: + MOV EAX,_nCCFIX + AND EAX,EAX + JZ L_110 + PUSH DWORD PTR [EBP-12] + PUSH _oCCFIX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_111: + MOV EAX,_nCCFIX + DEC _nCCFIX + AND EAX,EAX + JZ L_113 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL +L_113: + JZ L_112 + PUSH DWORD PTR [EBP-12] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX + MOV EAX,_pCode + ADD EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [EBP-40], EAX + MOV ESI,DWORD PTR [EBP-40] + MOV EBX,ESI + MOV ESI,DWORD PTR [EBP-40] + MOV EAX,DWORD PTR [ESI] + SUB EAX,_offCode + ADD EAX,_pCode + MOV DWORD PTR [EBX], EAX + JMP L_111 +L_112: +L_110: + MOV EAX,_nDCFIX + AND EAX,EAX + JZ L_114 + PUSH DWORD PTR [EBP-12] + PUSH _oDCFIX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_115: + MOV EAX,_nDCFIX + DEC _nDCFIX + AND EAX,EAX + JZ L_117 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL +L_117: + JZ L_116 + PUSH DWORD PTR [EBP-12] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX + MOV EAX,_pData + ADD EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [EBP-40], EAX + MOV ESI,DWORD PTR [EBP-40] + MOV EBX,ESI + MOV ESI,DWORD PTR [EBP-40] + MOV EAX,DWORD PTR [ESI] + SUB EAX,_offCode + ADD EAX,_pCode + MOV DWORD PTR [EBX], EAX + JMP L_115 +L_116: +L_114: + MOV EAX,_nDDFIX + AND EAX,EAX + JZ L_118 + PUSH DWORD PTR [EBP-12] + PUSH _oDDFIX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_119: + MOV EAX,_nDDFIX + DEC _nDDFIX + AND EAX,EAX + JZ L_121 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL +L_121: + JZ L_120 + PUSH DWORD PTR [EBP-12] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX + MOV EAX,_pData + ADD EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [EBP-40], EAX + MOV ESI,DWORD PTR [EBP-40] + MOV EBX,ESI + MOV ESI,DWORD PTR [EBP-40] + MOV EAX,DWORD PTR [ESI] + SUB EAX,_offData + ADD EAX,_pData + MOV DWORD PTR [EBX], EAX + JMP L_119 +L_120: +L_118: +L_105: + MOV EAX,1024 + MOV ESI,DWORD PTR [EBP-36] + ADD ESI,EAX + PUSH ESI + PUSH 1024 + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _FillData + MOV EAX,3072 + MOV ESI,DWORD PTR [EBP-36] + ADD ESI,EAX + PUSH ESI + PUSH 1024 + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _FillData + MOV ESI,_pNewJCB + MOV EAX,DWORD PTR [EBP-24] + MOV DWORD PTR [ESI+18], EAX + MOV ESI,_pNewJCB + MOV EAX,_pStack + MOV DWORD PTR [ESI+38], EAX + MOV ESI,_pNewJCB + MOV EAX,_sStack + MOV DWORD PTR [ESI+42], EAX + MOV ESI,_pNewJCB + MOV EAX,_pCode + MOV DWORD PTR [ESI+22], EAX + MOV ESI,_pNewJCB + MOV EAX,_sCode + MOV DWORD PTR [ESI+26], EAX + MOV ESI,_pNewJCB + MOV EAX,_pData + MOV DWORD PTR [ESI+30], EAX + MOV ESI,_pNewJCB + MOV EAX,_sData + MOV DWORD PTR [ESI+34], EAX + MOV ESI,_pNewJCB + XOR EAX,EAX + MOV BYTE PTR [ESI+46], AL + MOV ESI,_pNewJCB + XOR EAX,EAX + MOV BYTE PTR [ESI+76], AL + MOV ESI,_pNewJCB + XOR EAX,EAX + MOV BYTE PTR [ESI+146], AL + MOV ESI,_pNewJCB + XOR EAX,EAX + MOV BYTE PTR [ESI+226], AL + PUSH OFFSET L_lit+0 + MOV ESI,_pNewJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,306 + PUSH EAX + PUSH 3 + CALL FWORD PTR _CopyData + MOV ESI,_pNewJCB + MOV EAX,3 + MOV BYTE PTR [ESI+306], AL + PUSH OFFSET L_lit+4 + MOV ESI,_pNewJCB + MOV EAX,1 + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,356 + PUSH EAX + PUSH 3 + CALL FWORD PTR _CopyData + MOV ESI,_pNewJCB + MOV EAX,3 + MOV BYTE PTR [ESI+356], AL + MOV ESI,_pNewJCB + MOV EAX,DWORD PTR [EBP-32] + MOV DWORD PTR [ESI+410], EAX + MOV ESI,_pNewJCB + MOV EAX,DWORD PTR [EBP-32] + MOV DWORD PTR [ESI+414], EAX + MOV ESI,_pNewJCB + XOR EAX,EAX + MOV DWORD PTR [ESI+418], EAX + MOV ESI,_pNewJCB + XOR EAX,EAX + MOV DWORD PTR [ESI+422], EAX + MOV ESI,_pNewJCB + MOV EAX,80 + MOV DWORD PTR [ESI+426], EAX + MOV ESI,_pNewJCB + MOV EAX,25 + MOV DWORD PTR [ESI+430], EAX + MOV ESI,_pNewJCB + XOR EAX,EAX + MOV DWORD PTR [ESI+434], EAX + MOV ESI,_pNewJCB + MOV EAX,1 + MOV BYTE PTR [ESI+442], AL + MOV ESI,_pNewJCB + XOR EAX,EAX + MOV BYTE PTR [ESI+443], AL + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_122 + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _AllocExch + MOV DWORD PTR [EBP-4], EAX +L_122: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_123 + PUSH _JobNum + PUSH 24 + PUSH 25 + XOR EAX,EAX + PUSH EAX + PUSH DWORD PTR [EBP-8] + MOV EAX,_pStack + ADD EAX,_sStack + SUB EAX,4 + PUSH EAX + MOV EAX,_pStart + ADD EAX,_pCode + SUB EAX,_offCode + PUSH EAX + CALL FWORD PTR _NewTask + MOV DWORD PTR [EBP-4], EAX +L_123: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_124 + PUSH DWORD PTR [EBP-8] + PUSH _pNewJCB + CALL _SetExchOwner +L_124: +L_95: + PUSH DWORD PTR [EBP-12] + CALL FWORD PTR _CloseFile +L_93: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_125 + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,_JobNum + MOV DWORD PTR [ESI], EAX +L_125: + MOV EAX,DWORD PTR [EBP-4] + MOV ESP,EBP + POP EBP + RETF 12 +_LoadJob: + PUSH EBP + MOV EBP,ESP + SUB ESP,20 + MOV EAX,DWORD PTR [EBP+12] + MOV _pNewJCB, EAX + MOV EAX,_sStack + MOV ECX,4096 + CDQ + IDIV ECX + MOV DWORD PTR [EBP-16], EAX + MOV EAX,_sStack + MOV ECX,4096 + CDQ + IDIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_127 + MOV EAX,DWORD PTR [EBP-16] + INC DWORD PTR [EBP-16] +L_127: + PUSH DWORD PTR [EBP-16] + PUSH OFFSET _pStack + CALL FWORD PTR _AllocPage + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-16] + MOV ECX,4096 + IMUL ECX + MOV _sStack, EAX + MOV EAX,_sCode + MOV ECX,4096 + CDQ + IDIV ECX + MOV DWORD PTR [EBP-16], EAX + MOV EAX,_sCode + MOV ECX,4096 + CDQ + IDIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_128 + MOV EAX,DWORD PTR [EBP-16] + INC DWORD PTR [EBP-16] +L_128: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_129 + PUSH DWORD PTR [EBP-16] + PUSH OFFSET _pCode + CALL FWORD PTR _AllocPage + MOV DWORD PTR [EBP-4], EAX +L_129: + MOV EAX,_sData + MOV ECX,4096 + CDQ + IDIV ECX + MOV DWORD PTR [EBP-16], EAX + MOV EAX,_sData + MOV ECX,4096 + CDQ + IDIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_130 + MOV EAX,DWORD PTR [EBP-16] + INC DWORD PTR [EBP-16] +L_130: + PUSH DWORD PTR [EBP-16] + PUSH OFFSET _pData + CALL FWORD PTR _AllocPage + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_131 + PUSH DWORD PTR [EBP+8] + PUSH _oCode + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_131: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_132 + PUSH DWORD PTR [EBP+8] + PUSH _pCode + PUSH _sCode + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX +L_132: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_133 + PUSH DWORD PTR [EBP+8] + PUSH _oData + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_133: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_134 + PUSH DWORD PTR [EBP+8] + PUSH _pData + PUSH _sData + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX +L_134: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_135 + MOV EAX,_nCDFIX + AND EAX,EAX + JZ L_136 + PUSH DWORD PTR [EBP+8] + PUSH _oCDFIX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_137: + MOV EAX,_nCDFIX + DEC _nCDFIX + AND EAX,EAX + JZ L_139 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL +L_139: + JZ L_138 + PUSH DWORD PTR [EBP+8] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX + MOV EAX,_pCode + ADD EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [EBP-20], EAX + MOV ESI,DWORD PTR [EBP-20] + MOV EBX,ESI + MOV ESI,DWORD PTR [EBP-20] + MOV EAX,DWORD PTR [ESI] + SUB EAX,_offData + ADD EAX,_pData + MOV DWORD PTR [EBX], EAX + JMP L_137 +L_138: +L_136: + MOV EAX,_nCCFIX + AND EAX,EAX + JZ L_140 + PUSH DWORD PTR [EBP+8] + PUSH _oCCFIX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_141: + MOV EAX,_nCCFIX + DEC _nCCFIX + AND EAX,EAX + JZ L_143 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL +L_143: + JZ L_142 + PUSH DWORD PTR [EBP+8] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX + MOV EAX,_pCode + ADD EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [EBP-20], EAX + MOV ESI,DWORD PTR [EBP-20] + MOV EBX,ESI + MOV ESI,DWORD PTR [EBP-20] + MOV EAX,DWORD PTR [ESI] + SUB EAX,_offCode + ADD EAX,_pCode + MOV DWORD PTR [EBX], EAX + JMP L_141 +L_142: +L_140: + MOV EAX,_nDCFIX + AND EAX,EAX + JZ L_144 + PUSH DWORD PTR [EBP+8] + PUSH _oDCFIX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_145: + MOV EAX,_nDCFIX + DEC _nDCFIX + AND EAX,EAX + JZ L_147 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL +L_147: + JZ L_146 + PUSH DWORD PTR [EBP+8] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX + MOV EAX,_pData + ADD EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [EBP-20], EAX + MOV ESI,DWORD PTR [EBP-20] + MOV EBX,ESI + MOV ESI,DWORD PTR [EBP-20] + MOV EAX,DWORD PTR [ESI] + SUB EAX,_offCode + ADD EAX,_pCode + MOV DWORD PTR [EBX], EAX + JMP L_145 +L_146: +L_144: + MOV EAX,_nDDFIX + AND EAX,EAX + JZ L_148 + PUSH DWORD PTR [EBP+8] + PUSH _oDDFIX + CALL FWORD PTR _SetFileLFA + MOV DWORD PTR [EBP-4], EAX +L_149: + MOV EAX,_nDDFIX + DEC _nDDFIX + AND EAX,EAX + JZ L_151 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL +L_151: + JZ L_150 + PUSH DWORD PTR [EBP+8] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + PUSH 4 + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + CALL FWORD PTR _ReadBytes + MOV DWORD PTR [EBP-4], EAX + MOV EAX,_pData + ADD EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [EBP-20], EAX + MOV ESI,DWORD PTR [EBP-20] + MOV EBX,ESI + MOV ESI,DWORD PTR [EBP-20] + MOV EAX,DWORD PTR [ESI] + SUB EAX,_offData + ADD EAX,_pData + MOV DWORD PTR [EBX], EAX + JMP L_149 +L_150: +L_148: + MOV ESI,_pNewJCB + MOV EAX,_pStack + MOV DWORD PTR [ESI+38], EAX + MOV ESI,_pNewJCB + MOV EAX,_sStack + MOV DWORD PTR [ESI+42], EAX + MOV ESI,_pNewJCB + MOV EAX,_pCode + MOV DWORD PTR [ESI+22], EAX + MOV ESI,_pNewJCB + MOV EAX,_sCode + MOV DWORD PTR [ESI+26], EAX + MOV ESI,_pNewJCB + MOV EAX,_pData + MOV DWORD PTR [ESI+30], EAX + MOV ESI,_pNewJCB + MOV EAX,_sData + MOV DWORD PTR [ESI+34], EAX +L_135: + PUSH DWORD PTR [EBP+8] + CALL FWORD PTR _CloseFile + MOV EAX,DWORD PTR [EBP-4] + MOV ESP,EBP + POP EBP + RETN 8 +PUBLIC __KillTask: + PUSH EBP + MOV EBP,ESP + PUSH OFFSET _JobNumE + CALL FWORD PTR _GetJobNum + PUSH _JobNumE + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pTmpJCB + MOV EAX,DWORD PTR [ESI+18] + MOV _pPDE, EAX + PUSH _pPDE + CALL _CleanUserPD + PUSH OFFSET _ExchE + CALL FWORD PTR _GetTSSExch + XOR EAX,EAX + MOV _ercE, EAX +L_153: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_154 + PUSH _ExchE + PUSH OFFSET _BogusMsg + CALL FWORD PTR _CheckMsg + MOV _ercE, EAX + JMP L_153 +L_154: + PUSH _KillExch + PUSH _ExchE + PUSH 4 + CALL FWORD PTR _ISendMsg + PUSH 31 + CALL FWORD PTR _SetPriority + PUSH _ExchE + PUSH OFFSET _BogusMsg + CALL FWORD PTR _WaitMsg +L_155: + MOV EAX,1 + AND EAX,EAX + JZ L_156 + JMP L_155 +L_156: + POP EBP + RETN +PUBLIC __KillJob: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + PUSH OFFSET _JobNumE + CALL FWORD PTR _GetJobNum + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,_JobNumE + SETE AL + AND AL,AL + JNZ L_157 + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,1 + SETE AL + AND AL,AL + JNZ L_158 + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,2 + SETE AL + AND AL,AL +L_158: +L_157: + JZ L_159 + MOV EAX,70 + JMP L_160 +L_159: + PUSH DWORD PTR [EBP+12] + PUSH OFFSET _pTmpJCB + CALL FWORD PTR _GetpJCB + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_161 + MOV EAX,DWORD PTR [EBP-4] + JMP L_160 +L_161: + MOV ESI,_pTmpJCB + MOV EAX,4 + MOV DWORD PTR [ESI+406], EAX + PUSH _pTmpJCB + CALL _RemoveRdyJob + XOR EAX,EAX + MOV _ercE, EAX + XOR EAX,EAX + MOV _iE, EAX +L_162: + MOV EAX,_ercE + CMP EAX,10 + SETNE AL + AND AL,AL + JZ L_163 + PUSH _iE + PUSH OFFSET _pExchJCBE + CALL _GetExchOwner + MOV _ercE, EAX + MOV EAX,_ercE + AND EAX,EAX + SETZ AL + AND AL,AL + JZ L_164 + MOV EAX,_pExchJCBE + CMP EAX,_pTmpJCB + SETE AL + AND AL,AL +L_164: + JZ L_165 + PUSH _iE + CALL FWORD PTR _DeAllocExch +L_165: + MOV EAX,_iE + INC _iE + JMP L_162 +L_163: + XOR EAX,EAX + MOV _ercE, EAX + PUSH OFFSET _ExchE + CALL FWORD PTR _AllocExch + MOV DWORD PTR [EBP-4], EAX + PUSH _ExchE + PUSH _pTmpJCB + CALL _SetExchOwner + PUSH DWORD PTR [EBP+12] + PUSH _ExchE + CALL _SendAbort + PUSH DWORD PTR [EBP+12] + PUSH 8 + PUSH 3 + XOR EAX,EAX + PUSH EAX + PUSH _ExchE + MOV EAX,508 + MOV ESI,OFFSET _TmpStack + ADD ESI,EAX + PUSH ESI + PUSH OFFSET __KillTask + CALL FWORD PTR _NewTask + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] +L_160: + MOV ESP,EBP + POP EBP + RETF 4 +PUBLIC __ExitJob: + PUSH EBP + MOV EBP,ESP + PUSH OFFSET _JobNumE + CALL FWORD PTR _GetJobNum + PUSH _JobNumE + PUSH OFFSET _pCrntJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pCrntJCB + MOV EAX,DWORD PTR [EBP+12] + MOV DWORD PTR [ESI+406], EAX + PUSH _pCrntJCB + CALL _RemoveRdyJob + PUSH OFFSET _ExchE + CALL FWORD PTR _GetTSSExch + XOR EAX,EAX + MOV _ercE, EAX + XOR EAX,EAX + MOV _iE, EAX +L_166: + MOV EAX,_ercE + CMP EAX,10 + SETNE AL + AND AL,AL + JZ L_167 + PUSH _iE + PUSH OFFSET _pExchJCBE + CALL _GetExchOwner + MOV _ercE, EAX + MOV EAX,_ercE + AND EAX,EAX + SETZ AL + AND AL,AL + JZ L_168 + MOV EAX,_iE + CMP EAX,_ExchE + SETNE AL + AND AL,AL + JZ L_169 + MOV EAX,_pExchJCBE + CMP EAX,_pCrntJCB + SETE AL + AND AL,AL +L_169: +L_168: + JZ L_170 + PUSH _iE + CALL FWORD PTR _DeAllocExch +L_170: + MOV EAX,_iE + INC _iE + JMP L_166 +L_167: + PUSH _JobNumE + PUSH _ExchE + CALL _SendAbort + XOR EAX,EAX + MOV _ercE, EAX +L_171: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_172 + PUSH _ExchE + PUSH OFFSET _BogusMsg + CALL FWORD PTR _CheckMsg + MOV _ercE, EAX + JMP L_171 +L_172: + XOR EAX,EAX + MOV _ercE, EAX + MOV EAX, OFFSET _TmpStack + ADD EAX, 508 + MOV ESP, EAX + MOV EBP, EAX + MOV ESI,_pCrntJCB + MOV EAX,DWORD PTR [ESI+18] + MOV _pPDE, EAX + PUSH _pPDE + CALL _CleanUserPD + PUSH OFFSET _aFileE + PUSH OFFSET _cbFileE + CALL FWORD PTR _GetExitJob + MOV EAX,_cbFileE + AND EAX,EAX + JNZ L_173 + MOV EAX,76 + MOV _ercE, EAX +L_173: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_174 + PUSH OFFSET _aFileE + PUSH _cbFileE + PUSH OFFSET _job_fhE + CALL _GetRunFile + MOV _ercE, EAX +L_174: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_175 + PUSH _pCrntJCB + PUSH _job_fhE + CALL _LoadJob + MOV _ercE, EAX +L_175: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_176 + MOV EAX,_pStart + ADD EAX,_pCode + SUB EAX,_offCode + MOV _pStart, EAX + MOV EAX, _pStack + MOV EBX, _sStack + ADD EAX, EBX + SUB EAX, 4 + MOV ESP, EAX + MOV EBP, EAX + PUSH 18h + MOV EAX, _pStart + PUSH EAX + RETF ;We are history! +L_176: + MOV EAX,_ercE + AND EAX,EAX + JZ L_177 + PUSH _KillExch + PUSH _ExchE + PUSH _ercE + CALL FWORD PTR _ISendMsg + PUSH 31 + CALL FWORD PTR _SetPriority + PUSH _ExchE + PUSH OFFSET _BogusMsg + CALL FWORD PTR _WaitMsg +L_178: + MOV EAX,1 + AND EAX,EAX + JZ L_179 + JMP L_178 +L_179: +L_177: + POP EBP + RETF 4 +PUBLIC __Chain: + PUSH EBP + MOV EBP,ESP + PUSH DWORD PTR [EBP+20] + PUSH OFFSET _aFileE + PUSH DWORD PTR [EBP+16] + CALL FWORD PTR _CopyData + MOV EAX,DWORD PTR [EBP+16] + MOV _cbFileE, EAX + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+16] + PUSH OFFSET _job_fhE + CALL _GetRunFile + MOV _ercE, EAX + MOV EAX,_ercE + AND EAX,EAX + JZ L_180 + PUSH _job_fhE + CALL FWORD PTR _CloseFile + MOV EAX,_ercE + JMP L_181 +L_180: + PUSH _job_fhE + CALL FWORD PTR _CloseFile + PUSH OFFSET _JobNumE + CALL FWORD PTR _GetJobNum + PUSH _JobNumE + PUSH OFFSET _pCrntJCB + CALL FWORD PTR _GetpJCB + MOV ESI,_pCrntJCB + MOV EAX,DWORD PTR [EBP+12] + MOV DWORD PTR [ESI+406], EAX + PUSH _pCrntJCB + CALL _RemoveRdyJob + PUSH OFFSET _ExchE + CALL FWORD PTR _GetTSSExch + XOR EAX,EAX + MOV _ercE, EAX + XOR EAX,EAX + MOV _iE, EAX +L_182: + MOV EAX,_ercE + CMP EAX,10 + SETNE AL + AND AL,AL + JZ L_183 + PUSH _iE + PUSH OFFSET _pExchJCBE + CALL _GetExchOwner + MOV _ercE, EAX + MOV EAX,_ercE + AND EAX,EAX + SETZ AL + AND AL,AL + JZ L_184 + MOV EAX,_iE + CMP EAX,_ExchE + SETNE AL + AND AL,AL + JZ L_185 + MOV EAX,_pExchJCBE + CMP EAX,_pCrntJCB + SETE AL + AND AL,AL +L_185: +L_184: + JZ L_186 + PUSH _iE + CALL FWORD PTR _DeAllocExch +L_186: + MOV EAX,_iE + INC _iE + JMP L_182 +L_183: + PUSH _JobNumE + PUSH _ExchE + CALL _SendAbort + XOR EAX,EAX + MOV _ercE, EAX +L_187: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_188 + PUSH _ExchE + PUSH OFFSET _BogusMsg + CALL FWORD PTR _CheckMsg + MOV _ercE, EAX + JMP L_187 +L_188: + XOR EAX,EAX + MOV _ercE, EAX + MOV EAX, OFFSET _TmpStack + ADD EAX, 508 + MOV ESP, EAX + MOV EBP, EAX + MOV ESI,_pCrntJCB + MOV EAX,DWORD PTR [ESI+18] + MOV _pPDE, EAX + PUSH _pPDE + CALL _CleanUserPD + PUSH OFFSET _aFileE + PUSH _cbFileE + PUSH OFFSET _job_fhE + CALL _GetRunFile + PUSH _pCrntJCB + PUSH _job_fhE + CALL _LoadJob + MOV _ercE, EAX + MOV EAX,_ercE + AND EAX,EAX + JZ L_189 + PUSH OFFSET _aFileE + PUSH OFFSET _cbFileE + CALL FWORD PTR _GetExitJob + MOV EAX,_cbFileE + AND EAX,EAX + JNZ L_190 + MOV EAX,76 + MOV _ercE, EAX +L_190: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_191 + PUSH OFFSET _aFileE + PUSH _cbFileE + PUSH OFFSET _job_fhE + CALL _GetRunFile + MOV _ercE, EAX +L_191: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_192 + PUSH _pCrntJCB + PUSH _job_fhE + CALL _LoadJob + MOV _ercE, EAX +L_192: +L_189: + MOV EAX,_ercE + AND EAX,EAX + JNZ L_193 + MOV EAX,_pStart + ADD EAX,_pCode + SUB EAX,_offCode + MOV _pStart, EAX + MOV EAX, _pStack + MOV EBX, _sStack + ADD EAX, EBX + SUB EAX, 4 + MOV ESP, EAX + MOV EBP, EAX + PUSH 18h + MOV EAX, _pStart + PUSH EAX + RETF ;We are history! +L_193: + MOV EAX,_ercE + AND EAX,EAX + JZ L_194 + PUSH _KillExch + PUSH _ExchE + PUSH _ercE + CALL FWORD PTR _ISendMsg + STI + PUSH 31 + CALL FWORD PTR _SetPriority + PUSH _ExchE + PUSH OFFSET _BogusMsg + CALL FWORD PTR _WaitMsg +L_195: + MOV EAX,1 + AND EAX,EAX + JZ L_196 + JMP L_195 +L_196: +L_194: +L_181: + POP EBP + RETF 12 -- 2.40.0