Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 1 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 1 /*****************************************************************************/ 2 /* 3 Throttle.c 4 5 Request "throttling" is a term adopted to describe controlling the number of 6 concurrent requests that can be processing against any specified path at any 7 one time. Requests in excess of this value are then FIFO queued up to an 8 optional limit waiting for a being-processed request to conclude allowing the 9 next queued request to continue processing again. This is primarily intended 10 to limit concurrent resource-intensive script execution but could be applied to 11 *any* resource path. Here's one dictionary description. 12 13 throttle n 1: a valve that regulates the supply of fuel to the engine 14 [syn: accelerator, throttle valve] 2: a pedal that controls the throttle 15 valve; "he stepped on the gas" [syn: accelerator, accelerator pedal, gas 16 pedal, gas, gun] v 1: place limits on; "restrict the use of this parking 17 lot" [syn: restrict, restrain, trammel, limit, bound, confine] 2: squeeze 18 the throat of; "he tried to strangle his opponent" [syn: strangle, 19 strangulate] 3: reduce the air supply; of carburetors [syn: choke] 20 21 This is applied to a path (or paths) using the mapping SET THROTTLE= rule. 22 This rule allows a maximum concurrent number of requests to be specified, and 23 optionally a maximum number of queued requests. When the maximum queued 24 requests is exceeded the client receives a 503 (server too busy) status. Empty 25 or zero parameters may be included between the commas. 26 27 throttle=from[/per-user][,to,resume,busy,timeout-queue,timeout-busy] 28 throttle=n1[/u1][,n2,n3,n4,to1,to2] 29 30 o from (n1) concurrent requests before queuing begins 31 o per-user (u1) concurrent requests per (authenticated) user 32 o to (n2) queuing continues up to this value, when the queue FIFOs 33 o resume (n3) FIFO continues to this value, where queuing begins again 34 o busy (n4) absolute maximum concurrent requests before 503 "busy" 35 o t/o-queue (to1) period before a queued request is processed 36 o t/o-busy (to2) period before a queued request is 503 "busy"ed 37 38 When a throttle rule is loaded it is checked for "sensible" values. Basically 39 this means that each successive value is larger than it's predecessor. 40 41 42 DESCRIPTION 43 ----------- 44 45 o If 'from' (n1) is exceeded then begin to queue. Actively processing 46 requests does not increase, queue length does. 47 48 o If 'per-user' (u1) is non-zero the value regulates the number of 49 concurrently processing requests for any one authenticated user. Even though 50 the 'from' value may allow processing if 'per-user' would be exceeded the 51 request is queued. 52 53 o If 'to' (n2) is specified and exceeded then begin to FIFO requests from 54 the queue into processing. Queue length does not increase (new are being put 55 onto the queue, previous being taken off of the other end of the queue), but 56 number processing now begins to increase. 57 Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 2 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 58 o If 'resume' (n3) is specified this acts as an absolute control on all 59 request PROCESSING associated with the path. After this value the number of 60 requests actively being processed does not increase but queue length again 61 does. 62 63 o If 'busy' (n4) is exceeded ALWAYS immediately generate a 503 "busy". 64 65 o If 'timeout-queue' (to1) is specified this causes queued requests 66 exceeding the period to be FIFOed from the queue into processing unless the 67 'resume' (n3) limit would be exceeded. If this would be exceeded they remain 68 in the queue (potentially indefinitely, or until they FIFO off the queue, or 69 until timeout-busy (to2) occurs). 70 71 o If 'timeout-busy' (to2) is specified queued requests exceeding the period 72 are immediately terminated with a 503 "busy" status. A 'timeout-busy' only 73 begins after the expiry of any 'timeout-queue'. 74 75 76 PER-USER THROTTLING 77 ------------------- 78 If the concurrent processing value ('from') has a second, slash-delimited 79 integer, this serves to limit the number of authenticated user-associated 80 requests that can be concurrently processing. 81 82 throttle=n1/u1[,n2,n3,n4,to1,to2] 83 84 When a request is available for processing the associated remote user name is 85 checked for activity against the queue. The 'u1' (or user throttle value) is a 86 limit on that user name's concurrent processing. If it would exceed the 87 specified value the request is queued until the number of requests processing 88 drops below the 'u1' value. All other values in the throttle rule are applied 89 as for non-per-user throttling. 90 91 NOTE: the user name used for comparison purposes is the authenticated remote 92 user (same as the CGI variable value REMOTE_USER). This can be for any realm. 93 Of course the same string can be used to represent different users within 94 different authentication realms and so care should be exercised that per-user 95 throttling does not span realms otherwise unexpected (and incorrect) throttling 96 may occur for distinct users. If an unauthenticated request is matched against 97 the throttle rule (i.e. there is no authorization rule matching the request 98 path) the client has a 500 (server error) response returned. Obviously 99 per-user throttling must have a remote user name to throttle against and this 100 is a configuration issue. 101 102 103 EXAMPLES 104 -------- 105 106 1) throttle=10 107 108 Requests up to 10 are concurrently processed. When 10 is reached further 109 requests are queued to server capacity. 110 111 2) throttle=10,20 112 113 Concurrent requests to 10 are processed immediately. From 11 to 20 requests 114 are queued. After 20 all requests are queued but also result in a request Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 3 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 115 FIFOing off the queue to be processed (queue length is static, number being 116 processed increases to server capacity). 117 118 3) throttle=15,30,40 119 120 Concurrent requests up to 15 are immediately processed. Requests 16 through to 121 30 are queued, while 31 to 40 requests result in the new requests being queued 122 and waiting requests being FIFOed into processing. Concurrent requests from 41 123 onwards are again queued, in this scenario to server capacity. 124 125 4) throttle=10,20,30,40 126 127 Concurrent requests up to 10 are immediately processed. Requests 11 through 128 to 20 will be queued. Concurrent requests from 21 to 30 are queued too, but at 129 the same time waiting requests are FIFOed from the queue (resulting in 10 (n1) 130 + 10 (n3-n2) = 20 being processed). From 31 onwards requests are just queued. 131 Up to 40 concurrent requests may be against the path before all new requests 132 are immediately returned with a 503 "busy" status. With this scenario no more 133 than 20 can be concurrently processed with 20 concurrently queued. 134 135 5) throttle=10,,,30 136 137 Concurrent requests up to 10 are processed. When 10 is reached requests are 138 queued up to request 30. When request 31 arrives it is immediately given a 503 139 "busy" status. 140 141 6) throttle=10,20,30,40,00:02:00 142 143 This is basically the same as scenario 4) but with a resume-on-timeout of two 144 minutes. If there are currently 15 (or 22 or 28) requests (n1 exceeded, n3 145 still within limit) the queued requests will begin processing on timeout. 146 Should there be 32 processing (n3 has reached limit) the request will continue 147 to sit in the queue. The timeout would not be reset. 148 149 7) throttle=15,30,40,,,00:03:00 150 151 This is basically the same as scenario 3) but with a busy-on-timeout of three 152 minutes. When the timeout expires the request is immediately dequeued with a 153 503 "busy" status. 154 155 8) throttle=10/1 156 157 Concurrent requests up to 10 are processed. The requests must be of 158 authenticated users. Each authenticated user is allowed to execute at most one 159 concurrent request against this path. When 10 is reached, or if less than 10 160 users are currently executing requests, then further requests are queued to 161 server capacity. 162 163 9) throttle=10/1,,,,,00:03:00 164 165 This is basically the same as scenario 8) but with a busy-on-timeout of three 166 minutes. When the timeout expires any requests still queued against the user 167 name is immediately dequeued with a 503 "busy" status. 168 169 170 IMPLEMENTATION 171 -------------- Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 4 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 172 173 Request throttling is implemented by the MAPURL.C rule loading providing the 174 SET THROTTLE= rule parameters against the path, AS WELL AS counting the number 175 of such paths in the rules. This number is stored along with the maxima and is 176 used as an index into, as well as to set up, a dynamically allocated array of 177 structures used to support the concurrent usage tracking and queuing against 178 that particular path. 179 180 Per-user throttling is accomplished by maintaining a list of per-user data 181 structures associated with each throttle rule that is used to track the number 182 of requests currently processing and queued against each authenticated user 183 name attempting to access the path. The list is searched each time the 184 fundamental throttle structure needs to decide on processing/queueing a 185 request. This list expands dynamically against demand and is periodically 186 garbage-collected when the underlying throttle structure is quiescent. 187 188 When path mapping SETs a throttle maximum against the request's path the 189 associated index number is used to select the corresponding element of the 190 usage structure array. Simple and reasonably efficient. RULE RELOADING could 191 present a problem with this schema ... but doesn't. The array can grow in size 192 to accomodate a new rule load with additional throttles, but will never shrink. 193 (being based on an array index, not a pointer makes this possible). This 194 allows existing requests with buffered indices to (somewhat) correctly access 195 the array and be (somewhat) correctly processed. If the actual paths 196 represented by array elements change there may be some "confusion" in what the 197 processing and queuing represents. This could possibly result in some 198 resources temporarily being inappropriately throttled but this gradually 199 filters out of the functionality as associated requests conclude. There are no 200 fatal implications (that I can see, anyway) in this scheme. 201 202 203 VERSION HISTORY 204 --------------- 205 22-MAR-2014 MGD add accounting throttle totals (supports WASDmon) 206 18-SEP-2006 MGD bugfix; ThrottleReport() column alignment of 'busy' and 207 'total' percentages in second row of per-path statistics 208 04-JUL-2006 MGD use PercentOf32() for more accurate percentages 209 25-MAY-2005 MGD ThrottleControl() provide TERMINATE/RELEASE 210 selected on username or script name 211 19-MAY-2005 MGD per-user throttling 212 06-OCT-2004 MGD reset rqPathSet.ThrottleSet appropriately 213 20-JUL-2003 MGD revise reporting format 214 04-AUG-2001 MGD support module WATCHing, 215 fix end throttle call to RequestExecutePostThrottle() 216 18-MAY-2001 MGD bugfix; exceeding the point where we should start to FIFO 217 (jfp@altavista.com) 218 08-MAY-2001 MGD modify throttle parameter meanings and functionality 219 08-APR-2001 MGD add 'queue-length' to throttling 220 13-MAR-2001 MGD initial development 221 */ 222 /*****************************************************************************/ 223 X 224 #ifdef WASD_VMS_V7 X 225 #undef _VMS__V6__SOURCE X 226 #define _VMS__V6__SOURCE X 227 #undef __VMS_VER X 228 #define __VMS_VER 70000000 Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 5 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 X 229 #undef __CRTL_VER X 230 #define __CRTL_VER 70000000 X 231 #endif 232 233 /* standard C header files */ 234 #include 1149 #include 1360 #include 2490 #include 3572 #include 4045 4046 /* VMS related header files */ 4047 #include 5113 #include 9477 #include 9773 9774 /* application header files */ 9775 #include "wasd.h" 67260 67261 #define WASD_MODULE "THROTTLE" 67262 67263 /* reset the request 'path set' data */ 67264 #define REQUEST_RESET_THROTTLE(rqptr) \ 67265 rqptr->rqPathSet.ThrottleSet = false; \ 67266 rqptr->rqPathSet.ThrottleBusy = \ 67267 rqptr->rqPathSet.ThrottleFrom = \ 67268 rqptr->rqPathSet.ThrottleIndex = \ 67269 rqptr->rqPathSet.ThrottlePerUser = \ 67270 rqptr->rqPathSet.ThrottleResume = \ 67271 rqptr->rqPathSet.ThrottleTo = \ 67272 rqptr->rqPathSet.ThrottleTimeoutBusy = \ 67273 rqptr->rqPathSet.ThrottleTimeoutQueue = 0; 67274 67275 /******************/ 67276 /* global storage */ 67277 /******************/ 67278 67279 int ThrottleBusyMetricTotal, 67280 ThrottleBusyMetricTotal503, 67281 ThrottleTotal; 67282 67283 THROTTLE_STRUCT *ThrottleArray; 67284 67285 /********************/ 67286 /* external storage */ 67287 /********************/ 67288 X 67289 #ifdef DBUG X 67290 extern BOOL Debug; X 67291 #else 67292 #define Debug 0 67293 #endif 67294 67295 extern int InstanceNumber; 67296 67297 extern char ErrorSanityCheck[], 67298 ServerHostPort[], Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 6 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 67299 SoftwareID[]; 67300 67301 extern ACCOUNTING_STRUCT *AccountingPtr; 67302 extern CONFIG_STRUCT Config; 67303 extern MAPPING_META *MappingMetaPtr; 67304 extern MSG_STRUCT Msgs; 67305 extern WATCH_STRUCT Watch; 67306 67307 /*****************************************************************************/ 67308 /* 67309 (Re)initialize the global throttle structure array. 67310 67311 This will not upset any per-user structure lists pointed at because it's an 67312 effective realloc() preserving the data already present. 67313 */ 67314 67315 ThrottleInit () 67316 1 67317 { 1 67318 int idx; 1 67319 THROTTLE_STRUCT *tsptr; 1 67320 1 67321 /*********/ 1 67322 /* begin */ 1 67323 /*********/ 1 67324 1 67325 if (WATCH_MODULE(WATCH_MOD_THROTTLE)) 1 67326 WatchThis (WATCHALL, WATCH_MOD_THROTTLE, "ThrottleInit() !UL !UL", 1 67327 ThrottleTotal, MappingMetaPtr->ThrottleTotal); 1 67328 1 67329 if (ThrottleTotal < MappingMetaPtr->ThrottleTotal) 1 67330 ThrottleTotal = MappingMetaPtr->ThrottleTotal; 1 67331 1 67332 if (!ThrottleTotal) return (SS$_NORMAL); 1 67333 1 67334 ThrottleArray = (THROTTLE_STRUCT*) 1 67335 VmRealloc (ThrottleArray, ThrottleTotal*sizeof(THROTTLE_STRUCT), FI_LI); 1 67336 1 67337 /* in case this is a mapping rule reload reset all the counters */ 1 67338 ThrottleZero (); 1 67339 } 67340 67341 /*****************************************************************************/ 67342 /* 67343 Zero the accumulators associated with the throttle structure array. 67344 */ 67345 67346 ThrottleZero () 67347 1 67348 { 1 67349 int idx; 1 67350 THROTTLE_STRUCT *tsptr; 1 67351 1 67352 /*********/ 1 67353 /* begin */ 1 67354 /*********/ 1 67355 Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 7 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 1 67356 if (WATCH_MODULE(WATCH_MOD_THROTTLE)) 1 67357 WatchThis (WATCHALL, WATCH_MOD_THROTTLE, "ThrottleZero()"); 1 67358 1 67359 for (idx = 0; idx < ThrottleTotal; idx++) 2 67360 { 2 67361 tsptr = &ThrottleArray[idx]; 2 67362 tsptr->MaxProcessingCount = 2 67363 tsptr->MaxQueuedCount = 2 67364 tsptr->Total503Count = 2 67365 tsptr->TotalCount = 2 67366 tsptr->TotalFiFoCount = 2 67367 tsptr->TotalQueuedCount = 2 67368 tsptr->TotalTimeoutBusyCount = 2 67369 tsptr->TotalTimeoutQueueCount = 0; 1 67370 } 1 67371 ThrottleMonitorReset (); 1 67372 } 67373 67374 /*****************************************************************************/ 67375 /* 67376 Called by HttpdTick() each minute or when there is no more server activity. 67377 */ 67378 67379 ThrottleMonitorReset () 67380 1 67381 { 1 67382 int idx; 1 67383 THROTTLE_STRUCT *tsptr; 1 67384 THROTTLE_PER_USER_STRUCT *tpuptr, *nextuser; 1 67385 1 67386 /*********/ 1 67387 /* begin */ 1 67388 /*********/ 1 67389 1 67390 if (WATCH_MODULE(WATCH_MOD_THROTTLE)) 1 67391 WatchThis (WATCHALL, WATCH_MOD_THROTTLE, "ThrottleMonitorReset()"); 1 67392 1 67393 InstanceMutexLock (INSTANCE_MUTEX_HTTPD); 1 67394 1 67395 AccountingPtr->ThrottleBusyMetric = 1 67396 ThrottleBusyMetricTotal = 1 67397 ThrottleBusyMetricTotal503 = 0; 1 67398 AccountingPtr->CurrentThrottleProcessing[InstanceNumber] = 1 67399 AccountingPtr->CurrentThrottleQueued[InstanceNumber] = 0; 1 67400 1 67401 /* zeroing upsets the 'currently' data, recalculate just in case */ 1 67402 for (idx = 0; idx < ThrottleTotal; idx++) 2 67403 { 2 67404 tsptr = &ThrottleArray[idx]; 2 67405 AccountingPtr->CurrentThrottleProcessing[InstanceNumber] += 2 67406 tsptr->CurrentProcessingCount; 2 67407 AccountingPtr->CurrentThrottleQueued[InstanceNumber] += 2 67408 tsptr->CurrentQueuedCount; 2 67409 2 67410 /* garbage-collect per-user structures on a quiescent throttle path */ 2 67411 if (!tsptr->CurrentProcessingCount && 2 67412 !tsptr->CurrentQueuedCount) Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 8 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 3 67413 { 3 67414 tpuptr = tsptr->FirstUserPtr; 3 67415 while (tpuptr) 4 67416 { 4 67417 if (tpuptr->CurrentQueuedCount || 4 67418 tpuptr->CurrentProcessingCount) 4 67419 ErrorNoticed (NULL, SS$_BUGCHECK, ErrorSanityCheck, FI_LI); 4 67420 nextuser = tpuptr->NextUserPtr; 4 67421 VmFree (tpuptr, FI_LI); 4 67422 tpuptr = nextuser; 3 67423 } 3 67424 tsptr->FirstUserPtr = NULL; 3 67425 tsptr->CurrentPerUserCount = 0; 2 67426 } 1 67427 } 1 67428 1 67429 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 1 67430 } 67431 67432 /*****************************************************************************/ 67433 /* 67434 The request path having a maximum concurrent request limit set has resulted in 67435 a call to this function before actually processing the request. If the request 67436 is stalled by queueing then return SS$_RETRY, if it can continue immediately 67437 then return SS$_CONTINUE. See description at the beginning of this module for 67438 an explanation of the algroithm used in this function. 67439 */ 67440 67441 int ThrottleBegin (REQUEST_STRUCT *rqptr) 67442 1 67443 { 1 67444 BOOL ProcessRequest, 1 67445 QueueRequest; 1 67446 char *cptr; 1 67447 double fScratch; 1 67448 THROTTLE_STRUCT *tsptr, *root_tsptr; 1 67449 THROTTLE_PER_USER_STRUCT *tpuptr; 1 67450 1 67451 /*********/ 1 67452 /* begin */ 1 67453 /*********/ 1 67454 1 67455 if (WATCHMOD (rqptr, WATCH_MOD_THROTTLE)) 1 67456 WatchThis (WATCHITM(rqptr), WATCH_MOD_THROTTLE, "ThrottleBegin()"); 1 67457 1 67458 ThrottleBusyMetricTotal++; 1 67459 if (ThrottleBusyMetricTotal503) 2 67460 { 2 67461 /* must update the metric here to potentially reduce the metric */ 2 67462 fScratch = (double)ThrottleBusyMetricTotal503 * 100.0 / 2 67463 (double)ThrottleBusyMetricTotal; 2 67464 InstanceMutexLock (INSTANCE_MUTEX_HTTPD); 2 67465 AccountingPtr->ThrottleBusyMetric = (int)fScratch; 2 67466 if (modf (fScratch, &fScratch) >= 0.5) 2 67467 AccountingPtr->ThrottleBusyMetric++; 2 67468 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 1 67469 } Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 9 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 1 67470 1 67471 tsptr = &ThrottleArray[rqptr->rqPathSet.ThrottleIndex]; 1 67472 1 67473 if (rqptr->rqPathSet.ThrottlePerUser) 2 67474 { 2 67475 /************/ 2 67476 /* per-user */ 2 67477 /************/ 2 67478 2 67479 if (WATCHMOD (rqptr, WATCH_MOD_THROTTLE)) 2 67480 WatchThis (WATCHITM(rqptr), WATCH_MOD_THROTTLE, 2 67481 "per-user:!AZ", rqptr->RemoteUser); 2 67482 2 67483 if (!rqptr->RemoteUser[0]) 3 67484 { 3 67485 if (WATCHING (rqptr, WATCH_REQUEST)) 3 67486 WatchThis (WATCHITM(rqptr), WATCH_REQUEST, 3 67487 "THROTTLE per-user NO USER (authorization)"); 3 67488 REQUEST_RESET_THROTTLE(rqptr) 3 67489 rqptr->rqResponse.HttpStatus = 500; 3 67490 ErrorGeneral (rqptr, MsgFor(rqptr,MSG_HTTP_500), FI_LI); 3 67491 return (SS$_ABORT); 2 67492 } 2 67493 2 67494 /* note that this is being throttled on a per-user basis */ 2 67495 rqptr->ThrottlePerUser = true; 2 67496 2 67497 /* look for a per-user entry */ 2 67498 tpuptr = tsptr->FirstUserPtr; 2 67499 while (tpuptr) 3 67500 { 3 67501 if (!strcmp (rqptr->RemoteUser, tpuptr->RemoteUser)) break; 3 67502 tpuptr = tpuptr->NextUserPtr; 2 67503 } 2 67504 if (!tpuptr) 3 67505 { 3 67506 /* didn't find one, look for a currently unused entry */ 3 67507 tpuptr = tsptr->FirstUserPtr; 3 67508 while (tpuptr) 4 67509 { 4 67510 if (!tpuptr->CurrentQueuedCount && 4 67511 !tpuptr->CurrentProcessingCount) break; 4 67512 tpuptr = tpuptr->NextUserPtr; 3 67513 } 3 67514 if (tpuptr) 4 67515 { 4 67516 /* initialize the reused entry data */ 4 67517 if (WATCHMOD (rqptr, WATCH_MOD_THROTTLE)) 4 67518 WatchThis (WATCHITM(rqptr), WATCH_MOD_THROTTLE, "reused"); 4 67519 strzcpy (tpuptr->RemoteUser, 4 67520 rqptr->RemoteUser, 4 67521 sizeof(tpuptr->RemoteUser)); 4 67522 tpuptr->CurrentQueuedCount = 4 67523 tpuptr->CurrentProcessingCount = 4 67524 tpuptr->TotalCount = 0; 3 67525 } 2 67526 } Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 10 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 2 67527 if (!tpuptr) 3 67528 { 3 67529 /* didn't find one, add a new entry to the list */ 3 67530 if (WATCHMOD (rqptr, WATCH_MOD_THROTTLE)) 3 67531 WatchThis (WATCHITM(rqptr), WATCH_MOD_THROTTLE, "new"); 3 67532 3 67533 tpuptr = (THROTTLE_PER_USER_STRUCT*)VmGet 3 67534 (sizeof(THROTTLE_PER_USER_STRUCT)); 3 67535 /* insert the new entry at the head of the list */ 3 67536 tpuptr->NextUserPtr = tsptr->FirstUserPtr; 3 67537 tsptr->FirstUserPtr = tpuptr; 3 67538 /* initialize the new entry data */ 3 67539 strzcpy (tpuptr->RemoteUser, 3 67540 rqptr->RemoteUser, 3 67541 sizeof(tpuptr->RemoteUser)); 3 67542 3 67543 tsptr->CurrentPerUserCount++; 3 67544 if (tsptr->CurrentPerUserCount > tsptr->MaxPerUserCount) 3 67545 tsptr->MaxPerUserCount = tsptr->CurrentPerUserCount; 2 67546 } 2 67547 2 67548 tpuptr->TotalCount++; 1 67549 } 1 67550 else 2 67551 { 2 67552 rqptr->ThrottlePerUser = false; 2 67553 tpuptr = NULL; 1 67554 } 1 67555 1 67556 /******************/ 1 67557 /* check throttle */ 1 67558 /******************/ 1 67559 1 67560 tsptr->TotalCount++; 1 67561 1 67562 /* throttle=from[/user],to,resume,busy,t/o-queue,t/o-busy */ 1 67563 ProcessRequest = QueueRequest = false; 1 67564 1 67565 /* if it can be processed immediately */ 1 67566 if (tsptr->CurrentProcessingCount < 1 67567 rqptr->rqPathSet.ThrottleFrom) 1 67568 ProcessRequest = true; 1 67569 else 1 67570 /* if it can be queued */ 1 67571 if (!rqptr->rqPathSet.ThrottleBusy || 1 67572 tsptr->CurrentQueuedCount + 1 67573 tsptr->CurrentProcessingCount < 1 67574 rqptr->rqPathSet.ThrottleBusy) 2 67575 { 2 67576 /* queue it up, perhaps we'll also be FIFOing */ 2 67577 QueueRequest = true; 2 67578 /* if exceeding the point where we should start to FIFO */ 2 67579 if (rqptr->rqPathSet.ThrottleTo && 2 67580 tsptr->CurrentQueuedCount >= 2 67581 rqptr->rqPathSet.ThrottleTo - 2 67582 rqptr->rqPathSet.ThrottleFrom) 3 67583 { Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 11 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 3 67584 /* if still under any limit imposed on FIFO processing */ 3 67585 if (!rqptr->rqPathSet.ThrottleResume || 3 67586 tsptr->CurrentProcessingCount < 3 67587 (rqptr->rqPathSet.ThrottleResume - 3 67588 rqptr->rqPathSet.ThrottleTo) + 3 67589 rqptr->rqPathSet.ThrottleFrom) 3 67590 ProcessRequest = true; 2 67591 } 1 67592 } 1 67593 1 67594 if (WATCHING (rqptr, WATCH_REQUEST)) 2 67595 { 2 67596 /*********/ 2 67597 /* watch */ 2 67598 /*********/ 2 67599 2 67600 if (ProcessRequest && QueueRequest) 2 67601 cptr = "->QUEUE->"; 2 67602 else 2 67603 if (ProcessRequest) 2 67604 cptr = "PROCESS"; 2 67605 else 2 67606 if (QueueRequest) 2 67607 cptr = "->QUEUE"; 2 67608 else 2 67609 cptr = "BUSY"; 2 67610 2 67611 WatchThis (WATCHITM(rqptr), WATCH_REQUEST, 2 67612 "THROTTLE set:!UL,!UL,!UL,!UL current:!UL,!UL !AZ", 2 67613 rqptr->rqPathSet.ThrottleFrom, 2 67614 rqptr->rqPathSet.ThrottleTo, 2 67615 rqptr->rqPathSet.ThrottleResume, 2 67616 rqptr->rqPathSet.ThrottleBusy, 2 67617 tsptr->CurrentProcessingCount, 2 67618 tsptr->CurrentQueuedCount, 2 67619 cptr); 1 67620 } 1 67621 1 67622 if (ProcessRequest && tpuptr) 2 67623 { 2 67624 /******************/ 2 67625 /* check per-user */ 2 67626 /******************/ 2 67627 2 67628 if (tpuptr->CurrentProcessingCount >= 2 67629 rqptr->rqPathSet.ThrottlePerUser) 3 67630 { 3 67631 ProcessRequest = false; 3 67632 QueueRequest = true; 2 67633 } 2 67634 2 67635 if (WATCHING (rqptr, WATCH_REQUEST)) 3 67636 { 3 67637 if (ProcessRequest) 3 67638 cptr = "PROCESS"; 3 67639 else 3 67640 cptr = "->QUEUE"; Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 12 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 3 67641 3 67642 WatchThis (WATCHITM(rqptr), WATCH_REQUEST, 3 67643 "THROTTLE user:!AZ per:!UL current:!UL,!UL !AZ", 3 67644 tpuptr->RemoteUser, 3 67645 rqptr->rqPathSet.ThrottlePerUser, 3 67646 tpuptr->CurrentProcessingCount, 3 67647 tpuptr->CurrentQueuedCount, 3 67648 cptr); 2 67649 } 1 67650 } 1 67651 1 67652 /* this queue code section must precede the process code section */ 1 67653 if (QueueRequest) 2 67654 { 2 67655 /*********/ 2 67656 /* queue */ 2 67657 /*********/ 2 67658 2 67659 tsptr->TotalQueuedCount++; 2 67660 tsptr->CurrentQueuedCount++; 2 67661 if (tsptr->CurrentQueuedCount > tsptr->MaxQueuedCount) 2 67662 tsptr->MaxQueuedCount = tsptr->CurrentQueuedCount; 2 67663 if (tpuptr) tpuptr->CurrentQueuedCount++; 2 67664 2 67665 InstanceMutexLock (INSTANCE_MUTEX_HTTPD); 2 67666 AccountingPtr->ThrottleTotalQueued++; 2 67667 AccountingPtr->CurrentThrottleQueued[InstanceNumber]++; 2 67668 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 2 67669 2 67670 /* the list entry data becomes a pointer to the request structure */ 2 67671 rqptr->ThrottleListEntry.DataPtr = (void*)rqptr; 2 67672 2 67673 /* add entry to the tail of the waiting list (FIFO) */ 2 67674 ListAddTail (&tsptr->QueuedList, &rqptr->ThrottleListEntry, 2 67675 LIST_ENTRY_TYPE_THROTTLE); 2 67676 2 67677 if (rqptr->rqPathSet.ThrottleTimeoutQueue || 2 67678 rqptr->rqPathSet.ThrottleTimeoutBusy) 2 67679 HttpdTimerSet (rqptr, TIMER_THROTTLE, 0); 2 67680 2 67681 /* if this was not a FIFO operation then return here */ 2 67682 if (!ProcessRequest) return (SS$_RETRY); 2 67683 2 67684 /****************/ 2 67685 /* FIFO process */ 2 67686 /****************/ 2 67687 2 67688 /* release the head of the queued requests (note reuse of 'rqptr') */ 2 67689 rqptr = (REQUEST_STRUCT*)(tsptr->QueuedList.HeadPtr->DataPtr); 2 67690 ThrottleRelease (rqptr, NULL, true); 2 67691 2 67692 return (SS$_RETRY); 1 67693 } 1 67694 1 67695 /* this process code section must follow the queue code section */ 1 67696 if (ProcessRequest) 2 67697 { Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 13 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 2 67698 /***********/ 2 67699 /* process */ 2 67700 /***********/ 2 67701 2 67702 tsptr->CurrentProcessingCount++; 2 67703 if (tsptr->CurrentProcessingCount > tsptr->MaxProcessingCount) 2 67704 tsptr->MaxProcessingCount = tsptr->CurrentProcessingCount; 2 67705 if (tpuptr) tpuptr->CurrentProcessingCount++; 2 67706 2 67707 InstanceMutexLock (INSTANCE_MUTEX_HTTPD); 2 67708 AccountingPtr->ThrottleTotalProcessed++; 2 67709 AccountingPtr->CurrentThrottleProcessing[InstanceNumber]++; 2 67710 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 2 67711 2 67712 return (SS$_CONTINUE); 1 67713 } 1 67714 1 67715 /************/ 1 67716 /* too busy */ 1 67717 /************/ 1 67718 1 67719 REQUEST_RESET_THROTTLE(rqptr) 1 67720 1 67721 tsptr->Total503Count++; 1 67722 rqptr->rqResponse.HttpStatus = 503; 1 67723 ErrorGeneral (rqptr, MsgFor(rqptr,MSG_GENERAL_TOO_BUSY), FI_LI); 1 67724 1 67725 /* update to increase the metric */ 1 67726 ThrottleBusyMetricTotal503++; 1 67727 fScratch = (double)ThrottleBusyMetricTotal503 * 100.0 / 1 67728 (double)ThrottleBusyMetricTotal; 1 67729 1 67730 InstanceMutexLock (INSTANCE_MUTEX_HTTPD); 1 67731 AccountingPtr->ThrottleTotalBusy++; 1 67732 AccountingPtr->ThrottleBusyMetric = (int)fScratch; 1 67733 if (modf (fScratch, &fScratch) >= 0.5) AccountingPtr->ThrottleBusyMetric++; 1 67734 InstanceMutexUnLock (INSTANCE_MUTEX_HTTPD); 1 67735 1 67736 return (SS$_ABORT); 1 67737 } 67738 67739 /*****************************************************************************/ 67740 /* 67741 The request path having a maximum concurrent request limit set has resulted in 67742 a call to this function at the end of processing the request. Adjust the 67743 concurrent processing counter and check if there are any requests queued 67744 waiting for processing. If not just return. If there is/are then remove the 67745 front of the list (FIFO) and call the AST function address stored when it was 67746 originally queued to continue processing. See description above for further 67747 detail on "throttling" request processing. 67748 */ 67749 67750 ThrottleEnd (REQUEST_STRUCT *rqptr) 67751 1 67752 { 1 67753 int status; 1 67754 LIST_ENTRY *leptr; Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 14 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 1 67755 THROTTLE_STRUCT *tsptr; 1 67756 THROTTLE_PER_USER_STRUCT *tpuptr; 1 67757 1 67758 /*********/ 1 67759 /* begin */ 1 67760 /*********/ 1 67761 1 67762 if (WATCHMOD (rqptr, WATCH_MOD_THROTTLE)) 1 67763 WatchThis (WATCHITM(rqptr), WATCH_MOD_THROTTLE, 1 67764 "ThrottleEnd() !&F", &ThrottleEnd); 1 67765 1 67766 tsptr = &ThrottleArray[rqptr->rqPathSet.ThrottleIndex]; 1 67767 1 67768 if (rqptr->ThrottlePerUser) 2 67769 { 2 67770 /* look for the per-user entry */ 2 67771 tpuptr = tsptr->FirstUserPtr; 2 67772 while (tpuptr) 3 67773 { 3 67774 if (!strcmp (rqptr->RemoteUser, tpuptr->RemoteUser)) break; 3 67775 tpuptr = tpuptr->NextUserPtr; 2 67776 } 2 67777 if (!tpuptr) 2 67778 ErrorNoticed (rqptr, SS$_BUGCHECK, ErrorSanityCheck, FI_LI); 1 67779 } 1 67780 else 1 67781 tpuptr = NULL; 1 67782 1 67783 /* careful, these counters can get scrambled during a mapping reload */ 1 67784 if (tsptr->CurrentProcessingCount) 1 67785 tsptr->CurrentProcessingCount--; 1 67786 if (tpuptr && tpuptr->CurrentProcessingCount) 1 67787 tpuptr->CurrentProcessingCount--; 1 67788 InstanceGblSecDecrLong (&AccountingPtr->CurrentThrottleProcessing); 1 67789 1 67790 if (WATCHING (rqptr, WATCH_REQUEST)) 2 67791 { 2 67792 if (tpuptr) 2 67793 WatchThis (WATCHITM(rqptr), WATCH_REQUEST, 2 67794 "THROTTLE user:!AZ per:!UL current:!UL,!UL END", 2 67795 tpuptr->RemoteUser, 2 67796 rqptr->rqPathSet.ThrottlePerUser, 2 67797 tpuptr->CurrentProcessingCount, 2 67798 tpuptr->CurrentQueuedCount); 2 67799 2 67800 WatchThis (WATCHITM(rqptr), WATCH_REQUEST, 2 67801 "THROTTLE set:!UL,!UL,!UL,!UL current:!UL,!UL END", 2 67802 rqptr->rqPathSet.ThrottleFrom, 2 67803 rqptr->rqPathSet.ThrottleTo, 2 67804 rqptr->rqPathSet.ThrottleResume, 2 67805 rqptr->rqPathSet.ThrottleBusy, 2 67806 tsptr->CurrentProcessingCount, 2 67807 tsptr->CurrentQueuedCount); 1 67808 } 1 67809 1 67810 REQUEST_RESET_THROTTLE(rqptr) 1 67811 Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 15 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 1 67812 /* if there are no requests waiting to be made active */ 1 67813 if (!tsptr->CurrentQueuedCount) return; 1 67814 1 67815 /********************/ 1 67816 /* find one to FIFO */ 1 67817 /********************/ 1 67818 1 67819 if (rqptr->ThrottlePerUser) 2 67820 { 2 67821 /************/ 2 67822 /* per-user */ 2 67823 /************/ 2 67824 2 67825 if (WATCHMOD (rqptr, WATCH_MOD_THROTTLE)) 2 67826 WatchThis (WATCHITM(rqptr), WATCH_MOD_THROTTLE, "per-user"); 2 67827 2 67828 /* scan the list of throttled requests */ 2 67829 leptr = tsptr->QueuedList.HeadPtr; 2 67830 while (leptr) 3 67831 { 3 67832 /* note the continued REUSE of 'rqptr'! */ 3 67833 rqptr = (REQUEST_STRUCT*)leptr->DataPtr; 3 67834 3 67835 /* look for this per-user entry and check it's processing count */ 3 67836 tpuptr = tsptr->FirstUserPtr; 3 67837 while (tpuptr) 4 67838 { 4 67839 if (!strcmp (rqptr->RemoteUser, tpuptr->RemoteUser)) 5 67840 { 5 67841 /* set to null if this user will exceed processing limit */ 5 67842 if (tpuptr->CurrentProcessingCount >= 5 67843 rqptr->rqPathSet.ThrottlePerUser) tpuptr = NULL; 5 67844 /* have hit the user so drop this search */ 5 67845 break; 4 67846 } 4 67847 /* go to the next per-user entry */ 4 67848 tpuptr = tpuptr->NextUserPtr; 3 67849 } 3 67850 /* if found a user entry that could use some more processing */ 3 67851 if (tpuptr) break; 3 67852 3 67853 /* go to the next throttled request */ 3 67854 leptr = leptr->NextPtr; 2 67855 } 2 67856 if (!leptr) tpuptr = NULL; 2 67857 2 67858 if (WATCHMOD (rqptr, WATCH_MOD_THROTTLE)) 2 67859 WatchThis (WATCHITM(rqptr), WATCH_MOD_THROTTLE, "!&B!-!&? \r\r!AZ", 2 67860 tpuptr, tpuptr ? rqptr->RemoteUser : ""); 2 67861 2 67862 /**************************/ 2 67863 /* if none could be found */ 2 67864 /**************************/ 2 67865 2 67866 if (!tpuptr) return; 1 67867 } 1 67868 else Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 16 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 2 67869 { 2 67870 /* just FIFO the head of list, note the REUSE of 'rqptr'! */ 2 67871 rqptr = (REQUEST_STRUCT*)(tsptr->QueuedList.HeadPtr->DataPtr); 2 67872 tpuptr = NULL; 1 67873 } 1 67874 1 67875 /**************/ 1 67876 /* release it */ 1 67877 /**************/ 1 67878 1 67879 ListRemove (&tsptr->QueuedList, &rqptr->ThrottleListEntry); 1 67880 1 67881 /* if no process elbow-room (should only be after sysadmin intervention) */ 1 67882 if (rqptr->rqPathSet.ThrottleResume && 1 67883 tsptr->CurrentProcessingCount >= 1 67884 (rqptr->rqPathSet.ThrottleResume - 1 67885 rqptr->rqPathSet.ThrottleTo) + 1 67886 rqptr->rqPathSet.ThrottleFrom) return; 1 67887 1 67888 /* release the head of the queued requests (FIFO) */ 1 67889 ThrottleRelease (rqptr, tpuptr, true); 1 67890 } 67891 67892 /*****************************************************************************/ 67893 /* 67894 The HTTPd supervisor has called this function on a throttle timeout. If it's a 67895 "process" timeout then, then check if there is an absolute limit on 67896 concurrently processed requests, if not then just send it on it's way to the 67897 previously buffered next function, otherwise it's a 503 "busy". If it a "busy" 67898 timeout generate a 503 "busy" and the send it to request run-down! 67899 */ 67900 67901 ThrottleTimeout (REQUEST_STRUCT *rqptr) 67902 1 67903 { 1 67904 LIST_ENTRY *eptr; 1 67905 THROTTLE_STRUCT *tsptr; 1 67906 1 67907 /*********/ 1 67908 /* begin */ 1 67909 /*********/ 1 67910 1 67911 if (WATCHMOD (rqptr, WATCH_MOD_THROTTLE)) 1 67912 WatchThis (WATCHITM(rqptr), WATCH_MOD_THROTTLE, "ThrottleTimeout()"); 1 67913 1 67914 tsptr = &ThrottleArray[rqptr->rqPathSet.ThrottleIndex]; 1 67915 1 67916 if (WATCHING (rqptr, WATCH_REQUEST)) 1 67917 WatchThis (WATCHITM(rqptr), WATCH_REQUEST, "THROTTLE timeout !AZ", 1 67918 rqptr->rqPathSet.ThrottleTimeoutQueue ? "QUEUE" : "BUSY"); 1 67919 1 67920 if (rqptr->rqPathSet.ThrottleTimeoutQueue) 2 67921 { 2 67922 /**********************/ 2 67923 /* timeout to process */ 2 67924 /**********************/ 2 67925 Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 17 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 2 67926 tsptr->TotalTimeoutQueueCount++; 2 67927 2 67928 /* if to be processed but limited by absolute maximum on processing */ 2 67929 if (rqptr->rqPathSet.ThrottleResume && 2 67930 tsptr->CurrentProcessingCount >= 2 67931 (rqptr->rqPathSet.ThrottleResume - 2 67932 rqptr->rqPathSet.ThrottleTo) + 2 67933 rqptr->rqPathSet.ThrottleFrom) 3 67934 { 3 67935 /* can't begin processing, just sit and wait on the queue */ 3 67936 if (rqptr->rqPathSet.ThrottleTimeoutBusy) 4 67937 { 4 67938 /* this time do not use the process timeout */ 4 67939 rqptr->rqPathSet.ThrottleTimeoutQueue = 0; 4 67940 HttpdTimerSet (rqptr, TIMER_THROTTLE, 0); 3 67941 } 3 67942 else 3 67943 HttpdTimerSet (rqptr, TIMER_OUTPUT, 0); 3 67944 3 67945 return; 2 67946 } 2 67947 2 67948 /* remove the entry from the queue to begin processing */ 2 67949 ThrottleRelease (rqptr, NULL, true); 2 67950 2 67951 return; 1 67952 } 1 67953 1 67954 /*******************/ 1 67955 /* timeout to busy */ 1 67956 /*******************/ 1 67957 1 67958 tsptr->TotalTimeoutBusyCount++; 1 67959 1 67960 /* remove the entry from the queue to be terminated with 503 "busy" */ 1 67961 ThrottleRelease (rqptr, NULL, false); 1 67962 } 67963 67964 /*****************************************************************************/ 67965 /* 67966 Remove the request specified by 'rqptr' from the appropriate throttled path's 67967 queue. If 'ToProcess' declare an AST to recommence it's processing. If to 67968 be taken off the queue and discarded generate a 503 "busy" status explicitly 67969 call RequestEnd() as an AST. By the time this function is called it has been 67970 decided whether to process or terminate the particular request. 67971 */ 67972 67973 ThrottleRelease 67974 ( 67975 REQUEST_STRUCT *rqptr, 67976 THROTTLE_PER_USER_STRUCT *tpuptr, 67977 BOOL ToProcess 67978 ) 1 67979 { 1 67980 THROTTLE_STRUCT *tsptr; 1 67981 1 67982 /*********/ Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 18 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 1 67983 /* begin */ 1 67984 /*********/ 1 67985 1 67986 if (WATCHMOD (rqptr, WATCH_MOD_THROTTLE)) 1 67987 WatchThis (WATCHITM(rqptr), WATCH_MOD_THROTTLE, "ThrottleRelease()"); 1 67988 1 67989 tsptr = &ThrottleArray[rqptr->rqPathSet.ThrottleIndex]; 1 67990 1 67991 /* ThrottleEnd() can supply the 'tpuptr' saving a search here */ 1 67992 if (!tpuptr && rqptr->ThrottlePerUser) 2 67993 { 2 67994 /* look for a per-user entry */ 2 67995 tpuptr = tsptr->FirstUserPtr; 2 67996 while (tpuptr) 3 67997 { 3 67998 if (!strcmp (rqptr->RemoteUser, tpuptr->RemoteUser)) break; 3 67999 tpuptr = tpuptr->NextUserPtr; 2 68000 } 2 68001 if (!tpuptr) 2 68002 ErrorNoticed (rqptr, SS$_BUGCHECK, ErrorSanityCheck, FI_LI); 1 68003 } 1 68004 1 68005 if (WATCHING (rqptr, WATCH_REQUEST)) 2 68006 { 2 68007 if (tpuptr) 2 68008 WatchThis (WATCHITM(rqptr), WATCH_REQUEST, 2 68009 "THROTTLE user:!AZ per:!UL current:!UL,!UL !AZ", 2 68010 tpuptr->RemoteUser, 2 68011 rqptr->rqPathSet.ThrottlePerUser, 2 68012 tpuptr->CurrentProcessingCount, 2 68013 tpuptr->CurrentQueuedCount, 2 68014 ToProcess ? "PROCESS" : "BUSY"); 2 68015 2 68016 WatchThis (WATCHITM(rqptr), WATCH_REQUEST, 2 68017 "THROTTLE set:!UL,!UL,!UL,!UL current:!UL,!UL !AZ", 2 68018 rqptr->rqPathSet.ThrottleFrom, 2 68019 rqptr->rqPathSet.ThrottleTo, 2 68020 rqptr->rqPathSet.ThrottleResume, 2 68021 rqptr->rqPathSet.ThrottleBusy, 2 68022 tsptr->CurrentProcessingCount, 2 68023 tsptr->CurrentQueuedCount, 2 68024 ToProcess ? "PROCESS" : "BUSY"); 1 68025 } 1 68026 1 68027 ListRemove (&tsptr->QueuedList, &rqptr->ThrottleListEntry); 1 68028 1 68029 /* careful, these counters can get scrambled during a mapping reload */ 1 68030 if (tsptr->CurrentQueuedCount) tsptr->CurrentQueuedCount--; 1 68031 if (tpuptr && tpuptr->CurrentQueuedCount) tpuptr->CurrentQueuedCount--; 1 68032 InstanceGblSecDecrLong (&AccountingPtr->CurrentThrottleQueued); 1 68033 1 68034 if (ToProcess) 2 68035 { 2 68036 /***********/ 2 68037 /* process */ 2 68038 /***********/ 2 68039 Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 19 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 2 68040 /* declare an AST for the next function to be performed */ 2 68041 SysDclAst (&RequestExecutePostThrottle, rqptr); 2 68042 2 68043 tsptr->TotalFiFoCount++; 2 68044 tsptr->CurrentProcessingCount++; 2 68045 if (tsptr->CurrentProcessingCount > tsptr->MaxProcessingCount) 2 68046 tsptr->MaxProcessingCount = tsptr->CurrentProcessingCount; 2 68047 if (tpuptr) tpuptr->CurrentProcessingCount++; 2 68048 InstanceGblSecIncrLong (&AccountingPtr->CurrentThrottleProcessing); 1 68049 } 1 68050 else 2 68051 { 2 68052 /********/ 2 68053 /* busy */ 2 68054 /********/ 2 68055 2 68056 REQUEST_RESET_THROTTLE(rqptr) 2 68057 2 68058 tsptr->Total503Count++; 2 68059 rqptr->rqResponse.HttpStatus = 503; 2 68060 ErrorGeneral (rqptr, MsgFor(rqptr,MSG_GENERAL_TOO_BUSY), FI_LI); 2 68061 2 68062 /* declare an AST to run-down the request */ 2 68063 SysDclAst (&RequestEnd, rqptr); 1 68064 } 1 68065 1 68066 /* reinitialize the timer for output */ 1 68067 HttpdTimerSet (rqptr, TIMER_OUTPUT, 0); 1 68068 1 68069 /* indicate it's no longer queued */ 1 68070 rqptr->ThrottleListEntry.DataPtr = NULL; 1 68071 } 68072 68073 /*****************************************************************************/ 68074 /* 68075 Scan through all throttle structures looking for those with queued requests. 68076 Either release all the queued requests for processing, or just release the one 68077 with the specified connect number. This "release" is completely unconditional. 68078 That is a non-extreme-prejudice release sets requests processing regardless of 68079 any processing limitations in the throttle rules!! Return the number of 68080 dequeued requests. 68081 */ 68082 68083 int ThrottleControl 68084 ( 68085 BOOL WithExtremePrejudice, 68086 int ConnectNumber, 68087 char *RemoteUser, 68088 char *ScriptName 68089 ) 1 68090 { 1 68091 int idx, status, 1 68092 DequeuedCount; 1 68093 LIST_ENTRY *leptr; 1 68094 REQUEST_STRUCT *rqptr; 1 68095 THROTTLE_STRUCT *tsptr; 1 68096 Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 20 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 1 68097 /*********/ 1 68098 /* begin */ 1 68099 /*********/ 1 68100 1 68101 if (WATCH_MODULE(WATCH_MOD_THROTTLE)) 1 68102 WatchThis (WATCHALL, WATCH_MOD_THROTTLE, 1 68103 "ThrottleControl() !UL !&Z !&Z", 1 68104 WithExtremePrejudice, RemoteUser, ScriptName); 1 68105 1 68106 DequeuedCount = 0; 1 68107 for (idx = 0; idx < MappingMetaPtr->ThrottleTotal; idx++) 2 68108 { 2 68109 tsptr = &ThrottleArray[idx]; 2 68110 if (!tsptr->CurrentQueuedCount) continue; 2 68111 2 68112 /* scan through all entries on this list */ 2 68113 leptr = tsptr->QueuedList.HeadPtr; 2 68114 while (leptr) 3 68115 { 3 68116 rqptr = (REQUEST_STRUCT*)leptr->DataPtr; 3 68117 /* IMMEDIATELY get a pointer to the next in the list */ 3 68118 leptr = leptr->NextPtr; 3 68119 3 68120 /* if we're looking for a particular request and this is not it */ 3 68121 if (ConnectNumber && rqptr->ConnectNumber != ConnectNumber) 3 68122 continue; 3 68123 3 68124 /* if only purging scripts running as a specific VMS user */ 3 68125 if (RemoteUser && RemoteUser[0]) 3 68126 if (!strsame (rqptr->RemoteUser, RemoteUser, -1)) 3 68127 continue; 3 68128 3 68129 /* if only purging matching scripts */ 3 68130 if (ScriptName && ScriptName[0]) 3 68131 if (!StringMatch (NULL, rqptr->ScriptName, ScriptName)) 3 68132 continue; 3 68133 3 68134 if (WithExtremePrejudice) 3 68135 ThrottleRelease (rqptr, NULL, false); 3 68136 else 3 68137 ThrottleRelease (rqptr, NULL, true); 3 68138 3 68139 DequeuedCount++; 3 68140 3 68141 /* if dequeuing just the one request then return now */ 3 68142 if (ConnectNumber) return (DequeuedCount); 2 68143 } 1 68144 } 1 68145 1 68146 if (WATCH_CAT && Watch.Category) 1 68147 WatchThis (WATCHALL, WATCH_REQUEST, "THROTTLE control !AZed !UL", 1 68148 WithExtremePrejudice ? "terminat" : "releas", DequeuedCount); 1 68149 1 68150 return (DequeuedCount); 1 68151 } 68152 68153 /*****************************************************************************/ Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 21 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 68154 /* 68155 Provide a report on the current state and history of any throttled paths. 68156 */ 68157 68158 ThrottleReport (REQUEST_STRUCT *rqptr) 68159 1 68160 { 1 68161 static char BeginPage [] = 1 68162 "

\n\ 1 68163 \ 1 68164 \ 1 68165 \ 1 68167 \ 1 68169 \ 1 68170 \ 1 68171 \ 1 68172 \ 1 68173 \ 1 68174 \ 1 68175 \ 1 68177 \ 1 68178 \ 1 68179 \ 1 68180 \ 1 68181 \ 1 68182 \ 1 68184 \ 1 68185 \ 1 68187 \ 1 68188 \ 1 68189 \n"; 1 68190 1 68191 static char ThrottlePathFao [] = 1 68192 "\ 1 68193 \ 1 68194 \ 1 68195 \ 1 68196 \ 1 68198 \ 1 68199 \ 1 68200 \ 1 68201 \ 1 68202 \ 1 68203 \ 1 68205 \ 1 68206 \ 1 68208 \ 1 68209 \n\ 1 68210 \ Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 22 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 1 68211 \ 1 68212 \ 1 68213 \ 1 68214 \ 1 68215 \ 1 68216 \ 1 68217 \ 1 68218 \ 1 68219 \ 1 68220 \ 1 68221 \n"; 1 68222 1 68223 static char ThrottleBeginPerUserFao [] = 1 68224 "\n"; 1 68230 1 68231 static char ButtonsFao [] = 1 68232 "
Queued \ 1 68166 Processing \ 1 68168 Per-User
Path / UserTotalBusy \ 1 68176 TotalCurMaxFIFOT/OqT/Ob \ 1 68183 CurMax \ 1 68186 CurMax 
!3ZL!AZ throttle=!UL!&@,!UL,!UL,!UL,!AZ,!AZ!&L!&L \ 1 68197 !&L!&L!&L!&L!&L!&L \ 1 68204 !&L!&L \ 1 68207 !&L!&L
!UL%!UL%!UL%!UL%!UL%
"; 1 68225 1 68226 static char ThrottlePerUserFao [] = 1 68227 "!AZ !UL,!UL,!UL  \n"; 1 68228 1 68229 static char ThrottleEndPerUserFao [] = "
\n\ 1 68233

\n\ 1 68234 *throttle=n1[/u1],n2,n3,n4,to1,to2\n\ 1 68235
\n\ 1 68236 n1, concurrent requests before queuing\n\ 1 68237
u1, per-user concurrent requests before queuing\n\ 1 68238
n2, concurrent requests before FIFO processing\n\ 1 68239
n3, concurrent requests before FIFO processing ceases again\n\ 1 68240
n4, concurrent requests before immediate "busy"\n\ 1 68241
to1, maximum period queued before processing \ 1 68242 (if not limited by n3)\n\ 1 68243
to2, maximum period queued before "busy" \ 1 68244 (from expiry of any to1)\n\ 1 68245
\n\ 1 68246 **all percentages are of path total\n\ 1 68247
***user data is queued, processing, total\n\ 1 68248
\n\ 1 68249 \n\ 1 68250 \n\ 1 68263 \n\ 1 68266
\n\ 1 68251
\n\ 1 68252 \n\ 1 68253
\n\ 1 68254
\n\ 1 68255
\n\ 1 68256 \n\ 1 68257
\n\ 1 68258
\n\ 1 68259
\n\ 1 68260 \n\ 1 68261
\n\ 1 68262
\n\ 1 68264
Requests\n\ 1 68265
\n\ 1 68267 !AZ\ Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 23 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 1 68268 \n\ 1 68269 \n\ 1 68270 \n"; 1 68271 1 68272 int idx, status; 1 68273 unsigned long *vecptr; 1 68274 unsigned long FaoVector [32]; 1 68275 MAP_RULE_META EmptyRuleJustInCase; 1 68276 MAP_RULE_META *mrptr; 1 68277 THROTTLE_STRUCT *tsptr; 1 68278 THROTTLE_PER_USER_STRUCT *tpuptr; 1 68279 1 68280 /*********/ 1 68281 /* begin */ 1 68282 /*********/ 1 68283 1 68284 if (WATCHMOD (rqptr, WATCH_MOD_THROTTLE)) 1 68285 WatchThis (WATCHITM(rqptr), WATCH_MOD_THROTTLE, 1 68286 "ThrottleReport() !UL", MappingMetaPtr->ThrottleTotal); 1 68287 1 68288 AdminPageTitle (rqptr, "Throttle Report", BeginPage); 1 68289 1 68290 for (idx = 0; idx < MappingMetaPtr->ThrottleTotal; idx++) 2 68291 { 2 68292 tsptr = &ThrottleArray[idx]; 2 68293 2 68294 /* get details of the throttle rule using the index number */ 2 68295 if (!(mrptr = MapUrl_ThrottleRule (idx))) 3 68296 { 3 68297 memset (mrptr = &EmptyRuleJustInCase, 0, sizeof(MAP_RULE_META)); 3 68298 EmptyRuleJustInCase.TemplatePtr = "?"; 2 68299 } 2 68300 2 68301 vecptr = FaoVector; 2 68302 *vecptr++ = idx + 1; 2 68303 *vecptr++ = mrptr->TemplatePtr; 2 68304 *vecptr++ = mrptr->mpPathSet.ThrottleFrom; 2 68305 if (mrptr->mpPathSet.ThrottlePerUser) 3 68306 { 3 68307 *vecptr++ = "/!UL"; 3 68308 *vecptr++ = mrptr->mpPathSet.ThrottlePerUser; 2 68309 } 2 68310 else 2 68311 *vecptr++ = ""; 2 68312 *vecptr++ = mrptr->mpPathSet.ThrottleTo; 2 68313 *vecptr++ = mrptr->mpPathSet.ThrottleResume; 2 68314 *vecptr++ = mrptr->mpPathSet.ThrottleBusy; 2 68315 *vecptr++ = MetaConShowSeconds (rqptr, 2 68316 mrptr->mpPathSet.ThrottleTimeoutQueue); 2 68317 *vecptr++ = MetaConShowSeconds (rqptr, 2 68318 mrptr->mpPathSet.ThrottleTimeoutBusy); 2 68319 *vecptr++ = tsptr->TotalCount; 2 68320 *vecptr++ = tsptr->Total503Count; 2 68321 *vecptr++ = tsptr->TotalQueuedCount; 2 68322 *vecptr++ = tsptr->CurrentQueuedCount; 2 68323 *vecptr++ = tsptr->MaxQueuedCount; 2 68324 *vecptr++ = tsptr->TotalFiFoCount; Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 24 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 2 68325 *vecptr++ = tsptr->TotalTimeoutQueueCount; 2 68326 *vecptr++ = tsptr->TotalTimeoutBusyCount; 2 68327 *vecptr++ = tsptr->CurrentProcessingCount; 2 68328 *vecptr++ = tsptr->MaxProcessingCount; 2 68329 *vecptr++ = tsptr->CurrentPerUserCount; 2 68330 *vecptr++ = tsptr->MaxPerUserCount; 2 68331 *vecptr++ = PercentOf32(tsptr->Total503Count,tsptr->TotalCount); 2 68332 *vecptr++ = PercentOf32(tsptr->TotalQueuedCount,tsptr->TotalCount); 2 68333 *vecptr++ = PercentOf32(tsptr->TotalFiFoCount,tsptr->TotalCount); 2 68334 *vecptr++ = PercentOf32(tsptr->TotalTimeoutQueueCount,tsptr->TotalCount); 2 68335 *vecptr++ = PercentOf32(tsptr->TotalTimeoutBusyCount,tsptr->TotalCount); 2 68336 2 68337 FaoCheck (sizeof(FaoVector), &FaoVector, vecptr, FI_LI); 2 68338 status = FaolToNet (rqptr, ThrottlePathFao, &FaoVector); 2 68339 if (VMSnok (status)) 2 68340 ErrorNoticed (rqptr, status, NULL, FI_LI); 2 68341 2 68342 /* next throttle entry if there is no per-user list associated */ 2 68343 if (!tsptr->FirstUserPtr) continue; 2 68344 2 68345 FaolToNet (rqptr, ThrottleBeginPerUserFao, NULL); 2 68346 tpuptr = tsptr->FirstUserPtr; 2 68347 while (tpuptr) 3 68348 { 3 68349 vecptr = FaoVector; 3 68350 *vecptr++ = tpuptr->RemoteUser; 3 68351 *vecptr++ = tpuptr->CurrentQueuedCount; 3 68352 *vecptr++ = tpuptr->CurrentProcessingCount; 3 68353 *vecptr++ = tpuptr->TotalCount; 3 68354 FaoCheck (sizeof(FaoVector), &FaoVector, vecptr, FI_LI); 3 68355 status = FaolToNet (rqptr, ThrottlePerUserFao, &FaoVector); 3 68356 if (VMSnok (status)) 3 68357 ErrorNoticed (rqptr, status, NULL, FI_LI); 3 68358 3 68359 tpuptr = tpuptr->NextUserPtr; 2 68360 } 2 68361 FaolToNet (rqptr, ThrottleEndPerUserFao, NULL); 1 68362 } 1 68363 1 68364 if (!idx) 1 68365 FaoToNet (rqptr, 1 68366 "(none)\n", 1 68367 NULL); 1 68368 1 68369 vecptr = FaoVector; 1 68370 *vecptr++ = ADMIN_CONTROL_THROTTLE_ZERO; 1 68371 *vecptr++ = ADMIN_CONTROL_THROTTLE_RELEASE; 1 68372 *vecptr++ = ADMIN_CONTROL_THROTTLE_TERMINATE; 1 68373 *vecptr++ = ADMIN_REPORT_REQUEST_THROTTLE; 1 68374 *vecptr++ = AdminRefresh (rqptr); 1 68375 1 68376 FaoCheck (sizeof(FaoVector), &FaoVector, vecptr, FI_LI); 1 68377 status = FaolToNet (rqptr, ButtonsFao, &FaoVector); 1 68378 if (VMSnok (status)) ErrorNoticed (rqptr, status, NULL, FI_LI); 1 68379 1 68380 rqptr->rqResponse.PreExpired = PRE_EXPIRE_ADMIN; 1 68381 ResponseHeader200 (rqptr, "text/html", &rqptr->NetWriteBufferDsc); Source Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 25 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 1 68382 1 68383 AdminEnd (rqptr); 1 68384 } 68385 68386 /*****************************************************************************/ 68387 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 26 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 .psect $CODE$, CON, LCL, SHR, EXE, NOWRT, NOVEC, NOSHORT .proc ThrottleInit .align 32 .global ThrottleInit ThrottleInit: // 067315 { .mii 002C00B1EA40 0000 alloc r41 = rspfs, 0, 11, 4, 0 012000100200 0001 add r8 = @ltoffx(MappingMetaPtr), // r8 = @ltoffx(MappingMetaPtr), r1 // 067329 gp 012000100800 0002 add r32 = @ltoffx(ThrottleTotal), // r32 = @ltoffx(ThrottleTotal), r1 gp ;; } { .mmi 0080C0800200 0010 ld8.mov r8 = [r8], MappingMetaPtr 0080C2000800 0011 ld8.mov r32 = [r32], ThrottleTotal 000188000A00 0012 mov r40 = rp ;; // r40 = br0 // 067315 } { .mmi 010800100A80 0020 mov r42 = gp ;; // r42 = r1 008080800200 0021 ld4 r8 = MappingMetaPtr // r8 = [r8] // 067329 000008000000 0022 nop.i 0 } { .mmi 008082000240 0030 ld4 r9 = [r32] ;; 000008000000 0031 nop.m 0 0000B0800200 0032 sxt4 r8 = r8 ;; } { .mmi 010800810200 0040 adds r8 = 8, r8 ;; 008080800200 0041 ld4 r8 = [r8] 000008000000 0042 nop.i 0 ;; } { .mfb 018440812000 0050 cmp4.lt pr0, pr8 = r9, r8 000008000000 0051 nop.f 0 008600004008 0052 (pr8) br.cond.dpnt.many L$29 ;; } { .mfi 008C82010000 0060 st4 [r32] = r8 // 067330 000008000000 0061 nop.f 0 000008000000 0062 nop.i 0 ;; } 0070 L$29: { .mmi 0080820002C0 0070 ld4 r11 = [r32] ;; // 067332 01C448B00000 0071 cmp4.eq pr0, pr9 = r0, r11 000008000000 0072 nop.i 0 } { .mfb 000008000000 0080 nop.m 0 000008000000 0081 nop.f 0 008600004009 0082 (pr9) br.cond.dpnt.many L$30 ;; } { .mfb 012000002200 0090 mov r8 = 1 000008000000 0091 nop.f 0 008000131000 0092 br.sptk.many L$32 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 27 ThrottleInit 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } 00A0 L$30: { .mii 012000100840 00A0 add r33 = @ltoffx(ThrottleArray), // r33 = @ltoffx(ThrottleArray), r1 // 067335 gp 012000100B80 00A1 add out3 = @ltoffx($LITERAL$), gp // r46 = @ltoffx($LITERAL$), r1 00A7CB9162C0 00A2 shl r11 = r11, 6 ;; } { .mmi 0080C2100840 00B0 ld8.mov r33 = [r33], ThrottleArray 0080C2E00B40 00B1 ld8.mov out2 = [r46], $LITERAL$ 012000008640 00B2 mov ai = 4 ;; // r25 = 4 } { .mib 012010084B80 00C0 mov out3 = 322 // r46 = 322 0000B0B00B00 00C1 sxt4 out1 = r11 // r44 = r11 004000000000 00C2 nop.b 0 ;; } { .mmi 008082100AC0 00D0 ld4 out0 = [r33] ;; // r43 = [r33] 000008000000 00D1 nop.m 0 0000B2B00AC0 00D2 sxt4 out0 = out0 // r43 = r43 } { .mfb 000008000000 00E0 nop.m 0 000008000000 00E1 nop.f 0 00A000001000 00E2 br.call.sptk.many rp = VmRealloc ;; // br0 = VmRealloc } { .mii 008082000800 00F0 ld4 r32 = [r32] // 067359 010800000880 00F1 mov idx = r0 // r34 = r0 010802A00040 00F2 mov gp = r42 ;; // r1 = r42 // 067335 } { .mmi 018C32000000 0100 cmp4.lt pr0, pr6 = 0, r32 // 067359 008C82110000 0101 st4 [r33] = r8 // 067334 010800858200 0102 adds r8 = 44, r8 } { .mfb 000008000000 0110 nop.m 0 000008000000 0111 nop.f 0 00860011E006 0112 (pr6) br.cond.dpnt.many L$35 ;; // 067359 } { .mmi 0119FA0FA8C0 0120 adds r35 = -3, r32 ;; 018C5A300000 0121 cmp4.lt pr0, pr11 = 0, r35 018442340240 0122 cmp4.lt pr9, pr8 = r32, r35 ;; } { .mfb 01C20000024B 0130 (pr11) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 0131 nop.f 0 0086000DC009 0132 (pr9) br.cond.dpnt.many L$41 ;; } 0140 L$39: { .mii 010800000980 0140 mov r38 = r0 // 067369 00A068800300 0141 tbit.z pr12, pr13 = r8, 0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 28 ThrottleInit 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 010800800940 0142 mov r37 = r8 } { .mmi 0119F88F80C0 0150 adds r3 = -4, r8 ;; // 067368 00AC0254C04D 0151 (pr13) st1 [r37] = r38, 1 // 067369 00A5BA62098D 0152 (pr13) shr.u r38 = r38, 8 } { .mii 010800000240 0160 mov r9 = r0 // 067368 0119F88E82C0 0161 adds r11 = -12, r8 ;; // 067367 00A078300380 0162 tbit.z pr14, pr15 = r3, 0 // 067368 } { .mii 010800000440 0170 mov r17 = r0 // 067367 0119F88F04C0 0171 adds r19 = -8, r8 // 067366 010800000500 0172 mov r20 = r0 ;; } { .mii 00AC4254C080 0180 st2 [r37] = r38, 2 // 067369 00A57A640980 0181 shr.u r38 = r38, 16 0119F88E0580 0182 adds r22 = -16, r8 // 067365 } { .mmi 0108000005C0 0190 mov r23 = r0 ;; 0119F88D8640 0191 adds ai = -20, r8 // r25 = -20, r8 // 067364 00A038B00180 0192 tbit.z pr6, pr7 = r11, 0 // 067367 } { .mii 010800000680 01A0 mov r26 = r0 // 067364 0119F88D0700 01A1 adds r28 = -24, r8 ;; // 067363 00A059300280 01A2 tbit.z pr10, pr11 = r19, 0 // 067366 } { .mmi 008C4254C00C 01B0 (pr12) st2 [r37] = r38 // 067369 008C0254C00D 01B1 (pr13) st1 [r37] = r38 010800000740 01B2 mov r29 = r0 ;; // 067363 } { .mii 00AC0031204F 01C0 (pr15) st1 [r3] = r9, 1 // 067368 00A5B892024F 01C1 (pr15) shr.u r9 = r9, 8 0119F88C87C0 01C2 adds r31 = -28, r8 // 067362 } { .mmi 010800000AC0 01D0 mov out0 = r0 ;; // r43 = r0 010800880B40 01D1 adds out2 = 64, r8 // r45 = 64, r8 // 067369 00A049600200 01D2 tbit.z pr8, pr9 = r22, 0 // 067365 } { .mii 010800000B80 01E0 mov out3 = r0 // r46 = r0 // 067369 010800878900 01E1 adds r36 = 60, r8 ;; // 067368 00A069900300 01E2 tbit.z pr12, pr13 = ai, 0 // pr12, pr13 = r25, 0 // 067364 } { .mii 00AC40312080 01F0 st2 [r3] = r9, 2 // 067368 010800000940 01F1 mov r37 = r0 010800870280 01F2 adds r10 = 56, r8 ;; // 067366 } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 29 ThrottleInit 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mii 010800860480 0200 adds r18 = 48, r8 // 067365 00A578940240 0201 shr.u r9 = r9, 16 // 067368 010800858540 0202 adds r21 = 44, r8 // 067364 } { .mmi 010800850600 0210 adds r24 = 40, r8 ;; // 067363 008C4031200E 0211 (pr14) st2 [r3] = r9 // 067368 0108008486C0 0212 adds r27 = 36, r8 // 067362 } { .mii 008C0031200F 0220 (pr15) st1 [r3] = r9 // 067368 0108008680C0 0221 adds r3 = 52, r8 ;; // 067367 00A079C00380 0222 tbit.z pr14, pr15 = r28, 0 // 067363 } { .mii 00AC00B22047 0230 (pr7) st1 [r11] = r17, 1 // 067367 010800000240 0231 mov r9 = r0 010808800780 0232 adds r30 = 128, r8 ;; // 067369 } { .mii 0108008F8B00 0240 adds out1 = 124, r8 // r44 = 124, r8 // 067368 00A5B9120447 0241 (pr7) shr.u r17 = r17, 8 // 067367 0108008E8840 0242 adds r33 = 116, r8 } { .mmi 010802208880 0250 adds r34 = 4, r34 ;; // 067359 00AC40B22080 0251 st2 [r11] = r17, 2 // 067367 00A579140440 0252 shr.u r17 = r17, 16 ;; } { .mmi 008C40B22006 0260 (pr6) st2 [r11] = r17 008C00B22007 0261 (pr7) st1 [r11] = r17 00A039F00180 0262 tbit.z pr6, pr7 = r31, 0 ;; // 067362 } { .mii 00AC0132804B 0270 (pr11) st1 [r19] = r20, 1 // 067366 00A5B942050B 0271 (pr11) shr.u r20 = r20, 8 0108000002C0 0272 mov r11 = r0 } { .mmi 0108008D8440 0280 adds r17 = 108, r8 ;; // 067364 00AC41328080 0281 st2 [r19] = r20, 2 // 067366 00A579440500 0282 shr.u r20 = r20, 16 ;; } { .mmi 008C4132800A 0290 (pr10) st2 [r19] = r20 008C0132800B 0291 (pr11) st1 [r19] = r20 00A05AD00280 0292 tbit.z pr10, pr11 = out2, 0 ;; // pr10, pr11 = r45, 0 // 067369 } { .mii 00AC0162E049 02A0 (pr9) st1 [r22] = r23, 1 // 067365 00A5B97205C9 02A1 (pr9) shr.u r23 = r23, 8 0108000004C0 02A2 mov r19 = r0 } { .mmi 0108008D0500 02B0 adds r20 = 104, r8 ;; // 067363 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 30 ThrottleInit 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00AC4162E080 02B1 st2 [r22] = r23, 2 // 067365 00A5797405C0 02B2 shr.u r23 = r23, 16 ;; } { .mmi 008C4162E008 02C0 (pr8) st2 [r22] = r23 008C0162E009 02C1 (pr9) st1 [r22] = r23 00A04A400200 02C2 tbit.z pr8, pr9 = r36, 0 ;; // 067368 } { .mii 00AC0193404D 02D0 (pr13) st1 [ai] = r26, 1 // [r25] = r26, 1 // 067364 00A5B9A2068D 02D1 (pr13) shr.u r26 = r26, 8 010800000580 02D2 mov r22 = r0 } { .mmi 0108008C85C0 02E0 adds r23 = 100, r8 ;; // 067362 00AC41934080 02E1 st2 [ai] = r26, 2 // [r25] = r26, 2 // 067364 00A579A40680 02E2 shr.u r26 = r26, 16 ;; } { .mmi 008C4193400C 02F0 (pr12) st2 [ai] = r26 // [r25] = r26 008C0193400D 02F1 (pr13) st1 [ai] = r26 // [r25] = r26 00A068300300 02F2 tbit.z pr12, pr13 = r3, 0 ;; // 067367 } { .mii 00AC01C3A04F 0300 (pr15) st1 [r28] = r29, 1 // 067363 00A5B9D2074F 0301 (pr15) shr.u r29 = r29, 8 010800000640 0302 mov ai = r0 // r25 = r0 } { .mmi 010808880680 0310 adds r26 = 192, r8 ;; // 067369 00AC41C3A080 0311 st2 [r28] = r29, 2 // 067363 00A579D40740 0312 shr.u r29 = r29, 16 ;; } { .mmi 008C41C3A00E 0320 (pr14) st2 [r28] = r29 008C01C3A00F 0321 (pr15) st1 [r28] = r29 00A078A00380 0322 tbit.z pr14, pr15 = r10, 0 ;; // 067366 } { .mii 00AC01F56047 0330 (pr7) st1 [r31] = out0, 1 // [r31] = r43, 1 // 067362 00A5BAB20AC7 0331 (pr7) shr.u out0 = out0, 8 // r43 = r43, 8 010800000700 0332 mov r28 = r0 } { .mmi 010808878740 0340 adds r29 = 188, r8 ;; // 067368 00AC41F56080 0341 st2 [r31] = out0, 2 // [r31] = r43, 2 // 067362 00A57AB40AC0 0342 shr.u out0 = out0, 16 ;; // r43 = r43, 16 } { .mmi 008C41F56006 0350 (pr6) st2 [r31] = out0 // [r31] = r43 008C01F56007 0351 (pr7) st1 [r31] = out0 // [r31] = r43 00A039200180 0352 tbit.z pr6, pr7 = r18, 0 ;; // 067365 } { .mii 00AC02D5C04B 0360 (pr11) st1 [out2] = out3, 1 // [r45] = r46, 1 // 067369 00A5BAE20B8B 0361 (pr11) shr.u out3 = out3, 8 // r46 = r46, 8 0108000007C0 0362 mov r31 = r0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 31 ThrottleInit 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mmi 010808868AC0 0370 adds out0 = 180, r8 ;; // r43 = 180, r8 // 067367 00AC42D5C080 0371 st2 [out2] = out3, 2 // [r45] = r46, 2 // 067369 00A57AE40B80 0372 shr.u out3 = out3, 16 ;; // r46 = r46, 16 } { .mmi 008C42D5C00A 0380 (pr10) st2 [out2] = out3 // [r45] = r46 008C02D5C00B 0381 (pr11) st1 [out2] = out3 // [r45] = r46 00A059500280 0382 tbit.z pr10, pr11 = r21, 0 ;; // 067364 } { .mii 00AC0244A049 0390 (pr9) st1 [r36] = r37, 1 // 067368 00A5BA520949 0391 (pr9) shr.u r37 = r37, 8 010800000B40 0392 mov out2 = r0 ;; // r45 = r0 } { .mib 00AC4244A080 03A0 st2 [r36] = r37, 2 00A57A540940 03A1 shr.u r37 = r37, 16 004000000000 03A2 nop.b 0 ;; } { .mmi 008C4244A008 03B0 (pr8) st2 [r36] = r37 008C0244A009 03B1 (pr9) st1 [r36] = r37 00A049800200 03B2 tbit.z pr8, pr9 = r24, 0 ;; // 067363 } { .mii 00AC0031204D 03C0 (pr13) st1 [r3] = r9, 1 // 067367 00A5B892024D 03C1 (pr13) shr.u r9 = r9, 8 010800000900 03C2 mov r36 = r0 ;; } { .mib 00AC40312080 03D0 st2 [r3] = r9, 2 00A578940240 03D1 shr.u r9 = r9, 16 004000000000 03D2 nop.b 0 ;; } { .mmi 008C4031200C 03E0 (pr12) st2 [r3] = r9 008C0031200D 03E1 (pr13) st1 [r3] = r9 00A069B00300 03E2 tbit.z pr12, pr13 = r27, 0 ;; // 067362 } { .mii 00AC00A1604F 03F0 (pr15) st1 [r10] = r11, 1 // 067366 00A5B8B202CF 03F1 (pr15) shr.u r11 = r11, 8 0108008F00C0 03F2 adds r3 = 120, r8 } { .mmi 010800000240 0400 mov r9 = r0 ;; 00AC40A16080 0401 st2 [r10] = r11, 2 00A578B402C0 0402 shr.u r11 = r11, 16 ;; } { .mmi 008C40A1600E 0410 (pr14) st2 [r10] = r11 008C00A1600F 0411 (pr15) st1 [r10] = r11 00A079E00380 0412 tbit.z pr14, pr15 = r30, 0 ;; // 067369 } { .mii Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 32 ThrottleInit 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00AC01226047 0420 (pr7) st1 [r18] = r19, 1 // 067365 00A5B93204C7 0421 (pr7) shr.u r19 = r19, 8 0108008E0280 0422 adds r10 = 112, r8 } { .mmi 0108000002C0 0430 mov r11 = r0 ;; 00AC41226080 0431 st2 [r18] = r19, 2 00A5793404C0 0432 shr.u r19 = r19, 16 ;; } { .mmi 008C41226006 0440 (pr6) st2 [r18] = r19 008C01226007 0441 (pr7) st1 [r18] = r19 00A03AC00180 0442 tbit.z pr6, pr7 = out1, 0 ;; // pr6, pr7 = r44, 0 // 067368 } { .mii 00AC0152C04B 0450 (pr11) st1 [r21] = r22, 1 // 067364 00A5B962058B 0451 (pr11) shr.u r22 = r22, 8 010800000480 0452 mov r18 = r0 } { .mmi 0108088484C0 0460 adds r19 = 164, r8 ;; // 067362 00AC4152C080 0461 st2 [r21] = r22, 2 // 067364 00A579640580 0462 shr.u r22 = r22, 16 ;; } { .mmi 008C4152C00A 0470 (pr10) st2 [r21] = r22 008C0152C00B 0471 (pr11) st1 [r21] = r22 00A05A100280 0472 tbit.z pr10, pr11 = r33, 0 ;; // 067367 } { .mii 00AC01832049 0480 (pr9) st1 [r24] = ai, 1 // [r24] = r25, 1 // 067363 00A5B9920649 0481 (pr9) shr.u ai = ai, 8 // r25 = r25, 8 010800000540 0482 mov r21 = r0 } { .mmi 010848880580 0490 adds r22 = 1216, r8 ;; // 067369 00CB41600000 0491 lfetch.excl [r22] 000008000000 0492 nop.i 0 ;; } { .mib 00AC41832080 04A0 st2 [r24] = ai, 2 // [r24] = r25, 2 // 067363 00A579940640 04A1 shr.u ai = ai, 16 // r25 = r25, 16 004000000000 04A2 nop.b 0 ;; } { .mmi 008C41832008 04B0 (pr8) st2 [r24] = ai // [r24] = r25 008C01832009 04B1 (pr9) st1 [r24] = ai // [r24] = r25 00A048300200 04B2 tbit.z pr8, pr9 = r3, 0 ;; // 067366 } { .mii 00AC01B3804D 04C0 (pr13) st1 [r27] = r28, 1 // 067362 00A5B9C2070D 04C1 (pr13) shr.u r28 = r28, 8 010800000600 04C2 mov r24 = r0 ;; } { .mib 00AC41B38080 04D0 st2 [r27] = r28, 2 00A579C40700 04D1 shr.u r28 = r28, 16 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 33 ThrottleInit 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 004000000000 04D2 nop.b 0 ;; } { .mmi 008C41B3800C 04E0 (pr12) st2 [r27] = r28 008C01B3800D 04E1 (pr13) st1 [r27] = r28 00A068A00300 04E2 tbit.z pr12, pr13 = r10, 0 ;; // 067365 } { .mii 00AC01E3E04F 04F0 (pr15) st1 [r30] = r31, 1 // 067369 00A5B9F207CF 04F1 (pr15) shr.u r31 = r31, 8 0108000006C0 04F2 mov r27 = r0 ;; } { .mib 00AC41E3E080 0500 st2 [r30] = r31, 2 00A579F407C0 0501 shr.u r31 = r31, 16 004000000000 0502 nop.b 0 ;; } { .mmi 008C41E3E00E 0510 (pr14) st2 [r30] = r31 008C01E3E00F 0511 (pr15) st1 [r30] = r31 00A079100380 0512 tbit.z pr14, pr15 = r17, 0 ;; // 067364 } { .mii 00AC02C5A047 0520 (pr7) st1 [out1] = out2, 1 // [r44] = r45, 1 // 067368 00A5BAD20B47 0521 (pr7) shr.u out2 = out2, 8 // r45 = r45, 8 010800000780 0522 mov r30 = r0 ;; } { .mib 00AC42C5A080 0530 st2 [out1] = out2, 2 // [r44] = r45, 2 00A57AD40B40 0531 shr.u out2 = out2, 16 // r45 = r45, 16 004000000000 0532 nop.b 0 ;; } { .mmi 008C42C5A006 0540 (pr6) st2 [out1] = out2 // [r44] = r45 008C02C5A007 0541 (pr7) st1 [out1] = out2 // [r44] = r45 00A039400180 0542 tbit.z pr6, pr7 = r20, 0 ;; // 067363 } { .mii 00AC0214804B 0550 (pr11) st1 [r33] = r36, 1 // 067367 00A5BA42090B 0551 (pr11) shr.u r36 = r36, 8 010800000B00 0552 mov out1 = r0 ;; // r44 = r0 } { .mib 00AC42148080 0560 st2 [r33] = r36, 2 00A57A440900 0561 shr.u r36 = r36, 16 004000000000 0562 nop.b 0 ;; } { .mmi 008C4214800A 0570 (pr10) st2 [r33] = r36 008C0214800B 0571 (pr11) st1 [r33] = r36 00A059700280 0572 tbit.z pr10, pr11 = r23, 0 ;; // 067362 } { .mii 00AC00312049 0580 (pr9) st1 [r3] = r9, 1 // 067366 00A5B8920249 0581 (pr9) shr.u r9 = r9, 8 010808870840 0582 adds r33 = 184, r8 } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 34 ThrottleInit 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mmi 010800000900 0590 mov r36 = r0 ;; 00AC40312080 0591 st2 [r3] = r9, 2 00A578940240 0592 shr.u r9 = r9, 16 ;; } { .mmi 008C40312008 05A0 (pr8) st2 [r3] = r9 008C00312009 05A1 (pr9) st1 [r3] = r9 00A049A00200 05A2 tbit.z pr8, pr9 = r26, 0 ;; // 067369 } { .mii 00AC00A1604D 05B0 (pr13) st1 [r10] = r11, 1 // 067365 00A5B8B202CD 05B1 (pr13) shr.u r11 = r11, 8 0108088600C0 05B2 adds r3 = 176, r8 } { .mmi 010800000240 05C0 mov r9 = r0 ;; 00AC40A16080 05C1 st2 [r10] = r11, 2 00A578B402C0 05C2 shr.u r11 = r11, 16 ;; } { .mmi 008C40A1600C 05D0 (pr12) st2 [r10] = r11 008C00A1600D 05D1 (pr13) st1 [r10] = r11 00A069D00300 05D2 tbit.z pr12, pr13 = r29, 0 ;; // 067368 } { .mii 00AC0112404F 05E0 (pr15) st1 [r17] = r18, 1 // 067364 00A5B922048F 05E1 (pr15) shr.u r18 = r18, 8 010808858280 05E2 adds r10 = 172, r8 } { .mmi 0108000002C0 05F0 mov r11 = r0 ;; 00AC41124080 05F1 st2 [r17] = r18, 2 00A579240480 05F2 shr.u r18 = r18, 16 ;; } { .mmi 008C4112400E 0600 (pr14) st2 [r17] = r18 008C0112400F 0601 (pr15) st1 [r17] = r18 00A07AB00380 0602 tbit.z pr14, pr15 = out0, 0 ;; // pr14, pr15 = r43, 0 // 067367 } { .mii 00AC0142A047 0610 (pr7) st1 [r20] = r21, 1 // 067363 00A5B9520547 0611 (pr7) shr.u r21 = r21, 8 010808850440 0612 adds r17 = 168, r8 } { .mmi 010800000480 0620 mov r18 = r0 ;; 00AC4142A080 0621 st2 [r20] = r21, 2 00A579540540 0622 shr.u r21 = r21, 16 ;; } { .mmi 008C4142A006 0630 (pr6) st2 [r20] = r21 008C0142A007 0631 (pr7) st1 [r20] = r21 00A03A100180 0632 tbit.z pr6, pr7 = r33, 0 ;; // 067366 } { .mii 00AC0173004B 0640 (pr11) st1 [r23] = r24, 1 // 067362 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 35 ThrottleInit 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00A5B982060B 0641 (pr11) shr.u r24 = r24, 8 010800000500 0642 mov r20 = r0 } { .mmi 010840880540 0650 adds r21 = 1088, r8 ;; // 067369 00CB41500000 0651 lfetch.excl [r21] 010810800200 0652 adds r8 = 256, r8 ;; // 067359 } { .mib 00AC41730080 0660 st2 [r23] = r24, 2 // 067362 00A579840600 0661 shr.u r24 = r24, 16 004000000000 0662 nop.b 0 ;; } { .mmi 008C4173000A 0670 (pr10) st2 [r23] = r24 008C0173000B 0671 (pr11) st1 [r23] = r24 00A058300280 0672 tbit.z pr10, pr11 = r3, 0 ;; // 067365 } { .mib 00AC01A36049 0680 (pr9) st1 [r26] = r27, 1 // 067369 00A5B9B206C9 0681 (pr9) shr.u r27 = r27, 8 004000000000 0682 nop.b 0 ;; } { .mib 00AC41A36080 0690 st2 [r26] = r27, 2 00A579B406C0 0691 shr.u r27 = r27, 16 004000000000 0692 nop.b 0 ;; } { .mmi 008C41A36008 06A0 (pr8) st2 [r26] = r27 008C01A36009 06A1 (pr9) st1 [r26] = r27 00A048A00200 06A2 tbit.z pr8, pr9 = r10, 0 ;; // 067364 } { .mib 00AC01D3C04D 06B0 (pr13) st1 [r29] = r30, 1 // 067368 00A5B9E2078D 06B1 (pr13) shr.u r30 = r30, 8 004000000000 06B2 nop.b 0 ;; } { .mib 00AC41D3C080 06C0 st2 [r29] = r30, 2 00A579E40780 06C1 shr.u r30 = r30, 16 004000000000 06C2 nop.b 0 ;; } { .mmi 008C41D3C00C 06D0 (pr12) st2 [r29] = r30 008C01D3C00D 06D1 (pr13) st1 [r29] = r30 00A069100300 06D2 tbit.z pr12, pr13 = r17, 0 ;; // 067363 } { .mib 00AC02B5804F 06E0 (pr15) st1 [out0] = out1, 1 // [r43] = r44, 1 // 067367 00A5BAC20B0F 06E1 (pr15) shr.u out1 = out1, 8 // r44 = r44, 8 004000000000 06E2 nop.b 0 ;; } { .mib 00AC42B58080 06F0 st2 [out0] = out1, 2 // [r43] = r44, 2 00A57AC40B00 06F1 shr.u out1 = out1, 16 // r44 = r44, 16 004000000000 06F2 nop.b 0 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 36 ThrottleInit 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mmi 008C42B5800E 0700 (pr14) st2 [out0] = out1 // [r43] = r44 008C02B5800F 0701 (pr15) st1 [out0] = out1 // [r43] = r44 00A079300380 0702 tbit.z pr14, pr15 = r19, 0 ;; // 067362 } { .mib 00AC02148047 0710 (pr7) st1 [r33] = r36, 1 // 067366 00A5BA420907 0711 (pr7) shr.u r36 = r36, 8 004000000000 0712 nop.b 0 ;; } { .mib 00AC42148080 0720 st2 [r33] = r36, 2 00A57A440900 0721 shr.u r36 = r36, 16 004000000000 0722 nop.b 0 ;; } { .mmi 008C42148006 0730 (pr6) st2 [r33] = r36 008C02148007 0731 (pr7) st1 [r33] = r36 018402344180 0732 cmp4.lt pr6, pr0 = idx, r35 ;; // pr6, pr0 = r34, r35 // 067359 } { .mib 00AC0031204B 0740 (pr11) st1 [r3] = r9, 1 // 067365 00A5B892024B 0741 (pr11) shr.u r9 = r9, 8 004000000000 0742 nop.b 0 ;; } { .mib 00AC40312080 0750 st2 [r3] = r9, 2 00A578940240 0751 shr.u r9 = r9, 16 004000000000 0752 nop.b 0 ;; } { .mmi 008C4031200A 0760 (pr10) st2 [r3] = r9 008C0031200B 0761 (pr11) st1 [r3] = r9 000008000000 0762 nop.i 0 ;; } { .mib 00AC00A16049 0770 (pr9) st1 [r10] = r11, 1 // 067364 00A5B8B202C9 0771 (pr9) shr.u r11 = r11, 8 004000000000 0772 nop.b 0 ;; } { .mib 00AC40A16080 0780 st2 [r10] = r11, 2 00A578B402C0 0781 shr.u r11 = r11, 16 004000000000 0782 nop.b 0 ;; } { .mmi 008C40A16008 0790 (pr8) st2 [r10] = r11 008C00A16009 0791 (pr9) st1 [r10] = r11 000008000000 0792 nop.i 0 ;; } { .mib 00AC0112404D 07A0 (pr13) st1 [r17] = r18, 1 // 067363 00A5B922048D 07A1 (pr13) shr.u r18 = r18, 8 004000000000 07A2 nop.b 0 ;; } { .mib Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 37 ThrottleInit 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00AC41124080 07B0 st2 [r17] = r18, 2 00A579240480 07B1 shr.u r18 = r18, 16 004000000000 07B2 nop.b 0 ;; } { .mmi 008C4112400C 07C0 (pr12) st2 [r17] = r18 008C0112400D 07C1 (pr13) st1 [r17] = r18 000008000000 07C2 nop.i 0 ;; } { .mib 00AC0132804F 07D0 (pr15) st1 [r19] = r20, 1 // 067362 00A5B942050F 07D1 (pr15) shr.u r20 = r20, 8 004000000000 07D2 nop.b 0 ;; } { .mib 00AC41328080 07E0 st2 [r19] = r20, 2 00A579440500 07E1 shr.u r20 = r20, 16 004000000000 07E2 nop.b 0 ;; } { .mmb 008C4132800E 07F0 (pr14) st2 [r19] = r20 008C0132800F 07F1 (pr15) st1 [r19] = r20 0095FFF2A006 07F2 (pr6) br.cond.dptk.many L$39 ;; // 067359 } { .mfb 01845A044000 0800 cmp4.lt pr0, pr11 = idx, r32 // pr0, pr11 = r34, r32 000008000000 0801 nop.f 0 00860004000B 0802 (pr11) br.cond.dpnt.many L$35 ;; } 0810 L$41: { .mii 010800000640 0810 mov ai = r0 // r25 = r0 // 067369 00A048800200 0811 tbit.z pr8, pr9 = r8, 0 010800800600 0812 mov r24 = r8 } { .mmi 0119F88F86C0 0820 adds r27 = -4, r8 ;; // 067368 00AC01832049 0821 (pr9) st1 [r24] = ai, 1 // [r24] = r25, 1 // 067369 00A5B9920649 0822 (pr9) shr.u ai = ai, 8 // r25 = r25, 8 } { .mii 010800000700 0830 mov r28 = r0 // 067368 0119F88E8780 0831 adds r30 = -12, r8 ;; // 067367 00A069B00300 0832 tbit.z pr12, pr13 = r27, 0 // 067368 } { .mii 0108000007C0 0840 mov r31 = r0 // 067367 0119F88F0B00 0841 adds out1 = -8, r8 // r44 = -8, r8 // 067366 010800000840 0842 mov r33 = r0 ;; } { .mii 00AC41832080 0850 st2 [r24] = ai, 2 // [r24] = r25, 2 // 067369 00A579940640 0851 shr.u ai = ai, 16 // r25 = r25, 16 0119F88E0B40 0852 adds out2 = -16, r8 // r45 = -16, r8 // 067365 } { .mmi 0108000000C0 0860 mov r3 = r0 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 38 ThrottleInit 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0119F88D8B80 0861 adds out3 = -20, r8 // r46 = -20, r8 // 067364 00A079E00380 0862 tbit.z pr14, pr15 = r30, 0 // 067367 } { .mii 010800000280 0870 mov r10 = r0 // 067364 0119F88D0940 0871 adds r37 = -24, r8 ;; // 067363 00A03AC00180 0872 tbit.z pr6, pr7 = out1, 0 // pr6, pr7 = r44, 0 // 067366 } { .mmi 008C41832008 0880 (pr8) st2 [r24] = ai // [r24] = r25 // 067369 008C01832009 0881 (pr9) st1 [r24] = ai // [r24] = r25 010800000440 0882 mov r17 = r0 ;; // 067363 } { .mii 00AC01B3804D 0890 (pr13) st1 [r27] = r28, 1 // 067368 00A5B9C2070D 0891 (pr13) shr.u r28 = r28, 8 0119F88C8980 0892 adds r38 = -28, r8 // 067362 } { .mmi 0108000004C0 08A0 mov r19 = r0 ;; 010802202880 08A1 adds r34 = 1, r34 // 067359 00A05AD00280 08A2 tbit.z pr10, pr11 = out2, 0 // pr10, pr11 = r45, 0 // 067365 } { .mmi 010800880200 08B0 adds r8 = 64, r8 ;; // 067362 00AC41B38080 08B1 st2 [r27] = r28, 2 // 067368 00A579C40700 08B2 shr.u r28 = r28, 16 ;; } { .mib 000008000000 08C0 nop.m 0 00A04AE00200 08C1 tbit.z pr8, pr9 = out3, 0 // pr8, pr9 = r46, 0 // 067364 004000000000 08C2 nop.b 0 ;; } { .mmi 008C41B3800C 08D0 (pr12) st2 [r27] = r28 // 067368 008C01B3800D 08D1 (pr13) st1 [r27] = r28 00A06A500300 08D2 tbit.z pr12, pr13 = r37, 0 ;; // 067363 } { .mib 00AC01E3E04F 08E0 (pr15) st1 [r30] = r31, 1 // 067367 00A5B9F207CF 08E1 (pr15) shr.u r31 = r31, 8 004000000000 08E2 nop.b 0 ;; } { .mib 00AC41E3E080 08F0 st2 [r30] = r31, 2 00A579F407C0 08F1 shr.u r31 = r31, 16 004000000000 08F2 nop.b 0 ;; } { .mmi 008C41E3E00E 0900 (pr14) st2 [r30] = r31 008C01E3E00F 0901 (pr15) st1 [r30] = r31 00A07A600380 0902 tbit.z pr14, pr15 = r38, 0 ;; // 067362 } { .mib 00AC02C42047 0910 (pr7) st1 [out1] = r33, 1 // [r44] = r33, 1 // 067366 00A5BA120847 0911 (pr7) shr.u r33 = r33, 8 004000000000 0912 nop.b 0 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 39 ThrottleInit 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mib 00AC42C42080 0920 st2 [out1] = r33, 2 // [r44] = r33, 2 00A57A140840 0921 shr.u r33 = r33, 16 004000000000 0922 nop.b 0 ;; } { .mmi 008C42C42006 0930 (pr6) st2 [out1] = r33 // [r44] = r33 008C02C42007 0931 (pr7) st1 [out1] = r33 // [r44] = r33 018402044180 0932 cmp4.lt pr6, pr0 = idx, r32 ;; // pr6, pr0 = r34, r32 // 067359 } { .mib 00AC02D0604B 0940 (pr11) st1 [out2] = r3, 1 // [r45] = r3, 1 // 067365 00A5B83200CB 0941 (pr11) shr.u r3 = r3, 8 004000000000 0942 nop.b 0 ;; } { .mib 00AC42D06080 0950 st2 [out2] = r3, 2 // [r45] = r3, 2 00A5783400C0 0951 shr.u r3 = r3, 16 004000000000 0952 nop.b 0 ;; } { .mmi 008C42D0600A 0960 (pr10) st2 [out2] = r3 // [r45] = r3 008C02D0600B 0961 (pr11) st1 [out2] = r3 // [r45] = r3 000008000000 0962 nop.i 0 ;; } { .mib 00AC02E14049 0970 (pr9) st1 [out3] = r10, 1 // [r46] = r10, 1 // 067364 00A5B8A20289 0971 (pr9) shr.u r10 = r10, 8 004000000000 0972 nop.b 0 ;; } { .mib 00AC42E14080 0980 st2 [out3] = r10, 2 // [r46] = r10, 2 00A578A40280 0981 shr.u r10 = r10, 16 004000000000 0982 nop.b 0 ;; } { .mmi 008C42E14008 0990 (pr8) st2 [out3] = r10 // [r46] = r10 008C02E14009 0991 (pr9) st1 [out3] = r10 // [r46] = r10 000008000000 0992 nop.i 0 ;; } { .mib 00AC0252204D 09A0 (pr13) st1 [r37] = r17, 1 // 067363 00A5B912044D 09A1 (pr13) shr.u r17 = r17, 8 004000000000 09A2 nop.b 0 ;; } { .mib 00AC42522080 09B0 st2 [r37] = r17, 2 00A579140440 09B1 shr.u r17 = r17, 16 004000000000 09B2 nop.b 0 ;; } { .mmi 008C4252200C 09C0 (pr12) st2 [r37] = r17 008C0252200D 09C1 (pr13) st1 [r37] = r17 000008000000 09C2 nop.i 0 ;; } { .mib Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 40 ThrottleInit 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00AC0262604F 09D0 (pr15) st1 [r38] = r19, 1 // 067362 00A5B93204CF 09D1 (pr15) shr.u r19 = r19, 8 004000000000 09D2 nop.b 0 ;; } { .mib 00AC42626080 09E0 st2 [r38] = r19, 2 00A5793404C0 09E1 shr.u r19 = r19, 16 004000000000 09E2 nop.b 0 ;; } { .mmb 008C4262600E 09F0 (pr14) st2 [r38] = r19 008C0262600F 09F1 (pr15) st1 [r38] = r19 0095FFFC4006 09F2 (pr6) br.cond.dptk.many L$41 ;; // 067359 } 0A00 L$35: // 067370 { .mfb 000008000000 0A00 nop.m 0 000008000000 0A01 nop.f 0 00A000001000 0A02 br.call.sptk.many rp = // br0 = ThrottleMonitorReset // 067371 ThrottleMonitorReset ;; } 0A10 L$32: // 067339 { .mii 000008000000 0A10 nop.m 0 000154052000 0A11 mov.i rspfs = r41 ;; 000E00150000 0A12 mov rp = r40 // br0 = r40 } { .mfb 000008000000 0A20 nop.m 0 000008000000 0A21 nop.f 0 000108001100 0A22 br.ret.sptk.many rp ;; // br0 } .endp ThrottleInit Routine Size: 2608 bytes, Routine Base: $CODE$ + 0000 .proc ThrottleZero .align 32 .global ThrottleZero ThrottleZero: // 067346 { .mii 002C00A14A40 0A30 alloc r41 = rspfs, 0, 10, 0, 0 012000100200 0A31 add r8 = @ltoffx(ThrottleTotal), // r8 = @ltoffx(ThrottleTotal), r1 // 067359 gp 010800000240 0A32 mov idx = r0 ;; // r9 = r0 } { .mib 0080C0800200 0A40 ld8.mov r8 = [r8], ThrottleTotal 000188000A00 0A41 mov r40 = rp // r40 = br0 // 067346 004000000000 0A42 nop.b 0 ;; } { .mmi 008080800200 0A50 ld4 r8 = ThrottleTotal ;; // r8 = [r8] // 067359 018C38800000 0A51 cmp4.lt pr0, pr7 = 0, r8 000008000000 0A52 nop.i 0 } { .mfb Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 41 ThrottleZero 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 0A60 nop.m 0 000008000000 0A61 nop.f 0 008600124007 0A62 (pr7) br.cond.dpnt.many L$20 ;; } { .mii 0120001002C0 0A70 add r11 = @ltoffx(ThrottleArray), // r11 = @ltoffx(ThrottleArray), r1 // 067361 gp 0119F88FA280 0A71 adds r10 = -3, r8 ;; // 067359 018C60A00000 0A72 cmp4.lt pr0, pr12 = 0, r10 } { .mii 0080C0B002C0 0A80 ld8.mov r11 = [r11], ThrottleArray // 067361 018448A10280 0A81 cmp4.lt pr10, pr9 = r8, r10 ;; // 067359 01C20000028C 0A82 (pr12) cmp.eq.or.andcm pr10, pr0 = r0, r0 ;; } { .mmi 008080B002C0 0A90 ld4 r11 = ThrottleArray ;; // r11 = [r11] // 067361 000008000000 0A91 nop.m 0 0000B0B002C0 0A92 sxt4 r11 = r11 ;; } { .mfi 010800B582C0 0AA0 adds r11 = 44, r11 000008000000 0AA1 nop.f 0 000008000000 0AA2 nop.i 0 ;; } { .mfb 000008000000 0AB0 nop.m 0 000008000000 0AB1 nop.f 0 0086000DC00A 0AB2 (pr10) br.cond.dpnt.many L$26 ;; // 067359 } 0AC0 L$24: { .mii 0108000004C0 0AC0 mov r19 = r0 // 067369 00A070B00340 0AC1 tbit.z pr13, pr14 = r11, 0 010800B00480 0AC2 mov r18 = r11 } { .mmi 0119F8BF8540 0AD0 adds r21 = -4, r11 ;; // 067368 00AC0122604E 0AD1 (pr14) st1 [r18] = r19, 1 // 067369 00A5B93204CE 0AD2 (pr14) shr.u r19 = r19, 8 } { .mii 010800000580 0AE0 mov r22 = r0 // 067368 0119F8BE8600 0AE1 adds r24 = -12, r11 ;; // 067367 00A0315003C0 0AE2 tbit.z pr15, pr6 = r21, 0 // 067368 } { .mii 010800000640 0AF0 mov ai = r0 // r25 = r0 // 067367 0119F8BF06C0 0AF1 adds r27 = -8, r11 // 067366 010800000700 0AF2 mov r28 = r0 ;; } { .mii 00AC41226080 0B00 st2 [r18] = r19, 2 // 067369 00A5793404C0 0B01 shr.u r19 = r19, 16 0119F8BE0780 0B02 adds r30 = -16, r11 // 067365 } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 42 ThrottleZero 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0108000007C0 0B10 mov r31 = r0 ;; 0119F8BD8840 0B11 adds r33 = -20, r11 // 067364 00A0418001C0 0B12 tbit.z pr7, pr8 = r24, 0 // 067367 } { .mii 010800000880 0B20 mov r34 = r0 // 067364 0119F8BD0900 0B21 adds r36 = -24, r11 ;; // 067363 00A061B002C0 0B22 tbit.z pr11, pr12 = r27, 0 // 067366 } { .mmi 008C4122600D 0B30 (pr13) st2 [r18] = r19 // 067369 008C0122600E 0B31 (pr14) st1 [r18] = r19 010800000940 0B32 mov r37 = r0 ;; // 067363 } { .mii 00AC0152C046 0B40 (pr6) st1 [r21] = r22, 1 // 067368 00A5B9620586 0B41 (pr6) shr.u r22 = r22, 8 0119F8BC89C0 0B42 adds r39 = -28, r11 // 067362 } { .mmi 0108000000C0 0B50 mov r3 = r0 ;; 010800B80480 0B51 adds r18 = 64, r11 // 067369 00A051E00240 0B52 tbit.z pr9, pr10 = r30, 0 // 067365 } { .mii 0108000004C0 0B60 mov r19 = r0 // 067369 010840B80440 0B61 adds r17 = 1088, r11 ;; 00A072100340 0B62 tbit.z pr13, pr14 = r33, 0 // 067364 } { .mii 00AC4152C080 0B70 st2 [r21] = r22, 2 // 067368 010800908240 0B71 adds r9 = 4, r9 ;; // 067359 00A579640580 0B72 shr.u r22 = r22, 16 // 067368 } { .mmi 00CB41100000 0B80 lfetch.excl [r17] ;; // 067369 008C4152C00F 0B81 (pr15) st2 [r21] = r22 // 067368 000008000000 0B82 nop.i 0 } { .mii 008C0152C006 0B90 (pr6) st1 [r21] = r22 010800B78540 0B91 adds r21 = 60, r11 ;; 00A07A400180 0B92 tbit.z pr6, pr15 = r36, 0 // 067363 } { .mii 00AC01832048 0BA0 (pr8) st1 [r24] = ai, 1 // [r24] = r25, 1 // 067367 010800000580 0BA1 mov r22 = r0 ;; // 067368 00A5B9920648 0BA2 (pr8) shr.u ai = ai, 8 ;; // r25 = r25, 8 // 067367 } { .mib 00AC41832080 0BB0 st2 [r24] = ai, 2 // [r24] = r25, 2 00A579940640 0BB1 shr.u ai = ai, 16 // r25 = r25, 16 004000000000 0BB2 nop.b 0 ;; } { .mmi 008C41832007 0BC0 (pr7) st2 [r24] = ai // [r24] = r25 008C01832008 0BC1 (pr8) st1 [r24] = ai // [r24] = r25 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 43 ThrottleZero 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00A0427001C0 0BC2 tbit.z pr7, pr8 = r39, 0 ;; // 067362 } { .mii 00AC01B3804C 0BD0 (pr12) st1 [r27] = r28, 1 // 067366 00A5B9C2070C 0BD1 (pr12) shr.u r28 = r28, 8 010800B68600 0BD2 adds r24 = 52, r11 // 067367 } { .mmi 010800000640 0BE0 mov ai = r0 ;; // r25 = r0 00AC41B38080 0BE1 st2 [r27] = r28, 2 // 067366 00A579C40700 0BE2 shr.u r28 = r28, 16 ;; } { .mmi 008C41B3800B 0BF0 (pr11) st2 [r27] = r28 008C01B3800C 0BF1 (pr12) st1 [r27] = r28 00A0612002C0 0BF2 tbit.z pr11, pr12 = r18, 0 ;; // 067369 } { .mii 00AC01E3E04A 0C00 (pr10) st1 [r30] = r31, 1 // 067365 00A5B9F207CA 0C01 (pr10) shr.u r31 = r31, 8 010800B706C0 0C02 adds r27 = 56, r11 // 067366 } { .mmi 010800000700 0C10 mov r28 = r0 ;; 00AC41E3E080 0C11 st2 [r30] = r31, 2 // 067365 00A579F407C0 0C12 shr.u r31 = r31, 16 ;; } { .mmi 008C41E3E009 0C20 (pr9) st2 [r30] = r31 008C01E3E00A 0C21 (pr10) st1 [r30] = r31 00A051500240 0C22 tbit.z pr9, pr10 = r21, 0 ;; // 067368 } { .mii 00AC0214404E 0C30 (pr14) st1 [r33] = r34, 1 // 067364 00A5BA22088E 0C31 (pr14) shr.u r34 = r34, 8 010800B60780 0C32 adds r30 = 48, r11 // 067365 } { .mmi 0108000007C0 0C40 mov r31 = r0 ;; 00AC42144080 0C41 st2 [r33] = r34, 2 // 067364 00A57A240880 0C42 shr.u r34 = r34, 16 ;; } { .mmi 008C4214400D 0C50 (pr13) st2 [r33] = r34 008C0214400E 0C51 (pr14) st1 [r33] = r34 00A071800340 0C52 tbit.z pr13, pr14 = r24, 0 ;; // 067367 } { .mii 00AC0244A04F 0C60 (pr15) st1 [r36] = r37, 1 // 067363 00A5BA52094F 0C61 (pr15) shr.u r37 = r37, 8 010800B58840 0C62 adds r33 = 44, r11 // 067364 } { .mmi 010800000880 0C70 mov r34 = r0 ;; 00AC4244A080 0C71 st2 [r36] = r37, 2 // 067363 00A57A540940 0C72 shr.u r37 = r37, 16 ;; } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 44 ThrottleZero 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mmi 008C4244A006 0C80 (pr6) st2 [r36] = r37 008C0244A00F 0C81 (pr15) st1 [r36] = r37 00A079B00180 0C82 tbit.z pr6, pr15 = r27, 0 ;; // 067366 } { .mii 00AC02706048 0C90 (pr8) st1 [r39] = r3, 1 // 067362 00A5B83200C8 0C91 (pr8) shr.u r3 = r3, 8 010800B50900 0C92 adds r36 = 40, r11 // 067363 } { .mmi 010800000940 0CA0 mov r37 = r0 ;; 00AC42706080 0CA1 st2 [r39] = r3, 2 // 067362 00A5783400C0 0CA2 shr.u r3 = r3, 16 ;; } { .mmi 008C42706007 0CB0 (pr7) st2 [r39] = r3 008C02706008 0CB1 (pr8) st1 [r39] = r3 00A041E001C0 0CB2 tbit.z pr7, pr8 = r30, 0 ;; // 067365 } { .mii 00AC0122604C 0CC0 (pr12) st1 [r18] = r19, 1 // 067369 00A5B93204CC 0CC1 (pr12) shr.u r19 = r19, 8 010800B480C0 0CC2 adds r3 = 36, r11 // 067362 } { .mmi 0108000009C0 0CD0 mov r39 = r0 ;; 010800300980 0CD1 mov r38 = r3 000008000000 0CD2 nop.i 0 ;; } { .mib 00AC41226080 0CE0 st2 [r18] = r19, 2 // 067369 00A5793404C0 0CE1 shr.u r19 = r19, 16 004000000000 0CE2 nop.b 0 ;; } { .mmi 008C4122600B 0CF0 (pr11) st2 [r18] = r19 008C0122600C 0CF1 (pr12) st1 [r18] = r19 00A0621002C0 0CF2 tbit.z pr11, pr12 = r33, 0 ;; // 067364 } { .mii 00AC0152C04A 0D00 (pr10) st1 [r21] = r22, 1 // 067368 00A5B962058A 0D01 (pr10) shr.u r22 = r22, 8 010808B00480 0D02 adds r18 = 128, r11 // 067369 } { .mmi 0108000004C0 0D10 mov r19 = r0 ;; 00AC4152C080 0D11 st2 [r21] = r22, 2 // 067368 00A579640580 0D12 shr.u r22 = r22, 16 ;; } { .mmi 008C4152C009 0D20 (pr9) st2 [r21] = r22 008C0152C00A 0D21 (pr10) st1 [r21] = r22 00A052400240 0D22 tbit.z pr9, pr10 = r36, 0 ;; // 067363 } { .mii 00AC0183204E 0D30 (pr14) st1 [r24] = ai, 1 // [r24] = r25, 1 // 067367 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 45 ThrottleZero 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00A5B992064E 0D31 (pr14) shr.u ai = ai, 8 // r25 = r25, 8 010800BF8540 0D32 adds r21 = 124, r11 // 067368 } { .mmi 010800000580 0D40 mov r22 = r0 ;; 00AC41832080 0D41 st2 [r24] = ai, 2 // [r24] = r25, 2 // 067367 00A579940640 0D42 shr.u ai = ai, 16 ;; // r25 = r25, 16 } { .mmi 008C4183200D 0D50 (pr13) st2 [r24] = ai // [r24] = r25 008C0183200E 0D51 (pr14) st1 [r24] = ai // [r24] = r25 00A070300340 0D52 tbit.z pr13, pr14 = r3, 0 ;; // 067362 } { .mii 00AC01B3804F 0D60 (pr15) st1 [r27] = r28, 1 // 067366 00A5B9C2070F 0D61 (pr15) shr.u r28 = r28, 8 010800BE8600 0D62 adds r24 = 116, r11 // 067367 } { .mmi 010800000640 0D70 mov ai = r0 ;; // r25 = r0 010800BC80C0 0D71 adds r3 = 100, r11 // 067362 000008000000 0D72 nop.i 0 ;; } { .mib 00AC41B38080 0D80 st2 [r27] = r28, 2 // 067366 00A579C40700 0D81 shr.u r28 = r28, 16 004000000000 0D82 nop.b 0 ;; } { .mmi 008C41B38006 0D90 (pr6) st2 [r27] = r28 008C01B3800F 0D91 (pr15) st1 [r27] = r28 00A079200180 0D92 tbit.z pr6, pr15 = r18, 0 ;; // 067369 } { .mii 00AC01E3E048 0DA0 (pr8) st1 [r30] = r31, 1 // 067365 00A5B9F207C8 0DA1 (pr8) shr.u r31 = r31, 8 010800BF06C0 0DA2 adds r27 = 120, r11 // 067366 } { .mmi 010800000700 0DB0 mov r28 = r0 ;; 00AC41E3E080 0DB1 st2 [r30] = r31, 2 // 067365 00A579F407C0 0DB2 shr.u r31 = r31, 16 ;; } { .mmi 008C41E3E007 0DC0 (pr7) st2 [r30] = r31 008C01E3E008 0DC1 (pr8) st1 [r30] = r31 00A0415001C0 0DC2 tbit.z pr7, pr8 = r21, 0 ;; // 067368 } { .mii 00AC0214404C 0DD0 (pr12) st1 [r33] = r34, 1 // 067364 00A5BA22088C 0DD1 (pr12) shr.u r34 = r34, 8 010800BE0780 0DD2 adds r30 = 112, r11 // 067365 } { .mmi 0108000007C0 0DE0 mov r31 = r0 ;; 00AC42144080 0DE1 st2 [r33] = r34, 2 // 067364 00A57A240880 0DE2 shr.u r34 = r34, 16 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 46 ThrottleZero 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mmi 008C4214400B 0DF0 (pr11) st2 [r33] = r34 008C0214400C 0DF1 (pr12) st1 [r33] = r34 00A0618002C0 0DF2 tbit.z pr11, pr12 = r24, 0 ;; // 067367 } { .mii 00AC0244A04A 0E00 (pr10) st1 [r36] = r37, 1 // 067363 00A5BA52094A 0E01 (pr10) shr.u r37 = r37, 8 010800BD8840 0E02 adds r33 = 108, r11 // 067364 } { .mmi 010800000880 0E10 mov r34 = r0 ;; 00AC4244A080 0E11 st2 [r36] = r37, 2 // 067363 00A57A540940 0E12 shr.u r37 = r37, 16 ;; } { .mmi 008C4244A009 0E20 (pr9) st2 [r36] = r37 008C0244A00A 0E21 (pr10) st1 [r36] = r37 00A051B00240 0E22 tbit.z pr9, pr10 = r27, 0 ;; // 067366 } { .mii 00AC0264E04E 0E30 (pr14) st1 [r38] = r39, 1 // 067362 00A5BA7209CE 0E31 (pr14) shr.u r39 = r39, 8 010800BD0900 0E32 adds r36 = 104, r11 // 067363 } { .mmi 010800000940 0E40 mov r37 = r0 ;; 00AC4264E080 0E41 st2 [r38] = r39, 2 // 067362 00A57A7409C0 0E42 shr.u r39 = r39, 16 ;; } { .mmi 008C4264E00D 0E50 (pr13) st2 [r38] = r39 008C0264E00E 0E51 (pr14) st1 [r38] = r39 00A071E00340 0E52 tbit.z pr13, pr14 = r30, 0 ;; // 067365 } { .mii 00AC0122604F 0E60 (pr15) st1 [r18] = r19, 1 // 067369 00A5B93204CF 0E61 (pr15) shr.u r19 = r19, 8 0108000009C0 0E62 mov r39 = r0 // 067362 } { .mmi 010800300980 0E70 mov r38 = r3 ;; 00AC41226080 0E71 st2 [r18] = r19, 2 // 067369 00A5793404C0 0E72 shr.u r19 = r19, 16 ;; } { .mmi 008C41226006 0E80 (pr6) st2 [r18] = r19 008C0122600F 0E81 (pr15) st1 [r18] = r19 00A07A100180 0E82 tbit.z pr6, pr15 = r33, 0 ;; // 067364 } { .mii 00AC0152C048 0E90 (pr8) st1 [r21] = r22, 1 // 067368 00A5B9620588 0E91 (pr8) shr.u r22 = r22, 8 010808B80480 0E92 adds r18 = 192, r11 // 067369 } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 47 ThrottleZero 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0108000004C0 0EA0 mov r19 = r0 ;; 00AC4152C080 0EA1 st2 [r21] = r22, 2 // 067368 00A579640580 0EA2 shr.u r22 = r22, 16 ;; } { .mmi 008C4152C007 0EB0 (pr7) st2 [r21] = r22 008C0152C008 0EB1 (pr8) st1 [r21] = r22 00A0424001C0 0EB2 tbit.z pr7, pr8 = r36, 0 ;; // 067363 } { .mii 00AC0183204C 0EC0 (pr12) st1 [r24] = ai, 1 // [r24] = r25, 1 // 067367 00A5B992064C 0EC1 (pr12) shr.u ai = ai, 8 // r25 = r25, 8 010808B78540 0EC2 adds r21 = 188, r11 // 067368 } { .mmi 010800000580 0ED0 mov r22 = r0 ;; 00AC41832080 0ED1 st2 [r24] = ai, 2 // [r24] = r25, 2 // 067367 00A579940640 0ED2 shr.u ai = ai, 16 ;; // r25 = r25, 16 } { .mmi 008C4183200B 0EE0 (pr11) st2 [r24] = ai // [r24] = r25 008C0183200C 0EE1 (pr12) st1 [r24] = ai // [r24] = r25 00A0603002C0 0EE2 tbit.z pr11, pr12 = r3, 0 ;; // 067362 } { .mii 00AC01B3804A 0EF0 (pr10) st1 [r27] = r28, 1 // 067366 00A5B9C2070A 0EF1 (pr10) shr.u r28 = r28, 8 010808B68600 0EF2 adds r24 = 180, r11 // 067367 } { .mmi 010800000640 0F00 mov ai = r0 ;; // r25 = r0 010808B480C0 0F01 adds r3 = 164, r11 // 067362 000008000000 0F02 nop.i 0 ;; } { .mib 00AC41B38080 0F10 st2 [r27] = r28, 2 // 067366 00A579C40700 0F11 shr.u r28 = r28, 16 004000000000 0F12 nop.b 0 ;; } { .mmi 008C41B38009 0F20 (pr9) st2 [r27] = r28 008C01B3800A 0F21 (pr10) st1 [r27] = r28 00A051200240 0F22 tbit.z pr9, pr10 = r18, 0 ;; // 067369 } { .mii 00AC01E3E04E 0F30 (pr14) st1 [r30] = r31, 1 // 067365 00A5B9F207CE 0F31 (pr14) shr.u r31 = r31, 8 010808B706C0 0F32 adds r27 = 184, r11 // 067366 } { .mmi 010800000700 0F40 mov r28 = r0 ;; 00AC41E3E080 0F41 st2 [r30] = r31, 2 // 067365 00A579F407C0 0F42 shr.u r31 = r31, 16 ;; } { .mmi 008C41E3E00D 0F50 (pr13) st2 [r30] = r31 008C01E3E00E 0F51 (pr14) st1 [r30] = r31 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 48 ThrottleZero 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00A071500340 0F52 tbit.z pr13, pr14 = r21, 0 ;; // 067368 } { .mii 00AC0214404F 0F60 (pr15) st1 [r33] = r34, 1 // 067364 00A5BA22088F 0F61 (pr15) shr.u r34 = r34, 8 010808B60780 0F62 adds r30 = 176, r11 // 067365 } { .mmi 0108000007C0 0F70 mov r31 = r0 ;; 00AC42144080 0F71 st2 [r33] = r34, 2 // 067364 00A57A240880 0F72 shr.u r34 = r34, 16 ;; } { .mmi 008C42144006 0F80 (pr6) st2 [r33] = r34 008C0214400F 0F81 (pr15) st1 [r33] = r34 00A079800180 0F82 tbit.z pr6, pr15 = r24, 0 ;; // 067367 } { .mii 00AC0244A048 0F90 (pr8) st1 [r36] = r37, 1 // 067363 00A5BA520948 0F91 (pr8) shr.u r37 = r37, 8 010808B58840 0F92 adds r33 = 172, r11 // 067364 } { .mmi 010800000880 0FA0 mov r34 = r0 ;; 00AC4244A080 0FA1 st2 [r36] = r37, 2 // 067363 00A57A540940 0FA2 shr.u r37 = r37, 16 ;; } { .mmi 008C4244A007 0FB0 (pr7) st2 [r36] = r37 008C0244A008 0FB1 (pr8) st1 [r36] = r37 00A041B001C0 0FB2 tbit.z pr7, pr8 = r27, 0 ;; // 067366 } { .mii 00AC0264E04C 0FC0 (pr12) st1 [r38] = r39, 1 // 067362 00A5BA7209CC 0FC1 (pr12) shr.u r39 = r39, 8 010808B50900 0FC2 adds r36 = 168, r11 // 067363 } { .mmi 010800000940 0FD0 mov r37 = r0 ;; 00AC4264E080 0FD1 st2 [r38] = r39, 2 // 067362 00A57A7409C0 0FD2 shr.u r39 = r39, 16 ;; } { .mmi 008C4264E00B 0FE0 (pr11) st2 [r38] = r39 008C0264E00C 0FE1 (pr12) st1 [r38] = r39 00A061E002C0 0FE2 tbit.z pr11, pr12 = r30, 0 ;; // 067365 } { .mii 00AC0122604A 0FF0 (pr10) st1 [r18] = r19, 1 // 067369 00A5B93204CA 0FF1 (pr10) shr.u r19 = r19, 8 0108000009C0 0FF2 mov r39 = r0 // 067362 } { .mmi 010800300980 1000 mov r38 = r3 ;; 00AC41226080 1001 st2 [r18] = r19, 2 // 067369 00A5793404C0 1002 shr.u r19 = r19, 16 ;; } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 49 ThrottleZero 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mmi 008C41226009 1010 (pr9) st2 [r18] = r19 008C0122600A 1011 (pr10) st1 [r18] = r19 00A052100240 1012 tbit.z pr9, pr10 = r33, 0 ;; // 067364 } { .mii 00AC0152C04E 1020 (pr14) st1 [r21] = r22, 1 // 067368 00A5B962058E 1021 (pr14) shr.u r22 = r22, 8 010848B80480 1022 adds r18 = 1216, r11 // 067369 } { .mmi 010810B002C0 1030 adds r11 = 256, r11 ;; // 067359 00CB41200000 1031 lfetch.excl [r18] // 067369 000008000000 1032 nop.i 0 ;; } { .mib 00AC4152C080 1040 st2 [r21] = r22, 2 // 067368 00A579640580 1041 shr.u r22 = r22, 16 004000000000 1042 nop.b 0 ;; } { .mmi 008C4152C00D 1050 (pr13) st2 [r21] = r22 008C0152C00E 1051 (pr14) st1 [r21] = r22 00A072400340 1052 tbit.z pr13, pr14 = r36, 0 ;; // 067363 } { .mib 00AC0183204F 1060 (pr15) st1 [r24] = ai, 1 // [r24] = r25, 1 // 067367 00A5B992064F 1061 (pr15) shr.u ai = ai, 8 // r25 = r25, 8 004000000000 1062 nop.b 0 ;; } { .mib 00AC41832080 1070 st2 [r24] = ai, 2 // [r24] = r25, 2 00A579940640 1071 shr.u ai = ai, 16 // r25 = r25, 16 004000000000 1072 nop.b 0 ;; } { .mmi 008C41832006 1080 (pr6) st2 [r24] = ai // [r24] = r25 008C0183200F 1081 (pr15) st1 [r24] = ai // [r24] = r25 00A078300180 1082 tbit.z pr6, pr15 = r3, 0 ;; // 067362 } { .mib 00AC01B38048 1090 (pr8) st1 [r27] = r28, 1 // 067366 00A5B9C20708 1091 (pr8) shr.u r28 = r28, 8 004000000000 1092 nop.b 0 ;; } { .mib 00AC41B38080 10A0 st2 [r27] = r28, 2 00A579C40700 10A1 shr.u r28 = r28, 16 004000000000 10A2 nop.b 0 ;; } { .mmi 008C41B38007 10B0 (pr7) st2 [r27] = r28 008C01B38008 10B1 (pr8) st1 [r27] = r28 018400A121C0 10B2 cmp4.lt pr7, pr0 = idx, r10 ;; // pr7, pr0 = r9, r10 // 067359 } { .mib 00AC01E3E04C 10C0 (pr12) st1 [r30] = r31, 1 // 067365 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 50 ThrottleZero 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00A5B9F207CC 10C1 (pr12) shr.u r31 = r31, 8 004000000000 10C2 nop.b 0 ;; } { .mib 00AC41E3E080 10D0 st2 [r30] = r31, 2 00A579F407C0 10D1 shr.u r31 = r31, 16 004000000000 10D2 nop.b 0 ;; } { .mmi 008C41E3E00B 10E0 (pr11) st2 [r30] = r31 008C01E3E00C 10E1 (pr12) st1 [r30] = r31 000008000000 10E2 nop.i 0 ;; } { .mib 00AC0214404A 10F0 (pr10) st1 [r33] = r34, 1 // 067364 00A5BA22088A 10F1 (pr10) shr.u r34 = r34, 8 004000000000 10F2 nop.b 0 ;; } { .mib 00AC42144080 1100 st2 [r33] = r34, 2 00A57A240880 1101 shr.u r34 = r34, 16 004000000000 1102 nop.b 0 ;; } { .mmi 008C42144009 1110 (pr9) st2 [r33] = r34 008C0214400A 1111 (pr10) st1 [r33] = r34 000008000000 1112 nop.i 0 ;; } { .mib 00AC0244A04E 1120 (pr14) st1 [r36] = r37, 1 // 067363 00A5BA52094E 1121 (pr14) shr.u r37 = r37, 8 004000000000 1122 nop.b 0 ;; } { .mib 00AC4244A080 1130 st2 [r36] = r37, 2 00A57A540940 1131 shr.u r37 = r37, 16 004000000000 1132 nop.b 0 ;; } { .mmi 008C4244A00D 1140 (pr13) st2 [r36] = r37 008C0244A00E 1141 (pr14) st1 [r36] = r37 000008000000 1142 nop.i 0 ;; } { .mib 00AC0264E04F 1150 (pr15) st1 [r38] = r39, 1 // 067362 00A5BA7209CF 1151 (pr15) shr.u r39 = r39, 8 004000000000 1152 nop.b 0 ;; } { .mib 00AC4264E080 1160 st2 [r38] = r39, 2 00A57A7409C0 1161 shr.u r39 = r39, 16 004000000000 1162 nop.b 0 ;; } { .mmb 008C4264E006 1170 (pr6) st2 [r38] = r39 008C0264E00F 1171 (pr15) st1 [r38] = r39 0095FFF2A007 1172 (pr7) br.cond.dptk.many L$24 ;; // 067359 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 51 ThrottleZero 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mfb 018460812000 1180 cmp4.lt pr0, pr12 = idx, r8 // pr0, pr12 = r9, r8 000008000000 1181 nop.f 0 00860004000C 1182 (pr12) br.cond.dpnt.many L$20 ;; } 1190 L$26: { .mii 010800000540 1190 mov r21 = r0 // 067369 00A050B00240 1191 tbit.z pr9, pr10 = r11, 0 010800B00500 1192 mov r20 = r11 } { .mmi 0119F8BF85C0 11A0 adds r23 = -4, r11 ;; // 067368 00AC0142A04A 11A1 (pr10) st1 [r20] = r21, 1 // 067369 00A5B952054A 11A2 (pr10) shr.u r21 = r21, 8 } { .mii 010800000600 11B0 mov r24 = r0 // 067368 0119F8BE8680 11B1 adds r26 = -12, r11 ;; // 067367 00A071700340 11B2 tbit.z pr13, pr14 = r23, 0 // 067368 } { .mii 0108000006C0 11C0 mov r27 = r0 // 067367 0119F8BF0740 11C1 adds r29 = -8, r11 // 067366 010800000780 11C2 mov r30 = r0 ;; } { .mii 00AC4142A080 11D0 st2 [r20] = r21, 2 // 067369 00A579540540 11D1 shr.u r21 = r21, 16 0119F8BE0800 11D2 adds r32 = -16, r11 // 067365 } { .mmi 010800000840 11E0 mov r33 = r0 ;; 0119F8BD88C0 11E1 adds r35 = -20, r11 // 067364 00A079A00180 11E2 tbit.z pr6, pr15 = r26, 0 // 067367 } { .mii 010800000900 11F0 mov r36 = r0 // 067364 0119F8BD00C0 11F1 adds r3 = -24, r11 ;; // 067363 00A041D001C0 11F2 tbit.z pr7, pr8 = r29, 0 // 067366 } { .mmi 008C4142A009 1200 (pr9) st2 [r20] = r21 // 067369 008C0142A00A 1201 (pr10) st1 [r20] = r21 010800000980 1202 mov r38 = r0 ;; // 067363 } { .mii 00AC0173004E 1210 (pr14) st1 [r23] = r24, 1 // 067368 00A5B982060E 1211 (pr14) shr.u r24 = r24, 8 0119F8BC8440 1212 adds r17 = -28, r11 // 067362 } { .mmi 010800000480 1220 mov r18 = r0 ;; 010800902240 1221 adds r9 = 1, r9 // 067359 00A0620002C0 1222 tbit.z pr11, pr12 = r32, 0 // 067365 } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 52 ThrottleZero 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mmi 010800B802C0 1230 adds r11 = 64, r11 ;; // 067362 00AC41730080 1231 st2 [r23] = r24, 2 // 067368 00A579840600 1232 shr.u r24 = r24, 16 ;; } { .mib 000008000000 1240 nop.m 0 00A052300240 1241 tbit.z pr9, pr10 = r35, 0 // 067364 004000000000 1242 nop.b 0 ;; } { .mmi 008C4173000D 1250 (pr13) st2 [r23] = r24 // 067368 008C0173000E 1251 (pr14) st1 [r23] = r24 00A070300340 1252 tbit.z pr13, pr14 = r3, 0 ;; // 067363 } { .mib 00AC01A3604F 1260 (pr15) st1 [r26] = r27, 1 // 067367 00A5B9B206CF 1261 (pr15) shr.u r27 = r27, 8 004000000000 1262 nop.b 0 ;; } { .mib 00AC41A36080 1270 st2 [r26] = r27, 2 00A579B406C0 1271 shr.u r27 = r27, 16 004000000000 1272 nop.b 0 ;; } { .mmi 008C41A36006 1280 (pr6) st2 [r26] = r27 008C01A3600F 1281 (pr15) st1 [r26] = r27 00A079100180 1282 tbit.z pr6, pr15 = r17, 0 ;; // 067362 } { .mib 00AC01D3C048 1290 (pr8) st1 [r29] = r30, 1 // 067366 00A5B9E20788 1291 (pr8) shr.u r30 = r30, 8 004000000000 1292 nop.b 0 ;; } { .mib 00AC41D3C080 12A0 st2 [r29] = r30, 2 00A579E40780 12A1 shr.u r30 = r30, 16 004000000000 12A2 nop.b 0 ;; } { .mmi 008C41D3C007 12B0 (pr7) st2 [r29] = r30 008C01D3C008 12B1 (pr8) st1 [r29] = r30 0184008121C0 12B2 cmp4.lt pr7, pr0 = idx, r8 ;; // pr7, pr0 = r9, r8 // 067359 } { .mib 00AC0204204C 12C0 (pr12) st1 [r32] = r33, 1 // 067365 00A5BA12084C 12C1 (pr12) shr.u r33 = r33, 8 004000000000 12C2 nop.b 0 ;; } { .mib 00AC42042080 12D0 st2 [r32] = r33, 2 00A57A140840 12D1 shr.u r33 = r33, 16 004000000000 12D2 nop.b 0 ;; } { .mmi 008C4204200B 12E0 (pr11) st2 [r32] = r33 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 53 ThrottleZero 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 008C0204200C 12E1 (pr12) st1 [r32] = r33 000008000000 12E2 nop.i 0 ;; } { .mib 00AC0234804A 12F0 (pr10) st1 [r35] = r36, 1 // 067364 00A5BA42090A 12F1 (pr10) shr.u r36 = r36, 8 004000000000 12F2 nop.b 0 ;; } { .mib 00AC42348080 1300 st2 [r35] = r36, 2 00A57A440900 1301 shr.u r36 = r36, 16 004000000000 1302 nop.b 0 ;; } { .mmi 008C42348009 1310 (pr9) st2 [r35] = r36 008C0234800A 1311 (pr10) st1 [r35] = r36 000008000000 1312 nop.i 0 ;; } { .mib 00AC0034C04E 1320 (pr14) st1 [r3] = r38, 1 // 067363 00A5BA62098E 1321 (pr14) shr.u r38 = r38, 8 004000000000 1322 nop.b 0 ;; } { .mib 00AC4034C080 1330 st2 [r3] = r38, 2 00A57A640980 1331 shr.u r38 = r38, 16 004000000000 1332 nop.b 0 ;; } { .mmi 008C4034C00D 1340 (pr13) st2 [r3] = r38 008C0034C00E 1341 (pr14) st1 [r3] = r38 000008000000 1342 nop.i 0 ;; } { .mib 00AC0112404F 1350 (pr15) st1 [r17] = r18, 1 // 067362 00A5B922048F 1351 (pr15) shr.u r18 = r18, 8 004000000000 1352 nop.b 0 ;; } { .mib 00AC41124080 1360 st2 [r17] = r18, 2 00A579240480 1361 shr.u r18 = r18, 16 004000000000 1362 nop.b 0 ;; } { .mmb 008C41124006 1370 (pr6) st2 [r17] = r18 008C0112400F 1371 (pr15) st1 [r17] = r18 0095FFFC4007 1372 (pr7) br.cond.dptk.many L$26 ;; // 067359 } 1380 L$20: // 067370 { .mfb 000008000000 1380 nop.m 0 000008000000 1381 nop.f 0 00A000001000 1382 br.call.sptk.many rp = // br0 = ThrottleMonitorReset // 067371 ThrottleMonitorReset ;; } { .mii 000008000000 1390 nop.m 0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 54 ThrottleZero 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000154052000 1391 mov.i rspfs = r41 ;; // 067372 000E00150000 1392 mov rp = r40 // br0 = r40 } { .mfb 000008000000 13A0 nop.m 0 000008000000 13A1 nop.f 0 000108001100 13A2 br.ret.sptk.many rp ;; // br0 } .endp ThrottleZero Routine Size: 2432 bytes, Routine Base: $CODE$ + 0A30 .proc ThrottleMonitorReset .align 32 .global ThrottleMonitorReset ThrottleMonitorReset: // 067379 { .mii 002C00C22A80 13B0 alloc r42 = rspfs, 0, 12, 5, 0 012000020380 13B1 mov r14 = 16 010800C00080 13B2 mov r2 = sp // r2 = r12 } { .mmi 012000002640 13C0 mov ai = 1 ;; // r25 = 1 // 067393 010028E183C0 13C1 sub r15 = sp, r14 // r15 = r12, r14 // 067379 000188000A40 13C2 mov r41 = rp // r41 = br0 } { .mmi 012000002B00 13D0 mov out0 = 1 ;; // r44 = 1 // 067393 0080C0F00380 13D1 ld8 r14 = [r15] // 067379 010800F00300 13D2 mov sp = r15 // r12 = r15 } { .mfb 010800100AC0 13E0 mov r43 = gp // r43 = r1 000008000000 13E1 nop.f 0 00A000001000 13E2 br.call.sptk.many rp = // br0 = InstanceMutexLock // 067393 InstanceMutexLock ;; } { .mii 010802B00040 13F0 mov gp = r43 // r1 = r43 0108000008C0 13F1 mov idx = r0 ;; // r35 = r0 // 067402 012000100800 13F2 add r32 = @ltoffx(AccountingPtr), // r32 = @ltoffx(AccountingPtr), r1 // 067395 gp } { .mii 012000100200 1400 add r8 = // r8 = // 067396 @ltoffx(ThrottleBusyMetricTotal), // @ltoffx(ThrottleBusyMetricTotal), r1 gp 0120001000C0 1401 add r3 = // r3 = // 067397 @ltoffx(ThrottleBusyMetricTotal503), gp // @ltoffx(ThrottleBusyMetricTotal503), // r1 012000100880 1402 add r34 = @ltoffx(InstanceNumber), // r34 = @ltoffx(InstanceNumber), r1 // 067398 gp ;; } { .mmi 0080C2000800 1410 ld8.mov r32 = [r32], AccountingPtr // 067395 0080C0800200 1411 ld8.mov r8 = [r8], ThrottleBusyMetricTotal // 067396 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 55 ThrottleMonitorReset 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 1412 nop.i 0 ;; } { .mmi 0080C03000C0 1420 ld8.mov r3 = [r3], ThrottleBusyMetricTotal503 // 067397 0080C2200880 1421 ld8.mov r34 = [r34], InstanceNumber // 067398 000008000000 1422 nop.i 0 ;; } { .mmi 008082000840 1430 ld4 r33 = [r32] ;; // 067395 008C80800000 1431 st4 ThrottleBusyMetricTotal = r0 // [r8] = r0 // 067396 0000B2100840 1432 sxt4 r33 = r33 // 067395 } { .mmi 008C80300000 1440 st4 ThrottleBusyMetricTotal503 = // [r3] = r0 // 067397 r0 ;; 010822170240 1441 adds r9 = 568, r33 // 067395 000008000000 1442 nop.i 0 ;; } { .mmi 008C80900000 1450 st4 [r9] = r0 ;; 008082200280 1451 ld4 r10 = [r34] // 067398 000008000000 1452 nop.i 0 ;; } { .mii 000008000000 1460 nop.m 0 0000B0A00280 1461 sxt4 r10 = r10 ;; 01008A114280 1462 shladd r10 = r10, 2, r33 } { .mmi 012000100840 1470 add r33 = @ltoffx(ThrottleTotal), // r33 = @ltoffx(ThrottleTotal), r1 // 067402 gp ;; 0080C2100840 1471 ld8.mov r33 = [r33], ThrottleTotal 010838AF02C0 1472 adds r11 = 1016, r10 // 067399 } { .mmi 010838AA8280 1480 adds r10 = 980, r10 ;; // 067398 008C80B00000 1481 st4 [r11] = r0 // 067399 000008000000 1482 nop.i 0 } { .mmi 008C80A00000 1490 st4 [r10] = r0 ;; // 067398 008082100440 1491 ld4 r17 = [r33] // 067402 000008000000 1492 nop.i 0 ;; } { .mfb 018C31100000 14A0 cmp4.lt pr0, pr6 = 0, r17 000008000000 14A1 nop.f 0 00860008A006 14A2 (pr6) br.cond.dpnt.many L$6 ;; } { .mii 012000100980 14B0 add r38 = @ltoffx(ThrottleArray), // r38 = @ltoffx(ThrottleArray), r1 // 067404 gp 012000100940 14B1 add r37 = // r37 = @ltoffx(ErrorSanityCheck), r1 // 067419 @ltoffx(ErrorSanityCheck), gp 010800000900 14B2 mov r36 = r0 ;; // 067404 } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 56 ThrottleMonitorReset 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0080C2600980 14C0 ld8.mov r38 = [r38], ThrottleArray 0080C2500940 14C1 ld8.mov r37 = [r37], ErrorSanityCheck // 067419 000008000000 14C2 nop.i 0 ;; } 14D0 L$8: // 067402 { .mib 008082600480 14D0 ld4 r18 = [r38] // 067404 0000B2400540 14D1 sxt4 r21 = r36 004000000000 14D2 nop.b 0 } { .mmi 008082200500 14E0 ld4 r20 = [r34] ;; // 067405 0080820004C0 14E1 ld4 r19 = [r32] 0000B1200480 14E2 sxt4 r18 = r18 // 067404 } { .mii 000008000000 14F0 nop.m 0 0000B1400500 14F1 sxt4 r20 = r20 ;; // 067405 0100015249C0 14F2 add tsptr = r18, r21 // r39 = r18, r21 // 067404 } { .mii 000008000000 1500 nop.m 0 0000B13004C0 1501 sxt4 r19 = r19 ;; // 067405 0111627F85C0 1502 and r23 = -4, r39 // 067406 } { .mmi 0100893284C0 1510 shladd r19 = r20, 2, r19 ;; // 067405 01C04974E200 1511 cmp.eq pr8, pr9 = r39, r23 // 067406 0108393A86C0 1512 adds r27 = 980, r19 // 067405 } { .mii 0108393A8700 1520 adds r28 = 980, r19 0108393F0B80 1521 adds out2 = 1016, r19 ;; // r46 = 1016, r19 // 067407 009E0804E609 1522 (pr9) dep r24 = r39, r0, 3, 2 // 067406 } { .mii 008081700688 1530 (pr8) ld4 r26 = [r23] 010802708740 1531 adds r29 = 4, r39 // 067408 0108393F04C0 1532 adds r19 = 1016, r19 ;; // 067407 } { .mii 008081B006C0 1540 ld4 r27 = [r27] // 067405 011161DF8780 1541 and r30 = -4, r29 ;; // 067408 01C059E3A280 1542 cmp.eq pr10, pr11 = r29, r30 } { .mmi 00A081708689 1550 (pr9) ld4 r26 = [r23], 4 ;; // 067406 000008000000 1551 nop.m 0 009E0803A7CB 1552 (pr11) dep r31 = r29, r0, 3, 2 ;; // 067408 } { .mii 008081700649 1560 (pr9) ld4 ai = [r23] // r25 = [r23] // 067406 00F201A30689 1561 (pr9) shr.u r26 = r26, r24 010129840609 1562 (pr9) sub r24 = 32, r24 ;; } { .mii 000008000000 1570 nop.m 0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 57 ThrottleMonitorReset 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00F241832649 1571 (pr9) shl ai = ai, r24 ;; // r25 = r25, r24 010071A32689 1572 (pr9) or r26 = ai, r26 ;; // r26 = r25, r26 } { .mii 000008000000 1580 nop.m 0 000091A00689 1581 (pr9) zxt4 r26 = r26 ;; 010001A366C0 1582 add r27 = r27, r26 ;; // 067405 } { .mmi 008C81C36000 1590 st4 [r28] = r27 ;; 008081E00B4A 1591 (pr10) ld4 out1 = [r30] // r45 = [r30] // 067408 000008000000 1592 nop.i 0 } { .mmi 008082E00B80 15A0 ld4 out2 = [out2] ;; // r46 = [r46] // 067407 00A081E08B4B 15A1 (pr11) ld4 out1 = [r30], 4 // r45 = [r30], 4 // 067408 000008000000 15A2 nop.i 0 ;; } { .mii 008081E00B0B 15B0 (pr11) ld4 out0 = [r30] // r44 = [r30] 00F202D3EB4B 15B1 (pr11) shr.u out1 = out1, r31 // r45 = r45, r31 010129F407CB 15B2 (pr11) sub r31 = 32, r31 ;; } { .mii 000008000000 15C0 nop.m 0 00F241F58B0B 15C1 (pr11) shl out0 = out0, r31 ;; // r44 = r44, r31 010072D58B4B 15C2 (pr11) or out1 = out0, out1 ;; // r45 = r44, r45 } { .mii 000008000000 15D0 nop.m 0 000092D00B4B 15D1 (pr11) zxt4 out1 = out1 ;; // r45 = r45 010072D34680 15D2 or r26 = r26, out1 // r26 = r26, r45 // 067412 } { .mmi 010002D5CB40 15E0 add out1 = out2, out1 ;; // r45 = r46, r45 // 067407 008C8135A000 15E1 st4 [r19] = out1 // [r19] = r45 01C461A00000 15E2 cmp4.eq pr0, pr12 = r0, r26 // 067412 } { .mfb 000008000000 15F0 nop.m 0 000008000000 15F1 nop.f 0 00860005C00C 15F2 (pr12) br.cond.dpnt.many L$9 ;; // 067411 } { .mii 010802760BC0 1600 adds out3 = 48, r39 // r47 = 48, r39 // 067414 010800C20080 1601 adds r2 = 16, sp ;; // r2 = 16, r12 011162FF8C00 1602 and out4 = -4, out3 ;; // r48 = -4, r47 } { .mmi 01C07B05E380 1610 cmp.eq pr14, pr15 = out3, out4 ;; // pr14, pr15 = r47, r48 008083000B0E 1611 (pr14) ld4 out0 = [out4] // r44 = [r48] 009E0805E0CF 1612 (pr15) dep r3 = out3, r0, 3, 2 ;; // r3 = r47, r0, 3, 2 } { .mmi 00A083008B0F 1620 (pr15) ld4 out0 = [out4], 4 ;; // r44 = [r48], 4 00808300020F 1621 (pr15) ld4 r8 = [out4] // r8 = [r48] 00F202C06B0F 1622 (pr15) shr.u out0 = out0, r3 // r44 = r44, r3 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 58 ThrottleMonitorReset 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mmi 0101283400CF 1630 (pr15) sub r3 = 32, r3 ;; 000008000000 1631 nop.m 0 00F24031020F 1632 (pr15) shl r8 = r8, r3 ;; } { .mmi 010072C10B0F 1640 (pr15) or out0 = r8, out0 ;; // r44 = r8, r44 000008000000 1641 nop.m 0 0000B2C00B00 1642 sxt4 out0 = out0 ;; // r44 = r44 } { .mmb 01C4000581C0 1650 cmp4.eq pr7, pr0 = out0, r0 // pr7, pr0 = r44, r0 // 067415 008C80258000 1651 st4 [r2] = out0 // [r2] = r44 // 067414 008600040007 1652 (pr7) br.cond.dpnt.many L$12 ;; // 067415 } 1660 L$13: { .mmi 010800C203C0 1660 adds r15 = 16, sp ;; // r15 = 16, r12 // 067417 008080F00240 1661 ld4 r9 = [r15] 000008000000 1662 nop.i 0 ;; } { .mii 000008000000 1670 nop.m 0 0000B0900240 1671 sxt4 r9 = r9 ;; 010800908240 1672 adds r9 = 4, r9 ;; } { .mmi 0111609F82C0 1680 and r11 = -4, r9 ;; 01C048B12200 1681 cmp.eq pr8, pr9 = r9, r11 000008000000 1682 nop.i 0 ;; } { .mib 008080B00488 1690 (pr8) ld4 r18 = [r11] 009E08012289 1691 (pr9) dep r10 = r9, r0, 3, 2 004000000000 1692 nop.b 0 ;; } { .mmi 00A080B08489 16A0 (pr9) ld4 r18 = [r11], 4 ;; 008080B00449 16A1 (pr9) ld4 r17 = [r11] 00F201214489 16A2 (pr9) shr.u r18 = r18, r10 } { .mmi 010128A40289 16B0 (pr9) sub r10 = 32, r10 ;; 000008000000 16B1 nop.m 0 00F240A22449 16B2 (pr9) shl r17 = r17, r10 ;; } { .mmi 010071222489 16C0 (pr9) or r18 = r17, r18 ;; 000008000000 16C1 nop.m 0 000091200489 16C2 (pr9) zxt4 r18 = r18 ;; } { .mfb 01C451200000 16D0 cmp4.eq pr0, pr10 = r0, r18 000008000000 16D1 nop.f 0 00860001000A 16D2 (pr10) br.cond.dpnt.many L$14 ;; } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 59 ThrottleMonitorReset 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mmi 010800C20400 16E0 adds r16 = 16, sp ;; // r16 = 16, r12 // 067418 008081000540 16E1 ld4 r21 = [r16] 000008000000 16E2 nop.i 0 ;; } { .mii 000008000000 16F0 nop.m 0 0000B1500540 16F1 sxt4 r21 = r21 ;; 0111615F8500 16F2 and r20 = -4, r21 ;; } { .mmi 01C06942A300 1700 cmp.eq pr12, pr13 = r21, r20 ;; 00808140060C 1701 (pr12) ld4 r24 = [r20] 009E0802A58D 1702 (pr13) dep r22 = r21, r0, 3, 2 ;; } { .mmi 00A08140860D 1710 (pr13) ld4 r24 = [r20], 4 ;; 0080814005CD 1711 (pr13) ld4 r23 = [r20] 00F20182C60D 1712 (pr13) shr.u r24 = r24, r22 } { .mmi 01012964058D 1720 (pr13) sub r22 = 32, r22 ;; 000008000000 1721 nop.m 0 00F24162E5CD 1722 (pr13) shl r23 = r23, r22 ;; } { .mmi 01007182E60D 1730 (pr13) or r24 = r23, r24 ;; 000008000000 1731 nop.m 0 00009180060D 1732 (pr13) zxt4 r24 = r24 ;; } { .mfb 01C4018003C0 1740 cmp4.eq pr15, pr0 = r0, r24 000008000000 1741 nop.f 0 00860000A00F 1742 (pr15) br.cond.dpnt.many L$16 ;; // 067417 } 1750 L$14: { .mii 012000100C00 1750 add out4 = @ltoffx($LITERAL$), gp // r48 = @ltoffx($LITERAL$), r1 // 067419 01200000A640 1751 mov ai = 5 // r25 = 5 010802500B80 1752 mov out2 = r37 // r46 = r37 } { .mmi 012028048B40 1760 mov out1 = 676 ;; // r45 = 676 0080C3000BC0 1761 ld8.mov out3 = [r48], $LITERAL$ 01201802CC00 1762 mov out4 = 406 // r48 = 406 } { .mfb 010800000B00 1770 mov out0 = r0 // r44 = r0 000008000000 1771 nop.f 0 00A000001000 1772 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed } { .mfi 010802B00040 1780 mov gp = r43 // r1 = r43 000008000000 1781 nop.f 0 000008000000 1782 nop.i 0 } 1790 L$16: Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 60 ThrottleMonitorReset 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mii 010800C20400 1790 adds r16 = 16, sp // r16 = 16, r12 // 067420 010800C203C0 1791 adds r15 = 16, sp // r15 = 16, r12 // 067421 012000006640 1792 mov ai = 3 ;; // r25 = 3 } { .mii 0080810000C0 17A0 ld4 r3 = [r16] // 067420 012000100B80 17A1 add out2 = @ltoffx($LITERAL$), gp // r46 = @ltoffx($LITERAL$), r1 // 067421 000008000000 17A2 nop.i 0 } { .mmi 008080F00B00 17B0 ld4 out0 = [r15] ;; // r44 = [r15] 0080C2E00B40 17B1 ld8.mov out1 = [r46], $LITERAL$ 0000B03000C0 17B2 sxt4 r3 = r3 // 067420 } { .mii 000008000000 17C0 nop.m 0 0000B2C00B00 17C1 sxt4 out0 = out0 ;; // r44 = r44 // 067421 01080039A0C0 17C2 adds r3 = 77, r3 // 067420 } { .mmi 012018030B80 17D0 mov out2 = 408 ;; // r46 = 408 // 067421 0111603F8200 17D1 and r8 = -4, r3 // 067420 000008000000 17D2 nop.i 0 ;; } { .mmi 01C038806180 17E0 cmp.eq pr6, pr7 = r3, r8 ;; 008080800A06 17E1 (pr6) ld4 r40 = [r8] 009E08006247 17E2 (pr7) dep r9 = r3, r0, 3, 2 ;; } { .mmi 00A080808A07 17F0 (pr7) ld4 r40 = [r8], 4 ;; 008080800287 17F1 (pr7) ld4 r10 = [r8] 00F202812A07 17F2 (pr7) shr.u r40 = r40, r9 } { .mmi 010128940247 1800 (pr7) sub r9 = 32, r9 ;; 000008000000 1801 nop.m 0 00F240914287 1802 (pr7) shl r10 = r10, r9 ;; } { .mfb 010072814A07 1810 (pr7) or r40 = r10, r40 000008000000 1811 nop.f 0 00A000001000 1812 br.call.sptk.many rp = VmFree ;; // br0 = VmFree // 067421 } { .mii 010800C200C0 1820 adds r3 = 16, sp // r3 = 16, r12 // 067422 010800C20380 1821 adds r14 = 16, sp // r14 = 16, r12 // 067415 010802B00040 1822 mov gp = r43 ;; // r1 = r43 // 067421 } { .mmi 008C80350000 1830 st4 [r3] = r40 ;; // 067422 008080E00200 1831 ld4 r8 = [r14] // 067415 000008000000 1832 nop.i 0 ;; } { .mib 01C430010000 1840 cmp4.eq pr0, pr6 = r8, r0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 61 ThrottleMonitorReset 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0000B0800200 1841 sxt4 r8 = r8 0095FFFC4006 1842 (pr6) br.cond.dptk.many L$13 ;; } 1850 L$12: // 067423 { .mii 010802760280 1850 adds r10 = 48, r39 // 067424 0108000002C0 1851 mov r11 = r0 010802710440 1852 adds r17 = 8, r39 // 067425 } { .mmi 0108000004C0 1860 mov r19 = r0 ;; 010801100480 1861 mov r18 = r17 00A048A00200 1862 tbit.z pr8, pr9 = r10, 0 ;; // 067424 } { .mii 00AC00A16049 1870 (pr9) st1 [r10] = r11, 1 00A5B8B202C9 1871 (pr9) shr.u r11 = r11, 8 ;; 00A059100280 1872 tbit.z pr10, pr11 = r17, 0 ;; // 067425 } { .mib 00AC40A16080 1880 st2 [r10] = r11, 2 // 067424 00A578B402C0 1881 shr.u r11 = r11, 16 004000000000 1882 nop.b 0 ;; } { .mmi 008C40A16008 1890 (pr8) st2 [r10] = r11 008C00A16009 1891 (pr9) st1 [r10] = r11 000008000000 1892 nop.i 0 ;; } { .mib 00AC0122604B 18A0 (pr11) st1 [r18] = r19, 1 // 067425 00A5B93204CB 18A1 (pr11) shr.u r19 = r19, 8 004000000000 18A2 nop.b 0 ;; } { .mib 00AC41226080 18B0 st2 [r18] = r19, 2 00A5793404C0 18B1 shr.u r19 = r19, 16 004000000000 18B2 nop.b 0 ;; } { .mmi 008C4122600A 18C0 (pr10) st2 [r18] = r19 008C0122600B 18C1 (pr11) st1 [r18] = r19 000008000000 18C2 nop.i 0 ;; } 18D0 L$9: // 067427 { .mii 008082100500 18D0 ld4 r20 = [r33] // 067402 0108023028C0 18D1 adds r35 = 1, r35 // 067427 010802480900 18D2 adds r36 = 64, r36 ;; } { .mfb 018401446300 18E0 cmp4.lt pr12, pr0 = idx, r20 // pr12, pr0 = r35, r20 // 067402 000008000000 18E1 nop.f 0 0095FFF7E00C 18E2 (pr12) br.cond.dptk.many L$8 ;; } 18F0 L$6: // 067427 { .mib Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 62 ThrottleMonitorReset 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 012000002640 18F0 mov ai = 1 // r25 = 1 // 067429 012000002B00 18F1 mov out0 = 1 // r44 = 1 00A000001000 18F2 br.call.sptk.many rp = // br0 = InstanceMutexUnLock InstanceMutexUnLock ;; } { .mii 010802B00040 1900 mov gp = r43 // r1 = r43 000154054000 1901 mov.i rspfs = r42 ;; // 067430 000E00152000 1902 mov rp = r41 // br0 = r41 } { .mfb 010800C20300 1910 adds sp = 16, sp // r12 = 16, r12 000008000000 1911 nop.f 0 000108001100 1912 br.ret.sptk.many rp ;; // br0 } .endp ThrottleMonitorReset Routine Size: 1392 bytes, Routine Base: $CODE$ + 13B0 .proc ThrottleBegin .align 32 .global ThrottleBegin ThrottleBegin: // 067441 { .mii 002C00C28A40 1920 alloc r41 = rspfs, 1, 11, 8, 0 012000100880 1921 add r34 = // r34 = // 067459 @ltoffx(ThrottleBusyMetricTotal503), gp // @ltoffx(ThrottleBusyMetricTotal503), // r1 012000060380 1922 mov r14 = 48 // 067441 } { .mmi 012000100840 1930 add r33 = // r33 = // 067458 @ltoffx(ThrottleBusyMetricTotal), // @ltoffx(ThrottleBusyMetricTotal), r1 gp ;; 0080C2200880 1931 ld8.mov r34 = [r34], ThrottleBusyMetricTotal503 // 067459 010028E183C0 1932 sub r15 = sp, r14 // r15 = r12, r14 // 067441 } { .mii 0080C2100840 1940 ld8.mov r33 = [r33], ThrottleBusyMetricTotal // 067458 010800C00080 1941 mov r2 = sp ;; // r2 = r12 // 067441 010800100AC0 1942 mov r43 = gp // r43 = r1 } { .mii 0080C0F00380 1950 ld8 r14 = [r15] 010800F00300 1951 mov sp = r15 // r12 = r15 0119F80FE7C0 1952 adds r31 = -1, r0 ;; } { .mii 008082200240 1960 ld4 r9 = [r34] // 067459 000188000A00 1961 mov r40 = rp // r40 = br0 // 067441 0119F80FE600 1962 adds r24 = -1, r0 } { .mmi 008082100200 1970 ld4 r8 = [r33] ;; // 067458 010800802200 1971 adds r8 = 1, r8 000198000A80 1972 mov r42 = pr // 067441 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 63 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mii 01C400900200 1980 cmp4.eq pr8, pr0 = r0, r9 // 067459 0119F80FE5C0 1981 adds r23 = -1, r0 // 067441 000008000000 1982 nop.i 0 ;; } { .mfb 008C82110000 1990 st4 [r33] = r8 // 067458 000008000000 1991 nop.f 0 008600054008 1992 (pr8) br.cond.dpnt.many L$193 ;; // 067459 } { .mii 012000002640 19A0 mov ai = 1 // r25 = 1 // 067464 0000B0900240 19A1 sxt4 r9 = r9 // 067462 0000B0800200 19A2 sxt4 r8 = r8 // 067463 } { .mmi 012000002B00 19B0 mov out0 = 1 ;; // r44 = 1 // 067464 00C708012180 19B1 setf.sig f6 = r9 // 067462 000008000000 19B2 nop.i 0 } { .mlx 00C708010240 19C0 setf.sig f9 = r8 // 067463 810164000000 19C1 movl r11 = 4636737291354636288 ;; // 067462 0180000005 } { .mfi 00C7C8016200 19D0 setf.d f8 = r11 000008000000 19D1 nop.f 0 000008000000 19D2 nop.i 0 ;; } { .mfi 000008000000 19E0 nop.m 0 0000E0012280 19E1 fcvt.xf f10 = f9 // 067463 000008000000 19E2 nop.i 0 } { .mfi 000008000000 19F0 nop.m 0 0000E000C1C0 19F1 fcvt.xf f7 = f6 // 067462 000008000000 19F2 nop.i 0 ;; } { .mfi 000008000000 1A00 nop.m 0 012408A00280 1A01 fnorm.d.s1 f10 = f10 // 067463 000008000000 1A02 nop.i 0 } { .mfi 000008000000 1A10 nop.m 0 0124087001C0 1A11 fnorm.d.s1 f7 = f7 // 067462 000008000000 1A12 nop.i 0 ;; } { .mfi 000008000000 1A20 nop.m 0 0120407001C0 1A21 fmpy.d f7 = f7, f8 000008000000 1A22 nop.i 0 ;; } { .mfi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 64 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 1A30 nop.m 0 000248A0E2C0 1A31 frcpa f11, pr9 = f7, f10 000008000000 1A32 nop.i 0 ;; } { .mfi 000008000000 1A40 nop.m 0 010458700309 1A41 (pr9) fma.s1 f12 = f7, f11, f0 000008000000 1A42 nop.i 0 } { .mfi 000008000000 1A50 nop.m 0 018458A02349 1A51 (pr9) fnma.s1 f13 = f10, f11, f1 000008000000 1A52 nop.i 0 ;; } { .mfi 000008000000 1A60 nop.m 0 010460D18309 1A61 (pr9) fma.s1 f12 = f13, f12, f12 000008000000 1A62 nop.i 0 } { .mfi 000008000000 1A70 nop.m 0 010468D00389 1A71 (pr9) fma.s1 f14 = f13, f13, f0 000008000000 1A72 nop.i 0 ;; } { .mfi 000008000000 1A80 nop.m 0 010458D163C9 1A81 (pr9) fma.s1 f15 = f13, f11, f11 000008000000 1A82 nop.i 0 ;; } { .mfi 000008000000 1A90 nop.m 0 010460E18309 1A91 (pr9) fma.s1 f12 = f14, f12, f12 000008000000 1A92 nop.i 0 } { .mfi 000008000000 1AA0 nop.m 0 010470E00349 1AA1 (pr9) fma.s1 f13 = f14, f14, f0 000008000000 1AA2 nop.i 0 ;; } { .mfi 000008000000 1AB0 nop.m 0 010478E1E3C9 1AB1 (pr9) fma.s1 f15 = f14, f15, f15 000008000000 1AB2 nop.i 0 ;; } { .mfi 000008000000 1AC0 nop.m 0 012460D18309 1AC1 (pr9) fma.d.s1 f12 = f13, f12, f12 000008000000 1AC2 nop.i 0 ;; } { .mfi 000008000000 1AD0 nop.m 0 010478D1E3C9 1AD1 (pr9) fma.s1 f15 = f13, f15, f15 000008000000 1AD2 nop.i 0 ;; } { .mfi 000008000000 1AE0 nop.m 0 01A460A0E349 1AE1 (pr9) fnma.d.s1 f13 = f10, f12, f7 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 65 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 1AE2 nop.i 0 ;; } { .mfi 000008000000 1AF0 nop.m 0 012078D182C9 1AF1 (pr9) fma.d f11 = f13, f15, f12 000008000000 1AF2 nop.i 0 ;; } { .mmi 010800F603C0 1B00 adds r15 = 48, r15 ;; 00FCC8F17400 1B01 stfd [r15] = f11, -48 000008000000 1B02 nop.i 0 ;; } { .mfb 000008000000 1B10 nop.m 0 000008000000 1B11 nop.f 0 00A000001000 1B12 br.call.sptk.many rp = // br0 = InstanceMutexLock // 067464 InstanceMutexLock ;; } { .mii 010800C608C0 1B20 adds r35 = 48, sp // r35 = 48, r12 // 067465 010802B00040 1B21 mov gp = r43 // r1 = r43 // 067464 012050004640 1B22 mov ai = 1282 // r25 = 1282 // 067466 } { .mmi 010800C60B40 1B30 adds out1 = 48, sp ;; // r45 = 48, r12 00C0C2300200 1B31 ldfd f8 = [r35] // 067465 012000100940 1B32 add r37 = @ltoffx(AccountingPtr), // r37 = @ltoffx(AccountingPtr), r1 gp ;; } { .mmi 0080C2500940 1B40 ld8.mov r37 = [r37], AccountingPtr ;; 008082500980 1B41 ld4 r38 = [r37] 000008000000 1B42 nop.i 0 ;; } { .mii 000008000000 1B50 nop.m 0 0000B2600980 1B51 sxt4 r38 = r38 ;; 010822670980 1B52 adds r38 = 568, r38 ;; } { .mfi 000008000000 1B60 nop.m 0 0000D00101C0 1B61 fcvt.fx.trunc f7 = f8 000008000000 1B62 nop.i 0 ;; } { .mmi 00870800E900 1B70 getf.sig r36 = f7 ;; 008C82648000 1B71 st4 [r38] = r36 000008000000 1B72 nop.i 0 } { .mfb 000008000000 1B80 nop.m 0 000008000000 1B81 nop.f 0 00A000001000 1B82 br.call.sptk.many rp = MATH$MODF_T ;; // br0 = MATH$MODF_T // 067466 } { .mlx 010802B00040 1B90 mov gp = r43 // r1 = r43 80FF80000000 1B91 movl r39 = 4602678819172646912 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 66 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0180000013 } { .mfi 00C7C804E180 1BA0 setf.d f6 = r39 000008000000 1BA1 nop.f 0 000008000000 1BA2 nop.i 0 ;; } { .mfi 000008000000 1BB0 nop.m 0 00823880C180 1BB1 fcmp.le pr6, pr7 = f6, f8 000008000000 1BB2 nop.i 0 ;; } { .mfb 000008000000 1BC0 nop.m 0 000008000000 1BC1 nop.f 0 00860000A007 1BC2 (pr7) br.cond.dpnt.many L$197 ;; } { .mmi 008082500940 1BD0 ld4 r37 = [r37] ;; // 067467 000008000000 1BD1 nop.m 0 0000B2500940 1BD2 sxt4 r37 = r37 ;; } { .mii 0108225708C0 1BE0 adds r35 = 568, r37 010822570940 1BE1 adds r37 = 568, r37 000008000000 1BE2 nop.i 0 ;; } { .mmi 0080823008C0 1BF0 ld4 r35 = [r35] ;; 0108023028C0 1BF1 adds r35 = 1, r35 000008000000 1BF2 nop.i 0 ;; } { .mfi 008C82546000 1C00 st4 [r37] = r35 000008000000 1C01 nop.f 0 000008000000 1C02 nop.i 0 } 1C10 L$197: { .mib 012000002640 1C10 mov ai = 1 // r25 = 1 // 067468 012000002B00 1C11 mov out0 = 1 // r44 = 1 00A000001000 1C12 br.call.sptk.many rp = // br0 = InstanceMutexUnLock InstanceMutexUnLock ;; } { .mfi 010802B00040 1C20 mov gp = r43 // r1 = r43 000008000000 1C21 nop.f 0 000008000000 1C22 nop.i 0 } 1C30 L$193: // 067469 { .mii 010912048900 1C30 adds r36 = 4388, in0 // r36 = 4388, r32 // 067471 0109120609C0 1C31 adds r39 = 4400, in0 ;; // r39 = 4400, r32 // 067473 012000100980 1C32 add r38 = @ltoffx(ThrottleArray), // r38 = @ltoffx(ThrottleArray), r1 // 067471 gp } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 67 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 008082400900 1C40 ld4 r36 = [r36] 0080827009C0 1C41 ld4 r39 = [r39] // 067473 000008000000 1C42 nop.i 0 ;; } { .mii 0080C2600980 1C50 ld8.mov r38 = [r38], ThrottleArray // 067471 00A7CB948900 1C51 shl r36 = r36, 6 01C4027001C0 1C52 cmp4.eq pr7, pr0 = r0, r39 ;; // 067473 } { .mib 000008000000 1C60 nop.m 0 0000B2400900 1C61 sxt4 r36 = r36 // 067471 004000000000 1C62 nop.b 0 ;; } { .mmi 008082600980 1C70 ld4 r38 = ThrottleArray ;; // r38 = [r38] 000008000000 1C71 nop.m 0 0000B2600980 1C72 sxt4 r38 = r38 ;; } { .mfb 01000244C900 1C80 add tsptr = r38, r36 // r36 = r38, r36 000008000000 1C81 nop.f 0 008600114007 1C82 (pr7) br.cond.dpnt.many L$199 ;; // 067473 } { .mmi 0108220D08C0 1C90 adds r35 = 616, in0 ;; // r35 = 616, r32 // 067483 0080023008C0 1C91 ld1 r35 = [r35] 000008000000 1C92 nop.i 0 ;; } { .mii 000008000000 1CA0 nop.m 0 0000A23008C0 1CA1 sxt1 r35 = r35 ;; 01C042300000 1CA2 cmp.eq pr0, pr8 = r0, r35 } { .mfb 000008000000 1CB0 nop.m 0 000008000000 1CB1 nop.f 0 008600040008 1CB2 (pr8) br.cond.dpnt.many L$200 ;; } { .mmi 01C4500402C0 1CC0 cmp4.eq pr11, pr10 = rqptr, r0 ;; // pr11, pr10 = r32, r0 // 067485 01C00000134B 1CC1 (pr11) cmp.eq.unc pr13, pr0 = r0, r0 01C00000130A 1CC2 (pr10) cmp.eq.unc pr12, pr0 = r0, r0 } { .bbb 00860000200C 1CD0 (pr12) br.cond.dpnt.many L$202 004000000000 1CD1 nop.b 0 00860002200D 1CD2 (pr13) br.cond.dpnt.many L$203 ;; } 1CE0 L$202: { .mii 012000100940 1CE0 add r37 = @ltoff(Watch+124), gp // r37 = @ltoff(Watch+124), r1 01080A0D82C0 1CE1 adds r11 = 236, in0 // r11 = 236, r32 000008000000 1CE2 nop.i 0 ;; } { .mmi 0080C2500940 1CF0 ld8 r37 = Watch // r37 = [r37] Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 68 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 008080B00440 1CF1 ld4 r17 = [r11] 000008000000 1CF2 nop.i 0 ;; } { .mii 0111625F00C0 1D00 and r3 = -8, r37 01C4311001C0 1D01 cmp4.eq pr7, pr6 = r0, r17 ;; 01C07834A000 1D02 cmp.eq pr0, pr15 = r37, r3 } { .mmi 00A0C0310280 1D10 ld8 r10 = Watch, 8 ;; // r10 = [r3], 8 000008000000 1D11 nop.m 0 009E1004A20F 1D12 (pr15) dep r8 = Watch, r0, 3, 3 ;; // r8 = r37, r0, 3, 3 } { .mmi 0080C030024F 1D20 (pr15) ld8 r9 = Watch ;; // r9 = [r3] 000008000000 1D21 nop.m 0 00F200A1028F 1D22 (pr15) shr.u r10 = r10, r8 } { .mmi 01012888020F 1D30 (pr15) sub r8 = 64, r8 ;; 000008000000 1D31 nop.m 0 00F24081224F 1D32 (pr15) shl r9 = r9, r8 ;; } { .mmi 010070A1228F 1D40 (pr15) or r10 = r9, r10 ;; 010160A04280 1D41 and r10 = 2, r10 000008000000 1D42 nop.i 0 ;; } { .mmi 01C000A00240 1D50 cmp.eq pr9, pr0 = r0, r10 ;; 01C2000001C9 1D51 (pr9) cmp.eq.or.andcm pr7, pr0 = r0, r0 000008000000 1D52 nop.i 0 } { .mfb 000008000000 1D60 nop.m 0 000008000000 1D61 nop.f 0 008600010007 1D62 (pr7) br.cond.dpnt.many L$203 ;; } { .mmi 01C000001280 1D70 cmp.eq.unc pr10, pr0 = r0, r0 ;; // 067486 01A00000028C 1D71 (pr12) cmp.ltu pr10, pr0 = r0, r0 000008000000 1D72 nop.i 0 } { .bbb 00860000200A 1D80 (pr10) br.cond.dpnt.many L$207 004000000000 1D81 nop.b 0 008000005000 1D82 br.sptk.many L$206 ;; } 1D90 L$207: { .mfi 010800000440 1D90 mov r17 = r0 000008000000 1D91 nop.f 0 000008000000 1D92 nop.i 0 } 1DA0 L$206: { .mii 012000100B80 1DA0 add out2 = @ltoffx($LITERAL$), gp // r46 = @ltoffx($LITERAL$), r1 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 69 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 012000100480 1DA1 add r18 = @ltoff($LITERAL$+672), // r18 = @ltoff($LITERAL$+672), r1 // 067487 gp 01200000A640 1DA2 mov ai = 5 ;; // r25 = 5 // 067486 } { .mmi 0080C2E00B40 1DB0 ld8.mov out1 = [r46], $LITERAL$ 0080C1200C00 1DB1 ld8 out4 = $LITERAL$ // r48 = [r18] // 067487 012000004BC0 1DB2 mov out3 = 2 ;; // r47 = 2 // 067486 } { .mib 0120180B2B80 1DC0 mov out2 = 473 // r46 = 473 0000B1100B00 1DC1 sxt4 out0 = r17 // r44 = r17 00A000001000 1DC2 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802B00040 1DD0 mov gp = r43 // r1 = r43 000008000000 1DD1 nop.f 0 000008000000 1DD2 nop.i 0 } 1DE0 L$203: // 067487 { .mii 010902098980 1DE0 adds r38 = 4172, in0 // r38 = 4172, r32 // 067488 0109120809C0 1DE1 adds r39 = 4416, in0 // r39 = 4416, r32 0109120788C0 1DE2 adds r35 = 4412, in0 ;; // r35 = 4412, r32 } { .mii 010912070840 1DF0 adds r33 = 4408, in0 // r33 = 4408, r32 010912068880 1DF1 adds r34 = 4404, in0 // r34 = 4404, r32 010912060900 1DF2 adds r36 = 4400, in0 // r36 = 4400, r32 } { .mmi 010912048940 1E00 adds r37 = 4388, in0 ;; // r37 = 4388, r32 0109120580C0 1E01 adds r3 = 4396, in0 // r3 = 4396, r32 010912050200 1E02 adds r8 = 4392, in0 // r8 = 4392, r32 } { .mii 008C82600000 1E10 st4 [r38] = r0 01092A030280 1E11 adds r10 = 4760, in0 ;; // r10 = 4760, r32 // 067489 0120180E8240 1E12 mov r9 = 500 } { .mmi 008C82700000 1E20 st4 [r39] = r0 // 067488 008C82300000 1E21 st4 [r35] = r0 012000004640 1E22 mov ai = 2 ;; // r25 = 2 // 067490 } { .mmi 008C82100000 1E30 st4 [r33] = r0 // 067488 008C82200000 1E31 st4 [r34] = r0 012000094B40 1E32 mov out1 = 74 ;; // r45 = 74 // 067490 } { .mmi 008C82400000 1E40 st4 [r36] = r0 // 067488 008C82500000 1E41 st4 [r37] = r0 010802000B00 1E42 mov out0 = rqptr ;; // r44 = r32 // 067490 } { .mmi 008C80300000 1E50 st4 [r3] = r0 // 067488 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 70 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 008C80800000 1E51 st4 [r8] = r0 000008000000 1E52 nop.i 0 ;; } { .mfb 008C80A12000 1E60 st4 [r10] = r9 // 067489 000008000000 1E61 nop.f 0 00A000001000 1E62 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor // 067490 } { .mii 010802B00040 1E70 mov gp = r43 // r1 = r43 012000008640 1E71 mov ai = 4 // r25 = 4 010800800B40 1E72 mov out1 = r8 // r45 = r8 } { .mmi 010802000B00 1E80 mov out0 = rqptr ;; // r44 = r32 012000100BC0 1E81 add out3 = @ltoffx($LITERAL$), gp // r47 = @ltoffx($LITERAL$), r1 000008000000 1E82 nop.i 0 ;; } { .mib 0080C2F00B80 1E90 ld8.mov out2 = [r47], $LITERAL$ 0120180BABC0 1E91 mov out3 = 477 // r47 = 477 00A000001000 1E92 br.call.sptk.many rp = ErrorGeneral ;; // br0 = ErrorGeneral } { .mfb 000008000000 1EA0 nop.m 0 000008000000 1EA1 nop.f 0 008000315000 1EA2 br.sptk.many L$268 ;; } 1EB0 L$200: // 067492 { .mii 0108024608C0 1EB0 adds r35 = 48, r36 // 067498 0109520189C0 1EB1 adds r39 = 5388, in0 // r39 = 5388, r32 // 067495 012000002980 1EB2 mov r38 = 1 ;; } { .mmi 0111623F8940 1EC0 and r37 = -4, r35 // 067498 008C8274C000 1EC1 st4 [r39] = r38 // 067495 000008000000 1EC2 nop.i 0 ;; } { .mmi 01C03A546180 1ED0 cmp.eq pr6, pr7 = r35, r37 ;; // 067498 008082500286 1ED1 (pr6) ld4 r10 = [r37] 009E080460C7 1ED2 (pr7) dep r3 = r35, r0, 3, 2 ;; } { .mmi 00A082508287 1EE0 (pr7) ld4 r10 = [r37], 4 ;; 008082500247 1EE1 (pr7) ld4 r9 = [r37] 00F200A06287 1EE2 (pr7) shr.u r10 = r10, r3 } { .mmi 0101283400C7 1EF0 (pr7) sub r3 = 32, r3 ;; 000008000000 1EF1 nop.m 0 00F240312247 1EF2 (pr7) shl r9 = r9, r3 ;; } { .mmi 010070A12287 1F00 (pr7) or r10 = r9, r10 ;; 01C400014240 1F01 cmp4.eq pr9, pr0 = r10, r0 // 067499 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 71 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0000B0A00980 1F02 sxt4 r38 = r10 } { .mfb 000008000000 1F10 nop.m 0 000008000000 1F11 nop.f 0 008600016009 1F12 (pr9) br.cond.dpnt.many L$210 ;; } { .mfi 0108220D09C0 1F20 adds r39 = 616, rqptr // r39 = 616, r32 // 067501 000008000000 1F21 nop.f 0 000008000000 1F22 nop.i 0 ;; } 1F30 L$211: // 067499 { .mii 012000004640 1F30 mov ai = 2 // r25 = 2 // 067501 010802700B00 1F31 mov out0 = r39 // r44 = r39 010802618B40 1F32 adds out1 = 12, tpuptr // r45 = 12, r38 } { .mfb 000008000000 1F40 nop.m 0 000008000000 1F41 nop.f 0 00A000001000 1F42 br.call.sptk.many rp = DECC$STRCMP ;; // br0 = DECC$STRCMP } { .mib 01C4008001C0 1F50 cmp4.eq pr7, pr0 = r0, r8 010802B00040 1F51 mov gp = r43 // r1 = r43 00860000E007 1F52 (pr7) br.cond.dpnt.many L$210 ;; } { .mmi 01080269A8C0 1F60 adds r35 = 77, r38 ;; // 067502 0111623F8940 1F61 and r37 = -4, r35 000008000000 1F62 nop.i 0 ;; } { .mmi 01C04A546200 1F70 cmp.eq pr8, pr9 = r35, r37 ;; 008082500288 1F71 (pr8) ld4 r10 = [r37] 009E080460C9 1F72 (pr9) dep r3 = r35, r0, 3, 2 ;; } { .mmi 00A082508289 1F80 (pr9) ld4 r10 = [r37], 4 ;; 008082500249 1F81 (pr9) ld4 r9 = [r37] 00F200A06289 1F82 (pr9) shr.u r10 = r10, r3 } { .mmi 0101283400C9 1F90 (pr9) sub r3 = 32, r3 ;; 000008000000 1F91 nop.m 0 00F240312249 1F92 (pr9) shl r9 = r9, r3 ;; } { .mmi 010070A12289 1FA0 (pr9) or r10 = r9, r10 ;; 01C450014000 1FA1 cmp4.eq pr0, pr10 = r10, r0 // 067499 0000B0A00980 1FA2 sxt4 r38 = r10 } { .mfb 000008000000 1FB0 nop.m 0 000008000000 1FB1 nop.f 0 0095FFFF000A 1FB2 (pr10) br.cond.dptk.many L$211 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 72 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } 1FC0 L$210: // 067503 { .mfb 01C46004C000 1FC0 cmp4.eq pr0, pr12 = tpuptr, r0 // pr0, pr12 = r38, r0 // 067504 000008000000 1FC1 nop.f 0 00860005000C 1FC2 (pr12) br.cond.dpnt.many L$213 ;; } { .mmi 0108024602C0 1FD0 adds r11 = 48, r36 ;; // 067507 011160BF8440 1FD1 and r17 = -4, r11 000008000000 1FD2 nop.i 0 ;; } { .mmi 01C079116380 1FE0 cmp.eq pr14, pr15 = r11, r17 ;; 00808110050E 1FE1 (pr14) ld4 r20 = [r17] 009E0801648F 1FE2 (pr15) dep r18 = r11, r0, 3, 2 ;; } { .mmi 00A08110850F 1FF0 (pr15) ld4 r20 = [r17], 4 ;; 0080811004CF 1FF1 (pr15) ld4 r19 = [r17] 00F20142450F 1FF2 (pr15) shr.u r20 = r20, r18 } { .mmi 01012924048F 2000 (pr15) sub r18 = 32, r18 ;; 000008000000 2001 nop.m 0 00F2412264CF 2002 (pr15) shl r19 = r19, r18 ;; } { .mmi 01007142650F 2010 (pr15) or r20 = r19, r20 ;; 000008000000 2011 nop.m 0 0000B1400500 2012 sxt4 r20 = r20 ;; } { .mib 01C4000281C0 2020 cmp4.eq pr7, pr0 = r20, r0 // 067508 010801400980 2021 mov tpuptr = r20 // r38 = r20 // 067507 008600026007 2022 (pr7) br.cond.dpnt.many L$216 ;; // 067508 } 2030 L$217: { .mmi 010802608540 2030 adds r21 = 4, r38 ;; // 067510 0111615F8580 2031 and r22 = -4, r21 000008000000 2032 nop.i 0 ;; } { .mmi 01C04962A200 2040 cmp.eq pr8, pr9 = r21, r22 ;; 008081600648 2041 (pr8) ld4 ai = [r22] // r25 = [r22] 009E0802A5C9 2042 (pr9) dep r23 = r21, r0, 3, 2 ;; } { .mmi 00A081608649 2050 (pr9) ld4 ai = [r22], 4 ;; // r25 = [r22], 4 008081600609 2051 (pr9) ld4 r24 = [r22] 00F20192E649 2052 (pr9) shr.u ai = ai, r23 // r25 = r25, r23 } { .mmi 0101297405C9 2060 (pr9) sub r23 = 32, r23 ;; 000008000000 2061 nop.m 0 00F241730609 2062 (pr9) shl r24 = r24, r23 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 73 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mmi 010071930649 2070 (pr9) or ai = r24, ai ;; // r25 = r24, r25 000008000000 2071 nop.m 0 000091900649 2072 (pr9) zxt4 ai = ai ;; // r25 = r25 } { .mfb 01C451900000 2080 cmp4.eq pr0, pr10 = r0, ai // pr0, pr10 = r0, r25 000008000000 2081 nop.f 0 00860000E00A 2082 (pr10) br.cond.dpnt.many L$218 ;; } { .mmi 0111626F86C0 2090 and r27 = -4, r38 ;; // 067511 01C069B4C300 2091 cmp.eq pr12, pr13 = r38, r27 000008000000 2092 nop.i 0 ;; } { .mib 008081B0078C 20A0 (pr12) ld4 r30 = [r27] 009E0804C70D 20A1 (pr13) dep r28 = r38, r0, 3, 2 004000000000 20A2 nop.b 0 ;; } { .mmi 00A081B0878D 20B0 (pr13) ld4 r30 = [r27], 4 ;; 008081B0074D 20B1 (pr13) ld4 r29 = [r27] 00F201E3878D 20B2 (pr13) shr.u r30 = r30, r28 } { .mmi 010129C4070D 20C0 (pr13) sub r28 = 32, r28 ;; 000008000000 20C1 nop.m 0 00F241C3A74D 20C2 (pr13) shl r29 = r29, r28 ;; } { .mmi 010071E3A78D 20D0 (pr13) or r30 = r29, r30 ;; 000008000000 20D1 nop.m 0 000091E0078D 20D2 (pr13) zxt4 r30 = r30 ;; } { .mfb 01C401E003C0 20E0 cmp4.eq pr15, pr0 = r0, r30 000008000000 20E1 nop.f 0 00860000E00F 20E2 (pr15) br.cond.dpnt.many L$216 ;; // 067510 } 20F0 L$218: // 067511 { .mmi 01080269A7C0 20F0 adds r31 = 77, r38 ;; // 067512 011161FF8B00 20F1 and out0 = -4, r31 // r44 = -4, r31 000008000000 20F2 nop.i 0 ;; } { .mmi 01C03AC3E180 2100 cmp.eq pr6, pr7 = r31, out0 ;; // pr6, pr7 = r31, r44 008082C00BC6 2101 (pr6) ld4 out3 = [out0] // r47 = [r44] 009E0803EB47 2102 (pr7) dep out1 = r31, r0, 3, 2 ;; // r45 = r31, r0, 3, 2 } { .mmi 00A082C08BC7 2110 (pr7) ld4 out3 = [out0], 4 ;; // r47 = [r44], 4 008082C00B87 2111 (pr7) ld4 out2 = [out0] // r46 = [r44] 00F202F5ABC7 2112 (pr7) shr.u out3 = out3, out1 // r47 = r47, r45 } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 74 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mmi 01012AD40B47 2120 (pr7) sub out1 = 32, out1 ;; // r45 = 32, r45 000008000000 2121 nop.m 0 00F242D5CB87 2122 (pr7) shl out2 = out2, out1 ;; // r46 = r46, r45 } { .mmi 010072F5CBC7 2130 (pr7) or out3 = out2, out3 ;; // r47 = r46, r47 000008000000 2131 nop.m 0 0000B2F00BC0 2132 sxt4 out3 = out3 ;; // r47 = r47 } { .mib 01C44005E000 2140 cmp4.eq pr0, pr8 = out3, r0 // pr0, pr8 = r47, r0 // 067508 010802F00980 2141 mov tpuptr = out3 // r38 = r47 // 067512 0095FFFDE008 2142 (pr8) br.cond.dptk.many L$217 ;; // 067508 } 2150 L$216: // 067513 { .mfb 01C40004C2C0 2150 cmp4.eq pr11, pr0 = tpuptr, r0 // pr11, pr0 = r38, r0 // 067514 000008000000 2151 nop.f 0 00860001E00B 2152 (pr11) br.cond.dpnt.many L$213 ;; } { .mii 012000006640 2160 mov ai = 3 // r25 = 3 // 067519 012000082B80 2161 mov out2 = 65 // r46 = 65 0108220D0B40 2162 adds out1 = 616, rqptr // r45 = 616, r32 // 067520 } { .mfb 010802618B00 2170 adds out0 = 12, tpuptr // r44 = 12, r38 // 067519 000008000000 2171 nop.f 0 00A000001000 2172 br.call.sptk.many rp = strzcpy ;; // br0 = strzcpy } { .mii 0108026108C0 2180 adds r35 = 8, r38 // 067524 0108000009C0 2181 mov r39 = r0 00A04A600200 2182 tbit.z pr8, pr9 = r38, 0 ;; // 067523 } { .mii 010802300940 2190 mov r37 = r35 // 067524 00A03A300180 2191 tbit.z pr6, pr7 = r35, 0 010800000240 2192 mov r9 = r0 // 067523 } { .mmi 010802600200 21A0 mov r8 = r38 ;; 00AC0254E047 21A1 (pr7) st1 [r37] = r39, 1 // 067524 00A5BA7209C7 21A2 (pr7) shr.u r39 = r39, 8 } { .mii 0108026082C0 21B0 adds r11 = 4, r38 // 067522 010800000440 21B1 mov r17 = r0 ;; 00A058B00280 21B2 tbit.z pr10, pr11 = r11, 0 } { .mmi 010802B00040 21C0 mov gp = r43 ;; // r1 = r43 // 067519 00AC4254E080 21C1 st2 [r37] = r39, 2 // 067524 00A57A7409C0 21C2 shr.u r39 = r39, 16 ;; } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 75 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 008C4254E006 21D0 (pr6) st2 [r37] = r39 008C0254E007 21D1 (pr7) st1 [r37] = r39 000008000000 21D2 nop.i 0 ;; } { .mib 00AC00812049 21E0 (pr9) st1 [r8] = r9, 1 // 067523 00A5B8920249 21E1 (pr9) shr.u r9 = r9, 8 004000000000 21E2 nop.b 0 ;; } { .mib 00AC40812080 21F0 st2 [r8] = r9, 2 00A578940240 21F1 shr.u r9 = r9, 16 004000000000 21F2 nop.b 0 ;; } { .mmi 008C40812008 2200 (pr8) st2 [r8] = r9 008C00812009 2201 (pr9) st1 [r8] = r9 000008000000 2202 nop.i 0 ;; } { .mib 00AC00B2204B 2210 (pr11) st1 [r11] = r17, 1 // 067522 00A5B912044B 2211 (pr11) shr.u r17 = r17, 8 004000000000 2212 nop.b 0 ;; } { .mib 00AC40B22080 2220 st2 [r11] = r17, 2 00A579140440 2221 shr.u r17 = r17, 16 004000000000 2222 nop.b 0 ;; } { .mmi 008C40B2200A 2230 (pr10) st2 [r11] = r17 008C00B2200B 2231 (pr11) st1 [r11] = r17 000008000000 2232 nop.i 0 ;; } 2240 L$213: // 067526 { .mfb 01C46004C000 2240 cmp4.eq pr0, pr12 = tpuptr, r0 // pr0, pr12 = r38, r0 // 067527 000008000000 2241 nop.f 0 00860004800C 2242 (pr12) br.cond.dpnt.many L$221 ;; } { .mib 012000002640 2250 mov ai = 1 // r25 = 1 // 067533 0120000A2B00 2251 mov out0 = 81 // r44 = 81 00A000001000 2252 br.call.sptk.many rp = VmGet ;; // br0 = VmGet } { .mii 0108024608C0 2260 adds r35 = 48, r36 // 067536 010800800980 2261 mov tpuptr = r8 // r38 = r8 // 067533 01080089A2C0 2262 adds r11 = 77, r8 // 067536 } { .mmi 0108024604C0 2270 adds r19 = 48, r36 ;; // 067537 0111623F8940 2271 and r37 = -4, r35 // 067536 00A048B00200 2272 tbit.z pr8, pr9 = r11, 0 } { .mii 010800800500 2280 mov r20 = r8 // 067537 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 76 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 012000006640 2281 mov ai = 3 ;; // r25 = 3 // 067539 01C03A546180 2282 cmp.eq pr6, pr7 = r35, r37 // 067536 } { .mii 012000082B80 2290 mov out2 = 65 // r46 = 65 // 067539 0108220D0B40 2291 adds out1 = 616, rqptr // r45 = 616, r32 // 067540 010800818B00 2292 adds out0 = 12, r8 ;; // r44 = 12, r8 // 067539 } { .mii 008082500246 22A0 (pr6) ld4 r9 = [r37] // 067536 009E080469C7 22A1 (pr7) dep r39 = r35, r0, 3, 2 010802B00040 22A2 mov gp = r43 ;; // r1 = r43 // 067533 } { .mib 000008000000 22B0 nop.m 0 00A059300280 22B1 tbit.z pr10, pr11 = r19, 0 // 067537 004000000000 22B2 nop.b 0 ;; } { .mmi 00A082508247 22C0 (pr7) ld4 r9 = [r37], 4 ;; // 067536 0080825000C7 22C1 (pr7) ld4 r3 = [r37] 00F20094E247 22C2 (pr7) shr.u r9 = r9, r39 } { .mmi 01012A7409C7 22D0 (pr7) sub r39 = 32, r39 ;; 000008000000 22D1 nop.m 0 00F2427060C7 22D2 (pr7) shl r3 = r3, r39 ;; } { .mmi 010070906247 22E0 (pr7) or r9 = r3, r9 ;; 010800900440 22E1 mov r17 = r9 000008000000 22E2 nop.i 0 ;; } { .mib 00AC00B22049 22F0 (pr9) st1 [r11] = r17, 1 00A5B9120449 22F1 (pr9) shr.u r17 = r17, 8 004000000000 22F2 nop.b 0 ;; } { .mib 00AC40B22080 2300 st2 [r11] = r17, 2 00A579140440 2301 shr.u r17 = r17, 16 004000000000 2302 nop.b 0 ;; } { .mmi 008C40B22008 2310 (pr8) st2 [r11] = r17 008C00B22009 2311 (pr9) st1 [r11] = r17 000008000000 2312 nop.i 0 ;; } { .mib 00AC0132804B 2320 (pr11) st1 [r19] = r20, 1 // 067537 00A5B942050B 2321 (pr11) shr.u r20 = r20, 8 004000000000 2322 nop.b 0 ;; } { .mib 00AC41328080 2330 st2 [r19] = r20, 2 00A579440500 2331 shr.u r20 = r20, 16 004000000000 2332 nop.b 0 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 77 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mmb 008C4132800A 2340 (pr10) st2 [r19] = r20 008C0132800B 2341 (pr11) st1 [r19] = r20 00A000001000 2342 br.call.sptk.many rp = strzcpy ;; // br0 = strzcpy // 067539 } { .mii 0108024108C0 2350 adds r35 = 8, r36 // 067543 010802418240 2351 adds r9 = 12, r36 // 067544 0108024104C0 2352 adds r19 = 8, r36 // 067543 } { .mmi 010802B00040 2360 mov gp = r43 ;; // r1 = r43 // 067539 0111623F8940 2361 and r37 = -4, r35 // 067543 0111609F8280 2362 and r10 = -4, r9 // 067544 } { .mmi 010801300500 2370 mov r20 = r19 ;; // 067543 01C03A546180 2371 cmp.eq pr6, pr7 = r35, r37 01C048A12200 2372 cmp.eq pr8, pr9 = r9, r10 ;; // 067544 } { .mib 008082500206 2380 (pr6) ld4 r8 = [r37] // 067543 009E080469C7 2381 (pr7) dep r39 = r35, r0, 3, 2 004000000000 2382 nop.b 0 } { .mmi 008080A00488 2390 (pr8) ld4 r18 = [r10] ;; // 067544 000008000000 2391 nop.m 0 009E080122C9 2392 (pr9) dep r11 = r9, r0, 3, 2 ;; } { .mmi 00A082508207 23A0 (pr7) ld4 r8 = [r37], 4 // 067543 00A080A08489 23A1 (pr9) ld4 r18 = [r10], 4 // 067544 00A069300300 23A2 tbit.z pr12, pr13 = r19, 0 ;; // 067543 } { .mii 0080825000C7 23B0 (pr7) ld4 r3 = [r37] 00F20084E207 23B1 (pr7) shr.u r8 = r8, r39 01012A7409C7 23B2 (pr7) sub r39 = 32, r39 } { .mmi 008080A00449 23C0 (pr9) ld4 r17 = [r10] ;; // 067544 000008000000 23C1 nop.m 0 00F201216489 23C2 (pr9) shr.u r18 = r18, r11 } { .mmi 010128B402C9 23D0 (pr9) sub r11 = 32, r11 ;; 000008000000 23D1 nop.m 0 00F2427060C7 23D2 (pr7) shl r3 = r3, r39 ;; // 067543 } { .mii 000008000000 23E0 nop.m 0 00F240B22449 23E1 (pr9) shl r17 = r17, r11 ;; // 067544 010070806207 23E2 (pr7) or r8 = r3, r8 ;; // 067543 } { .mii Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 78 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 010071222489 23F0 (pr9) or r18 = r17, r18 // 067544 000090800207 23F1 (pr7) zxt4 r8 = r8 ;; // 067543 010800802200 23F2 adds r8 = 1, r8 } { .mii 000008000000 2400 nop.m 0 000091200489 2401 (pr9) zxt4 r18 = r18 ;; // 067544 010800800540 2402 mov r21 = r8 // 067543 } { .mmi 018450824000 2410 cmp4.lt pr0, pr10 = r18, r8 ;; // 067544 00AC0142A04D 2411 (pr13) st1 [r20] = r21, 1 // 067543 00A5B952054D 2412 (pr13) shr.u r21 = r21, 8 ;; } { .mib 00AC4142A080 2420 st2 [r20] = r21, 2 00A579540540 2421 shr.u r21 = r21, 16 004000000000 2422 nop.b 0 ;; } { .mmb 008C4142A00C 2430 (pr12) st2 [r20] = r21 008C0142A00D 2431 (pr13) st1 [r20] = r21 00860000A00A 2432 (pr10) br.cond.dpnt.many L$221 ;; // 067544 } { .mii 010802418580 2440 adds r22 = 12, r36 // 067545 010800800600 2441 mov r24 = r8 ;; 00A079600380 2442 tbit.z pr14, pr15 = r22, 0 } { .mmi 0108016005C0 2450 mov r23 = r22 ;; 00AC0173004F 2451 (pr15) st1 [r23] = r24, 1 00A5B982060F 2452 (pr15) shr.u r24 = r24, 8 ;; } { .mib 00AC41730080 2460 st2 [r23] = r24, 2 00A579840600 2461 shr.u r24 = r24, 16 004000000000 2462 nop.b 0 ;; } { .mmi 008C4173000E 2470 (pr14) st2 [r23] = r24 008C0173000F 2471 (pr15) st1 [r23] = r24 000008000000 2472 nop.i 0 ;; } 2480 L$221: // 067546 { .mii 010802610640 2480 adds ai = 8, r38 // r25 = 8, r38 // 067548 010802610780 2481 adds r30 = 8, r38 ;; 0111619F8680 2482 and r26 = -4, ai // r26 = -4, r25 } { .mmi 010801E007C0 2490 mov r31 = r30 ;; 01C039A32180 2491 cmp.eq pr6, pr7 = ai, r26 // pr6, pr7 = r25, r26 00A049E00200 2492 tbit.z pr8, pr9 = r30, 0 ;; } { .mib 008081A00746 24A0 (pr6) ld4 r29 = [r26] Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 79 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 009E080326C7 24A1 (pr7) dep r27 = ai, r0, 3, 2 // r27 = r25, r0, 3, 2 004000000000 24A2 nop.b 0 ;; } { .mmi 00A081A08747 24B0 (pr7) ld4 r29 = [r26], 4 ;; 008081A00707 24B1 (pr7) ld4 r28 = [r26] 00F201D36747 24B2 (pr7) shr.u r29 = r29, r27 } { .mmi 010129B406C7 24C0 (pr7) sub r27 = 32, r27 ;; 000008000000 24C1 nop.m 0 00F241B38707 24C2 (pr7) shl r28 = r28, r27 ;; } { .mmi 010071D38747 24D0 (pr7) or r29 = r28, r29 ;; 000008000000 24D1 nop.m 0 000091D00747 24D2 (pr7) zxt4 r29 = r29 ;; } { .mmi 010801D02740 24E0 adds r29 = 1, r29 ;; 010801D00B00 24E1 mov out0 = r29 // r44 = r29 000008000000 24E2 nop.i 0 ;; } { .mib 00AC01F58049 24F0 (pr9) st1 [r31] = out0, 1 // [r31] = r44, 1 00A5BAC20B09 24F1 (pr9) shr.u out0 = out0, 8 // r44 = r44, 8 004000000000 24F2 nop.b 0 ;; } { .mib 00AC41F58080 2500 st2 [r31] = out0, 2 // [r31] = r44, 2 00A57AC40B00 2501 shr.u out0 = out0, 16 // r44 = r44, 16 004000000000 2502 nop.b 0 ;; } { .mmb 008C41F58008 2510 (pr8) st2 [r31] = out0 // [r31] = r44 008C01F58009 2511 (pr9) st1 [r31] = out0 // [r31] = r44 008000007000 2512 br.sptk.many L$224 ;; // 067550 } 2520 L$199: { .mii 010952018B40 2520 adds out1 = 5388, in0 // r45 = 5388, r32 // 067552 010800000980 2521 mov tpuptr = r0 // r38 = r0 // 067553 000008000000 2522 nop.i 0 ;; } { .mfi 008C82D00000 2530 st4 [out1] = r0 // [r45] = r0 // 067552 000008000000 2531 nop.f 0 000008000000 2532 nop.i 0 } 2540 L$224: // 067554 { .mii 010802438B80 2540 adds out2 = 28, r36 // r46 = 28, r36 // 067560 0111624F80C0 2541 and r3 = -4, r36 // 067566 010912058440 2542 adds r17 = 4396, in0 ;; // r17 = 4396, r32 // 067567 } { .mii 011162EF8BC0 2550 and out3 = -4, out2 // r47 = -4, r46 // 067560 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 80 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 01C058348280 2551 cmp.eq pr10, pr11 = r36, r3 ;; // 067566 01C06AF5C300 2552 cmp.eq pr12, pr13 = out2, out3 // pr12, pr13 = r46, r47 // 067560 } { .mmi 0080803009CA 2560 (pr10) ld4 r39 = [r3] ;; // 067566 008082F00C8C 2561 (pr12) ld4 out6 = [out3] // r50 = [r47] // 067560 009E0805CC0D 2562 (pr13) dep out4 = out2, r0, 3, 2 ;; // r48 = r46, r0, 3, 2 } { .mii 00A0803089CB 2570 (pr11) ld4 r39 = [r3], 4 // 067566 009E080488CB 2571 (pr11) dep r35 = r36, r0, 3, 2 010802438240 2572 adds r9 = 28, r36 ;; // 067560 } { .mii 00A082F08C8D 2580 (pr13) ld4 out6 = [out3], 4 // r50 = [r47], 4 00A078900380 2581 tbit.z pr14, pr15 = r9, 0 010800900280 2582 mov r10 = r9 ;; } { .mmi 00808030094B 2590 (pr11) ld4 r37 = [r3] ;; // 067566 008082F00C4D 2591 (pr13) ld4 out5 = [out3] // r49 = [r47] // 067560 00F203260C8D 2592 (pr13) shr.u out6 = out6, out4 // r50 = r50, r48 } { .mii 01012B040C0D 25A0 (pr13) sub out4 = 32, out4 // r48 = 32, r48 00F2027469CB 25A1 (pr11) shr.u r39 = r39, r35 ;; // 067566 01012A3408CB 25A2 (pr11) sub r35 = 32, r35 ;; } { .mii 000008000000 25B0 nop.m 0 00F243062C4D 25B1 (pr13) shl out5 = out5, out4 ;; // r49 = r49, r48 // 067560 00F24234A94B 25B2 (pr11) shl r37 = r37, r35 // 067566 } { .mmi 0108000008C0 25C0 mov QueueRequest = r0 ;; // r35 = r0 // 067563 010073262C8D 25C1 (pr13) or out6 = out5, out6 // r50 = r49, r50 // 067560 000008000000 25C2 nop.i 0 ;; } { .mii 01007274A9CB 25D0 (pr11) or r39 = r37, r39 // 067566 000093200C8D 25D1 (pr13) zxt4 out6 = out6 ;; // r50 = r50 // 067560 010803202C80 25D2 adds out6 = 1, out6 // r50 = 1, r50 } { .mii 010800000940 25E0 mov ProcessRequest = r0 // r37 = r0 // 067563 0000927009CB 25E1 (pr11) zxt4 r39 = r39 ;; // 067566 0108032002C0 25E2 mov r11 = out6 ;; // r11 = r50 // 067560 } { .mib 00AC00A1604F 25F0 (pr15) st1 [r10] = r11, 1 00A5B8B202CF 25F1 (pr15) shr.u r11 = r11, 8 004000000000 25F2 nop.b 0 ;; } { .mib 00AC40A16080 2600 st2 [r10] = r11, 2 00A578B402C0 2601 shr.u r11 = r11, 16 004000000000 2602 nop.b 0 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 81 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mmi 008C40A1600E 2610 (pr14) st2 [r10] = r11 008C00A1600F 2611 (pr15) st1 [r10] = r11 000008000000 2612 nop.i 0 ;; } { .mmi 008081100480 2620 ld4 r18 = [r17] ;; // 067567 01843924E180 2621 cmp4.lt pr6, pr7 = r39, r18 // 067566 000008000000 2622 nop.i 0 } { .mfb 000008000000 2630 nop.m 0 000008000000 2631 nop.f 0 008600004007 2632 (pr7) br.cond.dpnt.many L$226 ;; } { .mfb 012000002940 2640 mov ProcessRequest = 1 // r37 = 1 // 067568 000008000000 2641 nop.f 0 008000031000 2642 br.sptk.many L$227 ;; // 067569 } 2650 L$226: { .mmi 0109120504C0 2650 adds r19 = 4392, in0 ;; // r19 = 4392, r32 // 067571 0080813004C0 2651 ld4 r19 = [r19] 000008000000 2652 nop.i 0 ;; } { .mfb 01C401300240 2660 cmp4.eq pr9, pr0 = r0, r19 000008000000 2661 nop.f 0 008600010009 2662 (pr9) br.cond.dpnt.many L$229 ;; } { .mmi 010802408500 2670 adds r20 = 4, r36 ;; // 067572 0111614F8540 2671 and r21 = -4, r20 000008000000 2672 nop.i 0 ;; } { .mmi 01C069528300 2680 cmp.eq pr12, pr13 = r20, r21 ;; 0080815005CC 2681 (pr12) ld4 r23 = [r21] 009E0802820D 2682 (pr13) dep r8 = r20, r0, 3, 2 ;; } { .mmi 00A0815085CD 2690 (pr13) ld4 r23 = [r21], 4 ;; 00808150058D 2691 (pr13) ld4 r22 = [r21] 00F2017105CD 2692 (pr13) shr.u r23 = r23, r8 } { .mmi 01012884020D 26A0 (pr13) sub r8 = 32, r8 ;; 000008000000 26A1 nop.m 0 00F24082C58D 26A2 (pr13) shl r22 = r22, r8 ;; } { .mmi 01007172C5CD 26B0 (pr13) or r23 = r22, r23 ;; 000008000000 26B1 nop.m 0 0000917005CD 26B2 (pr13) zxt4 r23 = r23 ;; } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 82 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mmi 01000272E5C0 26C0 add r23 = r23, r39 ;; 01845932E000 26C1 cmp4.lt pr0, pr11 = r23, r19 000008000000 26C2 nop.i 0 } { .mfb 000008000000 26D0 nop.m 0 000008000000 26D1 nop.f 0 00860001E00B 26D2 (pr11) br.cond.dpnt.many L$227 ;; // 067571 } 26E0 L$229: { .mii 010912070600 26E0 adds r24 = 4408, in0 // r24 = 4408, r32 // 067579 0120000028C0 26E1 mov QueueRequest = 1 // r35 = 1 // 067577 000008000000 26E2 nop.i 0 ;; } { .mmi 008081800600 26F0 ld4 r24 = [r24] ;; // 067579 01C4018003C0 26F1 cmp4.eq pr15, pr0 = r0, r24 000008000000 26F2 nop.i 0 } { .mfb 000008000000 2700 nop.m 0 000008000000 2701 nop.f 0 00860001800F 2702 (pr15) br.cond.dpnt.many L$227 ;; } { .mii 010802408680 2710 adds r26 = 4, r36 // 067580 010029230640 2711 sub ai = r24, r18 ;; // r25 = r24, r18 // 067581 011161AF86C0 2712 and r27 = -4, r26 ;; // 067580 } { .mmi 01C039B34180 2720 cmp.eq pr6, pr7 = r26, r27 ;; 008081B00786 2721 (pr6) ld4 r30 = [r27] 009E08034707 2722 (pr7) dep r28 = r26, r0, 3, 2 ;; } { .mmi 00A081B08787 2730 (pr7) ld4 r30 = [r27], 4 ;; 008081B00747 2731 (pr7) ld4 r29 = [r27] 00F201E38787 2732 (pr7) shr.u r30 = r30, r28 } { .mmi 010129C40707 2740 (pr7) sub r28 = 32, r28 ;; 000008000000 2741 nop.m 0 00F241C3A747 2742 (pr7) shl r29 = r29, r28 ;; } { .mmi 010071E3A787 2750 (pr7) or r30 = r29, r30 ;; 000008000000 2751 nop.m 0 000091E00787 2752 (pr7) zxt4 r30 = r30 ;; } { .mfb 01840193C200 2760 cmp4.lt pr8, pr0 = r30, ai // pr8, pr0 = r30, r25 000008000000 2761 nop.f 0 00860000C008 2762 (pr8) br.cond.dpnt.many L$227 ;; // 067579 } { .mii Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 83 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0109120687C0 2770 adds r31 = 4404, in0 // r31 = 4404, r32 // 067585 010800000B00 2771 mov out0 = r0 // r44 = r0 // 067590 012000002B80 2772 mov out2 = 1 // r46 = 1 } { .mmi 012000002B40 2780 mov out1 = 1 ;; // r45 = 1 008081F007C0 2781 ld4 r31 = [r31] // 067585 000008000000 2782 nop.i 0 ;; } { .mii 01002983E600 2790 sub r24 = r31, r24 // 067587 01C469F00000 2791 cmp4.eq pr0, pr13 = r0, r31 ;; // 067585 010001230600 2792 add r24 = r24, r18 ;; // 067587 } { .mmi 01840184E300 27A0 cmp4.lt pr12, pr0 = r39, r24 ;; // 067586 010800002B0C 27A1 (pr12) adds out0 = 1, r0 // r44 = 1, r0 // 067590 000008000000 27A2 nop.i 0 ;; } { .mmi 010802C00B8D 27B0 (pr13) mov out2 = out0 ;; // r46 = r44 010802E00940 27B1 mov ProcessRequest = out2 // r37 = r46 000008000000 27B2 nop.i 0 } 27C0 L$227: // 067592 { .mmi 01C4500402C0 27C0 cmp4.eq pr11, pr10 = rqptr, r0 ;; // pr11, pr10 = r32, r0 // 067594 01C4725003C0 27C1 cmp4.eq pr15, pr14 = r0, // pr15, pr14 = r0, r37 // 067622 ProcessRequest 01C00000114B 27C2 (pr11) cmp.eq.unc pr5, pr0 = r0, r0 // 067594 } { .mmi 01C00000110A 27D0 (pr10) cmp.eq.unc pr4, pr0 = r0, r0 ;; 01C0000010CF 27D1 (pr15) cmp.eq.unc pr3, pr0 = r0, r0 // 067622 01C00000108E 27D2 (pr14) cmp.eq.unc pr2, pr0 = r0, r0 } { .bbb 008600002004 27E0 (pr4) br.cond.dpnt.many L$232 // 067594 004000000000 27E1 nop.b 0 008600048005 27E2 (pr5) br.cond.dpnt.many L$233 ;; } 27F0 L$232: { .mii 012000100BC0 27F0 add out3 = @ltoff(Watch+124), gp // r47 = @ltoff(Watch+124), r1 01080A0D8280 27F1 adds r10 = 236, in0 // r10 = 236, r32 000008000000 27F2 nop.i 0 ;; } { .mmi 0080C2F00BC0 2800 ld8 out3 = Watch // r47 = [r47] 008080A00280 2801 ld4 r10 = [r10] 000008000000 2802 nop.i 0 ;; } { .mii 011162FF0C00 2810 and out4 = -8, out3 // r48 = -8, r47 01C440A00240 2811 cmp4.eq pr9, pr8 = r0, r10 ;; 01C03B05E000 2812 cmp.eq pr0, pr7 = out3, out4 // pr0, pr7 = r47, r48 } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 84 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mmi 00A0C3010240 2820 ld8 r9 = Watch, 8 ;; // r9 = [r48], 8 000008000000 2821 nop.m 0 009E1005E0C7 2822 (pr7) dep r3 = Watch, r0, 3, 3 ;; // r3 = r47, r0, 3, 3 } { .mmi 0080C3000CC7 2830 (pr7) ld8 out7 = Watch ;; // r51 = [r48] 000008000000 2831 nop.m 0 00F200906247 2832 (pr7) shr.u r9 = r9, r3 } { .mmi 0101283800C7 2840 (pr7) sub r3 = 64, r3 ;; 000008000000 2841 nop.m 0 00F240366CC7 2842 (pr7) shl out7 = out7, r3 ;; // r51 = r51, r3 } { .mmi 010070966247 2850 (pr7) or r9 = out7, r9 ;; // r9 = r51, r9 010160904240 2851 and r9 = 2, r9 000008000000 2852 nop.i 0 ;; } { .mmi 01C000900340 2860 cmp.eq pr13, pr0 = r0, r9 ;; 01C20000024D 2861 (pr13) cmp.eq.or.andcm pr9, pr0 = r0, r0 000008000000 2862 nop.i 0 } { .mfb 000008000000 2870 nop.m 0 000008000000 2871 nop.f 0 008600036009 2872 (pr9) br.cond.dpnt.many L$233 ;; } { .mii 012000100C80 2880 add out6 = @ltoff($LITERAL$+440), // r50 = @ltoff($LITERAL$+440), r1 // 067609 gp 0120001002C0 2881 add r11 = @ltoff($LITERAL$+656), // r11 = @ltoff($LITERAL$+656), r1 // 067607 gp 01C472300000 2882 cmp4.eq pr0, pr14 = r0, QueueRequest // pr0, pr14 = r0, r35 // 067600 } { .mmi 012000100C40 2890 add out5 = @ltoff($LITERAL$+424), // r49 = @ltoff($LITERAL$+424), r1 // 067604 gp ;; 0080C3200440 2891 ld8 r17 = $LITERAL$ // r17 = [r50] // 067609 01C00000128E 2892 (pr14) cmp.eq.unc pr10, pr0 = r0, r0 // 067600 } { .mii 0080C0B002C0 28A0 ld8 r11 = $LITERAL$ // r11 = [r11] // 067607 01C0000001C0 28A1 cmp.eq pr7, pr0 = r0, r0 ;; // 067600 010800B0044A 28A2 (pr10) mov r17 = r11 // 067609 } { .mii 0080C3100C40 28B0 ld8 out5 = $LITERAL$ // r49 = [r49] // 067604 012000100500 28B1 add r20 = @ltoff($LITERAL$+640), // r20 = @ltoff($LITERAL$+640), r1 // 067601 gp 0182000011CA 28B2 (pr10) cmp.ne.and pr7, pr0 = r0, r0 ;; // 067600 } { .mii 010801100200 28C0 mov r8 = r17 // 067609 01C000001182 28C1 (pr2) cmp.eq.unc pr6, pr0 = r0, r0 // 067600 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 85 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 01C000001300 28C2 cmp.eq.unc pr12, pr0 = r0, r0 // 067611 } { .mmi 0080C1400500 28D0 ld8 r20 = $LITERAL$ ;; // r20 = [r20] // 067601 010803100202 28D1 (pr2) mov r8 = out5 // r8 = r49 // 067609 018200001187 28D2 (pr7) cmp.ne.and pr6, pr0 = r0, r0 // 067600 } { .mmi 01A000000304 28E0 (pr4) cmp.ltu pr12, pr0 = r0, r0 ;; // 067611 010800800540 28E1 mov r21 = r8 // 067609 000008000000 28E2 nop.i 0 ;; } { .mfb 010801400546 28F0 (pr6) mov r21 = r20 000008000000 28F1 nop.f 0 00860000400C 28F2 (pr12) br.cond.dpnt.many L$237 ;; // 067611 } { .mfb 010800A00580 2900 mov r22 = r10 000008000000 2901 nop.f 0 008000005000 2902 br.sptk.many L$236 ;; } 2910 L$237: { .mfi 010800000580 2910 mov r22 = r0 000008000000 2911 nop.f 0 000008000000 2912 nop.i 0 } 2920 L$236: { .mii 0108024085C0 2920 adds r23 = 4, r36 // 067618 0109120504C0 2921 adds r19 = 4392, in0 // r19 = 4392, r32 // 067616 010912068CC0 2922 adds out7 = 4404, in0 ;; // r51 = 4404, r32 // 067611 } { .mmi 0111617F8680 2930 and r26 = -4, r23 // 067618 0080813004C0 2931 ld4 r19 = [r19] // 067616 010912070C80 2932 adds out6 = 4408, in0 ;; // r50 = 4408, r32 // 067611 } { .mii 01C041A2E340 2940 cmp.eq pr13, pr8 = r23, r26 // 067618 0120001000C0 2941 add r3 = @ltoff($LITERAL$+320), gp // r3 = @ltoff($LITERAL$+320), r1 // 067612 010800C20640 2942 adds ai = 16, sp // r25 = 16, r12 // 067611 } { .mmi 010800C30780 2950 adds r30 = 24, sp ;; // r30 = 24, r12 008081A0074D 2951 (pr13) ld4 r29 = [r26] // 067618 009E0802E6C8 2952 (pr8) dep r27 = r23, r0, 3, 2 } { .mii 012000100B80 2960 add out2 = @ltoffx($LITERAL$), gp // r46 = @ltoffx($LITERAL$), r1 // 067611 0000B13004C0 2961 sxt4 r19 = r19 ;; 0000B27009C0 2962 sxt4 r39 = r39 } { .mmi 010800C40600 2970 adds r24 = 32, sp // r24 = 32, r12 008083300CC0 2971 ld4 out7 = [out7] // r51 = [r51] Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 86 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 010800C507C0 2972 adds r31 = 40, sp ;; // r31 = 40, r12 } { .mmi 00A081A08748 2980 (pr8) ld4 r29 = [r26], 4 // 067618 008083200C80 2981 ld4 out6 = [out6] // r50 = [r50] // 067611 0000B3300CC0 2982 sxt4 out7 = out7 ;; // r51 = r51 } { .mmi 0080C03000C0 2990 ld8 r3 = $LITERAL$ // r3 = [r3] // 067612 0080C2E00B40 2991 ld8.mov out1 = [r46], $LITERAL$ // 067611 0000B3200C80 2992 sxt4 out6 = out6 ;; // r50 = r50 } { .mii 008081A00708 29A0 (pr8) ld4 r28 = [r26] // 067618 00F201D36748 29A1 (pr8) shr.u r29 = r29, r27 010129B406C8 29A2 (pr8) sub r27 = 32, r27 } { .mmi 010800300C00 29B0 mov out4 = r3 ;; // r48 = r3 // 067611 008CC1926000 29B1 st8 [ai] = r19 // [r25] = r19 012000018640 29B2 mov ai = 12 // r25 = 12 } { .mii 008CC1E4E000 29C0 st8 [r30] = r39 0000B1200C40 29C1 sxt4 out5 = r18 ;; // r49 = r18 012000004BC0 29C2 mov out3 = 2 // r47 = 2 } { .mii 0120200ACB80 29D0 mov out2 = 598 // r46 = 598 0000B1600B00 29D1 sxt4 out0 = r22 ;; // r44 = r22 00F241B38708 29D2 (pr8) shl r28 = r28, r27 ;; // 067618 } { .mmi 010071D38748 29E0 (pr8) or r29 = r28, r29 ;; 000008000000 29E1 nop.m 0 000091D00748 29E2 (pr8) zxt4 r29 = r29 ;; } { .mib 000008000000 29F0 nop.m 0 0000B1D00740 29F1 sxt4 r29 = r29 // 067611 004000000000 29F2 nop.b 0 ;; } { .mmb 008CC183A000 2A00 st8 [r24] = r29 008CC1F2A000 2A01 st8 [r31] = r21 00A000001000 2A02 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802B00040 2A10 mov gp = r43 // r1 = r43 000008000000 2A11 nop.f 0 000008000000 2A12 nop.i 0 } 2A20 L$233: // 067620 { .mmi 01C43004C1C0 2A20 cmp4.eq pr7, pr6 = tpuptr, r0 ;; // pr7, pr6 = r38, r0 // 067622 01C000001447 2A21 (pr7) cmp.eq.unc pr17, pr0 = r0, r0 01C000001406 2A22 (pr6) cmp.eq.unc pr16, pr0 = r0, r0 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 87 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mfb 01C2000000D1 2A30 (pr17) cmp.eq.or.andcm pr3, pr0 = r0, r0 000008000000 2A31 nop.f 0 00860004C003 2A32 (pr3) br.cond.dpnt.many L$239 ;; } { .mii 0111626F80C0 2A40 and r3 = -4, r38 // 067628 010912060280 2A41 adds r10 = 4400, in0 ;; // r10 = 4400, r32 // 067629 01C04834C200 2A42 cmp.eq pr8, pr9 = r38, r3 // 067628 } { .mmi 008080A00C80 2A50 ld4 out6 = [r10] ;; // r50 = [r10] // 067629 008080300CC8 2A51 (pr8) ld4 out7 = [r3] // r51 = [r3] // 067628 009E0804C209 2A52 (pr9) dep r8 = r38, r0, 3, 2 } { .mmi 0108032002C0 2A60 mov r11 = out6 ;; // r11 = r50 // 067629 00A080308CC9 2A61 (pr9) ld4 out7 = [r3], 4 // r51 = [r3], 4 // 067628 000008000000 2A62 nop.i 0 ;; } { .mii 008080300249 2A70 (pr9) ld4 r9 = [r3] 00F203310CC9 2A71 (pr9) shr.u out7 = out7, r8 // r51 = r51, r8 010128840209 2A72 (pr9) sub r8 = 32, r8 ;; } { .mii 000008000000 2A80 nop.m 0 00F240812249 2A81 (pr9) shl r9 = r9, r8 ;; 010073312CC9 2A82 (pr9) or out7 = r9, out7 ;; // r51 = r9, r51 } { .mii 000008000000 2A90 nop.m 0 000093300CC9 2A91 (pr9) zxt4 out7 = out7 ;; // r51 = r51 018403266280 2A92 cmp4.lt pr10, pr0 = out7, out6 // pr10, pr0 = r51, r50 } { .mfb 010803300440 2AA0 mov r17 = out7 // r17 = r51 000008000000 2AA1 nop.f 0 00860000400A 2AA2 (pr10) br.cond.dpnt.many L$240 ;; } { .mii 0120000028C0 2AB0 mov QueueRequest = 1 // r35 = 1 // 067632 010800000940 2AB1 mov ProcessRequest = r0 // r37 = r0 // 067631 000008000000 2AB2 nop.i 0 } 2AC0 L$240: // 067633 { .bbb 008600002004 2AC0 (pr4) br.cond.dpnt.many L$242 // 067635 004000000000 2AC1 nop.b 0 00860003A005 2AC2 (pr5) br.cond.dpnt.many L$239 ;; } 2AD0 L$242: { .mii 012000100480 2AD0 add r18 = @ltoff(Watch+124), gp // r18 = @ltoff(Watch+124), r1 01080A0D85C0 2AD1 adds r23 = 236, in0 // r23 = 236, r32 000008000000 2AD2 nop.i 0 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 88 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mmi 0080C1200480 2AE0 ld8 r18 = Watch // r18 = [r18] 0080817005C0 2AE1 ld4 r23 = [r23] 000008000000 2AE2 nop.i 0 ;; } { .mii 0111612F04C0 2AF0 and r19 = -8, r18 01C4717003C0 2AF1 cmp4.eq pr15, pr14 = r0, r23 ;; 01C069324000 2AF2 cmp.eq pr0, pr13 = r18, r19 } { .mmi 00A0C1310580 2B00 ld8 r22 = Watch, 8 ;; // r22 = [r19], 8 000008000000 2B01 nop.m 0 009E1002450D 2B02 (pr13) dep r20 = Watch, r0, 3, 3 ;; // r20 = r18, r0, 3, 3 } { .mmi 0080C130054D 2B10 (pr13) ld8 r21 = Watch ;; // r21 = [r19] 000008000000 2B11 nop.m 0 00F20162858D 2B12 (pr13) shr.u r22 = r22, r20 } { .mmi 01012948050D 2B20 (pr13) sub r20 = 64, r20 ;; 000008000000 2B21 nop.m 0 00F24142A54D 2B22 (pr13) shl r21 = r21, r20 ;; } { .mmi 01007162A58D 2B30 (pr13) or r22 = r21, r22 ;; 010161604580 2B31 and r22 = 2, r22 000008000000 2B32 nop.i 0 ;; } { .mmi 01C0016001C0 2B40 cmp.eq pr7, pr0 = r0, r22 ;; 01C2000003C7 2B41 (pr7) cmp.eq.or.andcm pr15, pr0 = r0, r0 000008000000 2B42 nop.i 0 } { .mfb 000008000000 2B50 nop.m 0 000008000000 2B51 nop.f 0 00860002800F 2B52 (pr15) br.cond.dpnt.many L$239 ;; } { .mii 012000100640 2B60 add ai = @ltoff($LITERAL$+656), gp // r25 = @ltoff($LITERAL$+656), r1 // 067640 012000100600 2B61 add r24 = @ltoff($LITERAL$+424), // r24 = @ltoff($LITERAL$+424), r1 // 067638 gp 01C0000010C0 2B62 cmp.eq.unc pr3, pr0 = r0, r0 // 067642 } { .mmi 01C412500000 2B70 cmp4.eq pr0, pr2 = r0, ProcessRequest ;; // pr0, pr2 = r0, r37 // 067637 0080C1900680 2B71 ld8 r26 = $LITERAL$ // r26 = [r25] // 067640 01A0000000C4 2B72 (pr4) cmp.ltu pr3, pr0 = r0, r0 // 067642 } { .mmi 0080C1800600 2B80 ld8 r24 = $LITERAL$ ;; // r24 = [r24] // 067638 010801800682 2B81 (pr2) mov r26 = r24 // 067640 000008000000 2B82 nop.i 0 } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 89 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mfb 000008000000 2B90 nop.m 0 000008000000 2B91 nop.f 0 008600004003 2B92 (pr3) br.cond.dpnt.many L$246 ;; // 067642 } { .mfb 0108017006C0 2BA0 mov r27 = r23 000008000000 2BA1 nop.f 0 008000005000 2BA2 br.sptk.many L$245 ;; } 2BB0 L$246: { .mfi 0108000006C0 2BB0 mov r27 = r0 000008000000 2BB1 nop.f 0 000008000000 2BB2 nop.i 0 } 2BC0 L$245: { .mii 010802608740 2BC0 adds r29 = 4, r38 // 067647 010800C20B80 2BC1 adds out2 = 16, sp // r46 = 16, r12 // 067642 012000100C40 2BC2 add out5 = @ltoff($LITERAL$+376), // r49 = @ltoff($LITERAL$+376), r1 // 067643 gp ;; } { .mii 011161DF8780 2BD0 and r30 = -4, r29 // 067647 010800C30BC0 2BD1 adds out3 = 24, sp // r47 = 24, r12 // 067642 010802618700 2BD2 adds r28 = 12, tpuptr // r28 = 12, r38 // 067644 } { .mmi 0080C3100C00 2BE0 ld8 out4 = $LITERAL$ ;; // r48 = [r49] // 067643 01C049E3A200 2BE1 cmp.eq pr8, pr9 = r29, r30 // 067647 012000014640 2BE2 mov ai = 10 // r25 = 10 // 067642 } { .mii 010801C00C40 2BF0 mov out5 = r28 // r49 = r28 0000B1100CC0 2BF1 sxt4 out7 = r17 ;; // r51 = r17 009E0803A7C9 2BF2 (pr9) dep r31 = r29, r0, 3, 2 // 067647 } { .mib 008081E00B48 2C00 (pr8) ld4 out1 = [r30] // r45 = [r30] 0000B0B00C80 2C01 sxt4 out6 = r11 // r50 = r11 // 067642 004000000000 2C02 nop.b 0 ;; } { .mmi 00A081E08B49 2C10 (pr9) ld4 out1 = [r30], 4 ;; // r45 = [r30], 4 // 067647 008081E00B09 2C11 (pr9) ld4 out0 = [r30] // r44 = [r30] 00F202D3EB49 2C12 (pr9) shr.u out1 = out1, r31 // r45 = r45, r31 } { .mmi 010129F407C9 2C20 (pr9) sub r31 = 32, r31 ;; 000008000000 2C21 nop.m 0 00F241F58B09 2C22 (pr9) shl out0 = out0, r31 ;; // r44 = r44, r31 } { .mii 010072D58B49 2C30 (pr9) or out1 = out0, out1 // r45 = r44, r45 0000B1B00B00 2C31 sxt4 out0 = r27 ;; // r44 = r27 // 067642 000092D00B49 2C32 (pr9) zxt4 out1 = out1 ;; // r45 = r45 // 067647 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 90 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mib 000008000000 2C40 nop.m 0 0000B2D00B40 2C41 sxt4 out1 = out1 // r45 = r45 // 067642 004000000000 2C42 nop.b 0 ;; } { .mii 008CC2E5A000 2C50 st8 [out2] = out1 // [r46] = r45 012000100B80 2C51 add out2 = @ltoffx($LITERAL$), gp // r46 = @ltoffx($LITERAL$), r1 000008000000 2C52 nop.i 0 } { .mib 008CC2F34000 2C60 st8 [out3] = r26 // [r47] = r26 012000004BC0 2C61 mov out3 = 2 // r47 = 2 004000000000 2C62 nop.b 0 ;; } { .mib 0080C2E00B40 2C70 ld8.mov out1 = [r46], $LITERAL$ 0120200EAB80 2C71 mov out2 = 629 // r46 = 629 00A000001000 2C72 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802B00040 2C80 mov gp = r43 // r1 = r43 000008000000 2C81 nop.f 0 000008000000 2C82 nop.i 0 } 2C90 L$239: // 067650 { .mii 01C41A500100 2C90 cmp4.eq pr4, pr3 = r0, ProcessRequest // pr4, pr3 = r0, r37 // 067682 01C402300080 2C91 cmp4.eq pr2, pr0 = r0, QueueRequest ;; // pr2, pr0 = r0, r35 // 067653 0120001009C0 2C92 add r39 = @ltoffx(AccountingPtr), // r39 = @ltoffx(AccountingPtr), r1 // 067731 gp } { .mii 01C0000014C4 2CA0 (pr4) cmp.eq.unc pr19, pr0 = r0, r0 // 067696 01C000001483 2CA1 (pr3) cmp.eq.unc pr18, pr0 = r0, r0 000008000000 2CA2 nop.i 0 ;; } { .mfb 0080C27009C0 2CB0 ld8.mov r39 = [r39], AccountingPtr // 067731 000008000000 2CB1 nop.f 0 00860008C002 2CB2 (pr2) br.cond.dpnt.many L$248 ;; // 067653 } { .mii 010802440440 2CC0 adds r17 = 32, r36 // 067659 0108024080C0 2CC1 adds r3 = 4, r36 // 067660 010802428580 2CC2 adds r22 = 20, r36 // 067661 } { .mmi 010802440700 2CD0 adds r28 = 32, r36 ;; // 067659 0111611F8480 2CD1 and r18 = -4, r17 0111603F8200 2CD2 and r8 = -4, r3 // 067660 } { .mii 0111616F85C0 2CE0 and r23 = -4, r22 // 067661 0108024087C0 2CE1 adds r31 = 4, r36 ;; // 067660 01C049222200 2CE2 cmp.eq pr8, pr9 = r17, r18 // 067659 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 91 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mii 01C038806180 2CF0 cmp.eq pr6, pr7 = r3, r8 // 067660 01C05972C280 2CF1 cmp.eq pr10, pr11 = r22, r23 ;; // 067661 009E080224C9 2CF2 (pr9) dep r19 = r17, r0, 3, 2 // 067659 } { .mmi 008081200548 2D00 (pr8) ld4 r21 = [r18] 0080808002C6 2D01 (pr6) ld4 r11 = [r8] // 067660 000008000000 2D02 nop.i 0 ;; } { .mii 00808170068A 2D10 (pr10) ld4 r26 = [r23] // 067661 009E08006247 2D11 (pr7) dep r9 = r3, r0, 3, 2 ;; // 067660 009E0802C60B 2D12 (pr11) dep r24 = r22, r0, 3, 2 // 067661 } { .mmi 00A081208549 2D20 (pr9) ld4 r21 = [r18], 4 // 067659 00A0808082C7 2D21 (pr7) ld4 r11 = [r8], 4 // 067660 000008000000 2D22 nop.i 0 ;; } { .mii 00A08170868B 2D30 (pr11) ld4 r26 = [r23], 4 // 067661 00A079C00380 2D31 tbit.z pr14, pr15 = r28, 0 ;; // 067659 00F201526549 2D32 (pr9) shr.u r21 = r21, r19 } { .mmi 0101293404C9 2D40 (pr9) sub r19 = 32, r19 008081200509 2D41 (pr9) ld4 r20 = [r18] 00F200B122C7 2D42 (pr7) shr.u r11 = r11, r9 ;; // 067660 } { .mmi 010128940247 2D50 (pr7) sub r9 = 32, r9 008080800287 2D51 (pr7) ld4 r10 = [r8] 00F201A3068B 2D52 (pr11) shr.u r26 = r26, r24 ;; // 067661 } { .mmi 01012984060B 2D60 (pr11) sub r24 = 32, r24 00808170064B 2D61 (pr11) ld4 ai = [r23] // r25 = [r23] 00A021F000C0 2D62 tbit.z pr3, pr4 = r31, 0 ;; // 067660 } { .mii 000008000000 2D70 nop.m 0 00F241328509 2D71 (pr9) shl r20 = r20, r19 ;; // 067659 00F240914287 2D72 (pr7) shl r10 = r10, r9 ;; // 067660 } { .mii 000008000000 2D80 nop.m 0 00F24183264B 2D81 (pr11) shl ai = ai, r24 ;; // r25 = r25, r24 // 067661 010071528549 2D82 (pr9) or r21 = r20, r21 ;; // 067659 } { .mii 010070B142C7 2D90 (pr7) or r11 = r10, r11 // 067660 000091500549 2D91 (pr9) zxt4 r21 = r21 ;; // 067659 010801502740 2D92 adds r29 = 1, r21 } { .mii Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 92 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 010071A3268B 2DA0 (pr11) or r26 = ai, r26 // r26 = r25, r26 // 067661 000090B002C7 2DA1 (pr7) zxt4 r11 = r11 ;; // 067660 010800B02BC0 2DA2 adds out3 = 1, r11 // r47 = 1, r11 } { .mii 00AC01C3A04F 2DB0 (pr15) st1 [r28] = r29, 1 // 067659 000091A0068B 2DB1 (pr11) zxt4 r26 = r26 ;; // 067661 00A5B9D2074F 2DB2 (pr15) shr.u r29 = r29, 8 // 067659 } { .mii 010802F00B00 2DC0 mov out0 = out3 // r44 = r47 // 067660 018462F34000 2DC1 cmp4.lt pr0, pr12 = r26, out3 // pr0, pr12 = r26, r47 // 067661 000008000000 2DC2 nop.i 0 ;; } { .mib 00AC41C3A080 2DD0 st2 [r28] = r29, 2 // 067659 00A579D40740 2DD1 shr.u r29 = r29, 16 004000000000 2DD2 nop.b 0 ;; } { .mmi 008C41C3A00E 2DE0 (pr14) st2 [r28] = r29 008C01C3A00F 2DE1 (pr15) st1 [r28] = r29 000008000000 2DE2 nop.i 0 ;; } { .mib 00AC01F58044 2DF0 (pr4) st1 [r31] = out0, 1 // [r31] = r44, 1 // 067660 00A5BAC20B04 2DF1 (pr4) shr.u out0 = out0, 8 // r44 = r44, 8 004000000000 2DF2 nop.b 0 ;; } { .mib 00AC41F58080 2E00 st2 [r31] = out0, 2 // [r31] = r44, 2 00A57AC40B00 2E01 shr.u out0 = out0, 16 // r44 = r44, 16 004000000000 2E02 nop.b 0 ;; } { .mmb 008C41F58003 2E10 (pr3) st2 [r31] = out0 // [r31] = r44 008C01F58004 2E11 (pr4) st1 [r31] = out0 // [r31] = r44 00860000A00C 2E12 (pr12) br.cond.dpnt.many L$249 ;; // 067661 } { .mmi 010802428B80 2E20 adds out2 = 20, r36 ;; // r46 = 20, r36 // 067662 000008000000 2E21 nop.m 0 00A02AE00080 2E22 tbit.z pr2, pr5 = out2, 0 ;; // pr2, pr5 = r46, 0 } { .mib 00AC02E5E045 2E30 (pr5) st1 [out2] = out3, 1 // [r46] = r47, 1 00A5BAF20BC5 2E31 (pr5) shr.u out3 = out3, 8 // r47 = r47, 8 004000000000 2E32 nop.b 0 ;; } { .mib 00AC42E5E080 2E40 st2 [out2] = out3, 2 // [r46] = r47, 2 00A57AF40BC0 2E41 shr.u out3 = out3, 16 // r47 = r47, 16 004000000000 2E42 nop.b 0 ;; } { .mmi 008C42E5E002 2E50 (pr2) st2 [out2] = out3 // [r46] = r47 008C02E5E005 2E51 (pr5) st1 [out2] = out3 // [r46] = r47 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 93 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 2E52 nop.i 0 } 2E60 L$249: { .bbb 008600002010 2E60 (pr16) br.cond.dpnt.many L$251 // 067663 004000000000 2E61 nop.b 0 008600014011 2E62 (pr17) br.cond.dpnt.many L$252 ;; } 2E70 L$251: { .mii 010802608C00 2E70 adds out4 = 4, r38 // r48 = 4, r38 010802608840 2E71 adds r33 = 4, r38 ;; 0111630F8C40 2E72 and out5 = -4, out4 ;; // r49 = -4, r48 } { .mii 01C03B160180 2E80 cmp.eq pr6, pr7 = out4, out5 // pr6, pr7 = r48, r49 00A04A100200 2E81 tbit.z pr8, pr9 = r33, 0 ;; 009E08060C87 2E82 (pr7) dep out6 = out4, r0, 3, 2 // r50 = r48, r0, 3, 2 } { .mmi 0080831008C6 2E90 (pr6) ld4 r35 = [out5] ;; // r35 = [r49] 00A0831088C7 2E91 (pr7) ld4 r35 = [out5], 4 // r35 = [r49], 4 000008000000 2E92 nop.i 0 ;; } { .mii 008083100CC7 2EA0 (pr7) ld4 out7 = [out5] // r51 = [r49] 00F2023648C7 2EA1 (pr7) shr.u r35 = r35, out6 // r35 = r35, r50 01012B240C87 2EA2 (pr7) sub out6 = 32, out6 ;; // r50 = 32, r50 } { .mii 000008000000 2EB0 nop.m 0 00F243266CC7 2EB1 (pr7) shl out7 = out7, out6 ;; // r51 = r51, r50 0100723668C7 2EB2 (pr7) or r35 = out7, r35 ;; // r35 = r51, r35 } { .mii 000008000000 2EC0 nop.m 0 0000923008C7 2EC1 (pr7) zxt4 r35 = r35 ;; 010802302880 2EC2 adds r34 = 1, r35 ;; } { .mib 00AC02144049 2ED0 (pr9) st1 [r33] = r34, 1 00A5BA220889 2ED1 (pr9) shr.u r34 = r34, 8 004000000000 2ED2 nop.b 0 ;; } { .mib 00AC42144080 2EE0 st2 [r33] = r34, 2 00A57A240880 2EE1 shr.u r34 = r34, 16 004000000000 2EE2 nop.b 0 ;; } { .mmi 008C42144008 2EF0 (pr8) st2 [r33] = r34 008C02144009 2EF1 (pr9) st1 [r33] = r34 000008000000 2EF2 nop.i 0 ;; } 2F00 L$252: { .mib 012000002640 2F00 mov ai = 1 // r25 = 1 // 067665 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 94 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 012000002B00 2F01 mov out0 = 1 // r44 = 1 00A000001000 2F02 br.call.sptk.many rp = // br0 = InstanceMutexLock InstanceMutexLock ;; } { .mmi 010802B00040 2F10 mov gp = r43 // r1 = r43 008082700840 2F11 ld4 r33 = [r39] // 067666 012000002640 2F12 mov ai = 1 ;; // r25 = 1 // 067668 } { .mii 012000100940 2F20 add r37 = @ltoffx(InstanceNumber), // r37 = @ltoffx(InstanceNumber), r1 // 067667 gp 0000B2100840 2F21 sxt4 r33 = r33 // 067666 012000002B00 2F22 mov out0 = 1 ;; // r44 = 1 // 067668 } { .mii 0080C2500940 2F30 ld8.mov r37 = [r37], InstanceNumber // 067667 010822188880 2F31 adds r34 = 580, r33 // 067666 0108221888C0 2F32 adds r35 = 580, r33 ;; } { .mmi 008082200880 2F40 ld4 r34 = [r34] ;; 010802202880 2F41 adds r34 = 1, r34 000008000000 2F42 nop.i 0 ;; } { .mmi 008C82344000 2F50 st4 [r35] = r34 ;; 008082500940 2F51 ld4 r37 = InstanceNumber // r37 = [r37] // 067667 000008000000 2F52 nop.i 0 ;; } { .mii 000008000000 2F60 nop.m 0 0000B2500940 2F61 sxt4 r37 = r37 ;; 01008A14A840 2F62 shladd r33 = r37, 2, r33 ;; } { .mii 01083A1F0980 2F70 adds r38 = 1016, r33 01083A1F0840 2F71 adds r33 = 1016, r33 000008000000 2F72 nop.i 0 ;; } { .mmi 008082600980 2F80 ld4 r38 = [r38] ;; 010802602980 2F81 adds r38 = 1, r38 000008000000 2F82 nop.i 0 ;; } { .mfb 008C8214C000 2F90 st4 [r33] = r38 000008000000 2F91 nop.f 0 00A000001000 2F92 br.call.sptk.many rp = // br0 = InstanceMutexUnLock // 067668 InstanceMutexUnLock ;; } { .mii 0109520089C0 2FA0 adds r39 = 5380, in0 // r39 = 5380, r32 // 067671 010802468880 2FA1 adds r34 = 52, tsptr // r34 = 52, r36 // 067674 012000006640 2FA2 mov ai = 3 // r25 = 3 } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 95 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 012000022B80 2FB0 mov out2 = 17 ;; // r46 = 17 008C82740000 2FB1 st4 [r39] = rqptr // [r39] = r32 // 067671 010802200B00 2FB2 mov out0 = r34 // r44 = r34 // 067674 } { .mii 01094A0F8B40 2FC0 adds out1 = 5372, rqptr // r45 = 5372, r32 010802B00040 2FC1 mov gp = r43 // r1 = r43 // 067668 000008000000 2FC2 nop.i 0 ;; } { .mfb 000008000000 2FD0 nop.m 0 000008000000 2FD1 nop.f 0 00A000001000 2FD2 br.call.sptk.many rp = ListAddTail ;; // br0 = ListAddTail // 067674 } { .mii 0109120808C0 2FE0 adds r35 = 4416, in0 // r35 = 4416, r32 // 067677 010802B00040 2FE1 mov gp = r43 // r1 = r43 // 067674 000008000000 2FE2 nop.i 0 ;; } { .mmi 0080823008C0 2FF0 ld4 r35 = [r35] ;; // 067677 01C41A300000 2FF1 cmp4.eq pr0, pr3 = r0, r35 000008000000 2FF2 nop.i 0 } { .mfb 000008000000 3000 nop.m 0 000008000000 3001 nop.f 0 008600006003 3002 (pr3) br.cond.dpnt.many L$253 ;; } { .mmi 010912078940 3010 adds r37 = 4412, in0 ;; // r37 = 4412, r32 // 067678 008082500940 3011 ld4 r37 = [r37] 000008000000 3012 nop.i 0 ;; } { .mfb 01C402500140 3020 cmp4.eq pr5, pr0 = r0, r37 000008000000 3021 nop.f 0 008600008005 3022 (pr5) br.cond.dpnt.many L$255 ;; // 067677 } 3030 L$253: { .mii 012000006640 3030 mov ai = 3 // r25 = 3 // 067679 012000000B80 3031 mov out2 = 0 // r46 = 0 012000004B40 3032 mov out1 = 2 // r45 = 2 } { .mfb 010802000B00 3040 mov out0 = rqptr // r44 = r32 000008000000 3041 nop.f 0 00A000001000 3042 br.call.sptk.many rp = HttpdTimerSet ;; // br0 = HttpdTimerSet } { .mfi 010802B00040 3050 mov gp = r43 // r1 = r43 000008000000 3051 nop.f 0 000008000000 3052 nop.i 0 } 3060 L$255: { .mfb Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 96 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 3060 nop.m 0 000008000000 3061 nop.f 0 008600004012 3062 (pr18) br.cond.dpnt.many L$256 ;; // 067682 } { .mfb 0120E0064200 3070 mov r8 = 3634 000008000000 3071 nop.f 0 0080000DD000 3072 br.sptk.many L$208 ;; } 3080 L$256: { .mii 010802468840 3080 adds r33 = 52, r36 // 067689 012000002B80 3081 mov out2 = 1 // r46 = 1 // 067690 010800000B40 3082 mov out1 = r0 ;; // r45 = r0 } { .mmi 0111621F8980 3090 and r38 = -4, r33 ;; // 067689 01C08A642400 3091 cmp.eq pr16, pr17 = r33, r38 000008000000 3092 nop.i 0 ;; } { .mib 0080826008D0 30A0 (pr16) ld4 r35 = [r38] 009E080429D1 30A1 (pr17) dep r39 = r33, r0, 3, 2 004000000000 30A2 nop.b 0 ;; } { .mmi 00A0826088D1 30B0 (pr17) ld4 r35 = [r38], 4 ;; 008082600891 30B1 (pr17) ld4 r34 = [r38] 00F20234E8D1 30B2 (pr17) shr.u r35 = r35, r39 } { .mmi 01012A7409D1 30C0 (pr17) sub r39 = 32, r39 ;; 000008000000 30C1 nop.m 0 00F242744891 30C2 (pr17) shl r34 = r34, r39 ;; } { .mmi 0100723448D1 30D0 (pr17) or r35 = r34, r35 ;; 000008000000 30D1 nop.m 0 0000B23008C0 30D2 sxt4 r35 = r35 ;; } { .mmi 0108023108C0 30E0 adds r35 = 8, r35 ;; // 067690 008082300B00 30E1 ld4 out0 = [r35] // r44 = [r35] 000008000000 30E2 nop.i 0 ;; } { .mib 000008000000 30F0 nop.m 0 0000B2C00B00 30F1 sxt4 out0 = out0 // r44 = r44 00A000001000 30F2 br.call.sptk.many rp = ThrottleRelease ;; // br0 = ThrottleRelease } { .mfb 0120E0064200 3100 mov r8 = 3634 // 067692 000008000000 3101 nop.f 0 0080000CB000 3102 br.sptk.many L$208 ;; } 3110 L$248: // 067693 { .bbb Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 97 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 008600002012 3110 (pr18) br.cond.dpnt.many L$258 // 067696 00860004C013 3111 (pr19) br.cond.dpnt.many L$259 004000000000 3112 nop.b 0 ;; } 3120 L$258: { .mmi 0111624F88C0 3120 and r35 = -4, r36 ;; // 067702 01C0223480C0 3121 cmp.eq pr3, pr4 = r36, r35 000008000000 3122 nop.i 0 ;; } { .mii 008082300283 3130 (pr3) ld4 r10 = [r35] 009E080480C4 3131 (pr4) dep r3 = r36, r0, 3, 2 0108024202C0 3132 adds r11 = 16, r36 // 067703 } { .mmi 010802400580 3140 mov r22 = r36 ;; // 067702 011160BF8440 3141 and r17 = -4, r11 // 067703 00A04A400200 3142 tbit.z pr8, pr9 = r36, 0 ;; // 067702 } { .mii 00A082308284 3150 (pr4) ld4 r10 = [r35], 4 01C029116080 3151 cmp.eq pr2, pr5 = r11, r17 ;; // 067703 009E08016485 3152 (pr5) dep r18 = r11, r0, 3, 2 } { .mmi 008081100502 3160 (pr2) ld4 r20 = [r17] ;; 008082300244 3161 (pr4) ld4 r9 = [r35] // 067702 00F200A06284 3162 (pr4) shr.u r10 = r10, r3 } { .mmi 0101283400C4 3170 (pr4) sub r3 = 32, r3 ;; 00A081108505 3171 (pr5) ld4 r20 = [r17], 4 // 067703 000008000000 3172 nop.i 0 ;; } { .mii 0080811004C5 3180 (pr5) ld4 r19 = [r17] 00F240312244 3181 (pr4) shl r9 = r9, r3 // 067702 00F201424505 3182 (pr5) shr.u r20 = r20, r18 // 067703 } { .mmi 010129240485 3190 (pr5) sub r18 = 32, r18 ;; 000008000000 3191 nop.m 0 00F2412264C5 3192 (pr5) shl r19 = r19, r18 ;; } { .mmi 010070A12284 31A0 (pr4) or r10 = r9, r10 ;; // 067702 000008000000 31A1 nop.m 0 000090A00284 31A2 (pr4) zxt4 r10 = r10 ;; } { .mmi 010800A02680 31B0 adds r26 = 1, r10 ;; 010801A005C0 31B1 mov r23 = r26 010071426505 31B2 (pr5) or r20 = r19, r20 ;; // 067703 } { .mii 00AC0162E049 31C0 (pr9) st1 [r22] = r23, 1 // 067702 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 98 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00A5B97205C9 31C1 (pr9) shr.u r23 = r23, 8 000091400505 31C2 (pr5) zxt4 r20 = r20 ;; // 067703 } { .mmi 018431A28000 31D0 cmp4.lt pr0, pr6 = r20, r26 ;; 00AC4162E080 31D1 st2 [r22] = r23, 2 // 067702 00A5797405C0 31D2 shr.u r23 = r23, 16 ;; } { .mmb 008C4162E008 31E0 (pr8) st2 [r22] = r23 008C0162E009 31E1 (pr9) st1 [r22] = r23 00860000A006 31E2 (pr6) br.cond.dpnt.many L$260 ;; // 067703 } { .mmi 010802420640 31F0 adds ai = 16, r36 ;; // r25 = 16, r36 // 067704 000008000000 31F1 nop.m 0 00A059900280 31F2 tbit.z pr10, pr11 = ai, 0 ;; // pr10, pr11 = r25, 0 } { .mib 00AC0193404B 3200 (pr11) st1 [ai] = r26, 1 // [r25] = r26, 1 00A5B9A2068B 3201 (pr11) shr.u r26 = r26, 8 004000000000 3202 nop.b 0 ;; } { .mib 00AC41934080 3210 st2 [ai] = r26, 2 // [r25] = r26, 2 00A579A40680 3211 shr.u r26 = r26, 16 004000000000 3212 nop.b 0 ;; } { .mmi 008C4193400A 3220 (pr10) st2 [ai] = r26 // [r25] = r26 008C0193400B 3221 (pr11) st1 [ai] = r26 // [r25] = r26 000008000000 3222 nop.i 0 } 3230 L$260: { .bbb 008600002010 3230 (pr16) br.cond.dpnt.many L$262 // 067705 004000000000 3231 nop.b 0 008600012011 3232 (pr17) br.cond.dpnt.many L$263 ;; } 3240 L$262: { .mii 0111626F8700 3240 and r28 = -4, r38 00A07A600380 3241 tbit.z pr14, pr15 = r38, 0 010802600B40 3242 mov out1 = r38 ;; // r45 = r38 } { .mmi 01C069C4C300 3250 cmp.eq pr12, pr13 = r38, r28 ;; 008081C007CC 3251 (pr12) ld4 r31 = [r28] 009E0804C74D 3252 (pr13) dep r29 = r38, r0, 3, 2 ;; } { .mmi 00A081C087CD 3260 (pr13) ld4 r31 = [r28], 4 ;; 008081C0078D 3261 (pr13) ld4 r30 = [r28] 00F201F3A7CD 3262 (pr13) shr.u r31 = r31, r29 } { .mmi 010129D4074D 3270 (pr13) sub r29 = 32, r29 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 99 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 3271 nop.m 0 00F241D3C78D 3272 (pr13) shl r30 = r30, r29 ;; } { .mmi 010071F3C7CD 3280 (pr13) or r31 = r30, r31 ;; 000008000000 3281 nop.m 0 000091F007CD 3282 (pr13) zxt4 r31 = r31 ;; } { .mmi 010801F02B80 3290 adds out2 = 1, r31 ;; // r46 = 1, r31 00AC02D5C04F 3291 (pr15) st1 [out1] = out2, 1 // [r45] = r46, 1 00A5BAE20B8F 3292 (pr15) shr.u out2 = out2, 8 ;; // r46 = r46, 8 } { .mib 00AC42D5C080 32A0 st2 [out1] = out2, 2 // [r45] = r46, 2 00A57AE40B80 32A1 shr.u out2 = out2, 16 // r46 = r46, 16 004000000000 32A2 nop.b 0 ;; } { .mmi 008C42D5C00E 32B0 (pr14) st2 [out1] = out2 // [r45] = r46 008C02D5C00F 32B1 (pr15) st1 [out1] = out2 // [r45] = r46 000008000000 32B2 nop.i 0 ;; } 32C0 L$263: { .mib 012000002640 32C0 mov ai = 1 // r25 = 1 // 067707 012000002B00 32C1 mov out0 = 1 // r44 = 1 00A000001000 32C2 br.call.sptk.many rp = // br0 = InstanceMutexLock InstanceMutexLock ;; } { .mmi 010802B00040 32D0 mov gp = r43 // r1 = r43 008082700800 32D1 ld4 in0 = [r39] // r32 = [r39] // 067708 012000002640 32D2 mov ai = 1 ;; // r25 = 1 // 067710 } { .mii 0120001008C0 32E0 add r35 = @ltoffx(InstanceNumber), // r35 = @ltoffx(InstanceNumber), r1 // 067709 gp 0000B2000800 32E1 sxt4 in0 = in0 // r32 = r32 // 067708 012000002B00 32E2 mov out0 = 1 ;; // r44 = 1 // 067710 } { .mii 0080C23008C0 32F0 ld8.mov r35 = [r35], InstanceNumber // 067709 010822080840 32F1 adds r33 = 576, in0 // r33 = 576, r32 // 067708 010822080880 32F2 adds r34 = 576, in0 ;; // r34 = 576, r32 } { .mmi 008082100840 3300 ld4 r33 = [r33] ;; 010802102840 3301 adds r33 = 1, r33 000008000000 3302 nop.i 0 ;; } { .mmi 008C82242000 3310 st4 [r34] = r33 ;; 0080823008C0 3311 ld4 r35 = InstanceNumber // r35 = [r35] // 067709 000008000000 3312 nop.i 0 ;; } { .mii Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 100 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 3320 nop.m 0 0000B23008C0 3321 sxt4 r35 = r35 ;; 01008A046800 3322 shladd in0 = r35, 2, in0 ;; // r32 = r35, 2, r32 } { .mii 01083A0A8940 3330 adds r37 = 980, in0 // r37 = 980, r32 01083A0A8800 3331 adds in0 = 980, in0 // r32 = 980, r32 000008000000 3332 nop.i 0 ;; } { .mmi 008082500940 3340 ld4 r37 = [r37] ;; 010802502940 3341 adds r37 = 1, r37 000008000000 3342 nop.i 0 ;; } { .mfb 008C8204A000 3350 st4 [in0] = r37 // [r32] = r37 000008000000 3351 nop.f 0 00A000001000 3352 br.call.sptk.many rp = // br0 = InstanceMutexUnLock // 067710 InstanceMutexUnLock ;; } { .mib 012000002200 3360 mov r8 = 1 // 067712 010802B00040 3361 mov gp = r43 // r1 = r43 // 067710 00800007F000 3362 br.sptk.many L$208 ;; // 067712 } 3370 L$259: // 067713 { .mii 0108024304C0 3370 adds r19 = 24, r36 // 067721 010902098980 3371 adds r38 = 4172, in0 // r38 = 4172, r32 // 067719 0109120808C0 3372 adds r35 = 4416, in0 // r35 = 4416, r32 } { .mmi 010912078940 3380 adds r37 = 4412, in0 ;; // r37 = 4412, r32 0111613F8500 3381 and r20 = -4, r19 // 067721 0109120700C0 3382 adds r3 = 4408, in0 // r3 = 4408, r32 // 067719 } { .mii 010912068240 3390 adds r9 = 4404, in0 // r9 = 4404, r32 010912060280 3391 adds r10 = 4400, in0 ;; // r10 = 4400, r32 0109120482C0 3392 adds r11 = 4388, in0 // r11 = 4388, r32 } { .mii 010912058440 33A0 adds r17 = 4396, in0 // r17 = 4396, r32 010912050480 33A1 adds r18 = 4392, in0 // r18 = 4392, r32 01C099426480 33A2 cmp.eq pr18, pr19 = r19, r20 ;; // 067721 } { .mmi 008C82600000 33B0 st4 [r38] = r0 // 067719 008C82300000 33B1 st4 [r35] = r0 009E08026553 33B2 (pr19) dep r21 = r19, r0, 3, 2 ;; // 067721 } { .mmi 008C82500000 33C0 st4 [r37] = r0 // 067719 008C80300000 33C1 st4 [r3] = r0 010802430640 33C2 adds ai = 24, r36 ;; // r25 = 24, r36 // 067721 } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 101 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 008C80900000 33D0 st4 [r9] = r0 // 067719 008C80A00000 33D1 st4 [r10] = r0 00A0219000C0 33D2 tbit.z pr3, pr4 = ai, 0 ;; // pr3, pr4 = r25, 0 // 067721 } { .mmi 008C80B00000 33E0 st4 [r11] = r0 // 067719 008C81100000 33E1 st4 [r17] = r0 01092A030700 33E2 adds r28 = 4760, in0 ;; // r28 = 4760, r32 // 067722 } { .mii 008C81200000 33F0 st4 [r18] = r0 // 067719 0120180EE6C0 33F1 mov r27 = 503 // 067722 01200003AB40 33F2 mov out1 = 29 // r45 = 29 // 067723 } { .mmi 010802000B00 3400 mov out0 = rqptr ;; // r44 = r32 0080814005D2 3401 (pr18) ld4 r23 = [r20] // 067721 000008000000 3402 nop.i 0 ;; } { .mmi 00A0814085D3 3410 (pr19) ld4 r23 = [r20], 4 ;; 008081400593 3411 (pr19) ld4 r22 = [r20] 00F20172A5D3 3412 (pr19) shr.u r23 = r23, r21 } { .mmi 010129540553 3420 (pr19) sub r21 = 32, r21 ;; 000008000000 3421 nop.m 0 00F24152C593 3422 (pr19) shl r22 = r22, r21 ;; } { .mmi 01007172C5D3 3430 (pr19) or r23 = r22, r23 ;; 000008000000 3431 nop.m 0 0000917005D3 3432 (pr19) zxt4 r23 = r23 ;; } { .mmi 010801702680 3440 adds r26 = 1, r23 ;; 00AC01934044 3441 (pr4) st1 [ai] = r26, 1 // [r25] = r26, 1 00A5B9A20684 3442 (pr4) shr.u r26 = r26, 8 ;; } { .mib 00AC41934080 3450 st2 [ai] = r26, 2 // [r25] = r26, 2 00A579A40680 3451 shr.u r26 = r26, 16 004000000000 3452 nop.b 0 ;; } { .mmi 008C41934003 3460 (pr3) st2 [ai] = r26 // [r25] = r26 008C01934004 3461 (pr4) st1 [ai] = r26 // [r25] = r26 012000004640 3462 mov ai = 2 ;; // r25 = 2 // 067723 } { .mfb 008C81C36000 3470 st4 [r28] = r27 // 067722 000008000000 3471 nop.f 0 00A000001000 3472 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor // 067723 } { .mii 010802B00040 3480 mov gp = r43 // r1 = r43 012000008640 3481 mov ai = 4 // r25 = 4 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 102 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 010800800B40 3482 mov out1 = r8 // r45 = r8 } { .mmi 010802000B00 3490 mov out0 = rqptr ;; // r44 = r32 012000100BC0 3491 add out3 = @ltoffx($LITERAL$), gp // r47 = @ltoffx($LITERAL$), r1 000008000000 3492 nop.i 0 ;; } { .mib 0080C2F00B80 34A0 ld8.mov out2 = [r47], $LITERAL$ 01202808CBC0 34A1 mov out3 = 710 // r47 = 710 00A000001000 34A2 br.call.sptk.many rp = ErrorGeneral ;; // br0 = ErrorGeneral } { .mmi 008082200980 34B0 ld4 r38 = [r34] // 067726 008082100840 34B1 ld4 r33 = [r33] // 067728 000008000000 34B2 nop.i 0 ;; } { .mib 010802602980 34C0 adds r38 = 1, r38 // 067726 0000B2100840 34C1 sxt4 r33 = r33 // 067728 004000000000 34C2 nop.b 0 } { .mlx 010800C60900 34D0 adds r36 = 48, sp // r36 = 48, r12 // 067727 810164000000 34D1 movl r37 = 4636737291354636288 ;; 0180000012 } { .mii 00C708042240 34E0 setf.sig f9 = r33 // 067728 0000B26008C0 34E1 sxt4 r35 = r38 // 067727 012000002640 34E2 mov ai = 1 // r25 = 1 // 067730 } { .mmi 00C7C804A200 34F0 setf.d f8 = r37 ;; // 067727 00C708046180 34F1 setf.sig f6 = r35 012000002B00 34F2 mov out0 = 1 // r44 = 1 // 067730 } { .mii 008C8224C000 3500 st4 [r34] = r38 // 067726 010802B00040 3501 mov gp = r43 // r1 = r43 // 067723 000008000000 3502 nop.i 0 ;; } { .mfi 000008000000 3510 nop.m 0 0000E0012280 3511 fcvt.xf f10 = f9 // 067728 000008000000 3512 nop.i 0 ;; } { .mfi 000008000000 3520 nop.m 0 0000E000C1C0 3521 fcvt.xf f7 = f6 // 067727 000008000000 3522 nop.i 0 ;; } { .mfi 000008000000 3530 nop.m 0 012408A00280 3531 fnorm.d.s1 f10 = f10 // 067728 000008000000 3532 nop.i 0 ;; } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 103 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mfi 000008000000 3540 nop.m 0 0124087001C0 3541 fnorm.d.s1 f7 = f7 // 067727 000008000000 3542 nop.i 0 ;; } { .mfi 000008000000 3550 nop.m 0 0120407001C0 3551 fmpy.d f7 = f7, f8 000008000000 3552 nop.i 0 ;; } { .mfi 000008000000 3560 nop.m 0 000210A0E2C0 3561 frcpa f11, pr2 = f7, f10 000008000000 3562 nop.i 0 ;; } { .mfi 000008000000 3570 nop.m 0 010458700302 3571 (pr2) fma.s1 f12 = f7, f11, f0 000008000000 3572 nop.i 0 } { .mfi 000008000000 3580 nop.m 0 018458A02342 3581 (pr2) fnma.s1 f13 = f10, f11, f1 000008000000 3582 nop.i 0 ;; } { .mfi 000008000000 3590 nop.m 0 010460D18302 3591 (pr2) fma.s1 f12 = f13, f12, f12 000008000000 3592 nop.i 0 } { .mfi 000008000000 35A0 nop.m 0 010468D00382 35A1 (pr2) fma.s1 f14 = f13, f13, f0 000008000000 35A2 nop.i 0 ;; } { .mfi 000008000000 35B0 nop.m 0 010458D163C2 35B1 (pr2) fma.s1 f15 = f13, f11, f11 000008000000 35B2 nop.i 0 ;; } { .mfi 000008000000 35C0 nop.m 0 010460E18302 35C1 (pr2) fma.s1 f12 = f14, f12, f12 000008000000 35C2 nop.i 0 } { .mfi 000008000000 35D0 nop.m 0 010470E00342 35D1 (pr2) fma.s1 f13 = f14, f14, f0 000008000000 35D2 nop.i 0 ;; } { .mfi 000008000000 35E0 nop.m 0 010478E1E3C2 35E1 (pr2) fma.s1 f15 = f14, f15, f15 000008000000 35E2 nop.i 0 ;; } { .mfi 000008000000 35F0 nop.m 0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 104 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 012460D18302 35F1 (pr2) fma.d.s1 f12 = f13, f12, f12 000008000000 35F2 nop.i 0 ;; } { .mfi 000008000000 3600 nop.m 0 010478D1E3C2 3601 (pr2) fma.s1 f15 = f13, f15, f15 000008000000 3602 nop.i 0 ;; } { .mfi 000008000000 3610 nop.m 0 01A460A0E342 3611 (pr2) fnma.d.s1 f13 = f10, f12, f7 000008000000 3612 nop.i 0 ;; } { .mfi 000008000000 3620 nop.m 0 012078D182C2 3621 (pr2) fma.d f11 = f13, f15, f12 000008000000 3622 nop.i 0 ;; } { .mfb 00CCC2416000 3630 stfd [r36] = f11 000008000000 3631 nop.f 0 00A000001000 3632 br.call.sptk.many rp = // br0 = InstanceMutexLock // 067730 InstanceMutexLock ;; } { .mii 008082700800 3640 ld4 in0 = [r39] // r32 = [r39] // 067731 010800C60840 3641 adds r33 = 48, sp // r33 = 48, r12 // 067732 012050004640 3642 mov ai = 1282 // r25 = 1282 // 067733 } { .mmi 010800C60B40 3650 adds out1 = 48, sp ;; // r45 = 48, r12 010802B00040 3651 mov gp = r43 // r1 = r43 // 067730 0000B2000800 3652 sxt4 in0 = in0 ;; // r32 = r32 // 067731 } { .mii 0108220788C0 3660 adds r35 = 572, in0 // r35 = 572, r32 010822078940 3661 adds r37 = 572, in0 // r37 = 572, r32 010822070800 3662 adds in0 = 568, in0 ;; // r32 = 568, r32 // 067732 } { .mmi 0080823008C0 3670 ld4 r35 = [r35] ;; // 067731 0108023028C0 3671 adds r35 = 1, r35 000008000000 3672 nop.i 0 ;; } { .mmi 008C82546000 3680 st4 [r37] = r35 ;; 00C0C2100200 3681 ldfd f8 = [r33] // 067732 000008000000 3682 nop.i 0 ;; } { .mfi 000008000000 3690 nop.m 0 0000D00101C0 3691 fcvt.fx.trunc f7 = f8 000008000000 3692 nop.i 0 ;; } { .mmi 00870800E900 36A0 getf.sig r36 = f7 ;; 008C82048000 36A1 st4 [in0] = r36 // [r32] = r36 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 105 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 36A2 nop.i 0 } { .mfb 000008000000 36B0 nop.m 0 000008000000 36B1 nop.f 0 00A000001000 36B2 br.call.sptk.many rp = MATH$MODF_T ;; // br0 = MATH$MODF_T // 067733 } { .mlx 010802B00040 36C0 mov gp = r43 // r1 = r43 00FF80000000 36C1 movl r34 = 4602678819172646912 0180000011 } { .mmi 0080827009C0 36D0 ld4 r39 = [r39] ;; 00C7C8044180 36D1 setf.d f6 = r34 000008000000 36D2 nop.i 0 ;; } { .mfi 000008000000 36E0 nop.m 0 00828080C140 36E1 fcmp.le pr5, pr16 = f6, f8 000008000000 36E2 nop.i 0 ;; } { .mfb 000008000000 36F0 nop.m 0 000008000000 36F1 nop.f 0 008600008010 36F2 (pr16) br.cond.dpnt.many L$267 ;; } { .mii 000008000000 3700 nop.m 0 0000B27009C0 3701 sxt4 r39 = r39 ;; 010822770980 3702 adds r38 = 568, r39 } { .mmi 0108227709C0 3710 adds r39 = 568, r39 ;; 008082600980 3711 ld4 r38 = [r38] 000008000000 3712 nop.i 0 ;; } { .mmi 010802602980 3720 adds r38 = 1, r38 ;; 008C8274C000 3721 st4 [r39] = r38 000008000000 3722 nop.i 0 } 3730 L$267: { .mib 012000002640 3730 mov ai = 1 // r25 = 1 // 067734 012000002B00 3731 mov out0 = 1 // r44 = 1 00A000001000 3732 br.call.sptk.many rp = // br0 = InstanceMutexUnLock InstanceMutexUnLock ;; } 3740 L$268: { .mii 012000058200 3740 mov r8 = 44 // 067736 010802B00040 3741 mov gp = r43 // r1 = r43 // 067734 000008000000 3742 nop.i 0 ;; } 3750 L$208: // 067736 { .mii Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 106 ThrottleBegin 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 3750 nop.m 0 0016000547C0 3751 mov pr = r42, -65474 ;; 000154052000 3752 mov.i rspfs = r41 ;; } { .mii 000008000000 3760 nop.m 0 000E00150000 3761 mov rp = r40 // br0 = r40 010800C60300 3762 adds sp = 48, sp // r12 = 48, r12 } { .mfb 000008000000 3770 nop.m 0 000008000000 3771 nop.f 0 000108001100 3772 br.ret.sptk.many rp ;; // br0 } .endp ThrottleBegin Routine Size: 7776 bytes, Routine Base: $CODE$ + 1920 .proc ThrottleEnd .align 32 .global ThrottleEnd ThrottleEnd: // 067750 { .mii 002C00C28A40 3780 alloc r41 = rspfs, 1, 11, 8, 0 012000040380 3781 mov r14 = 32 012000100240 3782 add r9 = @ltoffx(ThrottleArray), // r9 = @ltoffx(ThrottleArray), r1 // 067766 gp } { .mmi 010912048200 3790 adds r8 = 4388, in0 ;; // r8 = 4388, r32 010028E183C0 3791 sub r15 = sp, r14 // r15 = r12, r14 // 067750 010800C00080 3792 mov r2 = sp // r2 = r12 } { .mii 0080C0900240 37A0 ld8.mov r9 = [r9], ThrottleArray // 067766 010952018280 37A1 adds r10 = 5388, in0 ;; // r10 = 5388, r32 // 067768 010800100AC0 37A2 mov r43 = gp // r43 = r1 // 067750 } { .mii 0080C0F00380 37B0 ld8 r14 = [r15] 010800F00300 37B1 mov sp = r15 ;; // r12 = r15 000188000A00 37B2 mov r40 = rp // r40 = br0 } { .mmi 008080800200 37C0 ld4 r8 = [r8] // 067766 008080900240 37C1 ld4 r9 = ThrottleArray // r9 = [r9] 000008000000 37C2 nop.i 0 ;; } { .mii 008080A00280 37D0 ld4 r10 = [r10] // 067768 00A7CB910200 37D1 shl r8 = r8, 6 // 067766 0000B0900240 37D2 sxt4 r9 = r9 ;; } { .mii 000008000000 37E0 nop.m 0 0000B0800200 37E1 sxt4 r8 = r8 ;; 000198000A80 37E2 mov r42 = pr // 067750 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 107 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mib 01C400A00200 37F0 cmp4.eq pr8, pr0 = r0, r10 // 067768 010000812840 37F1 add tsptr = r9, r8 // r33 = r9, r8 // 067766 00860002C008 37F2 (pr8) br.cond.dpnt.many L$147 ;; // 067768 } { .mmi 0108021602C0 3800 adds r11 = 48, r33 ;; // 067771 011160BF8440 3801 and r17 = -4, r11 000008000000 3802 nop.i 0 ;; } { .mmi 01C051116240 3810 cmp.eq pr9, pr10 = r11, r17 ;; 008081100B49 3811 (pr9) ld4 out1 = [r17] // r45 = [r17] 009E0801648A 3812 (pr10) dep r18 = r11, r0, 3, 2 ;; } { .mmi 00A081108B4A 3820 (pr10) ld4 out1 = [r17], 4 ;; // r45 = [r17], 4 0080811004CA 3821 (pr10) ld4 r19 = [r17] 00F202D24B4A 3822 (pr10) shr.u out1 = out1, r18 // r45 = r45, r18 } { .mmi 01012924048A 3830 (pr10) sub r18 = 32, r18 ;; 000008000000 3831 nop.m 0 00F2412264CA 3832 (pr10) shl r19 = r19, r18 ;; } { .mmi 010072D26B4A 3840 (pr10) or out1 = r19, out1 ;; // r45 = r19, r45 01C40005A300 3841 cmp4.eq pr12, pr0 = out1, r0 // pr12, pr0 = r45, r0 // 067772 0000B2D00880 3842 sxt4 r34 = out1 // r34 = r45 } { .mfb 000008000000 3850 nop.m 0 000008000000 3851 nop.f 0 00860001600C 3852 (pr12) br.cond.dpnt.many L$149 ;; } { .mfi 0108220D08C0 3860 adds r35 = 616, rqptr // r35 = 616, r32 // 067774 000008000000 3861 nop.f 0 000008000000 3862 nop.i 0 ;; } 3870 L$150: // 067772 { .mii 012000004640 3870 mov ai = 2 // r25 = 2 // 067774 010802300B00 3871 mov out0 = r35 // r44 = r35 010802218B40 3872 adds out1 = 12, tpuptr // r45 = 12, r34 } { .mfb 000008000000 3880 nop.m 0 000008000000 3881 nop.f 0 00A000001000 3882 br.call.sptk.many rp = DECC$STRCMP ;; // br0 = DECC$STRCMP } { .mib 01C4008001C0 3890 cmp4.eq pr7, pr0 = r0, r8 010802B00040 3891 mov gp = r43 // r1 = r43 00860000E007 3892 (pr7) br.cond.dpnt.many L$149 ;; } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 108 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mmi 01080229A900 38A0 adds r36 = 77, r34 ;; // 067775 0111624F8940 38A1 and r37 = -4, r36 000008000000 38A2 nop.i 0 ;; } { .mmi 01C04A548200 38B0 cmp.eq pr8, pr9 = r36, r37 ;; 0080825000C8 38B1 (pr8) ld4 r3 = [r37] 009E08048989 38B2 (pr9) dep r38 = r36, r0, 3, 2 ;; } { .mmi 00A0825080C9 38C0 (pr9) ld4 r3 = [r37], 4 ;; 0080825009C9 38C1 (pr9) ld4 r39 = [r37] 00F20034C0C9 38C2 (pr9) shr.u r3 = r3, r38 } { .mmi 01012A640989 38D0 (pr9) sub r38 = 32, r38 ;; 000008000000 38D1 nop.m 0 00F24264E9C9 38D2 (pr9) shl r39 = r39, r38 ;; } { .mmi 01007034E0C9 38E0 (pr9) or r3 = r39, r3 ;; 000008000000 38E1 nop.m 0 0000B03000C0 38E2 sxt4 r3 = r3 ;; } { .mib 01C450006000 38F0 cmp4.eq pr0, pr10 = r3, r0 // 067772 010800300880 38F1 mov tpuptr = r3 // r34 = r3 // 067775 0095FFFF000A 38F2 (pr10) br.cond.dptk.many L$150 ;; // 067772 } 3900 L$149: // 067776 { .mfb 01C460044000 3900 cmp4.eq pr0, pr12 = tpuptr, r0 // pr0, pr12 = r34, r0 // 067777 000008000000 3901 nop.f 0 00860000C00C 3902 (pr12) br.cond.dpnt.many L$152 ;; } { .mii 012000100C00 3910 add out4 = @ltoffx($LITERAL$), gp // r48 = @ltoffx($LITERAL$), r1 // 067778 012000100B80 3911 add out2 = // r46 = @ltoffx(ErrorSanityCheck), r1 @ltoffx(ErrorSanityCheck), gp 01200000A640 3912 mov ai = 5 // r25 = 5 } { .mmi 012028048B40 3920 mov out1 = 676 ;; // r45 = 676 0080C3000BC0 3921 ld8.mov out3 = [r48], $LITERAL$ 0120280FAC00 3922 mov out4 = 765 // r48 = 765 } { .mib 0080C2E00B80 3930 ld8.mov out2 = [r46], ErrorSanityCheck 010802000B00 3931 mov out0 = rqptr // r44 = r32 00A000001000 3932 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed } { .mfb 010802B00040 3940 mov gp = r43 // r1 = r43 000008000000 3941 nop.f 0 008000005000 3942 br.sptk.many L$152 ;; } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 109 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 3950 L$147: // 067780 { .mfi 010800000880 3950 mov tpuptr = r0 // r34 = r0 // 067781 000008000000 3951 nop.f 0 000008000000 3952 nop.i 0 } 3960 L$152: { .mmi 0111621F8940 3960 and r37 = -4, r33 ;; // 067784 01C03A542180 3961 cmp.eq pr6, pr7 = r33, r37 000008000000 3962 nop.i 0 ;; } { .mib 0080825008C6 3970 (pr6) ld4 r35 = [r37] 009E08042987 3971 (pr7) dep r38 = r33, r0, 3, 2 004000000000 3972 nop.b 0 ;; } { .mmi 00A0825088C7 3980 (pr7) ld4 r35 = [r37], 4 ;; 0080825009C7 3981 (pr7) ld4 r39 = [r37] 00F20234C8C7 3982 (pr7) shr.u r35 = r35, r38 } { .mmi 01012A640987 3990 (pr7) sub r38 = 32, r38 ;; 000008000000 3991 nop.m 0 00F24264E9C7 3992 (pr7) shl r39 = r39, r38 ;; } { .mmi 01007234E8C7 39A0 (pr7) or r35 = r39, r35 ;; 000008000000 39A1 nop.m 0 0000923008C7 39A2 (pr7) zxt4 r35 = r35 ;; } { .mfb 01C402300240 39B0 cmp4.eq pr9, pr0 = r0, r35 000008000000 39B1 nop.f 0 00860000A009 39B2 (pr9) br.cond.dpnt.many L$155 ;; } { .mii 010802100200 39C0 mov r8 = r33 // 067785 00A05A100280 39C1 tbit.z pr10, pr11 = r33, 0 0119FA3FE240 39C2 adds r9 = -1, r35 ;; } { .mib 00AC0081204B 39D0 (pr11) st1 [r8] = r9, 1 00A5B892024B 39D1 (pr11) shr.u r9 = r9, 8 004000000000 39D2 nop.b 0 ;; } { .mib 00AC40812080 39E0 st2 [r8] = r9, 2 00A578940240 39E1 shr.u r9 = r9, 16 004000000000 39E2 nop.b 0 ;; } { .mmi 008C4081200A 39F0 (pr10) st2 [r8] = r9 008C0081200B 39F1 (pr11) st1 [r8] = r9 000008000000 39F2 nop.i 0 ;; } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 110 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 3A00 L$155: { .mmi 01C460044340 3A00 cmp4.eq pr13, pr12 = tpuptr, r0 ;; // pr13, pr12 = r34, r0 // 067786 01C0000010CD 3A01 (pr13) cmp.eq.unc pr3, pr0 = r0, r0 01C00000108C 3A02 (pr12) cmp.eq.unc pr2, pr0 = r0, r0 } { .bbb 008600002002 3A10 (pr2) br.cond.dpnt.many L$156 004000000000 3A11 nop.b 0 008600016003 3A12 (pr3) br.cond.dpnt.many L$157 ;; } 3A20 L$156: { .mmi 0111622F82C0 3A20 and r11 = -4, r34 ;; 01C078B44380 3A21 cmp.eq pr14, pr15 = r34, r11 000008000000 3A22 nop.i 0 ;; } { .mib 008080B004CE 3A30 (pr14) ld4 r19 = [r11] 009E0804444F 3A31 (pr15) dep r17 = r34, r0, 3, 2 004000000000 3A32 nop.b 0 ;; } { .mmi 00A080B084CF 3A40 (pr15) ld4 r19 = [r11], 4 ;; 008080B0048F 3A41 (pr15) ld4 r18 = [r11] 00F2013224CF 3A42 (pr15) shr.u r19 = r19, r17 } { .mmi 01012914044F 3A50 (pr15) sub r17 = 32, r17 ;; 000008000000 3A51 nop.m 0 00F24112448F 3A52 (pr15) shl r18 = r18, r17 ;; } { .mmi 0100713244CF 3A60 (pr15) or r19 = r18, r19 ;; 000008000000 3A61 nop.m 0 0000913004CF 3A62 (pr15) zxt4 r19 = r19 ;; } { .mfb 01C4013001C0 3A70 cmp4.eq pr7, pr0 = r0, r19 000008000000 3A71 nop.f 0 00860000A007 3A72 (pr7) br.cond.dpnt.many L$157 ;; } { .mii 010802200540 3A80 mov r21 = r34 // 067787 00A04A200200 3A81 tbit.z pr8, pr9 = r34, 0 0119F93FE580 3A82 adds r22 = -1, r19 ;; } { .mib 00AC0152C049 3A90 (pr9) st1 [r21] = r22, 1 00A5B9620589 3A91 (pr9) shr.u r22 = r22, 8 004000000000 3A92 nop.b 0 ;; } { .mib 00AC4152C080 3AA0 st2 [r21] = r22, 2 00A579640580 3AA1 shr.u r22 = r22, 16 004000000000 3AA2 nop.b 0 ;; } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 111 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mmi 008C4152C008 3AB0 (pr8) st2 [r21] = r22 008C0152C009 3AB1 (pr9) st1 [r21] = r22 000008000000 3AB2 nop.i 0 ;; } 3AC0 L$157: { .mii 0120001005C0 3AC0 add r23 = @ltoffx(AccountingPtr), // r23 = @ltoffx(AccountingPtr), r1 // 067788 gp 012000002640 3AC1 mov ai = 1 // r25 = 1 000008000000 3AC2 nop.i 0 ;; } { .mmi 0080C17005C0 3AD0 ld8.mov r23 = [r23], AccountingPtr ;; 0080817005C0 3AD1 ld4 r23 = AccountingPtr // r23 = [r23] 000008000000 3AD2 nop.i 0 ;; } { .mii 000008000000 3AE0 nop.m 0 0000B17005C0 3AE1 sxt4 r23 = r23 ;; 0108397A8B00 3AE2 adds out0 = 980, r23 // r44 = 980, r23 } { .mfb 000008000000 3AF0 nop.m 0 000008000000 3AF1 nop.f 0 00A000001000 3AF2 br.call.sptk.many rp = // br0 = InstanceGblSecDecrLong InstanceGblSecDecrLong ;; } { .mii 01C4300401C0 3B00 cmp4.eq pr7, pr6 = rqptr, r0 // pr7, pr6 = r32, r0 // 067790 010802B00040 3B01 mov gp = r43 ;; // r1 = r43 // 067788 01C000001207 3B02 (pr7) cmp.eq.unc pr8, pr0 = r0, r0 // 067790 } { .mbb 01C000001106 3B10 (pr6) cmp.eq.unc pr4, pr0 = r0, r0 008600002004 3B11 (pr4) br.cond.dpnt.many L$159 00860006C008 3B12 (pr8) br.cond.dpnt.many L$160 ;; } 3B20 L$159: { .mii 012000100900 3B20 add r36 = @ltoff(Watch+124), gp // r36 = @ltoff(Watch+124), r1 01080A0D80C0 3B21 adds r3 = 236, in0 // r3 = 236, r32 000008000000 3B22 nop.i 0 ;; } { .mmi 0080C2400900 3B30 ld8 r36 = Watch // r36 = [r36] 0080803000C0 3B31 ld4 r3 = [r3] 000008000000 3B32 nop.i 0 ;; } { .mii 0111624F0940 3B40 and r37 = -8, r36 01C458300300 3B41 cmp4.eq pr12, pr11 = r0, r3 ;; 01C052548000 3B42 cmp.eq pr0, pr10 = r36, r37 } { .mmi 00A0C25108C0 3B50 ld8 r35 = Watch, 8 ;; // r35 = [r37], 8 000008000000 3B51 nop.m 0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 112 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 009E1004898A 3B52 (pr10) dep r38 = Watch, r0, 3, 3 ;; // r38 = r36, r0, 3, 3 } { .mmi 0080C25009CA 3B60 (pr10) ld8 r39 = Watch ;; // r39 = [r37] 000008000000 3B61 nop.m 0 00F20234C8CA 3B62 (pr10) shr.u r35 = r35, r38 } { .mmi 01012A68098A 3B70 (pr10) sub r38 = 64, r38 ;; 000008000000 3B71 nop.m 0 00F24264E9CA 3B72 (pr10) shl r39 = r39, r38 ;; } { .mmi 01007234E8CA 3B80 (pr10) or r35 = r39, r35 ;; 0101623048C0 3B81 and r35 = 2, r35 000008000000 3B82 nop.i 0 ;; } { .mmi 01C002300380 3B90 cmp.eq pr14, pr0 = r0, r35 ;; 01C20000030E 3B91 (pr14) cmp.eq.or.andcm pr12, pr0 = r0, r0 000008000000 3B92 nop.i 0 } { .bbb 00860005A00C 3BA0 (pr12) br.cond.dpnt.many L$160 008600002002 3BA1 (pr2) br.cond.dpnt.many L$162 // 067792 008600028003 3BA2 (pr3) br.cond.dpnt.many L$163 ;; } 3BB0 L$162: { .mmi 01C0000013C0 3BB0 cmp.eq.unc pr15, pr0 = r0, r0 ;; // 067793 01A0000003C4 3BB1 (pr4) cmp.ltu pr15, pr0 = r0, r0 000008000000 3BB2 nop.i 0 } { .mfb 000008000000 3BC0 nop.m 0 000008000000 3BC1 nop.f 0 00860000400F 3BC2 (pr15) br.cond.dpnt.many L$166 ;; } { .mfb 010800300200 3BD0 mov r8 = r3 000008000000 3BD1 nop.f 0 008000005000 3BD2 br.sptk.many L$165 ;; } 3BE0 L$166: { .mfi 010800000200 3BE0 mov r8 = r0 000008000000 3BE1 nop.f 0 000008000000 3BE2 nop.i 0 } 3BF0 L$165: { .mii 010802218C40 3BF0 adds out5 = 12, tpuptr // r49 = 12, r34 // 067795 0111622F82C0 3BF1 and r11 = -4, r34 // 067797 010912060C80 3BF2 adds out6 = 4400, in0 ;; // r50 = 4400, r32 // 067793 } { .mii 01C038B44180 3C00 cmp.eq pr6, pr7 = r34, r11 // 067797 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 113 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 012000100B80 3C01 add out2 = @ltoffx($LITERAL$), gp // r46 = @ltoffx($LITERAL$), r1 // 067793 010800C20640 3C02 adds ai = 16, sp // r25 = 16, r12 } { .mmi 008083200C80 3C10 ld4 out6 = [out6] ;; // r50 = [r50] 008080B004C6 3C11 (pr6) ld4 r19 = [r11] // 067797 009E08044447 3C12 (pr7) dep r17 = r34, r0, 3, 2 } { .mii 010802208500 3C20 adds r20 = 4, r34 // 067798 012000100680 3C21 add r26 = @ltoff($LITERAL$+592), // r26 = @ltoff($LITERAL$+592), r1 // 067794 gp ;; 0111614F8540 3C22 and r21 = -4, r20 // 067798 } { .mmi 0080C2E00B40 3C30 ld8.mov out1 = [r46], $LITERAL$ // 067793 0080C1A00C00 3C31 ld8 out4 = $LITERAL$ // r48 = [r26] // 067794 0000B3200C80 3C32 sxt4 out6 = out6 ;; // r50 = r50 // 067793 } { .mmi 01C049528200 3C40 cmp.eq pr8, pr9 = r20, r21 // 067798 00A080B084C7 3C41 (pr7) ld4 r19 = [r11], 4 // 067797 012000004BC0 3C42 mov out3 = 2 ;; // r47 = 2 // 067793 } { .mii 008081500608 3C50 (pr8) ld4 r24 = [r21] // 067798 009E08028589 3C51 (pr9) dep r22 = r20, r0, 3, 2 012030018B80 3C52 mov out2 = 780 ;; // r46 = 780 // 067793 } { .mii 008080B00487 3C60 (pr7) ld4 r18 = [r11] // 067797 00F2013224C7 3C61 (pr7) shr.u r19 = r19, r17 010129140447 3C62 (pr7) sub r17 = 32, r17 ;; } { .mii 00A081508609 3C70 (pr9) ld4 r24 = [r21], 4 // 067798 0000B0800B00 3C71 sxt4 out0 = r8 ;; // r44 = r8 // 067793 00F20182C609 3C72 (pr9) shr.u r24 = r24, r22 // 067798 } { .mmi 010129640589 3C80 (pr9) sub r22 = 32, r22 0080815005C9 3C81 (pr9) ld4 r23 = [r21] 00F241124487 3C82 (pr7) shl r18 = r18, r17 ;; // 067797 } { .mii 000008000000 3C90 nop.m 0 00F24162E5C9 3C91 (pr9) shl r23 = r23, r22 ;; // 067798 0100713244C7 3C92 (pr7) or r19 = r18, r19 ;; // 067797 } { .mii 000008000000 3CA0 nop.m 0 0000B1300CC0 3CA1 sxt4 out7 = r19 ;; // r51 = r19 01007182E609 3CA2 (pr9) or r24 = r23, r24 ;; // 067798 } { .mii 000008000000 3CB0 nop.m 0 000091800609 3CB1 (pr9) zxt4 r24 = r24 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 114 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0000B1800600 3CB2 sxt4 r24 = r24 ;; // 067793 } { .mib 008CC1930000 3CC0 st8 [ai] = r24 // [r25] = r24 012000012640 3CC1 mov ai = 9 // r25 = 9 00A000001000 3CC2 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802B00040 3CD0 mov gp = r43 // r1 = r43 000008000000 3CD1 nop.f 0 000008000000 3CD2 nop.i 0 } 3CE0 L$163: // 067798 { .mmi 01C000001080 3CE0 cmp.eq.unc pr2, pr0 = r0, r0 ;; // 067800 01A000000084 3CE1 (pr4) cmp.ltu pr2, pr0 = r0, r0 000008000000 3CE2 nop.i 0 } { .mfb 000008000000 3CF0 nop.m 0 000008000000 3CF1 nop.f 0 008600006002 3CF2 (pr2) br.cond.dpnt.many L$169 ;; } { .mmi 01080A0D8900 3D00 adds r36 = 236, in0 ;; // r36 = 236, r32 008082400940 3D01 ld4 r37 = [r36] 000008000000 3D02 nop.i 0 } { .mfb 000008000000 3D10 nop.m 0 000008000000 3D11 nop.f 0 008000005000 3D12 br.sptk.many L$168 ;; } 3D20 L$169: { .mfi 010800000940 3D20 mov r37 = r0 000008000000 3D21 nop.f 0 000008000000 3D22 nop.i 0 } 3D30 L$168: { .mii 0111621F88C0 3D30 and r35 = -4, r33 // 067806 010912050980 3D31 adds r38 = 4392, in0 // r38 = 4392, r32 // 067805 010912068CC0 3D32 adds out7 = 4404, in0 ;; // r51 = 4404, r32 // 067800 } { .mmi 01C0323420C0 3D40 cmp.eq pr3, pr6 = r33, r35 // 067806 008082600980 3D41 ld4 r38 = [r38] // 067805 010912070C80 3D42 adds out6 = 4408, in0 ;; // r50 = 4408, r32 // 067800 } { .mii 008082300243 3D50 (pr3) ld4 r9 = [r35] // 067806 009E080420C6 3D51 (pr6) dep r3 = r33, r0, 3, 2 010802108280 3D52 adds r10 = 4, r33 // 067807 } { .mmi 010912058C40 3D60 adds out5 = 4396, in0 ;; // r49 = 4396, r32 // 067800 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 115 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 011160AF82C0 3D61 and r11 = -4, r10 // 067807 010800C20500 3D62 adds r20 = 16, sp // r20 = 16, r12 // 067800 } { .mii 012000100B80 3D70 add out2 = @ltoffx($LITERAL$), gp // r46 = @ltoffx($LITERAL$), r1 0000B2600980 3D71 sxt4 r38 = r38 ;; 01C040B141C0 3D72 cmp.eq pr7, pr8 = r10, r11 // 067807 } { .mii 00A082308246 3D80 (pr6) ld4 r9 = [r35], 4 // 067806 010800C30540 3D81 adds r21 = 24, sp // r21 = 24, r12 // 067800 0120001005C0 3D82 add r23 = @ltoff($LITERAL$+536), // r23 = @ltoff($LITERAL$+536), r1 // 067801 gp ;; } { .mii 008080B004C7 3D90 (pr7) ld4 r19 = [r11] // 067807 009E08014448 3D91 (pr8) dep r17 = r10, r0, 3, 2 010800C40580 3D92 adds r22 = 32, sp // r22 = 32, r12 // 067800 } { .mmi 008083300CC0 3DA0 ld4 out7 = [out7] ;; // r51 = [r51] 008082300206 3DA1 (pr6) ld4 r8 = [r35] // 067806 00F200906246 3DA2 (pr6) shr.u r9 = r9, r3 } { .mii 0101283400C6 3DB0 (pr6) sub r3 = 32, r3 012000016640 3DB1 mov ai = 11 ;; // r25 = 11 // 067800 0000B3300CC0 3DB2 sxt4 out7 = out7 // r51 = r51 } { .mmi 00A080B084C8 3DC0 (pr8) ld4 r19 = [r11], 4 // 067807 008083200C80 3DC1 ld4 out6 = [out6] // r50 = [r50] // 067800 012000004BC0 3DC2 mov out3 = 2 ;; // r47 = 2 } { .mmi 008083100C40 3DD0 ld4 out5 = [out5] // r49 = [r49] 0080C2E00B40 3DD1 ld8.mov out1 = [r46], $LITERAL$ 0000B3200C80 3DD2 sxt4 out6 = out6 ;; // r50 = r50 } { .mii 008080B00488 3DE0 (pr8) ld4 r18 = [r11] // 067807 00F2013224C8 3DE1 (pr8) shr.u r19 = r19, r17 010129140448 3DE2 (pr8) sub r17 = 32, r17 } { .mmi 0080C1700C00 3DF0 ld8 out4 = $LITERAL$ ;; // r48 = [r23] // 067801 008CC144C000 3DF1 st8 [r20] = r38 // 067800 00F240310206 3DF2 (pr6) shl r8 = r8, r3 // 067806 } { .mii 012030026B80 3E00 mov out2 = 787 // r46 = 787 // 067800 0000B3100C40 3E01 sxt4 out5 = out5 ;; // r49 = r49 0000B2500B00 3E02 sxt4 out0 = r37 ;; // r44 = r37 } { .mii 000008000000 3E10 nop.m 0 00F241124488 3E11 (pr8) shl r18 = r18, r17 ;; // 067807 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 116 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 010070910246 3E12 (pr6) or r9 = r8, r9 ;; // 067806 } { .mii 000008000000 3E20 nop.m 0 000090900246 3E21 (pr6) zxt4 r9 = r9 ;; 0100713244C8 3E22 (pr8) or r19 = r18, r19 // 067807 } { .mii 000008000000 3E30 nop.m 0 0000B0900240 3E31 sxt4 r9 = r9 ;; // 067800 0000913004C8 3E32 (pr8) zxt4 r19 = r19 // 067807 } { .mmi 008CC1512000 3E40 st8 [r21] = r9 ;; // 067800 000008000000 3E41 nop.m 0 0000B13004C0 3E42 sxt4 r19 = r19 ;; } { .mfb 008CC1626000 3E50 st8 [r22] = r19 000008000000 3E51 nop.f 0 00A000001000 3E52 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802B00040 3E60 mov gp = r43 // r1 = r43 000008000000 3E61 nop.f 0 000008000000 3E62 nop.i 0 } 3E70 L$160: // 067808 { .mii 0108021082C0 3E70 adds r11 = 4, r33 // 067813 010902098900 3E71 adds r36 = 4172, in0 // r36 = 4172, r32 // 067810 0109120808C0 3E72 adds r35 = 4416, in0 ;; // r35 = 4416, r32 } { .mii 011160BF8440 3E80 and r17 = -4, r11 // 067813 0109120789C0 3E81 adds r39 = 4412, in0 // r39 = 4412, r32 // 067810 010912070980 3E82 adds r38 = 4408, in0 // r38 = 4408, r32 } { .mmi 010912068940 3E90 adds r37 = 4404, in0 ;; // r37 = 4404, r32 0109120600C0 3E91 adds r3 = 4400, in0 // r3 = 4400, r32 010912048200 3E92 adds r8 = 4388, in0 // r8 = 4388, r32 } { .mii 010912058240 3EA0 adds r9 = 4396, in0 // r9 = 4396, r32 010912050280 3EA1 adds r10 = 4392, in0 ;; // r10 = 4392, r32 01C021116080 3EA2 cmp.eq pr2, pr4 = r11, r17 // 067813 } { .mmi 008C82400000 3EB0 st4 [r36] = r0 // 067810 008C82300000 3EB1 st4 [r35] = r0 000008000000 3EB2 nop.i 0 ;; } { .mmi 008C82700000 3EC0 st4 [r39] = r0 008C82600000 3EC1 st4 [r38] = r0 009E08016484 3EC2 (pr4) dep r18 = r11, r0, 3, 2 ;; // 067813 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 117 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mmi 008C82500000 3ED0 st4 [r37] = r0 // 067810 008C80300000 3ED1 st4 [r3] = r0 000008000000 3ED2 nop.i 0 ;; } { .mmi 008C80800000 3EE0 st4 [r8] = r0 008C80900000 3EE1 st4 [r9] = r0 000008000000 3EE2 nop.i 0 ;; } { .mmi 008C80A00000 3EF0 st4 [r10] = r0 ;; 008081100502 3EF1 (pr2) ld4 r20 = [r17] // 067813 000008000000 3EF2 nop.i 0 ;; } { .mmi 00A081108504 3F00 (pr4) ld4 r20 = [r17], 4 ;; 0080811004C4 3F01 (pr4) ld4 r19 = [r17] 00F201424504 3F02 (pr4) shr.u r20 = r20, r18 } { .mmi 010129240484 3F10 (pr4) sub r18 = 32, r18 ;; 000008000000 3F11 nop.m 0 00F2412264C4 3F12 (pr4) shl r19 = r19, r18 ;; } { .mmi 010071426504 3F20 (pr4) or r20 = r19, r20 ;; 000008000000 3F21 nop.m 0 000091400504 3F22 (pr4) zxt4 r20 = r20 ;; } { .mbb 01C419400000 3F30 cmp4.eq pr0, pr3 = r0, r20 008600002003 3F31 (pr3) br.cond.dpnt.many L$170 00800006D000 3F32 br.sptk.many L$172 ;; } 3F40 L$170: { .mii 010802168580 3F40 adds r22 = 52, r33 // 067829 010952018540 3F41 adds r21 = 5388, in0 ;; // r21 = 5388, r32 // 067819 0111616F85C0 3F42 and r23 = -4, r22 // 067829 } { .mmi 008081500540 3F50 ld4 r21 = [r21] ;; // 067819 01C05172C240 3F51 cmp.eq pr9, pr10 = r22, r23 // 067829 01C401500200 3F52 cmp4.eq pr8, pr0 = r0, r21 ;; // 067819 } { .mib 008081700689 3F60 (pr9) ld4 r26 = [r23] // 067829 009E0802C60A 3F61 (pr10) dep r24 = r22, r0, 3, 2 004000000000 3F62 nop.b 0 ;; } { .mmi 00A08170868A 3F70 (pr10) ld4 r26 = [r23], 4 ;; 00808170064A 3F71 (pr10) ld4 ai = [r23] // r25 = [r23] 00F201A3068A 3F72 (pr10) shr.u r26 = r26, r24 } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 118 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mmi 01012984060A 3F80 (pr10) sub r24 = 32, r24 ;; 000008000000 3F81 nop.m 0 00F24183264A 3F82 (pr10) shl ai = ai, r24 ;; // r25 = r25, r24 } { .mmi 010071A3268A 3F90 (pr10) or r26 = ai, r26 ;; // r26 = r25, r26 000008000000 3F91 nop.m 0 0000B1A00680 3F92 sxt4 r26 = r26 } { .mfb 000008000000 3FA0 nop.m 0 000008000000 3FA1 nop.f 0 00860003C008 3FA2 (pr8) br.cond.dpnt.many L$174 ;; // 067819 } { .mib 01C400034300 3FB0 cmp4.eq pr12, pr0 = r26, r0 // 067830 010801A00900 3FB1 mov leptr = r26 // r36 = r26 // 067829 00860003600C 3FB2 (pr12) br.cond.dpnt.many L$176 ;; // 067830 } 3FC0 L$177: { .mii 0108021606C0 3FC0 adds r27 = 48, r33 // 067836 010802410900 3FC1 adds r36 = 8, r36 ;; // 067833 011161BF8700 3FC2 and r28 = -4, r27 // 067836 } { .mmi 00B08A4F0800 3FD0 ld4 rqptr = [r36], -8 ;; // r32 = [r36], -8 // 067833 01C071C36340 3FD1 cmp.eq pr13, pr14 = r27, r28 // 067836 0000B2000800 3FD2 sxt4 rqptr = rqptr ;; // r32 = r32 // 067833 } { .mib 008081C007CD 3FE0 (pr13) ld4 r31 = [r28] // 067836 009E0803674E 3FE1 (pr14) dep r29 = r27, r0, 3, 2 004000000000 3FE2 nop.b 0 ;; } { .mmi 00A081C087CE 3FF0 (pr14) ld4 r31 = [r28], 4 ;; 008081C0078E 3FF1 (pr14) ld4 r30 = [r28] 00F201F3A7CE 3FF2 (pr14) shr.u r31 = r31, r29 } { .mmi 010129D4074E 4000 (pr14) sub r29 = 32, r29 ;; 000008000000 4001 nop.m 0 00F241D3C78E 4002 (pr14) shl r30 = r30, r29 ;; } { .mmi 010071F3C7CE 4010 (pr14) or r31 = r30, r31 ;; 000008000000 4011 nop.m 0 0000B1F007C0 4012 sxt4 r31 = r31 ;; } { .mib 01C40003E080 4020 cmp4.eq pr2, pr0 = r31, r0 // 067837 010801F00880 4021 mov tpuptr = r31 // r34 = r31 // 067836 008600022002 4022 (pr2) br.cond.dpnt.many L$179 ;; // 067837 } { .mfi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 119 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0108220D08C0 4030 adds r35 = 616, rqptr // r35 = 616, r32 // 067839 000008000000 4031 nop.f 0 000008000000 4032 nop.i 0 ;; } 4040 L$180: // 067837 { .mii 012000004640 4040 mov ai = 2 // r25 = 2 // 067839 010802300B00 4041 mov out0 = r35 // r44 = r35 010802218B40 4042 adds out1 = 12, tpuptr // r45 = 12, r34 } { .mfb 000008000000 4050 nop.m 0 000008000000 4051 nop.f 0 00A000001000 4052 br.call.sptk.many rp = DECC$STRCMP ;; // br0 = DECC$STRCMP } { .mib 01C4008000C0 4060 cmp4.eq pr3, pr0 = r0, r8 010802B00040 4061 mov gp = r43 // r1 = r43 00860000E003 4062 (pr3) br.cond.dpnt.many L$182 ;; } { .mmi 01080229A9C0 4070 adds r39 = 77, r34 ;; // 067848 0111627F8980 4071 and r38 = -4, r39 000008000000 4072 nop.i 0 ;; } { .mmi 01C03264E080 4080 cmp.eq pr2, pr6 = r39, r38 ;; 008082600242 4081 (pr2) ld4 r9 = [r38] 009E0804E946 4082 (pr6) dep r37 = r39, r0, 3, 2 ;; } { .mmi 00A082608246 4090 (pr6) ld4 r9 = [r38], 4 ;; 0080826000C6 4091 (pr6) ld4 r3 = [r38] 00F20094A246 4092 (pr6) shr.u r9 = r9, r37 } { .mmi 01012A540946 40A0 (pr6) sub r37 = 32, r37 ;; 000008000000 40A1 nop.m 0 00F2425060C6 40A2 (pr6) shl r3 = r3, r37 ;; } { .mmi 010070906246 40B0 (pr6) or r9 = r3, r9 ;; 01C438012000 40B1 cmp4.eq pr0, pr7 = r9, r0 // 067837 0000B0900880 40B2 sxt4 r34 = r9 } { .bbb 0095FFFF0007 40C0 (pr7) br.cond.dptk.many L$180 004000000000 40C1 nop.b 0 00800000F000 40C2 br.sptk.many L$179 ;; } 40D0 L$182: // 067839 { .mii 0111622F82C0 40D0 and r11 = -4, r34 // 067842 010912060500 40D1 adds r20 = 4400, in0 ;; // r20 = 4400, r32 // 067843 01C050B44240 40D2 cmp.eq pr9, pr10 = r34, r11 // 067842 } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 120 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 008081400500 40E0 ld4 r20 = [r20] ;; // 067843 008080B004C9 40E1 (pr9) ld4 r19 = [r11] // 067842 009E0804444A 40E2 (pr10) dep r17 = r34, r0, 3, 2 ;; } { .mmi 00A080B084CA 40F0 (pr10) ld4 r19 = [r11], 4 ;; 008080B0048A 40F1 (pr10) ld4 r18 = [r11] 00F2013224CA 40F2 (pr10) shr.u r19 = r19, r17 } { .mmi 01012914044A 4100 (pr10) sub r17 = 32, r17 ;; 000008000000 4101 nop.m 0 00F24112448A 4102 (pr10) shl r18 = r18, r17 ;; } { .mmi 0100713244CA 4110 (pr10) or r19 = r18, r19 ;; 000008000000 4111 nop.m 0 0000913004CA 4112 (pr10) zxt4 r19 = r19 ;; } { .mmi 018461426000 4120 cmp4.lt pr0, pr12 = r19, r20 ;; 01080000088C 4121 (pr12) mov tpuptr = r0 // r34 = r0 // 067843 000008000000 4122 nop.i 0 ;; } 4130 L$179: // 067849 { .mfb 01C468044000 4130 cmp4.eq pr0, pr13 = tpuptr, r0 // pr0, pr13 = r34, r0 // 067851 000008000000 4131 nop.f 0 00860000600D 4132 (pr13) br.cond.dpnt.many L$176 ;; } { .mmi 010802408900 4140 adds r36 = 4, r36 ;; 008082400900 4141 ld4 leptr = [r36] // r36 = [r36] // 067854 000008000000 4142 nop.i 0 ;; } { .mib 01C478048000 4150 cmp4.eq pr0, pr15 = leptr, r0 // pr0, pr15 = r36, r0 // 067830 0000B2400900 4151 sxt4 leptr = leptr // r36 = r36 0095FFFCE00F 4152 (pr15) br.cond.dptk.many L$177 ;; } 4160 L$176: // 067855 { .mmi 01C400048080 4160 cmp4.eq pr2, pr0 = leptr, r0 ;; // pr2, pr0 = r36, r0 // 067856 010800000882 4161 (pr2) mov tpuptr = r0 // r34 = r0 000008000000 4162 nop.i 0 ;; } { .mbb 01C430044000 4170 cmp4.eq pr0, pr6 = tpuptr, r0 // pr0, pr6 = r34, r0 // 067866 008600006006 4171 (pr6) br.cond.dpnt.many L$184 008000025000 4172 br.sptk.many L$172 ;; } 4180 L$174: // 067868 { .mii 010801A10680 4180 adds r26 = 8, r26 // 067871 010800000880 4181 mov tpuptr = r0 // r34 = r0 // 067872 000008000000 4182 nop.i 0 ;; } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 121 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mmi 008081A00800 4190 ld4 rqptr = [r26] ;; // r32 = [r26] // 067871 000008000000 4191 nop.m 0 0000B2000800 4192 sxt4 rqptr = rqptr // r32 = r32 } 41A0 L$184: // 067873 { .mii 012000004640 41A0 mov ai = 2 // r25 = 2 // 067879 010802168B00 41A1 adds out0 = 52, tsptr ;; // r44 = 52, r33 01094A0F8B40 41A2 adds out1 = 5372, rqptr // r45 = 5372, r32 } { .mfb 000008000000 41B0 nop.m 0 000008000000 41B1 nop.f 0 00A000001000 41B2 br.call.sptk.many rp = ListRemove ;; // br0 = ListRemove } { .mii 010912068940 41C0 adds r37 = 4404, in0 // r37 = 4404, r32 // 067882 010802B00040 41C1 mov gp = r43 // r1 = r43 // 067879 000008000000 41C2 nop.i 0 ;; } { .mmi 008082500940 41D0 ld4 r37 = [r37] ;; // 067882 01C402500100 41D1 cmp4.eq pr4, pr0 = r0, r37 000008000000 41D2 nop.i 0 } { .mfb 000008000000 41E0 nop.m 0 000008000000 41E1 nop.f 0 008600012004 41E2 (pr4) br.cond.dpnt.many L$187 ;; } { .mii 0111621F8900 41F0 and r36 = -4, r33 // 067883 010912070980 41F1 adds r38 = 4408, in0 // r38 = 4408, r32 // 067885 0109120589C0 41F2 adds r39 = 4396, in0 ;; // r39 = 4396, r32 // 067886 } { .mmi 01C032442080 4200 cmp.eq pr2, pr6 = r33, r36 // 067883 008082600980 4201 ld4 r38 = [r38] // 067885 000008000000 4202 nop.i 0 ;; } { .mii 008082400242 4210 (pr2) ld4 r9 = [r36] // 067883 009E080420C6 4211 (pr6) dep r3 = r33, r0, 3, 2 01002A64A940 4212 sub r37 = r37, r38 // 067884 } { .mmi 0080827009C0 4220 ld4 r39 = [r39] ;; // 067886 01000274A940 4221 add r37 = r37, r39 // 067884 000008000000 4222 nop.i 0 ;; } { .mmi 00A082408246 4230 (pr6) ld4 r9 = [r36], 4 ;; // 067883 008082400206 4231 (pr6) ld4 r8 = [r36] 00F200906246 4232 (pr6) shr.u r9 = r9, r3 } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 122 ThrottleEnd 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0101283400C6 4240 (pr6) sub r3 = 32, r3 ;; 000008000000 4241 nop.m 0 00F240310206 4242 (pr6) shl r8 = r8, r3 ;; } { .mmi 010070910246 4250 (pr6) or r9 = r8, r9 ;; 000008000000 4251 nop.m 0 000090900246 4252 (pr6) zxt4 r9 = r9 ;; } { .mbb 0184025121C0 4260 cmp4.lt pr7, pr0 = r9, r37 008600002007 4261 (pr7) br.cond.dpnt.many L$187 // 067882 008000007000 4262 br.sptk.many L$172 ;; // 067886 } 4270 L$187: { .mii 012000002B80 4270 mov out2 = 1 // r46 = 1 // 067889 010802200B40 4271 mov out1 = tpuptr // r45 = r34 010802000B00 4272 mov out0 = rqptr // r44 = r32 } { .mfb 000008000000 4280 nop.m 0 000008000000 4281 nop.f 0 00A000001000 4282 br.call.sptk.many rp = ThrottleRelease ;; // br0 = ThrottleRelease } 4290 L$172: // 067890 { .mii 000008000000 4290 nop.m 0 0016000547C0 4291 mov pr = r42, -65474 ;; 000154052000 4292 mov.i rspfs = r41 ;; } { .mii 000008000000 42A0 nop.m 0 000E00150000 42A1 mov rp = r40 // br0 = r40 010800C40300 42A2 adds sp = 32, sp // r12 = 32, r12 } { .mfb 000008000000 42B0 nop.m 0 000008000000 42B1 nop.f 0 000108001100 42B2 br.ret.sptk.many rp ;; // br0 } .endp ThrottleEnd Routine Size: 2880 bytes, Routine Base: $CODE$ + 3780 .proc ThrottleTimeout .align 32 .global ThrottleTimeout ThrottleTimeout: // 067901 { .mii 002C00B22A40 42C0 alloc r41 = rspfs, 1, 10, 6, 0 012000100240 42C1 add r9 = @ltoffx(ThrottleArray), // r9 = @ltoffx(ThrottleArray), r1 // 067914 gp 010912048200 42C2 adds r8 = 4388, in0 // r8 = 4388, r32 } { .mmi 01C438040200 42D0 cmp4.eq pr8, pr7 = rqptr, r0 ;; // pr8, pr7 = r32, r0 // 067916 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 123 ThrottleTimeout 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0080C0900240 42D1 ld8.mov r9 = [r9], ThrottleArray // 067914 000188000A00 42D2 mov r40 = rp // r40 = br0 // 067901 } { .mii 008080800200 42E0 ld4 r8 = [r8] // 067914 01C000001288 42E1 (pr8) cmp.eq.unc pr10, pr0 = r0, r0 ;; // 067916 00A7CB910200 42E2 shl r8 = r8, 6 // 067914 } { .mii 01C000001247 42F0 (pr7) cmp.eq.unc pr9, pr0 = r0, r0 // 067916 010800100A80 42F1 mov r42 = gp ;; // r42 = r1 // 067901 0000B0800200 42F2 sxt4 r8 = r8 // 067914 } { .mmi 008080900240 4300 ld4 r9 = ThrottleArray ;; // r9 = [r9] 000008000000 4301 nop.m 0 0000B0900240 4302 sxt4 r9 = r9 ;; } { .mbb 010000812840 4310 add tsptr = r9, r8 // r33 = r9, r8 008600002009 4311 (pr9) br.cond.dpnt.many L$128 // 067916 00860002A00A 4312 (pr10) br.cond.dpnt.many L$129 ;; } 4320 L$128: { .mii 012000100280 4320 add r10 = @ltoff(Watch+124), gp // r10 = @ltoff(Watch+124), r1 01080A0D8500 4321 adds r20 = 236, in0 // r20 = 236, r32 000008000000 4322 nop.i 0 ;; } { .mmi 0080C0A00280 4330 ld8 r10 = Watch // r10 = [r10] 008081400500 4331 ld4 r20 = [r20] 000008000000 4332 nop.i 0 ;; } { .mii 011160AF02C0 4340 and r11 = -8, r10 01C469400380 4341 cmp4.eq pr14, pr13 = r0, r20 ;; 01C060B14000 4342 cmp.eq pr0, pr12 = r10, r11 } { .mmi 00A0C0B104C0 4350 ld8 r19 = Watch, 8 ;; // r19 = [r11], 8 000008000000 4351 nop.m 0 009E1001444C 4352 (pr12) dep r17 = Watch, r0, 3, 3 ;; // r17 = r10, r0, 3, 3 } { .mmi 0080C0B0048C 4360 (pr12) ld8 r18 = Watch ;; // r18 = [r11] 000008000000 4361 nop.m 0 00F2013224CC 4362 (pr12) shr.u r19 = r19, r17 } { .mmi 01012918044C 4370 (pr12) sub r17 = 64, r17 ;; 000008000000 4371 nop.m 0 00F24112448C 4372 (pr12) shl r18 = r18, r17 ;; } { .mmi 0100713244CC 4380 (pr12) or r19 = r18, r19 ;; 0101613044C0 4381 and r19 = 2, r19 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 124 ThrottleTimeout 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 4382 nop.i 0 ;; } { .mmi 01C001300180 4390 cmp.eq pr6, pr0 = r0, r19 ;; 01C200000386 4391 (pr6) cmp.eq.or.andcm pr14, pr0 = r0, r0 000008000000 4392 nop.i 0 } { .mfb 000008000000 43A0 nop.m 0 000008000000 43A1 nop.f 0 00860001800E 43A2 (pr14) br.cond.dpnt.many L$129 ;; } { .mmi 01C0000011C0 43B0 cmp.eq.unc pr7, pr0 = r0, r0 ;; // 067917 01A0000001C9 43B1 (pr9) cmp.ltu pr7, pr0 = r0, r0 000008000000 43B2 nop.i 0 } { .mfb 000008000000 43C0 nop.m 0 000008000000 43C1 nop.f 0 008600004007 43C2 (pr7) br.cond.dpnt.many L$133 ;; } { .mfb 010801400540 43D0 mov r21 = r20 000008000000 43D1 nop.f 0 008000005000 43D2 br.sptk.many L$132 ;; } 43E0 L$133: { .mfi 010800000540 43E0 mov r21 = r0 000008000000 43E1 nop.f 0 000008000000 43E2 nop.i 0 } 43F0 L$132: { .mii 010912080580 43F0 adds r22 = 4416, in0 // r22 = 4416, r32 // 067918 012000100600 43F1 add r24 = @ltoff($LITERAL$+528), // r24 = @ltoff($LITERAL$+528), r1 gp 0120001005C0 43F2 add r23 = @ltoff($LITERAL$+440), // r23 = @ltoff($LITERAL$+440), r1 gp ;; } { .mmi 008081600580 4400 ld4 r22 = [r22] 0080C1800600 4401 ld8 r24 = $LITERAL$ // r24 = [r24] 012000100B40 4402 add out2 = @ltoffx($LITERAL$), gp ;; // r45 = @ltoffx($LITERAL$), r1 // 067917 } { .mii 0080C1700640 4410 ld8 ai = $LITERAL$ // r25 = [r23] // 067918 01C441600000 4411 cmp4.eq pr0, pr8 = r0, r22 012000100680 4412 add r26 = @ltoff($LITERAL$+504), // r26 = @ltoff($LITERAL$+504), r1 // 067917 gp } { .mmi 0080C2D00B00 4420 ld8.mov out1 = [r45], $LITERAL$ ;; 010801800648 4421 (pr8) mov ai = r24 // r25 = r24 // 067918 012000004B80 4422 mov out3 = 2 // r46 = 2 // 067917 } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 125 ThrottleTimeout 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mii 0080C1A00BC0 4430 ld8 out4 = $LITERAL$ // r47 = [r26] 012038010B40 4431 mov out2 = 904 ;; // r45 = 904 010801900C00 4432 mov out5 = ai // r48 = r25 } { .mib 01200000C640 4440 mov ai = 6 // r25 = 6 0000B1500AC0 4441 sxt4 out0 = r21 // r43 = r21 00A000001000 4442 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802A00040 4450 mov gp = r42 // r1 = r42 000008000000 4451 nop.f 0 000008000000 4452 nop.i 0 } 4460 L$129: // 067918 { .mmi 010912080880 4460 adds r34 = 4416, in0 ;; // r34 = 4416, r32 // 067920 008082200880 4461 ld4 r34 = [r34] 000008000000 4462 nop.i 0 ;; } { .mfb 01C4022001C0 4470 cmp4.eq pr7, pr0 = r0, r34 000008000000 4471 nop.f 0 00860003E007 4472 (pr7) br.cond.dpnt.many L$135 ;; } { .mii 0108021588C0 4480 adds r35 = 44, r33 // 067926 0108021580C0 4481 adds r3 = 44, r33 010912068280 4482 adds r10 = 4404, in0 ;; // r10 = 4404, r32 // 067929 } { .mii 0111623F8900 4490 and r36 = -4, r35 // 067926 00A058300280 4491 tbit.z pr10, pr11 = r3, 0 010800300200 4492 mov r8 = r3 ;; } { .mmi 01C04A446200 44A0 cmp.eq pr8, pr9 = r35, r36 ;; 0080824009C8 44A1 (pr8) ld4 r39 = [r36] 009E08046949 44A2 (pr9) dep r37 = r35, r0, 3, 2 ;; } { .mmi 00A0824089C9 44B0 (pr9) ld4 r39 = [r36], 4 ;; 008082400989 44B1 (pr9) ld4 r38 = [r36] 00F20274A9C9 44B2 (pr9) shr.u r39 = r39, r37 } { .mmi 01012A540949 44C0 (pr9) sub r37 = 32, r37 ;; 000008000000 44C1 nop.m 0 00F24254C989 44C2 (pr9) shl r38 = r38, r37 ;; } { .mmi 01007274C9C9 44D0 (pr9) or r39 = r38, r39 ;; 000008000000 44D1 nop.m 0 0000927009C9 44D2 (pr9) zxt4 r39 = r39 ;; } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 126 ThrottleTimeout 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 010802702240 44E0 adds r9 = 1, r39 ;; 00AC0081204B 44E1 (pr11) st1 [r8] = r9, 1 00A5B892024B 44E2 (pr11) shr.u r9 = r9, 8 ;; } { .mib 00AC40812080 44F0 st2 [r8] = r9, 2 00A578940240 44F1 shr.u r9 = r9, 16 004000000000 44F2 nop.b 0 ;; } { .mmi 008C4081200A 4500 (pr10) st2 [r8] = r9 008C0081200B 4501 (pr11) st1 [r8] = r9 000008000000 4502 nop.i 0 ;; } { .mmi 008080A00280 4510 ld4 r10 = [r10] ;; // 067929 01C400A00340 4511 cmp4.eq pr13, pr0 = r0, r10 000008000000 4512 nop.i 0 } { .mfb 000008000000 4520 nop.m 0 000008000000 4521 nop.f 0 00860002400D 4522 (pr13) br.cond.dpnt.many L$137 ;; } { .mii 0111621F84C0 4530 and r19 = -4, r33 // 067930 0109120702C0 4531 adds r11 = 4408, in0 // r11 = 4408, r32 // 067932 010912058440 4532 adds r17 = 4396, in0 ;; // r17 = 4396, r32 // 067933 } { .mmi 01C079342380 4540 cmp.eq pr14, pr15 = r33, r19 // 067930 008080B002C0 4541 ld4 r11 = [r11] // 067932 000008000000 4542 nop.i 0 ;; } { .mii 00808130058E 4550 (pr14) ld4 r22 = [r19] // 067930 009E0804250F 4551 (pr15) dep r20 = r33, r0, 3, 2 010028B14280 4552 sub r10 = r10, r11 // 067931 } { .mmi 008081100440 4560 ld4 r17 = [r17] ;; // 067933 010001114280 4561 add r10 = r10, r17 // 067931 000008000000 4562 nop.i 0 ;; } { .mmi 00A08130858F 4570 (pr15) ld4 r22 = [r19], 4 ;; // 067930 00808130054F 4571 (pr15) ld4 r21 = [r19] 00F20162858F 4572 (pr15) shr.u r22 = r22, r20 } { .mmi 01012944050F 4580 (pr15) sub r20 = 32, r20 ;; 000008000000 4581 nop.m 0 00F24142A54F 4582 (pr15) shl r21 = r21, r20 ;; } { .mmi 01007162A58F 4590 (pr15) or r22 = r21, r22 ;; 000008000000 4591 nop.m 0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 127 ThrottleTimeout 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00009160058F 4592 (pr15) zxt4 r22 = r22 ;; } { .mfb 018400A2C180 45A0 cmp4.lt pr6, pr0 = r22, r10 000008000000 45A1 nop.f 0 008600014006 45A2 (pr6) br.cond.dpnt.many L$137 ;; // 067929 } { .mmi 0109120785C0 45B0 adds r23 = 4412, in0 ;; // r23 = 4412, r32 // 067936 0080817005C0 45B1 ld4 r23 = [r23] 000008000000 45B2 nop.i 0 ;; } { .mfb 01C401700240 45C0 cmp4.eq pr9, pr0 = r0, r23 000008000000 45C1 nop.f 0 00860000A009 45C2 (pr9) br.cond.dpnt.many L$140 ;; } { .mii 010912080600 45D0 adds r24 = 4416, in0 // r24 = 4416, r32 // 067939 012000006640 45D1 mov ai = 3 // r25 = 3 // 067940 012000000B40 45D2 mov out2 = 0 // r45 = 0 } { .mmi 012000004B00 45E0 mov out1 = 2 ;; // r44 = 2 010802000AC0 45E1 mov out0 = rqptr // r43 = r32 000008000000 45E2 nop.i 0 } { .mfb 008C81800000 45F0 st4 [r24] = r0 // 067939 000008000000 45F1 nop.f 0 00A000001000 45F2 br.call.sptk.many rp = HttpdTimerSet ;; // br0 = HttpdTimerSet // 067940 } { .mfb 010802A00040 4600 mov gp = r42 // r1 = r42 000008000000 4601 nop.f 0 008000023000 4602 br.sptk.many L$142 ;; // 067942 } 4610 L$140: { .mii 012000006640 4610 mov ai = 3 // r25 = 3 // 067943 012000000B40 4611 mov out2 = 0 // r45 = 0 012000006B00 4612 mov out1 = 3 // r44 = 3 } { .mfb 010802000AC0 4620 mov out0 = rqptr // r43 = r32 000008000000 4621 nop.f 0 00A000001000 4622 br.call.sptk.many rp = HttpdTimerSet ;; // br0 = HttpdTimerSet } { .mfb 010802A00040 4630 mov gp = r42 // r1 = r42 000008000000 4631 nop.f 0 00800001D000 4632 br.sptk.many L$142 ;; // 067945 } 4640 L$137: // 067946 { .mii 012000002B40 4640 mov out2 = 1 // r45 = 1 // 067949 010800000B00 4641 mov out1 = r0 // r44 = r0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 128 ThrottleTimeout 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 010802000AC0 4642 mov out0 = rqptr // r43 = r32 } { .mfb 000008000000 4650 nop.m 0 000008000000 4651 nop.f 0 008000017000 4652 br.sptk.many L$269 ;; } 4660 L$135: // 067952 { .mii 010802150880 4660 adds r34 = 40, r33 // 067958 0108021500C0 4661 adds r3 = 40, r33 012000000B40 4662 mov out2 = 0 // r45 = 0 // 067961 } { .mmi 010800000B00 4670 mov out1 = r0 ;; // r44 = r0 0111622F88C0 4671 and r35 = -4, r34 // 067958 00A048300200 4672 tbit.z pr8, pr9 = r3, 0 } { .mmi 010802000AC0 4680 mov out0 = rqptr ;; // r43 = r32 // 067961 01C03A344180 4681 cmp.eq pr6, pr7 = r34, r35 // 067958 000008000000 4682 nop.i 0 ;; } { .mib 008082300986 4690 (pr6) ld4 r38 = [r35] 009E08044907 4691 (pr7) dep r36 = r34, r0, 3, 2 004000000000 4692 nop.b 0 ;; } { .mmi 00A082308987 46A0 (pr7) ld4 r38 = [r35], 4 ;; 008082300947 46A1 (pr7) ld4 r37 = [r35] 00F202648987 46A2 (pr7) shr.u r38 = r38, r36 } { .mmi 01012A440907 46B0 (pr7) sub r36 = 32, r36 ;; 000008000000 46B1 nop.m 0 00F24244A947 46B2 (pr7) shl r37 = r37, r36 ;; } { .mmi 01007264A987 46C0 (pr7) or r38 = r37, r38 ;; 000008000000 46C1 nop.m 0 000092600987 46C2 (pr7) zxt4 r38 = r38 ;; } { .mmi 010802602200 46D0 adds r8 = 1, r38 ;; 00AC00310049 46D1 (pr9) st1 [r3] = r8, 1 00A5B8820209 46D2 (pr9) shr.u r8 = r8, 8 ;; } { .mib 00AC40310080 46E0 st2 [r3] = r8, 2 00A578840200 46E1 shr.u r8 = r8, 16 004000000000 46E2 nop.b 0 ;; } { .mmi 008C40310008 46F0 (pr8) st2 [r3] = r8 008C00310009 46F1 (pr9) st1 [r3] = r8 000008000000 46F2 nop.i 0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 129 ThrottleTimeout 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } 4700 L$269: // 067961 { .mfb 000008000000 4700 nop.m 0 000008000000 4701 nop.f 0 00A000001000 4702 br.call.sptk.many rp = ThrottleRelease ;; // br0 = ThrottleRelease } 4710 L$142: // 067962 { .mii 000008000000 4710 nop.m 0 000154052000 4711 mov.i rspfs = r41 ;; 000E00150000 4712 mov rp = r40 // br0 = r40 } { .mfb 000008000000 4720 nop.m 0 000008000000 4721 nop.f 0 000108001100 4722 br.ret.sptk.many rp ;; // br0 } .endp ThrottleTimeout Routine Size: 1136 bytes, Routine Base: $CODE$ + 42C0 .proc ThrottleRelease .align 32 .global ThrottleRelease ThrottleRelease: // 067973 { .mii 002C00C28A40 4730 alloc r41 = rspfs, 3, 9, 8, 0 012000040380 4731 mov r14 = 32 0120001000C0 4732 add r3 = @ltoffx(ThrottleArray), // r3 = @ltoffx(ThrottleArray), r1 // 067989 gp } { .mmi 010912048200 4740 adds r8 = 4388, in0 ;; // r8 = 4388, r32 010028E183C0 4741 sub r15 = sp, r14 // r15 = r12, r14 // 067973 010800C00080 4742 mov r2 = sp // r2 = r12 } { .mii 0080C03000C0 4750 ld8.mov r3 = [r3], ThrottleArray // 067989 010800100AC0 4751 mov r43 = gp ;; // r43 = r1 // 067973 000188000A00 4752 mov r40 = rp // r40 = br0 } { .mii 0080C0F00380 4760 ld8 r14 = [r15] 010800F00300 4761 mov sp = r15 ;; // r12 = r15 000198000A80 4762 mov r42 = pr } { .mmi 008080800200 4770 ld4 r8 = [r8] // 067989 0080803000C0 4771 ld4 r3 = ThrottleArray // r3 = [r3] 01C430042000 4772 cmp4.eq pr0, pr6 = tpuptr, r0 ;; // pr0, pr6 = r33, r0 // 067992 } { .mii 000008000000 4780 nop.m 0 00A7CB910200 4781 shl r8 = r8, 6 // 067989 0000B03000C0 4782 sxt4 r3 = r3 ;; } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 130 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mii 000008000000 4790 nop.m 0 0000B0800200 4791 sxt4 r8 = r8 ;; 0100008068C0 4792 add tsptr = r3, r8 // r35 = r3, r8 } { .mfb 000008000000 47A0 nop.m 0 000008000000 47A1 nop.f 0 008600030006 47A2 (pr6) br.cond.dpnt.many L$73 ;; // 067992 } { .mmi 0109520180C0 47B0 adds r3 = 5388, in0 ;; // r3 = 5388, r32 0080803000C0 47B1 ld4 r3 = [r3] 000008000000 47B2 nop.i 0 ;; } { .mfb 01C4003001C0 47C0 cmp4.eq pr7, pr0 = r0, r3 000008000000 47C1 nop.f 0 00860002C007 47C2 (pr7) br.cond.dpnt.many L$73 ;; } { .mmi 010802360200 47D0 adds r8 = 48, r35 ;; // 067995 0111608F80C0 47D1 and r3 = -4, r8 000008000000 47D2 nop.i 0 ;; } { .mmi 01C048310200 47E0 cmp.eq pr8, pr9 = r8, r3 ;; 0080803002C8 47E1 (pr8) ld4 r11 = [r3] 009E08010249 47E2 (pr9) dep r9 = r8, r0, 3, 2 ;; } { .mmi 00A0803082C9 47F0 (pr9) ld4 r11 = [r3], 4 ;; 008080300289 47F1 (pr9) ld4 r10 = [r3] 00F200B122C9 47F2 (pr9) shr.u r11 = r11, r9 } { .mmi 010128940249 4800 (pr9) sub r9 = 32, r9 ;; 000008000000 4801 nop.m 0 00F240914289 4802 (pr9) shl r10 = r10, r9 ;; } { .mmi 010070B142C9 4810 (pr9) or r11 = r10, r11 ;; 01C4000161C0 4811 cmp4.eq pr7, pr0 = r11, r0 // 067996 0000B0B00840 4812 sxt4 in1 = r11 // r33 = r11 } { .mfb 000008000000 4820 nop.m 0 000008000000 4821 nop.f 0 008600016007 4822 (pr7) br.cond.dpnt.many L$77 ;; } { .mfi 0108220D0900 4830 adds r36 = 616, rqptr // r36 = 616, r32 // 067998 000008000000 4831 nop.f 0 000008000000 4832 nop.i 0 ;; } 4840 L$78: // 067996 { .mii Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 131 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0108021180C0 4840 adds r3 = 12, tpuptr // r3 = 12, r33 // 067998 012000004640 4841 mov ai = 2 // r25 = 2 010802400B00 4842 mov out0 = r36 ;; // r44 = r36 } { .mfb 010800300B40 4850 mov out1 = r3 // r45 = r3 000008000000 4851 nop.f 0 00A000001000 4852 br.call.sptk.many rp = DECC$STRCMP ;; // br0 = DECC$STRCMP } { .mib 01C4008001C0 4860 cmp4.eq pr7, pr0 = r0, r8 010802B00040 4861 mov gp = r43 // r1 = r43 00860000E007 4862 (pr7) br.cond.dpnt.many L$77 ;; } { .mmi 01080219A0C0 4870 adds r3 = 77, in1 ;; // r3 = 77, r33 // 067999 0111603F8240 4871 and r9 = -4, r3 000008000000 4872 nop.i 0 ;; } { .mmi 01C048906200 4880 cmp.eq pr8, pr9 = r3, r9 ;; 008080900448 4881 (pr8) ld4 r17 = [r9] 009E08006289 4882 (pr9) dep r10 = r3, r0, 3, 2 ;; } { .mmi 00A080908449 4890 (pr9) ld4 r17 = [r9], 4 ;; 0080809002C9 4891 (pr9) ld4 r11 = [r9] 00F201114449 4892 (pr9) shr.u r17 = r17, r10 } { .mmi 010128A40289 48A0 (pr9) sub r10 = 32, r10 ;; 000008000000 48A1 nop.m 0 00F240A162C9 48A2 (pr9) shl r11 = r11, r10 ;; } { .mmi 010071116449 48B0 (pr9) or r17 = r11, r17 ;; 01C450022000 48B1 cmp4.eq pr0, pr10 = r17, r0 // 067996 0000B1100840 48B2 sxt4 in1 = r17 // r33 = r17 } { .mfb 000008000000 48C0 nop.m 0 000008000000 48C1 nop.f 0 0095FFFF000A 48C2 (pr10) br.cond.dptk.many L$78 ;; } 48D0 L$77: // 068000 { .mfb 01C460042340 48D0 cmp4.eq pr13, pr12 = tpuptr, r0 // pr13, pr12 = r33, r0 // 068001 000008000000 48D1 nop.f 0 00860000A00C 48D2 (pr12) br.cond.dpnt.many L$73 ;; } { .mii 012000100C00 48E0 add out4 = @ltoffx($LITERAL$), gp // r48 = @ltoffx($LITERAL$), r1 // 068002 012000100B80 48E1 add out2 = // r46 = @ltoffx(ErrorSanityCheck), r1 @ltoffx(ErrorSanityCheck), gp 01200000A640 48E2 mov ai = 5 // r25 = 5 } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 132 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 012028048B40 48F0 mov out1 = 676 ;; // r45 = 676 0080C3000BC0 48F1 ld8.mov out3 = [r48], $LITERAL$ 0120380BAC00 48F2 mov out4 = 989 // r48 = 989 } { .mib 0080C2E00B80 4900 ld8.mov out2 = [r46], ErrorSanityCheck 010802000B00 4901 mov out0 = rqptr // r44 = r32 00A000001000 4902 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed } { .mfi 010802B00040 4910 mov gp = r43 // r1 = r43 000008000000 4911 nop.f 0 000008000000 4912 nop.i 0 } 4920 L$73: // 068003 { .mii 01C4522002C0 4920 cmp4.eq pr11, pr10 = r0, ToProcess // pr11, pr10 = r0, r34 // 068014 01C440042240 4921 cmp4.eq pr9, pr8 = tpuptr, r0 // pr9, pr8 = r33, r0 // 068007 01C4300401C0 4922 cmp4.eq pr7, pr6 = rqptr, r0 ;; // pr7, pr6 = r32, r0 // 068005 } { .mii 01C000001347 4930 (pr7) cmp.eq.unc pr13, pr0 = r0, r0 01C000001146 4931 (pr6) cmp.eq.unc pr5, pr0 = r0, r0 01C000001309 4932 (pr9) cmp.eq.unc pr12, pr0 = r0, r0 // 068031 } { .mmi 01C000001108 4940 (pr8) cmp.eq.unc pr4, pr0 = r0, r0 ;; 01C0000010CB 4941 (pr11) cmp.eq.unc pr3, pr0 = r0, r0 // 068034 01C00000108A 4942 (pr10) cmp.eq.unc pr2, pr0 = r0, r0 } { .bbb 008600002005 4950 (pr5) br.cond.dpnt.many L$81 // 068005 004000000000 4951 nop.b 0 00860007600D 4952 (pr13) br.cond.dpnt.many L$82 ;; } 4960 L$81: { .mii 012000100900 4960 add r36 = @ltoff(Watch+124), gp // r36 = @ltoff(Watch+124), r1 01080A0D82C0 4961 adds r11 = 236, in0 // r11 = 236, r32 000008000000 4962 nop.i 0 ;; } { .mmi 0080C2400900 4970 ld8 r36 = Watch // r36 = [r36] 008080B002C0 4971 ld4 r11 = [r11] 000008000000 4972 nop.i 0 ;; } { .mii 0111624F00C0 4980 and r3 = -8, r36 01C450B002C0 4981 cmp4.eq pr11, pr10 = r0, r11 ;; 01C078348000 4982 cmp.eq pr0, pr15 = r36, r3 } { .mmi 00A0C0310280 4990 ld8 r10 = Watch, 8 ;; // r10 = [r3], 8 000008000000 4991 nop.m 0 009E1004820F 4992 (pr15) dep r8 = Watch, r0, 3, 3 ;; // r8 = r36, r0, 3, 3 } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 133 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0080C030024F 49A0 (pr15) ld8 r9 = Watch ;; // r9 = [r3] 000008000000 49A1 nop.m 0 00F200A1028F 49A2 (pr15) shr.u r10 = r10, r8 } { .mmi 01012888020F 49B0 (pr15) sub r8 = 64, r8 ;; 000008000000 49B1 nop.m 0 00F24081224F 49B2 (pr15) shl r9 = r9, r8 ;; } { .mmi 010070A1228F 49C0 (pr15) or r10 = r9, r10 ;; 010160A04280 49C1 and r10 = 2, r10 000008000000 49C2 nop.i 0 ;; } { .mmi 01C000A00240 49D0 cmp.eq pr9, pr0 = r0, r10 ;; 01C2000002C9 49D1 (pr9) cmp.eq.or.andcm pr11, pr0 = r0, r0 000008000000 49D2 nop.i 0 } { .mfb 000008000000 49E0 nop.m 0 000008000000 49E1 nop.f 0 00860006400B 49E2 (pr11) br.cond.dpnt.many L$82 ;; } { .mii 012000100440 49F0 add r17 = @ltoff($LITERAL$+440), // r17 = @ltoff($LITERAL$+440), r1 // 068014 gp 012000100480 49F1 add r18 = @ltoff($LITERAL$+424), // r18 = @ltoff($LITERAL$+424), r1 gp 000008000000 49F2 nop.i 0 ;; } { .mmi 0080C1100440 4A00 ld8 r17 = $LITERAL$ // r17 = [r17] 0080C1200480 4A01 ld8 r18 = $LITERAL$ // r18 = [r18] 000008000000 4A02 nop.i 0 ;; } { .mmi 0108011004C0 4A10 mov r19 = r17 ;; 0108012004C2 4A11 (pr2) mov r19 = r18 000008000000 4A12 nop.i 0 ;; } { .mbb 010801300880 4A20 mov in2 = r19 // r34 = r19 // 068024 008600002004 4A21 (pr4) br.cond.dpnt.many L$84 // 068007 00860002A00C 4A22 (pr12) br.cond.dpnt.many L$85 ;; } 4A30 L$84: { .mmi 01C000001180 4A30 cmp.eq.unc pr6, pr0 = r0, r0 ;; // 068008 01A000000185 4A31 (pr5) cmp.ltu pr6, pr0 = r0, r0 000008000000 4A32 nop.i 0 } { .mfb 000008000000 4A40 nop.m 0 000008000000 4A41 nop.f 0 008600004006 4A42 (pr6) br.cond.dpnt.many L$88 ;; } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 134 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mfb 010800B00500 4A50 mov r20 = r11 000008000000 4A51 nop.f 0 008000005000 4A52 br.sptk.many L$87 ;; } 4A60 L$88: { .mfi 010800000500 4A60 mov r20 = r0 000008000000 4A61 nop.f 0 000008000000 4A62 nop.i 0 } 4A70 L$87: { .mii 010802118540 4A70 adds r21 = 12, tpuptr // r21 = 12, r33 // 068010 0111621F85C0 4A71 and r23 = -4, in1 // r23 = -4, r33 // 068012 010912060C80 4A72 adds out6 = 4400, in0 ;; // r50 = 4400, r32 // 068008 } { .mii 01C0697421C0 4A80 cmp.eq pr7, pr13 = in1, r23 // pr7, pr13 = r33, r23 // 068012 010800C20B00 4A81 adds out0 = 16, sp // r44 = 16, r12 // 068008 010800C30B40 4A82 adds out1 = 24, sp // r45 = 24, r12 } { .mmi 012000100C40 4A90 add out5 = @ltoff($LITERAL$+376), // r49 = @ltoff($LITERAL$+376), r1 // 068009 gp ;; 008081700687 4A91 (pr7) ld4 r26 = [r23] // 068012 009E0804260D 4A92 (pr13) dep r24 = in1, r0, 3, 2 // r24 = r33, r0, 3, 2 } { .mii 0108021086C0 4AA0 adds r27 = 4, in1 // r27 = 4, r33 // 068013 012000100B80 4AA1 add out2 = @ltoffx($LITERAL$), gp ;; // r46 = @ltoffx($LITERAL$), r1 // 068008 011161BF8700 4AA2 and r28 = -4, r27 // 068013 } { .mmi 008083200C80 4AB0 ld4 out6 = [out6] // r50 = [r50] // 068008 0080C3100C00 4AB1 ld8 out4 = $LITERAL$ // r48 = [r49] // 068009 010801500C40 4AB2 mov out5 = r21 ;; // r49 = r21 // 068008 } { .mmi 01C079C36380 4AC0 cmp.eq pr14, pr15 = r27, r28 // 068013 00A08170868D 4AC1 (pr13) ld4 r26 = [r23], 4 // 068012 0000B3200C80 4AC2 sxt4 out6 = out6 ;; // r50 = r50 // 068008 } { .mii 008081C007CE 4AD0 (pr14) ld4 r31 = [r28] // 068013 009E0803674F 4AD1 (pr15) dep r29 = r27, r0, 3, 2 012000004BC0 4AD2 mov out3 = 2 ;; // r47 = 2 // 068008 } { .mii 00808170064D 4AE0 (pr13) ld4 ai = [r23] // r25 = [r23] // 068012 00F201A3068D 4AE1 (pr13) shr.u r26 = r26, r24 01012984060D 4AE2 (pr13) sub r24 = 32, r24 ;; } { .mmi 00A081C087CF 4AF0 (pr15) ld4 r31 = [r28], 4 ;; // 068013 008081C0078F 4AF1 (pr15) ld4 r30 = [r28] 00F201F3A7CF 4AF2 (pr15) shr.u r31 = r31, r29 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 135 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mii 010129D4074F 4B00 (pr15) sub r29 = 32, r29 00F24183264D 4B01 (pr13) shl ai = ai, r24 ;; // r25 = r25, r24 // 068012 00F241D3C78F 4B02 (pr15) shl r30 = r30, r29 ;; // 068013 } { .mii 010071A3268D 4B10 (pr13) or r26 = ai, r26 // r26 = r25, r26 // 068012 012000014640 4B11 mov ai = 10 ;; // r25 = 10 // 068008 0000B1A00CC0 4B12 sxt4 out7 = r26 ;; // r51 = r26 // 068012 } { .mmi 010071F3C7CF 4B20 (pr15) or r31 = r30, r31 ;; // 068013 000008000000 4B21 nop.m 0 000091F007CF 4B22 (pr15) zxt4 r31 = r31 ;; } { .mib 000008000000 4B30 nop.m 0 0000B1F007C0 4B31 sxt4 r31 = r31 // 068008 004000000000 4B32 nop.b 0 ;; } { .mmi 008CC2C3E000 4B40 st8 [out0] = r31 // [r44] = r31 008CC2D44000 4B41 st8 [out1] = in2 // [r45] = r34 0000B1400B00 4B42 sxt4 out0 = r20 ;; // r44 = r20 } { .mib 0080C2E00B40 4B50 ld8.mov out1 = [r46], $LITERAL$ 0120380C6B80 4B51 mov out2 = 995 // r46 = 995 00A000001000 4B52 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802B00040 4B60 mov gp = r43 // r1 = r43 000008000000 4B61 nop.f 0 000008000000 4B62 nop.i 0 } 4B70 L$85: // 068014 { .mmi 01C000001180 4B70 cmp.eq.unc pr6, pr0 = r0, r0 ;; // 068016 01A000000185 4B71 (pr5) cmp.ltu pr6, pr0 = r0, r0 000008000000 4B72 nop.i 0 } { .mfb 000008000000 4B80 nop.m 0 000008000000 4B81 nop.f 0 008600006006 4B82 (pr6) br.cond.dpnt.many L$91 ;; } { .mmi 01080A0D8900 4B90 adds r36 = 236, in0 ;; // r36 = 236, r32 0080824000C0 4B91 ld4 r3 = [r36] 000008000000 4B92 nop.i 0 } { .mfb 000008000000 4BA0 nop.m 0 000008000000 4BA1 nop.f 0 008000005000 4BA2 br.sptk.many L$90 ;; } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 136 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 4BB0 L$91: { .mfi 0108000000C0 4BB0 mov r3 = r0 000008000000 4BB1 nop.f 0 000008000000 4BB2 nop.i 0 } 4BC0 L$90: { .mii 0111623F8280 4BC0 and r10 = -4, r35 // 068022 010912050200 4BC1 adds r8 = 4392, in0 // r8 = 4392, r32 // 068021 010912068CC0 4BC2 adds out7 = 4404, in0 ;; // r51 = 4404, r32 // 068016 } { .mmi 01C040A461C0 4BD0 cmp.eq pr7, pr8 = r35, r10 // 068022 008080800200 4BD1 ld4 r8 = [r8] // 068021 010912070C80 4BD2 adds out6 = 4408, in0 ;; // r50 = 4408, r32 // 068016 } { .mii 008080A00487 4BE0 (pr7) ld4 r18 = [r10] // 068022 009E080462C8 4BE1 (pr8) dep r11 = r35, r0, 3, 2 0108023084C0 4BE2 adds r19 = 4, r35 // 068023 } { .mmi 010912058C40 4BF0 adds out5 = 4396, in0 ;; // r49 = 4396, r32 // 068016 0111613F8500 4BF1 and r20 = -4, r19 // 068023 010800C20600 4BF2 adds r24 = 16, sp // r24 = 16, r12 // 068016 } { .mii 010800C30640 4C00 adds ai = 24, sp // r25 = 24, r12 0000B0800200 4C01 sxt4 r8 = r8 ;; 01C051426240 4C02 cmp.eq pr9, pr10 = r19, r20 // 068023 } { .mii 00A080A08488 4C10 (pr8) ld4 r18 = [r10], 4 // 068022 012000100B80 4C11 add out2 = @ltoffx($LITERAL$), gp // r46 = @ltoffx($LITERAL$), r1 // 068016 010800C40680 4C12 adds r26 = 32, sp ;; // r26 = 32, r12 } { .mii 0080814005C9 4C20 (pr9) ld4 r23 = [r20] // 068023 009E0802654A 4C21 (pr10) dep r21 = r19, r0, 3, 2 012000100700 4C22 add r28 = @ltoff($LITERAL$+320), // r28 = @ltoff($LITERAL$+320), r1 // 068017 gp } { .mmi 008083300CC0 4C30 ld4 out7 = [out7] ;; // r51 = [r51] // 068016 008080A00448 4C31 (pr8) ld4 r17 = [r10] // 068022 00F201216488 4C32 (pr8) shr.u r18 = r18, r11 } { .mii 010128B402C8 4C40 (pr8) sub r11 = 32, r11 010800C506C0 4C41 adds r27 = 40, sp ;; // r27 = 40, r12 // 068016 0000B3300CC0 4C42 sxt4 out7 = out7 // r51 = r51 } { .mmi 00A0814085CA 4C50 (pr10) ld4 r23 = [r20], 4 // 068023 008083200C80 4C51 ld4 out6 = [out6] // r50 = [r50] // 068016 012000004BC0 4C52 mov out3 = 2 ;; // r47 = 2 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 137 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mmi 008083100C40 4C60 ld4 out5 = [out5] // r49 = [r49] 0080C2E00B40 4C61 ld8.mov out1 = [r46], $LITERAL$ 0000B3200C80 4C62 sxt4 out6 = out6 ;; // r50 = r50 } { .mii 00808140058A 4C70 (pr10) ld4 r22 = [r20] // 068023 00F20172A5CA 4C71 (pr10) shr.u r23 = r23, r21 01012954054A 4C72 (pr10) sub r21 = 32, r21 } { .mmi 0080C1C00C00 4C80 ld8 out4 = $LITERAL$ ;; // r48 = [r28] // 068017 008CC1810000 4C81 st8 [r24] = r8 // 068016 00F240B22448 4C82 (pr8) shl r17 = r17, r11 // 068022 } { .mii 0120380D6B80 4C90 mov out2 = 1003 // r46 = 1003 // 068016 0000B3100C40 4C91 sxt4 out5 = out5 ;; // r49 = r49 0000B0300B00 4C92 sxt4 out0 = r3 ;; // r44 = r3 } { .mii 000008000000 4CA0 nop.m 0 00F24152C58A 4CA1 (pr10) shl r22 = r22, r21 ;; // 068023 010071222488 4CA2 (pr8) or r18 = r17, r18 ;; // 068022 } { .mii 000008000000 4CB0 nop.m 0 000091200488 4CB1 (pr8) zxt4 r18 = r18 ;; 01007172C5CA 4CB2 (pr10) or r23 = r22, r23 // 068023 } { .mii 000008000000 4CC0 nop.m 0 0000B1200480 4CC1 sxt4 r18 = r18 ;; // 068016 0000917005CA 4CC2 (pr10) zxt4 r23 = r23 // 068023 } { .mii 008CC1924000 4CD0 st8 [ai] = r18 // [r25] = r18 // 068016 012000018640 4CD1 mov ai = 12 ;; // r25 = 12 0000B17005C0 4CD2 sxt4 r23 = r23 ;; } { .mmb 008CC1A2E000 4CE0 st8 [r26] = r23 008CC1B44000 4CE1 st8 [r27] = in2 // [r27] = r34 00A000001000 4CE2 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802B00040 4CF0 mov gp = r43 // r1 = r43 000008000000 4CF1 nop.f 0 000008000000 4CF2 nop.i 0 } 4D00 L$82: // 068025 { .mii 012000004640 4D00 mov ai = 2 // r25 = 2 // 068027 01094A0F8B40 4D01 adds out1 = 5372, rqptr // r45 = 5372, r32 010802368B00 4D02 adds out0 = 52, tsptr ;; // r44 = 52, r35 } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 138 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mfb 000008000000 4D10 nop.m 0 000008000000 4D11 nop.f 0 00A000001000 4D12 br.call.sptk.many rp = ListRemove ;; // br0 = ListRemove } { .mii 010802308900 4D20 adds r36 = 4, r35 // 068030 010802B00040 4D21 mov gp = r43 ;; // r1 = r43 // 068027 0111624F8880 4D22 and in2 = -4, r36 ;; // r34 = -4, r36 // 068030 } { .mmi 01C032248140 4D30 cmp.eq pr5, pr6 = r36, in2 ;; // pr5, pr6 = r36, r34 0080822009C5 4D31 (pr5) ld4 r39 = [in2] // r39 = [r34] 009E08048946 4D32 (pr6) dep r37 = r36, r0, 3, 2 ;; } { .mmi 00A0822089C6 4D40 (pr6) ld4 r39 = [in2], 4 ;; // r39 = [r34], 4 008082200986 4D41 (pr6) ld4 r38 = [in2] // r38 = [r34] 00F20274A9C6 4D42 (pr6) shr.u r39 = r39, r37 } { .mmi 01012A540946 4D50 (pr6) sub r37 = 32, r37 ;; 000008000000 4D51 nop.m 0 00F24254C986 4D52 (pr6) shl r38 = r38, r37 ;; } { .mmi 01007274C9C6 4D60 (pr6) or r39 = r38, r39 ;; 000008000000 4D61 nop.m 0 0000927009C6 4D62 (pr6) zxt4 r39 = r39 ;; } { .mfb 01C402700200 4D70 cmp4.eq pr8, pr0 = r0, r39 000008000000 4D71 nop.f 0 00860000C008 4D72 (pr8) br.cond.dpnt.many L$93 ;; } { .mii 0108023080C0 4D80 adds r3 = 4, r35 0119FA7FE9C0 4D81 adds r39 = -1, r39 ;; 00A050300240 4D82 tbit.z pr9, pr10 = r3, 0 } { .mii 010802700240 4D90 mov r9 = r39 010800300200 4D91 mov r8 = r3 000008000000 4D92 nop.i 0 ;; } { .mib 00AC0081204A 4DA0 (pr10) st1 [r8] = r9, 1 00A5B892024A 4DA1 (pr10) shr.u r9 = r9, 8 004000000000 4DA2 nop.b 0 ;; } { .mib 00AC40812080 4DB0 st2 [r8] = r9, 2 00A578940240 4DB1 shr.u r9 = r9, 16 004000000000 4DB2 nop.b 0 ;; } { .mmi 008C40812009 4DC0 (pr9) st2 [r8] = r9 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 139 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 008C0081200A 4DC1 (pr10) st1 [r8] = r9 000008000000 4DC2 nop.i 0 } 4DD0 L$93: { .bbb 008600002004 4DD0 (pr4) br.cond.dpnt.many L$94 // 068031 004000000000 4DD1 nop.b 0 008000017000 4DD2 br.sptk.many L$95 ;; } 4DE0 L$94: { .mmi 010802108280 4DE0 adds r10 = 4, in1 ;; // r10 = 4, r33 011160AF82C0 4DE1 and r11 = -4, r10 000008000000 4DE2 nop.i 0 ;; } { .mmi 01C060B142C0 4DF0 cmp.eq pr11, pr12 = r10, r11 ;; 008080B004CB 4DF1 (pr11) ld4 r19 = [r11] 009E0801444C 4DF2 (pr12) dep r17 = r10, r0, 3, 2 ;; } { .mmi 00A080B084CC 4E00 (pr12) ld4 r19 = [r11], 4 ;; 008080B0048C 4E01 (pr12) ld4 r18 = [r11] 00F2013224CC 4E02 (pr12) shr.u r19 = r19, r17 } { .mmi 01012914044C 4E10 (pr12) sub r17 = 32, r17 ;; 000008000000 4E11 nop.m 0 00F24112448C 4E12 (pr12) shl r18 = r18, r17 ;; } { .mmi 0100713244CC 4E20 (pr12) or r19 = r18, r19 ;; 000008000000 4E21 nop.m 0 0000913004CC 4E22 (pr12) zxt4 r19 = r19 ;; } { .mfb 01C401300380 4E30 cmp4.eq pr14, pr0 = r0, r19 000008000000 4E31 nop.f 0 00860000A00E 4E32 (pr14) br.cond.dpnt.many L$95 ;; } { .mii 010802108540 4E40 adds r21 = 4, in1 // r21 = 4, r33 0119F93FE580 4E41 adds r22 = -1, r19 ;; 00A0295003C0 4E42 tbit.z pr15, pr5 = r21, 0 ;; } { .mib 00AC0152C045 4E50 (pr5) st1 [r21] = r22, 1 00A5B9620585 4E51 (pr5) shr.u r22 = r22, 8 004000000000 4E52 nop.b 0 ;; } { .mib 00AC4152C080 4E60 st2 [r21] = r22, 2 00A579640580 4E61 shr.u r22 = r22, 16 004000000000 4E62 nop.b 0 ;; } { .mmi 008C4152C00F 4E70 (pr15) st2 [r21] = r22 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 140 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 008C0152C005 4E71 (pr5) st1 [r21] = r22 000008000000 4E72 nop.i 0 ;; } 4E80 L$95: { .mii 012000100880 4E80 add in2 = @ltoffx(AccountingPtr), // r34 = @ltoffx(AccountingPtr), r1 // 068032 gp 012000002640 4E81 mov ai = 1 // r25 = 1 000008000000 4E82 nop.i 0 ;; } { .mmi 0080C2200880 4E90 ld8.mov in2 = [r34], AccountingPtr ;; 0080822005C0 4E91 ld4 r23 = [in2] // r23 = [r34] 000008000000 4E92 nop.i 0 ;; } { .mii 000008000000 4EA0 nop.m 0 0000B17005C0 4EA1 sxt4 r23 = r23 ;; 0108397F0B00 4EA2 adds out0 = 1016, r23 // r44 = 1016, r23 } { .mfb 000008000000 4EB0 nop.m 0 000008000000 4EB1 nop.f 0 00A000001000 4EB2 br.call.sptk.many rp = // br0 = InstanceGblSecDecrLong InstanceGblSecDecrLong ;; } { .mbb 010802B00040 4EC0 mov gp = r43 // r1 = r43 008600002002 4EC1 (pr2) br.cond.dpnt.many L$97 // 068034 008600052003 4EC2 (pr3) br.cond.dpnt.many L$98 ;; } 4ED0 L$97: { .mii 012000100B00 4ED0 add out0 = // r44 = // 068041 @ltoff(@fptr(RequestExecutePostThrottle)), gp // @ltoff(@fptr(RequestExecutePostThrottle)), // r1 012000004640 4ED1 mov ai = 2 // r25 = 2 010802000B40 4ED2 mov out1 = rqptr ;; // r45 = r32 } { .mfb 0080C2C00B00 4EE0 ld8 out0 = // r44 = [r44] RequestExecutePostThrottle 000008000000 4EE1 nop.f 0 00A000001000 4EE2 br.call.sptk.many rp = SysDclAst ;; // br0 = SysDclAst } { .mii 0111623F8940 4EF0 and r37 = -4, r35 // 068044 010802B00040 4EF1 mov gp = r43 ;; // r1 = r43 // 068041 01C012546140 4EF2 cmp.eq pr5, pr2 = r35, r37 ;; // 068044 } { .mii 0080825000C5 4F00 (pr5) ld4 r3 = [r37] 009E08046982 4F01 (pr2) dep r38 = r35, r0, 3, 2 010802348200 4F02 adds r8 = 36, r35 // 068043 } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 141 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 010802320480 4F10 adds r18 = 16, r35 ;; // 068045 0111608F8240 4F11 and r9 = -4, r8 // 068043 0111612F84C0 4F12 and r19 = -4, r18 // 068045 } { .mii 010802348600 4F20 adds r24 = 36, r35 // 068043 0108023006C0 4F21 mov r27 = r35 ;; // 068044 01C0309100C0 4F22 cmp.eq pr3, pr6 = r8, r9 // 068043 } { .mii 00A0825080C2 4F30 (pr2) ld4 r3 = [r37], 4 // 068044 01C0413241C0 4F31 cmp.eq pr7, pr8 = r18, r19 ;; // 068045 009E08010286 4F32 (pr6) dep r10 = r8, r0, 3, 2 // 068043 } { .mmi 008080900443 4F40 (pr3) ld4 r17 = [r9] 008081300587 4F41 (pr7) ld4 r22 = [r19] // 068045 000008000000 4F42 nop.i 0 ;; } { .mii 0080825009C2 4F50 (pr2) ld4 r39 = [r37] // 068044 00F20034C0C2 4F51 (pr2) shr.u r3 = r3, r38 01012A640982 4F52 (pr2) sub r38 = 32, r38 ;; } { .mib 00A080908446 4F60 (pr6) ld4 r17 = [r9], 4 // 068043 009E08024508 4F61 (pr8) dep r20 = r18, r0, 3, 2 // 068045 004000000000 4F62 nop.b 0 } { .mmi 00A081308588 4F70 (pr8) ld4 r22 = [r19], 4 ;; 000008000000 4F71 nop.m 0 00A0618002C0 4F72 tbit.z pr11, pr12 = r24, 0 ;; // 068043 } { .mii 0080809002C6 4F80 (pr6) ld4 r11 = [r9] 00F201114446 4F81 (pr6) shr.u r17 = r17, r10 010128A40286 4F82 (pr6) sub r10 = 32, r10 } { .mmi 008081300548 4F90 (pr8) ld4 r21 = [r19] ;; // 068045 000008000000 4F91 nop.m 0 00F24264E9C2 4F92 (pr2) shl r39 = r39, r38 // 068044 } { .mii 000008000000 4FA0 nop.m 0 00F201628588 4FA1 (pr8) shr.u r22 = r22, r20 ;; // 068045 010129440508 4FA2 (pr8) sub r20 = 32, r20 ;; } { .mii 000008000000 4FB0 nop.m 0 00F240A162C6 4FB1 (pr6) shl r11 = r11, r10 ;; // 068043 00A072300340 4FB2 tbit.z pr13, pr14 = r35, 0 ;; // 068044 } { .mii 01007034E0C2 4FC0 (pr2) or r3 = r39, r3 00F24142A548 4FC1 (pr8) shl r21 = r21, r20 ;; // 068045 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 142 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0000903000C2 4FC2 (pr2) zxt4 r3 = r3 ;; // 068044 } { .mii 010071116446 4FD0 (pr6) or r17 = r11, r17 // 068043 0108003020C0 4FD1 adds r3 = 1, r3 ;; // 068044 000091100446 4FD2 (pr6) zxt4 r17 = r17 // 068043 } { .mmi 010800300700 4FE0 mov r28 = r3 ;; // 068044 010801102640 4FE1 adds ai = 1, r17 // r25 = 1, r17 // 068043 01007162A588 4FE2 (pr8) or r22 = r21, r22 ;; // 068045 } { .mii 00AC0183204C 4FF0 (pr12) st1 [r24] = ai, 1 // [r24] = r25, 1 // 068043 00A5B992064C 4FF1 (pr12) shr.u ai = ai, 8 // r25 = r25, 8 000091600588 4FF2 (pr8) zxt4 r22 = r22 ;; // 068045 } { .mmi 01844832C000 5000 cmp4.lt pr0, pr9 = r22, r3 ;; 00AC41832080 5001 st2 [r24] = ai, 2 // [r24] = r25, 2 // 068043 00A579940640 5002 shr.u ai = ai, 16 ;; // r25 = r25, 16 } { .mmi 008C4183200B 5010 (pr11) st2 [r24] = ai // [r24] = r25 008C0183200C 5011 (pr12) st1 [r24] = ai // [r24] = r25 000008000000 5012 nop.i 0 ;; } { .mib 00AC01B3804E 5020 (pr14) st1 [r27] = r28, 1 // 068044 00A5B9C2070E 5021 (pr14) shr.u r28 = r28, 8 004000000000 5022 nop.b 0 ;; } { .mib 00AC41B38080 5030 st2 [r27] = r28, 2 00A579C40700 5031 shr.u r28 = r28, 16 004000000000 5032 nop.b 0 ;; } { .mmb 008C41B3800D 5040 (pr13) st2 [r27] = r28 008C01B3800E 5041 (pr14) st1 [r27] = r28 00860000A009 5042 (pr9) br.cond.dpnt.many L$99 ;; // 068045 } { .mii 010802320780 5050 adds r30 = 16, r35 // 068046 0108003007C0 5051 mov r31 = r3 ;; 00A011E003C0 5052 tbit.z pr15, pr2 = r30, 0 ;; } { .mib 00AC01E3E042 5060 (pr2) st1 [r30] = r31, 1 00A5B9F207C2 5061 (pr2) shr.u r31 = r31, 8 004000000000 5062 nop.b 0 ;; } { .mib 00AC41E3E080 5070 st2 [r30] = r31, 2 00A579F407C0 5071 shr.u r31 = r31, 16 004000000000 5072 nop.b 0 ;; } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 143 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mmi 008C41E3E00F 5080 (pr15) st2 [r30] = r31 008C01E3E002 5081 (pr2) st1 [r30] = r31 000008000000 5082 nop.i 0 } 5090 L$99: { .bbb 008600002004 5090 (pr4) br.cond.dpnt.many L$101 // 068047 004000000000 5091 nop.b 0 008000013000 5092 br.sptk.many L$102 ;; } 50A0 L$101: { .mii 0111621F8B40 50A0 and out1 = -4, in1 // r45 = -4, r33 00A03A100180 50A1 tbit.z pr6, pr7 = in1, 0 // pr6, pr7 = r33, 0 010802100C80 50A2 mov out6 = in1 ;; // r50 = r33 } { .mmi 01C01AD42140 50B0 cmp.eq pr5, pr3 = in1, out1 ;; // pr5, pr3 = r33, r45 008082D00C05 50B1 (pr5) ld4 out4 = [out1] // r48 = [r45] 009E08042B83 50B2 (pr3) dep out2 = in1, r0, 3, 2 ;; // r46 = r33, r0, 3, 2 } { .mmi 00A082D08C03 50C0 (pr3) ld4 out4 = [out1], 4 ;; // r48 = [r45], 4 008082D00BC3 50C1 (pr3) ld4 out3 = [out1] // r47 = [r45] 00F20305CC03 50C2 (pr3) shr.u out4 = out4, out2 // r48 = r48, r46 } { .mmi 01012AE40B83 50D0 (pr3) sub out2 = 32, out2 ;; // r46 = 32, r46 000008000000 50D1 nop.m 0 00F242E5EBC3 50D2 (pr3) shl out3 = out3, out2 ;; // r47 = r47, r46 } { .mmi 01007305EC03 50E0 (pr3) or out4 = out3, out4 ;; // r48 = r47, r48 000008000000 50E1 nop.m 0 000093000C03 50E2 (pr3) zxt4 out4 = out4 ;; // r48 = r48 } { .mmi 010803002CC0 50F0 adds out7 = 1, out4 ;; // r51 = 1, r48 00AC03266047 50F1 (pr7) st1 [out6] = out7, 1 // [r50] = r51, 1 00A5BB320CC7 50F2 (pr7) shr.u out7 = out7, 8 ;; // r51 = r51, 8 } { .mib 00AC43266080 5100 st2 [out6] = out7, 2 // [r50] = r51, 2 00A57B340CC0 5101 shr.u out7 = out7, 16 // r51 = r51, 16 004000000000 5102 nop.b 0 ;; } { .mmi 008C43266006 5110 (pr6) st2 [out6] = out7 // [r50] = r51 008C03266007 5111 (pr7) st1 [out6] = out7 // [r50] = r51 000008000000 5112 nop.i 0 ;; } 5120 L$102: { .mii 008082200880 5120 ld4 in2 = [in2] // r34 = [r34] // 068048 012000002640 5121 mov ai = 1 ;; // r25 = 1 0000B2200880 5122 sxt4 in2 = in2 ;; // r34 = r34 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 144 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mfb 01083A2A8B00 5130 adds out0 = 980, in2 // r44 = 980, r34 000008000000 5131 nop.f 0 00A000001000 5132 br.call.sptk.many rp = // br0 = InstanceGblSecIncrLong InstanceGblSecIncrLong ;; } { .mfb 000008000000 5140 nop.m 0 000008000000 5141 nop.f 0 008000031000 5142 br.sptk.many L$270 ;; } 5150 L$98: // 068050 { .mii 010802330280 5150 adds r10 = 24, r35 // 068058 010902098900 5151 adds r36 = 4172, in0 // r36 = 4172, r32 // 068056 010912080940 5152 adds r37 = 4416, in0 // r37 = 4416, r32 } { .mmi 010912078980 5160 adds r38 = 4412, in0 ;; // r38 = 4412, r32 011160AF82C0 5161 and r11 = -4, r10 // 068058 0109120709C0 5162 adds r39 = 4408, in0 // r39 = 4408, r32 // 068056 } { .mii 010912068840 5170 adds in1 = 4404, in0 // r33 = 4404, r32 010912060880 5171 adds in2 = 4400, in0 ;; // r34 = 4400, r32 0109120480C0 5172 adds r3 = 4388, in0 // r3 = 4388, r32 } { .mii 010912058200 5180 adds r8 = 4396, in0 // r8 = 4396, r32 010912050240 5181 adds r9 = 4392, in0 // r9 = 4392, r32 01C020B14080 5182 cmp.eq pr2, pr4 = r10, r11 ;; // 068058 } { .mmi 008C82400000 5190 st4 [r36] = r0 // 068056 008C82500000 5191 st4 [r37] = r0 009E08014444 5192 (pr4) dep r17 = r10, r0, 3, 2 ;; // 068058 } { .mmi 008C82600000 51A0 st4 [r38] = r0 // 068056 008C82700000 51A1 st4 [r39] = r0 010802330540 51A2 adds r21 = 24, r35 ;; // 068058 } { .mmi 008C82100000 51B0 st4 [in1] = r0 // [r33] = r0 // 068056 008C82200000 51B1 st4 [in2] = r0 // [r34] = r0 00A0295000C0 51B2 tbit.z pr3, pr5 = r21, 0 ;; // 068058 } { .mmi 008C80300000 51C0 st4 [r3] = r0 // 068056 008C80800000 51C1 st4 [r8] = r0 01092A030600 51C2 adds r24 = 4760, in0 ;; // r24 = 4760, r32 // 068059 } { .mii 008C80900000 51D0 st4 [r9] = r0 // 068056 0120180EE5C0 51D1 mov r23 = 503 // 068059 012000004640 51D2 mov ai = 2 // r25 = 2 // 068060 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 145 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mmi 01200003AB40 51E0 mov out1 = 29 ;; // r45 = 29 008080B004C2 51E1 (pr2) ld4 r19 = [r11] // 068058 010802000B00 51E2 mov out0 = rqptr ;; // r44 = r32 // 068060 } { .mmi 00A080B084C4 51F0 (pr4) ld4 r19 = [r11], 4 ;; // 068058 008080B00484 51F1 (pr4) ld4 r18 = [r11] 00F2013224C4 51F2 (pr4) shr.u r19 = r19, r17 } { .mmi 010129140444 5200 (pr4) sub r17 = 32, r17 ;; 000008000000 5201 nop.m 0 00F241124484 5202 (pr4) shl r18 = r18, r17 ;; } { .mmi 0100713244C4 5210 (pr4) or r19 = r18, r19 ;; 000008000000 5211 nop.m 0 0000913004C4 5212 (pr4) zxt4 r19 = r19 ;; } { .mmi 010801302580 5220 adds r22 = 1, r19 ;; 00AC0152C045 5221 (pr5) st1 [r21] = r22, 1 00A5B9620585 5222 (pr5) shr.u r22 = r22, 8 ;; } { .mib 00AC4152C080 5230 st2 [r21] = r22, 2 00A579640580 5231 shr.u r22 = r22, 16 004000000000 5232 nop.b 0 ;; } { .mmi 008C4152C003 5240 (pr3) st2 [r21] = r22 008C0152C005 5241 (pr5) st1 [r21] = r22 000008000000 5242 nop.i 0 ;; } { .mfb 008C8182E000 5250 st4 [r24] = r23 // 068059 000008000000 5251 nop.f 0 00A000001000 5252 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor // 068060 } { .mii 010802B00040 5260 mov gp = r43 // r1 = r43 012000008640 5261 mov ai = 4 // r25 = 4 010800800B40 5262 mov out1 = r8 // r45 = r8 } { .mmi 010802000B00 5270 mov out0 = rqptr ;; // r44 = r32 012000100BC0 5271 add out3 = @ltoffx($LITERAL$), gp // r47 = @ltoffx($LITERAL$), r1 000008000000 5272 nop.i 0 ;; } { .mib 0080C2F00B80 5280 ld8.mov out2 = [r47], $LITERAL$ 01204002EBC0 5281 mov out3 = 1047 // r47 = 1047 00A000001000 5282 br.call.sptk.many rp = ErrorGeneral ;; // br0 = ErrorGeneral } { .mii Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 146 ThrottleRelease 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 010802B00040 5290 mov gp = r43 // r1 = r43 012000004640 5291 mov ai = 2 // r25 = 2 // 068063 010802000B40 5292 mov out1 = rqptr ;; // r45 = r32 } { .mmi 012000100B00 52A0 add out0 = // r44 = @ltoff(@fptr(RequestEnd)), r1 @ltoff(@fptr(RequestEnd)), gp ;; 0080C2C00B00 52A1 ld8 out0 = RequestEnd // r44 = [r44] 000008000000 52A2 nop.i 0 } { .mfb 000008000000 52B0 nop.m 0 000008000000 52B1 nop.f 0 00A000001000 52B2 br.call.sptk.many rp = SysDclAst ;; // br0 = SysDclAst } 52C0 L$270: { .mii 012000006640 52C0 mov ai = 3 // r25 = 3 // 068067 012000000B80 52C1 mov out2 = 0 // r46 = 0 012000006B40 52C2 mov out1 = 3 // r45 = 3 } { .mmi 010802000B00 52D0 mov out0 = rqptr ;; // r44 = r32 010802B00040 52D1 mov gp = r43 // r1 = r43 // 068063 000008000000 52D2 nop.i 0 ;; } { .mfb 000008000000 52E0 nop.m 0 000008000000 52E1 nop.f 0 00A000001000 52E2 br.call.sptk.many rp = HttpdTimerSet ;; // br0 = HttpdTimerSet // 068067 } { .mii 010952008800 52F0 adds in0 = 5380, in0 // r32 = 5380, r32 // 068070 0016000547C0 52F1 mov pr = r42, -65474 // 068071 010802B00040 52F2 mov gp = r43 ;; // r1 = r43 // 068067 } { .mii 008C82000000 5300 st4 [in0] = r0 // [r32] = r0 // 068070 000154052000 5301 mov.i rspfs = r41 ;; // 068071 000E00150000 5302 mov rp = r40 // br0 = r40 } { .mfb 010800C40300 5310 adds sp = 32, sp // r12 = 32, r12 000008000000 5311 nop.f 0 000108001100 5312 br.ret.sptk.many rp ;; // br0 } .endp ThrottleRelease Routine Size: 3056 bytes, Routine Base: $CODE$ + 4730 .proc ThrottleControl .align 32 .global ThrottleControl ThrottleControl: // 068083 { .mii 002C0102EB40 5320 alloc r45 = rspfs, 4, 12, 7, 0 012000100900 5321 add r36 = @ltoffx(MappingMetaPtr), // r36 = @ltoffx(MappingMetaPtr), r1 // 068107 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 147 ThrottleControl 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 gp 010800100BC0 5322 mov r47 = gp // r47 = r1 // 068083 } { .mmi 010800000980 5330 mov idx = r0 ;; // r38 = r0 // 068107 0080C2400900 5331 ld8.mov r36 = [r36], MappingMetaPtr 000188000B00 5332 mov r44 = rp // r44 = br0 // 068083 } { .mmi 010800000940 5340 mov DequeuedCount = r0 ;; // r37 = r0 // 068106 000008000000 5341 nop.m 0 000198000B80 5342 mov r46 = pr ;; // 068083 } { .mmi 008082400200 5350 ld4 r8 = [r36] ;; // 068107 000008000000 5351 nop.m 0 0000B0800200 5352 sxt4 r8 = r8 ;; } { .mmi 010800810200 5360 adds r8 = 8, r8 ;; 008080800240 5361 ld4 r9 = [r8] 000008000000 5362 nop.i 0 ;; } { .mfb 018C38900000 5370 cmp4.lt pr0, pr7 = 0, r9 000008000000 5371 nop.f 0 008600060007 5372 (pr7) br.cond.dpnt.many L$107 ;; } { .mii 010800000C80 5380 mov out2 = r0 // r50 = r0 // 068135 01C402000280 5381 cmp4.eq pr10, pr0 = r0, // pr10, pr0 = r0, r32 // 068134 WithExtremePrejudice 012000100A00 5382 add r40 = @ltoffx(ThrottleArray), // r40 = @ltoffx(ThrottleArray), r1 // 068109 gp } { .mmi 01C47A100000 5390 cmp4.eq pr0, pr15 = r0, ConnectNumber ;; // pr0, pr15 = r0, r33 // 068121 010800002C8A 5391 (pr10) adds out2 = 1, r0 // r50 = 1, r0 // 068135 01C468046000 5392 cmp4.eq pr0, pr13 = ScriptName, r0 // pr0, pr13 = r35, r0 // 068130 } { .mii 01C458044000 53A0 cmp4.eq pr0, pr11 = RemoteUser, r0 // pr0, pr11 = r34, r0 // 068125 01C00000110F 53A1 (pr15) cmp.eq.unc pr4, pr0 = r0, r0 ;; // 068121 010803200A40 53A2 mov r41 = out2 // r41 = r50 // 068135 } { .mii 0080C2800A00 53B0 ld8.mov r40 = [r40], ThrottleArray // 068109 01C0000010CB 53B1 (pr11) cmp.eq.unc pr3, pr0 = r0, r0 // 068125 01C00000108D 53B2 (pr13) cmp.eq.unc pr2, pr0 = r0, r0 ;; // 068130 } { .mfi 0108000009C0 53C0 mov r39 = r0 // 068109 000008000000 53C1 nop.f 0 000008000000 53C2 nop.i 0 ;; } 53D0 L$109: // 068107 { .mii Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 148 ThrottleControl 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 008082800280 53D0 ld4 r10 = [r40] // 068109 0000B27002C0 53D1 sxt4 r11 = r39 ;; 0000B0A00280 53D2 sxt4 r10 = r10 ;; } { .mmi 010000B14280 53E0 add tsptr = r10, r11 ;; // r10 = r10, r11 010800A08440 53E1 adds r17 = 4, r10 // 068110 000008000000 53E2 nop.i 0 ;; } { .mmi 0111611F8480 53F0 and r18 = -4, r17 ;; 01C039222280 53F1 cmp.eq pr10, pr7 = r17, r18 000008000000 53F2 nop.i 0 ;; } { .mib 00808120054A 5400 (pr10) ld4 r21 = [r18] 009E080224C7 5401 (pr7) dep r19 = r17, r0, 3, 2 004000000000 5402 nop.b 0 ;; } { .mmi 00A081208547 5410 (pr7) ld4 r21 = [r18], 4 ;; 008081200507 5411 (pr7) ld4 r20 = [r18] 00F201526547 5412 (pr7) shr.u r21 = r21, r19 } { .mmi 0101293404C7 5420 (pr7) sub r19 = 32, r19 ;; 000008000000 5421 nop.m 0 00F241328507 5422 (pr7) shl r20 = r20, r19 ;; } { .mmi 010071528547 5430 (pr7) or r21 = r20, r21 ;; 000008000000 5431 nop.m 0 000091500547 5432 (pr7) zxt4 r21 = r21 ;; } { .mfb 01C401500380 5440 cmp4.eq pr14, pr0 = r0, r21 000008000000 5441 nop.f 0 00860003C00E 5442 (pr14) br.cond.dpnt.many L$111 ;; } { .mmi 010800A68580 5450 adds r22 = 52, r10 ;; // 068113 0111616F85C0 5451 and r23 = -4, r22 000008000000 5452 nop.i 0 ;; } { .mmi 01C05972C200 5460 cmp.eq pr8, pr11 = r22, r23 ;; 008081700688 5461 (pr8) ld4 r26 = [r23] 009E0802C60B 5462 (pr11) dep r24 = r22, r0, 3, 2 ;; } { .mmi 00A08170868B 5470 (pr11) ld4 r26 = [r23], 4 ;; 00808170064B 5471 (pr11) ld4 ai = [r23] // r25 = [r23] 00F201A3068B 5472 (pr11) shr.u r26 = r26, r24 } { .mmi 01012984060B 5480 (pr11) sub r24 = 32, r24 ;; 000008000000 5481 nop.m 0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 149 ThrottleControl 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00F24183264B 5482 (pr11) shl ai = ai, r24 ;; // r25 = r25, r24 } { .mmi 010071A3268B 5490 (pr11) or r26 = ai, r26 ;; // r26 = r25, r26 000008000000 5491 nop.m 0 0000B1A00680 5492 sxt4 r26 = r26 ;; } { .mib 01C400034180 54A0 cmp4.eq pr6, pr0 = r26, r0 // 068114 010801A00A80 54A1 mov leptr = r26 // r42 = r26 // 068113 008600030006 54A2 (pr6) br.cond.dpnt.many L$111 ;; // 068114 } 54B0 L$113: { .mmi 010802A10A80 54B0 adds r42 = 8, r42 ;; // 068116 00B08AAF8AC0 54B1 ld4 rqptr = [r42], -4 // r43 = [r42], -4 000008000000 54B2 nop.i 0 ;; } { .mii 008082A00A80 54C0 ld4 leptr = [r42] // r42 = [r42] // 068118 0000B2B00AC0 54C1 sxt4 rqptr = rqptr ;; // r43 = r43 // 068116 0000B2A00A80 54C2 sxt4 leptr = leptr // r42 = r42 // 068118 } { .bbb 008600004004 54D0 (pr4) br.cond.dpnt.many L$114 // 068121 00860000A003 54D1 (pr3) br.cond.dpnt.many L$117 // 068125 008600016002 54D2 (pr2) br.cond.dpnt.many L$120 ;; // 068130 } { .mfb 000008000000 54E0 nop.m 0 000008000000 54E1 nop.f 0 008000021000 54E2 br.sptk.many L$121 ;; } 54F0 L$114: // 068121 { .mmi 01080ABA0700 54F0 adds r28 = 208, r43 ;; 008081C00700 54F1 ld4 r28 = [r28] 000008000000 54F2 nop.i 0 ;; } { .mbb 01C44A138000 5500 cmp4.eq pr0, pr9 = r28, ConnectNumber // pr0, pr9 = r28, r33 008600022009 5501 (pr9) br.cond.dpnt.many L$116 008600004003 5502 (pr3) br.cond.dpnt.many L$117 ;; // 068125 } { .bbb 00860000E002 5510 (pr2) br.cond.dpnt.many L$120 // 068130 00800001B000 5511 br.sptk.many L$121 004000000000 5512 nop.b 0 ;; } 5520 L$117: // 068125 { .mmi 008002200740 5520 ld1 r29 = [in2] ;; // r29 = [r34] 000008000000 5521 nop.m 0 0000A1D00740 5522 sxt1 r29 = r29 ;; } { .mfb 01C001D00280 5530 cmp.eq pr10, pr0 = r0, r29 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 150 ThrottleControl 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 5531 nop.f 0 00860000800A 5532 (pr10) br.cond.dpnt.many L$118 ;; } { .mii 012000006640 5540 mov ai = 3 // r25 = 3 // 068126 0119F80FEC80 5541 adds out2 = -1, r0 // r50 = -1, r0 010802200C40 5542 mov out1 = RemoteUser // r49 = r34 } { .mfb 010822BD0C00 5550 adds out0 = 616, rqptr // r48 = 616, r43 000008000000 5551 nop.f 0 00A000001000 5552 br.call.sptk.many rp = strsame ;; // br0 = strsame } { .mib 01C4008001C0 5560 cmp4.eq pr7, pr0 = r0, r8 010802F00040 5561 mov gp = r47 // r1 = r47 008600016007 5562 (pr7) br.cond.dpnt.many L$116 ;; } 5570 L$118: // 068127 { .bbb 008600002002 5570 (pr2) br.cond.dpnt.many L$120 // 068130 00800000F000 5571 br.sptk.many L$121 004000000000 5572 nop.b 0 ;; } 5580 L$120: { .mmi 0080023000C0 5580 ld1 r3 = [in3] ;; // r3 = [r35] 000008000000 5581 nop.m 0 0000A03000C0 5582 sxt1 r3 = r3 ;; } { .mfb 01C000300240 5590 cmp.eq pr9, pr0 = r0, r3 000008000000 5591 nop.f 0 00860000A009 5592 (pr9) br.cond.dpnt.many L$121 ;; } { .mii 01200000C640 55A0 mov ai = 6 // r25 = 6 // 068131 010800000D40 55A1 mov out5 = r0 // r53 = r0 010800000D00 55A2 mov out4 = r0 // r52 = r0 } { .mmi 012000002CC0 55B0 mov out3 = 1 ;; // r51 = 1 010802300C80 55B1 mov out2 = ScriptName // r50 = r35 010800000C00 55B2 mov out0 = r0 // r48 = r0 } { .mfb 01088AB92C40 55C0 adds out1 = 2249, rqptr // r49 = 2249, r43 000008000000 55C1 nop.f 0 00A000001000 55C2 br.call.sptk.many rp = // br0 = StringMatchAndRegex StringMatchAndRegex ;; } { .mib 01C4008001C0 55D0 cmp4.eq pr7, pr0 = r0, r8 010802F00040 55D1 mov gp = r47 // r1 = r47 008600008007 55D2 (pr7) br.cond.dpnt.many L$116 ;; } 55E0 L$121: // 068132 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 151 ThrottleControl 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mii 010802502940 55E0 adds r37 = 1, r37 0000B2900C80 55E1 sxt4 out2 = r41 // r50 = r41 // 068135 010800000C40 55E2 mov out1 = r0 // r49 = r0 } { .mfb 010802B00C00 55F0 mov out0 = rqptr // r48 = r43 000008000000 55F1 nop.f 0 00A000001000 55F2 br.call.sptk.many rp = ThrottleRelease ;; // br0 = ThrottleRelease } { .mfb 000008000000 5600 nop.m 0 000008000000 5601 nop.f 0 00860000C004 5602 (pr4) br.cond.dpnt.many L$123 ;; // 068142 } 5610 L$116: // 068114 { .mfb 01C430054000 5610 cmp4.eq pr0, pr6 = leptr, r0 // pr0, pr6 = r42, r0 000008000000 5611 nop.f 0 0095FFFD4006 5612 (pr6) br.cond.dptk.many L$113 ;; } 5620 L$111: // 068144 { .mii 008082400AC0 5620 ld4 r43 = [r36] // 068107 010802602980 5621 adds r38 = 1, r38 // 068144 0108027809C0 5622 adds r39 = 64, r39 ;; } { .mii 000008000000 5630 nop.m 0 0000B2B00AC0 5631 sxt4 r43 = r43 ;; // 068107 010802B10AC0 5632 adds r43 = 8, r43 ;; } { .mmi 008082B00AC0 5640 ld4 r43 = [r43] ;; 018402B4C200 5641 cmp4.lt pr8, pr0 = idx, r43 // pr8, pr0 = r38, r43 000008000000 5642 nop.i 0 } { .bbb 0095FFFB0008 5650 (pr8) br.cond.dptk.many L$109 004000000000 5651 nop.b 0 008000005000 5652 br.sptk.many L$107 ;; } 5660 L$123: // 068142 { .mfb 000008000000 5660 nop.m 0 000008000000 5661 nop.f 0 00800001F000 5662 br.sptk.many L$126 ;; } 5670 L$107: // 068144 { .mmi 0120001000C0 5670 add r3 = @ltoff(Watch+124), gp ;; // r3 = @ltoff(Watch+124), r1 // 068146 0080C03000C0 5671 ld8 r3 = Watch // r3 = [r3] 000008000000 5672 nop.i 0 ;; } { .mmi 0111603F0240 5680 and r9 = -8, r3 ;; 01C058906000 5681 cmp.eq pr0, pr11 = r3, r9 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 152 ThrottleControl 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 5682 nop.i 0 } { .mmi 00A0C0910440 5690 ld8 r17 = Watch, 8 ;; // r17 = [r9], 8 000008000000 5691 nop.m 0 009E1000628B 5692 (pr11) dep r10 = Watch, r0, 3, 3 ;; // r10 = r3, r0, 3, 3 } { .mmi 0080C09002CB 56A0 (pr11) ld8 r11 = Watch ;; // r11 = [r9] 000008000000 56A1 nop.m 0 00F20111444B 56A2 (pr11) shr.u r17 = r17, r10 } { .mmi 010128A8028B 56B0 (pr11) sub r10 = 64, r10 ;; 000008000000 56B1 nop.m 0 00F240A162CB 56B2 (pr11) shl r11 = r11, r10 ;; } { .mmi 01007111644B 56C0 (pr11) or r17 = r11, r17 ;; 01C001100340 56C1 cmp.eq pr13, pr0 = r0, r17 000008000000 56C2 nop.i 0 } { .mfb 000008000000 56D0 nop.m 0 000008000000 56D1 nop.f 0 00860001000D 56D2 (pr13) br.cond.dpnt.many L$126 ;; } { .mii 0120001004C0 56E0 add r19 = @ltoff($LITERAL$+480), // r19 = @ltoff($LITERAL$+480), r1 // 068148 gp 012000100480 56E1 add r18 = @ltoff($LITERAL$+496), // r18 = @ltoff($LITERAL$+496), r1 gp 01C472000000 56E2 cmp4.eq pr0, pr14 = r0, // pr0, pr14 = r0, r32 WithExtremePrejudice } { .mmi 012000100C80 56F0 add out2 = @ltoffx($LITERAL$), gp ;; // r50 = @ltoffx($LITERAL$), r1 // 068147 0080C13004C0 56F1 ld8 r19 = $LITERAL$ // r19 = [r19] // 068148 012000100540 56F2 add r21 = @ltoff($LITERAL$+448), // r21 = @ltoff($LITERAL$+448), r1 // 068147 gp } { .mii 0080C1200500 5700 ld8 r20 = $LITERAL$ // r20 = [r18] // 068148 01200000E640 5701 mov ai = 7 ;; // r25 = 7 // 068147 01080130050E 5702 (pr14) mov r20 = r19 // 068148 } { .mmi 0080C3200C40 5710 ld8.mov out1 = [r50], $LITERAL$ // 068147 0080C1500D00 5711 ld8 out4 = $LITERAL$ // r52 = [r21] 0000B2500D80 5712 sxt4 out6 = DequeuedCount ;; // r54 = r37 } { .mii 010801400D40 5720 mov out5 = r20 // r53 = r20 012000004CC0 5721 mov out3 = 2 // r51 = 2 0120400DCC80 5722 mov out2 = 1134 // r50 = 1134 } { .mfb Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 153 ThrottleControl 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0119F80FEC00 5730 adds out0 = -1, r0 // r48 = -1, r0 000008000000 5731 nop.f 0 00A000001000 5732 br.call.sptk.many rp = WatchThis ;; // br0 = WatchThis } { .mfi 010802F00040 5740 mov gp = r47 // r1 = r47 000008000000 5741 nop.f 0 000008000000 5742 nop.i 0 } 5750 L$126: // 068148 { .mii 000008000000 5750 nop.m 0 00160005C7C0 5751 mov pr = r46, -65474 // 068150 0000B2500200 5752 sxt4 r8 = DequeuedCount ;; // r8 = r37 } { .mii 000008000000 5760 nop.m 0 00015405A000 5761 mov.i rspfs = r45 ;; 000E00158000 5762 mov rp = r44 // br0 = r44 } { .mfb 000008000000 5770 nop.m 0 000008000000 5771 nop.f 0 000108001100 5772 br.ret.sptk.many rp ;; // br0 } .endp ThrottleControl Routine Size: 1120 bytes, Routine Base: $CODE$ + 5320 .proc ThrottleReport .align 32 .global ThrottleReport ThrottleReport: // 068158 { .mii 002C01434C80 5780 alloc r50 = rspfs, 1, 19, 6, 0 012058000380 5781 mov r14 = 1408 012000100840 5782 add r33 = @ltoffx(BeginPage), gp // r33 = @ltoffx(BeginPage), r1 // 068288 } { .mmi 012000100200 5790 add r8 = @ltoff($LITERAL$+296), gp ;; // r8 = @ltoff($LITERAL$+296), r1 010028E183C0 5791 sub r15 = sp, r14 // r15 = r12, r14 // 068158 010800C00080 5792 mov r2 = sp // r2 = r12 } { .mii 0080C2100840 57A0 ld8.mov r33 = [r33], BeginPage // 068288 012000006640 57A1 mov ai = 3 ;; // r25 = 3 000188000C40 57A2 mov r49 = rp // r49 = br0 // 068158 } { .mii 0080C0F00380 57B0 ld8 r14 = [r15] 010800F00300 57B1 mov sp = r15 // r12 = r15 010800100CC0 57B2 mov r51 = gp ;; // r51 = r1 } { .mii 0080C0800D40 57C0 ld8 out1 = $LITERAL$ // r53 = [r8] // 068288 010802100D80 57C1 mov out2 = r33 // r54 = r33 010802000D00 57C2 mov out0 = rqptr // r52 = r32 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 154 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mfb 000008000000 57D0 nop.m 0 000008000000 57D1 nop.f 0 00A000001000 57D2 br.call.sptk.many rp = AdminPageTitle ;; // br0 = AdminPageTitle } { .mii 010803300040 57E0 mov gp = r51 // r1 = r51 010800C20900 57E1 adds r36 = 16, sp // r36 = 16, r12 // 068301 012000002940 57E2 mov r37 = 1 // 068380 } { .mmi 010800000980 57F0 mov idx = r0 ;; // r38 = r0 // 068290 012000100880 57F1 add r34 = @ltoffx(MappingMetaPtr), // r34 = @ltoffx(MappingMetaPtr), r1 gp 0120001009C0 57F2 add r39 = // r39 = @ltoffx(ThrottleEndPerUserFao), // 068377 @ltoffx(ThrottleEndPerUserFao), // r1 gp } { .mii 010802420A00 5800 adds r40 = 16, r36 // 068307 010802428900 5801 adds r36 = 20, r36 000008000000 5802 nop.i 0 ;; } { .mmi 0080C2200880 5810 ld8.mov r34 = [r34], MappingMetaPtr // 068290 0080C27009C0 5811 ld8.mov r39 = [r39], ThrottleEndPerUserFao // 068377 000008000000 5812 nop.i 0 ;; } { .mmi 0080822008C0 5820 ld4 r35 = [r34] ;; // 068290 000008000000 5821 nop.m 0 0000B23008C0 5822 sxt4 r35 = r35 ;; } { .mmi 0108023108C0 5830 adds r35 = 8, r35 ;; 0080823008C0 5831 ld4 r35 = [r35] 000008000000 5832 nop.i 0 ;; } { .mfb 018C32300000 5840 cmp4.lt pr0, pr6 = 0, r35 000008000000 5841 nop.f 0 0086001C6006 5842 (pr6) br.cond.dpnt.many L$47 ;; } { .mii 012000100AC0 5850 add r43 = @ltoffx(ThrottleArray), // r43 = @ltoffx(ThrottleArray), r1 // 068292 gp 012000100A80 5851 add r42 = @ltoffx(ThrottlePathFao), // r42 = @ltoffx(ThrottlePathFao), r1 // 068338 gp 012000002A40 5852 mov r41 = 1 // 068302 } { .mmi 0108000008C0 5860 mov r35 = r0 ;; // 068292 0080C2B00AC0 5861 ld8.mov r43 = [r43], ThrottleArray 000008000000 5862 nop.i 0 } { .mfi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 155 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0080C2A00A80 5870 ld8.mov r42 = [r42], ThrottlePathFao // 068338 000008000000 5871 nop.f 0 000008000000 5872 nop.i 0 ;; } 5880 L$49: // 068290 { .mii 008082B000C0 5880 ld4 r3 = [r43] // 068292 0000B2300200 5881 sxt4 r8 = r35 012000002640 5882 mov ai = 1 ;; // r25 = 1 // 068295 } { .mii 000008000000 5890 nop.m 0 0000B03000C0 5891 sxt4 r3 = r3 // 068292 0000B2600D00 5892 sxt4 out0 = idx ;; // r52 = r38 // 068295 } { .mfb 010000806B00 58A0 add tsptr = r3, r8 // r44 = r3, r8 // 068292 000008000000 58A1 nop.f 0 00A000001000 58A2 br.call.sptk.many rp = // br0 = MapUrl_ThrottleRule // 068295 MapUrl_ThrottleRule ;; } { .mii 01C430010000 58B0 cmp4.eq pr0, pr6 = r8, r0 010800800B40 58B1 mov mrptr = r8 // r45 = r8 010803300040 58B2 mov gp = r51 // r1 = r51 } { .mfb 000008000000 58C0 nop.m 0 000008000000 58C1 nop.f 0 00860000A006 58C2 (pr6) br.cond.dpnt.many L$50 ;; } { .mii 010808C200C0 58D0 adds r3 = 144, sp // r3 = 144, r12 // 068297 0120480F8D40 58D1 mov out1 = 1276 // r53 = 1276 010808C20D00 58D2 adds out0 = 144, sp ;; // r52 = 144, r12 } { .mfb 010800300B40 58E0 mov mrptr = r3 // r45 = r3 000008000000 58E1 nop.f 0 00A000001000 58E2 br.call.sptk.many rp = OTS$ZERO ;; // br0 = OTS$ZERO } { .mii 010803300040 58F0 mov gp = r51 // r1 = r51 010808C60200 58F1 adds r8 = 176, sp ;; // r8 = 176, r12 // 068298 0120001000C0 58F2 add r3 = @ltoff($LITERAL$+288), gp ;; // r3 = @ltoff($LITERAL$+288), r1 } { .mmi 0080C03000C0 5900 ld8 r3 = $LITERAL$ ;; // r3 = [r3] 008C80806000 5901 st4 [r8] = r3 000008000000 5902 nop.i 0 } 5910 L$50: // 068299 { .mii 010800C20240 5910 adds r9 = 16, sp // r9 = 16, r12 // 068302 010800C282C0 5911 adds r11 = 20, sp ;; // r11 = 20, r12 // 068303 01083AD88440 5912 adds r17 = 964, r45 // 068304 } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 156 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mii 008C80952000 5920 st4 [r9] = r41 // 068302 010802D40B40 5921 adds r45 = 32, r45 // 068303 010800C30480 5922 adds r18 = 24, sp ;; // r18 = 24, r12 // 068304 } { .mii 008082D00280 5930 ld4 r10 = [r45] // 068303 01083AD504C0 5931 adds r19 = 936, r45 // 068305 0119FADC0B40 5932 adds r45 = -32, r45 ;; } { .mmi 008C80B14000 5940 st4 [r11] = r10 ;; // 068303 008081100440 5941 ld4 r17 = [r17] // 068304 000008000000 5942 nop.i 0 ;; } { .mmi 008C81222000 5950 st4 [r18] = r17 ;; 0080813004C0 5951 ld4 r19 = [r19] // 068305 000008000000 5952 nop.i 0 ;; } { .mfb 01C4013001C0 5960 cmp4.eq pr7, pr0 = r0, r19 000008000000 5961 nop.f 0 008600008007 5962 (pr7) br.cond.dpnt.many L$55 ;; } { .mii 012000100500 5970 add r20 = @ltoff($LITERAL$+280), // r20 = @ltoff($LITERAL$+280), r1 // 068307 gp 010800C38540 5971 adds r21 = 28, sp // r21 = 28, r12 010800C40580 5972 adds r22 = 32, sp // r22 = 32, r12 // 068308 } { .mmi 0108024005C0 5980 mov vecptr = r36 ;; // r23 = r36 0080C1400500 5981 ld8 r20 = $LITERAL$ // r20 = [r20] // 068307 000008000000 5982 nop.i 0 ;; } { .mmb 008C81528000 5990 st4 [r21] = r20 008C81626000 5991 st4 [r22] = r19 // 068308 008000007000 5992 br.sptk.many L$56 ;; // 068310 } 59A0 L$55: { .mii 012000100600 59A0 add r24 = @ltoff($LITERAL$+272), // r24 = @ltoff($LITERAL$+272), r1 // 068311 gp 010800C38640 59A1 adds ai = 28, sp // r25 = 28, r12 0108028005C0 59A2 mov vecptr = r40 ;; // r23 = r40 } { .mmi 0080C1800600 59B0 ld8 r24 = $LITERAL$ ;; // r24 = [r24] 008C81930000 59B1 st4 [ai] = r24 // [r25] = r24 000008000000 59B2 nop.i 0 } 59C0 L$56: { .mii 01083ADA0700 59C0 adds r28 = 976, r45 // 068312 01083AD98740 59C1 adds r29 = 972, r45 ;; // 068313 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 157 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 01083AD80780 59C2 adds r30 = 960, r45 // 068314 } { .mii 008081C00700 59D0 ld4 r28 = [r28] // 068312 01083ADB07C0 59D1 adds r31 = 984, r45 // 068316 012000004640 59D2 mov ai = 2 ;; // r25 = 2 // 068315 } { .mii 008C81738000 59E0 st4 [r23] = r28 // 068312 010802000D00 59E1 mov out0 = rqptr // r52 = r32 // 068315 010801720BC0 59E2 adds vecptr = 16, vecptr // r47 = 16, r23 } { .mmi 010801718B80 59F0 adds vecptr = 12, vecptr ;; // r46 = 12, r23 // 068314 008081D00740 59F1 ld4 r29 = [r29] // 068313 000008000000 59F2 nop.i 0 ;; } { .mmi 0108017085C0 5A00 adds r23 = 4, r23 ;; 00AC8173A100 5A01 st4 [r23] = r29, 4 000008000000 5A02 nop.i 0 ;; } { .mmi 008081E00780 5A10 ld4 r30 = [r30] ;; // 068314 008C8173C000 5A11 st4 [r23] = r30 000008000000 5A12 nop.i 0 ;; } { .mmi 008081F007C0 5A20 ld4 r31 = [r31] ;; // 068316 000008000000 5A21 nop.m 0 0000B1F00D40 5A22 sxt4 out1 = r31 // r53 = r31 } { .mfb 000008000000 5A30 nop.m 0 000008000000 5A31 nop.f 0 00A000001000 5A32 br.call.sptk.many rp = // br0 = MetaConShowSeconds // 068315 MetaConShowSeconds ;; } { .mmi 01083ADA8B40 5A40 adds r45 = 980, r45 // 068318 008C82E10000 5A41 st4 [r46] = r8 // 068315 012000004640 5A42 mov ai = 2 ;; // r25 = 2 // 068317 } { .mii 008082D00B40 5A50 ld4 r45 = [r45] // 068318 010802000D00 5A51 mov out0 = rqptr // r52 = r32 // 068317 010802F08C00 5A52 adds vecptr = 4, vecptr // r48 = 4, r47 } { .mmi 010803300040 5A60 mov gp = r51 ;; // r1 = r51 // 068315 000008000000 5A61 nop.m 0 0000B2D00D40 5A62 sxt4 out1 = r45 // r53 = r45 // 068318 } { .mfb 000008000000 5A70 nop.m 0 000008000000 5A71 nop.f 0 00A000001000 5A72 br.call.sptk.many rp = // br0 = MetaConShowSeconds // 068317 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 158 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 MetaConShowSeconds ;; } { .mmi 010802C380C0 5A80 adds r3 = 28, r44 // 068319 008C82F10000 5A81 st4 [r47] = r8 // 068317 010802C304C0 5A82 adds r19 = 24, r44 ;; // 068320 } { .mii 0111603F8240 5A90 and r9 = -4, r3 // 068319 0111613F8500 5A91 and r20 = -4, r19 // 068320 010802C40640 5A92 adds ai = 32, r44 // r25 = 32, r44 // 068321 } { .mmi 010802C087C0 5AA0 adds r31 = 4, r44 ;; // 068322 01C038906180 5AA1 cmp.eq pr6, pr7 = r3, r9 // 068319 01C049426200 5AA2 cmp.eq pr8, pr9 = r19, r20 // 068320 } { .mii 0111619F8680 5AB0 and r26 = -4, ai // r26 = -4, r25 // 068321 011161FF8D80 5AB1 and out2 = -4, r31 ;; // r54 = -4, r31 // 068322 009E08006287 5AB2 (pr7) dep r10 = r3, r0, 3, 2 // 068319 } { .mii 008080900D46 5AC0 (pr6) ld4 out1 = [r9] // r53 = [r9] 01C059A32280 5AC1 cmp.eq pr10, pr11 = ai, r26 // pr10, pr11 = r25, r26 // 068321 01C06B63E300 5AC2 cmp.eq pr12, pr13 = r31, out2 ;; // pr12, pr13 = r31, r54 // 068322 } { .mii 010802F38200 5AD0 adds vecptr = 28, vecptr // r8 = 28, r47 // 068324 009E08026549 5AD1 (pr9) dep r21 = r19, r0, 3, 2 // 068320 010802F30780 5AD2 adds vecptr = 24, vecptr // r30 = 24, r47 // 068323 } { .mmi 010802F28600 5AE0 adds vecptr = 20, vecptr ;; // r24 = 20, r47 // 068322 00A080908D47 5AE1 (pr7) ld4 out1 = [r9], 4 // r53 = [r9], 4 // 068319 009E080326CB 5AE2 (pr11) dep r27 = ai, r0, 3, 2 // r27 = r25, r0, 3, 2 // 068321 } { .mii 010802F18B40 5AF0 adds vecptr = 12, vecptr // r45 = 12, r47 // 068320 010802F10B80 5AF1 adds vecptr = 8, vecptr ;; // r46 = 8, r47 // 068319 009E0803EDCD 5AF2 (pr13) dep out3 = r31, r0, 3, 2 // r55 = r31, r0, 3, 2 // 068322 } { .mii 010802C48C00 5B00 adds r48 = 36, r44 // 068324 010802C58B80 5B01 adds r46 = 44, r44 // 068325 010802C50B40 5B02 adds r45 = 40, r44 ;; // 068326 } { .mii 0080809002C7 5B10 (pr7) ld4 r11 = [r9] // 068319 00F203514D47 5B11 (pr7) shr.u out1 = out1, r10 // r53 = r53, r10 010128A40287 5B12 (pr7) sub r10 = 32, r10 } { .mmi 0111630F84C0 5B20 and r19 = -4, r48 ;; // 068324 011162EF8640 5B21 and ai = -4, r46 // r25 = -4, r46 // 068325 011162DF87C0 5B22 and r31 = -4, r45 // 068326 } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 159 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mmi 010803300040 5B30 mov gp = r51 ;; // r1 = r51 // 068317 000008000000 5B31 nop.m 0 00F240A162C7 5B32 (pr7) shl r11 = r11, r10 ;; // 068319 } { .mmi 010073516D47 5B40 (pr7) or out1 = r11, out1 ;; // r53 = r11, r53 000008000000 5B41 nop.m 0 000093500D47 5B42 (pr7) zxt4 out1 = out1 // r53 = r53 } { .mmi 01C039360180 5B50 cmp.eq pr6, pr7 = r48, r19 ;; // 068324 010802F08BC0 5B51 adds r47 = 4, r47 // 068319 010803500440 5B52 mov r17 = out1 ;; // r17 = r53 } { .mib 00AC82F6A100 5B60 st4 [r47] = out1, 4 // [r47] = r53, 4 0000B1100D40 5B61 sxt4 out1 = r17 // r53 = r17 // 068331 004000000000 5B62 nop.b 0 ;; } { .mmi 008081400D08 5B70 (pr8) ld4 out0 = [r20] ;; // r52 = [r20] // 068320 00A081408D09 5B71 (pr9) ld4 out0 = [r20], 4 // r52 = [r20], 4 000008000000 5B72 nop.i 0 ;; } { .mii 008081400589 5B80 (pr9) ld4 r22 = [r20] 00F20342AD09 5B81 (pr9) shr.u out0 = out0, r21 // r52 = r52, r21 010129540549 5B82 (pr9) sub r21 = 32, r21 ;; } { .mii 000008000000 5B90 nop.m 0 009E08060507 5B91 (pr7) dep r20 = r48, r0, 3, 2 ;; // 068324 00F24152C589 5B92 (pr9) shl r22 = r22, r21 ;; // 068320 } { .mmi 01007342CD09 5BA0 (pr9) or out0 = r22, out0 ;; // r52 = r22, r52 000008000000 5BA1 nop.m 0 000093400D09 5BA2 (pr9) zxt4 out0 = out0 // r52 = r52 } { .mmi 01C04995C200 5BB0 cmp.eq pr8, pr9 = r46, ai ;; // pr8, pr9 = r46, r25 // 068325 00AC82F68100 5BB1 st4 [r47] = out0, 4 // [r47] = r52, 4 // 068320 0108034005C0 5BB2 mov r23 = out0 ;; // r23 = r52 } { .mib 008081A0074A 5BC0 (pr10) ld4 r29 = [r26] // 068321 0000B1700D00 5BC1 sxt4 out0 = r23 // r52 = r23 // 068331 004000000000 5BC2 nop.b 0 ;; } { .mmi 00A081A0874B 5BD0 (pr11) ld4 r29 = [r26], 4 ;; // 068321 008081A0070B 5BD1 (pr11) ld4 r28 = [r26] 00F201D3674B 5BD2 (pr11) shr.u r29 = r29, r27 } { .mmi 010129B406CB 5BE0 (pr11) sub r27 = 32, r27 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 160 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 5BE1 nop.m 0 009E0805C689 5BE2 (pr9) dep r26 = r46, r0, 3, 2 // 068325 } { .mmi 010800830B80 5BF0 adds vecptr = 24, vecptr ;; // r46 = 24, r8 // 068330 000008000000 5BF1 nop.m 0 00F241B3870B 5BF2 (pr11) shl r28 = r28, r27 ;; // 068321 } { .mii 010071D3874B 5C00 (pr11) or r29 = r28, r29 01C059F5A280 5C01 cmp.eq pr10, pr11 = r45, r31 // 068326 000008000000 5C02 nop.i 0 ;; } { .mmi 00AC82F3A100 5C10 st4 [r47] = r29, 4 ;; // 068321 008083600E4C 5C11 (pr12) ld4 out5 = [out2] // r57 = [r54] // 068322 000008000000 5C12 nop.i 0 ;; } { .mmi 00A083608E4D 5C20 (pr13) ld4 out5 = [out2], 4 ;; // r57 = [r54], 4 008083600E0D 5C21 (pr13) ld4 out4 = [out2] // r56 = [r54] 00F20396EE4D 5C22 (pr13) shr.u out5 = out5, out3 // r57 = r57, r55 } { .mmi 01012B740DCD 5C30 (pr13) sub out3 = 32, out3 ;; // r55 = 32, r55 000008000000 5C31 nop.m 0 009E0805AD8B 5C32 (pr11) dep out2 = r45, r0, 3, 2 // r54 = r45, r0, 3, 2 // 068326 } { .mmi 010800838B40 5C40 adds vecptr = 28, vecptr ;; // r45 = 28, r8 // 068331 000008000000 5C41 nop.m 0 00F243770E0D 5C42 (pr13) shl out4 = out4, out3 ;; // r56 = r56, r55 // 068322 } { .mmi 010073970E4D 5C50 (pr13) or out5 = out4, out5 ;; // r57 = r56, r57 00BC8AF73C00 5C51 st4 [r47] = out5, -16 // [r47] = r57, -16 000008000000 5C52 nop.i 0 ;; } { .mmi 010802C28BC0 5C60 adds r47 = 20, r44 ;; // 068323 011162FF80C0 5C61 and r3 = -4, r47 000008000000 5C62 nop.i 0 ;; } { .mmi 01C07835E380 5C70 cmp.eq pr14, pr15 = r47, r3 ;; 0080803002CE 5C71 (pr14) ld4 r11 = [r3] 009E0805E24F 5C72 (pr15) dep r9 = r47, r0, 3, 2 ;; } { .mmi 00A0803082CF 5C80 (pr15) ld4 r11 = [r3], 4 ;; 00808030028F 5C81 (pr15) ld4 r10 = [r3] 00F200B122CF 5C82 (pr15) shr.u r11 = r11, r9 } { .mii 01012894024F 5C90 (pr15) sub r9 = 32, r9 011162CF80C0 5C91 and r3 = -4, r44 ;; // 068327 01C068358300 5C92 cmp.eq pr12, pr13 = r44, r3 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 161 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mib 000008000000 5CA0 nop.m 0 00F24091428F 5CA1 (pr15) shl r10 = r10, r9 // 068323 004000000000 5CA2 nop.b 0 } { .mii 000008000000 5CB0 nop.m 0 009E0805824D 5CB1 (pr13) dep r9 = r44, r0, 3, 2 ;; // 068327 010070B142CF 5CB2 (pr15) or r11 = r10, r11 ;; // 068323 } { .mii 008C81816000 5CC0 st4 [r24] = r11 010802C20600 5CC1 adds r24 = 16, r44 // 068328 0108008282C0 5CC2 adds vecptr = 20, vecptr ;; // r11 = 20, r8 // 068329 } { .mmi 008081300586 5CD0 (pr6) ld4 r22 = [r19] ;; // 068324 00A081308587 5CD1 (pr7) ld4 r22 = [r19], 4 000008000000 5CD2 nop.i 0 ;; } { .mii 008081300547 5CE0 (pr7) ld4 r21 = [r19] 00F201628587 5CE1 (pr7) shr.u r22 = r22, r20 010129440507 5CE2 (pr7) sub r20 = 32, r20 } { .mmi 0111618F84C0 5CF0 and r19 = -4, r24 ;; // 068328 01C079330380 5CF1 cmp.eq pr14, pr15 = r24, r19 000008000000 5CF2 nop.i 0 ;; } { .mib 000008000000 5D00 nop.m 0 00F24142A547 5D01 (pr7) shl r21 = r21, r20 // 068324 004000000000 5D02 nop.b 0 } { .mii 000008000000 5D10 nop.m 0 009E0803050F 5D11 (pr15) dep r20 = r24, r0, 3, 2 ;; // 068328 01007162A587 5D12 (pr7) or r22 = r21, r22 ;; // 068324 } { .mii 008C81E2C000 5D20 st4 [r30] = r22 010802C10580 5D21 adds r22 = 8, r44 ;; // 068329 0111616F8780 5D22 and r30 = -4, r22 } { .mmi 008081900708 5D30 (pr8) ld4 r28 = [ai] ;; // r28 = [r25] // 068325 01C039E2C180 5D31 cmp.eq pr6, pr7 = r22, r30 // 068329 000008000000 5D32 nop.i 0 ;; } { .mmi 00A081908709 5D40 (pr9) ld4 r28 = [ai], 4 ;; // r28 = [r25], 4 // 068325 0080819006C9 5D41 (pr9) ld4 r27 = [ai] // r27 = [r25] 00F201C34709 5D42 (pr9) shr.u r28 = r28, r26 } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 162 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 010129A40689 5D50 (pr9) sub r26 = 32, r26 ;; 000008000000 5D51 nop.m 0 009E0802C647 5D52 (pr7) dep ai = r22, r0, 3, 2 ;; // r25 = r22, r0, 3, 2 // 068329 } { .mii 000008000000 5D60 nop.m 0 00F241A366C9 5D61 (pr9) shl r27 = r27, r26 ;; // 068325 010071C36709 5D62 (pr9) or r28 = r27, r28 ;; } { .mmi 00AC80838100 5D70 st4 [r8] = r28, 4 ;; 008081F00E0A 5D71 (pr10) ld4 out4 = [r31] // r56 = [r31] // 068326 000008000000 5D72 nop.i 0 ;; } { .mmi 00A081F08E0B 5D80 (pr11) ld4 out4 = [r31], 4 ;; // r56 = [r31], 4 008081F00DCB 5D81 (pr11) ld4 out3 = [r31] // r55 = [r31] 00F20386CE0B 5D82 (pr11) shr.u out4 = out4, out2 // r56 = r56, r54 } { .mmi 01012B640D8B 5D90 (pr11) sub out2 = 32, out2 ;; // r54 = 32, r54 000008000000 5D91 nop.m 0 00F24366EDCB 5D92 (pr11) shl out3 = out3, out2 ;; // r55 = r55, r54 } { .mmi 01007386EE0B 5DA0 (pr11) or out4 = out3, out4 ;; // r56 = r55, r56 00AC80870100 5DA1 st4 [r8] = out4, 4 // [r8] = r56, 4 000008000000 5DA2 nop.i 0 ;; } { .mmi 008080300BCC 5DB0 (pr12) ld4 r47 = [r3] ;; // 068327 00A080308BCD 5DB1 (pr13) ld4 r47 = [r3], 4 000008000000 5DB2 nop.i 0 ;; } { .mii 00808030028D 5DC0 (pr13) ld4 r10 = [r3] 00F202F12BCD 5DC1 (pr13) shr.u r47 = r47, r9 01012894024D 5DC2 (pr13) sub r9 = 32, r9 ;; } { .mii 000008000000 5DD0 nop.m 0 00F24091428D 5DD1 (pr13) shl r10 = r10, r9 ;; 010072F14BCD 5DD2 (pr13) or r47 = r10, r47 ;; } { .mmi 00AC8085E100 5DE0 st4 [r8] = r47, 4 ;; 008081300C0E 5DE1 (pr14) ld4 r48 = [r19] // 068328 000008000000 5DE2 nop.i 0 ;; } { .mmi 00A081308C0F 5DF0 (pr15) ld4 r48 = [r19], 4 ;; 00808130054F 5DF1 (pr15) ld4 r21 = [r19] 00F203028C0F 5DF2 (pr15) shr.u r48 = r48, r20 } { .mmi 01012944050F 5E00 (pr15) sub r20 = 32, r20 ;; 000008000000 5E01 nop.m 0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 163 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00F24142A54F 5E02 (pr15) shl r21 = r21, r20 ;; } { .mmi 01007302AC0F 5E10 (pr15) or r48 = r21, r48 ;; 00AC80860100 5E11 st4 [r8] = r48, 4 000008000000 5E12 nop.i 0 ;; } { .mmi 008081E006C6 5E20 (pr6) ld4 r27 = [r30] ;; // 068329 00A081E086C7 5E21 (pr7) ld4 r27 = [r30], 4 000008000000 5E22 nop.i 0 ;; } { .mii 008081E00687 5E30 (pr7) ld4 r26 = [r30] 00F201B326C7 5E31 (pr7) shr.u r27 = r27, ai // r27 = r27, r25 010129940647 5E32 (pr7) sub ai = 32, ai ;; // r25 = 32, r25 } { .mii 000008000000 5E40 nop.m 0 00F241934687 5E41 (pr7) shl r26 = r26, ai // r26 = r26, r25 012000004640 5E42 mov ai = 2 ;; // r25 = 2 // 068331 } { .mmi 010071B346C7 5E50 (pr7) or r27 = r26, r27 ;; // 068329 00BC88837C00 5E51 st4 [r8] = r27, -16 000008000000 5E52 nop.i 0 ;; } { .mmi 010802C18200 5E60 adds r8 = 12, r44 ;; // 068330 0111608F8700 5E61 and r28 = -4, r8 000008000000 5E62 nop.i 0 ;; } { .mmi 01C049C10200 5E70 cmp.eq pr8, pr9 = r8, r28 ;; 008081C00DC8 5E71 (pr8) ld4 out3 = [r28] // r55 = [r28] 009E080107C9 5E72 (pr9) dep r31 = r8, r0, 3, 2 ;; } { .mmi 00A081C08DC9 5E80 (pr9) ld4 out3 = [r28], 4 ;; // r55 = [r28], 4 008081C00D89 5E81 (pr9) ld4 out2 = [r28] // r54 = [r28] 00F20373EDC9 5E82 (pr9) shr.u out3 = out3, r31 // r55 = r55, r31 } { .mmi 010129F407C9 5E90 (pr9) sub r31 = 32, r31 ;; 000008000000 5E91 nop.m 0 00F241F6CD89 5E92 (pr9) shl out2 = out2, r31 ;; // r54 = r54, r31 } { .mmi 01007376CDC9 5EA0 (pr9) or out3 = out2, out3 ;; // r55 = r54, r55 008C80B6E000 5EA1 st4 [r11] = out3 // [r11] = r55 000008000000 5EA2 nop.i 0 } { .mfb 000008000000 5EB0 nop.m 0 000008000000 5EB1 nop.f 0 00A000001000 5EB2 br.call.sptk.many rp = PercentOf32 ;; // br0 = PercentOf32 // 068331 } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 164 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mii 010802C38440 5EC0 adds r17 = 28, r44 // 068332 010802C40C00 5EC1 adds r48 = 32, r44 012000004640 5EC2 mov ai = 2 // r25 = 2 } { .mmi 008C82E10000 5ED0 st4 [r46] = r8 ;; // 068331 0111611F8480 5ED1 and r18 = -4, r17 // 068332 0111630F80C0 5ED2 and r3 = -4, r48 } { .mii 010802D08BC0 5EE0 adds vecptr = 4, vecptr // r47 = 4, r45 010803300040 5EE1 mov gp = r51 ;; // r1 = r51 // 068331 01C049222200 5EE2 cmp.eq pr8, pr9 = r17, r18 // 068332 } { .mmi 01C038360180 5EF0 cmp.eq pr6, pr7 = r48, r3 ;; 008081200548 5EF1 (pr8) ld4 r21 = [r18] 009E080224C9 5EF2 (pr9) dep r19 = r17, r0, 3, 2 } { .mmi 0080803002C6 5F00 (pr6) ld4 r11 = [r3] ;; 000008000000 5F01 nop.m 0 009E08060247 5F02 (pr7) dep r9 = r48, r0, 3, 2 ;; } { .mmi 00A081208549 5F10 (pr9) ld4 r21 = [r18], 4 00A0803082C7 5F11 (pr7) ld4 r11 = [r3], 4 000008000000 5F12 nop.i 0 ;; } { .mii 008081200509 5F20 (pr9) ld4 r20 = [r18] 00F201526549 5F21 (pr9) shr.u r21 = r21, r19 00F200B122C7 5F22 (pr7) shr.u r11 = r11, r9 } { .mmi 0101293404C9 5F30 (pr9) sub r19 = 32, r19 ;; 010128940247 5F31 (pr7) sub r9 = 32, r9 000008000000 5F32 nop.i 0 } { .mmi 008080300287 5F40 (pr7) ld4 r10 = [r3] ;; 000008000000 5F41 nop.m 0 00F241328509 5F42 (pr9) shl r20 = r20, r19 ;; } { .mii 000008000000 5F50 nop.m 0 00F240914287 5F51 (pr7) shl r10 = r10, r9 ;; 010071528549 5F52 (pr9) or r21 = r20, r21 ;; } { .mii 010070B142C7 5F60 (pr7) or r11 = r10, r11 000091500549 5F61 (pr9) zxt4 r21 = r21 ;; 000090B002C7 5F62 (pr7) zxt4 r11 = r11 } { .mii 000008000000 5F70 nop.m 0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 165 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0000B1500D40 5F71 sxt4 out1 = r21 ;; // r53 = r21 0000B0B00D00 5F72 sxt4 out0 = r11 // r52 = r11 } { .mfb 000008000000 5F80 nop.m 0 000008000000 5F81 nop.f 0 00A000001000 5F82 br.call.sptk.many rp = PercentOf32 ;; // br0 = PercentOf32 } { .mii 010802C38440 5F90 adds r17 = 28, r44 // 068333 010802C48C00 5F91 adds r48 = 36, r44 012000004640 5F92 mov ai = 2 // r25 = 2 } { .mmi 008C82D10000 5FA0 st4 [r45] = r8 ;; // 068332 0111611F8480 5FA1 and r18 = -4, r17 // 068333 0111630F80C0 5FA2 and r3 = -4, r48 } { .mii 010802D10B80 5FB0 adds vecptr = 8, vecptr // r46 = 8, r45 010803300040 5FB1 mov gp = r51 ;; // r1 = r51 // 068332 01C049222200 5FB2 cmp.eq pr8, pr9 = r17, r18 // 068333 } { .mii 01C038360180 5FC0 cmp.eq pr6, pr7 = r48, r3 010802E10B80 5FC1 adds r46 = 8, r46 ;; 009E080224C9 5FC2 (pr9) dep r19 = r17, r0, 3, 2 } { .mmi 008081200548 5FD0 (pr8) ld4 r21 = [r18] 0080803002C6 5FD1 (pr6) ld4 r11 = [r3] 000008000000 5FD2 nop.i 0 ;; } { .mib 000008000000 5FE0 nop.m 0 009E08060247 5FE1 (pr7) dep r9 = r48, r0, 3, 2 004000000000 5FE2 nop.b 0 ;; } { .mmi 00A081208549 5FF0 (pr9) ld4 r21 = [r18], 4 00A0803082C7 5FF1 (pr7) ld4 r11 = [r3], 4 000008000000 5FF2 nop.i 0 ;; } { .mii 008081200509 6000 (pr9) ld4 r20 = [r18] 00F201526549 6001 (pr9) shr.u r21 = r21, r19 00F200B122C7 6002 (pr7) shr.u r11 = r11, r9 } { .mmi 0101293404C9 6010 (pr9) sub r19 = 32, r19 ;; 010128940247 6011 (pr7) sub r9 = 32, r9 000008000000 6012 nop.i 0 } { .mmi 008080300287 6020 (pr7) ld4 r10 = [r3] ;; 000008000000 6021 nop.m 0 00F241328509 6022 (pr9) shl r20 = r20, r19 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 166 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mii 000008000000 6030 nop.m 0 00F240914287 6031 (pr7) shl r10 = r10, r9 ;; 010071528549 6032 (pr9) or r21 = r20, r21 ;; } { .mii 010070B142C7 6040 (pr7) or r11 = r10, r11 000091500549 6041 (pr9) zxt4 r21 = r21 ;; 000090B002C7 6042 (pr7) zxt4 r11 = r11 } { .mii 000008000000 6050 nop.m 0 0000B1500D40 6051 sxt4 out1 = r21 ;; // r53 = r21 0000B0B00D00 6052 sxt4 out0 = r11 // r52 = r11 } { .mfb 000008000000 6060 nop.m 0 000008000000 6061 nop.f 0 00A000001000 6062 br.call.sptk.many rp = PercentOf32 ;; // br0 = PercentOf32 } { .mii 010802C38440 6070 adds r17 = 28, r44 // 068334 010802C58C00 6071 adds r48 = 44, r44 010802D08B40 6072 adds r45 = 4, r45 // 068333 } { .mmi 012000004640 6080 mov ai = 2 ;; // r25 = 2 // 068334 0111611F8480 6081 and r18 = -4, r17 0111630F80C0 6082 and r3 = -4, r48 } { .mii 00AC82D10100 6090 st4 [r45] = r8, 4 // 068333 010803300040 6091 mov gp = r51 ;; // r1 = r51 01C049222200 6092 cmp.eq pr8, pr9 = r17, r18 // 068334 } { .mmi 01C038360180 60A0 cmp.eq pr6, pr7 = r48, r3 ;; 008081200548 60A1 (pr8) ld4 r21 = [r18] 009E080224C9 60A2 (pr9) dep r19 = r17, r0, 3, 2 } { .mmi 0080803002C6 60B0 (pr6) ld4 r11 = [r3] ;; 000008000000 60B1 nop.m 0 009E08060247 60B2 (pr7) dep r9 = r48, r0, 3, 2 ;; } { .mmi 00A081208549 60C0 (pr9) ld4 r21 = [r18], 4 00A0803082C7 60C1 (pr7) ld4 r11 = [r3], 4 000008000000 60C2 nop.i 0 ;; } { .mii 008081200509 60D0 (pr9) ld4 r20 = [r18] 00F201526549 60D1 (pr9) shr.u r21 = r21, r19 00F200B122C7 60D2 (pr7) shr.u r11 = r11, r9 } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 167 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0101293404C9 60E0 (pr9) sub r19 = 32, r19 ;; 010128940247 60E1 (pr7) sub r9 = 32, r9 000008000000 60E2 nop.i 0 } { .mmi 008080300287 60F0 (pr7) ld4 r10 = [r3] ;; 000008000000 60F1 nop.m 0 00F241328509 60F2 (pr9) shl r20 = r20, r19 ;; } { .mii 000008000000 6100 nop.m 0 00F240914287 6101 (pr7) shl r10 = r10, r9 ;; 010071528549 6102 (pr9) or r21 = r20, r21 ;; } { .mii 010070B142C7 6110 (pr7) or r11 = r10, r11 000091500549 6111 (pr9) zxt4 r21 = r21 ;; 000090B002C7 6112 (pr7) zxt4 r11 = r11 } { .mii 000008000000 6120 nop.m 0 0000B1500D40 6121 sxt4 out1 = r21 ;; // r53 = r21 0000B0B00D00 6122 sxt4 out0 = r11 // r52 = r11 } { .mfb 000008000000 6130 nop.m 0 000008000000 6131 nop.f 0 00A000001000 6132 br.call.sptk.many rp = PercentOf32 ;; // br0 = PercentOf32 } { .mii 010802C382C0 6140 adds r11 = 28, r44 // 068335 010802C50BC0 6141 adds r47 = 40, r44 012000004640 6142 mov ai = 2 // r25 = 2 } { .mmi 00AC82D10100 6150 st4 [r45] = r8, 4 ;; // 068334 011160BF8440 6151 and r17 = -4, r11 // 068335 011162FF8C00 6152 and r48 = -4, r47 } { .mmi 010803300040 6160 mov gp = r51 ;; // r1 = r51 // 068334 01C049116200 6161 cmp.eq pr8, pr9 = r11, r17 // 068335 01C03B05E180 6162 cmp.eq pr6, pr7 = r47, r48 ;; } { .mmi 008081100508 6170 (pr8) ld4 r20 = [r17] 008083000286 6171 (pr6) ld4 r10 = [r48] 009E08016489 6172 (pr9) dep r18 = r11, r0, 3, 2 ;; } { .mib 000008000000 6180 nop.m 0 009E0805E0C7 6181 (pr7) dep r3 = r47, r0, 3, 2 004000000000 6182 nop.b 0 ;; } { .mmi 00A081108509 6190 (pr9) ld4 r20 = [r17], 4 00A083008287 6191 (pr7) ld4 r10 = [r48], 4 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 168 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 6192 nop.i 0 ;; } { .mii 0080811004C9 61A0 (pr9) ld4 r19 = [r17] 00F201424509 61A1 (pr9) shr.u r20 = r20, r18 00F200A06287 61A2 (pr7) shr.u r10 = r10, r3 } { .mmi 010129240489 61B0 (pr9) sub r18 = 32, r18 ;; 0101283400C7 61B1 (pr7) sub r3 = 32, r3 000008000000 61B2 nop.i 0 } { .mmi 008083000247 61C0 (pr7) ld4 r9 = [r48] ;; 000008000000 61C1 nop.m 0 00F2412264C9 61C2 (pr9) shl r19 = r19, r18 ;; } { .mii 000008000000 61D0 nop.m 0 00F240312247 61D1 (pr7) shl r9 = r9, r3 ;; 010071426509 61D2 (pr9) or r20 = r19, r20 ;; } { .mii 010070A12287 61E0 (pr7) or r10 = r9, r10 000091400509 61E1 (pr9) zxt4 r20 = r20 ;; 000090A00287 61E2 (pr7) zxt4 r10 = r10 } { .mii 000008000000 61F0 nop.m 0 0000B1400D40 61F1 sxt4 out1 = r20 ;; // r53 = r20 0000B0A00D00 61F2 sxt4 out0 = r10 // r52 = r10 } { .mfb 000008000000 6200 nop.m 0 000008000000 6201 nop.f 0 00A000001000 6202 br.call.sptk.many rp = PercentOf32 ;; // br0 = PercentOf32 } { .mii 010803300040 6210 mov gp = r51 // r1 = r51 01200000A640 6211 mov ai = 5 // r25 = 5 // 068337 010802E00D80 6212 mov out2 = r46 // r54 = r46 } { .mmi 010800C20D40 6220 adds out1 = 16, sp ;; // r53 = 16, r12 012000100E00 6221 add out4 = @ltoffx($LITERAL$), gp // r56 = @ltoffx($LITERAL$), r1 012008000D00 6222 mov out0 = 128 // r52 = 128 } { .mmi 008C82D10000 6230 st4 [r45] = r8 ;; // 068335 0080C3800DC0 6231 ld8.mov out3 = [r56], $LITERAL$ // 068337 012050058E00 6232 mov out4 = 1324 // r56 = 1324 } { .mfb 000008000000 6240 nop.m 0 000008000000 6241 nop.f 0 00A000001000 6242 br.call.sptk.many rp = FaoCheck ;; // br0 = FaoCheck } Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 169 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 { .mii 01200000C640 6250 mov ai = 6 // r25 = 6 // 068338 010800C20E40 6251 adds out5 = 16, sp // r57 = 16, r12 010802A00E00 6252 mov out4 = r42 // r56 = r42 } { .mmi 010800000DC0 6260 mov out3 = r0 ;; // r55 = r0 012000000D80 6261 mov out2 = 0 // r54 = 0 010800000D40 6262 mov out1 = r0 // r53 = r0 } { .mii 010802000D00 6270 mov out0 = rqptr // r52 = r32 010803300040 6271 mov gp = r51 // r1 = r51 // 068337 000008000000 6272 nop.i 0 ;; } { .mfb 000008000000 6280 nop.m 0 000008000000 6281 nop.f 0 00A000001000 6282 br.call.sptk.many rp = FaolSAK ;; // br0 = FaolSAK // 068338 } { .mib 010803300040 6290 mov gp = r51 // r1 = r51 00A0308001C0 6291 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0 // 068339 00860000A006 6292 (pr6) br.cond.dpnt.many L$57 ;; } { .mii 012000100E00 62A0 add out4 = @ltoffx($LITERAL$), gp // r56 = @ltoffx($LITERAL$), r1 // 068340 01200000A640 62A1 mov ai = 5 // r25 = 5 010800000D80 62A2 mov out2 = r0 // r54 = r0 } { .mmi 010802000D00 62B0 mov out0 = rqptr ;; // r52 = r32 0080C3800DC0 62B1 ld8.mov out3 = [r56], $LITERAL$ 01205005EE00 62B2 mov out4 = 1327 // r56 = 1327 } { .mib 000008000000 62C0 nop.m 0 0000B0800D40 62C1 sxt4 out1 = status // r53 = r8 00A000001000 62C2 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed } { .mfi 010803300040 62D0 mov gp = r51 // r1 = r51 000008000000 62D1 nop.f 0 000008000000 62D2 nop.i 0 } 62E0 L$57: { .mmi 010802C60BC0 62E0 adds r47 = 48, r44 ;; // 068343 011162FF8C00 62E1 and r48 = -4, r47 000008000000 62E2 nop.i 0 ;; } { .mmi 01C03B05E180 62F0 cmp.eq pr6, pr7 = r47, r48 ;; 0080830000C6 62F1 (pr6) ld4 r3 = [r48] 009E0805EB47 62F2 (pr7) dep r45 = r47, r0, 3, 2 ;; } { .mmi Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 170 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 00A0830080C7 6300 (pr7) ld4 r3 = [r48], 4 ;; 008083000B87 6301 (pr7) ld4 r46 = [r48] 00F20035A0C7 6302 (pr7) shr.u r3 = r3, r45 } { .mmi 01012AD40B47 6310 (pr7) sub r45 = 32, r45 ;; 000008000000 6311 nop.m 0 00F242D5CB87 6312 (pr7) shl r46 = r46, r45 ;; } { .mmi 01007035C0C7 6320 (pr7) or r3 = r46, r3 ;; 01C400006240 6321 cmp4.eq pr9, pr0 = r3, r0 000008000000 6322 nop.i 0 } { .mfb 000008000000 6330 nop.m 0 000008000000 6331 nop.f 0 008600060009 6332 (pr9) br.cond.dpnt.many L$60 ;; } { .mii 01200000C640 6340 mov ai = 6 // r25 = 6 // 068345 010800000E40 6341 mov out5 = r0 // r57 = r0 010800000DC0 6342 mov out3 = r0 // r55 = r0 } { .mmi 012000000D80 6350 mov out2 = 0 ;; // r54 = 0 010800000D40 6351 mov out1 = r0 // r53 = r0 010802000D00 6352 mov out0 = rqptr // r52 = r32 } { .mfb 0119FA1C0E00 6360 adds out4 = -32, r33 // r56 = -32, r33 000008000000 6361 nop.f 0 00A000001000 6362 br.call.sptk.many rp = FaolSAK ;; // br0 = FaolSAK } { .mii 010802C60B40 6370 adds r45 = 48, r44 // 068346 010803300040 6371 mov gp = r51 ;; // r1 = r51 // 068345 011162DF8B80 6372 and r46 = -4, r45 ;; // 068346 } { .mmi 01C03AE5A180 6380 cmp.eq pr6, pr7 = r45, r46 ;; 008082E000C6 6381 (pr6) ld4 r3 = [r46] 009E0805ABC7 6382 (pr7) dep r47 = r45, r0, 3, 2 ;; } { .mmi 00A082E080C7 6390 (pr7) ld4 r3 = [r46], 4 ;; 008082E00C07 6391 (pr7) ld4 r48 = [r46] 00F20035E0C7 6392 (pr7) shr.u r3 = r3, r47 } { .mmi 01012AF40BC7 63A0 (pr7) sub r47 = 32, r47 ;; 000008000000 63A1 nop.m 0 00F242F60C07 63A2 (pr7) shl r48 = r48, r47 ;; } { .mmi 0100703600C7 63B0 (pr7) or r3 = r48, r3 ;; 000008000000 63B1 nop.m 0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 171 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 0000B03000C0 63B2 sxt4 r3 = r3 ;; } { .mib 01C400006240 63C0 cmp4.eq pr9, pr0 = r3, r0 // 068347 010800300B00 63C1 mov tpuptr = r3 // r44 = r3 // 068346 008600046009 63C2 (pr9) br.cond.dpnt.many L$62 ;; // 068347 } 63D0 L$63: { .mii 010802C08280 63D0 adds r10 = 4, r44 // 068351 010800C20240 63D1 adds r9 = 16, sp // r9 = 16, r12 // 068350 010802C18200 63D2 adds r8 = 12, tpuptr // r8 = 12, r44 } { .mmi 011162CF8580 63E0 and r22 = -4, r44 ;; // 068352 011160AF82C0 63E1 and r11 = -4, r10 // 068351 010800C28500 63E2 adds r20 = 20, sp // r20 = 20, r12 } { .mii 008C80910000 63F0 st4 [r9] = r8 // 068350 01C069658300 63F1 cmp.eq pr12, pr13 = r44, r22 ;; // 068352 01C058B14280 63F2 cmp.eq pr10, pr11 = r10, r11 // 068351 } { .mii 010800C30680 6400 adds r26 = 24, sp // r26 = 24, r12 // 068352 012000100E00 6401 add out4 = @ltoffx($LITERAL$), gp // r56 = @ltoffx($LITERAL$), r1 // 068354 010800C38D00 6402 adds out0 = 28, sp ;; // r52 = 28, r12 // 068353 } { .mii 008080B004CA 6410 (pr10) ld4 r19 = [r11] // 068351 009E0801444B 6411 (pr11) dep r17 = r10, r0, 3, 2 010802800D80 6412 mov out2 = r40 // r54 = r40 // 068354 } { .mmi 0080C3800DC0 6420 ld8.mov out3 = [r56], $LITERAL$ ;; 01205007AE00 6421 mov out4 = 1341 // r56 = 1341 009E080585CD 6422 (pr13) dep r23 = r44, r0, 3, 2 // 068352 } { .mii 010802C106C0 6430 adds r27 = 8, r44 // 068353 010800C20D40 6431 adds out1 = 16, sp ;; // r53 = 16, r12 // 068354 011161BF8700 6432 and r28 = -4, r27 // 068353 } { .mmi 00A080B084CB 6440 (pr11) ld4 r19 = [r11], 4 ;; // 068351 01C079C36380 6441 cmp.eq pr14, pr15 = r27, r28 // 068353 000008000000 6442 nop.i 0 ;; } { .mii 008080B0048B 6450 (pr11) ld4 r18 = [r11] // 068351 00F2013224CB 6451 (pr11) shr.u r19 = r19, r17 01012914044B 6452 (pr11) sub r17 = 32, r17 ;; } { .mii 000008000000 6460 nop.m 0 009E0803674F 6461 (pr15) dep r29 = r27, r0, 3, 2 ;; // 068353 00F24112448B 6462 (pr11) shl r18 = r18, r17 ;; // 068351 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 172 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mmi 0100713244CB 6470 (pr11) or r19 = r18, r19 ;; 008C81426000 6471 st4 [r20] = r19 000008000000 6472 nop.i 0 ;; } { .mmi 00808160064C 6480 (pr12) ld4 ai = [r22] ;; // r25 = [r22] // 068352 00A08160864D 6481 (pr13) ld4 ai = [r22], 4 // r25 = [r22], 4 000008000000 6482 nop.i 0 ;; } { .mii 00808160060D 6490 (pr13) ld4 r24 = [r22] 00F20192E64D 6491 (pr13) shr.u ai = ai, r23 // r25 = r25, r23 0101297405CD 6492 (pr13) sub r23 = 32, r23 ;; } { .mii 000008000000 64A0 nop.m 0 00F24173060D 64A1 (pr13) shl r24 = r24, r23 ;; 01007193064D 64A2 (pr13) or ai = r24, ai ;; // r25 = r24, r25 } { .mii 008C81A32000 64B0 st4 [r26] = ai // [r26] = r25 01200000A640 64B1 mov ai = 5 // r25 = 5 // 068354 000008000000 64B2 nop.i 0 ;; } { .mmi 008081C007CE 64C0 (pr14) ld4 r31 = [r28] ;; // 068353 00A081C087CF 64C1 (pr15) ld4 r31 = [r28], 4 000008000000 64C2 nop.i 0 ;; } { .mii 008081C0078F 64D0 (pr15) ld4 r30 = [r28] 00F201F3A7CF 64D1 (pr15) shr.u r31 = r31, r29 010129D4074F 64D2 (pr15) sub r29 = 32, r29 ;; } { .mii 000008000000 64E0 nop.m 0 00F241D3C78F 64E1 (pr15) shl r30 = r30, r29 ;; 010071F3C7CF 64E2 (pr15) or r31 = r30, r31 ;; } { .mib 008C8343E000 64F0 st4 [out0] = r31 // [r52] = r31 012008000D00 64F1 mov out0 = 128 // r52 = 128 // 068354 00A000001000 64F2 br.call.sptk.many rp = FaoCheck ;; // br0 = FaoCheck } { .mii 0119FAA70B40 6500 adds r45 = -72, r42 // 068355 01200000C640 6501 mov ai = 6 // r25 = 6 010800C20E40 6502 adds out5 = 16, sp // r57 = 16, r12 } { .mmi 010800000DC0 6510 mov out3 = r0 ;; // r55 = r0 010802D00E00 6511 mov out4 = r45 // r56 = r45 012000000D80 6512 mov out2 = 0 // r54 = 0 } { .mii Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 173 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 010800000D40 6520 mov out1 = r0 // r53 = r0 010802000D00 6521 mov out0 = rqptr ;; // r52 = r32 010803300040 6522 mov gp = r51 ;; // r1 = r51 // 068354 } { .mfb 000008000000 6530 nop.m 0 000008000000 6531 nop.f 0 00A000001000 6532 br.call.sptk.many rp = FaolSAK ;; // br0 = FaolSAK // 068355 } { .mib 010803300040 6540 mov gp = r51 // r1 = r51 00A0308001C0 6541 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0 // 068356 00860000A006 6542 (pr6) br.cond.dpnt.many L$64 ;; } { .mii 012000100E00 6550 add out4 = @ltoffx($LITERAL$), gp // r56 = @ltoffx($LITERAL$), r1 // 068357 01200000A640 6551 mov ai = 5 // r25 = 5 010800000D80 6552 mov out2 = r0 // r54 = r0 } { .mmi 010802000D00 6560 mov out0 = rqptr ;; // r52 = r32 0080C3800DC0 6561 ld8.mov out3 = [r56], $LITERAL$ 012050080E00 6562 mov out4 = 1344 // r56 = 1344 } { .mib 000008000000 6570 nop.m 0 0000B0800D40 6571 sxt4 out1 = status // r53 = r8 00A000001000 6572 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed } { .mfi 010803300040 6580 mov gp = r51 // r1 = r51 000008000000 6581 nop.f 0 000008000000 6582 nop.i 0 } 6590 L$64: { .mmi 010802C9AB80 6590 adds r46 = 77, r44 ;; // 068359 011162EF8BC0 6591 and r47 = -4, r46 000008000000 6592 nop.i 0 ;; } { .mmi 01C03AF5C180 65A0 cmp.eq pr6, pr7 = r46, r47 ;; 008082F000C6 65A1 (pr6) ld4 r3 = [r47] 009E0805CC07 65A2 (pr7) dep r48 = r46, r0, 3, 2 ;; } { .mmi 00A082F080C7 65B0 (pr7) ld4 r3 = [r47], 4 ;; 008082F00B47 65B1 (pr7) ld4 r45 = [r47] 00F2003600C7 65B2 (pr7) shr.u r3 = r3, r48 } { .mmi 01012B040C07 65C0 (pr7) sub r48 = 32, r48 ;; 000008000000 65C1 nop.m 0 00F24305AB47 65C2 (pr7) shl r45 = r45, r48 ;; } { .mmi 01007035A0C7 65D0 (pr7) or r3 = r45, r3 ;; Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 174 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 65D1 nop.m 0 0000B03000C0 65D2 sxt4 r3 = r3 ;; } { .mib 01C440006000 65E0 cmp4.eq pr0, pr8 = r3, r0 // 068347 010800300B00 65E1 mov tpuptr = r3 // r44 = r3 // 068359 0095FFFBE008 65E2 (pr8) br.cond.dptk.many L$63 ;; // 068347 } 65F0 L$62: // 068360 { .mii 01200000C640 65F0 mov ai = 6 // r25 = 6 // 068361 010800000E40 65F1 mov out5 = r0 // r57 = r0 010802700E00 65F2 mov out4 = r39 // r56 = r39 } { .mmi 010800000DC0 6600 mov out3 = r0 ;; // r55 = r0 012000000D80 6601 mov out2 = 0 // r54 = 0 010800000D40 6602 mov out1 = r0 // r53 = r0 } { .mfb 010802000D00 6610 mov out0 = rqptr // r52 = r32 000008000000 6611 nop.f 0 00A000001000 6612 br.call.sptk.many rp = FaolSAK ;; // br0 = FaolSAK } { .mfi 010803300040 6620 mov gp = r51 // r1 = r51 000008000000 6621 nop.f 0 000008000000 6622 nop.i 0 } 6630 L$60: // 068362 { .mii 008082200B40 6630 ld4 r45 = [r34] // 068290 010802602980 6631 adds r38 = 1, r38 // 068362 0108023808C0 6632 adds r35 = 64, r35 ;; } { .mii 010802902A40 6640 adds r41 = 1, r41 0000B2D00B40 6641 sxt4 r45 = r45 ;; // 068290 010802D10B40 6642 adds r45 = 8, r45 ;; } { .mmi 008082D00B40 6650 ld4 r45 = [r45] ;; 018402D4C180 6651 cmp4.lt pr6, pr0 = idx, r45 // pr6, pr0 = r38, r45 000008000000 6652 nop.i 0 } { .mfb 000008000000 6660 nop.m 0 000008000000 6661 nop.f 0 0095FFE44006 6662 (pr6) br.cond.dptk.many L$49 ;; } 6670 L$47: // 068362 { .mfb 01C442600000 6670 cmp4.eq pr0, pr8 = r0, idx // pr0, pr8 = r0, r38 // 068364 000008000000 6671 nop.f 0 00860000A008 6672 (pr8) br.cond.dpnt.many L$66 ;; } { .mii Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 175 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 012000100B80 6680 add r46 = @ltoff($LITERAL$+208), // r46 = @ltoff($LITERAL$+208), r1 // 068366 gp 012000006640 6681 mov ai = 3 // r25 = 3 // 068365 010800000D80 6682 mov out2 = r0 // r54 = r0 } { .mmi 010802000D00 6690 mov out0 = rqptr ;; // r52 = r32 0080C2E00D40 6691 ld8 out1 = $LITERAL$ // r53 = [r46] // 068366 000008000000 6692 nop.i 0 } { .mfb 000008000000 66A0 nop.m 0 000008000000 66A1 nop.f 0 00A000001000 66A2 br.call.sptk.many rp = FaoToNet ;; // br0 = FaoToNet // 068365 } { .mfi 010803300040 66B0 mov gp = r51 // r1 = r51 000008000000 66B1 nop.f 0 000008000000 66B2 nop.i 0 } 66C0 L$66: // 068367 { .mii 010800C20C00 66C0 adds r48 = 16, sp // r48 = 16, r12 // 068370 010800C28B40 66C1 adds r45 = 20, sp // r45 = 20, r12 // 068371 010800C30880 66C2 adds r34 = 24, sp ;; // r34 = 24, r12 // 068372 } { .mii 012000100BC0 66D0 add r47 = @ltoff($LITERAL$+168), // r47 = @ltoff($LITERAL$+168), r1 // 068370 gp 012000100B00 66D1 add r44 = @ltoff($LITERAL$+120), // r44 = @ltoff($LITERAL$+120), r1 // 068371 gp 012000100840 66D2 add r33 = @ltoff($LITERAL$+72), gp // r33 = @ltoff($LITERAL$+72), r1 // 068372 } { .mmi 0120001008C0 66E0 add r35 = @ltoff($LITERAL$+32), gp ;; // r35 = @ltoff($LITERAL$+32), r1 // 068373 0080C2F00BC0 66E1 ld8 r47 = $LITERAL$ // r47 = [r47] // 068370 010800C38A00 66E2 adds r40 = 28, sp // r40 = 28, r12 // 068373 } { .mii 0080C2C00B00 66F0 ld8 r44 = $LITERAL$ // r44 = [r44] // 068371 012000002640 66F1 mov ai = 1 ;; // r25 = 1 // 068374 010802000D00 66F2 mov out0 = rqptr // r52 = r32 } { .mmi 0080C2100840 6700 ld8 r33 = $LITERAL$ // r33 = [r33] // 068372 0080C23008C0 6701 ld8 r35 = $LITERAL$ // r35 = [r35] // 068373 000008000000 6702 nop.i 0 ;; } { .mmi 008C8305E000 6710 st4 [r48] = r47 // 068370 008C82D58000 6711 st4 [r45] = r44 // 068371 000008000000 6712 nop.i 0 ;; } { .mmb 008C82242000 6720 st4 [r34] = r33 // 068372 008C82846000 6721 st4 [r40] = r35 // 068373 00A000001000 6722 br.call.sptk.many rp = AdminRefresh ;; // br0 = AdminRefresh // 068374 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 176 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 } { .mii 010803300040 6730 mov gp = r51 // r1 = r51 010800C40A40 6731 adds r41 = 32, sp // r41 = 32, r12 01200000A640 6732 mov ai = 5 // r25 = 5 // 068376 } { .mmi 010802400D80 6740 mov out2 = r36 ;; // r54 = r36 012000100E00 6741 add out4 = @ltoffx($LITERAL$), gp // r56 = @ltoffx($LITERAL$), r1 010800C20D40 6742 adds out1 = 16, sp // r53 = 16, r12 } { .mmi 012008000D00 6750 mov out0 = 128 ;; // r52 = 128 0080C3800DC0 6751 ld8.mov out3 = [r56], $LITERAL$ 0120500A6E00 6752 mov out4 = 1363 ;; // r56 = 1363 } { .mfb 008C82910000 6760 st4 [r41] = r8 // 068374 000008000000 6761 nop.f 0 00A000001000 6762 br.call.sptk.many rp = FaoCheck ;; // br0 = FaoCheck // 068376 } { .mii 01200000C640 6770 mov ai = 6 // r25 = 6 // 068377 010800C20E40 6771 adds out5 = 16, sp // r57 = 16, r12 010800000DC0 6772 mov out3 = r0 // r55 = r0 } { .mmi 012000000D80 6780 mov out2 = 0 ;; // r54 = 0 010800000D40 6781 mov out1 = r0 // r53 = r0 010802000D00 6782 mov out0 = rqptr // r52 = r32 } { .mii 010802720E00 6790 adds out4 = 16, r39 // r56 = 16, r39 010803300040 6791 mov gp = r51 // r1 = r51 // 068376 000008000000 6792 nop.i 0 ;; } { .mfb 000008000000 67A0 nop.m 0 000008000000 67A1 nop.f 0 00A000001000 67A2 br.call.sptk.many rp = FaolSAK ;; // br0 = FaolSAK // 068377 } { .mib 010803300040 67B0 mov gp = r51 // r1 = r51 00A0308001C0 67B1 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0 // 068378 00860000A006 67B2 (pr6) br.cond.dpnt.many L$68 ;; } { .mii 012000100E00 67C0 add out4 = @ltoffx($LITERAL$), gp // r56 = @ltoffx($LITERAL$), r1 01200000A640 67C1 mov ai = 5 // r25 = 5 010800000D80 67C2 mov out2 = r0 // r54 = r0 } { .mmi 010802000D00 67D0 mov out0 = rqptr ;; // r52 = r32 0080C3800DC0 67D1 ld8.mov out3 = [r56], $LITERAL$ 0120500AAE00 67D2 mov out4 = 1365 // r56 = 1365 } { .mib Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 177 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 000008000000 67E0 nop.m 0 0000B0800D40 67E1 sxt4 out1 = status // r53 = r8 00A000001000 67E2 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed } { .mfi 010803300040 67F0 mov gp = r51 // r1 = r51 000008000000 67F1 nop.f 0 000008000000 67F2 nop.i 0 } 6800 L$68: { .mii 0109220D0AC0 6800 adds r43 = 4712, in0 // r43 = 4712, r32 // 068380 01089A0B0D80 6801 adds out2 = 2520, rqptr // r54 = 2520, r32 // 068381 012000006640 6802 mov ai = 3 ;; // r25 = 3 } { .mii 012000100980 6810 add r38 = @ltoff($LITERAL$+16), gp // r38 = @ltoff($LITERAL$+16), r1 010802000D00 6811 mov out0 = rqptr // r52 = r32 000008000000 6812 nop.i 0 } { .mmi 008C82B4A000 6820 st4 [r43] = r37 ;; // 068380 0080C2600D40 6821 ld8 out1 = $LITERAL$ // r53 = [r38] // 068381 000008000000 6822 nop.i 0 } { .mfb 000008000000 6830 nop.m 0 000008000000 6831 nop.f 0 00A000001000 6832 br.call.sptk.many rp = // br0 = ResponseHeader200 ResponseHeader200 ;; } { .mii 012000002640 6840 mov ai = 1 // r25 = 1 // 068383 010802000D00 6841 mov out0 = rqptr // r52 = r32 010803300040 6842 mov gp = r51 ;; // r1 = r51 // 068381 } { .mfb 000008000000 6850 nop.m 0 000008000000 6851 nop.f 0 00A000001000 6852 br.call.sptk.many rp = AdminEnd ;; // br0 = AdminEnd // 068383 } { .mii 010803300040 6860 mov gp = r51 // r1 = r51 000154064000 6861 mov.i rspfs = r50 ;; // 068384 000E00162000 6862 mov rp = r49 // br0 = r49 } { .mfb 010858C00300 6870 adds sp = 1408, sp // r12 = 1408, r12 000008000000 6871 nop.f 0 000108001100 6872 br.ret.sptk.many rp ;; // br0 } .endp ThrottleReport Routine Size: 4352 bytes, Routine Base: $CODE$ + 5780 .common ThrottleBusyMetricTotal, 4, 1 .common ThrottleBusyMetricTotal503, 4, 1 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 178 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 .common ThrottleTotal, 4, 1 .common ThrottleArray, 4, 1 .psect $READONLY$, CON, LCL, SHR, NOEXE, NOWRT, NOVEC, NOSHORT .lcomm _SIG_EMPTY_SET, 8, 8 .lcomm _SIG_FULL_SET, 8, 8 .lcomm ThrottleBeginPerUserFao, 31, 16 .lcomm fill$$1, 1, 1 .lcomm BeginPage, 705, 16 .lcomm fill$$2, 7, 8 .lcomm ThrottleEndPerUserFao, 12, 16 .lcomm fill$$3, 4, 4 .lcomm ButtonsFao, 1129, 16 .lcomm fill$$4, 7, 8 .lcomm ThrottlePerUserFao, 69, 16 .lcomm fill$$5, 3, 4 .lcomm ThrottlePathFao, 452, 16 .lcomm fill$$6, 4, 4 .psect $LITERAL$, CON, LCL, SHR, NOEXE, NOWRT, NOVEC, NOSHORT 4F524854 0000 string "THROTTLE\X00" 454C5454 0004 00 0008 74786574 0010 string "text/html\X00" 6D74682F 0014 006C 0018 7474682F 0020 string "/httpd/-/admin/report/request/throttle\X00" 2D2F6470 0024 6D64612F 0028 722F6E69 002C 726F7065 0030 65722F74 0034 73657571 0038 68742F74 003C 74746F72 0040 00656C 0044 7474682F 0048 string "/httpd/-/admin/control/throttle/terminate\X00" 2D2F6470 004C 6D64612F 0050 632F6E69 0054 72746E6F 0058 742F6C6F 005C 746F7268 0060 2F656C74 0064 6D726574 0068 74616E69 006C 0065 0070 7474682F 0078 string "/httpd/-/admin/control/throttle/release\X00" 2D2F6470 007C 6D64612F 0080 632F6E69 0084 72746E6F 0088 742F6C6F 008C 746F7268 0090 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 179 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 2F656C74 0094 656C6572 0098 00657361 009C 7474682F 00A8 string "/httpd/-/admin/control/throttle/zero\X00" 2D2F6470 00AC 6D64612F 00B0 632F6E69 00B4 72746E6F 00B8 742F6C6F 00BC 746F7268 00C0 2F656C74 00C4 6F72657A 00C8 00 00CC 3E72743C 00D0 string "(none)\X0A\X00" 2064743C 00D4 73616C63 00D8 74223D73 00DC 746E6361 00E0 6F632022 00E4 6170736C 00E8 31223D6E 00EC 3C3E2232 00F0 6E283E69 00F4 29656E6F 00F8 3E692F3C 00FC 64742F3C 0100 742F3C3E 0104 000A3E72 0108 00 0110 string "\X00" 4C55212F 0118 string "/!UL\X00" 00 011C 003F 0120 string "?\X00" 6F726854 0128 string "Throttle Report\X00" 656C7474 012C 70655220 0130 0074726F 0134 4F524854 0140 string "THROTTLE set:!UL,!UL,!UL,!UL current:!UL,!UL !AZ\X00" 454C5454 0144 74657320 0148 4C55213A 014C 4C55212C 0150 4C55212C 0154 4C55212C 0158 72756320 015C 746E6572 0160 4C55213A 0164 4C55212C 0168 5A412120 016C 00 0170 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 180 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 4F524854 0178 string "THROTTLE user:!AZ per:!UL current:!UL,!UL !AZ\X00" 454C5454 017C 65737520 0180 41213A72 0184 6570205A 0188 55213A72 018C 7563204C 0190 6E657272 0194 55213A74 0198 55212C4C 019C 4121204C 01A0 005A 01A4 434F5250 01A8 string "PROCESS\X00" 00535345 01AC 59535542 01B8 string "BUSY\X00" 00 01BC 4F524854 01C0 string "THROTTLE control !AZed !UL\X00" 454C5454 01C4 6E6F6320 01C8 6C6F7274 01CC 5A412120 01D0 21206465 01D4 004C55 01D8 6D726574 01E0 string "terminat\X00" 74616E69 01E4 00 01E8 656C6572 01F0 string "releas\X00" 007361 01F4 4F524854 01F8 string "THROTTLE timeout !AZ\X00" 454C5454 01FC 6D697420 0200 74756F65 0204 5A412120 0208 00 020C 55455551 0210 string "QUEUE\X00" 0045 0214 4F524854 0218 string "THROTTLE set:!UL,!UL,!UL,!UL current:!UL,!UL END\X00" 454C5454 021C 74657320 0220 4C55213A 0224 4C55212C 0228 4C55212C 022C 4C55212C 0230 72756320 0234 746E6572 0238 4C55213A 023C 4C55212C 0240 444E4520 0244 00 0248 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 181 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 4F524854 0250 string "THROTTLE user:!AZ per:!UL current:!UL,!UL END\X00" 454C5454 0254 65737520 0258 41213A72 025C 6570205A 0260 55213A72 0264 7563204C 0268 6E657272 026C 55213A74 0270 55212C4C 0274 4E45204C 0278 0044 027C 55513E2D 0280 string "->QUEUE->\X00" 2D455545 0284 003E 0288 55513E2D 0290 string "->QUEUE\X00" 00455545 0294 4F524854 02A0 string "THROTTLE per-user NO USER (authorization)\X00" 454C5454 02A4 72657020 02A8 6573752D 02AC 4F4E2072 02B0 45535520 02B4 61282052 02B8 6F687475 02BC 617A6972 02C0 6E6F6974 02C4 0029 02C8 .psect $READONLY$, CON, LCL, SHR, NOEXE, NOWRT, NOVEC, NOSHORT _SIG_EMPTY_SET: 00 0000 .repeat 8 data1 0x00 .endr _SIG_FULL_SET: FF 0008 data1 0xFF FF 0009 data1 0xFF FF 000A data1 0xFF FF 000B data1 0xFF FF 000C data1 0xFF FF 000D data1 0xFF FF 000E data1 0xFF FF 000F data1 0xFF .psect $DATA$, CON, LCL, NOSHR, NOEXE, WRT, NOVEC, NOSHORT ThrottleBeginPerUserFao: 3E72743C 0000 string "" 3E68743C 0004 68742F3C 0008 64743C3E 000C 6C6F6320 0010 6E617073 0014 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 182 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 3331223D 0018 3E22 001C 00 001E data1 0x00 BeginPage: 3C3E703C 0020 string "

\X0AT/Oq\X0A" 6170736C 0044 36223D6E 0048 2F3C3E22 004C 3C3E6874 0050 63206874 0054 70736C6F 0058 223D6E61 005C 73202236 0060 656C7974 0064 6576223D 0068 63697472 006C 612D6C61 0070 6E67696C 0074 746F623A 0078 3B6D6F74 007C 75513E22 0080 64657565 0084 68742F3C 0088 68743C3E 008C 626E263E 0090 3C3B7073 0094 3C3E6874 0098 63206874 009C 70736C6F 00A0 223D6E61 00A4 73202232 00A8 656C7974 00AC 6576223D 00B0 63697472 00B4 612D6C61 00B8 6E67696C 00BC 746F623A 00C0 3B6D6F74 00C4 72503E22 00C8 7365636F 00CC 676E6973 00D0 68742F3C 00D4 68743C3E 00D8 626E263E 00DC 3C3B7073 00E0 3C3E6874 00E4 63206874 00E8 70736C6F 00EC Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 183 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 223D6E61 00F0 73202232 00F4 656C7974 00F8 6576223D 00FC 63697472 0100 612D6C61 0104 6E67696C 0108 746F623A 010C 3B6D6F74 0110 65503E22 0114 73552D72 0118 2F3C7265 011C 3C3E6874 0120 3E72742F 0124 3E72743C 0128 3E68743C 012C 68742F3C 0130 68743C3E 0134 616C6320 0138 223D7373 013C 74746273 0140 503E226C 0144 26687461 0148 7073626E 014C 6E262F3B 0150 3B707362 0154 72657355 0158 68742F3C 015C 68743C3E 0160 616C6320 0164 223D7373 0168 74746273 016C 543E226C 0170 6C61746F 0174 68742F3C 0178 68743C3E 017C 616C6320 0180 223D7373 0184 74746273 0188 423E226C 018C 3C797375 0190 3E68742F 0194 3E68743C 0198 73626E26 019C 743C3B70 01A0 743C3E68 01A4 6C632068 01A8 3D737361 01AC 74627322 01B0 3E226C74 01B4 61746F54 01B8 742F3C6C 01BC 743C3E68 01C0 6C632068 01C4 3D737361 01C8 74627322 01CC 3E226C74 01D0 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 184 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 3C727543 01D4 3E68742F 01D8 2068743C 01DC 73616C63 01E0 73223D73 01E4 6C747462 01E8 614D3E22 01EC 742F3C78 01F0 743C3E68 01F4 6C632068 01F8 3D737361 01FC 74627322 0200 3E226C74 0204 4F464946 0208 68742F3C 020C 68743C3E 0210 616C6320 0214 223D7373 0218 74746273 021C 543E226C 0220 3C714F2F 0224 3E68742F 0228 2068743C 022C 73616C63 0230 73223D73 0234 6C747462 0238 2F543E22 023C 2F3C624F 0240 3C3E6874 0244 263E6874 0248 7073626E 024C 68743C3B 0250 68743C3E 0254 616C6320 0258 223D7373 025C 74746273 0260 433E226C 0264 2F3C7275 0268 3C3E6874 026C 63206874 0270 7373616C 0274 6273223D 0278 226C7474 027C 78614D3E 0280 68742F3C 0284 68743C3E 0288 626E263E 028C 3C3B7073 0290 3C3E6874 0294 63206874 0298 7373616C 029C 6273223D 02A0 226C7474 02A4 7275433E 02A8 68742F3C 02AC 68743C3E 02B0 616C6320 02B4 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 185 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 223D7373 02B8 74746273 02BC 4D3E226C 02C0 2F3C7861 02C4 3C3E6874 02C8 263E6874 02CC 7073626E 02D0 742F3C3B 02D4 2F3C3E68 02D8 0A3E7274 02DC 00 02E0 data1 0x00 ThrottleEndPerUserFao: 64742F3C 02E8 string "\X0A" 742F3C3E 02EC 0A3E72 02F0 00 02F3 data1 0x00 ButtonsFao: 61742F3C 02F8 string "
Queued Processing Pe" 3D737361 002C string "r-User
Path / UserTotalBusy TotalCurMaxFIFOT/Ob C" 743C3E72 003C string "urMax CurMax 
\X0A

\X0A*throttle=n1[/u1],n2,n3,n4,to1,to2\X0A
\X0An1, concurrent requests before queuing\X0A
u1, per-user concurrent " 74732076 0304 string "requests before queuing\X0A
n2, concurrent requests before FIFO processing\X0An3, concurrent requests before FIFO processing ceases again\X0A
n4, concurrent r" 64617022 030C string "equests before immediate "busy"\X0A
to1, maximum period queued before p" 676E6964 0310 string "rocessing (if not limited by n3)\X0A
to2, maximum period queued before "busy" 66656C2D 0314 string "" (from expiry of any to1)\X0A
\X0A**all percentages are of " 2E303A74 0318 string "path total\X0A
***user data is queued, processing, total" 3B6D6537 031C string "\X0A
\X0A\X0A\X0A\X0A
\X0A
\X0A\X0A
\X0A
\X0A
\X0A\X0A
\X0A
" 30393A65 0328 string "\X0A
\X0A" 6F663B25 032C string "\X0A
\X0A
\X0A
Re" 732D746E 0330 string "quests\X0A
\X0A!AZ\X0A\X0A\X0A" 656C7974 0334 6174693A 0338 3B63696C 033C 3C0A3E22 0340 3E707573 0344 732F3C2A 0348 743E7075 034C 746F7268 0350 3D656C74 0354 2F5B316E 0358 2C5D3175 035C 6E2C326E 0360 346E2C33 0364 316F742C 0368 326F742C 036C 69643C0A 0370 74732076 0374 3D656C79 0378 64617022 037C 676E6964 0380 66656C2D 0384 2E303A74 0388 3B6D6537 038C Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 186 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 746E6F66 0390 7A69732D 0394 30393A65 0398 3E223B25 039C 2C316E0A 03A0 6E6F6320 03A4 72727563 03A8 20746E65 03AC 75716572 03B0 73747365 03B4 66656220 03B8 2065726F 03BC 75657571 03C0 0A676E69 03C4 3E72623C 03C8 202C3175 03CC 2D726570 03D0 72657375 03D4 6E6F6320 03D8 72727563 03DC 20746E65 03E0 75716572 03E4 73747365 03E8 66656220 03EC 2065726F 03F0 75657571 03F4 0A676E69 03F8 3E72623C 03FC 202C326E 0400 636E6F63 0404 65727275 0408 7220746E 040C 65757165 0410 20737473 0414 6F666562 0418 46206572 041C 204F4649 0420 636F7270 0424 69737365 0428 3C0A676E 042C 6E3E7262 0430 63202C33 0434 75636E6F 0438 6E657272 043C 65722074 0440 73657571 0444 62207374 0448 726F6665 044C 49462065 0450 70204F46 0454 65636F72 0458 6E697373 045C 65632067 0460 73657361 0464 61676120 0468 3C0A6E69 046C 6E3E7262 0470 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 187 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 63202C34 0474 75636E6F 0478 6E657272 047C 65722074 0480 73657571 0484 62207374 0488 726F6665 048C 6D692065 0490 6964656D 0494 20657461 0498 6F757126 049C 75623B74 04A0 71267973 04A4 3B746F75 04A8 72623C0A 04AC 316F743E 04B0 616D202C 04B4 756D6978 04B8 6570206D 04BC 646F6972 04C0 65757120 04C4 20646575 04C8 6F666562 04CC 70206572 04D0 65636F72 04D4 6E697373 04D8 69282067 04DC 6F6E2066 04E0 696C2074 04E4 6574696D 04E8 79622064 04EC 29336E20 04F0 72623C0A 04F4 326F743E 04F8 616D202C 04FC 756D6978 0500 6570206D 0504 646F6972 0508 65757120 050C 20646575 0510 6F666562 0514 26206572 0518 746F7571 051C 7375623B 0520 75712679 0524 203B746F 0528 6F726628 052C 7865206D 0530 79726970 0534 20666F20 0538 20796E61 053C 29316F74 0540 642F3C0A 0544 0A3E7669 0548 3C3E693C 054C 3E707573 0550 2F3C2A2A 0554 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 188 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 3E707573 0558 206C6C61 055C 63726570 0560 61746E65 0564 20736567 0568 20657261 056C 7020666F 0570 20687461 0574 61746F74 0578 692F3C6C 057C 623C0A3E 0580 693C3E72 0584 75733C3E 0588 2A2A3E70 058C 732F3C2A 0590 753E7075 0594 20726573 0598 61746164 059C 20736920 05A0 75657571 05A4 202C6465 05A8 636F7270 05AC 69737365 05B0 202C676E 05B4 61746F74 05B8 692F3C6C 05BC 2F3C0A3E 05C0 3E766964 05C4 61743C0A 05C8 20656C62 05CC 73616C63 05D0 6C223D73 05D4 666C7466 05D8 0A3E2274 05DC 3E72743C 05E0 3E64743C 05E4 6F663C0A 05E8 6D206D72 05EC 6F687465 05F0 47223D64 05F4 20225445 05F8 69746361 05FC 223D6E6F 0600 225A4121 0604 693C0A3E 0608 7475706E 060C 70797420 0610 73223D65 0614 696D6275 0618 76202274 061C 65756C61 0620 655A223D 0624 3E226F72 0628 662F3C0A 062C 3E6D726F 0630 742F3C0A 0634 743C3E64 0638 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 189 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 3C0A3E64 063C 6D726F66 0640 74656D20 0644 3D646F68 0648 54454722 064C 63612022 0650 6E6F6974 0654 4121223D 0658 0A3E225A 065C 706E693C 0660 74207475 0664 3D657079 0668 62757322 066C 2274696D 0670 6C617620 0674 223D6575 0678 656C6552 067C 22657361 0680 2F3C0A3E 0684 6D726F66 0688 2F3C0A3E 068C 3C3E6474 0690 0A3E6474 0694 726F663C 0698 656D206D 069C 646F6874 06A0 4547223D 06A4 61202254 06A8 6F697463 06AC 21223D6E 06B0 3E225A41 06B4 6E693C0A 06B8 20747570 06BC 65707974 06C0 7573223D 06C4 74696D62 06C8 61762022 06CC 3D65756C 06D0 72655422 06D4 616E696D 06D8 3E226574 06DC 662F3C0A 06E0 3E6D726F 06E4 742F3C0A 06E8 2F3C3E64 06EC 0A3E7274 06F0 3E72743C 06F4 3E64743C 06F8 72623C0A 06FC 20613C3E 0700 73616C63 0704 61223D73 0708 6E747462 070C 74746220 0710 3030366E 0714 72682022 0718 223D6665 071C Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 190 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 225A4121 0720 7165523E 0724 74736575 0728 612F3C73 072C 2F3C0A3E 0730 3C3E6474 0734 3E72742F 0738 742F3C0A 073C 656C6261 0740 41210A3E 0744 642F3C5A 0748 0A3E7669 074C 6F622F3C 0750 0A3E7964 0754 74682F3C 0758 0A3E6C6D 075C 00 0760 data1 0x00 ThrottlePerUserFao: 6170733C 0768 string "!AZ !UL,!UL,!UL  \X0A" 7473206E 076C 3D656C79 0770 63616222 0774 6F72676B 0778 3A646E75 077C 65356523 0780 22356535 0784 5A41213E 0788 73626E26 078C 55213B70 0790 55212C4C 0794 55212C4C 0798 732F3C4C 079C 3E6E6170 07A0 73626E26 07A4 0A203B70 07A8 00 07AC data1 0x00 ThrottlePathFao: 3E72743C 07B0 string "!3ZL!AZ throttle=!UL!&@,!UL,!UL,!UL,!AZ,!AZ!&L<" 3E68743C 07B4 string "td>!&L !&L!&L!&L!&L!&L!&L !&L!&L !&L!&L" 68742F3C 07BC string "\X0A!UL%!UL%!UL%!UL%!U" 5A41213E 07C4 string "L%\X0A" 73626E26 07C8 68743B70 07CC 74746F72 07D0 213D656C 07D4 26214C55 07D8 55212C40 07DC 55212C4C 07E0 55212C4C 07E4 41212C4C 07E8 41212C5A 07EC 742F3C5A 07F0 743C3E64 07F4 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 191 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 26213E64 07F8 742F3C4C 07FC 743C3E64 0800 26213E64 0804 742F3C4C 0808 743C3E64 080C 6E263E64 0810 3B707362 0814 3E64743C 0818 3E64743C 081C 3C4C2621 0820 3E64742F 0824 3E64743C 0828 3C4C2621 082C 3E64742F 0830 3E64743C 0834 3C4C2621 0838 3E64742F 083C 3E64743C 0840 3C4C2621 0844 3E64742F 0848 3E64743C 084C 3C4C2621 0850 3E64742F 0854 3E64743C 0858 3C4C2621 085C 3E64742F 0860 3E64743C 0864 73626E26 0868 743C3B70 086C 743C3E64 0870 26213E64 0874 742F3C4C 0878 743C3E64 087C 26213E64 0880 742F3C4C 0884 743C3E64 0888 6E263E64 088C 3B707362 0890 3E64743C 0894 3E64743C 0898 3C4C2621 089C 3E64742F 08A0 3E64743C 08A4 3C4C2621 08A8 3E64742F 08AC 72742F3C 08B0 743C0A3E 08B4 6C632072 08B8 3D737361 08BC 676C6822 08C0 74207468 08C4 74666C61 08C8 743C3E22 08CC 2F3C3E68 08D0 3C3E6874 08D4 63206474 08D8 Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 192 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 70736C6F 08DC 223D6E61 08E0 3C3E2232 08E4 3E64742F 08E8 3E64743C 08EC 254C5521 08F0 64742F3C 08F4 64743C3E 08F8 6C6F6320 08FC 6E617073 0900 2232223D 0904 742F3C3E 0908 743C3E64 090C 55213E64 0910 2F3C254C 0914 3C3E6474 0918 63206474 091C 70736C6F 0920 223D6E61 0924 3C3E2232 0928 3E64742F 092C 3E64743C 0930 254C5521 0934 64742F3C 0938 64743C3E 093C 4C55213E 0940 742F3C25 0944 743C3E64 0948 55213E64 094C 2F3C254C 0950 3C3E6474 0954 63206474 0958 70736C6F 095C 223D6E61 0960 3E202238 0964 64742F3C 0968 742F3C3E 096C 0A3E72 0970 00 0973 data1 0x00 .global MappingMetaPtr .section .data .type VmRealloc, @function .global VmRealloc .section .data .type InstanceMutexLock, @function .global InstanceMutexLock .global AccountingPtr .global InstanceNumber .global ErrorSanityCheck .section .data .type ErrorNoticed, @function .global ErrorNoticed .section .data .type VmFree, @function .global VmFree .section .data Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 193 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 .type InstanceMutexUnLock, @function .global InstanceMutexUnLock .section .data .type MATH$MODF_T, @function .global MATH$MODF_T .global Watch .section .data .type WatchThis, @function .global WatchThis .section .data .type MsgFor, @function .global MsgFor .section .data .type ErrorGeneral, @function .global ErrorGeneral .section .data .type DECC$STRCMP, @function .global DECC$STRCMP .section .data .type strzcpy, @function .global strzcpy .section .data .type VmGet, @function .global VmGet .section .data .type ListAddTail, @function .global ListAddTail .section .data .type HttpdTimerSet, @function .global HttpdTimerSet .section .data .type InstanceGblSecDecrLong, @function .global InstanceGblSecDecrLong .section .data .type ListRemove, @function .global ListRemove .section .data .type RequestExecutePostThrottle, @function .global RequestExecutePostThrottle .section .data .type SysDclAst, @function .global SysDclAst .section .data .type InstanceGblSecIncrLong, @function .global InstanceGblSecIncrLong .section .data .type RequestEnd, @function .global RequestEnd .section .data .type strsame, @function .global strsame .section .data .type StringMatchAndRegex, @function .global StringMatchAndRegex .section .data .type AdminPageTitle, @function .global AdminPageTitle Machine Code Listing 20-OCT-2025 03:54:54 VSI C V7.4-001-50L7J Page 194 ThrottleReport 5-APR-2025 12:14:14 WASD_ROOT:[src.httpd]throttle.c;1 .section .data .type MapUrl_ThrottleRule, @function .global MapUrl_ThrottleRule .section .data .type OTS$ZERO, @function .global OTS$ZERO .section .data .type MetaConShowSeconds, @function .global MetaConShowSeconds .section .data .type PercentOf32, @function .global PercentOf32 .section .data .type FaoCheck, @function .global FaoCheck .section .data .type FaolSAK, @function .global FaolSAK .section .data .type FaoToNet, @function .global FaoToNet .section .data .type AdminRefresh, @function .global AdminRefresh .section .data .type ResponseHeader200, @function .global ResponseHeader200 .section .data .type AdminEnd, @function .global AdminEnd Command Line ------- ---- CC/DECC/STAND=RELAXED_ANSI/PREFIX=ALL/NAMES=AS_IS/OPTIMIZE=(INLINE=AUTO,LEVEL=4 ,UNROLL=0,TUNE=HOST)/LIST/MACHINE/NODEBUG/WARNING=(NOINFORM,DISABLE=(PREOPTW))/ FLOAT=IEEE/IEEE=DENORM/DEFINE=(WASD_VMS_V0,SESOLA,WATCH_CAT=1,WATCH_MOD=0,WASD_ ACME=1,WASD_GETSPI=1)/OBJ=[.obj_IA64]Throttle Throttle.c Hardware: /ARCHITECTURE=GENERIC /OPTIMIZE=TUNE=GENERIC These macros are in effect at the start of the compilation. ----- ------ --- -- ------ -- --- ----- -- --- ------------ WASD_VMS_V0=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__="Oct 20 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__="03:54:54" __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