; Source File Generated on 10-04-2003 @ hh:mm:ss by BCET_Gen Version 0.04 (Beta) ; (Time left out to make generation compare easier - jlw) ; Later - all the compile & generation options will be listed here Include BcetXc.Inc ; This is Optional! Include Bcet.Inc ; This is REQUIRED! fdSet_T Struc fdCount_ Dword ? fdArray_ Dword 64 dup (?) fdSet_T Ends timeval_T Struc tvSec_ Dword ? tvUsec_ Dword ? timeval_T Ends hostent_T Struc hName_ Dword ? hAliases_ Dword ? hAddrtype_ Word ? hLength_ Word ? hAddrList_ Dword ? hostent_T Ends netent_T Struc nName_ Dword ? nAliases_ Dword ? nAddrtype_ Word ? nNet_ Dword ? netent_T Ends servent_T Struc sName_ Dword ? sAliases_ Dword ? sPort_ Word ? sProto_ Dword ? servent_T Ends protoent_T Struc pName_ Dword ? pAliases_ Dword ? pProto_ Word ? protoent_T Ends InAddr_T Struc Saddr_ Dword ? InAddr_T Ends sockaddrIn_T Struc sinFamily_ Word ? sinPort_ Word ? sinAddr_ Dword ? sinZero_ Byte 8 dup (?) sockaddrIn_T Ends WsaData_T Struc wVersion_ Word ? wHighVersion_ Word ? szDescription_ Byte 257 dup (?) szSystemStatus_ Byte 129 dup (?) iMaxSockets_ Word ? iMaxUdpDg_ Word ? lpVendorInfo_ Dword ? WsaData_T Ends SOCKADDR_T Struc saFamily_ Word ? saData_ Byte 14 dup (?) SOCKADDR_T Ends sockproto_T Struc spFamily_ Word ? spProtocol_ Word ? sockproto_T Ends accept Proto StdCall :Dword, :Ptr, :Ptr bind Proto StdCall :Dword, :Ptr, :Dword closesocket Proto StdCall :Dword connect Proto StdCall :Dword, :Ptr, :Dword ioctlsocket Proto StdCall :Dword, :Dword, :Ptr getpeername Proto StdCall :Dword, :Ptr, :Ptr getsockname Proto StdCall :Dword, :Ptr, :Ptr getsockopt Proto StdCall :Dword, :Dword, :Dword, :$Str, :Ptr htonl Proto StdCall :Dword htons Proto StdCall :Dword inet_addr Proto StdCall :$Str inet_ntoa Proto StdCall :Dword listen Proto StdCall :Dword, :Dword ntonl Proto StdCall :Dword ntons Proto StdCall :Dword recv Proto StdCall :Dword, :$Str, :Dword, :Dword recvfrom Proto StdCall :Dword, :$Str, :Dword, :Dword, :Ptr, :Ptr select Proto StdCall :Dword, :Ptr, :Ptr, :Ptr, :Ptr send Proto StdCall :Dword, :$Str, :Dword, :Dword sendto Proto StdCall :Dword, :$Str, :Dword, :Dword, :Ptr, :Ptr setsockopt Proto StdCall :Dword, :Dword, :Dword, :$Str, :Ptr shutdown Proto StdCall :Dword, :Dword socket Proto StdCall :Dword, :Dword, :Dword gethostbyaddr Proto StdCall :$Str, :Dword, :Dword gethostbyname Proto StdCall :$Str gethostname Proto StdCall :$Str, :Dword WSAStartup Proto StdCall :Word, :Ptr WSACleanup Proto StdCall WSAGetLastError Proto StdCall LastShellReturnCode Proto Basic GetMouseFlag Proto Basic :Ptr GetMouse Proto Basic GetKeyFlag Proto Basic :Ptr GetKey Proto Basic GetInput Proto Basic GetInputFlag Proto Basic :Ptr GetLongPP Proto Basic :Dword, :Ptr GetCharP Proto Basic :Dword GetCharPP Proto Basic :Dword, :Dword, :$Str GetStruc Proto Basic :Dword, :Ptr, :Dword IncludeLib ws2_32.lib ?ModuleStart Dword CHKMAIL_Module Byte 'B', 0, 4, 0 ; version info Dword 0 ; String Pool Size Dword 0 ; Nothing Yet @CurSeg Ends ?StringConst Align 4 Dword 6 String_0001 Byte "ws2_32", 0 Align 4 Dword 15 String_0002 Byte "Check for Email", 0 Align 4 Dword 15 String_0003 Byte "WsaStartup Rc: ", 0 Align 4 Dword 14 String_0004 Byte "192.168.100.33", 0 Align 4 Dword 9 String_0005 Byte "Trying: [", 0 Align 4 Dword 1 String_0006 Byte "]", 0 Align 4 Dword 27 String_0007 Byte "socket WsaGetLastError Rc: ", 0 Align 4 Dword 28 String_0008 Byte "connect WsaGetLastError Rc: ", 0 Align 4 Dword 13 String_0009 Byte "Logging in...", 0 Align 4 Dword 13 String_0010 Byte "USER username", 0 Align 4 Dword 13 String_0011 Byte "PASS password", 0 Align 4 Dword 1 String_0012 Byte " ", 0 Align 4 Dword 9 String_0013 Byte "You have ", 0 Align 4 Dword 12 String_0014 Byte " messages...", 0 Align 4 Dword 4 String_0015 Byte "quit", 0 Align 4 Dword 32 String_0016 Byte "closesocket WsaGetLastError Rc: ", 0 Align 4 Dword 31 String_0017 Byte "WsaCleanup WsaGetLastError Rc: ", 0 Align 4 Dword 25 String_0018 Byte "recv WsaGetLastError Rc: ", 0 Align 4 Dword 25 String_0019 Byte "send WsaGetLastError Rc: ", 0 @CurSeg Ends ?NumberConst Number_0001 Dword 63 ; "63" Number_0002 Dword 13 ; "13" Number_0003 Dword 10 ; "10" Number_0004 Dword 11 ; "11" Number_0005 Dword -1 ; "-1" Number_0006 Dword 514 ; "&H202" Number_0007 Dword 0 ; "0" Number_0008 Dword 2 ; "2" Number_0009 Dword 110 ; "110" Number_0010 Dword 8 ; "8" Number_0011 Dword 1 ; "1" Number_0012 Dword 16 ; "16" Number_0013 Dword 512 ; "512" ; Block: 1: Module: CHKMAIL_Module ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ; Block Init Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; StmtData 1: DIM SHARED Src Line: 1468 @CurSeg Ends ?UserVars CRLF_$_v_0_282 $Str 0 ; StmtData 2: DIM Src Line: 1470 W_T_vat_0_283 WsaData_T <> ; StmtData 3: DIM Src Line: 1471 h_T_vat_0_284 hostent_T <> ; StmtData 4: DIM Src Line: 1472 SAin_T_vat_0_285 sockaddrIn_T <> ; StmtData 5: DIM Src Line: 1473 Rc_L_v_0_286 Dword 0 ; StmtData 6: DIM Src Line: 1473 Rd_L_v_0_287 Dword 0 ; StmtData 7: DIM Src Line: 1473 V_L_v_0_288 Dword 0 ; StmtData 8: DIM Src Line: 1473 Re_L_v_0_289 Dword 0 ; StmtData 9: DIM Src Line: 1473 n_$_v_0_290 $Str 0 ; StmtData 10: DIM Src Line: 1473 n_L_v_0_291 Dword 0 ; StmtData 11: DIM Src Line: 1473 Sh_L_v_0_292 Dword 0 ; StmtData 12: DIM Src Line: 1473 I_L_v_0_293 Dword 0 ; StmtData 13: DIM Src Line: 1473 Flags_L_v_0_294 Dword 0 ; StmtData 14: vardim Src Line: 1475 _StrTmp_00001 $Str 0 ; StmtData 15: vardim Src Line: 1475 _StrTmp_00002 $Str 0 ; Block Init End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ @CurSeg Ends .code CHKMAIL_Module Proc ; Block Variable Init Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; Block Variable Init End Code ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; Block Statements Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; ===> CRLF = CHR$(13) + CHR$(10) ' Per the RFC ; Stmt 16: Assignment Src Line: 1475 push 13 ; Sys Fun Call, Name=CHR$ RT=L, RC=C, Ty=Num, Val="13" call jf$CHR$_L_$@4 mov edi, eax push 10 ; Sys Fun Call, Name=CHR$ RT=L, RC=C, Ty=Num, Val="10" call jf$CHR$_L_$@4 push edi push eax push Offset CRLF_$_v_0_282 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=CRLF_$_v_0_282 call j$StringConcatAssign@12 ; GS: 'dVarBvR4 $' RT=$, RC=V, Ty=Sym, Name=CRLF_$_v_0_282 ; ===> COLOR 11: CLS ; Stmt 17: COLOR Src Line: 1477 push 11 ; RT=L, RC=C, Ty=Num, Val="11" push -1 ; RT=L, RC=C, Ty=Num, Val="-1" call js$Color@8 ; ===> COLOR 11: CLS ; Stmt 18: CLS Src Line: 1477 call js$Cls@0 ; ===> PRINT "Check for Email" ; Stmt 19: PRINT Src Line: 1478 push Offset String_0002 ; RT=$, RC=C, Ty=Str, Value="Check for Email" call js$Print$@4 ; ===> PRINT ; Stmt 20: PRINT Src Line: 1479 call js$Print@0 ; ===> V = &H202 ' (byte)minor + (byte)major ; Stmt 21: Assignment Src Line: 1481 mov V_L_v_0_288, 514 ; GS: 'dVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=V_L_v_0_288 RT=L, RC=C, Ty=Num, Val="&H202" ; ===> Rc = WsaStartup(V, W) ; Stmt 22: Assignment Src Line: 1482 push Offset W_T_vat_0_283 ; PA: Parameter 1 GA: 'dVaTBvR4 t' RT=T, RC=V, Ty=Sym, Name=W_T_vat_0_283 push V_L_v_0_288 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=V_L_v_0_288 PA: Parameter 2, E: 4 P: 2 call WSAStartup ; Usr Fun Call, Name=WSAStartup mov Rc_L_v_0_286, eax ; GS: 'dVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_0_286 ; ===> IF Rc <> 0 THEN ; Stmt 23: IF Src Line: 1483 cmp Rc_L_v_0_286, 0 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_0_286 je IF_01002 ; ===> PRINT "WsaStartup Rc: ", Rc ; Stmt 24: PRINT COMMA Src Line: 1484 push Offset String_0003 ; RT=$, RC=C, Ty=Str, Value="WsaStartup Rc: " call js$PrintComma$@4 ; ===> PRINT "WsaStartup Rc: ", Rc ; Stmt 25: PRINT Src Line: 1484 push Rc_L_v_0_286 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_0_286 call js$PrintL@4 ; ===> GOTO CloseIt ; Stmt 26: GOTO Src Line: 1485 jmp L_CloseIt ; ===> END IF ; Stmt 27: ENDIF Src Line: 1486 IF_01001: ; IF Exit Label IF_01002: ; ; ===> n$ = "192.168.100.33" ' **** change this to match your system **** ; Stmt 28: Assignment Src Line: 1488 push Offset String_0004 ; RT=$, RC=C, Ty=Str, Value="192.168.100.33" push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 call j$StringAssign@8 ; GS: 'dVarBvR4 $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 ; ===> PRINT "Trying: [" + n$ + "]" ; Stmt 29: PRINT Src Line: 1489 push Offset String_0005 ; RT=$, RC=C, Ty=Str, Value="Trying: [" push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 call j$StringConcat@8 push eax push Offset String_0006 ; RT=$, RC=C, Ty=Str, Value="]" call j$StringConcat@8 push eax call js$Print$@4 ; ===> I = inetaddr(n$) ; Stmt 30: Assignment Src Line: 1490 lea edi, n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 PA: Parameter 1 push [edi] ; byval string - use ACTUAL string address call inet_addr ; Usr Fun Call, Name=inet_addr mov I_L_v_0_293, eax ; GS: 'dVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=I_L_v_0_293 ; ===> SAin.sinFamily = afInet ; Stmt 31: Assignment Src Line: 1494 mov SAin_T_vat_0_285.sinFamily_, 2; GS: 'dCvrBvR2 %' RT=I, RC=V, Ty=Sym, Name=SAin_T_vat_0_285.sinFamily_ RT=L, RC=C, Ty=Num, Val="2" ; ===> SAin.sinPort = htons(IpPortPOP3) ; Stmt 32: Assignment Src Line: 1495 push 110 ; PA: Parameter 1 RT=L, RC=C, Ty=Num, Val="110" call htons ; Usr Fun Call, Name=htons mov SAin_T_vat_0_285.sinPort_, ax; GS: 'dCvrBvR2 %' RT=I, RC=V, Ty=Sym, Name=SAin_T_vat_0_285.sinPort_ ; ===> SAin.sinAddr = I ; Stmt 33: Assignment Src Line: 1497 mov edi, I_L_v_0_293 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=I_L_v_0_293 mov SAin_T_vat_0_285.sinAddr_, edi; GS: 'dCvrBvR4 &' RT=L, RC=V, Ty=Sym, Name=SAin_T_vat_0_285.sinAddr_ ; ===> SAin.sinZero = STRING$(8, 0) ' was already zeroed out ; Stmt 34: Assignment Src Line: 1498 push 8 ; Sys Fun Call, Name=STRING$ RT=L, RC=C, Ty=Num, Val="8" push 0 ; RT=L, RC=C, Ty=Num, Val="0" call jf$STRING$_LL_$@8 push eax push Offset SAin_T_vat_0_285.sinZero_ push 8 ; GS: 'dCvrBvR4 e' RT=fls, RC=V, Ty=Sym, Name=SAin_T_vat_0_285.sinZero_ call j$StringVar2Fix@12 ; ===> Sh = socket(afInet, SockStream, IpProtoIP) ; Stmt 35: Assignment Src Line: 1502 push 0 ; PA: Parameter 1 RT=L, RC=C, Ty=Num, Val="0" push 1 ; PA: Parameter 2 RT=L, RC=C, Ty=Num, Val="1" push 2 ; PA: Parameter 3 RT=L, RC=C, Ty=Num, Val="2" call socket ; Usr Fun Call, Name=socket mov Sh_L_v_0_292, eax ; GS: 'dVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Sh_L_v_0_292 ; ===> IF Sh = InvalidSocket THEN ; Stmt 36: IF Src Line: 1503 cmp Sh_L_v_0_292, -1 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Sh_L_v_0_292 jne IF_01004 ; ===> Rd = WsaGetLastError ; Stmt 37: Assignment Src Line: 1504 call WSAGetLastError ; Usr Fun Call, Name=WSAGetLastError mov Rd_L_v_0_287, eax ; GS: 'dVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Rd_L_v_0_287 ; ===> PRINT "socket WsaGetLastError Rc: ", Rd ; Stmt 38: PRINT COMMA Src Line: 1505 push Offset String_0007 ; RT=$, RC=C, Ty=Str, Value="socket WsaGetLastError Rc: " call js$PrintComma$@4 ; ===> PRINT "socket WsaGetLastError Rc: ", Rd ; Stmt 39: PRINT Src Line: 1505 push Rd_L_v_0_287 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rd_L_v_0_287 call js$PrintL@4 ; ===> GOTO CloseIt ; Stmt 40: GOTO Src Line: 1506 jmp L_CloseIt ; ===> END IF ; Stmt 41: ENDIF Src Line: 1507 IF_01003: ; IF Exit Label IF_01004: ; ; ===> Rc = connect(Sh, SAin, LEN(SAin)) ; Stmt 42: Assignment Src Line: 1509 push 16 ; PA: Parameter 1 RT=L, RC=C, Ty=Num, Val="16" push Offset SAin_T_vat_0_285 ; PA: Parameter 2 GA: 'dVaTBvR4 t' RT=T, RC=V, Ty=Sym, Name=SAin_T_vat_0_285 push Sh_L_v_0_292 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Sh_L_v_0_292 PA: Parameter 3 call connect ; Usr Fun Call, Name=connect mov Rc_L_v_0_286, eax ; GS: 'dVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_0_286 ; ===> IF Rc = SocketError THEN ; Stmt 43: IF Src Line: 1510 cmp Rc_L_v_0_286, -1 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_0_286 jne IF_01006 ; ===> Rd = WsaGetLastError ; Stmt 44: Assignment Src Line: 1511 call WSAGetLastError ; Usr Fun Call, Name=WSAGetLastError mov Rd_L_v_0_287, eax ; GS: 'dVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Rd_L_v_0_287 ; ===> PRINT "connect WsaGetLastError Rc: ", Rd ; Stmt 45: PRINT COMMA Src Line: 1512 push Offset String_0008 ; RT=$, RC=C, Ty=Str, Value="connect WsaGetLastError Rc: " call js$PrintComma$@4 ; ===> PRINT "connect WsaGetLastError Rc: ", Rd ; Stmt 46: PRINT Src Line: 1512 push Rd_L_v_0_287 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rd_L_v_0_287 call js$PrintL@4 ; ===> GOTO CloseIt ; Stmt 47: GOTO Src Line: 1513 jmp L_CloseIt ; ===> END IF ; Stmt 48: ENDIF Src Line: 1514 IF_01005: ; IF Exit Label IF_01006: ; ; ===> IF SockRecv(Sh, n$) GOTO CloseIt ; Stmt 49: IF Src Line: 1518 push Sh_L_v_0_292 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Sh_L_v_0_292 PA: Parameter 1 push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 PA: Parameter 2 call SockRecv ; Usr Fun Call, Name=SockRecv or eax, eax jz IF_01008 ; ===> IF SockRecv(Sh, n$) GOTO CloseIt ; Stmt 50: GOTO Src Line: 1518 jmp L_CloseIt ; ===> IF SockRecv(Sh, n$) GOTO CloseIt ; Stmt 51: ENDIF Src Line: 1518 IF_01007: ; IF Exit Label IF_01008: ; ; ===> PRINT "Logging in..." ; Stmt 52: PRINT Src Line: 1523 push Offset String_0009 ; RT=$, RC=C, Ty=Str, Value="Logging in..." call js$Print$@4 ; ===> n$ = "USER username" + CRLF ' **** change this to match your system **** ; Stmt 53: Assignment Src Line: 1524 push Offset String_0010 ; RT=$, RC=C, Ty=Str, Value="USER username" push Offset CRLF_$_v_0_282 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=CRLF_$_v_0_282 push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 call j$StringConcatAssign@12 ; GS: 'dVarBvR4 $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 ; ===> IF SockSend(Sh, n$) GOTO CloseIt ; Stmt 54: IF Src Line: 1525 push Sh_L_v_0_292 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Sh_L_v_0_292 PA: Parameter 1 push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 PA: Parameter 2 call SockSend ; Usr Fun Call, Name=SockSend or eax, eax jz IF_01010 ; ===> IF SockSend(Sh, n$) GOTO CloseIt ; Stmt 55: GOTO Src Line: 1525 jmp L_CloseIt ; ===> IF SockSend(Sh, n$) GOTO CloseIt ; Stmt 56: ENDIF Src Line: 1525 IF_01009: ; IF Exit Label IF_01010: ; ; ===> IF SockRecv(Sh, n$) GOTO CloseIt ; Stmt 57: IF Src Line: 1529 push Sh_L_v_0_292 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Sh_L_v_0_292 PA: Parameter 1 push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 PA: Parameter 2 call SockRecv ; Usr Fun Call, Name=SockRecv or eax, eax jz IF_01012 ; ===> IF SockRecv(Sh, n$) GOTO CloseIt ; Stmt 58: GOTO Src Line: 1529 jmp L_CloseIt ; ===> IF SockRecv(Sh, n$) GOTO CloseIt ; Stmt 59: ENDIF Src Line: 1529 IF_01011: ; IF Exit Label IF_01012: ; ; ===> n$ = "PASS password" + CRLF ' **** change this to match your system **** ; Stmt 60: Assignment Src Line: 1534 push Offset String_0011 ; RT=$, RC=C, Ty=Str, Value="PASS password" push Offset CRLF_$_v_0_282 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=CRLF_$_v_0_282 push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 call j$StringConcatAssign@12 ; GS: 'dVarBvR4 $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 ; ===> IF SockSend(Sh, n$) GOTO CloseIt ; Stmt 61: IF Src Line: 1535 push Sh_L_v_0_292 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Sh_L_v_0_292 PA: Parameter 1 push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 PA: Parameter 2 call SockSend ; Usr Fun Call, Name=SockSend or eax, eax jz IF_01014 ; ===> IF SockSend(Sh, n$) GOTO CloseIt ; Stmt 62: GOTO Src Line: 1535 jmp L_CloseIt ; ===> IF SockSend(Sh, n$) GOTO CloseIt ; Stmt 63: ENDIF Src Line: 1535 IF_01013: ; IF Exit Label IF_01014: ; ; ===> IF SockRecv(Sh, n$) GOTO CloseIt ; Stmt 64: IF Src Line: 1539 push Sh_L_v_0_292 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Sh_L_v_0_292 PA: Parameter 1 push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 PA: Parameter 2 call SockRecv ; Usr Fun Call, Name=SockRecv or eax, eax jz IF_01016 ; ===> IF SockRecv(Sh, n$) GOTO CloseIt ; Stmt 65: GOTO Src Line: 1539 jmp L_CloseIt ; ===> IF SockRecv(Sh, n$) GOTO CloseIt ; Stmt 66: ENDIF Src Line: 1539 IF_01015: ; IF Exit Label IF_01016: ; ; ===> n$ = MID$(n$, INSTR(1, n$, " ") + 1) ; Stmt 67: Assignment Src Line: 1542 push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 Sys Fun Call, Name=MID$ push 1 ; Sys Fun Call, Name=INSTR RT=L, RC=C, Ty=Num, Val="1" push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 push Offset String_0012 ; RT=$, RC=C, Ty=Str, Value=" " call jf$INSTR_L$$_L@12 mov edi, eax inc edi ; RT=L, RC=C, Ty=Num, Val="1" push edi call jf$MID$_$L_$@8 push eax push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 call j$StringAssign@8 ; GS: 'dVarBvR4 $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 ; ===> n$ = LEFT$(n$, INSTR(1, n$, " ") - 1) ; Stmt 68: Assignment Src Line: 1543 push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 Sys Fun Call, Name=LEFT$ push 1 ; Sys Fun Call, Name=INSTR RT=L, RC=C, Ty=Num, Val="1" push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 push Offset String_0012 ; RT=$, RC=C, Ty=Str, Value=" " call jf$INSTR_L$$_L@12 mov edi, eax dec edi ; RT=L, RC=C, Ty=Num, Val="1" push edi call jf$LEFT$_$L_$@8 push eax push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 call j$StringAssign@8 ; GS: 'dVarBvR4 $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 ; ===> PRINT "You have " + n$ + " messages..." ; Stmt 69: PRINT Src Line: 1544 push Offset String_0013 ; RT=$, RC=C, Ty=Str, Value="You have " push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 call j$StringConcat@8 push eax push Offset String_0014 ; RT=$, RC=C, Ty=Str, Value=" messages..." call j$StringConcat@8 push eax call js$Print$@4 ; ===> n$ = "quit" + CRLF ; Stmt 70: Assignment Src Line: 1548 push Offset String_0015 ; RT=$, RC=C, Ty=Str, Value="quit" push Offset CRLF_$_v_0_282 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=CRLF_$_v_0_282 push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 call j$StringConcatAssign@12 ; GS: 'dVarBvR4 $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 ; ===> IF SockSend(Sh, n$) GOTO CloseIt ; Stmt 71: IF Src Line: 1549 push Sh_L_v_0_292 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Sh_L_v_0_292 PA: Parameter 1 push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 PA: Parameter 2 call SockSend ; Usr Fun Call, Name=SockSend or eax, eax jz IF_01018 ; ===> IF SockSend(Sh, n$) GOTO CloseIt ; Stmt 72: GOTO Src Line: 1549 jmp L_CloseIt ; ===> IF SockSend(Sh, n$) GOTO CloseIt ; Stmt 73: ENDIF Src Line: 1549 IF_01017: ; IF Exit Label IF_01018: ; ; ===> IF SockRecv(Sh, n$) GOTO CloseIt ; Stmt 74: IF Src Line: 1553 push Sh_L_v_0_292 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Sh_L_v_0_292 PA: Parameter 1 push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 PA: Parameter 2 call SockRecv ; Usr Fun Call, Name=SockRecv or eax, eax jz IF_01020 ; ===> IF SockRecv(Sh, n$) GOTO CloseIt ; Stmt 75: GOTO Src Line: 1553 jmp L_CloseIt ; ===> IF SockRecv(Sh, n$) GOTO CloseIt ; Stmt 76: ENDIF Src Line: 1553 IF_01019: ; IF Exit Label IF_01020: ; ; ===> CloseIt: ; Stmt 77: jlwlabel Src Line: 1556 L_CloseIt: ; ; ===> Rc = closesocket(Sh) ; Stmt 78: Assignment Src Line: 1557 push Sh_L_v_0_292 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Sh_L_v_0_292 PA: Parameter 1 call closesocket ; Usr Fun Call, Name=closesocket mov Rc_L_v_0_286, eax ; GS: 'dVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_0_286 ; ===> IF Rc <> 0 THEN ; Stmt 79: IF Src Line: 1558 cmp Rc_L_v_0_286, 0 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_0_286 je IF_01022 ; ===> Rd = WsaGetLastError ; Stmt 80: Assignment Src Line: 1559 call WSAGetLastError ; Usr Fun Call, Name=WSAGetLastError mov Rd_L_v_0_287, eax ; GS: 'dVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Rd_L_v_0_287 ; ===> PRINT "closesocket WsaGetLastError Rc: ", Rd ; Stmt 81: PRINT COMMA Src Line: 1560 push Offset String_0016 ; RT=$, RC=C, Ty=Str, Value="closesocket WsaGetLastError Rc: " call js$PrintComma$@4 ; ===> PRINT "closesocket WsaGetLastError Rc: ", Rd ; Stmt 82: PRINT Src Line: 1560 push Rd_L_v_0_287 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rd_L_v_0_287 call js$PrintL@4 ; ===> END IF ; Stmt 83: ENDIF Src Line: 1561 IF_01021: ; IF Exit Label IF_01022: ; ; ===> Rc = WsaCleanup ; Stmt 84: Assignment Src Line: 1563 call WSACleanup ; Usr Fun Call, Name=WSACleanup mov Rc_L_v_0_286, eax ; GS: 'dVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_0_286 ; ===> IF Rc <> 0 THEN ; Stmt 85: IF Src Line: 1564 cmp Rc_L_v_0_286, 0 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_0_286 je IF_01024 ; ===> Rd = WsaGetLastError ; Stmt 86: Assignment Src Line: 1565 call WSAGetLastError ; Usr Fun Call, Name=WSAGetLastError mov Rd_L_v_0_287, eax ; GS: 'dVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Rd_L_v_0_287 ; ===> PRINT "WsaCleanup WsaGetLastError Rc: ", Rd ; Stmt 87: PRINT COMMA Src Line: 1566 push Offset String_0017 ; RT=$, RC=C, Ty=Str, Value="WsaCleanup WsaGetLastError Rc: " call js$PrintComma$@4 ; ===> PRINT "WsaCleanup WsaGetLastError Rc: ", Rd ; Stmt 88: PRINT Src Line: 1566 push Rd_L_v_0_287 ; GL: 'dVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rd_L_v_0_287 call js$PrintL@4 ; ===> END IF ; Stmt 89: ENDIF Src Line: 1567 IF_01023: ; IF Exit Label IF_01024: ; ; ===> END ; Stmt 90: END Src Line: 1569 call js$End@0 ; Block Statements End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; Block Cleanup Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; StmtDone 1: DIM SHARED Src Line: 1468 push Offset CRLF_$_v_0_282 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=CRLF_$_v_0_282 call j$StringDelete@4 ; StmtDone 9: DIM Src Line: 1473 push Offset n_$_v_0_290 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=n_$_v_0_290 call j$StringDelete@4 ; StmtDone 14: vardim Src Line: 1475 push Offset _StrTmp_00001 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=_StrTmp_00001 call j$StringDelete@4 ; StmtDone 15: vardim Src Line: 1475 push Offset _StrTmp_00002 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=_StrTmp_00002 call j$StringDelete@4 ; Block Cleanup End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ret CHKMAIL_Module EndP ; Block: 2: Function: GetStr ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ GetStr Proc \ s_$_v_1_302:$Str ; Block Init Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; StmtData 91: vardim Src Line: 1571 ; Aparameter, Name=s_$_v_1_302 - $Str ; StmtData 92: vardim Src Line: 1573 Local GetStr_$_frv_1_303:$Str ; StmtData 93: vardim Src Line: 1573 Local _StrTmp_00003:$Str ; StmtData 94: vardim Src Line: 1573 Local _StrTmp_00004:$Str ; Block Init End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ call j$RoutineEntry ; Block Variable Init Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; Block Variable Init End Code ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; Block Statements Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; ===> GetStr$ = LEFT$(s$, INSTR(s$, CHR$(0)) - 1) ; Stmt 95: Assignment Src Line: 1573 push s_$_v_1_302 ; GL: 'pVarBrR4g $' RT=$, RC=V, Ty=Sym, Name=s_$_v_1_302 Sys Fun Call, Name=LEFT$ push s_$_v_1_302 ; GL: 'pVarBrR4g $' RT=$, RC=V, Ty=Sym, Name=s_$_v_1_302 Sys Fun Call, Name=INSTR push 0 ; Sys Fun Call, Name=CHR$ RT=L, RC=C, Ty=Num, Val="0" call jf$CHR$_L_$@4 push eax call jf$INSTR_$$_L@8 mov edi, eax dec edi ; RT=L, RC=C, Ty=Num, Val="1" push edi call jf$LEFT$_$L_$@8 push eax lea edi, GetStr_$_frv_1_303 ; GL: 'sFrvBvR4g $' RT=$, RC=V, Ty=Sym, Name=GetStr_$_frv_1_303 push edi call j$StringAssign@8 ; GS: 'sFrvBvR4 $' RT=$, RC=V, Ty=Sym, Name=GetStr_$_frv_1_303 ; Block Statements End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ FS_01025: ; Block Exit Label ; Block Cleanup Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; StmtDone 93: vardim Src Line: 1573 lea edi, _StrTmp_00003 ; GL: 'sVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=_StrTmp_00003 push edi call j$StringDelete@4 ; StmtDone 94: vardim Src Line: 1573 lea edi, _StrTmp_00004 ; GL: 'sVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=_StrTmp_00004 push edi call j$StringDelete@4 ; StmtDone 92: vardim Src Line: 1573 lea eax, GetStr_$_frv_1_303 ; GA: 'sFrvBvR4 $' RT=$, RC=V, Ty=Sym, Name=GetStr_$_frv_1_303 call S$StringReturn ; Block Cleanup End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ call j$RoutineExit mov eax, j_Func_$ ; Load Frv - load address of descriptor ret GetStr EndP ; Block: 3: Function: SockRecv ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ SockRecv Proc \ Sh_L_v_2_306:Dword, \ Buf_$_v_2_307:$Str ; Block Init Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; StmtData 96: vardim Src Line: 1577 ; Aparameter, Name=Sh_L_v_2_306 - Dword ; StmtData 97: vardim Src Line: 1577 ; Aparameter, Name=Buf_$_v_2_307 - $Str ; StmtData 98: vardim Src Line: 1579 Local SockRecv_L_frv_2_308:Dword ; StmtData 99: DIM Src Line: 1579 Local Flags_L_v_2_309:Dword ; StmtData 100: DIM Src Line: 1579 Local Rc_L_v_2_310:Dword ; StmtData 101: DIM Src Line: 1579 Local Rd_L_v_2_311:Dword ; StmtData 102: vardim Src Line: 1581 Local _StrTmp_00005:$Str ; StmtData 114: vardim Src Line: 1590 Local _StrTmp_00006:$Str ; StmtData 115: vardim Src Line: 1590 Local _StrTmp_00007:$Str ; Block Init End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ call j$RoutineEntry ; Block Variable Init Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; Block Variable Init End Code ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; Block Statements Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; ===> Buf$ = SPACE$(512) ; Stmt 103: Assignment Src Line: 1581 push 512 ; Sys Fun Call, Name=SPACE$ RT=L, RC=C, Ty=Num, Val="512" call jf$SPACE$_L_$@4 push eax push Buf_$_v_2_307 ; GS: 'pVarBrR4 $' RT=$, RC=V, Ty=Sym, Name=Buf_$_v_2_307 call j$StringAssign@8 ; ===> Flags = 0 ; Stmt 104: Assignment Src Line: 1582 mov Flags_L_v_2_309, 0 ; GS: 'sVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Flags_L_v_2_309 RT=L, RC=C, Ty=Num, Val="0" ; ===> Rc = recv(Sh, Buf$, LEN(Buf$), Flags) ; Stmt 105: Assignment Src Line: 1583 push Flags_L_v_2_309 ; GL: 'sVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Flags_L_v_2_309 PA: Parameter 1 push Buf_$_v_2_307 ; GL: 'pVarBrR4g $' RT=$, RC=V, Ty=Sym, Name=Buf_$_v_2_307 PA: Parameter 2 Sys Fun Call, Name=LEN call jf$LEN_$_L@4 push eax mov edi, Buf_$_v_2_307 ; GL: 'pVarBrR4g $' RT=$, RC=V, Ty=Sym, Name=Buf_$_v_2_307 PA: Parameter 3 mov edi, [edi] ; byval string - use ACTUAL string address push edi push Sh_L_v_2_306 ; GL: 'pVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Sh_L_v_2_306 PA: Parameter 4 call recv ; Usr Fun Call, Name=recv mov Rc_L_v_2_310, eax ; GS: 'sVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_2_310 ; ===> IF Rc = SocketError THEN ; Stmt 106: IF Src Line: 1584 cmp Rc_L_v_2_310, -1 ; GL: 'sVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_2_310 jne IF_01028 ; ===> Rd = WsaGetLastError ; Stmt 107: Assignment Src Line: 1585 call WSAGetLastError ; Usr Fun Call, Name=WSAGetLastError mov Rd_L_v_2_311, eax ; GS: 'sVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Rd_L_v_2_311 ; ===> PRINT "recv WsaGetLastError Rc: ", Rd ; Stmt 108: PRINT COMMA Src Line: 1586 push Offset String_0018 ; RT=$, RC=C, Ty=Str, Value="recv WsaGetLastError Rc: " call js$PrintComma$@4 ; ===> PRINT "recv WsaGetLastError Rc: ", Rd ; Stmt 109: PRINT Src Line: 1586 push Rd_L_v_2_311 ; GL: 'sVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rd_L_v_2_311 call js$PrintL@4 ; ===> SockRecv = True ; Stmt 110: Assignment Src Line: 1587 mov SockRecv_L_frv_2_308, -1; GS: 'sFrvBvR4 &' RT=L, RC=V, Ty=Sym, Name=SockRecv_L_frv_2_308 RT=L, RC=C, Ty=Num, Val="-1" ; ===> ELSE ; Stmt 111: ELSE Src Line: 1588 jmp IF_01027 ; case else IF_01028: ; ; ===> Buf$ = LEFT$(Buf$, Rc) ; Stmt 112: Assignment Src Line: 1589 push Buf_$_v_2_307 ; GL: 'pVarBrR4g $' RT=$, RC=V, Ty=Sym, Name=Buf_$_v_2_307 Sys Fun Call, Name=LEFT$ push Rc_L_v_2_310 ; GL: 'sVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_2_310 call jf$LEFT$_$L_$@8 push eax push Buf_$_v_2_307 ; GS: 'pVarBrR4 $' RT=$, RC=V, Ty=Sym, Name=Buf_$_v_2_307 call j$StringAssign@8 ; ===> IF RIGHT$(Buf$, 2) = CRLF THEN Buf$ = LEFT$(Buf$, Rc - 2) ; Stmt 113: IF Src Line: 1590 push Buf_$_v_2_307 ; GL: 'pVarBrR4g $' RT=$, RC=V, Ty=Sym, Name=Buf_$_v_2_307 Sys Fun Call, Name=RIGHT$ push 2 ; RT=L, RC=C, Ty=Num, Val="2" call jf$RIGHT$_$L_$@8 push eax push Offset CRLF_$_v_0_282 ; GL: 'dVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=CRLF_$_v_0_282 call j$StringCompare@8 jne IF_01031 ; ===> IF RIGHT$(Buf$, 2) = CRLF THEN Buf$ = LEFT$(Buf$, Rc - 2) ; Stmt 116: Assignment Src Line: 1590 push Buf_$_v_2_307 ; GL: 'pVarBrR4g $' RT=$, RC=V, Ty=Sym, Name=Buf_$_v_2_307 Sys Fun Call, Name=LEFT$ mov edi, Rc_L_v_2_310 ; GL: 'sVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_2_310 sub edi, 2 ; RT=L, RC=C, Ty=Num, Val="2" push edi call jf$LEFT$_$L_$@8 push eax push Buf_$_v_2_307 ; GS: 'pVarBrR4 $' RT=$, RC=V, Ty=Sym, Name=Buf_$_v_2_307 call j$StringAssign@8 ; ===> IF RIGHT$(Buf$, 2) = CRLF THEN Buf$ = LEFT$(Buf$, Rc - 2) ; Stmt 117: ENDIF Src Line: 1590 IF_01030: ; IF Exit Label IF_01031: ; ; ===> END IF ; Stmt 118: ENDIF Src Line: 1591 IF_01027: ; IF Exit Label IF_01029: ; ; Block Statements End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ FS_01026: ; Block Exit Label ; Block Cleanup Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; StmtDone 102: vardim Src Line: 1581 lea edi, _StrTmp_00005 ; GL: 'sVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=_StrTmp_00005 push edi call j$StringDelete@4 ; StmtDone 114: vardim Src Line: 1590 lea edi, _StrTmp_00006 ; GL: 'sVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=_StrTmp_00006 push edi call j$StringDelete@4 ; StmtDone 115: vardim Src Line: 1590 lea edi, _StrTmp_00007 ; GL: 'sVarBvR4g $' RT=$, RC=V, Ty=Sym, Name=_StrTmp_00007 push edi call j$StringDelete@4 ; StmtDone 98: vardim Src Line: 1579 ; Block Cleanup End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ call j$RoutineExit mov eax, SockRecv_L_frv_2_308; Load Frv ret SockRecv EndP ; Block: 4: Function: SockSend ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ SockSend Proc \ Sh_L_v_3_315:Dword, \ Buf_$_v_3_316:$Str ; Block Init Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; StmtData 119: vardim Src Line: 1595 ; Aparameter, Name=Sh_L_v_3_315 - Dword ; StmtData 120: vardim Src Line: 1595 ; Aparameter, Name=Buf_$_v_3_316 - $Str ; StmtData 121: vardim Src Line: 1597 Local SockSend_L_frv_3_317:Dword ; StmtData 122: DIM Src Line: 1597 Local Flags_L_v_3_318:Dword ; StmtData 123: DIM Src Line: 1597 Local Rc_L_v_3_319:Dword ; StmtData 124: DIM Src Line: 1597 Local Rd_L_v_3_320:Dword ; Block Init End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ call j$RoutineEntry ; Block Variable Init Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; Block Variable Init End Code ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; Block Statements Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; ===> Flags = 0 ; Stmt 125: Assignment Src Line: 1599 mov Flags_L_v_3_318, 0 ; GS: 'sVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Flags_L_v_3_318 RT=L, RC=C, Ty=Num, Val="0" ; ===> Rc = send(Sh, Buf$, LEN(Buf$), Flags) ; Stmt 126: Assignment Src Line: 1600 push Flags_L_v_3_318 ; GL: 'sVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Flags_L_v_3_318 PA: Parameter 1 push Buf_$_v_3_316 ; GL: 'pVarBrR4g $' RT=$, RC=V, Ty=Sym, Name=Buf_$_v_3_316 PA: Parameter 2 Sys Fun Call, Name=LEN call jf$LEN_$_L@4 push eax mov edi, Buf_$_v_3_316 ; GL: 'pVarBrR4g $' RT=$, RC=V, Ty=Sym, Name=Buf_$_v_3_316 PA: Parameter 3 mov edi, [edi] ; byval string - use ACTUAL string address push edi push Sh_L_v_3_315 ; GL: 'pVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Sh_L_v_3_315 PA: Parameter 4 call send ; Usr Fun Call, Name=send mov Rc_L_v_3_319, eax ; GS: 'sVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_3_319 ; ===> IF Rc = SocketError THEN ; Stmt 127: IF Src Line: 1601 cmp Rc_L_v_3_319, -1 ; GL: 'sVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rc_L_v_3_319 jne IF_01034 ; ===> Rd = WsaGetLastError ; Stmt 128: Assignment Src Line: 1602 call WSAGetLastError ; Usr Fun Call, Name=WSAGetLastError mov Rd_L_v_3_320, eax ; GS: 'sVarBvR4 &' RT=L, RC=V, Ty=Sym, Name=Rd_L_v_3_320 ; ===> PRINT "send WsaGetLastError Rc: ", Rd ; Stmt 129: PRINT COMMA Src Line: 1603 push Offset String_0019 ; RT=$, RC=C, Ty=Str, Value="send WsaGetLastError Rc: " call js$PrintComma$@4 ; ===> PRINT "send WsaGetLastError Rc: ", Rd ; Stmt 130: PRINT Src Line: 1603 push Rd_L_v_3_320 ; GL: 'sVarBvR4g &' RT=L, RC=V, Ty=Sym, Name=Rd_L_v_3_320 call js$PrintL@4 ; ===> SockSend = True ; Stmt 131: Assignment Src Line: 1604 mov SockSend_L_frv_3_317, -1; GS: 'sFrvBvR4 &' RT=L, RC=V, Ty=Sym, Name=SockSend_L_frv_3_317 RT=L, RC=C, Ty=Num, Val="-1" ; ===> ELSE ; Stmt 132: ELSE Src Line: 1605 jmp IF_01033 ; case else IF_01034: ; ; ===> SockSend = False ; Stmt 133: Assignment Src Line: 1606 mov SockSend_L_frv_3_317, 0 ; GS: 'sFrvBvR4 &' RT=L, RC=V, Ty=Sym, Name=SockSend_L_frv_3_317 RT=L, RC=C, Ty=Num, Val="0" ; ===> END IF ; Stmt 134: ENDIF Src Line: 1607 IF_01033: ; IF Exit Label IF_01035: ; ; Block Statements End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ FS_01032: ; Block Exit Label ; Block Cleanup Begin ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; StmtDone 121: vardim Src Line: 1597 ; Block Cleanup End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ call j$RoutineExit mov eax, SockSend_L_frv_3_317; Load Frv ret SockSend EndP ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ End ; Gen Code Completed!