--- /dev/null
+\r
+.DATA\r
+EXTRN _AllocExch FWORD\r
+EXTRN _InitDevDr FWORD\r
+EXTRN _AllocOSPage FWORD\r
+EXTRN _DeAllocPage FWORD\r
+EXTRN _UnMaskIRQ FWORD\r
+EXTRN _MaskIRQ FWORD\r
+EXTRN _SetIRQVector FWORD\r
+EXTRN _EndOfIRQ FWORD\r
+EXTRN _SendMsg FWORD\r
+EXTRN _ISendMsg FWORD\r
+EXTRN _WaitMsg FWORD\r
+EXTRN _CheckMsg FWORD\r
+EXTRN _GetTimerTick FWORD\r
+EXTRN _Alarm FWORD\r
+EXTRN _KillAlarm FWORD\r
+EXTRN _Sleep FWORD\r
+EXTRN _MicroDelay FWORD\r
+EXTRN _OutByte FWORD\r
+EXTRN _InByte FWORD\r
+EXTRN _CopyData FWORD\r
+EXTRN _GetJobNum FWORD\r
+_recv_timeout DD 1,0,0\r
+_xmit_timeout DD 10,0,0\r
+_control_byte DB 0,0,0\r
+_f16550 DB 2 DUP(0)\r
+_stat_byte DB 2 DUP(0)\r
+_mstat_byte DB 2 DUP(0)\r
+_int_id DB 2 DUP(0)\r
+_fExpectInt DB 2 DUP(0)\r
+_recv_error DD 2 DUP(0)\r
+_pSendBuf DD 2 DUP(0)\r
+_head_send DD 2 DUP(0)\r
+_tail_send DD 2 DUP(0)\r
+_cSendBuf DD 2 DUP(0)\r
+_sSendBuf DD 2 DUP(0)\r
+_pRecvBuf DD 2 DUP(0)\r
+_head_recv DD 2 DUP(0)\r
+_tail_recv DD 2 DUP(0)\r
+_cRecvBuf DD 2 DUP(0)\r
+_sRecvBuf DD 2 DUP(0)\r
+_THR DW 2 DUP(0)\r
+_IER DW 2 DUP(0)\r
+_IIR DW 2 DUP(0)\r
+_FCR DW 2 DUP(0)\r
+_LCR DW 2 DUP(0)\r
+_MCR DW 2 DUP(0)\r
+_LSR DW 2 DUP(0)\r
+_MSR DW 2 DUP(0)\r
+_DLAB_LO DW 2 DUP(0)\r
+_DLAB_HI DW 2 DUP(0)\r
+_comstat DB 128 DUP(0)\r
+_pCS DD 0h\r
+_comdcb DB 128 DUP(0)\r
+\r
+\r
+.CODE\r
+PUBLIC _coms_setup:\r
+ PUSH EBP\r
+ MOV EBP,ESP\r
+ SUB ESP,4\r
+ MOV ESI,OFFSET _comdcb\r
+ MOV EAX,67\r
+ MOV BYTE PTR [ESI], AL\r
+ MOV ESI,OFFSET _comdcb\r
+ MOV EAX,1\r
+ ADD ESI,EAX\r
+ MOV EAX,79\r
+ MOV BYTE PTR [ESI], AL\r
+ MOV ESI,OFFSET _comdcb\r
+ MOV EAX,2\r
+ ADD ESI,EAX\r
+ MOV EAX,77\r
+ MOV BYTE PTR [ESI], AL\r
+ MOV ESI,OFFSET _comdcb\r
+ MOV EAX,3\r
+ ADD ESI,EAX\r
+ MOV EAX,49\r
+ MOV BYTE PTR [ESI], AL\r
+ MOV ESI,OFFSET _comdcb\r
+ MOV EAX,4\r
+ MOV BYTE PTR [ESI+12], AL\r
+ MOV ESI,OFFSET _comdcb\r
+ MOV EAX,2\r
+ MOV BYTE PTR [ESI+13], AL\r
+ MOV ESI,OFFSET _comdcb\r
+ MOV EAX,1\r
+ MOV WORD PTR [ESI+14], AX\r
+ MOV ESI,OFFSET _comdcb\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI+20], EAX\r
+ MOV ESI,OFFSET _comdcb\r
+ MOV EAX,OFFSET _comdev_op\r
+ MOV DWORD PTR [ESI+24], EAX\r
+ MOV ESI,OFFSET _comdcb\r
+ MOV EAX,OFFSET _comdev_init\r
+ MOV DWORD PTR [ESI+28], EAX\r
+ MOV ESI,OFFSET _comdcb\r
+ MOV EAX,OFFSET _comdev_stat\r
+ MOV DWORD PTR [ESI+32], EAX\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comdcb\r
+ ADD ESI,EAX\r
+ MOV EAX,67\r
+ MOV BYTE PTR [ESI], AL\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comdcb\r
+ ADD ESI,EAX\r
+ MOV EAX,1\r
+ ADD ESI,EAX\r
+ MOV EAX,79\r
+ MOV BYTE PTR [ESI], AL\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comdcb\r
+ ADD ESI,EAX\r
+ MOV EAX,2\r
+ ADD ESI,EAX\r
+ MOV EAX,77\r
+ MOV BYTE PTR [ESI], AL\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comdcb\r
+ ADD ESI,EAX\r
+ MOV EAX,3\r
+ ADD ESI,EAX\r
+ MOV EAX,50\r
+ MOV BYTE PTR [ESI], AL\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comdcb\r
+ ADD ESI,EAX\r
+ MOV EAX,4\r
+ MOV BYTE PTR [ESI+12], AL\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comdcb\r
+ ADD ESI,EAX\r
+ MOV EAX,2\r
+ MOV BYTE PTR [ESI+13], AL\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comdcb\r
+ ADD ESI,EAX\r
+ MOV EAX,1\r
+ MOV WORD PTR [ESI+14], AX\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comdcb\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI+20], EAX\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comdcb\r
+ ADD ESI,EAX\r
+ MOV EAX,OFFSET _comdev_op\r
+ MOV DWORD PTR [ESI+24], EAX\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comdcb\r
+ ADD ESI,EAX\r
+ MOV EAX,OFFSET _comdev_init\r
+ MOV DWORD PTR [ESI+28], EAX\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comdcb\r
+ ADD ESI,EAX\r
+ MOV EAX,OFFSET _comdev_stat\r
+ MOV DWORD PTR [ESI+32], EAX\r
+ MOV ESI,OFFSET _comstat\r
+ MOV EAX,9600\r
+ MOV DWORD PTR [ESI+12], EAX\r
+ MOV ESI,OFFSET _comstat\r
+ XOR EAX,EAX\r
+ MOV BYTE PTR [ESI+16], AL\r
+ MOV ESI,OFFSET _comstat\r
+ MOV EAX,8\r
+ MOV BYTE PTR [ESI+17], AL\r
+ MOV ESI,OFFSET _comstat\r
+ MOV EAX,1\r
+ MOV BYTE PTR [ESI+18], AL\r
+ MOV ESI,OFFSET _comstat\r
+ MOV EAX,100\r
+ MOV DWORD PTR [ESI+32], EAX\r
+ MOV ESI,OFFSET _comstat\r
+ MOV EAX,2\r
+ MOV DWORD PTR [ESI+36], EAX\r
+ MOV ESI,OFFSET _comstat\r
+ MOV EAX,1016\r
+ MOV DWORD PTR [ESI+20], EAX\r
+ MOV ESI,OFFSET _comstat\r
+ MOV EAX,4\r
+ MOV BYTE PTR [ESI+19], AL\r
+ MOV ESI,OFFSET _comstat\r
+ MOV EAX,4096\r
+ MOV DWORD PTR [ESI+24], EAX\r
+ MOV ESI,OFFSET _comstat\r
+ MOV EAX,4096\r
+ MOV DWORD PTR [ESI+28], EAX\r
+ MOV ESI,OFFSET _sSendBuf\r
+ MOV EAX,4096\r
+ MOV DWORD PTR [ESI], EAX\r
+ MOV ESI,OFFSET _sRecvBuf\r
+ MOV EAX,4096\r
+ MOV DWORD PTR [ESI], EAX\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,9600\r
+ MOV DWORD PTR [ESI+12], EAX\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV BYTE PTR [ESI+16], AL\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,8\r
+ MOV BYTE PTR [ESI+17], AL\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,1\r
+ MOV BYTE PTR [ESI+18], AL\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,100\r
+ MOV DWORD PTR [ESI+32], EAX\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,2\r
+ MOV DWORD PTR [ESI+36], EAX\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,760\r
+ MOV DWORD PTR [ESI+20], EAX\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,3\r
+ MOV BYTE PTR [ESI+19], AL\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,4096\r
+ MOV DWORD PTR [ESI+24], EAX\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,4096\r
+ MOV DWORD PTR [ESI+28], EAX\r
+ MOV EAX,4\r
+ MOV ESI,OFFSET _sSendBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,4096\r
+ MOV DWORD PTR [ESI], EAX\r
+ MOV EAX,4\r
+ MOV ESI,OFFSET _sRecvBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,4096\r
+ MOV DWORD PTR [ESI], EAX\r
+ PUSH 4\r
+ CALL FWORD PTR _MaskIRQ\r
+ PUSH 3\r
+ CALL FWORD PTR _MaskIRQ\r
+ PUSH 4\r
+ PUSH OFFSET _comISR0\r
+ CALL FWORD PTR _SetIRQVector\r
+ PUSH 3\r
+ PUSH OFFSET _comISR1\r
+ CALL FWORD PTR _SetIRQVector\r
+ PUSH 5\r
+ PUSH OFFSET _comdcb\r
+ PUSH 2\r
+ PUSH 1\r
+ CALL FWORD PTR _InitDevDr\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ MOV ESP,EBP\r
+ POP EBP\r
+ RETN\r
+_handleISR:\r
+ PUSH EBP\r
+ MOV EBP,ESP\r
+ SUB ESP,8\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _pRecvBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _pSendBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ MOV DWORD PTR [EBP-8], EAX\r
+L_2:\r
+ MOV EAX,1\r
+ AND EAX,EAX\r
+ JZ L_3\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ESI,OFFSET _int_id\r
+ ADD ESI,EAX\r
+ MOV EBX,ESI\r
+ PUSH EBX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _IIR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _InByte\r
+ POP EDX\r
+ MOV BYTE PTR [EDX], AL\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ESI,OFFSET _int_id\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ JMP L_5\r
+L_6:\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ESI,OFFSET _stat_byte\r
+ ADD ESI,EAX\r
+ MOV EBX,ESI\r
+ PUSH EBX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _LSR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _InByte\r
+ POP EDX\r
+ MOV BYTE PTR [EDX], AL\r
+ JMP L_4\r
+L_7:\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _cRecvBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV EBX,ESI\r
+ MOV ESI,OFFSET _sRecvBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBX]\r
+ CMP EAX,DWORD PTR [ESI]\r
+ SETE AL\r
+ AND AL,AL\r
+ JZ L_8\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _recv_error\r
+ ADD ESI,EAX\r
+ MOV EAX,805\r
+ MOV DWORD PTR [ESI], EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _THR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _InByte\r
+ JMP L_9\r
+L_8:\r
+ CLI\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _head_recv\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ MOV ESI,DWORD PTR [EBP-4]\r
+ ADD ESI,EAX\r
+ MOV EBX,ESI\r
+ PUSH EBX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _THR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _InByte\r
+ POP EDX\r
+ MOV BYTE PTR [EDX], AL\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _cRecvBuf\r
+ ADD ESI,EAX\r
+ INC DWORD PTR [ESI]\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _head_recv\r
+ ADD ESI,EAX\r
+ INC DWORD PTR [ESI]\r
+ MOV EAX,DWORD PTR [ESI]\r
+ CMP EAX,4096\r
+ SETE AL\r
+ AND AL,AL\r
+ JZ L_10\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _head_recv\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+ STI\r
+L_10:\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _recv_error\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+L_9:\r
+ JMP L_4\r
+L_11:\r
+ CLI\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _cSendBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ AND EAX,EAX\r
+ JZ L_12\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _tail_send\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ MOV ESI,DWORD PTR [EBP-8]\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _THR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _tail_send\r
+ ADD ESI,EAX\r
+ INC DWORD PTR [ESI]\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV EBX,ESI\r
+ MOV ESI,OFFSET _sSendBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBX]\r
+ CMP EAX,DWORD PTR [ESI]\r
+ SETE AL\r
+ AND AL,AL\r
+ JZ L_13\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _tail_send\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+L_13:\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _cSendBuf\r
+ ADD ESI,EAX\r
+ DEC DWORD PTR [ESI]\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ESI,OFFSET _fExpectInt\r
+ ADD ESI,EAX\r
+ MOV EAX,1\r
+ MOV BYTE PTR [ESI], AL\r
+ JMP L_14\r
+L_12:\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ESI,OFFSET _fExpectInt\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV BYTE PTR [ESI], AL\r
+L_14:\r
+ STI\r
+ JMP L_4\r
+L_15:\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ESI,OFFSET _mstat_byte\r
+ ADD ESI,EAX\r
+ MOV EBX,ESI\r
+ PUSH EBX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _MSR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _InByte\r
+ POP EDX\r
+ MOV BYTE PTR [EDX], AL\r
+ JMP L_4\r
+L_16:\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ESI,OFFSET _stat_byte\r
+ ADD ESI,EAX\r
+ MOV EBX,ESI\r
+ PUSH EBX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _LSR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _InByte\r
+ POP EDX\r
+ MOV BYTE PTR [EDX], AL\r
+L_17:\r
+ JMP L_18\r
+L_5:\r
+ CMP EAX,1\r
+ JE L_16\r
+ CMP EAX,0\r
+ JE L_15\r
+ CMP EAX,2\r
+ JE L_11\r
+ CMP EAX,4\r
+ JE L_7\r
+ CMP EAX,6\r
+ JE L_6\r
+ JMP L_17\r
+L_4:\r
+ JMP L_2\r
+L_3:\r
+L_18:\r
+ MOV ESP,EBP\r
+ POP EBP\r
+ RETN 4\r
+_comISR0:\r
+ PUSHAD\r
+ STI\r
+ XOR EAX,EAX\r
+ PUSH EAX\r
+ CALL _handleISR\r
+ PUSH 4\r
+ CALL FWORD PTR _EndOfIRQ\r
+ POPAD\r
+ IRETD\r
+_comISR1:\r
+ PUSHAD\r
+ STI\r
+ PUSH 1\r
+ CALL _handleISR\r
+ PUSH 3\r
+ CALL FWORD PTR _EndOfIRQ\r
+ POPAD\r
+ IRETD\r
+_ReadByteC:\r
+ PUSH EBP\r
+ MOV EBP,ESP\r
+ SUB ESP,8\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _pRecvBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ MOV DWORD PTR [EBP-8], EAX\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _recv_error\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ AND EAX,EAX\r
+ JZ L_21\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _recv_error\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ JMP L_22\r
+L_21:\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _cRecvBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ AND EAX,EAX\r
+ JZ L_23\r
+ MOV ESI,DWORD PTR [EBP+8]\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV EBX,ESI\r
+ MOV ESI,OFFSET _tail_recv\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ MOV ESI,DWORD PTR [EBP-8]\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ MOV BYTE PTR [EBX], AL\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _tail_recv\r
+ ADD ESI,EAX\r
+ INC DWORD PTR [ESI]\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV EBX,ESI\r
+ MOV ESI,OFFSET _sRecvBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBX]\r
+ CMP EAX,DWORD PTR [ESI]\r
+ SETE AL\r
+ AND AL,AL\r
+ JZ L_24\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _tail_recv\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+L_24:\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _cRecvBuf\r
+ ADD ESI,EAX\r
+ DEC DWORD PTR [ESI]\r
+ MOV EAX,DWORD PTR [ESI]\r
+ XOR EAX,EAX\r
+ JMP L_22\r
+L_23:\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI+36]\r
+ MOV DWORD PTR [EBP-4], EAX\r
+L_25:\r
+ MOV EAX,DWORD PTR [EBP-4]\r
+ DEC DWORD PTR [EBP-4]\r
+ AND EAX,EAX\r
+ JZ L_26\r
+ PUSH 1\r
+ CALL FWORD PTR _Sleep\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _cRecvBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ AND EAX,EAX\r
+ JZ L_27\r
+ MOV ESI,DWORD PTR [EBP+8]\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV EBX,ESI\r
+ MOV ESI,OFFSET _tail_recv\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ MOV ESI,DWORD PTR [EBP-8]\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ MOV BYTE PTR [EBX], AL\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _tail_recv\r
+ ADD ESI,EAX\r
+ INC DWORD PTR [ESI]\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV EBX,ESI\r
+ MOV ESI,OFFSET _sRecvBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBX]\r
+ CMP EAX,DWORD PTR [ESI]\r
+ SETE AL\r
+ AND AL,AL\r
+ JZ L_28\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _tail_recv\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+L_28:\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _cRecvBuf\r
+ ADD ESI,EAX\r
+ DEC DWORD PTR [ESI]\r
+ MOV EAX,DWORD PTR [ESI]\r
+ XOR EAX,EAX\r
+ JMP L_22\r
+L_27:\r
+ JMP L_25\r
+L_26:\r
+ MOV EAX,800\r
+L_22:\r
+ MOV ESP,EBP\r
+ POP EBP\r
+ RETN 8\r
+_ReadRecordC:\r
+ PUSH EBP\r
+ MOV EBP,ESP\r
+ SUB ESP,4\r
+ XOR EAX,EAX\r
+ MOV WORD PTR [EBP-2], AX\r
+ XOR EAX,EAX\r
+ MOV WORD PTR [EBP-4], AX\r
+L_29:\r
+ MOVSX EAX,WORD PTR [EBP-4]\r
+ MOVZX ECX,WORD PTR [EBP+12]\r
+ CMP EAX,ECX\r
+ SETB AL\r
+ AND AL,AL\r
+ JZ L_31\r
+ MOVSX EAX,WORD PTR [EBP-2]\r
+ AND EAX,EAX\r
+ SETZ AL\r
+ AND AL,AL\r
+L_31:\r
+ JZ L_30\r
+ PUSH DWORD PTR [EBP+20]\r
+ MOV ESI,DWORD PTR [EBP+16]\r
+ INC DWORD PTR [EBP+16]\r
+ PUSH DWORD PTR [ESI]\r
+ CALL _ReadByteC\r
+ MOV WORD PTR [EBP-2], AX\r
+ MOVSX EAX,WORD PTR [EBP-2]\r
+ AND EAX,EAX\r
+ JNZ L_32\r
+ INC WORD PTR [EBP-4]\r
+ MOVSX EAX,WORD PTR [EBP-4]\r
+L_32:\r
+ JMP L_29\r
+L_30:\r
+ MOV ESI,DWORD PTR [EBP+8]\r
+ MOVSX EAX,WORD PTR [EBP-4]\r
+ MOV WORD PTR [ESI], AX\r
+ MOVSX EAX,WORD PTR [EBP-2]\r
+ MOV ESP,EBP\r
+ POP EBP\r
+ RETN 16\r
+_WriteByteC:\r
+ PUSH EBP\r
+ MOV EBP,ESP\r
+ SUB ESP,12\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _pSendBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ MOV DWORD PTR [EBP-12], EAX\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI+32]\r
+ MOV DWORD PTR [EBP-8], EAX\r
+L_34:\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _cSendBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV EBX,ESI\r
+ MOV ESI,OFFSET _sSendBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBX]\r
+ CMP EAX,DWORD PTR [ESI]\r
+ SETE AL\r
+ AND AL,AL\r
+ JZ L_35\r
+ PUSH 1\r
+ CALL FWORD PTR _Sleep\r
+ MOV EAX,DWORD PTR [EBP-8]\r
+ DEC DWORD PTR [EBP-8]\r
+ MOV EAX,DWORD PTR [EBP-8]\r
+ AND EAX,EAX\r
+ JNZ L_36\r
+ MOV EAX,801\r
+ JMP L_37\r
+L_36:\r
+ JMP L_34\r
+L_35:\r
+ CLI\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ MOV ESI,OFFSET _fExpectInt\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ AND EAX,EAX\r
+ JNZ L_38\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP+8]\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _THR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ MOV ESI,OFFSET _fExpectInt\r
+ ADD ESI,EAX\r
+ MOV EAX,1\r
+ MOV BYTE PTR [ESI], AL\r
+ JMP L_39\r
+L_38:\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _head_send\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ MOV ESI,DWORD PTR [EBP-12]\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP+8]\r
+ MOV BYTE PTR [ESI], AL\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _head_send\r
+ ADD ESI,EAX\r
+ INC DWORD PTR [ESI]\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV EBX,ESI\r
+ MOV ESI,OFFSET _sSendBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBX]\r
+ CMP EAX,DWORD PTR [ESI]\r
+ SETE AL\r
+ AND AL,AL\r
+ JZ L_40\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _head_send\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+L_40:\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _cSendBuf\r
+ ADD ESI,EAX\r
+ INC DWORD PTR [ESI]\r
+ MOV EAX,DWORD PTR [ESI]\r
+L_39:\r
+ STI\r
+ MOV EAX,DWORD PTR [EBP-4]\r
+L_37:\r
+ MOV ESP,EBP\r
+ POP EBP\r
+ RETN 8\r
+_WriteRecordC:\r
+ PUSH EBP\r
+ MOV EBP,ESP\r
+ SUB ESP,2\r
+ XOR EAX,EAX\r
+ MOV WORD PTR [EBP-2], AX\r
+L_41:\r
+ MOVZX EAX,WORD PTR [EBP+8]\r
+ AND EAX,EAX\r
+ JZ L_43\r
+ MOVSX EAX,WORD PTR [EBP-2]\r
+ AND EAX,EAX\r
+ SETZ AL\r
+ AND AL,AL\r
+L_43:\r
+ JZ L_42\r
+ PUSH DWORD PTR [EBP+16]\r
+ MOV ESI,DWORD PTR [EBP+12]\r
+ INC DWORD PTR [EBP+12]\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ PUSH EAX\r
+ CALL _WriteByteC\r
+ MOV WORD PTR [EBP-2], AX\r
+ DEC WORD PTR [EBP+8]\r
+ MOVZX EAX,WORD PTR [EBP+8]\r
+ JMP L_41\r
+L_42:\r
+ MOVSX EAX,WORD PTR [EBP-2]\r
+ MOV ESP,EBP\r
+ POP EBP\r
+ RETN 12\r
+_DiscardRecvC:\r
+ PUSH EBP\r
+ MOV EBP,ESP\r
+ SUB ESP,9\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI+36]\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,1\r
+ MOV DWORD PTR [ESI+36], EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [EBP-8], EAX\r
+L_45:\r
+ MOV EAX,DWORD PTR [EBP-8]\r
+ AND EAX,EAX\r
+ JNZ L_46\r
+ PUSH DWORD PTR [EBP+8]\r
+ LEA EAX,BYTE PTR [EBP-9]\r
+ PUSH EAX\r
+ CALL _ReadByteC\r
+ MOV DWORD PTR [EBP-8], EAX\r
+ JMP L_45\r
+L_46:\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBP-4]\r
+ MOV DWORD PTR [ESI+36], EAX\r
+ XOR EAX,EAX\r
+ MOV ESP,EBP\r
+ POP EBP\r
+ RETN 4\r
+_SetParams:\r
+ PUSH EBP\r
+ MOV EBP,ESP\r
+ SUB ESP,13\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI+16]\r
+ MOV BYTE PTR [EBP-10], AL\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI+17]\r
+ MOV BYTE PTR [EBP-11], AL\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI+18]\r
+ MOV BYTE PTR [EBP-12], AL\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI+12]\r
+ MOV DWORD PTR [EBP-8], EAX\r
+ MOV EAX,115200\r
+ MOV ECX,DWORD PTR [EBP-8]\r
+ XOR EDX,EDX\r
+ DIV ECX\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ CLI\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _LCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _InByte\r
+ MOV BYTE PTR [EBP-9], AL\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-9]\r
+ MOV ECX,128\r
+ OR EAX,ECX\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _LCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ MOV EAX,DWORD PTR [EBP-4]\r
+ AND EAX,255\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _DLAB_LO\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ MOV EAX,DWORD PTR [EBP-4]\r
+ MOV ECX,8\r
+ SHR EAX,CL\r
+ AND EAX,255\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _DLAB_HI\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-9]\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _LCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ STI\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-11]\r
+ MOV ECX,5\r
+ SUB EAX,ECX\r
+ MOV BYTE PTR [EBP-13], AL\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-12]\r
+ CMP EAX,1\r
+ SETE AL\r
+ AND AL,AL\r
+ JZ SHORT L_49\r
+ XOR EAX,EAX\r
+ JMP SHORT L_48\r
+L_49:\r
+ MOV EAX,4\r
+L_48:\r
+ XOR ECX,ECX\r
+ MOV CL,BYTE PTR [EBP-13]\r
+ OR EAX,ECX\r
+ MOV BYTE PTR [EBP-13], AL\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-10]\r
+ JMP L_51\r
+L_52:\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-13]\r
+ XOR ECX,ECX\r
+ OR EAX,ECX\r
+ MOV BYTE PTR [EBP-13], AL\r
+ JMP L_50\r
+L_53:\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-13]\r
+ MOV ECX,8\r
+ OR EAX,ECX\r
+ MOV BYTE PTR [EBP-13], AL\r
+ JMP L_50\r
+L_54:\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-13]\r
+ MOV ECX,24\r
+ OR EAX,ECX\r
+ MOV BYTE PTR [EBP-13], AL\r
+ JMP L_50\r
+L_51:\r
+ CMP EAX,1\r
+ JE L_54\r
+ CMP EAX,2\r
+ JE L_53\r
+ CMP EAX,0\r
+ JE L_52\r
+L_50:\r
+ CLI\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-13]\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _LCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ STI\r
+ XOR EAX,EAX\r
+L_55:\r
+ MOV ESP,EBP\r
+ POP EBP\r
+ RETN 4\r
+_OpenCommC:\r
+ PUSH EBP\r
+ MOV EBP,ESP\r
+ SUB ESP,7\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ AND EAX,EAX\r
+ JZ L_56\r
+ MOV EAX,809\r
+ JMP L_57\r
+L_56:\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ PUSH ESI\r
+ CALL FWORD PTR _GetJobNum\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI+24]\r
+ MOV ECX,4096\r
+ XOR EDX,EDX\r
+ DIV ECX\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _pSendBuf\r
+ ADD ESI,EAX\r
+ PUSH ESI\r
+ CALL FWORD PTR _AllocOSPage\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ MOV EAX,DWORD PTR [EBP-4]\r
+ AND EAX,EAX\r
+ JNZ L_58\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI+28]\r
+ MOV ECX,4096\r
+ XOR EDX,EDX\r
+ DIV ECX\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _pRecvBuf\r
+ ADD ESI,EAX\r
+ PUSH ESI\r
+ CALL FWORD PTR _AllocOSPage\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ MOV EAX,DWORD PTR [EBP-4]\r
+ AND EAX,EAX\r
+ JZ L_59\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _pSendBuf\r
+ ADD ESI,EAX\r
+ PUSH DWORD PTR [ESI]\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI+24]\r
+ MOV ECX,4096\r
+ XOR EDX,EDX\r
+ DIV ECX\r
+ PUSH EAX\r
+ CALL FWORD PTR _DeAllocPage\r
+L_59:\r
+L_58:\r
+ MOV EAX,DWORD PTR [EBP-4]\r
+ AND EAX,EAX\r
+ JZ L_60\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+ MOV EAX,DWORD PTR [EBP-4]\r
+ JMP L_57\r
+L_60:\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI+20]\r
+ MOV WORD PTR [EBP-6], AX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _cSendBuf\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _head_send\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _tail_send\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _cRecvBuf\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _head_recv\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _tail_recv\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _recv_error\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _THR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [EBP-6]\r
+ MOV WORD PTR [ESI], AX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _IER\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [EBP-6]\r
+ MOV ECX,1\r
+ ADD EAX,ECX\r
+ MOV WORD PTR [ESI], AX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _IIR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [EBP-6]\r
+ MOV ECX,2\r
+ ADD EAX,ECX\r
+ MOV WORD PTR [ESI], AX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _FCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [EBP-6]\r
+ MOV ECX,2\r
+ ADD EAX,ECX\r
+ MOV WORD PTR [ESI], AX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _LCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [EBP-6]\r
+ MOV ECX,3\r
+ ADD EAX,ECX\r
+ MOV WORD PTR [ESI], AX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _MCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [EBP-6]\r
+ MOV ECX,4\r
+ ADD EAX,ECX\r
+ MOV WORD PTR [ESI], AX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _LSR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [EBP-6]\r
+ MOV ECX,5\r
+ ADD EAX,ECX\r
+ MOV WORD PTR [ESI], AX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _MSR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [EBP-6]\r
+ MOV ECX,6\r
+ ADD EAX,ECX\r
+ MOV WORD PTR [ESI], AX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _DLAB_HI\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [EBP-6]\r
+ MOV ECX,1\r
+ ADD EAX,ECX\r
+ MOV WORD PTR [ESI], AX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _DLAB_LO\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [EBP-6]\r
+ MOV WORD PTR [ESI], AX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _THR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _InByte\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _LSR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _InByte\r
+ CLI\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ESI,OFFSET _control_byte\r
+ ADD ESI,EAX\r
+ MOV EAX,11\r
+ MOV BYTE PTR [ESI], AL\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ESI,OFFSET _control_byte\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _MCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ PUSH 15\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _IER\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ PUSH 3\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _FCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _IIR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _InByte\r
+ MOV BYTE PTR [EBP-7], AL\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-7]\r
+ MOV ECX,192\r
+ AND EAX,ECX\r
+ JZ L_61\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ESI,OFFSET _f16550\r
+ ADD ESI,EAX\r
+ MOV EAX,1\r
+ MOV BYTE PTR [ESI], AL\r
+ JMP L_62\r
+L_61:\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ESI,OFFSET _f16550\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV BYTE PTR [ESI], AL\r
+L_62:\r
+ STI\r
+ PUSH DWORD PTR [EBP+8]\r
+ CALL _SetParams\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI+19]\r
+ PUSH EAX\r
+ CALL FWORD PTR _UnMaskIRQ\r
+ XOR EAX,EAX\r
+L_57:\r
+ MOV ESP,EBP\r
+ POP EBP\r
+ RETN 4\r
+_CloseCommC:\r
+ PUSH EBP\r
+ MOV EBP,ESP\r
+ SUB ESP,4\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI+19]\r
+ PUSH EAX\r
+ CALL FWORD PTR _MaskIRQ\r
+ XOR EAX,EAX\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _MCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ XOR EAX,EAX\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _IER\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _pSendBuf\r
+ ADD ESI,EAX\r
+ PUSH DWORD PTR [ESI]\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI+24]\r
+ MOV ECX,4096\r
+ XOR EDX,EDX\r
+ DIV ECX\r
+ PUSH EAX\r
+ CALL FWORD PTR _DeAllocPage\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _pRecvBuf\r
+ ADD ESI,EAX\r
+ PUSH DWORD PTR [ESI]\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI+28]\r
+ MOV ECX,4096\r
+ XOR EDX,EDX\r
+ DIV ECX\r
+ PUSH EAX\r
+ CALL FWORD PTR _DeAllocPage\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [ESI], EAX\r
+ MOV EAX,DWORD PTR [EBP-4]\r
+ MOV ESP,EBP\r
+ POP EBP\r
+ RETN 4\r
+_comdev_op:\r
+ PUSH EBP\r
+ MOV EBP,ESP\r
+ SUB ESP,13\r
+ MOV EAX,DWORD PTR [EBP+24]\r
+ CMP EAX,5\r
+ SETE AL\r
+ AND AL,AL\r
+ JZ L_64\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [EBP-12], EAX\r
+ JMP L_65\r
+L_64:\r
+ MOV EAX,1\r
+ MOV DWORD PTR [EBP-12], EAX\r
+L_65:\r
+ LEA EAX,DWORD PTR [EBP-8]\r
+ PUSH EAX\r
+ CALL FWORD PTR _GetJobNum\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ AND EAX,EAX\r
+ SETZ AL\r
+ AND AL,AL\r
+ JZ L_66\r
+ MOV EAX,DWORD PTR [EBP+20]\r
+ CMP EAX,10\r
+ SETNE AL\r
+ AND AL,AL\r
+L_66:\r
+ JZ L_67\r
+ MOV EAX,807\r
+ JMP L_68\r
+L_67:\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ AND EAX,EAX\r
+ JZ L_69\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ CMP EAX,DWORD PTR [EBP-8]\r
+ SETNE AL\r
+ AND AL,AL\r
+ JZ L_70\r
+ MOV EAX,DWORD PTR [EBP-8]\r
+ CMP EAX,1\r
+ SETNE AL\r
+ AND AL,AL\r
+L_70:\r
+ JZ L_71\r
+ MOV EAX,812\r
+ JMP L_68\r
+L_71:\r
+L_69:\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ MOV EAX,DWORD PTR [EBP+20]\r
+ JMP L_73\r
+L_74:\r
+ JMP L_72\r
+L_75:\r
+ PUSH DWORD PTR [EBP-12]\r
+ PUSH DWORD PTR [EBP+8]\r
+ CALL _ReadByteC\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ JMP L_72\r
+L_76:\r
+ PUSH DWORD PTR [EBP-12]\r
+ MOV ESI,DWORD PTR [EBP+8]\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ PUSH EAX\r
+ CALL _WriteByteC\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ JMP L_72\r
+L_77:\r
+ PUSH DWORD PTR [EBP-12]\r
+ PUSH DWORD PTR [EBP+8]\r
+ PUSH DWORD PTR [EBP+12]\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,ESI\r
+ ADD EAX,8\r
+ PUSH EAX\r
+ CALL _ReadRecordC\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ JMP L_72\r
+L_78:\r
+ PUSH DWORD PTR [EBP-12]\r
+ PUSH DWORD PTR [EBP+8]\r
+ PUSH DWORD PTR [EBP+12]\r
+ CALL _WriteRecordC\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ JMP L_72\r
+L_79:\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBP+16]\r
+ MOV DWORD PTR [ESI+36], EAX\r
+ JMP L_72\r
+L_80:\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBP+16]\r
+ MOV DWORD PTR [ESI+32], EAX\r
+ JMP L_72\r
+L_81:\r
+ PUSH DWORD PTR [EBP-12]\r
+ CALL _OpenCommC\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ JMP L_72\r
+L_82:\r
+ PUSH DWORD PTR [EBP-12]\r
+ CALL _CloseCommC\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ JMP L_72\r
+L_83:\r
+ PUSH DWORD PTR [EBP-12]\r
+ CALL _DiscardRecvC\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ JMP L_72\r
+L_84:\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ESI,OFFSET _control_byte\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ MOV ECX,1\r
+ OR EAX,ECX\r
+ MOV BYTE PTR [ESI], AL\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ESI,OFFSET _control_byte\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _LCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ JMP L_72\r
+L_85:\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ESI,OFFSET _control_byte\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ MOV ECX,2\r
+ OR EAX,ECX\r
+ MOV BYTE PTR [ESI], AL\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ESI,OFFSET _control_byte\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _MCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ JMP L_72\r
+L_86:\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ESI,OFFSET _control_byte\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ MOV ECX,-2\r
+ AND EAX,ECX\r
+ MOV BYTE PTR [ESI], AL\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ESI,OFFSET _control_byte\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _LCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+L_87:\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ESI,OFFSET _control_byte\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ MOV ECX,-3\r
+ AND EAX,ECX\r
+ MOV BYTE PTR [ESI], AL\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ESI,OFFSET _control_byte\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _MCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ JMP L_72\r
+L_88:\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _LCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _InByte\r
+ MOV BYTE PTR [EBP-13], AL\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-13]\r
+ MOV ECX,64\r
+ OR EAX,ECX\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _LCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ PUSH DWORD PTR [EBP+16]\r
+ CALL FWORD PTR _Sleep\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-13]\r
+ PUSH EAX\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ SHL EAX,1\r
+ MOV ESI,OFFSET _LCR\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [ESI]\r
+ PUSH EAX\r
+ CALL FWORD PTR _OutByte\r
+ JMP L_72\r
+L_89:\r
+ MOV ESI,DWORD PTR [EBP+8]\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV EBX,ESI\r
+ MOV ESI,OFFSET _mstat_byte\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ MOV ECX,128\r
+ AND EAX,ECX\r
+ MOV BYTE PTR [EBX], AL\r
+ JMP L_72\r
+L_90:\r
+ MOV ESI,DWORD PTR [EBP+8]\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV EBX,ESI\r
+ MOV ESI,OFFSET _mstat_byte\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ MOV ECX,32\r
+ AND EAX,ECX\r
+ MOV BYTE PTR [EBX], AL\r
+ JMP L_72\r
+L_91:\r
+ MOV ESI,DWORD PTR [EBP+8]\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV EBX,ESI\r
+ MOV ESI,OFFSET _mstat_byte\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ MOV ECX,16\r
+ AND EAX,ECX\r
+ MOV BYTE PTR [EBX], AL\r
+ JMP L_72\r
+L_92:\r
+ MOV ESI,DWORD PTR [EBP+8]\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV EBX,ESI\r
+ MOV ESI,OFFSET _mstat_byte\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI]\r
+ MOV ECX,64\r
+ AND EAX,ECX\r
+ MOV BYTE PTR [EBX], AL\r
+ JMP L_72\r
+L_93:\r
+ JMP L_72\r
+L_73:\r
+ CMP EAX,23\r
+ JE L_92\r
+ CMP EAX,22\r
+ JE L_91\r
+ CMP EAX,21\r
+ JE L_90\r
+ CMP EAX,20\r
+ JE L_89\r
+ CMP EAX,19\r
+ JE L_88\r
+ CMP EAX,18\r
+ JE L_87\r
+ CMP EAX,17\r
+ JE L_86\r
+ CMP EAX,16\r
+ JE L_85\r
+ CMP EAX,15\r
+ JE L_84\r
+ CMP EAX,12\r
+ JE L_83\r
+ CMP EAX,11\r
+ JE L_82\r
+ CMP EAX,10\r
+ JE L_81\r
+ CMP EAX,14\r
+ JE L_80\r
+ CMP EAX,13\r
+ JE L_79\r
+ CMP EAX,2\r
+ JE L_78\r
+ CMP EAX,1\r
+ JE L_77\r
+ CMP EAX,32\r
+ JE L_76\r
+ CMP EAX,31\r
+ JE L_75\r
+ CMP EAX,0\r
+ JE L_74\r
+ JMP L_93\r
+L_72:\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBP-4]\r
+ MOV DWORD PTR [ESI+4], EAX\r
+ MOV EAX,DWORD PTR [EBP-4]\r
+L_68:\r
+ MOV ESP,EBP\r
+ POP EBP\r
+ RETN 20\r
+_comdev_stat:\r
+ PUSH EBP\r
+ MOV EBP,ESP\r
+ SUB ESP,8\r
+ MOV EAX,DWORD PTR [EBP+20]\r
+ CMP EAX,5\r
+ SETE AL\r
+ AND AL,AL\r
+ JZ L_94\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [EBP-8], EAX\r
+ JMP L_95\r
+L_94:\r
+ MOV EAX,1\r
+ MOV DWORD PTR [EBP-8], EAX\r
+L_95:\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ CMP EAX,64\r
+ SETA AL\r
+ AND AL,AL\r
+ JZ L_96\r
+ MOV EAX,64\r
+ MOV DWORD PTR [EBP-4], EAX\r
+ JMP L_97\r
+L_96:\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ MOV DWORD PTR [EBP-4], EAX\r
+L_97:\r
+ MOV EAX,DWORD PTR [EBP-8]\r
+ AND EAX,EAX\r
+ JNZ L_98\r
+ PUSH OFFSET _comstat\r
+ PUSH DWORD PTR [EBP+16]\r
+ PUSH DWORD PTR [EBP-4]\r
+ CALL FWORD PTR _CopyData\r
+ JMP L_99\r
+L_98:\r
+ MOV EAX,64\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ PUSH ESI\r
+ PUSH DWORD PTR [EBP+16]\r
+ PUSH DWORD PTR [EBP-4]\r
+ CALL FWORD PTR _CopyData\r
+L_99:\r
+ MOV ESI,DWORD PTR [EBP+8]\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ MOV DWORD PTR [ESI], EAX\r
+ XOR EAX,EAX\r
+ MOV ESP,EBP\r
+ POP EBP\r
+ RETN 16\r
+_comdev_init:\r
+ PUSH EBP\r
+ MOV EBP,ESP\r
+ SUB ESP,34\r
+ MOV EAX,DWORD PTR [EBP+16]\r
+ CMP EAX,5\r
+ SETE AL\r
+ AND AL,AL\r
+ JZ L_101\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [EBP-16], EAX\r
+ JMP L_102\r
+L_101:\r
+ MOV EAX,1\r
+ MOV DWORD PTR [EBP-16], EAX\r
+L_102:\r
+ MOV EAX,DWORD PTR [EBP+8]\r
+ CMP EAX,40\r
+ SETB AL\r
+ AND AL,AL\r
+ JZ L_103\r
+ MOV EAX,827\r
+ JMP L_104\r
+L_103:\r
+ MOV EAX,DWORD PTR [EBP+12]\r
+ MOV _pCS, EAX\r
+ MOV ESI,_pCS\r
+ MOV EAX,DWORD PTR [ESI+12]\r
+ MOV DWORD PTR [EBP-20], EAX\r
+ MOV ESI,_pCS\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI+16]\r
+ MOV BYTE PTR [EBP-31], AL\r
+ MOV ESI,_pCS\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI+17]\r
+ MOV BYTE PTR [EBP-32], AL\r
+ MOV ESI,_pCS\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI+18]\r
+ MOV BYTE PTR [EBP-33], AL\r
+ MOV ESI,_pCS\r
+ MOV EAX,DWORD PTR [ESI+32]\r
+ MOV DWORD PTR [EBP-24], EAX\r
+ MOV ESI,_pCS\r
+ MOV EAX,DWORD PTR [ESI+36]\r
+ MOV DWORD PTR [EBP-28], EAX\r
+ MOV ESI,_pCS\r
+ MOV EAX,DWORD PTR [ESI+20]\r
+ MOV WORD PTR [EBP-30], AX\r
+ MOV ESI,_pCS\r
+ MOV EAX,DWORD PTR [ESI+24]\r
+ MOV DWORD PTR [EBP-8], EAX\r
+ MOV ESI,_pCS\r
+ MOV EAX,DWORD PTR [ESI+28]\r
+ MOV DWORD PTR [EBP-12], EAX\r
+ MOV ESI,_pCS\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [ESI+19]\r
+ MOV BYTE PTR [EBP-34], AL\r
+ MOV EAX,DWORD PTR [EBP-20]\r
+ CMP EAX,38400\r
+ SETA AL\r
+ AND AL,AL\r
+ JNZ L_105\r
+ MOV EAX,DWORD PTR [EBP-20]\r
+ CMP EAX,150\r
+ SETB AL\r
+ AND AL,AL\r
+L_105:\r
+ JZ L_106\r
+ MOV EAX,820\r
+ JMP L_104\r
+L_106:\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-31]\r
+ XOR ECX,ECX\r
+ CMP EAX,ECX\r
+ SETB AL\r
+ AND AL,AL\r
+ JNZ L_107\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-31]\r
+ CMP EAX,2\r
+ SETA AL\r
+ AND AL,AL\r
+L_107:\r
+ JZ L_108\r
+ MOV EAX,821\r
+ JMP L_104\r
+L_108:\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-32]\r
+ CMP EAX,5\r
+ SETB AL\r
+ AND AL,AL\r
+ JNZ L_109\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-32]\r
+ CMP EAX,8\r
+ SETA AL\r
+ AND AL,AL\r
+L_109:\r
+ JZ L_110\r
+ MOV EAX,822\r
+ JMP L_104\r
+L_110:\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-33]\r
+ CMP EAX,1\r
+ SETB AL\r
+ AND AL,AL\r
+ JNZ L_111\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-33]\r
+ CMP EAX,2\r
+ SETA AL\r
+ AND AL,AL\r
+L_111:\r
+ JZ L_112\r
+ MOV EAX,823\r
+ JMP L_104\r
+L_112:\r
+ MOV EAX,DWORD PTR [EBP-24]\r
+ AND EAX,EAX\r
+ JNZ L_113\r
+ MOV EAX,1\r
+ MOV DWORD PTR [EBP-24], EAX\r
+L_113:\r
+ MOV EAX,DWORD PTR [EBP-28]\r
+ AND EAX,EAX\r
+ JNZ L_114\r
+ MOV EAX,1\r
+ MOV DWORD PTR [EBP-28], EAX\r
+L_114:\r
+ MOV EAX,DWORD PTR [EBP-16]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBP-20]\r
+ MOV DWORD PTR [ESI+12], EAX\r
+ MOV EAX,DWORD PTR [EBP-16]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-31]\r
+ MOV BYTE PTR [ESI+16], AL\r
+ MOV EAX,DWORD PTR [EBP-16]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-32]\r
+ MOV BYTE PTR [ESI+17], AL\r
+ MOV EAX,DWORD PTR [EBP-16]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-33]\r
+ MOV BYTE PTR [ESI+18], AL\r
+ MOV EAX,DWORD PTR [EBP-16]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBP-24]\r
+ MOV DWORD PTR [ESI+32], EAX\r
+ MOV EAX,DWORD PTR [EBP-16]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBP-28]\r
+ MOV DWORD PTR [ESI+36], EAX\r
+ MOV EAX,DWORD PTR [EBP-16]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [ESI]\r
+ AND EAX,EAX\r
+ JZ L_115\r
+ PUSH DWORD PTR [EBP-16]\r
+ CALL _SetParams\r
+ JMP L_116\r
+L_115:\r
+ MOVZX EAX,WORD PTR [EBP-30]\r
+ AND EAX,EAX\r
+ JNZ L_117\r
+ MOV EAX,824\r
+ JMP L_104\r
+L_117:\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-34]\r
+ CMP EAX,3\r
+ SETB AL\r
+ AND AL,AL\r
+ JZ L_118\r
+ MOV EAX,825\r
+ JMP L_104\r
+L_118:\r
+ MOV EAX,DWORD PTR [EBP-8]\r
+ MOV ECX,4096\r
+ XOR EDX,EDX\r
+ DIV ECX\r
+ MOV ECX,4096\r
+ MUL ECX\r
+ MOV DWORD PTR [EBP-8], EAX\r
+ MOV EAX,DWORD PTR [EBP-8]\r
+ MOV ECX,4096\r
+ XOR EDX,EDX\r
+ DIV ECX\r
+ MOV EAX,EDX\r
+ AND EAX,EAX\r
+ JZ L_119\r
+ MOV EAX,DWORD PTR [EBP-8]\r
+ ADD EAX,4096\r
+ MOV DWORD PTR [EBP-8], EAX\r
+L_119:\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ECX,4096\r
+ XOR EDX,EDX\r
+ DIV ECX\r
+ MOV ECX,4096\r
+ MUL ECX\r
+ MOV DWORD PTR [EBP-12], EAX\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV ECX,4096\r
+ XOR EDX,EDX\r
+ DIV ECX\r
+ MOV EAX,EDX\r
+ AND EAX,EAX\r
+ JZ L_120\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ ADD EAX,4096\r
+ MOV DWORD PTR [EBP-12], EAX\r
+L_120:\r
+ MOV EAX,DWORD PTR [EBP-16]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOVZX EAX,WORD PTR [EBP-30]\r
+ MOV DWORD PTR [ESI+20], EAX\r
+ MOV EAX,DWORD PTR [EBP-16]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ XOR EAX,EAX\r
+ MOV AL,BYTE PTR [EBP-34]\r
+ MOV BYTE PTR [ESI+19], AL\r
+ MOV EAX,DWORD PTR [EBP-16]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBP-8]\r
+ MOV DWORD PTR [ESI+24], EAX\r
+ MOV EAX,DWORD PTR [EBP-16]\r
+ MOV ECX,64\r
+ MUL ECX\r
+ MOV ESI,OFFSET _comstat\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV DWORD PTR [ESI+28], EAX\r
+ MOV EAX,DWORD PTR [EBP-16]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _sSendBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBP-8]\r
+ MOV DWORD PTR [ESI], EAX\r
+ MOV EAX,DWORD PTR [EBP-16]\r
+ SHL EAX,2\r
+ MOV ESI,OFFSET _sRecvBuf\r
+ ADD ESI,EAX\r
+ MOV EAX,DWORD PTR [EBP-12]\r
+ MOV DWORD PTR [ESI], EAX\r
+ XOR EAX,EAX\r
+ MOV DWORD PTR [EBP-4], EAX\r
+L_116:\r
+ MOV EAX,DWORD PTR [EBP-4]\r
+L_104:\r
+ MOV ESP,EBP\r
+ POP EBP\r
+ RETN 12\r