Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 1 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 1 /*****************************************************************************/ 2 /* 3 ProxyNet.c 4 5 ************* 6 ** CAUTION ** 7 ************* 8 9 THIS MODULE IS TASK-ORIENTED, NOT REQUEST-ORIENTED. 10 11 That is, most of the functions take a pointer to proxy task rather than a 12 pointer to request as do other modules. The reason is simple. Many of these 13 functions are designed for use independently of a request. 14 15 This module provides the essential networking functionality for proxy 16 processing. It also maintains the pool of persistent proxy->origin server 17 connections. 18 19 20 VERSION HISTORY 21 --------------- 22 27-APR-2021 MGD BSD 4.4 sockaddr.. IO$M_EXTEND to $QIO 23 19-JAN-2020 MGD more proxy persistent connection (per JPP) 24 11-AUG-2015 MGD restructure of network I/O abstractions 25 09-APR-2011 MGD ProxyNetLocalPort() for access logging purposes 26 08-NOV-2006 JPP bugfix; ProxyNetConnectPersist() rejects all further 27 requests once ProxyConnectPersistMax has been hit 28 04-JUL-2006 MGD use PercentOf32() for more accurate percentages 29 21-APR-2006 JPP client to origin server affinity 30 20-JUL-2005 JPP proxy to origin server failover 31 (support multiple IP addresses per name in the host cache) 32 09-JUN-2005 MGD bugfix; ProxyEnd(rqptr) should be ProxyEnd(tkptr) in 33 ProxyNetHostConnectAst() (jpp@esme.fr) 34 20-SEP-2004 MGD extracted functionality from PROXY.C 35 */ 36 /*****************************************************************************/ 37 38 #ifdef WASD_VMS_V7 39 #undef _VMS__V6__SOURCE 40 #define _VMS__V6__SOURCE 41 #undef __VMS_VER 42 #define __VMS_VER 70000000 43 #undef __CRTL_VER 44 #define __CRTL_VER 70000000 45 #endif 46 47 /* standard C header files */ 48 #include 963 #include 1174 #include 2256 #include 2729 2730 /* VMS related header files */ 2731 #include 3797 #include 4332 #include 6208 #include Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 2 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 6332 #include 10696 #include 10992 10993 /* application-related header files */ 10994 #include "wasd.h" 68434 68435 #define WASD_MODULE "PROXYNET" 68436 68437 /******************/ 68438 /* global storage */ 68439 /******************/ 68440 68441 int ProxyNetConnectCount, 68442 ProxyNetConnectCountMax, 68443 ProxyNetConnectFreeCount; 68444 68445 int64 ProxyNetConnectTimeoutDelta; 68446 68447 LIST_HEAD ProxyNetConnectList, 68448 ProxyNetConnectFreeList; 68449 68450 /********************/ 68451 /* external storage */ 68452 /********************/ 68453 68454 extern BOOL LoggingProxyLocalPort; 68455 68456 extern int EfnWait, 68457 EfnNoWait, 68458 HttpdTickSecond, 68459 OptionEnabled, 68460 ProxyConnectTimeoutSeconds; 68461 68462 extern char ErrorSanityCheck[], 68463 SoftwareID[]; 68464 68465 extern struct dsc$descriptor TcpIpDeviceDsc; 68466 68467 extern ACCOUNTING_STRUCT *AccountingPtr; 68468 extern PROXY_ACCOUNTING_STRUCT *ProxyAccountingPtr; 68469 extern MSG_STRUCT Msgs; 68470 extern TCP_SOCKET_ITEM TcpIpSocket4, 68471 TcpIpSocket6; 68472 extern VMS_ITEM_LIST2 ReuseAddress, 68473 ReuseAddressSocketOption, 68474 TcpIpFullDuplexCloseOption; 68475 extern WATCH_STRUCT Watch; 68476 68477 /****************************************************************************/ 68478 /* 68479 */ 68480 68481 ProxyNetInit () 68482 1 68483 { 1 68484 int status; 1 68485 Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 3 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 1 68486 /*********/ 1 68487 /* begin */ 1 68488 /*********/ 1 68489 1 68490 if (WATCH_MODULE(WATCH_MOD_PROXY)) 1 68491 WatchThis (WATCHALL, WATCH_MOD_PROXY, "ProxyNetInit()"); 1 68492 1 68493 if (ProxyConnectTimeoutSeconds < 0 || ProxyConnectTimeoutSeconds > 60) 1 68494 ProxyConnectTimeoutSeconds = 0; 1 68495 else 1 68496 if (ProxyConnectTimeoutSeconds) 1 68497 ProxyNetConnectTimeoutDelta = DELTA64_ONE_SEC * 1 68498 ProxyConnectTimeoutSeconds; 1 68499 } 68500 68501 68502 /****************************************************************************/ 68503 /* 68504 No need to resolve if this proxy server chains to another. Otherwise, allow 68505 TcpIpNameToAddress() to asynchronously resolve the name or numeric address into 68506 the IP address and then call ProxyNetHostConnect() when ready. 68507 */ 68508 68509 ProxyNetResolveHost (PROXY_TASK *tkptr) 68510 1 68511 { 1 68512 /*********/ 1 68513 /* begin */ 1 68514 /*********/ 1 68515 1 68516 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 68517 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 1 68518 "ProxyNetResolveHost() !&Z", tkptr->RequestHostName); 1 68519 1 68520 if (IPADDRESS_IS_RESET (&tkptr->ChainIpAddress)) 2 68521 { 2 68522 tkptr->ConnectPort = tkptr->RequestPort; 2 68523 tkptr->ConnectHostPortPtr = tkptr->RequestHostPort; 2 68524 2 68525 if ((tkptr->ServicePtr->ProxyAffinity || 2 68526 tkptr->RequestPtr->rqPathSet.ProxyAffinity) && 2 68527 tkptr->RequestPtr->rqHeader.CookiePtr) 2 68528 ProxyNetCheckAffinityCookie (tkptr); 2 68529 else 2 68530 TcpIpNameToAddress (&tkptr->HostLookup, 2 68531 tkptr->RequestHostName, 2 68532 tkptr->ProxyLookupRetryCount, 2 68533 &ProxyNetHostConnect, 2 68534 tkptr); 2 68535 return; 1 68536 } 1 68537 1 68538 /*********************************************************/ 1 68539 /* this proxy server requests from another proxy server! */ 1 68540 /*********************************************************/ 1 68541 1 68542 if (WATCHING (tkptr, WATCH_PROXY)) Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 4 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 1 68543 WatchThis (WATCHITM(tkptr), WATCH_PROXY, 1 68544 "HOST-PROXY-CHAIN !AZ", tkptr->ChainHostPortPtr); 1 68545 1 68546 tkptr->ConnectPort = tkptr->ChainIpPort; 1 68547 tkptr->ConnectHostPortPtr = tkptr->ChainHostPortPtr; 1 68548 1 68549 tkptr->HostLookup.LookupIOsb.Status = SS$_NORMAL; 1 68550 ProxyNetHostConnect (tkptr); 1 68551 } 68552 68553 68554 /****************************************************************************/ 68555 /* 68556 Resolve host using TCP/IP lookup unless cookie indicates a preferred IP 68557 address. Remove the affinity cookie from the cookie field. If that is the 68558 only cookie data then remove the cookie field entirely from the request. 68559 */ 68560 68561 ProxyNetCheckAffinityCookie (PROXY_TASK *tkptr) 68562 1 68563 { 1 68564 int status, 1 68565 RequestHostNameLength; 1 68566 char ch; 1 68567 char *cptr, *sptr, *zptr; 1 68568 REQUEST_STRUCT *rqptr; 1 68569 1 68570 /*********/ 1 68571 /* begin */ 1 68572 /*********/ 1 68573 1 68574 if (WATCH_MODULE(WATCH_MOD_PROXY)) 1 68575 WatchThis (WATCHALL, WATCH_MOD_PROXY, "ProxyNetCheckAffinityCookie()"); 1 68576 1 68577 1 68578 rqptr = tkptr->RequestPtr; 1 68579 RequestHostNameLength = strlen(tkptr->RequestHostName); 1 68580 1 68581 cptr = rqptr->rqHeader.CookiePtr; 1 68582 while (*cptr) 2 68583 { 2 68584 while (*cptr && *cptr != PROXY_AFFINITY_COOKIE_PREFIX[0]) cptr++; 2 68585 if (!*cptr) break; 2 68586 if (!MATCH0 (cptr, PROXY_AFFINITY_COOKIE_PREFIX, 2 68587 sizeof(PROXY_AFFINITY_COOKIE_PREFIX)-1)) 3 68588 { 3 68589 cptr++; 3 68590 continue; 2 68591 } 2 68592 2 68593 /* note start of affinity cookie */ 2 68594 sptr = cptr; 2 68595 2 68596 cptr += sizeof(PROXY_AFFINITY_COOKIE_PREFIX)-1; 2 68597 if (MATCH0 (cptr, tkptr->RequestHostName, RequestHostNameLength)) 3 68598 { 3 68599 cptr += RequestHostNameLength; Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 5 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 3 68600 if (*cptr == '=') 4 68601 { 4 68602 for (zptr = ++cptr; *zptr && *zptr != ';'; zptr++); 4 68603 ch = *zptr; 4 68604 *zptr = '\0'; 4 68605 4 68606 if (WATCHING (tkptr, WATCH_PROXY)) 4 68607 WatchThis (WATCHITM(tkptr), WATCH_PROXY, 4 68608 "AFFINITY with !AZ", cptr); 4 68609 4 68610 tkptr->HostLookup.LookupIOsb.Status = 4 68611 TcpIpStringToAddress (cptr, &tkptr->HostLookup.IpAddress); 4 68612 4 68613 *zptr = ch; 4 68614 if (*zptr) zptr++; 4 68615 while (*zptr && ISLWS(*zptr)) zptr++; 4 68616 4 68617 /* remove the affinity cookie */ 4 68618 while (*zptr) *sptr++ = *zptr++; 4 68619 *sptr = '\0'; 4 68620 4 68621 /* ensure it's not now an empty field */ 4 68622 for (cptr = rqptr->rqHeader.CookiePtr; 4 68623 *cptr && ISLWS(*cptr); 4 68624 cptr++); 4 68625 if (!*cptr) 5 68626 { 5 68627 /* just an empty cookie jar! */ 5 68628 rqptr->rqHeader.CookiePtr = NULL; 5 68629 DictRemove (rqptr->rqDictPtr, DICT_TYPE_REQUEST, "cookie", 6); 4 68630 } 4 68631 4 68632 /* try to validate IP address from cache */ 4 68633 /* (prevents forged cookies that would allow open proxy) */ 4 68634 status = TcpIpCacheAddressToName (&tkptr->HostLookup, 4 68635 &tkptr->HostLookup.IpAddress); 4 68636 if (VMSok(status)) 5 68637 { 5 68638 if (!strcmp (tkptr->HostLookup.HostName, 5 68639 tkptr->RequestHostName)) 6 68640 { 6 68641 /* affinity cookie match */ 6 68642 tkptr->ProxyAffinityInUse = true; 6 68643 ProxyNetHostConnect(tkptr); 6 68644 return; 5 68645 } 5 68646 else 5 68647 if (WATCHING (tkptr, WATCH_PROXY)) 5 68648 WatchThis (WATCHITM(tkptr), WATCH_PROXY, 5 68649 "AFFINITY hint not correct"); 4 68650 } 4 68651 else 5 68652 { 5 68653 /* not found in cache, try loading it only once */ 5 68654 if (WATCHING (tkptr, WATCH_PROXY)) 5 68655 WatchThis (WATCHITM(tkptr), WATCH_PROXY, 5 68656 "AFFINITY hint not in cache"); Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 6 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 5 68657 5 68658 if (!tkptr->ProxyAffinityInUse) 6 68659 { 6 68660 tkptr->ProxyAffinityInUse = true; 6 68661 TcpIpNameToAddress (&tkptr->HostLookup, 6 68662 tkptr->RequestHostName, 6 68663 tkptr->ProxyLookupRetryCount, 6 68664 &ProxyNetResolveHost, 6 68665 tkptr); 6 68666 return; 5 68667 } 4 68668 } 3 68669 } 3 68670 if (*cptr) cptr++; 2 68671 } 1 68672 } 1 68673 1 68674 /* no applicable affinity cookie present */ 1 68675 TcpIpNameToAddress (&tkptr->HostLookup, 1 68676 tkptr->RequestHostName, 1 68677 tkptr->ProxyLookupRetryCount, 1 68678 &ProxyNetHostConnect, 1 68679 tkptr); 1 68680 } 68681 68682 68683 /****************************************************************************/ 68684 /* 68685 Called as an AST by TcpIpNameToAddress(). Check that the host name has been 68686 resolved. If not report the error. Create a socket and attempt to connect to 68687 the remote, proxied server host. AST to ProxyNetHostConnectAst(). 68688 */ 68689 68690 ProxyNetHostConnect (PROXY_TASK *tkptr) 68691 1 68692 { 1 68693 static BOOL UseFullDuplexClose = true; 1 68694 1 68695 int qiofun, status; 1 68696 unsigned long *gwcptr; 1 68697 void *BindSocketNamePtr; 1 68698 IO_SB IOsb; 1 68699 REQUEST_STRUCT *rqptr; 1 68700 SOCKADDRIN *sin4ptr; 1 68701 SOCKADDRIN6 *sin6ptr; 1 68702 TCP_SOCKET_ITEM *TcpSocketPtr; 1 68703 VMS_ITEM_LIST2 *il2ptr; 1 68704 1 68705 /*********/ 1 68706 /* begin */ 1 68707 /*********/ 1 68708 1 68709 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 68710 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 1 68711 "ProxyNetHostConnect() !&Z !&S", 1 68712 tkptr->ConnectHostPortPtr, 1 68713 tkptr->HostLookup.LookupIOsb.Status); Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 7 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 1 68714 1 68715 rqptr = tkptr->RequestPtr; 1 68716 1 68717 if (VMSnok (tkptr->HostLookup.LookupIOsb.Status)) 2 68718 { 2 68719 /*********************************/ 2 68720 /* host address resolution error */ 2 68721 /*********************************/ 2 68722 2 68723 if (WATCHING (tkptr, WATCH_PROXY)) 2 68724 WatchThis (WATCHITM(tkptr), WATCH_PROXY, 2 68725 "HOST-LOOKUP !AZ !&S", 2 68726 tkptr->RequestHostName, 2 68727 tkptr->HostLookup.LookupIOsb.Status); 2 68728 2 68729 /* dispose of the non-connected channel/socket used for the lookup */ 2 68730 ProxyNetCloseSocket (tkptr); 2 68731 2 68732 tkptr->ResponseStatusCode = 502; 2 68733 if (rqptr) 3 68734 { 3 68735 /* request associated with task */ 3 68736 rqptr->rqResponse.HttpStatus = 502; 3 68737 rqptr->rqResponse.ErrorTextPtr = tkptr->RequestHostPort; 3 68738 if (tkptr->HostLookup.LookupIOsb.Status == SS$_ENDOFFILE) 3 68739 ErrorGeneral (rqptr, MsgFor(rqptr,MSG_PROXY_HOST_UNKNOWN), FI_LI); 3 68740 else 3 68741 ErrorVmsStatus (rqptr, tkptr->HostLookup.LookupIOsb.Status, FI_LI); 2 68742 } 2 68743 ProxyEnd (tkptr); 2 68744 return; 1 68745 } 1 68746 1 68747 /*****************/ 1 68748 /* host resolved */ 1 68749 /*****************/ 1 68750 1 68751 IPADDRESS_COPY (&tkptr->RequestHostIpAddress, &tkptr->HostLookup.IpAddress) 1 68752 1 68753 /* if not chaining use resolved address, otherwise the specified chain */ 1 68754 if (IPADDRESS_IS_RESET (&tkptr->ChainIpAddress)) 1 68755 IPADDRESS_COPY (&tkptr->ConnectIpAddress, &tkptr->HostLookup.IpAddress) 1 68756 else 1 68757 IPADDRESS_COPY (&tkptr->ConnectIpAddress, &tkptr->ChainIpAddress) 1 68758 1 68759 /*******************/ 1 68760 /* connect to host */ 1 68761 /*******************/ 1 68762 1 68763 if (WATCHING (tkptr, WATCH_PROXY)) 1 68764 WatchThis (WATCHITM(tkptr), WATCH_PROXY, 1 68765 "CONNECT !&I,!UL as !&I", &tkptr->ConnectIpAddress, 1 68766 tkptr->ConnectPort, &tkptr->BindIpAddress); 1 68767 1 68768 tkptr->ConnectionCount = 1; 1 68769 1 68770 /* assign a channel to the internet template device */ Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 8 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 1 68771 status = sys$assign (&TcpIpDeviceDsc, &tkptr->NetIoPtr->Channel, 0, 0); 1 68772 if (VMSnok (status)) 2 68773 { 2 68774 /* leave it to the AST function to report! */ 2 68775 tkptr->ProxyConnectIOsb.Status = status; 2 68776 SysDclAst (ProxyNetHostConnectAst, tkptr); 2 68777 return; 1 68778 } 1 68779 1 68780 if (IPADDRESS_IS_SET (&tkptr->BindIpAddress)) 2 68781 { 2 68782 /* bind the proxy socket to a specific IP address */ 2 68783 if (IPADDRESS_IS_V4 (&tkptr->BindIpAddress)) 3 68784 { 3 68785 SOCKADDRESS_ZERO4 (&tkptr->ProxyBindSocketName) 3 68786 sin4ptr = &tkptr->ProxyBindSocketName.sa.v4; 3 68787 sin4ptr->SIN$B_FAMILY = TCPIP$C_AF_INET; 3 68788 sin4ptr->SIN$W_PORT = 0; 3 68789 IPADDRESS_SET4 (&sin4ptr->SIN$L_ADDR, &tkptr->BindIpAddress) 3 68790 3 68791 il2ptr = &tkptr->ProxyBindSocketNameItem; 3 68792 il2ptr->buf_len = sizeof(SOCKADDRIN); 3 68793 il2ptr->item = 0; 3 68794 il2ptr->buf_addr = sin4ptr; 2 68795 } 2 68796 else 2 68797 if (IPADDRESS_IS_V6 (&tkptr->BindIpAddress)) 3 68798 { 3 68799 SOCKADDRESS_ZERO6 (&tkptr->ProxyBindSocketName) 3 68800 sin6ptr = &tkptr->ProxyBindSocketName.sa.v6; 3 68801 sin6ptr->SIN6$B_FAMILY = TCPIP$C_AF_INET6; 3 68802 sin6ptr->SIN6$W_PORT = 0; 3 68803 IPADDRESS_SET6 (sin6ptr->SIN6$R_ADDR_OVERLAY.SIN6$T_ADDR, 3 68804 &tkptr->BindIpAddress) 3 68805 3 68806 il2ptr = &tkptr->ProxyBindSocketNameItem; 3 68807 il2ptr->buf_len = sizeof(SOCKADDRIN); 3 68808 il2ptr->item = 0; 3 68809 il2ptr->buf_addr = sin6ptr; 2 68810 } 2 68811 else 2 68812 ErrorExitVmsStatus (SS$_BUGCHECK, ErrorSanityCheck, FI_LI); 2 68813 2 68814 BindSocketNamePtr = (void*)il2ptr; 1 68815 } 1 68816 else 1 68817 BindSocketNamePtr = 0; 1 68818 1 68819 if (IPADDRESS_IS_V4 (&tkptr->ConnectIpAddress)) 2 68820 { 2 68821 TcpSocketPtr = &TcpIpSocket4; 2 68822 qiofun = IO$_SETMODE; 1 68823 } 1 68824 else 1 68825 if (IPADDRESS_IS_V6 (&tkptr->ConnectIpAddress)) 2 68826 { 2 68827 TcpSocketPtr = &TcpIpSocket6; Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 9 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 2 68828 qiofun = IO$_SETMODE | IO$M_EXTEND; 1 68829 } 1 68830 else 1 68831 ErrorExitVmsStatus (SS$_BUGCHECK, ErrorSanityCheck, FI_LI); 1 68832 1 68833 /* make the channel a TCP, connection-oriented socket */ 1 68834 for (;;) 2 68835 { 2 68836 status = sys$qiow (EfnWait, tkptr->NetIoPtr->Channel, 2 68837 qiofun, &tkptr->ProxyConnectIOsb, 0, 0, 2 68838 TcpSocketPtr, 0, BindSocketNamePtr, 2 68839 0, UseFullDuplexClose ? 2 68840 &TcpIpFullDuplexCloseOption : 0, 0); 2 68841 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 2 68842 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, "sys$qiow() !&S !&S", 2 68843 status, tkptr->ProxyConnectIOsb.Status); 2 68844 2 68845 if (VMSok (status) && VMSok (tkptr->ProxyConnectIOsb.Status)) break; 2 68846 if (!UseFullDuplexClose) break; 2 68847 UseFullDuplexClose = false; 2 68848 2 68849 /* Multinet 3.2 UCX driver barfs on FULL_DUPLEX_CLOSE, try without */ 2 68850 if (VMSok (status) && VMSnok (tkptr->ProxyConnectIOsb.Status)) 3 68851 { 3 68852 /* assign a new channel before retrying */ 3 68853 sys$dassgn (tkptr->NetIoPtr->Channel); 3 68854 status = sys$assign (&TcpIpDeviceDsc, &tkptr->NetIoPtr->Channel, 0, 0); 3 68855 if (VMSnok (status)) 4 68856 { 4 68857 /* leave it to the AST function to report! */ 4 68858 tkptr->ProxyConnectIOsb.Status = status; 4 68859 SysDclAst (ProxyNetHostConnectAst, tkptr); 4 68860 return; 3 68861 } 2 68862 } 1 68863 } 1 68864 1 68865 /* it's a $QIOW so the IO status block is valid */ 1 68866 if (VMSok (status) && VMSnok (tkptr->ProxyConnectIOsb.Status)) 1 68867 status = tkptr->ProxyConnectIOsb.Status; 1 68868 if (VMSnok (status)) 2 68869 { 2 68870 /* leave it to the AST function to report! */ 2 68871 tkptr->ProxyConnectIOsb.Status = status; 2 68872 SysDclAst (ProxyNetHostConnectAst, tkptr); 2 68873 return; 1 68874 } 1 68875 1 68876 if (IPADDRESS_IS_V4 (&tkptr->ConnectIpAddress)) 2 68877 { 2 68878 SOCKADDRESS_ZERO4 (&tkptr->ProxySocketName); 2 68879 sin4ptr = &tkptr->ProxySocketName.sa.v4; 2 68880 sin4ptr->SIN$B_FAMILY = TCPIP$C_AF_INET; 2 68881 sin4ptr->SIN$W_PORT = htons (tkptr->ConnectPort); 2 68882 IPADDRESS_SET4 (&sin4ptr->SIN$L_ADDR, &tkptr->ConnectIpAddress) 2 68883 2 68884 il2ptr = &tkptr->ProxySocketNameItem; Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 10 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 2 68885 il2ptr->buf_len = sizeof(SOCKADDRIN); 2 68886 il2ptr->item = TCPIP$C_SOCK_NAME; 2 68887 il2ptr->buf_addr = sin4ptr; 2 68888 2 68889 qiofun = IO$_ACCESS; 1 68890 } 1 68891 else 1 68892 if (IPADDRESS_IS_V6 (&tkptr->ConnectIpAddress)) 2 68893 { 2 68894 SOCKADDRESS_ZERO6 (&tkptr->ProxySocketName); 2 68895 sin6ptr = &tkptr->ProxySocketName.sa.v6; 2 68896 sin6ptr->SIN6$B_FAMILY = TCPIP$C_AF_INET6; 2 68897 sin6ptr->SIN6$W_PORT = htons (tkptr->ConnectPort); 2 68898 IPADDRESS_SET6 (sin6ptr->SIN6$R_ADDR_OVERLAY.SIN6$T_ADDR, 2 68899 &tkptr->ConnectIpAddress) 2 68900 2 68901 il2ptr = &tkptr->ProxySocketNameItem; 2 68902 il2ptr->buf_len = sizeof(SOCKADDRIN6); 2 68903 il2ptr->item = TCPIP$C_SOCK_NAME; 2 68904 il2ptr->buf_addr = sin6ptr; 2 68905 2 68906 qiofun = IO$_ACCESS | IO$M_EXTEND; 1 68907 } 1 68908 else 1 68909 ErrorExitVmsStatus (SS$_BUGCHECK, ErrorSanityCheck, FI_LI); 1 68910 1 68911 if (ProxyConnectTimeoutSeconds) 2 68912 { 2 68913 status = sys$setimr (0, &ProxyNetConnectTimeoutDelta, 2 68914 &ProxyNetHostConnectTimeoutAst, tkptr, 0); 2 68915 if (VMSnok (status)) 3 68916 { 3 68917 /* leave it to the AST function to report! */ 3 68918 tkptr->ProxyConnectIOsb.Status = status; 3 68919 SysDclAst (ProxyNetHostConnectAst, tkptr); 3 68920 return; 2 68921 } 1 68922 } 1 68923 1 68924 status = sys$qio (EfnNoWait, tkptr->NetIoPtr->Channel, qiofun, 1 68925 &tkptr->ProxyConnectIOsb, &ProxyNetHostConnectAst, tkptr, 1 68926 0, 0, &tkptr->ProxySocketNameItem, 0, 0, 0); 1 68927 1 68928 if (VMSnok (status)) 2 68929 { 2 68930 /* leave it to the AST function to report! */ 2 68931 tkptr->ProxyConnectIOsb.Status = status; 2 68932 SysDclAst (ProxyNetHostConnectAst, tkptr); 2 68933 return; 1 68934 } 1 68935 } 68936 68937 /****************************************************************************/ 68938 /* 68939 Called as an AST from ProxyNetHostConnect(). The remote host didn't respond. 68940 */ 68941 Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 11 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 68942 ProxyNetHostConnectTimeoutAst (PROXY_TASK *tkptr) 68943 1 68944 { 1 68945 sys$cancel (tkptr->NetIoPtr->Channel); 1 68946 1 68947 tkptr->ProxyConnectIOsb.Status = SS$_TIMEOUT; 1 68948 } 68949 68950 /****************************************************************************/ 68951 /* 68952 Called as an AST from ProxyNetHostConnect(). The remote server host connect 68953 attempt has completed and either been successful or returned an error status. 68954 If an error then explain it and end proxy processing. If successful then begin 68955 processing the request scheme. 68956 */ 68957 68958 ProxyNetHostConnectAst (PROXY_TASK *tkptr) 68959 1 68960 { 1 68961 int status; 1 68962 char *cptr; 1 68963 REQUEST_STRUCT *rqptr; 1 68964 1 68965 /*********/ 1 68966 /* begin */ 1 68967 /*********/ 1 68968 1 68969 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 68970 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 1 68971 "ProxyNetHostConnectAst() !&F !&Z !&S", ProxyNetHostConnectAst, 1 68972 tkptr->ConnectHostPortPtr, tkptr->ProxyConnectIOsb.Status); 1 68973 1 68974 /* First cancel the host connection timer */ 1 68975 sys$cantim (tkptr,0); 1 68976 1 68977 rqptr = tkptr->RequestPtr; 1 68978 1 68979 if (tkptr->ConnectionCount > 1) 2 68980 { 2 68981 /***************************************/ 2 68982 /* persistent proxy->origin connection */ 2 68983 /***************************************/ 2 68984 2 68985 /* of course shouldn't be able to read anything at all at this stage!! */ 2 68986 if (VMSnok (tkptr->ProxyConnectIOsb.Status)) 3 68987 { 3 68988 if (tkptr->ProxyConnectIOsb.Status == SS$_SUSPENDED) 4 68989 { 4 68990 /* this means the non-blocking peek found nothing buffered */ 4 68991 tkptr->ProxyConnectIOsb.Status = SS$_NORMAL; 3 68992 } 3 68993 else 4 68994 { 4 68995 /* assume just a remote disconnection, close and restart */ 4 68996 ProxyNetCloseSocket (tkptr); 4 68997 ProxyNetHostConnect (tkptr); 4 68998 return; Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 12 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 3 68999 } 2 69000 } 2 69001 else 3 69002 { 3 69003 /* so now that we did consider it an error, close and restart */ 3 69004 ProxyNetCloseSocket (tkptr); 3 69005 ProxyNetHostConnect (tkptr); 3 69006 return; 2 69007 } 1 69008 } 1 69009 1 69010 /*************************/ 1 69011 /* IP version accounting */ 1 69012 /*************************/ 1 69013 1 69014 /* after any connection persistence has been taken into account */ 1 69015 if (IPADDRESS_IS_V4 (&tkptr->ConnectIpAddress)) 2 69016 { 2 69017 InstanceMutexLock (INSTANCE_MUTEX_HTTPD); 2 69018 ProxyAccountingPtr->ConnectIpv4Count++; 2 69019 /* [ipv4=0,ipv6=1][ipv4=0,ipv6=1] */ 2 69020 if (IPADDRESS_IS_V4 (&tkptr->ServicePtr->ServerIpAddress)) 2 69021 ProxyAccountingPtr->GatewayIpvCount[0][0]++; 2 69022 else 2 69023 ProxyAccountingPtr->GatewayIpvCount[1][0]++; 2 69024 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 1 69025 } 1 69026 else 1 69027 if (IPADDRESS_IS_V6 (&tkptr->ConnectIpAddress)) 2 69028 { 2 69029 InstanceMutexLock (INSTANCE_MUTEX_HTTPD); 2 69030 ProxyAccountingPtr->ConnectIpv6Count++; 2 69031 /* [ipv4=0,ipv6=1][ipv4=0,ipv6=1] */ 2 69032 if (IPADDRESS_IS_V4 (&tkptr->ServicePtr->ServerIpAddress)) 2 69033 ProxyAccountingPtr->GatewayIpvCount[0][1]++; 2 69034 else 2 69035 ProxyAccountingPtr->GatewayIpvCount[1][1]++; 2 69036 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 1 69037 } 1 69038 else 1 69039 ErrorExitVmsStatus (SS$_BUGCHECK, ErrorSanityCheck, FI_LI); 1 69040 1 69041 if (VMSnok (tkptr->ProxyConnectIOsb.Status)) 2 69042 { 2 69043 /*****************/ 2 69044 /* connect error */ 2 69045 /*****************/ 2 69046 2 69047 if (WATCHING (tkptr, WATCH_PROXY)) 2 69048 WatchThis (WATCHITM(rqptr), WATCH_PROXY, 2 69049 "CONNECT !&S", tkptr->ProxyConnectIOsb.Status); 2 69050 2 69051 /* dispose of the non-connected channel/socket used for the lookup */ 2 69052 ProxyNetCloseSocket (tkptr); 2 69053 2 69054 /* if we have some affinity hint, use it */ 2 69055 if (tkptr->ProxyAffinityInUse) Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 13 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 3 69056 { 3 69057 ProxyNetResolveHost (tkptr); 3 69058 return; 2 69059 } 2 69060 2 69061 /* invalidate any entry (still) in the host name/address cache */ 2 69062 IPADDRESS_SET_UNUSABLE (&tkptr->HostLookup.IpAddress); 2 69063 TcpIpCacheSetEntry (&tkptr->HostLookup); 2 69064 2 69065 /* if we have an other address cached for this host, retry */ 2 69066 status = TcpIpCacheNameToAddress (&tkptr->HostLookup, 2 69067 tkptr->RequestHostName, 2 69068 strlen(tkptr->RequestHostName)); 2 69069 if (VMSok(status)) 3 69070 { 3 69071 ProxyNetHostConnect (tkptr); 3 69072 return; 2 69073 } 2 69074 2 69075 tkptr->ResponseStatusCode = 502; 2 69076 2 69077 if (rqptr->ServicePtr->ProxyTunnel == PROXY_TUNNEL_RAW || 2 69078 rqptr->ServicePtr->ProxyTunnel == PROXY_TUNNEL_FIREWALL) 3 69079 { 3 69080 /* can end up here with chained CONNECT requests */ 3 69081 ProxyEnd (tkptr); 3 69082 return; 2 69083 } 2 69084 2 69085 if (rqptr) 3 69086 { 3 69087 /* request associated with task */ 3 69088 rqptr->rqResponse.HttpStatus = 502; 3 69089 3 69090 switch (tkptr->ProxyConnectIOsb.Status) 4 69091 { 4 69092 case PROXY_ERROR_CONNECT_REFUSED : 4 69093 4 69094 if (IPADDRESS_IS_SET (&tkptr->ChainIpAddress)) 4 69095 cptr = MsgFor(rqptr,MSG_PROXY_CHAIN_REFUSED); 4 69096 else 4 69097 cptr = MsgFor(rqptr,MSG_PROXY_CONNECT_REFUSED); 4 69098 4 69099 if (rqptr->rqHeader.UpgradeSocks5Ptr) 4 69100 ProxySocks5Reply (rqptr, SOCKS5_REPLY_REFUSED); 4 69101 else 4 69102 ErrorGeneral (rqptr, cptr, FI_LI); 4 69103 break; 4 69104 4 69105 case PROXY_ERROR_HOST_UNREACHABLE : 4 69106 4 69107 if (IPADDRESS_IS_SET (&tkptr->ChainIpAddress)) 4 69108 cptr = MsgFor(rqptr,MSG_PROXY_CHAIN_UNREACHABLE); 4 69109 else 4 69110 cptr = MsgFor(rqptr,MSG_PROXY_HOST_UNREACHABLE); 4 69111 4 69112 if (rqptr->rqHeader.UpgradeSocks5Ptr) Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 14 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 4 69113 ProxySocks5Reply (rqptr, SOCKS5_REPLY_HOSTREACH); 4 69114 else 4 69115 ErrorGeneral (rqptr, cptr, FI_LI); 4 69116 break; 4 69117 4 69118 case PROXY_ERROR_HOST_TIMEOUT : 4 69119 4 69120 if (IPADDRESS_IS_SET (&tkptr->ChainIpAddress)) 4 69121 cptr = MsgFor(rqptr,MSG_PROXY_CHAIN_UNREACHABLE); 4 69122 else 4 69123 cptr = MsgFor(rqptr,MSG_PROXY_HOST_UNREACHABLE); 4 69124 4 69125 if (rqptr->rqHeader.UpgradeSocks5Ptr) 4 69126 ProxySocks5Reply (rqptr, SOCKS5_REPLY_HOSTREACH); 4 69127 else 4 69128 ErrorGeneral (rqptr, cptr, FI_LI); 4 69129 break; 4 69130 4 69131 default : 4 69132 4 69133 if (IPADDRESS_IS_SET (&tkptr->ChainIpAddress)) 5 69134 { 5 69135 rqptr->rqResponse.ErrorTextPtr = 5 69136 MsgFor(rqptr,MSG_PROXY_CHAIN_FAILURE); 5 69137 rqptr->rqResponse.ErrorOtherTextPtr = 5 69138 tkptr->ChainHostPortPtr; 4 69139 } 4 69140 else 4 69141 rqptr->rqResponse.ErrorTextPtr = tkptr->RequestHostPort; 4 69142 4 69143 if (rqptr->rqHeader.UpgradeSocks5Ptr) 4 69144 ProxySocks5Reply (rqptr, SOCKS5_REPLY_FAILURE); 4 69145 else 4 69146 ErrorVmsStatus (rqptr, tkptr->ProxyConnectIOsb.Status, FI_LI); 3 69147 } 2 69148 } 2 69149 2 69150 ProxyEnd (tkptr); 2 69151 return; 1 69152 } 1 69153 1 69154 if (WATCHING (tkptr, WATCH_PROXY)) 1 69155 WatchThis (WATCHITM(tkptr), WATCH_PROXY, "CONNECTED !&I,!UL as !&I !AZ", 1 69156 &tkptr->ConnectIpAddress, tkptr->ConnectPort, 1 69157 &tkptr->BindIpAddress, 1 69158 NetGetBgDevice(tkptr->NetIoPtr->Channel, NULL, 0)); 1 69159 1 69160 if (LoggingProxyLocalPort) 1 69161 rqptr->ProxyLocalPort = ProxyNetLocalPort (tkptr); 1 69162 1 69163 TcpIpSocketMaxQio (tkptr->NetIoPtr); 1 69164 1 69165 /* it's successful if the remote host accepts it */ 1 69166 if (rqptr) rqptr->rqResponse.HttpStatus = 200; 1 69167 1 69168 /* once we start reading into the buffer the request header is kaput */ 1 69169 rqptr->rqHeader.RequestHeaderPtrInvalid = true; Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 15 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 1 69170 1 69171 if (tkptr->ProxyTunnel) 2 69172 { 2 69173 /**************/ 2 69174 /* tunnelling */ 2 69175 /**************/ 2 69176 2 69177 if (IPADDRESS_IS_SET (&tkptr->ChainIpAddress)) 2 69178 ProxyTunnelChainConnect (tkptr); 2 69179 else 2 69180 if (tkptr->ProxyTunnel == PROXY_TUNNEL_HTTPS) 2 69181 SesolaNetClientBegin (tkptr); 2 69182 else 2 69183 ProxyTunnelBegin (tkptr); 2 69184 2 69185 return; 1 69186 } 1 69187 1 69188 /*************************************/ 1 69189 /* HTTP "GET", "POST", etc., methods */ 1 69190 /*************************************/ 1 69191 1 69192 /* if affinity required and wasn't previouly set, do it now */ 1 69193 if ((tkptr->ServicePtr->ProxyAffinity || 1 69194 rqptr->rqPathSet.ProxyAffinity) && 1 69195 !tkptr->ProxyAffinityInUse) 1 69196 ProxyNetSetAffinityCookie (tkptr); 1 69197 1 69198 if (tkptr->ConnectPort == DEFAULT_HTTPS_PORT || 1 69199 tkptr->RequestScheme == PROXY_SCHEME_HTTPSSL) 2 69200 { 2 69201 if (tkptr->ServicePtr->SSLclientEnabled) 3 69202 { 3 69203 if (tkptr->ConnectionCount > 1) 3 69204 ProxyWriteRequest (tkptr); 3 69205 else 3 69206 SesolaNetClientBegin (tkptr); 2 69207 } 2 69208 else 3 69209 { 3 69210 if (WATCHING (rqptr, WATCH_PROXY)) 3 69211 WatchThis (WATCHITM(rqptr), WATCH_PROXY, 3 69212 "CLIENT SSL not configured"); 3 69213 rqptr->rqResponse.HttpStatus = 503; 3 69214 ErrorGeneral (rqptr, MsgFor(rqptr,MSG_PROXY_GATEWAY), FI_LI); 3 69215 ProxyEnd (tkptr); 3 69216 return; 2 69217 } 1 69218 } 1 69219 else 2 69220 { 2 69221 if (tkptr->RequestScheme == PROXY_SCHEME_HTTP) 2 69222 ProxyWriteRequest (tkptr); 2 69223 else 2 69224 ErrorExitVmsStatus (SS$_BUGCHECK, ErrorSanityCheck, FI_LI); 1 69225 } 1 69226 } Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 16 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 69227 69228 /*****************************************************************************/ 69229 /* 69230 Get the local port of the outgoing connection (only for access log purposes). 69231 */ 69232 69233 int ProxyNetLocalPort (PROXY_TASK *tkptr) 69234 1 69235 { 1 69236 int qiofun, status, 1 69237 SocketNameLength; 1 69238 IO_SB IOsb; 1 69239 REQUEST_STRUCT *rqptr; 1 69240 SOCKADDRESS SocketName; 1 69241 VMS_ITEM_LIST3 SocketNameItem; 1 69242 VMS_ITEM_LIST3 *il3ptr; 1 69243 1 69244 /*********/ 1 69245 /* begin */ 1 69246 /*********/ 1 69247 1 69248 rqptr = tkptr->RequestPtr; 1 69249 1 69250 if (WATCHMOD (rqptr, WATCH_MOD_PROXY)) 1 69251 WatchThis (WATCHITM(rqptr), WATCH_MOD_PROXY, "ProxyNetLocalPort()"); 1 69252 1 69253 il3ptr = &SocketNameItem; 1 69254 if (IPADDRESS_IS_V4 (&tkptr->ConnectIpAddress)) 2 69255 { 2 69256 il3ptr->buf_len = sizeof(SOCKADDRIN); 2 69257 il3ptr->item = 0; 2 69258 il3ptr->buf_addr = &SocketName.sa.v4; 2 69259 il3ptr->ret_len = &SocketNameLength; 2 69260 2 69261 qiofun = IO$_SENSEMODE; 1 69262 } 1 69263 else 1 69264 if (IPADDRESS_IS_V6 (&tkptr->ConnectIpAddress)) 2 69265 { 2 69266 il3ptr->buf_len = sizeof(SOCKADDRIN6); 2 69267 il3ptr->item = 0; 2 69268 il3ptr->buf_addr = &SocketName.sa.v6; 2 69269 il3ptr->ret_len = &SocketNameLength; 2 69270 2 69271 qiofun = IO$_SENSEMODE | IO$M_EXTEND; 1 69272 } 1 69273 else 1 69274 ErrorExitVmsStatus (SS$_BUGCHECK, ErrorSanityCheck, FI_LI); 1 69275 1 69276 status = sys$qiow (EfnWait, tkptr->NetIoPtr->Channel, 1 69277 qiofun, &IOsb, 0, 0, 0, 0, il3ptr, 0, 0, 0); 1 69278 if (VMSok (status)) status = IOsb.Status; 1 69279 if (VMSnok (status)) 2 69280 { 2 69281 ErrorNoticed (rqptr, status, "ProxyNetLocalPort()", FI_LI); 2 69282 return (0); 1 69283 } Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 17 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 1 69284 1 69285 if (IPADDRESS_IS_V4 (&tkptr->ConnectIpAddress)) 1 69286 return (ntohs(SocketName.sa.v4.SIN$W_PORT)); 1 69287 else 1 69288 return (ntohs(SocketName.sa.v6.SIN6$W_PORT)); 1 69289 } 69290 69291 /*****************************************************************************/ 69292 /* 69293 Create a proxy cookie to set client affinity to the origin server. 69294 */ 69295 69296 ProxyNetSetAffinityCookie (PROXY_TASK *tkptr) 69297 1 69298 { 1 69299 int idx; 1 69300 unsigned short Length; 1 69301 char *cptr; 1 69302 char Buffer [256]; 1 69303 REQUEST_STRUCT *rqptr; 1 69304 1 69305 /*********/ 1 69306 /* begin */ 1 69307 /*********/ 1 69308 1 69309 rqptr = tkptr->RequestPtr; 1 69310 1 69311 if (WATCHMOD (rqptr, WATCH_MOD_PROXY)) 1 69312 WatchThis (WATCHITM(rqptr), WATCH_MOD_PROXY, "ProxyNetSetAffinityCookie()"); 1 69313 1 69314 /* set proxy preferred origin server cookie */ 1 69315 FaoToBuffer (Buffer, sizeof(Buffer), &Length, "!AZ!AZ=!&I; path=/;", 1 69316 PROXY_AFFINITY_COOKIE_PREFIX, tkptr->RequestHostName, 1 69317 &tkptr->ConnectIpAddress); 1 69318 1 69319 cptr = VmGetHeap (rqptr, Length+1); 1 69320 for (idx = 0; idx < RESPONSE_COOKIE_MAX; idx++) 2 69321 { 2 69322 if (!rqptr->rqResponse.CookiePtr[idx]) 3 69323 { 3 69324 memcpy (rqptr->rqResponse.CookiePtr[idx] = cptr, Buffer, Length+1); 3 69325 break; 2 69326 } 1 69327 } 1 69328 1 69329 if (WATCHING (rqptr, WATCH_PROXY)) 1 69330 WatchThis (WATCHITM(rqptr), WATCH_PROXY, "AFFINITY cookie set to !&I", 1 69331 &tkptr->ConnectIpAddress); 1 69332 } 69333 69334 /*****************************************************************************/ 69335 /* 69336 Wrapper for AST parameter |tkptr|. 69337 */ 69338 69339 int ProxyNetWrite 69340 ( Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 18 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 69341 PROXY_TASK *tkptr, 69342 PROXY_AST AstFunction, 69343 char *DataPtr, 69344 int DataLength 69345 ) 69346 1 69347 { 1 69348 /*********/ 1 69349 /* begin */ 1 69350 /*********/ 1 69351 1 69352 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69353 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 1 69354 "ProxyNetWrite() !&F !&A !&X !UL", &ProxyNetWrite, 1 69355 AstFunction, DataPtr, DataLength); 1 69356 1 69357 return (NetIoWrite (tkptr->NetIoPtr, AstFunction, tkptr, 1 69358 DataPtr, DataLength)); 1 69359 } 69360 69361 /*****************************************************************************/ 69362 /* 69363 Wrapper for AST parameter |tkptr|. 69364 */ 69365 69366 int ProxyNetRead 69367 ( 69368 PROXY_TASK *tkptr, 69369 PROXY_AST AstFunction, 69370 char *DataPtr, 69371 int DataSize 69372 ) 1 69373 { 1 69374 /*********/ 1 69375 /* begin */ 1 69376 /*********/ 1 69377 1 69378 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69379 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 1 69380 "ProxyNetRead() !&F !&A !&X !UL", &ProxyNetRead, 1 69381 AstFunction, DataPtr, DataSize); 1 69382 1 69383 return (NetIoRead (tkptr->NetIoPtr, AstFunction, tkptr, DataPtr, DataSize)); 1 69384 } 69385 69386 /****************************************************************************/ 69387 /* 69388 Just shut the socket down, bang! 69389 */ 69390 69391 int ProxyNetCloseSocket (PROXY_TASK *tkptr) 69392 1 69393 { 1 69394 int status; 1 69395 1 69396 /*********/ 1 69397 /* begin */ Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 19 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 1 69398 /*********/ 1 69399 1 69400 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69401 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 1 69402 "ProxyNetCloseSocket() !&F", &ProxyNetCloseSocket); 1 69403 1 69404 if (!tkptr->NetIoPtr) return (SS$_NORMAL); 1 69405 1 69406 if (!tkptr->NetIoPtr->Channel) return (SS$_NORMAL); 1 69407 1 69408 status = sys$dassgn (tkptr->NetIoPtr->Channel); 1 69409 1 69410 tkptr->NetIoPtr->Channel = 0; 1 69411 1 69412 if (WATCHING (tkptr, WATCH_PROXY)) 2 69413 { 2 69414 if (VMSok(status)) 2 69415 WatchThis (WATCHITM(tkptr), WATCH_PROXY, "CLOSE !AZ,!UL", 2 69416 tkptr->RequestHostName, tkptr->RequestPort); 2 69417 else 2 69418 WatchThis (WATCHITM(tkptr), WATCH_PROXY, "CLOSE !AZ,!UL !&S", 2 69419 tkptr->RequestHostName, tkptr->RequestPort, status); 1 69420 } 1 69421 1 69422 return (status); 1 69423 } 69424 69425 /*****************************************************************************/ 69426 /* 69427 */ 69428 69429 BOOL ProxyNetInProgress (PROXY_TASK *tkptr) 69430 1 69431 { 1 69432 /*********/ 1 69433 /* begin */ 1 69434 /*********/ 1 69435 1 69436 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69437 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 1 69438 "ProxyNetInProgress() inprog:!&B body:!&B", 1 69439 NETIO_IN_PROGRESS (tkptr->NetIoPtr), tkptr->QueuedBodyRead); 1 69440 1 69441 if (NETIO_IN_PROGRESS (tkptr->NetIoPtr)) return (true); 1 69442 if (tkptr->QueuedBodyRead) return (true); 1 69443 return (false); 1 69444 } 69445 69446 /****************************************************************************/ 69447 /* 69448 Search through any list of persistent connections comparing the requests IP 69449 address and port to that stored in each list entry. If one matched copy the 69450 channel and persistence count to the proxy task and remove the entry from the 69451 list. Returns with the task connection socket channel non-zero if it found a 69452 match or still as zero if not. 69453 */ 69454 Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 20 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 69455 ProxyNetConnectSearch (PROXY_TASK *tkptr) 69456 1 69457 { 1 69458 int status; 1 69459 LIST_ENTRY *leptr; 1 69460 PROXY_CONNECT *pcptr; 1 69461 1 69462 /*********/ 1 69463 /* begin */ 1 69464 /*********/ 1 69465 1 69466 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69467 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 1 69468 "ProxyNetConnectSearch() !&I,!UL !UL", 1 69469 &tkptr->ConnectIpAddress, tkptr->ConnectPort, 1 69470 ProxyNetConnectCount); 1 69471 1 69472 /* important these be zeroed to indicate search failure */ 1 69473 tkptr->NetIoPtr->Channel = tkptr->ConnectionCount = 0; 1 69474 1 69475 if (!ProxyNetConnectCount) return; 1 69476 1 69477 for (leptr = ProxyNetConnectList.HeadPtr; leptr; leptr = leptr->NextPtr) 2 69478 { 2 69479 pcptr = (PROXY_CONNECT*)leptr; 2 69480 2 69481 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 2 69482 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, "!&I,!UL !UL !UL !&B !&B", 2 69483 &pcptr->ConnectIpAddress, pcptr->ConnectPort, 2 69484 pcptr->ConnectionCount, 2 69485 pcptr->NetIoPtr->Channel, 2 69486 pcptr->SSLclientEnabled, 2 69487 tkptr->ServicePtr->SSLclientEnabled); 2 69488 2 69489 if (!IPADDRESS_IS_SAME (&pcptr->ConnectIpAddress, 2 69490 &tkptr->ConnectIpAddress)) continue; 2 69491 if (pcptr->ConnectPort != tkptr->ConnectPort) continue; 2 69492 if (pcptr->SSLclientEnabled != 2 69493 tkptr->ServicePtr->SSLclientEnabled) continue; 2 69494 2 69495 /*******/ 2 69496 /* hit */ 2 69497 /*******/ 2 69498 2 69499 /* move the network I/O structure to the task */ 2 69500 tkptr->NetIoPtr = pcptr->NetIoPtr; 2 69501 pcptr->NetIoPtr; 2 69502 if (tkptr->NetIoPtr->SesolaPtr) 2 69503 SesolaNetSetProxyTask (tkptr); 2 69504 2 69505 tkptr->ConnectionCount = pcptr->ConnectionCount + 1; 2 69506 2 69507 ListRemove (&ProxyNetConnectList, pcptr); 2 69508 if (ProxyNetConnectCount) ProxyNetConnectCount--; 2 69509 ListAddTail (&ProxyNetConnectFreeList, pcptr, LIST_ENTRY_TYPE_PROXY); 2 69510 ProxyNetConnectFreeCount++; 2 69511 Source Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 21 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 2 69512 if (WATCHING (tkptr, WATCH_PROXY)) 2 69513 WatchThis (WATCHITM(tkptr), WATCH_PROXY, 2 69514 "PERSISTENT !UL !AZ,!UL", 2 69515 tkptr->ConnectionCount, 2 69516 tkptr->RequestHostName, tkptr->RequestPort); 2 69517 return; 1 69518 } 1 69519 1 69520 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69521 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, "NOT FOUND"); 1 69522 } 69523 69524 /****************************************************************************/ 69525 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 22 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 .psect $CODE$, CON, LCL, SHR, EXE, NOWRT, NOVEC, NOSHORT .proc to_lower .align 32 to_lower: // 045733 { .mii 002C00204840 0000 alloc r33 = rspfs, 1, 1, 0, 0 012000100200 0001 add r8 = @ltoffx(ToLowerCase), gp // r8 = @ltoffx(ToLowerCase), r1 0000B2000800 0002 sxt4 in0 = ch ;; // r32 = r32 } { .mmi 0080C0800200 0010 ld8.mov r8 = [r8], ToLowerCase ;; 010088840200 0011 shladd r8 = in0, 2, r8 // r8 = r32, 2, r8 000008000000 0012 nop.i 0 ;; } { .mmi 008080800200 0020 ld4 r8 = [r8] ;; 000008000000 0021 nop.m 0 0000B0800200 0022 sxt4 r8 = r8 } { .mfb 000008000000 0030 nop.m 0 000008000000 0031 nop.f 0 000108001100 0032 br.ret.sptk.many rp ;; // br0 } .endp to_lower Routine Size: 64 bytes, Routine Base: $CODE$ + 0000 .proc ProxyNetInit .align 32 .global ProxyNetInit ProxyNetInit: // 068481 { .mmi 012000100200 0040 add r8 = // r8 = // 068493 @ltoffx(ProxyConnectTimeoutSeconds), gp ;; // @ltoffx(ProxyConnectTimeoutSeconds), // r1 0080C0800200 0041 ld8.mov r8 = [r8], ProxyConnectTimeoutSeconds 000008000000 0042 nop.i 0 ;; } { .mmi 008080800240 0050 ld4 r9 = [r8] ;; 01AC38978000 0051 cmp4.ltu pr0, pr7 = 60, r9 000008000000 0052 nop.i 0 } { .mfb 000008000000 0060 nop.m 0 000008000000 0061 nop.f 0 008600004007 0062 (pr7) br.cond.dpnt.many L$383 ;; } { .mfb 008C80800000 0070 st4 [r8] = r0 // 068494 000008000000 0071 nop.f 0 000108001100 0072 br.ret.sptk.many rp ;; // br0 // 068499 } 0080 L$383: // 068495 { .mfb Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 23 ProxyNetInit 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 01C400900280 0080 cmp4.eq pr10, pr0 = r0, r9 // 068496 000008000000 0081 nop.f 0 00860000E00A 0082 (pr10) br.cond.dpnt.many L$385 ;; } { .mii 012000100280 0090 add r10 = // r10 = // 068497 @ltoffx(ProxyNetConnectTimeoutDelta), gp // @ltoffx(ProxyNetConnectTimeoutDelta), // r1 0000B0900240 0091 sxt4 r9 = r9 ;; // 068498 010088912240 0092 shladd r9 = r9, 2, r9 // 068497 } { .mmi 0080C0A00280 00A0 ld8.mov r10 = [r10], ProxyNetConnectTimeoutDelta ;; 010088912240 00A1 shladd r9 = r9, 2, r9 000008000000 00A2 nop.i 0 ;; } { .mmi 010088912240 00B0 shladd r9 = r9, 2, r9 ;; 010088912240 00B1 shladd r9 = r9, 2, r9 000008000000 00B2 nop.i 0 ;; } { .mmi 010088912240 00C0 shladd r9 = r9, 2, r9 ;; 010088912240 00C1 shladd r9 = r9, 2, r9 000008000000 00C2 nop.i 0 ;; } { .mmi 010088912240 00D0 shladd r9 = r9, 2, r9 ;; 000008000000 00D1 nop.m 0 00A7C3812240 00D2 shl r9 = r9, 7 ;; } { .mmi 010028900240 00E0 sub r9 = r0, r9 ;; 008CC0A12000 00E1 st8 ProxyNetConnectTimeoutDelta = // [r10] = r9 r9 000008000000 00E2 nop.i 0 } 00F0 L$385: // 068499 { .mfb 000008000000 00F0 nop.m 0 000008000000 00F1 nop.f 0 000108001100 00F2 br.ret.sptk.many rp ;; // br0 } .endp ProxyNetInit Routine Size: 192 bytes, Routine Base: $CODE$ + 0040 .proc ProxyNetResolveHost .align 32 .global ProxyNetResolveHost ProxyNetResolveHost: // 068509 { .mii 002C005168C0 0100 alloc r35 = rspfs, 1, 4, 6, 0 0120001000C0 0101 add r3 = @ltoff($LITERAL$+208), gp // r3 = @ltoff($LITERAL$+208), r1 // 068520 0108420F0200 0102 adds r8 = 1144, in0 // r8 = 1144, r32 } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 24 ProxyNetResolveHost 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mmi 012000006640 0110 mov ai = 3 ;; // r25 = 3 0080C03000C0 0111 ld8 r3 = $LITERAL$ // r3 = [r3] 000188000880 0112 mov r34 = rp // r34 = br0 // 068509 } { .mii 008080800200 0120 ld4 r8 = [r8] // 068520 010800100900 0121 mov r36 = gp ;; // r36 = r1 // 068509 0000B08009C0 0122 sxt4 out2 = r8 // r39 = r8 // 068520 } { .mib 010800300980 0130 mov out1 = r3 // r38 = r3 0108420D0940 0131 adds out0 = 1128, tkptr // r37 = 1128, r32 00A000001000 0132 br.call.sptk.many rp = DECC$MEMCMP ;; // br0 = DECC$MEMCMP } { .mib 01C430800000 0140 cmp4.eq pr0, pr6 = r0, r8 010802400040 0141 mov gp = r36 // r1 = r36 008600026006 0142 (pr6) br.cond.dpnt.many L$253 ;; } { .mii 01080A068240 0150 adds r9 = 180, in0 // r9 = 180, r32 // 068522 01084A048280 0151 adds r10 = 1188, in0 // r10 = 1188, r32 // 068525 01080A0102C0 0152 adds r11 = 136, in0 // r11 = 136, r32 // 068522 } { .mmi 010812028440 0160 adds r17 = 276, in0 ;; // r17 = 276, r32 // 068523 008080900240 0161 ld4 r9 = [r9] // 068522 0108220D80C0 0162 adds r3 = 620, tkptr // r3 = 620, r32 // 068523 } { .mii 008080A00280 0170 ld4 r10 = [r10] // 068525 01084A050480 0171 adds r18 = 1192, in0 ;; // r18 = 1192, r32 // 068526 0000B0A00280 0172 sxt4 r10 = r10 // 068525 } { .mmi 008C80B12000 0180 st4 [r11] = r9 // 068522 008C81106000 0181 st4 [r17] = r3 // 068523 000008000000 0182 nop.i 0 ;; } { .mmi 010800A90280 0190 adds r10 = 72, r10 ;; // 068525 008080A000C0 0191 ld4 r3 = [r10] 000008000000 0192 nop.i 0 } { .mmi 008081200480 01A0 ld4 r18 = [r18] ;; // 068526 01C440300000 01A1 cmp4.eq pr0, pr8 = r0, r3 // 068525 0000B1200480 01A2 sxt4 r18 = r18 // 068526 } { .mfb 000008000000 01B0 nop.m 0 000008000000 01B1 nop.f 0 008600006008 01B2 (pr8) br.cond.dpnt.many L$255 ;; // 068525 } { .mmi 0109012104C0 01C0 adds r19 = 4104, r18 ;; // 068526 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 25 ProxyNetResolveHost 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 0080813004C0 01C1 ld4 r19 = [r19] 000008000000 01C2 nop.i 0 ;; } { .mfb 01C4013002C0 01D0 cmp4.eq pr11, pr0 = r0, r19 000008000000 01D1 nop.f 0 00860000A00B 01D2 (pr11) br.cond.dpnt.many L$257 ;; // 068525 } 01E0 L$255: { .mmi 0108A92F8480 01E0 adds r18 = 2812, r18 ;; // 068527 008081200480 01E1 ld4 r18 = [r18] 000008000000 01E2 nop.i 0 ;; } { .mfb 01C400024340 01F0 cmp4.eq pr13, pr0 = r18, r0 000008000000 01F1 nop.f 0 00860000600D 01F2 (pr13) br.cond.dpnt.many L$257 ;; // 068525 } { .mfb 010802000940 0200 mov out0 = tkptr // r37 = r32 // 068528 000008000000 0201 nop.f 0 00A000001000 0202 br.call.sptk.many rp = // br0 = ProxyNetCheckAffinityCookie ProxyNetCheckAffinityCookie ;; } { .mfb 000008000000 0210 nop.m 0 000008000000 0211 nop.f 0 00800003F000 0212 br.sptk.many L$260 ;; // 068529 } 0220 L$257: { .mii 01080A0289C0 0220 adds out2 = 148, in0 // r39 = 148, r32 // 068530 012000100A00 0221 add out3 = // r40 = @ltoff(@fptr(ProxyNetHostConnect)), gp // @ltoff(@fptr(ProxyNetHostConnect)), // r1 01081A0D80C0 0222 adds r3 = 492, tkptr // r3 = 492, r32 // 068531 } { .mmi 0108520D0940 0230 adds out0 = 1384, tkptr ;; // r37 = 1384, r32 // 068530 0080827009C0 0231 ld4 out2 = [out2] // r39 = [r39] 01200000A640 0232 mov ai = 5 // r25 = 5 } { .mii 0080C2800A00 0240 ld8 out3 = ProxyNetHostConnect // r40 = [r40] 0000B2000A40 0241 sxt4 out4 = tkptr ;; // r41 = r32 0000B27009C0 0242 sxt4 out2 = out2 // r39 = r39 } { .mfb 010800300980 0250 mov out1 = r3 // r38 = r3 000008000000 0251 nop.f 0 00A000001000 0252 br.call.sptk.many rp = // br0 = TcpIpNameToAddress TcpIpNameToAddress ;; } { .mfb 010802400040 0260 mov gp = r36 // r1 = r36 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 26 ProxyNetResolveHost 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 000008000000 0261 nop.f 0 008000035000 0262 br.sptk.many L$260 ;; // 068535 } 0270 L$253: // 068536 { .mmi 01C4300401C0 0270 cmp4.eq pr7, pr6 = tkptr, r0 ;; // pr7, pr6 = r32, r0 // 068542 01C000001247 0271 (pr7) cmp.eq.unc pr9, pr0 = r0, r0 01C000001206 0272 (pr6) cmp.eq.unc pr8, pr0 = r0, r0 } { .bbb 008600002008 0280 (pr8) br.cond.dpnt.many L$261 004000000000 0281 nop.b 0 008600026009 0282 (pr9) br.cond.dpnt.many L$262 ;; } 0290 L$261: { .mii 012000100840 0290 add r33 = @ltoff(Watch+124), gp // r33 = @ltoff(Watch+124), r1 0120020002C0 0291 addl r11 = 524288, r0 000008000000 0292 nop.i 0 } { .mmi 008082000480 02A0 ld4 r18 = [in0] ;; // r18 = [r32] 0080C2100840 02A1 ld8 r33 = Watch // r33 = [r33] 01C461200340 02A2 cmp4.eq pr13, pr12 = r0, r18 ;; } { .mmi 0111621F00C0 02B0 and r3 = -8, r33 ;; 01C058342000 02B1 cmp.eq pr0, pr11 = r33, r3 000008000000 02B2 nop.i 0 } { .mmi 00A0C0310280 02C0 ld8 r10 = Watch, 8 ;; // r10 = [r3], 8 000008000000 02C1 nop.m 0 009E1004220B 02C2 (pr11) dep r8 = Watch, r0, 3, 3 ;; // r8 = r33, r0, 3, 3 } { .mmi 0080C030024B 02D0 (pr11) ld8 r9 = Watch ;; // r9 = [r3] 000008000000 02D1 nop.m 0 00F200A1028B 02D2 (pr11) shr.u r10 = r10, r8 } { .mmi 01012888020B 02E0 (pr11) sub r8 = 64, r8 ;; 000008000000 02E1 nop.m 0 00F24081224B 02E2 (pr11) shl r9 = r9, r8 ;; } { .mmi 010070A1228B 02F0 (pr11) or r10 = r9, r10 ;; 010060A16280 02F1 and r10 = r11, r10 000008000000 02F2 nop.i 0 ;; } { .mmi 01C000A003C0 0300 cmp.eq pr15, pr0 = r0, r10 ;; 01C20000034F 0301 (pr15) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 0302 nop.i 0 } { .mfb 000008000000 0310 nop.m 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 27 ProxyNetResolveHost 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 000008000000 0311 nop.f 0 00860001400D 0312 (pr13) br.cond.dpnt.many L$262 ;; } { .mmi 01C000001180 0320 cmp.eq.unc pr6, pr0 = r0, r0 ;; // 068543 01A000000188 0321 (pr8) cmp.ltu pr6, pr0 = r0, r0 000008000000 0322 nop.i 0 } { .bbb 008600002006 0330 (pr6) br.cond.dpnt.many L$266 004000000000 0331 nop.b 0 008000005000 0332 br.sptk.many L$265 ;; } 0340 L$266: { .mfi 010800000480 0340 mov r18 = r0 000008000000 0341 nop.f 0 000008000000 0342 nop.i 0 } 0350 L$265: { .mii 010812020A80 0350 adds out5 = 272, in0 // r42 = 272, r32 0120001009C0 0351 add out2 = @ltoff($LITERAL$+24), // r39 = @ltoff($LITERAL$+24), r1 gp 0120001004C0 0352 add r19 = @ltoff($LITERAL$+360), // r19 = @ltoff($LITERAL$+360), r1 // 068544 gp ;; } { .mmi 008082A00A80 0360 ld4 out5 = [out5] // r42 = [r42] // 068543 0080C2700980 0361 ld8 out1 = $LITERAL$ // r38 = [r39] 01200000C640 0362 mov ai = 6 ;; // r25 = 6 } { .mii 0080C1300A40 0370 ld8 out4 = $LITERAL$ // r41 = [r19] // 068544 0000B2A00A80 0371 sxt4 out5 = out5 // r42 = r42 // 068543 012002000A00 0372 addl out3 = 524288, r0 // r40 = 524288, r0 } { .mmi 0120080589C0 0380 mov out2 = 172 ;; // r39 = 172 000008000000 0381 nop.m 0 0000B1200940 0382 sxt4 out0 = r18 // r37 = r18 } { .mfb 000008000000 0390 nop.m 0 000008000000 0391 nop.f 0 00A000001000 0392 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802400040 03A0 mov gp = r36 // r1 = r36 000008000000 03A1 nop.f 0 000008000000 03A2 nop.i 0 } 03B0 L$262: // 068544 { .mii 01080A008840 03B0 adds r33 = 132, in0 // r33 = 132, r32 // 068546 0108120200C0 03B1 adds r3 = 272, in0 // r3 = 272, r32 // 068547 01080A010200 03B2 adds r8 = 136, in0 ;; // r8 = 136, r32 // 068546 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 28 ProxyNetResolveHost 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } { .mmi 008082100840 03C0 ld4 r33 = [r33] 0080803000C0 03C1 ld4 r3 = [r3] // 068547 010812028240 03C2 adds r9 = 276, in0 ;; // r9 = 276, r32 } { .mii 0108620402C0 03D0 adds r11 = 1568, in0 // r11 = 1568, r32 // 068549 012000002280 03D1 mov r10 = 1 010802000940 03D2 mov out0 = tkptr // r37 = r32 // 068550 } { .mmi 008C80842000 03E0 st4 [r8] = r33 ;; // 068546 008C80906000 03E1 st4 [r9] = r3 // 068547 000008000000 03E2 nop.i 0 } { .mfb 008C40B14000 03F0 st2 [r11] = r10 // 068549 000008000000 03F1 nop.f 0 00A000001000 03F2 br.call.sptk.many rp = // br0 = ProxyNetHostConnect // 068550 ProxyNetHostConnect ;; } 0400 L$260: // 068551 { .mii 000008000000 0400 nop.m 0 000154046000 0401 mov.i rspfs = r35 ;; 000E00144000 0402 mov rp = r34 // br0 = r34 } { .mfb 000008000000 0410 nop.m 0 000008000000 0411 nop.f 0 000108001100 0412 br.ret.sptk.many rp ;; // br0 } .endp ProxyNetResolveHost Routine Size: 800 bytes, Routine Base: $CODE$ + 0100 .proc ProxyNetCheckAffinityCookie .align 32 .global ProxyNetCheckAffinityCookie ProxyNetCheckAffinityCookie: // 068561 { .mii 002C01230BC0 0420 alloc r47 = rspfs, 1, 17, 6, 0 01084A050200 0421 adds r8 = 1192, in0 // r8 = 1192, r32 // 068578 01081A0D8C80 0422 adds out0 = 492, tkptr // r50 = 492, r32 // 068579 } { .mmi 010800100C40 0430 mov r49 = gp ;; // r49 = r1 // 068561 008080800840 0431 ld4 rqptr = [r8] // r33 = [r8] // 068578 000188000B80 0432 mov r46 = rp // r46 = br0 // 068561 } { .mii 012000002640 0440 mov ai = 1 // r25 = 1 // 068579 010803200880 0441 mov r34 = out0 ;; // r34 = r50 0000B2100840 0442 sxt4 rqptr = rqptr ;; // r33 = r33 // 068578 } { .mib Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 29 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 000008000000 0450 nop.m 0 000198000C00 0451 mov r48 = pr // 068561 00A000001000 0452 br.call.sptk.many rp = DECC$STRLEN ;; // br0 = DECC$STRLEN // 068579 } { .mii 0108AA1F8900 0460 adds r36 = 2812, r33 // 068581 0108520D0940 0461 adds r37 = 1384, tkptr // r37 = 1384, r32 // 068634 0108008008C0 0462 mov RequestHostNameLength = r8 // r35 = r8 // 068579 } { .mmi 010803100040 0470 mov gp = r49 ;; // r1 = r49 008082400900 0471 ld4 cptr = [r36] // r36 = [r36] // 068581 000008000000 0472 nop.i 0 ;; } { .mib 000008000000 0480 nop.m 0 0000B2400900 0481 sxt4 cptr = cptr // r36 = r36 004000000000 0482 nop.b 0 ;; } { .mmi 0080024000C0 0490 ld1 r3 = [r36] ;; // 068582 000008000000 0491 nop.m 0 0000A03000C0 0492 sxt1 r3 = r3 ;; } { .mmi 01C0303001C0 04A0 cmp.eq pr7, pr6 = r0, r3 ;; 01C000001247 04A1 (pr7) cmp.eq.unc pr9, pr0 = r0, r0 01C000001206 04A2 (pr6) cmp.eq.unc pr8, pr0 = r0, r0 } { .bbb 008600002008 04B0 (pr8) br.cond.dpnt.many L$165 004000000000 04B1 nop.b 0 008600166009 04B2 (pr9) br.cond.dpnt.many L$166 ;; } 04C0 L$165: // 068584 { .mii 012000100980 04C0 add r38 = @ltoffx(Watch), gp // r38 = @ltoffx(Watch), r1 // 068654 01C450040000 04C1 cmp4.eq pr0, pr10 = tkptr, r0 // pr0, pr10 = r32, r0 // 068606 012000002A80 04C2 mov r42 = 1 // 068584 } { .mmi 012002000A40 04D0 addl r41 = 524288, r0 ;; // 068655 0080C2600980 04D1 ld8.mov r38 = [r38], Watch // 068654 01C00000108A 04D2 (pr10) cmp.eq.unc pr2, pr0 = r0, r0 // 068606 } { .mii 01085A0209C0 04E0 adds r39 = 1424, tkptr // r39 = 1424, r32 // 068638 010862060A00 04E1 adds r40 = 1584, tkptr // r40 = 1584, r32 // 068611 000008000000 04E2 nop.i 0 ;; } 04F0 L$167: // 068584 { .bbb 008600002008 04F0 (pr8) br.cond.dpnt.many L$170 00800002B000 04F1 br.sptk.many L$169 004000000000 04F2 nop.b 0 ;; } 0500 L$170: Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 30 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mmi 008002400240 0500 ld1 r9 = [r36] ;; 01C8009AE380 0501 cmp.eq pr14, pr0 = 87, r9 000008000000 0502 nop.i 0 } { .mfb 000008000000 0510 nop.m 0 000008000000 0511 nop.f 0 00860002600E 0512 (pr14) br.cond.dpnt.many L$169 ;; } { .mmi 010802402900 0520 adds r36 = 1, r36 ;; 008002400280 0521 ld1 r10 = [r36] 000008000000 0522 nop.i 0 ;; } { .mii 000008000000 0530 nop.m 0 0000A0A00280 0531 sxt1 r10 = r10 ;; 01C000A00180 0532 cmp.eq pr6, pr0 = r0, r10 } { .mfb 000008000000 0540 nop.m 0 000008000000 0541 nop.f 0 008600020006 0542 (pr6) br.cond.dpnt.many L$169 ;; } { .mmi 0080024002C0 0550 ld1 r11 = [r36] ;; 01C800BAE240 0551 cmp.eq pr9, pr0 = 87, r11 000008000000 0552 nop.i 0 } { .mfb 000008000000 0560 nop.m 0 000008000000 0561 nop.f 0 00860001C009 0562 (pr9) br.cond.dpnt.many L$169 ;; } { .mmi 010802402900 0570 adds r36 = 1, r36 ;; 008002400440 0571 ld1 r17 = [r36] 000008000000 0572 nop.i 0 ;; } { .mii 000008000000 0580 nop.m 0 0000A1100440 0581 sxt1 r17 = r17 ;; 01C0011002C0 0582 cmp.eq pr11, pr0 = r0, r17 } { .mfb 000008000000 0590 nop.m 0 000008000000 0591 nop.f 0 00860001600B 0592 (pr11) br.cond.dpnt.many L$169 ;; } { .mmi 008002400480 05A0 ld1 r18 = [r36] ;; 01C8012AE200 05A1 cmp.eq pr8, pr0 = 87, r18 000008000000 05A2 nop.i 0 } { .mfb 000008000000 05B0 nop.m 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 31 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 000008000000 05B1 nop.f 0 008600012008 05B2 (pr8) br.cond.dpnt.many L$169 ;; } { .mmi 010802402900 05C0 adds r36 = 1, r36 ;; 0080024004C0 05C1 ld1 r19 = [r36] 000008000000 05C2 nop.i 0 ;; } { .mii 000008000000 05D0 nop.m 0 0000A13004C0 05D1 sxt1 r19 = r19 ;; 01C001300380 05D2 cmp.eq pr14, pr0 = r0, r19 } { .mfb 000008000000 05E0 nop.m 0 000008000000 05E1 nop.f 0 00860000C00E 05E2 (pr14) br.cond.dpnt.many L$169 ;; } { .mii 008002400500 05F0 ld1 r20 = [r36] 010842400540 05F1 adds r21 = 1024, r36 ;; 01C8014AE3C0 05F2 cmp.eq pr15, pr0 = 87, r20 } { .mfb 00CB01500000 0600 lfetch [r21] 000008000000 0601 nop.f 0 00860000800F 0602 (pr15) br.cond.dpnt.many L$169 ;; } { .mmi 010802402900 0610 adds r36 = 1, r36 ;; 008002400580 0611 ld1 r22 = [r36] 000008000000 0612 nop.i 0 ;; } { .mii 000008000000 0620 nop.m 0 0000A1600580 0621 sxt1 r22 = r22 ;; 01C039600000 0622 cmp.eq pr0, pr7 = r0, r22 } { .mfb 000008000000 0630 nop.m 0 000008000000 0631 nop.f 0 0095FFFDA007 0632 (pr7) br.cond.dptk.many L$170 ;; } 0640 L$169: { .mmi 0080024005C0 0640 ld1 r23 = [r36] ;; // 068585 000008000000 0641 nop.m 0 0000A17005C0 0642 sxt1 r23 = r23 ;; } { .mfb 01C0017002C0 0650 cmp.eq pr11, pr0 = r0, r23 000008000000 0651 nop.f 0 00860013200B 0652 (pr11) br.cond.dpnt.many L$166 ;; } { .mii 012000100D00 0660 add out2 = @ltoff($LITERAL$+112), // r52 = @ltoff($LITERAL$+112), r1 // 068586 gp Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 32 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 012000006640 0661 mov ai = 3 // r25 = 3 010802400C80 0662 mov out0 = cptr ;; // r50 = r36 } { .mib 0080C3400CC0 0670 ld8 out1 = $LITERAL$ // r51 = [r52] 012000024D00 0671 mov out2 = 18 // r52 = 18 00A000001000 0672 br.call.sptk.many rp = DECC$MEMCMP ;; // br0 = DECC$MEMCMP } { .mib 01C4008001C0 0680 cmp4.eq pr7, pr0 = r0, r8 010803100040 0681 mov gp = r49 // r1 = r49 008600006007 0682 (pr7) br.cond.dpnt.many L$188 ;; } { .mfi 010802402900 0690 adds r36 = 1, r36 000008000000 0691 nop.f 0 000008000000 0692 nop.i 0 ;; } { .mfb 000008000000 06A0 nop.m 0 000008000000 06A1 nop.f 0 008000115000 06A2 br.sptk.many L$189 ;; // 068590 } 06B0 L$188: // 068591 { .mii 010802400AC0 06B0 mov sptr = cptr // r43 = r36 // 068594 010802424900 06B1 adds r36 = 18, r36 012000006640 06B2 mov ai = 3 // r25 = 3 // 068597 } { .mmi 010802200CC0 06C0 mov out1 = r34 ;; // r51 = r34 010802400C80 06C1 mov out0 = cptr // r50 = r36 0000B2300D00 06C2 sxt4 out2 = RequestHostNameLength // r52 = r35 } { .mfb 000008000000 06D0 nop.m 0 000008000000 06D1 nop.f 0 00A000001000 06D2 br.call.sptk.many rp = DECC$MEMCMP ;; // br0 = DECC$MEMCMP } { .mib 01C430800000 06E0 cmp4.eq pr0, pr6 = r0, r8 010803100040 06E1 mov gp = r49 // r1 = r49 00860010C006 06E2 (pr6) br.cond.dpnt.many L$189 ;; } { .mii 000008000000 06F0 nop.m 0 0000B23000C0 06F1 sxt4 r3 = RequestHostNameLength ;; // r3 = r35 // 068599 010000348900 06F2 add cptr = cptr, r3 ;; // r36 = r36, r3 } { .mmi 008002400240 0700 ld1 r9 = [r36] ;; // 068600 01C84097A000 0701 cmp.eq pr0, pr8 = 61, r9 000008000000 0702 nop.i 0 } { .mfb 000008000000 0710 nop.m 0 000008000000 0711 nop.f 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 33 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 008600102008 0712 (pr8) br.cond.dpnt.many L$193 ;; } { .mmi 010802402900 0720 adds r36 = 1, r36 ;; // 068602 008002400280 0721 ld1 r10 = [r36] 000008000000 0722 nop.i 0 ;; } { .mii 010802400B00 0730 mov zptr = cptr // r44 = r36 0000A0A00280 0731 sxt1 r10 = r10 ;; 01C000A002C0 0732 cmp.eq pr11, pr0 = r0, r10 } { .mfb 000008000000 0740 nop.m 0 000008000000 0741 nop.f 0 00860002A00B 0742 (pr11) br.cond.dpnt.many L$196 ;; } 0750 L$197: { .mmi 008002C002C0 0750 ld1 r11 = [r44] ;; 01C800B76340 0751 cmp.eq pr13, pr0 = 59, r11 000008000000 0752 nop.i 0 } { .mfb 000008000000 0760 nop.m 0 000008000000 0761 nop.f 0 00860002600D 0762 (pr13) br.cond.dpnt.many L$196 ;; } { .mmi 010802C02B00 0770 adds r44 = 1, r44 ;; 008002C00440 0771 ld1 r17 = [r44] 000008000000 0772 nop.i 0 ;; } { .mii 000008000000 0780 nop.m 0 0000A1100440 0781 sxt1 r17 = r17 ;; 01C0011003C0 0782 cmp.eq pr15, pr0 = r0, r17 } { .mfb 000008000000 0790 nop.m 0 000008000000 0791 nop.f 0 00860002000F 0792 (pr15) br.cond.dpnt.many L$196 ;; } { .mmi 008002C00480 07A0 ld1 r18 = [r44] ;; 01C8012761C0 07A1 cmp.eq pr7, pr0 = 59, r18 000008000000 07A2 nop.i 0 } { .mfb 000008000000 07B0 nop.m 0 000008000000 07B1 nop.f 0 00860001C007 07B2 (pr7) br.cond.dpnt.many L$196 ;; } { .mmi 010802C02B00 07C0 adds r44 = 1, r44 ;; 008002C004C0 07C1 ld1 r19 = [r44] 000008000000 07C2 nop.i 0 ;; Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 34 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } { .mii 000008000000 07D0 nop.m 0 0000A13004C0 07D1 sxt1 r19 = r19 ;; 01C001300240 07D2 cmp.eq pr9, pr0 = r0, r19 } { .mfb 000008000000 07E0 nop.m 0 000008000000 07E1 nop.f 0 008600016009 07E2 (pr9) br.cond.dpnt.many L$196 ;; } { .mmi 008002C00500 07F0 ld1 r20 = [r44] ;; 01C8014762C0 07F1 cmp.eq pr11, pr0 = 59, r20 000008000000 07F2 nop.i 0 } { .mfb 000008000000 0800 nop.m 0 000008000000 0801 nop.f 0 00860001200B 0802 (pr11) br.cond.dpnt.many L$196 ;; } { .mmi 010802C02B00 0810 adds r44 = 1, r44 ;; 008002C00540 0811 ld1 r21 = [r44] 000008000000 0812 nop.i 0 ;; } { .mii 000008000000 0820 nop.m 0 0000A1500540 0821 sxt1 r21 = r21 ;; 01C001500340 0822 cmp.eq pr13, pr0 = r0, r21 } { .mfb 000008000000 0830 nop.m 0 000008000000 0831 nop.f 0 00860000C00D 0832 (pr13) br.cond.dpnt.many L$196 ;; } { .mii 008002C00580 0840 ld1 r22 = [r44] 010842C005C0 0841 adds r23 = 1024, r44 ;; 01C8016763C0 0842 cmp.eq pr15, pr0 = 59, r22 } { .mfb 00CB01700000 0850 lfetch [r23] 000008000000 0851 nop.f 0 00860000800F 0852 (pr15) br.cond.dpnt.many L$196 ;; } { .mmi 010802C02B00 0860 adds r44 = 1, r44 ;; 008002C00600 0861 ld1 r24 = [r44] 000008000000 0862 nop.i 0 ;; } { .mii 000008000000 0870 nop.m 0 0000A1800600 0871 sxt1 r24 = r24 ;; 01C031800000 0872 cmp.eq pr0, pr6 = r0, r24 } { .mfb Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 35 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 000008000000 0880 nop.m 0 000008000000 0881 nop.f 0 0095FFFDA006 0882 (pr6) br.cond.dptk.many L$197 ;; } 0890 L$196: { .mmi 008002C00B40 0890 ld1 ch = [r44] ;; // r45 = [r44] // 068603 008C02C00000 0891 st1 [r44] = r0 // 068604 0000A2D00B40 0892 sxt1 ch = ch // r45 = r45 // 068603 } { .bbb 008600002002 08A0 (pr2) br.cond.dpnt.many L$213 // 068606 004000000000 08A1 nop.b 0 008000025000 08A2 br.sptk.many L$214 ;; } 08B0 L$213: { .mii 0108026F86C0 08B0 adds r27 = 124, r38 012002000C80 08B1 addl out0 = 524288, r0 // r50 = 524288, r0 000008000000 08B2 nop.i 0 } { .mmi 008082000D00 08C0 ld4 out2 = [in0] ;; // r52 = [r32] 011161BF0700 08C1 and r28 = -8, r27 01C4534002C0 08C2 cmp4.eq pr11, pr10 = r0, out2 ;; // pr11, pr10 = r0, r52 } { .mmi 01C049C36000 08D0 cmp.eq pr0, pr9 = r27, r28 00A0C1C107C0 08D1 ld8 r31 = [r28], 8 000008000000 08D2 nop.i 0 ;; } { .mib 000008000000 08E0 nop.m 0 009E10036749 08E1 (pr9) dep r29 = r27, r0, 3, 3 004000000000 08E2 nop.b 0 ;; } { .mmi 0080C1C00789 08F0 (pr9) ld8 r30 = [r28] ;; 000008000000 08F1 nop.m 0 00F201F3A7C9 08F2 (pr9) shr.u r31 = r31, r29 } { .mmi 010129D80749 0900 (pr9) sub r29 = 64, r29 ;; 000008000000 0901 nop.m 0 00F241D3C789 0902 (pr9) shl r30 = r30, r29 ;; } { .mmi 010071F3C7C9 0910 (pr9) or r31 = r30, r31 ;; 010061F647C0 0911 and r31 = out0, r31 // r31 = r50, r31 000008000000 0912 nop.i 0 ;; } { .mmi 01C001F00340 0920 cmp.eq pr13, pr0 = r0, r31 ;; 01C2000002CD 0921 (pr13) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 0922 nop.i 0 } { .mfb Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 36 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 000008000000 0930 nop.m 0 000008000000 0931 nop.f 0 00860001200B 0932 (pr11) br.cond.dpnt.many L$214 ;; } { .mmi 01C000001380 0940 cmp.eq.unc pr14, pr0 = r0, r0 ;; // 068607 01A000000382 0941 (pr2) cmp.ltu pr14, pr0 = r0, r0 000008000000 0942 nop.i 0 } { .bbb 00860000200E 0950 (pr14) br.cond.dpnt.many L$218 004000000000 0951 nop.b 0 008000005000 0952 br.sptk.many L$217 ;; } 0960 L$218: { .mfi 010800000D00 0960 mov out2 = r0 // r52 = r0 000008000000 0961 nop.f 0 000008000000 0962 nop.i 0 } 0970 L$217: { .mii 012000100DC0 0970 add out5 = @ltoff($LITERAL$+336), // r55 = @ltoff($LITERAL$+336), r1 // 068608 gp 01200000C640 0971 mov ai = 6 // r25 = 6 // 068607 010802900D40 0972 mov out3 = r41 ;; // r53 = r41 } { .mii 0080C3700D80 0980 ld8 out4 = $LITERAL$ // r54 = [r55] // 068608 0000B3400C80 0981 sxt4 out0 = out2 // r50 = r52 // 068607 012000100D00 0982 add out2 = @ltoff($LITERAL$+24), // r52 = @ltoff($LITERAL$+24), r1 gp } { .mmi 010802400DC0 0990 mov out5 = cptr ;; // r55 = r36 0080C3400CC0 0991 ld8 out1 = $LITERAL$ // r51 = [r52] 0120080D8D00 0992 mov out2 = 236 // r52 = 236 } { .mfb 000008000000 09A0 nop.m 0 000008000000 09A1 nop.f 0 00A000001000 09A2 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010803100040 09B0 mov gp = r49 // r1 = r49 000008000000 09B1 nop.f 0 000008000000 09B2 nop.i 0 } 09C0 L$214: // 068608 { .mii 012000004640 09C0 mov ai = 2 // r25 = 2 // 068611 010802800CC0 09C1 mov out1 = r40 // r51 = r40 010802400C80 09C2 mov out0 = cptr ;; // r50 = r36 } { .mfb 000008000000 09D0 nop.m 0 000008000000 09D1 nop.f 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 37 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 00A000001000 09D2 br.call.sptk.many rp = // br0 = TcpIpStringToAddress TcpIpStringToAddress ;; } { .mii 010862040900 09E0 adds r36 = 1568, in0 // r36 = 1568, r32 // 068610 010803100040 09E1 mov gp = r49 // r1 = r49 // 068611 000008000000 09E2 nop.i 0 ;; } { .mmi 008C42410000 09F0 st2 [r36] = r8 // 068610 008C02C5A000 09F1 st1 [r44] = ch // [r44] = r45 // 068613 000008000000 09F2 nop.i 0 ;; } { .mii 008002C00240 0A00 ld1 r9 = [r44] // 068614 010802C02280 0A01 adds r10 = 1, zptr ;; // r10 = 1, r44 0000A0900240 0A02 sxt1 r9 = r9 ;; } { .mmi 01C030900000 0A10 cmp.eq pr0, pr6 = r0, r9 ;; 010800A00B06 0A11 (pr6) mov zptr = r10 // r44 = r10 000008000000 0A12 nop.i 0 ;; } { .mmi 008002C002C0 0A20 ld1 r11 = [r44] ;; // 068615 000008000000 0A21 nop.m 0 0000A0B002C0 0A22 sxt1 r11 = r11 ;; } { .mfb 01C000B00240 0A30 cmp.eq pr9, pr0 = r0, r11 000008000000 0A31 nop.f 0 00860000C009 0A32 (pr9) br.cond.dpnt.many L$220 ;; } 0A40 L$221: { .mmi 008002C00440 0A40 ld1 r17 = [r44] ;; 01C801112340 0A41 cmp.eq pr13, pr0 = 9, r17 01C8511402C0 0A42 cmp.eq pr11, pr10 = 32, r17 ;; } { .mfb 01C25000000D 0A50 (pr13) cmp.eq.or.andcm pr0, pr10 = r0, r0 000008000000 0A51 nop.f 0 00860000800A 0A52 (pr10) br.cond.dpnt.many L$220 ;; } { .mmi 010802C02B00 0A60 adds r44 = 1, r44 ;; 008002C00480 0A61 ld1 r18 = [r44] 000008000000 0A62 nop.i 0 ;; } { .mii 000008000000 0A70 nop.m 0 0000A1200480 0A71 sxt1 r18 = r18 ;; 01C071200000 0A72 cmp.eq pr0, pr14 = r0, r18 } { .mfb 000008000000 0A80 nop.m 0 000008000000 0A81 nop.f 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 38 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 0095FFFF800E 0A82 (pr14) br.cond.dptk.many L$221 ;; } 0A90 L$220: // 068618 { .mmi 008002C004C0 0A90 ld1 r19 = [r44] ;; 000008000000 0A91 nop.m 0 0000A13004C0 0A92 sxt1 r19 = r19 ;; } { .mfb 01C001300180 0AA0 cmp.eq pr6, pr0 = r0, r19 000008000000 0AA1 nop.f 0 00860001C006 0AA2 (pr6) br.cond.dpnt.many L$224 ;; } 0AB0 L$225: { .mii 00AC02B26040 0AB0 st1 [r43] = r19, 1 010802C02B00 0AB1 adds r44 = 1, r44 000008000000 0AB2 nop.i 0 ;; } { .mmi 00A002C02540 0AC0 ld1 r21 = [r44], 1 ;; 000008000000 0AC1 nop.m 0 0000A1500540 0AC2 sxt1 r21 = r21 ;; } { .mfb 01C001500240 0AD0 cmp.eq pr9, pr0 = r0, r21 000008000000 0AD1 nop.f 0 008600016009 0AD2 (pr9) br.cond.dpnt.many L$224 ;; } { .mmi 00AC02B2A040 0AE0 st1 [r43] = r21, 1 ;; 00A002C025C0 0AE1 ld1 r23 = [r44], 1 000008000000 0AE2 nop.i 0 ;; } { .mii 000008000000 0AF0 nop.m 0 0000A17005C0 0AF1 sxt1 r23 = r23 ;; 01C001700340 0AF2 cmp.eq pr13, pr0 = r0, r23 } { .mfb 000008000000 0B00 nop.m 0 000008000000 0B01 nop.f 0 00860001000D 0B02 (pr13) br.cond.dpnt.many L$224 ;; } { .mmi 00AC02B2E040 0B10 st1 [r43] = r23, 1 ;; 008002C00640 0B11 ld1 ai = [r44] // r25 = [r44] 000008000000 0B12 nop.i 0 ;; } { .mii 000008000000 0B20 nop.m 0 0000A1900640 0B21 sxt1 ai = ai ;; // r25 = r25 01C0019002C0 0B22 cmp.eq pr11, pr0 = r0, ai // pr11, pr0 = r0, r25 } { .mfb 000008000000 0B30 nop.m 0 000008000000 0B31 nop.f 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 39 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 00860000A00B 0B32 (pr11) br.cond.dpnt.many L$224 ;; } { .mii 008C02B32000 0B40 st1 [r43] = ai // [r43] = r25 010822B00740 0B41 adds r29 = 512, r43 010822C00680 0B42 adds r26 = 512, r44 } { .mmi 010802C02B00 0B50 adds r44 = 1, r44 ;; 008002C00700 0B51 ld1 r28 = [r44] 010802B02AC0 0B52 adds r43 = 1, r43 } { .mmi 00CB41D00000 0B60 lfetch.excl [r29] ;; 00CB01A00000 0B61 lfetch [r26] 0000A1C004C0 0B62 sxt1 r19 = r28 ;; } { .mfb 01C071300000 0B70 cmp.eq pr0, pr14 = r0, r19 000008000000 0B71 nop.f 0 0095FFFE800E 0B72 (pr14) br.cond.dptk.many L$225 ;; } 0B80 L$224: { .mmi 0108AA1F87C0 0B80 adds r31 = 2812, r33 // 068622 008C02B00000 0B81 st1 [r43] = r0 // 068619 000008000000 0B82 nop.i 0 ;; } { .mmi 008081F00900 0B90 ld4 cptr = [r31] ;; // r36 = [r31] // 068622 000008000000 0B91 nop.m 0 0000B2400900 0B92 sxt4 cptr = cptr ;; // r36 = r36 } { .mmi 008002400C80 0BA0 ld1 out0 = [r36] ;; // r50 = [r36] // 068623 000008000000 0BA1 nop.m 0 0000A3200C80 0BA2 sxt1 out0 = out0 ;; // r50 = r50 } { .mfb 01C0032001C0 0BB0 cmp.eq pr7, pr0 = r0, out0 // pr7, pr0 = r0, r50 000008000000 0BB1 nop.f 0 00860000C007 0BB2 (pr7) br.cond.dpnt.many L$230 ;; // 068622 } 0BC0 L$231: // 068623 { .mmi 008002400CC0 0BC0 ld1 out1 = [r36] ;; // r51 = [r36] 01C803312340 0BC1 cmp.eq pr13, pr0 = 9, out1 // pr13, pr0 = 9, r51 01C843340240 0BC2 cmp.eq pr9, pr8 = 32, out1 ;; // pr9, pr8 = 32, r51 } { .mfb 01C24000000D 0BD0 (pr13) cmp.eq.or.andcm pr0, pr8 = r0, r0 000008000000 0BD1 nop.f 0 008600008008 0BD2 (pr8) br.cond.dpnt.many L$230 ;; // 068622 } { .mmi 010802402900 0BE0 adds r36 = 1, r36 ;; // 068623 008002400D00 0BE1 ld1 out2 = [r36] // r52 = [r36] Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 40 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 000008000000 0BE2 nop.i 0 ;; } { .mii 000008000000 0BF0 nop.m 0 0000A3400D00 0BF1 sxt1 out2 = out2 ;; // r52 = r52 01C053400000 0BF2 cmp.eq pr0, pr10 = r0, out2 // pr0, pr10 = r0, r52 } { .mfb 000008000000 0C00 nop.m 0 000008000000 0C01 nop.f 0 0095FFFF800A 0C02 (pr10) br.cond.dptk.many L$231 ;; // 068622 } 0C10 L$230: // 068624 { .mmi 008002400D40 0C10 ld1 out3 = [r36] ;; // r53 = [r36] // 068625 000008000000 0C11 nop.m 0 0000A3500D40 0C12 sxt1 out3 = out3 ;; // r53 = r53 } { .mfb 01C073500000 0C20 cmp.eq pr0, pr14 = r0, out3 // pr0, pr14 = r0, r53 000008000000 0C21 nop.f 0 00860000C00E 0C22 (pr14) br.cond.dpnt.many L$233 ;; } { .mii 0108AA1F8D80 0C30 adds out4 = 2812, r33 // r54 = 2812, r33 // 068628 01080A1F0C80 0C31 adds out0 = 248, r33 // r50 = 248, r33 // 068629 012000100D40 0C32 add out3 = @ltoff($LITERAL$+320), // r53 = @ltoff($LITERAL$+320), r1 gp } { .mmi 012000100DC0 0C40 add out5 = @ltoff($LITERAL$+328), // r55 = @ltoff($LITERAL$+328), r1 gp ;; 008C83600000 0C41 st4 [out4] = r0 // [r54] = r0 // 068628 012000008640 0C42 mov ai = 4 ;; // r25 = 4 // 068629 } { .mmi 008083200C80 0C50 ld4 out0 = [out0] // r50 = [r50] 0080C3500D00 0C51 ld8 out2 = $LITERAL$ // r52 = [r53] 01200000CD40 0C52 mov out3 = 6 ;; // r53 = 6 } { .mib 0080C3700CC0 0C60 ld8 out1 = $LITERAL$ // r51 = [r55] 0000B3200C80 0C61 sxt4 out0 = out0 // r50 = r50 00A000001000 0C62 br.call.sptk.many rp = DictRemove ;; // br0 = DictRemove } { .mfi 010803100040 0C70 mov gp = r49 // r1 = r49 000008000000 0C71 nop.f 0 000008000000 0C72 nop.i 0 } 0C80 L$233: // 068630 { .mii 012000004640 0C80 mov ai = 2 // r25 = 2 // 068634 010802800CC0 0C81 mov out1 = r40 // r51 = r40 010802500C80 0C82 mov out0 = r37 ;; // r50 = r37 } { .mfb Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 41 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 000008000000 0C90 nop.m 0 000008000000 0C91 nop.f 0 00A000001000 0C92 br.call.sptk.many rp = // br0 = TcpIpCacheAddressToName TcpIpCacheAddressToName ;; } { .mib 010803100040 0CA0 mov gp = r49 // r1 = r49 00A0308001C0 0CA1 tbit.z pr7, pr6 = r8, 0 // 068636 00860002A007 0CA2 (pr7) br.cond.dpnt.many L$236 ;; } { .mii 012000004640 0CB0 mov ai = 2 // r25 = 2 // 068638 010802200CC0 0CB1 mov out1 = r34 // r51 = r34 010802700C80 0CB2 mov out0 = r39 // r50 = r39 } { .mfb 000008000000 0CC0 nop.m 0 000008000000 0CC1 nop.f 0 00A000001000 0CC2 br.call.sptk.many rp = DECC$STRCMP ;; // br0 = DECC$STRCMP } { .mib 01C4008001C0 0CD0 cmp4.eq pr7, pr0 = r0, r8 010803100040 0CD1 mov gp = r49 // r1 = r49 008600054007 0CD2 (pr7) br.cond.dpnt.many L$238 ;; } { .bbb 008600002002 0CE0 (pr2) br.cond.dpnt.many L$239 // 068647 008000049000 0CE1 br.sptk.many L$193 004000000000 0CE2 nop.b 0 ;; } 0CF0 L$239: { .mii 0108026F8B40 0CF0 adds r45 = 124, r38 012002000280 0CF1 addl r10 = 524288, r0 000008000000 0CF2 nop.i 0 } { .mmi 008082000440 0D00 ld4 r17 = [in0] ;; // r17 = [r32] 011162DF0B00 0D01 and r44 = -8, r45 01C4511002C0 0D02 cmp4.eq pr11, pr10 = r0, r17 ;; } { .mmi 01C04AC5A000 0D10 cmp.eq pr0, pr9 = r45, r44 00A0C2C10240 0D11 ld8 r9 = [r44], 8 000008000000 0D12 nop.i 0 ;; } { .mib 000008000000 0D20 nop.m 0 009E1005AAC9 0D21 (pr9) dep r43 = r45, r0, 3, 3 004000000000 0D22 nop.b 0 ;; } { .mmi 0080C2C000C9 0D30 (pr9) ld8 r3 = [r44] ;; 000008000000 0D31 nop.m 0 00F200956249 0D32 (pr9) shr.u r9 = r9, r43 } { .mmi Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 42 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 01012AB80AC9 0D40 (pr9) sub r43 = 64, r43 ;; 000008000000 0D41 nop.m 0 00F242B060C9 0D42 (pr9) shl r3 = r3, r43 ;; } { .mmi 010070906249 0D50 (pr9) or r9 = r3, r9 ;; 010060914240 0D51 and r9 = r10, r9 000008000000 0D52 nop.i 0 ;; } { .mmi 01C060900340 0D60 cmp.eq pr13, pr12 = r0, r9 ;; 01C2000002CD 0D61 (pr13) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 0D62 nop.i 0 } { .mfb 000008000000 0D70 nop.m 0 000008000000 0D71 nop.f 0 00860003600B 0D72 (pr11) br.cond.dpnt.many L$193 ;; } { .mmi 01C000001380 0D80 cmp.eq.unc pr14, pr0 = r0, r0 ;; // 068648 01A000000382 0D81 (pr2) cmp.ltu pr14, pr0 = r0, r0 000008000000 0D82 nop.i 0 } { .bbb 00860000200E 0D90 (pr14) br.cond.dpnt.many L$243 004000000000 0D91 nop.b 0 008000005000 0D92 br.sptk.many L$242 ;; } 0DA0 L$243: { .mfi 010800000440 0DA0 mov r17 = r0 000008000000 0DA1 nop.f 0 000008000000 0DA2 nop.i 0 } 0DB0 L$242: { .mii 012000100D00 0DB0 add out2 = @ltoff($LITERAL$+24), // r52 = @ltoff($LITERAL$+24), r1 gp 012000100480 0DB1 add r18 = @ltoff($LITERAL$+288), // r18 = @ltoff($LITERAL$+288), r1 // 068649 gp 01200000A640 0DB2 mov ai = 5 ;; // r25 = 5 // 068648 } { .mmi 0080C3400CC0 0DC0 ld8 out1 = $LITERAL$ // r51 = [r52] 0080C1200D80 0DC1 ld8 out4 = $LITERAL$ // r54 = [r18] // 068649 010802900D40 0DC2 mov out3 = r41 ;; // r53 = r41 // 068648 } { .mib 01201002AD00 0DD0 mov out2 = 277 // r52 = 277 0000B1100C80 0DD1 sxt4 out0 = r17 // r50 = r17 00A000001000 0DD2 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfb 010803100040 0DE0 mov gp = r49 // r1 = r49 000008000000 0DE1 nop.f 0 008000029000 0DE2 br.sptk.many L$193 ;; // 068649 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 43 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } 0DF0 L$236: // 068651 { .bbb 008600002002 0DF0 (pr2) br.cond.dpnt.many L$244 // 068654 008000023000 0DF1 br.sptk.many L$245 004000000000 0DF2 nop.b 0 ;; } 0E00 L$244: { .mii 0108026F8AC0 0E00 adds r43 = 124, r38 012002000240 0E01 addl r9 = 524288, r0 000008000000 0E02 nop.i 0 } { .mmi 0080820002C0 0E10 ld4 r11 = [in0] ;; // r11 = [r32] 011162BF0B00 0E11 and r44 = -8, r43 01C440B00240 0E12 cmp4.eq pr9, pr8 = r0, r11 ;; } { .mmi 01C03AC56000 0E20 cmp.eq pr0, pr7 = r43, r44 00A0C2C10200 0E21 ld8 r8 = [r44], 8 000008000000 0E22 nop.i 0 ;; } { .mib 000008000000 0E30 nop.m 0 009E10056B47 0E31 (pr7) dep r45 = r43, r0, 3, 3 004000000000 0E32 nop.b 0 ;; } { .mmi 0080C2C000C7 0E40 (pr7) ld8 r3 = [r44] ;; 000008000000 0E41 nop.m 0 00F20085A207 0E42 (pr7) shr.u r8 = r8, r45 } { .mmi 01012AD80B47 0E50 (pr7) sub r45 = 64, r45 ;; 000008000000 0E51 nop.m 0 00F242D060C7 0E52 (pr7) shl r3 = r3, r45 ;; } { .mmi 010070806207 0E60 (pr7) or r8 = r3, r8 ;; 010060812200 0E61 and r8 = r9, r8 000008000000 0E62 nop.i 0 ;; } { .mmi 01C0008002C0 0E70 cmp.eq pr11, pr0 = r0, r8 ;; 01C20000024B 0E71 (pr11) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 0E72 nop.i 0 } { .mfb 000008000000 0E80 nop.m 0 000008000000 0E81 nop.f 0 008600010009 0E82 (pr9) br.cond.dpnt.many L$245 ;; } { .mmi 01C000001300 0E90 cmp.eq.unc pr12, pr0 = r0, r0 ;; // 068655 01A000000302 0E91 (pr2) cmp.ltu pr12, pr0 = r0, r0 000008000000 0E92 nop.i 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 44 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } { .bbb 00860000200C 0EA0 (pr12) br.cond.dpnt.many L$249 004000000000 0EA1 nop.b 0 008000005000 0EA2 br.sptk.many L$248 ;; } 0EB0 L$249: { .mfi 0108000002C0 0EB0 mov r11 = r0 000008000000 0EB1 nop.f 0 000008000000 0EB2 nop.i 0 } 0EC0 L$248: { .mii 012000100D00 0EC0 add out2 = @ltoff($LITERAL$+24), // r52 = @ltoff($LITERAL$+24), r1 gp 012000100440 0EC1 add r17 = @ltoff($LITERAL$+256), // r17 = @ltoff($LITERAL$+256), r1 // 068656 gp 01200000A640 0EC2 mov ai = 5 ;; // r25 = 5 // 068655 } { .mmi 0080C3400CC0 0ED0 ld8 out1 = $LITERAL$ // r51 = [r52] 0080C1100D80 0ED1 ld8 out4 = $LITERAL$ // r54 = [r17] // 068656 010802900D40 0ED2 mov out3 = r41 ;; // r53 = r41 // 068655 } { .mib 012010038D00 0EE0 mov out2 = 284 // r52 = 284 0000B0B00C80 0EE1 sxt4 out0 = r11 // r50 = r11 00A000001000 0EE2 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010803100040 0EF0 mov gp = r49 // r1 = r49 000008000000 0EF1 nop.f 0 000008000000 0EF2 nop.i 0 } 0F00 L$245: // 068656 { .mmi 010802020800 0F00 adds in0 = 16, in0 ;; // r32 = 16, r32 // 068658 00B08A0E0AC0 0F01 ld4 r43 = [in0], -16 // r43 = [r32], -16 000008000000 0F02 nop.i 0 ;; } { .mfb 01C402B001C0 0F10 cmp4.eq pr7, pr0 = r0, r43 000008000000 0F11 nop.f 0 008600012007 0F12 (pr7) br.cond.dpnt.many L$250 ;; } 0F20 L$193: // 068669 { .mii 008002400B00 0F20 ld1 r44 = [r36] // 068670 010802402B40 0F21 adds r45 = 1, cptr ;; // r45 = 1, r36 0000A2C00B00 0F22 sxt1 r44 = r44 ;; } { .mmi 01C042C00000 0F30 cmp.eq pr0, pr8 = r0, r44 ;; 010802D00908 0F31 (pr8) mov cptr = r45 // r36 = r45 000008000000 0F32 nop.i 0 ;; } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 45 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 0F40 L$189: // 068582 { .mmi 0080024000C0 0F40 ld1 r3 = [r36] ;; 000008000000 0F41 nop.m 0 0000A03000C0 0F42 sxt1 r3 = r3 ;; } { .mmi 01C0503002C0 0F50 cmp.eq pr11, pr10 = r0, r3 ;; 01C00000130A 0F51 (pr10) cmp.eq.unc pr12, pr0 = r0, r0 01C00000134B 0F52 (pr11) cmp.eq.unc pr13, pr0 = r0, r0 ;; } { .mbb 01C00000120C 0F60 (pr12) cmp.eq.unc pr8, pr0 = r0, r0 // 068584 0095FFEB200C 0F61 (pr12) br.cond.dptk.many L$167 // 068582 00860001000D 0F62 (pr13) br.cond.dpnt.many L$166 ;; } 0F70 L$238: // 068638 { .mmi 010802020800 0F70 adds in0 = 16, in0 ;; // r32 = 16, r32 // 068642 00BC8A055C00 0F71 st4 [in0] = r42, -16 // [r32] = r42, -16 000008000000 0F72 nop.i 0 ;; } { .mfb 010802000C80 0F80 mov out0 = tkptr // r50 = r32 // 068643 000008000000 0F81 nop.f 0 00A000001000 0F82 br.call.sptk.many rp = // br0 = ProxyNetHostConnect ProxyNetHostConnect ;; } { .mfb 000008000000 0F90 nop.m 0 000008000000 0F91 nop.f 0 008000017000 0F92 br.sptk.many L$251 ;; // 068644 } 0FA0 L$250: // 068658 { .mii 01080A028D00 0FA0 adds out2 = 148, in0 // r52 = 148, r32 // 068661 010802020800 0FA1 adds in0 = 16, in0 // r32 = 16, r32 // 068660 012000100D40 0FA2 add out3 = // r53 = // 068661 @ltoff(@fptr(ProxyNetResolveHost)), gp // @ltoff(@fptr(ProxyNetResolveHost)), // r1 } { .mmi 010802200CC0 0FB0 mov out1 = r34 ;; // r51 = r34 00BC8A055C00 0FB1 st4 [in0] = r42, -16 // [r32] = r42, -16 // 068660 010802500C80 0FB2 mov out0 = r37 ;; // r50 = r37 // 068661 } { .mmi 008083400D00 0FC0 ld4 out2 = [out2] ;; // r52 = [r52] 000008000000 0FC1 nop.m 0 0000B3400D00 0FC2 sxt4 out2 = out2 // r52 = r52 } { .mfb 000008000000 0FD0 nop.m 0 000008000000 0FD1 nop.f 0 008000009000 0FD2 br.sptk.many L$387 ;; } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 46 ProxyNetCheckAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 0FE0 L$166: // 068672 { .mii 01080A028D00 0FE0 adds out2 = 148, in0 // r52 = 148, r32 // 068675 012000100D40 0FE1 add out3 = // r53 = @ltoff(@fptr(ProxyNetHostConnect)), gp // @ltoff(@fptr(ProxyNetHostConnect)), // r1 010802200CC0 0FE2 mov out1 = r34 // r51 = r34 } { .mmi 010802500C80 0FF0 mov out0 = r37 ;; // r50 = r37 008083400D00 0FF1 ld4 out2 = [out2] // r52 = [r52] 000008000000 0FF2 nop.i 0 ;; } { .mib 000008000000 1000 nop.m 0 0000B3400D00 1001 sxt4 out2 = out2 // r52 = r52 004000000000 1002 nop.b 0 } 1010 L$387: { .mii 0080C3500D40 1010 ld8 out3 = ProxyNetHostConnect // r53 = [r53] 01200000A640 1011 mov ai = 5 ;; // r25 = 5 0000B2000D80 1012 sxt4 out4 = tkptr // r54 = r32 } { .mfb 000008000000 1020 nop.m 0 000008000000 1021 nop.f 0 00A000001000 1022 br.call.sptk.many rp = // br0 = TcpIpNameToAddress TcpIpNameToAddress ;; } { .mfi 010803100040 1030 mov gp = r49 // r1 = r49 000008000000 1031 nop.f 0 000008000000 1032 nop.i 0 } 1040 L$251: // 068680 { .mii 000008000000 1040 nop.m 0 0016000607C0 1041 mov pr = r48, -65474 ;; 00015405E000 1042 mov.i rspfs = r47 ;; } { .mib 000008000000 1050 nop.m 0 000E0015C000 1051 mov rp = r46 // br0 = r46 000108001100 1052 br.ret.sptk.many rp ;; // br0 } .endp ProxyNetCheckAffinityCookie Routine Size: 3136 bytes, Routine Base: $CODE$ + 0420 .proc ProxyNetHostConnect .align 32 .global ProxyNetHostConnect ProxyNetHostConnect: // 068690 { .mii 002C00D2AA80 1060 alloc r42 = rspfs, 1, 12, 8, 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 47 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 012000040380 1061 mov r14 = 32 010800C00080 1062 mov r2 = sp // r2 = r12 } { .mmi 010800100B00 1070 mov r44 = gp ;; // r44 = r1 010028E183C0 1071 sub r15 = sp, r14 // r15 = r12, r14 000188000A40 1072 mov r41 = rp // r41 = br0 } { .mmi 010862040200 1080 adds r8 = 1568, in0 ;; // r8 = 1568, r32 // 068717 0080C0F00380 1081 ld8 r14 = [r15] // 068690 010800F00300 1082 mov sp = r15 // r12 = r15 } { .mmi 008040800200 1090 ld2 r8 = [r8] ;; // 068717 000008000000 1091 nop.m 0 000198000AC0 1092 mov r43 = pr // 068690 } { .mii 01C430040000 10A0 cmp4.eq pr0, pr6 = tkptr, r0 // pr0, pr6 = r32, r0 // 068763 01084A0500C0 10A1 adds r3 = 1192, in0 ;; // r3 = 1192, r32 // 068715 01C000001086 10A2 (pr6) cmp.eq.unc pr2, pr0 = r0, r0 // 068763 } { .mmi 008080300840 10B0 ld4 rqptr = [r3] ;; // r33 = [r3] // 068715 000008000000 10B1 nop.m 0 0000B2100840 10B2 sxt4 rqptr = rqptr ;; // r33 = r33 } { .mib 000008000000 10C0 nop.m 0 00A040800240 10C1 tbit.z pr9, pr8 = r8, 0 // 068717 008600054008 10C2 (pr8) br.cond.dpnt.many L$84 ;; } { .bbb 008600002002 10D0 (pr2) br.cond.dpnt.many L$86 // 068723 008000029000 10D1 br.sptk.many L$87 004000000000 10D2 nop.b 0 ;; } 10E0 L$86: { .mii 012000100200 10E0 add r8 = @ltoff(Watch+124), gp // r8 = @ltoff(Watch+124), r1 012002000440 10E1 addl r17 = 524288, r0 000008000000 10E2 nop.i 0 ;; } { .mmi 0080C0800200 10F0 ld8 r8 = Watch ;; // r8 = [r8] 0111608F00C0 10F1 and r3 = -8, r8 000008000000 10F2 nop.i 0 ;; } { .mmi 01C038310000 1100 cmp.eq pr0, pr7 = r8, r3 00A0C03102C0 1101 ld8 r11 = Watch, 8 // r11 = [r3], 8 000008000000 1102 nop.i 0 ;; } { .mib 000008000000 1110 nop.m 0 009E10010247 1111 (pr7) dep r9 = Watch, r0, 3, 3 // r9 = r8, r0, 3, 3 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 48 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 004000000000 1112 nop.b 0 ;; } { .mmi 0080C0300287 1120 (pr7) ld8 r10 = Watch // r10 = [r3] 0080820000C0 1121 ld4 r3 = [in0] // r3 = [r32] 000008000000 1122 nop.i 0 ;; } { .mmi 01C450300200 1130 cmp4.eq pr8, pr10 = r0, r3 ;; 000008000000 1131 nop.m 0 00F200B122C7 1132 (pr7) shr.u r11 = r11, r9 } { .mmi 010128980247 1140 (pr7) sub r9 = 64, r9 ;; 000008000000 1141 nop.m 0 00F240914287 1142 (pr7) shl r10 = r10, r9 ;; } { .mmi 010070B142C7 1150 (pr7) or r11 = r10, r11 ;; 010060B222C0 1151 and r11 = r17, r11 000008000000 1152 nop.i 0 ;; } { .mmi 01C000B00180 1160 cmp.eq pr6, pr0 = r0, r11 ;; 01C200000206 1161 (pr6) cmp.eq.or.andcm pr8, pr0 = r0, r0 000008000000 1162 nop.i 0 } { .mfb 000008000000 1170 nop.m 0 000008000000 1171 nop.f 0 008600014008 1172 (pr8) br.cond.dpnt.many L$87 ;; } { .mmi 01C0000011C0 1180 cmp.eq.unc pr7, pr0 = r0, r0 ;; // 068724 01A0000001C2 1181 (pr2) cmp.ltu pr7, pr0 = r0, r0 000008000000 1182 nop.i 0 } { .bbb 008600002007 1190 (pr7) br.cond.dpnt.many L$91 004000000000 1191 nop.b 0 008000005000 1192 br.sptk.many L$90 ;; } 11A0 L$91: { .mfi 0108000000C0 11A0 mov r3 = r0 000008000000 11A1 nop.f 0 000008000000 11A2 nop.i 0 } 11B0 L$90: { .mii 012000100BC0 11B0 add out2 = @ltoff($LITERAL$+24), // r47 = @ltoff($LITERAL$+24), r1 gp 012000100280 11B1 add r10 = @ltoff($LITERAL$+232), // r10 = @ltoff($LITERAL$+232), r1 // 068725 gp 010862040240 11B2 adds r9 = 1568, in0 ;; // r9 = 1568, r32 // 068727 } { .mmi Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 49 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 0080C2F00B80 11C0 ld8 out1 = $LITERAL$ // r46 = [r47] // 068724 0080C0A00C40 11C1 ld8 out4 = $LITERAL$ // r49 = [r10] // 068725 01200000E640 11C2 mov ai = 7 ;; // r25 = 7 // 068724 } { .mii 008040900CC0 11D0 ld2 out6 = [r9] // r51 = [r9] // 068727 012002000C00 11D1 addl out3 = 524288, r0 // r48 = 524288, r0 // 068724 0120100C2BC0 11D2 mov out2 = 353 // r47 = 353 } { .mmi 01081A0D8C80 11E0 adds out5 = 492, tkptr ;; // r50 = 492, r32 // 068726 000008000000 11E1 nop.m 0 0000B0300B40 11E2 sxt4 out0 = r3 // r45 = r3 // 068724 } { .mfb 000008000000 11F0 nop.m 0 000008000000 11F1 nop.f 0 00A000001000 11F2 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802C00040 1200 mov gp = r44 // r1 = r44 000008000000 1201 nop.f 0 000008000000 1202 nop.i 0 } 1210 L$87: // 068727 { .mfi 010802000B40 1210 mov out0 = tkptr // r45 = r32 // 068730 000008000000 1211 nop.f 0 000008000000 1212 nop.i 0 ;; } { .mfb 000008000000 1220 nop.m 0 000008000000 1221 nop.f 0 00A000001000 1222 br.call.sptk.many rp = // br0 = ProxyNetCloseSocket ProxyNetCloseSocket ;; } { .mii 01080A0F8200 1230 adds r8 = 252, in0 // r8 = 252, r32 // 068732 0120180EC0C0 1231 mov r3 = 502 01C400042180 1232 cmp4.eq pr6, pr0 = rqptr, r0 ;; // pr6, pr0 = r33, r0 // 068733 } { .mfb 008C80806000 1240 st4 [r8] = r3 // 068732 000008000000 1241 nop.f 0 00860001E006 1242 (pr6) br.cond.dpnt.many L$93 ;; // 068733 } { .mii 01092A130280 1250 adds r10 = 4760, r33 // 068736 0109321602C0 1251 adds r11 = 4912, r33 // 068737 0108220D8240 1252 adds r9 = 620, tkptr // r9 = 620, r32 } { .mmi 010862040440 1260 adds r17 = 1568, in0 ;; // r17 = 1568, r32 // 068738 008C80A06000 1261 st4 [r10] = r3 // 068736 0120800E0480 1262 mov r18 = 2160 // 068738 } { .mmi Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 50 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 008C80B12000 1270 st4 [r11] = r9 ;; // 068737 008041100440 1271 ld2 r17 = [r17] // 068738 000008000000 1272 nop.i 0 ;; } { .mfb 01C039222000 1280 cmp.eq pr0, pr7 = r17, r18 000008000000 1281 nop.f 0 00860000E007 1282 (pr7) br.cond.dpnt.many L$94 ;; } { .mii 012000004640 1290 mov ai = 2 // r25 = 2 // 068739 0120000CCB80 1291 mov out1 = 102 // r46 = 102 010802100B40 1292 mov out0 = rqptr // r45 = r33 } { .mfb 000008000000 12A0 nop.m 0 000008000000 12A1 nop.f 0 00A000001000 12A2 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor } { .mii 010802C00040 12B0 mov gp = r44 // r1 = r44 012000008640 12B1 mov ai = 4 // r25 = 4 010800800B80 12B2 mov out1 = r8 // r46 = r8 } { .mmi 010802100B40 12C0 mov out0 = rqptr ;; // r45 = r33 012000100C00 12C1 add out3 = @ltoff($LITERAL$+24), // r48 = @ltoff($LITERAL$+24), r1 gp 000008000000 12C2 nop.i 0 ;; } { .mib 0080C3000BC0 12D0 ld8 out2 = $LITERAL$ // r47 = [r48] 0120100E0C00 12D1 mov out3 = 368 // r48 = 368 00A000001000 12D2 br.call.sptk.many rp = ErrorGeneral ;; // br0 = ErrorGeneral } { .mfb 000008000000 12E0 nop.m 0 000008000000 12E1 nop.f 0 008000009000 12E2 br.sptk.many L$388 ;; } 12F0 L$94: // 068740 { .mii 012000100C00 12F0 add out3 = @ltoff($LITERAL$+24), // r48 = @ltoff($LITERAL$+24), r1 // 068741 gp 010862040880 12F1 adds r34 = 1568, in0 // r34 = 1568, r32 012000008640 12F2 mov ai = 4 // r25 = 4 } { .mmi 010802100B40 1300 mov out0 = rqptr ;; // r45 = r33 0080C3000BC0 1301 ld8 out2 = $LITERAL$ // r47 = [r48] 0120100E4C00 1302 mov out3 = 370 // r48 = 370 } { .mfb 008042200B80 1310 ld2 out1 = [r34] // r46 = [r34] 000008000000 1311 nop.f 0 00A000001000 1312 br.call.sptk.many rp = ErrorVmsStatus ;; // br0 = ErrorVmsStatus } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 51 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 1320 L$388: { .mfi 010802C00040 1320 mov gp = r44 // r1 = r44 000008000000 1321 nop.f 0 000008000000 1322 nop.i 0 } 1330 L$93: // 068742 { .mii 012000002640 1330 mov ai = 1 // r25 = 1 // 068743 010802000B40 1331 mov out0 = tkptr // r45 = r32 000008000000 1332 nop.i 0 ;; } { .mfb 000008000000 1340 nop.m 0 000008000000 1341 nop.f 0 00A000001000 1342 br.call.sptk.many rp = ProxyEnd ;; // br0 = ProxyEnd } { .mfb 000008000000 1350 nop.m 0 000008000000 1351 nop.f 0 0080001C9000 1352 br.sptk.many L$389 ;; } 1360 L$84: // 068745 { .mii 010862080840 1360 adds r33 = 1600, in0 // r33 = 1600, r32 // 068751 010862060880 1361 adds r34 = 1584, in0 // r34 = 1584, r32 0108620700C0 1362 adds r3 = 1592, in0 // r3 = 1592, r32 } { .mmi 0108420F0200 1370 adds r8 = 1144, in0 ;; // r8 = 1144, r32 // 068754 008082100840 1371 ld4 r33 = [r33] // 068751 01084A040240 1372 adds r9 = 1184, in0 // r9 = 1184, r32 } { .mii 0080C2200880 1380 ld8 r34 = [r34] 01084A020280 1381 adds r10 = 1168, in0 ;; // r10 = 1168, r32 012000100480 1382 add r18 = @ltoff($LITERAL$+208), // r18 = @ltoff($LITERAL$+208), r1 // 068754 gp } { .mmi 0080C03000C0 1390 ld8 r3 = [r3] // 068751 008080800200 1391 ld4 r8 = [r8] // 068754 01084A0302C0 1392 adds r11 = 1176, in0 ;; // r11 = 1176, r32 // 068751 } { .mmi 008C80942000 13A0 st4 [r9] = r33 008CC0A44000 13A1 st8 [r10] = r34 012000006640 13A2 mov ai = 3 ;; // r25 = 3 // 068754 } { .mii 0080C1200B80 13B0 ld8 out1 = $LITERAL$ // r46 = [r18] 0000B0800BC0 13B1 sxt4 out2 = r8 // r47 = r8 0108420D0B40 13B2 adds out0 = 1128, tkptr ;; // r45 = 1128, r32 } { .mfb 008CC0B06000 13C0 st8 [r11] = r3 // 068751 000008000000 13C1 nop.f 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 52 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 00A000001000 13C2 br.call.sptk.many rp = DECC$MEMCMP ;; // br0 = DECC$MEMCMP // 068754 } { .mib 01C430800000 13D0 cmp4.eq pr0, pr6 = r0, r8 010802C00040 13D1 mov gp = r44 // r1 = r44 008600014006 13D2 (pr6) br.cond.dpnt.many L$97 ;; } { .mii 010862060840 13E0 adds r33 = 1584, in0 // r33 = 1584, r32 // 068755 0108420F8880 13E1 adds r34 = 1148, in0 // r34 = 1148, r32 0108620700C0 13E2 adds r3 = 1592, in0 // r3 = 1592, r32 } { .mmi 010862080240 13F0 adds r9 = 1600, in0 ;; // r9 = 1600, r32 008082100840 13F1 ld4 r33 = [r33] 010862068280 13F2 adds r10 = 1588, in0 // r10 = 1588, r32 } { .mii 0108620782C0 1400 adds r11 = 1596, in0 // r11 = 1596, r32 01084A008440 1401 adds r17 = 1156, in0 ;; // r17 = 1156, r32 01084A018480 1402 adds r18 = 1164, in0 // r18 = 1164, r32 } { .mii 008C82242000 1410 st4 [r34] = r33 01084A0004C0 1411 adds r19 = 1152, in0 // r19 = 1152, r32 01084A010500 1412 adds r20 = 1160, in0 ;; // r20 = 1160, r32 } { .mmi 0080803000C0 1420 ld4 r3 = [r3] 008080900240 1421 ld4 r9 = [r9] 000008000000 1422 nop.i 0 ;; } { .mmi 008080A00280 1430 ld4 r10 = [r10] 008080B002C0 1431 ld4 r11 = [r11] 000008000000 1432 nop.i 0 ;; } { .mmi 008C81106000 1440 st4 [r17] = r3 008C81212000 1441 st4 [r18] = r9 000008000000 1442 nop.i 0 ;; } { .mmb 008C81314000 1450 st4 [r19] = r10 008C81416000 1451 st4 [r20] = r11 008600016002 1452 (pr2) br.cond.dpnt.many L$100 ;; // 068763 } { .mfb 000008000000 1460 nop.m 0 000008000000 1461 nop.f 0 008000039000 1462 br.sptk.many L$101 ;; } 1470 L$97: // 068756 { .mii 0108420D0540 1470 adds r21 = 1128, in0 // r21 = 1128, r32 // 068757 0108420F8580 1471 adds r22 = 1148, in0 // r22 = 1148, r32 0108420E05C0 1472 adds r23 = 1136, in0 // r23 = 1136, r32 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 53 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } { .mmi 0108420F0600 1480 adds r24 = 1144, in0 ;; // r24 = 1144, r32 008081500540 1481 ld4 r21 = [r21] 0108420D8640 1482 adds ai = 1132, in0 // r25 = 1132, r32 } { .mii 0108420E8680 1490 adds r26 = 1140, in0 // r26 = 1140, r32 01084A0086C0 1491 adds r27 = 1156, in0 ;; // r27 = 1156, r32 01084A018700 1492 adds r28 = 1164, in0 // r28 = 1164, r32 } { .mii 008C8162A000 14A0 st4 [r22] = r21 01084A000740 14A1 adds r29 = 1152, in0 // r29 = 1152, r32 01084A010780 14A2 adds r30 = 1160, in0 ;; // r30 = 1160, r32 } { .mmi 0080817005C0 14B0 ld4 r23 = [r23] 008081800600 14B1 ld4 r24 = [r24] 000008000000 14B2 nop.i 0 ;; } { .mmi 008081900640 14C0 ld4 ai = [ai] // r25 = [r25] 008081A00680 14C1 ld4 r26 = [r26] 000008000000 14C2 nop.i 0 ;; } { .mmi 008C81B2E000 14D0 st4 [r27] = r23 008C81C30000 14D1 st4 [r28] = r24 000008000000 14D2 nop.i 0 ;; } { .mmb 008C81D32000 14E0 st4 [r29] = ai // [r29] = r25 008C81E34000 14E1 st4 [r30] = r26 008600004002 14E2 (pr2) br.cond.dpnt.many L$100 ;; // 068763 } { .mfb 000008000000 14F0 nop.m 0 000008000000 14F1 nop.f 0 008000027000 14F2 br.sptk.many L$101 ;; } 1500 L$100: { .mii 0120001007C0 1500 add r31 = @ltoff(Watch+124), gp // r31 = @ltoff(Watch+124), r1 012002000C40 1501 addl out4 = 524288, r0 // r49 = 524288, r0 000008000000 1502 nop.i 0 } { .mmi 008082000CC0 1510 ld4 out6 = [in0] ;; // r51 = [r32] 0080C1F007C0 1511 ld8 r31 = Watch // r31 = [r31] 01C4533002C0 1512 cmp4.eq pr11, pr10 = r0, out6 ;; // pr11, pr10 = r0, r51 } { .mmi 011161FF0B40 1520 and out0 = -8, r31 ;; // r45 = -8, r31 01C04AD3E000 1521 cmp.eq pr0, pr9 = r31, out0 // pr0, pr9 = r31, r45 000008000000 1522 nop.i 0 } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 54 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mmi 00A0C2D10C00 1530 ld8 out3 = Watch, 8 ;; // r48 = [r45], 8 000008000000 1531 nop.m 0 009E1003EB89 1532 (pr9) dep out1 = Watch, r0, 3, 3 ;; // r46 = r31, r0, 3, 3 } { .mmi 0080C2D00BC9 1540 (pr9) ld8 out2 = Watch ;; // r47 = [r45] 000008000000 1541 nop.m 0 00F20305CC09 1542 (pr9) shr.u out3 = out3, out1 // r48 = r48, r46 } { .mmi 01012AE80B89 1550 (pr9) sub out1 = 64, out1 ;; // r46 = 64, r46 000008000000 1551 nop.m 0 00F242E5EBC9 1552 (pr9) shl out2 = out2, out1 ;; // r47 = r47, r46 } { .mmi 01007305EC09 1560 (pr9) or out3 = out2, out3 ;; // r48 = r47, r48 010063062C00 1561 and out3 = out4, out3 // r48 = r49, r48 000008000000 1562 nop.i 0 ;; } { .mmi 01C003000340 1570 cmp.eq pr13, pr0 = r0, out3 ;; // pr13, pr0 = r0, r48 01C2000002CD 1571 (pr13) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 1572 nop.i 0 } { .mfb 000008000000 1580 nop.m 0 000008000000 1581 nop.f 0 00860001400B 1582 (pr11) br.cond.dpnt.many L$101 ;; } { .mmi 01C000001380 1590 cmp.eq.unc pr14, pr0 = r0, r0 ;; // 068764 01A000000382 1591 (pr2) cmp.ltu pr14, pr0 = r0, r0 000008000000 1592 nop.i 0 } { .bbb 00860000200E 15A0 (pr14) br.cond.dpnt.many L$105 004000000000 15A1 nop.b 0 008000005000 15A2 br.sptk.many L$104 ;; } 15B0 L$105: { .mfi 010800000CC0 15B0 mov out6 = r0 // r51 = r0 000008000000 15B1 nop.f 0 000008000000 15B2 nop.i 0 } 15C0 L$104: { .mii 012000100D00 15C0 add out7 = @ltoff($LITERAL$+184), // r52 = @ltoff($LITERAL$+184), r1 // 068765 gp 012000100BC0 15C1 add out2 = @ltoff($LITERAL$+24), // r47 = @ltoff($LITERAL$+24), r1 // 068764 gp 0108420A8840 15C2 adds r33 = 1108, tkptr ;; // r33 = 1108, r32 // 068766 } { .mii 0080C3400C40 15D0 ld8 out4 = $LITERAL$ // r49 = [r52] // 068765 0000B3300B40 15D1 sxt4 out0 = out6 // r45 = r51 // 068764 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 55 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 01080A010CC0 15D2 adds out6 = 136, in0 // r51 = 136, r32 } { .mmi 0080C2F00B80 15E0 ld8 out1 = $LITERAL$ ;; // r46 = [r47] 008083300CC0 15E1 ld4 out6 = [out6] // r51 = [r51] 012000010640 15E2 mov ai = 8 // r25 = 8 } { .mii 010802100D00 15F0 mov out7 = r33 // r52 = r33 012002000C00 15F1 addl out3 = 524288, r0 ;; // r48 = 524288, r0 0000B3300CC0 15F2 sxt4 out6 = out6 // r51 = r51 } { .mib 012018012BC0 1600 mov out2 = 393 // r47 = 393 0108420F8C80 1601 adds out5 = 1148, tkptr // r50 = 1148, r32 // 068765 00A000001000 1602 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis // 068764 } { .mfi 010802C00040 1610 mov gp = r44 // r1 = r44 000008000000 1611 nop.f 0 000008000000 1612 nop.i 0 } 1620 L$101: // 068766 { .mii 01080A020840 1620 adds r33 = 144, in0 // r33 = 144, r32 // 068768 012000002880 1621 mov r34 = 1 01084A080B80 1622 adds out1 = 1216, in0 ;; // r46 = 1216, r32 // 068771 } { .mmi 0120001008C0 1630 add r35 = @ltoffx(TcpIpDeviceDsc), // r35 = @ltoffx(TcpIpDeviceDsc), r1 gp 008C82144000 1631 st4 [r33] = r34 // 068768 012000008640 1632 mov ai = 4 ;; // r25 = 4 // 068771 } { .mmi 008082E00B80 1640 ld4 out1 = [out1] // r46 = [r46] 0080C23008C0 1641 ld8.mov r35 = [r35], TcpIpDeviceDsc 012000000C00 1642 mov out3 = 0 ;; // r48 = 0 } { .mii 012000000BC0 1650 mov out2 = 0 // r47 = 0 0000B2E00B80 1651 sxt4 out1 = out1 // r46 = r46 010802300B40 1652 mov out0 = r35 // r45 = r35 } { .mfb 000008000000 1660 nop.m 0 000008000000 1661 nop.f 0 00A000001000 1662 br.call.sptk.many rp = SYS$ASSIGN ;; // br0 = SYS$ASSIGN } { .mib 010802C00040 1670 mov gp = r44 // r1 = r44 00A010800180 1671 tbit.z pr6, pr2 = status, 0 // pr6, pr2 = r8, 0 // 068772 008600004002 1672 (pr2) br.cond.dpnt.many L$106 ;; } { .mfb 000008000000 1680 nop.m 0 000008000000 1681 nop.f 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 56 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 00800015D000 1682 br.sptk.many L$390 ;; } 1690 L$106: // 068778 { .mii 0120001000C0 1690 add r3 = @ltoff($LITERAL$+208), gp // r3 = @ltoff($LITERAL$+208), r1 // 068780 0108420C8880 1691 adds r34 = 1124, in0 // r34 = 1124, r32 012000006640 1692 mov ai = 3 // r25 = 3 } { .mmi 0108420A8B40 16A0 adds out0 = 1108, tkptr ;; // r45 = 1108, r32 0080C03000C0 16A1 ld8 r3 = $LITERAL$ // r3 = [r3] 000008000000 16A2 nop.i 0 } { .mmi 008082200880 16B0 ld4 r34 = [r34] ;; 010800300B80 16B1 mov out1 = r3 // r46 = r3 0000B2200BC0 16B2 sxt4 out2 = r34 // r47 = r34 } { .mfb 000008000000 16C0 nop.m 0 000008000000 16C1 nop.f 0 00A000001000 16C2 br.call.sptk.many rp = DECC$MEMCMP ;; // br0 = DECC$MEMCMP } { .mib 01C400800180 16D0 cmp4.eq pr6, pr0 = r0, r8 010802C00040 16D1 mov gp = r44 // r1 = r44 00860005C006 16D2 (pr6) br.cond.dpnt.many L$109 ;; } { .mii 0108420C8840 16E0 adds r33 = 1124, in0 // r33 = 1124, r32 // 068783 012000020880 16E1 mov r34 = 16 // 068797 000008000000 16E2 nop.i 0 ;; } { .mmi 008082100840 16F0 ld4 r33 = [r33] ;; // 068783 01CC3A108000 16F1 cmp4.eq pr0, pr7 = 4, r33 000008000000 16F2 nop.i 0 } { .mfb 000008000000 1700 nop.m 0 000008000000 1701 nop.f 0 00860002E007 1702 (pr7) br.cond.dpnt.many L$112 ;; } { .mii 010852088240 1710 adds r9 = 1348, in0 // r9 = 1348, r32 // 068785 010852098280 1711 adds r10 = 1356, in0 // r10 = 1356, r32 0108520C0440 1712 adds r17 = 1376, in0 // r17 = 1376, r32 } { .mmi 010852090480 1720 adds r18 = 1352, in0 ;; // r18 = 1352, r32 0108520A04C0 1721 adds r19 = 1360, in0 // r19 = 1360, r32 012000004540 1722 mov r21 = 2 // 068787 } { .mii 0108520880C0 1730 adds sin4ptr = 1348, tkptr // r3 = 1348, r32 // 068786 0108420A82C0 1731 adds r11 = 1108, tkptr ;; // r11 = 1108, r32 // 068789 010800304600 1732 adds r24 = 2, r3 // 068788 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 57 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } { .mmi 008C80900000 1740 st4 [r9] = r0 // 068785 008C80A00000 1741 st4 [r10] = r0 011160BF8680 1742 and r26 = -4, r11 ;; // 068789 } { .mmi 008C81144000 1750 st4 [r17] = r34 // 068785 008C81200000 1751 st4 [r18] = r0 01C051A16240 1752 cmp.eq pr9, pr10 = r11, r26 ;; // 068789 } { .mii 008C81300000 1760 st4 [r19] = r0 // 068785 0108003020C0 1761 adds r3 = 1, r3 // 068787 009E080166CA 1762 (pr10) dep r27 = r11, r0, 3, 2 ;; // 068789 } { .mmi 008C0032A000 1770 st1 [r3] = r21 // 068787 00AC01800040 1771 st1 [r24] = r0, 1 // 068788 010800306780 1772 adds r30 = 3, sin4ptr ;; // r30 = 3, r3 // 068789 } { .mii 0108A2090880 1780 adds il2ptr = 2632, tkptr // r34 = 2632, r32 // 068791 00A061E002C0 1781 tbit.z pr11, pr12 = r30, 0 // 068789 012000020B40 1782 mov out0 = 16 // r45 = 16 // 068792 } { .mmi 0119F83FE0C0 1790 adds r3 = -1, r3 ;; // 068789 008C01800000 1791 st1 [r24] = r0 // 068788 010802200BC0 1792 mov out2 = r34 // r47 = r34 // 068792 } { .mii 010802204C80 17A0 adds out5 = 2, r34 // r50 = 2, r34 // 068793 010802208D00 17A1 adds out7 = 4, r34 ;; // r52 = 4, r34 // 068794 00A5BAD20C00 17A2 shr.u out3 = out0, 8 // r48 = r45, 8 // 068792 } { .mii 008081A00749 17B0 (pr9) ld4 r29 = [r26] // 068789 010800300200 17B1 mov r8 = sin4ptr ;; // r8 = r3 // 068794 00A073400340 17B2 tbit.z pr13, pr14 = out7, 0 ;; // pr13, pr14 = r52, 0 } { .mmi 00A081A0874A 17C0 (pr10) ld4 r29 = [r26], 4 ;; // 068789 008081A0070A 17C1 (pr10) ld4 r28 = [r26] 00F201D3674A 17C2 (pr10) shr.u r29 = r29, r27 } { .mmi 010129B406CA 17D0 (pr10) sub r27 = 32, r27 ;; 000008000000 17D1 nop.m 0 00F241B3870A 17D2 (pr10) shl r28 = r28, r27 ;; } { .mmi 010071D3874A 17E0 (pr10) or r29 = r28, r29 ;; 010801D007C0 17E1 mov r31 = r29 000008000000 17E2 nop.i 0 ;; } { .mib Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 58 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 00AC01E3E04C 17F0 (pr12) st1 [r30] = r31, 1 00A5B9F207CC 17F1 (pr12) shr.u r31 = r31, 8 004000000000 17F2 nop.b 0 ;; } { .mib 00AC41E3E080 1800 st2 [r30] = r31, 2 00A579F407C0 1801 shr.u r31 = r31, 16 004000000000 1802 nop.b 0 ;; } { .mmi 008C41E3E00B 1810 (pr11) st2 [r30] = r31 008C01E3E00C 1811 (pr12) st1 [r30] = r31 000008000000 1812 nop.i 0 ;; } { .mmi 00AC02F5A040 1820 st1 [out2] = out0, 1 ;; // [r47] = r45, 1 // 068792 008C02F60000 1821 st1 [out2] = out3 // [r47] = r48 000008000000 1822 nop.i 0 } { .mmi 00AC03200040 1830 st1 [out5] = r0, 1 ;; // [r50] = r0, 1 // 068793 008C03200000 1831 st1 [out5] = r0 // [r50] = r0 000008000000 1832 nop.i 0 } { .mmi 00AC0341004E 1840 (pr14) st1 [out7] = r8, 1 ;; // [r52] = r8, 1 // 068794 000008000000 1841 nop.m 0 00A5B882020E 1842 (pr14) shr.u r8 = r8, 8 ;; } { .mib 00AC43410080 1850 st2 [out7] = r8, 2 // [r52] = r8, 2 00A578840200 1851 shr.u r8 = r8, 16 004000000000 1852 nop.b 0 ;; } { .mmb 008C4341000D 1860 (pr13) st2 [out7] = r8 // [r52] = r8 008C0341000E 1861 (pr14) st1 [out7] = r8 // [r52] = r8 00800002D000 1862 br.sptk.many L$123 ;; // 068796 } 1870 L$112: { .mfb 01CC7A120000 1870 cmp4.eq pr0, pr15 = 16, r33 // 068797 000008000000 1871 nop.f 0 00860002000F 1872 (pr15) br.cond.dpnt.many L$117 ;; } { .mii 012000038B80 1880 mov out1 = 28 // r46 = 28 // 068799 010852088B40 1881 adds out0 = 1348, in0 // r45 = 1348, r32 0108A2090880 1882 adds il2ptr = 2632, tkptr // r34 = 2632, r32 // 068806 } { .mfb 010852088900 1890 adds sin6ptr = 1348, tkptr // r36 = 1348, r32 // 068800 000008000000 1891 nop.f 0 00A000001000 1892 br.call.sptk.many rp = OTS$ZERO ;; // br0 = OTS$ZERO // 068799 } { .mii 0108520C0940 18A0 adds r37 = 1376, in0 // r37 = 1376, r32 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 59 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 012000038840 18A1 mov r33 = 28 0120000340C0 18A2 mov r3 = 26 // 068801 } { .mmi 010802404280 18B0 adds r10 = 2, r36 ;; // 068802 008C82542000 18B1 st4 [r37] = r33 // 068799 010802402900 18B2 adds r36 = 1, r36 // 068801 } { .mii 012000020B80 18C0 mov out1 = 16 // r46 = 16 // 068803 0108420A8BC0 18C1 adds out2 = 1108, in0 ;; // r47 = 1108, r32 01080240EB40 18C2 adds out0 = 7, r36 // r45 = 7, r36 } { .mmi 008C02406000 18D0 st1 [r36] = r3 // 068801 00AC00A00040 18D1 st1 [r10] = r0, 1 // 068802 010802C00040 18D2 mov gp = r44 ;; // r1 = r44 // 068799 } { .mmi 0119FA4FE900 18E0 adds r36 = -1, r36 ;; // 068801 008C00A00000 18E1 st1 [r10] = r0 // 068802 000008000000 18E2 nop.i 0 } { .mfb 000008000000 18F0 nop.m 0 000008000000 18F1 nop.f 0 00A000001000 18F2 br.call.sptk.many rp = OTS$MOVE ;; // br0 = OTS$MOVE // 068803 } { .mii 0108022000C0 1900 mov r3 = r34 // 068807 012000020840 1901 mov r33 = 16 010802204280 1902 adds r10 = 2, r34 // 068808 } { .mmi 010802208440 1910 adds r17 = 4, r34 ;; // 068809 00AC00342040 1911 st1 [r3] = r33, 1 // 068807 00A5BA120200 1912 shr.u r8 = r33, 8 } { .mii 010802400480 1920 mov r18 = sin6ptr // r18 = r36 // 068809 010802C00040 1921 mov gp = r44 ;; // r1 = r44 // 068803 00A031100080 1922 tbit.z pr2, pr6 = r17, 0 ;; // 068809 } { .mmi 008C00310000 1930 st1 [r3] = r8 // 068807 00AC00A00040 1931 st1 [r10] = r0, 1 // 068808 000008000000 1932 nop.i 0 ;; } { .mmi 008C00A00000 1940 st1 [r10] = r0 00AC01124046 1941 (pr6) st1 [r17] = r18, 1 // 068809 00A5B9220486 1942 (pr6) shr.u r18 = r18, 8 ;; } { .mib 00AC41124080 1950 st2 [r17] = r18, 2 00A579240480 1951 shr.u r18 = r18, 16 004000000000 1952 nop.b 0 ;; Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 60 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } { .mmb 008C41124002 1960 (pr2) st2 [r17] = r18 008C01124006 1961 (pr6) st1 [r17] = r18 00800000D000 1962 br.sptk.many L$123 ;; // 068811 } 1970 L$117: { .mii 012000100C00 1970 add out3 = @ltoff($LITERAL$+24), // r48 = @ltoff($LITERAL$+24), r1 // 068812 gp 012000100B80 1971 add out1 = // r46 = @ltoffx(ErrorSanityCheck), r1 @ltoffx(ErrorSanityCheck), gp 012000008640 1972 mov ai = 4 // r25 = 4 } { .mmi 012028048B40 1980 mov out0 = 676 ;; // r45 = 676 0080C3000BC0 1981 ld8 out2 = $LITERAL$ // r47 = [r48] 012018072C00 1982 mov out3 = 441 // r48 = 441 } { .mfb 0080C2E00B80 1990 ld8.mov out1 = [r46], ErrorSanityCheck 000008000000 1991 nop.f 0 00A000001000 1992 br.call.sptk.many rp = // br0 = ErrorExitVmsStatus ErrorExitVmsStatus ;; } { .mfb 010802C00040 19A0 mov gp = r44 // r1 = r44 000008000000 19A1 nop.f 0 008000005000 19A2 br.sptk.many L$123 ;; // 068816 } 19B0 L$109: { .mfi 010800000880 19B0 mov BindSocketNamePtr = r0 // r34 = r0 // 068817 000008000000 19B1 nop.f 0 000008000000 19B2 nop.i 0 } 19C0 L$123: { .mmi 01084A018840 19C0 adds r33 = 1164, in0 ;; // r33 = 1164, r32 // 068819 008082100840 19C1 ld4 r33 = [r33] 000008000000 19C2 nop.i 0 ;; } { .mfb 01CC12108000 19D0 cmp4.eq pr0, pr2 = 4, r33 000008000000 19D1 nop.f 0 008600006002 19D2 (pr2) br.cond.dpnt.many L$126 ;; } { .mii 012000100940 19E0 add r37 = @ltoffx(TcpIpSocket4), // r37 = @ltoffx(TcpIpSocket4), r1 // 068821 gp 012000046900 19E1 mov qiofun = 35 // r36 = 35 // 068822 000008000000 19E2 nop.i 0 ;; } { .mfb 0080C2500940 19F0 ld8.mov r37 = [r37], TcpIpSocket4 // 068821 000008000000 19F1 nop.f 0 008000013000 19F2 br.sptk.many L$128 ;; // 068824 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 61 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } 1A00 L$126: { .mfb 01CC3A120000 1A00 cmp4.eq pr0, pr7 = 16, r33 // 068825 000008000000 1A01 nop.f 0 008600008007 1A02 (pr7) br.cond.dpnt.many L$131 ;; } { .mii 0120001000C0 1A10 add r3 = @ltoffx(TcpIpSocket6), gp // r3 = @ltoffx(TcpIpSocket6), r1 // 068827 012800046900 1A11 addl qiofun = 32803, r0 // r36 = 32803, r0 // 068828 000008000000 1A12 nop.i 0 ;; } { .mmi 0080C03000C0 1A20 ld8.mov r3 = [r3], TcpIpSocket6 ;; // 068827 010800300940 1A21 mov TcpSocketPtr = r3 // r37 = r3 000008000000 1A22 nop.i 0 } { .mfb 000008000000 1A30 nop.m 0 000008000000 1A31 nop.f 0 00800000B000 1A32 br.sptk.many L$128 ;; // 068830 } 1A40 L$131: { .mii 012000100C00 1A40 add out3 = @ltoff($LITERAL$+24), // r48 = @ltoff($LITERAL$+24), r1 // 068831 gp 012000100B80 1A41 add out1 = // r46 = @ltoffx(ErrorSanityCheck), r1 @ltoffx(ErrorSanityCheck), gp 012000008640 1A42 mov ai = 4 // r25 = 4 } { .mmi 012028048B40 1A50 mov out0 = 676 ;; // r45 = 676 0080C3000BC0 1A51 ld8 out2 = $LITERAL$ // r47 = [r48] 012018098C00 1A52 mov out3 = 460 // r48 = 460 } { .mfb 0080C2E00B80 1A60 ld8.mov out1 = [r46], ErrorSanityCheck 000008000000 1A61 nop.f 0 00A000001000 1A62 br.call.sptk.many rp = // br0 = ErrorExitVmsStatus ErrorExitVmsStatus ;; } { .mfi 010802C00040 1A70 mov gp = r44 // r1 = r44 000008000000 1A71 nop.f 0 000008000000 1A72 nop.i 0 } 1A80 L$128: // 068834 { .mmi 010852038A00 1A80 adds r40 = 1308, tkptr ;; // r40 = 1308, r32 // 068837 0120001009C0 1A81 add r39 = @ltoffx(EfnWait), gp // r39 = @ltoffx(EfnWait), r1 // 068836 012000100840 1A82 add r33 = // r33 = // 068840 @ltoffx(TcpIpFullDuplexCloseOption), gp // @ltoffx(TcpIpFullDuplexCloseOption), // r1 } { .mmi 012000100980 1A90 add r38 = // r38 = @gprel(UseFullDuplexClose), r1 // 068839 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 62 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 @gprel(UseFullDuplexClose), gp ;; 0080C27009C0 1A91 ld8.mov r39 = [r39], EfnWait // 068836 000008000000 1A92 nop.i 0 } { .mfi 0080C2100840 1AA0 ld8.mov r33 = [r33], TcpIpFullDuplexCloseOption // 068840 000008000000 1AA1 nop.f 0 000008000000 1AA2 nop.i 0 ;; } 1AB0 L$135: // 068834 { .mii 0080826000C0 1AB0 ld4 r3 = [r38] // 068839 01084A080200 1AB1 adds r8 = 1216, in0 // r8 = 1216, r32 // 068836 010800000240 1AB2 mov r9 = r0 // 068839 } { .mmi 010800C20280 1AC0 adds r10 = 16, sp ;; // r10 = 16, r12 // 068836 01C410300000 1AC1 cmp4.eq pr0, pr2 = r0, r3 // 068839 010800C302C0 1AC2 adds r11 = 24, sp // r11 = 24, r12 // 068836 } { .mii 008080800200 1AD0 ld4 r8 = [r8] 010800C40440 1AD1 adds r17 = 32, sp ;; // r17 = 32, r12 010802100242 1AD2 (pr2) mov r9 = r33 // 068839 } { .mii 008082700B40 1AE0 ld4 out0 = [r39] // r45 = [r39] // 068836 010800C50480 1AE1 adds r18 = 40, sp // r18 = 40, r12 0000B0800200 1AE2 sxt4 r8 = r8 ;; } { .mmi 008CC0A44000 1AF0 st8 [r10] = BindSocketNamePtr // [r10] = r34 008CC0B00000 1AF1 st8 [r11] = r0 012000018640 1AF2 mov ai = 12 ;; // r25 = 12 } { .mii 008CC1112000 1B00 st8 [r17] = r9 012000000D00 1B01 mov out7 = 0 // r52 = 0 010802500CC0 1B02 mov out6 = TcpSocketPtr // r51 = r37 } { .mmi 012000000C80 1B10 mov out5 = 0 ;; // r50 = 0 008040800B80 1B11 ld2 out1 = [r8] // r46 = [r8] 012000000C40 1B12 mov out4 = 0 // r49 = 0 } { .mii 010802800C00 1B20 mov out3 = r40 // r48 = r40 0000B2400BC0 1B21 sxt4 out2 = qiofun ;; // r47 = r36 0000B2D00B40 1B22 sxt4 out0 = out0 // r45 = r45 } { .mfb 008CC1200000 1B30 st8 [r18] = r0 000008000000 1B31 nop.f 0 00A000001000 1B32 br.call.sptk.many rp = SYS$QIOW ;; // br0 = SYS$QIOW } { .mii 0080826000C0 1B40 ld4 r3 = [r38] // 068846 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 63 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 00A010800180 1B41 tbit.z pr6, pr2 = status, 0 // pr6, pr2 = r8, 0 // 068845 010802C00040 1B42 mov gp = r44 ;; // r1 = r44 // 068836 } { .mii 01C438300200 1B50 cmp4.eq pr8, pr7 = r0, r3 // 068846 01C000001286 1B51 (pr6) cmp.eq.unc pr10, pr0 = r0, r0 // 068845 01C000001242 1B52 (pr2) cmp.eq.unc pr9, pr0 = r0, r0 ;; } { .mib 01C000001308 1B60 (pr8) cmp.eq.unc pr12, pr0 = r0, r0 // 068846 01C0000012C7 1B61 (pr7) cmp.eq.unc pr11, pr0 = r0, r0 008600004009 1B62 (pr9) br.cond.dpnt.many L$136 ;; // 068845 } { .mfb 000008000000 1B70 nop.m 0 000008000000 1B71 nop.f 0 00860001000A 1B72 (pr10) br.cond.dpnt.many L$137 ;; } 1B80 L$136: { .mmi 010852038240 1B80 adds r9 = 1308, in0 ;; // r9 = 1308, r32 0080409000C0 1B81 ld2 r3 = [r9] 000008000000 1B82 nop.i 0 ;; } { .mii 000008000000 1B90 nop.m 0 00A068300380 1B91 tbit.z pr14, pr13 = r3, 0 ;; 01C27000000C 1B92 (pr12) cmp.eq.or.andcm pr0, pr14 = r0, r0 // 068846 } { .mfb 000008000000 1BA0 nop.m 0 000008000000 1BA1 nop.f 0 00860000C00E 1BA2 (pr14) br.cond.dpnt.many L$138 ;; } { .mmi 010852038240 1BB0 adds r9 = 1308, in0 ;; // r9 = 1308, r32 // 068866 008040900240 1BB1 ld2 r9 = [r9] 000008000000 1BB2 nop.i 0 ;; } { .mii 000008000000 1BC0 nop.m 0 00A038900200 1BC1 tbit.z pr8, pr7 = r9, 0 ;; 010800900208 1BC2 (pr8) mov status = r9 ;; // r8 = r9 // 068867 } 1BD0 L$140: { .mib 000008000000 1BD0 nop.m 0 00A010800180 1BD1 tbit.z pr6, pr2 = status, 0 // pr6, pr2 = r8, 0 // 068868 008600020002 1BD2 (pr2) br.cond.dpnt.many L$144 ;; } { .mfb 000008000000 1BE0 nop.m 0 000008000000 1BE1 nop.f 0 0080000B1000 1BE2 br.sptk.many L$390 ;; } 1BF0 L$137: // 068845 { .bbb Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 64 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 00860000200B 1BF0 (pr11) br.cond.dpnt.many L$138 // 068846 0095FFFFC00C 1BF1 (pr12) br.cond.dptk.many L$140 004000000000 1BF2 nop.b 0 ;; } 1C00 L$138: { .mbb 008C82600000 1C00 st4 [r38] = r0 // 068847 008600002009 1C01 (pr9) br.cond.dpnt.many L$141 // 068850 0095FFFD600A 1C02 (pr10) br.cond.dptk.many L$135 ;; } 1C10 L$141: { .mmi 0108520382C0 1C10 adds r11 = 1308, in0 ;; // r11 = 1308, r32 008040B000C0 1C11 ld2 r3 = [r11] 000008000000 1C12 nop.i 0 ;; } { .mib 000008000000 1C20 nop.m 0 00A078300080 1C21 tbit.z pr2, pr15 = r3, 0 0095FFFD200F 1C22 (pr15) br.cond.dptk.many L$135 ;; } { .mii 01084A080440 1C30 adds r17 = 1216, in0 // r17 = 1216, r32 // 068853 012000002640 1C31 mov ai = 1 // r25 = 1 000008000000 1C32 nop.i 0 ;; } { .mmi 008081100440 1C40 ld4 r17 = [r17] ;; 000008000000 1C41 nop.m 0 0000B1100440 1C42 sxt4 r17 = r17 ;; } { .mfb 008041100B40 1C50 ld2 out0 = [r17] // r45 = [r17] 000008000000 1C51 nop.f 0 00A000001000 1C52 br.call.sptk.many rp = SYS$DASSGN ;; // br0 = SYS$DASSGN } { .mii 01084A080B80 1C60 adds out1 = 1216, in0 // r46 = 1216, r32 // 068854 012000008640 1C61 mov ai = 4 // r25 = 4 012000000C00 1C62 mov out3 = 0 // r48 = 0 } { .mmi 012000000BC0 1C70 mov out2 = 0 ;; // r47 = 0 008082E00B80 1C71 ld4 out1 = [out1] // r46 = [r46] 010802300B40 1C72 mov out0 = r35 // r45 = r35 } { .mmi 010802C00040 1C80 mov gp = r44 ;; // r1 = r44 // 068853 000008000000 1C81 nop.m 0 0000B2E00B80 1C82 sxt4 out1 = out1 // r46 = r46 // 068854 } { .mfb 000008000000 1C90 nop.m 0 000008000000 1C91 nop.f 0 00A000001000 1C92 br.call.sptk.many rp = SYS$ASSIGN ;; // br0 = SYS$ASSIGN } { .mib Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 65 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 010802C00040 1CA0 mov gp = r44 // r1 = r44 00A010800180 1CA1 tbit.z pr6, pr2 = r8, 0 // 068855 0095FFFC2002 1CA2 (pr2) br.cond.dptk.many L$135 ;; } { .mmi 0108520382C0 1CB0 adds r11 = 1308, in0 ;; // r11 = 1308, r32 // 068858 008C40B10000 1CB1 st2 [r11] = r8 000008000000 1CB2 nop.i 0 } { .mfb 000008000000 1CC0 nop.m 0 000008000000 1CC1 nop.f 0 008000097000 1CC2 br.sptk.many L$391 ;; } 1CD0 L$144: // 068874 { .mii 01084A018880 1CD0 adds r34 = 1164, in0 // r34 = 1164, r32 // 068876 0120000208C0 1CD1 mov r35 = 16 // 068892 000008000000 1CD2 nop.i 0 ;; } { .mmi 008082200880 1CE0 ld4 r34 = [r34] ;; // 068876 01CC12208000 1CE1 cmp4.eq pr0, pr2 = 4, r34 000008000000 1CE2 nop.i 0 } { .mfb 000008000000 1CF0 nop.m 0 000008000000 1CF1 nop.f 0 008600038002 1CF2 (pr2) br.cond.dpnt.many L$148 ;; } { .mii 010852048980 1D00 adds r38 = 1316, in0 // r38 = 1316, r32 // 068878 0108520589C0 1D01 adds r39 = 1324, in0 // r39 = 1324, r32 010852080840 1D02 adds r33 = 1344, in0 // r33 = 1344, r32 } { .mmi 0108520500C0 1D10 adds r3 = 1320, in0 ;; // r3 = 1320, r32 010852060200 1D11 adds r8 = 1328, in0 // r8 = 1328, r32 012000004240 1D12 mov r9 = 2 // 068880 } { .mii 01080A010B40 1D20 adds out0 = 136, in0 // r45 = 136, r32 // 068881 010852048940 1D21 adds sin4ptr = 1316, tkptr ;; // r37 = 1316, r32 // 068879 012000002640 1D22 mov ai = 1 // r25 = 1 // 068881 } { .mmi 008C82600000 1D30 st4 [r38] = r0 // 068878 008C82700000 1D31 st4 [r39] = r0 000008000000 1D32 nop.i 0 ;; } { .mmi 008C82146000 1D40 st4 [r33] = r35 008C80300000 1D41 st4 [r3] = r0 000008000000 1D42 nop.i 0 ;; } { .mii 008C80800000 1D50 st4 [r8] = r0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 66 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 010802502940 1D51 adds r37 = 1, r37 // 068880 000008000000 1D52 nop.i 0 ;; } { .mmi 008C02512000 1D60 st1 [r37] = r9 ;; 008082D00B40 1D61 ld4 out0 = [out0] // r45 = [r45] // 068881 000008000000 1D62 nop.i 0 ;; } { .mib 000008000000 1D70 nop.m 0 0000B2D00B40 1D71 sxt4 out0 = out0 // r45 = r45 00A000001000 1D72 br.call.sptk.many rp = DECC$HTONS ;; // br0 = DECC$HTONS } { .mii 0108025028C0 1D80 adds r35 = 1, r37 0108420F8900 1D81 adds r36 = 1148, tkptr // r36 = 1148, r32 // 068882 00A5B88200C0 1D82 shr.u r3 = r8, 8 ;; // 068881 } { .mii 00AC02310040 1D90 st1 [r35] = r8, 1 0111624F8280 1D91 and r10 = -4, r36 // 068882 010802506500 1D92 adds r20 = 3, sin4ptr // r20 = 3, r37 } { .mmi 0108A20A0980 1DA0 adds il2ptr = 2640, tkptr ;; // r38 = 2640, r32 // 068884 01C030A48080 1DA1 cmp.eq pr2, pr6 = r36, r10 // 068882 00A0414001C0 1DA2 tbit.z pr7, pr8 = r20, 0 } { .mii 010802600600 1DB0 mov r24 = r38 // 068885 012000020580 1DB1 mov r22 = 16 ;; 009E080482C6 1DB2 (pr6) dep r11 = r36, r0, 3, 2 // 068882 } { .mii 008C02306000 1DC0 st1 [r35] = r3 // 068881 010802604700 1DC1 adds r28 = 2, r38 // 068886 012000008680 1DC2 mov r26 = 4 ;; } { .mii 008080A00482 1DD0 (pr2) ld4 r18 = [r10] // 068882 00A5B9620640 1DD1 shr.u ai = r22, 8 // r25 = r22, 8 // 068885 0108026087C0 1DD2 adds r31 = 4, r38 // 068887 } { .mmi 0119FA5FE940 1DE0 adds r37 = -1, r37 ;; // 068882 010802500B40 1DE1 mov out0 = sin4ptr // r45 = r37 // 068887 00A5B9A20740 1DE2 shr.u r29 = r26, 8 // 068886 } { .mii 012000064900 1DF0 mov qiofun = 50 // r36 = 50 // 068889 010802C00040 1DF1 mov gp = r44 ;; // r1 = r44 // 068881 00A051F00240 1DF2 tbit.z pr9, pr10 = r31, 0 // 068887 } { .mmi 00A080A08486 1E00 (pr6) ld4 r18 = [r10], 4 ;; // 068882 008080A00446 1E01 (pr6) ld4 r17 = [r10] 00F201216486 1E02 (pr6) shr.u r18 = r18, r11 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 67 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } { .mmi 010128B402C6 1E10 (pr6) sub r11 = 32, r11 ;; 000008000000 1E11 nop.m 0 00F240B22446 1E12 (pr6) shl r17 = r17, r11 ;; } { .mmi 010071222486 1E20 (pr6) or r18 = r17, r18 ;; 010801200540 1E21 mov r21 = r18 000008000000 1E22 nop.i 0 ;; } { .mib 00AC0142A048 1E30 (pr8) st1 [r20] = r21, 1 00A5B9520548 1E31 (pr8) shr.u r21 = r21, 8 004000000000 1E32 nop.b 0 ;; } { .mib 00AC4142A080 1E40 st2 [r20] = r21, 2 00A579540540 1E41 shr.u r21 = r21, 16 004000000000 1E42 nop.b 0 ;; } { .mmi 008C4142A007 1E50 (pr7) st2 [r20] = r21 008C0142A008 1E51 (pr8) st1 [r20] = r21 000008000000 1E52 nop.i 0 ;; } { .mmi 00AC0182C040 1E60 st1 [r24] = r22, 1 ;; // 068885 008C01832000 1E61 st1 [r24] = ai // [r24] = r25 000008000000 1E62 nop.i 0 } { .mmi 00AC01C34040 1E70 st1 [r28] = r26, 1 ;; // 068886 008C01C3A000 1E71 st1 [r28] = r29 000008000000 1E72 nop.i 0 } { .mmi 00AC01F5A04A 1E80 (pr10) st1 [r31] = out0, 1 ;; // [r31] = r45, 1 // 068887 000008000000 1E81 nop.m 0 00A5BAD20B4A 1E82 (pr10) shr.u out0 = out0, 8 ;; // r45 = r45, 8 } { .mib 00AC41F5A080 1E90 st2 [r31] = out0, 2 // [r31] = r45, 2 00A57AD40B40 1E91 shr.u out0 = out0, 16 // r45 = r45, 16 004000000000 1E92 nop.b 0 ;; } { .mmb 008C41F5A009 1EA0 (pr9) st2 [r31] = out0 // [r31] = r45 008C01F5A00A 1EA1 (pr10) st1 [r31] = out0 // [r31] = r45 008000033000 1EA2 br.sptk.many L$150 ;; // 068891 } 1EB0 L$148: { .mfb 01CC5A220000 1EB0 cmp4.eq pr0, pr11 = 16, r34 // 068892 000008000000 1EB1 nop.f 0 00860002800B 1EB2 (pr11) br.cond.dpnt.many L$153 ;; } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 68 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mii 012000038B80 1EC0 mov out1 = 28 // r46 = 28 // 068894 010852048B40 1EC1 adds out0 = 1316, in0 // r45 = 1316, r32 010852048840 1EC2 adds sin6ptr = 1316, tkptr // r33 = 1316, r32 // 068895 } { .mfb 000008000000 1ED0 nop.m 0 000008000000 1ED1 nop.f 0 00A000001000 1ED2 br.call.sptk.many rp = OTS$ZERO ;; // br0 = OTS$ZERO // 068894 } { .mii 0108520809C0 1EE0 adds r39 = 1344, in0 // r39 = 1344, r32 0120000388C0 1EE1 mov r35 = 28 012000034940 1EE2 mov r37 = 26 // 068896 } { .mmi 01080A010B40 1EF0 adds out0 = 136, in0 ;; // r45 = 136, r32 // 068897 008C82746000 1EF1 st4 [r39] = r35 // 068894 010802102840 1EF2 adds r33 = 1, r33 // 068896 } { .mii 012000002640 1F00 mov ai = 1 // r25 = 1 // 068897 010802C00040 1F01 mov gp = r44 // r1 = r44 // 068894 000008000000 1F02 nop.i 0 ;; } { .mmi 008C0214A000 1F10 st1 [r33] = r37 ;; // 068896 008082D00B40 1F11 ld4 out0 = [out0] // r45 = [r45] // 068897 000008000000 1F12 nop.i 0 ;; } { .mib 000008000000 1F20 nop.m 0 0000B2D00B40 1F21 sxt4 out0 = out0 // r45 = r45 00A000001000 1F22 br.call.sptk.many rp = DECC$HTONS ;; // br0 = DECC$HTONS } { .mii 0108021028C0 1F30 adds r35 = 1, r33 00A5B88209C0 1F31 shr.u r39 = r8, 8 0108A20A0880 1F32 adds il2ptr = 2640, tkptr // r34 = 2640, r32 // 068901 } { .mmi 012000020B80 1F40 mov out1 = 16 ;; // r46 = 16 // 068898 00AC02310040 1F41 st1 [r35] = r8, 1 // 068897 0108420F8BC0 1F42 adds out2 = 1148, in0 // r47 = 1148, r32 // 068898 } { .mii 01080210EB40 1F50 adds out0 = 7, r33 // r45 = 7, r33 010802C00040 1F51 mov gp = r44 ;; // r1 = r44 // 068897 0119FA1FE840 1F52 adds r33 = -1, r33 ;; // 068898 } { .mfb 008C0234E000 1F60 st1 [r35] = r39 // 068897 000008000000 1F61 nop.f 0 00A000001000 1F62 br.call.sptk.many rp = OTS$MOVE ;; // br0 = OTS$MOVE // 068898 } { .mii 0108022008C0 1F70 mov r35 = r34 // 068902 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 69 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 012000038940 1F71 mov r37 = 28 0108022040C0 1F72 adds r3 = 2, r34 // 068903 } { .mmi 0120000089C0 1F80 mov r39 = 4 ;; 00AC0234A040 1F81 st1 [r35] = r37, 1 // 068902 00A5BA520900 1F82 shr.u r36 = r37, 8 } { .mii 010800300200 1F90 mov r8 = r3 // 068903 0108022082C0 1F91 adds r11 = 4, r34 ;; // 068904 00A5BA720240 1F92 shr.u r9 = r39, 8 // 068903 } { .mii 010802100440 1FA0 mov r17 = sin6ptr // r17 = r33 // 068904 010802C00040 1FA1 mov gp = r44 ;; // r1 = r44 // 068898 00A030B00080 1FA2 tbit.z pr2, pr6 = r11, 0 // 068904 } { .mmi 008C02348000 1FB0 st1 [r35] = r36 // 068902 00AC0084E040 1FB1 st1 [r8] = r39, 1 // 068903 012800064900 1FB2 addl qiofun = 32818, r0 ;; // r36 = 32818, r0 // 068906 } { .mmi 008C00812000 1FC0 st1 [r8] = r9 // 068903 00AC00B22046 1FC1 (pr6) st1 [r11] = r17, 1 // 068904 00A5B9120446 1FC2 (pr6) shr.u r17 = r17, 8 ;; } { .mib 00AC40B22080 1FD0 st2 [r11] = r17, 2 00A579140440 1FD1 shr.u r17 = r17, 16 004000000000 1FD2 nop.b 0 ;; } { .mmb 008C40B22002 1FE0 (pr2) st2 [r11] = r17 008C00B22006 1FE1 (pr6) st1 [r11] = r17 00800000B000 1FE2 br.sptk.many L$150 ;; // 068908 } 1FF0 L$153: { .mii 012000100C00 1FF0 add out3 = @ltoff($LITERAL$+24), // r48 = @ltoff($LITERAL$+24), r1 // 068909 gp 012000100B80 1FF1 add out1 = // r46 = @ltoffx(ErrorSanityCheck), r1 @ltoffx(ErrorSanityCheck), gp 012000008640 1FF2 mov ai = 4 // r25 = 4 } { .mmi 012028048B40 2000 mov out0 = 676 ;; // r45 = 676 0080C3000BC0 2001 ld8 out2 = $LITERAL$ // r47 = [r48] 012020034C00 2002 mov out3 = 538 // r48 = 538 } { .mfb 0080C2E00B80 2010 ld8.mov out1 = [r46], ErrorSanityCheck 000008000000 2011 nop.f 0 00A000001000 2012 br.call.sptk.many rp = // br0 = ErrorExitVmsStatus ErrorExitVmsStatus ;; } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 70 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mfi 010802C00040 2020 mov gp = r44 // r1 = r44 000008000000 2021 nop.f 0 000008000000 2022 nop.i 0 ;; } 2030 L$150: { .mmi 0120001008C0 2030 add r35 = // r35 = // 068911 @ltoffx(ProxyConnectTimeoutSeconds), gp ;; // @ltoffx(ProxyConnectTimeoutSeconds), // r1 0080C23008C0 2031 ld8.mov r35 = [r35], ProxyConnectTimeoutSeconds 000008000000 2032 nop.i 0 ;; } { .mmi 0080823008C0 2040 ld4 r35 = // r35 = [r35] ProxyConnectTimeoutSeconds ;; 01C402300180 2041 cmp4.eq pr6, pr0 = r0, r35 000008000000 2042 nop.i 0 } { .mfb 000008000000 2050 nop.m 0 000008000000 2051 nop.f 0 00860000E006 2052 (pr6) br.cond.dpnt.many L$160 ;; } { .mii 012000100BC0 2060 add out2 = // r47 = // 068913 @ltoff(@fptr(ProxyNetHostConnectTimeoutAst)), gp // @ltoff(@fptr(ProxyNetHostConnectTimeoutAst)), // r1 012000100B80 2061 add out1 = // r46 = @ltoffx(ProxyNetConnectTimeoutDelta), gp // @ltoffx(ProxyNetConnectTimeoutDelta), // r1 01200000A640 2062 mov ai = 5 // r25 = 5 } { .mmi 012000000C40 2070 mov out4 = 0 ;; // r49 = 0 0080C2F00BC0 2071 ld8 out2 = // r47 = [r47] ProxyNetHostConnectTimeoutAst 010802000C00 2072 mov out3 = tkptr // r48 = r32 } { .mib 0080C2E00B80 2080 ld8.mov out1 = [r46], ProxyNetConnectTimeoutDelta 012000000B40 2081 mov out0 = 0 // r45 = 0 00A000001000 2082 br.call.sptk.many rp = SYS$SETIMR ;; // br0 = SYS$SETIMR } { .mib 010802C00040 2090 mov gp = r44 // r1 = r44 00A010800180 2091 tbit.z pr6, pr2 = status, 0 // pr6, pr2 = r8, 0 // 068915 008600006002 2092 (pr2) br.cond.dpnt.many L$160 ;; } { .mmi 010852038940 20A0 adds r37 = 1308, in0 ;; // r37 = 1308, r32 // 068918 008C42510000 20A1 st2 [r37] = status // [r37] = r8 000008000000 20A2 nop.i 0 } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 71 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mfb 000008000000 20B0 nop.m 0 000008000000 20B1 nop.f 0 008000019000 20B2 br.sptk.many L$391 ;; } 20C0 L$160: // 068922 { .mii 0120001009C0 20C0 add r39 = @ltoffx(EfnNoWait), gp // r39 = @ltoffx(EfnNoWait), r1 // 068924 01084A080980 20C1 adds r38 = 1216, in0 // r38 = 1216, r32 010800C20880 20C2 adds r34 = 16, sp // r34 = 16, r12 } { .mmi 0108A20A0840 20D0 adds r33 = 2640, tkptr ;; // r33 = 2640, r32 // 068926 0080C27009C0 20D1 ld8.mov r39 = [r39], EfnNoWait // 068924 010800C308C0 20D2 adds r35 = 24, sp // r35 = 24, r12 } { .mii 008082600980 20E0 ld4 r38 = [r38] 010800C40940 20E1 adds r37 = 32, sp ;; // r37 = 32, r12 012000100C40 20E2 add out4 = // r49 = @ltoff(@fptr(ProxyNetHostConnectAst)), gp // @ltoff(@fptr(ProxyNetHostConnectAst)), // r1 } { .mii 010800C500C0 20F0 adds r3 = 40, sp // r3 = 40, r12 0000B2600980 20F1 sxt4 r38 = r38 ;; 012000018640 20F2 mov ai = 12 // r25 = 12 } { .mmi 0080827009C0 2100 ld4 r39 = EfnNoWait // r39 = [r39] 0080C3100C40 2101 ld8 out4 = ProxyNetHostConnectAst // r49 = [r49] 012000000D00 2102 mov out7 = 0 ;; // r52 = 0 } { .mmi 008CC2242000 2110 st8 [r34] = r33 008CC2300000 2111 st8 [r35] = r0 012000000CC0 2112 mov out6 = 0 ;; // r51 = 0 } { .mii 008CC2500000 2120 st8 [r37] = r0 010802000C80 2121 mov out5 = tkptr // r50 = r32 010802800C00 2122 mov out3 = r40 // r48 = r40 } { .mmi 008CC0300000 2130 st8 [r3] = r0 ;; 008042600B80 2131 ld2 out1 = [r38] // r46 = [r38] 0000B2400BC0 2132 sxt4 out2 = qiofun // r47 = r36 } { .mib 000008000000 2140 nop.m 0 0000B2700B40 2141 sxt4 out0 = r39 // r45 = r39 00A000001000 2142 br.call.sptk.many rp = SYS$QIO ;; // br0 = SYS$QIO } { .mib 010802C00040 2150 mov gp = r44 // r1 = r44 00A010800180 2151 tbit.z pr6, pr2 = status, 0 // pr6, pr2 = r8, 0 // 068928 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 72 ProxyNetHostConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 00860000A002 2152 (pr2) br.cond.dpnt.many L$96 ;; } 2160 L$390: // 068931 { .mmi 010852038840 2160 adds r33 = 1308, in0 ;; // r33 = 1308, r32 008C42110000 2161 st2 [r33] = status // [r33] = r8 000008000000 2162 nop.i 0 } 2170 L$391: // 068932 { .mii 012000100B40 2170 add out0 = // r45 = @ltoff(@fptr(ProxyNetHostConnectAst)), gp // @ltoff(@fptr(ProxyNetHostConnectAst)), // r1 012000004640 2171 mov ai = 2 ;; // r25 = 2 010802000B80 2172 mov out1 = tkptr // r46 = r32 } { .mfb 0080C2D00B40 2180 ld8 out0 = ProxyNetHostConnectAst // r45 = [r45] 000008000000 2181 nop.f 0 00A000001000 2182 br.call.sptk.many rp = SysDclAst ;; // br0 = SysDclAst } 2190 L$389: { .mfi 010802C00040 2190 mov gp = r44 // r1 = r44 000008000000 2191 nop.f 0 000008000000 2192 nop.i 0 } 21A0 L$96: // 068935 { .mii 000008000000 21A0 nop.m 0 0016000567C0 21A1 mov pr = r43, -65474 ;; 000154054000 21A2 mov.i rspfs = r42 ;; } { .mii 000008000000 21B0 nop.m 0 000E00152000 21B1 mov rp = r41 // br0 = r41 010800C40300 21B2 adds sp = 32, sp // r12 = 32, r12 } { .mfb 000008000000 21C0 nop.m 0 000008000000 21C1 nop.f 0 000108001100 21C2 br.ret.sptk.many rp ;; // br0 } .endp ProxyNetHostConnect Routine Size: 4464 bytes, Routine Base: $CODE$ + 1060 .proc ProxyNetHostConnectTimeoutAst .align 32 .global ProxyNetHostConnectTimeoutAst ProxyNetHostConnectTimeoutAst: // 068942 { .mii 002C0060E900 21D0 alloc r36 = rspfs, 1, 5, 1, 0 01084A080200 21D1 adds r8 = 1216, in0 // r8 = 1216, r32 // 068945 0001880008C0 21D2 mov r35 = rp ;; // r35 = br0 // 068942 } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 73 ProxyNetHostConnectTimeoutAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mii 008080800200 21E0 ld4 r8 = [r8] // 068945 012000002640 21E1 mov ai = 1 // r25 = 1 010800100940 21E2 mov r37 = gp ;; // r37 = r1 // 068942 } { .mib 000008000000 21F0 nop.m 0 0000B0800200 21F1 sxt4 r8 = r8 // 068945 004000000000 21F2 nop.b 0 ;; } { .mfb 008040800980 2200 ld2 out0 = [r8] // r38 = [r8] 000008000000 2201 nop.f 0 00A000001000 2202 br.call.sptk.many rp = SYS$CANCEL ;; // br0 = SYS$CANCEL } { .mii 010852038880 2210 adds r34 = 1308, in0 // r34 = 1308, r32 // 068947 012020058840 2211 mov r33 = 556 010802500040 2212 mov gp = r37 ;; // r1 = r37 // 068945 } { .mii 008C42242000 2220 st2 [r34] = r33 // 068947 000154048000 2221 mov.i rspfs = r36 ;; // 068948 000E00146000 2222 mov rp = r35 // br0 = r35 } { .mfb 000008000000 2230 nop.m 0 000008000000 2231 nop.f 0 000108001100 2232 br.ret.sptk.many rp ;; // br0 } .endp ProxyNetHostConnectTimeoutAst Routine Size: 112 bytes, Routine Base: $CODE$ + 21D0 .proc ProxyNetHostConnectAst .align 32 .global ProxyNetHostConnectAst ProxyNetHostConnectAst: // 068958 { .mii 002C00C28A40 2240 alloc r41 = rspfs, 1, 11, 8, 0 012000020380 2241 mov r14 = 16 010800C00080 2242 mov r2 = sp // r2 = r12 } { .mmi 010800100AC0 2250 mov r43 = gp ;; // r43 = r1 010028E183C0 2251 sub r15 = sp, r14 // r15 = r12, r14 000188000A00 2252 mov r40 = rp // r40 = br0 } { .mii 012000004640 2260 mov ai = 2 // r25 = 2 // 068975 012000000B40 2261 mov out1 = 0 ;; // r45 = 0 010802000B00 2262 mov out0 = tkptr // r44 = r32 } { .mii 0080C0F00380 2270 ld8 r14 = [r15] // 068958 010800F00300 2271 mov sp = r15 ;; // r12 = r15 000198000A80 2272 mov r42 = pr Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 74 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } { .mfb 000008000000 2280 nop.m 0 000008000000 2281 nop.f 0 00A000001000 2282 br.call.sptk.many rp = SYS$CANTIM ;; // br0 = SYS$CANTIM // 068975 } { .mii 01080A020880 2290 adds r34 = 144, in0 // r34 = 144, r32 // 068979 01084A050840 2291 adds r33 = 1192, in0 // r33 = 1192, r32 // 068977 010802B00040 2292 mov gp = r43 ;; // r1 = r43 // 068975 } { .mmi 008082200880 22A0 ld4 r34 = [r34] // 068979 008082100840 22A1 ld4 rqptr = [r33] // r33 = [r33] // 068977 000008000000 22A2 nop.i 0 ;; } { .mib 018C32202000 22B0 cmp4.lt pr0, pr6 = 1, r34 // 068979 0000B2100840 22B1 sxt4 rqptr = rqptr // r33 = r33 // 068977 00860001A006 22B2 (pr6) br.cond.dpnt.many L$272 ;; // 068979 } { .mmi 0108520388C0 22C0 adds r35 = 1308, in0 ;; // r35 = 1308, r32 // 068986 0080423008C0 22C1 ld2 r35 = [r35] 000008000000 22C2 nop.i 0 ;; } { .mib 000008000000 22D0 nop.m 0 00A042300240 22D1 tbit.z pr9, pr8 = r35, 0 008600010008 22D2 (pr8) br.cond.dpnt.many L$274 ;; } { .mmi 012038048900 22E0 mov r36 = 932 ;; // 068988 01C052446000 22E1 cmp.eq pr0, pr10 = r35, r36 000008000000 22E2 nop.i 0 } { .mfb 000008000000 22F0 nop.m 0 000008000000 22F1 nop.f 0 00860000600A 22F2 (pr10) br.cond.dpnt.many L$276 ;; } { .mii 010852038980 2300 adds r38 = 1308, in0 // r38 = 1308, r32 // 068991 012000002940 2301 mov r37 = 1 000008000000 2302 nop.i 0 ;; } { .mfb 008C4264A000 2310 st2 [r38] = r37 000008000000 2311 nop.f 0 00800000F000 2312 br.sptk.many L$272 ;; // 068993 } 2320 L$276: { .mfb 010802000B00 2320 mov out0 = tkptr // r44 = r32 // 068996 000008000000 2321 nop.f 0 00A000001000 2322 br.call.sptk.many rp = // br0 = ProxyNetCloseSocket ProxyNetCloseSocket ;; Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 75 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } { .mfb 010802000B00 2330 mov out0 = tkptr // r44 = r32 // 068997 000008000000 2331 nop.f 0 00A000001000 2332 br.call.sptk.many rp = // br0 = ProxyNetHostConnect ProxyNetHostConnect ;; } { .mfb 000008000000 2340 nop.m 0 000008000000 2341 nop.f 0 008000231000 2342 br.sptk.many L$278 ;; // 068998 } 2350 L$274: // 069001 { .mfb 010802000B00 2350 mov out0 = tkptr // r44 = r32 // 069004 000008000000 2351 nop.f 0 00A000001000 2352 br.call.sptk.many rp = // br0 = ProxyNetCloseSocket ProxyNetCloseSocket ;; } { .mfb 010802000B00 2360 mov out0 = tkptr // r44 = r32 // 069005 000008000000 2361 nop.f 0 00A000001000 2362 br.call.sptk.many rp = // br0 = ProxyNetHostConnect ProxyNetHostConnect ;; } { .mfb 000008000000 2370 nop.m 0 000008000000 2371 nop.f 0 00800022B000 2372 br.sptk.many L$278 ;; // 069006 } 2380 L$272: // 069008 { .mmi 01084A0189C0 2380 adds r39 = 1164, in0 ;; // r39 = 1164, r32 // 069015 0080827009C0 2381 ld4 r39 = [r39] 000008000000 2382 nop.i 0 ;; } { .mfb 01CC32708000 2390 cmp4.eq pr0, pr6 = 4, r39 000008000000 2391 nop.f 0 008600022006 2392 (pr6) br.cond.dpnt.many L$281 ;; } { .mib 012000002640 23A0 mov ai = 1 // r25 = 1 // 069017 012000002B00 23A1 mov out0 = 1 // r44 = 1 00A000001000 23A2 br.call.sptk.many rp = // br0 = InstanceMutexLock InstanceMutexLock ;; } { .mii 010802B00040 23B0 mov gp = r43 // r1 = r43 01084A048940 23B1 adds r37 = 1188, in0 ;; // r37 = 1188, r32 // 069020 012000100880 23B2 add r34 = // r34 = @ltoffx(ProxyAccountingPtr), // 069018 @ltoffx(ProxyAccountingPtr), // r1 gp ;; } { .mmi 0080C2200880 23C0 ld8.mov r34 = [r34], ProxyAccountingPtr ;; 008082200880 23C1 ld4 r34 = ProxyAccountingPtr // r34 = [r34] Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 76 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 000008000000 23C2 nop.i 0 ;; } { .mii 000008000000 23D0 nop.m 0 0000B2200880 23D1 sxt4 r34 = r34 ;; 010802208880 23D2 adds r34 = 4, r34 ;; } { .mmi 0080822008C0 23E0 ld4 r35 = [r34] ;; 0108023028C0 23E1 adds r35 = 1, r35 000008000000 23E2 nop.i 0 ;; } { .mmi 00BC8A247F00 23F0 st4 [r34] = r35, -4 ;; 008082500940 23F1 ld4 r37 = [r37] // 069020 000008000000 23F2 nop.i 0 ;; } { .mii 000008000000 2400 nop.m 0 0000B2500940 2401 sxt4 r37 = r37 ;; 01088A558940 2402 adds r37 = 2220, r37 ;; } { .mmi 008082500940 2410 ld4 r37 = [r37] ;; 01CC32508000 2411 cmp4.eq pr0, pr6 = 4, r37 000008000000 2412 nop.i 0 } { .mfb 000008000000 2420 nop.m 0 000008000000 2421 nop.f 0 008600008006 2422 (pr6) br.cond.dpnt.many L$285 ;; } { .mmi 010802218880 2430 adds r34 = 12, r34 ;; // 069021 008082200980 2431 ld4 r38 = [r34] 000008000000 2432 nop.i 0 ;; } { .mmi 010802602980 2440 adds r38 = 1, r38 ;; 008C8224C000 2441 st4 [r34] = r38 000008000000 2442 nop.i 0 } { .mfb 000008000000 2450 nop.m 0 000008000000 2451 nop.f 0 008000007000 2452 br.sptk.many L$287 ;; // 069022 } 2460 L$285: { .mmi 010802228880 2460 adds r34 = 20, r34 ;; // 069023 008082200200 2461 ld4 r8 = [r34] 000008000000 2462 nop.i 0 ;; } { .mmi 010800802200 2470 adds r8 = 1, r8 ;; 008C82210000 2471 st4 [r34] = r8 000008000000 2472 nop.i 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 77 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } 2480 L$287: { .mib 012000002640 2480 mov ai = 1 // r25 = 1 // 069024 012000002B00 2481 mov out0 = 1 // r44 = 1 00A000001000 2482 br.call.sptk.many rp = // br0 = InstanceMutexUnLock InstanceMutexUnLock ;; } { .mfb 000008000000 2490 nop.m 0 000008000000 2491 nop.f 0 00800002D000 2492 br.sptk.many L$394 ;; } 24A0 L$281: // 069026 { .mfb 01CC32720000 24A0 cmp4.eq pr0, pr6 = 16, r39 // 069027 000008000000 24A1 nop.f 0 008600024006 24A2 (pr6) br.cond.dpnt.many L$291 ;; } { .mib 012000002640 24B0 mov ai = 1 // r25 = 1 // 069029 012000002B00 24B1 mov out0 = 1 // r44 = 1 00A000001000 24B2 br.call.sptk.many rp = // br0 = InstanceMutexLock InstanceMutexLock ;; } { .mii 010802B00040 24C0 mov gp = r43 // r1 = r43 01084A048980 24C1 adds r38 = 1188, in0 ;; // r38 = 1188, r32 // 069032 0120001008C0 24C2 add r35 = // r35 = @ltoffx(ProxyAccountingPtr), // 069030 @ltoffx(ProxyAccountingPtr), // r1 gp ;; } { .mmi 0080C23008C0 24D0 ld8.mov r35 = [r35], ProxyAccountingPtr ;; 0080823008C0 24D1 ld4 r35 = ProxyAccountingPtr // r35 = [r35] 000008000000 24D2 nop.i 0 ;; } { .mii 000008000000 24E0 nop.m 0 0000B23008C0 24E1 sxt4 r35 = r35 ;; 0108023108C0 24E2 adds r35 = 8, r35 ;; } { .mmi 008082300900 24F0 ld4 r36 = [r35] ;; 010802402900 24F1 adds r36 = 1, r36 000008000000 24F2 nop.i 0 ;; } { .mmi 00BC8A349E00 2500 st4 [r35] = r36, -8 ;; 008082600980 2501 ld4 r38 = [r38] // 069032 000008000000 2502 nop.i 0 ;; } { .mii 000008000000 2510 nop.m 0 0000B2600980 2511 sxt4 r38 = r38 ;; 01088A658980 2512 adds r38 = 2220, r38 ;; } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 78 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mmi 008082600980 2520 ld4 r38 = [r38] ;; 01CC32608000 2521 cmp4.eq pr0, pr6 = 4, r38 000008000000 2522 nop.i 0 } { .mfb 000008000000 2530 nop.m 0 000008000000 2531 nop.f 0 00860000A006 2532 (pr6) br.cond.dpnt.many L$295 ;; } { .mmi 0108023208C0 2540 adds r35 = 16, r35 ;; // 069033 008082300880 2541 ld4 r34 = [r35] 000008000000 2542 nop.i 0 ;; } { .mii 010802202880 2550 adds r34 = 1, r34 0108023009C0 2551 adds r39 = 0, r35 000008000000 2552 nop.i 0 ;; } { .mfi 00BC8A345C00 2560 st4 [r35] = r34, -16 000008000000 2561 nop.f 0 000008000000 2562 nop.i 0 ;; } { .mfb 000008000000 2570 nop.m 0 000008000000 2571 nop.f 0 008000007000 2572 br.sptk.many L$297 ;; // 069034 } 2580 L$295: { .mmi 0108023308C0 2580 adds r35 = 24, r35 ;; // 069035 0080823000C0 2581 ld4 r3 = [r35] 000008000000 2582 nop.i 0 ;; } { .mmi 0108003020C0 2590 adds r3 = 1, r3 ;; 008C82306000 2591 st4 [r35] = r3 000008000000 2592 nop.i 0 ;; } 25A0 L$297: { .mib 012000002640 25A0 mov ai = 1 // r25 = 1 // 069036 012000002B00 25A1 mov out0 = 1 // r44 = 1 00A000001000 25A2 br.call.sptk.many rp = // br0 = InstanceMutexUnLock InstanceMutexUnLock ;; } { .mfb 000008000000 25B0 nop.m 0 000008000000 25B1 nop.f 0 008000009000 25B2 br.sptk.many L$394 ;; } 25C0 L$291: // 069038 { .mii 012000100BC0 25C0 add out3 = @ltoff($LITERAL$+24), // r47 = @ltoff($LITERAL$+24), r1 // 069039 gp Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 79 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 012000100B40 25C1 add out1 = // r45 = @ltoffx(ErrorSanityCheck), r1 @ltoffx(ErrorSanityCheck), gp 012000008640 25C2 mov ai = 4 // r25 = 4 } { .mmi 012028048B00 25D0 mov out0 = 676 ;; // r44 = 676 0080C2F00B80 25D1 ld8 out2 = $LITERAL$ // r46 = [r47] 012028038BC0 25D2 mov out3 = 668 // r47 = 668 } { .mfb 0080C2D00B40 25E0 ld8.mov out1 = [r45], ErrorSanityCheck 000008000000 25E1 nop.f 0 00A000001000 25E2 br.call.sptk.many rp = // br0 = ErrorExitVmsStatus ErrorExitVmsStatus ;; } 25F0 L$394: { .mii 010852038900 25F0 adds r36 = 1308, in0 // r36 = 1308, r32 // 069041 01C4300401C0 25F1 cmp4.eq pr7, pr6 = tkptr, r0 // pr7, pr6 = r32, r0 // 069047 010802B00040 25F2 mov gp = r43 ;; // r1 = r43 // 069039 } { .mii 008042400940 2600 ld2 r37 = [r36] // 069041 01C0000012C7 2601 (pr7) cmp.eq.unc pr11, pr0 = r0, r0 // 069154 01C000001286 2602 (pr6) cmp.eq.unc pr10, pr0 = r0, r0 ;; } { .mib 000008000000 2610 nop.m 0 00A042500240 2611 tbit.z pr9, pr8 = r37, 0 // 069041 0086000F4008 2612 (pr8) br.cond.dpnt.many L$298 ;; } { .bbb 00860000200A 2620 (pr10) br.cond.dpnt.many L$300 // 069047 00860002600B 2621 (pr11) br.cond.dpnt.many L$301 004000000000 2622 nop.b 0 ;; } 2630 L$300: { .mii 012000100980 2630 add r38 = @ltoff(Watch+124), gp // r38 = @ltoff(Watch+124), r1 012002000200 2631 addl r8 = 524288, r0 000008000000 2632 nop.i 0 } { .mmi 008082000240 2640 ld4 r9 = [in0] ;; // r9 = [r32] 0080C2600980 2641 ld8 r38 = Watch // r38 = [r38] 01C4709003C0 2642 cmp4.eq pr15, pr14 = r0, r9 ;; } { .mmi 0111626F0880 2650 and r34 = -8, r38 ;; 01C06A24C000 2651 cmp.eq pr0, pr13 = r38, r34 000008000000 2652 nop.i 0 } { .mmi 00A0C22100C0 2660 ld8 r3 = Watch, 8 ;; // r3 = [r34], 8 000008000000 2661 nop.m 0 009E1004C9CD 2662 (pr13) dep r39 = Watch, r0, 3, 3 ;; // r39 = r38, r0, 3, 3 } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 80 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mmi 0080C22008CD 2670 (pr13) ld8 r35 = Watch ;; // r35 = [r34] 000008000000 2671 nop.m 0 00F20034E0CD 2672 (pr13) shr.u r3 = r3, r39 } { .mmi 01012A7809CD 2680 (pr13) sub r39 = 64, r39 ;; 000008000000 2681 nop.m 0 00F2427468CD 2682 (pr13) shl r35 = r35, r39 ;; } { .mmi 0100703460CD 2690 (pr13) or r3 = r35, r3 ;; 0100603100C0 2691 and r3 = r8, r3 000008000000 2692 nop.i 0 ;; } { .mmi 01C0003001C0 26A0 cmp.eq pr7, pr0 = r0, r3 ;; 01C2000003C7 26A1 (pr7) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 26A2 nop.i 0 } { .mfb 000008000000 26B0 nop.m 0 000008000000 26B1 nop.f 0 00860001400F 26B2 (pr15) br.cond.dpnt.many L$301 ;; } { .mfb 01C400042240 26C0 cmp4.eq pr9, pr0 = rqptr, r0 // pr9, pr0 = r33, r0 // 069048 000008000000 26C1 nop.f 0 008600006009 26C2 (pr9) br.cond.dpnt.many L$306 ;; } { .mmi 01080A1D0280 26D0 adds r10 = 232, r33 ;; 008080A002C0 26D1 ld4 r11 = [r10] 000008000000 26D2 nop.i 0 } { .mfb 000008000000 26E0 nop.m 0 000008000000 26E1 nop.f 0 008000005000 26E2 br.sptk.many L$305 ;; } 26F0 L$306: { .mfi 0108000002C0 26F0 mov r11 = r0 000008000000 26F1 nop.f 0 000008000000 26F2 nop.i 0 } 2700 L$305: { .mii 012000100B80 2700 add out2 = @ltoff($LITERAL$+24), // r46 = @ltoff($LITERAL$+24), r1 gp 012000100440 2701 add r17 = @ltoff($LITERAL$+448), // r17 = @ltoff($LITERAL$+448), r1 // 069049 gp 01200000C640 2702 mov ai = 6 ;; // r25 = 6 // 069048 } { .mmi 0080C2E00B40 2710 ld8 out1 = $LITERAL$ // r45 = [r46] 0080C1100C00 2711 ld8 out4 = $LITERAL$ // r48 = [r17] // 069049 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 81 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 0000B2500C40 2712 sxt4 out5 = r37 ;; // r49 = r37 // 069048 } { .mii 012002000BC0 2720 addl out3 = 524288, r0 // r47 = 524288, r0 01202804AB80 2721 mov out2 = 677 // r46 = 677 0000B0B00B00 2722 sxt4 out0 = r11 // r44 = r11 } { .mfb 000008000000 2730 nop.m 0 000008000000 2731 nop.f 0 00A000001000 2732 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802B00040 2740 mov gp = r43 // r1 = r43 000008000000 2741 nop.f 0 000008000000 2742 nop.i 0 } 2750 L$301: // 069049 { .mfi 010802000B00 2750 mov out0 = tkptr // r44 = r32 // 069052 000008000000 2751 nop.f 0 000008000000 2752 nop.i 0 ;; } { .mfb 000008000000 2760 nop.m 0 000008000000 2761 nop.f 0 00A000001000 2762 br.call.sptk.many rp = // br0 = ProxyNetCloseSocket ProxyNetCloseSocket ;; } { .mmi 010802020800 2770 adds in0 = 16, in0 ;; // r32 = 16, r32 // 069055 00B08A0E0900 2771 ld4 r36 = [in0], -16 // r36 = [r32], -16 000008000000 2772 nop.i 0 ;; } { .mfb 01C4024001C0 2780 cmp4.eq pr7, pr0 = r0, r36 000008000000 2781 nop.f 0 008600006007 2782 (pr7) br.cond.dpnt.many L$308 ;; } { .mfb 010802000B00 2790 mov out0 = tkptr // r44 = r32 // 069057 000008000000 2791 nop.f 0 00A000001000 2792 br.call.sptk.many rp = // br0 = ProxyNetResolveHost ProxyNetResolveHost ;; } { .mfb 000008000000 27A0 nop.m 0 000008000000 27A1 nop.f 0 0080001A5000 27A2 br.sptk.many L$278 ;; // 069058 } 27B0 L$308: // 069059 { .mii 0108620808C0 27B0 adds r35 = 1600, in0 // r35 = 1600, r32 // 069062 0120080FEB80 27B1 mov out2 = 255 // r46 = 255 010862060B00 27B2 adds out0 = 1584, in0 // r44 = 1584, r32 } { .mmi Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 82 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 0108520D0880 27C0 adds r34 = 1384, tkptr ;; // r34 = 1384, r32 // 069063 008082300B40 27C1 ld4 out1 = [r35] // r45 = [r35] // 069062 000008000000 27C2 nop.i 0 ;; } { .mib 000008000000 27D0 nop.m 0 0000B2D00B40 27D1 sxt4 out1 = out1 // r45 = r45 00A000001000 27D2 br.call.sptk.many rp = OTS$FILL ;; // br0 = OTS$FILL } { .mii 012000002640 27E0 mov ai = 1 // r25 = 1 // 069063 010802200B00 27E1 mov out0 = r34 // r44 = r34 010802B00040 27E2 mov gp = r43 ;; // r1 = r43 // 069062 } { .mfb 000008000000 27F0 nop.m 0 000008000000 27F1 nop.f 0 00A000001000 27F2 br.call.sptk.many rp = // br0 = TcpIpCacheSetEntry // 069063 TcpIpCacheSetEntry ;; } { .mii 01081A0D8B00 2800 adds out0 = 492, tkptr // r44 = 492, r32 // 069067 012000002640 2801 mov ai = 1 // r25 = 1 // 069068 010802B00040 2802 mov gp = r43 ;; // r1 = r43 // 069063 } { .mfb 010802C00980 2810 mov r38 = out0 // r38 = r44 // 069067 000008000000 2811 nop.f 0 00A000001000 2812 br.call.sptk.many rp = DECC$STRLEN ;; // br0 = DECC$STRLEN // 069068 } { .mii 012000006640 2820 mov ai = 3 // r25 = 3 // 069066 0000B0800B80 2821 sxt4 out2 = r8 // r46 = r8 010802600B40 2822 mov out1 = r38 // r45 = r38 } { .mmi 010802200B00 2830 mov out0 = r34 ;; // r44 = r34 010802B00040 2831 mov gp = r43 // r1 = r43 // 069068 000008000000 2832 nop.i 0 ;; } { .mfb 000008000000 2840 nop.m 0 000008000000 2841 nop.f 0 00A000001000 2842 br.call.sptk.many rp = // br0 = TcpIpCacheNameToAddress // 069066 TcpIpCacheNameToAddress ;; } { .mib 010802B00040 2850 mov gp = r43 // r1 = r43 00A0308001C0 2851 tbit.z pr7, pr6 = r8, 0 // 069069 008600006007 2852 (pr7) br.cond.dpnt.many L$312 ;; } { .mfb 010802000B00 2860 mov out0 = tkptr // r44 = r32 // 069071 000008000000 2861 nop.f 0 00A000001000 2862 br.call.sptk.many rp = // br0 = ProxyNetHostConnect ProxyNetHostConnect ;; } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 83 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mfb 000008000000 2870 nop.m 0 000008000000 2871 nop.f 0 00800018B000 2872 br.sptk.many L$278 ;; // 069072 } 2880 L$312: // 069073 { .mii 01080A0F8940 2880 adds r37 = 252, in0 // r37 = 252, r32 // 069075 0120180EC9C0 2881 mov r39 = 502 01080A168900 2882 adds r36 = 180, r33 ;; // 069077 } { .mmi 008C8254E000 2890 st4 [r37] = r39 ;; // 069075 008082400900 2891 ld4 r36 = [r36] // 069077 000008000000 2892 nop.i 0 ;; } { .mii 000008000000 28A0 nop.m 0 0000B2400900 28A1 sxt4 r36 = r36 ;; 01080A448900 28A2 adds r36 = 164, r36 ;; } { .mmi 008082400900 28B0 ld4 r36 = [r36] ;; 01CC02404240 28B1 cmp4.eq pr9, pr0 = 2, r36 // 069078 01CC3240A1C0 28B2 cmp4.eq pr7, pr6 = 5, r36 ;; // 069077 } { .mbb 01C230000009 28C0 (pr9) cmp.eq.or.andcm pr0, pr6 = r0, r0 // 069078 008600002006 28C1 (pr6) br.cond.dpnt.many L$313 // 069077 00800017B000 28C2 br.sptk.many L$392 ;; } 28D0 L$313: // 069083 { .mfb 01C4000421C0 28D0 cmp4.eq pr7, pr0 = rqptr, r0 // pr7, pr0 = r33, r0 // 069085 000008000000 28D1 nop.f 0 00860009A007 28D2 (pr7) br.cond.dpnt.many L$316 ;; } { .mii 01092A1308C0 28E0 adds r35 = 4760, r33 // 069088 010852038880 28E1 adds r34 = 1308, in0 // r34 = 1308, r32 // 069090 0108420F0940 28E2 adds r37 = 1144, in0 // r37 = 1144, r32 // 069107 } { .mmi 012020058980 28F0 mov r38 = 556 ;; // 069090 008C8234E000 28F1 st4 [r35] = r39 // 069088 0108420D0B00 28F2 adds out0 = 1128, tkptr ;; // r44 = 1128, r32 // 069107 } { .mmi 008042200880 2900 ld2 r34 = [r34] // 069090 008082500900 2901 ld4 r36 = [r37] // 069107 010802C000C0 2902 mov r3 = out0 ;; // r3 = r44 // 069120 } { .mfb 01C402644240 2910 cmp4.eq pr9, pr0 = r34, r38 // 069090 000008000000 2911 nop.f 0 008600070009 2912 (pr9) br.cond.dpnt.many L$318 ;; } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 84 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mmi 012028028200 2920 mov r8 = 660 ;; 01C4008442C0 2921 cmp4.eq pr11, pr0 = r34, r8 000008000000 2922 nop.i 0 } { .mfb 000008000000 2930 nop.m 0 000008000000 2931 nop.f 0 00860004E00B 2932 (pr11) br.cond.dpnt.many L$320 ;; } { .mmi 012208028240 2940 addl r9 = 8340, r0 ;; 01C460944000 2941 cmp4.eq pr0, pr12 = r34, r9 000008000000 2942 nop.i 0 } { .mfb 000008000000 2950 nop.m 0 000008000000 2951 nop.f 0 00860002000C 2952 (pr12) br.cond.dpnt.many L$321 ;; } { .mii 0120001000C0 2960 add r3 = @ltoff($LITERAL$+208), gp // r3 = @ltoff($LITERAL$+208), r1 // 069107 012000006640 2961 mov ai = 3 // r25 = 3 0000B2400B80 2962 sxt4 out2 = r36 ;; // r46 = r36 } { .mmi 0080C03000C0 2970 ld8 r3 = $LITERAL$ ;; // r3 = [r3] 010800300B40 2971 mov out1 = r3 // r45 = r3 000008000000 2972 nop.i 0 } { .mfb 000008000000 2980 nop.m 0 000008000000 2981 nop.f 0 00A000001000 2982 br.call.sptk.many rp = DECC$MEMCMP ;; // br0 = DECC$MEMCMP } { .mii 0120000D4980 2990 mov r38 = 106 // 069108 0120000D29C0 2991 mov r39 = 105 01C430800000 2992 cmp4.eq pr0, pr6 = r0, r8 // 069107 } { .mmi 012000004640 29A0 mov ai = 2 ;; // r25 = 2 // 069108 010802700986 29A1 (pr6) mov r38 = r39 010802100B00 29A2 mov out0 = rqptr // r44 = r33 } { .mmi 010802B00040 29B0 mov gp = r43 ;; // r1 = r43 // 069107 000008000000 29B1 nop.m 0 0000B2600B40 29B2 sxt4 out1 = r38 // r45 = r38 // 069108 } { .mfb 000008000000 29C0 nop.m 0 000008000000 29C1 nop.f 0 00A000001000 29C2 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor } { .mii 0108B2180940 29D0 adds r37 = 2880, r33 // 069112 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 85 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 010802B00040 29D1 mov gp = r43 // r1 = r43 // 069108 000008000000 29D2 nop.i 0 ;; } { .mmi 008082500940 29E0 ld4 r37 = [r37] ;; // 069112 01C40004A1C0 29E1 cmp4.eq pr7, pr0 = r37, r0 000008000000 29E2 nop.i 0 } { .mfb 000008000000 29F0 nop.m 0 000008000000 29F1 nop.f 0 008600008007 29F2 (pr7) br.cond.dpnt.many L$324 ;; } { .mii 012000004640 2A00 mov ai = 2 // r25 = 2 // 069113 012000008B40 2A01 mov out1 = 4 // r45 = 4 010802100B00 2A02 mov out0 = rqptr // r44 = r33 } { .mfb 000008000000 2A10 nop.m 0 000008000000 2A11 nop.f 0 00A000001000 2A12 br.call.sptk.many rp = // br0 = ProxySocks5Reply ProxySocks5Reply ;; } { .mfb 000008000000 2A20 nop.m 0 000008000000 2A21 nop.f 0 00800014D000 2A22 br.sptk.many L$395 ;; } 2A30 L$324: // 069114 { .mii 012000100BC0 2A30 add out3 = @ltoff($LITERAL$+24), // r47 = @ltoff($LITERAL$+24), r1 // 069115 gp 010800800B40 2A31 mov out1 = cptr // r45 = r8 010802100B00 2A32 mov out0 = rqptr ;; // r44 = r33 } { .mib 0080C2F00B80 2A40 ld8 out2 = $LITERAL$ // r46 = [r47] 0120280D0BC0 2A41 mov out3 = 744 // r47 = 744 008000147000 2A42 br.sptk.many L$396 ;; } 2A50 L$321: // 069131 { .mii 010800300B00 2A50 mov out0 = r3 // r44 = r3 // 069133 0120001000C0 2A51 add r3 = @ltoff($LITERAL$+208), gp // r3 = @ltoff($LITERAL$+208), r1 012000006640 2A52 mov ai = 3 ;; // r25 = 3 } { .mii 0080C03000C0 2A60 ld8 r3 = $LITERAL$ // r3 = [r3] 0000B2400B80 2A61 sxt4 out2 = r36 ;; // r46 = r36 010800300B40 2A62 mov out1 = r3 // r45 = r3 } { .mfb 000008000000 2A70 nop.m 0 000008000000 2A71 nop.f 0 00A000001000 2A72 br.call.sptk.many rp = DECC$MEMCMP ;; // br0 = DECC$MEMCMP } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 86 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mib 01C4008001C0 2A80 cmp4.eq pr7, pr0 = r0, r8 010802B00040 2A81 mov gp = r43 // r1 = r43 00860000E007 2A82 (pr7) br.cond.dpnt.many L$326 ;; } { .mii 012000004640 2A90 mov ai = 2 // r25 = 2 // 069136 0120000D6B40 2A91 mov out1 = 107 // r45 = 107 010802100B00 2A92 mov out0 = rqptr // r44 = r33 } { .mfb 000008000000 2AA0 nop.m 0 000008000000 2AA1 nop.f 0 00A000001000 2AA2 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor } { .mii 010932160880 2AB0 adds r34 = 4912, r33 // 069135 0108120208C0 2AB1 adds r35 = 272, in0 // r35 = 272, r32 // 069138 0109321509C0 2AB2 adds r39 = 4904, r33 // 069137 } { .mmi 010802B00040 2AC0 mov gp = r43 ;; // r1 = r43 // 069136 008C82210000 2AC1 st4 [r34] = r8 // 069135 000008000000 2AC2 nop.i 0 ;; } { .mmi 0080823008C0 2AD0 ld4 r35 = [r35] ;; // 069138 008C82746000 2AD1 st4 [r39] = r35 // 069137 000008000000 2AD2 nop.i 0 } { .mfb 000008000000 2AE0 nop.m 0 000008000000 2AE1 nop.f 0 008000007000 2AE2 br.sptk.many L$327 ;; // 069140 } 2AF0 L$326: { .mii 010932160940 2AF0 adds r37 = 4912, r33 // 069141 0108220D8980 2AF1 adds r38 = 620, tkptr // r38 = 620, r32 000008000000 2AF2 nop.i 0 ;; } { .mfi 008C8254C000 2B00 st4 [r37] = r38 000008000000 2B01 nop.f 0 000008000000 2B02 nop.i 0 } 2B10 L$327: { .mmi 0108B2180900 2B10 adds r36 = 2880, r33 ;; // 069143 008082400900 2B11 ld4 r36 = [r36] 000008000000 2B12 nop.i 0 ;; } { .mfb 01C4000481C0 2B20 cmp4.eq pr7, pr0 = r36, r0 000008000000 2B21 nop.f 0 008600008007 2B22 (pr7) br.cond.dpnt.many L$329 ;; } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 87 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mii 012000004640 2B30 mov ai = 2 // r25 = 2 // 069144 012000002B40 2B31 mov out1 = 1 // r45 = 1 010802100B00 2B32 mov out0 = rqptr // r44 = r33 } { .mfb 000008000000 2B40 nop.m 0 000008000000 2B41 nop.f 0 00A000001000 2B42 br.call.sptk.many rp = // br0 = ProxySocks5Reply ProxySocks5Reply ;; } { .mfb 000008000000 2B50 nop.m 0 000008000000 2B51 nop.f 0 008000127000 2B52 br.sptk.many L$395 ;; } 2B60 L$329: // 069145 { .mii 012000100BC0 2B60 add out3 = @ltoff($LITERAL$+24), // r47 = @ltoff($LITERAL$+24), r1 // 069146 gp 010852038880 2B61 adds r34 = 1308, in0 // r34 = 1308, r32 012000008640 2B62 mov ai = 4 // r25 = 4 } { .mmi 010802100B00 2B70 mov out0 = rqptr ;; // r44 = r33 0080C2F00B80 2B71 ld8 out2 = $LITERAL$ // r46 = [r47] 01203000EBC0 2B72 mov out3 = 775 // r47 = 775 } { .mfb 008042200B40 2B80 ld2 out1 = [r34] // r45 = [r34] 000008000000 2B81 nop.f 0 00A000001000 2B82 br.call.sptk.many rp = ErrorVmsStatus ;; // br0 = ErrorVmsStatus } { .mfb 000008000000 2B90 nop.m 0 000008000000 2B91 nop.f 0 00800011F000 2B92 br.sptk.many L$395 ;; } 2BA0 L$320: // 069092 { .mii 010800300B00 2BA0 mov out0 = r3 // r44 = r3 // 069094 0120001000C0 2BA1 add r3 = @ltoff($LITERAL$+208), gp // r3 = @ltoff($LITERAL$+208), r1 012000006640 2BA2 mov ai = 3 ;; // r25 = 3 } { .mii 0080C03000C0 2BB0 ld8 r3 = $LITERAL$ // r3 = [r3] 0000B2400B80 2BB1 sxt4 out2 = r36 ;; // r46 = r36 010800300B40 2BB2 mov out1 = r3 // r45 = r3 } { .mfb 000008000000 2BC0 nop.m 0 000008000000 2BC1 nop.f 0 00A000001000 2BC2 br.call.sptk.many rp = DECC$MEMCMP ;; // br0 = DECC$MEMCMP } { .mii 0120000D0940 2BD0 mov r37 = 104 // 069095 0120000CE9C0 2BD1 mov r39 = 103 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 88 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 01C430800000 2BD2 cmp4.eq pr0, pr6 = r0, r8 // 069094 } { .mmi 012000004640 2BE0 mov ai = 2 ;; // r25 = 2 // 069095 010802700946 2BE1 (pr6) mov r37 = r39 010802100B00 2BE2 mov out0 = rqptr // r44 = r33 } { .mmi 010802B00040 2BF0 mov gp = r43 ;; // r1 = r43 // 069094 000008000000 2BF1 nop.m 0 0000B2500B40 2BF2 sxt4 out1 = r37 // r45 = r37 // 069095 } { .mfb 000008000000 2C00 nop.m 0 000008000000 2C01 nop.f 0 00A000001000 2C02 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor } { .mii 0108B2180980 2C10 adds r38 = 2880, r33 // 069099 010802B00040 2C11 mov gp = r43 // r1 = r43 // 069095 000008000000 2C12 nop.i 0 ;; } { .mmi 008082600980 2C20 ld4 r38 = [r38] ;; // 069099 01C40004C1C0 2C21 cmp4.eq pr7, pr0 = r38, r0 000008000000 2C22 nop.i 0 } { .mfb 000008000000 2C30 nop.m 0 000008000000 2C31 nop.f 0 008600008007 2C32 (pr7) br.cond.dpnt.many L$331 ;; } { .mii 012000004640 2C40 mov ai = 2 // r25 = 2 // 069100 01200000AB40 2C41 mov out1 = 5 // r45 = 5 010802100B00 2C42 mov out0 = rqptr // r44 = r33 } { .mfb 000008000000 2C50 nop.m 0 000008000000 2C51 nop.f 0 00A000001000 2C52 br.call.sptk.many rp = // br0 = ProxySocks5Reply ProxySocks5Reply ;; } { .mfb 000008000000 2C60 nop.m 0 000008000000 2C61 nop.f 0 008000105000 2C62 br.sptk.many L$395 ;; } 2C70 L$331: // 069101 { .mii 012000100BC0 2C70 add out3 = @ltoff($LITERAL$+24), // r47 = @ltoff($LITERAL$+24), r1 // 069102 gp 010800800B40 2C71 mov out1 = cptr // r45 = r8 010802100B00 2C72 mov out0 = rqptr ;; // r44 = r33 } { .mib 0080C2F00B80 2C80 ld8 out2 = $LITERAL$ // r46 = [r47] Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 89 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 0120280B6BC0 2C81 mov out3 = 731 // r47 = 731 0080000FF000 2C82 br.sptk.many L$396 ;; } 2C90 L$318: // 069118 { .mii 012000100880 2C90 add r34 = @ltoff($LITERAL$+208), // r34 = @ltoff($LITERAL$+208), r1 // 069120 gp 012000006640 2C91 mov ai = 3 // r25 = 3 0000B2400B80 2C92 sxt4 out2 = r36 // r46 = r36 } { .mmi 010800300B00 2CA0 mov out0 = r3 ;; // r44 = r3 0080C2200B40 2CA1 ld8 out1 = $LITERAL$ // r45 = [r34] 000008000000 2CA2 nop.i 0 } { .mfb 000008000000 2CB0 nop.m 0 000008000000 2CB1 nop.f 0 00A000001000 2CB2 br.call.sptk.many rp = DECC$MEMCMP ;; // br0 = DECC$MEMCMP } { .mii 0120000D4940 2CC0 mov r37 = 106 // 069121 0120000D29C0 2CC1 mov r39 = 105 01C430800000 2CC2 cmp4.eq pr0, pr6 = r0, r8 // 069120 } { .mmi 012000004640 2CD0 mov ai = 2 ;; // r25 = 2 // 069121 010802700946 2CD1 (pr6) mov r37 = r39 010802100B00 2CD2 mov out0 = rqptr // r44 = r33 } { .mmi 010802B00040 2CE0 mov gp = r43 ;; // r1 = r43 // 069120 000008000000 2CE1 nop.m 0 0000B2500B40 2CE2 sxt4 out1 = r37 // r45 = r37 // 069121 } { .mfb 000008000000 2CF0 nop.m 0 000008000000 2CF1 nop.f 0 00A000001000 2CF2 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor } { .mii 0108B2180980 2D00 adds r38 = 2880, r33 // 069125 010802B00040 2D01 mov gp = r43 // r1 = r43 // 069121 000008000000 2D02 nop.i 0 ;; } { .mmi 008082600980 2D10 ld4 r38 = [r38] ;; // 069125 01C40004C1C0 2D11 cmp4.eq pr7, pr0 = r38, r0 000008000000 2D12 nop.i 0 } { .mfb 000008000000 2D20 nop.m 0 000008000000 2D21 nop.f 0 008600008007 2D22 (pr7) br.cond.dpnt.many L$333 ;; } { .mii 012000004640 2D30 mov ai = 2 // r25 = 2 // 069126 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 90 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 012000008B40 2D31 mov out1 = 4 // r45 = 4 010802100B00 2D32 mov out0 = rqptr // r44 = r33 } { .mfb 000008000000 2D40 nop.m 0 000008000000 2D41 nop.f 0 00A000001000 2D42 br.call.sptk.many rp = // br0 = ProxySocks5Reply ProxySocks5Reply ;; } { .mfb 000008000000 2D50 nop.m 0 000008000000 2D51 nop.f 0 0080000E7000 2D52 br.sptk.many L$395 ;; } 2D60 L$333: // 069127 { .mii 012000100BC0 2D60 add out3 = @ltoff($LITERAL$+24), // r47 = @ltoff($LITERAL$+24), r1 // 069128 gp 012000008640 2D61 mov ai = 4 // r25 = 4 010800800B40 2D62 mov out1 = cptr // r45 = r8 } { .mmi 010802100B00 2D70 mov out0 = rqptr ;; // r44 = r33 0080C2F00B80 2D71 ld8 out2 = $LITERAL$ // r46 = [r47] 0120280EABC0 2D72 mov out3 = 757 // r47 = 757 } { .mfb 000008000000 2D80 nop.m 0 000008000000 2D81 nop.f 0 00A000001000 2D82 br.call.sptk.many rp = ErrorGeneral ;; // br0 = ErrorGeneral } { .mfi 010802B00040 2D90 mov gp = r43 // r1 = r43 000008000000 2D91 nop.f 0 000008000000 2D92 nop.i 0 } 2DA0 L$316: // 069148 { .mfb 000008000000 2DA0 nop.m 0 000008000000 2DA1 nop.f 0 0080000DF000 2DA2 br.sptk.many L$392 ;; } 2DB0 L$298: // 069152 { .bbb 00860000200A 2DB0 (pr10) br.cond.dpnt.many L$334 // 069154 008000035000 2DB1 br.sptk.many L$335 004000000000 2DB2 nop.b 0 ;; } 2DC0 L$334: { .mii 012000100880 2DC0 add r34 = @ltoff(Watch+124), gp // r34 = @ltoff(Watch+124), r1 012002000980 2DC1 addl r38 = 524288, r0 000008000000 2DC2 nop.i 0 } { .mmi 0080820000C0 2DD0 ld4 r3 = [in0] ;; // r3 = [r32] 0080C2200880 2DD1 ld8 r34 = Watch // r34 = [r34] Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 91 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 01C440300240 2DD2 cmp4.eq pr9, pr8 = r0, r3 ;; } { .mmi 0111622F0900 2DE0 and r36 = -8, r34 ;; 01C03A444000 2DE1 cmp.eq pr0, pr7 = r34, r36 000008000000 2DE2 nop.i 0 } { .mmi 00A0C2410940 2DF0 ld8 r37 = Watch, 8 ;; // r37 = [r36], 8 000008000000 2DF1 nop.m 0 009E100448C7 2DF2 (pr7) dep r35 = Watch, r0, 3, 3 ;; // r35 = r34, r0, 3, 3 } { .mmi 0080C24009C7 2E00 (pr7) ld8 r39 = Watch ;; // r39 = [r36] 000008000000 2E01 nop.m 0 00F202546947 2E02 (pr7) shr.u r37 = r37, r35 } { .mmi 01012A3808C7 2E10 (pr7) sub r35 = 64, r35 ;; 000008000000 2E11 nop.m 0 00F24234E9C7 2E12 (pr7) shl r39 = r39, r35 ;; } { .mmi 01007254E947 2E20 (pr7) or r37 = r39, r37 ;; 01006254C940 2E21 and r37 = r38, r37 000008000000 2E22 nop.i 0 ;; } { .mmi 01C002500300 2E30 cmp.eq pr12, pr0 = r0, r37 ;; 01C20000024C 2E31 (pr12) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 2E32 nop.i 0 } { .mfb 000008000000 2E40 nop.m 0 000008000000 2E41 nop.f 0 008600022009 2E42 (pr9) br.cond.dpnt.many L$335 ;; } { .mmi 01C000001340 2E50 cmp.eq.unc pr13, pr0 = r0, r0 ;; // 069155 01A00000034A 2E51 (pr10) cmp.ltu pr13, pr0 = r0, r0 000008000000 2E52 nop.i 0 } { .mfb 000008000000 2E60 nop.m 0 000008000000 2E61 nop.f 0 00860000400D 2E62 (pr13) br.cond.dpnt.many L$339 ;; } { .mfb 0108003008C0 2E70 mov r35 = r3 000008000000 2E71 nop.f 0 008000005000 2E72 br.sptk.many L$338 ;; } 2E80 L$339: { .mfi 0108000008C0 2E80 mov r35 = r0 000008000000 2E81 nop.f 0 000008000000 2E82 nop.i 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 92 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } 2E90 L$338: { .mii 01084A080200 2E90 adds r8 = 1216, in0 // r8 = 1216, r32 // 069158 01080A010240 2E91 adds r9 = 136, in0 // r9 = 136, r32 // 069156 012000006640 2E92 mov ai = 3 ;; // r25 = 3 // 069158 } { .mmi 008080800200 2EA0 ld4 r8 = [r8] 008080900980 2EA1 ld4 r38 = [r9] // 069156 012000000B80 2EA2 mov out2 = 0 ;; // r46 = 0 // 069158 } { .mii 010800000B40 2EB0 mov out1 = r0 // r45 = r0 0000B0800200 2EB1 sxt4 r8 = r8 0000B2600980 2EB2 sxt4 r38 = r38 // 069156 } { .mmi 0108420A89C0 2EC0 adds r39 = 1108, tkptr ;; // r39 = 1108, r32 // 069157 008040800B00 2EC1 ld2 out0 = [r8] // r44 = [r8] // 069158 0108420F8900 2EC2 adds r36 = 1148, tkptr // r36 = 1148, r32 // 069156 } { .mfb 000008000000 2ED0 nop.m 0 000008000000 2ED1 nop.f 0 00A000001000 2ED2 br.call.sptk.many rp = NetGetBgDevice ;; // br0 = NetGetBgDevice // 069158 } { .mii 010802B00040 2EE0 mov gp = r43 // r1 = r43 010800C20940 2EE1 adds r37 = 16, sp // r37 = 16, r12 // 069155 012000012640 2EE2 mov ai = 9 // r25 = 9 } { .mmi 010802700CC0 2EF0 mov out7 = r39 ;; // r51 = r39 0120001000C0 2EF1 add r3 = @ltoff($LITERAL$+416), gp // r3 = @ltoff($LITERAL$+416), r1 012000100B80 2EF2 add out2 = @ltoff($LITERAL$+24), // r46 = @ltoff($LITERAL$+24), r1 gp } { .mii 010802600C80 2F00 mov out6 = r38 // r50 = r38 010802400C40 2F01 mov out5 = r36 ;; // r49 = r36 012002000BC0 2F02 addl out3 = 524288, r0 // r47 = 524288, r0 } { .mmi 0080C03000C0 2F10 ld8 r3 = $LITERAL$ // r3 = [r3] 0080C2E00B40 2F11 ld8 out1 = $LITERAL$ // r45 = [r46] 012030020B80 2F12 mov out2 = 784 ;; // r46 = 784 } { .mib 010800300C00 2F20 mov out4 = r3 // r48 = r3 0000B2300B00 2F21 sxt4 out0 = r35 // r44 = r35 004000000000 2F22 nop.b 0 } { .mfb 008CC2510000 2F30 st8 [r37] = r8 000008000000 2F31 nop.f 0 00A000001000 2F32 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 93 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } { .mfi 010802B00040 2F40 mov gp = r43 // r1 = r43 000008000000 2F41 nop.f 0 000008000000 2F42 nop.i 0 ;; } 2F50 L$335: // 069158 { .mmi 012000100940 2F50 add r37 = // r37 = @ltoffx(LoggingProxyLocalPort), // 069160 @ltoffx(LoggingProxyLocalPort), // r1 gp ;; 0080C2500940 2F51 ld8.mov r37 = [r37], LoggingProxyLocalPort 000008000000 2F52 nop.i 0 ;; } { .mmi 008082500940 2F60 ld4 r37 = LoggingProxyLocalPort ;; // r37 = [r37] 01C4025001C0 2F61 cmp4.eq pr7, pr0 = r0, r37 000008000000 2F62 nop.i 0 } { .mfb 000008000000 2F70 nop.m 0 000008000000 2F71 nop.f 0 008600006007 2F72 (pr7) br.cond.dpnt.many L$341 ;; } { .mfb 010802000B00 2F80 mov out0 = tkptr // r44 = r32 // 069161 000008000000 2F81 nop.f 0 00A000001000 2F82 br.call.sptk.many rp = // br0 = ProxyNetLocalPort ProxyNetLocalPort ;; } { .mmi 01081A108880 2F90 adds r34 = 388, r33 ;; 008C82210000 2F91 st4 [r34] = r8 000008000000 2F92 nop.i 0 } 2FA0 L$341: { .mii 01084A080B00 2FA0 adds out0 = 1216, in0 // r44 = 1216, r32 // 069163 012000002640 2FA1 mov ai = 1 // r25 = 1 000008000000 2FA2 nop.i 0 ;; } { .mmi 008082C00B00 2FB0 ld4 out0 = [out0] ;; // r44 = [r44] 000008000000 2FB1 nop.m 0 0000B2C00B00 2FB2 sxt4 out0 = out0 // r44 = r44 } { .mfb 000008000000 2FC0 nop.m 0 000008000000 2FC1 nop.f 0 00A000001000 2FC2 br.call.sptk.many rp = // br0 = TcpIpSocketMaxQio TcpIpSocketMaxQio ;; } { .mii 01C4300421C0 2FD0 cmp4.eq pr7, pr6 = rqptr, r0 // pr7, pr6 = r33, r0 // 069166 010802B00040 2FD1 mov gp = r43 ;; // r1 = r43 // 069163 01C0000010C7 2FD2 (pr7) cmp.eq.unc pr3, pr0 = r0, r0 // 069166 } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 94 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mbb 01C000001086 2FE0 (pr6) cmp.eq.unc pr2, pr0 = r0, r0 008600002002 2FE1 (pr2) br.cond.dpnt.many L$342 008600006003 2FE2 (pr3) br.cond.dpnt.many L$343 ;; } 2FF0 L$342: { .mii 01092A130900 2FF0 adds r36 = 4760, r33 0120080908C0 2FF1 mov r35 = 200 000008000000 2FF2 nop.i 0 ;; } { .mfi 008C82446000 3000 st4 [r36] = r35 000008000000 3001 nop.f 0 000008000000 3002 nop.i 0 } 3010 L$343: { .mii 0108A21C89C0 3010 adds r39 = 2660, r33 // 069169 012000002980 3011 mov r38 = 1 01080A030940 3012 adds r37 = 152, in0 ;; // r37 = 152, r32 // 069171 } { .mmi 008C8274C000 3020 st4 [r39] = r38 ;; // 069169 008082500940 3021 ld4 r37 = [r37] // 069171 000008000000 3022 nop.i 0 ;; } { .mfb 01C402500240 3030 cmp4.eq pr9, pr0 = r0, r37 000008000000 3031 nop.f 0 00860001C009 3032 (pr9) br.cond.dpnt.many L$345 ;; } { .mii 0108420F0880 3040 adds r34 = 1144, in0 // r34 = 1144, r32 // 069177 012000100200 3041 add r8 = @ltoff($LITERAL$+208), gp // r8 = @ltoff($LITERAL$+208), r1 0108420D00C0 3042 adds r3 = 1128, tkptr // r3 = 1128, r32 } { .mmi 012000006640 3050 mov ai = 3 ;; // r25 = 3 008082200880 3051 ld4 r34 = [r34] 010800300B00 3052 mov out0 = r3 // r44 = r3 } { .mmi 0080C0800B40 3060 ld8 out1 = $LITERAL$ ;; // r45 = [r8] 000008000000 3061 nop.m 0 0000B2200B80 3062 sxt4 out2 = r34 // r46 = r34 } { .mfb 000008000000 3070 nop.m 0 000008000000 3071 nop.f 0 00A000001000 3072 br.call.sptk.many rp = DECC$MEMCMP ;; // br0 = DECC$MEMCMP } { .mib 01C4008000C0 3080 cmp4.eq pr3, pr0 = r0, r8 010802B00040 3081 mov gp = r43 // r1 = r43 008600006003 3082 (pr3) br.cond.dpnt.many L$347 ;; } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 95 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mib 012000002640 3090 mov ai = 1 // r25 = 1 // 069178 010802000B00 3091 mov out0 = tkptr // r44 = r32 00A000001000 3092 br.call.sptk.many rp = // br0 = ProxyTunnelChainConnect ProxyTunnelChainConnect ;; } { .mfb 000008000000 30A0 nop.m 0 000008000000 30A1 nop.f 0 008000083000 30A2 br.sptk.many L$393 ;; } 30B0 L$347: // 069179 { .mmi 01080A0308C0 30B0 adds r35 = 152, in0 ;; // r35 = 152, r32 // 069180 0080823008C0 30B1 ld4 r35 = [r35] 000008000000 30B2 nop.i 0 ;; } { .mfb 01CC12308000 30C0 cmp4.eq pr0, pr2 = 4, r35 000008000000 30C1 nop.f 0 008600006002 30C2 (pr2) br.cond.dpnt.many L$351 ;; } { .mib 012000002640 30D0 mov ai = 1 // r25 = 1 // 069181 010802000B00 30D1 mov out0 = tkptr // r44 = r32 00A000001000 30D2 br.call.sptk.many rp = // br0 = SesolaNetClientBegin SesolaNetClientBegin ;; } { .mfb 000008000000 30E0 nop.m 0 000008000000 30E1 nop.f 0 00800007B000 30E2 br.sptk.many L$393 ;; } 30F0 L$351: // 069182 { .mib 012000002640 30F0 mov ai = 1 // r25 = 1 // 069183 010802000B00 30F1 mov out0 = tkptr // r44 = r32 00A000001000 30F2 br.call.sptk.many rp = // br0 = ProxyTunnelBegin ProxyTunnelBegin ;; } { .mfb 000008000000 3100 nop.m 0 000008000000 3101 nop.f 0 008000077000 3102 br.sptk.many L$393 ;; } 3110 L$345: // 069186 { .mmi 01084A048900 3110 adds r36 = 1188, in0 ;; // r36 = 1188, r32 // 069193 008082400900 3111 ld4 r36 = [r36] 000008000000 3112 nop.i 0 ;; } { .mii 000008000000 3120 nop.m 0 0000B2400900 3121 sxt4 r36 = r36 ;; 010802490900 3122 adds r36 = 72, r36 ;; } { .mmi Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 96 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 008082400900 3130 ld4 r36 = [r36] ;; 01C432400000 3131 cmp4.eq pr0, pr6 = r0, r36 000008000000 3132 nop.i 0 } { .mfb 000008000000 3140 nop.m 0 000008000000 3141 nop.f 0 008600006006 3142 (pr6) br.cond.dpnt.many L$353 ;; } { .mmi 010902110980 3150 adds r38 = 4104, r33 ;; // 069194 008082600980 3151 ld4 r38 = [r38] 000008000000 3152 nop.i 0 ;; } { .mfb 01C402600240 3160 cmp4.eq pr9, pr0 = r0, r38 000008000000 3161 nop.f 0 008600008009 3162 (pr9) br.cond.dpnt.many L$355 ;; // 069193 } 3170 L$353: { .mmi 010802020800 3170 adds in0 = 16, in0 ;; // r32 = 16, r32 // 069195 00B08A0E09C0 3171 ld4 r39 = [in0], -16 // r39 = [r32], -16 000008000000 3172 nop.i 0 ;; } { .mfb 01C452700000 3180 cmp4.eq pr0, pr10 = r0, r39 000008000000 3181 nop.f 0 00860000400A 3182 (pr10) br.cond.dpnt.many L$355 ;; // 069193 } { .mfb 010802000B00 3190 mov out0 = tkptr // r44 = r32 // 069196 000008000000 3191 nop.f 0 00A000001000 3192 br.call.sptk.many rp = // br0 = ProxyNetSetAffinityCookie ProxyNetSetAffinityCookie ;; } 31A0 L$355: { .mii 01080A010940 31A0 adds r37 = 136, in0 // r37 = 136, r32 // 069198 012018076880 31A1 mov r34 = 443 000008000000 31A2 nop.i 0 ;; } { .mmi 008082500940 31B0 ld4 r37 = [r37] ;; 01C40224A1C0 31B1 cmp4.eq pr7, pr0 = r37, r34 000008000000 31B2 nop.i 0 } { .mfb 000008000000 31C0 nop.m 0 000008000000 31C1 nop.f 0 008600014007 31C2 (pr7) br.cond.dpnt.many L$358 ;; } { .mmi 01080A0708C0 31D0 adds r35 = 184, in0 ;; // r35 = 184, r32 // 069199 0080823008C0 31D1 ld4 r35 = [r35] 000008000000 31D2 nop.i 0 ;; } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 97 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mfb 01CC02306240 31E0 cmp4.eq pr9, pr0 = 3, r35 000008000000 31E1 nop.f 0 008600010009 31E2 (pr9) br.cond.dpnt.many L$358 ;; } { .mfb 01CC52304000 31F0 cmp4.eq pr0, pr10 = 2, r35 // 069221 000008000000 31F1 nop.f 0 00860000600A 31F2 (pr10) br.cond.dpnt.many L$364 ;; } { .mib 012000002640 3200 mov ai = 1 // r25 = 1 // 069222 010802000B00 3201 mov out0 = tkptr // r44 = r32 00A000001000 3202 br.call.sptk.many rp = // br0 = ProxyWriteRequest ProxyWriteRequest ;; } { .mfb 000008000000 3210 nop.m 0 000008000000 3211 nop.f 0 008000055000 3212 br.sptk.many L$393 ;; } 3220 L$364: // 069223 { .mii 012000100BC0 3220 add out3 = @ltoff($LITERAL$+24), // r47 = @ltoff($LITERAL$+24), r1 // 069224 gp 012000100B40 3221 add out1 = // r45 = @ltoffx(ErrorSanityCheck), r1 @ltoffx(ErrorSanityCheck), gp 012000008640 3222 mov ai = 4 // r25 = 4 } { .mmi 012028048B00 3230 mov out0 = 676 ;; // r44 = 676 0080C2F00B80 3231 ld8 out2 = $LITERAL$ // r46 = [r47] 0120300AABC0 3232 mov out3 = 853 // r47 = 853 } { .mfb 0080C2D00B40 3240 ld8.mov out1 = [r45], ErrorSanityCheck 000008000000 3241 nop.f 0 00A000001000 3242 br.call.sptk.many rp = // br0 = ErrorExitVmsStatus ErrorExitVmsStatus ;; } { .mfb 000008000000 3250 nop.m 0 000008000000 3251 nop.f 0 00800004D000 3252 br.sptk.many L$393 ;; } 3260 L$358: // 069198 { .mmi 01084A048900 3260 adds r36 = 1188, in0 ;; // r36 = 1188, r32 // 069201 008082400900 3261 ld4 r36 = [r36] 000008000000 3262 nop.i 0 ;; } { .mii 000008000000 3270 nop.m 0 0000B2400900 3271 sxt4 r36 = r36 ;; 0108024C0900 3272 adds r36 = 96, r36 ;; } { .mmi Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 98 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 008082400900 3280 ld4 r36 = [r36] ;; 01C4024001C0 3281 cmp4.eq pr7, pr0 = r0, r36 000008000000 3282 nop.i 0 } { .mfb 000008000000 3290 nop.m 0 000008000000 3291 nop.f 0 00860000E007 3292 (pr7) br.cond.dpnt.many L$368 ;; } { .mmi 01080A020980 32A0 adds r38 = 144, in0 ;; // r38 = 144, r32 // 069203 008082600980 32A1 ld4 r38 = [r38] 000008000000 32A2 nop.i 0 ;; } { .mfb 018C42602000 32B0 cmp4.lt pr0, pr8 = 1, r38 000008000000 32B1 nop.f 0 008600006008 32B2 (pr8) br.cond.dpnt.many L$371 ;; } { .mib 012000002640 32C0 mov ai = 1 // r25 = 1 // 069204 010802000B00 32C1 mov out0 = tkptr // r44 = r32 00A000001000 32C2 br.call.sptk.many rp = // br0 = ProxyWriteRequest ProxyWriteRequest ;; } { .mfb 000008000000 32D0 nop.m 0 000008000000 32D1 nop.f 0 00800003D000 32D2 br.sptk.many L$393 ;; } 32E0 L$371: // 069205 { .mib 012000002640 32E0 mov ai = 1 // r25 = 1 // 069206 010802000B00 32E1 mov out0 = tkptr // r44 = r32 00A000001000 32E2 br.call.sptk.many rp = // br0 = SesolaNetClientBegin SesolaNetClientBegin ;; } { .mfb 000008000000 32F0 nop.m 0 000008000000 32F1 nop.f 0 008000039000 32F2 br.sptk.many L$393 ;; } 3300 L$368: // 069208 { .bbb 008600002002 3300 (pr2) br.cond.dpnt.many L$373 // 069210 008600024003 3301 (pr3) br.cond.dpnt.many L$374 004000000000 3302 nop.b 0 ;; } 3310 L$373: { .mii 0120001009C0 3310 add r39 = @ltoff(Watch+124), gp // r39 = @ltoff(Watch+124), r1 01080A1D00C0 3311 adds r3 = 232, r33 012002000980 3312 addl r38 = 524288, r0 ;; } { .mmi 0080C27009C0 3320 ld8 r39 = Watch // r39 = [r39] 0080803000C0 3321 ld4 r3 = [r3] Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 99 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 000008000000 3322 nop.i 0 ;; } { .mii 0111627F0880 3330 and r34 = -8, r39 01C440300240 3331 cmp4.eq pr9, pr8 = r0, r3 ;; 01C03A24E000 3332 cmp.eq pr0, pr7 = r39, r34 } { .mmi 00A0C2210900 3340 ld8 r36 = Watch, 8 ;; // r36 = [r34], 8 000008000000 3341 nop.m 0 009E1004E947 3342 (pr7) dep r37 = Watch, r0, 3, 3 ;; // r37 = r39, r0, 3, 3 } { .mmi 0080C22008C7 3350 (pr7) ld8 r35 = Watch ;; // r35 = [r34] 000008000000 3351 nop.m 0 00F20244A907 3352 (pr7) shr.u r36 = r36, r37 } { .mmi 01012A580947 3360 (pr7) sub r37 = 64, r37 ;; 000008000000 3361 nop.m 0 00F2425468C7 3362 (pr7) shl r35 = r35, r37 ;; } { .mmi 010072446907 3370 (pr7) or r36 = r35, r36 ;; 01006244C900 3371 and r36 = r38, r36 000008000000 3372 nop.i 0 ;; } { .mmi 01C0024002C0 3380 cmp.eq pr11, pr0 = r0, r36 ;; 01C20000024B 3381 (pr11) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 3382 nop.i 0 } { .mfb 000008000000 3390 nop.m 0 000008000000 3391 nop.f 0 008600012009 3392 (pr9) br.cond.dpnt.many L$374 ;; } { .mmi 01C000001300 33A0 cmp.eq.unc pr12, pr0 = r0, r0 ;; // 069211 01A000000302 33A1 (pr2) cmp.ltu pr12, pr0 = r0, r0 000008000000 33A2 nop.i 0 } { .mfb 000008000000 33B0 nop.m 0 000008000000 33B1 nop.f 0 00860000400C 33B2 (pr12) br.cond.dpnt.many L$378 ;; } { .mfb 010800300200 33C0 mov r8 = r3 000008000000 33C1 nop.f 0 008000005000 33C2 br.sptk.many L$377 ;; } 33D0 L$378: { .mfi 010800000200 33D0 mov r8 = r0 000008000000 33D1 nop.f 0 000008000000 33D2 nop.i 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 100 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } 33E0 L$377: { .mii 012000100B80 33E0 add out2 = @ltoff($LITERAL$+24), // r46 = @ltoff($LITERAL$+24), r1 gp 012000100240 33E1 add r9 = @ltoff($LITERAL$+384), gp // r9 = @ltoff($LITERAL$+384), r1 // 069212 01200000A640 33E2 mov ai = 5 ;; // r25 = 5 // 069211 } { .mmi 0080C2E00B40 33F0 ld8 out1 = $LITERAL$ // r45 = [r46] 0080C0900C00 33F1 ld8 out4 = $LITERAL$ // r48 = [r9] // 069212 012002000BC0 33F2 addl out3 = 524288, r0 ;; // r47 = 524288, r0 // 069211 } { .mib 012030090B80 3400 mov out2 = 840 // r46 = 840 0000B0800B00 3401 sxt4 out0 = r8 // r44 = r8 00A000001000 3402 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802B00040 3410 mov gp = r43 // r1 = r43 000008000000 3411 nop.f 0 000008000000 3412 nop.i 0 } 3420 L$374: // 069212 { .mii 01092A1308C0 3420 adds r35 = 4760, r33 // 069213 0120180EE880 3421 mov r34 = 503 012000004640 3422 mov ai = 2 ;; // r25 = 2 // 069214 } { .mii 0120000DEB40 3430 mov out1 = 111 // r45 = 111 010802100B00 3431 mov out0 = rqptr // r44 = r33 000008000000 3432 nop.i 0 } { .mfb 008C82344000 3440 st4 [r35] = r34 // 069213 000008000000 3441 nop.f 0 00A000001000 3442 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor // 069214 } { .mii 010802B00040 3450 mov gp = r43 // r1 = r43 010800800B40 3451 mov out1 = r8 // r45 = r8 010802100B00 3452 mov out0 = rqptr ;; // r44 = r33 } { .mmi 012000100BC0 3460 add out3 = @ltoff($LITERAL$+24), // r47 = @ltoff($LITERAL$+24), r1 gp ;; 0080C2F00B80 3461 ld8 out2 = $LITERAL$ // r46 = [r47] 012030096BC0 3462 mov out3 = 843 // r47 = 843 } 3470 L$396: { .mfb 012000008640 3470 mov ai = 4 // r25 = 4 000008000000 3471 nop.f 0 00A000001000 3472 br.call.sptk.many rp = ErrorGeneral ;; // br0 = ErrorGeneral } 3480 L$395: Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 101 ProxyNetHostConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mfi 010802B00040 3480 mov gp = r43 // r1 = r43 000008000000 3481 nop.f 0 000008000000 3482 nop.i 0 } 3490 L$392: // 069215 { .mii 012000002640 3490 mov ai = 1 // r25 = 1 010802000B00 3491 mov out0 = tkptr // r44 = r32 000008000000 3492 nop.i 0 ;; } { .mfb 000008000000 34A0 nop.m 0 000008000000 34A1 nop.f 0 00A000001000 34A2 br.call.sptk.many rp = ProxyEnd ;; // br0 = ProxyEnd } 34B0 L$393: { .mfi 010802B00040 34B0 mov gp = r43 // r1 = r43 000008000000 34B1 nop.f 0 000008000000 34B2 nop.i 0 } 34C0 L$278: // 069216 { .mii 000008000000 34C0 nop.m 0 0016000547C0 34C1 mov pr = r42, -65474 ;; 000154052000 34C2 mov.i rspfs = r41 ;; } { .mii 000008000000 34D0 nop.m 0 000E00150000 34D1 mov rp = r40 // br0 = r40 010800C20300 34D2 adds sp = 16, sp // r12 = 16, r12 } { .mfb 000008000000 34E0 nop.m 0 000008000000 34E1 nop.f 0 000108001100 34E2 br.ret.sptk.many rp ;; // br0 } .endp ProxyNetHostConnectAst Routine Size: 4784 bytes, Routine Base: $CODE$ + 2240 .proc ProxyNetLocalPort .align 32 .global ProxyNetLocalPort ProxyNetLocalPort: // 069233 { .mii 002C0061C900 34F0 alloc r36 = rspfs, 1, 5, 8, 0 0120000C0380 34F1 mov r14 = 96 01084A018240 34F2 adds r9 = 1164, in0 // r9 = 1164, r32 // 069254 } { .mmi 01084A050200 3500 adds r8 = 1192, in0 ;; // r8 = 1192, r32 // 069248 010028E183C0 3501 sub r15 = sp, r14 // r15 = r12, r14 // 069233 010800C00080 3502 mov r2 = sp // r2 = r12 } { .mmi Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 102 ProxyNetLocalPort 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 0120000200C0 3510 mov r3 = 16 ;; // 069276 0080C0F00380 3511 ld8 r14 = [r15] // 069233 010800F00300 3512 mov sp = r15 // r12 = r15 } { .mmi 008080900240 3520 ld4 r9 = [r9] ;; // 069254 008080800840 3521 ld4 rqptr = [r8] // r33 = [r8] // 069248 0001880008C0 3522 mov r35 = rp // r35 = br0 // 069233 } { .mii 01CC30908000 3530 cmp4.eq pr0, pr6 = 4, r9 // 069254 010800100940 3531 mov r37 = gp ;; // r37 = r1 // 069233 0000B2100840 3532 sxt4 rqptr = rqptr // r33 = r33 // 069248 } { .mfb 000008000000 3540 nop.m 0 000008000000 3541 nop.f 0 00860000C006 3542 (pr6) br.cond.dpnt.many L$71 ;; // 069254 } { .mii 010800F80200 3550 adds r8 = 64, r15 // 069258 01200004E880 3551 mov qiofun = 39 ;; // r34 = 39 // 069261 010800F683C0 3552 adds r15 = 52, r15 ;; // 069258 } { .mii 008C80F10000 3560 st4 [r15] = r8 0119F8FFC200 3561 adds r8 = -2, r15 // 069257 0119F8FFC3C0 3562 adds r15 = -2, r15 ;; } { .mmi 01080086C200 3570 adds r8 = 54, r8 00AC40F00180 3571 st2 [r15] = r0, 6 000008000000 3572 nop.i 0 ;; } { .mmi 00BC88F11E00 3580 st4 [r15] = r8, -8 ;; // 069259 00BC48F07400 3581 st2 [r15] = r3, -48 // 069256 000008000000 3582 nop.i 0 ;; } { .mfb 000008000000 3590 nop.m 0 000008000000 3591 nop.f 0 008000017000 3592 br.sptk.many L$73 ;; // 069263 } 35A0 L$71: { .mfb 01CC30920000 35A0 cmp4.eq pr0, pr6 = 16, r9 // 069264 000008000000 35A1 nop.f 0 00860000C006 35A2 (pr6) br.cond.dpnt.many L$76 ;; } { .mii 010800C682C0 35B0 adds r11 = 52, sp // r11 = 52, r12 // 069268 010800C800C0 35B1 adds r3 = 64, sp // r3 = 64, r12 010800C60280 35B2 adds r10 = 48, sp // r10 = 48, r12 // 069266 } { .mmi 012000038200 35C0 mov r8 = 28 ;; Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 103 ProxyNetLocalPort 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 010800C64240 35C1 adds r9 = 50, sp // r9 = 50, r12 // 069267 010800C70880 35C2 adds r34 = 56, sp // r34 = 56, r12 // 069269 } { .mmi 008C80B06000 35D0 st4 [r11] = r3 ;; // 069268 008C40A10000 35D1 st2 [r10] = r8 // 069266 000008000000 35D2 nop.i 0 } { .mii 008C40900000 35E0 st2 [r9] = r0 // 069267 010800CD0240 35E1 adds r9 = 104, sp // r9 = 104, r12 // 069269 000008000000 35E2 nop.i 0 ;; } { .mib 008C82212000 35F0 st4 [r34] = r9 01280004E880 35F1 addl qiofun = 32807, r0 // r34 = 32807, r0 // 069271 00800000B000 35F2 br.sptk.many L$73 ;; // 069273 } 3600 L$76: { .mii 012000100A40 3600 add out3 = @ltoff($LITERAL$+24), // r41 = @ltoff($LITERAL$+24), r1 // 069274 gp 0120001009C0 3601 add out1 = // r39 = @ltoffx(ErrorSanityCheck), r1 @ltoffx(ErrorSanityCheck), gp 012000008640 3602 mov ai = 4 // r25 = 4 } { .mmi 012028048980 3610 mov out0 = 676 ;; // r38 = 676 0080C2900A00 3611 ld8 out2 = $LITERAL$ // r40 = [r41] 01203800EA40 3612 mov out3 = 903 // r41 = 903 } { .mfb 0080C27009C0 3620 ld8.mov out1 = [r39], ErrorSanityCheck 000008000000 3621 nop.f 0 00A000001000 3622 br.call.sptk.many rp = // br0 = ErrorExitVmsStatus ErrorExitVmsStatus ;; } { .mfi 010802500040 3630 mov gp = r37 // r1 = r37 000008000000 3631 nop.f 0 000008000000 3632 nop.i 0 } 3640 L$73: { .mii 01084A080800 3640 adds in0 = 1216, in0 // r32 = 1216, r32 // 069276 010800C20240 3641 adds r9 = 16, sp // r9 = 16, r12 010800C60200 3642 adds r8 = 48, sp ;; // r8 = 48, r12 // 069253 } { .mmi 0120001000C0 3650 add r3 = @ltoffx(EfnWait), gp // r3 = @ltoffx(EfnWait), r1 // 069276 008082000800 3651 ld4 in0 = [in0] // r32 = [r32] 010800C30280 3652 adds r10 = 24, sp ;; // r10 = 24, r12 } { .mii 0080C03000C0 3660 ld8.mov r3 = [r3], EfnWait 010800C402C0 3661 adds r11 = 32, sp // r11 = 32, r12 010800C50440 3662 adds r17 = 40, sp // r17 = 40, r12 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 104 ProxyNetLocalPort 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } { .mmi 012000018640 3670 mov ai = 12 ;; // r25 = 12 008CC0910000 3671 st8 [r9] = r8 0000B2000800 3672 sxt4 in0 = in0 // r32 = r32 } { .mii 008CC0A00000 3680 st8 [r10] = r0 012000000B40 3681 mov out7 = 0 ;; // r45 = 0 012000000B00 3682 mov out6 = 0 // r44 = 0 } { .mmi 0080803000C0 3690 ld4 r3 = EfnWait // r3 = [r3] 0080420009C0 3691 ld2 out1 = [in0] // r39 = [r32] 012000000AC0 3692 mov out5 = 0 ;; // r43 = 0 } { .mii 008CC0B00000 36A0 st8 [r11] = r0 0000B03000C0 36A1 sxt4 r3 = r3 012000000A80 36A2 mov out4 = 0 // r42 = 0 } { .mmi 010800CC0A40 36B0 adds out3 = 96, sp ;; // r41 = 96, r12 010800300980 36B1 mov out0 = r3 // r38 = r3 0000B2200A00 36B2 sxt4 out2 = qiofun // r40 = r34 } { .mfb 008CC1100000 36C0 st8 [r17] = r0 000008000000 36C1 nop.f 0 00A000001000 36C2 br.call.sptk.many rp = SYS$QIOW ;; // br0 = SYS$QIOW } { .mii 010800CC0800 36D0 adds in0 = 96, sp // r32 = 96, r12 // 069278 00A0308001C0 36D1 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0 010802500040 36D2 mov gp = r37 ;; // r1 = r37 // 069276 } { .mmi 008042000800 36E0 ld2 in0 = [in0] ;; // r32 = [r32] // 069278 010802000206 36E1 (pr6) mov status = in0 // r8 = r32 000008000000 36E2 nop.i 0 ;; } { .mib 000008000000 36F0 nop.m 0 00A040800240 36F1 tbit.z pr9, pr8 = status, 0 // pr9, pr8 = r8, 0 // 069279 00860000A008 36F2 (pr8) br.cond.dpnt.many L$78 ;; } { .mii 012000100A80 3700 add out4 = @ltoff($LITERAL$+24), // r42 = @ltoff($LITERAL$+24), r1 // 069281 gp 012000100880 3701 add r34 = @ltoff($LITERAL$+160), // r34 = @ltoff($LITERAL$+160), r1 gp 01200000A640 3702 mov ai = 5 // r25 = 5 } { .mmi 010802100980 3710 mov out0 = rqptr ;; // r38 = r33 0080C2A00A40 3711 ld8 out3 = $LITERAL$ // r41 = [r42] 01203801CA80 3712 mov out4 = 910 // r42 = 910 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 105 ProxyNetLocalPort 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } { .mib 0080C2200A00 3720 ld8 out2 = $LITERAL$ // r40 = [r34] 0000B08009C0 3721 sxt4 out1 = status // r39 = r8 00A000001000 3722 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed } { .mib 012000000200 3730 mov r8 = 0 // 069282 010802500040 3731 mov gp = r37 // r1 = r37 // 069281 008000009000 3732 br.sptk.many L$80 ;; // 069282 } 3740 L$78: // 069283 { .mii 010800C84800 3740 adds in0 = 66, sp // r32 = 66, r12 // 069288 012000002640 3741 mov ai = 1 // r25 = 1 000008000000 3742 nop.i 0 ;; } { .mfb 008042000980 3750 ld2 out0 = [in0] // r38 = [r32] 000008000000 3751 nop.f 0 00A000001000 3752 br.call.sptk.many rp = DECC$NTOHS ;; // br0 = DECC$NTOHS } { .mib 010802500040 3760 mov gp = r37 // r1 = r37 0000B0800200 3761 sxt4 r8 = r8 004000000000 3762 nop.b 0 ;; } 3770 L$80: { .mii 000008000000 3770 nop.m 0 000154048000 3771 mov.i rspfs = r36 ;; 000E00146000 3772 mov rp = r35 // br0 = r35 } { .mfb 010800CC0300 3780 adds sp = 96, sp // r12 = 96, r12 000008000000 3781 nop.f 0 000108001100 3782 br.ret.sptk.many rp ;; // br0 } .endp ProxyNetLocalPort Routine Size: 672 bytes, Routine Base: $CODE$ + 34F0 .proc ProxyNetSetAffinityCookie .align 32 .global ProxyNetSetAffinityCookie ProxyNetSetAffinityCookie: // 069296 { .mii 002C0071C940 3790 alloc r37 = rspfs, 1, 6, 7, 0 012010020380 3791 mov r14 = 272 01084A050200 3792 adds r8 = 1192, in0 // r8 = 1192, r32 // 069309 } { .mmi 0120001000C0 37A0 add r3 = @ltoff($LITERAL$+136), gp ;; // r3 = @ltoff($LITERAL$+136), r1 // 069315 010028E183C0 37A1 sub r15 = sp, r14 // r15 = r12, r14 // 069296 010800C00080 37A2 mov r2 = sp // r2 = r12 } { .mii Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 106 ProxyNetSetAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 0080C03000C0 37B0 ld8 r3 = $LITERAL$ // r3 = [r3] // 069315 0108420F8880 37B1 adds r34 = 1148, tkptr ;; // r34 = 1148, r32 // 069317 000188000900 37B2 mov r36 = rp // r36 = br0 // 069296 } { .mii 0080C0F00380 37C0 ld8 r14 = [r15] 010800F00300 37C1 mov sp = r15 // r12 = r15 01200000E640 37C2 mov ai = 7 ;; // r25 = 7 // 069315 } { .mii 008080800840 37D0 ld4 rqptr = [r8] // r33 = [r8] // 069309 012000100200 37D1 add r8 = @ltoff($LITERAL$+112), gp // r8 = @ltoff($LITERAL$+112), r1 // 069316 010802200B40 37D2 mov out6 = r34 // r45 = r34 // 069315 } { .mmi 010800300A80 37E0 mov out3 = r3 ;; // r42 = r3 0080C0800AC0 37E1 ld8 out4 = $LITERAL$ // r43 = [r8] // 069316 010800F20A40 37E2 adds out2 = 16, r15 // r41 = 16, r15 // 069315 } { .mii 012010000A00 37F0 mov out1 = 256 // r40 = 256 010800F309C0 37F1 adds out0 = 24, r15 ;; // r39 = 24, r15 01081A0D8B00 37F2 adds out5 = 492, tkptr // r44 = 492, r32 // 069316 } { .mib 010800100980 3800 mov r38 = gp // r38 = r1 // 069296 0000B2100840 3801 sxt4 rqptr = rqptr // r33 = r33 // 069309 00A000001000 3802 br.call.sptk.many rp = FaoToBuffer ;; // br0 = FaoToBuffer // 069315 } { .mii 010800C20800 3810 adds in0 = 16, sp // r32 = 16, r12 // 069319 012FF80FE8C0 3811 addl r35 = 65535, r0 000008000000 3812 nop.i 0 } { .mlx 012000004640 3820 mov ai = 2 // r25 = 2 8000000003FF 3821 movl r3 = 4294967295 ;; 019FFFDFC1 } { .mii 0080C2000800 3830 ld8 in0 = [in0] // r32 = [r32] 0108021009C0 3831 mov out0 = rqptr // r39 = r33 010802600040 3832 mov gp = r38 ;; // r1 = r38 // 069315 } { .mmi 010062046800 3840 and in0 = r35, in0 ;; // r32 = r35, r32 // 069319 010802002800 3841 adds in0 = 1, in0 // r32 = 1, r32 000008000000 3842 nop.i 0 ;; } { .mmi 0100603400C0 3850 and r3 = in0, r3 ;; // r3 = r32, r3 010800300A00 3851 mov out1 = r3 // r40 = r3 000008000000 3852 nop.i 0 } { .mfb 000008000000 3860 nop.m 0 000008000000 3861 nop.f 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 107 ProxyNetSetAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 00A000001000 3862 br.call.sptk.many rp = VmGetHeap ;; // br0 = VmGetHeap } { .mii 0108000000C0 3870 mov idx = r0 // r3 = r0 // 069320 01092A1A0800 3871 adds in0 = 4816, rqptr // r32 = 4816, r33 // 069322 010802600040 3872 mov gp = r38 ;; // r1 = r38 // 069319 } 3880 L$51: // 069320 { .mmi 00A082008240 3880 ld4 r9 = [in0], 4 ;; // r9 = [r32], 4 // 069322 01C4000121C0 3881 cmp4.eq pr7, pr0 = r9, r0 000008000000 3882 nop.i 0 } { .mfb 000008000000 3890 nop.m 0 000008000000 3891 nop.f 0 008600014007 3892 (pr7) br.cond.dpnt.many L$53 ;; } { .mii 00A082008280 38A0 ld4 r10 = [in0], 4 // r10 = [r32], 4 0108003020C0 38A1 adds r3 = 1, r3 ;; 0000B0A00280 38A2 sxt4 r10 = r10 ;; } { .mfb 01C440014240 38B0 cmp4.eq pr9, pr8 = r10, r0 000008000000 38B1 nop.f 0 008600010009 38B2 (pr9) br.cond.dpnt.many L$53 ;; } { .mii 00A0820082C0 38C0 ld4 r11 = [in0], 4 // r11 = [r32], 4 0108003020C0 38C1 adds r3 = 1, r3 ;; 0000B0B002C0 38C2 sxt4 r11 = r11 ;; } { .mfb 01C4000162C0 38D0 cmp4.eq pr11, pr0 = r11, r0 000008000000 38D1 nop.f 0 00860000C00B 38D2 (pr11) br.cond.dpnt.many L$53 ;; } { .mii 008082000440 38E0 ld4 r17 = [in0] // r17 = [r32] 0108003020C0 38E1 adds r3 = 1, r3 010842000480 38E2 adds r18 = 1024, in0 // r18 = 1024, r32 } { .mmi 010802008800 38F0 adds in0 = 4, in0 ;; // r32 = 4, r32 00CB01200000 38F1 lfetch [r18] 0000B1100440 38F2 sxt4 r17 = r17 ;; } { .mfb 01C400022340 3900 cmp4.eq pr13, pr0 = r17, r0 000008000000 3901 nop.f 0 00860000600D 3902 (pr13) br.cond.dpnt.many L$53 ;; } { .mii 0120000284C0 3910 mov r19 = 20 // 069320 0108003020C0 3911 adds r3 = 1, r3 ;; // 069322 018401306380 3912 cmp4.lt pr14, pr0 = idx, r19 // pr14, pr0 = r3, r19 // 069320 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 108 ProxyNetSetAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } { .bbb 0095FFFEC00E 3920 (pr14) br.cond.dptk.many L$51 004000000000 3921 nop.b 0 008000011000 3922 br.sptk.many L$57 ;; } 3930 L$53: // 069322 { .mii 010800C20500 3930 adds r20 = 16, sp // r20 = 16, r12 // 069324 0000B03000C0 3931 sxt4 r3 = idx // r3 = r3 010800C30A40 3932 adds out2 = 24, sp // r41 = 24, r12 } { .mmi 0108008009C0 3940 mov out0 = r8 ;; // r39 = r8 01008A1060C0 3941 shladd r3 = r3, 2, rqptr // r3 = r3, 2, r33 000008000000 3942 nop.i 0 ;; } { .mmi 0109283A00C0 3950 adds r3 = 4816, r3 ;; 008C80310000 3951 st4 [r3] = cptr // [r3] = r8 000008000000 3952 nop.i 0 ;; } { .mmi 0080C1400500 3960 ld8 r20 = [r20] ;; 010062328500 3961 and r20 = r20, r35 000008000000 3962 nop.i 0 ;; } { .mmi 010801402A00 3970 adds out1 = 1, r20 ;; // r40 = 1, r20 000008000000 3971 nop.m 0 0000B2800A00 3972 sxt4 out1 = out1 // r40 = r40 } { .mfb 000008000000 3980 nop.m 0 000008000000 3981 nop.f 0 00A000001000 3982 br.call.sptk.many rp = OTS$MOVE ;; // br0 = OTS$MOVE } { .mfi 010802600040 3990 mov gp = r38 // r1 = r38 000008000000 3991 nop.f 0 000008000000 3992 nop.i 0 } 39A0 L$57: // 069327 { .mmi 01C4300421C0 39A0 cmp4.eq pr7, pr6 = rqptr, r0 ;; // pr7, pr6 = r33, r0 // 069329 01C000001247 39A1 (pr7) cmp.eq.unc pr9, pr0 = r0, r0 01C000001206 39A2 (pr6) cmp.eq.unc pr8, pr0 = r0, r0 } { .bbb 008600002008 39B0 (pr8) br.cond.dpnt.many L$60 004000000000 39B1 nop.b 0 008600024009 39B2 (pr9) br.cond.dpnt.many L$61 ;; } 39C0 L$60: { .mii 012000100800 39C0 add in0 = @ltoff(Watch+124), gp // r32 = @ltoff(Watch+124), r1 01080A1D0840 39C1 adds r33 = 232, r33 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 109 ProxyNetSetAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 012002000280 39C2 addl r10 = 524288, r0 ;; } { .mmi 0080C2000800 39D0 ld8 in0 = Watch // r32 = [r32] 0080821002C0 39D1 ld4 r11 = [r33] 000008000000 39D2 nop.i 0 ;; } { .mii 0111620F08C0 39E0 and r35 = -8, in0 // r35 = -8, r32 01C460B00340 39E1 cmp4.eq pr13, pr12 = r0, r11 ;; 01C05A340000 39E2 cmp.eq pr0, pr11 = in0, r35 // pr0, pr11 = r32, r35 } { .mmi 00A0C2310240 39F0 ld8 r9 = Watch, 8 ;; // r9 = [r35], 8 000008000000 39F1 nop.m 0 009E100400CB 39F2 (pr11) dep r3 = Watch, r0, 3, 3 ;; // r3 = r32, r0, 3, 3 } { .mmi 0080C230020B 3A00 (pr11) ld8 r8 = Watch ;; // r8 = [r35] 000008000000 3A01 nop.m 0 00F20090624B 3A02 (pr11) shr.u r9 = r9, r3 } { .mmi 0101283800CB 3A10 (pr11) sub r3 = 64, r3 ;; 000008000000 3A11 nop.m 0 00F24031020B 3A12 (pr11) shl r8 = r8, r3 ;; } { .mmi 01007091024B 3A20 (pr11) or r9 = r8, r9 ;; 010060914240 3A21 and r9 = r10, r9 000008000000 3A22 nop.i 0 ;; } { .mmi 01C0009003C0 3A30 cmp.eq pr15, pr0 = r0, r9 ;; 01C20000034F 3A31 (pr15) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 3A32 nop.i 0 } { .mfb 000008000000 3A40 nop.m 0 000008000000 3A41 nop.f 0 00860001200D 3A42 (pr13) br.cond.dpnt.many L$61 ;; } { .mmi 01C000001180 3A50 cmp.eq.unc pr6, pr0 = r0, r0 ;; // 069330 01A000000188 3A51 (pr8) cmp.ltu pr6, pr0 = r0, r0 000008000000 3A52 nop.i 0 } { .bbb 008600002006 3A60 (pr6) br.cond.dpnt.many L$65 004000000000 3A61 nop.b 0 008000005000 3A62 br.sptk.many L$64 ;; } 3A70 L$65: { .mfi 0108000002C0 3A70 mov r11 = r0 000008000000 3A71 nop.f 0 000008000000 3A72 nop.i 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 110 ProxyNetSetAffinityCookie 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } 3A80 L$64: { .mii 012000100A40 3A80 add out2 = @ltoff($LITERAL$+24), // r41 = @ltoff($LITERAL$+24), r1 gp 012000100440 3A81 add r17 = @ltoff($LITERAL$+80), gp // r17 = @ltoff($LITERAL$+80), r1 01200000C640 3A82 mov ai = 6 ;; // r25 = 6 } { .mmi 0080C2900A00 3A90 ld8 out1 = $LITERAL$ // r40 = [r41] 0080C1100AC0 3A91 ld8 out4 = $LITERAL$ // r43 = [r17] 010802200B00 3A92 mov out5 = r34 ;; // r44 = r34 } { .mii 012002000A80 3AA0 addl out3 = 524288, r0 // r42 = 524288, r0 01203807EA40 3AA1 mov out2 = 959 // r41 = 959 0000B0B009C0 3AA2 sxt4 out0 = r11 // r39 = r11 } { .mfb 000008000000 3AB0 nop.m 0 000008000000 3AB1 nop.f 0 00A000001000 3AB2 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802600040 3AC0 mov gp = r38 // r1 = r38 000008000000 3AC1 nop.f 0 000008000000 3AC2 nop.i 0 } 3AD0 L$61: // 069332 { .mii 000008000000 3AD0 nop.m 0 00015404A000 3AD1 mov.i rspfs = r37 ;; 000E00148000 3AD2 mov rp = r36 // br0 = r36 } { .mfb 010810C20300 3AE0 adds sp = 272, sp // r12 = 272, r12 000008000000 3AE1 nop.f 0 000108001100 3AE2 br.ret.sptk.many rp ;; // br0 } .endp ProxyNetSetAffinityCookie Routine Size: 864 bytes, Routine Base: $CODE$ + 3790 .proc ProxyNetWrite .align 32 .global ProxyNetWrite ProxyNetWrite: // 069339 { .mii 002C00718940 3AF0 alloc r37 = rspfs, 4, 3, 5, 0 01084A0809C0 3AF1 adds out0 = 1216, in0 // r39 = 1216, r32 // 069357 000188000900 3AF2 mov r36 = rp ;; // r36 = br0 // 069339 } { .mii 0080827009C0 3B00 ld4 out0 = [out0] // r39 = [r39] // 069357 010800100980 3B01 mov r38 = gp // r38 = r1 // 069339 01200000A640 3B02 mov ai = 5 // r25 = 5 // 069357 } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 111 ProxyNetWrite 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mmi 010802200A80 3B10 mov out3 = DataPtr ;; // r42 = r34 010802000A40 3B11 mov out2 = tkptr // r41 = r32 0000B2300AC0 3B12 sxt4 out4 = DataLength // r43 = r35 } { .mib 010802100A00 3B20 mov out1 = AstFunction // r40 = r33 0000B27009C0 3B21 sxt4 out0 = out0 // r39 = r39 00A000001000 3B22 br.call.sptk.many rp = NetIoWrite ;; // br0 = NetIoWrite } { .mii 010802600040 3B30 mov gp = r38 // r1 = r38 0000B0800200 3B31 sxt4 r8 = r8 ;; 00015404A000 3B32 mov.i rspfs = r37 ;; } { .mib 000008000000 3B40 nop.m 0 000E00148000 3B41 mov rp = r36 // br0 = r36 000108001100 3B42 br.ret.sptk.many rp ;; // br0 } .endp ProxyNetWrite Routine Size: 96 bytes, Routine Base: $CODE$ + 3AF0 .proc ProxyNetRead .align 32 .global ProxyNetRead ProxyNetRead: // 069366 { .mii 002C00718940 3B50 alloc r37 = rspfs, 4, 3, 5, 0 01084A0809C0 3B51 adds out0 = 1216, in0 // r39 = 1216, r32 // 069383 000188000900 3B52 mov r36 = rp ;; // r36 = br0 // 069366 } { .mii 0080827009C0 3B60 ld4 out0 = [out0] // r39 = [r39] // 069383 010800100980 3B61 mov r38 = gp // r38 = r1 // 069366 01200000A640 3B62 mov ai = 5 // r25 = 5 // 069383 } { .mmi 010802200A80 3B70 mov out3 = DataPtr ;; // r42 = r34 010802000A40 3B71 mov out2 = tkptr // r41 = r32 0000B2300AC0 3B72 sxt4 out4 = DataSize // r43 = r35 } { .mib 010802100A00 3B80 mov out1 = AstFunction // r40 = r33 0000B27009C0 3B81 sxt4 out0 = out0 // r39 = r39 00A000001000 3B82 br.call.sptk.many rp = NetIoRead ;; // br0 = NetIoRead } { .mii 010802600040 3B90 mov gp = r38 // r1 = r38 0000B0800200 3B91 sxt4 r8 = r8 ;; 00015404A000 3B92 mov.i rspfs = r37 ;; } { .mib 000008000000 3BA0 nop.m 0 000E00148000 3BA1 mov rp = r36 // br0 = r36 000108001100 3BA2 br.ret.sptk.many rp ;; // br0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 112 ProxyNetRead 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 } .endp ProxyNetRead Routine Size: 96 bytes, Routine Base: $CODE$ + 3B50 .proc ProxyNetCloseSocket .align 32 .global ProxyNetCloseSocket ProxyNetCloseSocket: // 069391 { .mii 002C0061C900 3BB0 alloc r36 = rspfs, 1, 5, 8, 0 01084A080200 3BB1 adds r8 = 1216, in0 // r8 = 1216, r32 // 069404 0001880008C0 3BB2 mov r35 = rp ;; // r35 = br0 // 069391 } { .mii 008080800200 3BC0 ld4 r8 = [r8] // 069404 010800100940 3BC1 mov r37 = gp ;; // r37 = r1 // 069391 01C430010000 3BC2 cmp4.eq pr0, pr6 = r8, r0 // 069404 } { .mib 000008000000 3BD0 nop.m 0 0000B0800200 3BD1 sxt4 r8 = r8 008600004006 3BD2 (pr6) br.cond.dpnt.many L$30 ;; } { .mfb 012000002200 3BE0 mov r8 = 1 000008000000 3BE1 nop.f 0 008000051000 3BE2 br.sptk.many L$32 ;; } 3BF0 L$30: { .mmi 0080408000C0 3BF0 ld2 r3 = [r8] ;; // 069406 01C030300000 3BF1 cmp.eq pr0, pr6 = r0, r3 000008000000 3BF2 nop.i 0 } { .mfb 000008000000 3C00 nop.m 0 000008000000 3C01 nop.f 0 008600004006 3C02 (pr6) br.cond.dpnt.many L$33 ;; } { .mfb 012000002200 3C10 mov r8 = 1 000008000000 3C11 nop.f 0 00800004B000 3C12 br.sptk.many L$32 ;; } 3C20 L$33: { .mib 008040800980 3C20 ld2 out0 = [r8] // r38 = [r8] // 069408 012000002640 3C21 mov ai = 1 // r25 = 1 00A000001000 3C22 br.call.sptk.many rp = SYS$DASSGN ;; // br0 = SYS$DASSGN } { .mii 01C4300401C0 3C30 cmp4.eq pr7, pr6 = tkptr, r0 // pr7, pr6 = r32, r0 // 069412 01084A0800C0 3C31 adds r3 = 1216, in0 // r3 = 1216, r32 // 069410 010800800840 3C32 mov status = r8 // r33 = r8 // 069408 } { .mmi Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 113 ProxyNetCloseSocket 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 010802500040 3C40 mov gp = r37 ;; // r1 = r37 0080803000C0 3C41 ld4 r3 = [r3] // 069410 01C000001247 3C42 (pr7) cmp.eq.unc pr9, pr0 = r0, r0 // 069412 } { .mmi 01C000001206 3C50 (pr6) cmp.eq.unc pr8, pr0 = r0, r0 ;; 000008000000 3C51 nop.m 0 0000B03000C0 3C52 sxt4 r3 = r3 ;; // 069410 } { .mbb 008C40300000 3C60 st2 [r3] = r0 008600002008 3C61 (pr8) br.cond.dpnt.many L$35 // 069412 00860003E009 3C62 (pr9) br.cond.dpnt.many L$36 ;; } 3C70 L$35: { .mii 012000100280 3C70 add r10 = @ltoff(Watch+124), gp // r10 = @ltoff(Watch+124), r1 012002000500 3C71 addl r20 = 524288, r0 000008000000 3C72 nop.i 0 } { .mmi 008082000880 3C80 ld4 r34 = [in0] ;; // r34 = [r32] 0080C0A00280 3C81 ld8 r10 = Watch // r10 = [r10] 01C462200340 3C82 cmp4.eq pr13, pr12 = r0, r34 ;; } { .mmi 011160AF02C0 3C90 and r11 = -8, r10 ;; 01C058B14000 3C91 cmp.eq pr0, pr11 = r10, r11 000008000000 3C92 nop.i 0 } { .mmi 00A0C0B104C0 3CA0 ld8 r19 = Watch, 8 ;; // r19 = [r11], 8 000008000000 3CA1 nop.m 0 009E1001444B 3CA2 (pr11) dep r17 = Watch, r0, 3, 3 ;; // r17 = r10, r0, 3, 3 } { .mmi 0080C0B0048B 3CB0 (pr11) ld8 r18 = Watch ;; // r18 = [r11] 000008000000 3CB1 nop.m 0 00F2013224CB 3CB2 (pr11) shr.u r19 = r19, r17 } { .mmi 01012918044B 3CC0 (pr11) sub r17 = 64, r17 ;; 000008000000 3CC1 nop.m 0 00F24112448B 3CC2 (pr11) shl r18 = r18, r17 ;; } { .mmi 0100713244CB 3CD0 (pr11) or r19 = r18, r19 ;; 0100613284C0 3CD1 and r19 = r20, r19 000008000000 3CD2 nop.i 0 ;; } { .mmi 01C0013003C0 3CE0 cmp.eq pr15, pr0 = r0, r19 ;; 01C20000034F 3CE1 (pr15) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 3CE2 nop.i 0 } { .mfb 000008000000 3CF0 nop.m 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 114 ProxyNetCloseSocket 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 000008000000 3CF1 nop.f 0 00860002C00D 3CF2 (pr13) br.cond.dpnt.many L$36 ;; } { .mii 01081A0D8B00 3D00 adds out6 = 492, tkptr // r44 = 492, r32 // 069416 01080A068800 3D01 adds in0 = 180, in0 // r32 = 180, r32 0120020005C0 3D02 addl r23 = 524288, r0 ;; // 069418 } { .mib 008082000580 3D10 ld4 r22 = [in0] // r22 = [r32] // 069416 00A0321001C0 3D11 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r33, 0 // 069414 008600014007 3D12 (pr7) br.cond.dpnt.many L$39 ;; } { .mmi 01C000001240 3D20 cmp.eq.unc pr9, pr0 = r0, r0 ;; // 069415 01A000000248 3D21 (pr8) cmp.ltu pr9, pr0 = r0, r0 000008000000 3D22 nop.i 0 } { .mfb 000008000000 3D30 nop.m 0 000008000000 3D31 nop.f 0 008600004009 3D32 (pr9) br.cond.dpnt.many L$42 ;; } { .mfb 010802200600 3D40 mov r24 = r34 000008000000 3D41 nop.f 0 008000005000 3D42 br.sptk.many L$41 ;; } 3D50 L$42: { .mfi 010800000600 3D50 mov r24 = r0 000008000000 3D51 nop.f 0 000008000000 3D52 nop.i 0 } 3D60 L$41: { .mii 010801700A40 3D60 mov out3 = r23 // r41 = r23 012000100A00 3D61 add out2 = @ltoff($LITERAL$+24), // r40 = @ltoff($LITERAL$+24), r1 gp 0120001005C0 3D62 add r23 = @ltoff($LITERAL$+64), gp ;; // r23 = @ltoff($LITERAL$+64), r1 } { .mii 0080C28009C0 3D70 ld8 out1 = $LITERAL$ // r39 = [r40] 010802C00AC0 3D71 mov out5 = out6 // r43 = r44 01200000E640 3D72 mov ai = 7 // r25 = 7 } { .mmi 0080C1700A80 3D80 ld8 out4 = $LITERAL$ ;; // r42 = [r23] 012040028A00 3D81 mov out2 = 1044 // r40 = 1044 0000B1600B00 3D82 sxt4 out6 = r22 // r44 = r22 } { .mib 000008000000 3D90 nop.m 0 0000B1800980 3D91 sxt4 out0 = r24 // r38 = r24 00A000001000 3D92 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfb Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 115 ProxyNetCloseSocket 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 000008000000 3DA0 nop.m 0 000008000000 3DA1 nop.f 0 008000015000 3DA2 br.sptk.many L$397 ;; } 3DB0 L$39: // 069417 { .mmi 01C000001180 3DB0 cmp.eq.unc pr6, pr0 = r0, r0 ;; // 069418 01A000000188 3DB1 (pr8) cmp.ltu pr6, pr0 = r0, r0 000008000000 3DB2 nop.i 0 } { .mfb 000008000000 3DC0 nop.m 0 000008000000 3DC1 nop.f 0 008600004006 3DC2 (pr6) br.cond.dpnt.many L$45 ;; } { .mfb 010802200800 3DD0 mov in0 = r34 // r32 = r34 000008000000 3DD1 nop.f 0 008000005000 3DD2 br.sptk.many L$44 ;; } 3DE0 L$45: { .mfi 010800000800 3DE0 mov in0 = r0 // r32 = r0 000008000000 3DE1 nop.f 0 000008000000 3DE2 nop.i 0 } 3DF0 L$44: { .mii 0120001000C0 3DF0 add r3 = @ltoff($LITERAL$+40), gp // r3 = @ltoff($LITERAL$+40), r1 012000100A00 3DF1 add out2 = @ltoff($LITERAL$+24), // r40 = @ltoff($LITERAL$+24), r1 gp 010802C00AC0 3DF2 mov out5 = out6 ;; // r43 = r44 } { .mmi 0080C03000C0 3E00 ld8 r3 = $LITERAL$ // r3 = [r3] 0080C28009C0 3E01 ld8 out1 = $LITERAL$ // r39 = [r40] 012000010640 3E02 mov ai = 8 ;; // r25 = 8 } { .mii 010800300A80 3E10 mov out4 = r3 // r42 = r3 0000B2100B40 3E11 sxt4 out7 = status // r45 = r33 0000B1600B00 3E12 sxt4 out6 = r22 // r44 = r22 } { .mmi 010801700A40 3E20 mov out3 = r23 ;; // r41 = r23 01204002EA00 3E21 mov out2 = 1047 // r40 = 1047 0000B2000980 3E22 sxt4 out0 = in0 // r38 = r32 } { .mfb 000008000000 3E30 nop.m 0 000008000000 3E31 nop.f 0 00A000001000 3E32 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } 3E40 L$397: { .mfi 010802500040 3E40 mov gp = r37 // r1 = r37 000008000000 3E41 nop.f 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 116 ProxyNetCloseSocket 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 000008000000 3E42 nop.i 0 } 3E50 L$36: // 069420 { .mib 000008000000 3E50 nop.m 0 0000B2100200 3E51 sxt4 r8 = status // r8 = r33 // 069422 004000000000 3E52 nop.b 0 ;; } 3E60 L$32: { .mii 000008000000 3E60 nop.m 0 000154048000 3E61 mov.i rspfs = r36 ;; 000E00146000 3E62 mov rp = r35 // br0 = r35 } { .mfb 000008000000 3E70 nop.m 0 000008000000 3E71 nop.f 0 000108001100 3E72 br.ret.sptk.many rp ;; // br0 } .endp ProxyNetCloseSocket Routine Size: 720 bytes, Routine Base: $CODE$ + 3BB0 .proc ProxyNetInProgress .align 32 .global ProxyNetInProgress ProxyNetInProgress: // 069429 { .mii 002C00204840 3E80 alloc r33 = rspfs, 1, 1, 0, 0 01084A080200 3E81 adds r8 = 1216, in0 // r8 = 1216, r32 // 069441 000008000000 3E82 nop.i 0 ;; } { .mmi 008080800200 3E90 ld4 r8 = [r8] ;; 01C400010200 3E91 cmp4.eq pr8, pr0 = r8, r0 0000B0800200 3E92 sxt4 r8 = r8 } { .mfb 000008000000 3EA0 nop.m 0 000008000000 3EA1 nop.f 0 00860000C008 3EA2 (pr8) br.cond.dpnt.many L$25 ;; } { .mmi 010808880240 3EB0 adds r9 = 192, r8 ;; 008080900240 3EB1 ld4 r9 = [r9] 000008000000 3EB2 nop.i 0 ;; } { .mfb 01C448012000 3EC0 cmp4.eq pr0, pr9 = r9, r0 000008000000 3EC1 nop.f 0 008600006009 3EC2 (pr9) br.cond.dpnt.many L$26 ;; } { .mmi 010808858200 3ED0 adds r8 = 172, r8 ;; 008080800200 3ED1 ld4 r8 = [r8] 000008000000 3ED2 nop.i 0 ;; } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 117 ProxyNetInProgress 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mfb 01C400010300 3EE0 cmp4.eq pr12, pr0 = r8, r0 000008000000 3EE1 nop.f 0 00860000400C 3EE2 (pr12) br.cond.dpnt.many L$25 ;; } 3EF0 L$26: { .mfb 012000002200 3EF0 mov r8 = 1 000008000000 3EF1 nop.f 0 000108001100 3EF2 br.ret.sptk.many rp ;; // br0 // 069442 } 3F00 L$25: // 069441 { .mii 01080A038800 3F00 adds in0 = 156, in0 // r32 = 156, r32 // 069442 010800000200 3F01 mov r8 = r0 000008000000 3F02 nop.i 0 ;; } { .mmi 008082000800 3F10 ld4 in0 = [in0] ;; // r32 = [r32] 01C46A000000 3F11 cmp4.eq pr0, pr13 = r0, in0 // pr0, pr13 = r0, r32 000008000000 3F12 nop.i 0 ;; } { .mmi 01080000220D 3F20 (pr13) adds r8 = 1, r0 ;; 000008000000 3F21 nop.m 0 0000B0800200 3F22 sxt4 r8 = r8 } { .mfb 000008000000 3F30 nop.m 0 000008000000 3F31 nop.f 0 000108001100 3F32 br.ret.sptk.many rp ;; // br0 } .endp ProxyNetInProgress Routine Size: 192 bytes, Routine Base: $CODE$ + 3E80 .proc ProxyNetConnectSearch .align 32 .global ProxyNetConnectSearch ProxyNetConnectSearch: // 069455 { .mii 002C00B26A40 3F40 alloc r41 = rspfs, 1, 10, 8, 0 01084A080200 3F41 adds r8 = 1216, in0 // r8 = 1216, r32 // 069473 012000100840 3F42 add r33 = // r33 = @ltoffx(ProxyNetConnectCount), // 069475 @ltoffx(ProxyNetConnectCount), // r1 gp } { .mmi 01080A020240 3F50 adds r9 = 144, in0 ;; // r9 = 144, r32 // 069473 008080800200 3F51 ld4 r8 = [r8] 000188000A00 3F52 mov r40 = rp // r40 = br0 // 069455 } { .mii 0080C2100840 3F60 ld8.mov r33 = [r33], ProxyNetConnectCount // 069475 010800100A80 3F61 mov r42 = gp ;; // r42 = r1 // 069455 0000B0800200 3F62 sxt4 r8 = r8 // 069473 } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 118 ProxyNetConnectSearch 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mmi 008C80900000 3F70 st4 [r9] = r0 ;; 008C40800000 3F71 st2 [r8] = r0 000008000000 3F72 nop.i 0 ;; } { .mmi 0080821002C0 3F80 ld4 r11 = [r33] ;; // 069475 01C438B00000 3F81 cmp4.eq pr0, pr7 = r0, r11 000008000000 3F82 nop.i 0 } { .bbb 008600002007 3F90 (pr7) br.cond.dpnt.many L$3 004000000000 3F91 nop.b 0 00800008F000 3F92 br.sptk.many L$5 ;; } 3FA0 L$3: { .mmi 012000100440 3FA0 add r17 = // r17 = @ltoffx(ProxyNetConnectList), // 069477 @ltoffx(ProxyNetConnectList), // r1 gp ;; 0080C1100440 3FA1 ld8.mov r17 = [r17], ProxyNetConnectList 000008000000 3FA2 nop.i 0 ;; } { .mmi 008081100880 3FB0 ld4 leptr = ProxyNetConnectList ;; // r34 = [r17] 01C400044280 3FB1 cmp4.eq pr10, pr0 = leptr, r0 // pr10, pr0 = r34, r0 0000B2200880 3FB2 sxt4 leptr = leptr // r34 = r34 } { .mfb 000008000000 3FC0 nop.m 0 000008000000 3FC1 nop.f 0 00860008800A 3FC2 (pr10) br.cond.dpnt.many L$5 ;; } { .mfi 0108420F88C0 3FD0 adds r35 = 1148, tkptr // r35 = 1148, r32 // 069489 000008000000 3FD1 nop.f 0 000008000000 3FD2 nop.i 0 ;; } 3FE0 L$8: // 069477 { .mii 012000006640 3FE0 mov ai = 3 // r25 = 3 // 069489 012000028B40 3FE1 mov out2 = 20 // r45 = 20 010802300B00 3FE2 mov out1 = r35 // r44 = r35 } { .mfb 01080223CAC0 3FF0 adds out0 = 30, leptr // r43 = 30, r34 000008000000 3FF1 nop.f 0 00A000001000 3FF2 br.call.sptk.many rp = DECC$MEMCMP ;; // br0 = DECC$MEMCMP } { .mib 01C430800000 4000 cmp4.eq pr0, pr6 = r0, r8 010802A00040 4001 mov gp = r42 // r1 = r42 00860001A006 4002 (pr6) br.cond.dpnt.many L$9 ;; } { .mii 010802238980 4010 adds r38 = 28, r34 // 069491 01080A010900 4011 adds r36 = 136, in0 // r36 = 136, r32 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 119 ProxyNetConnectSearch 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 000008000000 4012 nop.i 0 ;; } { .mmi 00A0026029C0 4020 ld1 r39 = [r38], 1 008082400900 4021 ld4 r36 = [r36] 000008000000 4022 nop.i 0 ;; } { .mmi 0080026000C0 4030 ld1 r3 = [r38] ;; 000008000000 4031 nop.m 0 009BBA7060C0 4032 dep r3 = r3, r39, 8, 8 ;; } { .mfb 01C442406000 4040 cmp4.eq pr0, pr8 = r3, r36 000008000000 4041 nop.f 0 008600012008 4042 (pr8) br.cond.dpnt.many L$9 ;; } { .mii 010802230280 4050 adds r10 = 24, r34 // 069492 01084A048240 4051 adds r9 = 1188, in0 ;; // r9 = 1188, r32 // 069493 011160AF82C0 4052 and r11 = -4, r10 // 069492 } { .mmi 008080900240 4060 ld4 r9 = [r9] ;; // 069493 01C058B14280 4061 cmp.eq pr10, pr11 = r10, r11 // 069492 0000B0900240 4062 sxt4 r9 = r9 ;; // 069493 } { .mii 008080B004CA 4070 (pr10) ld4 r19 = [r11] // 069492 009E0801444B 4071 (pr11) dep r17 = r10, r0, 3, 2 0108009C0240 4072 adds r9 = 96, r9 ;; // 069493 } { .mmi 00A080B084CB 4080 (pr11) ld4 r19 = [r11], 4 ;; // 069492 008080B0048B 4081 (pr11) ld4 r18 = [r11] 00F2013224CB 4082 (pr11) shr.u r19 = r19, r17 } { .mmi 01012914044B 4090 (pr11) sub r17 = 32, r17 ;; 008080900240 4091 ld4 r9 = [r9] // 069493 000008000000 4092 nop.i 0 ;; } { .mii 000008000000 40A0 nop.m 0 00F24112448B 40A1 (pr11) shl r18 = r18, r17 ;; // 069492 0100713244CB 40A2 (pr11) or r19 = r18, r19 ;; } { .mii 000008000000 40B0 nop.m 0 0000913004CB 40B1 (pr11) zxt4 r19 = r19 ;; 01C400926340 40B2 cmp4.eq pr13, pr0 = r19, r9 } { .mfb 000008000000 40C0 nop.m 0 000008000000 40C1 nop.f 0 00860000800D 40C2 (pr13) br.cond.dpnt.many L$12 ;; } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 120 ProxyNetConnectSearch 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 40D0 L$9: // 069518 { .mmi 010802208880 40D0 adds r34 = 4, r34 ;; 008082200880 40D1 ld4 leptr = [r34] // r34 = [r34] // 069477 000008000000 40D2 nop.i 0 ;; } { .mib 01C470044000 40E0 cmp4.eq pr0, pr14 = leptr, r0 // pr0, pr14 = r34, r0 0000B2200880 40E1 sxt4 leptr = leptr // r34 = r34 0095FFFE000E 40E2 (pr14) br.cond.dptk.many L$8 ;; } { .mfb 000008000000 40F0 nop.m 0 000008000000 40F1 nop.f 0 008000063000 40F2 br.sptk.many L$5 ;; } 4100 L$12: // 069493 { .mii 010802264500 4100 adds r20 = 50, r34 // 069500 01084A080640 4101 adds ai = 1216, in0 ;; // r25 = 1216, r32 0111614F8540 4102 and r21 = -4, r20 ;; } { .mmi 01C039528180 4110 cmp.eq pr6, pr7 = r20, r21 ;; 008081500606 4111 (pr6) ld4 r24 = [r21] 009E08028587 4112 (pr7) dep r22 = r20, r0, 3, 2 ;; } { .mmi 00A081508607 4120 (pr7) ld4 r24 = [r21], 4 ;; 0080815005C7 4121 (pr7) ld4 r23 = [r21] 00F20182C607 4122 (pr7) shr.u r24 = r24, r22 } { .mmi 010129640587 4130 (pr7) sub r22 = 32, r22 ;; 000008000000 4131 nop.m 0 00F24162E5C7 4132 (pr7) shl r23 = r23, r22 ;; } { .mmi 01007182E607 4140 (pr7) or r24 = r23, r24 ;; 000008000000 4141 nop.m 0 0000B1800600 4142 sxt4 r24 = r24 ;; } { .mii 008C81930000 4150 st4 [ai] = r24 // [r25] = r24 010809870600 4151 adds r24 = 184, r24 // 069502 000008000000 4152 nop.i 0 ;; } { .mmi 008081800600 4160 ld4 r24 = [r24] ;; 01C400030240 4161 cmp4.eq pr9, pr0 = r24, r0 000008000000 4162 nop.i 0 } { .mfb 000008000000 4170 nop.m 0 000008000000 4171 nop.f 0 008600006009 4172 (pr9) br.cond.dpnt.many L$14 ;; } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 121 ProxyNetConnectSearch 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mib 012000002640 4180 mov ai = 1 // r25 = 1 // 069503 010802000AC0 4181 mov out0 = tkptr // r43 = r32 00A000001000 4182 br.call.sptk.many rp = // br0 = SesolaNetSetProxyTask SesolaNetSetProxyTask ;; } { .mfi 010802A00040 4190 mov gp = r42 // r1 = r42 000008000000 4191 nop.f 0 000008000000 4192 nop.i 0 } 41A0 L$14: { .mii 010802220940 41A0 adds r37 = 16, r34 // 069505 01080A0200C0 41A1 adds r3 = 144, in0 // r3 = 144, r32 012000004640 41A2 mov ai = 2 ;; // r25 = 2 // 069507 } { .mii 0111625F8980 41B0 and r38 = -4, r37 // 069505 012000100AC0 41B1 add out0 = // r43 = @ltoffx(ProxyNetConnectList), // 069507 @ltoffx(ProxyNetConnectList), // r1 gp 010802200B00 41B2 mov out1 = leptr ;; // r44 = r34 } { .mmi 01C03A64A180 41C0 cmp.eq pr6, pr7 = r37, r38 // 069505 0080C2B00AC0 41C1 ld8.mov out0 = [r43], ProxyNetConnectList // 069507 000008000000 41C2 nop.i 0 ;; } { .mib 0080826008C6 41D0 (pr6) ld4 r35 = [r38] // 069505 009E0804A9C7 41D1 (pr7) dep r39 = r37, r0, 3, 2 004000000000 41D2 nop.b 0 ;; } { .mmi 00A0826088C7 41E0 (pr7) ld4 r35 = [r38], 4 ;; 008082600907 41E1 (pr7) ld4 r36 = [r38] 00F20234E8C7 41E2 (pr7) shr.u r35 = r35, r39 } { .mmi 01012A7409C7 41F0 (pr7) sub r39 = 32, r39 ;; 000008000000 41F1 nop.m 0 00F242748907 41F2 (pr7) shl r36 = r36, r39 ;; } { .mmi 0100723488C7 4200 (pr7) or r35 = r36, r35 ;; 000008000000 4201 nop.m 0 0000923008C7 4202 (pr7) zxt4 r35 = r35 ;; } { .mmi 0108023028C0 4210 adds r35 = 1, r35 ;; 008C80346000 4211 st4 [r3] = r35 000008000000 4212 nop.i 0 } { .mfb 000008000000 4220 nop.m 0 000008000000 4221 nop.f 0 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 122 ProxyNetConnectSearch 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 00A000001000 4222 br.call.sptk.many rp = ListRemove ;; // br0 = ListRemove // 069507 } { .mii 008082100900 4230 ld4 r36 = [r33] // 069508 010802A00040 4231 mov gp = r42 ;; // r1 = r42 // 069507 01C4024001C0 4232 cmp4.eq pr7, pr0 = r0, r36 // 069508 } { .mfb 000008000000 4240 nop.m 0 000008000000 4241 nop.f 0 008600004007 4242 (pr7) br.cond.dpnt.many L$16 ;; } { .mmi 0119FA4FE900 4250 adds r36 = -1, r36 ;; 008C82148000 4251 st4 [r33] = r36 000008000000 4252 nop.i 0 } 4260 L$16: { .mii 012000100AC0 4260 add out0 = // r43 = // 069509 @ltoffx(ProxyNetConnectFreeList), // @ltoffx(ProxyNetConnectFreeList), r1 gp 012000006640 4261 mov ai = 3 ;; // r25 = 3 012000016B40 4262 mov out2 = 11 // r45 = 11 } { .mib 0080C2B00AC0 4270 ld8.mov out0 = [r43], ProxyNetConnectFreeList 010802200B00 4271 mov out1 = leptr // r44 = r34 00A000001000 4272 br.call.sptk.many rp = ListAddTail ;; // br0 = ListAddTail } { .mii 010802A00040 4280 mov gp = r42 // r1 = r42 01C4300401C0 4281 cmp4.eq pr7, pr6 = tkptr, r0 ;; // pr7, pr6 = r32, r0 // 069512 012000100940 4282 add r37 = // r37 = // 069510 @ltoffx(ProxyNetConnectFreeCount), // @ltoffx(ProxyNetConnectFreeCount), gp // r1 } { .mii 01C000001247 4290 (pr7) cmp.eq.unc pr9, pr0 = r0, r0 // 069512 01C000001206 4291 (pr6) cmp.eq.unc pr8, pr0 = r0, r0 000008000000 4292 nop.i 0 ;; } { .mmi 0080C2500940 42A0 ld8.mov r37 = [r37], ProxyNetConnectFreeCount ;; // 069510 008082500980 42A1 ld4 r38 = [r37] 000008000000 42A2 nop.i 0 ;; } { .mmi 010802602980 42B0 adds r38 = 1, r38 ;; 008C8254C000 42B1 st4 [r37] = r38 000008000000 42B2 nop.i 0 } { .bbb 008600002008 42C0 (pr8) br.cond.dpnt.many L$17 // 069512 004000000000 42C1 nop.b 0 008600028009 42C2 (pr9) br.cond.dpnt.many L$5 ;; } Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 123 ProxyNetConnectSearch 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 42D0 L$17: { .mii 0120001009C0 42D0 add r39 = @ltoff(Watch+124), gp // r39 = @ltoff(Watch+124), r1 0120020000C0 42D1 addl r3 = 524288, r0 000008000000 42D2 nop.i 0 } { .mmi 008082000240 42E0 ld4 r9 = [in0] ;; // r9 = [r32] 0080C27009C0 42E1 ld8 r39 = Watch // r39 = [r39] 01C460900340 42E2 cmp4.eq pr13, pr12 = r0, r9 ;; } { .mmi 0111627F08C0 42F0 and r35 = -8, r39 ;; 01C05A34E000 42F1 cmp.eq pr0, pr11 = r39, r35 000008000000 42F2 nop.i 0 } { .mmi 00A0C2310880 4300 ld8 r34 = Watch, 8 ;; // r34 = [r35], 8 000008000000 4301 nop.m 0 009E1004E84B 4302 (pr11) dep r33 = Watch, r0, 3, 3 ;; // r33 = r39, r0, 3, 3 } { .mmi 0080C230090B 4310 (pr11) ld8 r36 = Watch ;; // r36 = [r35] 000008000000 4311 nop.m 0 00F20224288B 4312 (pr11) shr.u r34 = r34, r33 } { .mmi 01012A18084B 4320 (pr11) sub r33 = 64, r33 ;; 000008000000 4321 nop.m 0 00F24214890B 4322 (pr11) shl r36 = r36, r33 ;; } { .mmi 01007224888B 4330 (pr11) or r34 = r36, r34 ;; 0100622060C0 4331 and r3 = r3, r34 000008000000 4332 nop.i 0 ;; } { .mmi 01C0003003C0 4340 cmp.eq pr15, pr0 = r0, r3 ;; 01C20000034F 4341 (pr15) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 4342 nop.i 0 } { .mfb 000008000000 4350 nop.m 0 000008000000 4351 nop.f 0 00860001600D 4352 (pr13) br.cond.dpnt.many L$5 ;; } { .mmi 01C000001180 4360 cmp.eq.unc pr6, pr0 = r0, r0 ;; // 069513 01A000000188 4361 (pr8) cmp.ltu pr6, pr0 = r0, r0 000008000000 4362 nop.i 0 } { .bbb 008600002006 4370 (pr6) br.cond.dpnt.many L$22 004000000000 4371 nop.b 0 008000005000 4372 br.sptk.many L$21 ;; } 4380 L$22: Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 124 ProxyNetConnectSearch 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 { .mfi 010800000240 4380 mov r9 = r0 000008000000 4381 nop.f 0 000008000000 4382 nop.i 0 } 4390 L$21: { .mii 01080A020C00 4390 adds out5 = 144, in0 // r48 = 144, r32 01080A068C80 4391 adds out7 = 180, in0 // r50 = 180, r32 012000100B40 4392 add out2 = @ltoff($LITERAL$+24), // r45 = @ltoff($LITERAL$+24), r1 gp ;; } { .mmi 008083000C00 43A0 ld4 out5 = [out5] // r48 = [r48] 008083200C80 43A1 ld4 out7 = [out7] // r50 = [r50] 0120001002C0 43A2 add r11 = @ltoffx($LITERAL$), gp ;; // r11 = @ltoffx($LITERAL$), r1 // 069514 } { .mmi 0080C2D00B00 43B0 ld8 out1 = $LITERAL$ // r44 = [r45] // 069513 0080C0B00BC0 43B1 ld8.mov out4 = [r11], $LITERAL$ // 069514 012000010640 43B2 mov ai = 8 ;; // r25 = 8 // 069513 } { .mii 012002000B80 43C0 addl out3 = 524288, r0 // r46 = 524288, r0 0000B3200C80 43C1 sxt4 out7 = out7 // r50 = r50 0000B3000C00 43C2 sxt4 out5 = out5 // r48 = r48 } { .mmi 0120400ECB40 43D0 mov out2 = 1142 ;; // r45 = 1142 01081A0D8C40 43D1 adds out6 = 492, tkptr // r49 = 492, r32 // 069516 0000B0900AC0 43D2 sxt4 out0 = r9 // r43 = r9 // 069513 } { .mfb 000008000000 43E0 nop.m 0 000008000000 43E1 nop.f 0 00A000001000 43E2 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802A00040 43F0 mov gp = r42 // r1 = r42 000008000000 43F1 nop.f 0 000008000000 43F2 nop.i 0 } 4400 L$5: // 069522 { .mii 000008000000 4400 nop.m 0 000154052000 4401 mov.i rspfs = r41 ;; 000E00150000 4402 mov rp = r40 // br0 = r40 } { .mfb 000008000000 4410 nop.m 0 000008000000 4411 nop.f 0 000108001100 4412 br.ret.sptk.many rp ;; // br0 } .endp ProxyNetConnectSearch Routine Size: 1248 bytes, Routine Base: $CODE$ + 3F40 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 125 ProxyNetConnectSearch 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 .common ProxyNetConnectCount, 4, 1 .common ProxyNetConnectCountMax, 4, 1 .common ProxyNetConnectFreeCount, 4, 1 .common ProxyNetConnectTimeoutDelta, 8, 1 .common ProxyNetConnectList, 12, 1 .common ProxyNetConnectFreeList, 12, 1 .psect $READONLY$, CON, LCL, SHR, NOEXE, NOWRT, NOVEC, NOSHORT .lcomm _SIG_EMPTY_SET, 8, 8 .lcomm _SIG_FULL_SET, 8, 8 .psect $LITERAL$, CON, LCL, SHR, NOEXE, NOWRT, NOVEC, NOSHORT 53524550 0000 string "PERSISTENT !UL !AZ,!UL\X00" 45545349 0004 2120544E 0008 21204C55 000C 212C5A41 0010 004C55 0014 584F5250 0018 string "PROXYNET\X00" 54454E59 001C 00 0020 534F4C43 0028 string "CLOSE !AZ,!UL !&S\X00" 41212045 002C 55212C5A 0030 2621204C 0034 0053 0038 534F4C43 0040 string "CLOSE !AZ,!UL\X00" 41212045 0044 55212C5A 0048 004C 004C 49464641 0050 string "AFFINITY cookie set to !&I\X00" 5954494E 0054 6F6F6320 0058 2065696B 005C 20746573 0060 21206F74 0064 004926 0068 44534157 0070 string "WASDproxyAffinity_\X00" 786F7270 0074 66664179 0078 74696E69 007C 005F79 0080 215A4121 0088 string "!AZ!AZ=!&I; path=/;\X00" 213D5A41 008C 203B4926 0090 68746170 0094 003B2F3D 0098 786F7250 00A0 string "ProxyNetLocalPort()\X00" 74654E79 00A4 61636F4C 00A8 726F506C 00AC Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 126 ProxyNetConnectSearch 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 00292874 00B0 4E4E4F43 00B8 string "CONNECT !&I,!UL as !&I\X00" 20544345 00BC 2C492621 00C0 204C5521 00C4 21207361 00C8 004926 00CC 00000000 00D0 string "\X00\X00\X00\X00\X00\X00\X00\X00\X00\X00\X00\X00\X00\X00\X00\X00\X00" 00000000 00D4 00000000 00D8 00000000 00DC 00 00E0 54534F48 00E8 string "HOST-LOOKUP !AZ !&S\X00" 4F4F4C2D 00EC 2050554B 00F0 205A4121 00F4 00532621 00F8 49464641 0100 string "AFFINITY hint not in cache\X00" 5954494E 0104 6E696820 0108 6F6E2074 010C 6E692074 0110 63616320 0114 006568 0118 49464641 0120 string "AFFINITY hint not correct\X00" 5954494E 0124 6E696820 0128 6F6E2074 012C 6F632074 0130 63657272 0134 0074 0138 6B6F6F63 0140 string "cookie\X00" 006569 0144 003E 0148 string ">\X00" 49464641 0150 string "AFFINITY with !AZ\X00" 5954494E 0154 74697720 0158 41212068 015C 005A 0160 54534F48 0168 string "HOST-PROXY-CHAIN !AZ\X00" 4F52502D 016C 432D5958 0170 4E494148 0174 5A412120 0178 00 017C 45494C43 0180 string "CLIENT SSL not configured\X00" 5320544E 0184 Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 127 ProxyNetConnectSearch 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 6E204C53 0188 6320746F 018C 69666E6F 0190 65727567 0194 0064 0198 4E4E4F43 01A0 string "CONNECTED !&I,!UL as !&I !AZ\X00" 45544345 01A4 26212044 01A8 55212C49 01AC 7361204C 01B0 49262120 01B4 5A412120 01B8 00 01BC 4E4E4F43 01C0 string "CONNECT !&S\X00" 20544345 01C4 00532621 01C8 .psect $READONLY$, CON, LCL, SHR, NOEXE, NOWRT, NOVEC, NOSHORT _SIG_EMPTY_SET: 00 0000 .repeat 8 data1 0x00 .endr _SIG_FULL_SET: FF 0008 data1 0xFF FF 0009 data1 0xFF FF 000A data1 0xFF FF 000B data1 0xFF FF 000C data1 0xFF FF 000D data1 0xFF FF 000E data1 0xFF FF 000F data1 0xFF .psect .sdata, CON, LCL, NOSHR, NOEXE, WRT, NOVEC, SHORT UseFullDuplexClose: 00000001 0000 data4 0x1 // data4 1 .global ToLowerCase .global ProxyConnectTimeoutSeconds .section .data .type DECC$MEMCMP, @function .global DECC$MEMCMP .section .data .type TcpIpNameToAddress, @function .global TcpIpNameToAddress .global Watch .section .data .type WatchThis, @function .global WatchThis .section .data .type DECC$STRLEN, @function .global DECC$STRLEN .section .data .type TcpIpStringToAddress, @function .global TcpIpStringToAddress .section .data Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 128 ProxyNetConnectSearch 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 .type DictRemove, @function .global DictRemove .section .data .type TcpIpCacheAddressToName, @function .global TcpIpCacheAddressToName .section .data .type DECC$STRCMP, @function .global DECC$STRCMP .section .data .type MsgFor, @function .global MsgFor .section .data .type ErrorGeneral, @function .global ErrorGeneral .section .data .type ErrorVmsStatus, @function .global ErrorVmsStatus .section .data .type ProxyEnd, @function .global ProxyEnd .global TcpIpDeviceDsc .section .data .type SYS$ASSIGN, @function .global SYS$ASSIGN .section .data .type OTS$ZERO, @function .global OTS$ZERO .section .data .type OTS$MOVE, @function .global OTS$MOVE .global ErrorSanityCheck .section .data .type ErrorExitVmsStatus, @function .global ErrorExitVmsStatus .global TcpIpSocket4 .global TcpIpSocket6 .global EfnWait .global TcpIpFullDuplexCloseOption .section .data .type SYS$QIOW, @function .global SYS$QIOW .section .data .type SYS$DASSGN, @function .global SYS$DASSGN .section .data .type DECC$HTONS, @function .global DECC$HTONS .section .data .type SYS$SETIMR, @function .global SYS$SETIMR .global EfnNoWait .section .data .type SYS$QIO, @function .global SYS$QIO .section .data .type SysDclAst, @function .global SysDclAst Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 129 ProxyNetConnectSearch 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 .section .data .type SYS$CANCEL, @function .global SYS$CANCEL .section .data .type SYS$CANTIM, @function .global SYS$CANTIM .section .data .type InstanceMutexLock, @function .global InstanceMutexLock .global ProxyAccountingPtr .section .data .type InstanceMutexUnLock, @function .global InstanceMutexUnLock .section .data .type OTS$FILL, @function .global OTS$FILL .section .data .type TcpIpCacheSetEntry, @function .global TcpIpCacheSetEntry .section .data .type TcpIpCacheNameToAddress, @function .global TcpIpCacheNameToAddress .section .data .type ProxySocks5Reply, @function .global ProxySocks5Reply .section .data .type NetGetBgDevice, @function .global NetGetBgDevice .global LoggingProxyLocalPort .section .data .type TcpIpSocketMaxQio, @function .global TcpIpSocketMaxQio .section .data .type ProxyTunnelChainConnect, @function .global ProxyTunnelChainConnect .section .data .type SesolaNetClientBegin, @function .global SesolaNetClientBegin .section .data .type ProxyTunnelBegin, @function .global ProxyTunnelBegin .section .data .type ProxyWriteRequest, @function .global ProxyWriteRequest .section .data .type ErrorNoticed, @function .global ErrorNoticed .section .data .type DECC$NTOHS, @function .global DECC$NTOHS .section .data .type FaoToBuffer, @function .global FaoToBuffer .section .data .type VmGetHeap, @function .global VmGetHeap .section .data Machine Code Listing 10-MAR-2025 11:48:38 VSI C V7.4-001-50L7J Page 130 ProxyNetConnectSearch 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxynet.c;1 .type NetIoWrite, @function .global NetIoWrite .section .data .type NetIoRead, @function .global NetIoRead .section .data .type SesolaNetSetProxyTask, @function .global SesolaNetSetProxyTask .section .data .type ListRemove, @function .global ListRemove .section .data .type ListAddTail, @function .global ListAddTail Command Line ------- ---- CC/DECC/STAND=RELAXED_ANSI/PREFIX=ALL/NAMES=AS_IS/OPTIMIZE/LIST/MACHINE/NODEBUG /WARNING=(NOINFORM,DISABLE=(PREOPTW))/FLOAT=IEEE/IEEE=DENORM/DEFINE=(WASD_VMS_V 7,SESOLA,WATCH_CAT=1,WATCH_MOD=0,WASD_ACME=1,WASD_GETSPI=1)/OBJ=[.obj_IA64]Prox yNet ProxyNet.c Hardware: /ARCHITECTURE=GENERIC /OPTIMIZE=TUNE=GENERIC These macros are in effect at the start of the compilation. ----- ------ --- -- ------ -- --- ----- -- --- ------------ WASD_VMS_V7=1 __G_FLOAT=0 __DECC=1 vms=1 VMS=1 __32BITS=1 __PRAGMA_ENVIRONMENT=1 WATCH_CAT=1 __ia64__=1 __CRTL_VER=80500000 __vms_version="V8.4-2L3" CC$gfloat=0 __X_FLOAT=1 WASD_GETSPI=1 vms_version="V8.4-2L3" __DATE__="Mar 10 2025" __STDC_VERSION__=199901L __DECC_MODE_RELAXED=1 __DECC_VER=70490001 __VMS=1 WASD_ACME=1 VMS_VERSION="V8.4-2L3" __IEEE_FLOAT=1 __VMS_VERSION="V8.4-2L3" SESOLA=1 __TIME__="11:48:38" __ia64=1 __VMS_VER=80421222 __BIASED_FLT_ROUNDS=2 __INITIAL_POINTER_SIZE=0 WATCH_MOD=0 __STDC__=2 _IEEE_FP=1 __LANGUAGE_C__=1 __vms=1 __D_FLOAT=0