Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 1 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 1 /*****************************************************************************/ 2 /* 3 ProxyTunnel.c 4 5 ************* 6 ** CAUTION ** 7 ************* 8 9 THIS MODULE IS TASK-ORIENTED, NOT REQUEST-ORIENTED. 10 11 12 WASD supports the CONNECT method which effectively allows tunnelling of RAW 13 octets through the proxy server. This facility is most commonly used to allow 14 secure SSL connections to be established with hosts on the 'other side' of the 15 proxy server. This basic mechanism is also used by WASD to provide an extended 16 range of tunnelling services. The term 'RAW' is used here to indicate a raw 17 8 bit, bidirectional, asynchronous exchange of octets between two entities, as 18 a protocol family, not necessarily as an application (but can be so). 19 20 The mapping SET proxy=tunnel=request= effectively allows requests to be 21 generated and sent to remote tunnel targets allowing straight-forward mapping 22 at the remote end. See example 7. 23 24 25 1. [ServiceProxyTunnel] CONNECT 26 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 27 A service with this configuration is used as a target for CONNECT proxying 28 (usually SSL through a firewall). The client expects an HTTP success (200) 29 response once the remote connection is established, and HTTP error response if 30 there is a problem, and once established just relays RAW octets through the 31 proxy server (classic CONNECT behaviour). 32 33 # WASD_CONFIG_SERVICE 34 [[http://*:8080]] 35 [ServiceProxy] enabled 36 [ServiceProxyTunnel] connect 37 38 # WASD_CONFIG_MAP 39 [[*:8080]] 40 if (request-method:connect) 41 pass *:443 *:443 42 endif 43 pass "403" 44 45 This configuration enables CONNECT processing and limits any connect to SSL 46 tunneling (i.e. port 443 on the remote system). 47 48 49 2. [ServiceProxyTunnel] RAW 50 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 51 This allows any raw octet client (e.g. telnet) to connect to the port and by 52 mapping be tunnelled to another host and port to connect to it's service (e.g. 53 a telnet service). The usual HTTP responses associated with CONNECT processing 54 are not provided. 55 56 # WASD_CONFIG_SERVICE 57 [[http://*:10023]] Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 2 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 58 [ServiceProxy] enabled 59 [ServiceProxyTunnel] raw 60 61 # WASD_CONFIG_MAP 62 [[*:10023]] 63 if (request-method:connect) 64 pass *:0 raw://another.host:23 65 endif 66 pass "403" 67 68 Telnet is used in the example above but the principle equally applies to any 69 protocol that uses a raw 8 bit, bidirectional, asynchronous exchange of 70 octets. Another example might be an SMTP service (port 25). 71 72 73 3. RAW via a CHAINED PROXY 74 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 This is basically the same as the RAW tunnel described in 2 above except that 76 it shows a tunnel being established through an up-stream, chained proxy. It 77 relies of that proxy allowing a CONNECT to the destination host and more 78 importantly port required for the tunnel. Not all CONNECT proxy will allow 79 this - it's quite common to restrict CONNECT to port 443. This chained proxy 80 configuration is also supported for FIREWALL tunnelling. 81 82 # WASD_CONFIG_SERVICE 83 [[http://*:10025]] 84 [ServiceProxy] enabled 85 [ServiceProxyTunnel] raw 86 87 # WASD_CONFIG_MAP 88 [[*:10025]] 89 if (request-method:connect) 90 pass *:0 raw://another.host:25 proxy=chain=proxy.host:8080 91 endif 92 pass "403" 93 94 Any error in connecting to the chained proxy, making the request, connecting to 95 the destination, etc. (i.e. any error at all) is not reported. The network 96 connection is just dropped. Use WATCH to establish the cause if necessary. 97 98 99 4. [ServiceProxyTunnel] FIREWALL 100 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 101 With this configuration a service expects that the first line of text from the 102 client contains a host name (or IP address) and optional port (e.g. 103 "the.host.name" or "the.host.name:23"). This allows a variable destination to 104 be mapped. The usual HTTP responses associated with CONNECT processing are not 105 provided. 106 107 # WASD_CONFIG_SERVICE 108 [[http://*:10023]] 109 [ServiceProxy] enabled 110 [ServiceProxyTunnel] FIREWALL 111 112 # WASD_CONFIG_MAP 113 [[*:10023]] 114 if (request-method:connect) Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 3 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 115 pass *:* raw://*:23 116 pass * raw://*:23 117 endif 118 pass "403" 119 120 The pass rules force the supplied domain name (and optional port) to be mapped 121 to the telnet port (23). Of course the mapping rules could allow the supplied 122 port to be mapped into the destination if desired. 123 124 125 5. ENCRYPTED TUNNEL 126 ~~~~~~~~~~~~~~~~~~~ 127 Up to this point the tunnels have merely been through the proxy server. It is 128 possible to establish and maintain ENCRYPTED TUNNELS between WASD servers. SSL 129 is used for this purpose. This is slightly more complex as both ends of the 130 tunnel need to be configured. 131 132 +------------+ +------------+ 133 <-unencrypted->| WASD proxy |<-ENCRYPTED->| WASD proxy |<-unencrypted-> 134 +------------+ +------------+ 135 136 This arrangement may be used for any stream-oriented, network protocol between 137 two WASD systems. As it uses standard CONNECT requests (over SSL) it MAY also 138 be possible to be configured between WASD and non-WASD servers. 139 140 The following example is going to maintain an encrypted tunnel between WASD 141 servers running on systems KLAATU and GORT. It is designed to allow a user on 142 KLAATU to connect to a specified port using a telnet client, and have a telnet 143 session created on GORT, tunnelled between the two systems via an SSL encrypted 144 connection. 145 146 Source of tunnel: 147 148 # KLAATU WASD_CONFIG_SERVICE 149 [[http://*:10023]] 150 [ServiceProxy] enabled 151 [ServiceClientSSL] ENABLED 152 [ServiceProxyTunnel] RAW 153 154 # KLAATU WASD_CONFIG_MAP 155 [[*:10023]] 156 # if the client is on the local subnet 157 if (remote-addr:192.168.0.0/24 && request-method:connect) 158 pass *:0 https://gort.domain:10443 timeout=none,none,none 159 endif 160 pass "403" 161 162 Destination of tunnel: 163 164 # GORT WASD_CONFIG_SERVICE 165 [[https://*:10443]] 166 [ServiceProxy] enabled 167 [ServiceProxyTunnel] CONNECT 168 169 # GORT WASD_CONFIG_MAP 170 [[*:10443]] 171 # limit the connection to a specific host Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 4 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 172 if (remote-addr:192.168.0.10 && request-method:connect) 173 pass *:0 raw://gort.domain:23 timeout=none,none,none 174 endif 175 pass "403" 176 177 When a client connects to the service provided by port 10023 on system KLAATU 178 the connection is immediately processed using a pseudo CONNECT request header. 179 The service on this port is a proxy allowed to initiate SSL connections (client 180 SSL). This service is mapped to system GORT port 10443, an SSL service that 181 allows the CONNECT method (tunnelling). KLAATU's proxy initiates an SSL 182 connection with GORT. When established and the CONNECT request from KLAATU is 183 received, it is mapped via a raw tunnel (8 bit, etc.) to it's own system port 184 23 (the telnet service). Telnet is in use at both ends while encrypted by SSL 185 inbetween! Note the use of network addresses and general fail rules used to 186 control access to this service, as well as the disabling of timers that might 187 otherwise shutdown the tunnel. 188 189 190 6. ENCRYPTED TUNNEL WITH AUTHENTICATION 191 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 192 This arrangement is essentially a variation on example 4. It provides a 193 cryptographic authentication of the originator (source) of the tunnel. 194 195 Source of tunnel: 196 197 # KLAATU WASD_CONFIG_SERVICE 198 [[http://*:10023]] 199 [ServiceProxy] enabled 200 [ServiceClientSSL] enabled 201 [ServiceProxyTunnel] RAW 202 [ServiceClientSSLcert] WASD_LOCAL:HTTPD.PEM 203 204 # KLAATU WASD_CONFIG_MAP 205 [[*:10023]] 206 # if the client is on the local subnet 207 if (remote-addr:192.168.0.0/24 && request-method:connect) 208 pass *:0 https://gort.domain:10443 timeout=none,none,none 209 endif 210 pass "403" 211 212 Destination of tunnel: 213 214 # GORT WASD_CONFIG_SERVICE 215 [[https://*:10443]] 216 [ServiceProxy] enabled 217 [ServiceProxyTunnel] CONNECT 218 [ServiceProxyAuth] ENABLED 219 220 # GORT WASD_CONFIG_MAP 221 [[*:10443]] 222 # we'll be relying on X509 authentication 223 if (request-method:connect) 224 pass *:0 raw://gort.domain:23 timeout=none,none,none 225 endif 226 pass "403" 227 228 # GORT WASD_CONFIG_AUTH Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 5 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 229 [[*:10443]] 230 [X509] 231 * r+w,param="[VF:OPTIONAL]",~4EAB3CBC735F8C7977EBB41D45737E37 232 233 This works by configuring the destination service to insist on proxy 234 authorization. The authorization realm is X509 which causes the destination to 235 demand a certificate from the source. The fingerprint of this certificate is 236 checked against the authorization rule before the connection is a allowed to 237 procede. 238 239 240 7. RAW via a CHAINED PROXY and ENCRYPTED TUNNEL 241 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 This is similar to the RAW tunnel described in 2 above except that it shows a 243 tunnel being established through an up-stream, chained proxy to an SSL service 244 at the destination. 245 246 +------------+ +-------------+ +------------+ 247 <--PT-->| WASD proxy |<--CT-->| chain proxy |<--CT-->| WASD proxy |<--PT--> 248 +------------+ +-------------+ +------------+ 249 250 This example shows a TELNET (plaintext, PT) service being transfered encrypted 251 (ciphertext, CT) between the two WASD servers. The plain-text is private even 252 to the chained-proxy. This example uses the standard SSL port 443 and relies 253 on capabilities available with WASD v10.1 and later. 254 255 Source of tunnel: 256 257 # BARADA WASD_CONFIG_SERVICE 258 [[http://*:10023]] 259 [ServiceProxy] enabled 260 [ServiceProxyTunnel] raw 261 [ServiceClientSSL] enabled 262 263 # BARADA WASD_CONFIG_MAP 264 [[*:10023]] 265 if (request-method:connect) 266 pass *:0 https://nikto.domain:443 proxy=chain=proxy.host:8080 \ 267 proxy=tunnel=request="CONNECT telnet" 268 endif 269 pass "403" 270 271 Any error in connecting to the chained proxy, making the request, connecting to 272 the destination, etc. (i.e. any error at all) is not reported. The network 273 connection is just dropped. Use WATCH to establish the cause if necessary. 274 275 Destination of tunnel: 276 277 # NIKTO WASD_CONFIG_SERVICE 278 [[https://*:443]] 279 280 # NIKTO WASD_CONFIG_MAP 281 [[*:443]] 282 if (request-method:CONNECT && request-uri:TELNET) 283 pass *:0 raw://nikto.domain:23 timeout=none,none,none 284 endif 285 Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 6 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 286 287 USAGE EXAMPLE 1 288 --------------- 289 This is a real-world example used to allow a Mail client (in this case Mozilla 290 mail, aka Thunderbird) to connect securely to an IMAP and an SMTP server (which 291 don't natively support SSL) via a WASD tunnel. 292 293 Thunderbird settings: 294 295 IMAP ... Server Settings ... Use Secure Connection (SSL) ... checked 296 (that's the port 993). 297 298 Outgoing Server (SMTP) ... Use Secure Connection ... SSL ... checked 299 (that's the port 465). 300 301 WASD configuration: 302 303 # WASD_CONFIG_SERVICE 304 # 305 # SSL->IMAP service 306 [[https://*:993]] 307 [ServiceProxy] enabled 308 [ServiceProxyTunnel] RAW 309 # 310 # SSL->SMTP service 311 [[https://*:465]] 312 [ServiceProxy] enabled 313 [ServiceProxyTunnel] RAW 314 315 # WASD_CONFIG_MAP 316 # 317 # SSL->IMAP service 318 [[*:993]] 319 if (request-method:connect) 320 pass *:0 raw://imap.host.name:143 321 endif 322 pass "403" 323 # 324 # SSL->SMTP service 325 [[*:465]] 326 if (request-method:connect) 327 pass *:0 raw://smtp.host.name:25 328 endif 329 pass "403" 330 331 332 VERSION HISTORY 333 --------------- 334 28-MAR-2024 MGD ProxyTunnelLogicalName() prepend new value 335 ProxyTunnelLogicalName() WASD_TUNNEL_SECONDS >= 15 336 bugfix; ProxyTunnelLogicalName() SYSNAM for PSL$C_EXEC 337 30-JUL-2022 MGD bugfix; ProxyTunnelLogicalName(NULL) from HttpdTick() 338 23-MAY-2022 MGD bugfix; ProxyTunnelBegin() not ProxyTunnelRebuildRequest() 339 PROXY_TUNNEL_HTTP and PROXY_TUNNEL_HTTPS should NetRead() 340 15-AUG-2020 MGD ProxyTunnelRequestParse() limit -> munge of the request 341 19-NOV-2019 MGD ProxyTunnelBegin() support for reimplemented SHARE_SSH 342 02-SEP-2018 MGD ProxyTunnelNetReadAst() "X-Forwarded-For:" from RequestGet() Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 7 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 343 26-JUL-2018 MGD ProxyTunnelLogicalName() workaround for page pool leakage(?) 344 05-MAR-2018 MGD ProxyTunnelLogicalName() WASD_TUNNEL_SECONDS 345 24-JAN-2018 MGD ProxyTunnelLogicalName() 346 30-MAY-2016 MGD ProxyTunnelRequestParse() append mapped path for logging 347 11-AUG-2015 MGD restructure of network I/O abstractions 348 30-NOV-2010 MGD ProxyTunnelNetReadAst() on error proactively close socket 349 07-SEP-2010 MGD ProxyTunnelNetReadAst() inject a request 350 ProxyTunnelRebuildRequest() absorb header for tunnel upgrade 351 11-JAN-2010 JPP bugfix; ProxyTunnelReadAst() data count tx 352 26-MAY-2007 MGD ProxyTunnel..() provide for SSL client connections 353 03-SEP-2006 MGD ProxyTunnelChainConnect() and ProxyTunnelChainConnectAst() 354 to implement raw tunnelling through an intermediate proxy 355 10-AUG-2004 MGD 'tunnelling' concept generalises CONNECT method 356 */ 357 /*****************************************************************************/ 358 359 #ifdef WASD_VMS_V7 360 #undef _VMS__V6__SOURCE 361 #define _VMS__V6__SOURCE 362 #undef __VMS_VER 363 #define __VMS_VER 70000000 364 #undef __CRTL_VER 365 #define __CRTL_VER 70000000 366 #endif 367 368 /* standard C header files */ 369 #include 1284 #include 1495 #include 2577 #include 3050 3051 /* VMS related header files */ 3052 #include 4118 #include 4653 #include 6529 #include 6674 #include 6798 #include 11162 #include 11458 11459 /* application-related header files */ 11460 #include "wasd.h" 68900 68901 #define WASD_MODULE "PROXYTUNNEL" 68902 68903 #define TUNNEL_LOGNAM_TEST 0 68904 68905 /******************/ 68906 /* global storage */ 68907 /******************/ 68908 68909 PROXY_ACCOUNTING_STRUCT *ProxyAccountingPtr; 68910 68911 /********************/ 68912 /* external storage */ 68913 /********************/ 68914 Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 8 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 68915 extern BOOL ProxyServingEnabled; 68916 68917 extern int HttpdTickSecond; 68918 68919 extern char ErrorSanityCheck[], 68920 SoftwareID[]; 68921 68922 extern ulong SysNamPrvMask[]; 68923 68924 extern ACCOUNTING_STRUCT *AccountingPtr; 68925 extern CONFIG_STRUCT Config; 68926 extern MSG_STRUCT Msgs; 68927 extern PROXY_ACCOUNTING_STRUCT *ProxyAccountingPtr; 68928 extern WATCH_STRUCT Watch; 68929 68930 /*****************************************************************************/ 68931 /* 68932 ************ 68933 *** NOTE *** This function takes a pointer to a request!!! 68934 ************ 68935 68936 HTTP CONNECT method (allows SSL connections through proxy system). 68937 Parse the host name and optional port from the request. 68938 */ 68939 68940 ProxyTunnelRequestParse (REQUEST_STRUCT *rqptr) 68941 1 68942 { 1 68943 int in, len, out; 1 68944 PROXY_TASK *tkptr; 1 68945 char *cptr, *sptr, *zptr; 1 68946 1 68947 /*********/ 1 68948 /* begin */ 1 68949 /*********/ 1 68950 1 68951 if (WATCHMOD (rqptr, WATCH_MOD_PROXY)) 1 68952 WatchThis (WATCHITM(rqptr), WATCH_MOD_PROXY, 1 68953 "ProxyTunnelRequestParse() !&Z", rqptr->MappedPathPtr); 1 68954 1 68955 /* if these two are different then */ 1 68956 if (strcmp (rqptr->rqHeader.RequestUriPtr, rqptr->MappedPathPtr)) 2 68957 { 2 68958 /* append the mapped tunnel to the request URI for logging purposes */ 2 68959 len = strlen(rqptr->MappedPathPtr) + rqptr->rqHeader.RequestUriLength + 2; 2 68960 cptr = rqptr->rqHeader.RequestUriPtr; 2 68961 sptr = rqptr->rqHeader.RequestUriPtr = VmGetHeap (rqptr, len); 2 68962 while (*cptr) *sptr++ = *cptr++; 2 68963 *sptr++ = '-'; 2 68964 *sptr++ = '>'; 2 68965 for (cptr = rqptr->MappedPathPtr; *cptr; *sptr++ = *cptr++); 1 68966 } 1 68967 1 68968 /*******************/ 1 68969 /* WASD tunnelling */ 1 68970 /*******************/ 1 68971 Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 9 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 1 68972 tkptr = rqptr->ProxyTaskPtr; 1 68973 1 68974 cptr = rqptr->MappedPathPtr; 1 68975 1 68976 /* a pragmatic extension to the usual syntax allowed in CONNECT requests */ 1 68977 if (strsame (cptr, "http://", 7)) 2 68978 { 2 68979 /* unencrypted octets (expect HTTP response from remote) */ 2 68980 tkptr->ProxyTunnel = PROXY_TUNNEL_HTTP; 2 68981 cptr += 7; 1 68982 } 1 68983 else 1 68984 if (strsame (cptr, "https://", 8)) 2 68985 { 2 68986 /* encrypted octets (expect HTTP response from remote) */ 2 68987 tkptr->ProxyTunnel = PROXY_TUNNEL_HTTPS; 2 68988 cptr += 8; 1 68989 } 1 68990 else 1 68991 if (strsame (cptr, "raw://", 6)) 2 68992 { 2 68993 /* raw octets (expect NO HTTP response from remote) */ 2 68994 tkptr->ProxyTunnel = PROXY_TUNNEL_RAW; 2 68995 cptr += 6; 1 68996 } 1 68997 else 1 68998 if (strsame (cptr, "socks5://", 9)) 2 68999 { 2 69000 /* more raw octets */ 2 69001 tkptr->ProxyTunnel = PROXY_TUNNEL_RAW; 2 69002 cptr += 9; 1 69003 } 1 69004 else 2 69005 { 2 69006 /* yet more raw octets, without CONNECT response */ 2 69007 tkptr->ProxyTunnel = PROXY_TUNNEL_CONNECT; 1 69008 } 1 69009 1 69010 /**************/ 1 69011 /* accounting */ 1 69012 /**************/ 1 69013 1 69014 /* [service-in][proxy-out] (array indices from zero of course!) */ 1 69015 in = rqptr->ServicePtr->ProxyTunnel; 1 69016 if (in) in--; /* just in case */ 1 69017 out = tkptr->ProxyTunnel - 1; 1 69018 InstanceMutexLock (INSTANCE_MUTEX_HTTPD); 1 69019 ProxyAccountingPtr->TunnelCurrent++; 1 69020 ProxyAccountingPtr->TunnelCount[in][out]++; 1 69021 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 1 69022 1 69023 /*************************/ 1 69024 /* get server host name */ 1 69025 /*************************/ 1 69026 1 69027 zptr = (sptr = tkptr->RequestHostName) + sizeof(tkptr->RequestHostName)-1; 1 69028 while (*cptr && *cptr != ':' && *cptr != '/' && sptr < zptr) Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 10 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 1 69029 *sptr++ = *cptr++; 1 69030 1 69031 if (sptr >= zptr || (*cptr && *cptr != ':')) 2 69032 { 2 69033 InstanceGblSecIncrLong (&AccountingPtr->RequestErrorCount); 2 69034 rqptr->rqResponse.HttpStatus = 502; 2 69035 ErrorGeneral (rqptr, MsgFor(rqptr,MSG_REQUEST_FORMAT), FI_LI); 2 69036 return (STS$K_ERROR); 1 69037 } 1 69038 *sptr = '\0'; 1 69039 1 69040 /******************************/ 1 69041 /* get (optional) server port */ 1 69042 /******************************/ 1 69043 1 69044 if (*cptr == ':') 2 69045 { 2 69046 cptr++; 2 69047 if (isdigit(*cptr)) 3 69048 { 3 69049 zptr = (sptr = tkptr->RequestPortString) + 3 69050 sizeof(tkptr->RequestPortString)-1; 3 69051 while (*cptr && isdigit(*cptr) && sptr < zptr) *sptr++ = *cptr++; 3 69052 if (sptr >= zptr) 4 69053 { 4 69054 InstanceGblSecIncrLong (&AccountingPtr->RequestErrorCount); 4 69055 rqptr->rqResponse.HttpStatus = 502; 4 69056 ErrorGeneral (rqptr, MsgFor(rqptr,MSG_REQUEST_FORMAT), FI_LI); 4 69057 return (STS$K_ERROR); 3 69058 } 3 69059 *sptr = '\0'; 3 69060 tkptr->RequestPort = atol (tkptr->RequestPortString); 2 69061 } 2 69062 else 3 69063 { 3 69064 tkptr->RequestPort = 443; 3 69065 memcpy (tkptr->RequestPortString, "443", 4); 2 69066 } 1 69067 } 1 69068 else 2 69069 { 2 69070 tkptr->RequestPort = 443; 2 69071 memcpy (tkptr->RequestPortString, "443", 4); 1 69072 } 1 69073 1 69074 /****************************/ 1 69075 /* build host name and port */ 1 69076 /****************************/ 1 69077 1 69078 zptr = (sptr = tkptr->RequestHostPort) + sizeof(tkptr->RequestHostPort); 1 69079 for (cptr = tkptr->RequestHostName; 1 69080 *cptr && sptr < zptr; 1 69081 *sptr++ = *cptr++); 1 69082 if (sptr < zptr) *sptr++ = ':'; 1 69083 for (cptr = tkptr->RequestPortString; 1 69084 *cptr && sptr < zptr; 1 69085 *sptr++ = *cptr++); Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 11 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 1 69086 if (sptr >= zptr) 2 69087 { 2 69088 rqptr->rqResponse.HttpStatus = 500; 2 69089 ErrorGeneralOverflow (rqptr, FI_LI); 2 69090 return (STS$K_ERROR); 1 69091 } 1 69092 *sptr = '\0'; 1 69093 tkptr->RequestHostPortLength = sptr - tkptr->RequestHostPort; 1 69094 1 69095 if (WATCHMOD (rqptr, WATCH_MOD_PROXY)) 1 69096 WatchDataFormatted ("!&Z !UL !&Z !&Z\n", 1 69097 tkptr->RequestHostName, 1 69098 tkptr->RequestPort, tkptr->RequestPortString, 1 69099 tkptr->RequestHostPort); 1 69100 1 69101 return (SS$_NORMAL); 1 69102 } 69103 69104 /****************************************************************************/ 69105 /* 69106 When explicitly tunnelling using HTTP or HTTPS use the request header line 69107 ("CONNECT host:port HTTP/1.1") to rebuild a request header containing the 69108 original host specification provided in that request line but this time with 69109 the proxied remote host in the "Host:" field. 69110 */ 69111 69112 int ProxyTunnelRebuildRequest (PROXY_TASK *tkptr) 69113 1 69114 { 1 69115 #define STRCAT(string) \ 1 69116 for (cptr = string; *cptr && sptr < zptr; *sptr++ = *cptr++); 1 69117 1 69118 char *cptr, *sptr, *zptr; 1 69119 REQUEST_STRUCT *rqptr; 1 69120 1 69121 /*********/ 1 69122 /* begin */ 1 69123 /*********/ 1 69124 1 69125 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69126 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 1 69127 "ProxyTunnelRebuildRequest()"); 1 69128 1 69129 rqptr = tkptr->RequestPtr; 1 69130 1 69131 if (rqptr->rqHeader.UpgradeWASDtunnel) 2 69132 { 2 69133 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 2 69134 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 2 69135 "Upgrade: WASD-tunnel"); 2 69136 2 69137 tkptr->RebuiltRequestPtr = ""; 2 69138 tkptr->RebuiltRequestLength = 0; 2 69139 return (SS$_NORMAL); 1 69140 } 1 69141 1 69142 tkptr->RebuiltRequestPtr = sptr = Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 12 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 1 69143 VmGetHeap (rqptr, rqptr->rqHeader.RequestHeaderLength + 512); 1 69144 zptr = sptr + rqptr->rqHeader.RequestHeaderLength + 512; 1 69145 1 69146 for (cptr = rqptr->rqHeader.RequestHeaderPtr; 1 69147 *cptr && NOTEOL(*cptr) && sptr < zptr; 1 69148 *sptr++ = *cptr++); 1 69149 STRCAT ("\r\nUser-Agent: "); 1 69150 STRCAT (SoftwareID); 1 69151 STRCAT ("\r\nHost: "); 1 69152 STRCAT (tkptr->ConnectHostPortPtr); 1 69153 STRCAT ("\r\nX-Forwarded-For: "); 1 69154 STRCAT (&rqptr->ClientPtr->IpAddressString); 1 69155 STRCAT ("\r\n\r\n"); 1 69156 1 69157 if (sptr >= zptr) 2 69158 { 2 69159 rqptr->rqResponse.HttpStatus = 500; 2 69160 ErrorGeneralOverflow (rqptr, FI_LI); 2 69161 return (STS$K_ERROR); 1 69162 } 1 69163 *sptr = '\0'; 1 69164 tkptr->RebuiltRequestLength = sptr - tkptr->RebuiltRequestPtr; 1 69165 1 69166 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69167 WatchDataFormatted ("!&Z", tkptr->RebuiltRequestPtr); 1 69168 1 69169 return (SS$_NORMAL); 1 69170 1 69171 #undef STRCAT 1 69172 } 69173 69174 /****************************************************************************/ 69175 /* 69176 Begin processing appropriate to the mode of tunneling being employed. This 69177 includes vanilla HTTP CONNECT method processing as well as where this proxy 69178 chains to another. Called from ProxyNetHostConnectAst() or 69179 SesolaNetClientConnect(). 69180 */ 69181 69182 ProxyTunnelBegin (PROXY_TASK *tkptr) 69183 1 69184 { 1 69185 char *aptr, *cptr, *sptr, *zptr; 1 69186 DICT_ENTRY_STRUCT *denptr; 1 69187 REQUEST_STRUCT *rqptr; 1 69188 1 69189 /*********/ 1 69190 /* begin */ 1 69191 /*********/ 1 69192 1 69193 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69194 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 1 69195 "ProxyTunnelBegin() !UL", tkptr->ProxyTunnel); 1 69196 1 69197 rqptr = tkptr->RequestPtr; 1 69198 1 69199 if (!tkptr->TunnelEstablished) Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 13 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 2 69200 { 2 69201 tkptr->TunnelEstablished = true; 2 69202 2 69203 if (WATCHING (tkptr, WATCH_PROXY)) 3 69204 { 3 69205 switch (tkptr->ProxyTunnel) 4 69206 { 4 69207 case PROXY_TUNNEL_CONNECT : cptr = "CONNECT"; break; 4 69208 case PROXY_TUNNEL_HTTP : cptr = "HTTP"; break; 4 69209 case PROXY_TUNNEL_HTTPS : cptr = "HTTPS"; break; 4 69210 case PROXY_TUNNEL_RAW : 4 69211 if (rqptr->rqHeader.UpgradeSocks5Ptr) 4 69212 cptr = "RAW/SOCKS5"; 4 69213 else 4 69214 cptr = "RAW"; 4 69215 break; 4 69216 default : cptr = "?"; 3 69217 } 3 69218 WatchThis (WATCHITM(tkptr), WATCH_PROXY, 3 69219 "TUNNEL (!AZ) established", cptr); 2 69220 } 2 69221 2 69222 if (rqptr->rqHeader.UpgradeSocks5Ptr) 2 69223 ProxySocks5Reply (rqptr, SOCKS5_REPLY_SUCCESS); 2 69224 2 69225 ProxyTunnelLogicalName (tkptr); 1 69226 } 1 69227 1 69228 if (rqptr->rqPathSet.ProxyTunnelRequestLength) 2 69229 { 2 69230 if (!tkptr->TunnelRequestGenerated) 3 69231 { 3 69232 if (WATCHING (tkptr, WATCH_PROXY)) 3 69233 WatchThis (WATCHITM(rqptr), WATCH_PROXY, "TUNNEL=REQUEST !AZ", 3 69234 rqptr->rqPathSet.ProxyTunnelRequestPtr); 3 69235 3 69236 aptr = sptr = 3 69237 VmGetHeap (rqptr, rqptr->rqPathSet.ProxyTunnelRequestLength+128); 3 69238 for (cptr = rqptr->rqPathSet.ProxyTunnelRequestPtr; 3 69239 *cptr; 3 69240 *sptr++ = *cptr++); 3 69241 if (!strstr (aptr, "HTTP/1.")) 3 69242 for (cptr = " HTTP/1.0\r\n"; *cptr; *sptr++ = *cptr++); 3 69243 for (cptr = "Upgrade: WASD-tunnel; "; *cptr; *sptr++ = *cptr++); 3 69244 for (cptr = SoftwareID; *cptr; *sptr++ = *cptr++); 3 69245 for (cptr = "\r\n\r\n"; *cptr; *sptr++ = *cptr++); 3 69246 3 69247 /* AST back to this same function */ 3 69248 ProxyNetWrite (tkptr, &ProxyTunnelBegin, aptr, sptr-aptr); 3 69249 3 69250 tkptr->TunnelRequestGenerated = true; 3 69251 return; 2 69252 } 1 69253 } 1 69254 1 69255 TcpIpSocketMaxQio (tkptr->NetIoPtr); 1 69256 Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 14 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 1 69257 if (tkptr->ProxyTunnel == PROXY_TUNNEL_CONNECT) 2 69258 { 2 69259 /* CONNECT success response needs to be returned to the client */ 2 69260 ResponseHeader (rqptr, tkptr->ResponseStatusCode, 2 69261 NULL, -1, NULL, NULL); 2 69262 denptr = ResponseDictHeader (rqptr); 2 69263 /* ensure this is performed as a data (not header) write */ 2 69264 rqptr->rqResponse.HeaderSent = true; 2 69265 NetWrite (rqptr, &ProxyTunnelConnectResponseAst, 2 69266 DICT_GET_VALUE(denptr), DICT_GET_VALUE_LEN(denptr)); 2 69267 return; 1 69268 } 1 69269 1 69270 if (tkptr->ProxyTunnel == PROXY_TUNNEL_HTTP) 2 69271 { 2 69272 /* rebuild the CONNECT request */ 2 69273 ProxyTunnelRebuildRequest (tkptr); 2 69274 2 69275 /* send the request on through the tunnel */ 2 69276 if (tkptr->RebuiltRequestLength) 2 69277 ProxyNetWrite (tkptr, &ProxyTunnelWriteAst, 2 69278 tkptr->RebuiltRequestPtr, 2 69279 tkptr->RebuiltRequestLength); 2 69280 else 2 69281 NetRead (rqptr, &ProxyTunnelNetReadAst, 2 69282 rqptr->rqNet.ReadBufferPtr, 2 69283 rqptr->rqNet.ReadBufferSize); 2 69284 2 69285 /* queue a read direct from the tunneled-to service */ 2 69286 ProxyNetRead (tkptr, &ProxyTunnelReadAst, 2 69287 tkptr->ResponseBufferPtr, tkptr->ResponseBufferSize); 2 69288 return; 1 69289 } 1 69290 1 69291 if (tkptr->ProxyTunnel == PROXY_TUNNEL_HTTPS) 2 69292 { 2 69293 /* rebuild the CONNECT request */ 2 69294 ProxyTunnelRebuildRequest (tkptr); 2 69295 2 69296 /* send the request on through the tunnel */ 2 69297 if (tkptr->RebuiltRequestLength) 2 69298 ProxyNetWrite (tkptr, &ProxyTunnelWriteAst, 2 69299 tkptr->RebuiltRequestPtr, 2 69300 tkptr->RebuiltRequestLength); 2 69301 else 2 69302 NetRead (rqptr, &ProxyTunnelNetReadAst, 2 69303 rqptr->rqNet.ReadBufferPtr, 2 69304 rqptr->rqNet.ReadBufferSize); 2 69305 2 69306 /* queue a read direct from the tunneled-to service */ 2 69307 NetIoRead (tkptr->NetIoPtr, &ProxyTunnelReadAst, tkptr, 2 69308 tkptr->ResponseBufferPtr, tkptr->ResponseBufferSize); 2 69309 return; 1 69310 } 1 69311 1 69312 if (tkptr->ProxyTunnel == PROXY_TUNNEL_RAW) 2 69313 { Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 15 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 2 69314 if (rqptr->rqHeader.Method == HTTP_METHOD_SHARE_SSH && 2 69315 !MATCH8 (rqptr->rqNet.ReadBufferPtr, "SSH-(timeout)")) 2 69316 /* write the client SSH ident string to the server */ 2 69317 ProxyNetWrite (tkptr, &ProxyTunnelWriteAst, 2 69318 rqptr->rqNet.ReadBufferPtr, 2 69319 rqptr->NetIoPtr->ReadCount); 2 69320 else 2 69321 /* queue a read direct from the client */ 2 69322 NetRead (rqptr, &ProxyTunnelNetReadAst, 2 69323 rqptr->rqNet.ReadBufferPtr, 2 69324 rqptr->rqNet.ReadBufferSize); 2 69325 2 69326 /* queue a read direct from the tunneled-to service */ 2 69327 ProxyNetRead (tkptr, &ProxyTunnelReadAst, 2 69328 tkptr->ResponseBufferPtr, tkptr->ResponseBufferSize); 2 69329 return; 1 69330 } 1 69331 1 69332 if (tkptr->ProxyTunnel == PROXY_TUNNEL_FIREWALL) 2 69333 { 2 69334 /* CONNECT success response needs to be returned to the client */ 2 69335 ResponseHeader (rqptr, tkptr->ResponseStatusCode, 2 69336 NULL, -1, NULL, NULL); 2 69337 denptr = ResponseDictHeader (rqptr); 2 69338 /* ensure this is performed as a data (not header) write */ 2 69339 rqptr->rqResponse.HeaderSent = true; 2 69340 NetWrite (rqptr, &ProxyTunnelConnectResponseAst, 2 69341 DICT_GET_VALUE(denptr), DICT_GET_VALUE_LEN(denptr)); 2 69342 return; 1 69343 } 1 69344 1 69345 ErrorExitVmsStatus (SS$_BUGCHECK, ErrorSanityCheck, FI_LI); 1 69346 } 69347 69348 /****************************************************************************/ 69349 /* 69350 Generate a CONNECT request header for the request host:port derived by 69351 ProxyTunnelRequestParse() and then write this to the chained proxy server. 69352 */ 69353 69354 int ProxyTunnelChainConnect (PROXY_TASK *tkptr) 69355 1 69356 { 1 69357 #define STRCAT(string) \ 1 69358 for (cptr = string; *cptr && sptr < zptr; *sptr++ = *cptr++); 1 69359 1 69360 char *cptr, *sptr, *zptr; 1 69361 char EncodedString [256]; 1 69362 REQUEST_STRUCT *rqptr; 1 69363 1 69364 /*********/ 1 69365 /* begin */ 1 69366 /*********/ 1 69367 1 69368 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69369 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 1 69370 "ProxyTunnelChainConnect()"); Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 16 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 1 69371 1 69372 rqptr = tkptr->RequestPtr; 1 69373 1 69374 tkptr->RebuiltRequestPtr = sptr = VmGetHeap (rqptr, 512); 1 69375 zptr = sptr + 512; 1 69376 1 69377 STRCAT ("CONNECT "); 1 69378 STRCAT (tkptr->RequestHostPort); 1 69379 if (tkptr->RequestHttpVersion == HTTP_VERSION_1_1) 1 69380 STRCAT (" HTTP/1.1") 1 69381 else 1 69382 STRCAT (" HTTP/1.0") 1 69383 STRCAT ("\r\nUser-Agent: "); 1 69384 STRCAT (SoftwareID); 1 69385 STRCAT ("\r\nHost: "); 1 69386 STRCAT (tkptr->ConnectHostPortPtr); 1 69387 STRCAT ("\r\nX-Forwarded-For: "); 1 69388 STRCAT (&rqptr->ClientPtr->IpAddressString); 1 69389 STRCAT ("\r\n"); 1 69390 1 69391 if ((cptr = rqptr->ServicePtr->ProxyChainCred)[0] || 1 69392 (cptr = rqptr->rqPathSet.ProxyChainCredPtr)) 2 69393 { 2 69394 /* upstream (chained) proxy require authorization */ 2 69395 if (strsame (cptr, "basic:", 6)) 3 69396 { 3 69397 /* format is "basic::" */ 3 69398 cptr = BasicPrintableEncode (cptr+6, EncodedString, 3 69399 sizeof(EncodedString)); 3 69400 if (cptr[0]) 4 69401 { 4 69402 /* error report returned by the encode function */ 4 69403 rqptr->rqResponse.HttpStatus = 401; 4 69404 ErrorGeneral (rqptr, cptr, FI_LI); 4 69405 return (STS$K_ERROR); 3 69406 } 3 69407 STRCAT ("Proxy-Authorization: basic "); 3 69408 STRCAT (EncodedString); 3 69409 STRCAT ("\r\n") 2 69410 } 2 69411 else 3 69412 { 3 69413 rqptr->rqResponse.HttpStatus = 500; 3 69414 ErrorGeneral (rqptr, MsgFor(rqptr,MSG_AUTH_SCHEME), FI_LI); 3 69415 return (STS$K_ERROR); 2 69416 } 1 69417 } 1 69418 STRCAT ("\r\n"); 1 69419 1 69420 if (sptr >= zptr) 2 69421 { 2 69422 rqptr->rqResponse.HttpStatus = 500; 2 69423 ErrorGeneralOverflow (rqptr, FI_LI); 2 69424 return (STS$K_ERROR); 1 69425 } 1 69426 *sptr = '\0'; 1 69427 tkptr->RebuiltRequestLength = sptr - tkptr->RebuiltRequestPtr; Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 17 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 1 69428 1 69429 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69430 WatchDataFormatted ("!&Z", tkptr->RebuiltRequestPtr); 1 69431 1 69432 /* to the CONNECT request write synchonously */ 1 69433 ProxyNetWrite (tkptr, NULL, 1 69434 tkptr->RebuiltRequestPtr, tkptr->RebuiltRequestLength); 1 69435 1 69436 /* queue a read for the CONNECT response */ 1 69437 ProxyNetRead (tkptr, &ProxyTunnelChainConnectAst, 1 69438 tkptr->ResponseBufferPtr, tkptr->ResponseBufferSize); 1 69439 1 69440 return (SS$_NORMAL); 1 69441 1 69442 #undef STRCAT 1 69443 } 69444 69445 /****************************************************************************/ 69446 /* 69447 The chained proxy server has responded to the CONNECT request. Check for 69448 network errors and that the response looks something like HTTP success. If it 69449 does begin reading from each of the client and the chained proxy server. 69450 */ 69451 69452 ProxyTunnelChainConnectAst (PROXY_TASK *tkptr) 69453 1 69454 { 1 69455 int DataCount; 1 69456 char *DataPtr; 1 69457 REQUEST_STRUCT *rqptr; 1 69458 1 69459 /*********/ 1 69460 /* begin */ 1 69461 /*********/ 1 69462 1 69463 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69464 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 1 69465 "ProxyTunnelChainConnectAst() !&F !&S !UL", 1 69466 &ProxyTunnelChainConnectAst, 1 69467 tkptr->NetIoPtr->ReadStatus, 1 69468 tkptr->NetIoPtr->ReadCount); 1 69469 1 69470 if (VMSnok (tkptr->NetIoPtr->ReadStatus)) 2 69471 { 2 69472 ProxyEnd (tkptr); 2 69473 return; 1 69474 } 1 69475 1 69476 DataPtr = tkptr->ResponseBufferPtr; 1 69477 DataCount = tkptr->NetIoPtr->ReadCount; 1 69478 1 69479 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69480 WatchDataDump (DataPtr, DataCount); 1 69481 1 69482 DataPtr[DataCount] = '\0'; 1 69483 if (!MATCH7 (DataPtr, "HTTP/1.")) 2 69484 { Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 18 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 2 69485 ProxyEnd (tkptr); 2 69486 return; 1 69487 } 1 69488 DataPtr += 7; 1 69489 while (*DataPtr && *DataPtr != ' ') DataPtr++; 1 69490 while (*DataPtr == ' ') DataPtr++; 1 69491 if (!MATCH3 (DataPtr, "200")) 2 69492 { 2 69493 ProxyEnd (tkptr); 2 69494 return; 1 69495 } 1 69496 1 69497 rqptr = tkptr->RequestPtr; 1 69498 1 69499 /* it's successful if the remote host accepts it */ 1 69500 if (rqptr) rqptr->rqResponse.HttpStatus = 200; 1 69501 1 69502 /* once we start reading into the buffer the request header is kaput */ 1 69503 rqptr->rqHeader.RequestHeaderPtrInvalid = true; 1 69504 1 69505 if (tkptr->ProxyTunnel == PROXY_TUNNEL_HTTPS) 1 69506 SesolaNetClientBegin (tkptr); 1 69507 else 1 69508 ProxyTunnelBegin (tkptr); 1 69509 } 69510 69511 /****************************************************************************/ 69512 /* 69513 ************ 69514 *** NOTE *** This function takes a pointer to a request!!! 69515 ************ 69516 69517 A standard CONNECT response has been sent to the client by this server. 69518 It is necessary to provide this explicitly with a 'raw' connection. 69519 Check status. If OK then begin to tunnel. 69520 */ 69521 69522 ProxyTunnelConnectResponseAst (REQUEST_STRUCT *rqptr) 69523 1 69524 { 1 69525 PROXY_TASK *tkptr; 1 69526 1 69527 /*********/ 1 69528 /* begin */ 1 69529 /*********/ 1 69530 1 69531 if (WATCHMOD (rqptr, WATCH_MOD_PROXY)) 1 69532 WatchThis (WATCHITM(rqptr), WATCH_MOD_PROXY, 1 69533 "ProxyTunnelConnectResponseAst() !&F !&S !UL", 1 69534 &ProxyTunnelConnectResponseAst, 1 69535 rqptr->NetIoPtr->WriteStatus, 1 69536 rqptr->NetIoPtr->WriteCount); 1 69537 1 69538 tkptr = rqptr->ProxyTaskPtr; 1 69539 1 69540 if (VMSnok (rqptr->NetIoPtr->WriteStatus)) 2 69541 { Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 19 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 2 69542 ProxyEnd (tkptr); 2 69543 return; 1 69544 } 1 69545 1 69546 NetRead (rqptr, &ProxyTunnelNetReadAst, 1 69547 rqptr->rqNet.ReadBufferPtr, 1 69548 rqptr->rqNet.ReadBufferSize); 1 69549 1 69550 ProxyNetRead (tkptr, &ProxyTunnelReadAst, 1 69551 tkptr->ResponseBufferPtr, 1 69552 tkptr->ResponseBufferSize); 1 69553 } 69554 69555 /****************************************************************************/ 69556 /* 69557 ************ 69558 *** NOTE *** This function takes a pointer to a request!!! 69559 ************ 69560 69561 A read from the client has completed. 69562 Check status. If OK write it to the remote connection. 69563 69564 This function is also used to insert an "X-Forwarded-For: " 69565 header immediately following the HTTP request line, if the path is SET 69566 "proxy=xforwardedfor=address", as in the following example 69567 69568 pass *:0 raw://192.168.1.15:80 notimeout proxy=xforwardedfor=address 69569 69570 The algorithm relies on the HTTP request line being at the front of a read 69571 buffer and there be no pipelined requests inside buffer-fulls of tunneled data. 69572 So each request must have a distinct beginning and end in the network reads 69573 and writes, which is (mostly and generally) the case. 69574 */ 69575 69576 ProxyTunnelNetReadAst (REQUEST_STRUCT *rqptr) 69577 1 69578 { 1 69579 int bcnt, xflen, rlen; 1 69580 char ch; 1 69581 char *bptr, *cptr, *czptr, *xfptr; 1 69582 PROXY_TASK *tkptr; 1 69583 1 69584 /*********/ 1 69585 /* begin */ 1 69586 /*********/ 1 69587 1 69588 if (WATCHMOD (rqptr, WATCH_MOD_PROXY)) 1 69589 WatchThis (WATCHITM(rqptr), WATCH_MOD_PROXY, 1 69590 "ProxyTunnelNetReadAst() !&F !&S !UL", 1 69591 &ProxyTunnelNetReadAst, 1 69592 rqptr->NetIoPtr->ReadStatus, 1 69593 rqptr->NetIoPtr->ReadCount); 1 69594 1 69595 tkptr = rqptr->ProxyTaskPtr; 1 69596 1 69597 if (VMSnok (rqptr->NetIoPtr->ReadStatus)) 2 69598 { Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 20 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 2 69599 ProxyNetCloseSocket (tkptr); 2 69600 ProxyEnd (tkptr); 2 69601 return; 1 69602 } 1 69603 1 69604 rqptr->BytesRx64 += rqptr->NetIoPtr->ReadCount; 1 69605 1 69606 bptr = rqptr->rqNet.ReadBufferPtr; 1 69607 bcnt = rqptr->NetIoPtr->ReadCount; 1 69608 1 69609 if ((rqptr->rqPathSet.ProxyXForwardedFor == PROXY_XFORWARDEDFOR_ADDRESS) && 1 69610 (xfptr = rqptr->rqHeader.XForwardedForPtr)) 2 69611 { 2 69612 rlen = 0; 2 69613 for (czptr = (cptr = bptr) + bcnt; 2 69614 cptr < czptr && !MATCH2(cptr,"\r\n") && *cptr != '\n'; 2 69615 cptr++) 3 69616 { 3 69617 if (MATCH7 (cptr, "HTTP/1.")) 4 69618 { 4 69619 cptr += 7; 4 69620 if (!(MATCH2 (cptr, "1\n") || MATCH3 (cptr, "1\r\n") || 4 69621 MATCH2 (cptr, "0\n") || MATCH3 (cptr, "0\r\n"))) 4 69622 continue; 4 69623 /* found end-of-line that looks suspiciously like an HTTP request */ 4 69624 cptr++; 4 69625 if (*cptr == '\r') cptr++; 4 69626 if (*cptr == '\n') cptr++; 4 69627 /* length of request line */ 4 69628 rlen = cptr - bptr; 4 69629 break; 3 69630 } 2 69631 } 2 69632 2 69633 if (rlen) 3 69634 { 3 69635 /* found what looks like an HTTP request line */ 3 69636 xflen = strlen(xfptr) + sizeof("X-Forwarded-For: %s\r\n")-3; 3 69637 3 69638 if (bcnt + xflen > rqptr->NetIoPtr->ReadSize) 4 69639 { 4 69640 /* won't fit into the original buffer */ 4 69641 bptr = VmGetHeap (rqptr, bcnt + xflen); 4 69642 memcpy (bptr, rqptr->rqNet.ReadBufferPtr, bcnt); 3 69643 } 3 69644 3 69645 /* move to allow insertion of the forwarded line */ 3 69646 memmove (bptr + rlen + xflen, bptr + rlen, bcnt - rlen); 3 69647 3 69648 /* insert the forwarded line reversing the trailing null overwrite */ 3 69649 ch = *(bptr + rlen + xflen); 3 69650 sprintf (bptr + rlen, "X-Forwarded-For: %s\r\n", xfptr); 3 69651 *(bptr + rlen + xflen) = ch; 3 69652 3 69653 /* length of the buffer is the original plus length of forwarded */ 3 69654 bcnt += xflen; 2 69655 } Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 21 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 1 69656 } 1 69657 1 69658 ProxyNetWrite (tkptr, &ProxyTunnelWriteAst, bptr, bcnt); 1 69659 } 69660 69661 /****************************************************************************/ 69662 /* 69663 ************ 69664 *** NOTE *** This function takes a pointer to a request!!! 69665 ************ 69666 69667 A write to the client has completed. 69668 Check status. If OK read more from the remote connection. 69669 */ 69670 69671 ProxyTunnelNetWriteAst (REQUEST_STRUCT *rqptr) 69672 1 69673 { 1 69674 PROXY_TASK *tkptr; 1 69675 1 69676 /*********/ 1 69677 /* begin */ 1 69678 /*********/ 1 69679 1 69680 if (WATCHMOD (rqptr, WATCH_MOD_PROXY)) 1 69681 WatchThis (WATCHITM(rqptr), WATCH_MOD_PROXY, 1 69682 "ProxyTunnelNetWriteAst() !&F !&S !UL", 1 69683 &ProxyTunnelNetWriteAst, 1 69684 rqptr->NetIoPtr->WriteStatus, 1 69685 rqptr->NetIoPtr->WriteCount); 1 69686 1 69687 tkptr = rqptr->ProxyTaskPtr; 1 69688 1 69689 if (VMSnok (rqptr->NetIoPtr->WriteStatus)) 2 69690 { 2 69691 ProxyEnd (tkptr); 2 69692 return; 1 69693 } 1 69694 1 69695 ProxyNetRead (tkptr, &ProxyTunnelReadAst, 1 69696 tkptr->ResponseBufferPtr, 1 69697 tkptr->ResponseBufferSize); 1 69698 } 69699 69700 /****************************************************************************/ 69701 /* 69702 AST completion of read from remote connection. 69703 Check status. If OK write it to the client connection. 69704 */ 69705 69706 ProxyTunnelReadAst (PROXY_TASK *tkptr) 69707 1 69708 { 1 69709 int DataCount; 1 69710 char *cptr, *zptr, 1 69711 *DataPtr; 1 69712 REQUEST_STRUCT *rqptr; Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 22 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 1 69713 1 69714 /*********/ 1 69715 /* begin */ 1 69716 /*********/ 1 69717 1 69718 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69719 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 1 69720 "ProxyTunnelReadAst() !&F !&S !UL", 1 69721 &ProxyTunnelReadAst, 1 69722 tkptr->NetIoPtr->ReadStatus, 1 69723 tkptr->NetIoPtr->ReadCount); 1 69724 1 69725 rqptr = tkptr->RequestPtr; 1 69726 1 69727 if (VMSnok (tkptr->NetIoPtr->ReadStatus)) 2 69728 { 2 69729 ProxyEnd (tkptr); 2 69730 return; 1 69731 } 1 69732 1 69733 DataPtr = tkptr->ResponseBufferPtr; 1 69734 DataCount = tkptr->NetIoPtr->ReadCount; 1 69735 1 69736 if (tkptr->ProxyTunnel == PROXY_TUNNEL_HTTP || 1 69737 tkptr->ProxyTunnel == PROXY_TUNNEL_HTTPS) 2 69738 { 2 69739 rqptr->BytesTx64 += DataCount; 2 69740 NetWrite (rqptr, &ProxyTunnelNetWriteAst, DataPtr, DataCount); 2 69741 return; 1 69742 } 1 69743 1 69744 if (tkptr->ProxyTunnel == PROXY_TUNNEL_CONNECT && 1 69745 (rqptr->ServicePtr->ProxyTunnel == PROXY_TUNNEL_FIREWALL || 1 69746 rqptr->ServicePtr->ProxyTunnel == PROXY_TUNNEL_RAW)) 2 69747 { 2 69748 /* need to absorb any CONNECT response header */ 2 69749 if (tkptr->ResponseConsecutiveNewLineCount < 2) 3 69750 { 3 69751 zptr = (cptr = DataPtr) + DataCount; 3 69752 while (cptr < zptr) 4 69753 { 4 69754 if (*cptr == '\n') 4 69755 tkptr->ResponseConsecutiveNewLineCount++; 4 69756 else 4 69757 if (*cptr != '\r') 4 69758 tkptr->ResponseConsecutiveNewLineCount = 0; 4 69759 cptr++; 4 69760 if (tkptr->ResponseConsecutiveNewLineCount >= 2) break; 3 69761 } 3 69762 DataCount -= cptr - DataPtr; 3 69763 DataPtr = cptr; 3 69764 3 69765 if (!DataCount) 4 69766 { 4 69767 /* fudge these and directly deliver the AST */ 4 69768 NetIoWriteStatus (rqptr->NetIoPtr, ProxyTunnelNetWriteAst, rqptr, 4 69769 SS$_NORMAL, 0); Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 23 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 4 69770 return; 3 69771 } 2 69772 } 1 69773 } 1 69774 1 69775 rqptr->BytesTx64 += DataCount; 1 69776 NetWrite (rqptr, &ProxyTunnelNetWriteAst, DataPtr, DataCount); 1 69777 } 69778 69779 /****************************************************************************/ 69780 /* 69781 A write to the remote connection has completed. 69782 Check status. If OK read more from the client connection. 69783 */ 69784 69785 ProxyTunnelWriteAst (PROXY_TASK *tkptr) 69786 1 69787 { 1 69788 REQUEST_STRUCT *rqptr; 1 69789 1 69790 /*********/ 1 69791 /* begin */ 1 69792 /*********/ 1 69793 1 69794 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69795 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, 1 69796 "ProxyTunnelWriteAst() !&F !&S !UL", 1 69797 &ProxyTunnelWriteAst, 1 69798 tkptr->NetIoPtr->WriteStatus, 1 69799 tkptr->NetIoPtr->WriteCount); 1 69800 1 69801 rqptr = tkptr->RequestPtr; 1 69802 1 69803 if (VMSnok (tkptr->NetIoPtr->WriteStatus)) 2 69804 { 2 69805 ProxyEnd (tkptr); 2 69806 return; 1 69807 } 1 69808 1 69809 NetRead (rqptr, &ProxyTunnelNetReadAst, 1 69810 rqptr->rqNet.ReadBufferPtr, 1 69811 rqptr->rqNet.ReadBufferSize); 1 69812 } 69813 69814 /****************************************************************************/ 69815 /* 69816 Function name indicates all! 69817 */ 69818 X 69819 #if TUNNEL_LOGNAM_TEST X 69820 X 69821 int ProxyTunnelTestPort = 10000; X 69822 X 69823 ProxyTunnelTest () X 69824 X 69825 { X 69826 int count; Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 24 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 X 69827 REQUEST_STRUCT *rqptr; X 69828 PROXY_TASK *tkptr; X 69829 X 69830 /*********/ X 69831 /* begin */ X 69832 /*********/ X 69833 X 69834 for (count = 0; count < 260; count++) X 69835 { X 69836 rqptr = VmGet (sizeof(REQUEST_STRUCT)); X 69837 rqptr->WatchItem = 999; X 69838 rqptr->ClientPtr = VmGet (sizeof(CLIENT_STRUCT)); X 69839 rqptr->ServicePtr = VmGet (sizeof(SERVICE_STRUCT)); X 69840 rqptr->rqPathSet.ProxyForwardedBy = PROXY_FORWARDED_ADDRESS; X 69841 strzcpy (rqptr->ServicePtr->ServerHostPort, "server.host:80", 32); X 69842 strzcpy (rqptr->ClientPtr->IpAddressString, "192.168.1.1", 32); X 69843 rqptr->ClientPtr->IpPort = ProxyTunnelTestPort++ + 1000; X 69844 X 69845 tkptr = VmGet (sizeof(PROXY_TASK)); X 69846 tkptr->WatchItem = rqptr->WatchItem; X 69847 tkptr->RequestPtr = rqptr; X 69848 strzcpy (tkptr->RequestHostName, "request.host", 32); X 69849 X 69850 ProxyTunnelLogicalName (tkptr); X 69851 sleep (1); X 69852 } X 69853 } X 69854 X 69855 #endif /* TUNNEL_LOGNAM_TEST */ 69856 69857 /****************************************************************************/ 69858 /* 69859 Multiple value logical name WASD_TUNNEL where the zeroeth element contains 69860 internal run-time data for use by WASD and elements 1 through 127 contain the 69861 tunnel data. 69862 69863 The path must be SET .. PROXY=FORWARDED=FOR or SET .. PROXY=FORWARDED=ADDRESS 69864 for the logical name to be created. "=FOR" uses the resolved client host name 69865 (if enabled) and "=ADDRESS" always the client IP address. 69866 69867 Tunnel data value format: 69868 69869 == 69870 69871 "localhost:54321=external.host.net:2222=client.host.net:23456" 69872 69873 Where 'localhost:54321' is the internal host name and port, 69874 'external.host.net:2222' the external service the client connected to, and 69875 'client.host.net:23456' the client's host and port. 69876 69877 By default the logical name will be deleted if a minute or more has passed 69878 since last updated. This can be increased by defining the logical name 69879 WASD_TUNNEL_SECONDS to an integer value of seconds. The deletion can be 69880 disabled completely by defining it to zero or some non-digit. 69881 69882 ProxyTunnelLogicalName(NULL) is called by HttpdTick() every minute. 69883 Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 25 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 69884 The INSTANCE_MUTEX_HTTPD is used to coordinate potential multiple instances. 69885 69886 Example DCL code to extract the client ":" using the 69887 provided by TT_ACCPORNAM. If it is not found logical name TT_CLIENT does not 69888 exist. Adapt to suit local requirements. 69889 69890 $ if P1 .eqs. "" then P1 = f$element(1,":",f$getdvi("TT:","TT_ACCPORNAM")) 69891 $ value = "" 69892 $ local = "" 69893 $ service = "" 69894 $ client = "" 69895 $ index = 1 69896 $ index_loop: 69897 $ value = f$trnlnm("WASD_TUNNEL","WASD_TABLE",index) 69898 $ if value .eqs. "" 69899 $ then 69900 $ wait 00:00:01 69901 $ value = f$trnlnm("WASD_TUNNEL","WASD_TABLE",index) 69902 $ endif 69903 $ if value .eqs. "" then goto end_index_loop 69904 $ local = f$element(0,"=",value) 69905 $ addr = f$element(0,":",local) 69906 $ port = f$element(1,":",local) 69907 $ if port .eqs. P1 69908 $ then 69909 $ service = f$element(1,"=",value) 69910 $ client = f$element(2,"=",value) 69911 $ goto end_index_loop 69912 $ endif 69913 $ index = index + 1 69914 $ goto index_loop 69915 $ end_index_loop: 69916 $ if f$trnlnm("TT_CLIENT","LNM$PROCESS") .nes. "" - 69917 then deassign /process TT_CLIENT 69918 $ if client .nes. "" then define /process TT_CLIENT "''client'" 69919 69920 */ 69921 69922 ProxyTunnelLogicalName (PROXY_TASK *tkptr) 69923 1 69924 { 1 69925 static int LnmCount, 1 69926 TunnelSeconds; 1 69927 static char LogicalName[] = "WASD_TUNNEL"; 1 69928 static $DESCRIPTOR (LogNameDsc, LogicalName); 1 69929 static $DESCRIPTOR (WasdTableDsc, "WASD_TABLE"); 1 69930 static $DESCRIPTOR (NumberFaoDsc, "!UL"); 1 69931 static $DESCRIPTOR (StampFaoDsc, "!UL !%D !UL"); 1 69932 static uchar ExecMode = 1; /* PSL$C_EXEC */ 1 69933 static VMS_ITEM_LIST3 LnmItems [] = 1 69934 { 1 69935 { sizeof(LnmCount), LNM$_INDEX, &LnmCount, 0 }, 1 69936 { 255, LNM$_STRING, 0, 0 }, 1 69937 { 0,0,0,0 } 1 69938 }; 1 69939 1 69940 int idx, port, status, Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 26 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 1 69941 TickSecond, 1 69942 TrnLnmStatus; 1 69943 short slen; 1 69944 short LogValueLength [128]; 1 69945 char *cptr, *clptr, *sptr, *zptr; 1 69946 char LocalHostPort [255+1], 1 69947 LogValue [128][255+1], 1 69948 PortString [32]; 1 69949 REQUEST_STRUCT *rqptr; 1 69950 $DESCRIPTOR (PortStringDsc, PortString); 1 69951 $DESCRIPTOR (StampDsc, LogValue[0]); 1 69952 VMS_ITEM_LIST3 CreLnmItems [128+1]; 1 69953 1 69954 /*********/ 1 69955 /* begin */ 1 69956 /*********/ 1 69957 1 69958 if (WATCHMOD (tkptr, WATCH_MOD_PROXY)) 1 69959 WatchThis (WATCHITM(tkptr), WATCH_MOD_PROXY, "ProxyTunnelLogicalName()"); 1 69960 1 69961 if (!tkptr) 2 69962 { 2 69963 /************/ 2 69964 /* maintain */ 2 69965 /************/ 2 69966 2X 69967 #if TUNNEL_LOGNAM_TEST 2X 69968 static int count; 2X 69969 if (!count++) return; 2X 69970 ProxyTunnelTest (); 2X 69971 return; 2X 69972 #endif 2 69973 2 69974 if (!ProxyServingEnabled) return; 2 69975 2 69976 InstanceMutexLock (INSTANCE_MUTEX_HTTPD); 2 69977 2 69978 /* zeroeth element contains the time stamp */ 2 69979 LnmCount = 0; 2 69980 LnmItems[1].buf_addr = &LogValue[0]; 2 69981 LnmItems[1].ret_len = &LogValueLength[0]; 2 69982 status = sys$trnlnm (0, &WasdTableDsc, &LogNameDsc, 0, &LnmItems); 2 69983 if (VMSnok (status)) 3 69984 { 3 69985 /* logical name does not exist or error */ 3 69986 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 3 69987 return; 2 69988 } 2 69989 LogValue[0][LogValueLength[0]] = '\0'; 2 69990 TickSecond = atoi(LogValue[0]); 2 69991 2 69992 TunnelSeconds = 60; 2 69993 if (cptr = SysTrnLnm(WASD_TUNNEL_SECONDS)) 3 69994 { 3 69995 TunnelSeconds = atoi(cptr); 3 69996 if (TunnelSeconds <= 0) 4 69997 { Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 27 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 4 69998 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 4 69999 return; 3 70000 } 3 70001 if (TunnelSeconds < 15) TunnelSeconds = 60; 2 70002 } 2 70003 2 70004 /* allow the name to exist for at least this number of seconds */ 2 70005 if (HttpdTickSecond - TickSecond > 0 && 2 70006 HttpdTickSecond - TickSecond < TunnelSeconds) 3 70007 { 3 70008 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 3 70009 return; 2 70010 } 2 70011 2 70012 if (WATCH_CAT && WATCH_CATEGORY(WATCH_PROXY)) 2 70013 WatchThis (WATCHALL, WATCH_PROXY, "WASD_TUNNEL delete"); 2 70014 2 70015 if (VMSnok (status = sys$setprv (1, &SysNamPrvMask, 0, 0))) 2 70016 ErrorExitVmsStatus (status, "sys$setprv()", FI_LI); 2 70017 2 70018 status = sys$dellnm (&WasdTableDsc, &LogNameDsc, &ExecMode); 2 70019 if (VMSnok (status) && status != SS$_NOLOGNAM) 2 70020 ErrorNoticed (NULL, status, LogicalName, FI_LI); 2 70021 2 70022 if (VMSnok (status = sys$setprv (0, &SysNamPrvMask, 0, 0))) 2 70023 ErrorExitVmsStatus (status, "sys$setprv()", FI_LI); 2 70024 2 70025 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 2 70026 2 70027 return; 1 70028 } 1 70029 1 70030 /**************/ 1 70031 /* new tunnel */ 1 70032 /**************/ 1 70033 1 70034 rqptr = tkptr->RequestPtr; 1 70035 1 70036 if (rqptr->rqPathSet.ProxyForwardedBy != PROXY_FORWARDED_FOR && 1 70037 rqptr->rqPathSet.ProxyForwardedBy != PROXY_FORWARDED_ADDRESS) return; 1 70038 1 70039 if (rqptr->rqPathSet.ProxyForwardedBy == PROXY_FORWARDED_FOR) 1 70040 clptr = rqptr->ClientPtr->Lookup.HostName; 1 70041 else 1 70042 if (rqptr->rqPathSet.ProxyForwardedBy == PROXY_FORWARDED_ADDRESS) 1 70043 clptr = rqptr->ClientPtr->IpAddressString; 1 70044 else 1 70045 clptr = "SS$_BUGCHECK"; 1 70046 1 70047 /* get the originating port for the local connection */ 1X 70048 #if TUNNEL_LOGNAM_TEST 1X 70049 port = ProxyTunnelTestPort; 1X 70050 #else 1 70051 port = ProxyNetLocalPort (tkptr); 1 70052 #endif 1 70053 1 70054 /***********************/ Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 28 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 1 70055 /* get current content */ 1 70056 /***********************/ 1 70057 1 70058 InstanceMutexLock (INSTANCE_MUTEX_HTTPD); 1 70059 1 70060 /* anything currently occupying [127] is just discarded */ 1 70061 for (LnmCount = 1; LnmCount <= 126; LnmCount++) 2 70062 { 2 70063 idx = LnmCount + 1; 2 70064 LnmItems[1].buf_addr = &LogValue[idx]; 2 70065 LnmItems[1].ret_len = &LogValueLength[idx]; 2 70066 TrnLnmStatus = sys$trnlnm (0, &WasdTableDsc, &LogNameDsc, 0, &LnmItems); 2 70067 if (VMSok (TrnLnmStatus)) 3 70068 { 3 70069 if (!LogValueLength[idx]) break; 3 70070 LogValue[idx][LogValueLength[idx]] = '\0'; 2 70071 } 2 70072 else 3 70073 { 3 70074 if (TrnLnmStatus == SS$_NOLOGNAM) break; 3 70075 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 3 70076 ErrorNoticed (rqptr, TrnLnmStatus, LogicalName, FI_LI); 3 70077 return; 2 70078 } 1 70079 } 1 70080 1 70081 /******************/ 1 70082 /* no duplicates! */ 1 70083 /******************/ 1 70084 1 70085 zptr = (sptr = LocalHostPort) + sizeof(LocalHostPort)-1; 1 70086 for (cptr = tkptr->RequestHostName; *cptr && sptr < zptr; *sptr++ = *cptr++); 1 70087 if (sptr < zptr) *sptr++ = ':'; 1 70088 sys$fao (&NumberFaoDsc, &slen, &PortStringDsc, port); 1 70089 for (cptr = PortString; slen-- && sptr < zptr; *sptr++ = *cptr++); 1 70090 *sptr = '\0'; 1 70091 1 70092 for (idx = 2; idx <= LnmCount; idx++) 2 70093 { 2 70094 /* compare logical name local host:port with the tunnel host:port */ 2 70095 for (cptr = LogValue[idx]; *cptr && *cptr != '='; cptr++); 2 70096 if (!*cptr) continue; 2 70097 *cptr = '\0'; 2 70098 if (strsame (LogValue[idx], LocalHostPort, -1)) 3 70099 { 3 70100 *cptr = '='; 3 70101 break; 2 70102 } 2 70103 *cptr = '='; 1 70104 } 1 70105 1 70106 /* if a duplicate then just quit here */ 1 70107 if (idx <= LnmCount) 2 70108 { 2 70109 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 2 70110 return; 1 70111 } Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 29 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 1 70112 1 70113 /*************/ 1 70114 /* timestamp */ 1 70115 /*************/ 1 70116 1 70117 /* time stamp of last update into the zeroeth element */ 1 70118 StampDsc.dsc$a_pointer = LogValue[0]; 1 70119 StampDsc.dsc$w_length = sizeof(LogValue[0]); 1 70120 sys$fao (&StampFaoDsc, &slen, &StampDsc, 1 70121 HttpdTickSecond, 0, LnmCount); 1 70122 LogValue[0][slen] = '\0'; 1 70123 LogValueLength[0] = slen; 1 70124 1 70125 CreLnmItems[0].buf_len = LogValueLength[0]; 1 70126 CreLnmItems[0].item = LNM$_STRING; 1 70127 CreLnmItems[0].buf_addr = &LogValue[0]; 1 70128 CreLnmItems[0].ret_len = 0; 1 70129 1 70130 /*****************/ 1 70131 /* prepend entry */ 1 70132 /*****************/ 1 70133 1 70134 /* into the first entry */ 1 70135 zptr = (sptr = &LogValue[1]) + 255; 1 70136 1 70137 for (cptr = LocalHostPort; *cptr && sptr < zptr; *sptr++ = *cptr++); 1 70138 if (sptr < zptr) *sptr++ = '='; 1 70139 1 70140 for (cptr = rqptr->ServicePtr->ServerHostPort; 1 70141 *cptr && sptr < zptr; 1 70142 *sptr++ = *cptr++); 1 70143 if (sptr < zptr) *sptr++ = '='; 1 70144 1 70145 for (cptr = clptr; *cptr && sptr < zptr; *sptr++ = *cptr++); 1 70146 if (sptr < zptr) *sptr++ = ':'; 1 70147 sys$fao (&NumberFaoDsc, &slen, &PortStringDsc, rqptr->ClientPtr->IpPort); 1 70148 for (cptr = PortString; slen-- && sptr < zptr; *sptr++ = *cptr++); 1 70149 *sptr = '\0'; 1 70150 LogValueLength[1] = sptr - (char*)&LogValue[1]; 1 70151 1 70152 if (sptr >= zptr) 2 70153 { 2 70154 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 2 70155 ErrorNoticed (rqptr, SS$_RESULTOVF, LogValue, FI_LI); 2 70156 return; 1 70157 } 1 70158 1 70159 CreLnmItems[1].buf_len = LogValueLength[1]; 1 70160 CreLnmItems[1].item = LNM$_STRING; 1 70161 CreLnmItems[1].buf_addr = &LogValue[1]; 1 70162 CreLnmItems[1].ret_len = 0; 1 70163 1 70164 if (WATCHING (tkptr, WATCH_PROXY)) 1 70165 WatchThis (WATCHITM(tkptr), WATCH_PROXY, "WASD_TUNNEL !UL !AZ", 1 70166 LnmCount, LogValue[1]); 1 70167 1 70168 /***************/ Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 30 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 1 70169 /* update rest */ 1 70170 /***************/ 1 70171 1 70172 for (idx = 2; idx <= LnmCount; idx++) 2 70173 { 2 70174 CreLnmItems[idx].buf_len = LogValueLength[idx]; 2 70175 CreLnmItems[idx].item = LNM$_STRING; 2 70176 CreLnmItems[idx].buf_addr = &LogValue[idx]; 2 70177 CreLnmItems[idx].ret_len = 0; 1 70178 } 1 70179 1 70180 /* terminate item list */ 1 70181 CreLnmItems[idx].buf_len = 0; 1 70182 CreLnmItems[idx].item = 0; 1 70183 CreLnmItems[idx].buf_addr = 0; 1 70184 CreLnmItems[idx].ret_len = 0; 1 70185 1 70186 /************************/ 1 70187 /* update logical value */ 1 70188 /************************/ 1 70189 1 70190 if (VMSnok (status = sys$setprv (1, &SysNamPrvMask, 0, 0))) 1 70191 ErrorExitVmsStatus (status, "sys$setprv()", FI_LI); 1 70192 1 70193 if (TrnLnmStatus != SS$_NOLOGNAM) 2 70194 { 2 70195 /******************/ 2 70196 /* delete current */ 2 70197 /******************/ 2 70198 2 70199 /* 2 70200 After a couple of dynamic page pool exhaustions Jeremy Begg using 2 70201 SDA> show pool/paged/summary 2 70202 SDA> show pool/page/type=lnm 2 70203 suggested perhaps leakage associated with multi-value logical name 2 70204 (re)creation. This deletion is an attempt to test/workaround that. 2 70205 */ 2 70206 2 70207 status = sys$dellnm (&WasdTableDsc, &LogNameDsc, &ExecMode); 2 70208 if (VMSnok (status) && status != SS$_NOLOGNAM) 2 70209 ErrorNoticed (NULL, status, LogicalName, FI_LI); 1 70210 } 1 70211 1 70212 status = sys$crelnm (0, &WasdTableDsc, &LogNameDsc, &ExecMode, &CreLnmItems); 1 70213 if (VMSnok (status)) ErrorNoticed (rqptr, status, LogicalName, FI_LI); 1 70214 1 70215 if (VMSnok (status = sys$setprv (0, &SysNamPrvMask, 0, 0))) 1 70216 ErrorExitVmsStatus (status, "sys$setprv()", FI_LI); 1 70217 1 70218 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 1 70219 } 70220 70221 /****************************************************************************/ 70222 /* 70223 Report the contents of the WASD_TUNNEL logical name (NSS). 70224 */ 70225 Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 31 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 70226 ProxyTunnelReport (REQUEST_STRUCT *rqptr) 70227 1 70228 { 1 70229 static int LnmCount; 1 70230 static short LogValueLength; 1 70231 static char LogValue [255+1]; 1 70232 static char LogicalName[] = "WASD_TUNNEL"; 1 70233 static $DESCRIPTOR (LogNameDsc, LogicalName); 1 70234 static $DESCRIPTOR (WasdTableDsc, "WASD_TABLE"); 1 70235 static VMS_ITEM_LIST3 LnmItems [] = 1 70236 { 1 70237 { sizeof(LnmCount), LNM$_INDEX, &LnmCount, 0 }, 1 70238 { 255, LNM$_STRING, LogValue, &LogValueLength }, 1 70239 { 0,0,0,0 } 1 70240 }; 1 70241 1 70242 int status, tsecs; 1 70243 char ago [48]; 1 70244 1 70245 /*********/ 1 70246 /* begin */ 1 70247 /*********/ 1 70248 1 70249 if (WATCHMOD (rqptr, WATCH_MOD_PROXY)) 1 70250 WatchThis (WATCHITM(rqptr), WATCH_MOD_PROXY, "ProxyTunnelReport()"); 1 70251 1 70252 rqptr->rqResponse.PreExpired = PRE_EXPIRE_ADMIN; 1 70253 ResponseHeader200 (rqptr, "text/html", NULL); 1 70254 1 70255 AdminPageTitle (rqptr, "Proxy Tunnel Report"); 1 70256 1 70257 FaoToNet (rqptr, 1 70258 "

\n\ 1 70259 \n\ 1 70260 \n\ 1 70301
Logical Name !AZ
\n\ 1 70261 \n", 1 70262 LogicalName); 1 70263 1 70264 InstanceMutexLock (INSTANCE_MUTEX_HTTPD); 1 70265 1 70266 for (LnmCount = 0; LnmCount <= 127; LnmCount++) 2 70267 { 2 70268 status = sys$trnlnm (0, &WasdTableDsc, &LogNameDsc, 0, &LnmItems); 2 70269 if (VMSok (status)) 3 70270 { 3 70271 if (!LogValueLength) break; 3 70272 LogValue[LogValueLength] = ago[0]= '\0'; 3 70273 if (!LnmCount) 4 70274 { 4 70275 tsecs = atol (LogValue); 4 70276 tsecs = HttpdTickSecond - tsecs; 4 70277 if (tsecs == 0) 4 70278 strzcpy (ago, "  (just now)", sizeof(ago)); 4 70279 else 4 70280 FaoToBuffer (ago, sizeof(ago), NULL, 4 70281 "  (!SL second!%s ago)", tsecs); 3 70282 } Source Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 32 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 3 70283 FaoToNet (rqptr, "\ 3 70284 \n", 3 70285 LnmCount, LogValue, ago); 3 70286 continue; 2 70287 } 2 70288 if (!LnmCount && status == SS$_NOLOGNAM) 3 70289 { 3 70290 FaoToNet (rqptr, "\n", SS$_NOLOGNAM); 3 70291 break; 2 70292 } 2 70293 break; 1 70294 } 1 70295 1 70296 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 1 70297 1 70298 FaoToNet (rqptr, 1 70299 "
!UL!AZ!AZ
!&S
\n\ 1 70300
\n"); 1 70302 1 70303 AdminEnd (rqptr); 1 70304 } 70305 70306 /****************************************************************************/ 70307 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 33 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 .psect $CODE$, CON, LCL, SHR, EXE, NOWRT, NOVEC, NOSHORT .proc to_lower .align 32 to_lower: // 046199 { .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 ProxyTunnelRequestParse .align 32 .global ProxyTunnelRequestParse ProxyTunnelRequestParse: // 068940 { .mii 002C00D22A80 0040 alloc r42 = rspfs, 1, 12, 4, 0 01081A068B80 0041 adds out1 = 436, in0 // r46 = 436, r32 // 068956 0108B2050B40 0042 adds out0 = 2856, in0 // r45 = 2856, r32 } { .mmi 010800100B00 0050 mov r44 = gp ;; // r44 = r1 // 068940 008082E00B80 0051 ld4 out1 = [out1] // r46 = [r46] // 068956 000188000A40 0052 mov r41 = rp // r41 = br0 // 068940 } { .mii 008082D00B40 0060 ld4 out0 = [out0] // r45 = [r45] // 068956 012000004640 0061 mov ai = 2 ;; // r25 = 2 0000B2E00B80 0062 sxt4 out1 = out1 // r46 = r46 } { .mii 000008000000 0070 nop.m 0 0000B2D00B40 0071 sxt4 out0 = out0 ;; // r45 = r45 000198000AC0 0072 mov r43 = pr // 068940 } { .mfb 000008000000 0080 nop.m 0 000008000000 0081 nop.f 0 00A000001000 0082 br.call.sptk.many rp = DECC$STRCMP ;; // br0 = DECC$STRCMP // 068956 } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 34 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mii 012000002840 0090 mov r33 = 1 // 069016 01C4008001C0 0091 cmp4.eq pr7, pr0 = r0, r8 // 068956 010802C00040 0092 mov gp = r44 // r1 = r44 } { .mfb 000008000000 00A0 nop.m 0 000008000000 00A1 nop.f 0 00860004E007 00A2 (pr7) br.cond.dpnt.many L$497 ;; } { .mii 01081A068B40 00B0 adds out0 = 436, in0 // r45 = 436, r32 // 068959 012000002640 00B1 mov ai = 1 // r25 = 1 000008000000 00B2 nop.i 0 ;; } { .mmi 008082D00B40 00C0 ld4 out0 = [out0] ;; // r45 = [r45] 000008000000 00C1 nop.m 0 0000B2D00B40 00C2 sxt4 out0 = out0 // r45 = r45 } { .mfb 000008000000 00D0 nop.m 0 000008000000 00D1 nop.f 0 00A000001000 00D2 br.call.sptk.many rp = DECC$STRLEN ;; // br0 = DECC$STRLEN } { .mii 0108AA070880 00E0 adds r34 = 2744, in0 // r34 = 2744, r32 0108B20508C0 00E1 adds r35 = 2856, in0 // r35 = 2856, r32 // 068960 012000004640 00E2 mov ai = 2 // r25 = 2 // 068961 } { .mmi 010802000B40 00F0 mov out0 = rqptr ;; // r45 = r32 008082200880 00F1 ld4 r34 = [r34] // 068959 010802C00040 00F2 mov gp = r44 // r1 = r44 } { .mmi 0080823008C0 0100 ld4 cptr = [r35] ;; // r35 = [r35] // 068960 010002210200 0101 add r8 = r8, r34 // 068959 0000B23008C0 0102 sxt4 cptr = cptr ;; // r35 = r35 // 068960 } { .mmi 010800804200 0110 adds r8 = 2, r8 ;; // 068959 000008000000 0111 nop.m 0 0000B0800B80 0112 sxt4 out1 = r8 // r46 = r8 // 068961 } { .mfb 000008000000 0120 nop.m 0 000008000000 0121 nop.f 0 00A000001000 0122 br.call.sptk.many rp = VmGetHeap ;; // br0 = VmGetHeap } { .mii 0108B2050900 0130 adds r36 = 2856, in0 // r36 = 2856, r32 010802C00040 0131 mov gp = r44 // r1 = r44 000008000000 0132 nop.i 0 ;; } { .mmi 008C82410000 0140 st4 [r36] = r8 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 35 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 008002300940 0141 ld1 r37 = [r35] // 068962 000008000000 0142 nop.i 0 ;; } { .mii 000008000000 0150 nop.m 0 0000A2500940 0151 sxt1 r37 = r37 ;; 01C0025001C0 0152 cmp.eq pr7, pr0 = r0, r37 } { .mfb 000008000000 0160 nop.m 0 000008000000 0161 nop.f 0 008600016007 0162 (pr7) br.cond.dpnt.many L$499 ;; } 0170 L$500: { .mii 00AC0084A040 0170 st1 [r8] = r37, 1 0108023028C0 0171 adds r35 = 1, r35 000008000000 0172 nop.i 0 ;; } { .mmi 00A0023029C0 0180 ld1 r39 = [r35], 1 ;; 000008000000 0181 nop.m 0 0000A27009C0 0182 sxt1 r39 = r39 ;; } { .mfb 01C002700240 0190 cmp.eq pr9, pr0 = r0, r39 000008000000 0191 nop.f 0 008600010009 0192 (pr9) br.cond.dpnt.many L$499 ;; } { .mmi 00AC0084E040 01A0 st1 [r8] = r39, 1 ;; 0080023000C0 01A1 ld1 r3 = [r35] 000008000000 01A2 nop.i 0 ;; } { .mii 000008000000 01B0 nop.m 0 0000A03000C0 01B1 sxt1 r3 = r3 ;; 01C0003002C0 01B2 cmp.eq pr11, pr0 = r0, r3 } { .mfb 000008000000 01C0 nop.m 0 000008000000 01C1 nop.f 0 00860000A00B 01C2 (pr11) br.cond.dpnt.many L$499 ;; } { .mii 008C00806000 01D0 st1 [r8] = r3 010820800440 01D1 adds r17 = 512, r8 010822300240 01D2 adds r9 = 512, r35 } { .mmi 0108023028C0 01E0 adds r35 = 1, r35 ;; 0080023002C0 01E1 ld1 r11 = [r35] 010800802200 01E2 adds r8 = 1, r8 } { .mmi 00CB41100000 01F0 lfetch.excl [r17] ;; 00CB00900000 01F1 lfetch [r9] Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 36 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 0000A0B00940 01F2 sxt1 r37 = r11 ;; } { .mfb 01C062500000 0200 cmp.eq pr0, pr12 = r0, r37 000008000000 0201 nop.f 0 0095FFFEE00C 0202 (pr12) br.cond.dptk.many L$500 ;; } 0210 L$499: { .mii 01200005A4C0 0210 mov r19 = 45 // 068963 01200007C540 0211 mov r21 = 62 // 068964 01081A0685C0 0212 adds r23 = 436, in0 // r23 = 436, r32 // 068965 } { .mmi 010800802480 0220 adds sptr = 1, sptr ;; // r18 = 1, r8 // 068963 00AC00826040 0221 st1 [r8] = r19, 1 010801202480 0222 adds r18 = 1, r18 ;; } { .mmi 008C0082A000 0230 st1 [r8] = r21 ;; // 068964 0080817005C0 0231 ld4 cptr = [r23] // r23 = [r23] // 068965 000008000000 0232 nop.i 0 ;; } { .mib 000008000000 0240 nop.m 0 0000B17005C0 0241 sxt4 cptr = cptr // r23 = r23 004000000000 0242 nop.b 0 ;; } { .mmi 008001700600 0250 ld1 r24 = [r23] ;; 000008000000 0251 nop.m 0 0000A1800600 0252 sxt1 r24 = r24 ;; } { .mfb 01C0018003C0 0260 cmp.eq pr15, pr0 = r0, r24 000008000000 0261 nop.f 0 00860001600F 0262 (pr15) br.cond.dpnt.many L$497 ;; } 0270 L$504: { .mii 00AC01230040 0270 st1 [r18] = r24, 1 0108017025C0 0271 adds r23 = 1, r23 000008000000 0272 nop.i 0 ;; } { .mmi 00A001702680 0280 ld1 r26 = [r23], 1 ;; 000008000000 0281 nop.m 0 0000A1A00680 0282 sxt1 r26 = r26 ;; } { .mfb 01C001A001C0 0290 cmp.eq pr7, pr0 = r0, r26 000008000000 0291 nop.f 0 008600010007 0292 (pr7) br.cond.dpnt.many L$497 ;; } { .mmi 00AC01234040 02A0 st1 [r18] = r26, 1 ;; 008001700700 02A1 ld1 r28 = [r23] Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 37 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 02A2 nop.i 0 ;; } { .mii 000008000000 02B0 nop.m 0 0000A1C00700 02B1 sxt1 r28 = r28 ;; 01C001C00240 02B2 cmp.eq pr9, pr0 = r0, r28 } { .mfb 000008000000 02C0 nop.m 0 000008000000 02C1 nop.f 0 00860000A009 02C2 (pr9) br.cond.dpnt.many L$497 ;; } { .mii 008C01238000 02D0 st1 [r18] = r28 010821200B40 02D1 adds out0 = 512, r18 // r45 = 512, r18 010821700740 02D2 adds r29 = 512, r23 } { .mmi 0108017025C0 02E0 adds r23 = 1, r23 ;; 0080017007C0 02E1 ld1 r31 = [r23] 010801202480 02E2 adds r18 = 1, r18 } { .mmi 00CB42D00000 02F0 lfetch.excl [out0] ;; // [r45] 00CB01D00000 02F1 lfetch [r29] 0000A1F00600 02F2 sxt1 r24 = r31 ;; } { .mfb 01C051800000 0300 cmp.eq pr0, pr10 = r0, r24 000008000000 0301 nop.f 0 0095FFFEE00A 0302 (pr10) br.cond.dptk.many L$504 ;; } 0310 L$497: // 068966 { .mii 0122080D0B80 0310 addl out1 = 8424, r0 // r46 = 8424, r0 // 068972 012000006640 0311 mov ai = 3 ;; // r25 = 3 // 068977 010002E40B80 0312 add out1 = in0, out1 // r46 = r32, r46 // 068972 } { .mmi 01081A068BC0 0320 adds out2 = 436, in0 ;; // r47 = 436, r32 // 068974 008082E00900 0321 ld4 tkptr = [out1] // r36 = [r46] // 068972 000008000000 0322 nop.i 0 } { .mii 008082F00980 0330 ld4 cptr = [out2] // r38 = [r47] // 068974 012000100BC0 0331 add out2 = @ltoff($LITERAL$+944), // r47 = @ltoff($LITERAL$+944), r1 // 068977 gp ;; 0000B2600980 0332 sxt4 cptr = cptr // r38 = r38 // 068974 } { .mii 0080C2F00B80 0340 ld8 out1 = $LITERAL$ // r46 = [r47] // 068977 01200000EBC0 0341 mov out2 = 7 // r47 = 7 0000B2400900 0342 sxt4 tkptr = tkptr ;; // r36 = r36 // 068972 } { .mfb 010802600B40 0350 mov out0 = cptr // r45 = r38 // 068977 000008000000 0351 nop.f 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 38 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00A000001000 0352 br.call.sptk.many rp = strsame ;; // br0 = strsame } { .mii 012000008880 0360 mov r34 = 4 // 069020 01C4008001C0 0361 cmp4.eq pr7, pr0 = r0, r8 // 068977 010802C00040 0362 mov gp = r44 // r1 = r44 } { .mfb 000008000000 0370 nop.m 0 000008000000 0371 nop.f 0 008600006007 0372 (pr7) br.cond.dpnt.many L$508 ;; } { .mii 01080A4308C0 0380 adds r35 = 152, r36 // 068980 0120000069C0 0381 mov r39 = 3 01080260E980 0382 adds r38 = 7, r38 ;; // 068977 } { .mfb 008C8234E000 0390 st4 [r35] = r39 // 068980 000008000000 0391 nop.f 0 008000023000 0392 br.sptk.many L$509 ;; // 068983 } 03A0 L$508: { .mii 012000100BC0 03A0 add out2 = @ltoff($LITERAL$+928), // r47 = @ltoff($LITERAL$+928), r1 // 068984 gp 012000006640 03A1 mov ai = 3 // r25 = 3 010802600B40 03A2 mov out0 = cptr ;; // r45 = r38 } { .mib 0080C2F00B80 03B0 ld8 out1 = $LITERAL$ // r46 = [r47] 012000010BC0 03B1 mov out2 = 8 // r47 = 8 00A000001000 03B2 br.call.sptk.many rp = strsame ;; // br0 = strsame } { .mib 01C4008001C0 03C0 cmp4.eq pr7, pr0 = r0, r8 010802C00040 03C1 mov gp = r44 // r1 = r44 008600006007 03C2 (pr7) br.cond.dpnt.many L$511 ;; } { .mii 01080A430940 03D0 adds r37 = 152, r36 // 068987 010802610980 03D1 adds r38 = 8, r38 // 068984 000008000000 03D2 nop.i 0 ;; } { .mfb 008C82544000 03E0 st4 [r37] = r34 // 068987 000008000000 03E1 nop.f 0 008000019000 03E2 br.sptk.many L$509 ;; // 068990 } 03F0 L$511: { .mii 012000100BC0 03F0 add out2 = @ltoff($LITERAL$+920), // r47 = @ltoff($LITERAL$+920), r1 // 068991 gp 012000006640 03F1 mov ai = 3 // r25 = 3 010802600B40 03F2 mov out0 = cptr ;; // r45 = r38 } { .mib Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 39 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 0080C2F00B80 0400 ld8 out1 = $LITERAL$ // r46 = [r47] 01200000CBC0 0401 mov out2 = 6 // r47 = 6 00A000001000 0402 br.call.sptk.many rp = strsame ;; // br0 = strsame } { .mib 01C4008001C0 0410 cmp4.eq pr7, pr0 = r0, r8 010802C00040 0411 mov gp = r44 // r1 = r44 008600006007 0412 (pr7) br.cond.dpnt.many L$513 ;; } { .mii 01080A4309C0 0420 adds r39 = 152, r36 // 068994 01200000A8C0 0421 mov r35 = 5 01080260C980 0422 adds r38 = 6, r38 ;; // 068991 } { .mfb 008C82746000 0430 st4 [r39] = r35 // 068994 000008000000 0431 nop.f 0 00800000F000 0432 br.sptk.many L$509 ;; // 068997 } 0440 L$513: { .mii 012000100BC0 0440 add out2 = @ltoff($LITERAL$+904), // r47 = @ltoff($LITERAL$+904), r1 // 068998 gp 012000006640 0441 mov ai = 3 // r25 = 3 010802600B40 0442 mov out0 = cptr ;; // r45 = r38 } { .mib 0080C2F00B80 0450 ld8 out1 = $LITERAL$ // r46 = [r47] 012000012BC0 0451 mov out2 = 9 // r47 = 9 00A000001000 0452 br.call.sptk.many rp = strsame ;; // br0 = strsame } { .mib 01C4008001C0 0460 cmp4.eq pr7, pr0 = r0, r8 010802C00040 0461 mov gp = r44 // r1 = r44 008600006007 0462 (pr7) br.cond.dpnt.many L$515 ;; } { .mii 01080A430940 0470 adds r37 = 152, r36 // 069001 01200000A880 0471 mov r34 = 5 010802612980 0472 adds r38 = 9, r38 ;; // 068998 } { .mfb 008C82544000 0480 st4 [r37] = r34 // 069001 000008000000 0481 nop.f 0 008000005000 0482 br.sptk.many L$509 ;; // 069004 } 0490 L$515: { .mmi 01080A4308C0 0490 adds r35 = 152, r36 ;; // 069007 008C82342000 0491 st4 [r35] = r33 000008000000 0492 nop.i 0 } 04A0 L$509: // 069008 { .mii 01080A0689C0 04A0 adds r39 = 180, in0 // r39 = 180, r32 // 069015 01080A430240 04A1 adds r9 = 152, r36 ;; // 069017 012000002640 04A2 mov ai = 1 // r25 = 1 // 069018 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 40 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mii 0080827009C0 04B0 ld4 r39 = [r39] // 069015 012000002B40 04B1 mov out0 = 1 ;; // r45 = 1 // 069018 0000B27009C0 04B2 sxt4 r39 = r39 ;; // 069015 } { .mmi 01080A7489C0 04C0 adds r39 = 164, r39 ;; 0080827009C0 04C1 ld4 in = [r39] // r39 = [r39] 000008000000 04C2 nop.i 0 } { .mmi 008080900880 04D0 ld4 r34 = [r9] ;; // 069017 01C442700000 04D1 cmp4.eq pr0, pr8 = r0, in // pr0, pr8 = r0, r39 // 069016 0119FA7FE0C0 04D2 adds r3 = -1, in ;; // r3 = -1, r39 } { .mfb 0108003009C8 04E0 (pr8) mov in = r3 // r39 = r3 000008000000 04E1 nop.f 0 00A000001000 04E2 br.call.sptk.many rp = // br0 = InstanceMutexLock // 069018 InstanceMutexLock ;; } { .mii 010802C00040 04F0 mov gp = r44 // r1 = r44 01008A74E9C0 04F1 shladd r39 = in, 2, in // r39 = r39, 2, r39 // 069020 012000002640 04F2 mov ai = 1 // r25 = 1 // 069021 } { .mmi 012000002B40 0500 mov out0 = 1 ;; // r45 = 1 012000100940 0501 add r37 = // r37 = @ltoffx(ProxyAccountingPtr), // 069019 @ltoffx(ProxyAccountingPtr), // r1 gp 010002744880 0502 add r34 = r34, r39 ;; // 069020 } { .mib 0080C2500940 0510 ld8.mov r37 = [r37], ProxyAccountingPtr // 069019 0000B2200880 0511 sxt4 r34 = r34 // 069020 004000000000 0512 nop.b 0 ;; } { .mmi 008082500940 0520 ld4 r37 = ProxyAccountingPtr ;; // r37 = [r37] // 069019 000008000000 0521 nop.m 0 0000B2500940 0522 sxt4 r37 = r37 ;; } { .mii 01080A560840 0530 adds r33 = 176, r37 01008A544880 0531 shladd r34 = r34, 2, r37 // 069020 01080A560940 0532 adds r37 = 176, r37 ;; // 069019 } { .mmi 008082100840 0540 ld4 r33 = [r33] ;; 010802102840 0541 adds r33 = 1, r33 000008000000 0542 nop.i 0 ;; } { .mii 008C82542000 0550 st4 [r37] = r33 010802290880 0551 adds r34 = 72, r34 // 069020 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 41 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 0552 nop.i 0 ;; } { .mmi 0080822008C0 0560 ld4 r35 = [r34] ;; 0108023028C0 0561 adds r35 = 1, r35 000008000000 0562 nop.i 0 ;; } { .mfb 008C82246000 0570 st4 [r34] = r35 000008000000 0571 nop.f 0 00A000001000 0572 br.call.sptk.many rp = // br0 = InstanceMutexUnLock // 069021 InstanceMutexUnLock ;; } { .mii 008002600840 0580 ld1 r33 = [r38] // 069028 01081A4D89C0 0581 adds r39 = 492, tkptr // r39 = 492, r36 // 069027 010802C00040 0582 mov gp = r44 ;; // r1 = r44 // 069021 } { .mii 0108027FE940 0590 adds zptr = 127, r39 // r37 = 127, r39 // 069027 0000A2100840 0591 sxt1 r33 = r33 // 069028 010802700880 0592 mov sptr = r39 ;; // r34 = r39 // 069027 } { .mfb 01C0021001C0 05A0 cmp.eq pr7, pr0 = r0, r33 // 069028 000008000000 05A1 nop.f 0 00860001E007 05A2 (pr7) br.cond.dpnt.many L$517 ;; } 05B0 L$518: { .mii 0080026008C0 05B0 ld1 r35 = [r38] 01A44A544000 05B1 cmp4.ltu pr0, pr9 = sptr, zptr ;; // pr0, pr9 = r34, r37 01C85235E2C0 05B2 cmp.eq pr11, pr10 = 47, r35 } { .mmi 01C862374340 05C0 cmp.eq pr13, pr12 = 58, r35 ;; 01C2000002C9 05C1 (pr9) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 05C2 nop.i 0 ;; } { .mfb 01C20000034B 05D0 (pr11) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 05D1 nop.f 0 00860001800D 05D2 (pr13) br.cond.dpnt.many L$517 ;; } { .mmi 00A0026020C0 05E0 ld1 r3 = [r38], 1 ;; // 069029 00AC02206040 05E1 st1 [r34] = r3, 1 000008000000 05E2 nop.i 0 ;; } { .mmi 008002600240 05F0 ld1 r9 = [r38] ;; // 069028 000008000000 05F1 nop.m 0 0000A0900240 05F2 sxt1 r9 = r9 ;; } { .mfb 01C0009003C0 0600 cmp.eq pr15, pr0 = r0, r9 000008000000 0601 nop.f 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 42 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00860001200F 0602 (pr15) br.cond.dpnt.many L$517 ;; } { .mii 008002600280 0610 ld1 r10 = [r38] 01A43A544000 0611 cmp4.ltu pr0, pr7 = sptr, zptr // pr0, pr7 = r34, r37 0108226002C0 0612 adds r11 = 512, r38 ;; } { .mii 01C840A5E240 0620 cmp.eq pr9, pr8 = 47, r10 01C850A742C0 0621 cmp.eq pr11, pr10 = 58, r10 000008000000 0622 nop.i 0 } { .mmi 00CB00B00000 0630 lfetch [r11] ;; 01C200000247 0631 (pr7) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 0632 nop.i 0 ;; } { .mfb 01C2000002C9 0640 (pr9) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 0641 nop.f 0 00860000A00B 0642 (pr11) br.cond.dpnt.many L$517 ;; } { .mii 008C02212000 0650 st1 [r34] = r9 // 069029 010802602980 0651 adds r38 = 1, r38 // 069028 0108222004C0 0652 adds r19 = 512, r34 // 069029 } { .mmi 010802202880 0660 adds r34 = 1, r34 ;; 008002600480 0661 ld1 r18 = [r38] // 069028 000008000000 0662 nop.i 0 } { .mmi 00CB41300000 0670 lfetch.excl [r19] ;; // 069029 000008000000 0671 nop.m 0 0000A1200480 0672 sxt1 r18 = r18 ;; // 069028 } { .mfb 01C061200000 0680 cmp.eq pr0, pr12 = r0, r18 000008000000 0681 nop.f 0 0095FFFE600C 0682 (pr12) br.cond.dptk.many L$518 ;; } 0690 L$517: // 069029 { .mfb 01A47A544000 0690 cmp4.ltu pr0, pr15 = sptr, zptr // pr0, pr15 = r34, r37 // 069031 000008000000 0691 nop.f 0 0086000CE00F 0692 (pr15) br.cond.dpnt.many L$523 ;; } { .mmi 008002600500 06A0 ld1 r20 = [r38] ;; 000008000000 06A1 nop.m 0 0000A1400500 06A2 sxt1 r20 = r20 ;; } { .mfb 01C0014001C0 06B0 cmp.eq pr7, pr0 = r0, r20 000008000000 06B1 nop.f 0 008600006007 06B2 (pr7) br.cond.dpnt.many L$525 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 43 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mmi 008002600540 06C0 ld1 r21 = [r38] ;; 01C841574000 06C1 cmp.eq pr0, pr8 = 58, r21 000008000000 06C2 nop.i 0 } { .mfb 000008000000 06D0 nop.m 0 000008000000 06D1 nop.f 0 0086000C6008 06D2 (pr8) br.cond.dpnt.many L$523 ;; } 06E0 L$525: // 069037 { .mmi 008C02200000 06E0 st1 [r34] = r0 ;; // 069038 00A0026025C0 06E1 ld1 r23 = [r38], 1 // 069044 000008000000 06E2 nop.i 0 ;; } { .mfb 01C851774000 06F0 cmp.eq pr0, pr10 = 58, r23 000008000000 06F1 nop.f 0 00860006200A 06F2 (pr10) br.cond.dpnt.many L$530 ;; } { .mmi 012000100840 0700 add r33 = // r33 = @ltoffx(DECC$$GL___CTYPEA), r1 // 069047 @ltoffx(DECC$$GL___CTYPEA), gp 008002600B40 0701 ld1 out0 = [r38] // r45 = [r38] 000008000000 0702 nop.i 0 ;; } { .mib 0080C2100840 0710 ld8.mov r33 = [r33], DECC$$GL___CTYPEA 0000A2D00680 0711 sxt1 r26 = out0 // r26 = r45 004000000000 0712 nop.b 0 ;; } { .mmi 008082100600 0720 ld4 r24 = [r33] ;; 01C401800340 0721 cmp4.eq pr13, pr0 = r0, r24 000008000000 0722 nop.i 0 } { .mfb 000008000000 0730 nop.m 0 000008000000 0731 nop.f 0 00860001200D 0732 (pr13) br.cond.dpnt.many L$533 ;; } { .mmi 0120001006C0 0740 add r27 = // r27 = @ltoffx(DECC$$GA___CTYPET), r1 @ltoffx(DECC$$GA___CTYPET), gp ;; 0080C1B006C0 0741 ld8.mov r27 = [r27], DECC$$GA___CTYPET 000008000000 0742 nop.i 0 ;; } { .mmi 008081B006C0 0750 ld4 r27 = DECC$$GA___CTYPET ;; // r27 = [r27] 000008000000 0751 nop.m 0 0000B1B006C0 0752 sxt4 r27 = r27 ;; } { .mmi 010089B34680 0760 shladd r26 = r26, 2, r27 ;; 008081A00680 0761 ld4 r26 = [r26] Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 44 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 0762 nop.i 0 ;; } { .mmi 010161A08680 0770 and r26 = 4, r26 ;; 01C471A00000 0771 cmp4.eq pr0, pr14 = r0, r26 000008000000 0772 nop.i 0 } { .mfb 000008000000 0780 nop.m 0 000008000000 0781 nop.f 0 00860000C00E 0782 (pr14) br.cond.dpnt.many L$534 ;; } 0790 L$535: // 069062 { .mii 01080A468980 0790 adds r38 = 180, r36 // 069064 012018076840 0791 mov r33 = 443 01082A4E8A00 0792 adds r40 = 756, r36 ;; // 069065 } { .mlx 008C82642000 07A0 st4 [r38] = r33 // 069064 800000000000 07A1 movl r35 = 3355700 ;; // 069065 018689CD11 } { .mfb 008C82846000 07B0 st4 [r40] = r35 000008000000 07B1 nop.f 0 008000051000 07B2 br.sptk.many L$545 ;; // 069066 } 07C0 L$533: // 069047 { .mib 012000002640 07C0 mov ai = 1 // r25 = 1 0000B1A00B40 07C1 sxt4 out0 = r26 // r45 = r26 00A000001000 07C2 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT } { .mib 01C4008001C0 07D0 cmp4.eq pr7, pr0 = r0, r8 010802C00040 07D1 mov gp = r44 // r1 = r44 0095FFFF8007 07D2 (pr7) br.cond.dptk.many L$535 ;; } 07E0 L$534: { .mii 0080026008C0 07E0 ld1 r35 = [r38] // 069051 01082A4E8940 07E1 adds r37 = 756, tkptr ;; // r37 = 756, r36 // 069049 0000A23008C0 07E2 sxt1 r35 = r35 // 069051 } { .mmi 01080251E880 07F0 adds zptr = 15, r37 ;; // r34 = 15, r37 // 069049 01C002300240 07F1 cmp.eq pr9, pr0 = r0, r35 // 069051 0108025008C0 07F2 mov sptr = r37 // r35 = r37 // 069049 } { .mfb 000008000000 0800 nop.m 0 000008000000 0801 nop.f 0 008600020009 0802 (pr9) br.cond.dpnt.many L$537 ;; // 069051 } { .mii 0080026000C0 0810 ld1 r3 = [r38] Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 45 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 012000100A00 0811 add r40 = // r40 = @ltoffx(DECC$$GA___CTYPET), r1 @ltoffx(DECC$$GA___CTYPET), gp ;; 0000A03000C0 0812 sxt1 r3 = r3 } { .mfi 0080C2800A00 0820 ld8.mov r40 = [r40], DECC$$GA___CTYPET 000008000000 0821 nop.f 0 000008000000 0822 nop.i 0 ;; } 0830 L$538: { .mii 008082100240 0830 ld4 r9 = [r33] 01A45A246280 0831 cmp4.ltu pr10, pr11 = sptr, zptr // pr10, pr11 = r35, r34 010800300280 0832 mov r10 = r3 } { .mmi 0080828002C0 0840 ld4 r11 = [r40] ;; 01C00000108B 0841 (pr11) cmp.eq.unc pr2, pr0 = r0, r0 01C00000138A 0842 (pr10) cmp.eq.unc pr14, pr0 = r0, r0 } { .mfb 01C400900340 0850 cmp4.eq pr13, pr0 = r0, r9 000008000000 0851 nop.f 0 00860000A00D 0852 (pr13) br.cond.dpnt.many L$540 ;; } { .mii 000008000000 0860 nop.m 0 0000B03000C0 0861 sxt4 r3 = r3 0000B0B002C0 0862 sxt4 r11 = r11 ;; } { .mmi 010088B060C0 0870 shladd r3 = r3, 2, r11 ;; 0080803000C0 0871 ld4 r3 = [r3] 000008000000 0872 nop.i 0 ;; } { .mmi 0101603080C0 0880 and r3 = 4, r3 ;; 01C478300180 0881 cmp4.eq pr6, pr15 = r0, r3 000008000000 0882 nop.i 0 ;; } { .mbb 01C278000002 0890 (pr2) cmp.eq.or.andcm pr0, pr15 = r0, r0 00860000800F 0891 (pr15) br.cond.dpnt.many L$541 00800000F000 0892 br.sptk.many L$537 ;; } 08A0 L$540: { .mib 012000002640 08A0 mov ai = 1 // r25 = 1 0000B0A00B40 08A1 sxt4 out0 = r10 // r45 = r10 00A000001000 08A2 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT } { .mii 01C4308001C0 08B0 cmp4.eq pr7, pr6 = r0, r8 010802C00040 08B1 mov gp = r44 ;; // r1 = r44 01C2000001C2 08B2 (pr2) cmp.eq.or.andcm pr7, pr0 = r0, r0 } { .mfb Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 46 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 08C0 nop.m 0 000008000000 08C1 nop.f 0 008600008007 08C2 (pr7) br.cond.dpnt.many L$537 ;; } 08D0 L$541: { .mmi 00A0026020C0 08D0 ld1 r3 = [r38], 1 ;; 00AC02306040 08D1 st1 [r35] = r3, 1 000008000000 08D2 nop.i 0 ;; } { .mmi 008002600280 08E0 ld1 r10 = [r38] ;; 000008000000 08E1 nop.m 0 0000A0A000C0 08E2 sxt1 r3 = r10 ;; } { .mfb 01C040300000 08F0 cmp.eq pr0, pr8 = r0, r3 000008000000 08F1 nop.f 0 0095FFFE8008 08F2 (pr8) br.cond.dptk.many L$538 ;; } 0900 L$537: { .mfb 01A402246280 0900 cmp4.ltu pr10, pr0 = sptr, zptr // pr10, pr0 = r35, r34 // 069052 000008000000 0901 nop.f 0 00860001800A 0902 (pr10) br.cond.dpnt.many L$542 ;; } { .mii 0120001002C0 0910 add r11 = @ltoffx(AccountingPtr), // r11 = @ltoffx(AccountingPtr), r1 // 069054 gp 012000002640 0911 mov ai = 1 // r25 = 1 000008000000 0912 nop.i 0 ;; } { .mmi 0080C0B002C0 0920 ld8.mov r11 = [r11], AccountingPtr ;; 008080B002C0 0921 ld4 r11 = AccountingPtr // r11 = [r11] 000008000000 0922 nop.i 0 ;; } { .mii 000008000000 0930 nop.m 0 0000B0B002C0 0931 sxt4 r11 = r11 ;; 010820B00B40 0932 adds out0 = 512, r11 // r45 = 512, r11 } { .mfb 000008000000 0940 nop.m 0 000008000000 0941 nop.f 0 00A000001000 0942 br.call.sptk.many rp = // br0 = InstanceGblSecIncrLong InstanceGblSecIncrLong ;; } { .mii 01092A030980 0950 adds r38 = 4760, in0 // r38 = 4760, r32 // 069055 0120180EC840 0951 mov r33 = 502 012000004640 0952 mov ai = 2 // r25 = 2 // 069056 } { .mmi 012008008B80 0960 mov out1 = 132 ;; // r46 = 132 010802000B40 0961 mov out0 = rqptr // r45 = r32 010802C00040 0962 mov gp = r44 // r1 = r44 // 069054 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 47 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mfi 008C82642000 0970 st4 [r38] = r33 // 069055 000008000000 0971 nop.f 0 000008000000 0972 nop.i 0 ;; } { .mfb 000008000000 0980 nop.m 0 000008000000 0981 nop.f 0 00A000001000 0982 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor // 069056 } { .mii 010802C00040 0990 mov gp = r44 // r1 = r44 010800800B80 0991 mov out1 = r8 // r46 = r8 010802000B40 0992 mov out0 = rqptr ;; // r45 = r32 } { .mmi 012000100C00 09A0 add out3 = @ltoff($LITERAL$+440), // r48 = @ltoff($LITERAL$+440), r1 gp ;; 0080C3000BC0 09A1 ld8 out2 = $LITERAL$ // r47 = [r48] 01202003AC00 09A2 mov out3 = 541 // r48 = 541 } { .mfb 000008000000 09B0 nop.m 0 000008000000 09B1 nop.f 0 00800007F000 09B2 br.sptk.many L$560 ;; } 09C0 L$542: // 069058 { .mii 012000002640 09C0 mov ai = 1 // r25 = 1 // 069060 010802500B40 09C1 mov out0 = r37 // r45 = r37 000008000000 09C2 nop.i 0 } { .mfb 008C02300000 09D0 st1 [r35] = r0 // 069059 000008000000 09D1 nop.f 0 00A000001000 09D2 br.call.sptk.many rp = DECC$ATOL ;; // br0 = DECC$ATOL // 069060 } { .mii 01080A468880 09E0 adds r34 = 180, r36 010802C00040 09E1 mov gp = r44 // r1 = r44 000008000000 09E2 nop.i 0 ;; } { .mfb 008C82210000 09F0 st4 [r34] = r8 000008000000 09F1 nop.f 0 008000009000 09F2 br.sptk.many L$545 ;; // 069062 } 0A00 L$530: // 069068 { .mii 01080A4680C0 0A00 adds r3 = 180, r36 // 069070 012018076940 0A01 mov r37 = 443 01082A4E8280 0A02 adds r10 = 756, r36 ;; // 069071 } { .mlx 008C8034A000 0A10 st4 [r3] = r37 // 069070 800000000000 0A11 movl r9 = 3355700 ;; // 069071 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 48 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 018689CD04 } { .mfi 008C80A12000 0A20 st4 [r10] = r9 000008000000 0A21 nop.f 0 000008000000 0A22 nop.i 0 } 0A30 L$545: // 069072 { .mmi 0108224D8880 0A30 adds r34 = 620, tkptr ;; // r34 = 620, r36 // 069078 008002700440 0A31 ld1 r17 = [r39] // 069080 01080A2102C0 0A32 adds zptr = 136, r34 // r11 = 136, r34 // 069078 } { .mmi 010802200480 0A40 mov sptr = r34 ;; // r18 = r34 01A440B44000 0A41 cmp4.ltu pr0, pr8 = r34, zptr // pr0, pr8 = r34, r11 // 069080 0000A1100440 0A42 sxt1 r17 = r17 ;; } { .mmi 01C011100180 0A50 cmp.eq pr6, pr2 = r0, r17 ;; 01C200000188 0A51 (pr8) cmp.eq.or.andcm pr6, pr0 = r0, r0 000008000000 0A52 nop.i 0 } { .mfb 000008000000 0A60 nop.m 0 000008000000 0A61 nop.f 0 00860001C006 0A62 (pr6) br.cond.dpnt.many L$547 ;; // 069079 } 0A70 L$548: // 069081 { .mii 00AC01222040 0A70 st1 [r18] = r17, 1 0108027029C0 0A71 adds r39 = 1, r39 ;; // 069080 01A460B24000 0A72 cmp4.ltu pr0, pr12 = sptr, zptr // pr0, pr12 = r18, r11 } { .mmi 00A002702500 0A80 ld1 r20 = [r39], 1 ;; 000008000000 0A81 nop.m 0 0000A1400500 0A82 sxt1 r20 = r20 ;; } { .mmi 01C049400280 0A90 cmp.eq pr10, pr9 = r0, r20 ;; 01C20000028C 0A91 (pr12) cmp.eq.or.andcm pr10, pr0 = r0, r0 000008000000 0A92 nop.i 0 } { .mfb 000008000000 0AA0 nop.m 0 000008000000 0AA1 nop.f 0 00860001400A 0AA2 (pr10) br.cond.dpnt.many L$547 ;; // 069079 } { .mmi 00AC01228040 0AB0 st1 [r18] = r20, 1 ;; // 069081 008002700580 0AB1 ld1 r22 = [r39] // 069080 01A438B24000 0AB2 cmp4.ltu pr0, pr7 = sptr, zptr ;; // pr0, pr7 = r18, r11 } { .mii 000008000000 0AC0 nop.m 0 0000A1600580 0AC1 sxt1 r22 = r22 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 49 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01C069600380 0AC2 cmp.eq pr14, pr13 = r0, r22 ;; } { .mfb 01C200000387 0AD0 (pr7) cmp.eq.or.andcm pr14, pr0 = r0, r0 000008000000 0AD1 nop.f 0 00860000E00E 0AD2 (pr14) br.cond.dpnt.many L$547 ;; // 069079 } { .mii 008C0122C000 0AE0 st1 [r18] = r22 // 069081 010821200600 0AE1 adds r24 = 512, r18 010801202480 0AE2 adds r18 = 1, r18 } { .mmi 0108227005C0 0AF0 adds r23 = 512, r39 ;; 0108027029C0 0AF1 adds r39 = 1, r39 // 069080 01A458B24000 0AF2 cmp4.ltu pr0, pr11 = sptr, zptr // pr0, pr11 = r18, r11 } { .mmi 00CB41800000 0B00 lfetch.excl [r24] ;; // 069081 008002700680 0B01 ld1 r26 = [r39] // 069080 000008000000 0B02 nop.i 0 } { .mmi 00CB01700000 0B10 lfetch [r23] ;; // 069081 000008000000 0B11 nop.m 0 0000A1A00440 0B12 sxt1 r17 = r26 ;; // 069080 } { .mmi 01C041100080 0B20 cmp.eq pr2, pr8 = r0, r17 ;; 01C24000000B 0B21 (pr11) cmp.eq.or.andcm pr0, pr8 = r0, r0 000008000000 0B22 nop.i 0 } { .mfb 000008000000 0B30 nop.m 0 000008000000 0B31 nop.f 0 0095FFFE8008 0B32 (pr8) br.cond.dptk.many L$548 ;; // 069079 } 0B40 L$547: // 069081 { .mfb 01A448B24000 0B40 cmp4.ltu pr0, pr9 = sptr, zptr // pr0, pr9 = r18, r11 // 069082 000008000000 0B41 nop.f 0 008600004009 0B42 (pr9) br.cond.dpnt.many L$552 ;; } { .mmi 0120000746C0 0B50 mov r27 = 58 ;; 00AC01236040 0B51 st1 [r18] = r27, 1 000008000000 0B52 nop.i 0 ;; } 0B60 L$552: { .mii 01082A4E8740 0B60 adds cptr = 756, tkptr // r29 = 756, r36 // 069083 01A478B24000 0B61 cmp4.ltu pr0, pr15 = sptr, zptr // pr0, pr15 = r18, r11 // 069084 000008000000 0B62 nop.i 0 ;; } { .mmi 008001D00780 0B70 ld1 r30 = [r29] ;; 000008000000 0B71 nop.m 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 50 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 0000A1E00780 0B72 sxt1 r30 = r30 ;; } { .mmi 01C039E00340 0B80 cmp.eq pr13, pr7 = r0, r30 ;; 01C20000034F 0B81 (pr15) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 0B82 nop.i 0 } { .mfb 000008000000 0B90 nop.m 0 000008000000 0B91 nop.f 0 00860001C00D 0B92 (pr13) br.cond.dpnt.many L$554 ;; // 069083 } 0BA0 L$555: // 069085 { .mii 00AC0123C040 0BA0 st1 [r18] = r30, 1 010801D02740 0BA1 adds r29 = 1, r29 ;; // 069084 01A410B24000 0BA2 cmp4.ltu pr0, pr2 = sptr, zptr // pr0, pr2 = r18, r11 } { .mmi 00A001D02B40 0BB0 ld1 out0 = [r29], 1 ;; // r45 = [r29], 1 000008000000 0BB1 nop.m 0 0000A2D00B40 0BB2 sxt1 out0 = out0 ;; // r45 = r45 } { .mmi 01C072D00180 0BC0 cmp.eq pr6, pr14 = r0, out0 ;; // pr6, pr14 = r0, r45 01C200000182 0BC1 (pr2) cmp.eq.or.andcm pr6, pr0 = r0, r0 000008000000 0BC2 nop.i 0 } { .mfb 000008000000 0BD0 nop.m 0 000008000000 0BD1 nop.f 0 008600014006 0BD2 (pr6) br.cond.dpnt.many L$554 ;; // 069083 } { .mmi 00AC0125A040 0BE0 st1 [r18] = out0, 1 ;; // [r18] = r45, 1 // 069085 008001D00BC0 0BE1 ld1 out2 = [r29] // r47 = [r29] // 069084 01A450B24000 0BE2 cmp4.ltu pr0, pr10 = sptr, zptr ;; // pr0, pr10 = r18, r11 } { .mii 000008000000 0BF0 nop.m 0 0000A2F00BC0 0BF1 sxt1 out2 = out2 ;; // r47 = r47 01C042F00240 0BF2 cmp.eq pr9, pr8 = r0, out2 ;; // pr9, pr8 = r0, r47 } { .mfb 01C20000024A 0C00 (pr10) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 0C01 nop.f 0 00860000E009 0C02 (pr9) br.cond.dpnt.many L$554 ;; // 069083 } { .mii 008C0125E000 0C10 st1 [r18] = out2 // [r18] = r47 // 069085 010821200200 0C11 adds r8 = 512, r18 010801202480 0C12 adds r18 = 1, r18 } { .mmi 010821D00C00 0C20 adds out3 = 512, r29 ;; // r48 = 512, r29 010801D02740 0C21 adds r29 = 1, r29 // 069084 01A458B24000 0C22 cmp4.ltu pr0, pr11 = sptr, zptr // pr0, pr11 = r18, r11 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 51 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mmi 00CB40800000 0C30 lfetch.excl [r8] ;; // 069085 008001D00980 0C31 ld1 r38 = [r29] // 069084 000008000000 0C32 nop.i 0 } { .mmi 00CB03000000 0C40 lfetch [out3] ;; // [r48] // 069085 000008000000 0C41 nop.m 0 0000A2600780 0C42 sxt1 r30 = r38 ;; // 069084 } { .mmi 01C079E001C0 0C50 cmp.eq pr7, pr15 = r0, r30 ;; 01C27800000B 0C51 (pr11) cmp.eq.or.andcm pr0, pr15 = r0, r0 000008000000 0C52 nop.i 0 } { .mfb 000008000000 0C60 nop.m 0 000008000000 0C61 nop.f 0 0095FFFE800F 0C62 (pr15) br.cond.dptk.many L$555 ;; // 069083 } 0C70 L$554: // 069085 { .mfb 01A400B24080 0C70 cmp4.ltu pr2, pr0 = sptr, zptr // pr2, pr0 = r18, r11 // 069086 000008000000 0C71 nop.f 0 00860000C002 0C72 (pr2) br.cond.dpnt.many L$558 ;; } { .mii 012000100BC0 0C80 add out2 = @ltoff($LITERAL$+440), // r47 = @ltoff($LITERAL$+440), r1 // 069089 gp 01092A030A00 0C81 adds r40 = 4760, in0 // r40 = 4760, r32 // 069088 0120180E88C0 0C82 mov r35 = 500 } { .mmi 012000006640 0C90 mov ai = 3 ;; // r25 = 3 // 069089 0080C2F00B80 0C91 ld8 out1 = $LITERAL$ // r46 = [r47] 01202007CBC0 0C92 mov out2 = 574 // r47 = 574 } { .mmi 010802000B40 0CA0 mov out0 = rqptr ;; // r45 = r32 008C82846000 0CA1 st4 [r40] = r35 // 069088 000008000000 0CA2 nop.i 0 } { .mfb 000008000000 0CB0 nop.m 0 000008000000 0CB1 nop.f 0 00A000001000 0CB2 br.call.sptk.many rp = // br0 = ErrorGeneralOverflow // 069089 ErrorGeneralOverflow ;; } { .mfb 000008000000 0CC0 nop.m 0 000008000000 0CC1 nop.f 0 00800001F000 0CC2 br.sptk.many L$561 ;; } 0CD0 L$558: // 069091 { .mii 01080A450900 0CD0 adds r36 = 168, r36 // 069093 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 52 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01002A224200 0CD1 sub r8 = sptr, r34 // r8 = r18, r34 000008000000 0CD2 nop.i 0 } { .mmi 008C01200000 0CE0 st1 [r18] = r0 ;; // 069092 008C82410000 0CE1 st4 [r36] = r8 // 069093 012000002200 0CE2 mov r8 = 1 // 069101 } { .mfb 000008000000 0CF0 nop.m 0 000008000000 0CF1 nop.f 0 00800001B000 0CF2 br.sptk.many L$544 ;; } 0D00 L$523: // 069031 { .mii 0120001009C0 0D00 add r39 = @ltoffx(AccountingPtr), // r39 = @ltoffx(AccountingPtr), r1 // 069033 gp 012000002640 0D01 mov ai = 1 // r25 = 1 000008000000 0D02 nop.i 0 ;; } { .mmi 0080C27009C0 0D10 ld8.mov r39 = [r39], AccountingPtr ;; 0080827009C0 0D11 ld4 r39 = AccountingPtr // r39 = [r39] 000008000000 0D12 nop.i 0 ;; } { .mii 000008000000 0D20 nop.m 0 0000B27009C0 0D21 sxt4 r39 = r39 ;; 010822700B40 0D22 adds out0 = 512, r39 // r45 = 512, r39 } { .mfb 000008000000 0D30 nop.m 0 000008000000 0D31 nop.f 0 00A000001000 0D32 br.call.sptk.many rp = // br0 = InstanceGblSecIncrLong InstanceGblSecIncrLong ;; } { .mii 01092A030980 0D40 adds r38 = 4760, in0 // r38 = 4760, r32 // 069034 0120180EC840 0D41 mov r33 = 502 012000004640 0D42 mov ai = 2 // r25 = 2 // 069035 } { .mmi 012008008B80 0D50 mov out1 = 132 ;; // r46 = 132 010802000B40 0D51 mov out0 = rqptr // r45 = r32 010802C00040 0D52 mov gp = r44 // r1 = r44 // 069033 } { .mfi 008C82642000 0D60 st4 [r38] = r33 // 069034 000008000000 0D61 nop.f 0 000008000000 0D62 nop.i 0 ;; } { .mfb 000008000000 0D70 nop.m 0 000008000000 0D71 nop.f 0 00A000001000 0D72 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor // 069035 } { .mii Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 53 ProxyTunnelRequestParse 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 010802C00040 0D80 mov gp = r44 // r1 = r44 010800800B80 0D81 mov out1 = r8 // r46 = r8 010802000B40 0D82 mov out0 = rqptr ;; // r45 = r32 } { .mmi 012000100C00 0D90 add out3 = @ltoff($LITERAL$+440), // r48 = @ltoff($LITERAL$+440), r1 gp ;; 0080C3000BC0 0D91 ld8 out2 = $LITERAL$ // r47 = [r48] 012020010C00 0D92 mov out3 = 520 // r48 = 520 } 0DA0 L$560: { .mfb 012000008640 0DA0 mov ai = 4 // r25 = 4 000008000000 0DA1 nop.f 0 00A000001000 0DA2 br.call.sptk.many rp = ErrorGeneral ;; // br0 = ErrorGeneral } 0DB0 L$561: { .mii 012000004200 0DB0 mov r8 = 2 // 069036 010802C00040 0DB1 mov gp = r44 // r1 = r44 // 069035 000008000000 0DB2 nop.i 0 ;; } 0DC0 L$544: // 069036 { .mii 000008000000 0DC0 nop.m 0 0016000567C0 0DC1 mov pr = r43, -65474 ;; 000154054000 0DC2 mov.i rspfs = r42 ;; } { .mib 000008000000 0DD0 nop.m 0 000E00152000 0DD1 mov rp = r41 // br0 = r41 000108001100 0DD2 br.ret.sptk.many rp ;; // br0 } .endp ProxyTunnelRequestParse Routine Size: 3488 bytes, Routine Base: $CODE$ + 0040 .proc ProxyTunnelRebuildRequest .align 32 .global ProxyTunnelRebuildRequest ProxyTunnelRebuildRequest: // 069112 { .mii 002C005108C0 0DE0 alloc r35 = rspfs, 1, 4, 3, 0 01084A050200 0DE1 adds r8 = 1192, in0 // r8 = 1192, r32 // 069129 000188000880 0DE2 mov r34 = rp ;; // r34 = br0 // 069112 } { .mii 008080800840 0DF0 ld4 rqptr = [r8] // r33 = [r8] // 069129 010800100900 0DF1 mov r36 = gp ;; // r36 = r1 // 069112 0000B2100840 0DF2 sxt4 rqptr = rqptr ;; // r33 = r33 // 069129 } { .mmi 0108A21E0240 0E00 adds r9 = 2672, r33 ;; // 069131 008080900240 0E01 ld4 r9 = [r9] 000008000000 0E02 nop.i 0 ;; } { .mfb Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 54 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01C4009001C0 0E10 cmp4.eq pr7, pr0 = r0, r9 000008000000 0E11 nop.f 0 008600008007 0E12 (pr7) br.cond.dpnt.many L$216 ;; } { .mii 0120001000C0 0E20 add r3 = @ltoff($LITERAL$+624), gp // r3 = @ltoff($LITERAL$+624), r1 // 069137 010812038200 0E21 adds r8 = 284, in0 // r8 = 284, r32 000008000000 0E22 nop.i 0 ;; } { .mmi 0080C03000C0 0E30 ld8 r3 = $LITERAL$ ;; // r3 = [r3] 008C80806000 0E31 st4 [r8] = r3 01080A048200 0E32 adds r8 = 164, in0 ;; // r8 = 164, r32 // 069138 } { .mfb 008C80800000 0E40 st4 [r8] = r0 000008000000 0E41 nop.f 0 008000145000 0E42 br.sptk.many L$562 ;; } 0E50 L$216: // 069140 { .mii 0108AA160240 0E50 adds r9 = 2736, r33 // 069143 012000004640 0E51 mov ai = 2 // r25 = 2 010802100940 0E52 mov out0 = rqptr ;; // r37 = r33 } { .mmi 008080900240 0E60 ld4 r9 = [r9] ;; 010820900240 0E61 adds r9 = 512, r9 000008000000 0E62 nop.i 0 ;; } { .mib 000008000000 0E70 nop.m 0 0000B0900980 0E71 sxt4 out1 = r9 // r38 = r9 00A000001000 0E72 br.call.sptk.many rp = VmGetHeap ;; // br0 = VmGetHeap } { .mii 0108120380C0 0E80 adds r3 = 284, in0 // r3 = 284, r32 // 069142 0108AA160240 0E81 adds r9 = 2736, r33 // 069144 0108B2148280 0E82 adds r10 = 2852, r33 // 069146 } { .mmi 010802400040 0E90 mov gp = r36 ;; // r1 = r36 // 069143 008C80310000 0E91 st4 [r3] = sptr // [r3] = r8 // 069142 000008000000 0E92 nop.i 0 ;; } { .mmi 008080900240 0EA0 ld4 r9 = [r9] // 069144 008080A00280 0EA1 ld4 cptr = [r10] // r10 = [r10] // 069146 000008000000 0EA2 nop.i 0 ;; } { .mii 000008000000 0EB0 nop.m 0 0000B0A00280 0EB1 sxt4 cptr = cptr // r10 = r10 0000B0900240 0EB2 sxt4 r9 = r9 ;; // 069144 } { .mii 008000A002C0 0EC0 ld1 r11 = [r10] // 069147 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 55 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 010000910240 0EC1 add r9 = sptr, r9 ;; // r9 = r8, r9 // 069144 0000A0B002C0 0EC2 sxt1 r11 = r11 // 069147 } { .mmi 010820900240 0ED0 adds zptr = 512, r9 ;; // r9 = 512, r9 // 069144 01C000B001C0 0ED1 cmp.eq pr7, pr0 = r0, r11 // 069147 000008000000 0ED2 nop.i 0 } { .mfb 000008000000 0EE0 nop.m 0 000008000000 0EE1 nop.f 0 008600024007 0EE2 (pr7) br.cond.dpnt.many L$219 ;; // 069146 } 0EF0 L$220: // 069147 { .mmi 008000A00440 0EF0 ld1 r17 = [r10] ;; 01C8511142C0 0EF1 cmp.eq pr11, pr10 = 10, r17 01C84111A240 0EF2 cmp.eq pr9, pr8 = 13, r17 ;; } { .mfb 01C20000024B 0F00 (pr11) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 0F01 nop.f 0 008600020009 0F02 (pr9) br.cond.dpnt.many L$219 ;; // 069146 } { .mii 00A000A02480 0F10 ld1 r18 = [r10], 1 // 069147 01A468910000 0F11 cmp4.ltu pr0, pr13 = sptr, zptr ;; // pr0, pr13 = r8, r9 0000A1200480 0F12 sxt1 r18 = r18 ;; } { .mmi 01C0712003C0 0F20 cmp.eq pr15, pr14 = r0, r18 ;; 01C2000003CD 0F21 (pr13) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 0F22 nop.i 0 } { .mfb 000008000000 0F30 nop.m 0 000008000000 0F31 nop.f 0 00860001A00F 0F32 (pr15) br.cond.dpnt.many L$219 ;; // 069146 } { .mmi 00AC00824040 0F40 st1 [r8] = r18, 1 ;; // 069148 008000A00500 0F41 ld1 r20 = [r10] // 069147 000008000000 0F42 nop.i 0 ;; } { .mii 000008000000 0F50 nop.m 0 0000A1400500 0F51 sxt1 r20 = r20 ;; 01C0314001C0 0F52 cmp.eq pr7, pr6 = r0, r20 ;; } { .mib 01C0000012C7 0F60 (pr7) cmp.eq.unc pr11, pr0 = r0, r0 01C000001286 0F61 (pr6) cmp.eq.unc pr10, pr0 = r0, r0 00860000400A 0F62 (pr10) br.cond.dpnt.many L$223 ;; // 069146 } { .mfb 000008000000 0F70 nop.m 0 000008000000 0F71 nop.f 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 56 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00860001200B 0F72 (pr11) br.cond.dpnt.many L$219 ;; } 0F80 L$223: // 069147 { .mii 008000A00540 0F80 ld1 r21 = [r10] 01A448910000 0F81 cmp4.ltu pr0, pr9 = sptr, zptr // pr0, pr9 = r8, r9 010820A00580 0F82 adds r22 = 512, r10 ;; } { .mii 01C8015143C0 0F90 cmp.eq pr15, pr0 = 10, r21 01C86151A340 0F91 cmp.eq pr13, pr12 = 13, r21 01C2000002C9 0F92 (pr9) cmp.eq.or.andcm pr11, pr0 = r0, r0 } { .mmi 00CB01600000 0FA0 lfetch [r22] ;; 01C26000034F 0FA1 (pr15) cmp.eq.or.andcm pr13, pr12 = r0, r0 000008000000 0FA2 nop.i 0 ;; } { .mfb 01C20000034B 0FB0 (pr11) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 0FB1 nop.f 0 00860000A00D 0FB2 (pr13) br.cond.dpnt.many L$219 ;; // 069146 } { .mii 008C00828000 0FC0 st1 [r8] = r20 // 069148 010800A02280 0FC1 adds r10 = 1, r10 // 069147 010820800640 0FC2 adds ai = 512, r8 // r25 = 512, r8 // 069148 } { .mmi 010800802200 0FD0 adds r8 = 1, r8 ;; 008000A00600 0FD1 ld1 r24 = [r10] // 069147 000008000000 0FD2 nop.i 0 } { .mmi 00CB41900000 0FE0 lfetch.excl [ai] ;; // [r25] // 069148 000008000000 0FE1 nop.m 0 0000A1800600 0FE2 sxt1 r24 = r24 ;; // 069147 } { .mfb 01C031800000 0FF0 cmp.eq pr0, pr6 = r0, r24 000008000000 0FF1 nop.f 0 0095FFFE0006 0FF2 (pr6) br.cond.dptk.many L$220 ;; // 069146 } 1000 L$219: // 069148 { .mii 012000100680 1000 add r26 = @ltoff($LITERAL$+608), // r26 = @ltoff($LITERAL$+608), r1 // 069149 gp 01A470910000 1001 cmp4.ltu pr0, pr14 = sptr, zptr // pr0, pr14 = r8, r9 0120001006C0 1002 add r27 = @ltoff($LITERAL$+608), // r27 = @ltoff($LITERAL$+608), r1 gp ;; } { .mmi 0080C1A00680 1010 ld8 r26 = $LITERAL$ // r26 = [r26] 0080C1B006C0 1011 ld8 r27 = $LITERAL$ // r27 = [r27] 000008000000 1012 nop.i 0 ;; } { .mmi Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 57 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 008001A00680 1020 ld1 r26 = [r26] ;; 000008000000 1021 nop.m 0 0000A1A00680 1022 sxt1 r26 = r26 ;; } { .mmi 01C049A00280 1030 cmp.eq pr10, pr9 = r0, r26 ;; 01C20000028E 1031 (pr14) cmp.eq.or.andcm pr10, pr0 = r0, r0 000008000000 1032 nop.i 0 } { .mfb 000008000000 1040 nop.m 0 000008000000 1041 nop.f 0 00860001C00A 1042 (pr10) br.cond.dpnt.many L$226 ;; } 1050 L$227: { .mii 00AC00834040 1050 st1 [r8] = r26, 1 010801B026C0 1051 adds r27 = 1, r27 ;; 01A468910000 1052 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r8, r9 } { .mmi 00A001B02740 1060 ld1 r29 = [r27], 1 ;; 000008000000 1061 nop.m 0 0000A1D00740 1062 sxt1 r29 = r29 ;; } { .mmi 01C079D002C0 1070 cmp.eq pr11, pr15 = r0, r29 ;; 01C2000002CD 1071 (pr13) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 1072 nop.i 0 } { .mfb 000008000000 1080 nop.m 0 000008000000 1081 nop.f 0 00860001400B 1082 (pr11) br.cond.dpnt.many L$226 ;; } { .mmi 00AC0083A040 1090 st1 [r8] = r29, 1 ;; 008001B007C0 1091 ld1 r31 = [r27] 01A470910000 1092 cmp4.ltu pr0, pr14 = sptr, zptr ;; // pr0, pr14 = r8, r9 } { .mii 000008000000 10A0 nop.m 0 0000A1F007C0 10A1 sxt1 r31 = r31 ;; 01C031F001C0 10A2 cmp.eq pr7, pr6 = r0, r31 ;; } { .mfb 01C2000001CE 10B0 (pr14) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 10B1 nop.f 0 00860000E007 10B2 (pr7) br.cond.dpnt.many L$226 ;; } { .mii 008C0083E000 10C0 st1 [r8] = r31 010820800980 10C1 adds out1 = 512, r8 // r38 = 512, r8 010800802200 10C2 adds r8 = 1, r8 } { .mmi 010821B00940 10D0 adds out0 = 512, r27 ;; // r37 = 512, r27 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 58 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 010801B026C0 10D1 adds r27 = 1, r27 01A468910000 10D2 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r8, r9 } { .mmi 00CB42600000 10E0 lfetch.excl [out1] ;; // [r38] 008001B000C0 10E1 ld1 r3 = [r27] 000008000000 10E2 nop.i 0 } { .mmi 00CB02500000 10F0 lfetch [out0] ;; // [r37] 000008000000 10F1 nop.m 0 0000A03000C0 10F2 sxt1 r3 = r3 ;; } { .mii 01C048300280 1100 cmp.eq pr10, pr9 = r0, r3 010800300680 1101 mov r26 = r3 ;; 01C24800000D 1102 (pr13) cmp.eq.or.andcm pr0, pr9 = r0, r0 } { .mfb 000008000000 1110 nop.m 0 000008000000 1111 nop.f 0 0095FFFE8009 1112 (pr9) br.cond.dptk.many L$227 ;; } 1120 L$226: { .mii 0120001002C0 1120 add r11 = @ltoffx(SoftwareID), gp // r11 = @ltoffx(SoftwareID), r1 // 069150 01A478910000 1121 cmp4.ltu pr0, pr15 = sptr, zptr // pr0, pr15 = r8, r9 000008000000 1122 nop.i 0 ;; } { .mmi 0080C0B00480 1130 ld8.mov r18 = [r11], SoftwareID ;; 008001200440 1131 ld1 r17 = [r18] 000008000000 1132 nop.i 0 ;; } { .mii 000008000000 1140 nop.m 0 0000A1100440 1141 sxt1 r17 = r17 ;; 01C041100380 1142 cmp.eq pr14, pr8 = r0, r17 ;; } { .mfb 01C20000038F 1150 (pr15) cmp.eq.or.andcm pr14, pr0 = r0, r0 000008000000 1151 nop.f 0 00860001C00E 1152 (pr14) br.cond.dpnt.many L$231 ;; } { .mmi 0080012002C0 1160 ld1 r11 = [r18] ;; 000008000000 1161 nop.m 0 0000A0B002C0 1162 sxt1 r11 = r11 ;; } 1170 L$232: { .mii 00AC00816040 1170 st1 [r8] = r11, 1 010801202480 1171 adds r18 = 1, r18 ;; 01A468910000 1172 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r8, r9 } { .mmi 00A001202540 1180 ld1 r21 = [r18], 1 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 59 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 1181 nop.m 0 0000A1500540 1182 sxt1 r21 = r21 ;; } { .mmi 01C0315001C0 1190 cmp.eq pr7, pr6 = r0, r21 ;; 01C2000001CD 1191 (pr13) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 1192 nop.i 0 } { .mfb 000008000000 11A0 nop.m 0 000008000000 11A1 nop.f 0 008600012007 11A2 (pr7) br.cond.dpnt.many L$231 ;; } { .mmi 00AC0082A040 11B0 st1 [r8] = r21, 1 ;; 00A001202500 11B1 ld1 r20 = [r18], 1 01A478910000 11B2 cmp4.ltu pr0, pr15 = sptr, zptr ;; // pr0, pr15 = r8, r9 } { .mii 000008000000 11C0 nop.m 0 0000A1400500 11C1 sxt1 r20 = r20 ;; 01C049400280 11C2 cmp.eq pr10, pr9 = r0, r20 ;; } { .mfb 01C20000028F 11D0 (pr15) cmp.eq.or.andcm pr10, pr0 = r0, r0 000008000000 11D1 nop.f 0 00860000C00A 11D2 (pr10) br.cond.dpnt.many L$231 ;; } { .mii 008C00828000 11E0 st1 [r8] = r20 010840800640 11E1 adds ai = 1024, r8 // r25 = 1024, r8 010800802200 11E2 adds r8 = 1, r8 ;; } { .mii 008001200600 11F0 ld1 r24 = [r18] 01A468910000 11F1 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r8, r9 000008000000 11F2 nop.i 0 } { .mmi 00CB41900000 1200 lfetch.excl [ai] ;; // [r25] 000008000000 1201 nop.m 0 0000A18002C0 1202 sxt1 r11 = r24 ;; } { .mmi 01C040B00380 1210 cmp.eq pr14, pr8 = r0, r11 ;; 01C24000000D 1211 (pr13) cmp.eq.or.andcm pr0, pr8 = r0, r0 000008000000 1212 nop.i 0 } { .mfb 000008000000 1220 nop.m 0 000008000000 1221 nop.f 0 0095FFFEA008 1222 (pr8) br.cond.dptk.many L$232 ;; } 1230 L$231: { .mii 012000100280 1230 add r10 = @ltoff($LITERAL$+592), // r10 = @ltoff($LITERAL$+592), r1 // 069151 gp Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 60 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01A438910000 1231 cmp4.ltu pr0, pr7 = sptr, zptr // pr0, pr7 = r8, r9 012000100700 1232 add r28 = @ltoff($LITERAL$+592), // r28 = @ltoff($LITERAL$+592), r1 gp ;; } { .mmi 0080C0A00280 1240 ld8 r10 = $LITERAL$ // r10 = [r10] 0080C1C00700 1241 ld8 r28 = $LITERAL$ // r28 = [r28] 000008000000 1242 nop.i 0 ;; } { .mmi 008000A00280 1250 ld1 r10 = [r10] ;; 000008000000 1251 nop.m 0 0000A0A00280 1252 sxt1 r10 = r10 ;; } { .mmi 01C058A003C0 1260 cmp.eq pr15, pr11 = r0, r10 ;; 01C2000003C7 1261 (pr7) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 1262 nop.i 0 } { .mfb 000008000000 1270 nop.m 0 000008000000 1271 nop.f 0 00860001C00F 1272 (pr15) br.cond.dpnt.many L$236 ;; } 1280 L$237: { .mii 00AC00814040 1280 st1 [r8] = r10, 1 010801C02700 1281 adds r28 = 1, r28 ;; 01A468910000 1282 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r8, r9 } { .mmi 00A001C02780 1290 ld1 r30 = [r28], 1 ;; 000008000000 1291 nop.m 0 0000A1E00780 1292 sxt1 r30 = r30 ;; } { .mmi 01C049E00280 12A0 cmp.eq pr10, pr9 = r0, r30 ;; 01C20000028D 12A1 (pr13) cmp.eq.or.andcm pr10, pr0 = r0, r0 000008000000 12A2 nop.i 0 } { .mfb 000008000000 12B0 nop.m 0 000008000000 12B1 nop.f 0 00860001400A 12B2 (pr10) br.cond.dpnt.many L$236 ;; } { .mmi 00AC0083C040 12C0 st1 [r8] = r30, 1 ;; 008001C00980 12C1 ld1 out1 = [r28] // r38 = [r28] 01A438910000 12C2 cmp4.ltu pr0, pr7 = sptr, zptr ;; // pr0, pr7 = r8, r9 } { .mii 000008000000 12D0 nop.m 0 0000A2600980 12D1 sxt1 out1 = out1 ;; // r38 = r38 01C042600380 12D2 cmp.eq pr14, pr8 = r0, out1 ;; // pr14, pr8 = r0, r38 } { .mfb 01C200000387 12E0 (pr7) cmp.eq.or.andcm pr14, pr0 = r0, r0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 61 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 12E1 nop.f 0 00860000E00E 12E2 (pr14) br.cond.dpnt.many L$236 ;; } { .mii 008C0084C000 12F0 st1 [r8] = out1 // [r8] = r38 0108208009C0 12F1 adds out2 = 512, r8 // r39 = 512, r8 010800802200 12F2 adds r8 = 1, r8 } { .mmi 010821C007C0 1300 adds r31 = 512, r28 ;; 010801C02700 1301 adds r28 = 1, r28 01A468910000 1302 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r8, r9 } { .mmi 00CB42700000 1310 lfetch.excl [out2] ;; // [r39] 008001C00680 1311 ld1 r26 = [r28] 000008000000 1312 nop.i 0 } { .mmi 00CB01F00000 1320 lfetch [r31] ;; 000008000000 1321 nop.m 0 0000A1A00280 1322 sxt1 r10 = r26 ;; } { .mmi 01C058A003C0 1330 cmp.eq pr15, pr11 = r0, r10 ;; 01C25800000D 1331 (pr13) cmp.eq.or.andcm pr0, pr11 = r0, r0 000008000000 1332 nop.i 0 } { .mfb 000008000000 1340 nop.m 0 000008000000 1341 nop.f 0 0095FFFE800B 1342 (pr11) br.cond.dptk.many L$237 ;; } 1350 L$236: { .mii 0108120286C0 1350 adds r27 = 276, in0 // r27 = 276, r32 // 069152 01A450910000 1351 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r8, r9 000008000000 1352 nop.i 0 ;; } { .mmi 008081B006C0 1360 ld4 cptr = [r27] ;; // r27 = [r27] 000008000000 1361 nop.m 0 0000B1B006C0 1362 sxt4 cptr = cptr ;; // r27 = r27 } { .mmi 008001B00440 1370 ld1 r17 = [r27] ;; 000008000000 1371 nop.m 0 0000A1100440 1372 sxt1 r17 = r17 ;; } { .mmi 01C0311001C0 1380 cmp.eq pr7, pr6 = r0, r17 ;; 01C2000001CA 1381 (pr10) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 1382 nop.i 0 } { .mfb 000008000000 1390 nop.m 0 000008000000 1391 nop.f 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 62 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00860001C007 1392 (pr7) br.cond.dpnt.many L$241 ;; } 13A0 L$242: { .mii 00AC00822040 13A0 st1 [r8] = r17, 1 010801B026C0 13A1 adds r27 = 1, r27 ;; 01A468910000 13A2 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r8, r9 } { .mmi 00A001B02540 13B0 ld1 r21 = [r27], 1 ;; 000008000000 13B1 nop.m 0 0000A1500540 13B2 sxt1 r21 = r21 ;; } { .mmi 01C041500380 13C0 cmp.eq pr14, pr8 = r0, r21 ;; 01C20000038D 13C1 (pr13) cmp.eq.or.andcm pr14, pr0 = r0, r0 000008000000 13C2 nop.i 0 } { .mfb 000008000000 13D0 nop.m 0 000008000000 13D1 nop.f 0 00860001400E 13D2 (pr14) br.cond.dpnt.many L$241 ;; } { .mmi 00AC0082A040 13E0 st1 [r8] = r21, 1 ;; 008001B00500 13E1 ld1 r20 = [r27] 01A450910000 13E2 cmp4.ltu pr0, pr10 = sptr, zptr ;; // pr0, pr10 = r8, r9 } { .mii 000008000000 13F0 nop.m 0 0000A1400500 13F1 sxt1 r20 = r20 ;; 01C0594003C0 13F2 cmp.eq pr15, pr11 = r0, r20 ;; } { .mfb 01C2000003CA 1400 (pr10) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 1401 nop.f 0 00860000E00F 1402 (pr15) br.cond.dpnt.many L$241 ;; } { .mii 008C00828000 1410 st1 [r8] = r20 010820800640 1411 adds ai = 512, r8 // r25 = 512, r8 010800802200 1412 adds r8 = 1, r8 } { .mmi 010821B005C0 1420 adds r23 = 512, r27 ;; 010801B026C0 1421 adds r27 = 1, r27 01A468910000 1422 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r8, r9 } { .mmi 00CB41900000 1430 lfetch.excl [ai] ;; // [r25] 008001B002C0 1431 ld1 r11 = [r27] 000008000000 1432 nop.i 0 } { .mmi 00CB01700000 1440 lfetch [r23] ;; 000008000000 1441 nop.m 0 0000A0B00440 1442 sxt1 r17 = r11 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 63 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mmi 01C0311001C0 1450 cmp.eq pr7, pr6 = r0, r17 ;; 01C23000000D 1451 (pr13) cmp.eq.or.andcm pr0, pr6 = r0, r0 000008000000 1452 nop.i 0 } { .mfb 000008000000 1460 nop.m 0 000008000000 1461 nop.f 0 0095FFFE8006 1462 (pr6) br.cond.dptk.many L$242 ;; } 1470 L$241: { .mii 012000100480 1470 add r18 = @ltoff($LITERAL$+568), // r18 = @ltoff($LITERAL$+568), r1 // 069153 gp 01A470910000 1471 cmp4.ltu pr0, pr14 = sptr, zptr // pr0, pr14 = r8, r9 012000100740 1472 add r29 = @ltoff($LITERAL$+568), // r29 = @ltoff($LITERAL$+568), r1 gp ;; } { .mmi 0080C1200480 1480 ld8 r18 = $LITERAL$ // r18 = [r18] 0080C1D00740 1481 ld8 r29 = $LITERAL$ // r29 = [r29] 000008000000 1482 nop.i 0 ;; } { .mmi 008001200480 1490 ld1 r18 = [r18] ;; 000008000000 1491 nop.m 0 0000A1200480 1492 sxt1 r18 = r18 ;; } { .mmi 01C049200280 14A0 cmp.eq pr10, pr9 = r0, r18 ;; 01C20000028E 14A1 (pr14) cmp.eq.or.andcm pr10, pr0 = r0, r0 000008000000 14A2 nop.i 0 } { .mfb 000008000000 14B0 nop.m 0 000008000000 14B1 nop.f 0 00860001C00A 14B2 (pr10) br.cond.dpnt.many L$246 ;; } 14C0 L$247: { .mii 00AC00824040 14C0 st1 [r8] = r18, 1 010801D02740 14C1 adds r29 = 1, r29 ;; 01A468910000 14C2 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r8, r9 } { .mmi 00A001D02940 14D0 ld1 out0 = [r29], 1 ;; // r37 = [r29], 1 000008000000 14D1 nop.m 0 0000A2500940 14D2 sxt1 out0 = out0 ;; // r37 = r37 } { .mmi 01C05A5003C0 14E0 cmp.eq pr15, pr11 = r0, out0 ;; // pr15, pr11 = r0, r37 01C2000003CD 14E1 (pr13) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 14E2 nop.i 0 } { .mfb 000008000000 14F0 nop.m 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 64 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 14F1 nop.f 0 00860001400F 14F2 (pr15) br.cond.dpnt.many L$246 ;; } { .mmi 00AC0084A040 1500 st1 [r8] = out0, 1 ;; // [r8] = r37, 1 008001D009C0 1501 ld1 out2 = [r29] // r39 = [r29] 01A470910000 1502 cmp4.ltu pr0, pr14 = sptr, zptr ;; // pr0, pr14 = r8, r9 } { .mii 000008000000 1510 nop.m 0 0000A27009C0 1511 sxt1 out2 = out2 ;; // r39 = r39 01C0327001C0 1512 cmp.eq pr7, pr6 = r0, out2 ;; // pr7, pr6 = r0, r39 } { .mfb 01C2000001CE 1520 (pr14) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 1521 nop.f 0 00860000E007 1522 (pr7) br.cond.dpnt.many L$246 ;; } { .mii 008C0084E000 1530 st1 [r8] = out2 // [r8] = r39 010820800980 1531 adds out1 = 512, r8 // r38 = 512, r8 010800802200 1532 adds r8 = 1, r8 } { .mmi 010821D000C0 1540 adds r3 = 512, r29 ;; 010801D02740 1541 adds r29 = 1, r29 01A468910000 1542 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r8, r9 } { .mmi 00CB42600000 1550 lfetch.excl [out1] ;; // [r38] 008001D00280 1551 ld1 r10 = [r29] 000008000000 1552 nop.i 0 } { .mmi 00CB00300000 1560 lfetch [r3] ;; 000008000000 1561 nop.m 0 0000A0A00480 1562 sxt1 r18 = r10 ;; } { .mmi 01C049200280 1570 cmp.eq pr10, pr9 = r0, r18 ;; 01C24800000D 1571 (pr13) cmp.eq.or.andcm pr0, pr9 = r0, r0 000008000000 1572 nop.i 0 } { .mfb 000008000000 1580 nop.m 0 000008000000 1581 nop.f 0 0095FFFE8009 1582 (pr9) br.cond.dptk.many L$247 ;; } 1590 L$246: { .mii 01080A178700 1590 adds r28 = 188, r33 // 069154 01A478910000 1591 cmp4.ltu pr0, pr15 = sptr, zptr // pr0, pr15 = r8, r9 000008000000 1592 nop.i 0 ;; } { .mmi 008081C00700 15A0 ld4 r28 = [r28] ;; 000008000000 15A1 nop.m 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 65 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 0000B1C00700 15A2 sxt4 r28 = r28 ;; } { .mmi 010801C1C700 15B0 adds r28 = 14, r28 ;; 008001C004C0 15B1 ld1 r19 = [r28] 000008000000 15B2 nop.i 0 ;; } { .mii 000008000000 15C0 nop.m 0 0000A13004C0 15C1 sxt1 r19 = r19 ;; 01C041300380 15C2 cmp.eq pr14, pr8 = r0, r19 ;; } { .mfb 01C20000038F 15D0 (pr15) cmp.eq.or.andcm pr14, pr0 = r0, r0 000008000000 15D1 nop.f 0 00860001C00E 15D2 (pr14) br.cond.dpnt.many L$251 ;; } 15E0 L$252: { .mii 00AC00826040 15E0 st1 [r8] = r19, 1 010801C02700 15E1 adds r28 = 1, r28 ;; 01A468910000 15E2 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r8, r9 } { .mmi 00A001C02580 15F0 ld1 r22 = [r28], 1 ;; 000008000000 15F1 nop.m 0 0000A1600580 15F2 sxt1 r22 = r22 ;; } { .mmi 01C0316001C0 1600 cmp.eq pr7, pr6 = r0, r22 ;; 01C2000001CD 1601 (pr13) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 1602 nop.i 0 } { .mfb 000008000000 1610 nop.m 0 000008000000 1611 nop.f 0 008600014007 1612 (pr7) br.cond.dpnt.many L$251 ;; } { .mmi 00AC0082C040 1620 st1 [r8] = r22, 1 ;; 008001C00640 1621 ld1 ai = [r28] // r25 = [r28] 01A478910000 1622 cmp4.ltu pr0, pr15 = sptr, zptr ;; // pr0, pr15 = r8, r9 } { .mii 000008000000 1630 nop.m 0 0000A1900640 1631 sxt1 ai = ai ;; // r25 = r25 01C049900280 1632 cmp.eq pr10, pr9 = r0, ai ;; // pr10, pr9 = r0, r25 } { .mfb 01C20000028F 1640 (pr15) cmp.eq.or.andcm pr10, pr0 = r0, r0 000008000000 1641 nop.f 0 00860000E00A 1642 (pr10) br.cond.dpnt.many L$251 ;; } { .mii 008C00832000 1650 st1 [r8] = ai // [r8] = r25 010820800600 1651 adds r24 = 512, r8 010800802200 1652 adds r8 = 1, r8 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 66 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mmi 010821C00500 1660 adds r20 = 512, r28 ;; 010801C02700 1661 adds r28 = 1, r28 01A468910000 1662 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r8, r9 } { .mmi 00CB41800000 1670 lfetch.excl [r24] ;; 008001C00440 1671 ld1 r17 = [r28] 000008000000 1672 nop.i 0 } { .mmi 00CB01400000 1680 lfetch [r20] ;; 000008000000 1681 nop.m 0 0000A11004C0 1682 sxt1 r19 = r17 ;; } { .mmi 01C041300380 1690 cmp.eq pr14, pr8 = r0, r19 ;; 01C24000000D 1691 (pr13) cmp.eq.or.andcm pr0, pr8 = r0, r0 000008000000 1692 nop.i 0 } { .mfb 000008000000 16A0 nop.m 0 000008000000 16A1 nop.f 0 0095FFFE8008 16A2 (pr8) br.cond.dptk.many L$252 ;; } 16B0 L$251: { .mii 0120001006C0 16B0 add r27 = @ltoff($LITERAL$+560), // r27 = @ltoff($LITERAL$+560), r1 // 069155 gp 01A438910000 16B1 cmp4.ltu pr0, pr7 = sptr, zptr // pr0, pr7 = r8, r9 012000100780 16B2 add r30 = @ltoff($LITERAL$+560), // r30 = @ltoff($LITERAL$+560), r1 gp ;; } { .mmi 0080C1B006C0 16C0 ld8 r27 = $LITERAL$ // r27 = [r27] 0080C1E00780 16C1 ld8 r30 = $LITERAL$ // r30 = [r30] 000008000000 16C2 nop.i 0 ;; } { .mmi 008001B006C0 16D0 ld1 r27 = [r27] ;; 000008000000 16D1 nop.m 0 0000A1B006C0 16D2 sxt1 r27 = r27 ;; } { .mmi 01C059B003C0 16E0 cmp.eq pr15, pr11 = r0, r27 ;; 01C2000003C7 16E1 (pr7) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 16E2 nop.i 0 } { .mfb 000008000000 16F0 nop.m 0 000008000000 16F1 nop.f 0 00860001C00F 16F2 (pr15) br.cond.dpnt.many L$256 ;; } 1700 L$257: { .mii 00AC00836040 1700 st1 [r8] = r27, 1 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 67 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 010801E02780 1701 adds r30 = 1, r30 ;; 01A468910000 1702 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r8, r9 } { .mmi 00A001E02940 1710 ld1 out0 = [r30], 1 ;; // r37 = [r30], 1 000008000000 1711 nop.m 0 0000A2500940 1712 sxt1 out0 = out0 ;; // r37 = r37 } { .mmi 01C04A500280 1720 cmp.eq pr10, pr9 = r0, out0 ;; // pr10, pr9 = r0, r37 01C20000028D 1721 (pr13) cmp.eq.or.andcm pr10, pr0 = r0, r0 000008000000 1722 nop.i 0 } { .mfb 000008000000 1730 nop.m 0 000008000000 1731 nop.f 0 00860001400A 1732 (pr10) br.cond.dpnt.many L$256 ;; } { .mmi 00AC0084A040 1740 st1 [r8] = out0, 1 ;; // [r8] = r37, 1 008001E00980 1741 ld1 out1 = [r30] // r38 = [r30] 01A438910000 1742 cmp4.ltu pr0, pr7 = sptr, zptr ;; // pr0, pr7 = r8, r9 } { .mii 000008000000 1750 nop.m 0 0000A2600980 1751 sxt1 out1 = out1 ;; // r38 = r38 01C042600380 1752 cmp.eq pr14, pr8 = r0, out1 ;; // pr14, pr8 = r0, r38 } { .mfb 01C200000387 1760 (pr7) cmp.eq.or.andcm pr14, pr0 = r0, r0 000008000000 1761 nop.f 0 00860000E00E 1762 (pr14) br.cond.dpnt.many L$256 ;; } { .mii 008C0084C000 1770 st1 [r8] = out1 // [r8] = r38 0108208009C0 1771 adds out2 = 512, r8 // r39 = 512, r8 010800802200 1772 adds r8 = 1, r8 } { .mmi 010821E00680 1780 adds r26 = 512, r30 ;; 010801E02780 1781 adds r30 = 1, r30 01A468910000 1782 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r8, r9 } { .mmi 00CB42700000 1790 lfetch.excl [out2] ;; // [r39] 008001E00480 1791 ld1 r18 = [r30] 000008000000 1792 nop.i 0 } { .mmi 00CB01A00000 17A0 lfetch [r26] ;; 000008000000 17A1 nop.m 0 0000A12006C0 17A2 sxt1 r27 = r18 ;; } { .mmi 01C059B003C0 17B0 cmp.eq pr15, pr11 = r0, r27 ;; 01C25800000D 17B1 (pr13) cmp.eq.or.andcm pr0, pr11 = r0, r0 000008000000 17B2 nop.i 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 68 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mfb 000008000000 17C0 nop.m 0 000008000000 17C1 nop.f 0 0095FFFE800B 17C2 (pr11) br.cond.dptk.many L$257 ;; } 17D0 L$256: { .mfb 01A400910240 17D0 cmp4.ltu pr9, pr0 = sptr, zptr // pr9, pr0 = r8, r9 // 069157 000008000000 17D1 nop.f 0 00860000C009 17D2 (pr9) br.cond.dpnt.many L$260 ;; } { .mii 0120001009C0 17E0 add out2 = @ltoff($LITERAL$+440), // r39 = @ltoff($LITERAL$+440), r1 // 069160 gp 01092A130540 17E1 adds r21 = 4760, r33 // 069159 0120180E8740 17E2 mov r29 = 500 } { .mmi 012000006640 17F0 mov ai = 3 ;; // r25 = 3 // 069160 0080C2700980 17F1 ld8 out1 = $LITERAL$ // r38 = [r39] 01202800A9C0 17F2 mov out2 = 645 // r39 = 645 } { .mmi 010802100940 1800 mov out0 = rqptr ;; // r37 = r33 008C8153A000 1801 st4 [r21] = r29 // 069159 000008000000 1802 nop.i 0 } { .mfb 000008000000 1810 nop.m 0 000008000000 1811 nop.f 0 00A000001000 1812 br.call.sptk.many rp = // br0 = ErrorGeneralOverflow // 069160 ErrorGeneralOverflow ;; } { .mib 012000004200 1820 mov r8 = 2 // 069161 010802400040 1821 mov gp = r36 // r1 = r36 // 069160 00800000B000 1822 br.sptk.many L$217 ;; // 069161 } 1830 L$260: // 069162 { .mmi 0108120380C0 1830 adds r3 = 284, in0 // r3 = 284, r32 // 069164 008C00800000 1831 st1 [r8] = r0 // 069163 01080A048800 1832 adds in0 = 164, in0 ;; // r32 = 164, r32 // 069164 } { .mmi 0080803000C0 1840 ld4 r3 = [r3] ;; 000008000000 1841 nop.m 0 0000B03000C0 1842 sxt4 r3 = r3 ;; } { .mmi 010028310200 1850 sub r8 = sptr, r3 ;; // r8 = r8, r3 008C82010000 1851 st4 [in0] = r8 // [r32] = r8 000008000000 1852 nop.i 0 } 1860 L$562: // 069169 { .mfi Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 69 ProxyTunnelRebuildRequest 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 012000002200 1860 mov r8 = 1 000008000000 1861 nop.f 0 000008000000 1862 nop.i 0 ;; } 1870 L$217: { .mii 000008000000 1870 nop.m 0 000154046000 1871 mov.i rspfs = r35 ;; 000E00144000 1872 mov rp = r34 // br0 = r34 } { .mfb 000008000000 1880 nop.m 0 000008000000 1881 nop.f 0 000108001100 1882 br.ret.sptk.many rp ;; // br0 } .endp ProxyTunnelRebuildRequest Routine Size: 2736 bytes, Routine Base: $CODE$ + 0DE0 .proc ProxyTunnelBegin .align 32 .global ProxyTunnelBegin ProxyTunnelBegin: // 069182 { .mii 002C0081C980 1890 alloc r38 = rspfs, 1, 7, 6, 0 01084A050240 1891 adds r9 = 1192, in0 // r9 = 1192, r32 // 069197 0108020F8800 1892 adds in0 = 124, in0 // r32 = 124, r32 // 069199 } { .mmi 012000002880 18A0 mov r34 = 1 ;; // 069257 008080900840 18A1 ld4 rqptr = [r9] // r33 = [r9] // 069197 000188000940 18A2 mov r37 = rp // r37 = br0 // 069182 } { .mii 00B08A008200 18B0 ld4 r8 = [in0], -124 // r8 = [r32], -124 // 069199 0119F80FE2C0 18B1 adds r11 = -1, r0 ;; // 069182 0000B2100840 18B2 sxt4 rqptr = rqptr // r33 = r33 // 069197 } { .mib 01C438800200 18C0 cmp4.eq pr8, pr7 = r0, r8 // 069199 0108001009C0 18C1 mov r39 = gp // r39 = r1 // 069182 00860005A007 18C2 (pr7) br.cond.dpnt.many L$263 ;; // 069199 } { .mii 01C4300401C0 18D0 cmp4.eq pr7, pr6 = tkptr, r0 // pr7, pr6 = r32, r0 // 069203 0108020F8800 18D1 adds in0 = 124, in0 ;; // r32 = 124, r32 // 069201 01C000001247 18D2 (pr7) cmp.eq.unc pr9, pr0 = r0, r0 // 069203 } { .mmi 01C000001206 18E0 (pr6) cmp.eq.unc pr8, pr0 = r0, r0 008C82044000 18E1 st4 [in0] = r34 // [r32] = r34 // 069201 0108020000C0 18E2 adds r3 = 0, in0 ;; // r3 = 0, r32 } { .mfi 0119FA008800 18F0 adds in0 = -124, in0 // r32 = -124, r32 000008000000 18F1 nop.f 0 000008000000 18F2 nop.i 0 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 70 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .bbb 008600002008 1900 (pr8) br.cond.dpnt.many L$265 // 069203 008600044009 1901 (pr9) br.cond.dpnt.many L$266 004000000000 1902 nop.b 0 ;; } 1910 L$265: { .mii 012000100200 1910 add r8 = @ltoff(Watch+124), gp // r8 = @ltoff(Watch+124), r1 012002000440 1911 addl r17 = 524288, r0 000008000000 1912 nop.i 0 } { .mmi 008082000480 1920 ld4 r18 = [in0] ;; // r18 = [r32] 0080C0800200 1921 ld8 r8 = Watch // r8 = [r8] 01C449200180 1922 cmp4.eq pr6, pr9 = r0, r18 ;; } { .mmi 0111608F0240 1930 and r9 = -8, r8 ;; 01C038910000 1931 cmp.eq pr0, pr7 = r8, r9 000008000000 1932 nop.i 0 } { .mmi 00A0C09102C0 1940 ld8 r11 = Watch, 8 ;; // r11 = [r9], 8 000008000000 1941 nop.m 0 009E100100C7 1942 (pr7) dep r3 = Watch, r0, 3, 3 ;; // r3 = r8, r0, 3, 3 } { .mmi 0080C0900287 1950 (pr7) ld8 r10 = Watch ;; // r10 = [r9] 000008000000 1951 nop.m 0 00F200B062C7 1952 (pr7) shr.u r11 = r11, r3 } { .mmi 0101283800C7 1960 (pr7) sub r3 = 64, r3 ;; 000008000000 1961 nop.m 0 00F240314287 1962 (pr7) shl r10 = r10, r3 ;; } { .mmi 010070B142C7 1970 (pr7) or r11 = r10, r11 ;; 010060B222C0 1971 and r11 = r17, r11 000008000000 1972 nop.i 0 ;; } { .mmi 01C000B00280 1980 cmp.eq pr10, pr0 = r0, r11 ;; 01C20000018A 1981 (pr10) cmp.eq.or.andcm pr6, pr0 = r0, r0 000008000000 1982 nop.i 0 } { .mfb 000008000000 1990 nop.m 0 000008000000 1991 nop.f 0 008600032006 1992 (pr6) br.cond.dpnt.many L$266 ;; } { .mmi 01080A0300C0 19A0 adds r3 = 152, in0 ;; // r3 = 152, r32 // 069205 0080803000C0 19A1 ld4 r3 = [r3] 000008000000 19A2 nop.i 0 ;; } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 71 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mfb 01CC00302280 19B0 cmp4.eq pr10, pr0 = 1, r3 000008000000 19B1 nop.f 0 00860001A00A 19B2 (pr10) br.cond.dpnt.many L$271 ;; } { .mfb 01CC00306240 19C0 cmp4.eq pr9, pr0 = 3, r3 000008000000 19C1 nop.f 0 008600016009 19C2 (pr9) br.cond.dpnt.many L$275 ;; } { .mfb 01CC00308300 19D0 cmp4.eq pr12, pr0 = 4, r3 000008000000 19D1 nop.f 0 00860001200C 19D2 (pr12) br.cond.dpnt.many L$279 ;; } { .mfb 01CC3830A000 19E0 cmp4.eq pr0, pr7 = 5, r3 000008000000 19E1 nop.f 0 00860000E007 19E2 (pr7) br.cond.dpnt.many L$282 ;; } { .mii 0108B2180200 19F0 adds r8 = 2880, r33 // 069211 012000100280 19F1 add r10 = @ltoff($LITERAL$+784), // r10 = @ltoff($LITERAL$+784), r1 // 069214 gp 012000100240 19F2 add r9 = @ltoff($LITERAL$+792), gp // r9 = @ltoff($LITERAL$+792), r1 // 069212 } { .mmi 01C000001240 1A00 cmp.eq.unc pr9, pr0 = r0, r0 ;; // 069218 008080800200 1A01 ld4 r8 = [r8] // 069211 01A000000248 1A02 (pr8) cmp.ltu pr9, pr0 = r0, r0 // 069218 } { .mmi 0080C0A00B40 1A10 ld8 out5 = $LITERAL$ ;; // r45 = [r10] // 069214 0080C0900240 1A11 ld8 r9 = $LITERAL$ // r9 = [r9] // 069212 01C430010000 1A12 cmp4.eq pr0, pr6 = r8, r0 ;; // 069211 } { .mmi 010800900B46 1A20 (pr6) mov out5 = r9 ;; // r45 = r9 // 069214 010802D00440 1A21 mov cptr = out5 // r17 = r45 000008000000 1A22 nop.i 0 } { .mfb 000008000000 1A30 nop.m 0 000008000000 1A31 nop.f 0 008600012009 1A32 (pr9) br.cond.dpnt.many L$287 ;; // 069218 } { .mfb 0108012002C0 1A40 mov r11 = r18 000008000000 1A41 nop.f 0 008000013000 1A42 br.sptk.many L$286 ;; } 1A50 L$282: // 069216 { .mfb 012000100440 1A50 add r17 = @ltoff($LITERAL$+776), // r17 = @ltoff($LITERAL$+776), r1 gp 000008000000 1A51 nop.f 0 008000009000 1A52 br.sptk.many L$564 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 72 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } 1A60 L$279: // 069209 { .mfb 012000100440 1A60 add r17 = @ltoff($LITERAL$+768), // r17 = @ltoff($LITERAL$+768), r1 gp 000008000000 1A61 nop.f 0 008000007000 1A62 br.sptk.many L$564 ;; } 1A70 L$275: // 069208 { .mfb 012000100440 1A70 add r17 = @ltoff($LITERAL$+760), // r17 = @ltoff($LITERAL$+760), r1 gp 000008000000 1A71 nop.f 0 008000005000 1A72 br.sptk.many L$564 ;; } 1A80 L$271: // 069207 { .mfi 012000100440 1A80 add r17 = @ltoff($LITERAL$+744), // r17 = @ltoff($LITERAL$+744), r1 gp 000008000000 1A81 nop.f 0 000008000000 1A82 nop.i 0 } 1A90 L$564: { .mmi 01C000001240 1A90 cmp.eq.unc pr9, pr0 = r0, r0 ;; // 069218 0080C1100440 1A91 ld8 r17 = $LITERAL$ // r17 = [r17] // 069207 01A000000248 1A92 (pr8) cmp.ltu pr9, pr0 = r0, r0 // 069218 } { .mfb 000008000000 1AA0 nop.m 0 000008000000 1AA1 nop.f 0 008600004009 1AA2 (pr9) br.cond.dpnt.many L$287 ;; } { .mfb 0108012002C0 1AB0 mov r11 = r18 000008000000 1AB1 nop.f 0 008000005000 1AB2 br.sptk.many L$286 ;; } 1AC0 L$287: { .mfi 0108000002C0 1AC0 mov r11 = r0 000008000000 1AC1 nop.f 0 000008000000 1AC2 nop.i 0 } 1AD0 L$286: { .mii 0120001000C0 1AD0 add r3 = @ltoff($LITERAL$+712), gp // r3 = @ltoff($LITERAL$+712), r1 // 069219 012000100A80 1AD1 add out2 = @ltoff($LITERAL$+440), // r42 = @ltoff($LITERAL$+440), r1 // 069218 gp 01200000C640 1AD2 mov ai = 6 ;; // r25 = 6 } { .mmi 0080C03000C0 1AE0 ld8 r3 = $LITERAL$ // r3 = [r3] // 069219 0080C2A00A40 1AE1 ld8 out1 = $LITERAL$ // r41 = [r42] // 069218 010801100B40 1AE2 mov out5 = cptr ;; // r45 = r17 } { .mii Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 73 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 010800300B00 1AF0 mov out4 = r3 // r44 = r3 012002000AC0 1AF1 addl out3 = 524288, r0 // r43 = 524288, r0 01202807EA80 1AF2 mov out2 = 703 ;; // r42 = 703 } { .mib 000008000000 1B00 nop.m 0 0000B0B00A00 1B01 sxt4 out0 = r11 // r40 = r11 00A000001000 1B02 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802700040 1B10 mov gp = r39 // r1 = r39 000008000000 1B11 nop.f 0 000008000000 1B12 nop.i 0 } 1B20 L$266: // 069220 { .mmi 0108B21808C0 1B20 adds r35 = 2880, r33 ;; // 069222 0080823008C0 1B21 ld4 r35 = [r35] 000008000000 1B22 nop.i 0 ;; } { .mfb 01C4000461C0 1B30 cmp4.eq pr7, pr0 = r35, r0 000008000000 1B31 nop.f 0 008600008007 1B32 (pr7) br.cond.dpnt.many L$289 ;; } { .mii 012000004640 1B40 mov ai = 2 // r25 = 2 // 069223 012000000A40 1B41 mov out1 = 0 // r41 = 0 010802100A00 1B42 mov out0 = rqptr // r40 = r33 } { .mfb 000008000000 1B50 nop.m 0 000008000000 1B51 nop.f 0 00A000001000 1B52 br.call.sptk.many rp = // br0 = ProxySocks5Reply ProxySocks5Reply ;; } { .mfi 010802700040 1B60 mov gp = r39 // r1 = r39 000008000000 1B61 nop.f 0 000008000000 1B62 nop.i 0 } 1B70 L$289: { .mfi 010802000A00 1B70 mov out0 = tkptr // r40 = r32 // 069225 000008000000 1B71 nop.f 0 000008000000 1B72 nop.i 0 ;; } { .mfb 000008000000 1B80 nop.m 0 000008000000 1B81 nop.f 0 00A000001000 1B82 br.call.sptk.many rp = // br0 = ProxyTunnelLogicalName ProxyTunnelLogicalName ;; } 1B90 L$263: // 069226 { .mmi 01090A1A08C0 1B90 adds r35 = 4304, r33 ;; // 069228 0080823008C0 1B91 ld4 r35 = [r35] Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 74 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 1B92 nop.i 0 ;; } { .mfb 01C4023001C0 1BA0 cmp4.eq pr7, pr0 = r0, r35 000008000000 1BA1 nop.f 0 0086000D2007 1BA2 (pr7) br.cond.dpnt.many L$291 ;; } { .mmi 01080A0000C0 1BB0 adds r3 = 128, in0 ;; // r3 = 128, r32 // 069230 0080803000C0 1BB1 ld4 r3 = [r3] 000008000000 1BB2 nop.i 0 ;; } { .mfb 01C440300000 1BC0 cmp4.eq pr0, pr8 = r0, r3 000008000000 1BC1 nop.f 0 0086000CE008 1BC2 (pr8) br.cond.dpnt.many L$291 ;; } { .mfb 01C4000402C0 1BD0 cmp4.eq pr11, pr0 = tkptr, r0 // pr11, pr0 = r32, r0 // 069232 000008000000 1BD1 nop.f 0 00860002800B 1BD2 (pr11) br.cond.dpnt.many L$294 ;; } { .mii 012000100200 1BE0 add r8 = @ltoff(Watch+124), gp // r8 = @ltoff(Watch+124), r1 012002000480 1BE1 addl r18 = 524288, r0 000008000000 1BE2 nop.i 0 } { .mmi 0080820004C0 1BF0 ld4 r19 = [in0] ;; // r19 = [r32] 0080C0800200 1BF1 ld8 r8 = Watch // r8 = [r8] 01C4713003C0 1BF2 cmp4.eq pr15, pr14 = r0, r19 ;; } { .mmi 0111608F0240 1C00 and r9 = -8, r8 ;; 01C068910000 1C01 cmp.eq pr0, pr13 = r8, r9 000008000000 1C02 nop.i 0 } { .mmi 00A0C0910440 1C10 ld8 r17 = Watch, 8 ;; // r17 = [r9], 8 000008000000 1C11 nop.m 0 009E1001028D 1C12 (pr13) dep r10 = Watch, r0, 3, 3 ;; // r10 = r8, r0, 3, 3 } { .mmi 0080C09002CD 1C20 (pr13) ld8 r11 = Watch ;; // r11 = [r9] 000008000000 1C21 nop.m 0 00F20111444D 1C22 (pr13) shr.u r17 = r17, r10 } { .mmi 010128A8028D 1C30 (pr13) sub r10 = 64, r10 ;; 000008000000 1C31 nop.m 0 00F240A162CD 1C32 (pr13) shl r11 = r11, r10 ;; } { .mmi 01007111644D 1C40 (pr13) or r17 = r11, r17 ;; 010061124440 1C41 and r17 = r18, r17 000008000000 1C42 nop.i 0 ;; } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 75 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mmi 01C0011001C0 1C50 cmp.eq pr7, pr0 = r0, r17 ;; 01C2000003C7 1C51 (pr7) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 1C52 nop.i 0 } { .mfb 000008000000 1C60 nop.m 0 000008000000 1C61 nop.f 0 00860001600F 1C62 (pr15) br.cond.dpnt.many L$294 ;; } { .mfb 01C400042240 1C70 cmp4.eq pr9, pr0 = rqptr, r0 // pr9, pr0 = r33, r0 // 069233 000008000000 1C71 nop.f 0 008600006009 1C72 (pr9) br.cond.dpnt.many L$299 ;; } { .mmi 01080A1D0500 1C80 adds r20 = 232, r33 ;; 008081400540 1C81 ld4 r21 = [r20] 000008000000 1C82 nop.i 0 } { .mfb 000008000000 1C90 nop.m 0 000008000000 1C91 nop.f 0 008000005000 1C92 br.sptk.many L$298 ;; } 1CA0 L$299: { .mfi 010800000540 1CA0 mov r21 = r0 000008000000 1CA1 nop.f 0 000008000000 1CA2 nop.i 0 } 1CB0 L$298: { .mii 01091A198B40 1CB0 adds out5 = 4556, r33 // r45 = 4556, r33 012000100A80 1CB1 add out2 = @ltoff($LITERAL$+440), // r42 = @ltoff($LITERAL$+440), r1 gp 012000100580 1CB2 add r22 = @ltoff($LITERAL$+688), // r22 = @ltoff($LITERAL$+688), r1 gp ;; } { .mmi 008082D00B40 1CC0 ld4 out5 = [out5] // r45 = [r45] 0080C2A00A40 1CC1 ld8 out1 = $LITERAL$ // r41 = [r42] 01200000C640 1CC2 mov ai = 6 ;; // r25 = 6 } { .mii 0080C1600B00 1CD0 ld8 out4 = $LITERAL$ // r44 = [r22] 0000B2D00B40 1CD1 sxt4 out5 = out5 // r45 = r45 012002000AC0 1CD2 addl out3 = 524288, r0 // r43 = 524288, r0 } { .mmi 01202809CA80 1CE0 mov out2 = 718 ;; // r42 = 718 000008000000 1CE1 nop.m 0 0000B1500A00 1CE2 sxt4 out0 = r21 // r40 = r21 } { .mfb 000008000000 1CF0 nop.m 0 000008000000 1CF1 nop.f 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 76 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00A000001000 1CF2 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802700040 1D00 mov gp = r39 // r1 = r39 000008000000 1D01 nop.f 0 000008000000 1D02 nop.i 0 } 1D10 L$294: // 069234 { .mii 01090A1A08C0 1D10 adds r35 = 4304, r33 // 069237 012000004640 1D11 mov ai = 2 // r25 = 2 010802100A00 1D12 mov out0 = rqptr ;; // r40 = r33 } { .mmi 0080823008C0 1D20 ld4 r35 = [r35] ;; 01080A3008C0 1D21 adds r35 = 128, r35 000008000000 1D22 nop.i 0 ;; } { .mib 000008000000 1D30 nop.m 0 0000B2300A40 1D31 sxt4 out1 = r35 // r41 = r35 00A000001000 1D32 br.call.sptk.many rp = VmGetHeap ;; // br0 = VmGetHeap } { .mii 01091A198840 1D40 adds r33 = 4556, r33 // 069238 010800800900 1D41 mov aptr = r8 // r36 = r8 // 069236 0108008008C0 1D42 mov sptr = r8 // r35 = r8 // 069237 } { .mmi 010802700040 1D50 mov gp = r39 ;; // r1 = r39 008082100840 1D51 ld4 cptr = [r33] // r33 = [r33] // 069238 000008000000 1D52 nop.i 0 ;; } { .mib 000008000000 1D60 nop.m 0 0000B2100840 1D61 sxt4 cptr = cptr // r33 = r33 004000000000 1D62 nop.b 0 ;; } { .mmi 0080021000C0 1D70 ld1 r3 = [r33] ;; // 069239 000008000000 1D71 nop.m 0 0000A03000C0 1D72 sxt1 r3 = r3 ;; } { .mfb 01C0003001C0 1D80 cmp.eq pr7, pr0 = r0, r3 000008000000 1D81 nop.f 0 008600016007 1D82 (pr7) br.cond.dpnt.many L$301 ;; // 069238 } 1D90 L$302: // 069240 { .mii 00AC02306040 1D90 st1 [r35] = r3, 1 010802102840 1D91 adds r33 = 1, r33 // 069239 000008000000 1D92 nop.i 0 ;; } { .mmi 00A002102280 1DA0 ld1 r10 = [r33], 1 ;; 000008000000 1DA1 nop.m 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 77 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 0000A0A00280 1DA2 sxt1 r10 = r10 ;; } { .mfb 01C000A00240 1DB0 cmp.eq pr9, pr0 = r0, r10 000008000000 1DB1 nop.f 0 008600010009 1DB2 (pr9) br.cond.dpnt.many L$301 ;; // 069238 } { .mmi 00AC02314040 1DC0 st1 [r35] = r10, 1 ;; // 069240 008002100440 1DC1 ld1 r17 = [r33] // 069239 000008000000 1DC2 nop.i 0 ;; } { .mii 000008000000 1DD0 nop.m 0 0000A1100440 1DD1 sxt1 r17 = r17 ;; 01C0011002C0 1DD2 cmp.eq pr11, pr0 = r0, r17 } { .mfb 000008000000 1DE0 nop.m 0 000008000000 1DE1 nop.f 0 00860000A00B 1DE2 (pr11) br.cond.dpnt.many L$301 ;; // 069238 } { .mii 008C02322000 1DF0 st1 [r35] = r17 // 069240 010822300540 1DF1 adds r21 = 512, r35 010822100480 1DF2 adds r18 = 512, r33 } { .mmi 010802102840 1E00 adds r33 = 1, r33 ;; // 069239 008002100500 1E01 ld1 r20 = [r33] 0108023028C0 1E02 adds r35 = 1, r35 // 069240 } { .mmi 00CB41500000 1E10 lfetch.excl [r21] ;; 00CB01200000 1E11 lfetch [r18] 0000A14000C0 1E12 sxt1 r3 = r20 ;; // 069239 } { .mfb 01C060300000 1E20 cmp.eq pr0, pr12 = r0, r3 000008000000 1E21 nop.f 0 0095FFFEE00C 1E22 (pr12) br.cond.dptk.many L$302 ;; // 069238 } 1E30 L$301: // 069240 { .mii 012000100580 1E30 add r22 = @ltoff($LITERAL$+536), // r22 = @ltoff($LITERAL$+536), r1 // 069241 gp 012000004640 1E31 mov ai = 2 // r25 = 2 010802400A00 1E32 mov out0 = aptr ;; // r40 = r36 } { .mfb 0080C1600A40 1E40 ld8 out1 = $LITERAL$ // r41 = [r22] 000008000000 1E41 nop.f 0 00A000001000 1E42 br.call.sptk.many rp = DECC$STRSTR ;; // br0 = DECC$STRSTR } { .mib 01C430010000 1E50 cmp4.eq pr0, pr6 = r8, r0 010802700040 1E51 mov gp = r39 // r1 = r39 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 78 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00860001E006 1E52 (pr6) br.cond.dpnt.many L$305 ;; } { .mii 012000100840 1E60 add r33 = @ltoff($LITERAL$+672), // r33 = @ltoff($LITERAL$+672), r1 // 069242 gp 0120001000C0 1E61 add r3 = @ltoff($LITERAL$+672), gp // r3 = @ltoff($LITERAL$+672), r1 000008000000 1E62 nop.i 0 ;; } { .mmi 0080C2100840 1E70 ld8 r33 = $LITERAL$ // r33 = [r33] 0080C03000C0 1E71 ld8 r3 = $LITERAL$ // r3 = [r3] 000008000000 1E72 nop.i 0 ;; } { .mmi 008002100840 1E80 ld1 r33 = [r33] ;; 000008000000 1E81 nop.m 0 0000A2100840 1E82 sxt1 r33 = r33 ;; } { .mfb 01C002100240 1E90 cmp.eq pr9, pr0 = r0, r33 000008000000 1E91 nop.f 0 008600016009 1E92 (pr9) br.cond.dpnt.many L$305 ;; } 1EA0 L$308: { .mii 00AC02342040 1EA0 st1 [r35] = r33, 1 0108003020C0 1EA1 adds r3 = 1, r3 000008000000 1EA2 nop.i 0 ;; } { .mmi 00A000302280 1EB0 ld1 r10 = [r3], 1 ;; 000008000000 1EB1 nop.m 0 0000A0A00280 1EB2 sxt1 r10 = r10 ;; } { .mfb 01C000A002C0 1EC0 cmp.eq pr11, pr0 = r0, r10 000008000000 1EC1 nop.f 0 00860001000B 1EC2 (pr11) br.cond.dpnt.many L$305 ;; } { .mmi 00AC02314040 1ED0 st1 [r35] = r10, 1 ;; 008000300440 1ED1 ld1 r17 = [r3] 000008000000 1ED2 nop.i 0 ;; } { .mii 000008000000 1EE0 nop.m 0 0000A1100440 1EE1 sxt1 r17 = r17 ;; 01C001100340 1EE2 cmp.eq pr13, pr0 = r0, r17 } { .mfb 000008000000 1EF0 nop.m 0 000008000000 1EF1 nop.f 0 00860000A00D 1EF2 (pr13) br.cond.dpnt.many L$305 ;; } { .mii 008C02322000 1F00 st1 [r35] = r17 010822300540 1F01 adds r21 = 512, r35 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 79 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 010820300480 1F02 adds r18 = 512, r3 } { .mmi 0108003020C0 1F10 adds r3 = 1, r3 ;; 008000300500 1F11 ld1 r20 = [r3] 0108023028C0 1F12 adds r35 = 1, r35 } { .mmi 00CB41500000 1F20 lfetch.excl [r21] ;; 00CB01200000 1F21 lfetch [r18] 0000A1400840 1F22 sxt1 r33 = r20 ;; } { .mfb 01C072100000 1F30 cmp.eq pr0, pr14 = r0, r33 000008000000 1F31 nop.f 0 0095FFFEE00E 1F32 (pr14) br.cond.dptk.many L$308 ;; } 1F40 L$305: { .mii 012000100580 1F40 add r22 = @ltoff($LITERAL$+648), // r22 = @ltoff($LITERAL$+648), r1 // 069243 gp 0120001005C0 1F41 add r23 = @ltoff($LITERAL$+648), // r23 = @ltoff($LITERAL$+648), r1 gp 000008000000 1F42 nop.i 0 ;; } { .mmi 0080C1600580 1F50 ld8 r22 = $LITERAL$ // r22 = [r22] 0080C17005C0 1F51 ld8 r23 = $LITERAL$ // r23 = [r23] 000008000000 1F52 nop.i 0 ;; } { .mmi 008001600580 1F60 ld1 r22 = [r22] ;; 000008000000 1F61 nop.m 0 0000A1600580 1F62 sxt1 r22 = r22 ;; } { .mfb 01C0016001C0 1F70 cmp.eq pr7, pr0 = r0, r22 000008000000 1F71 nop.f 0 008600016007 1F72 (pr7) br.cond.dpnt.many L$312 ;; } 1F80 L$313: { .mii 00AC0232C040 1F80 st1 [r35] = r22, 1 0108017025C0 1F81 adds r23 = 1, r23 000008000000 1F82 nop.i 0 ;; } { .mmi 00A001702640 1F90 ld1 ai = [r23], 1 ;; // r25 = [r23], 1 000008000000 1F91 nop.m 0 0000A1900640 1F92 sxt1 ai = ai ;; // r25 = r25 } { .mfb 01C001900240 1FA0 cmp.eq pr9, pr0 = r0, ai // pr9, pr0 = r0, r25 000008000000 1FA1 nop.f 0 008600010009 1FA2 (pr9) br.cond.dpnt.many L$312 ;; } { .mmi Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 80 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00AC02332040 1FB0 st1 [r35] = ai, 1 ;; // [r35] = r25, 1 0080017006C0 1FB1 ld1 r27 = [r23] 000008000000 1FB2 nop.i 0 ;; } { .mii 000008000000 1FC0 nop.m 0 0000A1B006C0 1FC1 sxt1 r27 = r27 ;; 01C001B002C0 1FC2 cmp.eq pr11, pr0 = r0, r27 } { .mfb 000008000000 1FD0 nop.m 0 000008000000 1FD1 nop.f 0 00860000A00B 1FD2 (pr11) br.cond.dpnt.many L$312 ;; } { .mii 008C02336000 1FE0 st1 [r35] = r27 0108223007C0 1FE1 adds r31 = 512, r35 010821700700 1FE2 adds r28 = 512, r23 } { .mmi 0108017025C0 1FF0 adds r23 = 1, r23 ;; 008001700780 1FF1 ld1 r30 = [r23] 0108023028C0 1FF2 adds r35 = 1, r35 } { .mmi 00CB41F00000 2000 lfetch.excl [r31] ;; 00CB01C00000 2001 lfetch [r28] 0000A1E00580 2002 sxt1 r22 = r30 ;; } { .mfb 01C061600000 2010 cmp.eq pr0, pr12 = r0, r22 000008000000 2011 nop.f 0 0095FFFEE00C 2012 (pr12) br.cond.dptk.many L$313 ;; } 2020 L$312: { .mmi 012000100A00 2020 add out0 = @ltoffx(SoftwareID), gp ;; // r40 = @ltoffx(SoftwareID), r1 // 069244 0080C2800A80 2021 ld8.mov out2 = [r40], SoftwareID 000008000000 2022 nop.i 0 ;; } { .mmi 008002A00A40 2030 ld1 out1 = [out2] ;; // r41 = [r42] 000008000000 2031 nop.m 0 0000A2900A40 2032 sxt1 out1 = out1 ;; // r41 = r41 } { .mfb 01C0029003C0 2040 cmp.eq pr15, pr0 = r0, out1 // pr15, pr0 = r0, r41 000008000000 2041 nop.f 0 00860001800F 2042 (pr15) br.cond.dpnt.many L$317 ;; } { .mmi 008002A00A00 2050 ld1 out0 = [out2] ;; // r40 = [r42] 000008000000 2051 nop.m 0 0000A2800A00 2052 sxt1 out0 = out0 ;; // r40 = r40 } 2060 L$318: { .mii Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 81 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00AC02350040 2060 st1 [r35] = out0, 1 // [r35] = r40, 1 010802A02A80 2061 adds out2 = 1, out2 // r42 = 1, r42 000008000000 2062 nop.i 0 ;; } { .mmi 00A002A02B00 2070 ld1 out4 = [out2], 1 ;; // r44 = [r42], 1 000008000000 2071 nop.m 0 0000A2C00B00 2072 sxt1 out4 = out4 ;; // r44 = r44 } { .mfb 01C002C001C0 2080 cmp.eq pr7, pr0 = r0, out4 // pr7, pr0 = r0, r44 000008000000 2081 nop.f 0 008600010007 2082 (pr7) br.cond.dpnt.many L$317 ;; } { .mmi 00AC02358040 2090 st1 [r35] = out4, 1 ;; // [r35] = r44, 1 00A002A02200 2091 ld1 r8 = [out2], 1 // r8 = [r42], 1 000008000000 2092 nop.i 0 ;; } { .mii 000008000000 20A0 nop.m 0 0000A0800200 20A1 sxt1 r8 = r8 ;; 01C000800240 20A2 cmp.eq pr9, pr0 = r0, r8 } { .mfb 000008000000 20B0 nop.m 0 000008000000 20B1 nop.f 0 00860000A009 20B2 (pr9) br.cond.dpnt.many L$317 ;; } { .mii 008C02310000 20C0 st1 [r35] = r8 0108423002C0 20C1 adds r11 = 1024, r35 0108023028C0 20C2 adds r35 = 1, r35 ;; } { .mmi 008002A00280 20D0 ld1 r10 = [out2] // r10 = [r42] 00CB40B00000 20D1 lfetch.excl [r11] 000008000000 20D2 nop.i 0 ;; } { .mii 000008000000 20E0 nop.m 0 0000A0A00A00 20E1 sxt1 out0 = r10 ;; // r40 = r10 01C052800000 20E2 cmp.eq pr0, pr10 = r0, out0 // pr0, pr10 = r0, r40 } { .mfb 000008000000 20F0 nop.m 0 000008000000 20F1 nop.f 0 0095FFFEE00A 20F2 (pr10) br.cond.dptk.many L$318 ;; } 2100 L$317: { .mii 012000100480 2100 add r18 = @ltoff($LITERAL$+560), // r18 = @ltoff($LITERAL$+560), r1 // 069245 gp 012000100440 2101 add r17 = @ltoff($LITERAL$+560), // r17 = @ltoff($LITERAL$+560), r1 gp 000008000000 2102 nop.i 0 ;; } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 82 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mmi 0080C1200480 2110 ld8 r18 = $LITERAL$ // r18 = [r18] 0080C1100440 2111 ld8 r17 = $LITERAL$ // r17 = [r17] 000008000000 2112 nop.i 0 ;; } { .mmi 008001200480 2120 ld1 r18 = [r18] ;; 000008000000 2121 nop.m 0 0000A1200480 2122 sxt1 r18 = r18 ;; } { .mfb 01C001200340 2130 cmp.eq pr13, pr0 = r0, r18 000008000000 2131 nop.f 0 00860001600D 2132 (pr13) br.cond.dpnt.many L$322 ;; } 2140 L$323: { .mii 00AC02324040 2140 st1 [r35] = r18, 1 010801102440 2141 adds r17 = 1, r17 000008000000 2142 nop.i 0 ;; } { .mmi 00A001102540 2150 ld1 r21 = [r17], 1 ;; 000008000000 2151 nop.m 0 0000A1500540 2152 sxt1 r21 = r21 ;; } { .mfb 01C0015003C0 2160 cmp.eq pr15, pr0 = r0, r21 000008000000 2161 nop.f 0 00860001000F 2162 (pr15) br.cond.dpnt.many L$322 ;; } { .mmi 00AC0232A040 2170 st1 [r35] = r21, 1 ;; 0080011000C0 2171 ld1 r3 = [r17] 000008000000 2172 nop.i 0 ;; } { .mii 000008000000 2180 nop.m 0 0000A03000C0 2181 sxt1 r3 = r3 ;; 01C0003001C0 2182 cmp.eq pr7, pr0 = r0, r3 } { .mfb 000008000000 2190 nop.m 0 000008000000 2191 nop.f 0 00860000A007 2192 (pr7) br.cond.dpnt.many L$322 ;; } { .mii 008C02306000 21A0 st1 [r35] = r3 010822300680 21A1 adds r26 = 512, r35 010821100840 21A2 adds r33 = 512, r17 } { .mmi 010801102440 21B0 adds r17 = 1, r17 ;; 008001100640 21B1 ld1 ai = [r17] // r25 = [r17] 0108023028C0 21B2 adds r35 = 1, r35 } { .mmi Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 83 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00CB41A00000 21C0 lfetch.excl [r26] ;; 00CB02100000 21C1 lfetch [r33] 0000A1900480 21C2 sxt1 r18 = ai ;; // r18 = r25 } { .mfb 01C041200000 21D0 cmp.eq pr0, pr8 = r0, r18 000008000000 21D1 nop.f 0 0095FFFEE008 21D2 (pr8) br.cond.dptk.many L$323 ;; } 21E0 L$322: { .mii 012000100A40 21E0 add out1 = // r41 = // 069248 @ltoff(@fptr(ProxyTunnelBegin)), // @ltoff(@fptr(ProxyTunnelBegin)), r1 gp 01002A4468C0 21E1 sub r35 = sptr, aptr // r35 = r35, r36 012000008640 21E2 mov ai = 4 // r25 = 4 } { .mmi 010802400A80 21F0 mov out2 = aptr ;; // r42 = r36 0080C2900A40 21F1 ld8 out1 = ProxyTunnelBegin // r41 = [r41] 0000B2300AC0 21F2 sxt4 out3 = r35 // r43 = r35 } { .mfb 010802000A00 2200 mov out0 = tkptr // r40 = r32 000008000000 2201 nop.f 0 00A000001000 2202 br.call.sptk.many rp = ProxyNetWrite ;; // br0 = ProxyNetWrite } { .mii 01080A000800 2210 adds in0 = 128, in0 // r32 = 128, r32 // 069250 010802700040 2211 mov gp = r39 // r1 = r39 // 069248 000008000000 2212 nop.i 0 ;; } { .mfb 008C82044000 2220 st4 [in0] = r34 // [r32] = r34 // 069250 000008000000 2221 nop.f 0 0080000CF000 2222 br.sptk.many L$326 ;; // 069251 } 2230 L$291: // 069253 { .mii 01084A080A00 2230 adds out0 = 1216, in0 // r40 = 1216, r32 // 069255 012000002640 2231 mov ai = 1 // r25 = 1 000008000000 2232 nop.i 0 ;; } { .mmi 008082800A00 2240 ld4 out0 = [out0] ;; // r40 = [r40] 000008000000 2241 nop.m 0 0000B2800A00 2242 sxt4 out0 = out0 // r40 = r40 } { .mfb 000008000000 2250 nop.m 0 000008000000 2251 nop.f 0 00A000001000 2252 br.call.sptk.many rp = // br0 = TcpIpSocketMaxQio TcpIpSocketMaxQio ;; } { .mii 01080A030900 2260 adds r36 = 152, in0 // r36 = 152, r32 // 069257 010802700040 2261 mov gp = r39 // r1 = r39 // 069255 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 84 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 2262 nop.i 0 ;; } { .mmi 008082400900 2270 ld4 r36 = [r36] ;; // 069257 01CC32402000 2271 cmp4.eq pr0, pr6 = 1, r36 000008000000 2272 nop.i 0 } { .mfb 000008000000 2280 nop.m 0 000008000000 2281 nop.f 0 00860001A006 2282 (pr6) br.cond.dpnt.many L$329 ;; } { .mii 01080A0F8A40 2290 adds out1 = 252, in0 // r41 = 252, r32 // 069260 01200000C640 2291 mov ai = 6 // r25 = 6 010800000B40 2292 mov out5 = r0 // r45 = r0 } { .mmi 010800000B00 22A0 mov out4 = r0 ;; // r44 = r0 008082900A40 22A1 ld4 out1 = [out1] // r41 = [r41] 0119F80FEAC0 22A2 adds out3 = -1, r0 // r43 = -1, r0 } { .mii 010800000A80 22B0 mov out2 = r0 // r42 = r0 010802100A00 22B1 mov out0 = rqptr ;; // r40 = r33 0000B2900A40 22B2 sxt4 out1 = out1 // r41 = r41 } { .mfb 000008000000 22C0 nop.m 0 000008000000 22C1 nop.f 0 00A000001000 22C2 br.call.sptk.many rp = ResponseHeader ;; // br0 = ResponseHeader } { .mii 012000002640 22D0 mov ai = 1 // r25 = 1 // 069262 010802100A00 22D1 mov out0 = rqptr // r40 = r33 010802700040 22D2 mov gp = r39 ;; // r1 = r39 // 069260 } { .mfb 000008000000 22E0 nop.m 0 000008000000 22E1 nop.f 0 00A000001000 22E2 br.call.sptk.many rp = // br0 = ResponseDictHeader // 069262 ResponseDictHeader ;; } { .mii 0109221B88C0 22F0 adds r35 = 4700, r33 // 069264 010802700040 22F1 mov gp = r39 // r1 = r39 // 069262 012000008640 22F2 mov ai = 4 // r25 = 4 // 069265 } { .mmi 010802100A00 2300 mov out0 = rqptr ;; // r40 = r33 008C82344000 2301 st4 [r35] = r34 // 069264 010800850200 2302 adds r8 = 40, r8 // 069265 } { .mmi 012000100A40 2310 add out1 = // r41 = @ltoff(@fptr(ProxyTunnelConnectResponseAst)), gp ;; // @ltoff(@fptr(ProxyTunnelConnectResponseAst)), Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 85 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 // r1 00B0888F0A80 2311 ld4 out2 = [r8], -8 // r42 = [r8], -8 000008000000 2312 nop.i 0 } { .mmi 0080C2900A40 2320 ld8 out1 = // r41 = [r41] ProxyTunnelConnectResponseAst ;; 008080800800 2321 ld4 in0 = [r8] // r32 = [r8] // 069266 0000B2A00A80 2322 sxt4 out2 = out2 ;; // r42 = r42 // 069265 } { .mib 000008000000 2330 nop.m 0 0000B2000AC0 2331 sxt4 out3 = in0 // r43 = r32 00A000001000 2332 br.call.sptk.many rp = NetWrite ;; // br0 = NetWrite } { .mfb 000008000000 2340 nop.m 0 000008000000 2341 nop.f 0 0080000A9000 2342 br.sptk.many L$563 ;; } 2350 L$329: // 069268 { .mfb 01CC32406000 2350 cmp4.eq pr0, pr6 = 3, r36 // 069270 000008000000 2351 nop.f 0 008600024006 2352 (pr6) br.cond.dpnt.many L$333 ;; } { .mfb 010802000A00 2360 mov out0 = tkptr // r40 = r32 // 069273 000008000000 2361 nop.f 0 00A000001000 2362 br.call.sptk.many rp = // br0 = ProxyTunnelRebuildRequest ProxyTunnelRebuildRequest ;; } { .mmi 01080A0488C0 2370 adds r35 = 164, in0 ;; // r35 = 164, r32 // 069276 008082300880 2371 ld4 r34 = [r35] 000008000000 2372 nop.i 0 ;; } { .mfb 01C4022001C0 2380 cmp4.eq pr7, pr0 = r0, r34 000008000000 2381 nop.f 0 00860000C007 2382 (pr7) br.cond.dpnt.many L$336 ;; } { .mii 010802000A00 2390 mov out0 = tkptr // r40 = r32 // 069277 010812038A80 2391 adds out2 = 284, in0 // r42 = 284, r32 012000100A40 2392 add out1 = // r41 = @ltoff(@fptr(ProxyTunnelWriteAst)), gp // @ltoff(@fptr(ProxyTunnelWriteAst)), // r1 } { .mmi 012000008640 23A0 mov ai = 4 ;; // r25 = 4 008082A00A80 23A1 ld4 out2 = [out2] // r42 = [r42] 0000B2200AC0 23A2 sxt4 out3 = r34 // r43 = r34 } { .mmi 0080C2900A40 23B0 ld8 out1 = ProxyTunnelWriteAst ;; // r41 = [r41] Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 86 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 23B1 nop.m 0 0000B2A00A80 23B2 sxt4 out2 = out2 // r42 = r42 } { .mfb 000008000000 23C0 nop.m 0 000008000000 23C1 nop.f 0 00A000001000 23C2 br.call.sptk.many rp = ProxyNetWrite ;; // br0 = ProxyNetWrite } { .mfb 000008000000 23D0 nop.m 0 000008000000 23D1 nop.f 0 00800000B000 23D2 br.sptk.many L$565 ;; } 23E0 L$336: // 069280 { .mii 010802100A00 23E0 mov out0 = rqptr // r40 = r33 // 069281 0108021B0840 23E1 adds r33 = 88, r33 012000100A40 23E2 add out1 = // r41 = @ltoff(@fptr(ProxyTunnelNetReadAst)), gp // @ltoff(@fptr(ProxyTunnelNetReadAst)), // r1 } { .mmi 012000008640 23F0 mov ai = 4 ;; // r25 = 4 00B08A1B0A80 23F1 ld4 out2 = [r33], -40 // r42 = [r33], -40 000008000000 23F2 nop.i 0 } { .mmi 0080C2900A40 2400 ld8 out1 = ProxyTunnelNetReadAst ;; // r41 = [r41] 008082100AC0 2401 ld4 out3 = [r33] // r43 = [r33] 0000B2A00A80 2402 sxt4 out2 = out2 ;; // r42 = r42 } { .mib 000008000000 2410 nop.m 0 0000B2B00AC0 2411 sxt4 out3 = out3 // r43 = r43 00A000001000 2412 br.call.sptk.many rp = NetRead ;; // br0 = NetRead } 2420 L$565: { .mii 010802000A00 2420 mov out0 = tkptr // r40 = r32 // 069286 010812040A80 2421 adds out2 = 288, in0 // r42 = 288, r32 01080A098AC0 2422 adds out3 = 204, in0 // r43 = 204, r32 } { .mmi 010802700040 2430 mov gp = r39 ;; // r1 = r39 // 069281 008082A00A80 2431 ld4 out2 = [out2] // r42 = [r42] // 069286 012000100A40 2432 add out1 = // r41 = @ltoff(@fptr(ProxyTunnelReadAst)), // @ltoff(@fptr(ProxyTunnelReadAst)), gp // r1 } { .mii 008082B00AC0 2440 ld4 out3 = [out3] // r43 = [r43] 012000008640 2441 mov ai = 4 ;; // r25 = 4 0000B2B00AC0 2442 sxt4 out3 = out3 // r43 = r43 } { .mib 0080C2900A40 2450 ld8 out1 = ProxyTunnelReadAst // r41 = [r41] Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 87 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 0000B2A00A80 2451 sxt4 out2 = out2 // r42 = r42 00A000001000 2452 br.call.sptk.many rp = ProxyNetRead ;; // br0 = ProxyNetRead } { .mfb 000008000000 2460 nop.m 0 000008000000 2461 nop.f 0 008000085000 2462 br.sptk.many L$563 ;; } 2470 L$333: // 069289 { .mfb 01CC32408000 2470 cmp4.eq pr0, pr6 = 4, r36 // 069291 000008000000 2471 nop.f 0 008600026006 2472 (pr6) br.cond.dpnt.many L$340 ;; } { .mfb 010802000A00 2480 mov out0 = tkptr // r40 = r32 // 069294 000008000000 2481 nop.f 0 00A000001000 2482 br.call.sptk.many rp = // br0 = ProxyTunnelRebuildRequest ProxyTunnelRebuildRequest ;; } { .mmi 01080A0488C0 2490 adds r35 = 164, in0 ;; // r35 = 164, r32 // 069297 008082300880 2491 ld4 r34 = [r35] 000008000000 2492 nop.i 0 ;; } { .mfb 01C4022001C0 24A0 cmp4.eq pr7, pr0 = r0, r34 000008000000 24A1 nop.f 0 00860000C007 24A2 (pr7) br.cond.dpnt.many L$343 ;; } { .mii 010802000A00 24B0 mov out0 = tkptr // r40 = r32 // 069298 010812038A80 24B1 adds out2 = 284, in0 // r42 = 284, r32 012000100A40 24B2 add out1 = // r41 = @ltoff(@fptr(ProxyTunnelWriteAst)), gp // @ltoff(@fptr(ProxyTunnelWriteAst)), // r1 } { .mmi 012000008640 24C0 mov ai = 4 ;; // r25 = 4 008082A00A80 24C1 ld4 out2 = [out2] // r42 = [r42] 0000B2200AC0 24C2 sxt4 out3 = r34 // r43 = r34 } { .mmi 0080C2900A40 24D0 ld8 out1 = ProxyTunnelWriteAst ;; // r41 = [r41] 000008000000 24D1 nop.m 0 0000B2A00A80 24D2 sxt4 out2 = out2 // r42 = r42 } { .mfb 000008000000 24E0 nop.m 0 000008000000 24E1 nop.f 0 00A000001000 24E2 br.call.sptk.many rp = ProxyNetWrite ;; // br0 = ProxyNetWrite } { .mfb 000008000000 24F0 nop.m 0 000008000000 24F1 nop.f 0 00800000B000 24F2 br.sptk.many L$566 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 88 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } 2500 L$343: // 069301 { .mii 010802100A00 2500 mov out0 = rqptr // r40 = r33 // 069302 0108021B0840 2501 adds r33 = 88, r33 012000100A40 2502 add out1 = // r41 = @ltoff(@fptr(ProxyTunnelNetReadAst)), gp // @ltoff(@fptr(ProxyTunnelNetReadAst)), // r1 } { .mmi 012000008640 2510 mov ai = 4 ;; // r25 = 4 00B08A1B0A80 2511 ld4 out2 = [r33], -40 // r42 = [r33], -40 000008000000 2512 nop.i 0 } { .mmi 0080C2900A40 2520 ld8 out1 = ProxyTunnelNetReadAst ;; // r41 = [r41] 008082100AC0 2521 ld4 out3 = [r33] // r43 = [r33] 0000B2A00A80 2522 sxt4 out2 = out2 ;; // r42 = r42 } { .mib 000008000000 2530 nop.m 0 0000B2B00AC0 2531 sxt4 out3 = out3 // r43 = r43 00A000001000 2532 br.call.sptk.many rp = NetRead ;; // br0 = NetRead } 2540 L$566: { .mii 01084A080A00 2540 adds out0 = 1216, in0 // r40 = 1216, r32 // 069307 01080A0988C0 2541 adds r35 = 204, in0 // r35 = 204, r32 // 069308 010802000A80 2542 mov out2 = tkptr // r42 = r32 // 069307 } { .mmi 010812040AC0 2550 adds out3 = 288, in0 ;; // r43 = 288, r32 010802700040 2551 mov gp = r39 // r1 = r39 // 069302 01200000A640 2552 mov ai = 5 // r25 = 5 // 069307 } { .mmi 0080823008C0 2560 ld4 r35 = [r35] ;; // 069308 008082800A00 2561 ld4 out0 = [out0] // r40 = [r40] // 069307 012000100A40 2562 add out1 = // r41 = @ltoff(@fptr(ProxyTunnelReadAst)), // @ltoff(@fptr(ProxyTunnelReadAst)), gp // r1 } { .mii 008082B00AC0 2570 ld4 out3 = [out3] // r43 = [r43] 0000B2300B00 2571 sxt4 out4 = r35 ;; // r44 = r35 0000B2B00AC0 2572 sxt4 out3 = out3 // r43 = r43 } { .mib 0080C2900A40 2580 ld8 out1 = ProxyTunnelReadAst // r41 = [r41] 0000B2800A00 2581 sxt4 out0 = out0 // r40 = r40 00A000001000 2582 br.call.sptk.many rp = NetIoRead ;; // br0 = NetIoRead } { .mfb 000008000000 2590 nop.m 0 000008000000 2591 nop.f 0 00800005F000 2592 br.sptk.many L$563 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 89 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } 25A0 L$340: // 069310 { .mfb 01CC3240A000 25A0 cmp4.eq pr0, pr6 = 5, r36 // 069312 000008000000 25A1 nop.f 0 00860003C006 25A2 (pr6) br.cond.dpnt.many L$347 ;; } { .mii 0108AA1408C0 25B0 adds r35 = 2720, r33 // 069314 0120040000C0 25B1 addl r3 = 1048576, r0 000008000000 25B2 nop.i 0 ;; } { .mii 0080823008C0 25C0 ld4 r35 = [r35] 0108021B0840 25C1 adds r33 = 88, r33 ;; // 069323 01C440346000 25C2 cmp4.eq pr0, pr8 = r35, r3 // 069314 } { .mmi 00B08A150A80 25D0 ld4 out2 = [r33], -88 ;; // r42 = [r33], -88 // 069323 000008000000 25D1 nop.m 0 0000B2A00A80 25D2 sxt4 out2 = out2 ;; // r42 = r42 } { .mfb 010802A00AC0 25E0 mov out3 = out2 // r43 = r42 000008000000 25E1 nop.f 0 008600022008 25E2 (pr8) br.cond.dpnt.many L$349 ;; // 069314 } { .mii 0120001004C0 25F0 add r19 = @ltoff($LITERAL$+632), // r19 = @ltoff($LITERAL$+632), r1 // 069315 gp 011162AF0280 25F1 and r10 = -8, out2 ;; // r10 = -8, r42 01C058A54000 25F2 cmp.eq pr0, pr11 = out2, r10 // pr0, pr11 = r42, r10 } { .mmi 0080C13004C0 2600 ld8 r19 = $LITERAL$ // r19 = [r19] 00A0C0A10480 2601 ld8 r18 = [r10], 8 000008000000 2602 nop.i 0 ;; } { .mii 0111613F0540 2610 and r21 = -8, r19 009E100562CB 2611 (pr11) dep r11 = out3, r0, 3, 3 ;; // r11 = r43, r0, 3, 3 01C069526000 2612 cmp.eq pr0, pr13 = r19, r21 } { .mmi 00A0C1510600 2620 ld8 r24 = [r21], 8 0080C0A0044B 2621 (pr11) ld8 r17 = [r10] 000008000000 2622 nop.i 0 ;; } { .mii 000008000000 2630 nop.m 0 009E1002658D 2631 (pr13) dep r22 = r19, r0, 3, 3 ;; 00F20121648B 2632 (pr11) shr.u r18 = r18, r11 } { .mmi 010128B802CB 2640 (pr11) sub r11 = 64, r11 0080C15005CD 2641 (pr13) ld8 r23 = [r21] 000008000000 2642 nop.i 0 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 90 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mii 000008000000 2650 nop.m 0 00F20182C60D 2651 (pr13) shr.u r24 = r24, r22 01012968058D 2652 (pr13) sub r22 = 64, r22 ;; } { .mii 000008000000 2660 nop.m 0 00F240B2244B 2661 (pr11) shl r17 = r17, r11 ;; 00F24162E5CD 2662 (pr13) shl r23 = r23, r22 ;; } { .mmi 01007122248B 2670 (pr11) or r18 = r17, r18 ;; 01007182E60D 2671 (pr13) or r24 = r23, r24 000008000000 2672 nop.i 0 ;; } { .mfb 01C0018243C0 2680 cmp.eq pr15, pr0 = r18, r24 000008000000 2681 nop.f 0 00860000E00F 2682 (pr15) br.cond.dpnt.many L$349 ;; // 069314 } { .mii 01080A160840 2690 adds r33 = 176, r33 // 069319 012000100A40 2691 add out1 = // r41 = // 069317 @ltoff(@fptr(ProxyTunnelWriteAst)), gp // @ltoff(@fptr(ProxyTunnelWriteAst)), // r1 012000008640 2692 mov ai = 4 // r25 = 4 } { .mmi 010802000A00 26A0 mov out0 = tkptr ;; // r40 = r32 008082100840 26A1 ld4 r33 = [r33] // 069319 000008000000 26A2 nop.i 0 } { .mmi 0080C2900A40 26B0 ld8 out1 = ProxyTunnelWriteAst ;; // r41 = [r41] // 069317 000008000000 26B1 nop.m 0 0000B2100840 26B2 sxt4 r33 = r33 ;; // 069319 } { .mmi 010802128840 26C0 adds r33 = 20, r33 ;; 008082100840 26C1 ld4 r33 = [r33] 000008000000 26C2 nop.i 0 ;; } { .mib 000008000000 26D0 nop.m 0 0000B2100AC0 26D1 sxt4 out3 = r33 // r43 = r33 // 069317 00A000001000 26D2 br.call.sptk.many rp = ProxyNetWrite ;; // br0 = ProxyNetWrite } { .mfb 000008000000 26E0 nop.m 0 000008000000 26E1 nop.f 0 00800000B000 26E2 br.sptk.many L$567 ;; } 26F0 L$349: // 069320 { .mii 010802B00A80 26F0 mov out2 = out3 // r42 = r43 // 069322 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 91 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 010802100A00 26F1 mov out0 = rqptr // r40 = r33 010802160840 26F2 adds r33 = 48, r33 } { .mmi 012000100A40 2700 add out1 = // r41 = @ltoff(@fptr(ProxyTunnelNetReadAst)), gp ;; // @ltoff(@fptr(ProxyTunnelNetReadAst)), // r1 008082100AC0 2701 ld4 out3 = [r33] // r43 = [r33] 012000008640 2702 mov ai = 4 // r25 = 4 } { .mmi 0080C2900A40 2710 ld8 out1 = ProxyTunnelNetReadAst ;; // r41 = [r41] 000008000000 2711 nop.m 0 0000B2B00AC0 2712 sxt4 out3 = out3 // r43 = r43 } { .mfb 000008000000 2720 nop.m 0 000008000000 2721 nop.f 0 00A000001000 2722 br.call.sptk.many rp = NetRead ;; // br0 = NetRead } 2730 L$567: { .mii 010802000A00 2730 mov out0 = tkptr // r40 = r32 // 069327 010812040A80 2731 adds out2 = 288, in0 // r42 = 288, r32 01080A098AC0 2732 adds out3 = 204, in0 // r43 = 204, r32 } { .mmi 010802700040 2740 mov gp = r39 ;; // r1 = r39 // 069322 008082A00A80 2741 ld4 out2 = [out2] // r42 = [r42] // 069327 012000100A40 2742 add out1 = // r41 = @ltoff(@fptr(ProxyTunnelReadAst)), // @ltoff(@fptr(ProxyTunnelReadAst)), gp // r1 } { .mii 008082B00AC0 2750 ld4 out3 = [out3] // r43 = [r43] 012000008640 2751 mov ai = 4 ;; // r25 = 4 0000B2B00AC0 2752 sxt4 out3 = out3 // r43 = r43 } { .mib 0080C2900A40 2760 ld8 out1 = ProxyTunnelReadAst // r41 = [r41] 0000B2A00A80 2761 sxt4 out2 = out2 // r42 = r42 00A000001000 2762 br.call.sptk.many rp = ProxyNetRead ;; // br0 = ProxyNetRead } { .mfb 000008000000 2770 nop.m 0 000008000000 2771 nop.f 0 008000023000 2772 br.sptk.many L$563 ;; } 2780 L$347: // 069330 { .mfb 01CC32404000 2780 cmp4.eq pr0, pr6 = 2, r36 // 069332 000008000000 2781 nop.f 0 00860001A006 2782 (pr6) br.cond.dpnt.many L$355 ;; } { .mii 01080A0F8A40 2790 adds out1 = 252, in0 // r41 = 252, r32 // 069335 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 92 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01200000C640 2791 mov ai = 6 // r25 = 6 010800000B40 2792 mov out5 = r0 // r45 = r0 } { .mmi 010800000B00 27A0 mov out4 = r0 ;; // r44 = r0 008082900A40 27A1 ld4 out1 = [out1] // r41 = [r41] 0119F80FEAC0 27A2 adds out3 = -1, r0 // r43 = -1, r0 } { .mii 010800000A80 27B0 mov out2 = r0 // r42 = r0 010802100A00 27B1 mov out0 = rqptr ;; // r40 = r33 0000B2900A40 27B2 sxt4 out1 = out1 // r41 = r41 } { .mfb 000008000000 27C0 nop.m 0 000008000000 27C1 nop.f 0 00A000001000 27C2 br.call.sptk.many rp = ResponseHeader ;; // br0 = ResponseHeader } { .mii 012000002640 27D0 mov ai = 1 // r25 = 1 // 069337 010802100A00 27D1 mov out0 = rqptr // r40 = r33 010802700040 27D2 mov gp = r39 ;; // r1 = r39 // 069335 } { .mfb 000008000000 27E0 nop.m 0 000008000000 27E1 nop.f 0 00A000001000 27E2 br.call.sptk.many rp = // br0 = ResponseDictHeader // 069337 ResponseDictHeader ;; } { .mii 0109221B88C0 27F0 adds r35 = 4700, r33 // 069339 010802700040 27F1 mov gp = r39 // r1 = r39 // 069337 012000008640 27F2 mov ai = 4 // r25 = 4 // 069340 } { .mmi 010802100A00 2800 mov out0 = rqptr ;; // r40 = r33 008C82344000 2801 st4 [r35] = r34 // 069339 010800850200 2802 adds r8 = 40, r8 // 069340 } { .mmi 012000100A40 2810 add out1 = // r41 = @ltoff(@fptr(ProxyTunnelConnectResponseAst)), gp ;; // @ltoff(@fptr(ProxyTunnelConnectResponseAst)), // r1 00B0888F0A80 2811 ld4 out2 = [r8], -8 // r42 = [r8], -8 000008000000 2812 nop.i 0 } { .mmi 0080C2900A40 2820 ld8 out1 = // r41 = [r41] ProxyTunnelConnectResponseAst ;; 008080800900 2821 ld4 r36 = [r8] // 069341 0000B2A00A80 2822 sxt4 out2 = out2 ;; // r42 = r42 // 069340 } { .mib 000008000000 2830 nop.m 0 0000B2400AC0 2831 sxt4 out3 = r36 // r43 = r36 00A000001000 2832 br.call.sptk.many rp = NetWrite ;; // br0 = NetWrite Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 93 ProxyTunnelBegin 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mfb 000008000000 2840 nop.m 0 000008000000 2841 nop.f 0 008000009000 2842 br.sptk.many L$563 ;; } 2850 L$355: // 069343 { .mii 012000100AC0 2850 add out3 = @ltoff($LITERAL$+440), // r43 = @ltoff($LITERAL$+440), r1 // 069345 gp 012000100A40 2851 add out1 = // r41 = @ltoffx(ErrorSanityCheck), r1 @ltoffx(ErrorSanityCheck), gp 012000008640 2852 mov ai = 4 // r25 = 4 } { .mmi 012028048A00 2860 mov out0 = 676 ;; // r40 = 676 0080C2B00A80 2861 ld8 out2 = $LITERAL$ // r42 = [r43] 01203007CAC0 2862 mov out3 = 830 // r43 = 830 } { .mfb 0080C2900A40 2870 ld8.mov out1 = [r41], ErrorSanityCheck 000008000000 2871 nop.f 0 00A000001000 2872 br.call.sptk.many rp = // br0 = ErrorExitVmsStatus ErrorExitVmsStatus ;; } 2880 L$563: { .mfi 010802700040 2880 mov gp = r39 // r1 = r39 000008000000 2881 nop.f 0 000008000000 2882 nop.i 0 } 2890 L$326: // 069346 { .mii 000008000000 2890 nop.m 0 00015404C000 2891 mov.i rspfs = r38 ;; 000E0014A000 2892 mov rp = r37 // br0 = r37 } { .mfb 000008000000 28A0 nop.m 0 000008000000 28A1 nop.f 0 000108001100 28A2 br.ret.sptk.many rp ;; // br0 } .endp ProxyTunnelBegin Routine Size: 4128 bytes, Routine Base: $CODE$ + 1890 .proc ProxyTunnelChainConnect .align 32 .global ProxyTunnelChainConnect ProxyTunnelChainConnect: // 069354 { .mii 002C00B1EA40 28B0 alloc r41 = rspfs, 1, 10, 4, 0 012010000380 28B1 mov r14 = 256 01084A050200 28B2 adds r8 = 1192, in0 // r8 = 1192, r32 // 069372 } { .mmi 010800C00080 28C0 mov r2 = sp ;; // r2 = r12 // 069354 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 94 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 010028E183C0 28C1 sub r15 = sp, r14 // r15 = r12, r14 000188000A00 28C2 mov r40 = rp // r40 = br0 } { .mii 012000004640 28D0 mov ai = 2 // r25 = 2 // 069374 012020000B00 28D1 mov out1 = 512 // r44 = 512 000008000000 28D2 nop.i 0 ;; } { .mii 0080C0F00380 28E0 ld8 r14 = [r15] // 069354 010800F00300 28E1 mov sp = r15 // r12 = r15 010800100A80 28E2 mov r42 = gp // r42 = r1 } { .mmi 008080800840 28F0 ld4 rqptr = [r8] ;; // r33 = [r8] // 069372 000008000000 28F1 nop.m 0 0000B2100840 28F2 sxt4 rqptr = rqptr ;; // r33 = r33 } { .mfb 010802100AC0 2900 mov out0 = rqptr // r43 = r33 // 069374 000008000000 2901 nop.f 0 00A000001000 2902 br.call.sptk.many rp = VmGetHeap ;; // br0 = VmGetHeap } { .mii 010802A00040 2910 mov gp = r42 // r1 = r42 010812038900 2911 adds r36 = 284, in0 // r36 = 284, r32 010800800880 2912 mov sptr = r8 // r34 = r8 } { .mmi 0108208008C0 2920 adds zptr = 512, r8 ;; // r35 = 512, r8 // 069375 012000100940 2921 add r37 = @ltoff($LITERAL$+888), // r37 = @ltoff($LITERAL$+888), r1 // 069377 gp 01A43A310000 2922 cmp4.ltu pr0, pr7 = r8, zptr // pr0, pr7 = r8, r35 } { .mii 008C82410000 2930 st4 [r36] = r8 // 069374 012000100980 2931 add r38 = @ltoff($LITERAL$+888), // r38 = @ltoff($LITERAL$+888), r1 // 069377 gp 000008000000 2932 nop.i 0 ;; } { .mmi 0080C2500940 2940 ld8 r37 = $LITERAL$ // r37 = [r37] 0080C2600980 2941 ld8 r38 = $LITERAL$ // r38 = [r38] 000008000000 2942 nop.i 0 ;; } { .mmi 008002500940 2950 ld1 r37 = [r37] ;; 000008000000 2951 nop.m 0 0000A2500940 2952 sxt1 r37 = r37 ;; } { .mmi 01C042500240 2960 cmp.eq pr9, pr8 = r0, r37 ;; 01C200000247 2961 (pr7) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 2962 nop.i 0 } { .mfb 000008000000 2970 nop.m 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 95 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 2971 nop.f 0 00860001C009 2972 (pr9) br.cond.dpnt.many L$409 ;; } 2980 L$410: { .mii 00AC0224A040 2980 st1 [r34] = r37, 1 010802602980 2981 adds r38 = 1, r38 ;; 01A46A344000 2982 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r34, r35 } { .mmi 00A0026020C0 2990 ld1 r3 = [r38], 1 ;; 000008000000 2991 nop.m 0 0000A03000C0 2992 sxt1 r3 = r3 ;; } { .mmi 01C0503002C0 29A0 cmp.eq pr11, pr10 = r0, r3 ;; 01C2000002CD 29A1 (pr13) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 29A2 nop.i 0 } { .mfb 000008000000 29B0 nop.m 0 000008000000 29B1 nop.f 0 00860001400B 29B2 (pr11) br.cond.dpnt.many L$409 ;; } { .mmi 00AC02206040 29C0 st1 [r34] = r3, 1 ;; 008002600280 29C1 ld1 r10 = [r38] 01A43A344000 29C2 cmp4.ltu pr0, pr7 = sptr, zptr ;; // pr0, pr7 = r34, r35 } { .mii 000008000000 29D0 nop.m 0 0000A0A00280 29D1 sxt1 r10 = r10 ;; 01C070A003C0 29D2 cmp.eq pr15, pr14 = r0, r10 ;; } { .mfb 01C2000003C7 29E0 (pr7) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 29E1 nop.f 0 00860000E00F 29E2 (pr15) br.cond.dpnt.many L$409 ;; } { .mii 008C02214000 29F0 st1 [r34] = r10 010822200440 29F1 adds r17 = 512, r34 010802202880 29F2 adds r34 = 1, r34 } { .mmi 0108226002C0 2A00 adds r11 = 512, r38 ;; 010802602980 2A01 adds r38 = 1, r38 01A46A344000 2A02 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r34, r35 } { .mmi 00CB41100000 2A10 lfetch.excl [r17] ;; 0080026004C0 2A11 ld1 r19 = [r38] 000008000000 2A12 nop.i 0 } { .mmi 00CB00B00000 2A20 lfetch [r11] ;; 000008000000 2A21 nop.m 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 96 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 0000A1300940 2A22 sxt1 r37 = r19 ;; } { .mmi 01C042500240 2A30 cmp.eq pr9, pr8 = r0, r37 ;; 01C24000000D 2A31 (pr13) cmp.eq.or.andcm pr0, pr8 = r0, r0 000008000000 2A32 nop.i 0 } { .mfb 000008000000 2A40 nop.m 0 000008000000 2A41 nop.f 0 0095FFFE8008 2A42 (pr8) br.cond.dptk.many L$410 ;; } 2A50 L$409: { .mii 0108220D8500 2A50 adds cptr = 620, tkptr // r20 = 620, r32 // 069378 01A45A344280 2A51 cmp4.ltu pr10, pr11 = sptr, zptr // pr10, pr11 = r34, r35 000008000000 2A52 nop.i 0 ;; } { .mmi 008001400540 2A60 ld1 r21 = [r20] ;; 000008000000 2A61 nop.m 0 0000A1500540 2A62 sxt1 r21 = r21 ;; } { .mmi 01C0315001C0 2A70 cmp.eq pr7, pr6 = r0, r21 ;; 01C2000001CB 2A71 (pr11) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 2A72 nop.i 0 } { .mfb 000008000000 2A80 nop.m 0 000008000000 2A81 nop.f 0 00860001C007 2A82 (pr7) br.cond.dpnt.many L$414 ;; } 2A90 L$415: { .mii 00AC0222A040 2A90 st1 [r34] = r21, 1 010801402500 2A91 adds r20 = 1, r20 ;; 01A46A344000 2A92 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r34, r35 } { .mmi 00A0014025C0 2AA0 ld1 r23 = [r20], 1 ;; 000008000000 2AA1 nop.m 0 0000A17005C0 2AA2 sxt1 r23 = r23 ;; } { .mmi 01C0717003C0 2AB0 cmp.eq pr15, pr14 = r0, r23 ;; 01C2000003CD 2AB1 (pr13) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 2AB2 nop.i 0 } { .mfb 000008000000 2AC0 nop.m 0 000008000000 2AC1 nop.f 0 00860001400F 2AC2 (pr15) br.cond.dpnt.many L$414 ;; } { .mmi 00AC0222E040 2AD0 st1 [r34] = r23, 1 ;; 008001400640 2AD1 ld1 ai = [r20] // r25 = [r20] Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 97 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01A45A344280 2AD2 cmp4.ltu pr10, pr11 = sptr, zptr ;; // pr10, pr11 = r34, r35 } { .mii 000008000000 2AE0 nop.m 0 0000A1900640 2AE1 sxt1 ai = ai ;; // r25 = r25 01C041900240 2AE2 cmp.eq pr9, pr8 = r0, ai ;; // pr9, pr8 = r0, r25 } { .mfb 01C20000024B 2AF0 (pr11) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 2AF1 nop.f 0 00860000E009 2AF2 (pr9) br.cond.dpnt.many L$414 ;; } { .mii 008C02232000 2B00 st1 [r34] = ai // [r34] = r25 0108222006C0 2B01 adds r27 = 512, r34 010802202880 2B02 adds r34 = 1, r34 } { .mmi 010821400680 2B10 adds r26 = 512, r20 ;; 010801402500 2B11 adds r20 = 1, r20 01A46A344000 2B12 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r34, r35 } { .mmi 00CB41B00000 2B20 lfetch.excl [r27] ;; 008001400740 2B21 ld1 r29 = [r20] 000008000000 2B22 nop.i 0 } { .mmi 00CB01A00000 2B30 lfetch [r26] ;; 000008000000 2B31 nop.m 0 0000A1D00540 2B32 sxt1 r21 = r29 ;; } { .mmi 01C0315001C0 2B40 cmp.eq pr7, pr6 = r0, r21 ;; 01C23000000D 2B41 (pr13) cmp.eq.or.andcm pr0, pr6 = r0, r0 000008000000 2B42 nop.i 0 } { .mfb 000008000000 2B50 nop.m 0 000008000000 2B51 nop.f 0 0095FFFE8006 2B52 (pr6) br.cond.dptk.many L$415 ;; } 2B60 L$414: { .mii 01080A060780 2B60 adds r30 = 176, in0 // r30 = 176, r32 // 069379 01A47A344000 2B61 cmp4.ltu pr0, pr15 = sptr, zptr ;; // pr0, pr15 = r34, r35 // 069380 01C0000012CF 2B62 (pr15) cmp.eq.unc pr11, pr0 = r0, r0 // 069382 } { .mmi 008081E00780 2B70 ld4 r30 = [r30] ;; // 069379 01CC41E16000 2B71 cmp4.eq pr0, pr8 = 11, r30 000008000000 2B72 nop.i 0 } { .mfb 000008000000 2B80 nop.m 0 000008000000 2B81 nop.f 0 008600026008 2B82 (pr8) br.cond.dpnt.many L$420 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 98 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mii 0120001007C0 2B90 add r31 = @ltoff($LITERAL$+872), // r31 = @ltoff($LITERAL$+872), r1 // 069380 gp 012000100AC0 2B91 add out0 = @ltoff($LITERAL$+872), // r43 = @ltoff($LITERAL$+872), r1 gp 000008000000 2B92 nop.i 0 ;; } { .mmi 0080C1F007C0 2BA0 ld8 r31 = $LITERAL$ // r31 = [r31] 0080C2B00AC0 2BA1 ld8 out0 = $LITERAL$ // r43 = [r43] 000008000000 2BA2 nop.i 0 ;; } { .mmi 008001F007C0 2BB0 ld1 r31 = [r31] ;; 000008000000 2BB1 nop.m 0 0000A1F007C0 2BB2 sxt1 r31 = r31 ;; } { .mmi 01C061F00340 2BC0 cmp.eq pr13, pr12 = r0, r31 ;; 01C20000034B 2BC1 (pr11) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 2BC2 nop.i 0 } { .mfb 000008000000 2BD0 nop.m 0 000008000000 2BD1 nop.f 0 00860004000D 2BD2 (pr13) br.cond.dpnt.many L$423 ;; } 2BE0 L$424: { .mii 00AC0223E040 2BE0 st1 [r34] = r31, 1 010802B02AC0 2BE1 adds out0 = 1, out0 ;; // r43 = 1, r43 01A472344000 2BE2 cmp4.ltu pr0, pr14 = sptr, zptr // pr0, pr14 = r34, r35 } { .mmi 00A002B02B40 2BF0 ld1 out2 = [out0], 1 ;; // r45 = [r43], 1 000008000000 2BF1 nop.m 0 0000A2D00B40 2BF2 sxt1 out2 = out2 ;; // r45 = r45 } { .mmi 01C032D001C0 2C00 cmp.eq pr7, pr6 = r0, out2 ;; // pr7, pr6 = r0, r45 01C2000001CE 2C01 (pr14) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 2C02 nop.i 0 } { .mfb 000008000000 2C10 nop.m 0 000008000000 2C11 nop.f 0 008600038007 2C12 (pr7) br.cond.dpnt.many L$423 ;; } { .mmi 00AC0225A040 2C20 st1 [r34] = out2, 1 ;; // [r34] = r45, 1 008002B00200 2C21 ld1 r8 = [out0] // r8 = [r43] 01A45A344000 2C22 cmp4.ltu pr0, pr11 = sptr, zptr ;; // pr0, pr11 = r34, r35 } { .mii 000008000000 2C30 nop.m 0 0000A0800200 2C31 sxt1 r8 = r8 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 99 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01C078800200 2C32 cmp.eq pr8, pr15 = r0, r8 ;; } { .mfb 01C20000020B 2C40 (pr11) cmp.eq.or.andcm pr8, pr0 = r0, r0 000008000000 2C41 nop.f 0 008600032008 2C42 (pr8) br.cond.dpnt.many L$423 ;; } { .mii 008C02210000 2C50 st1 [r34] = r8 0108222009C0 2C51 adds r39 = 512, r34 010802202880 2C52 adds r34 = 1, r34 } { .mmi 010822B00900 2C60 adds r36 = 512, out0 ;; // r36 = 512, r43 010802B02AC0 2C61 adds out0 = 1, out0 // r43 = 1, r43 01A472344000 2C62 cmp4.ltu pr0, pr14 = sptr, zptr // pr0, pr14 = r34, r35 } { .mmi 00CB42700000 2C70 lfetch.excl [r39] ;; 008002B00240 2C71 ld1 r9 = [out0] // r9 = [r43] 000008000000 2C72 nop.i 0 } { .mmi 00CB02400000 2C80 lfetch [r36] ;; 000008000000 2C81 nop.m 0 0000A09007C0 2C82 sxt1 r31 = r9 ;; } { .mmi 01C061F00340 2C90 cmp.eq pr13, pr12 = r0, r31 ;; 01C26000000E 2C91 (pr14) cmp.eq.or.andcm pr0, pr12 = r0, r0 000008000000 2C92 nop.i 0 } { .bbb 0095FFFE800C 2CA0 (pr12) br.cond.dptk.many L$424 004000000000 2CA1 nop.b 0 008000027000 2CA2 br.sptk.many L$423 ;; } 2CB0 L$420: // 069381 { .mii 0120001002C0 2CB0 add r11 = @ltoff($LITERAL$+856), // r11 = @ltoff($LITERAL$+856), r1 // 069382 gp 012000100440 2CB1 add r17 = @ltoff($LITERAL$+856), // r17 = @ltoff($LITERAL$+856), r1 gp 000008000000 2CB2 nop.i 0 ;; } { .mmi 0080C0B002C0 2CC0 ld8 r11 = $LITERAL$ // r11 = [r11] 0080C1100440 2CC1 ld8 r17 = $LITERAL$ // r17 = [r17] 000008000000 2CC2 nop.i 0 ;; } { .mmi 008000B002C0 2CD0 ld1 r11 = [r11] ;; 000008000000 2CD1 nop.m 0 0000A0B002C0 2CD2 sxt1 r11 = r11 ;; } { .mmi 01C030B001C0 2CE0 cmp.eq pr7, pr6 = r0, r11 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 100 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01C2000001CB 2CE1 (pr11) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 2CE2 nop.i 0 } { .mfb 000008000000 2CF0 nop.m 0 000008000000 2CF1 nop.f 0 00860001C007 2CF2 (pr7) br.cond.dpnt.many L$423 ;; } 2D00 L$428: { .mii 00AC02216040 2D00 st1 [r34] = r11, 1 010801102440 2D01 adds r17 = 1, r17 ;; 01A452344000 2D02 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } { .mmi 00A001102480 2D10 ld1 r18 = [r17], 1 ;; 000008000000 2D11 nop.m 0 0000A1200480 2D12 sxt1 r18 = r18 ;; } { .mmi 01C049200200 2D20 cmp.eq pr8, pr9 = r0, r18 ;; 01C20000020A 2D21 (pr10) cmp.eq.or.andcm pr8, pr0 = r0, r0 000008000000 2D22 nop.i 0 } { .mfb 000008000000 2D30 nop.m 0 000008000000 2D31 nop.f 0 008600014008 2D32 (pr8) br.cond.dpnt.many L$423 ;; } { .mmi 00AC02224040 2D40 st1 [r34] = r18, 1 ;; 008001100940 2D41 ld1 r37 = [r17] 01A45A344000 2D42 cmp4.ltu pr0, pr11 = sptr, zptr ;; // pr0, pr11 = r34, r35 } { .mii 000008000000 2D50 nop.m 0 0000A2500940 2D51 sxt1 r37 = r37 ;; 01C072500300 2D52 cmp.eq pr12, pr14 = r0, r37 ;; } { .mfb 01C20000030B 2D60 (pr11) cmp.eq.or.andcm pr12, pr0 = r0, r0 000008000000 2D61 nop.f 0 00860000E00C 2D62 (pr12) br.cond.dpnt.many L$423 ;; } { .mii 008C0224A000 2D70 st1 [r34] = r37 010822200580 2D71 adds r22 = 512, r34 010802202880 2D72 adds r34 = 1, r34 } { .mmi 010821100980 2D80 adds r38 = 512, r17 ;; 010801102440 2D81 adds r17 = 1, r17 01A452344000 2D82 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } { .mmi 00CB41600000 2D90 lfetch.excl [r22] ;; 008001100600 2D91 ld1 r24 = [r17] Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 101 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 2D92 nop.i 0 } { .mmi 00CB02600000 2DA0 lfetch [r38] ;; 000008000000 2DA1 nop.m 0 0000A18002C0 2DA2 sxt1 r11 = r24 ;; } { .mmi 01C030B001C0 2DB0 cmp.eq pr7, pr6 = r0, r11 ;; 01C23000000A 2DB1 (pr10) cmp.eq.or.andcm pr0, pr6 = r0, r0 000008000000 2DB2 nop.i 0 } { .mfb 000008000000 2DC0 nop.m 0 000008000000 2DC1 nop.f 0 0095FFFE8006 2DC2 (pr6) br.cond.dptk.many L$428 ;; } 2DD0 L$423: { .mii 012000100680 2DD0 add r26 = @ltoff($LITERAL$+608), // r26 = @ltoff($LITERAL$+608), r1 // 069383 gp 01A44A344000 2DD1 cmp4.ltu pr0, pr9 = sptr, zptr // pr0, pr9 = r34, r35 0120001006C0 2DD2 add r27 = @ltoff($LITERAL$+608), // r27 = @ltoff($LITERAL$+608), r1 gp ;; } { .mmi 0080C1A00680 2DE0 ld8 r26 = $LITERAL$ // r26 = [r26] 0080C1B006C0 2DE1 ld8 r27 = $LITERAL$ // r27 = [r27] 000008000000 2DE2 nop.i 0 ;; } { .mmi 008001A00680 2DF0 ld1 r26 = [r26] ;; 000008000000 2DF1 nop.m 0 0000A1A00680 2DF2 sxt1 r26 = r26 ;; } { .mmi 01C069A002C0 2E00 cmp.eq pr11, pr13 = r0, r26 ;; 01C2000002C9 2E01 (pr9) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 2E02 nop.i 0 } { .mfb 000008000000 2E10 nop.m 0 000008000000 2E11 nop.f 0 00860001C00B 2E12 (pr11) br.cond.dpnt.many L$432 ;; } 2E20 L$433: { .mii 00AC02234040 2E20 st1 [r34] = r26, 1 010801B026C0 2E21 adds r27 = 1, r27 ;; 01A452344000 2E22 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } { .mmi 00A001B02700 2E30 ld1 r28 = [r27], 1 ;; 000008000000 2E31 nop.m 0 0000A1C00700 2E32 sxt1 r28 = r28 ;; } { .mmi Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 102 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01C061C00380 2E40 cmp.eq pr14, pr12 = r0, r28 ;; 01C20000038A 2E41 (pr10) cmp.eq.or.andcm pr14, pr0 = r0, r0 000008000000 2E42 nop.i 0 } { .mfb 000008000000 2E50 nop.m 0 000008000000 2E51 nop.f 0 00860001400E 2E52 (pr14) br.cond.dpnt.many L$432 ;; } { .mmi 00AC02238040 2E60 st1 [r34] = r28, 1 ;; 008001B00500 2E61 ld1 r20 = [r27] 01A44A344000 2E62 cmp4.ltu pr0, pr9 = sptr, zptr ;; // pr0, pr9 = r34, r35 } { .mii 000008000000 2E70 nop.m 0 0000A1400500 2E71 sxt1 r20 = r20 ;; 01C0314001C0 2E72 cmp.eq pr7, pr6 = r0, r20 ;; } { .mfb 01C2000001C9 2E80 (pr9) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 2E81 nop.f 0 00860000E007 2E82 (pr7) br.cond.dpnt.many L$432 ;; } { .mii 008C02228000 2E90 st1 [r34] = r20 010822200780 2E91 adds r30 = 512, r34 010802202880 2E92 adds r34 = 1, r34 } { .mmi 010821B00540 2EA0 adds r21 = 512, r27 ;; 010801B026C0 2EA1 adds r27 = 1, r27 01A452344000 2EA2 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } { .mmi 00CB41E00000 2EB0 lfetch.excl [r30] ;; 008001B00B40 2EB1 ld1 out2 = [r27] // r45 = [r27] 000008000000 2EB2 nop.i 0 } { .mmi 00CB01500000 2EC0 lfetch [r21] ;; 000008000000 2EC1 nop.m 0 0000A2D00680 2EC2 sxt1 r26 = out2 ;; // r26 = r45 } { .mmi 01C059A00340 2ED0 cmp.eq pr13, pr11 = r0, r26 ;; 01C25800000A 2ED1 (pr10) cmp.eq.or.andcm pr0, pr11 = r0, r0 000008000000 2ED2 nop.i 0 } { .mfb 000008000000 2EE0 nop.m 0 000008000000 2EE1 nop.f 0 0095FFFE800B 2EE2 (pr11) br.cond.dptk.many L$433 ;; } 2EF0 L$432: { .mii 012000100B80 2EF0 add out3 = @ltoffx(SoftwareID), gp // r46 = @ltoffx(SoftwareID), r1 // 069384 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 103 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01A472344000 2EF1 cmp4.ltu pr0, pr14 = sptr, zptr // pr0, pr14 = r34, r35 000008000000 2EF2 nop.i 0 ;; } { .mmi 0080C2E009C0 2F00 ld8.mov r39 = [r46], SoftwareID ;; 008002700900 2F01 ld1 r36 = [r39] 000008000000 2F02 nop.i 0 ;; } { .mii 000008000000 2F10 nop.m 0 0000A2400900 2F11 sxt1 r36 = r36 ;; 01C042400240 2F12 cmp.eq pr9, pr8 = r0, r36 ;; } { .mfb 01C20000024E 2F20 (pr14) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 2F21 nop.f 0 00860001C009 2F22 (pr9) br.cond.dpnt.many L$437 ;; } { .mmi 008002700B80 2F30 ld1 out3 = [r39] ;; // r46 = [r39] 000008000000 2F31 nop.m 0 0000A2E00B80 2F32 sxt1 out3 = out3 ;; // r46 = r46 } 2F40 L$438: { .mii 00AC0225C040 2F40 st1 [r34] = out3, 1 // [r34] = r46, 1 0108027029C0 2F41 adds r39 = 1, r39 ;; 01A452344000 2F42 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } { .mmi 00A002702200 2F50 ld1 r8 = [r39], 1 ;; 000008000000 2F51 nop.m 0 0000A0800200 2F52 sxt1 r8 = r8 ;; } { .mmi 01C0308001C0 2F60 cmp.eq pr7, pr6 = r0, r8 ;; 01C2000001CA 2F61 (pr10) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 2F62 nop.i 0 } { .mfb 000008000000 2F70 nop.m 0 000008000000 2F71 nop.f 0 008600012007 2F72 (pr7) br.cond.dpnt.many L$437 ;; } { .mmi 00AC02210040 2F80 st1 [r34] = r8, 1 ;; 00A0027027C0 2F81 ld1 r31 = [r39], 1 01A472344000 2F82 cmp4.ltu pr0, pr14 = sptr, zptr ;; // pr0, pr14 = r34, r35 } { .mii 000008000000 2F90 nop.m 0 0000A1F007C0 2F91 sxt1 r31 = r31 ;; 01C059F00340 2F92 cmp.eq pr13, pr11 = r0, r31 ;; } { .mfb 01C20000034E 2FA0 (pr14) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 2FA1 nop.f 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 104 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00860000C00D 2FA2 (pr13) br.cond.dpnt.many L$437 ;; } { .mii 008C0223E000 2FB0 st1 [r34] = r31 010842200280 2FB1 adds r10 = 1024, r34 010802202880 2FB2 adds r34 = 1, r34 ;; } { .mii 008002700480 2FC0 ld1 r18 = [r39] 01A452344000 2FC1 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 000008000000 2FC2 nop.i 0 } { .mmi 00CB40A00000 2FD0 lfetch.excl [r10] ;; 000008000000 2FD1 nop.m 0 0000A1200B80 2FD2 sxt1 out3 = r18 ;; // r46 = r18 } { .mmi 01C042E00240 2FE0 cmp.eq pr9, pr8 = r0, out3 ;; // pr9, pr8 = r0, r46 01C24000000A 2FE1 (pr10) cmp.eq.or.andcm pr0, pr8 = r0, r0 000008000000 2FE2 nop.i 0 } { .mfb 000008000000 2FF0 nop.m 0 000008000000 2FF1 nop.f 0 0095FFFEA008 2FF2 (pr8) br.cond.dptk.many L$438 ;; } 3000 L$437: { .mii 0120001004C0 3000 add r19 = @ltoff($LITERAL$+592), // r19 = @ltoff($LITERAL$+592), r1 // 069385 gp 01A43A344000 3001 cmp4.ltu pr0, pr7 = sptr, zptr // pr0, pr7 = r34, r35 012000100980 3002 add r38 = @ltoff($LITERAL$+592), // r38 = @ltoff($LITERAL$+592), r1 gp ;; } { .mmi 0080C13004C0 3010 ld8 r19 = $LITERAL$ // r19 = [r19] 0080C2600980 3011 ld8 r38 = $LITERAL$ // r38 = [r38] 000008000000 3012 nop.i 0 ;; } { .mmi 0080013004C0 3020 ld1 r19 = [r19] ;; 000008000000 3021 nop.m 0 0000A13004C0 3022 sxt1 r19 = r19 ;; } { .mmi 01C061300380 3030 cmp.eq pr14, pr12 = r0, r19 ;; 01C200000387 3031 (pr7) cmp.eq.or.andcm pr14, pr0 = r0, r0 000008000000 3032 nop.i 0 } { .mfb 000008000000 3040 nop.m 0 000008000000 3041 nop.f 0 00860001C00E 3042 (pr14) br.cond.dpnt.many L$442 ;; } 3050 L$443: { .mii Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 105 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00AC02226040 3050 st1 [r34] = r19, 1 010802602980 3051 adds r38 = 1, r38 ;; 01A452344000 3052 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } { .mmi 00A0026025C0 3060 ld1 r23 = [r38], 1 ;; 000008000000 3061 nop.m 0 0000A17005C0 3062 sxt1 r23 = r23 ;; } { .mmi 01C059700340 3070 cmp.eq pr13, pr11 = r0, r23 ;; 01C20000034A 3071 (pr10) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 3072 nop.i 0 } { .mfb 000008000000 3080 nop.m 0 000008000000 3081 nop.f 0 00860001400D 3082 (pr13) br.cond.dpnt.many L$442 ;; } { .mmi 00AC0222E040 3090 st1 [r34] = r23, 1 ;; 008002600600 3091 ld1 r24 = [r38] 01A43A344000 3092 cmp4.ltu pr0, pr7 = sptr, zptr ;; // pr0, pr7 = r34, r35 } { .mii 000008000000 30A0 nop.m 0 0000A1800600 30A1 sxt1 r24 = r24 ;; 01C041800240 30A2 cmp.eq pr9, pr8 = r0, r24 ;; } { .mfb 01C200000247 30B0 (pr7) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 30B1 nop.f 0 00860000E009 30B2 (pr9) br.cond.dpnt.many L$442 ;; } { .mii 008C02230000 30C0 st1 [r34] = r24 010822200440 30C1 adds r17 = 512, r34 010802202880 30C2 adds r34 = 1, r34 } { .mmi 0108226002C0 30D0 adds r11 = 512, r38 ;; 010802602980 30D1 adds r38 = 1, r38 01A452344000 30D2 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } { .mmi 00CB41100000 30E0 lfetch.excl [r17] ;; 008002600700 30E1 ld1 r28 = [r38] 000008000000 30E2 nop.i 0 } { .mmi 00CB00B00000 30F0 lfetch [r11] ;; 000008000000 30F1 nop.m 0 0000A1C004C0 30F2 sxt1 r19 = r28 ;; } { .mmi 01C061300380 3100 cmp.eq pr14, pr12 = r0, r19 ;; 01C26000000A 3101 (pr10) cmp.eq.or.andcm pr0, pr12 = r0, r0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 106 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 3102 nop.i 0 } { .mfb 000008000000 3110 nop.m 0 000008000000 3111 nop.f 0 0095FFFE800C 3112 (pr12) br.cond.dptk.many L$443 ;; } 3120 L$442: { .mii 010812028740 3120 adds r29 = 276, in0 // r29 = 276, r32 // 069386 01A46A344000 3121 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r34, r35 000008000000 3122 nop.i 0 ;; } { .mmi 008081D00740 3130 ld4 cptr = [r29] ;; // r29 = [r29] 000008000000 3131 nop.m 0 0000B1D00740 3132 sxt4 cptr = cptr ;; // r29 = r29 } { .mmi 008001D00540 3140 ld1 r21 = [r29] ;; 000008000000 3141 nop.m 0 0000A1500540 3142 sxt1 r21 = r21 ;; } { .mmi 01C0315001C0 3150 cmp.eq pr7, pr6 = r0, r21 ;; 01C2000001CD 3151 (pr13) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 3152 nop.i 0 } { .mfb 000008000000 3160 nop.m 0 000008000000 3161 nop.f 0 00860001C007 3162 (pr7) br.cond.dpnt.many L$447 ;; } 3170 L$448: { .mii 00AC0222A040 3170 st1 [r34] = r21, 1 010801D02740 3171 adds r29 = 1, r29 ;; 01A452344000 3172 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } { .mmi 00A001D02500 3180 ld1 r20 = [r29], 1 ;; 000008000000 3181 nop.m 0 0000A1400500 3182 sxt1 r20 = r20 ;; } { .mmi 01C041400240 3190 cmp.eq pr9, pr8 = r0, r20 ;; 01C20000024A 3191 (pr10) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 3192 nop.i 0 } { .mfb 000008000000 31A0 nop.m 0 000008000000 31A1 nop.f 0 008600014009 31A2 (pr9) br.cond.dpnt.many L$447 ;; } { .mmi 00AC02228040 31B0 st1 [r34] = r20, 1 ;; 008001D00B40 31B1 ld1 out2 = [r29] // r45 = [r29] Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 107 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01A46A344000 31B2 cmp4.ltu pr0, pr13 = sptr, zptr ;; // pr0, pr13 = r34, r35 } { .mii 000008000000 31C0 nop.m 0 0000A2D00B40 31C1 sxt1 out2 = out2 ;; // r45 = r45 01C062D00380 31C2 cmp.eq pr14, pr12 = r0, out2 ;; // pr14, pr12 = r0, r45 } { .mfb 01C20000038D 31D0 (pr13) cmp.eq.or.andcm pr14, pr0 = r0, r0 000008000000 31D1 nop.f 0 00860000E00E 31D2 (pr14) br.cond.dpnt.many L$447 ;; } { .mii 008C0225A000 31E0 st1 [r34] = out2 // [r34] = r45 0108222006C0 31E1 adds r27 = 512, r34 010802202880 31E2 adds r34 = 1, r34 } { .mmi 010821D00680 31F0 adds r26 = 512, r29 ;; 010801D02740 31F1 adds r29 = 1, r29 01A452344000 31F2 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } { .mmi 00CB41B00000 3200 lfetch.excl [r27] ;; 008001D000C0 3201 ld1 r3 = [r29] 000008000000 3202 nop.i 0 } { .mmi 00CB01A00000 3210 lfetch [r26] ;; 000008000000 3211 nop.m 0 0000A03000C0 3212 sxt1 r3 = r3 ;; } { .mii 01C0303001C0 3220 cmp.eq pr7, pr6 = r0, r3 010800300540 3221 mov r21 = r3 ;; 01C23000000A 3222 (pr10) cmp.eq.or.andcm pr0, pr6 = r0, r0 } { .mfb 000008000000 3230 nop.m 0 000008000000 3231 nop.f 0 0095FFFE8006 3232 (pr6) br.cond.dptk.many L$448 ;; } 3240 L$447: { .mii 012000100200 3240 add r8 = @ltoff($LITERAL$+568), gp // r8 = @ltoff($LITERAL$+568), r1 // 069387 01A44A344000 3241 cmp4.ltu pr0, pr9 = sptr, zptr // pr0, pr9 = r34, r35 012000100240 3242 add r9 = @ltoff($LITERAL$+568), gp ;; // r9 = @ltoff($LITERAL$+568), r1 } { .mmi 0080C0800200 3250 ld8 r8 = $LITERAL$ // r8 = [r8] 0080C0900240 3251 ld8 r9 = $LITERAL$ // r9 = [r9] 000008000000 3252 nop.i 0 ;; } { .mmi 008000800200 3260 ld1 r8 = [r8] ;; 000008000000 3261 nop.m 0 0000A0800200 3262 sxt1 r8 = r8 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 108 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mmi 01C058800340 3270 cmp.eq pr13, pr11 = r0, r8 ;; 01C200000349 3271 (pr9) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 3272 nop.i 0 } { .mfb 000008000000 3280 nop.m 0 000008000000 3281 nop.f 0 00860001C00D 3282 (pr13) br.cond.dpnt.many L$452 ;; } 3290 L$453: { .mii 00AC02210040 3290 st1 [r34] = r8, 1 010800902240 3291 adds r9 = 1, r9 ;; 01A452344000 3292 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } { .mmi 00A000902AC0 32A0 ld1 out0 = [r9], 1 ;; // r43 = [r9], 1 000008000000 32A1 nop.m 0 0000A2B00AC0 32A2 sxt1 out0 = out0 ;; // r43 = r43 } { .mmi 01C062B00380 32B0 cmp.eq pr14, pr12 = r0, out0 ;; // pr14, pr12 = r0, r43 01C20000038A 32B1 (pr10) cmp.eq.or.andcm pr14, pr0 = r0, r0 000008000000 32B2 nop.i 0 } { .mfb 000008000000 32C0 nop.m 0 000008000000 32C1 nop.f 0 00860001400E 32C2 (pr14) br.cond.dpnt.many L$452 ;; } { .mmi 00AC02256040 32D0 st1 [r34] = out0, 1 ;; // [r34] = r43, 1 008000900480 32D1 ld1 r18 = [r9] 01A44A344000 32D2 cmp4.ltu pr0, pr9 = sptr, zptr ;; // pr0, pr9 = r34, r35 } { .mii 000008000000 32E0 nop.m 0 0000A1200480 32E1 sxt1 r18 = r18 ;; 01C0312001C0 32E2 cmp.eq pr7, pr6 = r0, r18 ;; } { .mfb 01C2000001C9 32F0 (pr9) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 32F1 nop.f 0 00860000E007 32F2 (pr7) br.cond.dpnt.many L$452 ;; } { .mii 008C02224000 3300 st1 [r34] = r18 010822200B80 3301 adds out3 = 512, r34 // r46 = 512, r34 010802202880 3302 adds r34 = 1, r34 } { .mmi 0108209009C0 3310 adds r39 = 512, r9 ;; 010800902240 3311 adds r9 = 1, r9 01A452344000 3312 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 109 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mmi 00CB42E00000 3320 lfetch.excl [out3] ;; // [r46] 0080009005C0 3321 ld1 r23 = [r9] 000008000000 3322 nop.i 0 } { .mmi 00CB02700000 3330 lfetch [r39] ;; 000008000000 3331 nop.m 0 0000A1700200 3332 sxt1 r8 = r23 ;; } { .mmi 01C058800340 3340 cmp.eq pr13, pr11 = r0, r8 ;; 01C25800000A 3341 (pr10) cmp.eq.or.andcm pr0, pr11 = r0, r0 000008000000 3342 nop.i 0 } { .mfb 000008000000 3350 nop.m 0 000008000000 3351 nop.f 0 0095FFFE800B 3352 (pr11) br.cond.dptk.many L$453 ;; } 3360 L$452: { .mii 01080A178940 3360 adds r37 = 188, r33 // 069388 01A472344000 3361 cmp4.ltu pr0, pr14 = sptr, zptr // pr0, pr14 = r34, r35 000008000000 3362 nop.i 0 ;; } { .mmi 008082500940 3370 ld4 r37 = [r37] ;; 000008000000 3371 nop.m 0 0000B2500940 3372 sxt4 r37 = r37 ;; } { .mmi 01080251C940 3380 adds r37 = 14, r37 ;; 0080025002C0 3381 ld1 r11 = [r37] 000008000000 3382 nop.i 0 ;; } { .mii 000008000000 3390 nop.m 0 0000A0B002C0 3391 sxt1 r11 = r11 ;; 01C040B00240 3392 cmp.eq pr9, pr8 = r0, r11 ;; } { .mfb 01C20000024E 33A0 (pr14) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 33A1 nop.f 0 00860001C009 33A2 (pr9) br.cond.dpnt.many L$457 ;; } 33B0 L$458: { .mii 00AC02216040 33B0 st1 [r34] = r11, 1 010802502940 33B1 adds r37 = 1, r37 ;; 01A452344000 33B2 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } { .mmi 00A002502600 33C0 ld1 r24 = [r37], 1 ;; 000008000000 33C1 nop.m 0 0000A1800600 33C2 sxt1 r24 = r24 ;; } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 110 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mmi 01C0318001C0 33D0 cmp.eq pr7, pr6 = r0, r24 ;; 01C2000001CA 33D1 (pr10) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 33D2 nop.i 0 } { .mfb 000008000000 33E0 nop.m 0 000008000000 33E1 nop.f 0 008600014007 33E2 (pr7) br.cond.dpnt.many L$457 ;; } { .mmi 00AC02230040 33F0 st1 [r34] = r24, 1 ;; 008002500700 33F1 ld1 r28 = [r37] 01A472344000 33F2 cmp4.ltu pr0, pr14 = sptr, zptr ;; // pr0, pr14 = r34, r35 } { .mii 000008000000 3400 nop.m 0 0000A1C00700 3401 sxt1 r28 = r28 ;; 01C059C00340 3402 cmp.eq pr13, pr11 = r0, r28 ;; } { .mfb 01C20000034E 3410 (pr14) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 3411 nop.f 0 00860000E00D 3412 (pr13) br.cond.dpnt.many L$457 ;; } { .mii 008C02238000 3420 st1 [r34] = r28 010822200980 3421 adds r38 = 512, r34 010802202880 3422 adds r34 = 1, r34 } { .mmi 0108225004C0 3430 adds r19 = 512, r37 ;; 010802502940 3431 adds r37 = 1, r37 01A452344000 3432 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } { .mmi 00CB42600000 3440 lfetch.excl [r38] ;; 008002500500 3441 ld1 r20 = [r37] 000008000000 3442 nop.i 0 } { .mmi 00CB01300000 3450 lfetch [r19] ;; 000008000000 3451 nop.m 0 0000A14002C0 3452 sxt1 r11 = r20 ;; } { .mmi 01C040B00240 3460 cmp.eq pr9, pr8 = r0, r11 ;; 01C24000000A 3461 (pr10) cmp.eq.or.andcm pr0, pr8 = r0, r0 000008000000 3462 nop.i 0 } { .mfb 000008000000 3470 nop.m 0 000008000000 3471 nop.f 0 0095FFFE8008 3472 (pr8) br.cond.dptk.many L$458 ;; } 3480 L$457: { .mii Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 111 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 012000100B00 3480 add out1 = @ltoff($LITERAL$+552), // r44 = @ltoff($LITERAL$+552), r1 // 069389 gp 01A43A344000 3481 cmp4.ltu pr0, pr7 = sptr, zptr // pr0, pr7 = r34, r35 012000100680 3482 add r26 = @ltoff($LITERAL$+552), // r26 = @ltoff($LITERAL$+552), r1 gp ;; } { .mmi 0080C2C00B00 3490 ld8 out1 = $LITERAL$ // r44 = [r44] 0080C1A00680 3491 ld8 r26 = $LITERAL$ // r26 = [r26] 000008000000 3492 nop.i 0 ;; } { .mmi 008002C00B00 34A0 ld1 out1 = [out1] ;; // r44 = [r44] 000008000000 34A1 nop.m 0 0000A2C00B00 34A2 sxt1 out1 = out1 ;; // r44 = r44 } { .mmi 01C062C00380 34B0 cmp.eq pr14, pr12 = r0, out1 ;; // pr14, pr12 = r0, r44 01C200000387 34B1 (pr7) cmp.eq.or.andcm pr14, pr0 = r0, r0 000008000000 34B2 nop.i 0 } { .mfb 000008000000 34C0 nop.m 0 000008000000 34C1 nop.f 0 00860001C00E 34C2 (pr14) br.cond.dpnt.many L$462 ;; } 34D0 L$463: { .mii 00AC02258040 34D0 st1 [r34] = out1, 1 // [r34] = r44, 1 010801A02680 34D1 adds r26 = 1, r26 ;; 01A452344000 34D2 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } { .mmi 00A001A02900 34E0 ld1 r36 = [r26], 1 ;; 000008000000 34E1 nop.m 0 0000A2400900 34E2 sxt1 r36 = r36 ;; } { .mmi 01C05A400340 34F0 cmp.eq pr13, pr11 = r0, r36 ;; 01C20000034A 34F1 (pr10) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 34F2 nop.i 0 } { .mfb 000008000000 3500 nop.m 0 000008000000 3501 nop.f 0 00860001400D 3502 (pr13) br.cond.dpnt.many L$462 ;; } { .mmi 00AC02248040 3510 st1 [r34] = r36, 1 ;; 008001A000C0 3511 ld1 r3 = [r26] 01A43A344000 3512 cmp4.ltu pr0, pr7 = sptr, zptr ;; // pr0, pr7 = r34, r35 } { .mii 000008000000 3520 nop.m 0 0000A03000C0 3521 sxt1 r3 = r3 ;; 01C040300240 3522 cmp.eq pr9, pr8 = r0, r3 ;; } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 112 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mfb 01C200000247 3530 (pr7) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 3531 nop.f 0 00860000E009 3532 (pr9) br.cond.dpnt.many L$462 ;; } { .mii 008C02206000 3540 st1 [r34] = r3 010822200740 3541 adds r29 = 512, r34 010802202880 3542 adds r34 = 1, r34 } { .mmi 010821A00540 3550 adds r21 = 512, r26 ;; 010801A02680 3551 adds r26 = 1, r26 01A452344000 3552 cmp4.ltu pr0, pr10 = sptr, zptr // pr0, pr10 = r34, r35 } { .mmi 00CB41D00000 3560 lfetch.excl [r29] ;; 008001A00280 3561 ld1 r10 = [r26] 000008000000 3562 nop.i 0 } { .mmi 00CB01500000 3570 lfetch [r21] ;; 000008000000 3571 nop.m 0 0000A0A00B00 3572 sxt1 out1 = r10 ;; // r44 = r10 } { .mmi 01C062C00380 3580 cmp.eq pr14, pr12 = r0, out1 ;; // pr14, pr12 = r0, r44 01C26000000A 3581 (pr10) cmp.eq.or.andcm pr0, pr12 = r0, r0 000008000000 3582 nop.i 0 } { .mfb 000008000000 3590 nop.m 0 000008000000 3591 nop.f 0 0095FFFE800C 3592 (pr12) br.cond.dptk.many L$463 ;; } 35A0 L$462: { .mmi 01080A168AC0 35A0 adds out0 = 180, r33 ;; // r43 = 180, r33 // 069391 008082B00AC0 35A1 ld4 out0 = [out0] // r43 = [r43] 000008000000 35A2 nop.i 0 ;; } { .mii 000008000000 35B0 nop.m 0 0000B2B00AC0 35B1 sxt4 out0 = out0 ;; // r43 = r43 01085AB089C0 35B2 adds cptr = 1412, out0 ;; // r39 = 1412, r43 } { .mmi 008002700B80 35C0 ld1 out3 = [r39] ;; // r46 = [r39] 000008000000 35C1 nop.m 0 0000A2E00B80 35C2 sxt1 out3 = out3 ;; // r46 = r46 } { .mfb 01C05AE00000 35D0 cmp.eq pr0, pr11 = r0, out3 // pr0, pr11 = r0, r46 000008000000 35D1 nop.f 0 00860000600B 35D2 (pr11) br.cond.dpnt.many L$466 ;; } { .mmi Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 113 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01091A178480 35E0 adds r18 = 4540, r33 ;; // 069392 0080812009C0 35E1 ld4 cptr = [r18] // r39 = [r18] 000008000000 35E2 nop.i 0 ;; } { .mib 01C40004E1C0 35F0 cmp4.eq pr7, pr0 = cptr, r0 // pr7, pr0 = r39, r0 0000B27009C0 35F1 sxt4 cptr = cptr // r39 = r39 008600088007 35F2 (pr7) br.cond.dpnt.many L$468 ;; // 069391 } 3600 L$466: { .mii 012000100B40 3600 add out2 = @ltoff($LITERAL$+848), // r45 = @ltoff($LITERAL$+848), r1 // 069395 gp 012000006640 3601 mov ai = 3 // r25 = 3 010802700AC0 3602 mov out0 = cptr ;; // r43 = r39 } { .mib 0080C2D00B00 3610 ld8 out1 = $LITERAL$ // r44 = [r45] 01200000CB40 3611 mov out2 = 6 // r45 = 6 00A000001000 3612 br.call.sptk.many rp = strsame ;; // br0 = strsame } { .mib 01C4008001C0 3620 cmp4.eq pr7, pr0 = r0, r8 010802A00040 3621 mov gp = r42 // r1 = r42 0086000C6007 3622 (pr7) br.cond.dpnt.many L$470 ;; } { .mii 012000006640 3630 mov ai = 3 // r25 = 3 // 069398 012010000B40 3631 mov out2 = 256 // r45 = 256 010800C20B00 3632 adds out1 = 16, sp // r44 = 16, r12 } { .mfb 01080270CAC0 3640 adds out0 = 6, cptr // r43 = 6, r39 000008000000 3641 nop.f 0 00A000001000 3642 br.call.sptk.many rp = // br0 = BasicPrintableEncode BasicPrintableEncode ;; } { .mii 008000800980 3650 ld1 r38 = [r8] // 069400 010802A00040 3651 mov gp = r42 ;; // r1 = r42 // 069398 0000A2600980 3652 sxt1 r38 = r38 ;; // 069400 } { .mfb 01C0026001C0 3660 cmp.eq pr7, pr0 = r0, r38 000008000000 3661 nop.f 0 00860000A007 3662 (pr7) br.cond.dpnt.many L$472 ;; } { .mii 012000100B80 3670 add out3 = @ltoff($LITERAL$+440), // r46 = @ltoff($LITERAL$+440), r1 // 069404 gp 01092A130900 3671 adds r36 = 4760, r33 // 069403 012018022940 3672 mov r37 = 401 } { .mmi 010800800B00 3680 mov out1 = cptr ;; // r44 = r8 // 069404 0080C2E00B40 3681 ld8 out2 = $LITERAL$ // r45 = [r46] 0120300F2B80 3682 mov out3 = 889 // r46 = 889 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 114 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mmi 010802100AC0 3690 mov out0 = rqptr ;; // r43 = r33 008C8244A000 3691 st4 [r36] = r37 // 069403 000008000000 3692 nop.i 0 } { .mfb 000008000000 36A0 nop.m 0 000008000000 36A1 nop.f 0 0080000C1000 36A2 br.sptk.many L$568 ;; // 069404 } 36B0 L$472: // 069406 { .mii 0120001009C0 36B0 add r39 = @ltoff($LITERAL$+816), // r39 = @ltoff($LITERAL$+816), r1 // 069407 gp 01A43A344000 36B1 cmp4.ltu pr0, pr7 = sptr, zptr // pr0, pr7 = r34, r35 012000100980 36B2 add r38 = @ltoff($LITERAL$+816), // r38 = @ltoff($LITERAL$+816), r1 gp ;; } { .mmi 0080C27009C0 36C0 ld8 r39 = $LITERAL$ // r39 = [r39] 0080C2600980 36C1 ld8 r38 = $LITERAL$ // r38 = [r38] 000008000000 36C2 nop.i 0 ;; } { .mmi 0080027009C0 36D0 ld1 r39 = [r39] ;; 000008000000 36D1 nop.m 0 0000A27009C0 36D2 sxt1 r39 = r39 ;; } { .mmi 01C042700240 36E0 cmp.eq pr9, pr8 = r0, r39 ;; 01C200000247 36E1 (pr7) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 36E2 nop.i 0 } { .mfb 000008000000 36F0 nop.m 0 000008000000 36F1 nop.f 0 00860001C009 36F2 (pr9) br.cond.dpnt.many L$475 ;; } 3700 L$476: { .mii 00AC0224E040 3700 st1 [r34] = r39, 1 010802602980 3701 adds r38 = 1, r38 ;; 01A46A344000 3702 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r34, r35 } { .mmi 00A002602940 3710 ld1 r37 = [r38], 1 ;; 000008000000 3711 nop.m 0 0000A2500940 3712 sxt1 r37 = r37 ;; } { .mmi 01C0525002C0 3720 cmp.eq pr11, pr10 = r0, r37 ;; 01C2000002CD 3721 (pr13) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 3722 nop.i 0 } { .mfb 000008000000 3730 nop.m 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 115 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 3731 nop.f 0 00860001400B 3732 (pr11) br.cond.dpnt.many L$475 ;; } { .mmi 00AC0224A040 3740 st1 [r34] = r37, 1 ;; 008002600240 3741 ld1 r9 = [r38] 01A43A344000 3742 cmp4.ltu pr0, pr7 = sptr, zptr ;; // pr0, pr7 = r34, r35 } { .mii 000008000000 3750 nop.m 0 0000A0900240 3751 sxt1 r9 = r9 ;; 01C0709003C0 3752 cmp.eq pr15, pr14 = r0, r9 ;; } { .mfb 01C2000003C7 3760 (pr7) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 3761 nop.f 0 00860000E00F 3762 (pr15) br.cond.dpnt.many L$475 ;; } { .mii 008C02212000 3770 st1 [r34] = r9 0108222002C0 3771 adds r11 = 512, r34 010802202880 3772 adds r34 = 1, r34 } { .mmi 010822600280 3780 adds r10 = 512, r38 ;; 010802602980 3781 adds r38 = 1, r38 01A46A344000 3782 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r34, r35 } { .mmi 00CB40B00000 3790 lfetch.excl [r11] ;; 008002600480 3791 ld1 r18 = [r38] 000008000000 3792 nop.i 0 } { .mmi 00CB00A00000 37A0 lfetch [r10] ;; 000008000000 37A1 nop.m 0 0000A12009C0 37A2 sxt1 r39 = r18 ;; } { .mmi 01C042700240 37B0 cmp.eq pr9, pr8 = r0, r39 ;; 01C24000000D 37B1 (pr13) cmp.eq.or.andcm pr0, pr8 = r0, r0 000008000000 37B2 nop.i 0 } { .mfb 000008000000 37C0 nop.m 0 000008000000 37C1 nop.f 0 0095FFFE8008 37C2 (pr8) br.cond.dptk.many L$476 ;; } 37D0 L$475: { .mii 010800C204C0 37D0 adds r19 = 16, sp // r19 = 16, r12 // 069408 01A45A344000 37D1 cmp4.ltu pr0, pr11 = sptr, zptr // pr0, pr11 = r34, r35 010800C20500 37D2 adds r20 = 16, sp ;; // r20 = 16, r12 } { .mmi 0080013004C0 37E0 ld1 r19 = [r19] ;; 000008000000 37E1 nop.m 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 116 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 0000A13004C0 37E2 sxt1 r19 = r19 ;; } { .mmi 01C0313001C0 37F0 cmp.eq pr7, pr6 = r0, r19 ;; 01C2000001CB 37F1 (pr11) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 37F2 nop.i 0 } { .mfb 000008000000 3800 nop.m 0 000008000000 3801 nop.f 0 008600022007 3802 (pr7) br.cond.dpnt.many L$480 ;; } { .mii 010800C20580 3810 adds r22 = 16, sp // r22 = 16, r12 010800C20640 3811 adds ai = 16, sp // r25 = 16, r12 010800CA0600 3812 adds r24 = 80, sp // r24 = 80, r12 } { .mmi 010808C205C0 3820 adds r23 = 144, sp ;; // r23 = 144, r12 008001600580 3821 ld1 r22 = [r22] 010808CA0540 3822 adds r21 = 208, sp // r21 = 208, r12 } { .mmi 00CB01900000 3830 lfetch [ai] ;; // [r25] 00CB01800000 3831 lfetch [r24] 0000A1600580 3832 sxt1 r22 = r22 } { .mmi 00CB01700000 3840 lfetch [r23] ;; 00CB01500000 3841 lfetch [r21] 000008000000 3842 nop.i 0 ;; } 3850 L$481: { .mii 00AC0222C040 3850 st1 [r34] = r22, 1 010801402500 3851 adds r20 = 1, r20 ;; 01A46A344000 3852 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r34, r35 } { .mmi 00A0014026C0 3860 ld1 r27 = [r20], 1 ;; 000008000000 3861 nop.m 0 0000A1B006C0 3862 sxt1 r27 = r27 ;; } { .mmi 01C071B003C0 3870 cmp.eq pr15, pr14 = r0, r27 ;; 01C2000003CD 3871 (pr13) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 3872 nop.i 0 } { .mfb 000008000000 3880 nop.m 0 000008000000 3881 nop.f 0 00860001200F 3882 (pr15) br.cond.dpnt.many L$480 ;; } { .mmi 00AC02236040 3890 st1 [r34] = r27, 1 ;; 00A001402740 3891 ld1 r29 = [r20], 1 01A45A344000 3892 cmp4.ltu pr0, pr11 = sptr, zptr ;; // pr0, pr11 = r34, r35 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 117 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mii 000008000000 38A0 nop.m 0 0000A1D00740 38A1 sxt1 r29 = r29 ;; 01C041D00240 38A2 cmp.eq pr9, pr8 = r0, r29 ;; } { .mfb 01C20000024B 38B0 (pr11) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 38B1 nop.f 0 00860000C009 38B2 (pr9) br.cond.dpnt.many L$480 ;; } { .mii 008C0223A000 38C0 st1 [r34] = r29 0108422007C0 38C1 adds r31 = 1024, r34 010802202880 38C2 adds r34 = 1, r34 ;; } { .mii 008001400AC0 38D0 ld1 out0 = [r20] // r43 = [r20] 01A46A344000 38D1 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r34, r35 000008000000 38D2 nop.i 0 } { .mmi 00CB41F00000 38E0 lfetch.excl [r31] ;; 000008000000 38E1 nop.m 0 0000A2B00580 38E2 sxt1 r22 = out0 ;; // r22 = r43 } { .mmi 01C0316001C0 38F0 cmp.eq pr7, pr6 = r0, r22 ;; 01C23000000D 38F1 (pr13) cmp.eq.or.andcm pr0, pr6 = r0, r0 000008000000 38F2 nop.i 0 } { .mfb 000008000000 3900 nop.m 0 000008000000 3901 nop.f 0 0095FFFEA006 3902 (pr6) br.cond.dptk.many L$481 ;; } 3910 L$480: { .mii 012000100B00 3910 add out1 = @ltoff($LITERAL$+552), // r44 = @ltoff($LITERAL$+552), r1 // 069409 gp 01A47A344000 3911 cmp4.ltu pr0, pr15 = sptr, zptr // pr0, pr15 = r34, r35 012000100B40 3912 add out2 = @ltoff($LITERAL$+552), // r45 = @ltoff($LITERAL$+552), r1 gp ;; } { .mmi 0080C2C00B00 3920 ld8 out1 = $LITERAL$ // r44 = [r44] 0080C2D00B40 3921 ld8 out2 = $LITERAL$ // r45 = [r45] 000008000000 3922 nop.i 0 ;; } { .mmi 008002C00B00 3930 ld1 out1 = [out1] ;; // r44 = [r44] 000008000000 3931 nop.m 0 0000A2C00B00 3932 sxt1 out1 = out1 ;; // r44 = r44 } { .mmi 01C052C002C0 3940 cmp.eq pr11, pr10 = r0, out1 ;; // pr11, pr10 = r0, r44 01C2000002CF 3941 (pr15) cmp.eq.or.andcm pr11, pr0 = r0, r0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 118 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 3942 nop.i 0 } { .mfb 000008000000 3950 nop.m 0 000008000000 3951 nop.f 0 00860001C00B 3952 (pr11) br.cond.dpnt.many L$468 ;; } 3960 L$485: { .mii 00AC02258040 3960 st1 [r34] = out1, 1 // [r34] = r44, 1 010802D02B40 3961 adds out2 = 1, out2 ;; // r45 = 1, r45 01A46A344000 3962 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r34, r35 } { .mmi 00A002D02200 3970 ld1 r8 = [out2], 1 ;; // r8 = [r45], 1 000008000000 3971 nop.m 0 0000A0800200 3972 sxt1 r8 = r8 ;; } { .mmi 01C040800240 3980 cmp.eq pr9, pr8 = r0, r8 ;; 01C20000024D 3981 (pr13) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 3982 nop.i 0 } { .mfb 000008000000 3990 nop.m 0 000008000000 3991 nop.f 0 008600014009 3992 (pr9) br.cond.dpnt.many L$468 ;; } { .mmi 00AC02210040 39A0 st1 [r34] = r8, 1 ;; 008002D000C0 39A1 ld1 r3 = [out2] // r3 = [r45] 01A47A344000 39A2 cmp4.ltu pr0, pr15 = sptr, zptr ;; // pr0, pr15 = r34, r35 } { .mii 000008000000 39B0 nop.m 0 0000A03000C0 39B1 sxt1 r3 = r3 ;; 01C0303001C0 39B2 cmp.eq pr7, pr6 = r0, r3 ;; } { .mfb 01C2000001CF 39C0 (pr15) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 39C1 nop.f 0 00860000E007 39C2 (pr7) br.cond.dpnt.many L$468 ;; } { .mii 008C02206000 39D0 st1 [r34] = r3 010822200280 39D1 adds r10 = 512, r34 010802202880 39D2 adds r34 = 1, r34 } { .mmi 010822D00940 39E0 adds r37 = 512, out2 ;; // r37 = 512, r45 010802D02B40 39E1 adds out2 = 1, out2 // r45 = 1, r45 01A46A344000 39E2 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r34, r35 } { .mmi 00CB40A00000 39F0 lfetch.excl [r10] ;; 008002D00240 39F1 ld1 r9 = [out2] // r9 = [r45] 000008000000 39F2 nop.i 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 119 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mmi 00CB02500000 3A00 lfetch [r37] ;; 000008000000 3A01 nop.m 0 0000A0900B00 3A02 sxt1 out1 = r9 ;; // r44 = r9 } { .mmi 01C052C002C0 3A10 cmp.eq pr11, pr10 = r0, out1 ;; // pr11, pr10 = r0, r44 01C25000000D 3A11 (pr13) cmp.eq.or.andcm pr0, pr10 = r0, r0 000008000000 3A12 nop.i 0 } { .mfb 000008000000 3A20 nop.m 0 000008000000 3A21 nop.f 0 0095FFFE800A 3A22 (pr10) br.cond.dptk.many L$485 ;; } 3A30 L$468: // 069417 { .mii 012000100440 3A30 add r17 = @ltoff($LITERAL$+552), // r17 = @ltoff($LITERAL$+552), r1 // 069418 gp 01A44A344000 3A31 cmp4.ltu pr0, pr9 = sptr, zptr // pr0, pr9 = r34, r35 012000100480 3A32 add r18 = @ltoff($LITERAL$+552), // r18 = @ltoff($LITERAL$+552), r1 gp ;; } { .mmi 0080C1100440 3A40 ld8 r17 = $LITERAL$ // r17 = [r17] 0080C1200480 3A41 ld8 r18 = $LITERAL$ // r18 = [r18] 000008000000 3A42 nop.i 0 ;; } { .mmi 008001100440 3A50 ld1 r17 = [r17] ;; 000008000000 3A51 nop.m 0 0000A1100440 3A52 sxt1 r17 = r17 ;; } { .mmi 01C0711003C0 3A60 cmp.eq pr15, pr14 = r0, r17 ;; 01C2000003C9 3A61 (pr9) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 3A62 nop.i 0 } { .mfb 000008000000 3A70 nop.m 0 000008000000 3A71 nop.f 0 00860001C00F 3A72 (pr15) br.cond.dpnt.many L$489 ;; } 3A80 L$490: { .mii 00AC02222040 3A80 st1 [r34] = r17, 1 010801202480 3A81 adds r18 = 1, r18 ;; 01A46A344000 3A82 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r34, r35 } { .mmi 00A0012029C0 3A90 ld1 r39 = [r18], 1 ;; 000008000000 3A91 nop.m 0 0000A27009C0 3A92 sxt1 r39 = r39 ;; } { .mmi 01C0327001C0 3AA0 cmp.eq pr7, pr6 = r0, r39 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 120 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01C2000001CD 3AA1 (pr13) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 3AA2 nop.i 0 } { .mfb 000008000000 3AB0 nop.m 0 000008000000 3AB1 nop.f 0 008600014007 3AB2 (pr7) br.cond.dpnt.many L$489 ;; } { .mmi 00AC0224E040 3AC0 st1 [r34] = r39, 1 ;; 008001200540 3AC1 ld1 r21 = [r18] 01A44A344000 3AC2 cmp4.ltu pr0, pr9 = sptr, zptr ;; // pr0, pr9 = r34, r35 } { .mii 000008000000 3AD0 nop.m 0 0000A1500540 3AD1 sxt1 r21 = r21 ;; 01C0515002C0 3AD2 cmp.eq pr11, pr10 = r0, r21 ;; } { .mfb 01C2000002C9 3AE0 (pr9) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 3AE1 nop.f 0 00860000E00B 3AE2 (pr11) br.cond.dpnt.many L$489 ;; } { .mii 008C0222A000 3AF0 st1 [r34] = r21 010822200600 3AF1 adds r24 = 512, r34 010802202880 3AF2 adds r34 = 1, r34 } { .mmi 0108212005C0 3B00 adds r23 = 512, r18 ;; 010801202480 3B01 adds r18 = 1, r18 01A46A344000 3B02 cmp4.ltu pr0, pr13 = sptr, zptr // pr0, pr13 = r34, r35 } { .mmi 00CB41800000 3B10 lfetch.excl [r24] ;; 008001200680 3B11 ld1 r26 = [r18] 000008000000 3B12 nop.i 0 } { .mmi 00CB01700000 3B20 lfetch [r23] ;; 000008000000 3B21 nop.m 0 0000A1A00440 3B22 sxt1 r17 = r26 ;; } { .mmi 01C0711003C0 3B30 cmp.eq pr15, pr14 = r0, r17 ;; 01C27000000D 3B31 (pr13) cmp.eq.or.andcm pr0, pr14 = r0, r0 000008000000 3B32 nop.i 0 } { .mfb 000008000000 3B40 nop.m 0 000008000000 3B41 nop.f 0 0095FFFE800E 3B42 (pr14) br.cond.dptk.many L$490 ;; } 3B50 L$489: { .mfb 01A402344180 3B50 cmp4.ltu pr6, pr0 = sptr, zptr // pr6, pr0 = r34, r35 // 069420 000008000000 3B51 nop.f 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 121 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00860000C006 3B52 (pr6) br.cond.dpnt.many L$493 ;; } { .mii 012000100B40 3B60 add out2 = @ltoff($LITERAL$+440), // r45 = @ltoff($LITERAL$+440), r1 // 069423 gp 01092A130700 3B61 adds r28 = 4760, r33 // 069422 0120180E86C0 3B62 mov r27 = 500 } { .mmi 012000006640 3B70 mov ai = 3 ;; // r25 = 3 // 069423 0080C2D00B00 3B71 ld8 out1 = $LITERAL$ // r44 = [r45] 012038018B40 3B72 mov out2 = 908 // r45 = 908 } { .mmi 010802100AC0 3B80 mov out0 = rqptr ;; // r43 = r33 008C81C36000 3B81 st4 [r28] = r27 // 069422 000008000000 3B82 nop.i 0 } { .mfb 000008000000 3B90 nop.m 0 000008000000 3B91 nop.f 0 00A000001000 3B92 br.call.sptk.many rp = // br0 = ErrorGeneralOverflow // 069423 ErrorGeneralOverflow ;; } { .mfb 000008000000 3BA0 nop.m 0 000008000000 3BA1 nop.f 0 008000023000 3BA2 br.sptk.many L$569 ;; } 3BB0 L$493: // 069425 { .mmi 010812038940 3BB0 adds r37 = 284, in0 // r37 = 284, r32 // 069427 008C02200000 3BB1 st1 [r34] = r0 // 069426 01080A0488C0 3BB2 adds r35 = 164, in0 ;; // r35 = 164, r32 // 069427 } { .mii 008082500B40 3BC0 ld4 out2 = [r37] // r45 = [r37] 012000008640 3BC1 mov ai = 4 // r25 = 4 // 069433 010800000B00 3BC2 mov out1 = r0 // r44 = r0 } { .mmi 010802000AC0 3BD0 mov out0 = tkptr ;; // r43 = r32 000008000000 3BD1 nop.m 0 0000B2D00B40 3BD2 sxt4 out2 = out2 ;; // r45 = r45 // 069427 } { .mmi 01002AD449C0 3BE0 sub r39 = sptr, out2 ;; // r39 = r34, r45 008C8234E000 3BE1 st4 [r35] = r39 0000B2700B80 3BE2 sxt4 out3 = r39 // r46 = r39 // 069433 } { .mfb 000008000000 3BF0 nop.m 0 000008000000 3BF1 nop.f 0 00A000001000 3BF2 br.call.sptk.many rp = ProxyNetWrite ;; // br0 = ProxyNetWrite } { .mii 010802000AC0 3C00 mov out0 = tkptr // r43 = r32 // 069437 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 122 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01080A098B80 3C01 adds out3 = 204, in0 // r46 = 204, r32 010812040B40 3C02 adds out2 = 288, in0 // r45 = 288, r32 } { .mmi 010802A00040 3C10 mov gp = r42 ;; // r1 = r42 // 069433 008082E00B80 3C11 ld4 out3 = [out3] // r46 = [r46] // 069437 012000100B00 3C12 add out1 = // r44 = @ltoff(@fptr(ProxyTunnelChainConnectAst)), gp // @ltoff(@fptr(ProxyTunnelChainConnectAst)), // r1 } { .mii 008082D00B40 3C20 ld4 out2 = [out2] // r45 = [r45] 012000008640 3C21 mov ai = 4 ;; // r25 = 4 0000B2E00B80 3C22 sxt4 out3 = out3 // r46 = r46 } { .mib 0080C2C00B00 3C30 ld8 out1 = // r44 = [r44] ProxyTunnelChainConnectAst 0000B2D00B40 3C31 sxt4 out2 = out2 // r45 = r45 00A000001000 3C32 br.call.sptk.many rp = ProxyNetRead ;; // br0 = ProxyNetRead } { .mib 012000002200 3C40 mov r8 = 1 // 069440 010802A00040 3C41 mov gp = r42 // r1 = r42 // 069437 008000011000 3C42 br.sptk.many L$473 ;; // 069440 } 3C50 L$470: // 069411 { .mii 01092A130940 3C50 adds r37 = 4760, r33 // 069413 0120180E8900 3C51 mov r36 = 500 012000004640 3C52 mov ai = 2 // r25 = 2 // 069414 } { .mmi 012000008B00 3C60 mov out1 = 4 ;; // r44 = 4 010802100AC0 3C61 mov out0 = rqptr // r43 = r33 000008000000 3C62 nop.i 0 } { .mfb 008C82548000 3C70 st4 [r37] = r36 // 069413 000008000000 3C71 nop.f 0 00A000001000 3C72 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor // 069414 } { .mii 010802A00040 3C80 mov gp = r42 // r1 = r42 010800800B00 3C81 mov out1 = r8 // r44 = r8 010802100AC0 3C82 mov out0 = rqptr ;; // r43 = r33 } { .mmi 012000100B80 3C90 add out3 = @ltoff($LITERAL$+440), // r46 = @ltoff($LITERAL$+440), r1 gp ;; 0080C2E00B40 3C91 ld8 out2 = $LITERAL$ // r45 = [r46] 012038006B80 3C92 mov out3 = 899 // r46 = 899 } 3CA0 L$568: { .mfb 012000008640 3CA0 mov ai = 4 // r25 = 4 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 123 ProxyTunnelChainConnect 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 3CA1 nop.f 0 00A000001000 3CA2 br.call.sptk.many rp = ErrorGeneral ;; // br0 = ErrorGeneral } 3CB0 L$569: { .mii 012000004200 3CB0 mov r8 = 2 // 069415 010802A00040 3CB1 mov gp = r42 // r1 = r42 // 069414 000008000000 3CB2 nop.i 0 ;; } 3CC0 L$473: // 069415 { .mii 000008000000 3CC0 nop.m 0 000154052000 3CC1 mov.i rspfs = r41 ;; 000E00150000 3CC2 mov rp = r40 // br0 = r40 } { .mfb 010810C00300 3CD0 adds sp = 256, sp // r12 = 256, r12 000008000000 3CD1 nop.f 0 000108001100 3CD2 br.ret.sptk.many rp ;; // br0 } .endp ProxyTunnelChainConnect Routine Size: 5168 bytes, Routine Base: $CODE$ + 28B0 .proc ProxyTunnelChainConnectAst .align 32 .global ProxyTunnelChainConnectAst ProxyTunnelChainConnectAst: // 069452 { .mii 002C00B18A40 3CE0 alloc r41 = rspfs, 1, 10, 1, 0 01084A080200 3CE1 adds r8 = 1216, in0 // r8 = 1216, r32 // 069470 000188000A00 3CE2 mov r40 = rp ;; // r40 = br0 // 069452 } { .mii 008080800200 3CF0 ld4 r8 = [r8] // 069470 0119F80FE7C0 3CF1 adds r31 = -1, r0 // 069452 010800100A80 3CF2 mov r42 = gp ;; // r42 = r1 } { .mii 000008000000 3D00 nop.m 0 0000B0800200 3D01 sxt4 r8 = r8 ;; // 069470 010800838200 3D02 adds r8 = 28, r8 ;; } { .mmi 00B0088C8240 3D10 ld1 r9 = [r8], -28 ;; 000008000000 3D11 nop.m 0 00A038900200 3D12 tbit.z pr8, pr7 = r9, 0 } { .mfb 000008000000 3D20 nop.m 0 000008000000 3D21 nop.f 0 008600006007 3D22 (pr7) br.cond.dpnt.many L$358 ;; } { .mib 012000002640 3D30 mov ai = 1 // r25 = 1 // 069472 010802000AC0 3D31 mov out0 = tkptr // r43 = r32 00A000001000 3D32 br.call.sptk.many rp = ProxyEnd ;; // br0 = ProxyEnd Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 124 ProxyTunnelChainConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mfb 010802A00040 3D40 mov gp = r42 // r1 = r42 000008000000 3D41 nop.f 0 008000091000 3D42 br.sptk.many L$404 ;; // 069473 } 3D50 L$358: // 069474 { .mii 010812040840 3D50 adds r33 = 288, in0 // r33 = 288, r32 // 069476 0120001000C0 3D51 add r3 = @ltoff($LITERAL$+536), gp // r3 = @ltoff($LITERAL$+536), r1 // 069483 010800828200 3D52 adds r8 = 20, r8 ;; // 069474 } { .mmi 008082100840 3D60 ld4 DataPtr = [r33] // r33 = [r33] // 069476 0080C03000C0 3D61 ld8 r3 = $LITERAL$ // r3 = [r3] // 069483 000008000000 3D62 nop.i 0 ;; } { .mii 008080800200 3D70 ld4 r8 = [r8] // 069477 0000B2100840 3D71 sxt4 DataPtr = DataPtr // r33 = r33 // 069476 0111603F0280 3D72 and r10 = -8, r3 ;; // 069483 } { .mii 0111621F0900 3D80 and r36 = -8, r33 0000B0800200 3D81 sxt4 r8 = r8 // 069482 01C048A06000 3D82 cmp.eq pr0, pr9 = r3, r10 ;; // 069483 } { .mii 01C03A442000 3D90 cmp.eq pr0, pr7 = r33, r36 010000842200 3D91 add r8 = DataPtr, r8 // r8 = r33, r8 // 069482 009E100062C9 3D92 (pr9) dep r11 = r3, r0, 3, 3 ;; // 069483 } { .mib 008C00800000 3DA0 st1 [r8] = r0 // 069482 009E10042947 3DA1 (pr7) dep r37 = r33, r0, 3, 3 // 069483 004000000000 3DA2 nop.b 0 } { .mlx 000008000000 3DB0 nop.m 0 8003FFFFFFFF 3DB1 movl r19 = 72057594037927935 ;; 019FFFDFC9 } { .mmi 00A0C0A10480 3DC0 ld8 r18 = [r10], 8 00A0C24109C0 3DC1 ld8 r39 = [r36], 8 000008000000 3DC2 nop.i 0 ;; } { .mii 0080C0A00449 3DD0 (pr9) ld8 r17 = [r10] 00F201216489 3DD1 (pr9) shr.u r18 = r18, r11 00F20274A9C7 3DD2 (pr7) shr.u r39 = r39, r37 } { .mmi 010128B802C9 3DE0 (pr9) sub r11 = 64, r11 ;; 01012A580947 3DE1 (pr7) sub r37 = 64, r37 000008000000 3DE2 nop.i 0 } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 125 ProxyTunnelChainConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mmi 0080C2400987 3DF0 (pr7) ld8 r38 = [r36] ;; 000008000000 3DF1 nop.m 0 00F240B22449 3DF2 (pr9) shl r17 = r17, r11 ;; } { .mii 000008000000 3E00 nop.m 0 00F24254C987 3E01 (pr7) shl r38 = r38, r37 ;; 010071222489 3E02 (pr9) or r18 = r17, r18 ;; } { .mii 01007274C9C7 3E10 (pr7) or r39 = r38, r39 010061226480 3E11 and r18 = r19, r18 ;; 0100627269C0 3E12 and r39 = r19, r39 ;; } { .mfb 01C00124E2C0 3E20 cmp.eq pr11, pr0 = r39, r18 000008000000 3E21 nop.f 0 00860000600B 3E22 (pr11) br.cond.dpnt.many L$362 ;; } { .mib 012000002640 3E30 mov ai = 1 // r25 = 1 // 069485 010802000AC0 3E31 mov out0 = tkptr // r43 = r32 00A000001000 3E32 br.call.sptk.many rp = ProxyEnd ;; // br0 = ProxyEnd } { .mfb 010802A00040 3E40 mov gp = r42 // r1 = r42 000008000000 3E41 nop.f 0 008000071000 3E42 br.sptk.many L$404 ;; // 069486 } 3E50 L$362: // 069487 { .mmi 01080210E840 3E50 adds r33 = 7, r33 ;; // 069489 008002100880 3E51 ld1 r34 = [r33] 000008000000 3E52 nop.i 0 ;; } { .mii 000008000000 3E60 nop.m 0 0000A2200880 3E61 sxt1 r34 = r34 ;; 01C0022001C0 3E62 cmp.eq pr7, pr0 = r0, r34 } { .mfb 000008000000 3E70 nop.m 0 000008000000 3E71 nop.f 0 008600020007 3E72 (pr7) br.cond.dpnt.many L$364 ;; } 3E80 L$365: { .mmi 0080021008C0 3E80 ld1 r35 = [r33] ;; 01C802340240 3E81 cmp.eq pr9, pr0 = 32, r35 000008000000 3E82 nop.i 0 } { .mfb 000008000000 3E90 nop.m 0 000008000000 3E91 nop.f 0 00860001C009 3E92 (pr9) br.cond.dpnt.many L$364 ;; } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 126 ProxyTunnelChainConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mmi 010802102840 3EA0 adds r33 = 1, r33 ;; 008002100900 3EA1 ld1 r36 = [r33] 000008000000 3EA2 nop.i 0 ;; } { .mii 000008000000 3EB0 nop.m 0 0000A2400900 3EB1 sxt1 r36 = r36 ;; 01C0024002C0 3EB2 cmp.eq pr11, pr0 = r0, r36 } { .mfb 000008000000 3EC0 nop.m 0 000008000000 3EC1 nop.f 0 00860001600B 3EC2 (pr11) br.cond.dpnt.many L$364 ;; } { .mmi 008002100940 3ED0 ld1 r37 = [r33] ;; 01C802540340 3ED1 cmp.eq pr13, pr0 = 32, r37 000008000000 3ED2 nop.i 0 } { .mfb 000008000000 3EE0 nop.m 0 000008000000 3EE1 nop.f 0 00860001200D 3EE2 (pr13) br.cond.dpnt.many L$364 ;; } { .mmi 010802102840 3EF0 adds r33 = 1, r33 ;; 008002100980 3EF1 ld1 r38 = [r33] 000008000000 3EF2 nop.i 0 ;; } { .mii 000008000000 3F00 nop.m 0 0000A2600980 3F01 sxt1 r38 = r38 ;; 01C0026003C0 3F02 cmp.eq pr15, pr0 = r0, r38 } { .mfb 000008000000 3F10 nop.m 0 000008000000 3F11 nop.f 0 00860000C00F 3F12 (pr15) br.cond.dpnt.many L$364 ;; } { .mii 0080021009C0 3F20 ld1 r39 = [r33] 0108421000C0 3F21 adds r3 = 1024, r33 ;; 01C8027401C0 3F22 cmp.eq pr7, pr0 = 32, r39 } { .mfb 00CB00300000 3F30 lfetch [r3] 000008000000 3F31 nop.f 0 008600008007 3F32 (pr7) br.cond.dpnt.many L$364 ;; } { .mmi 010802102840 3F40 adds r33 = 1, r33 ;; 008002100200 3F41 ld1 r8 = [r33] 000008000000 3F42 nop.i 0 ;; } { .mii 000008000000 3F50 nop.m 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 127 ProxyTunnelChainConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 0000A0800200 3F51 sxt1 r8 = r8 ;; 01C040800000 3F52 cmp.eq pr0, pr8 = r0, r8 } { .mfb 000008000000 3F60 nop.m 0 000008000000 3F61 nop.f 0 0095FFFE4008 3F62 (pr8) br.cond.dptk.many L$365 ;; } 3F70 L$364: // 069490 { .mmi 008002100240 3F70 ld1 r9 = [r33] ;; 01C850940000 3F71 cmp.eq pr0, pr10 = 32, r9 000008000000 3F72 nop.i 0 } { .mfb 000008000000 3F80 nop.m 0 000008000000 3F81 nop.f 0 00860001600A 3F82 (pr10) br.cond.dpnt.many L$379 ;; } 3F90 L$381: { .mmi 010802102840 3F90 adds r33 = 1, r33 ;; 008002100280 3F91 ld1 r10 = [r33] 000008000000 3F92 nop.i 0 ;; } { .mfb 01C860A40000 3FA0 cmp.eq pr0, pr12 = 32, r10 000008000000 3FA1 nop.f 0 00860001200C 3FA2 (pr12) br.cond.dpnt.many L$379 ;; } { .mmi 010802102840 3FB0 adds r33 = 1, r33 ;; 0080021002C0 3FB1 ld1 r11 = [r33] 000008000000 3FB2 nop.i 0 ;; } { .mfb 01C870B40000 3FC0 cmp.eq pr0, pr14 = 32, r11 000008000000 3FC1 nop.f 0 00860000E00E 3FC2 (pr14) br.cond.dpnt.many L$379 ;; } { .mmi 010802102840 3FD0 adds r33 = 1, r33 ;; 008002100440 3FD1 ld1 r17 = [r33] 000008000000 3FD2 nop.i 0 ;; } { .mfb 01C831140000 3FE0 cmp.eq pr0, pr6 = 32, r17 000008000000 3FE1 nop.f 0 00860000A006 3FE2 (pr6) br.cond.dpnt.many L$379 ;; } { .mmi 010802102840 3FF0 adds r33 = 1, r33 ;; 008002100480 3FF1 ld1 r18 = [r33] 000008000000 3FF2 nop.i 0 ;; } { .mfb 01C841240000 4000 cmp.eq pr0, pr8 = 32, r18 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 128 ProxyTunnelChainConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 4001 nop.f 0 008600006008 4002 (pr8) br.cond.dpnt.many L$379 ;; } { .mmi 010802102840 4010 adds r33 = 1, r33 ;; 0080021004C0 4011 ld1 r19 = [r33] 010842100500 4012 adds r20 = 1024, r33 ;; } { .mib 00CB01400000 4020 lfetch [r20] 01C8013402C0 4021 cmp.eq pr11, pr0 = 32, r19 0095FFFEE00B 4022 (pr11) br.cond.dptk.many L$381 ;; } 4030 L$379: { .mii 012000100680 4030 add r26 = @ltoff($LITERAL$+808), // r26 = @ltoff($LITERAL$+808), r1 // 069491 gp 0111621F8580 4031 and r22 = -4, r33 000008000000 4032 nop.i 0 } { .mlx 000008000000 4040 nop.m 0 800000000003 4041 movl out0 = 16777215 ;; // r43 = 16777215 019FFFDFD5 } { .mii 0080C1A00680 4050 ld8 r26 = $LITERAL$ // r26 = [r26] 01C069642300 4051 cmp.eq pr12, pr13 = r33, r22 ;; 011161AF8700 4052 and r28 = -4, r26 } { .mmi 00808160064C 4060 (pr12) ld4 ai = [r22] ;; // r25 = [r22] 01C079C34380 4061 cmp.eq pr14, pr15 = r26, r28 009E080425CD 4062 (pr13) dep r23 = r33, r0, 3, 2 ;; } { .mib 008081C007CE 4070 (pr14) ld4 r31 = [r28] 009E0803474F 4071 (pr15) dep r29 = r26, r0, 3, 2 004000000000 4072 nop.b 0 } { .mmi 00A08160864D 4080 (pr13) ld4 ai = [r22], 4 ;; // r25 = [r22], 4 00A081C087CF 4081 (pr15) ld4 r31 = [r28], 4 00F20192E64D 4082 (pr13) shr.u ai = ai, r23 // r25 = r25, r23 } { .mmi 0101297405CD 4090 (pr13) sub r23 = 32, r23 ;; 00808160060D 4091 (pr13) ld4 r24 = [r22] 000008000000 4092 nop.i 0 ;; } { .mii 008081C0078F 40A0 (pr15) ld4 r30 = [r28] 00F201F3A7CF 40A1 (pr15) shr.u r31 = r31, r29 010129D4074F 40A2 (pr15) sub r29 = 32, r29 ;; } { .mii 000008000000 40B0 nop.m 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 129 ProxyTunnelChainConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00F24173060D 40B1 (pr13) shl r24 = r24, r23 ;; 00F241D3C78F 40B2 (pr15) shl r30 = r30, r29 ;; } { .mmi 01007193064D 40C0 (pr13) or ai = r24, ai ;; // r25 = r24, r25 000008000000 40C1 nop.m 0 00009190064D 40C2 (pr13) zxt4 ai = ai ;; // r25 = r25 } { .mii 010071F3C7CF 40D0 (pr15) or r31 = r30, r31 010061956640 40D1 and ai = out0, ai ;; // r25 = r43, r25 000091F007CF 40D2 (pr15) zxt4 r31 = r31 ;; } { .mmi 010061F567C0 40E0 and r31 = out0, r31 ;; // r31 = r43, r31 01C401F321C0 40E1 cmp4.eq pr7, pr0 = ai, r31 // pr7, pr0 = r25, r31 000008000000 40E2 nop.i 0 } { .mfb 000008000000 40F0 nop.m 0 000008000000 40F1 nop.f 0 008600006007 40F2 (pr7) br.cond.dpnt.many L$397 ;; } { .mib 012000002640 4100 mov ai = 1 // r25 = 1 // 069493 010802000AC0 4101 mov out0 = tkptr // r43 = r32 00A000001000 4102 br.call.sptk.many rp = ProxyEnd ;; // br0 = ProxyEnd } { .mfb 010802A00040 4110 mov gp = r42 // r1 = r42 000008000000 4111 nop.f 0 008000017000 4112 br.sptk.many L$404 ;; // 069494 } 4120 L$397: // 069495 { .mmi 01084A050880 4120 adds r34 = 1192, in0 ;; // r34 = 1192, r32 // 069497 008082200880 4121 ld4 rqptr = [r34] // r34 = [r34] 000008000000 4122 nop.i 0 ;; } { .mib 01C4000441C0 4130 cmp4.eq pr7, pr0 = rqptr, r0 // pr7, pr0 = r34, r0 // 069500 0000B2200880 4131 sxt4 rqptr = rqptr // r34 = r34 008600006007 4132 (pr7) br.cond.dpnt.many L$399 ;; } { .mii 01092A230900 4140 adds r36 = 4760, r34 0120080908C0 4141 mov r35 = 200 000008000000 4142 nop.i 0 ;; } { .mfi 008C82446000 4150 st4 [r36] = r35 000008000000 4151 nop.f 0 000008000000 4152 nop.i 0 } 4160 L$399: { .mii 0108A22C8880 4160 adds r34 = 2660, r34 // 069503 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 130 ProxyTunnelChainConnectAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 012000002940 4161 mov r37 = 1 01080A030980 4162 adds r38 = 152, in0 ;; // r38 = 152, r32 // 069505 } { .mmi 008C8224A000 4170 st4 [r34] = r37 ;; // 069503 008082600980 4171 ld4 r38 = [r38] // 069505 000008000000 4172 nop.i 0 ;; } { .mfb 01CC42608000 4180 cmp4.eq pr0, pr8 = 4, r38 000008000000 4181 nop.f 0 008600006008 4182 (pr8) br.cond.dpnt.many L$402 ;; } { .mib 012000002640 4190 mov ai = 1 // r25 = 1 // 069506 010802000AC0 4191 mov out0 = tkptr // r43 = r32 00A000001000 4192 br.call.sptk.many rp = // br0 = SesolaNetClientBegin SesolaNetClientBegin ;; } { .mfb 010802A00040 41A0 mov gp = r42 // r1 = r42 000008000000 41A1 nop.f 0 008000005000 41A2 br.sptk.many L$404 ;; // 069507 } 41B0 L$402: { .mfb 010802000AC0 41B0 mov out0 = tkptr // r43 = r32 // 069508 000008000000 41B1 nop.f 0 00A000001000 41B2 br.call.sptk.many rp = // br0 = ProxyTunnelBegin ProxyTunnelBegin ;; } 41C0 L$404: // 069509 { .mii 000008000000 41C0 nop.m 0 000154052000 41C1 mov.i rspfs = r41 ;; 000E00150000 41C2 mov rp = r40 // br0 = r40 } { .mfb 000008000000 41D0 nop.m 0 000008000000 41D1 nop.f 0 000108001100 41D2 br.ret.sptk.many rp ;; // br0 } .endp ProxyTunnelChainConnectAst Routine Size: 1280 bytes, Routine Base: $CODE$ + 3CE0 .proc ProxyTunnelConnectResponseAst .align 32 .global ProxyTunnelConnectResponseAst ProxyTunnelConnectResponseAst: // 069522 { .mii 002C005128C0 41E0 alloc r35 = rspfs, 1, 4, 4, 0 01080A060200 41E1 adds r8 = 176, in0 // r8 = 176, r32 // 069540 0122080D0240 41E2 addl r9 = 8424, r0 ;; // 069538 } { .mii 008080800200 41F0 ld4 r8 = [r8] // 069540 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 131 ProxyTunnelConnectResponseAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 010000940240 41F1 add r9 = in0, r9 // r9 = r32, r9 // 069538 000188000880 41F2 mov r34 = rp ;; // r34 = br0 // 069522 } { .mii 008080900840 4200 ld4 tkptr = [r9] // r33 = [r9] // 069538 0000B0800200 4201 sxt4 r8 = r8 ;; // 069540 0108008A0200 4202 adds r8 = 80, r8 } { .mib 010800100900 4210 mov r36 = gp // r36 = r1 // 069522 0000B2100840 4211 sxt4 tkptr = tkptr // r33 = r33 // 069538 004000000000 4212 nop.b 0 ;; } { .mmi 008000800200 4220 ld1 r8 = [r8] ;; // 069540 000008000000 4221 nop.m 0 00A038800200 4222 tbit.z pr8, pr7 = r8, 0 } { .mfb 000008000000 4230 nop.m 0 000008000000 4231 nop.f 0 008600006007 4232 (pr7) br.cond.dpnt.many L$211 ;; } { .mib 012000002640 4240 mov ai = 1 // r25 = 1 // 069542 010802100940 4241 mov out0 = tkptr // r37 = r33 00A000001000 4242 br.call.sptk.many rp = ProxyEnd ;; // br0 = ProxyEnd } { .mfb 000008000000 4250 nop.m 0 000008000000 4251 nop.f 0 008000013000 4252 br.sptk.many L$570 ;; } 4260 L$211: // 069544 { .mii 010802000940 4260 mov out0 = rqptr // r37 = r32 // 069546 010802060800 4261 adds in0 = 48, in0 // r32 = 48, r32 012000100980 4262 add out1 = // r38 = @ltoff(@fptr(ProxyTunnelNetReadAst)), gp // @ltoff(@fptr(ProxyTunnelNetReadAst)), // r1 } { .mmi 012000008640 4270 mov ai = 4 ;; // r25 = 4 00A082050A00 4271 ld4 out3 = [in0], 40 // r40 = [r32], 40 000008000000 4272 nop.i 0 } { .mmi 0080C2600980 4280 ld8 out1 = ProxyTunnelNetReadAst ;; // r38 = [r38] 0080820009C0 4281 ld4 out2 = [in0] // r39 = [r32] 0000B2800A00 4282 sxt4 out3 = out3 ;; // r40 = r40 } { .mib 000008000000 4290 nop.m 0 0000B27009C0 4291 sxt4 out2 = out2 // r39 = r39 00A000001000 4292 br.call.sptk.many rp = NetRead ;; // br0 = NetRead } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 132 ProxyTunnelConnectResponseAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mii 010802100940 42A0 mov out0 = tkptr // r37 = r33 // 069550 01080A198A00 42A1 adds out3 = 204, r33 // r40 = 204, r33 0108121409C0 42A2 adds out2 = 288, r33 // r39 = 288, r33 } { .mmi 010802400040 42B0 mov gp = r36 ;; // r1 = r36 // 069546 008082800A00 42B1 ld4 out3 = [out3] // r40 = [r40] // 069550 012000100980 42B2 add out1 = // r38 = @ltoff(@fptr(ProxyTunnelReadAst)), // @ltoff(@fptr(ProxyTunnelReadAst)), gp // r1 } { .mii 0080827009C0 42C0 ld4 out2 = [out2] // r39 = [r39] 012000008640 42C1 mov ai = 4 ;; // r25 = 4 0000B2800A00 42C2 sxt4 out3 = out3 // r40 = r40 } { .mib 0080C2600980 42D0 ld8 out1 = ProxyTunnelReadAst // r38 = [r38] 0000B27009C0 42D1 sxt4 out2 = out2 // r39 = r39 00A000001000 42D2 br.call.sptk.many rp = ProxyNetRead ;; // br0 = ProxyNetRead } 42E0 L$570: { .mii 010802400040 42E0 mov gp = r36 // r1 = r36 000154046000 42E1 mov.i rspfs = r35 ;; // 069553 000E00144000 42E2 mov rp = r34 // br0 = r34 } { .mfb 000008000000 42F0 nop.m 0 000008000000 42F1 nop.f 0 000108001100 42F2 br.ret.sptk.many rp ;; // br0 } .endp ProxyTunnelConnectResponseAst Routine Size: 288 bytes, Routine Base: $CODE$ + 41E0 .proc ProxyTunnelNetReadAst .align 32 .global ProxyTunnelNetReadAst ProxyTunnelNetReadAst: // 069576 { .mii 002C00C22A80 4300 alloc r42 = rspfs, 1, 11, 5, 0 01080A060200 4301 adds r8 = 176, in0 // r8 = 176, r32 // 069597 0122080D0280 4302 addl r10 = 8424, r0 // 069595 } { .mmi 0119F80FE780 4310 adds r30 = -1, r0 ;; // 069576 008080800200 4311 ld4 r8 = [r8] // 069597 010000A40280 4312 add r10 = in0, r10 ;; // r10 = r32, r10 // 069595 } { .mii 008080A00840 4320 ld4 tkptr = [r10] // r33 = [r10] 0000B0800200 4321 sxt4 r8 = r8 ;; // 069597 010800838200 4322 adds r8 = 28, r8 } { .mii Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 133 ProxyTunnelNetReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 4330 nop.m 0 0000B2100840 4331 sxt4 tkptr = tkptr ;; // r33 = r33 // 069595 000188000A40 4332 mov r41 = rp // r41 = br0 // 069576 } { .mii 00B0088C8240 4340 ld1 r9 = [r8], -28 // 069597 010800100AC0 4341 mov r43 = gp ;; // r43 = r1 // 069576 00A038900200 4342 tbit.z pr8, pr7 = r9, 0 // 069597 } { .mfb 000008000000 4350 nop.m 0 000008000000 4351 nop.f 0 00860000A007 4352 (pr7) br.cond.dpnt.many L$150 ;; } { .mib 012000002640 4360 mov ai = 1 // r25 = 1 // 069599 010802100B00 4361 mov out0 = tkptr // r44 = r33 00A000001000 4362 br.call.sptk.many rp = // br0 = ProxyNetCloseSocket ProxyNetCloseSocket ;; } { .mii 012000002640 4370 mov ai = 1 // r25 = 1 // 069600 010802100B00 4371 mov out0 = tkptr // r44 = r33 010802B00040 4372 mov gp = r43 ;; // r1 = r43 // 069599 } { .mfb 000008000000 4380 nop.m 0 000008000000 4381 nop.f 0 00A000001000 4382 br.call.sptk.many rp = ProxyEnd ;; // br0 = ProxyEnd // 069600 } { .mfb 000008000000 4390 nop.m 0 000008000000 4391 nop.f 0 0080000B7000 4392 br.sptk.many L$571 ;; } 43A0 L$150: // 069602 { .mii 01081A0308C0 43A0 adds r35 = 408, in0 // r35 = 408, r32 // 069604 010800828200 43A1 adds r8 = 20, r8 01090A090940 43A2 adds r37 = 4296, in0 // r37 = 4296, r32 // 069609 } { .mmi 010802000800 43B0 adds in0 = 0, in0 ;; // r32 = 0, r32 // 069606 0080C23008C0 43B1 ld8 r35 = [r35] // 069604 01081A0309C0 43B2 adds r39 = 408, in0 // r39 = 408, r32 } { .mii 008080800BC0 43C0 ld4 out3 = [r8] // r47 = [r8] 0108020B0800 43C1 adds in0 = 88, in0 ;; // r32 = 88, r32 // 069606 010002F46880 43C2 add r34 = r35, out3 // r34 = r35, r47 // 069604 } { .mmi 008082500940 43D0 ld4 r37 = [r37] // 069609 008082000900 43D1 ld4 bptr = [in0] // r36 = [r32] // 069606 010802F00980 43D2 mov bcnt = out3 ;; // r38 = r47 // 069607 } { .mmi Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 134 ProxyTunnelNetReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01CC32504000 43E0 cmp4.eq pr0, pr6 = 2, r37 // 069609 008CC2744000 43E1 st8 [r39] = r34 // 069604 0000B2400900 43E2 sxt4 bptr = bptr // r36 = r36 // 069606 } { .mfb 000008000000 43F0 nop.m 0 000008000000 43F1 nop.f 0 0086000A4006 43F2 (pr6) br.cond.dpnt.many L$155 ;; // 069609 } { .mii 0108AA0E00C0 4400 adds r3 = 2800, in0 // r3 = 2800, r32 // 069610 0119FA050800 4401 adds in0 = -88, in0 // r32 = -88, r32 000008000000 4402 nop.i 0 ;; } { .mmi 0080803008C0 4410 ld4 xfptr = [r3] ;; // r35 = [r3] 01C400046240 4411 cmp4.eq pr9, pr0 = xfptr, r0 // pr9, pr0 = r35, r0 0000B23008C0 4412 sxt4 xfptr = xfptr // r35 = r35 } { .mfb 000008000000 4420 nop.m 0 000008000000 4421 nop.f 0 00860009E009 4422 (pr9) br.cond.dpnt.many L$155 ;; // 069609 } { .mii 010802400280 4430 mov cptr = bptr // r10 = r36 // 069613 0000B2F00240 4431 sxt4 r9 = out3 // r9 = r47 010800000880 4432 mov rlen = r0 ;; // r34 = r0 // 069612 } { .mmi 010000948240 4440 add czptr = bptr, r9 ;; // r9 = r36, r9 // 069613 01A458948000 4441 cmp4.ltu pr0, pr11 = bptr, czptr // pr0, pr11 = r36, r9 // 069614 000008000000 4442 nop.i 0 } { .mfb 000008000000 4450 nop.m 0 000008000000 4451 nop.f 0 00860007000B 4452 (pr11) br.cond.dpnt.many L$159 ;; // 069613 } { .mlx 0120001002C0 4460 add r11 = @ltoff($LITERAL$+552), // r11 = @ltoff($LITERAL$+552), r1 // 069614 gp 0003FFFFFFFF 4461 movl r22 = 72057594037927935 ;; // 069617 019FFFDFCB } { .mlx 0080C0B00480 4470 ld8 r18 = $LITERAL$ // r18 = [r11] // 069614 800000000003 4471 movl r21 = 16777215 ;; // 069620 019FFFDFCA } { .mmi 00A0012024C0 4480 ld1 r19 = [r18], 1 ;; // 069614 008001200500 4481 ld1 r20 = [r18] 000008000000 4482 nop.i 0 ;; } { .mib 000008000000 4490 nop.m 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 135 ProxyTunnelNetReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 009BB93282C0 4491 dep r11 = r20, r19, 8, 8 004000000000 4492 nop.b 0 ;; } 44A0 L$160: { .mmi 010800A00600 44A0 mov r24 = r10 ;; 00A001802640 44A1 ld1 ai = [r24], 1 // r25 = [r24], 1 000008000000 44A2 nop.i 0 ;; } { .mmi 008001800680 44B0 ld1 r26 = [r24] ;; 000008000000 44B1 nop.m 0 009BB99345C0 44B2 dep r23 = r26, ai, 8, 8 ;; // r23 = r26, r25, 8, 8 } { .mfb 01C000B2E340 44C0 cmp.eq pr13, pr0 = r23, r11 000008000000 44C1 nop.f 0 00860006200D 44C2 (pr13) br.cond.dpnt.many L$159 ;; // 069613 } { .mmi 008000A006C0 44D0 ld1 r27 = [r10] ;; // 069614 01C801B143C0 44D1 cmp.eq pr15, pr0 = 10, r27 000008000000 44D2 nop.i 0 } { .mfb 000008000000 44E0 nop.m 0 000008000000 44E1 nop.f 0 00860005E00F 44E2 (pr15) br.cond.dpnt.many L$159 ;; } { .mii 012000100B40 44F0 add out1 = @ltoff($LITERAL$+536), // r45 = @ltoff($LITERAL$+536), r1 // 069617 gp 011160AF0740 44F1 and r29 = -8, r10 ;; 01C039D14000 44F2 cmp.eq pr0, pr7 = r10, r29 } { .mmi 0080C2D00B40 4500 ld8 out1 = $LITERAL$ // r45 = [r45] 00A0C1D10B00 4501 ld8 out0 = [r29], 8 // r44 = [r29], 8 000008000000 4502 nop.i 0 ;; } { .mii 011162DF0C00 4510 and out4 = -8, out1 // r48 = -8, r45 009E10014787 4511 (pr7) dep r30 = r10, r0, 3, 3 ;; 01C04B05A000 4512 cmp.eq pr0, pr9 = out1, out4 // pr0, pr9 = r45, r48 } { .mmi 00A0C30109C0 4520 ld8 r39 = [out4], 8 // r39 = [r48], 8 0080C1D007C7 4521 (pr7) ld8 r31 = [r29] 000008000000 4522 nop.i 0 ;; } { .mii 000008000000 4530 nop.m 0 009E1005A209 4531 (pr9) dep r8 = out1, r0, 3, 3 ;; // r8 = r45, r0, 3, 3 00F202C3CB07 4532 (pr7) shr.u out0 = out0, r30 // r44 = r44, r30 } { .mmi 010129E80787 4540 (pr7) sub r30 = 64, r30 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 136 ProxyTunnelNetReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 0080C3000BC9 4541 (pr9) ld8 out3 = [out4] // r47 = [r48] 000008000000 4542 nop.i 0 ;; } { .mii 000008000000 4550 nop.m 0 00F2027109C9 4551 (pr9) shr.u r39 = r39, r8 010128880209 4552 (pr9) sub r8 = 64, r8 ;; } { .mii 000008000000 4560 nop.m 0 00F241E3E7C7 4561 (pr7) shl r31 = r31, r30 ;; 00F24085EBC9 4562 (pr9) shl out3 = out3, r8 ;; // r47 = r47, r8 } { .mmi 010072C3EB07 4570 (pr7) or out0 = r31, out0 ;; // r44 = r31, r44 010061658B00 4571 and out0 = out0, r22 // r44 = r44, r22 000008000000 4572 nop.i 0 ;; } { .mmi 01007275E9C9 4580 (pr9) or r39 = out3, r39 ;; // r39 = r47, r39 01006164E9C0 4581 and r39 = r39, r22 000008000000 4582 nop.i 0 ;; } { .mfb 01C052758000 4590 cmp.eq pr0, pr10 = out0, r39 // pr0, pr10 = r44, r39 000008000000 4591 nop.f 0 00860003C00A 4592 (pr10) br.cond.dpnt.many L$165 ;; } { .mii 0120001004C0 45A0 add r19 = @ltoff($LITERAL$+528), // r19 = @ltoff($LITERAL$+528), r1 // 069620 gp 010800A0E280 45A1 adds r10 = 7, r10 ;; // 069617 010800A000C0 45A2 mov r3 = r10 // 069620 } { .mmi 0080C1300600 45B0 ld8 r24 = $LITERAL$ ;; // r24 = [r19] 00A000302440 45B1 ld1 r17 = [r3], 1 000008000000 45B2 nop.i 0 ;; } { .mmi 00A001802640 45C0 ld1 ai = [r24], 1 ;; // r25 = [r24], 1 008000300480 45C1 ld1 r18 = [r3] 000008000000 45C2 nop.i 0 ;; } { .mii 008001800680 45D0 ld1 r26 = [r24] 009BB91240C0 45D1 dep r3 = r18, r17, 8, 8 ;; 009BB99344C0 45D2 dep r19 = r26, ai, 8, 8 ;; // r19 = r26, r25, 8, 8 } { .mfb 01C001306340 45E0 cmp.eq pr13, pr0 = r3, r19 000008000000 45E1 nop.f 0 00860003600D 45E2 (pr13) br.cond.dpnt.many L$168 ;; } { .mii 0120001007C0 45F0 add r31 = @ltoff($LITERAL$+520), // r31 = @ltoff($LITERAL$+520), r1 gp Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 137 ProxyTunnelNetReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 011160AF86C0 45F1 and r27 = -4, r10 ;; 01C079B14380 45F2 cmp.eq pr14, pr15 = r10, r27 } { .mmi 0080C1F007C0 4600 ld8 r31 = $LITERAL$ ;; // r31 = [r31] 011161FF8B40 4601 and out1 = -4, r31 // r45 = -4, r31 009E0801470F 4602 (pr15) dep r28 = r10, r0, 3, 2 } { .mmi 008081B0078E 4610 (pr14) ld4 r30 = [r27] ;; 01C03AD3E180 4611 cmp.eq pr6, pr7 = r31, out1 // pr6, pr7 = r31, r45 000008000000 4612 nop.i 0 ;; } { .mib 008082D00C06 4620 (pr6) ld4 out4 = [out1] // r48 = [r45] 009E0803EB87 4621 (pr7) dep out2 = r31, r0, 3, 2 // r46 = r31, r0, 3, 2 004000000000 4622 nop.b 0 } { .mmi 00A081B0878F 4630 (pr15) ld4 r30 = [r27], 4 ;; 00A082D08C07 4631 (pr7) ld4 out4 = [out1], 4 // r48 = [r45], 4 00F201E3878F 4632 (pr15) shr.u r30 = r30, r28 } { .mmi 010129C4070F 4640 (pr15) sub r28 = 32, r28 ;; 008081B0074F 4641 (pr15) ld4 r29 = [r27] 000008000000 4642 nop.i 0 ;; } { .mii 008082D00BC7 4650 (pr7) ld4 out3 = [out1] // r47 = [r45] 00F20305CC07 4651 (pr7) shr.u out4 = out4, out2 // r48 = r48, r46 01012AE40B87 4652 (pr7) sub out2 = 32, out2 ;; // r46 = 32, r46 } { .mii 000008000000 4660 nop.m 0 00F241C3A74F 4661 (pr15) shl r29 = r29, r28 ;; 00F242E5EBC7 4662 (pr7) shl out3 = out3, out2 ;; // r47 = r47, r46 } { .mmi 010071E3A78F 4670 (pr15) or r30 = r29, r30 ;; 000008000000 4671 nop.m 0 000091E0078F 4672 (pr15) zxt4 r30 = r30 ;; } { .mii 01007305EC07 4680 (pr7) or out4 = out3, out4 // r48 = r47, r48 01006153C780 4681 and r30 = r30, r21 ;; 000093000C07 4682 (pr7) zxt4 out4 = out4 ;; // r48 = r48 } { .mmi 010061560C00 4690 and out4 = out4, r21 ;; // r48 = r48, r21 01C40303C240 4691 cmp4.eq pr9, pr0 = r30, out4 // pr9, pr0 = r30, r48 000008000000 4692 nop.i 0 } { .mfb 000008000000 46A0 nop.m 0 000008000000 46A1 nop.f 0 00860001E009 46A2 (pr9) br.cond.dpnt.many L$168 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 138 ProxyTunnelNetReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mmi 0120001009C0 46B0 add r39 = @ltoff($LITERAL$+512), // r39 = @ltoff($LITERAL$+512), r1 // 069621 gp ;; 0080C2700440 46B1 ld8 r17 = $LITERAL$ // r17 = [r39] 000008000000 46B2 nop.i 0 ;; } { .mmi 00A001102480 46C0 ld1 r18 = [r17], 1 ;; 008001100940 46C1 ld1 r37 = [r17] 000008000000 46C2 nop.i 0 ;; } { .mii 000008000000 46D0 nop.m 0 009BB924A440 46D1 dep r17 = r37, r18, 8, 8 ;; 01C0011062C0 46D2 cmp.eq pr11, pr0 = r3, r17 } { .mfb 000008000000 46E0 nop.m 0 000008000000 46E1 nop.f 0 00860001600B 46E2 (pr11) br.cond.dpnt.many L$168 ;; // 069620 } { .mmi 012000100500 46F0 add r20 = @ltoff($LITERAL$+504), // r20 = @ltoff($LITERAL$+504), r1 // 069621 gp ;; 0080C1400500 46F1 ld8 r20 = $LITERAL$ // r20 = [r20] 000008000000 46F2 nop.i 0 ;; } { .mmi 0111614F8640 4700 and ai = -4, r20 ;; // r25 = -4, r20 01C069928300 4701 cmp.eq pr12, pr13 = r20, ai // pr12, pr13 = r20, r25 000008000000 4702 nop.i 0 ;; } { .mib 0080819005CC 4710 (pr12) ld4 r23 = [ai] // r23 = [r25] 009E0802868D 4711 (pr13) dep r26 = r20, r0, 3, 2 004000000000 4712 nop.b 0 ;; } { .mmi 00A0819085CD 4720 (pr13) ld4 r23 = [ai], 4 ;; // r23 = [r25], 4 0080819004CD 4721 (pr13) ld4 r19 = [ai] // r19 = [r25] 00F2017345CD 4722 (pr13) shr.u r23 = r23, r26 } { .mmi 010129A4068D 4730 (pr13) sub r26 = 32, r26 ;; 000008000000 4731 nop.m 0 00F241A264CD 4732 (pr13) shl r19 = r19, r26 ;; } { .mmi 0100717265CD 4740 (pr13) or r23 = r19, r23 ;; 000008000000 4741 nop.m 0 0000917005CD 4742 (pr13) zxt4 r23 = r23 ;; } { .mmi 01006152E5C0 4750 and r23 = r23, r21 ;; 01C40173C3C0 4751 cmp4.eq pr15, pr0 = r30, r23 000008000000 4752 nop.i 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 139 ProxyTunnelNetReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mfb 000008000000 4760 nop.m 0 000008000000 4761 nop.f 0 00860000600F 4762 (pr15) br.cond.dpnt.many L$168 ;; // 069620 } 4770 L$165: // 069631 { .mmi 010800A02280 4770 adds r10 = 1, r10 ;; 01A400914180 4771 cmp4.ltu pr6, pr0 = cptr, czptr // pr6, pr0 = r10, r9 // 069614 000008000000 4772 nop.i 0 } { .bbb 0095FFFA4006 4780 (pr6) br.cond.dptk.many L$160 // 069613 004000000000 4781 nop.b 0 00800000B000 4782 br.sptk.many L$159 ;; } 4790 L$168: // 069622 { .mmi 010800A02280 4790 adds r10 = 1, r10 ;; // 069625 008000A006C0 4791 ld1 r27 = [r10] 010800A02700 4792 adds r28 = 1, cptr ;; // r28 = 1, r10 } { .mmi 01C801B1A240 47A0 cmp.eq pr9, pr0 = 13, r27 ;; 010801C00289 47A1 (pr9) mov cptr = r28 // r10 = r28 000008000000 47A2 nop.i 0 ;; } { .mii 008000A00740 47B0 ld1 r29 = [r10] // 069626 010800A02200 47B1 adds r8 = 1, cptr ;; // r8 = 1, r10 01C801D142C0 47B2 cmp.eq pr11, pr0 = 10, r29 ;; } { .mmi 01080080028B 47C0 (pr11) mov cptr = r8 ;; // r10 = r8 01002A414880 47C1 sub r34 = cptr, bptr // r34 = r10, r36 // 069628 000008000000 47C2 nop.i 0 ;; } 47D0 L$159: // 069631 { .mfb 01C402200340 47D0 cmp4.eq pr13, pr0 = r0, rlen // pr13, pr0 = r0, r34 // 069633 000008000000 47D1 nop.f 0 00860002800D 47D2 (pr13) br.cond.dpnt.many L$155 ;; } { .mib 012000002640 47E0 mov ai = 1 // r25 = 1 // 069636 010802300B00 47E1 mov out0 = xfptr // r44 = r35 00A000001000 47E2 br.call.sptk.many rp = DECC$STRLEN ;; // br0 = DECC$STRLEN } { .mii 01080A0609C0 47F0 adds r39 = 176, in0 // r39 = 176, r32 // 069638 010800826940 47F1 adds xflen = 19, r8 // r37 = 19, r8 // 069636 010802B00040 47F2 mov gp = r43 ;; // r1 = r43 } { .mii 0080827009C0 4800 ld4 r39 = [r39] // 069638 01000254CA00 4801 add r40 = bcnt, xflen ;; // r40 = r38, r37 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 140 ProxyTunnelNetReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 0000B27009C0 4802 sxt4 r39 = r39 ;; } { .mmi 0108027309C0 4810 adds r39 = 24, r39 ;; 0080827009C0 4811 ld4 r39 = [r39] 000008000000 4812 nop.i 0 ;; } { .mfb 01A43284E000 4820 cmp4.ltu pr0, pr6 = r39, r40 000008000000 4821 nop.f 0 00860000E006 4822 (pr6) br.cond.dpnt.many L$172 ;; } { .mii 012000004640 4830 mov ai = 2 // r25 = 2 // 069641 0000B2800B40 4831 sxt4 out1 = r40 // r45 = r40 010802000B00 4832 mov out0 = rqptr // r44 = r32 } { .mfb 000008000000 4840 nop.m 0 000008000000 4841 nop.f 0 00A000001000 4842 br.call.sptk.many rp = VmGetHeap ;; // br0 = VmGetHeap } { .mii 0108020B0800 4850 adds in0 = 88, in0 // r32 = 88, r32 // 069642 0000B2600B40 4851 sxt4 out1 = bcnt // r45 = r38 010800800B00 4852 mov out0 = r8 // r44 = r8 } { .mmi 010800800900 4860 mov bptr = r8 ;; // r36 = r8 // 069641 008082000B80 4861 ld4 out2 = [in0] // r46 = [r32] // 069642 010802B00040 4862 mov gp = r43 ;; // r1 = r43 // 069641 } { .mib 000008000000 4870 nop.m 0 0000B2E00B80 4871 sxt4 out2 = out2 // r46 = r46 // 069642 00A000001000 4872 br.call.sptk.many rp = OTS$MOVE ;; // br0 = OTS$MOVE } { .mfi 010802B00040 4880 mov gp = r43 // r1 = r43 000008000000 4881 nop.f 0 000008000000 4882 nop.i 0 } 4890 L$172: // 069643 { .mii 01002A24CB40 4890 sub out1 = bcnt, rlen // r45 = r38, r34 // 069646 0000B22009C0 4891 sxt4 r39 = rlen // r39 = r34 0000B2500940 4892 sxt4 r37 = xflen ;; // r37 = r37 } { .mii 010002748800 48A0 add in0 = bptr, r39 // r32 = r36, r39 0000B2D00B40 48A1 sxt4 out1 = out1 ;; // r45 = r45 010002540940 48A2 add r37 = in0, r37 // r37 = r32, r37 } { .mmi 010802000B80 48B0 mov out2 = in0 ;; // r46 = r32 010802500B00 48B1 mov out0 = r37 // r44 = r37 000008000000 48B2 nop.i 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 141 ProxyTunnelNetReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mfb 000008000000 48C0 nop.m 0 000008000000 48C1 nop.f 0 00A000001000 48C2 br.call.sptk.many rp = OTS$MOVE ;; // br0 = OTS$MOVE } { .mmi 010802B00040 48D0 mov gp = r43 // r1 = r43 0080025009C0 48D1 ld1 r39 = [r37] // 069649 012000006640 48D2 mov ai = 3 ;; // r25 = 3 // 069650 } { .mii 012000100880 48E0 add r34 = @ltoff($LITERAL$+480), // r34 = @ltoff($LITERAL$+480), r1 gp 010802300B80 48E1 mov out2 = xfptr // r46 = r35 010802000B00 48E2 mov out0 = in0 ;; // r44 = r32 } { .mfb 0080C2200B40 48F0 ld8 out1 = $LITERAL$ // r45 = [r34] 000008000000 48F1 nop.f 0 00A000001000 48F2 br.call.sptk.many rp = DECC$TXSPRINTF ;; // br0 = DECC$TXSPRINTF } { .mii 008C0254E000 4900 st1 [r37] = r39 // 069651 010802800980 4901 mov bcnt = r40 // r38 = r40 // 069654 010802B00040 4902 mov gp = r43 // r1 = r43 // 069650 } 4910 L$155: // 069656 { .mmi 012000008640 4910 mov ai = 4 ;; // r25 = 4 // 069658 012000100B40 4911 add out1 = // r45 = @ltoff(@fptr(ProxyTunnelWriteAst)), gp // @ltoff(@fptr(ProxyTunnelWriteAst)), // r1 0000B2600BC0 4912 sxt4 out3 = bcnt // r47 = r38 } { .mii 010802400B80 4920 mov out2 = bptr // r46 = r36 010802100B00 4921 mov out0 = tkptr // r44 = r33 000008000000 4922 nop.i 0 ;; } { .mfb 0080C2D00B40 4930 ld8 out1 = ProxyTunnelWriteAst // r45 = [r45] 000008000000 4931 nop.f 0 00A000001000 4932 br.call.sptk.many rp = ProxyNetWrite ;; // br0 = ProxyNetWrite } 4940 L$571: { .mii 010802B00040 4940 mov gp = r43 // r1 = r43 000154054000 4941 mov.i rspfs = r42 ;; // 069659 000E00152000 4942 mov rp = r41 // br0 = r41 } { .mfb 000008000000 4950 nop.m 0 000008000000 4951 nop.f 0 000108001100 4952 br.ret.sptk.many rp ;; // br0 } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 142 ProxyTunnelNetReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 .endp ProxyTunnelNetReadAst Routine Size: 1632 bytes, Routine Base: $CODE$ + 4300 .proc ProxyTunnelNetWriteAst .align 32 .global ProxyTunnelNetWriteAst ProxyTunnelNetWriteAst: // 069671 { .mii 002C00410880 4960 alloc r34 = rspfs, 1, 3, 4, 0 01080A060200 4961 adds r8 = 176, in0 // r8 = 176, r32 // 069689 0122080D0080 4962 addl r2 = 8424, r0 ;; // 069687 } { .mii 008080800200 4970 ld4 r8 = [r8] // 069689 010000240800 4971 add in0 = in0, r2 // r32 = r32, r2 // 069687 000188000840 4972 mov r33 = rp ;; // r33 = br0 // 069671 } { .mii 008082000800 4980 ld4 tkptr = [in0] // r32 = [r32] // 069687 0000B0800200 4981 sxt4 r8 = r8 ;; // 069689 0108008A0200 4982 adds r8 = 80, r8 } { .mib 0108001008C0 4990 mov r35 = gp // r35 = r1 // 069671 0000B2000800 4991 sxt4 tkptr = tkptr // r32 = r32 // 069687 004000000000 4992 nop.b 0 ;; } { .mmi 008000800200 49A0 ld1 r8 = [r8] ;; // 069689 000008000000 49A1 nop.m 0 00A038800200 49A2 tbit.z pr8, pr7 = r8, 0 } { .mfb 000008000000 49B0 nop.m 0 000008000000 49B1 nop.f 0 008600006007 49B2 (pr7) br.cond.dpnt.many L$183 ;; } { .mib 012000002640 49C0 mov ai = 1 // r25 = 1 // 069691 010802000900 49C1 mov out0 = tkptr // r36 = r32 00A000001000 49C2 br.call.sptk.many rp = ProxyEnd ;; // br0 = ProxyEnd } { .mfb 000008000000 49D0 nop.m 0 000008000000 49D1 nop.f 0 00800000B000 49D2 br.sptk.many L$572 ;; } 49E0 L$183: // 069693 { .mii 010802000900 49E0 mov out0 = tkptr // r36 = r32 // 069695 01080A0989C0 49E1 adds out3 = 204, in0 // r39 = 204, r32 010812040980 49E2 adds out2 = 288, in0 // r38 = 288, r32 } { .mmi 012000100940 49F0 add out1 = // r37 = @ltoff(@fptr(ProxyTunnelReadAst)), // @ltoff(@fptr(ProxyTunnelReadAst)), Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 143 ProxyTunnelNetWriteAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 gp ;; // r1 0080827009C0 49F1 ld4 out3 = [out3] // r39 = [r39] 012000008640 49F2 mov ai = 4 // r25 = 4 } { .mmi 008082600980 4A00 ld4 out2 = [out2] ;; // r38 = [r38] 0080C2500940 4A01 ld8 out1 = ProxyTunnelReadAst // r37 = [r37] 0000B27009C0 4A02 sxt4 out3 = out3 // r39 = r39 } { .mib 000008000000 4A10 nop.m 0 0000B2600980 4A11 sxt4 out2 = out2 // r38 = r38 00A000001000 4A12 br.call.sptk.many rp = ProxyNetRead ;; // br0 = ProxyNetRead } 4A20 L$572: { .mii 010802300040 4A20 mov gp = r35 // r1 = r35 000154044000 4A21 mov.i rspfs = r34 ;; // 069698 000E00142000 4A22 mov rp = r33 // br0 = r33 } { .mfb 000008000000 4A30 nop.m 0 000008000000 4A31 nop.f 0 000108001100 4A32 br.ret.sptk.many rp ;; // br0 } .endp ProxyTunnelNetWriteAst Routine Size: 224 bytes, Routine Base: $CODE$ + 4960 .proc ProxyTunnelReadAst .align 32 .global ProxyTunnelReadAst ProxyTunnelReadAst: // 069706 { .mii 002C00B20A40 4A40 alloc r41 = rspfs, 1, 10, 5, 0 01084A080200 4A41 adds r8 = 1216, in0 // r8 = 1216, r32 // 069727 01084A050280 4A42 adds r10 = 1192, in0 ;; // r10 = 1192, r32 // 069725 } { .mmi 008080800200 4A50 ld4 r8 = [r8] // 069727 008080A00B80 4A51 ld4 rqptr = [r10] // r46 = [r10] // 069725 000188000A00 4A52 mov r40 = rp ;; // r40 = br0 // 069706 } { .mii 010800100A80 4A60 mov r42 = gp // r42 = r1 0000B0800200 4A61 sxt4 r8 = r8 // 069727 0000B2E00B80 4A62 sxt4 rqptr = rqptr ;; // r46 = r46 // 069725 } { .mmi 010800838200 4A70 adds r8 = 28, r8 ;; // 069727 00B0088C8240 4A71 ld1 r9 = [r8], -28 000008000000 4A72 nop.i 0 ;; } { .mib 000008000000 4A80 nop.m 0 00A038900200 4A81 tbit.z pr8, pr7 = r9, 0 008600006007 4A82 (pr7) br.cond.dpnt.many L$187 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 144 ProxyTunnelReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mib 012000002640 4A90 mov ai = 1 // r25 = 1 // 069729 010802000AC0 4A91 mov out0 = tkptr // r43 = r32 00A000001000 4A92 br.call.sptk.many rp = ProxyEnd ;; // br0 = ProxyEnd } { .mfb 000008000000 4AA0 nop.m 0 000008000000 4AA1 nop.f 0 008000055000 4AA2 br.sptk.many L$573 ;; } 4AB0 L$187: // 069731 { .mii 01080A030840 4AB0 adds r33 = 152, in0 // r33 = 152, r32 // 069736 010812040880 4AB1 adds r34 = 288, in0 // r34 = 288, r32 // 069733 010800828200 4AB2 adds r8 = 20, r8 ;; // 069731 } { .mmi 008082100840 4AC0 ld4 r33 = [r33] // 069736 008082200880 4AC1 ld4 DataPtr = [r34] // r34 = [r34] // 069733 000008000000 4AC2 nop.i 0 ;; } { .mii 01CC02108240 4AD0 cmp4.eq pr9, pr0 = 4, r33 // 069737 01CC321061C0 4AD1 cmp4.eq pr7, pr6 = 3, r33 // 069736 0000B2200880 4AD2 sxt4 DataPtr = DataPtr // r34 = r34 // 069733 } { .mmi 008080800200 4AE0 ld4 DataCount = [r8] ;; // r8 = [r8] // 069734 01C230000009 4AE1 (pr9) cmp.eq.or.andcm pr0, pr6 = r0, r0 // 069737 000008000000 4AE2 nop.i 0 } { .mfb 000008000000 4AF0 nop.m 0 000008000000 4AF1 nop.f 0 008600008006 4AF2 (pr6) br.cond.dpnt.many L$190 ;; // 069736 } { .mii 01081AE40900 4B00 adds r36 = 416, out3 // r36 = 416, r46 // 069739 0000B08008C0 4B01 sxt4 r35 = DataCount // r35 = r8 01081AE40940 4B02 adds r37 = 416, out3 ;; // r37 = 416, r46 } { .mmi 0080C2400900 4B10 ld8 r36 = [r36] ;; 0100023488C0 4B11 add r35 = r36, r35 000008000000 4B12 nop.i 0 ;; } { .mfb 008CC2546000 4B20 st8 [r37] = r35 000008000000 4B21 nop.f 0 00800003F000 4B22 br.sptk.many L$574 ;; } 4B30 L$190: // 069742 { .mfb 01CC32102000 4B30 cmp4.eq pr0, pr6 = 1, r33 // 069744 000008000000 4B31 nop.f 0 008600036006 4B32 (pr6) br.cond.dpnt.many L$194 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 145 ProxyTunnelReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mmi 01080AE68980 4B40 adds r38 = 180, out3 ;; // r38 = 180, r46 // 069745 008082600980 4B41 ld4 r38 = [r38] 000008000000 4B42 nop.i 0 ;; } { .mii 000008000000 4B50 nop.m 0 0000B2600980 4B51 sxt4 r38 = r38 ;; 01080A648980 4B52 adds r38 = 164, r38 ;; } { .mmi 008082600980 4B60 ld4 r38 = [r38] ;; 01CC0260A2C0 4B61 cmp4.eq pr11, pr0 = 5, r38 // 069746 01CC42604240 4B62 cmp4.eq pr9, pr8 = 2, r38 ;; // 069745 } { .mfb 01C24000000B 4B70 (pr11) cmp.eq.or.andcm pr0, pr8 = r0, r0 // 069746 000008000000 4B71 nop.f 0 00860002E008 4B72 (pr8) br.cond.dpnt.many L$194 ;; // 069744 } { .mii 01080A0D09C0 4B80 adds r39 = 232, in0 // r39 = 232, r32 // 069749 012000004900 4B81 mov r36 = 2 000008000000 4B82 nop.i 0 ;; } { .mmi 0080827009C0 4B90 ld4 r39 = [r39] ;; 01846A44E000 4B91 cmp4.lt pr0, pr13 = r39, r36 000008000000 4B92 nop.i 0 } { .mfb 000008000000 4BA0 nop.m 0 000008000000 4BA1 nop.f 0 00860002800D 4BA2 (pr13) br.cond.dpnt.many L$194 ;; } { .mii 010802200940 4BB0 mov cptr = DataPtr // r37 = r34 // 069751 0000B08008C0 4BB1 sxt4 r35 = DataCount ;; // r35 = r8 0100023448C0 4BB2 add zptr = DataPtr, r35 ;; // r35 = r34, r35 } { .mfb 01A47A344000 4BC0 cmp4.ltu pr0, pr15 = DataPtr, zptr // pr0, pr15 = r34, r35 // 069752 000008000000 4BC1 nop.f 0 00860001600F 4BC2 (pr15) br.cond.dpnt.many L$199 ;; } 4BD0 L$200: { .mmi 0080025000C0 4BD0 ld1 r3 = [r37] ;; // 069754 01C830314000 4BD1 cmp.eq pr0, pr6 = 10, r3 000008000000 4BD2 nop.i 0 } { .mfb 000008000000 4BE0 nop.m 0 000008000000 4BE1 nop.f 0 008600008006 4BE2 (pr6) br.cond.dpnt.many L$203 ;; } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 146 ProxyTunnelReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mii 01080A0D0240 4BF0 adds r9 = 232, in0 // r9 = 232, r32 // 069755 01080A0D0280 4BF1 adds r10 = 232, in0 // r10 = 232, r32 000008000000 4BF2 nop.i 0 ;; } { .mmi 008080900240 4C00 ld4 r9 = [r9] ;; 010800902240 4C01 adds r9 = 1, r9 000008000000 4C02 nop.i 0 ;; } { .mfb 008C80A12000 4C10 st4 [r10] = r9 000008000000 4C11 nop.f 0 008000007000 4C12 br.sptk.many L$205 ;; // 069756 } 4C20 L$203: { .mfb 01C80031A2C0 4C20 cmp.eq pr11, pr0 = 13, r3 // 069757 000008000000 4C21 nop.f 0 00860000400B 4C22 (pr11) br.cond.dpnt.many L$205 ;; } { .mmi 01080A0D02C0 4C30 adds r11 = 232, in0 ;; // r11 = 232, r32 // 069758 008C80B00000 4C31 st4 [r11] = r0 000008000000 4C32 nop.i 0 } 4C40 L$205: { .mii 01080A0D0440 4C40 adds r17 = 232, in0 // r17 = 232, r32 // 069760 010802502940 4C41 adds r37 = 1, r37 ;; // 069758 01A46A34A000 4C42 cmp4.ltu pr0, pr13 = cptr, zptr // pr0, pr13 = r37, r35 // 069752 } { .mmi 008081100440 4C50 ld4 r17 = [r17] ;; // 069760 01844A422200 4C51 cmp4.lt pr8, pr9 = r17, r36 000008000000 4C52 nop.i 0 ;; } { .mfb 01C24000000D 4C60 (pr13) cmp.eq.or.andcm pr0, pr8 = r0, r0 // 069752 000008000000 4C61 nop.f 0 0095FFFEE008 4C62 (pr8) br.cond.dptk.many L$200 ;; } 4C70 L$199: // 069761 { .mmi 01002A24A880 4C70 sub r34 = cptr, DataPtr ;; // r34 = r37, r34 // 069762 01002A210200 4C71 sub DataCount = DataCount, r34 // r8 = r8, r34 010802500880 4C72 mov DataPtr = cptr ;; // r34 = r37 // 069763 } { .mfb 01C470800000 4C80 cmp4.eq pr0, pr14 = r0, DataCount // pr0, pr14 = r0, r8 // 069765 000008000000 4C81 nop.f 0 00860000C00E 4C82 (pr14) br.cond.dpnt.many L$194 ;; } { .mii 01080AE60AC0 4C90 adds out0 = 176, out3 // r43 = 176, r46 // 069768 012000100B00 4C91 add out1 = // r44 = @ltoff(@fptr(ProxyTunnelNetWriteAst)), Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 147 ProxyTunnelReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 gp // @ltoff(@fptr(ProxyTunnelNetWriteAst)), // r1 010802E00B40 4C92 mov out2 = rqptr // r45 = r46 } { .mmi 01200000A640 4CA0 mov ai = 5 ;; // r25 = 5 008082B00AC0 4CA1 ld4 out0 = [out0] // r43 = [r43] 012000000BC0 4CA2 mov out4 = 0 // r47 = 0 } { .mii 0080C2C00B00 4CB0 ld8 out1 = ProxyTunnelNetWriteAst // r44 = [r44] 012000002B80 4CB1 mov out3 = 1 ;; // r46 = 1 0000B2B00AC0 4CB2 sxt4 out0 = out0 // r43 = r43 } { .mfb 000008000000 4CC0 nop.m 0 000008000000 4CC1 nop.f 0 00A000001000 4CC2 br.call.sptk.many rp = // br0 = NetIoWriteStatus NetIoWriteStatus ;; } { .mfb 000008000000 4CD0 nop.m 0 000008000000 4CD1 nop.f 0 00800000F000 4CD2 br.sptk.many L$573 ;; } 4CE0 L$194: // 069773 { .mii 01081AE40980 4CE0 adds r38 = 416, out3 // r38 = 416, r46 // 069775 0000B0800840 4CE1 sxt4 r33 = DataCount // r33 = r8 01081AE409C0 4CE2 adds r39 = 416, out3 ;; // r39 = 416, r46 } { .mmi 0080C2600980 4CF0 ld8 r38 = [r38] ;; 01000214C840 4CF1 add r33 = r38, r33 000008000000 4CF2 nop.i 0 ;; } { .mfi 008CC2742000 4D00 st8 [r39] = r33 000008000000 4D01 nop.f 0 000008000000 4D02 nop.i 0 } 4D10 L$574: // 069776 { .mii 012000100B00 4D10 add out1 = // r44 = @ltoff(@fptr(ProxyTunnelNetWriteAst)), gp // @ltoff(@fptr(ProxyTunnelNetWriteAst)), // r1 010802E00AC0 4D11 mov out0 = rqptr // r43 = r46 012000008640 4D12 mov ai = 4 ;; // r25 = 4 } { .mii 0080C2C00B00 4D20 ld8 out1 = ProxyTunnelNetWriteAst // r44 = [r44] 0000B0800B80 4D21 sxt4 out3 = DataCount // r46 = r8 010802200B40 4D22 mov out2 = DataPtr // r45 = r34 } { .mfb 000008000000 4D30 nop.m 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 148 ProxyTunnelReadAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 4D31 nop.f 0 00A000001000 4D32 br.call.sptk.many rp = NetWrite ;; // br0 = NetWrite } 4D40 L$573: { .mii 010802A00040 4D40 mov gp = r42 // r1 = r42 000154052000 4D41 mov.i rspfs = r41 ;; // 069777 000E00150000 4D42 mov rp = r40 // br0 = r40 } { .mfb 000008000000 4D50 nop.m 0 000008000000 4D51 nop.f 0 000108001100 4D52 br.ret.sptk.many rp ;; // br0 } .endp ProxyTunnelReadAst Routine Size: 800 bytes, Routine Base: $CODE$ + 4A40 .proc ProxyTunnelWriteAst .align 32 .global ProxyTunnelWriteAst ProxyTunnelWriteAst: // 069785 { .mii 002C00410880 4D60 alloc r34 = rspfs, 1, 3, 4, 0 01084A080200 4D61 adds r8 = 1216, in0 // r8 = 1216, r32 // 069803 01084A050240 4D62 adds r9 = 1192, in0 ;; // r9 = 1192, r32 // 069801 } { .mmi 008080800200 4D70 ld4 r8 = [r8] // 069803 008080900240 4D71 ld4 rqptr = [r9] // r9 = [r9] // 069801 000188000840 4D72 mov r33 = rp ;; // r33 = br0 // 069785 } { .mii 0108001008C0 4D80 mov r35 = gp // r35 = r1 0000B0800200 4D81 sxt4 r8 = r8 // 069803 0000B0900240 4D82 sxt4 rqptr = rqptr ;; // r9 = r9 // 069801 } { .mmi 0108008A0200 4D90 adds r8 = 80, r8 ;; // 069803 008000800200 4D91 ld1 r8 = [r8] 000008000000 4D92 nop.i 0 ;; } { .mib 000008000000 4DA0 nop.m 0 00A038800200 4DA1 tbit.z pr8, pr7 = r8, 0 008600006007 4DA2 (pr7) br.cond.dpnt.many L$179 ;; } { .mib 012000002640 4DB0 mov ai = 1 // r25 = 1 // 069805 010802000900 4DB1 mov out0 = tkptr // r36 = r32 00A000001000 4DB2 br.call.sptk.many rp = ProxyEnd ;; // br0 = ProxyEnd } { .mfb 000008000000 4DC0 nop.m 0 000008000000 4DC1 nop.f 0 00800000B000 4DC2 br.sptk.many L$575 ;; } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 149 ProxyTunnelWriteAst 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 4DD0 L$179: // 069807 { .mii 010800900900 4DD0 mov out0 = rqptr // r36 = r9 // 069809 010800960240 4DD1 adds r9 = 48, r9 012000100940 4DD2 add out1 = // r37 = @ltoff(@fptr(ProxyTunnelNetReadAst)), gp // @ltoff(@fptr(ProxyTunnelNetReadAst)), // r1 } { .mmi 012000008640 4DE0 mov ai = 4 ;; // r25 = 4 00A0809509C0 4DE1 ld4 out3 = [r9], 40 // r39 = [r9], 40 000008000000 4DE2 nop.i 0 } { .mmi 0080C2500940 4DF0 ld8 out1 = ProxyTunnelNetReadAst ;; // r37 = [r37] 008080900980 4DF1 ld4 out2 = [r9] // r38 = [r9] 0000B27009C0 4DF2 sxt4 out3 = out3 ;; // r39 = r39 } { .mib 000008000000 4E00 nop.m 0 0000B2600980 4E01 sxt4 out2 = out2 // r38 = r38 00A000001000 4E02 br.call.sptk.many rp = NetRead ;; // br0 = NetRead } 4E10 L$575: { .mii 010802300040 4E10 mov gp = r35 // r1 = r35 000154044000 4E11 mov.i rspfs = r34 ;; // 069812 000E00142000 4E12 mov rp = r33 // br0 = r33 } { .mfb 000008000000 4E20 nop.m 0 000008000000 4E21 nop.f 0 000108001100 4E22 br.ret.sptk.many rp ;; // br0 } .endp ProxyTunnelWriteAst Routine Size: 208 bytes, Routine Base: $CODE$ + 4D60 .proc ProxyTunnelLogicalName .align 32 .global ProxyTunnelLogicalName ProxyTunnelLogicalName: // 069922 { .mii 002C01130B80 4E30 alloc r46 = rspfs, 1, 16, 7, 0 0128800A0380 4E31 addl r14 = 34896, r0 011800C40080 4E32 adds r2 = -8160, sp ;; // r2 = -8160, r12 } { .mmi 010028E183C0 4E40 sub r15 = sp, r14 ;; // r15 = r12, r14 01803021E000 4E41 cmp.lt pr0, pr6 = r15, r2 000008000000 4E42 nop.i 0 } { .mfb 000008000000 4E50 nop.m 0 000008000000 4E51 nop.f 0 008600006006 4E52 (pr6) br.cond.dpnt.many L$19 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 150 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } 4E60 L$18: { .mii 0080C0200380 4E60 ld8 r14 = [r2] 011800240080 4E61 adds r2 = -8160, r2 ;; 01800021E180 4E62 cmp.lt pr6, pr0 = r15, r2 } { .mfb 000008000000 4E70 nop.m 0 000008000000 4E71 nop.f 0 0095FFFFE006 4E72 (pr6) br.cond.dptk.many L$18 ;; } 4E80 L$19: { .mii 0080C0F00380 4E80 ld8 r14 = [r15] 010800100C00 4E81 mov r48 = gp // r48 = r1 000188000B40 4E82 mov r45 = rp ;; // r45 = br0 } { .mib 010800F00300 4E90 mov sp = r15 // r12 = r15 000198000BC0 4E91 mov r47 = pr 004000000000 4E92 nop.b 0 } { .mlx 010880FB0880 4EA0 adds r34 = 2136, r15 // 069951 000000000004 4EA1 movl r10 = 17694975 ;; 0180171FC5 } { .mii 01C438040000 4EB0 cmp4.eq pr0, pr7 = tkptr, r0 // pr0, pr7 = r32, r0 // 069961 010800F203C0 4EB1 adds r15 = 16, r15 // 069951 000008000000 4EB2 nop.i 0 } { .mlx 000008000000 4EC0 nop.m 0 000000000004 4EC1 movl r8 = 17694751 ;; // 069950 01800707C4 } { .mii 008C80F14000 4ED0 st4 [r15] = r10 // 069951 010800F100C0 4ED1 adds r3 = 8, r15 // 069950 010800F103C0 4ED2 adds r15 = 8, r15 ;; // 069951 } { .mmi 0108003100C0 4EE0 adds r3 = 8, r3 // 069950 00BC88F11F00 4EE1 st4 [r15] = r8, -4 01C000001087 4EE2 (pr7) cmp.eq.unc pr2, pr0 = r0, r0 ;; // 069961 } { .mmi 00AC80F44200 4EF0 st4 [r15] = r34, 8 ;; // 069951 00BC88F07900 4EF1 st4 [r15] = r3, -28 // 069950 000008000000 4EF2 nop.i 0 ;; } { .mfb 000008000000 4F00 nop.m 0 000008000000 4F01 nop.f 0 008600092002 4F02 (pr2) br.cond.dpnt.many L$20 ;; // 069961 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 151 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mmi 012000100240 4F10 add r9 = // r9 = @ltoffx(ProxyServingEnabled), // 069974 @ltoffx(ProxyServingEnabled), // r1 gp ;; 0080C0900240 4F11 ld8.mov r9 = [r9], ProxyServingEnabled 000008000000 4F12 nop.i 0 ;; } { .mmi 008080900240 4F20 ld4 r9 = ProxyServingEnabled ;; // r9 = [r9] 01C438900000 4F21 cmp4.eq pr0, pr7 = r0, r9 000008000000 4F22 nop.i 0 } { .bbb 008600002007 4F30 (pr7) br.cond.dpnt.many L$22 004000000000 4F31 nop.b 0 008000317000 4F32 br.sptk.many L$24 ;; } 4F40 L$22: { .mib 012000002640 4F40 mov ai = 1 // r25 = 1 // 069976 012000002C40 4F41 mov out0 = 1 // r49 = 1 00A000001000 4F42 br.call.sptk.many rp = // br0 = InstanceMutexLock InstanceMutexLock ;; } { .mii 010803000040 4F50 mov gp = r48 // r1 = r48 010810C90280 4F51 adds r10 = 328, sp // r10 = 328, r12 // 069981 01200000A640 4F52 mov ai = 5 // r25 = 5 // 069982 } { .mmi 012000000D00 4F60 mov out3 = 0 ;; // r52 = 0 012000100900 4F61 add r36 = @ltoffx(LnmItems), gp // r36 = @ltoffx(LnmItems), r1 // 069980 012000100940 4F62 add r37 = @gprel(WasdTableDsc), gp // r37 = @gprel(WasdTableDsc), r1 // 069982 } { .mii 0120001008C0 4F70 add r35 = @gprel(LnmCount), gp // r35 = @gprel(LnmCount), r1 // 069979 012000000C40 4F71 mov out0 = 0 ;; // r49 = 0 // 069982 010802510CC0 4F72 adds out2 = 8, r37 // r51 = 8, r37 } { .mii 0080C2400900 4F80 ld8.mov r36 = [r36], LnmItems // 069980 010802500C80 4F81 mov out1 = r37 // r50 = r37 // 069982 000008000000 4F82 nop.i 0 ;; } { .mmi 008C82300000 4F90 st4 [r35] = r0 ;; // 069979 010802420900 4F91 adds r36 = 16, r36 // 069980 000008000000 4F92 nop.i 0 ;; } { .mmi 00AC82444100 4FA0 st4 [r36] = r34, 4 ;; 00BC8A415B00 4FA1 st4 [r36] = r10, -20 // 069981 000008000000 4FA2 nop.i 0 ;; } { .mfb 010802400D40 4FB0 mov out4 = r36 // r53 = r36 // 069982 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 152 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 4FB1 nop.f 0 00A000001000 4FB2 br.call.sptk.many rp = SYS$TRNLNM ;; // br0 = SYS$TRNLNM } { .mib 010803000040 4FC0 mov gp = r48 // r1 = r48 00A010800180 4FC1 tbit.z pr6, pr2 = r8, 0 // 069983 008600004002 4FC2 (pr2) br.cond.dpnt.many L$25 ;; } { .mfb 000008000000 4FD0 nop.m 0 000008000000 4FD1 nop.f 0 0080002FD000 4FD2 br.sptk.many L$147 ;; } 4FE0 L$25: // 069988 { .mii 010810C90980 4FE0 adds r38 = 328, sp // r38 = 328, r12 // 069989 010880CB00C0 4FE1 adds r3 = 2136, sp // r3 = 2136, r12 012000002640 4FE2 mov ai = 1 // r25 = 1 // 069990 } { .mmi 010880CB0C40 4FF0 adds out0 = 2136, sp ;; // r49 = 2136, r12 008042600980 4FF1 ld2 r38 = [r38] // 069989 000008000000 4FF2 nop.i 0 ;; } { .mii 000008000000 5000 nop.m 0 0000AA600980 5001 sxt2 r38 = r38 ;; 0100026060C0 5002 add r3 = r3, r38 ;; } { .mfb 008C00300000 5010 st1 [r3] = r0 000008000000 5011 nop.f 0 00A000001000 5012 br.call.sptk.many rp = DECC$ATOI ;; // br0 = DECC$ATOI // 069990 } { .mii 010803000040 5020 mov gp = r48 // r1 = r48 0120000789C0 5021 mov r39 = 60 // 069992 012000002640 5022 mov ai = 1 // r25 = 1 // 069993 } { .mmi 010800800980 5030 mov TickSecond = r8 ;; // r38 = r8 // 069990 012000100240 5031 add r9 = @ltoff($LITERAL$+456), gp // r9 = @ltoff($LITERAL$+456), r1 // 069993 0108023088C0 5032 adds r35 = 4, r35 ;; // 069992 } { .mmi 0080C0900C40 5040 ld8 out0 = $LITERAL$ ;; // r49 = [r9] // 069993 00BC8A34FF00 5041 st4 [r35] = r39, -4 // 069992 000008000000 5042 nop.i 0 } { .mfb 000008000000 5050 nop.m 0 000008000000 5051 nop.f 0 00A000001000 5052 br.call.sptk.many rp = SysTrnLnm ;; // br0 = SysTrnLnm // 069993 } { .mib 01C400010180 5060 cmp4.eq pr6, pr0 = cptr, r0 // pr6, pr0 = r8, r0 010803000040 5061 mov gp = r48 // r1 = r48 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 153 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 008600010006 5062 (pr6) br.cond.dpnt.many L$28 ;; } { .mib 012000002640 5070 mov ai = 1 // r25 = 1 // 069995 010800800C40 5071 mov out0 = cptr // r49 = r8 00A000001000 5072 br.call.sptk.many rp = DECC$ATOI ;; // br0 = DECC$ATOI } { .mii 0108023088C0 5080 adds r35 = 4, r35 018C00800180 5081 cmp4.lt pr6, pr0 = 0, r8 // 069996 010803000040 5082 mov gp = r48 ;; // r1 = r48 // 069995 } { .mfi 00BC8A311F00 5090 st4 [r35] = r8, -4 000008000000 5091 nop.f 0 000008000000 5092 nop.i 0 ;; } { .bbb 008600002006 50A0 (pr6) br.cond.dpnt.many L$32 // 069996 0080002E3000 50A1 br.sptk.many L$147 004000000000 50A2 nop.b 0 ;; } 50B0 L$32: // 070000 { .mmi 01200001E0C0 50B0 mov r3 = 15 ;; // 070001 018430310000 50B1 cmp4.lt pr0, pr6 = r8, r3 000008000000 50B2 nop.i 0 } { .mfb 000008000000 50C0 nop.m 0 000008000000 50C1 nop.f 0 008600004006 50C2 (pr6) br.cond.dpnt.many L$28 ;; } { .mmi 0108023088C0 50D0 adds r35 = 4, r35 ;; 00BC8A34FF00 50D1 st4 [r35] = r39, -4 000008000000 50D2 nop.i 0 ;; } 50E0 L$28: // 070002 { .mii 012000100280 50E0 add r10 = @ltoffx(HttpdTickSecond), // r10 = @ltoffx(HttpdTickSecond), r1 // 070005 gp 0108023088C0 50E1 adds r35 = 4, r35 // 070002 000008000000 50E2 nop.i 0 ;; } { .mmi 0080C0A00280 50F0 ld8.mov r10 = [r10], HttpdTickSecond // 070005 0080823008C0 50F1 ld4 r35 = [r35] // 070006 000008000000 50F2 nop.i 0 ;; } { .mmi 008080A00280 5100 ld4 r10 = HttpdTickSecond ;; // r10 = [r10] // 070005 01002A614280 5101 sub r10 = r10, TickSecond // r10 = r10, r38 000008000000 5102 nop.i 0 ;; } { .mii 018452314000 5110 cmp4.lt pr0, pr10 = r10, r35 // 070006 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 154 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 018C40A001C0 5111 cmp4.lt pr7, pr8 = 0, r10 ;; // 070005 01C20000020A 5112 (pr10) cmp.eq.or.andcm pr8, pr0 = r0, r0 } { .bbb 008600002008 5120 (pr8) br.cond.dpnt.many L$35 004000000000 5121 nop.b 0 0080002D3000 5122 br.sptk.many L$147 ;; } 5130 L$35: // 070010 { .mii 0120001009C0 5130 add r39 = @ltoff(Watch+124), gp // r39 = @ltoff(Watch+124), r1 // 070012 012002000240 5131 addl r9 = 524288, r0 000008000000 5132 nop.i 0 ;; } { .mmi 0080C27009C0 5140 ld8 r39 = Watch ;; // r39 = [r39] 0111627F0980 5141 and r38 = -8, r39 000008000000 5142 nop.i 0 ;; } { .mmi 01C03264E000 5150 cmp.eq pr0, pr6 = r39, r38 00A0C2610200 5151 ld8 r8 = Watch, 8 // r8 = [r38], 8 000008000000 5152 nop.i 0 ;; } { .mib 000008000000 5160 nop.m 0 009E1004E8C6 5161 (pr6) dep r35 = Watch, r0, 3, 3 // r35 = r39, r0, 3, 3 004000000000 5162 nop.b 0 ;; } { .mmi 0080C26000C6 5170 (pr6) ld8 r3 = Watch ;; // r3 = [r38] 000008000000 5171 nop.m 0 00F200846206 5172 (pr6) shr.u r8 = r8, r35 } { .mmi 01012A3808C6 5180 (pr6) sub r35 = 64, r35 ;; 000008000000 5181 nop.m 0 00F2423060C6 5182 (pr6) shl r3 = r3, r35 ;; } { .mmi 010070806206 5190 (pr6) or r8 = r3, r8 ;; 010060812200 5191 and r8 = r9, r8 000008000000 5192 nop.i 0 ;; } { .mfb 01C000800200 51A0 cmp.eq pr8, pr0 = r0, r8 000008000000 51A1 nop.f 0 00860000A008 51A2 (pr8) br.cond.dpnt.many L$37 ;; } { .mii 012000100CC0 51B0 add out2 = @ltoff($LITERAL$+440), // r51 = @ltoff($LITERAL$+440), r1 // 070013 gp 012000100280 51B1 add r10 = @ltoff($LITERAL$+416), // r10 = @ltoff($LITERAL$+416), r1 gp 01200000A640 51B2 mov ai = 5 // r25 = 5 } { .mmi Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 155 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 012002000D00 51C0 addl out3 = 524288, r0 ;; // r52 = 524288, r0 0080C3300C80 51C1 ld8 out1 = $LITERAL$ // r50 = [r51] 0120580B4CC0 51C2 mov out2 = 1498 // r51 = 1498 } { .mib 0080C0A00D40 51D0 ld8 out4 = $LITERAL$ // r53 = [r10] 0119F80FEC40 51D1 adds out0 = -1, r0 // r49 = -1, r0 00A000001000 51D2 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010803000040 51E0 mov gp = r48 // r1 = r48 000008000000 51E1 nop.f 0 000008000000 51E2 nop.i 0 } 51F0 L$37: { .mii 012000008640 51F0 mov ai = 4 // r25 = 4 // 070015 012000000D00 51F1 mov out3 = 0 // r52 = 0 012000000CC0 51F2 mov out2 = 0 ;; // r51 = 0 } { .mii 0120001008C0 5200 add r35 = @ltoffx(SysNamPrvMask), // r35 = @ltoffx(SysNamPrvMask), r1 gp 012000002C40 5201 mov out0 = 1 // r49 = 1 000008000000 5202 nop.i 0 ;; } { .mmi 0080C23008C0 5210 ld8.mov r35 = [r35], SysNamPrvMask ;; 010802300C80 5211 mov out1 = r35 // r50 = r35 000008000000 5212 nop.i 0 } { .mfb 000008000000 5220 nop.m 0 000008000000 5221 nop.f 0 00A000001000 5222 br.call.sptk.many rp = SYS$SETPRV ;; // br0 = SYS$SETPRV } { .mib 010803000040 5230 mov gp = r48 // r1 = r48 00A010800180 5231 tbit.z pr6, pr2 = status, 0 // pr6, pr2 = r8, 0 00860000A002 5232 (pr2) br.cond.dpnt.many L$38 ;; } { .mii 012000100D00 5240 add out3 = @ltoff($LITERAL$+440), // r52 = @ltoff($LITERAL$+440), r1 // 070016 gp 012000100980 5241 add r38 = @ltoff($LITERAL$+400), // r38 = @ltoff($LITERAL$+400), r1 gp 012000008640 5242 mov ai = 4 ;; // r25 = 4 } { .mmi 0080C3400CC0 5250 ld8 out2 = $LITERAL$ // r51 = [r52] 0080C2600C80 5251 ld8 out1 = $LITERAL$ // r50 = [r38] 0120580BAD00 5252 mov out3 = 1501 ;; // r52 = 1501 } { .mib 000008000000 5260 nop.m 0 0000B0800C40 5261 sxt4 out0 = status // r49 = r8 00A000001000 5262 br.call.sptk.many rp = // br0 = ErrorExitVmsStatus Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 156 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 ErrorExitVmsStatus ;; } { .mfi 010803000040 5270 mov gp = r48 // r1 = r48 000008000000 5271 nop.f 0 000008000000 5272 nop.i 0 } 5280 L$38: { .mii 010802540CC0 5280 adds out2 = 32, r37 // r51 = 32, r37 // 070018 010802510C80 5281 adds out1 = 8, r37 // r50 = 8, r37 012000006640 5282 mov ai = 3 ;; // r25 = 3 } { .mfb 010802500C40 5290 mov out0 = r37 // r49 = r37 000008000000 5291 nop.f 0 00A000001000 5292 br.call.sptk.many rp = SYS$DELLNM ;; // br0 = SYS$DELLNM } { .mii 012018078940 52A0 mov r37 = 444 // 070019 00A010800180 52A1 tbit.z pr6, pr2 = status, 0 // pr6, pr2 = r8, 0 010803000040 52A2 mov gp = r48 ;; // r1 = r48 // 070018 } { .mmi 01C402510200 52B0 cmp4.eq pr8, pr0 = status, r37 ;; // pr8, pr0 = r8, r37 // 070019 01C200000088 52B1 (pr8) cmp.eq.or.andcm pr2, pr0 = r0, r0 000008000000 52B2 nop.i 0 } { .mfb 000008000000 52C0 nop.m 0 000008000000 52C1 nop.f 0 00860000A002 52C2 (pr2) br.cond.dpnt.many L$41 ;; } { .mii 012000100D40 52D0 add out4 = @ltoff($LITERAL$+440), // r53 = @ltoff($LITERAL$+440), r1 // 070020 gp 01200000A640 52D1 mov ai = 5 // r25 = 5 0000B0800C80 52D2 sxt4 out1 = status // r50 = r8 } { .mmi 010800000C40 52E0 mov out0 = r0 ;; // r49 = r0 0080C3500D00 52E1 ld8 out3 = $LITERAL$ // r52 = [r53] 0120580C2D40 52E2 mov out4 = 1505 // r53 = 1505 } { .mfb 010802450CC0 52F0 adds out2 = 40, r36 // r51 = 40, r36 000008000000 52F1 nop.f 0 00A000001000 52F2 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed } { .mfi 010803000040 5300 mov gp = r48 // r1 = r48 000008000000 5301 nop.f 0 000008000000 5302 nop.i 0 } 5310 L$41: { .mii 012000008640 5310 mov ai = 4 // r25 = 4 // 070022 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 157 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 012000000D00 5311 mov out3 = 0 // r52 = 0 012000000CC0 5312 mov out2 = 0 ;; // r51 = 0 } { .mib 010802300C80 5320 mov out1 = r35 // r50 = r35 012000000C40 5321 mov out0 = 0 // r49 = 0 00A000001000 5322 br.call.sptk.many rp = SYS$SETPRV ;; // br0 = SYS$SETPRV } { .mib 010803000040 5330 mov gp = r48 // r1 = r48 00A010800180 5331 tbit.z pr6, pr2 = status, 0 // pr6, pr2 = r8, 0 00860000A002 5332 (pr2) br.cond.dpnt.many L$42 ;; } { .mii 012000100D00 5340 add out3 = @ltoff($LITERAL$+440), // r52 = @ltoff($LITERAL$+440), r1 // 070023 gp 0120001009C0 5341 add r39 = @ltoff($LITERAL$+400), // r39 = @ltoff($LITERAL$+400), r1 gp 012000008640 5342 mov ai = 4 ;; // r25 = 4 } { .mmi 0080C3400CC0 5350 ld8 out2 = $LITERAL$ // r51 = [r52] 0080C2700C80 5351 ld8 out1 = $LITERAL$ // r50 = [r39] 0120580C8D00 5352 mov out3 = 1508 ;; // r52 = 1508 } { .mib 000008000000 5360 nop.m 0 0000B0800C40 5361 sxt4 out0 = status // r49 = r8 00A000001000 5362 br.call.sptk.many rp = // br0 = ErrorExitVmsStatus ErrorExitVmsStatus ;; } { .mfi 010803000040 5370 mov gp = r48 // r1 = r48 000008000000 5371 nop.f 0 000008000000 5372 nop.i 0 } 5380 L$42: { .mfb 000008000000 5380 nop.m 0 000008000000 5381 nop.f 0 008000287000 5382 br.sptk.many L$147 ;; } 5390 L$20: // 070028 { .mmi 01084A050980 5390 adds r38 = 1192, in0 ;; // r38 = 1192, r32 // 070034 008082600980 5391 ld4 rqptr = [r38] // r38 = [r38] 000008000000 5392 nop.i 0 ;; } { .mii 000008000000 53A0 nop.m 0 0000B2600980 53A1 sxt4 rqptr = rqptr ;; // r38 = r38 01090A688940 53A2 adds r37 = 4292, r38 ;; // 070036 } { .mmi 008082500940 53B0 ld4 r37 = [r37] ;; 01CC025041C0 53B1 cmp4.eq pr7, pr0 = 2, r37 000008000000 53B2 nop.i 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 158 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mfb 000008000000 53C0 nop.m 0 000008000000 53C1 nop.f 0 008600014007 53C2 (pr7) br.cond.dpnt.many L$47 ;; } { .mmi 01CC42506240 53D0 cmp4.eq pr9, pr8 = 3, r37 ;; // 070037 01C0000012C9 53D1 (pr9) cmp.eq.unc pr11, pr0 = r0, r0 01C000001288 53D2 (pr8) cmp.eq.unc pr10, pr0 = r0, r0 } { .bbb 00860000200A 53E0 (pr10) br.cond.dpnt.many L$48 // 070036 00860000400B 53E1 (pr11) br.cond.dpnt.many L$49 004000000000 53E2 nop.b 0 ;; } 53F0 L$48: { .mfb 000008000000 53F0 nop.m 0 000008000000 53F1 nop.f 0 00800027F000 53F2 br.sptk.many L$24 ;; // 070037 } 5400 L$49: // 070041 { .mfb 000008000000 5400 nop.m 0 000008000000 5401 nop.f 0 00860000800A 5402 (pr10) br.cond.dpnt.many L$50 ;; // 070042 } { .mmi 01080A678900 5410 adds r36 = 188, r38 ;; // 070043 008082400900 5411 ld4 r36 = [r36] 000008000000 5412 nop.i 0 ;; } { .mii 000008000000 5420 nop.m 0 0000B2400900 5421 sxt4 r36 = r36 ;; 01080241C900 5422 adds r36 = 14, r36 ;; } { .mfb 000008000000 5430 nop.m 0 000008000000 5431 nop.f 0 00800000B000 5432 br.sptk.many L$52 ;; // 070044 } 5440 L$50: { .mmi 012000100900 5440 add r36 = @ltoff($LITERAL$+384), // r36 = @ltoff($LITERAL$+384), r1 // 070045 gp ;; 0080C2400900 5441 ld8 r36 = $LITERAL$ // r36 = [r36] 000008000000 5442 nop.i 0 } { .mfb 000008000000 5450 nop.m 0 000008000000 5451 nop.f 0 008000007000 5452 br.sptk.many L$52 ;; } 5460 L$47: // 070039 { .mmi Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 159 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01080A6788C0 5460 adds r35 = 188, r38 ;; // 070040 0080823008C0 5461 ld4 r35 = [r35] 000008000000 5462 nop.i 0 ;; } { .mii 000008000000 5470 nop.m 0 0000B23008C0 5471 sxt4 r35 = r35 ;; 0108123F0900 5472 adds clptr = 376, r35 // r36 = 376, r35 } 5480 L$52: // 070045 { .mib 012000002640 5480 mov ai = 1 // r25 = 1 // 070051 010802000C40 5481 mov out0 = tkptr // r49 = r32 00A000001000 5482 br.call.sptk.many rp = // br0 = ProxyNetLocalPort ProxyNetLocalPort ;; } { .mii 012000002640 5490 mov ai = 1 // r25 = 1 // 070058 012000002C40 5491 mov out0 = 1 // r49 = 1 0108008009C0 5492 mov port = r8 // r39 = r8 // 070051 } { .mfb 010803000040 54A0 mov gp = r48 // r1 = r48 000008000000 54A1 nop.f 0 004000000000 54A2 nop.b 0 ;; } { .mfb 000008000000 54B0 nop.m 0 000008000000 54B1 nop.f 0 00A000001000 54B2 br.call.sptk.many rp = // br0 = InstanceMutexLock // 070058 InstanceMutexLock ;; } { .mii 010803000040 54C0 mov gp = r48 // r1 = r48 0120000020C0 54C1 mov r3 = 1 // 070061 012000002940 54C2 mov r37 = 1 ;; // 070063 } { .mii 012000100840 54D0 add r33 = @ltoffx(LnmItems), gp // r33 = @ltoffx(LnmItems), r1 // 070064 0120001008C0 54D1 add r35 = @gprel(LnmCount), gp // r35 = @gprel(LnmCount), r1 // 070061 012000100880 54D2 add r34 = @gprel(WasdTableDsc), gp ;; // r34 = @gprel(WasdTableDsc), r1 // 070066 } { .mmi 0080C2100840 54E0 ld8.mov r33 = [r33], LnmItems ;; // 070064 008C82306000 54E1 st4 [r35] = r3 // 070061 000008000000 54E2 nop.i 0 ;; } 54F0 L$53: { .mii 010802502940 54F0 adds r37 = 1, r37 010880CB0240 54F1 adds r9 = 2136, sp // r9 = 2136, r12 // 070064 010810C902C0 54F2 adds r11 = 328, sp // r11 = 328, r12 // 070065 } { .mmi 010802210CC0 5500 adds out2 = 8, r34 ;; // r51 = 8, r34 // 070066 01200000A640 5501 mov ai = 5 // r25 = 5 00A7BB74A0C0 5502 shl r3 = idx, 8 // r3 = r37, 8 // 070064 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 160 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mii 012000000D00 5510 mov out3 = 0 // r52 = 0 // 070066 0000B2500940 5511 sxt4 r37 = idx ;; // r37 = r37 // 070065 0000B0300280 5512 sxt4 r10 = r3 // 070064 } { .mii 010080B4A940 5520 shladd r37 = r37, 1, r11 // 070065 010802200C80 5521 mov out1 = r34 // r50 = r34 // 070066 012000000C40 5522 mov out0 = 0 ;; // r49 = 0 } { .mii 010000A12240 5530 add r9 = r9, r10 // 070064 010800300A00 5531 mov r40 = r3 ;; 010802120840 5532 adds r33 = 16, r33 ;; } { .mmi 00AC82112100 5540 st4 [r33] = r9, 4 ;; 00BC8A14BB00 5541 st4 [r33] = r37, -20 // 070065 000008000000 5542 nop.i 0 ;; } { .mfb 010802100D40 5550 mov out4 = r33 // r53 = r33 // 070066 000008000000 5551 nop.f 0 00A000001000 5552 br.call.sptk.many rp = SYS$TRNLNM ;; // br0 = SYS$TRNLNM } { .mii 010800800A40 5560 mov TrnLnmStatus = r8 // r41 = r8 00A0308001C0 5561 tbit.z pr7, pr6 = r8, 0 // 070067 010803000040 5562 mov gp = r48 // r1 = r48 // 070066 } { .mfb 0080823000C0 5570 ld4 r3 = [r35] // 070061 000008000000 5571 nop.f 0 00860000E007 5572 (pr7) br.cond.dpnt.many L$55 ;; // 070067 } { .mii 008042500940 5580 ld2 r37 = [r37] // 070069 0108003020C0 5581 adds r3 = 1, r3 ;; // 070061 0000AA500940 5582 sxt2 r37 = r37 ;; // 070069 } { .mfb 01C002500240 5590 cmp.eq pr9, pr0 = r0, r37 000008000000 5591 nop.f 0 008600018009 5592 (pr9) br.cond.dpnt.many L$57 ;; } { .mii 01000284A940 55A0 add r37 = r37, r40 // 070070 010880CB0240 55A1 adds r9 = 2136, sp // r9 = 2136, r12 018C503FC000 55A2 cmp4.lt pr0, pr10 = 126, r3 // 070061 } { .mmi 008C82306000 55B0 st4 [r35] = r3 ;; 000008000000 55B1 nop.m 0 0000B2500940 55B2 sxt4 r37 = r37 ;; // 070070 } { .mii Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 161 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 010002512240 55C0 add r9 = r9, r37 010800300940 55C1 mov r37 = r3 // 070063 000008000000 55C2 nop.i 0 ;; } { .mbb 008C00900000 55D0 st1 [r9] = r0 // 070070 0095FFFE400A 55D1 (pr10) br.cond.dptk.many L$53 // 070061 008000011000 55D2 br.sptk.many L$57 ;; } 55E0 L$55: // 070072 { .mmi 012018078440 55E0 mov r17 = 444 ;; // 070074 01C401152340 55E1 cmp4.eq pr13, pr0 = TrnLnmStatus, r17 // pr13, pr0 = r41, r17 000008000000 55E2 nop.i 0 } { .mfb 000008000000 55F0 nop.m 0 000008000000 55F1 nop.f 0 00860000C00D 55F2 (pr13) br.cond.dpnt.many L$57 ;; } { .mib 012000002640 5600 mov ai = 1 // r25 = 1 // 070075 012000002C40 5601 mov out0 = 1 // r49 = 1 00A000001000 5602 br.call.sptk.many rp = // br0 = InstanceMutexUnLock InstanceMutexUnLock ;; } { .mii 010803000040 5610 mov gp = r48 // r1 = r48 01200000A640 5611 mov ai = 5 // r25 = 5 // 070076 0000B2900C80 5612 sxt4 out1 = TrnLnmStatus // r50 = r41 } { .mmi 010802600C40 5620 mov out0 = rqptr ;; // r49 = r38 012000100D40 5621 add out4 = @ltoff($LITERAL$+440), // r53 = @ltoff($LITERAL$+440), r1 gp 010802150CC0 5622 adds out2 = 40, r33 ;; // r51 = 40, r33 } { .mib 0080C3500D00 5630 ld8 out3 = $LITERAL$ // r52 = [r53] 012060032D40 5631 mov out4 = 1561 // r53 = 1561 00A000001000 5632 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed } { .mfb 000008000000 5640 nop.m 0 000008000000 5641 nop.f 0 008000233000 5642 br.sptk.many L$576 ;; } 5650 L$57: // 070079 { .mii 01081A0D8940 5650 adds cptr = 492, tkptr // r37 = 492, r32 // 070086 010800C90A00 5651 adds r40 = 72, sp // r40 = 72, r12 // 070085 010800C90200 5652 adds r8 = 72, sp // r8 = 72, r12 } { .mmi 010800C90A80 5660 adds r42 = 72, sp ;; // r42 = 72, r12 0080025000C0 5661 ld1 r3 = [r37] // 070086 01080A8FEA00 5662 adds r40 = 255, r40 ;; // 070085 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 162 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mii 01A43A810000 5670 cmp4.ltu pr0, pr7 = r8, r40 // 070086 0000A03000C0 5671 sxt1 r3 = r3 ;; 01C040300240 5672 cmp.eq pr9, pr8 = r0, r3 ;; } { .mfb 01C200000247 5680 (pr7) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 5681 nop.f 0 00860001E009 5682 (pr9) br.cond.dpnt.many L$62 ;; } { .mii 010800C902C0 5690 adds r11 = 72, sp // r11 = 72, r12 010808C90280 5691 adds r10 = 200, sp // r10 = 200, r12 000008000000 5692 nop.i 0 ;; } { .mmi 00CB10B00000 56A0 lfetch.nt1 [r11] 00CB10A00000 56A1 lfetch.nt1 [r10] 000008000000 56A2 nop.i 0 ;; } 56B0 L$63: { .mii 00AC02A06040 56B0 st1 [r42] = r3, 1 010802502940 56B1 adds r37 = 1, r37 ;; 01A46A854000 56B2 cmp4.ltu pr0, pr13 = sptr, r40 // pr0, pr13 = r42, r40 } { .mmi 00A002502480 56C0 ld1 r18 = [r37], 1 ;; 000008000000 56C1 nop.m 0 0000A1200480 56C2 sxt1 r18 = r18 ;; } { .mmi 01C0512002C0 56D0 cmp.eq pr11, pr10 = r0, r18 ;; 01C2000002CD 56D1 (pr13) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 56D2 nop.i 0 } { .mfb 000008000000 56E0 nop.m 0 000008000000 56E1 nop.f 0 00860001200B 56E2 (pr11) br.cond.dpnt.many L$62 ;; } { .mmi 00AC02A24040 56F0 st1 [r42] = r18, 1 ;; 008002500500 56F1 ld1 r20 = [r37] 01A43A854000 56F2 cmp4.ltu pr0, pr7 = sptr, r40 ;; // pr0, pr7 = r42, r40 } { .mii 000008000000 5700 nop.m 0 0000A1400500 5701 sxt1 r20 = r20 ;; 01C0714003C0 5702 cmp.eq pr15, pr14 = r0, r20 ;; } { .mfb 01C2000003C7 5710 (pr7) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 5711 nop.f 0 00860000C00F 5712 (pr15) br.cond.dpnt.many L$62 ;; } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 163 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mii 00AC02A28040 5720 st1 [r42] = r20, 1 010842500540 5721 adds r21 = 1024, r37 010802502940 5722 adds r37 = 1, r37 ;; } { .mii 0080025005C0 5730 ld1 r23 = [r37] 01A46A854000 5731 cmp4.ltu pr0, pr13 = sptr, r40 // pr0, pr13 = r42, r40 000008000000 5732 nop.i 0 } { .mmi 00CB01500000 5740 lfetch [r21] ;; 000008000000 5741 nop.m 0 0000A17000C0 5742 sxt1 r3 = r23 ;; } { .mmi 01C040300240 5750 cmp.eq pr9, pr8 = r0, r3 ;; 01C24000000D 5751 (pr13) cmp.eq.or.andcm pr0, pr8 = r0, r0 000008000000 5752 nop.i 0 } { .mfb 000008000000 5760 nop.m 0 000008000000 5761 nop.f 0 0095FFFEA008 5762 (pr8) br.cond.dptk.many L$63 ;; } 5770 L$62: { .mfb 01A45A854000 5770 cmp4.ltu pr0, pr11 = sptr, r40 // pr0, pr11 = r42, r40 // 070087 000008000000 5771 nop.f 0 00860000400B 5772 (pr11) br.cond.dpnt.many L$67 ;; } { .mmi 012000074600 5780 mov r24 = 58 ;; 00AC02A30040 5781 st1 [r42] = r24, 1 000008000000 5782 nop.i 0 ;; } 5790 L$67: { .mii 012000008640 5790 mov ai = 4 // r25 = 4 // 070088 0000B2700D00 5791 sxt4 out3 = port // r52 = r39 010800C30CC0 5792 adds out2 = 24, sp // r51 = 24, r12 } { .mmi 010800C80C80 57A0 adds out1 = 64, sp ;; // r50 = 64, r12 010802220C40 57A1 adds out0 = 16, r34 // r49 = 16, r34 000008000000 57A2 nop.i 0 } { .mfb 000008000000 57B0 nop.m 0 000008000000 57B1 nop.f 0 00A000001000 57B2 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO } { .mii 010800C809C0 57C0 adds r39 = 64, sp // r39 = 64, r12 // 070089 012FF80FE940 57C1 addl r37 = 65535, r0 010800C80240 57C2 adds r9 = 64, sp // r9 = 64, r12 } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 164 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mmi 01A43A854000 57D0 cmp4.ltu pr0, pr7 = sptr, r40 ;; // pr0, pr7 = r42, r40 0080C27009C0 57D1 ld8 r39 = [r39] 010800C40200 57D2 adds r8 = 32, sp // r8 = 32, r12 } { .mmi 010803000040 57E0 mov gp = r48 ;; // r1 = r48 // 070088 01006274A0C0 57E1 and r3 = r37, r39 // 070089 0119FA7FE9C0 57E2 adds r39 = -1, r39 ;; } { .mmi 01C040300240 57F0 cmp.eq pr9, pr8 = r0, r3 008CC094E000 57F1 st8 [r9] = r39 000008000000 57F2 nop.i 0 ;; } { .mfb 01C200000247 5800 (pr7) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 5801 nop.f 0 008600024009 5802 (pr9) br.cond.dpnt.many L$69 ;; } { .mmi 010800C40280 5810 adds r10 = 32, sp ;; // r10 = 32, r12 00CB00A00000 5811 lfetch [r10] 000008000000 5812 nop.i 0 ;; } 5820 L$70: { .mii 00A0008022C0 5820 ld1 r11 = [r8], 1 010800C80480 5821 adds r18 = 64, sp // r18 = 64, r12 010800C80500 5822 adds r20 = 64, sp ;; // r20 = 64, r12 } { .mmi 00AC02A16040 5830 st1 [r42] = r11, 1 ;; 0080C1200480 5831 ld8 r18 = [r18] 01A45A854000 5832 cmp4.ltu pr0, pr11 = sptr, r40 ;; // pr0, pr11 = r42, r40 } { .mii 0100625244C0 5840 and r19 = r18, r37 0119F92FE480 5841 adds r18 = -1, r18 ;; 01C061300340 5842 cmp.eq pr13, pr12 = r0, r19 } { .mmi 008CC1424000 5850 st8 [r20] = r18 ;; 01C20000034B 5851 (pr11) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 5852 nop.i 0 } { .mfb 000008000000 5860 nop.m 0 000008000000 5861 nop.f 0 00860001800D 5862 (pr13) br.cond.dpnt.many L$69 ;; } { .mii 00A000802540 5870 ld1 r21 = [r8], 1 010800C805C0 5871 adds r23 = 64, sp // r23 = 64, r12 010800C80640 5872 adds ai = 64, sp ;; // r25 = 64, r12 } { .mmi Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 165 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00AC02A2A040 5880 st1 [r42] = r21, 1 ;; 0080C17005C0 5881 ld8 r23 = [r23] 01A47A854000 5882 cmp4.ltu pr0, pr15 = sptr, r40 ;; // pr0, pr15 = r42, r40 } { .mii 01006252E600 5890 and r24 = r23, r37 0119F97FE5C0 5891 adds r23 = -1, r23 ;; 01C0318001C0 5892 cmp.eq pr7, pr6 = r0, r24 } { .mmi 008CC192E000 58A0 st8 [ai] = r23 ;; // [r25] = r23 01C2000001CF 58A1 (pr15) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 58A2 nop.i 0 } { .mfb 000008000000 58B0 nop.m 0 000008000000 58B1 nop.f 0 00860000E007 58B2 (pr7) br.cond.dpnt.many L$69 ;; } { .mii 00A000802680 58C0 ld1 r26 = [r8], 1 010800C80700 58C1 adds r28 = 64, sp // r28 = 64, r12 010800C807C0 58C2 adds r31 = 64, sp ;; // r31 = 64, r12 } { .mii 008C02A34000 58D0 st1 [r42] = r26 010842A00740 58D1 adds r29 = 1024, r42 010802A02A80 58D2 adds r42 = 1, r42 ;; } { .mii 0080C1C00700 58E0 ld8 r28 = [r28] 01A44A854000 58E1 cmp4.ltu pr0, pr9 = sptr, r40 // pr0, pr9 = r42, r40 000008000000 58E2 nop.i 0 } { .mmi 00CB41D00000 58F0 lfetch.excl [r29] ;; 010062538780 58F1 and r30 = r28, r37 0119F9CFE700 58F2 adds r28 = -1, r28 ;; } { .mmi 01C051E002C0 5900 cmp.eq pr11, pr10 = r0, r30 008CC1F38000 5901 st8 [r31] = r28 000008000000 5902 nop.i 0 ;; } { .mfb 01C250000009 5910 (pr9) cmp.eq.or.andcm pr0, pr10 = r0, r0 000008000000 5911 nop.f 0 0095FFFE200A 5912 (pr10) br.cond.dptk.many L$70 ;; } 5920 L$69: { .mii 008C02A00000 5920 st1 [r42] = r0 // 070090 0120000049C0 5921 mov r39 = 2 // 070092 012000004A00 5922 mov idx = 2 ;; // r40 = 2 } { .mmi 008082300C80 5930 ld4 out1 = [r35] ;; // r50 = [r35] Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 166 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 018402764300 5931 cmp4.lt pr12, pr0 = out1, r39 // pr12, pr0 = r50, r39 000008000000 5932 nop.i 0 } { .mfb 000008000000 5940 nop.m 0 000008000000 5941 nop.f 0 00860004A00C 5942 (pr12) br.cond.dpnt.many L$73 ;; } { .mii 010880CB0CC0 5950 adds out2 = 2136, sp // r51 = 2136, r12 // 070095 01200007A9C0 5951 mov r39 = 61 ;; // 070103 010823300A80 5952 adds r42 = 512, out2 ;; // r42 = 512, r51 // 070095 } 5960 L$75: // 070092 { .mii 008002A00D00 5960 ld1 out3 = [r42] // r52 = [r42] // 070095 010802A00AC0 5961 mov cptr = r42 ;; // r43 = r42 0000A3400D00 5962 sxt1 out3 = out3 ;; // r52 = r52 } { .mfb 01C0034003C0 5970 cmp.eq pr15, pr0 = r0, out3 // pr15, pr0 = r0, r52 000008000000 5971 nop.f 0 00860002A00F 5972 (pr15) br.cond.dpnt.many L$77 ;; } 5980 L$78: { .mmi 008002B00D40 5980 ld1 out4 = [r43] ;; // r53 = [r43] 01C80357A1C0 5981 cmp.eq pr7, pr0 = 61, out4 // pr7, pr0 = 61, r53 000008000000 5982 nop.i 0 } { .mfb 000008000000 5990 nop.m 0 000008000000 5991 nop.f 0 008600026007 5992 (pr7) br.cond.dpnt.many L$77 ;; } { .mmi 010802B02AC0 59A0 adds r43 = 1, r43 ;; 008002B00D80 59A1 ld1 out5 = [r43] // r54 = [r43] 000008000000 59A2 nop.i 0 ;; } { .mii 000008000000 59B0 nop.m 0 0000A3600D80 59B1 sxt1 out5 = out5 ;; // r54 = r54 01C003600240 59B2 cmp.eq pr9, pr0 = r0, out5 // pr9, pr0 = r0, r54 } { .mfb 000008000000 59C0 nop.m 0 000008000000 59C1 nop.f 0 008600020009 59C2 (pr9) br.cond.dpnt.many L$77 ;; } { .mmi 008002B00DC0 59D0 ld1 out6 = [r43] ;; // r55 = [r43] 01C80377A2C0 59D1 cmp.eq pr11, pr0 = 61, out6 // pr11, pr0 = 61, r55 000008000000 59D2 nop.i 0 } { .mfb 000008000000 59E0 nop.m 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 167 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 59E1 nop.f 0 00860001C00B 59E2 (pr11) br.cond.dpnt.many L$77 ;; } { .mmi 010802B02AC0 59F0 adds r43 = 1, r43 ;; 008002B000C0 59F1 ld1 r3 = [r43] 000008000000 59F2 nop.i 0 ;; } { .mii 000008000000 5A00 nop.m 0 0000A03000C0 5A01 sxt1 r3 = r3 ;; 01C000300340 5A02 cmp.eq pr13, pr0 = r0, r3 } { .mfb 000008000000 5A10 nop.m 0 000008000000 5A11 nop.f 0 00860001600D 5A12 (pr13) br.cond.dpnt.many L$77 ;; } { .mmi 008002B00240 5A20 ld1 r9 = [r43] ;; 01C80097A3C0 5A21 cmp.eq pr15, pr0 = 61, r9 000008000000 5A22 nop.i 0 } { .mfb 000008000000 5A30 nop.m 0 000008000000 5A31 nop.f 0 00860001200F 5A32 (pr15) br.cond.dpnt.many L$77 ;; } { .mmi 010802B02AC0 5A40 adds r43 = 1, r43 ;; 008002B00280 5A41 ld1 r10 = [r43] 000008000000 5A42 nop.i 0 ;; } { .mii 000008000000 5A50 nop.m 0 0000A0A00280 5A51 sxt1 r10 = r10 ;; 01C000A001C0 5A52 cmp.eq pr7, pr0 = r0, r10 } { .mfb 000008000000 5A60 nop.m 0 000008000000 5A61 nop.f 0 00860000C007 5A62 (pr7) br.cond.dpnt.many L$77 ;; } { .mii 008002B002C0 5A70 ld1 r11 = [r43] 010842B00440 5A71 adds r17 = 1024, r43 ;; 01C800B7A240 5A72 cmp.eq pr9, pr0 = 61, r11 } { .mfb 00CB01100000 5A80 lfetch [r17] 000008000000 5A81 nop.f 0 008600008009 5A82 (pr9) br.cond.dpnt.many L$77 ;; } { .mmi 010802B02AC0 5A90 adds r43 = 1, r43 ;; 008002B004C0 5A91 ld1 r19 = [r43] 000008000000 5A92 nop.i 0 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 168 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mii 000008000000 5AA0 nop.m 0 0000A13004C0 5AA1 sxt1 r19 = r19 ;; 01C051300000 5AA2 cmp.eq pr0, pr10 = r0, r19 } { .mfb 000008000000 5AB0 nop.m 0 000008000000 5AB1 nop.f 0 0095FFFDA00A 5AB2 (pr10) br.cond.dptk.many L$78 ;; } 5AC0 L$77: { .mmi 008002B00480 5AC0 ld1 r18 = [r43] ;; // 070096 000008000000 5AC1 nop.m 0 0000A1200480 5AC2 sxt1 r18 = r18 ;; } { .mfb 01C001200340 5AD0 cmp.eq pr13, pr0 = r0, r18 000008000000 5AD1 nop.f 0 00860000C00D 5AD2 (pr13) br.cond.dpnt.many L$95 ;; } { .mii 012000006640 5AE0 mov ai = 3 // r25 = 3 // 070098 0119F80FECC0 5AE1 adds out2 = -1, r0 // r51 = -1, r0 010800C90C80 5AE2 adds out1 = 72, sp // r50 = 72, r12 } { .mmi 010802A00C40 5AF0 mov out0 = r42 ;; // r49 = r42 008C02B00000 5AF1 st1 [r43] = r0 // 070097 000008000000 5AF2 nop.i 0 } { .mfb 000008000000 5B00 nop.m 0 000008000000 5B01 nop.f 0 00A000001000 5B02 br.call.sptk.many rp = strsame ;; // br0 = strsame // 070098 } { .mib 01C430800000 5B10 cmp4.eq pr0, pr6 = r0, r8 010803000040 5B11 mov gp = r48 // r1 = r48 00860000E006 5B12 (pr6) br.cond.dpnt.many L$96 ;; } { .mfi 008C02B4E000 5B20 st1 [r43] = r39 // 070103 000008000000 5B21 nop.f 0 000008000000 5B22 nop.i 0 } 5B30 L$95: // 070104 { .mii 010802802A00 5B30 adds r40 = 1, r40 010812A00A80 5B31 adds r42 = 256, r42 // 070092 000008000000 5B32 nop.i 0 ;; } { .mmi 008082300240 5B40 ld4 r9 = [r35] ;; 018442812000 5B41 cmp4.lt pr0, pr8 = r9, idx // pr0, pr8 = r9, r40 000008000000 5B42 nop.i 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 169 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mfb 000008000000 5B50 nop.m 0 000008000000 5B51 nop.f 0 0095FFFC2008 5B52 (pr8) br.cond.dptk.many L$75 ;; } { .mmi 008082300440 5B60 ld4 r17 = [r35] ;; // 070107 0184028222C0 5B61 cmp4.lt pr11, pr0 = r17, idx // pr11, pr0 = r17, r40 000008000000 5B62 nop.i 0 } { .bbb 00860000800B 5B70 (pr11) br.cond.dpnt.many L$99 004000000000 5B71 nop.b 0 008000189000 5B72 br.sptk.many L$147 ;; } 5B80 L$96: // 070098 { .mfi 008C02B4E000 5B80 st1 [r43] = r39 // 070100 000008000000 5B81 nop.f 0 000008000000 5B82 nop.i 0 ;; } 5B90 L$73: // 070104 { .mmi 008082300440 5B90 ld4 r17 = [r35] ;; // 070107 0184028222C0 5B91 cmp4.lt pr11, pr0 = r17, idx // pr11, pr0 = r17, r40 000008000000 5B92 nop.i 0 } { .bbb 00860000200B 5BA0 (pr11) br.cond.dpnt.many L$99 004000000000 5BA1 nop.b 0 008000183000 5BA2 br.sptk.many L$147 ;; } 5BB0 L$99: // 070111 { .mii 0120001000C0 5BB0 add r3 = @ltoffx(HttpdTickSecond), // r3 = @ltoffx(HttpdTickSecond), r1 // 070121 gp 010800C209C0 5BB1 adds r39 = 16, sp // r39 = 16, r12 // 070119 012010000A80 5BB2 mov r42 = 256 } { .mmi 010800C28AC0 5BC0 adds r43 = 20, sp ;; // r43 = 20, r12 // 070118 0080C03000C0 5BC1 ld8.mov r3 = [r3], HttpdTickSecond // 070121 01200000C640 5BC2 mov ai = 6 // r25 = 6 // 070120 } { .mii 010800C20CC0 5BD0 adds out2 = 16, sp // r51 = 16, r12 0000B1100D80 5BD1 sxt4 out5 = r17 ;; // r54 = r17 010800C80C80 5BD2 adds out1 = 64, sp // r50 = 64, r12 } { .mii 008C42754000 5BE0 st2 [r39] = r42 // 070119 010880CB09C0 5BE1 adds r39 = 2136, sp // r39 = 2136, r12 // 070118 010802230C40 5BE2 adds out0 = 24, r34 ;; // r49 = 24, r34 // 070120 } { .mmi 008080300D40 5BF0 ld4 out4 = HttpdTickSecond ;; // r53 = [r3] // 070121 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 170 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 008C82B4E000 5BF1 st4 [r43] = r39 // 070118 0000B3500D00 5BF2 sxt4 out3 = out4 // r52 = r53 // 070121 } { .mfb 012000000D40 5C00 mov out4 = 0 // r53 = 0 // 070120 000008000000 5C01 nop.f 0 00A000001000 5C02 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO } { .mii 010800C80A80 5C10 adds r42 = 64, sp // r42 = 64, r12 // 070122 010800C900C0 5C11 adds r3 = 72, sp // r3 = 72, r12 // 070137 010880CB0280 5C12 adds r10 = 2136, sp // r10 = 2136, r12 // 070122 } { .mmi 010812700AC0 5C20 adds r43 = 256, r39 ;; // 070135 0080C2A00A80 5C21 ld8 r42 = [r42] // 070122 01080ABFE9C0 5C22 adds r39 = 255, r43 // 070135 } { .mii 0080003000C0 5C30 ld1 r3 = [r3] // 070137 010820C94200 5C31 adds r8 = 586, sp ;; // r8 = 586, r12 // 070126 00008AA00A00 5C32 zxt2 r40 = r42 // 070123 } { .mii 012000004B00 5C40 mov r44 = 2 // 070126 0000AAA00A80 5C41 sxt2 r42 = r42 ;; // 070122 0000A03000C0 5C42 sxt1 r3 = r3 // 070137 } { .mii 010820C902C0 5C50 adds r11 = 584, sp // r11 = 584, r12 // 070125 010002A14280 5C51 add r10 = r10, r42 // 070122 010820C98480 5C52 adds r18 = 588, sp ;; // r18 = 588, r12 // 070127 } { .mii 010880CB0A80 5C60 adds r42 = 2136, sp // r42 = 2136, r12 010810C90240 5C61 adds r9 = 328, sp // r9 = 328, r12 // 070123 010820CA04C0 5C62 adds r19 = 592, sp // r19 = 592, r12 // 070128 } { .mmi 01A44A756000 5C70 cmp4.ltu pr0, pr9 = r43, r39 ;; // 070137 01C0303001C0 5C71 cmp.eq pr7, pr6 = r0, r3 010800C90500 5C72 adds r20 = 72, sp // r20 = 72, r12 } { .mii 008C40858000 5C80 st2 [r8] = r44 // 070126 010803000040 5C81 mov gp = r48 ;; // r1 = r48 // 070120 01C2000001C9 5C82 (pr9) cmp.eq.or.andcm pr7, pr0 = r0, r0 // 070137 } { .mmi 008C40B50000 5C90 st2 [r11] = r40 // 070125 008C40950000 5C91 st2 [r9] = r40 // 070123 010802B00A00 5C92 mov sptr = r43 ;; // r40 = r43 // 070135 } { .mmi 008C81254000 5CA0 st4 [r18] = r42 // 070127 008C00A00000 5CA1 st1 [r10] = r0 // 070122 000008000000 5CA2 nop.i 0 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 171 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mfb 008C81300000 5CB0 st4 [r19] = r0 // 070128 000008000000 5CB1 nop.f 0 008600020007 5CB2 (pr7) br.cond.dpnt.many L$101 ;; // 070137 } { .mii 010800C905C0 5CC0 adds r23 = 72, sp // r23 = 72, r12 010800C90680 5CC1 adds r26 = 72, sp // r26 = 72, r12 010808C10640 5CC2 adds ai = 136, sp // r25 = 136, r12 } { .mmi 010808C90600 5CD0 adds r24 = 200, sp ;; // r24 = 200, r12 0080017005C0 5CD1 ld1 r23 = [r23] 010810C10580 5CD2 adds r22 = 264, sp // r22 = 264, r12 } { .mmi 00CB01A00000 5CE0 lfetch [r26] ;; 00CB01900000 5CE1 lfetch [ai] // [r25] 0000A17005C0 5CE2 sxt1 r23 = r23 } { .mmi 00CB01800000 5CF0 lfetch [r24] ;; 00CB01600000 5CF1 lfetch [r22] 000008000000 5CF2 nop.i 0 ;; } 5D00 L$102: { .mmi 010801402500 5D00 adds r20 = 1, r20 00AC0282E040 5D01 st1 [r40] = r23, 1 000008000000 5D02 nop.i 0 ;; } { .mii 00A001402700 5D10 ld1 r28 = [r20], 1 01A46A750000 5D11 cmp4.ltu pr0, pr13 = sptr, r39 ;; // pr0, pr13 = r40, r39 0000A1C00700 5D12 sxt1 r28 = r28 ;; } { .mmi 01C051C002C0 5D20 cmp.eq pr11, pr10 = r0, r28 ;; 01C2000002CD 5D21 (pr13) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 5D22 nop.i 0 } { .mfb 000008000000 5D30 nop.m 0 000008000000 5D31 nop.f 0 00860001000B 5D32 (pr11) br.cond.dpnt.many L$101 ;; } { .mmi 00A001402780 5D40 ld1 r30 = [r20], 1 ;; 008C02838000 5D41 st1 [r40] = r28 0000A1E00780 5D42 sxt1 r30 = r30 } { .mmi 010802802A00 5D50 adds r40 = 1, r40 ;; 01A44A750000 5D51 cmp4.ltu pr0, pr9 = sptr, r39 // pr0, pr9 = r40, r39 01C071E003C0 5D52 cmp.eq pr15, pr14 = r0, r30 ;; } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 172 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mfb 01C2000003C9 5D60 (pr9) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 5D61 nop.f 0 00860000A00F 5D62 (pr15) br.cond.dpnt.many L$101 ;; } { .mmi 008001400C80 5D70 ld1 out1 = [r20] ;; // r50 = [r20] 008C0283C000 5D71 st1 [r40] = r30 0000A32005C0 5D72 sxt1 r23 = out1 // r23 = r50 } { .mii 010842800C40 5D80 adds out0 = 1024, r40 // r49 = 1024, r40 010802802A00 5D81 adds r40 = 1, r40 ;; 01A46A750000 5D82 cmp4.ltu pr0, pr13 = sptr, r39 // pr0, pr13 = r40, r39 } { .mmi 01C0317001C0 5D90 cmp.eq pr7, pr6 = r0, r23 00CB43100000 5D91 lfetch.excl [out0] // [r49] 000008000000 5D92 nop.i 0 ;; } { .mfb 01C23000000D 5DA0 (pr13) cmp.eq.or.andcm pr0, pr6 = r0, r0 000008000000 5DA1 nop.f 0 0095FFFEC006 5DA2 (pr6) br.cond.dptk.many L$102 ;; } 5DB0 L$101: { .mfb 01A45A750000 5DB0 cmp4.ltu pr0, pr11 = sptr, r39 // pr0, pr11 = r40, r39 // 070138 000008000000 5DB1 nop.f 0 00860000400B 5DB2 (pr11) br.cond.dpnt.many L$106 ;; } { .mmi 01200007ACC0 5DC0 mov out2 = 61 ;; // r51 = 61 00AC02866040 5DC1 st1 [r40] = out2, 1 // [r40] = r51, 1 000008000000 5DC2 nop.i 0 ;; } 5DD0 L$106: { .mii 01080A668D40 5DD0 adds out4 = 180, r38 // r53 = 180, r38 // 070140 01A44A750000 5DD1 cmp4.ltu pr0, pr9 = sptr, r39 // pr0, pr9 = r40, r39 // 070141 000008000000 5DD2 nop.i 0 ;; } { .mmi 008083500D40 5DE0 ld4 out4 = [out4] ;; // r53 = [r53] // 070140 000008000000 5DE1 nop.m 0 0000B3500D40 5DE2 sxt4 out4 = out4 ;; // r53 = r53 } { .mmi 01087B508D40 5DF0 adds cptr = 1924, out4 ;; // r53 = 1924, r53 008003500D80 5DF1 ld1 out5 = [out4] // r54 = [r53] // 070141 000008000000 5DF2 nop.i 0 ;; } { .mii 000008000000 5E00 nop.m 0 0000A3600D80 5E01 sxt1 out5 = out5 ;; // r54 = r54 01C0736003C0 5E02 cmp.eq pr15, pr14 = r0, out5 ;; // pr15, pr14 = r0, r54 } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 173 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mfb 01C2000003C9 5E10 (pr9) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 5E11 nop.f 0 00860001C00F 5E12 (pr15) br.cond.dpnt.many L$108 ;; // 070140 } 5E20 L$109: // 070142 { .mii 00AC0286C040 5E20 st1 [r40] = out5, 1 // [r40] = r54, 1 010803502D40 5E21 adds out4 = 1, out4 ;; // r53 = 1, r53 // 070141 01A43A750000 5E22 cmp4.ltu pr0, pr7 = sptr, r39 // pr0, pr7 = r40, r39 } { .mmi 00A0035020C0 5E30 ld1 r3 = [out4], 1 ;; // r3 = [r53], 1 000008000000 5E31 nop.m 0 0000A03000C0 5E32 sxt1 r3 = r3 ;; } { .mmi 01C060300340 5E40 cmp.eq pr13, pr12 = r0, r3 ;; 01C200000347 5E41 (pr7) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 5E42 nop.i 0 } { .mfb 000008000000 5E50 nop.m 0 000008000000 5E51 nop.f 0 00860001400D 5E52 (pr13) br.cond.dpnt.many L$108 ;; // 070140 } { .mmi 00AC02806040 5E60 st1 [r40] = r3, 1 ;; // 070142 008003500240 5E61 ld1 r9 = [out4] // r9 = [r53] // 070141 01A44A750000 5E62 cmp4.ltu pr0, pr9 = sptr, r39 ;; // pr0, pr9 = r40, r39 } { .mii 000008000000 5E70 nop.m 0 0000A0900240 5E71 sxt1 r9 = r9 ;; 01C0509002C0 5E72 cmp.eq pr11, pr10 = r0, r9 ;; } { .mfb 01C2000002C9 5E80 (pr9) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 5E81 nop.f 0 00860000E00B 5E82 (pr11) br.cond.dpnt.many L$108 ;; // 070140 } { .mii 008C02812000 5E90 st1 [r40] = r9 // 070142 010822800440 5E91 adds r17 = 512, r40 010802802A00 5E92 adds r40 = 1, r40 } { .mmi 0108235002C0 5EA0 adds r11 = 512, out4 ;; // r11 = 512, r53 010803502D40 5EA1 adds out4 = 1, out4 // r53 = 1, r53 // 070141 01A43A750000 5EA2 cmp4.ltu pr0, pr7 = sptr, r39 // pr0, pr7 = r40, r39 } { .mmi 00CB41100000 5EB0 lfetch.excl [r17] ;; // 070142 0080035004C0 5EB1 ld1 r19 = [out4] // r19 = [r53] // 070141 000008000000 5EB2 nop.i 0 } { .mmi Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 174 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00CB00B00000 5EC0 lfetch [r11] ;; // 070142 000008000000 5EC1 nop.m 0 0000A1300D80 5EC2 sxt1 out5 = r19 ;; // r54 = r19 // 070141 } { .mmi 01C0736003C0 5ED0 cmp.eq pr15, pr14 = r0, out5 ;; // pr15, pr14 = r0, r54 01C270000007 5ED1 (pr7) cmp.eq.or.andcm pr0, pr14 = r0, r0 000008000000 5ED2 nop.i 0 } { .mfb 000008000000 5EE0 nop.m 0 000008000000 5EE1 nop.f 0 0095FFFE800E 5EE2 (pr14) br.cond.dptk.many L$109 ;; // 070140 } 5EF0 L$108: // 070142 { .mfb 01A46A750000 5EF0 cmp4.ltu pr0, pr13 = sptr, r39 // pr0, pr13 = r40, r39 // 070143 000008000000 5EF1 nop.f 0 00860000400D 5EF2 (pr13) br.cond.dpnt.many L$113 ;; } { .mmi 01200007A280 5F00 mov r10 = 61 ;; 00AC02814040 5F01 st1 [r40] = r10, 1 000008000000 5F02 nop.i 0 ;; } 5F10 L$113: { .mii 008002400580 5F10 ld1 r22 = [r36] // 070145 01A44A750000 5F11 cmp4.ltu pr0, pr9 = sptr, r39 // pr0, pr9 = r40, r39 010802400600 5F12 mov cptr = clptr ;; // r24 = r36 } { .mii 000008000000 5F20 nop.m 0 0000A1600580 5F21 sxt1 r22 = r22 ;; 01C0516002C0 5F22 cmp.eq pr11, pr10 = r0, r22 ;; } { .mfb 01C2000002C9 5F30 (pr9) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 5F31 nop.f 0 00860001E00B 5F32 (pr11) br.cond.dpnt.many L$115 ;; } { .mmi 008002400900 5F40 ld1 r36 = [r36] ;; 000008000000 5F41 nop.m 0 0000A2400900 5F42 sxt1 r36 = r36 ;; } 5F50 L$116: { .mii 00AC02848040 5F50 st1 [r40] = r36, 1 010801802600 5F51 adds r24 = 1, r24 ;; 01A47A750000 5F52 cmp4.ltu pr0, pr15 = sptr, r39 // pr0, pr15 = r40, r39 } { .mmi 00A001802680 5F60 ld1 r26 = [r24], 1 ;; 000008000000 5F61 nop.m 0 0000A1A00680 5F62 sxt1 r26 = r26 ;; } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 175 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mmi 01C031A001C0 5F70 cmp.eq pr7, pr6 = r0, r26 ;; 01C2000001CF 5F71 (pr15) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 5F72 nop.i 0 } { .mfb 000008000000 5F80 nop.m 0 000008000000 5F81 nop.f 0 008600014007 5F82 (pr7) br.cond.dpnt.many L$115 ;; } { .mmi 00AC02834040 5F90 st1 [r40] = r26, 1 ;; 008001800700 5F91 ld1 r28 = [r24] 01A44A750000 5F92 cmp4.ltu pr0, pr9 = sptr, r39 ;; // pr0, pr9 = r40, r39 } { .mii 000008000000 5FA0 nop.m 0 0000A1C00700 5FA1 sxt1 r28 = r28 ;; 01C061C00340 5FA2 cmp.eq pr13, pr12 = r0, r28 ;; } { .mfb 01C200000349 5FB0 (pr9) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 5FB1 nop.f 0 00860000E00D 5FB2 (pr13) br.cond.dpnt.many L$115 ;; } { .mii 008C02838000 5FC0 st1 [r40] = r28 010822800780 5FC1 adds r30 = 512, r40 010802802A00 5FC2 adds r40 = 1, r40 } { .mmi 010821800740 5FD0 adds r29 = 512, r24 ;; 010801802600 5FD1 adds r24 = 1, r24 01A47A750000 5FD2 cmp4.ltu pr0, pr15 = sptr, r39 // pr0, pr15 = r40, r39 } { .mmi 00CB41E00000 5FE0 lfetch.excl [r30] ;; 008001800C40 5FE1 ld1 out0 = [r24] // r49 = [r24] 000008000000 5FE2 nop.i 0 } { .mmi 00CB01D00000 5FF0 lfetch [r29] ;; 000008000000 5FF1 nop.m 0 0000A3100900 5FF2 sxt1 r36 = out0 ;; // r36 = r49 } { .mmi 01C0524002C0 6000 cmp.eq pr11, pr10 = r0, r36 ;; 01C25000000F 6001 (pr15) cmp.eq.or.andcm pr0, pr10 = r0, r0 000008000000 6002 nop.i 0 } { .mfb 000008000000 6010 nop.m 0 000008000000 6011 nop.f 0 0095FFFE800A 6012 (pr10) br.cond.dptk.many L$116 ;; } 6020 L$115: { .mfb Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 176 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 01A43A750000 6020 cmp4.ltu pr0, pr7 = sptr, r39 // pr0, pr7 = r40, r39 // 070146 000008000000 6021 nop.f 0 008600004007 6022 (pr7) br.cond.dpnt.many L$120 ;; } { .mmi 012000074C80 6030 mov out1 = 58 ;; // r50 = 58 00AC02864040 6031 st1 [r40] = out1, 1 // [r40] = r50, 1 000008000000 6032 nop.i 0 ;; } 6040 L$120: { .mii 01080A678CC0 6040 adds out2 = 188, r38 // r51 = 188, r38 // 070147 012000008640 6041 mov ai = 4 // r25 = 4 010800C80C80 6042 adds out1 = 64, sp // r50 = 64, r12 } { .mmi 010802220C40 6050 adds out0 = 16, r34 ;; // r49 = 16, r34 008083300CC0 6051 ld4 out2 = [out2] // r51 = [r51] 000008000000 6052 nop.i 0 ;; } { .mii 000008000000 6060 nop.m 0 0000B3300CC0 6061 sxt4 out2 = out2 ;; // r51 = r51 010803318CC0 6062 adds out2 = 12, out2 ;; // r51 = 12, r51 } { .mib 008043300D00 6070 ld2 out3 = [out2] // r52 = [r51] 010800C30CC0 6071 adds out2 = 24, sp // r51 = 24, r12 00A000001000 6072 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO } { .mii 010800C80900 6080 adds r36 = 64, sp // r36 = 64, r12 // 070148 010800C80240 6081 adds r9 = 64, sp // r9 = 64, r12 01A43A750000 6082 cmp4.ltu pr0, pr7 = sptr, r39 // pr0, pr7 = r40, r39 } { .mmi 010800C40200 6090 adds r8 = 32, sp ;; // r8 = 32, r12 0080C2400900 6091 ld8 r36 = [r36] 010803000040 6092 mov gp = r48 ;; // r1 = r48 // 070147 } { .mii 0100625480C0 60A0 and r3 = r36, r37 // 070148 0119FA4FE900 60A1 adds r36 = -1, r36 ;; 01C040300240 60A2 cmp.eq pr9, pr8 = r0, r3 } { .mmi 008CC0948000 60B0 st8 [r9] = r36 ;; 01C200000247 60B1 (pr7) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 60B2 nop.i 0 } { .mfb 000008000000 60C0 nop.m 0 000008000000 60C1 nop.f 0 008600024009 60C2 (pr9) br.cond.dpnt.many L$122 ;; } { .mmi 010800C40280 60D0 adds r10 = 32, sp ;; // r10 = 32, r12 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 177 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00CB00A00000 60D1 lfetch [r10] 000008000000 60D2 nop.i 0 ;; } 60E0 L$123: { .mii 00A0008022C0 60E0 ld1 r11 = [r8], 1 010800C80480 60E1 adds r18 = 64, sp // r18 = 64, r12 010800C80500 60E2 adds r20 = 64, sp ;; // r20 = 64, r12 } { .mmi 00AC02816040 60F0 st1 [r40] = r11, 1 ;; 0080C1200480 60F1 ld8 r18 = [r18] 01A45A750000 60F2 cmp4.ltu pr0, pr11 = sptr, r39 ;; // pr0, pr11 = r40, r39 } { .mii 0100625244C0 6100 and r19 = r18, r37 0119F92FE480 6101 adds r18 = -1, r18 ;; 01C061300340 6102 cmp.eq pr13, pr12 = r0, r19 } { .mmi 008CC1424000 6110 st8 [r20] = r18 ;; 01C20000034B 6111 (pr11) cmp.eq.or.andcm pr13, pr0 = r0, r0 000008000000 6112 nop.i 0 } { .mfb 000008000000 6120 nop.m 0 000008000000 6121 nop.f 0 00860001800D 6122 (pr13) br.cond.dpnt.many L$122 ;; } { .mii 00A000802540 6130 ld1 r21 = [r8], 1 010800C805C0 6131 adds r23 = 64, sp // r23 = 64, r12 010800C80640 6132 adds ai = 64, sp ;; // r25 = 64, r12 } { .mmi 00AC0282A040 6140 st1 [r40] = r21, 1 ;; 0080C17005C0 6141 ld8 r23 = [r23] 01A47A750000 6142 cmp4.ltu pr0, pr15 = sptr, r39 ;; // pr0, pr15 = r40, r39 } { .mii 01006252E600 6150 and r24 = r23, r37 0119F97FE5C0 6151 adds r23 = -1, r23 ;; 01C0318001C0 6152 cmp.eq pr7, pr6 = r0, r24 } { .mmi 008CC192E000 6160 st8 [ai] = r23 ;; // [r25] = r23 01C2000001CF 6161 (pr15) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 6162 nop.i 0 } { .mfb 000008000000 6170 nop.m 0 000008000000 6171 nop.f 0 00860000E007 6172 (pr7) br.cond.dpnt.many L$122 ;; } { .mii 00A000802680 6180 ld1 r26 = [r8], 1 010800C80700 6181 adds r28 = 64, sp // r28 = 64, r12 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 178 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 010800C807C0 6182 adds r31 = 64, sp ;; // r31 = 64, r12 } { .mii 008C02834000 6190 st1 [r40] = r26 010842800740 6191 adds r29 = 1024, r40 010802802A00 6192 adds r40 = 1, r40 ;; } { .mii 0080C1C00700 61A0 ld8 r28 = [r28] 01A44A750000 61A1 cmp4.ltu pr0, pr9 = sptr, r39 // pr0, pr9 = r40, r39 000008000000 61A2 nop.i 0 } { .mmi 00CB41D00000 61B0 lfetch.excl [r29] ;; 010062538780 61B1 and r30 = r28, r37 0119F9CFE700 61B2 adds r28 = -1, r28 ;; } { .mmi 01C051E002C0 61C0 cmp.eq pr11, pr10 = r0, r30 008CC1F38000 61C1 st8 [r31] = r28 000008000000 61C2 nop.i 0 ;; } { .mfb 01C250000009 61D0 (pr9) cmp.eq.or.andcm pr0, pr10 = r0, r0 000008000000 61D1 nop.f 0 0095FFFE200A 61D2 (pr10) br.cond.dptk.many L$123 ;; } 61E0 L$122: { .mii 010810C94CC0 61E0 adds out2 = 330, sp // r51 = 330, r12 // 070150 01002AB50C40 61E1 sub out0 = sptr, r43 // r49 = r40, r43 01A402750300 61E2 cmp4.ltu pr12, pr0 = sptr, r39 // pr12, pr0 = r40, r39 // 070152 } { .mmi 008C02800000 61F0 st1 [r40] = r0 ;; // 070149 008C43362000 61F1 st2 [out2] = out0 // [r51] = r49 // 070150 000008000000 61F2 nop.i 0 } { .mfb 000008000000 6200 nop.m 0 000008000000 6201 nop.f 0 00860000C00C 6202 (pr12) br.cond.dpnt.many L$126 ;; // 070152 } { .mib 012000002640 6210 mov ai = 1 // r25 = 1 // 070154 012000002C40 6211 mov out0 = 1 // r49 = 1 00A000001000 6212 br.call.sptk.many rp = // br0 = InstanceMutexUnLock InstanceMutexUnLock ;; } { .mii 010803000040 6220 mov gp = r48 // r1 = r48 01200000A640 6221 mov ai = 5 // r25 = 5 // 070155 010880CB0CC0 6222 adds out2 = 2136, sp // r51 = 2136, r12 } { .mmi 012020028C80 6230 mov out1 = 532 ;; // r50 = 532 012000100D40 6231 add out4 = @ltoff($LITERAL$+440), // r53 = @ltoff($LITERAL$+440), r1 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 179 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 gp 010802600C40 6232 mov out0 = rqptr ;; // r49 = r38 } { .mib 0080C3500D00 6240 ld8 out3 = $LITERAL$ // r52 = [r53] 0120600D0D40 6241 mov out4 = 1640 // r53 = 1640 00A000001000 6242 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed } { .mfb 000008000000 6250 nop.m 0 000008000000 6251 nop.f 0 0080000B1000 6252 br.sptk.many L$576 ;; } 6260 L$126: // 070157 { .mii 012000100900 6260 add r36 = @ltoff(Watch+124), gp // r36 = @ltoff(Watch+124), r1 // 070164 010810C94200 6261 adds r8 = 330, sp // r8 = 330, r12 // 070159 010820CAC240 6262 adds r9 = 598, sp // r9 = 598, r12 // 070160 } { .mmi 010820CB0280 6270 adds r10 = 600, sp ;; // r10 = 600, r12 // 070161 0080C2400900 6271 ld8 r36 = Watch // r36 = [r36] // 070164 010820CA8440 6272 adds r17 = 596, sp // r17 = 596, r12 // 070159 } { .mii 008040800200 6280 ld2 r8 = [r8] 010820CB8480 6281 adds r18 = 604, sp ;; // r18 = 604, r12 // 070162 0111624F0940 6282 and r37 = -8, r36 // 070164 } { .mmi 0120020002C0 6290 addl r11 = 524288, r0 008C40958000 6291 st2 [r9] = r44 // 070160 000008000000 6292 nop.i 0 ;; } { .mmi 01C03A548000 62A0 cmp.eq pr0, pr7 = r36, r37 // 070164 00A0C25100C0 62A1 ld8 r3 = Watch, 8 // r3 = [r37], 8 000008000000 62A2 nop.i 0 ;; } { .mib 008C80A56000 62B0 st4 [r10] = r43 // 070161 009E100489C7 62B1 (pr7) dep r39 = Watch, r0, 3, 3 // r39 = r36, r0, 3, 3 // 070164 004000000000 62B2 nop.b 0 } { .mmi 008C41110000 62C0 st2 [r17] = r8 ;; // 070159 0080C2500A07 62C1 (pr7) ld8 r40 = Watch // r40 = [r37] // 070164 000008000000 62C2 nop.i 0 ;; } { .mmi 008C81200000 62D0 st4 [r18] = r0 ;; // 070162 0080820004C0 62D1 ld4 r19 = [in0] // r19 = [r32] // 070164 00F20034E0C7 62D2 (pr7) shr.u r3 = r3, r39 } { .mmi 01012A7809C7 62E0 (pr7) sub r39 = 64, r39 ;; 01C4513002C0 62E1 cmp4.eq pr11, pr10 = r0, r19 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 180 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 62E2 nop.i 0 ;; } { .mii 000008000000 62F0 nop.m 0 00F242750A07 62F1 (pr7) shl r40 = r40, r39 ;; 0100703500C7 62F2 (pr7) or r3 = r40, r3 ;; } { .mmi 0100603160C0 6300 and r3 = r11, r3 ;; 01C000300240 6301 cmp.eq pr9, pr0 = r0, r3 000008000000 6302 nop.i 0 ;; } { .mfb 01C2000002C9 6310 (pr9) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 6311 nop.f 0 00860001400B 6312 (pr11) br.cond.dpnt.many L$129 ;; } { .mmi 01C000001300 6320 cmp.eq.unc pr12, pr0 = r0, r0 ;; // 070165 01A000000302 6321 (pr2) cmp.ltu pr12, pr0 = r0, r0 000008000000 6322 nop.i 0 } { .bbb 00860000200C 6330 (pr12) br.cond.dpnt.many L$132 004000000000 6331 nop.b 0 008000005000 6332 br.sptk.many L$131 ;; } 6340 L$132: { .mfi 0108000004C0 6340 mov r19 = r0 000008000000 6341 nop.f 0 000008000000 6342 nop.i 0 } 6350 L$131: { .mii 012000100CC0 6350 add out2 = @ltoff($LITERAL$+440), // r51 = @ltoff($LITERAL$+440), r1 gp 012000100500 6351 add r20 = @ltoff($LITERAL$+360), // r20 = @ltoff($LITERAL$+360), r1 gp 01200000E640 6352 mov ai = 7 ;; // r25 = 7 } { .mmi 008082300D80 6360 ld4 out5 = [r35] // r54 = [r35] 0080C3300C80 6361 ld8 out1 = $LITERAL$ // r50 = [r51] 010802B00DC0 6362 mov out6 = r43 ;; // r55 = r43 } { .mii 0080C1400D40 6370 ld8 out4 = $LITERAL$ // r53 = [r20] 0000B3600D80 6371 sxt4 out5 = out5 // r54 = r54 012002000D00 6372 addl out3 = 524288, r0 // r52 = 524288, r0 } { .mmi 0120600E4CC0 6380 mov out2 = 1650 ;; // r51 = 1650 000008000000 6381 nop.m 0 0000B1300C40 6382 sxt4 out0 = r19 // r49 = r19 } { .mfb Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 181 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 6390 nop.m 0 000008000000 6391 nop.f 0 00A000001000 6392 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010803000040 63A0 mov gp = r48 // r1 = r48 000008000000 63A1 nop.f 0 000008000000 63A2 nop.i 0 } 63B0 L$129: // 070166 { .mii 0080823008C0 63B0 ld4 r35 = [r35] // 070172 012000004900 63B1 mov r36 = 2 012000004940 63B2 mov idx = 2 ;; // r37 = 2 } { .mfb 018402446080 63C0 cmp4.lt pr2, pr0 = r35, r36 000008000000 63C1 nop.f 0 008600034002 63C2 (pr2) br.cond.dpnt.many L$133 ;; } { .mii 0119FA3FC9C0 63D0 adds r39 = -2, r35 010820C10AC0 63D1 adds r43 = 520, sp // r43 = 520, r12 // 070174 010810C90240 63D2 adds r9 = 328, sp // r9 = 328, r12 } { .mmi 010818C10200 63E0 adds r8 = 392, sp ;; // r8 = 392, r12 01840244E280 63E1 cmp4.lt pr10, pr0 = r39, r36 // 070172 01843A746200 63E2 cmp4.lt pr8, pr7 = r35, r39 } { .mii 00CB02B00000 63F0 lfetch [r43] // 070174 010818C900C0 63F1 adds r3 = 456, sp ;; // r3 = 456, r12 01C20000020A 63F2 (pr10) cmp.eq.or.andcm pr8, pr0 = r0, r0 // 070172 } { .mmi 010820C90AC0 6400 adds r43 = 584, sp // r43 = 584, r12 // 070174 00CB00900000 6401 lfetch [r9] 000008000000 6402 nop.i 0 ;; } { .mii 010802B30AC0 6410 adds r43 = 24, r43 010822A00A80 6411 adds r42 = 512, r42 // 070176 010810C90A00 6412 adds r40 = 328, sp // r40 = 328, r12 // 070174 } { .mmi 00CB00800000 6420 lfetch [r8] ;; 010802808A00 6421 adds r40 = 4, r40 000008000000 6422 nop.i 0 } { .mfi 00CB00300000 6430 lfetch [r3] 000008000000 6431 nop.f 0 000008000000 6432 nop.i 0 ;; } { .mfb 000008000000 6440 nop.m 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 182 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 6441 nop.f 0 00860001A008 6442 (pr8) br.cond.dpnt.many L$139 ;; // 070172 } 6450 L$137: { .mii 00A042808280 6450 ld2 r10 = [r40], 4 // 070174 010822A005C0 6451 adds r23 = 512, r42 // 070176 010812A00480 6452 adds r18 = 256, r42 } { .mmi 010802506940 6460 adds r37 = 3, r37 ;; // 070172 00B04A8FC580 6461 ld2 r22 = [r40], -2 // 070174 01845A54E000 6462 cmp4.lt pr0, pr11 = r39, idx ;; // pr0, pr11 = r39, r37 // 070172 } { .mmi 00A0428082C0 6470 ld2 r11 = [r40], 4 ;; // 070174 008C42B14000 6471 st2 [r43] = r10 010812B50C40 6472 adds out0 = 296, r43 // r49 = 296, r43 // 070177 } { .mmi 010802B08AC0 6480 adds r43 = 4, r43 ;; // 070176 00AC82B54700 6481 st4 [r43] = r42, 28 010832A00A80 6482 adds r42 = 768, r42 ;; // 070172 } { .mmi 00CB43100000 6490 lfetch.excl [out0] ;; // [r49] // 070177 00BC8AB01F00 6491 st4 [r43] = r0, -4 000008000000 6492 nop.i 0 ;; } { .mmi 00BC8AB2FF80 64A0 st4 [r43] = r23, -2 ;; // 070176 00BC4AB59F80 64A1 st2 [r43] = r44, -2 // 070175 000008000000 64A2 nop.i 0 ;; } { .mmi 00BC4AB2DF00 64B0 st2 [r43] = r22, -4 ;; // 070174 00BC8AB01F00 64B1 st4 [r43] = r0, -4 // 070177 000008000000 64B2 nop.i 0 ;; } { .mmi 00BC8AB25E00 64C0 st4 [r43] = r18, -8 ;; // 070176 00AC82B00180 64C1 st4 [r43] = r0, 6 // 070177 000008000000 64C2 nop.i 0 ;; } { .mmi 00BC4AB59F80 64D0 st2 [r43] = r44, -2 ;; // 070175 00BC4AB17D80 64D1 st2 [r43] = r11, -10 // 070174 000008000000 64D2 nop.i 0 ;; } { .mfi 00AC42B58880 64E0 st2 [r43] = r44, 34 // 070175 000008000000 64E1 nop.f 0 000008000000 64E2 nop.i 0 ;; } { .mfb 000008000000 64F0 nop.m 0 000008000000 64F1 nop.f 0 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 183 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 0095FFFEC00B 64F2 (pr11) br.cond.dptk.many L$137 ;; // 070172 } { .mfb 018402546380 6500 cmp4.lt pr14, pr0 = r35, idx // pr14, pr0 = r35, r37 000008000000 6501 nop.f 0 00860000C00E 6502 (pr14) br.cond.dpnt.many L$133 ;; } 6510 L$139: { .mii 00A042804C80 6510 ld2 out1 = [r40], 2 // r50 = [r40], 2 // 070174 010802502940 6511 adds r37 = 1, r37 // 070172 010802B04AC0 6512 adds r43 = 2, r43 ;; // 070175 } { .mii 00AC42B58080 6520 st2 [r43] = r44, 2 01847A546000 6521 cmp4.lt pr0, pr15 = r35, idx // pr0, pr15 = r35, r37 // 070172 000008000000 6522 nop.i 0 ;; } { .mii 00AC82B54100 6530 st4 [r43] = r42, 4 // 070176 010812A00A80 6531 adds r42 = 256, r42 // 070172 000008000000 6532 nop.i 0 ;; } { .mmi 00BC8AB01E00 6540 st4 [r43] = r0, -8 ;; // 070177 00AC42B64300 6541 st2 [r43] = out1, 12 // [r43] = r50, 12 // 070174 000008000000 6542 nop.i 0 ;; } { .mfb 000008000000 6550 nop.m 0 000008000000 6551 nop.f 0 0095FFFF800F 6552 (pr15) br.cond.dptk.many L$139 ;; // 070172 } 6560 L$133: // 070178 { .mii 01008254A940 6560 shladd r37 = idx, 1, idx // r37 = r37, 1, r37 // 070181 010820C90DC0 6561 adds out6 = 584, sp // r55 = 584, r12 0120001009C0 6562 add r39 = @ltoffx(SysNamPrvMask), // r39 = @ltoffx(SysNamPrvMask), r1 // 070190 gp } { .mmi 012000008640 6570 mov ai = 4 ;; // r25 = 4 0080C27009C0 6571 ld8.mov r39 = [r39], SysNamPrvMask 0000B2500940 6572 sxt4 r37 = r37 // 070181 } { .mii 012000000D00 6580 mov out3 = 0 // r52 = 0 // 070190 012000000CC0 6581 mov out2 = 0 ;; // r51 = 0 01008B74A940 6582 shladd r37 = r37, 2, out6 // r37 = r37, 2, r55 // 070181 } { .mii 010802700C80 6590 mov out1 = r39 // r50 = r39 // 070190 012000002C40 6591 mov out0 = 1 // r49 = 1 000008000000 6592 nop.i 0 ;; } { .mmi 00AC42500200 65A0 st2 [r37] = r0, 8 ;; // 070181 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 184 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00BC8A501F00 65A1 st4 [r37] = r0, -4 // 070184 000008000000 65A2 nop.i 0 ;; } { .mmi 00BC8A501F80 65B0 st4 [r37] = r0, -2 ;; // 070183 008C42500000 65B1 st2 [r37] = r0 // 070182 000008000000 65B2 nop.i 0 } { .mfb 000008000000 65C0 nop.m 0 000008000000 65C1 nop.f 0 00A000001000 65C2 br.call.sptk.many rp = SYS$SETPRV ;; // br0 = SYS$SETPRV // 070190 } { .mib 010803000040 65D0 mov gp = r48 // r1 = r48 00A010800180 65D1 tbit.z pr6, pr2 = status, 0 // pr6, pr2 = r8, 0 00860000A002 65D2 (pr2) br.cond.dpnt.many L$140 ;; } { .mii 012000100D00 65E0 add out3 = @ltoff($LITERAL$+440), // r52 = @ltoff($LITERAL$+440), r1 // 070191 gp 0120001008C0 65E1 add r35 = @ltoff($LITERAL$+400), // r35 = @ltoff($LITERAL$+400), r1 gp 012000008640 65E2 mov ai = 4 ;; // r25 = 4 } { .mmi 0080C3400CC0 65F0 ld8 out2 = $LITERAL$ // r51 = [r52] 0080C2300C80 65F1 ld8 out1 = $LITERAL$ // r50 = [r35] 012068018D00 65F2 mov out3 = 1676 ;; // r52 = 1676 } { .mib 000008000000 6600 nop.m 0 0000B0800C40 6601 sxt4 out0 = status // r49 = r8 00A000001000 6602 br.call.sptk.many rp = // br0 = ErrorExitVmsStatus ErrorExitVmsStatus ;; } { .mfi 010803000040 6610 mov gp = r48 // r1 = r48 000008000000 6611 nop.f 0 000008000000 6612 nop.i 0 } 6620 L$140: { .mmi 012018078A00 6620 mov r40 = 444 ;; // 070193 01C402852180 6621 cmp4.eq pr6, pr0 = TrnLnmStatus, r40 // pr6, pr0 = r41, r40 000008000000 6622 nop.i 0 } { .mfb 000008000000 6630 nop.m 0 000008000000 6631 nop.f 0 008600012006 6632 (pr6) br.cond.dpnt.many L$143 ;; } { .mii 010802240CC0 6640 adds out2 = 32, r34 // r51 = 32, r34 // 070207 010802210C80 6641 adds out1 = 8, r34 // r50 = 8, r34 012000006640 6642 mov ai = 3 // r25 = 3 } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 185 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mfb 010802200C40 6650 mov out0 = r34 // r49 = r34 000008000000 6651 nop.f 0 00A000001000 6652 br.call.sptk.many rp = SYS$DELLNM ;; // br0 = SYS$DELLNM } { .mii 01C402810200 6660 cmp4.eq pr8, pr0 = status, r40 // pr8, pr0 = r8, r40 // 070208 00A010800180 6661 tbit.z pr6, pr2 = status, 0 // pr6, pr2 = r8, 0 010803000040 6662 mov gp = r48 ;; // r1 = r48 // 070207 } { .mfb 01C200000088 6670 (pr8) cmp.eq.or.andcm pr2, pr0 = r0, r0 // 070208 000008000000 6671 nop.f 0 00860000A002 6672 (pr2) br.cond.dpnt.many L$143 ;; } { .mii 012000100D40 6680 add out4 = @ltoff($LITERAL$+440), // r53 = @ltoff($LITERAL$+440), r1 // 070209 gp 01200000A640 6681 mov ai = 5 // r25 = 5 0000B0800C80 6682 sxt4 out1 = status // r50 = r8 } { .mmi 010800000C40 6690 mov out0 = r0 ;; // r49 = r0 0080C3500D00 6691 ld8 out3 = $LITERAL$ // r52 = [r53] 01206803CD40 6692 mov out4 = 1694 // r53 = 1694 } { .mfb 010802150CC0 66A0 adds out2 = 40, r33 // r51 = 40, r33 000008000000 66A1 nop.f 0 00A000001000 66A2 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed } { .mfi 010803000040 66B0 mov gp = r48 // r1 = r48 000008000000 66B1 nop.f 0 000008000000 66B2 nop.i 0 } 66C0 L$143: // 070210 { .mii 010802240D00 66C0 adds out3 = 32, r34 // r52 = 32, r34 // 070212 010802210CC0 66C1 adds out2 = 8, r34 // r51 = 8, r34 01200000A640 66C2 mov ai = 5 ;; // r25 = 5 } { .mii 010820C90D40 66D0 adds out4 = 584, sp // r53 = 584, r12 010802200C80 66D1 mov out1 = r34 // r50 = r34 012000000C40 66D2 mov out0 = 0 // r49 = 0 } { .mfb 000008000000 66E0 nop.m 0 000008000000 66E1 nop.f 0 00A000001000 66E2 br.call.sptk.many rp = SYS$CRELNM ;; // br0 = SYS$CRELNM } { .mib 010803000040 66F0 mov gp = r48 // r1 = r48 00A010800180 66F1 tbit.z pr6, pr2 = status, 0 // pr6, pr2 = r8, 0 // 070213 00860000A002 66F2 (pr2) br.cond.dpnt.many L$145 ;; } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 186 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mii 012000100D40 6700 add out4 = @ltoff($LITERAL$+440), // r53 = @ltoff($LITERAL$+440), r1 gp 01200000A640 6701 mov ai = 5 // r25 = 5 0000B0800C80 6702 sxt4 out1 = status // r50 = r8 } { .mmi 010802600C40 6710 mov out0 = rqptr ;; // r49 = r38 0080C3500D00 6711 ld8 out3 = $LITERAL$ // r52 = [r53] 012068044D40 6712 mov out4 = 1698 // r53 = 1698 } { .mfb 010802150CC0 6720 adds out2 = 40, r33 // r51 = 40, r33 000008000000 6721 nop.f 0 00A000001000 6722 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed } { .mfi 010803000040 6730 mov gp = r48 // r1 = r48 000008000000 6731 nop.f 0 000008000000 6732 nop.i 0 } 6740 L$145: { .mii 012000008640 6740 mov ai = 4 // r25 = 4 // 070215 012000000D00 6741 mov out3 = 0 // r52 = 0 012000000CC0 6742 mov out2 = 0 ;; // r51 = 0 } { .mib 010802700C80 6750 mov out1 = r39 // r50 = r39 012000000C40 6751 mov out0 = 0 // r49 = 0 00A000001000 6752 br.call.sptk.many rp = SYS$SETPRV ;; // br0 = SYS$SETPRV } { .mib 010803000040 6760 mov gp = r48 // r1 = r48 00A010800180 6761 tbit.z pr6, pr2 = status, 0 // pr6, pr2 = r8, 0 00860000A002 6762 (pr2) br.cond.dpnt.many L$147 ;; } { .mii 012000100D00 6770 add out3 = @ltoff($LITERAL$+440), // r52 = @ltoff($LITERAL$+440), r1 // 070216 gp 012000100940 6771 add r37 = @ltoff($LITERAL$+400), // r37 = @ltoff($LITERAL$+400), r1 gp 012000008640 6772 mov ai = 4 ;; // r25 = 4 } { .mmi 0080C3400CC0 6780 ld8 out2 = $LITERAL$ // r51 = [r52] 0080C2500C80 6781 ld8 out1 = $LITERAL$ // r50 = [r37] 01206804AD00 6782 mov out3 = 1701 ;; // r52 = 1701 } { .mib 000008000000 6790 nop.m 0 0000B0800C40 6791 sxt4 out0 = status // r49 = r8 00A000001000 6792 br.call.sptk.many rp = // br0 = ErrorExitVmsStatus ErrorExitVmsStatus ;; } { .mfi 010803000040 67A0 mov gp = r48 // r1 = r48 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 187 ProxyTunnelLogicalName 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 000008000000 67A1 nop.f 0 000008000000 67A2 nop.i 0 } 67B0 L$147: { .mii 012000002640 67B0 mov ai = 1 // r25 = 1 // 070218 012000002C40 67B1 mov out0 = 1 // r49 = 1 000008000000 67B2 nop.i 0 ;; } { .mfb 000008000000 67C0 nop.m 0 000008000000 67C1 nop.f 0 00A000001000 67C2 br.call.sptk.many rp = // br0 = InstanceMutexUnLock InstanceMutexUnLock ;; } 67D0 L$576: { .mfi 010803000040 67D0 mov gp = r48 // r1 = r48 000008000000 67D1 nop.f 0 000008000000 67D2 nop.i 0 } 67E0 L$24: // 070219 { .mii 000008000000 67E0 nop.m 0 00160005E7C0 67E1 mov pr = r47, -65474 ;; 00015405C000 67E2 mov.i rspfs = r46 } { .mmi 0128800A0080 67F0 addl r2 = 34896, r0 ;; 000008000000 67F1 nop.m 0 000E0015A000 67F2 mov rp = r45 // br0 = r45 } { .mfb 010000C04300 6800 add sp = r2, sp // r12 = r2, r12 000008000000 6801 nop.f 0 000108001100 6802 br.ret.sptk.many rp ;; // br0 } .endp ProxyTunnelLogicalName Routine Size: 6624 bytes, Routine Base: $CODE$ + 4E30 .proc ProxyTunnelReport .align 32 .global ProxyTunnelReport ProxyTunnelReport: // 070226 { .mii 002C00B20A40 6810 alloc r41 = rspfs, 1, 10, 5, 0 012000060380 6811 mov r14 = 48 012000100280 6812 add r10 = @ltoff($LITERAL$+344), // r10 = @ltoff($LITERAL$+344), r1 // 070253 gp } { .mmi 0109220D0240 6820 adds r9 = 4712, in0 ;; // r9 = 4712, r32 // 070252 010028E183C0 6821 sub r15 = sp, r14 // r15 = r12, r14 // 070226 012000002200 6822 mov r8 = 1 // 070252 } { .mii Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 188 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 010800C00080 6830 mov r2 = sp // r2 = r12 // 070226 012000006640 6831 mov ai = 3 ;; // r25 = 3 // 070253 000188000A00 6832 mov r40 = rp // r40 = br0 // 070226 } { .mii 0080C0F00380 6840 ld8 r14 = [r15] 010800F00300 6841 mov sp = r15 // r12 = r15 010800100A80 6842 mov r42 = gp ;; // r42 = r1 } { .mii 0080C0A00B00 6850 ld8 out1 = $LITERAL$ // r44 = [r10] // 070253 010800000B40 6851 mov out2 = r0 // r45 = r0 010802000AC0 6852 mov out0 = rqptr ;; // r43 = r32 } { .mfb 008C80910000 6860 st4 [r9] = r8 // 070252 000008000000 6861 nop.f 0 00A000001000 6862 br.call.sptk.many rp = // br0 = ResponseHeader200 // 070253 ResponseHeader200 ;; } { .mii 010802A00040 6870 mov gp = r42 // r1 = r42 012000004640 6871 mov ai = 2 // r25 = 2 // 070255 010802000AC0 6872 mov out0 = rqptr ;; // r43 = r32 } { .mmi 012000100840 6880 add r33 = @ltoff($LITERAL$+320), // r33 = @ltoff($LITERAL$+320), r1 gp ;; 0080C2100B00 6881 ld8 out1 = $LITERAL$ // r44 = [r33] 000008000000 6882 nop.i 0 } { .mfb 000008000000 6890 nop.m 0 000008000000 6891 nop.f 0 00A000001000 6892 br.call.sptk.many rp = AdminPageTitle ;; // br0 = AdminPageTitle } { .mii 010802A00040 68A0 mov gp = r42 // r1 = r42 012000006640 68A1 mov ai = 3 // r25 = 3 // 070257 010802000AC0 68A2 mov out0 = rqptr ;; // r43 = r32 } { .mii 012000100880 68B0 add r34 = @ltoffx(LogicalName), gp // r34 = @ltoffx(LogicalName), r1 // 070262 0120001008C0 68B1 add r35 = @ltoff($LITERAL$+208), // r35 = @ltoff($LITERAL$+208), r1 // 070258 gp 000008000000 68B2 nop.i 0 ;; } { .mmi 0080C2200880 68C0 ld8.mov r34 = [r34], LogicalName // 070262 0080C2300B00 68C1 ld8 out1 = $LITERAL$ // r44 = [r35] // 070258 000008000000 68C2 nop.i 0 ;; } { .mfb 010802200B40 68D0 mov out2 = r34 // r45 = r34 // 070257 000008000000 68D1 nop.f 0 00A000001000 68D2 br.call.sptk.many rp = FaoToNet ;; // br0 = FaoToNet } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 189 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mii 012000002640 68E0 mov ai = 1 // r25 = 1 // 070264 012000002AC0 68E1 mov out0 = 1 // r43 = 1 010802A00040 68E2 mov gp = r42 ;; // r1 = r42 // 070257 } { .mfb 000008000000 68F0 nop.m 0 000008000000 68F1 nop.f 0 00A000001000 68F2 br.call.sptk.many rp = // br0 = InstanceMutexLock // 070264 InstanceMutexLock ;; } { .mii 010802A00040 6900 mov gp = r42 // r1 = r42 012FF80FE8C0 6901 addl r35 = 65535, r0 ;; // 070271 0120001009C0 6902 add r39 = @ltoffx(LogValue), gp // r39 = @ltoffx(LogValue), r1 // 070272 } { .mii 012000100980 6910 add r38 = @ltoffx(HttpdTickSecond), // r38 = @ltoffx(HttpdTickSecond), r1 // 070276 gp 012000100900 6911 add r36 = @gprel(LnmCount), gp // r36 = @gprel(LnmCount), r1 // 070266 012000100840 6912 add r33 = @gprel(WasdTableDsc), gp ;; // r33 = @gprel(WasdTableDsc), r1 // 070268 } { .mmi 0080C27009C0 6920 ld8.mov r39 = [r39], LogValue // 070272 0080C2600980 6921 ld8.mov r38 = [r38], HttpdTickSecond // 070276 000008000000 6922 nop.i 0 ;; } { .mfi 008C82400000 6930 st4 [r36] = r0 // 070266 000008000000 6931 nop.f 0 000008000000 6932 nop.i 0 ;; } 6940 L$5: { .mii 0108022200C0 6940 adds r3 = 16, r34 // 070268 010802110B40 6941 adds out2 = 8, r33 // r45 = 8, r33 01200000A640 6942 mov ai = 5 // r25 = 5 } { .mmi 012000000B80 6950 mov out3 = 0 ;; // r46 = 0 010800300BC0 6951 mov out4 = r3 // r47 = r3 010802100B00 6952 mov out1 = r33 // r44 = r33 } { .mfb 012000000AC0 6960 mov out0 = 0 // r43 = 0 000008000000 6961 nop.f 0 00A000001000 6962 br.call.sptk.many rp = SYS$TRNLNM ;; // br0 = SYS$TRNLNM } { .mib 010802A00040 6970 mov gp = r42 // r1 = r42 00A0308001C0 6971 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0 // 070269 008600032007 6972 (pr7) br.cond.dpnt.many L$7 ;; } { .mmi 010802410900 6980 adds r36 = 8, r36 ;; // 070271 00B0CA4F0940 6981 ld8 r37 = [r36], -8 000008000000 6982 nop.i 0 ;; Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 190 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 } { .mmi 01006234A0C0 6990 and r3 = r37, r35 008082400240 6991 ld4 r9 = [r36] // 070273 000008000000 6992 nop.i 0 ;; } { .mfb 01C000300240 69A0 cmp.eq pr9, pr0 = r0, r3 // 070271 000008000000 69A1 nop.f 0 008600038009 69A2 (pr9) br.cond.dpnt.many L$9 ;; } { .mii 010800C20280 69B0 adds r10 = 16, sp // r10 = 16, r12 // 070272 010800C202C0 69B1 adds r11 = 16, sp // r11 = 16, r12 0000AA500940 69B2 sxt2 r37 = r37 } { .mmi 01C450900000 69C0 cmp4.eq pr0, pr10 = r0, r9 ;; // 070273 008C00A00000 69C1 st1 [r10] = r0 // 070272 01000254E940 69C2 add r37 = r39, r37 ;; } { .mmi 008000B002C0 69D0 ld1 r11 = [r11] ;; 008C02516000 69D1 st1 [r37] = r11 000008000000 69D2 nop.i 0 } { .mfb 000008000000 69E0 nop.m 0 000008000000 69E1 nop.f 0 00860001600A 69E2 (pr10) br.cond.dpnt.many L$10 ;; // 070273 } { .mib 012000002640 69F0 mov ai = 1 // r25 = 1 // 070275 010802700AC0 69F1 mov out0 = r39 // r43 = r39 00A000001000 69F2 br.call.sptk.many rp = DECC$ATOL ;; // br0 = DECC$ATOL } { .mii 008082600940 6A00 ld4 r37 = [r38] // 070276 010802A00040 6A01 mov gp = r42 ;; // r1 = r42 // 070275 01002884A200 6A02 sub tsecs = r37, r8 ;; // r8 = r37, r8 // 070276 } { .mfb 01C430800000 6A10 cmp4.eq pr0, pr6 = r0, tsecs // pr0, pr6 = r0, r8 // 070277 000008000000 6A11 nop.f 0 008600008006 6A12 (pr6) br.cond.dpnt.many L$12 ;; } { .mii 012000100B40 6A20 add out2 = @ltoff($LITERAL$+184), // r45 = @ltoff($LITERAL$+184), r1 // 070278 gp 012000006640 6A21 mov ai = 3 // r25 = 3 010800C20AC0 6A22 adds out0 = 16, sp ;; // r43 = 16, r12 } { .mib 0080C2D00B00 6A30 ld8 out1 = $LITERAL$ // r44 = [r45] 012000060B40 6A31 mov out2 = 48 // r45 = 48 00A000001000 6A32 br.call.sptk.many rp = strzcpy ;; // br0 = strzcpy } Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 191 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 { .mfb 000008000000 6A40 nop.m 0 000008000000 6A41 nop.f 0 008000009000 6A42 br.sptk.many L$577 ;; } 6A50 L$12: // 070279 { .mii 012000100940 6A50 add r37 = @ltoff($LITERAL$+144), // r37 = @ltoff($LITERAL$+144), r1 // 070281 gp 01200000A640 6A51 mov ai = 5 // r25 = 5 // 070280 0000B0800BC0 6A52 sxt4 out4 = tsecs // r47 = r8 } { .mmi 010800000B40 6A60 mov out2 = r0 ;; // r45 = r0 0080C2500B80 6A61 ld8 out3 = $LITERAL$ // r46 = [r37] // 070281 012000060B00 6A62 mov out1 = 48 // r44 = 48 // 070280 } { .mfb 010800C20AC0 6A70 adds out0 = 16, sp // r43 = 16, r12 000008000000 6A71 nop.f 0 00A000001000 6A72 br.call.sptk.many rp = FaoToBuffer ;; // br0 = FaoToBuffer } 6A80 L$577: { .mfi 010802A00040 6A80 mov gp = r42 // r1 = r42 000008000000 6A81 nop.f 0 000008000000 6A82 nop.i 0 } 6A90 L$10: // 070282 { .mii 008082400B40 6A90 ld4 out2 = [r36] // r45 = [r36] // 070283 01200000A640 6A91 mov ai = 5 // r25 = 5 010800C20BC0 6A92 adds out4 = 16, sp ;; // r47 = 16, r12 } { .mii 012000100940 6AA0 add r37 = @ltoff($LITERAL$+56), gp // r37 = @ltoff($LITERAL$+56), r1 010802700B80 6AA1 mov out3 = r39 // r46 = r39 0000B2D00B40 6AA2 sxt4 out2 = out2 // r45 = r45 } { .mmi 010802000AC0 6AB0 mov out0 = rqptr ;; // r43 = r32 0080C2500B00 6AB1 ld8 out1 = $LITERAL$ // r44 = [r37] 000008000000 6AB2 nop.i 0 } { .mfb 000008000000 6AC0 nop.m 0 000008000000 6AC1 nop.f 0 00A000001000 6AC2 br.call.sptk.many rp = FaoToNet ;; // br0 = FaoToNet } { .mmi 008082400940 6AD0 ld4 r37 = [r36] ;; // 070266 010802502940 6AD1 adds r37 = 1, r37 010802A00040 6AD2 mov gp = r42 ;; // r1 = r42 // 070283 } { .mmb 018C325FE000 6AE0 cmp4.lt pr0, pr6 = 127, r37 // 070266 008C8244A000 6AE1 st4 [r36] = r37 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 192 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 0095FFFCC006 6AE2 (pr6) br.cond.dptk.many L$5 ;; } { .mfb 000008000000 6AF0 nop.m 0 000008000000 6AF1 nop.f 0 00800000F000 6AF2 br.sptk.many L$9 ;; } 6B00 L$7: // 070287 { .mii 008082400900 6B00 ld4 r36 = [r36] // 070288 012018078240 6B01 mov r9 = 444 ;; 01C458910000 6B02 cmp4.eq pr0, pr11 = status, r9 // pr0, pr11 = r8, r9 } { .mmi 01C442400240 6B10 cmp4.eq pr9, pr8 = r0, r36 ;; 01C20000020B 6B11 (pr11) cmp.eq.or.andcm pr8, pr0 = r0, r0 000008000000 6B12 nop.i 0 } { .mfb 000008000000 6B20 nop.m 0 000008000000 6B21 nop.f 0 008600008008 6B22 (pr8) br.cond.dpnt.many L$9 ;; } { .mii 012000100B40 6B30 add out2 = @ltoff($LITERAL$+32), // r45 = @ltoff($LITERAL$+32), r1 // 070290 gp 012000006640 6B31 mov ai = 3 // r25 = 3 010802000AC0 6B32 mov out0 = rqptr ;; // r43 = r32 } { .mib 0080C2D00B00 6B40 ld8 out1 = $LITERAL$ // r44 = [r45] 012018078B40 6B41 mov out2 = 444 // r45 = 444 00A000001000 6B42 br.call.sptk.many rp = FaoToNet ;; // br0 = FaoToNet } { .mfi 010802A00040 6B50 mov gp = r42 // r1 = r42 000008000000 6B51 nop.f 0 000008000000 6B52 nop.i 0 } 6B60 L$9: // 070294 { .mii 012000002640 6B60 mov ai = 1 // r25 = 1 // 070296 012000002AC0 6B61 mov out0 = 1 // r43 = 1 000008000000 6B62 nop.i 0 ;; } { .mfb 000008000000 6B70 nop.m 0 000008000000 6B71 nop.f 0 00A000001000 6B72 br.call.sptk.many rp = // br0 = InstanceMutexUnLock InstanceMutexUnLock ;; } { .mii 010802A00040 6B80 mov gp = r42 // r1 = r42 012000004640 6B81 mov ai = 2 // r25 = 2 // 070298 010802000AC0 6B82 mov out0 = rqptr ;; // r43 = r32 } { .mmi Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 193 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 012000100940 6B90 add r37 = @ltoffx($LITERAL$), gp ;; // r37 = @ltoffx($LITERAL$), r1 // 070299 0080C2500B00 6B91 ld8.mov out1 = [r37], $LITERAL$ 000008000000 6B92 nop.i 0 } { .mfb 000008000000 6BA0 nop.m 0 000008000000 6BA1 nop.f 0 00A000001000 6BA2 br.call.sptk.many rp = FaoToNet ;; // br0 = FaoToNet // 070298 } { .mii 012000002640 6BB0 mov ai = 1 // r25 = 1 // 070303 010802000AC0 6BB1 mov out0 = rqptr // r43 = r32 010802A00040 6BB2 mov gp = r42 ;; // r1 = r42 // 070298 } { .mfb 000008000000 6BC0 nop.m 0 000008000000 6BC1 nop.f 0 00A000001000 6BC2 br.call.sptk.many rp = AdminEnd ;; // br0 = AdminEnd // 070303 } { .mii 010802A00040 6BD0 mov gp = r42 // r1 = r42 000154052000 6BD1 mov.i rspfs = r41 ;; // 070304 000E00150000 6BD2 mov rp = r40 // br0 = r40 } { .mfb 010800C60300 6BE0 adds sp = 48, sp // r12 = 48, r12 000008000000 6BE1 nop.f 0 000108001100 6BE2 br.ret.sptk.many rp ;; // br0 } .endp ProxyTunnelReport Routine Size: 992 bytes, Routine Base: $CODE$ + 6810 .common ProxyAccountingPtr, 4, 1 .psect $READONLY$, CON, LCL, SHR, NOEXE, NOWRT, NOVEC, NOSHORT .lcomm _SIG_EMPTY_SET, 8, 8 .lcomm _SIG_FULL_SET, 8, 8 .lcomm $$1, 4, 4 .lcomm fill$$1, 4, 4 .lcomm $$2, 11, 16 .lcomm fill$$2, 5, 8 .lcomm $$3, 12, 16 .lcomm fill$$3, 4, 4 .lcomm $$4, 11, 16 .lcomm fill$$4, 5, 8 .lcomm LnmCount, 4, 4 .lcomm fill$$5, 4, 4 .lcomm LogValueLength, 8, 8 .lcomm LnmCount, 4, 4 .lcomm TunnelSeconds, 4, 4 .lcomm LogicalName, 12, 16 .lcomm fill$$6, 4, 4 .lcomm LnmItems, 36, 16 .lcomm fill$$7, 4, 4 .lcomm LnmItems, 36, 16 .lcomm fill$$8, 4, 4 .lcomm LogicalName, 12, 16 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 194 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 .lcomm fill$$9, 4, 4 .lcomm WasdTableDsc, 8, 8 .lcomm LogNameDsc, 8, 8 .lcomm WasdTableDsc, 8, 8 .lcomm LogNameDsc, 8, 8 .lcomm NumberFaoDsc, 8, 8 .lcomm StampFaoDsc, 8, 8 .lcomm fill$$10, 8, 8 .lcomm LogValue, 256, 16 .psect $LITERAL$, CON, LCL, SHR, NOEXE, NOWRT, NOVEC, NOSHORT 61742F3C 0000 string "\X0A\X0A\X0A\X00" 3E656C62 0004 742F3C0A 0008 2F3C3E64 000C 0A3E7274 0010 61742F3C 0014 3E656C62 0018 000A 001C 3E72743C 0020 string "!&S\X0A\X00" 3E64743C 0024 3C532621 0028 3E64742F 002C 72742F3C 0030 000A3E 0034 3E72743C 0038 string "!UL!AZ!AZ\X0A\X00" 73616C63 0040 74223D73 0044 68677261 0048 64702074 004C 74686772 0050 213E2231 0054 2F3C4C55 0058 3C3E6474 005C 3C3E6474 0060 6E617073 0064 616C6320 0068 223D7373 006C 22747874 0070 5A41213E 0074 70732F3C 0078 213E6E61 007C 2F3C5A41 0080 3C3E6474 0084 3E72742F 0088 000A 008C 73626E26 0090 string "  (!SL second!%s ago)\X00" 6E263B70 0094 3B707362 0098 4C532128 009C 63657320 00A0 21646E6F 00A4 61207325 00A8 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 195 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 00296F67 00AC 73626E26 00B8 string "  (just now)\X00" 6E263B70 00BC 3B707362 00C0 73756A28 00C4 6F6E2074 00C8 002977 00CC 3C3E703C 00D0 string "

\X0A\X0A
Logical Name !AZ
\X0A\X0A\X00" 6C632065 00D8 3D737361 00DC 67746322 00E0 3E227972 00E4 72743C0A 00E8 68743C3E 00EC 616C6320 00F0 223D7373 00F4 74747463 00F8 4C3E226C 00FC 6369676F 0100 4E206C61 0104 20656D61 0108 3C5A4121 010C 3E68742F 0110 72742F3C 0114 743C0A3E 0118 743C3E72 011C 3C0A3E64 0120 6C626174 0124 6C632065 0128 3D737361 012C 68677222 0130 74666C74 0134 000A3E22 0138 786F7250 0140 string "Proxy Tunnel Report\X00" 75542079 0144 6C656E6E 0148 70655220 014C 0074726F 0150 74786574 0158 string "text/html\X00" 6D74682F 015C 006C 0160 44534157 0168 string "WASD_TUNNEL !UL !AZ\X00" 4E55545F 016C 204C454E 0170 204C5521 0174 005A4121 0178 5F245353 0180 string "SS$_BUGCHECK\X00" 43475542 0184 4B434548 0188 00 018C Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 196 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 24737973 0190 string "sys$setprv()\X00" 70746573 0194 29287672 0198 00 019C 44534157 01A0 string "WASD_TUNNEL delete\X00" 4E55545F 01A4 204C454E 01A8 656C6564 01AC 006574 01B0 584F5250 01B8 string "PROXYTUNNEL\X00" 4E555459 01BC 004C454E 01C0 44534157 01C8 string "WASD_TUNNEL_SECONDS\X00" 4E55545F 01CC 5F4C454E 01D0 4F434553 01D4 0053444E 01D8 6F462D58 01E0 string "X-Forwarded-For: %s\X0D\X0A\X00" 72617772 01E4 2D646564 01E8 3A726F46 01EC 0D732520 01F0 000A 01F4 000A0D30 01F8 string "0\X0D\X0A\X00" 000A30 0200 string "0\X0A\X00" 000A0D31 0208 string "1\X0D\X0A\X00" 000A31 0210 string "1\X0A\X00" 50545448 0218 string "HTTP/1.\X00" 002E312F 021C 000A0D 0228 string "\X0D\X0A\X00" 0A0D0A0D 0230 string "\X0D\X0A\X0D\X0A\X00" 00 0234 2D580A0D 0238 string "\X0D\X0AX-Forwarded-For: \X00" 77726F46 023C 65647261 0240 6F462D64 0244 00203A72 0248 6F480A0D 0250 string "\X0D\X0AHost: \X00" 203A7473 0254 00 0258 73550A0D 0260 string "\X0D\X0AUser-Agent: \X00" 412D7265 0264 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 197 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 746E6567 0268 00203A 026C 00 0270 string "\X00" 2D485353 0278 string "SSH-(timeout)\X00" 6D697428 027C 74756F65 0280 0029 0284 72677055 0288 string "Upgrade: WASD-tunnel; \X00" 3A656461 028C 53415720 0290 75742D44 0294 6C656E6E 0298 00203B 029C 54544820 02A0 string " HTTP/1.0\X0D\X0A\X00" 2E312F50 02A4 000A0D30 02A8 4E4E5554 02B0 string "TUNNEL=REQUEST !AZ\X00" 523D4C45 02B4 45555145 02B8 21205453 02BC 005A41 02C0 4E4E5554 02C8 string "TUNNEL (!AZ) established\X00" 28204C45 02CC 295A4121 02D0 74736520 02D4 696C6261 02D8 64656873 02DC 00 02E0 4E4E4F43 02E8 string "CONNECT\X00" 00544345 02EC 50545448 02F8 string "HTTP\X00" 00 02FC 50545448 0300 string "HTTPS\X00" 0053 0304 003F 0308 string "?\X00" 00574152 0310 string "RAW\X00" 2F574152 0318 string "RAW/SOCKS5\X00" 4B434F53 031C 003553 0320 00303032 0328 string "200\X00" 786F7250 0330 string "Proxy-Authorization: basic \X00" 75412D79 0334 726F6874 0338 Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 198 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 74617A69 033C 3A6E6F69 0340 73616220 0344 00206369 0348 69736162 0350 string "basic:\X00" 003A63 0354 54544820 0358 string " HTTP/1.0\X00" 2E312F50 035C 0030 0360 54544820 0368 string " HTTP/1.1\X00" 2E312F50 036C 0031 0370 4E4E4F43 0378 string "CONNECT \X00" 20544345 037C 00 0380 6B636F73 0388 string "socks5://\X00" 2F3A3573 038C 002F 0390 3A776172 0398 string "raw://\X00" 002F2F 039C 70747468 03A0 string "https://\X00" 2F2F3A73 03A4 00 03A8 70747468 03B0 string "http://\X00" 002F2F3A 03B4 .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 004C5521 0010 $$5: string "!UL\X00" 44534157 0018 $$6: string "WASD_TABLE\X00" 4241545F 001C 00454C 0020 204C5521 0028 $$7: string "!UL !%D !UL\X00" 20442521 002C Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 199 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 004C5521 0030 44534157 0038 $$8: string "WASD_TABLE\X00" 4241545F 003C 00454C 0040 .psect $DATA$, CON, LCL, NOSHR, NOEXE, WRT, NOVEC, NOSHORT LogicalName: 44534157 0000 string "WASD_TUNNEL" 4E55545F 0004 4C454E 0008 00 000B data1 0x00 LnmItems: 04 0010 data1 0x04 00 0011 data1 0x00 01 0012 data1 0x01 00 0013 data1 0x00 00000000 0014 data4 LnmCount 00 0018 data1 0x00 00 0019 data1 0x00 00 001A data1 0x00 00 001B data1 0x00 FF 001C data1 0xFF 00 001D data1 0x00 02 001E data1 0x02 00 001F data1 0x00 00000000 0020 data4 LogValue 00000000 0024 data4 LogValueLength 00 0028 .repeat 12 data1 0x00 .endr LnmItems: 04 0038 data1 0x04 00 0039 data1 0x00 01 003A data1 0x01 00 003B data1 0x00 00000000 003C data4 LnmCount 00 0040 data1 0x00 00 0041 data1 0x00 00 0042 data1 0x00 00 0043 data1 0x00 FF 0044 data1 0xFF 00 0045 data1 0x00 02 0046 data1 0x02 00 0047 .repeat 21 data1 0x00 .endr LogicalName: 44534157 0060 string "WASD_TUNNEL" 4E55545F 0064 4C454E 0068 00 006B data1 0x00 .psect .sdata, CON, LCL, NOSHR, NOEXE, WRT, NOVEC, SHORT Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 200 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 WasdTableDsc: 0A 0000 data1 0x0A 00 0001 data1 0x00 0E 0002 data1 0x0E 01 0003 data1 0x01 00000000 0004 data4 _SIG_EMPTY_SET+56 LogNameDsc: 0B 0008 data1 0x0B 00 0009 data1 0x00 0E 000A data1 0x0E 01 000B data1 0x01 00000000 000C data4 LogicalName WasdTableDsc: 0A 0010 data1 0x0A 00 0011 data1 0x00 0E 0012 data1 0x0E 01 0013 data1 0x01 00000000 0014 data4 _SIG_EMPTY_SET+24 LogNameDsc: 0B 0018 data1 0x0B 00 0019 data1 0x00 0E 001A data1 0x0E 01 001B data1 0x01 00000000 001C data4 LogicalName NumberFaoDsc: 03 0020 data1 0x03 00 0021 data1 0x00 0E 0022 data1 0x0E 01 0023 data1 0x01 00000000 0024 data4 _SIG_EMPTY_SET+16 StampFaoDsc: 0B 0028 data1 0x0B 00 0029 data1 0x00 0E 002A data1 0x0E 01 002B data1 0x01 00000000 002C data4 _SIG_EMPTY_SET+40 01 0030 ExecMode: data1 0x1 // data1 1 .global ToLowerCase .section .data .type DECC$STRCMP, @function .global DECC$STRCMP .section .data .type DECC$STRLEN, @function .global DECC$STRLEN .section .data .type VmGetHeap, @function .global VmGetHeap .section .data .type strsame, @function .global strsame .section .data .type InstanceMutexLock, @function .global InstanceMutexLock .section .data .type InstanceMutexUnLock, @function .global InstanceMutexUnLock .global DECC$$GL___CTYPEA Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 201 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 .global DECC$$GA___CTYPET .section .data .type DECC$ISDIGIT, @function .global DECC$ISDIGIT .global AccountingPtr .section .data .type InstanceGblSecIncrLong, @function .global InstanceGblSecIncrLong .section .data .type MsgFor, @function .global MsgFor .section .data .type DECC$ATOL, @function .global DECC$ATOL .section .data .type ErrorGeneralOverflow, @function .global ErrorGeneralOverflow .section .data .type ErrorGeneral, @function .global ErrorGeneral .global SoftwareID .global Watch .section .data .type WatchThis, @function .global WatchThis .section .data .type ProxySocks5Reply, @function .global ProxySocks5Reply .section .data .type DECC$STRSTR, @function .global DECC$STRSTR .section .data .type ProxyNetWrite, @function .global ProxyNetWrite .section .data .type TcpIpSocketMaxQio, @function .global TcpIpSocketMaxQio .section .data .type ResponseHeader, @function .global ResponseHeader .section .data .type ResponseDictHeader, @function .global ResponseDictHeader .section .data .type NetWrite, @function .global NetWrite .section .data .type NetRead, @function .global NetRead .section .data .type ProxyNetRead, @function .global ProxyNetRead .section .data .type NetIoRead, @function .global NetIoRead .global ErrorSanityCheck .section .data Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 202 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 .type ErrorExitVmsStatus, @function .global ErrorExitVmsStatus .section .data .type BasicPrintableEncode, @function .global BasicPrintableEncode .section .data .type ProxyEnd, @function .global ProxyEnd .section .data .type SesolaNetClientBegin, @function .global SesolaNetClientBegin .section .data .type ProxyNetCloseSocket, @function .global ProxyNetCloseSocket .section .data .type OTS$MOVE, @function .global OTS$MOVE .section .data .type DECC$TXSPRINTF, @function .global DECC$TXSPRINTF .section .data .type NetIoWriteStatus, @function .global NetIoWriteStatus .global ProxyServingEnabled .section .data .type SYS$TRNLNM, @function .global SYS$TRNLNM .section .data .type DECC$ATOI, @function .global DECC$ATOI .section .data .type SysTrnLnm, @function .global SysTrnLnm .global HttpdTickSecond .global SysNamPrvMask .section .data .type SYS$SETPRV, @function .global SYS$SETPRV .section .data .type SYS$DELLNM, @function .global SYS$DELLNM .section .data .type ErrorNoticed, @function .global ErrorNoticed .section .data .type ProxyNetLocalPort, @function .global ProxyNetLocalPort .section .data .type SYS$FAO, @function .global SYS$FAO .section .data .type SYS$CRELNM, @function .global SYS$CRELNM .section .data .type ResponseHeader200, @function .global ResponseHeader200 .section .data Machine Code Listing 10-MAR-2025 11:49:26 VSI C V7.4-001-50L7J Page 203 ProxyTunnelReport 24-JAN-2025 00:06:06 WASD_ROOT:[src.httpd]proxytunnel.c;1 .type AdminPageTitle, @function .global AdminPageTitle .section .data .type FaoToNet, @function .global FaoToNet .section .data .type strzcpy, @function .global strzcpy .section .data .type FaoToBuffer, @function .global FaoToBuffer .section .data .type AdminEnd, @function .global AdminEnd 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 yTunnel ProxyTunnel.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:49:26" __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