Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 1
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 /*****************************************************************************
2 /*
3 Support.c
4
5 Miscellaneous support functions for HTTPd.
6
7
8 VERSION HISTORY
9 ---------------
10 07-AUG-2023 MGD bugfix; TimeSansYear() strzcpy(Buffer,"(none)",16);
11 12-APR-2023 MGD AverageDurationString() use lib$mults_delta_time()
12 18-AUG-2022 MGD TimeUnix32ToVms64()
13 12-JUL-2021 MGD rework UTC/GMT processing
14 GenerateUniqueId() algorithm changed
15 bugfix; HttpIsoTime() timezone parsing
16 06-MAR-2021 MGD HttpGetTime()
17 14-NOV-2020 MGD migrate from ulong[2] to int64 for 64 bit quantities
18 26-JUL-2018 MGD SysTrnLnm() moved from dyanamic to static return
19 23-DEC-2017 MGD HttpIsoTimeString()
20 30-OCT-2017 MGD ThisLongAgo()
21 04-MAY-2017 MGD HtmlMetaInfo() MS Edge
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 3
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1029 #include
1199 #include
2281 #include
4417 #include
4890
4891 /* VMS related header files */
4892 #include
5958 #include
6372 #include
7154 #include
8391 #include
8549 #include
8626 #include
8771 #include
10268 #include
10612 #include
10736 #include
18573 #include
22937 #include
23233
23234 /* lib$cvts_from_internal_time() does not exist with V7.3-2 or earlier */
23235 #include
23480 #include
23585 #define CVT$K_VAX_F 0
23586 #define CVT$K_IEEE_S 4
23587
23588 /* application related header files */
23589 #include "wasd.h"
70934
70935 #define WASD_MODULE "SUPPORT"
70936
70937 /******************/
70938 /* global storage */
70939 /******************/
70940
70941 #define RFC_1123_DATE yup
70942
70943 const int64 DeltaOneDay = DELTA64_ONE_DAY,
70944 DeltaOneHour = DELTA64_ONE_HR,
70945 Delta01Sec = DELTA64_ONE_SEC,
70946 Delta02Sec = DELTA64_TWO_SEC,
70947 Delta05Sec = DELTA64_FIVE_SEC,
70948 Delta10Sec = DELTA64_TEN_SEC,
70949 Delta30Sec = DELTA64_THIRTY_SEC,
70950 Delta60Sec = DELTA64_ONE_MIN,
70951 Delta001mSec = DELTA64_ONE_MSEC,
70952 Delta010mSec = DELTA64_TEN_MSEC,
70953 Delta100mSec = DELTA64_HUN_MSEC,
70954 Delta001uSec = DELTA64_ONE_USEC,
70955 Delta010uSec = DELTA64_TEN_USEC,
70956 Delta100uSec = DELTA64_HUN_USEC;
70957
70958 int64 TimeUtcDelta64;
70959
70960 BOOL TimeAheadOfGmt;
70961
70962 char TimeGmtString [16],
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 4
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
70963 TimeZoneString [16];
70964
70965 char *DayName [] =
70966 { "", "Monday", "Tuesday", "Wednesday",
70967 "Thursday", "Friday", "Saturday", "Sunday" };
70968
70969 char *MonthName [] =
70970 { "", "January", "February", "March", "April", "May", "June",
70971 "July", "August", "September", "October", "November", "December" };
70972
70973 int ToUpperCase [] =
70974 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
70975 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
70976 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
70977 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
70978 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
70979 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
70980 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
70981 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127,
70982 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
70983 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
70984 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
70985 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
70986 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
70987 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
70988 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
70989 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
70990 };
70991
70992 int ToLowerCase [] =
70993 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
70994 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
70995 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
70996 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
70997 64, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
70998 112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95,
70999 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
71000 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
71001 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
71002 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
71003 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
71004 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
71005 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
71006 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
71007 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
71008 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
71009 };
71010
71011 /********************/
71012 /* external storage */
71013 /********************/
71014
71015 extern BOOL AccountingZeroOnStartup,
71016 CliSoftwareID,
71017 MonitorEnabled;
71018
71019 extern int CharsetCount,
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 5
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
71020 EfnWait,
71021 ServerPort;
71022
71023 extern ulong SysPrvMask[];
71024
71025 extern char ErrorSanityCheck[],
71026 HttpdName[],
71027 HttpdVersion[],
71028 ServerHostName[],
71029 SoftwareID[];
71030
71031 extern ACCOUNTING_STRUCT *AccountingPtr;
71032 extern CONFIG_STRUCT Config;
71033 extern HTTPD_GBLSEC *HttpdGblSecPtr;
71034 extern HTTPD_PROCESS HttpdProcess;
71035 extern MSG_STRUCT Msgs;
71036 extern WATCH_STRUCT Watch;
71037
71038 /*****************************************************************************/
71039 /*
71040 Declare an AST, exit if there is any problem ... must have our ASTs!
71041 */
71042
71043 void SysDclAst
71044 (
71045 void *Address,
71046 ulong Parameter
71047 )
1 71048 {
1 71049 int status;
1 71050
1 71051 /*********/
1 71052 /* begin */
1 71053 /*********/
1 71054
1 71055 if (0 && WATCH_MODULE(WATCH_MOD__OTHER))
1 71056 WatchThis (WATCHALL, WATCH_MOD__OTHER,
1 71057 "SysDclAst() !&A(!&X)", Address, Parameter);
1 71058
1 71059 status = sys$dclast (Address, Parameter, 0);
1 71060 if (VMSok (status)) return;
1 71061
1 71062 if (status == SS$_EXQUOTA)
2 71063 {
2 71064 /* no ASTs means not much of anything else can happen so just exit! */
2 71065 sys$canexh(0);
2 71066 /* make the message a little more meaningful */
2 71067 sys$exit (SS$_EXASTLM);
1 71068 }
1 71069 else
1 71070 ErrorExitVmsStatus (status, "sys$dclast()", FI_LI);
1 71071 }
71072
71073 /*****************************************************************************/
71074 /*
71075 Generic list handling function. Add entry to head of list.
71076 */
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 6
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
71077
71078 LIST_ENTRY* ListAddHead
71079 (
71080 LIST_HEAD *lptr,
71081 LIST_ENTRY *eptr,
71082 ulong DataType
71083 )
1 71084 {
1 71085 /*********/
1 71086 /* begin */
1 71087 /*********/
1 71088
1 71089 if (!lptr->HeadPtr)
2 71090 {
2 71091 /* empty list */
2 71092 lptr->HeadPtr = lptr->TailPtr = eptr;
2 71093 eptr->PrevPtr = eptr->NextPtr = NULL;
2 71094 if (DataType) eptr->DataType = DataType;
2 71095 lptr->EntryCount++;
2 71096 return (eptr);
1 71097 }
1 71098 else
2 71099 {
2 71100 /* non-empty list */
2 71101 eptr->PrevPtr = NULL;
2 71102 eptr->NextPtr = lptr->HeadPtr;
2 71103 eptr->NextPtr->PrevPtr = lptr->HeadPtr = eptr;
2 71104 if (DataType) eptr->DataType = DataType;
2 71105 lptr->EntryCount++;
2 71106 return (eptr);
1 71107 }
1 71108 }
71109
71110 /*****************************************************************************/
71111 /*
71112 Generic list handling function. Add entry to tail of list.
71113 */
71114
71115 LIST_ENTRY* ListAddTail
71116 (
71117 LIST_HEAD *lptr,
71118 LIST_ENTRY *eptr,
71119 ulong DataType
71120 )
1 71121 {
1 71122 /*********/
1 71123 /* begin */
1 71124 /*********/
1 71125
1 71126 if (!lptr->HeadPtr)
2 71127 {
2 71128 /* empty list */
2 71129 lptr->HeadPtr = lptr->TailPtr = eptr;
2 71130 eptr->PrevPtr = eptr->NextPtr = NULL;
2 71131 if (DataType) eptr->DataType = DataType;
2 71132 lptr->EntryCount++;
2 71133 return (eptr);
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 7
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 71134 }
1 71135 else
2 71136 {
2 71137 /* non-empty list */
2 71138 eptr->NextPtr = NULL;
2 71139 eptr->PrevPtr = lptr->TailPtr;
2 71140 eptr->PrevPtr->NextPtr = lptr->TailPtr = eptr;
2 71141 if (DataType) eptr->DataType = DataType;
2 71142 lptr->EntryCount++;
2 71143 return (eptr);
1 71144 }
1 71145 }
71146
71147 /*****************************************************************************/
71148 /*
71149 Generic list handling function. Add entry 2 "in front of" entry 1.
71150 */
71151
71152 LIST_ENTRY* ListAddBefore
71153 (
71154 LIST_HEAD *lptr,
71155 LIST_ENTRY *e1ptr,
71156 LIST_ENTRY *e2ptr,
71157 ulong DataType
71158 )
1 71159 {
1 71160 /*********/
1 71161 /* begin */
1 71162 /*********/
1 71163
1 71164 if (lptr->HeadPtr == e1ptr)
2 71165 {
2 71166 /* at head of list */
2 71167 e1ptr->PrevPtr = e2ptr;
2 71168 e2ptr->PrevPtr = NULL;
2 71169 e2ptr->NextPtr = e1ptr;
2 71170 lptr->HeadPtr = e2ptr;
2 71171 if (DataType) e2ptr->DataType = DataType;
2 71172 lptr->EntryCount++;
2 71173 return (e2ptr);
1 71174 }
1 71175 else
2 71176 {
2 71177 /* not at head of list */
2 71178 if (e1ptr->PrevPtr)
3 71179 {
3 71180 e2ptr->PrevPtr = e1ptr->PrevPtr;
3 71181 e2ptr->PrevPtr->NextPtr = e2ptr;
2 71182 }
2 71183 e1ptr->PrevPtr = e2ptr;
2 71184 e2ptr->NextPtr = e1ptr;
2 71185 if (DataType) e2ptr->DataType = DataType;
2 71186 lptr->EntryCount++;
2 71187 return (e2ptr);
1 71188 }
1 71189 }
71190
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 8
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
71191 /*****************************************************************************/
71192 /*
71193 Generic list handling function. Remove entry from list. Check first that
71194 entry looks legitimate, return NULL if not!
71195 */
71196
71197 LIST_ENTRY* ListRemove
71198 (
71199 LIST_HEAD *lptr,
71200 LIST_ENTRY *eptr
71201 )
1 71202 {
1 71203 /*********/
1 71204 /* begin */
1 71205 /*********/
1 71206
1 71207 if (!eptr->PrevPtr)
2 71208 {
2 71209 /* at head of list */
2 71210 if (!eptr->NextPtr)
3 71211 {
3 71212 /* only entry in list */
3 71213 if (lptr->HeadPtr != eptr || lptr->TailPtr != eptr) return (NULL);
3 71214 lptr->HeadPtr = lptr->TailPtr = NULL;
3 71215 if (lptr->EntryCount) lptr->EntryCount--;
3 71216 return (eptr);
2 71217 }
2 71218 else
3 71219 {
3 71220 /* remove from head of list */
3 71221 if (lptr->HeadPtr != eptr) return (NULL);
3 71222 eptr->NextPtr->PrevPtr = NULL;
3 71223 lptr->HeadPtr = eptr->NextPtr;
3 71224 if (lptr->EntryCount) lptr->EntryCount--;
3 71225 return (eptr);
2 71226 }
1 71227 }
1 71228 else
2 71229 {
2 71230 /* not at head of list */
2 71231 if (!eptr->NextPtr)
3 71232 {
3 71233 /* at tail of list */
3 71234 if (lptr->TailPtr != eptr) return (NULL);
3 71235 eptr->PrevPtr->NextPtr = NULL;
3 71236 lptr->TailPtr = eptr->PrevPtr;
3 71237 if (lptr->EntryCount) lptr->EntryCount--;
3 71238 return (eptr);
2 71239 }
2 71240 else
3 71241 {
3 71242 /* somewhere in the middle! */
3 71243 if (eptr->PrevPtr->NextPtr != eptr ||
3 71244 eptr->NextPtr->PrevPtr != eptr) return (NULL);
3 71245 eptr->PrevPtr->NextPtr = eptr->NextPtr;
3 71246 eptr->NextPtr->PrevPtr = eptr->PrevPtr;
3 71247 if (lptr->EntryCount) lptr->EntryCount--;
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 9
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
3 71248 return (eptr);
2 71249 }
1 71250 }
1 71251 }
71252
71253 /*****************************************************************************/
71254 /*
71255 Generic list handling function. If not already there move it to the head.
71256 */
71257
71258 #ifdef __DECC
71259 #pragma inline(ListMoveHead)
71260 #endif
71261
71262 LIST_ENTRY* ListMoveHead
71263 (
71264 LIST_HEAD *lptr,
71265 LIST_ENTRY *eptr
71266 )
1 71267 {
1 71268 /*********/
1 71269 /* begin */
1 71270 /*********/
1 71271
1 71272 /* move entry to the head of the cache list */
1 71273 if (lptr->HeadPtr != eptr)
2 71274 {
2 71275 ListRemove (lptr, eptr);
2 71276 ListAddHead (lptr, eptr, 0);
1 71277 }
1 71278
1 71279 return (eptr);
1 71280 }
71281
71282 /*****************************************************************************/
71283 /*
71284 Generic list handling function. If not already there move it to the tail.
71285 */
71286
71287 #ifdef __DECC
71288 #pragma inline(ListMoveTail)
71289 #endif
71290
71291 LIST_ENTRY* ListMoveTail
71292 (
71293 LIST_HEAD *lptr,
71294 LIST_ENTRY *eptr
71295 )
1 71296 {
1 71297 /*********/
1 71298 /* begin */
1 71299 /*********/
1 71300
1 71301 /* move entry to the head of the cache list */
1 71302 if (lptr->TailPtr != eptr)
2 71303 {
2 71304 ListRemove (lptr, eptr);
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 10
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
2 71305 ListAddTail (lptr, eptr, 0);
1 71306 }
1 71307
1 71308 return (eptr);
1 71309 }
71310
71311 /*****************************************************************************/
71312 /*
71313 Generic list handling function. Remove the head entry.
71314 */
71315
71316 #ifdef __DECC
71317 #pragma inline(ListRemoveHead)
71318 #endif
71319
71320 LIST_ENTRY* ListRemoveHead (LIST_HEAD *lptr)
71321
1 71322 {
1 71323 LIST_ENTRY *eptr;
1 71324
1 71325 /*********/
1 71326 /* begin */
1 71327 /*********/
1 71328
1 71329 if (eptr = lptr->HeadPtr) ListRemove (lptr, eptr);
1 71330
1 71331 return (eptr);
1 71332 }
71333
71334 /*****************************************************************************/
71335 /*
71336 Generic list handling function. Remove the tail entry.
71337 */
71338
71339 #ifdef __DECC
71340 #pragma inline(ListRemoveTail)
71341 #endif
71342
71343 LIST_ENTRY* ListRemoveTail (LIST_HEAD *lptr)
71344
1 71345 {
1 71346 LIST_ENTRY *eptr;
1 71347
1 71348 /*********/
1 71349 /* begin */
1 71350 /*********/
1 71351
1 71352 if (eptr = lptr->TailPtr) ListRemove (lptr, eptr);
1 71353
1 71354 return (eptr);
1 71355 }
71356
71357 /*****************************************************************************/
71358 /*
71359 Generic list handling function. Check if a specific entry is in specific list.
71360 */
71361
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 11
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
71362 LIST_ENTRY* ListCheck
71363 (
71364 LIST_HEAD *lptr,
71365 LIST_ENTRY *eptr
71366 )
1 71367 {
1 71368 LIST_ENTRY *teptr;
1 71369
1 71370 /*********/
1 71371 /* begin */
1 71372 /*********/
1 71373
1 71374 fprintf (stdout, "ListCheck() %d %d %d %d\n",
1 71375 lptr, lptr->HeadPtr, lptr->TailPtr, lptr->EntryCount);
1 71376
1 71377 for (teptr = lptr->HeadPtr; teptr; teptr = teptr->NextPtr)
1 71378 if (teptr == eptr) return (eptr);
1 71379 return (NULL);
1 71380 }
71381
71382 /*****************************************************************************/
71383 /*
71384 list the entries in the list.
71385 */
71386
71387 ListDebug (LIST_HEAD* lptr)
71388
1 71389 {
1 71390 LIST_ENTRY *eptr;
1 71391
1 71392 /*********/
1 71393 /* begin */
1 71394 /*********/
1 71395
1 71396 for (eptr = lptr->HeadPtr; eptr; eptr = eptr->NextPtr)
1 71397 fprintf (stdout, "%d <- %d -> %d\n", eptr->PrevPtr, eptr, eptr->NextPtr);
1 71398 }
71399
71400 /*****************************************************************************/
71401 /*
71402 Generate the appropriate server signature returned the supplied buffer.
71403 */
71404
71405 char* ServerSignature
71406 (
71407 REQUEST_STRUCT *rqptr,
71408 char *BufferPtr,
71409 int BufferSize
71410 )
1 71411 {
1 71412 int status,
1 71413 ServerPortNumber;
1 71414 char *cptr, *sptr, *zptr,
1 71415 *ServerHostNamePtr;
1 71416 char MsgBuffer [256],
1 71417 EmailBuffer [256];
1 71418
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 12
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 71419 /*********/
1 71420 /* begin */
1 71421 /*********/
1 71422
1 71423 if (WATCH_MODULE(WATCH_MOD__OTHER))
1 71424 WatchThis (WATCHALL, WATCH_MOD__OTHER, "ServerSignature()");
1 71425
1 71426 if (!Config.cfServer.Signature)
2 71427 {
2 71428 BufferPtr[0] = '\0';
2 71429 return (BufferPtr);
1 71430 }
1 71431
1 71432 if (rqptr)
2 71433 {
2 71434 ServerHostNamePtr = rqptr->ServicePtr->ServerHostName;
2 71435 ServerPortNumber = rqptr->ServicePtr->ServerPort;
1 71436 }
1 71437 else
2 71438 {
2 71439 ServerHostNamePtr = ServerHostName;
2 71440 ServerPortNumber = ServerPort;
1 71441 }
1 71442
1 71443 if (Config.cfServer.Signature == CONFIG_SERVER_SIGNATURE_EMAIL &&
1 71444 Config.cfServer.AdminEmail[0])
2 71445 {
2 71446 status = FaoToBuffer (EmailBuffer, sizeof(EmailBuffer), NULL,
2 71447 "!AZ",
2 71448 Config.cfServer.AdminEmail, ServerHostNamePtr);
2 71449 if (VMSnok (status)) ErrorNoticed (rqptr, status, NULL, FI_LI);
1 71450 }
1 71451 else
1 71452 EmailBuffer[0] = '\0';
1 71453
1 71454 if (CliSoftwareID)
2 71455 {
2 71456 cptr = MsgFor(rqptr, MSG_STATUS_SIGNATURE);
2 71457 zptr = (sptr = MsgBuffer) + sizeof(MsgBuffer)-1;
2 71458 while (*cptr && *cptr != '!' && sptr < zptr) *sptr++ = *cptr++;
2 71459 if (strsame (cptr, "!AZ/", 4))
3 71460 {
3 71461 cptr += 4;
3 71462 while (*cptr && sptr < zptr) *sptr++ = *cptr++;
3 71463 *sptr = '\0';
3 71464 status = FaoToBuffer (BufferPtr, BufferSize, NULL, MsgBuffer,
3 71465 SoftwareID,
3 71466 EmailBuffer[0] ? EmailBuffer : ServerHostNamePtr,
3 71467 ServerPortNumber);
3 71468 if (VMSnok (status)) ErrorNoticed (rqptr, status, NULL, FI_LI);
3 71469 return (BufferPtr);
2 71470 }
2 71471 ErrorNoticed (rqptr, SS$_BUGCHECK, ErrorSanityCheck, FI_LI);
1 71472 }
1 71473
1 71474 status = FaoToBuffer (BufferPtr, BufferSize, NULL,
1 71475 MsgFor(rqptr, MSG_STATUS_SIGNATURE),
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 13
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 71476 HttpdName, HttpdVersion,
1 71477 EmailBuffer[0] ? EmailBuffer : ServerHostNamePtr,
1 71478 ServerPortNumber);
1 71479 if (VMSnok (status)) ErrorNoticed (rqptr, status, NULL, FI_LI);
1 71480
1 71481 return (BufferPtr);
1 71482 }
71483
71484 /*****************************************************************************/
71485 /*
71486 Create an HTTP format local time string in the storage pointed at by
71487 'TimeString', e.g. "Fri, 25 Aug 1995 17:32:40" (RFC1123). If 'Time64Ptr' is
71488 null the time string represents the current time. If it points to a quadword,
71489 VMS time value the string represents that time. 'TimeString' must point to
71490 storage large enough for 31 characters.
71491 */
71492
71493 int HttpLocalTimeString
71494 (
71495 char *TimeString,
71496 int64 *Time64Ptr
71497 )
1 71498 {
1 71499 /* alternate formats for time string */
1 71500 #ifdef RFC_1123_DATE
1 71501 /* day, dd mmm yyyy hh:mm */
1 71502 static $DESCRIPTOR (HttpTimeFaoDsc, "!3AZ, !2ZW !3AZ !4ZW !2ZW:!2ZW:!2ZW\0");
1X 71503 #else
1X 71504 /* weekday, dd-mmm-yyyy hh:mm */
1X 71505 static $DESCRIPTOR (HttpTimeFaoDsc, "!3AZ, !2ZW-!3AZ-!4ZW !2ZW:!2ZW:!2ZW\0");
1X 71506 #endif
1 71507
1 71508 static $DESCRIPTOR (TimeStringDsc, "");
1 71509
1 71510 int status;
1 71511 int64 time64;
1 71512 ushort time7 [7];
1 71513 ulong DayOfWeek;
1 71514
1 71515 /*********/
1 71516 /* begin */
1 71517 /*********/
1 71518
1 71519 if (WATCH_MODULE(WATCH_MOD__OTHER))
1 71520 WatchThis (WATCHALL, WATCH_MOD__OTHER, "HttpLocalTimeString()");
1 71521
1 71522 if (Time64Ptr)
1 71523 time64 = *(UINT64PTR)Time64Ptr;
1 71524 else
1 71525 sys$gettim (&time64);
1 71526
1 71527 status = sys$numtim (&time7, &time64);
1 71528
1 71529 if (VMSnok (status = lib$day_of_week (&time64, &DayOfWeek)))
1 71530 return (status);
1 71531
1 71532 /* set the descriptor address and size of the resultant time string */
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 14
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 71533 TimeStringDsc.dsc$w_length = 26;
1 71534 TimeStringDsc.dsc$a_pointer = TimeString;
1 71535
1 71536 status = sys$fao (&HttpTimeFaoDsc, 0, &TimeStringDsc,
1 71537 DayName[DayOfWeek], time7[2], MonthName[time7[1]],
1 71538 time7[0], time7[3], time7[4], time7[5]);
1 71539 if (VMSnok (status) || status == SS$_BUFFEROVF) TimeString[0] = '\0';
1 71540
1 71541 return (status);
1 71542 }
71543
71544 /*****************************************************************************/
71545 /*
71546 Create an HTTP format Greenwich Mean Time (UTC) time string in the storage
71547 pointed at by 'TimeString', e.g. "Fri, 25 Aug 1995 17:32:40 GMT" (RFC1123).
71548 This must be at least 30 characters capacity. If 'Time64Ptr' is NULL the
71549 time string represents the current time. If it points to a quadword, VMS time
71550 value the string represents that time.
71551 */
71552
71553 int HttpGmTimeString
71554 (
71555 char *TimeString,
71556 int64 *Time64Ptr
71557 )
1 71558 {
1 71559 /* alternate formats for time string */
1 71560 #ifdef RFC_1123_DATE
1 71561 /* day, dd mmm yyyy hh:mm */
1 71562 static $DESCRIPTOR (HttpTimeFaoDsc,
1 71563 "!3AZ, !2ZW !3AZ !4ZW !2ZW:!2ZW:!2ZW GMT\0");
1X 71564 #else
1X 71565 /* weekday, dd-mmm-yyyy hh:mm */
1X 71566 static $DESCRIPTOR (HttpTimeFaoDsc,
1X 71567 "!3AZ, !2ZW-!3AZ-!4ZW !2ZW:!2ZW:!2ZW GMT\0");
1X 71568 #endif
1 71569
1 71570 static $DESCRIPTOR (TimeStringDsc, "");
1 71571
1 71572 int status;
1 71573 int64 time64;
1 71574 ushort time7 [7];
1 71575 ulong DayOfWeek;
1 71576
1 71577 /*********/
1 71578 /* begin */
1 71579 /*********/
1 71580
1 71581 if (WATCH_MODULE(WATCH_MOD__OTHER))
1 71582 WatchThis (WATCHALL, WATCH_MOD__OTHER, "HttpGmTimeString()");
1 71583
1 71584 if (Time64Ptr)
1 71585 time64 = *(UINT64PTR)Time64Ptr;
1 71586 else
1 71587 sys$gettim (&time64);
1 71588
1 71589 TimeAdjustToGMT (&time64);
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 15
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 71590
1 71591 status = sys$numtim (&time7, &time64);
1 71592
1 71593 if (VMSnok (status = lib$day_of_week (&time64, &DayOfWeek)))
1 71594 return (status);
1 71595
1 71596 /* set the descriptor address and size of the resultant time string */
1 71597 TimeStringDsc.dsc$w_length = 30;
1 71598 TimeStringDsc.dsc$a_pointer = TimeString;
1 71599
1 71600 status = sys$fao (&HttpTimeFaoDsc, 0, &TimeStringDsc,
1 71601 DayName[DayOfWeek], time7[2], MonthName[time7[1]],
1 71602 time7[0], time7[3], time7[4], time7[5]);
1 71603 if (VMSnok (status) || status == SS$_BUFFEROVF) TimeString[0] = '\0';
1 71604
1 71605 return (status);
1 71606 }
71607
71608 /*****************************************************************************/
71609 /*
71610 Create an ISO 8601 format UTC (GMT) basic time string in the storage pointed at
71611 by 'TimeString', e.g. "19950825T173240.34Z+0000", or separated local time
71612 string, e.g. "1995-08-25T17:32:40.34Z+0930". This must be at least 32
71613 characters capacity. If 'Time64Ptr' is NULL the time string represents the
71614 current time. If it points to a quadword, VMS time value the string represents
71615 that time.
71616 */
71617
71618 int HttpIsoTimeString
71619 (
71620 BOOL LocalTimeZone,
71621 char *TimeString,
71622 int64 *Time64Ptr
71623 )
1 71624 {
1 71625 static $DESCRIPTOR (UtcTimeFaoDsc,
1 71626 "!4ZL!2ZL!2ZLT!2ZL!2ZL!2ZL.!2ZL+0000\0");
1 71627 static $DESCRIPTOR (LocalTimeFaoDsc,
1 71628 "!4ZL-!2ZL-!2ZLT!2ZL:!2ZL:!2ZL.!2ZL!AZ\0");
1 71629 static $DESCRIPTOR (TimeStringDsc, "");
1 71630
1 71631 int status;
1 71632 int64 time64;
1 71633 ushort time7 [7];
1 71634
1 71635 /*********/
1 71636 /* begin */
1 71637 /*********/
1 71638
1 71639 if (WATCH_MODULE(WATCH_MOD__OTHER))
1 71640 WatchThis (WATCHALL, WATCH_MOD__OTHER, "HttpIsoTimeString()");
1 71641
1 71642 if (Time64Ptr)
1 71643 time64 = *(UINT64PTR)Time64Ptr;
1 71644 else
1 71645 sys$gettim (&time64);
1 71646
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 16
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 71647 if (!LocalTimeZone) TimeAdjustToGMT (&time64);
1 71648
1 71649 status = sys$numtim (&time7, &time64);
1 71650
1 71651 /* set the descriptor address and size of the resultant time string */
1 71652 TimeStringDsc.dsc$w_length = 31;
1 71653 TimeStringDsc.dsc$a_pointer = TimeString;
1 71654
1 71655 if (LocalTimeZone)
1 71656 status = sys$fao (&LocalTimeFaoDsc, 0, &TimeStringDsc,
1 71657 time7[0], time7[1], time7[2],
1 71658 time7[3], time7[4], time7[5], time7[6],
1 71659 TimeZoneString);
1 71660 else
1 71661 status = sys$fao (&UtcTimeFaoDsc, 0, &TimeStringDsc,
1 71662 time7[0], time7[1], time7[2],
1 71663 time7[3], time7[4], time7[5], time7[6]);
1 71664 if (VMSnok (status) || status == SS$_BUFFEROVF) TimeString[0] = '\0';
1 71665
1 71666 return (status);
1 71667 }
71668
71669 /*****************************************************************************/
71670 /*
71671 Given a string such as "Fri, 25 Aug 1995 17:32:40 GMT" (RFC1123),
71672 or "Friday, 25-Aug-1995 17:32:40 GMT" (RFC 1036),
71673 or "1995-08-25T17:32:40.34Z+0000"" (ISO 8601),
71674 create an internal, local, binary time.
71675
71676 For purposes such a if-modified-since. The RFC specifies RFC1123 but some
71677 recently use ISO 8601. This function tries the 1123 format first and then the
71678 8601.
71679 */
71680
71681 int HttpGetTime
71682 (
71683 char *TimeString,
71684 int64 *Time64Ptr
71685 )
1 71686 {
1 71687 int status;
1 71688
1 71689 /*********/
1 71690 /* begin */
1 71691 /*********/
1 71692
1 71693 if (VMSnok (status = HttpGmTime (TimeString, Time64Ptr)))
1 71694 status = HttpIsoTime (TimeString, Time64Ptr);
1 71695 return (status);
1 71696 }
71697
71698 /*****************************************************************************/
71699 /*
71700 Given a string such as "Fri, 25 Aug 1995 17:32:40 GMT" (RFC1123), or "Friday,
71701 25-Aug-1995 17:32:40 GMT" (RFC 1036), create an internal, local, binary time
71702 with the current GMT offset. See complementary function HttpGmTimeString().
71703 */
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 17
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
71704
71705 int HttpGmTime
71706 (
71707 char *TimeString,
71708 int64 *Time64Ptr
71709 )
1 71710 {
1 71711 static char *MonthName [] =
1 71712 { "", "Jan", "Feb", "Mar", "Apr", "May", "Jun",
1 71713 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
1 71714
1 71715 int status;
1 71716 ushort Length;
1 71717 ushort time7 [7] = { 0,0,0,0,0,0,0 };
1 71718 ulong DayOfWeek;
1 71719 char *tptr;
1 71720
1 71721 /*********/
1 71722 /* begin */
1 71723 /*********/
1 71724
1 71725 tptr = TimeString;
1 71726 /* hunt straight for the comma after the weekday name! */
1 71727 while (*tptr && *tptr != ',') tptr++;
1 71728 if (*tptr) tptr++;
1 71729 /* span white space between weekday name and date */
1 71730 while (*tptr && ISLWS(*tptr)) tptr++;
1 71731 if (!*tptr) return (SS$_IVTIME);
1 71732
1 71733 /* get the date and then skip to month name */
1 71734 if (isdigit(*tptr)) time7[2] = atoi (tptr);
1 71735 while (*tptr && isdigit(*tptr)) tptr++;
1 71736 while (*tptr && (*tptr == '-' || ISLWS(*tptr))) tptr++;
1 71737 if (!*tptr) return (SS$_IVTIME);
1 71738
1 71739 /* get the month number from the name and skip to the year */
1 71740 for (time7[1] = 1; time7[1] <= 12; time7[1]++)
1 71741 if (strsame (tptr, MonthName[time7[1]], 3)) break;
1 71742 if (time7[1] > 12) return (SS$_IVTIME);
1 71743 while (isalpha(*tptr)) tptr++;
1 71744 while (*tptr && (*tptr == '-' || ISLWS(*tptr))) tptr++;
1 71745 if (!*tptr) return (SS$_IVTIME);
1 71746
1 71747 /* get the year and then skip to the hour */
1 71748 if (isdigit(*tptr))
2 71749 {
2 71750 time7[0] = atoi (tptr);
2 71751 if (time7[0] <= 99)
3 71752 {
3 71753 /* for older browsers supplying 2 digit years, some Y2K insurance! */
3 71754 if (time7[0] >= 70)
3 71755 time7[0] += 1900;
3 71756 else
3 71757 time7[0] += 2000;
2 71758 }
1 71759 }
1 71760 while (*tptr && isdigit(*tptr)) tptr++;
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 18
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 71761 while (*tptr && ISLWS(*tptr)) tptr++;
1 71762 if (!*tptr) return (SS$_IVTIME);
1 71763
1 71764 /* get the hour, minute and second */
1 71765 if (isdigit(*tptr)) time7[3] = atoi (tptr);
1 71766 while (*tptr && isdigit(*tptr)) tptr++;
1 71767 if (*tptr == ':') tptr++;
1 71768 if (isdigit(*tptr)) time7[4] = atoi (tptr);
1 71769 while (*tptr && isdigit(*tptr)) tptr++;
1 71770 if (*tptr == ':') tptr++;
1 71771 if (isdigit(*tptr)) time7[5] = atoi (tptr);
1 71772 while (*tptr && isdigit(*tptr)) tptr++;
1 71773 if (*tptr == ':') tptr++;
1 71774 if (!*tptr) return (SS$_IVTIME);
1 71775
1 71776 /* the only thing remaining should be the "GMT" */
1 71777 while (*tptr && ISLWS(*tptr)) tptr++;
1 71778 if (!MATCH3 (tptr, "GMT")) return (SS$_IVTIME);
1 71779
1 71780 /*******************************************/
1 71781 /* convert what looks like legitimate GMT! */
1 71782 /*******************************************/
1 71783
1 71784 status = lib$cvt_vectim (&time7, Time64Ptr);
1 71785 if (VMSnok (status)) return (status);
1 71786
1 71787 TimeAdjustFromGMT (Time64Ptr);
1 71788
1 71789 return (SS$_NORMAL);
1 71790 }
71791
71792 /*****************************************************************************/
71793 /*
71794 Given an ISO 8601 format time string (e.g. "1995-08-25T17:32:40.34Z+0000")
71795 create an internal, local, binary time. See complementary function
71796 HttpIsoTimeString().
71797 */
71798
71799 int HttpIsoTime
71800 (
71801 char *TimeString,
71802 int64 *Time64Ptr
71803 )
1 71804 {
1 71805 int64 time64;
1 71806 int year, month, day, hour, min, sec, frac, ohour, omin, status, zoffset;
1 71807 ushort time7 [7];
1 71808 char offset;
1 71809 char *tptr;
1 71810
1 71811 /*********/
1 71812 /* begin */
1 71813 /*********/
1 71814
1 71815 *Time64Ptr = 0;
1 71816 frac = ohour = omin = offset = zoffset = 0;
1 71817
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 19
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 71818 tptr = TimeString;
1 71819
1 71820 /* yyyy mm dd */
1 71821 if (!isdigit(*tptr)) return (SS$_IVTIME);
1 71822 if (sscanf (tptr, "%4d", &year) != 1) return (SS$_IVTIME);
1 71823 while (isdigit(*tptr)) tptr++;
1 71824 if (*tptr == '-') tptr++;
1 71825 if (!isdigit(*tptr)) return (SS$_IVTIME);
1 71826 if (sscanf (tptr, "%2d", &month) != 1) return (SS$_IVTIME);
1 71827 while (isdigit(*tptr)) tptr++;
1 71828 if (*tptr == '-') tptr++;
1 71829 if (!isdigit(*tptr)) return (SS$_IVTIME);
1 71830 if (sscanf (tptr, "%2d", &day) != 1) return (SS$_IVTIME);
1 71831 while (isdigit(*tptr)) tptr++;
1 71832
1 71833 /* hh mm ss */
1 71834 if (*tptr == 'T') tptr++;
1 71835 if (!isdigit(*tptr)) return (SS$_IVTIME);
1 71836 if (sscanf (tptr, "%2d", &hour) != 1) return (SS$_IVTIME);
1 71837 while (isdigit(*tptr)) tptr++;
1 71838 if (*tptr == ':') tptr++;
1 71839 if (!isdigit(*tptr)) return (SS$_IVTIME);
1 71840 if (sscanf (tptr, "%2d", &min) != 1) return (SS$_IVTIME);
1 71841 while (isdigit(*tptr)) tptr++;
1 71842 if (*tptr == ':') tptr++;
1 71843 if (!isdigit(*tptr)) return (SS$_IVTIME);
1 71844 if (sscanf (tptr, "%2d", &sec) != 1) return (SS$_IVTIME);
1 71845 while (isdigit(*tptr)) tptr++;
1 71846
1 71847 /* fraction */
1 71848 if (*tptr == '.')
2 71849 {
2 71850 tptr++;
2 71851 if (!isdigit(*tptr)) return (SS$_IVTIME);
2 71852 if (sscanf (tptr, "%d", &frac) != 1) return (SS$_IVTIME);
2 71853 while (isdigit(*tptr)) tptr++;
1 71854 }
1 71855
1 71856 /* zulu offset */
1 71857 if (*tptr == 'Z') tptr++;
1 71858 if (*tptr == '+')
1 71859 offset = *tptr++;
1 71860 else
1 71861 if (*tptr == '-')
1 71862 offset = *tptr++;
1 71863 if (isdigit(*tptr))
2 71864 {
2 71865 if (sscanf (tptr, "%2d", &ohour) != 1) return (SS$_IVTIME);
2 71866 if (isdigit(*tptr)) tptr++;
2 71867 if (isdigit(*tptr)) tptr++;
2 71868 if (*tptr == ':') tptr++;
2 71869 if (sscanf (tptr, "%2d", &omin) != 1) return (SS$_IVTIME);
2 71870 zoffset = (((ohour * 3600) + (omin * 60)) * Delta01Sec);
1 71871 }
1 71872
1 71873 time7[0] = year;
1 71874 time7[1] = month;
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 20
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 71875 time7[2] = day;
1 71876 time7[3] = hour;
1 71877 time7[4] = min;
1 71878 time7[5] = sec;
1 71879 time7[6] = frac;
1 71880 status = lib$cvt_vectim (&time7, &time64);
1 71881 if (VMSnok (status)) return (status);
1 71882
1 71883 if (offset == '+')
1 71884 time64 -= zoffset;
1 71885 else
1 71886 if (offset == '-')
1 71887 time64 += zoffset;
1 71888
1 71889 *Time64Ptr = time64;
1 71890
1 71891 return (status);
1 71892 }
71893
71894 /*****************************************************************************/
71895 /*
71896 Translate the logical WASD_UTC, WASD_GMT or HTTPD$GMT (defined to be something
71897 like "+10:30" or "-01:15") and convert it into a delta time and store in
71898 'TimeUtcDelta64'. If these are not present use the UTC time structure. And if
71899 this doesn't make sense (for whatever reason) use SYS$TIMEZONE_DIFFERENTIAL.
71900 */
71901
71902 void TimeSetHttpdUTC ()
71903
1 71904 {
1 71905 int hh, mm, offset, status;
1 71906 uint64 time128 [2];
1 71907 ushort time13 [13];
1 71908 char *cptr, *sptr;
1 71909
1 71910 /*********/
1 71911 /* begin */
1 71912 /*********/
1 71913
1 71914 if (!(cptr = SysTrnLnm (WASD_UTC)))
1 71915 if (!(cptr = SysTrnLnm (WASD_GMT)))
1 71916 cptr = SysTrnLnm (HTTPD$GMT);
1 71917
1 71918 if (cptr)
2 71919 {
2 71920 sptr = cptr;
2 71921 if (*cptr == '+' || *cptr == '-') cptr++;
2 71922 hh = atoi(cptr);
2 71923 while (isdigit(*cptr)) cptr++;
2 71924 while (!isdigit(*cptr)) cptr++;
2 71925 mm = atoi(cptr);
2 71926 if (hh >= 0 && hh <= 23 && mm >= 0 && hh <= 59)
3 71927 {
3 71928 offset = hh * 60 + mm;
3 71929 if (offset >= 0 && offset <= 1440)
4 71930 {
4 71931 if (*sptr == '-') offset = -offset;
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 21
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
4 71932 TimeUtcDelta64 = (int64)offset * TIME64_ONE_MIN;
3 71933 }
3 71934 else
3 71935 cptr = NULL;
3 71936 if (!(*sptr == '+' || *sptr == '-')) sptr = "+";
2 71937 }
2 71938 else
2 71939 cptr = NULL;
1 71940 }
1 71941
1 71942 if (!cptr)
2 71943 {
2 71944 /* use system UTC time */
2 71945 sys$getutc (&time128);
2 71946 sys$numutc (&time13, &time128);
2 71947 /* the timezone offset in minutes */
2 71948 offset = time13[12];
2 71949 TimeUtcDelta64 = (int64)offset * TIME64_ONE_MIN;
2 71950 if (!TimeUtcDelta64) TimeUtcDelta64 = DELTA64_TEN_MSEC;
2 71951 if (offset >= 0)
2 71952 sptr = "+";
2 71953 else
3 71954 {
3 71955 sptr = "-";
3 71956 offset = -offset;
2 71957 }
2 71958 hh = offset / 60;
2 71959 mm = offset % 60;
1 71960 }
1 71961
1 71962 if (offset > 1440)
2 71963 {
2 71964 /* if doesn't make sense fall back to this hoary old approach */
2 71965 if (cptr = SysTrnLnm ("SYS$TIMEZONE_DIFFERENTIAL"))
3 71966 {
3 71967 offset = atoi(cptr) / 60;
3 71968 if (offset <= 1440 || offset >= -1440)
4 71969 {
4 71970 TimeUtcDelta64 = (int64)offset * TIME64_ONE_MIN;
4 71971 if (!TimeUtcDelta64) TimeUtcDelta64 = DELTA64_TEN_MSEC;
4 71972 if (offset >= 0)
4 71973 sptr = "+";
4 71974 else
5 71975 {
5 71976 sptr = "-";
5 71977 offset = -offset;
4 71978 }
4 71979 hh = offset / 60;
4 71980 mm = offset % 60;
3 71981 }
2 71982 }
1 71983 }
1 71984
1 71985 sprintf (TimeGmtString, "%c%02.02d:%02.02d", *sptr, hh, mm);
1 71986 sprintf (TimeZoneString, "%c%02.02d%02.02d", *sptr, hh, mm);
1 71987 }
71988
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 22
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
71989 /*****************************************************************************/
71990 /*
71991 Adjust pointed-to time to GMT from local. /TimeUtcDelta64/ will either be
71992 positive 64 bits (i.e. VMS binary time) if ahead of GMT or negative 64 bits if
71993 behind (or zero if on GMT). So to move to GMT the delta to GMT is subtracted
71994 from the supplied time.
71995 */
71996
71997 void TimeAdjustToGMT (int64 *Time64Ptr)
71998
1 71999 {
1 72000 /*********/
1 72001 /* begin */
1 72002 /*********/
1 72003
1 72004 *Time64Ptr = *Time64Ptr - TimeUtcDelta64;
1 72005 }
72006
72007 /*****************************************************************************/
72008 /*
72009 Adjust pointed-to time from GMT to local. Same as above only /TimeUtcDelta64/
72010 is added to the supplied time.
72011 */
72012
72013 void TimeAdjustFromGMT (int64 *Time64Ptr)
72014
1 72015 {
1 72016 /*********/
1 72017 /* begin */
1 72018 /*********/
1 72019
1 72020 *Time64Ptr = *Time64Ptr + TimeUtcDelta64;
1 72021 }
72022
72023 /*****************************************************************************/
72024 /*
72025 */
72026
72027 char* DigitDayTime (int64 *Time64Ptr)
72028
1 72029 {
1 72030 static char TimeString [16];
1 72031 static $DESCRIPTOR (TimeFaoDsc, "!2ZL !2ZL:!2ZL:!2ZL\0");
1 72032 static $DESCRIPTOR (TimeStringDsc, TimeString);
1 72033
1 72034 int status;
1 72035 int64 time64;
1 72036 ushort time7 [7];
1 72037
1 72038 /*********/
1 72039 /* begin */
1 72040 /*********/
1 72041
1 72042 if (!Time64Ptr) sys$gettim (Time64Ptr = &time64);
1 72043 if (VMSnok (status = sys$numtim (&time7, Time64Ptr)))
1 72044 return ("*ERROR*");
1 72045 if (VMSnok (sys$fao (&TimeFaoDsc, 0, &TimeStringDsc,
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 23
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 72046 time7[2], time7[3], time7[4], time7[5])))
1 72047 return ("*ERROR*");
1 72048 return (TimeString);
1 72049 }
72050
72051 /*****************************************************************************/
72052 /*
72053 Return a pointer to the name of the day of the week for the supplied binary
72054 time. If a NULL pointer to the binary time then return current day of week.
72055 */
72056
72057 char* DayOfWeekName (int64 *Time64Ptr)
72058
1 72059 {
1 72060 int status;
1 72061 ulong DayOfWeek;
1 72062 int64 time64;
1 72063
1 72064 /*********/
1 72065 /* begin */
1 72066 /*********/
1 72067
1 72068 if (!Time64Ptr) sys$gettim (Time64Ptr = &time64);
1 72069 if (VMSnok (status = lib$day_of_week (Time64Ptr, &DayOfWeek)))
1 72070 DayOfWeek = 0;
1 72071 return (DayName[DayOfWeek]);
1 72072 }
72073
72074 /*****************************************************************************/
72075 /*
72076 HTTP/1.0 and HTTP/1.1 requests. If the content length has changed (HTTP/1.0 de
72077 facto standard), or if it has been modified since the specified date and time
72078 then return /true/ indicating that the object has been modified. If not
72079 modified then create a 304 HTTP header and return /false/ to indicate the file
72080 should not be sent. With VMS' fractions of a second, add one second to the
72081 specified 'since' time to ensure a reliable comparison.
72082
72083 Implements defacto HTTP/1.0 persistent connections. Currently we only provide
72084 "keep-alive" response if we're sending a file in binary mode and know its
72085 precise length. An accurate "Content-Length:" field is vital for the client's
72086 correct reception of the transmitted data. The only other time a "keep-alive"
72087 response can be provided is HERE, where a 304 header is returned (it has a
72088 content length of precisely zero!)
72089 */
72090
72091 BOOL HttpIfModifiedSince
72092 (
72093 REQUEST_STRUCT *rqptr,
72094 int64 *RdtTime64Ptr,
72095 int LastContentLength
72096 )
1 72097 {
1 72098 int64 time64;
1 72099
1 72100 /*********/
1 72101 /* begin */
1 72102 /*********/
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 24
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 72103
1 72104 if (WATCH_MODULE(WATCH_MOD__OTHER))
1 72105 WatchThis (WATCHALL, WATCH_MOD__OTHER,
1 72106 "HttpIfModifiedSince() !UL !UL !%D",
1 72107 LastContentLength, rqptr->rqHeader.IfModifiedSinceLength,
1 72108 &rqptr->rqTime.IfModifiedSinceTime64);
1 72109
1 72110 if (!rqptr->rqTime.IfModifiedSinceTime64) return (true);
1 72111
1 72112 if (rqptr->rqHeader.HttpVersion == HTTP_VERSION_1_0 &&
1 72113 rqptr->rqHeader.IfModifiedSinceLength >= 0 &&
1 72114 LastContentLength >= 0 &&
1 72115 rqptr->rqHeader.IfModifiedSinceLength != LastContentLength)
1 72116 return (true);
1 72117
1 72118 /* slide a second to help ensure a reliable result */
1 72119 time64 = *(INT64PTR)RdtTime64Ptr - TIME64_ONE_SEC;
1 72120 if (time64 < rqptr->rqTime.IfModifiedSinceTime64)
2 72121 {
2 72122 /* not modified (note the zero content length!) */
2 72123 ResponseHeader (rqptr, 304, NULL, 0, NULL, NULL);
2 72124 return (false);
1 72125 }
1 72126
1 72127 return (true);
1 72128 }
72129
72130 /*****************************************************************************/
72131 /*
72132 HTTP/1.1 if-not-modified-since request. If it has NOT been modified since the
72133 specified date and time then return /true/ indicating that the object has not
72134 been modified. If modified then create a 412 HTTP header (precondition failed)
72135 and return /false/ to indicate the request should not be processed. With VMS'
72136 fractions of a second, add one second to the specified 'since' time to ensure a
72137 reliable comparison.
72138 */
72139
72140 BOOL HttpIfUnModifiedSince
72141 (
72142 REQUEST_STRUCT *rqptr,
72143 int64 *RdtTime64Ptr
72144 )
1 72145 {
1 72146 int64 time64;
1 72147
1 72148 /*********/
1 72149 /* begin */
1 72150 /*********/
1 72151
1 72152 if (WATCH_MODULE(WATCH_MOD__OTHER))
1 72153 WatchThis (WATCHALL, WATCH_MOD__OTHER,
1 72154 "HttpIfUnModifiedSince() !%D",
1 72155 &rqptr->rqTime.IfModifiedSinceTime64);
1 72156
1 72157 if (!rqptr->rqTime.IfUnModifiedSinceTime64) return (true);
1 72158
1 72159 /* slide a second to help ensure a reliable result */
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 25
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 72160 time64 = *(INT64PTR)RdtTime64Ptr + TIME64_ONE_SEC;
1 72161 if (time64 > rqptr->rqTime.IfUnModifiedSinceTime64)
2 72162 {
2 72163 /* modified, precondition failed (note the zero content length!) */
2 72164 ResponseHeader (rqptr, 412, NULL, 0, NULL, NULL);
2 72165 return (true);
1 72166 }
1 72167
1 72168 /* if not modified! */
1 72169 return (false);
1 72170 }
72171
72172 /*****************************************************************************/
72173 /*
72174 HTTP/1.1 if-range not modified since.
72175 */
72176
72177 void HttpIfRange
72178 (
72179 REQUEST_STRUCT *rqptr,
72180 int64 *RdtTime64Ptr
72181 )
1 72182 {
1 72183 int64 time64;
1 72184
1 72185 /*********/
1 72186 /* begin */
1 72187 /*********/
1 72188
1 72189 if (WATCH_MODULE(WATCH_MOD__OTHER))
1 72190 WatchThis (WATCHALL, WATCH_MOD__OTHER,
1 72191 "HttpIfRange() !%D", &rqptr->rqTime.IfRangeBeginTime64);
1 72192
1 72193 if (!rqptr->rqTime.IfRangeBeginTime64) return;
1 72194
1 72195 /* slide a second to help ensure a reliable result */
1 72196 time64 = *(INT64PTR)RdtTime64Ptr + TIME64_ONE_SEC;
1 72197 if (time64 > rqptr->rqTime.IfModifiedSinceTime64)
2 72198 {
2 72199 /* modified, cancel any range data */
2 72200 if (rqptr->rqHeader.RangeBytePtr) rqptr->rqHeader.RangeBytePtr->Total = 0;
1 72201 }
1 72202 }
72203
72204 /*****************************************************************************/
72205 /*
72206 Return a reasonable HTTP status from the supplied VMS status.
72207 */
72208
72209 int VmsToHttpStatus (int VmsStatus)
72210
1 72211 {
1 72212 int HttpStatus;
1 72213
1 72214 /*********/
1 72215 /* begin */
1 72216 /*********/
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 26
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 72217
1 72218 if (VmsStatus == RMS$_DNF ||
1 72219 VmsStatus == RMS$_DEV ||
1 72220 VmsStatus == RMS$_FNF ||
1 72221 VmsStatus == RMS$_NMF ||
1 72222 VmsStatus == SS$_NOSUCHDEV ||
1 72223 VmsStatus == SS$_NOSUCHFILE)
1 72224 HttpStatus = 404;
1 72225 else
1 72226 if (VmsStatus == RMS$_SYN ||
1 72227 VmsStatus == RMS$_FNM ||
1 72228 VmsStatus == RMS$_TYP ||
1 72229 VmsStatus == RMS$_VER ||
1 72230 VmsStatus == RMS$_DIR ||
1 72231 VmsStatus == SS$_BADFILENAME ||
1 72232 VmsStatus == SS$_BADFILEVER ||
1 72233 VmsStatus == SS$_BADIRECTORY)
1 72234 HttpStatus = 403;
1 72235 else
1 72236 if (VmsStatus == RMS$_FLK)
1 72237 HttpStatus = 423;
1 72238 else
1 72239 if (VmsStatus == SS$_DIRNOTEMPTY ||
1 72240 VmsStatus == SS$_EXDISKQUOTA)
1 72241 HttpStatus = 409;
1 72242 else
1 72243 if (VmsStatus == RMS$_PRV ||
1 72244 VmsStatus == SS$_NOPRIV)
1 72245 HttpStatus = 403;
1 72246 else
1 72247 if (VmsStatus == SS$_CREATED)
1 72248 HttpStatus = 201;
1 72249 else
1 72250 if (VmsStatus & 1)
1 72251 HttpStatus = 200;
1 72252 else
1 72253 HttpStatus = 500;
1 72254
1 72255 if (WATCH_MODULE(WATCH_MOD__OTHER))
1 72256 WatchThis (WATCHALL, WATCH_MOD__OTHER,
1 72257 "VmsToHttpStatus() !&S !UL",
1 72258 VmsStatus, HttpStatus);
1 72259
1 72260 return (HttpStatus);
1 72261 }
72262
72263 /*****************************************************************************/
72264 /*
72265 Return the a pointer to abbreviated meaning of the supplied HTTP status code.
72266 These are typical of those included on the response header status line.
72267 */
72268
72269 char *HttpStatusCodeText (int StatusCode)
72270
1 72271 {
1 72272 /*********/
1 72273 /* begin */
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 27
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 72274 /*********/
1 72275
1 72276 switch (StatusCode)
2 72277 {
2 72278 case 100 : return ("Continue"); /* (HTTP/1.1) */
2 72279 case 101 : return ("Switching Protocols"); /* (HTTP/1.1) */
2 72280 case 102 : return ("Processing"); /* (WebDAV - RFC2581) */
2 72281 case 200 : return ("OK");
2 72282 case 201 : return ("Created");
2 72283 case 202 : return ("Accepted");
2 72284 case 203 : return ("Non-authoritative"); /* (HTTP/1.1) */
2 72285 case 204 : return ("No Content");
2 72286 case 205 : return ("Reset Content"); /* (HTTP/1.1) */
2 72287 case 206 : return ("Partial Content"); /* (HTTP/1.1) */
2 72288 case 207 : return ("Multistatus"); /* (WebDAV - RFC2581) */
2 72289 case 300 : return ("Multiple Choices"); /* (HTTP/1.1) */
2 72290 case 301 : return ("Moved Permanently");
2 72291 case 302 : return ("Found (Moved Temporarily)");
2 72292 case 303 : return ("See Other"); /* (HTTP/1.1) */
2 72293 case 304 : return ("Not Modified");
2 72294 case 305 : return ("Use Proxy"); /* (HTTP/1.1) */
2 72295 case 306 : return ("[reserved]");
2 72296 case 307 : return ("Temporary Redirect"); /* (HTTP/1.1) */
2 72297 case 400 : return ("Bad Request");
2 72298 case 401 : return ("Authorization Required");
2 72299 case 402 : return ("Payment Required"); /* (HTTP/1.1) */
2 72300 case 403 : return ("Forbidden");
2 72301 case 404 : return ("Not Found");
2 72302 case 405 : return ("Method Not Allowed"); /* (HTTP/1.1) */
2 72303 case 406 : return ("Not Acceptable"); /* (HTTP/1.1) */
2 72304 case 407 : return ("Proxy Authentication Required"); /* (HTTP/1.1) */
2 72305 case 408 : return ("Request Timeout"); /* (HTTP/1.1) */
2 72306 case 409 : return ("Conflict"); /* (HTTP/1.1) */
2 72307 case 410 : return ("Gone"); /* (HTTP/1.1) */
2 72308 case 411 : return ("Length Required"); /* (HTTP/1.1) */
2 72309 case 412 : return ("Precondition Failed"); /* (HTTP/1.1) */
2 72310 case 413 : return ("Request Entity Too Large"); /* (HTTP/1.1) */
2 72311 case 414 : return ("Request URI Too Long"); /* (HTTP/1.1) */
2 72312 case 415 : return ("Unsupported Media Type"); /* (HTTP/1.1) */
2 72313 case 416 : return ("Requested Range Not Satisfiable"); /* (HTTP/1.1) */
2 72314 case 417 : return ("Expectation Failed"); /* (HTTP/1.1) */
2 72315 case 418 : return ("I'm a teapot"); /* (RFC2324) */
2 72316 case 421 : return ("Misdirected Request"); /* (HTTP/2 - RFC7540) */
2 72317 case 422 : return ("Unprocessable Entity"); /* (WebDAV - RFC2581) */
2 72318 case 423 : return ("Locked"); /* (WebDAV - RFC2581) */
2 72319 case 424 : return ("Failed Dependency"); /* (WebDAV - RFC2581) */
2 72320 case 426 : return ("Upgrade Required"); /* (RFC2847) */
2 72321 case 500 : return ("Internal Error");
2 72322 case 501 : return ("Not Implemented");
2 72323 case 502 : return ("Bad Gateway");
2 72324 case 503 : return ("Service Unavailable");
2 72325 case 504 : return ("Gateway Timeout"); /* (HTTP/1.1) */
2 72326 case 505 : return ("HTTP Version Not Supported"); /* (HTTP/1.1) */
2 72327 case 507 : return ("Insufficient Storage"); /* (WebDAV - RFC2581) */
2 72328 default : return ("Unknown Code!");
1 72329 }
1 72330 }
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 28
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
72331
72332 /*****************************************************************************/
72333 /*
72334 Return the a pointer an explanation of the supplied HTTP status code. These
72335 are supplied from the message database can be are used in error messages, etc.
72336 */
72337
72338 char *HttpStatusCodeExplanation
72339 (
72340 REQUEST_STRUCT *rqptr,
72341 int StatusCode
72342 )
1 72343 {
1 72344 /*********/
1 72345 /* begin */
1 72346 /*********/
1 72347
1 72348 switch (StatusCode)
2 72349 {
2 72350 /* continue (HTTP/1.1) */
2 72351 case 100 : return (MsgFor(rqptr,MSG_HTTP_100));
2 72352 /* switching protocols (HTTP/1.1) */
2 72353 case 101 : return (MsgFor(rqptr,MSG_HTTP_101));
2 72354 /* processing (WedDAV - RFC2518) */
2 72355 case 102 : return ("processing");
2 72356 /* success */
2 72357 case 200 : return (MsgFor(rqptr,MSG_HTTP_200));
2 72358 /* created */
2 72359 case 201 : return (MsgFor(rqptr,MSG_HTTP_201));
2 72360 /* accepted */
2 72361 case 202 : return (MsgFor(rqptr,MSG_HTTP_202));
2 72362 /* non-authoritative (HTTP/1.1) */
2 72363 case 203 : return (MsgFor(rqptr,MSG_HTTP_203));
2 72364 /* no content */
2 72365 case 204 : return (MsgFor(rqptr,MSG_HTTP_204));
2 72366 /* reset content (HTTP/1.1) */
2 72367 case 205 : return (MsgFor(rqptr,MSG_HTTP_205));
2 72368 /* partial content (HTTP/1.1) */
2 72369 case 206 : return (MsgFor(rqptr,MSG_HTTP_206));
2 72370 /* multi-status (WedDAV - RFC2518) */
2 72371 case 207 : return ("multi-status");
2 72372 /* multiple choices (HTTP/1.1) */
2 72373 case 300 : return (MsgFor(rqptr,MSG_HTTP_300));
2 72374 /* moved permanently */
2 72375 case 301 : return (MsgFor(rqptr,MSG_HTTP_301));
2 72376 /* moved temporarily */
2 72377 case 302 : return (MsgFor(rqptr,MSG_HTTP_302));
2 72378 /* see other (HTTP/1.1) */
2 72379 case 303 : return (MsgFor(rqptr,MSG_HTTP_303));
2 72380 /* not modified */
2 72381 case 304 : return (MsgFor(rqptr,MSG_HTTP_304));
2 72382 /* use proxy (HTTP/1.1) */
2 72383 case 305 : return (MsgFor(rqptr,MSG_HTTP_305));
2 72384 /* reserved (WedDAV - RFC2518) */
2 72385 case 306 : return ("reserved");
2 72386 /* temporary redirect (WedDAV - RFC2518) */
2 72387 case 307 : return ("temporary redirect");
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 29
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
2 72388 /* bad request */
2 72389 case 400 : return (MsgFor(rqptr,MSG_HTTP_400));
2 72390 /* authorization required */
2 72391 case 401 : return (MsgFor(rqptr,MSG_HTTP_401));
2 72392 /* payment required */
2 72393 case 402 : return (MsgFor(rqptr,MSG_HTTP_402));
2 72394 /* forbidden */
2 72395 case 403 : return (MsgFor(rqptr,MSG_HTTP_403));
2 72396 /* not found */
2 72397 case 404 : return (MsgFor(rqptr,MSG_HTTP_404));
2 72398 /* method not allowed (HTTP/1.1) */
2 72399 case 405 : return (MsgFor(rqptr,MSG_HTTP_405));
2 72400 /* not acceptable (HTTP/1.1) */
2 72401 case 406 : return (MsgFor(rqptr,MSG_HTTP_406));
2 72402 /* proxy authentication required (HTTP/1.1) */
2 72403 case 407 : return (MsgFor(rqptr,MSG_HTTP_407));
2 72404 /* request timeout (HTTP/1.1) */
2 72405 case 408 : return (MsgFor(rqptr,MSG_HTTP_408));
2 72406 /* resource conflict (HTTP/1.1) */
2 72407 case 409 : return (MsgFor(rqptr,MSG_HTTP_409));
2 72408 /* gone (HTTP/1.1) */
2 72409 case 410 : return (MsgFor(rqptr,MSG_HTTP_410));
2 72410 /* length required (HTTP/1.1) */
2 72411 case 411 : return (MsgFor(rqptr,MSG_HTTP_411));
2 72412 /* precondition failed (HTTP/1.1) */
2 72413 case 412 : return (MsgFor(rqptr,MSG_HTTP_412));
2 72414 /* request entity too large (HTTP/1.1) */
2 72415 case 413 : return (MsgFor(rqptr,MSG_HTTP_413));
2 72416 /* request-URI too long (HTTP/1.1) */
2 72417 case 414 : return (MsgFor(rqptr,MSG_HTTP_414));
2 72418 /* unsupported media type (HTTP/1.1) */
2 72419 case 415 : return (MsgFor(rqptr,MSG_HTTP_415));
2 72420 /* requested range not satisfiable (HTTP/1.1) */
2 72421 case 416 : return (MsgFor(rqptr,MSG_HTTP_416));
2 72422 /* expectation failed (HTTP/1.1) */
2 72423 case 417 : return (MsgFor(rqptr,MSG_HTTP_417));
2 72424 /* misdirected request (HTTP/2 - RFC7540) */
2 72425 case 421 : return ("misdirected request");
2 72426 /* unprocessable entity (WedDAV - RFC2518) */
2 72427 case 422 : return ("unprocessable entity");
2 72428 /* locked (WedDAV - RFC2518) */
2 72429 case 423 : return ("locked");
2 72430 /* internal error */
2 72431 case 500 : return (MsgFor(rqptr,MSG_HTTP_500));
2 72432 /* not implemented */
2 72433 case 501 : return (MsgFor(rqptr,MSG_HTTP_501));
2 72434 /* bad gateway */
2 72435 case 502 : return (MsgFor(rqptr,MSG_HTTP_502));
2 72436 /* service unavailable */
2 72437 case 503 : return (MsgFor(rqptr,MSG_HTTP_503));
2 72438 /* gateway timeout (HTTP/1.1) */
2 72439 case 504 : return (MsgFor(rqptr,MSG_HTTP_504));
2 72440 /* HTTP version not supported (HTTP/1.1) */
2 72441 case 505 : return (MsgFor(rqptr,MSG_HTTP_505));
2 72442 /* unknown code! */
2 72443 default :
2 72444 return ("The server is reporting an UNKNOWN status code!");
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 30
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 72445 }
1 72446 }
72447
72448 /*****************************************************************************/
72449 /*
72450 Returns a pointer to a VmGetHeap()ed string of tags for an
72451 internally generated HTML document.
72452 */
72453
72454 char* HtmlMetaInfo
72455 (
72456 REQUEST_STRUCT *rqptr,
72457 char *VmsInfoPtr
72458 )
1 72459 {
1 72460 int status;
1 72461 ulong FaoVector [16];
1 72462 ulong *vecptr;
1 72463 ushort Length;
1 72464 char *MetaPtr;
1 72465 char Buffer [2048];
1 72466
1 72467 /*********/
1 72468 /* begin */
1 72469 /*********/
1 72470
1 72471 vecptr = &FaoVector;
1 72472 *vecptr++ = SoftwareID;
1 72473 *vecptr++ = rqptr->rqTime.GmDateTime;
1 72474
1 72475 if (rqptr->RemoteUser[0])
2 72476 {
2 72477 *vecptr++ = "\n";
2 72478 *vecptr++ = rqptr->RemoteUser;
2 72479 *vecptr++ = rqptr->rqAuth.RealmDescrPtr;
2 72480 *vecptr++ = rqptr->ServicePtr->ServerHostPort;
1 72481 }
1 72482 else
2 72483 {
2 72484 *vecptr++ = "\n";
2 72485 *vecptr++ = rqptr->ServicePtr->ServerHostPort;
1 72486 }
1 72487
1 72488 if (VmsInfoPtr && VmsInfoPtr[0])
2 72489 {
2 72490 if (Config.cfReport.MetaInfoEnabled)
3 72491 {
3 72492 *vecptr++ = "\n!&@";
3 72493 *vecptr++ = VmsInfoPtr;
3 72494 if (rqptr->PathOds)
4 72495 {
4 72496 *vecptr++ = "\n";
4 72497 switch (rqptr->PathOds)
5 72498 {
5 72499 case MAPURL_PATH_ODS_2 : *vecptr++ = "2"; break;
5 72500 case MAPURL_PATH_ODS_5 : *vecptr++ = "5"; break;
5 72501 case MAPURL_PATH_ODS_ADS : *vecptr++ = "ADS"; break;
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 31
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
5 72502 case MAPURL_PATH_ODS_PWK : *vecptr++ = "PWK"; break;
5 72503 case MAPURL_PATH_ODS_SMB : *vecptr++ = "SMB"; break;
5 72504 case MAPURL_PATH_ODS_SRI : *vecptr++ = "SRI"; break;
5 72505 default : *vecptr++ = "?";
4 72506 }
3 72507 }
3 72508 else
3 72509 *vecptr++ = "";
2 72510 }
2 72511 else
2 72512 *vecptr++ = "";
1 72513 }
1 72514 else
1 72515 *vecptr++ = "";
1 72516
1 72517 status = FaolToBuffer (Buffer, sizeof(Buffer), &Length,
1 72518 "\n\
1 72519 \n\
1 72520 !&@\
1 72521 !&@\
1 72522 \n",
1 72523 &FaoVector);
1 72524
1 72525 if (VMSnok (status) || status == SS$_BUFFEROVF)
2 72526 {
2 72527 ErrorNoticed (rqptr, status, NULL, FI_LI);
2 72528 return ("\n");
1 72529 }
1 72530
1 72531 MetaPtr = VmGetHeap (rqptr, Length+1);
1 72532 memcpy (MetaPtr, Buffer, Length+1);
1 72533
1 72534 return (MetaPtr);
1 72535 }
72536
72537 /*****************************************************************************/
72538 /*
72539 Return a string containing a duration string.
72540 Durations are in standard (VMS) 100nS units.
72541 If less than one minute provide as 'seconds.micro[milli]seconds'.
72542 If a minute or greater as '[ddd-]hh.mm.ss'.
72543 */
72544
72545 char* DurationString
72546 (
72547 REQUEST_STRUCT *rqptr,
72548 int64 *Time64Ptr
72549 )
1 72550 {
1 72551 static int bidx;
1 72552 static buf [4][32];
1 72553 static $DESCRIPTOR (DateFaoDsc, "!13%D\0");
1 72554 static $DESCRIPTOR (TimeFaoDsc, "!8%T\0");
1 72555 static $DESCRIPTOR (TimeDsc, "");
1 72556
1 72557 int64 time64;
1 72558 double dsecs;
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 32
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 72559 char *sptr;
1 72560
1 72561 /*********/
1 72562 /* begin */
1 72563 /*********/
1 72564
1 72565 if (WATCHMOD (rqptr, WATCH_MOD__OTHER))
1 72566 WatchThis (WATCHITM(rqptr), WATCH_MOD__OTHER,
1 72567 "DurationString() !&UQ !%T",
1 72568 Time64Ptr, Time64Ptr);
1 72569
1 72570 if (rqptr)
1 72571 sptr = VmGetHeap (rqptr, 32);
1 72572 else
2 72573 {
2 72574 sptr = buf[bidx++];
2 72575 if (bidx >= 4) bidx = 0;
1 72576 }
1 72577
1 72578 time64 = *Time64Ptr;
1 72579 if (!time64 || time64 == DELTA64_ZERO)
1 72580 sptr = "0.0s";
1 72581 else
1 72582 if (time64 >= DELTA64_ONE_SEC)
2 72583 {
2 72584 /* AVTWare https://www.avtware.com (EISNER) seems to sometimes return +ve times */
2 72585 if (time64 > 0) time64 = -time64;
2 72586 /* less than one second, give in milliseconds */
2 72587 dsecs = (double)time64;
2 72588 if (time64 > DELTA64_ONE_MSEC)
2 72589 sprintf (sptr, "%0.3fms", dsecs / (double)DELTA64_ONE_MSEC);
2 72590 else
2 72591 if (time64 > DELTA64_HUN_MSEC)
2 72592 sprintf (sptr, "%.1fms", dsecs / (double)DELTA64_ONE_MSEC);
2 72593 else
2 72594 sprintf (sptr, "%.0fms", dsecs / (double)DELTA64_ONE_MSEC);
1 72595 }
1 72596 else
1 72597 if (time64 >= DELTA64_ONE_MIN)
2 72598 {
2 72599 /* less than one minute, give in seconds and fractions */
2 72600 dsecs = (double)time64;
2 72601 if (time64 > DELTA64_TEN_SEC)
2 72602 sprintf (sptr, "%.3fs", dsecs / (double)DELTA64_ONE_SEC);
2 72603 else
2 72604 sprintf (sptr, "%.2fs", dsecs / (double)DELTA64_ONE_SEC);
1 72605 }
1 72606 else
1 72607 if (time64 >= DELTA64_ONE_DAY)
2 72608 {
2 72609 /* less than twenty-four hours */
2 72610 TimeDsc.dsc$a_pointer = sptr;
2 72611 TimeDsc.dsc$w_length = 32;
2 72612 sys$fao (&TimeFaoDsc, 0, &TimeDsc, Time64Ptr);
1 72613 }
1 72614 else
2 72615 {
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 33
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
2 72616 /* greater than twenty-four hours */
2 72617 TimeDsc.dsc$a_pointer = sptr;
2 72618 TimeDsc.dsc$w_length = 32;
2 72619 sys$fao (&DateFaoDsc, 0, &TimeDsc, Time64Ptr);
2 72620 sptr[4] = 160; /* ISO8859-1 non-breaking space */
2 72621 while (*sptr == ' ') sptr++;
1 72622 }
1 72623
1 72624 return (sptr);
1 72625 }
72626
72627 /*****************************************************************************/
72628 /*
72629 Return an allocated string containing the average duration.
72630 */
72631
72632 char* AverageDurationString
72633 (
72634 REQUEST_STRUCT *rqptr,
72635 int64 *Time64Ptr,
72636 ulong Count
72637 )
1 72638 {
1 72639 int status;
1 72640 int64 time64;
1 72641 float fcount;
1 72642
1 72643 /*********/
1 72644 /* begin */
1 72645 /*********/
1 72646
1 72647 if (WATCHMOD (rqptr, WATCH_MOD__OTHER))
1 72648 WatchThis (WATCHITM(rqptr), WATCH_MOD__OTHER,
1 72649 "AverageDurationString() !&X !&X !%T",
1 72650 Time64Ptr[0], Time64Ptr[1], Time64Ptr);
1 72651
1 72652 time64 = 0;
1 72653 if (Count)
2 72654 {
2 72655 time64 = *(INT64PTR)Time64Ptr;
2 72656 fcount = (float)Count;
2 72657 fcount = 1.0 / fcount;
2 72658
2 72659 status = lib$mults_delta_time (&fcount, &time64);
2 72660 if (VMSnok (status))
3 72661 {
3 72662 if (status != LIB$_IVTIME)
3 72663 ErrorNoticed (rqptr, status, NULL, FI_LI);
3 72664 time64 = 0;
2 72665 }
1 72666 }
1 72667 return (DurationString (rqptr, &time64));
1 72668 }
72669
72670 /*****************************************************************************/
72671 /*
72672 Format a string containing how many seconds, minutes, hours, days ago from the
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 34
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
72673 current time. For example; "15s", "10m", "17h", "152d". Return VMS status.
72674 |AgoBuf| should be at least 16 chars.
72675 */
72676
72677 void ThisLongAgo
72678 (
72679 int64 *Time64Ptr,
72680 char *AgoBuf
72681 )
1 72682 {
1 72683 static ulong LibDeltaSecs = LIB$K_DELTA_SECONDS;
1 72684 static $DESCRIPTOR (AgoFaoDsc, "!UL!AZ\0");
1 72685 static $DESCRIPTOR (AgoBufDsc, "");
1 72686
1 72687 int status;
1 72688 ulong SecsAgo;
1 72689 int64 NowTime64;
1 72690
1 72691 /*********/
1 72692 /* begin */
1 72693 /*********/
1 72694
1 72695 if (WATCH_MODULE(WATCH_MOD__OTHER))
1 72696 WatchThis (WATCHALL, WATCH_MOD__OTHER, "ThisLongAgo()");
1 72697
1 72698 *(USHORTPTR)AgoBuf = '0\0';
1 72699
1 72700 if (!*Time64Ptr) return;
1 72701
1 72702 sys$gettim (&NowTime64);
1 72703 SecsAgo = (NowTime64 - *Time64Ptr) / TIME64_ONE_SEC;
1 72704
1 72705 AgoBufDsc.dsc$a_pointer = AgoBuf;
1 72706 AgoBufDsc.dsc$w_length = 16;
1 72707
1 72708 status = SS$_NORMAL;
1 72709
1 72710 if (SecsAgo >= (60*60*24))
1 72711 status = sys$fao (&AgoFaoDsc, 0, &AgoBufDsc, SecsAgo / (60*60*24), "d");
1 72712 else
1 72713 if (SecsAgo >= (60*60))
1 72714 status = sys$fao (&AgoFaoDsc, 0, &AgoBufDsc, SecsAgo / (60*60), "h");
1 72715 else
1 72716 if (SecsAgo >= 60)
1 72717 status = sys$fao (&AgoFaoDsc, 0, &AgoBufDsc, SecsAgo / 60, "m");
1 72718 else
1 72719 if (SecsAgo > 1)
1 72720 status = sys$fao (&AgoFaoDsc, 0, &AgoBufDsc, SecsAgo, "s");
1 72721 else
1 72722 strncpy (AgoBuf, "now", sizeof(AgoBuf));
1 72723 }
72724
72725 /*****************************************************************************/
72726 /*
72727 Put into the supplied buffer the time with the year removed (e.g. 31-OCT
72728 23:01:15"). The buffer should have at least 16 bytes capacity.
72729 */
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 35
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
72730
72731 void TimeSansYear
72732 (
72733 ulong *Time64Ptr,
72734 char *Buffer
72735 )
1 72736 {
1 72737 static $DESCRIPTOR (TimeFaoDsc, "!20%D\0");
1 72738 static char TimeBuf [32];
1 72739 static $DESCRIPTOR (TimeBufDsc, TimeBuf);
1 72740
1 72741 int status;
1 72742 char *cptr, *sptr;
1 72743
1 72744 /*********/
1 72745 /* begin */
1 72746 /*********/
1 72747
1 72748 if (WATCH_MODULE(WATCH_MOD__OTHER))
1 72749 WatchThis (WATCHALL, WATCH_MOD__OTHER, "ThisLongAgo() !8XL", Time64Ptr);
1 72750
1 72751 if (!*(UINT64PTR)Time64Ptr)
2 72752 {
2 72753 strzcpy (Buffer, "(none)", 16);
2 72754 return;
1 72755 }
1 72756
1 72757 Buffer[0] = '\0';
1 72758 status = sys$fao (&TimeFaoDsc, 0, &TimeBufDsc, Time64Ptr);
1 72759 if (VMSnok (status)) return;
1 72760 sptr = Buffer;
1 72761 for (cptr = TimeBuf; *cptr && *cptr != '-'; *sptr++ = *cptr++);
1 72762 for (*sptr++ = *cptr++; *cptr && *cptr != '-'; *sptr++ = *cptr++);
1 72763 while (*cptr && *cptr != ' ') cptr++;
1 72764 while (*cptr) *sptr++ = *cptr++;
1 72765 *sptr = '\0';
1 72766 }
72767
72768 /*****************************************************************************/
72769 /*
72770 Convert a VMS quadword, binary time to a Unix-style time component structure.
72771 */
72772
72773 BOOL TimeVmsToUnix
72774 (
72775 int64 *Time64Ptr,
72776 struct tm *TmPtr
72777 )
1 72778 {
1 72779 static ulong LibDayOfWeek = LIB$K_DAY_OF_WEEK;
1 72780 static ulong LibDayOfYear = LIB$K_DAY_OF_YEAR;
1 72781
1 72782 int status;
1 72783 ulong DayOfWeek,
1 72784 DayOfYear;
1 72785 ushort time7 [7];
1 72786 int64 time64;
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 36
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 72787
1 72788 /*********/
1 72789 /* begin */
1 72790 /*********/
1 72791
1 72792 if (!Time64Ptr) sys$gettim (Time64Ptr = &time64);
1 72793
1 72794 if (VMSnok (status = sys$numtim (&time7, Time64Ptr)))
1 72795 return (status);
1 72796
1 72797 lib$cvt_from_internal_time (&LibDayOfWeek, &DayOfWeek, Time64Ptr);
1 72798 lib$cvt_from_internal_time (&LibDayOfYear, &DayOfYear, Time64Ptr);
1 72799
1 72800 TmPtr->tm_sec = time7[5];
1 72801 TmPtr->tm_min = time7[4];
1 72802 TmPtr->tm_hour = time7[3];
1 72803 TmPtr->tm_mday = time7[2];
1 72804 TmPtr->tm_mon = time7[1] - 1;
1 72805 TmPtr->tm_year = time7[0] - 1900;
1 72806 TmPtr->tm_wday = DayOfWeek;
1 72807 TmPtr->tm_yday = DayOfYear;
1 72808 TmPtr->tm_isdst = 0;
1 72809
1 72810 return (SS$_NORMAL);
1 72811 }
72812
72813 /*****************************************************************************/
72814 /*
72815 Convert a Unix-style 32 bit time in seconds to an equivalent 64 bit VMS time.
72816 */
72817
72818 void TimeUnix32ToVms64
72819 (
72820 ulong time32,
72821 uint64 *time64ptr
72822 )
1 72823 {
1 72824 /*********/
1 72825 /* begin */
1 72826 /*********/
1 72827
1 72828 /* ((unix seconds + seconds since 17-NOV-1858) * 10nS) + timezone */
1 72829 uint64 time64 = (((uint64)time32 + 3506716800) * 10000000) + TimeUtcDelta64;
1 72830 if (time64ptr) *time64ptr = time64;
1 72831 }
72832
72833 /****************************************************************************/
72834 /*
72835 generate a standard VMS protection string from the mask. 'String' must be at
72836 least 28 bytes (better use 32 :^) Returns the length of the string.
72837 */
72838
72839 int FormatProtection
72840 (
72841 ushort pmask,
72842 char *String
72843 )
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 37
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 72844 {
1 72845 char *sptr;
1 72846
1 72847 /*********/
1 72848 /* begin */
1 72849 /*********/
1 72850
1 72851 sptr = String;
1 72852
1 72853 if (!(pmask & 0x0001)) *sptr++ = 'R';
1 72854 if (!(pmask & 0x0002)) *sptr++ = 'W';
1 72855 if (!(pmask & 0x0004)) *sptr++ = 'E';
1 72856 if (!(pmask & 0x0008)) *sptr++ = 'D';
1 72857 *sptr++ = ',';
1 72858 if (!(pmask & 0x0010)) *sptr++ = 'R';
1 72859 if (!(pmask & 0x0020)) *sptr++ = 'W';
1 72860 if (!(pmask & 0x0040)) *sptr++ = 'E';
1 72861 if (!(pmask & 0x0080)) *sptr++ = 'D';
1 72862 *sptr++ = ',';
1 72863 if (!(pmask & 0x0100)) *sptr++ = 'R';
1 72864 if (!(pmask & 0x0200)) *sptr++ = 'W';
1 72865 if (!(pmask & 0x0400)) *sptr++ = 'E';
1 72866 if (!(pmask & 0x0800)) *sptr++ = 'D';
1 72867 *sptr++ = ',';
1 72868 if (!(pmask & 0x1000)) *sptr++ = 'R';
1 72869 if (!(pmask & 0x2000)) *sptr++ = 'W';
1 72870 if (!(pmask & 0x4000)) *sptr++ = 'E';
1 72871 if (!(pmask & 0x8000)) *sptr++ = 'D';
1 72872
1 72873 *sptr = '\0';
1 72874 return (sptr - String);
1 72875 }
72876
72877 /*****************************************************************************/
72878 /*
72879 Just return the process' current BYTLM quota.
72880 */
72881
72882 GetJpiBytLm ()
72883
1 72884 {
1 72885 static ulong Pid = 0;
1 72886
1 72887 static ulong JpiBytLm;
1 72888 static VMS_ITEM_LIST3 JpiItems [] =
1 72889 {
1 72890 { sizeof(JpiBytLm), JPI$_BYTLM, &JpiBytLm, 0 },
1 72891 {0,0,0,0}
1 72892 };
1 72893
1 72894 int status;
1 72895 IO_SB IOsb;
1 72896
1 72897 /*********/
1 72898 /* begin */
1 72899 /*********/
1 72900
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 38
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 72901 status = sys$getjpiw (EfnWait, &Pid, 0, &JpiItems, &IOsb, 0, 0);
1 72902 if (VMSok (status)) status = IOsb.Status;
1 72903 if (VMSok (status)) return (JpiBytLm);
1 72904 ErrorExitVmsStatus (status, NULL, FI_LI);
1 72905 }
72906
72907 /*****************************************************************************/
72908 /*
72909 Returns a pointer to a dynamic string containing the client host details as
72910 "name (address)" or just "address".
72911 */
72912
72913 char* ClientHostString (REQUEST_STRUCT *rqptr)
72914
1 72915 {
1 72916 static $DESCRIPTOR (AddressFaoDsc, "!AZ\0");
1 72917 static $DESCRIPTOR (NameAddressFaoDsc, "!AZ (!AZ)\0");
1 72918
1 72919 ushort slen;
1 72920 char *cptr;
1 72921 char Buffer [256];
1 72922 $DESCRIPTOR (BufferDsc, Buffer);
1 72923
1 72924 /*********/
1 72925 /* begin */
1 72926 /*********/
1 72927
1 72928 if (!strcmp (rqptr->ClientPtr->Lookup.HostName,
1 72929 &rqptr->ClientPtr->IpAddressString))
1 72930 sys$fao (&AddressFaoDsc, &slen, &BufferDsc,
1 72931 &rqptr->ClientPtr->IpAddressString);
1 72932 else
1 72933 sys$fao (&NameAddressFaoDsc, &slen, &BufferDsc,
1 72934 rqptr->ClientPtr->Lookup.HostName,
1 72935 &rqptr->ClientPtr->IpAddressString);
1 72936
1 72937 cptr = VmGetHeap (rqptr, slen+1);
1 72938 strzcpy (cptr, Buffer, slen+1);
1 72939 return (cptr);
1 72940 }
72941
72942 /*****************************************************************************/
72943 /*
72944 */
72945
72946 char* UserAtClient (REQUEST_STRUCT *rqptr)
72947
1 72948 {
1 72949 int len;
1 72950 char *cptr, *sptr, *zptr;
1 72951 char StringBuffer [256];
1 72952
1 72953 /*********/
1 72954 /* begin */
1 72955 /*********/
1 72956
1 72957 if (!rqptr->RemoteUser[0]) return (rqptr->ClientPtr->Lookup.HostName);
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 39
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 72958
1 72959 zptr = (sptr = StringBuffer) + sizeof(StringBuffer)-1;
1 72960 for (cptr = rqptr->RemoteUser; *cptr; cptr++)
1 72961 if (!isalnum(*cptr) && *cptr != '-' && *cptr != '_') break;
1 72962 if (*cptr) *sptr++ = '\"';
1 72963 for (cptr = rqptr->RemoteUser;
1 72964 *cptr && sptr < zptr;
1 72965 *sptr++ = *cptr++);
1 72966 if (StringBuffer[0] == '\"' && sptr < zptr) *sptr++ = '\"';
1 72967 if (rqptr->rqAuth.RealmPtr)
2 72968 {
2 72969 if (sptr < zptr) *sptr++ = '.';
2 72970 for (cptr = rqptr->rqAuth.RealmPtr;
2 72971 *cptr && sptr < zptr;
2 72972 *sptr++ = *cptr++);
1 72973 }
1 72974 if (sptr < zptr) *sptr++ = '@';
1 72975 for (cptr = rqptr->ClientPtr->Lookup.HostName;
1 72976 *cptr && sptr < zptr;
1 72977 *sptr++ = *cptr++);
1 72978 *sptr = '\0';
1 72979
1 72980 cptr = VmGetHeap (rqptr, len = sptr-StringBuffer+1);
1 72981 strzcpy (cptr, StringBuffer, len);
1 72982 return (cptr);
1 72983 }
72984
72985 /****************************************************************************/
72986 /*
72987 Given a buffer of UTF-8 convert in-situ to 8 bit ASCII. Ignore non- 8 bit
72988 ASCII characters. End-of-string is indicated by text-length not a
72989 null-character, however the resultant string is nulled. If supplied the 8 bit
72990 character 'SubsChar' is substituted for any non 8 bit code in the string.
72991 Return the number of converted characters. Return -1 if there is an error.
72992 The string is mangled if an error.
72993 */
72994
72995 int ConvertFromUtf8
72996 (
72997 char *UtfPtr,
72998 int UtfCount,
72999 char SubsChar
73000 )
1 73001 {
1 73002 uchar ch;
1 73003 uchar *cptr, *sptr, *zptr;
1 73004
1 73005 /*********/
1 73006 /* begin */
1 73007 /*********/
1 73008
1 73009 if (WATCH_MODULE(WATCH_MOD__OTHER))
1 73010 WatchThis (WATCHALL, WATCH_MOD__OTHER,
1 73011 "ConvertFromUtf8() !&C !#H", SubsChar, UtfCount, UtfPtr);
1 73012
1 73013 if (UtfCount == -1) UtfCount = strlen(UtfPtr);
1 73014
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 40
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 73015 if (UtfCount < 0) return (-1);
1 73016
1 73017 /* is there a potentially UTF-8 bit pattern here? */
1 73018 for (zptr = (cptr = (uchar*)UtfPtr) + UtfCount; cptr < zptr; cptr++)
1 73019 if ((*cptr & 0xc0) == 0xc0) break;
1 73020
1 73021 /* return if no UTF-8 conversion necessary (i.e. all 7 bit characters) */
1 73022 if (cptr >= zptr) return (UtfCount);
1 73023 if (*cptr == 0xff) return (cptr - (uchar*)UtfPtr);
1 73024
1 73025 sptr = cptr;
1 73026 while (cptr < zptr)
2 73027 {
2 73028 if ((*cptr & 0xf8) == 0xf0)
3 73029 {
3 73030 /* four byte sequence */
3 73031 if (++cptr >= zptr) goto utf8_nbg;
3 73032 if ((*cptr & 0xc0) != 0x80) goto utf8_nbg;
3 73033 if (++cptr >= zptr) goto utf8_nbg;
3 73034 if ((*cptr & 0xc0) != 0x80) goto utf8_nbg;
3 73035 if (++cptr >= zptr) goto utf8_nbg;
3 73036 if ((*cptr & 0xc0) != 0x80) goto utf8_nbg;
3 73037 if (SubsChar) *sptr++ = SubsChar;
2 73038 }
2 73039 else
2 73040 if ((*cptr & 0xf0) == 0xe0)
3 73041 {
3 73042 /* three byte sequence */
3 73043 if (++cptr >= zptr) goto utf8_nbg;
3 73044 if ((*cptr & 0xc0) != 0x80) goto utf8_nbg;
3 73045 if (++cptr >= zptr) goto utf8_nbg;
3 73046 if ((*cptr & 0xc0) != 0x80) goto utf8_nbg;
3 73047 if (SubsChar) *sptr++ = SubsChar;
2 73048 }
2 73049 else
2 73050 if ((*cptr & 0xe0) == 0xc0)
3 73051 {
3 73052 /* two byte sequence */
3 73053 if (*cptr & 0x1c)
4 73054 {
4 73055 /* out-of-range character */
4 73056 if (++cptr >= zptr) goto utf8_nbg;
4 73057 if ((*cptr & 0xc0) != 0x80) goto utf8_nbg;
4 73058 if (++cptr >= zptr) goto utf8_nbg;
4 73059 if (SubsChar) *sptr++ = SubsChar;
3 73060 }
3 73061 else
4 73062 {
4 73063 /* 8 bit ASCII 128 to 255 */
4 73064 ch = (*cptr & 0x03) << 6;
4 73065 if (++cptr >= zptr) goto utf8_nbg;
4 73066 if ((*cptr & 0xc0) != 0x80) goto utf8_nbg;
4 73067 ch |= *cptr & 0x3f;
4 73068 *sptr++ = ch;
4 73069 cptr++;
3 73070 }
2 73071 }
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 41
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
2 73072 else
3 73073 {
3 73074 /* 8 bit ASCII 0 to 127 */
3 73075 *sptr++ = *cptr++;
2 73076 }
1 73077 }
1 73078 *sptr = '\0';
1 73079
1 73080 return (sptr - (uchar*)UtfPtr);
1 73081
1 73082 utf8_nbg:
1 73083 return (-1);
1 73084 }
73085
73086 /****************************************************************************/
73087 /*
73088 Given a buffer of 8 bit ASCII text convert it in-situ to UTF-8. Worst-case the
73089 buffer space needs to be two times in size (i.e. every character has the hi bit
73090 set requiring a leading UTF-8 byte). End-of-string is indicated by text-length
73091 not a null-character, however the resultant string is nulled. Return the
73092 length of the converted string. Return -1 if the buffer space will be too
73093 small.
73094 */
73095
73096 int ConvertToUtf8
73097 (
73098 char *TextPtr,
73099 int TextLength,
73100 int SizeOfText
73101 )
1 73102 {
1 73103 int HiBitCount = 0;
1 73104 char *cptr, *sptr, *zptr;
1 73105
1 73106 /*********/
1 73107 /* begin */
1 73108 /*********/
1 73109
1 73110 if (WATCH_MODULE(WATCH_MOD__OTHER))
1 73111 WatchThis (WATCHALL, WATCH_MOD__OTHER,
1 73112 "ConvertFromUtf8() !!UL !#H", SizeOfText, TextLength, TextPtr);
1 73113
1 73114 if (TextLength == -1) TextLength = strlen(TextPtr);
1 73115
1 73116 for (zptr = (cptr = TextPtr) + TextLength; cptr < zptr; cptr++)
1 73117 if (*cptr & 0x80) HiBitCount++;
1 73118
1 73119 if (!HiBitCount) return (TextLength);
1 73120
1 73121 if (TextLength + HiBitCount >= SizeOfText - 1) return (-1);
1 73122
1 73123 sptr = (cptr = (zptr = TextPtr) + TextLength - 1) + HiBitCount + 1;
1 73124 *sptr-- = '\0';
1 73125 while (cptr >= zptr)
2 73126 {
2 73127 if (*cptr & 0x80)
3 73128 {
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 42
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
3 73129 *sptr-- = (*cptr & 0x3f) | 0x80;
3 73130 *sptr-- = ((*cptr-- & 0xc0) >> 6) | 0xc0;
2 73131 }
2 73132 else
2 73133 *sptr-- = *cptr--;
1 73134 }
1 73135
1 73136 return (TextLength + HiBitCount);
1 73137 }
73138
73139 /****************************************************************************/
73140 /*
73141 For UTF-8 encoded file names hex-escape characters that cause issues. This is
73142 intended to feed into RMS services such as $PARSE. Return zero if the original
73143 string can be used. Return minus one if the buffer overflowed. Return the
73144 number of characters in the escaped string when the buffer should be used.
73145 */
73146
73147 int ConvertUtf8ToEscape
73148 (
73149 char *FileSpec,
73150 char *BufferPtr,
73151 int BufferSize
73152 )
1 73153 {
1 73154 static char HexDigit [] = "0123456789ABCDEF";
1 73155 static char ScratchBuffer [ODS_MAX_FILE_NAME_LENGTH+1];
1 73156
1 73157 char *cptr, *sptr, *zptr;
1 73158
1 73159 /*********/
1 73160 /* begin */
1 73161 /*********/
1 73162
1 73163 if (WATCH_MODULE(WATCH_MOD__OTHER))
1 73164 WatchThis (WATCHALL, WATCH_MOD__OTHER,
1 73165 "ConvertUtf8ToEscape() !&Z", FileSpec);
1 73166
1 73167 for (cptr = FileSpec; *cptr; cptr++)
1 73168 if (*(uchar*)cptr >= 0x80 && *(uchar*)cptr <= 0x9f)
1 73169 break;
1 73170
1 73171 if (!*cptr) return (0);
1 73172
1 73173 if (BufferPtr == FileSpec)
2 73174 {
2 73175 /* reusing the file spec buffer so put it into a scratch buffer */
2 73176 zptr = (sptr = ScratchBuffer) + sizeof(ScratchBuffer)-1;
2 73177 for (cptr = FileSpec; *cptr && sptr < zptr; *sptr++ = *cptr++);
2 73178 if (sptr >= zptr)
3 73179 {
3 73180 BufferPtr[0] = '\0';
3 73181 return (-1);
2 73182 }
2 73183 *sptr = '\0';
2 73184 cptr = ScratchBuffer;
1 73185 }
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 43
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 73186 else
1 73187 cptr = FileSpec;
1 73188
1 73189 zptr = (sptr = BufferPtr) + BufferSize - 1;
1 73190 while (*cptr && sptr < zptr)
2 73191 {
2 73192 if (*(uchar*)cptr >= 0x80 && *(uchar*)cptr <= 0x9f)
3 73193 {
3 73194 *sptr++ = '^';
3 73195 if (sptr < zptr) *sptr++ = HexDigit[((uchar)*cptr & 0xf0) >> 4];
3 73196 if (sptr < zptr) *sptr++ = HexDigit[(uchar)*cptr & 0x0f];
3 73197 cptr++;
2 73198 }
2 73199 else
2 73200 *sptr++ = *cptr++;
1 73201 }
1 73202
1 73203 if (sptr >= zptr)
2 73204 {
2 73205 BufferPtr[0] = '\0';
2 73206 return (-1);
1 73207 }
1 73208
1 73209 *sptr = '\0';
1 73210 if (WATCH_MODULE(WATCH_MOD_ODS))
1 73211 WatchThis (WATCHALL, WATCH_MOD_ODS, "!&Z", BufferPtr);
1 73212
1 73213 return (sptr - BufferPtr);
1 73214 }
73215
73216 /*****************************************************************************/
73217 /*
73218 Generate a unique, one-time-per-request nonce.
73219 */
73220
73221 char* GenerateCspNonce (REQUEST_STRUCT *rqptr)
73222
1 73223 {
1 73224 static uint64 CspNonce [3];
1 73225
1 73226 /*********/
1 73227 /* begin */
1 73228 /*********/
1 73229
1 73230 if (rqptr->CspNonce[0]) return (rqptr->CspNonce);
1 73231
1 73232 sys$gettim (CspNonce[0]);
1 73233 CspNonce[1] = CspNonce[1] * 69069 + 1;
1 73234 CspNonce[2] = HttpdProcess.Pid;
1 73235
1 73236 Md5HexString (CspNonce, sizeof(CspNonce), rqptr->CspNonce);
1 73237 rqptr->CspNonce[CSP_NONCE_SIZE] = '\0';
1 73238
1 73239 return (rqptr->CspNonce);
1 73240 }
73241
73242 /*****************************************************************************/
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 44
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
73243 /*
73244 Generate a unique request identifier.
73245 */
73246
73247 char* GenerateUniqueId (REQUEST_STRUCT *rqptr)
73248
1 73249 {
1 73250 static uint64 UniqueId [3];
1 73251 static char UniqueIdString [32+1];
1 73252
1 73253 /*********/
1 73254 /* begin */
1 73255 /*********/
1 73256
1 73257 sys$gettim (UniqueId[0]);
1 73258 UniqueId[1] = HttpdProcess.Pid;
1 73259 UniqueId[2] = UniqueId[2] * 69069 + 1;
1 73260
1 73261 Md5HexString (UniqueId, sizeof(UniqueId), UniqueIdString);
1 73262 UniqueIdString[UNIQUE_ID_SIZE] = '\0';
1 73263
1 73264 return (UniqueIdString);
1 73265 }
73266
73267 /*****************************************************************************/
73268 /*
73269 Translate a logical name using LNM$FILE_DEV. Returns a pointer to the value
73270 string as a pointer to a static buffer which must be copied if to be retained,
73271 or NULL if the name does not exist.
73272 */
73273
73274 char* SysTrnLnm (char *LogName)
73275
1 73276 {
1 73277 static ushort ValueLength;
1 73278 static ulong LnmAttributes;
1 73279 static char LogValue [256];
1 73280 static $DESCRIPTOR (LogNameDsc, "");
1 73281 static $DESCRIPTOR (LnmTableDsc, "LNM$FILE_DEV");
1 73282 static struct {
1 73283 short int buf_len;
1 73284 short int item;
1 73285 void *buf_addr;
1 73286 ushort *ret_len;
1 73287 } LnmItems [] =
1 73288 {
1 73289 { sizeof(LnmAttributes), LNM$_ATTRIBUTES, &LnmAttributes, 0 },
1 73290 { sizeof(LogValue)-1, LNM$_STRING, LogValue, &ValueLength },
1 73291 { 0,0,0,0 }
1 73292 };
1 73293
1 73294 int status;
1 73295 char *cptr;
1 73296
1 73297 /*********/
1 73298 /* begin */
1 73299 /*********/
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 45
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 73300
1 73301 for (cptr = LogName; *cptr; cptr++);
1 73302 LogNameDsc.dsc$w_length = cptr - LogName;
1 73303 LogNameDsc.dsc$a_pointer = LogName;
1 73304
1 73305 memset (LogValue, 0, sizeof(LogValue));
1 73306
1 73307 status = sys$trnlnm (0, &LnmTableDsc, &LogNameDsc, 0, &LnmItems);
1 73308 if (!(status & 1) || !(LnmAttributes & LNM$M_EXISTS)) return (NULL);
1 73309
1 73310 return (LogValue);
1 73311 }
73312
73313 /****************************************************************************/
73314 /*
73315 Assign a global symbol.
73316 */
73317
73318 int SetGlobalSymbol
73319 (
73320 char *Name,
73321 char *String
73322 )
1 73323 {
1 73324 static int GlobalSymbol = LIB$K_CLI_GLOBAL_SYM;
1 73325 static $DESCRIPTOR (NameDsc, "");
1 73326 static $DESCRIPTOR (ValueDsc, "");
1 73327
1 73328 int status;
1 73329
1 73330 /*********/
1 73331 /* begin */
1 73332 /*********/
1 73333
1 73334 NameDsc.dsc$a_pointer = Name;
1 73335 NameDsc.dsc$w_length = strlen(Name);
1 73336 ValueDsc.dsc$a_pointer = String;
1 73337 ValueDsc.dsc$w_length = strlen(String);
1 73338
1 73339 status = lib$set_symbol (&NameDsc, &ValueDsc, &GlobalSymbol);
1 73340 return (status);
1 73341 }
73342
73343 /*****************************************************************************/
73344 /*
73345 Return a float number of seconds.
73346 */
73347
73348 float FloatDeltaTime (ulong *DeltaTimePtr)
73349
1 73350 {
1 73351 static int LibDeltaSecs = LIB$K_DELTA_SECONDS_F;
1 73352
1 73353 int status;
1 73354 float fsecs;
1 73355
1 73356 /*********/
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 46
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1 73357 /* begin */
1 73358 /*********/
1 73359
1 73360 if (*DeltaTimePtr == DELTA64_ZERO) return (0.0);
1 73361
1 73362 #ifdef __ia64
1 73363 status = lib$cvts_from_internal_time (&LibDeltaSecs, &fsecs, DeltaTimePtr);
1X 73364 #else
1X 73365 status = lib$cvtf_from_internal_time (&LibDeltaSecs, &fsecs, DeltaTimePtr);
1X 73366 # ifdef __ALPHA
1X 73367 if (VMSok(status))
1X 73368 status = cvt$convert_float (&fsecs, CVT$K_VAX_F,
1X 73369 &fsecs, CVT$K_IEEE_S, 0);
1X 73370 # endif
1X 73371 #endif
1 73372 if (VMSnok(status))
2 73373 {
2 73374 ErrorNoticed (NULL, status, "lib$cvts_from_internal_time()", FI_LI);
2 73375 return (0.0);
1 73376 }
1 73377
1 73378 return (fsecs);
1 73379 }
73380
73381 /*****************************************************************************/
73382 /*
73383 Return a longword bytes/second.
73384 */
73385
73386 int BytesPerSecond
73387 (
73388 ulong *BytesRxPtr,
73389 ulong *BytesTxPtr,
73390 ulong *DeltaTimePtr
73391 )
1 73392 {
1 73393 static int LibDeltaSecs = LIB$K_DELTA_SECONDS_F;
1 73394
1 73395 int status;
1 73396 uint bps;
1 73397 float fbytes = 0.0,
1 73398 fsecs;
1 73399
1 73400 /*********/
1 73401 /* begin */
1 73402 /*********/
1 73403
1 73404 /* if zero time then only an artifact will be generated! */
1 73405 if (!*DeltaTimePtr || *DeltaTimePtr == DELTA64_ZERO) return (0);
1 73406
1 73407 if (BytesRxPtr)
1 73408 fbytes += (float)BytesRxPtr[0] +
1 73409 ((float)BytesRxPtr[1] * 4294967296.0);
1 73410 if (BytesTxPtr)
1 73411 fbytes += (float)BytesTxPtr[0] +
1 73412 ((float)BytesTxPtr[1] * 4294967296.0);
1 73413
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 47
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
1X 73414 #ifdef __ALPHA
1X 73415 status = lib$cvtf_from_internal_time (&LibDeltaSecs, &fsecs, DeltaTimePtr);
1X 73416 if (VMSok(status))
1X 73417 status = cvt$convert_float (&fsecs, CVT$K_VAX_F,
1X 73418 &fsecs, CVT$K_IEEE_S, 0);
1X 73419 #else
1 73420 status = lib$cvts_from_internal_time (&LibDeltaSecs, &fsecs, DeltaTimePtr);
1 73421 #endif
1 73422 if (VMSnok(status))
2 73423 {
2 73424 if (status != LIB$_DELTIMREQ)
2 73425 ErrorNoticed (NULL, status, "lib$cvts_from_internal_time()", FI_LI);
2 73426 return (0);
1 73427 }
1 73428
1 73429 /* if greater than 2000000000 (2GB/S) it's likely to be an artifact! */
1 73430 if ((bps = (uint)(fbytes / fsecs)) < 2000000000)
1 73431 return ((int)bps);
1 73432 else
1 73433 return (0);
1 73434 }
73435
73436 /*****************************************************************************/
73437 /*
73438 Calculate percentages of unsigned longs using floats to avoid integer overflow
73439 and allowing more accurate rounding.
73440 */
73441
73442 int PercentOf32
73443 (
73444 ulong arg1,
73445 ulong arg2
73446 )
1 73447 {
1 73448 int iperc;
1 73449 float farg1, farg2, fperc;
1 73450
1 73451 /*********/
1 73452 /* begin */
1 73453 /*********/
1 73454
1 73455 if (arg2)
2 73456 {
2 73457 farg1 = (float)arg1;
2 73458 farg2 = (float)arg2;
2 73459 fperc = farg1 * 100.0 / farg2;
2 73460 iperc = (int)fperc;
2 73461 if (fperc - (float)iperc >= 0.5) iperc++;
2 73462 return (iperc);
1 73463 }
1 73464 return (0);
1 73465 }
73466
73467 /*****************************************************************************/
73468 /*
73469 Calculate percentages of unsigned 64bits using floats to avoid overflow and
73470 allowing more accurate rounding.
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 48
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
73471 */
73472
73473 int PercentOf64
73474 (
73475 uint64 *arg1,
73476 uint64 *arg2
73477 )
1 73478 {
1 73479 int iqperc;
1 73480 float farg1, farg2, fqperc;
1 73481
1 73482 /*********/
1 73483 /* begin */
1 73484 /*********/
1 73485
1 73486 if (arg2)
2 73487 {
2 73488 farg1 = (float)(*(UINT64PTR)arg1);
2 73489 farg2 = (float)(*(UINT64PTR)arg2);
2 73490 if (farg2 == 0.0) return (0);
2 73491 fqperc = farg1 * 100.0 / farg2;
2 73492 iqperc = (int)fqperc;
2 73493 if (fqperc - (float)iqperc >= 0.5) iqperc++;
2 73494 return (iqperc);
1 73495 }
1 73496 return (0);
1 73497 }
73498
73499 /*****************************************************************************/
73500 /*
73501 Integer power-of.
73502 */
73503
73504 int ipow
73505 (
73506 int base,
73507 int exp
73508 )
1 73509 {
1 73510 int result = 1;
1 73511
1 73512 /*********/
1 73513 /* begin */
1 73514 /*********/
1 73515
1 73516 while (exp)
2 73517 {
2 73518 if (exp & 1) result *= base;
2 73519 exp >>= 1;
2 73520 base *= base;
1 73521 }
1 73522
1 73523 return (result);
1 73524 }
73525
73526 /*****************************************************************************/
73527 /*
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 49
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
73528 132 columns!
73529 */
73530
X 73531 #if WATCH_MOD
X 73532
X 73533 void TimeTest ()
X 73534
X 73535 {
X 73536 int status;
X 73537 int64 time64;
X 73538 uint64 time128 [2];
X 73539 ushort time7 [7],
X 73540 time13 [13];
X 73541 char *cptr;
X 73542 char buf [256];
X 73543
X 73544 /*********/
X 73545 /* begin */
X 73546 /*********/
X 73547
X 73548 sys$getutc (&time128);
X 73549 status = sys$numutc (&time13, &time128);
X 73550 printf ("sys$numutc() %%X%08.08X %d %d %d %d %d %d %d %d %d %d %d %d %d\n",
X 73551 status,
X 73552 time13[0], time13[1], time13[2], time13[3], time13[4],
X 73553 time13[5], time13[6], time13[7], time13[8], time13[9],
X 73554 time13[10], time13[11], time13[12]);
X 73555
X 73556 TimeSetHttpdUTC ();
X 73557 printf ("TimeUtcDelta64: %lld sec:%lld min:%lld |%s|\n",
X 73558 TimeUtcDelta64, TimeUtcDelta64 / TIME64_ONE_SEC,
X 73559 TimeUtcDelta64 / TIME64_ONE_MIN, TimeGmtString);
X 73560
X 73561 HttpGetTime (cptr = "Fri, 25 Aug 1995 17:32:40 GMT", &time64);
X 73562 sys$numtim (&time7, &time64);
X 73563 HttpGmTimeString (buf, &time64);
X 73564 printf ("%32.32s %d %d %d %d %d %d %d |%s|\n",
X 73565 cptr, time7[0], time7[1], time7[2], time7[3], time7[4],
X 73566 time7[5], time7[6], buf);
X 73567
X 73568 HttpGetTime (cptr = "Friday, 25-Aug-1995 17:32:40 GMT", &time64);
X 73569 sys$numtim (&time7, &time64);
X 73570 HttpGmTimeString (buf, &time64);
X 73571 printf ("%32.32s %d %d %d %d %d %d %d |%s|\n",
X 73572 cptr, time7[0], time7[1], time7[2], time7[3], time7[4],
X 73573 time7[5], time7[6], buf);
X 73574
X 73575 HttpGetTime (cptr = "1995-08-25T17:32:40.34Z+0000", &time64);
X 73576 sys$numtim (&time7, &time64);
X 73577 HttpGmTimeString (buf, &time64);
X 73578 printf ("%32.32s %d %d %d %d %d %d %d |%s|\n",
X 73579 cptr, time7[0], time7[1], time7[2], time7[3], time7[4],
X 73580 time7[5], time7[6], buf);
X 73581 }
X 73582
X 73583 #endif /* WATCH_MOD */
73584
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 50
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
73585 /*****************************************************************************/
73586 /*
73587 Set any 64 bit time using the value of the specificed logical name.
73588 Only for development purposes.
73589 */
73590
X 73591 #if WATCH_MOD
X 73592
X 73593 void SetAnyTime (char *lname, ulong *tbptr)
X 73594
X 73595 {
X 73596 int status;
X 73597 char *cptr;
X 73598 if (cptr = SysTrnLnm (lname))
X 73599 {
X 73600 $DESCRIPTOR (dsc, "");
X 73601 dsc.dsc$a_pointer = cptr;
X 73602 dsc.dsc$w_length = strlen(cptr);
X 73603 status = sys$bintim (&dsc, tbptr);
X 73604 if (VMSnok (status)) ErrorExitVmsStatus (status, "SetAnyTime()", FI_LI);
X 73605 }
X 73606 }
X 73607
X 73608 #endif /* WATCH_MOD */
73609
73610 /*****************************************************************************/
73611 /*
73612 $ HTTPD /TEST MATCH for the relative performance of MATCH1..8() and memcmp().
73613 */
73614
X 73615 #if WATCH_MOD
X 73616
X 73617 MatchPerf ()
X 73618
X 73619 #pragma optimize save
X 73620 #pragma optimize level=0
X 73621
X 73622 {
X 73623 int cnt, result;
X 73624 char MatchTest1 [] = "01234567890",
X 73625 MatchTest2 [] = "012345678_0";
X 73626 int MatchTest3 = '0123';
X 73627
X 73628 /*********/
X 73629 /* begin */
X 73630 /*********/
X 73631
X 73632 lib$init_timer (0);
X 73633 for (cnt = 100000000; cnt; cnt--)
X 73634 {
X 73635 result = MATCH2 (MatchTest1, MatchTest2);
X 73636 result = MATCH3 (MatchTest1, MatchTest2);
X 73637 result = MATCH4 (MatchTest1, MatchTest2);
X 73638 result = MATCH5 (MatchTest1, MatchTest2);
X 73639 result = MATCH6 (MatchTest1, MatchTest2);
X 73640 result = MATCH7 (MatchTest1, MatchTest2);
X 73641 result = MATCH8 (MatchTest1, MatchTest2);
Source Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 51
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
X 73642 }
X 73643 lib$show_timer (0,0,0,0);
X 73644 lib$init_timer (0);
X 73645 for (cnt = 100000000; cnt; cnt--)
X 73646 {
X 73647 result = !memcmp (MatchTest1, MatchTest2, 2);
X 73648 result = !memcmp (MatchTest1, MatchTest2, 3);
X 73649 result = !memcmp (MatchTest1, MatchTest2, 4);
X 73650 result = !memcmp (MatchTest1, MatchTest2, 5);
X 73651 result = !memcmp (MatchTest1, MatchTest2, 6);
X 73652 result = !memcmp (MatchTest1, MatchTest2, 7);
X 73653 result = !memcmp (MatchTest1, MatchTest2, 8);
X 73654 }
X 73655 lib$show_timer (0,0,0,0);
X 73656 lib$init_timer (0);
X 73657 for (cnt = 100000000; cnt; cnt--)
X 73658 {
X 73659 result = MATCH2 (MatchTest1, MatchTest2);
X 73660 result = MATCH3 (MatchTest1, MatchTest2);
X 73661 result = MATCH4 (MatchTest1, MatchTest2);
X 73662 result = MATCH2 (MatchTest1, MatchTest2);
X 73663 result = MATCH3 (MatchTest1, MatchTest2);
X 73664 result = MATCH4 (MatchTest1, MatchTest2);
X 73665 }
X 73666 lib$show_timer (0,0,0,0);
X 73667 lib$init_timer (0);
X 73668 for (cnt = 100000000; cnt; cnt--)
X 73669 {
X 73670 result = SAME2 (MatchTest1, MatchTest3);
X 73671 result = SAME3 (MatchTest1, MatchTest3);
X 73672 result = SAME4 (MatchTest1, MatchTest3);
X 73673 result = SAME2 (MatchTest1, MatchTest3);
X 73674 result = SAME3 (MatchTest1, MatchTest3);
X 73675 result = SAME4 (MatchTest1, MatchTest3);
X 73676 }
X 73677 lib$show_timer (0,0,0,0);
X 73678 }
X 73679
X 73680 #pragma optimize restore
X 73681
X 73682 #endif /* WATCH_MOD */
73683
73684 /****************************************************************************/
73685
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 52
29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
.psect $CODE$, CON, LCL, SHR, EXE, NOWRT, NOVEC, NOSHORT
.proc SysDclAst
.align 32
.global SysDclAst
SysDclAst: // 071043
{ .mii
002C00614900 0000 alloc r36 = rspfs, 2, 4, 4, 0
0001880008C0 0001 mov r35 = rp // r35 = br0
010800100940 0002 mov r37 = gp // r37 = r1
}
{ .mmi
012000006640 0010 mov ai = 3 ;; // r25 = 3 // 071059
012000000A00 0011 mov out2 = 0 // r40 = 0
0000B21009C0 0012 sxt4 out1 = Parameter // r39 = r33
}
{ .mfb
010802000980 0020 mov out0 = Address // r38 = r32
000008000000 0021 nop.f 0
00A000001000 0022 br.call.sptk.many rp = SYS$DCLAST ;; // br0 = SYS$DCLAST
}
{ .mib
010802500040 0030 mov gp = r37 // r1 = r37
00A0308001C0 0031 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0 // 071060
008600004007 0032 (pr7) br.cond.dpnt.many L$3 ;;
}
{ .mfb
000008000000 0040 nop.m 0
000008000000 0041 nop.f 0
008000015000 0042 br.sptk.many L$9 ;;
}
0050 L$3:
{ .mfb
01CC40838000 0050 cmp4.eq pr0, pr8 = 28, status // pr0, pr8 = 28, r8 // 071062
000008000000 0051 nop.f 0
00860000A008 0052 (pr8) br.cond.dpnt.many L$7 ;;
}
{ .mib
012000002640 0060 mov ai = 1 // r25 = 1 // 071065
012000000980 0061 mov out0 = 0 // r38 = 0
00A000001000 0062 br.call.sptk.many rp = SYS$CANEXH ;; // br0 = SYS$CANEXH
}
{ .mii
012000002640 0070 mov ai = 1 // r25 = 1 // 071067
0122A0008980 0071 addl out0 = 10756, r0 // r38 = 10756, r0
010802500040 0072 mov gp = r37 ;; // r1 = r37 // 071065
}
{ .mfb
000008000000 0080 nop.m 0
000008000000 0081 nop.f 0
00A000001000 0082 br.call.sptk.many rp = SYS$EXIT ;; // br0 = SYS$EXIT // 071067
}
{ .mfb
000008000000 0090 nop.m 0
000008000000 0091 nop.f 0
008000009000 0092 br.sptk.many L$1122 ;;
}
00A0 L$7: // 071069
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 53
SysDclAst 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mii
012000100A40 00A0 add out3 = @ltoffx($LITERAL$), gp // r41 = @ltoffx($LITERAL$), r1 // 071070
012000100880 00A1 add r34 = @ltoff($LITERAL$+16), gp // r34 = @ltoff($LITERAL$+16), r1
012000008640 00A2 mov ai = 4 ;; // r25 = 4
}
{ .mmi
0080C2900A00 00B0 ld8.mov out2 = [r41], $LITERAL$
0080C22009C0 00B1 ld8 out1 = $LITERAL$ // r39 = [r34]
01201002EA40 00B2 mov out3 = 279 ;; // r41 = 279
}
{ .mib
000008000000 00C0 nop.m 0
0000B0800980 00C1 sxt4 out0 = status // r38 = r8
00A000001000 00C2 br.call.sptk.many rp = // br0 = ErrorExitVmsStatus
ErrorExitVmsStatus ;;
}
00D0 L$1122:
{ .mfi
010802500040 00D0 mov gp = r37 // r1 = r37
000008000000 00D1 nop.f 0
000008000000 00D2 nop.i 0
}
00E0 L$9: // 071071
{ .mii
000008000000 00E0 nop.m 0
000154048000 00E1 mov.i rspfs = r36 ;;
000E00146000 00E2 mov rp = r35 // br0 = r35
}
{ .mfb
000008000000 00F0 nop.m 0
000008000000 00F1 nop.f 0
000108001100 00F2 br.ret.sptk.many rp ;; // br0
}
.endp SysDclAst
Routine Size: 256 bytes, Routine Base: $CODE$ + 0000
.proc ListAddHead
.align 32
.global ListAddHead
ListAddHead: // 071078
{ .mmi
002C004088C0 0100 alloc r35 = rspfs, 3, 1, 0, 0
00A082010240 0101 ld4 r9 = [in0], 8 // r9 = [r32], 8 // 071089
01C43A200200 0102 cmp4.eq pr8, pr7 = r0, DataType ;; // pr8, pr7 = r0, r34 // 071094
}
{ .mii
008082000280 0110 ld4 r10 = [in0] // r10 = [r32] // 071095
0000B0900240 0111 sxt4 r9 = r9 ;; // 071089
010800A02280 0112 adds r10 = 1, r10 // 071095
}
{ .mii
0119FA0F0800 0120 adds in0 = -8, in0 // r32 = -8, r32
01C000001308 0121 (pr8) cmp.eq.unc pr12, pr0 = r0, r0 // 071104
01C0000012C7 0122 (pr7) cmp.eq.unc pr11, pr0 = r0, r0 ;;
}
{ .mib
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 54
ListAddHead 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01C448012000 0130 cmp4.eq pr0, pr9 = r9, r0 // 071089
010802100200 0131 mov eptr = in1 // r8 = r33 // 071078
00860000E009 0132 (pr9) br.cond.dpnt.many L$1100 ;; // 071089
}
{ .mmi
010802008800 0140 adds in0 = 4, in0 ;; // r32 = 4, r32 // 071092
00BC8A043F00 0141 st4 [in0] = in1, -4 // [r32] = r33, -4
000008000000 0142 nop.i 0 ;;
}
{ .mmi
008C82042000 0150 st4 [in0] = in1 // [r32] = r33
00AC82100100 0151 st4 [in1] = r0, 4 // [r33] = r0, 4 // 071093
000008000000 0152 nop.i 0 ;;
}
{ .mbb
008C82100000 0160 st4 [in1] = r0 // [r33] = r0
00860000200B 0161 (pr11) br.cond.dpnt.many L$1102 // 071094
00860000400C 0162 (pr12) br.cond.dpnt.many L$1103 ;;
}
0170 L$1102:
{ .mmi
010800818200 0170 adds r8 = 12, r8 ;;
00BC88845D00 0171 st4 [r8] = DataType, -12 // [r8] = r34, -12
000008000000 0172 nop.i 0 ;;
}
0180 L$1103:
{ .mmi
010802010800 0180 adds in0 = 8, in0 ;; // r32 = 8, r32 // 071105
008C82014000 0181 st4 [in0] = r10 // [r32] = r10
000008000000 0182 nop.i 0
}
{ .mfb
000008000000 0190 nop.m 0
000008000000 0191 nop.f 0
000108001100 0192 br.ret.sptk.many rp ;; // br0 // 071106
}
01A0 L$1100: // 071098
{ .mmi
00AC80800100 01A0 st4 [r8] = r0, 4 ;; // 071101
00BC88813F00 01A1 st4 [r8] = r9, -4 // 071102
000008000000 01A2 nop.i 0 ;;
}
{ .mmb
008C82010000 01B0 st4 [in0] = eptr // [r32] = r8 // 071103
008C80910000 01B1 st4 [r9] = eptr // [r9] = r8
00860000400B 01B2 (pr11) br.cond.dpnt.many L$1105 ;; // 071104
}
{ .mfb
000008000000 01C0 nop.m 0
000008000000 01C1 nop.f 0
00860000400C 01C2 (pr12) br.cond.dpnt.many L$1106 ;;
}
01D0 L$1105:
{ .mmi
010800818200 01D0 adds r8 = 12, r8 ;;
00BC88845D00 01D1 st4 [r8] = DataType, -12 // [r8] = r34, -12
000008000000 01D2 nop.i 0 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 55
ListAddHead 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
01E0 L$1106:
{ .mmi
010802010800 01E0 adds in0 = 8, in0 ;; // r32 = 8, r32 // 071105
008C82014000 01E1 st4 [in0] = r10 // [r32] = r10
000008000000 01E2 nop.i 0
}
{ .mfb
000008000000 01F0 nop.m 0
000008000000 01F1 nop.f 0
000108001100 01F2 br.ret.sptk.many rp ;; // br0 // 071106
}
.endp ListAddHead
Routine Size: 256 bytes, Routine Base: $CODE$ + 0100
.proc ListAddTail
.align 32
.global ListAddTail
ListAddTail: // 071115
{ .mmi
002C004088C0 0200 alloc r35 = rspfs, 3, 1, 0, 0
00A082010240 0201 ld4 r9 = [in0], 8 // r9 = [r32], 8 // 071126
01C43A200200 0202 cmp4.eq pr8, pr7 = r0, DataType ;; // pr8, pr7 = r0, r34 // 071131
}
{ .mii
008082000280 0210 ld4 r10 = [in0] // r10 = [r32] // 071132
0000B0900240 0211 sxt4 r9 = r9 ;; // 071126
010800A02280 0212 adds r10 = 1, r10 // 071132
}
{ .mii
0119FA0F0800 0220 adds in0 = -8, in0 // r32 = -8, r32
01C000001308 0221 (pr8) cmp.eq.unc pr12, pr0 = r0, r0 // 071141
01C0000012C7 0222 (pr7) cmp.eq.unc pr11, pr0 = r0, r0 ;;
}
{ .mib
01C448012000 0230 cmp4.eq pr0, pr9 = r9, r0 // 071126
010802100200 0231 mov eptr = in1 // r8 = r33 // 071115
00860000E009 0232 (pr9) br.cond.dpnt.many L$1087 ;; // 071126
}
{ .mmi
010802008800 0240 adds in0 = 4, in0 ;; // r32 = 4, r32 // 071129
00BC8A043F00 0241 st4 [in0] = in1, -4 // [r32] = r33, -4
000008000000 0242 nop.i 0 ;;
}
{ .mmi
008C82042000 0250 st4 [in0] = in1 // [r32] = r33
00AC82100100 0251 st4 [in1] = r0, 4 // [r33] = r0, 4 // 071130
000008000000 0252 nop.i 0 ;;
}
{ .mbb
008C82100000 0260 st4 [in1] = r0 // [r33] = r0
00860000200B 0261 (pr11) br.cond.dpnt.many L$1089 // 071131
00860000400C 0262 (pr12) br.cond.dpnt.many L$1090 ;;
}
0270 L$1089:
{ .mmi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 56
ListAddTail 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010800818200 0270 adds r8 = 12, r8 ;;
00BC88845D00 0271 st4 [r8] = DataType, -12 // [r8] = r34, -12
000008000000 0272 nop.i 0 ;;
}
0280 L$1090:
{ .mmi
010802010800 0280 adds in0 = 8, in0 ;; // r32 = 8, r32 // 071142
008C82014000 0281 st4 [in0] = r10 // [r32] = r10
000008000000 0282 nop.i 0
}
{ .mfb
000008000000 0290 nop.m 0
000008000000 0291 nop.f 0
000108001100 0292 br.ret.sptk.many rp ;; // br0 // 071143
}
02A0 L$1087: // 071135
{ .mmi
010800808200 02A0 adds r8 = 4, r8 ;; // 071138
00BC88801F00 02A1 st4 [r8] = r0, -4
010802008800 02A2 adds in0 = 4, in0 ;; // r32 = 4, r32 // 071139
}
{ .mmi
008082000580 02B0 ld4 r22 = [in0] ;; // r22 = [r32]
000008000000 02B1 nop.m 0
0000B1600580 02B2 sxt4 r22 = r22 ;;
}
{ .mmi
008C8082C000 02C0 st4 [r8] = r22 ;;
00BC8A011F00 02C1 st4 [in0] = eptr, -4 // [r32] = r8, -4 // 071140
010801608580 02C2 adds r22 = 4, r22 ;;
}
{ .mbb
008C81610000 02D0 st4 [r22] = eptr // [r22] = r8
00860000200B 02D1 (pr11) br.cond.dpnt.many L$1092 // 071141
00860000400C 02D2 (pr12) br.cond.dpnt.many L$1093 ;;
}
02E0 L$1092:
{ .mmi
010800818200 02E0 adds r8 = 12, r8 ;;
00BC88845D00 02E1 st4 [r8] = DataType, -12 // [r8] = r34, -12
000008000000 02E2 nop.i 0 ;;
}
02F0 L$1093:
{ .mmi
010802010800 02F0 adds in0 = 8, in0 ;; // r32 = 8, r32 // 071142
008C82014000 02F1 st4 [in0] = r10 // [r32] = r10
000008000000 02F2 nop.i 0
}
{ .mfb
000008000000 0300 nop.m 0
000008000000 0301 nop.f 0
000108001100 0302 br.ret.sptk.many rp ;; // br0 // 071143
}
.endp ListAddTail
Routine Size: 272 bytes, Routine Base: $CODE$ + 0200
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 57
ListAddBefore 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
.proc ListAddBefore
.align 32
.global ListAddBefore
ListAddBefore: // 071152
{ .mmi
002C0050A900 0310 alloc r36 = rspfs, 4, 1, 0, 0
00A082010240 0311 ld4 r9 = [in0], 8 // r9 = [r32], 8 // 071164
01C43A300200 0312 cmp4.eq pr8, pr7 = r0, DataType ;; // pr8, pr7 = r0, r35 // 071171
}
{ .mii
008082000280 0320 ld4 r10 = [in0] // r10 = [r32] // 071172
0000B0900240 0321 sxt4 r9 = r9 ;; // 071164
010800A02280 0322 adds r10 = 1, r10 // 071172
}
{ .mii
0119FA0F0800 0330 adds in0 = -8, in0 // r32 = -8, r32
01C000001308 0331 (pr8) cmp.eq.unc pr12, pr0 = r0, r0 // 071185
01C0000012C7 0332 (pr7) cmp.eq.unc pr11, pr0 = r0, r0 ;;
}
{ .mib
01C44A112000 0340 cmp4.eq pr0, pr9 = r9, e1ptr // pr0, pr9 = r9, r33 // 071164
010802200200 0341 mov e2ptr = in2 // r8 = r34 // 071152
00860000E009 0342 (pr9) br.cond.dpnt.many L$1113 ;; // 071164
}
{ .mmi
008C82144000 0350 st4 [in1] = in2 // [r33] = r34 // 071167
00AC82200100 0351 st4 [in2] = r0, 4 // [r34] = r0, 4 // 071168
000008000000 0352 nop.i 0 ;;
}
{ .mmi
00BC8A243F00 0360 st4 [in2] = e1ptr, -4 ;; // [r34] = r33, -4 // 071169
008C82044000 0361 st4 [in0] = in2 // [r32] = r34 // 071170
000008000000 0362 nop.i 0
}
{ .bbb
00860000200B 0370 (pr11) br.cond.dpnt.many L$1115 // 071171
004000000000 0371 nop.b 0
00860000400C 0372 (pr12) br.cond.dpnt.many L$1116 ;;
}
0380 L$1115:
{ .mmi
010800818200 0380 adds r8 = 12, r8 ;;
00BC88847D00 0381 st4 [r8] = DataType, -12 // [r8] = r35, -12
000008000000 0382 nop.i 0 ;;
}
0390 L$1116:
{ .mmi
010802010800 0390 adds in0 = 8, in0 ;; // r32 = 8, r32 // 071186
008C82014000 0391 st4 [in0] = r10 // [r32] = r10
000008000000 0392 nop.i 0
}
{ .mfb
000008000000 03A0 nop.m 0
000008000000 03A1 nop.f 0
000108001100 03A2 br.ret.sptk.many rp ;; // br0 // 071187
}
03B0 L$1113: // 071175
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 58
ListAddBefore 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
008082100540 03B0 ld4 r21 = [in1] ;; // r21 = [r33] // 071178
01C40002A380 03B1 cmp4.eq pr14, pr0 = r21, r0
0000B1500540 03B2 sxt4 r21 = r21
}
{ .mfb
000008000000 03C0 nop.m 0
000008000000 03C1 nop.f 0
00860000600E 03C2 (pr14) br.cond.dpnt.many L$1119 ;;
}
{ .mii
008C8082A000 03D0 st4 [r8] = r21 // 071180
010801508540 03D1 adds r21 = 4, r21 // 071181
000008000000 03D2 nop.i 0 ;;
}
{ .mfi
008C81510000 03E0 st4 [r21] = e2ptr // [r21] = r8
000008000000 03E1 nop.f 0
000008000000 03E2 nop.i 0
}
03F0 L$1119: // 071182
{ .mii
008C82110000 03F0 st4 [in1] = e2ptr // [r33] = r8 // 071183
010800808200 03F1 adds r8 = 4, r8 // 071184
000008000000 03F2 nop.i 0 ;;
}
{ .mfi
00BC88843F00 0400 st4 [r8] = e1ptr, -4 // [r8] = r33, -4
000008000000 0401 nop.f 0
000008000000 0402 nop.i 0 ;;
}
{ .bbb
00860000200B 0410 (pr11) br.cond.dpnt.many L$1120 // 071185
00860000400C 0411 (pr12) br.cond.dpnt.many L$1121
004000000000 0412 nop.b 0 ;;
}
0420 L$1120:
{ .mmi
010800818200 0420 adds r8 = 12, r8 ;;
00BC88847D00 0421 st4 [r8] = DataType, -12 // [r8] = r35, -12
000008000000 0422 nop.i 0 ;;
}
0430 L$1121:
{ .mmi
010802010800 0430 adds in0 = 8, in0 ;; // r32 = 8, r32 // 071186
008C82014000 0431 st4 [in0] = r10 // [r32] = r10
000008000000 0432 nop.i 0
}
{ .mfb
000008000000 0440 nop.m 0
000008000000 0441 nop.f 0
000108001100 0442 br.ret.sptk.many rp ;; // br0 // 071187
}
.endp ListAddBefore
Routine Size: 320 bytes, Routine Base: $CODE$ + 0310
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 59
ListRemove 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
.proc ListRemove
.align 32
.global ListRemove
ListRemove: // 071197
{ .mmi
002C00306880 0450 alloc r34 = rspfs, 2, 1, 0, 0
008082100240 0451 ld4 r9 = [in1] // r9 = [r33] // 071207
010802100200 0452 mov eptr = in1 ;; // r8 = r33 // 071197
}
{ .mii
010802108840 0460 adds in1 = 4, in1 // r33 = 4, r33 // 071231
0000B0900240 0461 sxt4 r9 = r9 ;; // 071207
01C4300121C0 0462 cmp4.eq pr7, pr6 = r9, r0
}
{ .mmi
00B08A1F8280 0470 ld4 r10 = [in1], -4 ;; // r10 = [r33], -4 // 071231
000008000000 0471 nop.m 0
0000B0A00280 0472 sxt4 r10 = r10 ;;
}
{ .mmi
01C440014000 0480 cmp4.eq pr0, pr8 = r10, r0 ;; // 071210
01C000001288 0481 (pr8) cmp.eq.unc pr10, pr0 = r0, r0 // 071231
000008000000 0482 nop.i 0
}
{ .mfb
000008000000 0490 nop.m 0
000008000000 0491 nop.f 0
008600026006 0492 (pr6) br.cond.dpnt.many L$1055 ;; // 071207
}
{ .mmi
0080820000C0 04A0 ld4 r3 = [in0] ;; // r3 = [r32] // 071213
000008000000 04A1 nop.m 0
0000B03000C0 04A2 sxt4 r3 = r3 ;;
}
{ .mmi
01C442106240 04B0 cmp4.eq pr9, pr8 = r3, in1 ;; // pr9, pr8 = r3, r33
01C0000011C9 04B1 (pr9) cmp.eq.unc pr7, pr0 = r0, r0 // 071221
01C000001188 04B2 (pr8) cmp.eq.unc pr6, pr0 = r0, r0
}
{ .bbb
00860001200A 04C0 (pr10) br.cond.dpnt.many L$1057 // 071210
004000000000 04C1 nop.b 0
008600014006 04C2 (pr6) br.cond.dpnt.many L$1075 ;; // 071213
}
{ .mmi
010802008800 04D0 adds in0 = 4, in0 ;; // r32 = 4, r32
00A082008840 04D1 ld4 in1 = [in0], 4 // r33 = [r32], 4
000008000000 04D2 nop.i 0 ;;
}
{ .mii
000008000000 04E0 nop.m 0
0000B2100840 04E1 sxt4 in1 = in1 ;; // r33 = r33
01C440842000 04E2 cmp4.eq pr0, pr8 = in1, eptr // pr0, pr8 = r33, r8
}
{ .mfb
000008000000 04F0 nop.m 0
000008000000 04F1 nop.f 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 60
ListRemove 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00860000E008 04F2 (pr8) br.cond.dpnt.many L$1075 ;;
}
{ .mmi
00B08A0F80C0 0500 ld4 r3 = [in0], -4 ;; // r3 = [r32], -4 // 071215
00BC8A001F00 0501 st4 [in0] = r0, -4 // [r32] = r0, -4 // 071214
01C4003002C0 0502 cmp4.eq pr11, pr0 = r0, r3 // 071215
}
{ .mmi
0119F83FE0C0 0510 adds r3 = -1, r3 ;;
00AC82000200 0511 st4 [in0] = r0, 8 // [r32] = r0, 8 // 071214
000008000000 0512 nop.i 0
}
{ .mfb
000008000000 0520 nop.m 0
000008000000 0521 nop.f 0
00860000400B 0522 (pr11) br.cond.dpnt.many L$1063 ;; // 071215
}
{ .mfi
008C82006000 0530 st4 [in0] = r3 // [r32] = r3
000008000000 0531 nop.f 0
000008000000 0532 nop.i 0
}
0540 L$1063:
{ .mfb
000008000000 0540 nop.m 0
000008000000 0541 nop.f 0
000108001100 0542 br.ret.sptk.many rp ;; // br0 // 071244
}
0550 L$1057: // 071218
{ .bbb
008600002006 0550 (pr6) br.cond.dpnt.many L$1075 // 071221
008600004007 0551 (pr7) br.cond.dpnt.many L$1066
004000000000 0552 nop.b 0 ;;
}
0560 L$1075: // 071243
{ .mfb
010800000200 0560 mov r8 = r0 // 071244
000008000000 0561 nop.f 0
000108001100 0562 br.ret.sptk.many rp ;; // br0
}
0570 L$1066: // 071221
{ .mii
008C80A00000 0570 st4 [r10] = r0 // 071222
010802010800 0571 adds in0 = 8, in0 // r32 = 8, r32 // 071224
000008000000 0572 nop.i 0 ;;
}
{ .mmi
00B08A0F02C0 0580 ld4 r11 = [in0], -8 ;; // r11 = [r32], -8
00AC82014200 0581 st4 [in0] = r10, 8 // [r32] = r10, 8 // 071223
01C400B00240 0582 cmp4.eq pr9, pr0 = r0, r11 // 071224
}
{ .mfb
0119F8BFE2C0 0590 adds r11 = -1, r11
000008000000 0591 nop.f 0
008600004009 0592 (pr9) br.cond.dpnt.many L$1068 ;;
}
{ .mfi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 61
ListRemove 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
008C82016000 05A0 st4 [in0] = r11 // [r32] = r11
000008000000 05A1 nop.f 0
000008000000 05A2 nop.i 0
}
05B0 L$1068:
{ .mfb
000008000000 05B0 nop.m 0
000008000000 05B1 nop.f 0
000108001100 05B2 br.ret.sptk.many rp ;; // br0 // 071244
}
05C0 L$1055: // 071228
{ .mfb
000008000000 05C0 nop.m 0
000008000000 05C1 nop.f 0
00860001400A 05C2 (pr10) br.cond.dpnt.many L$1069 ;; // 071231
}
{ .mmi
010802008800 05D0 adds in0 = 4, in0 ;; // r32 = 4, r32 // 071234
00B08A0F8840 05D1 ld4 in1 = [in0], -4 // r33 = [r32], -4
000008000000 05D2 nop.i 0 ;;
}
{ .mii
000008000000 05E0 nop.m 0
0000B2100840 05E1 sxt4 in1 = in1 ;; // r33 = r33
01C4008421C0 05E2 cmp4.eq pr7, pr0 = in1, eptr // pr7, pr0 = r33, r8
}
{ .mfb
000008000000 05F0 nop.m 0
000008000000 05F1 nop.f 0
008600004007 05F2 (pr7) br.cond.dpnt.many L$1072 ;;
}
{ .mfb
010800000200 0600 mov r8 = r0 // 071244
000008000000 0601 nop.f 0
000108001100 0602 br.ret.sptk.many rp ;; // br0
}
0610 L$1072: // 071234
{ .mmi
010800908240 0610 adds r9 = 4, r9 ;; // 071235
00BC88901F00 0611 st4 [r9] = r0, -4
010802010800 0612 adds in0 = 8, in0 ;; // r32 = 8, r32 // 071237
}
{ .mmi
00B08A0F82C0 0620 ld4 r11 = [in0], -4 ;; // r11 = [r32], -4
00AC82012100 0621 st4 [in0] = r9, 4 // [r32] = r9, 4 // 071236
01C400B00240 0622 cmp4.eq pr9, pr0 = r0, r11 // 071237
}
{ .mfb
0119F8BFE2C0 0630 adds r11 = -1, r11
000008000000 0631 nop.f 0
008600004009 0632 (pr9) br.cond.dpnt.many L$1074 ;;
}
{ .mfi
008C82016000 0640 st4 [in0] = r11 // [r32] = r11
000008000000 0641 nop.f 0
000008000000 0642 nop.i 0
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 62
ListRemove 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0650 L$1074:
{ .mfb
000008000000 0650 nop.m 0
000008000000 0651 nop.f 0
000108001100 0652 br.ret.sptk.many rp ;; // br0 // 071244
}
0660 L$1069: // 071240
{ .mmi
010800908240 0660 adds r9 = 4, r9 ;; // 071243
008080900840 0661 ld4 in1 = [r9] // r33 = [r9]
000008000000 0662 nop.i 0 ;;
}
{ .mii
000008000000 0670 nop.m 0
0000B2100840 0671 sxt4 in1 = in1 ;; // r33 = r33
01C450842000 0672 cmp4.eq pr0, pr10 = in1, eptr // pr0, pr10 = r33, r8
}
{ .mfb
000008000000 0680 nop.m 0
000008000000 0681 nop.f 0
0095FFFDC00A 0682 (pr10) br.cond.dptk.many L$1075 ;;
}
{ .mmi
008080A000C0 0690 ld4 r3 = [r10] ;; // 071244
000008000000 0691 nop.m 0
0000B03000C0 0692 sxt4 r3 = r3 ;;
}
{ .mfb
01C430806000 06A0 cmp4.eq pr0, pr6 = r3, eptr // pr0, pr6 = r3, r8
000008000000 06A1 nop.f 0
0095FFFD8006 06A2 (pr6) br.cond.dptk.many L$1075 ;; // 071243
}
{ .mii
00BC88915F00 06B0 st4 [r9] = r10, -4 // 071245
010800808200 06B1 adds r8 = 4, r8 // 071246
000008000000 06B2 nop.i 0 ;;
}
{ .mmi
00B0888F8840 06C0 ld4 in1 = [r8], -4 ;; // r33 = [r8], -4
000008000000 06C1 nop.m 0
0000B2100840 06C2 sxt4 in1 = in1 ;; // r33 = r33
}
{ .mii
008C82112000 06D0 st4 [in1] = r9 // [r33] = r9
010802010800 06D1 adds in0 = 8, in0 // r32 = 8, r32 // 071247
000008000000 06D2 nop.i 0 ;;
}
{ .mmi
0080820000C0 06E0 ld4 r3 = [in0] ;; // r3 = [r32]
01C400300240 06E1 cmp4.eq pr9, pr0 = r0, r3
0119F83FE0C0 06E2 adds r3 = -1, r3
}
{ .mfb
000008000000 06F0 nop.m 0
000008000000 06F1 nop.f 0
008600004009 06F2 (pr9) br.cond.dpnt.many L$1079 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 63
ListRemove 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfi
008C82006000 0700 st4 [in0] = r3 // [r32] = r3
000008000000 0701 nop.f 0
000008000000 0702 nop.i 0
}
0710 L$1079:
{ .mfb
000008000000 0710 nop.m 0
000008000000 0711 nop.f 0
000108001100 0712 br.ret.sptk.many rp ;; // br0 // 071244
}
.endp ListRemove
Routine Size: 720 bytes, Routine Base: $CODE$ + 0450
.proc ListMoveHead
.align 32
.global ListMoveHead
ListMoveHead: // 071262
{ .mmi
002C0040C8C0 0720 alloc r35 = rspfs, 2, 2, 2, 0
008082000200 0721 ld4 r8 = [in0] // r8 = [r32] // 071273
000188000880 0722 mov r34 = rp ;; // r34 = br0 // 071262
}
{ .mii
000008000000 0730 nop.m 0
0000B0800200 0731 sxt4 r8 = r8 ;; // 071273
01C402110200 0732 cmp4.eq pr8, pr0 = r8, eptr // pr8, pr0 = r8, r33
}
{ .mfb
000008000000 0740 nop.m 0
000008000000 0741 nop.f 0
008600018008 0742 (pr8) br.cond.dpnt.many L$1109 ;;
}
{ .mib
010802100940 0750 mov out1 = eptr // r37 = r33 // 071275
010802000900 0751 mov out0 = lptr // r36 = r32
00A000001000 0752 br.call.sptk.many rp = ListRemove ;; // br0 = ListRemove
}
{ .mmi
00A082010440 0760 ld4 r17 = [in0], 8 ;; // r17 = [r32], 8 // 071089
008082000480 0761 ld4 r18 = [in0] // r18 = [r32] // 071095
0000B1100440 0762 sxt4 r17 = r17 ;; // 071089
}
{ .mii
010801202480 0770 adds r18 = 1, r18 // 071095
0119FA0F0800 0771 adds in0 = -8, in0 // r32 = -8, r32
01C460022000 0772 cmp4.eq pr0, pr12 = r17, r0 ;; // 071089
}
{ .mfb
000008000000 0780 nop.m 0
000008000000 0781 nop.f 0
00860000A00C 0782 (pr12) br.cond.dpnt.many L$1110 ;;
}
{ .mmi
010802008800 0790 adds in0 = 4, in0 ;; // r32 = 4, r32 // 071092
00BC8A043F00 0791 st4 [in0] = eptr, -4 // [r32] = r33, -4
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 64
ListMoveHead 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 0792 nop.i 0 ;;
}
{ .mmi
008C82042000 07A0 st4 [in0] = eptr // [r32] = r33
00AC82100100 07A1 st4 [in1] = r0, 4 // [r33] = r0, 4 // 071093
000008000000 07A2 nop.i 0 ;;
}
{ .mfi
00BC8A101F00 07B0 st4 [in1] = r0, -4 // [r33] = r0, -4
000008000000 07B1 nop.f 0
000008000000 07B2 nop.i 0 ;;
}
{ .mfb
000008000000 07C0 nop.m 0
000008000000 07C1 nop.f 0
008000007000 07C2 br.sptk.many L$1123 ;;
}
07D0 L$1110: // 071098
{ .mmi
00AC82100100 07D0 st4 [in1] = r0, 4 ;; // [r33] = r0, 4 // 071101
00BC8A123F00 07D1 st4 [in1] = r17, -4 // [r33] = r17, -4 // 071102
000008000000 07D2 nop.i 0 ;;
}
{ .mmi
008C82042000 07E0 st4 [in0] = eptr // [r32] = r33 // 071103
008C81142000 07E1 st4 [r17] = eptr // [r17] = r33
000008000000 07E2 nop.i 0 ;;
}
07F0 L$1123: // 071105
{ .mmi
010802010800 07F0 adds in0 = 8, in0 ;; // r32 = 8, r32
008C82024000 07F1 st4 [in0] = r18 // [r32] = r18
000008000000 07F2 nop.i 0
}
0800 L$1109: // 071277
{ .mmi
010802100200 0800 mov r8 = eptr ;; // r8 = r33 // 071279
000008000000 0801 nop.m 0
000154046000 0802 mov.i rspfs = r35 ;;
}
{ .mib
000008000000 0810 nop.m 0
000E00144000 0811 mov rp = r34 // br0 = r34
000108001100 0812 br.ret.sptk.many rp ;; // br0
}
.endp ListMoveHead
Routine Size: 256 bytes, Routine Base: $CODE$ + 0720
.proc ListMoveTail
.align 32
.global ListMoveTail
ListMoveTail: // 071291
{ .mii
002C0040C8C0 0820 alloc r35 = rspfs, 2, 2, 2, 0
010802008800 0821 adds in0 = 4, in0 // r32 = 4, r32 // 071302
000188000880 0822 mov r34 = rp ;; // r34 = br0 // 071291
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 65
ListMoveTail 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mmi
00B08A0F8200 0830 ld4 r8 = [in0], -4 ;; // r8 = [r32], -4 // 071302
000008000000 0831 nop.m 0
0000B0800200 0832 sxt4 r8 = r8 ;;
}
{ .mfb
01C402110200 0840 cmp4.eq pr8, pr0 = r8, eptr // pr8, pr0 = r8, r33
000008000000 0841 nop.f 0
00860001C008 0842 (pr8) br.cond.dpnt.many L$1096 ;;
}
{ .mib
010802100940 0850 mov out1 = eptr // r37 = r33 // 071304
010802000900 0851 mov out0 = lptr // r36 = r32
00A000001000 0852 br.call.sptk.many rp = ListRemove ;; // br0 = ListRemove
}
{ .mmi
00A082010440 0860 ld4 r17 = [in0], 8 ;; // r17 = [r32], 8 // 071126
008082000480 0861 ld4 r18 = [in0] // r18 = [r32] // 071132
0000B1100440 0862 sxt4 r17 = r17 ;; // 071126
}
{ .mii
010801202480 0870 adds r18 = 1, r18 // 071132
0119FA0F0800 0871 adds in0 = -8, in0 // r32 = -8, r32
01C460022000 0872 cmp4.eq pr0, pr12 = r17, r0 ;; // 071126
}
{ .mfb
000008000000 0880 nop.m 0
000008000000 0881 nop.f 0
00860000A00C 0882 (pr12) br.cond.dpnt.many L$1097 ;;
}
{ .mmi
010802008800 0890 adds in0 = 4, in0 ;; // r32 = 4, r32 // 071129
00BC8A043F00 0891 st4 [in0] = eptr, -4 // [r32] = r33, -4
000008000000 0892 nop.i 0 ;;
}
{ .mmi
008C82042000 08A0 st4 [in0] = eptr // [r32] = r33
00AC82100100 08A1 st4 [in1] = r0, 4 // [r33] = r0, 4 // 071130
000008000000 08A2 nop.i 0 ;;
}
{ .mfi
00BC8A101F00 08B0 st4 [in1] = r0, -4 // [r33] = r0, -4
000008000000 08B1 nop.f 0
000008000000 08B2 nop.i 0 ;;
}
{ .mfb
000008000000 08C0 nop.m 0
000008000000 08C1 nop.f 0
00800000B000 08C2 br.sptk.many L$1124 ;;
}
08D0 L$1097: // 071135
{ .mmi
010802108840 08D0 adds in1 = 4, in1 ;; // r33 = 4, r33 // 071138
00BC8A101F00 08D1 st4 [in1] = r0, -4 // [r33] = r0, -4
010802008800 08D2 adds in0 = 4, in0 ;; // r32 = 4, r32 // 071139
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 66
ListMoveTail 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
008082000600 08E0 ld4 r24 = [in0] ;; // r24 = [r32]
000008000000 08E1 nop.m 0
0000B1800600 08E2 sxt4 r24 = r24 ;;
}
{ .mmi
008C82130000 08F0 st4 [in1] = r24 ;; // [r33] = r24
00BC8A043F00 08F1 st4 [in0] = eptr, -4 // [r32] = r33, -4 // 071140
010801808600 08F2 adds r24 = 4, r24 ;;
}
{ .mfi
008C81842000 0900 st4 [r24] = eptr // [r24] = r33
000008000000 0901 nop.f 0
000008000000 0902 nop.i 0
}
0910 L$1124: // 071142
{ .mmi
010802010800 0910 adds in0 = 8, in0 ;; // r32 = 8, r32
008C82024000 0911 st4 [in0] = r18 // [r32] = r18
000008000000 0912 nop.i 0
}
0920 L$1096: // 071306
{ .mmi
010802100200 0920 mov r8 = eptr ;; // r8 = r33 // 071308
000008000000 0921 nop.m 0
000154046000 0922 mov.i rspfs = r35 ;;
}
{ .mib
000008000000 0930 nop.m 0
000E00144000 0931 mov rp = r34 // br0 = r34
000108001100 0932 br.ret.sptk.many rp ;; // br0
}
.endp ListMoveTail
Routine Size: 288 bytes, Routine Base: $CODE$ + 0820
.proc ListRemoveHead
.align 32
.global ListRemoveHead
ListRemoveHead: // 071320
{ .mmi
002C0030A880 0940 alloc r34 = rspfs, 1, 2, 2, 0
008082000440 0941 ld4 eptr = [in0] // r17 = [r32] // 071329
000188000840 0942 mov r33 = rp ;; // r33 = br0 // 071320
}
{ .mib
01C400022200 0950 cmp4.eq pr8, pr0 = eptr, r0 // pr8, pr0 = r17, r0 // 071329
0000B1100440 0951 sxt4 eptr = eptr // r17 = r17
008600004008 0952 (pr8) br.cond.dpnt.many L$1085 ;;
}
{ .mib
010801100900 0960 mov out1 = eptr // r36 = r17
0108020008C0 0961 mov out0 = lptr // r35 = r32
00A000001000 0962 br.call.sptk.many rp = ListRemove ;; // br0 = ListRemove
}
0970 L$1085:
{ .mii
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 67
ListRemoveHead 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010801100200 0970 mov r8 = eptr // r8 = r17 // 071331
000154044000 0971 mov.i rspfs = r34 ;;
000E00142000 0972 mov rp = r33 // br0 = r33
}
{ .mfb
000008000000 0980 nop.m 0
000008000000 0981 nop.f 0
000108001100 0982 br.ret.sptk.many rp ;; // br0
}
.endp ListRemoveHead
Routine Size: 80 bytes, Routine Base: $CODE$ + 0940
.proc ListRemoveTail
.align 32
.global ListRemoveTail
ListRemoveTail: // 071343
{ .mii
002C0030A880 0990 alloc r34 = rspfs, 1, 2, 2, 0
010802008800 0991 adds in0 = 4, in0 // r32 = 4, r32 // 071352
000188000840 0992 mov r33 = rp ;; // r33 = br0 // 071343
}
{ .mmi
00B08A0F8440 09A0 ld4 eptr = [in0], -4 ;; // r17 = [r32], -4 // 071352
01C400022200 09A1 cmp4.eq pr8, pr0 = eptr, r0 // pr8, pr0 = r17, r0
0000B1100440 09A2 sxt4 eptr = eptr // r17 = r17
}
{ .mfb
000008000000 09B0 nop.m 0
000008000000 09B1 nop.f 0
008600004008 09B2 (pr8) br.cond.dpnt.many L$1082 ;;
}
{ .mib
010801100900 09C0 mov out1 = eptr // r36 = r17
0108020008C0 09C1 mov out0 = lptr // r35 = r32
00A000001000 09C2 br.call.sptk.many rp = ListRemove ;; // br0 = ListRemove
}
09D0 L$1082:
{ .mii
010801100200 09D0 mov r8 = eptr // r8 = r17 // 071354
000154044000 09D1 mov.i rspfs = r34 ;;
000E00142000 09D2 mov rp = r33 // br0 = r33
}
{ .mfb
000008000000 09E0 nop.m 0
000008000000 09E1 nop.f 0
000108001100 09E2 br.ret.sptk.many rp ;; // br0
}
.endp ListRemoveTail
Routine Size: 96 bytes, Routine Base: $CODE$ + 0990
.proc ListCheck
.align 32
.global ListCheck
ListCheck: // 071362
{ .mii
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 68
ListCheck 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
002C005168C0 09F0 alloc r35 = rspfs, 2, 3, 6, 0
012000100200 09F1 add r8 = @ltoffx(DECC$GA_STDOUT), // r8 = @ltoffx(DECC$GA_STDOUT), r1 // 071374
gp
0108020009C0 09F2 mov out2 = lptr // r39 = r32
}
{ .mmi
008082000A00 0A00 ld4 out3 = [in0] ;; // r40 = [r32]
0080C0800200 0A01 ld8.mov r8 = [r8], DECC$GA_STDOUT
010802010800 0A02 adds in0 = 8, in0 // r32 = 8, r32
}
{ .mii
012000100240 0A10 add r9 = @ltoff($LITERAL$+2080), // r9 = @ltoff($LITERAL$+2080), r1
gp
01200000C640 0A11 mov ai = 6 ;; // r25 = 6
000188000880 0A12 mov r34 = rp // r34 = br0 // 071362
}
{ .mmi
00B08A0F8A80 0A20 ld4 out5 = [in0], -4 // r42 = [r32], -4 // 071374
0080C0900980 0A21 ld8 out1 = $LITERAL$ // r38 = [r9]
0000B2800A00 0A22 sxt4 out3 = out3 ;; // r40 = r40
}
{ .mmi
00B08A0F8A40 0A30 ld4 out4 = [in0], -4 // r41 = [r32], -4
008080800200 0A31 ld4 r8 = DECC$GA_STDOUT // r8 = [r8]
0000B2A00A80 0A32 sxt4 out5 = out5 ;; // r42 = r42
}
{ .mii
010800100900 0A40 mov r36 = gp // r36 = r1 // 071362
0000B2900A40 0A41 sxt4 out4 = out4 // r41 = r41 // 071374
0000B0800940 0A42 sxt4 out0 = r8 // r37 = r8
}
{ .mfb
000008000000 0A50 nop.m 0
000008000000 0A51 nop.f 0
00A000001000 0A52 br.call.sptk.many rp = DECC$TXFPRINTF ;; // br0 = DECC$TXFPRINTF
}
{ .mii
008082000800 0A60 ld4 teptr = [in0] // r32 = [r32] // 071377
010802400040 0A61 mov gp = r36 ;; // r1 = r36 // 071374
01C4000401C0 0A62 cmp4.eq pr7, pr0 = teptr, r0 // pr7, pr0 = r32, r0 // 071377
}
{ .mib
000008000000 0A70 nop.m 0
0000B2000800 0A71 sxt4 teptr = teptr // r32 = r32
00860001C007 0A72 (pr7) br.cond.dpnt.many L$1043 ;;
}
0A80 L$1044:
{ .mib
01C402140240 0A80 cmp4.eq pr9, pr0 = teptr, eptr // pr9, pr0 = r32, r33 // 071378
010802008800 0A81 adds in0 = 4, in0 // r32 = 4, r32
008600018009 0A82 (pr9) br.cond.dpnt.many L$1046 ;;
}
{ .mmi
008082000800 0A90 ld4 teptr = [in0] ;; // r32 = [r32] // 071377
01C4000402C0 0A91 cmp4.eq pr11, pr0 = teptr, r0 // pr11, pr0 = r32, r0
0000B2000800 0A92 sxt4 teptr = teptr // r32 = r32
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 69
ListCheck 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfb
000008000000 0AA0 nop.m 0
000008000000 0AA1 nop.f 0
00860001600B 0AA2 (pr11) br.cond.dpnt.many L$1043 ;;
}
{ .mib
01C402140340 0AB0 cmp4.eq pr13, pr0 = teptr, eptr // pr13, pr0 = r32, r33 // 071378
010802008800 0AB1 adds in0 = 4, in0 // r32 = 4, r32
00860001200D 0AB2 (pr13) br.cond.dpnt.many L$1046 ;;
}
{ .mmi
008082000800 0AC0 ld4 teptr = [in0] ;; // r32 = [r32] // 071377
01C4000403C0 0AC1 cmp4.eq pr15, pr0 = teptr, r0 // pr15, pr0 = r32, r0
0000B2000800 0AC2 sxt4 teptr = teptr // r32 = r32
}
{ .mfb
000008000000 0AD0 nop.m 0
000008000000 0AD1 nop.f 0
00860001000F 0AD2 (pr15) br.cond.dpnt.many L$1043 ;;
}
{ .mib
01C4021401C0 0AE0 cmp4.eq pr7, pr0 = teptr, eptr // pr7, pr0 = r32, r33 // 071378
010802008800 0AE1 adds in0 = 4, in0 // r32 = 4, r32
00860000C007 0AE2 (pr7) br.cond.dpnt.many L$1046 ;;
}
{ .mmi
008082000800 0AF0 ld4 teptr = [in0] ;; // r32 = [r32] // 071377
01C400040240 0AF1 cmp4.eq pr9, pr0 = teptr, r0 // pr9, pr0 = r32, r0
0000B2000800 0AF2 sxt4 teptr = teptr // r32 = r32
}
{ .mfb
000008000000 0B00 nop.m 0
000008000000 0B01 nop.f 0
00860000A009 0B02 (pr9) br.cond.dpnt.many L$1043 ;;
}
{ .mib
01C4021402C0 0B10 cmp4.eq pr11, pr0 = teptr, eptr // pr11, pr0 = r32, r33 // 071378
010802008800 0B11 adds in0 = 4, in0 // r32 = 4, r32
00860000600B 0B12 (pr11) br.cond.dpnt.many L$1046 ;;
}
{ .mmi
008082000800 0B20 ld4 teptr = [in0] ;; // r32 = [r32] // 071377
01C460040000 0B21 cmp4.eq pr0, pr12 = teptr, r0 // pr0, pr12 = r32, r0
0000B2000800 0B22 sxt4 teptr = teptr // r32 = r32
}
{ .bbb
0095FFFEA00C 0B30 (pr12) br.cond.dptk.many L$1044
004000000000 0B31 nop.b 0
008000005000 0B32 br.sptk.many L$1043 ;;
}
0B40 L$1046: // 071378
{ .mfb
010802100200 0B40 mov r8 = eptr // r8 = r33
000008000000 0B41 nop.f 0
008000005000 0B42 br.sptk.many L$1053 ;;
}
0B50 L$1043:
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 70
ListCheck 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfi
010800000200 0B50 mov r8 = r0 // 071379
000008000000 0B51 nop.f 0
000008000000 0B52 nop.i 0
}
0B60 L$1053:
{ .mii
000008000000 0B60 nop.m 0
000154046000 0B61 mov.i rspfs = r35 ;;
000E00144000 0B62 mov rp = r34 // br0 = r34
}
{ .mfb
000008000000 0B70 nop.m 0
000008000000 0B71 nop.f 0
000108001100 0B72 br.ret.sptk.many rp ;; // br0
}
.endp ListCheck
Routine Size: 400 bytes, Routine Base: $CODE$ + 09F0
.proc ListDebug
.align 32
.global ListDebug
ListDebug: // 071387
{ .mmi
002C005148C0 0B80 alloc r35 = rspfs, 1, 4, 5, 0
008082000800 0B81 ld4 eptr = [in0] // r32 = [r32] // 071396
000188000880 0B82 mov r34 = rp ;; // r34 = br0 // 071387
}
{ .mii
01C400040200 0B90 cmp4.eq pr8, pr0 = eptr, r0 // pr8, pr0 = r32, r0 // 071396
0000B2000800 0B91 sxt4 eptr = eptr // r32 = r32
010800100900 0B92 mov r36 = gp // r36 = r1 // 071387
}
{ .mfb
000008000000 0BA0 nop.m 0
000008000000 0BA1 nop.f 0
008600010008 0BA2 (pr8) br.cond.dpnt.many L$1039 ;; // 071396
}
{ .mmi
012000100840 0BB0 add r33 = @ltoffx(DECC$GA_STDOUT), // r33 = @ltoffx(DECC$GA_STDOUT), r1 // 071397
gp ;;
0080C2100840 0BB1 ld8.mov r33 = [r33], DECC$GA_STDOUT
000008000000 0BB2 nop.i 0 ;;
}
0BC0 L$1040: // 071396
{ .mii
0080820009C0 0BC0 ld4 out2 = [in0] // r39 = [r32] // 071397
010802000A00 0BC1 mov out3 = eptr // r40 = r32
010802008800 0BC2 adds in0 = 4, in0 // r32 = 4, r32
}
{ .mmi
008082100940 0BD0 ld4 out0 = [r33] ;; // r37 = [r33]
008082000A40 0BD1 ld4 out4 = [in0] // r41 = [r32]
012000100200 0BD2 add r8 = @ltoff($LITERAL$+2056), // r8 = @ltoff($LITERAL$+2056), r1
gp
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 71
ListDebug 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mii
01200000A640 0BE0 mov ai = 5 // r25 = 5
0000B27009C0 0BE1 sxt4 out2 = out2 ;; // r39 = r39
0000B2900A40 0BE2 sxt4 out4 = out4 // r41 = r41
}
{ .mib
0080C0800980 0BF0 ld8 out1 = $LITERAL$ // r38 = [r8]
0000B2500940 0BF1 sxt4 out0 = out0 // r37 = r37
00A000001000 0BF2 br.call.sptk.many rp = DECC$TXFPRINTF ;; // br0 = DECC$TXFPRINTF
}
{ .mii
008082000800 0C00 ld4 eptr = [in0] // r32 = [r32] // 071396
010802400040 0C01 mov gp = r36 ;; // r1 = r36 // 071397
01C430040000 0C02 cmp4.eq pr0, pr6 = eptr, r0 // pr0, pr6 = r32, r0 // 071396
}
{ .mib
000008000000 0C10 nop.m 0
0000B2000800 0C11 sxt4 eptr = eptr // r32 = r32
0095FFFF6006 0C12 (pr6) br.cond.dptk.many L$1040 ;;
}
0C20 L$1039: // 071398
{ .mii
000008000000 0C20 nop.m 0
000154046000 0C21 mov.i rspfs = r35 ;;
000E00144000 0C22 mov rp = r34 // br0 = r34
}
{ .mfb
000008000000 0C30 nop.m 0
000008000000 0C31 nop.f 0
000108001100 0C32 br.ret.sptk.many rp ;; // br0
}
.endp ListDebug
Routine Size: 192 bytes, Routine Base: $CODE$ + 0B80
.proc ServerSignature
.align 32
.global ServerSignature
ServerSignature: // 071405
{ .mii
002C00B26A40 0C40 alloc r41 = rspfs, 3, 8, 8, 0
012000100200 0C41 add r8 = @ltoff(Config+4288), gp // r8 = @ltoff(Config+4288), r1 // 071426
012020000380 0C42 mov r14 = 512 // 071405
}
{ .mmi
010800C00080 0C50 mov r2 = sp ;; // r2 = r12
0080C0800200 0C51 ld8 r8 = Config // r8 = [r8] // 071426
010028E183C0 0C52 sub r15 = sp, r14 ;; // r15 = r12, r14 // 071405
}
{ .mii
0080C0F00380 0C60 ld8 r14 = [r15]
010800F00300 0C61 mov sp = r15 // r12 = r15
000188000A00 0C62 mov r40 = rp ;; // r40 = br0
}
{ .mii
008080800240 0C70 ld4 r9 = Config // r9 = [r8] // 071426
010800100A80 0C71 mov r42 = gp ;; // r42 = r1 // 071405
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 72
ServerSignature 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01C438900000 0C72 cmp4.eq pr0, pr7 = r0, r9 // 071426
}
{ .mfb
000008000000 0C80 nop.m 0
000008000000 0C81 nop.f 0
008600004007 0C82 (pr7) br.cond.dpnt.many L$1008 ;;
}
{ .mfb
008C02100000 0C90 st1 [in1] = r0 // [r33] = r0 // 071428
000008000000 0C91 nop.f 0
0080000BD000 0C92 br.sptk.many L$1035 ;;
}
0CA0 L$1008: // 071430
{ .mfb
01C400040280 0CA0 cmp4.eq pr10, pr0 = rqptr, r0 // pr10, pr0 = r32, r0 // 071432
000008000000 0CA1 nop.f 0
00860000A00A 0CA2 (pr10) br.cond.dpnt.many L$1012 ;;
}
{ .mmi
01080A0702C0 0CB0 adds r11 = 184, in0 ;; // r11 = 184, r32 // 071434
008080B002C0 0CB1 ld4 r11 = [r11]
000008000000 0CB2 nop.i 0 ;;
}
{ .mii
000008000000 0CC0 nop.m 0
0000B0B002C0 0CC1 sxt4 r11 = r11 ;;
010868BE88C0 0CC2 adds ServerHostNamePtr = 1780, r11 // r35 = 1780, r11
}
{ .mmi
010808B682C0 0CD0 adds r11 = 180, r11 ;; // 071435
008080B00900 0CD1 ld4 ServerPortNumber = [r11] // r36 = [r11]
000008000000 0CD2 nop.i 0
}
{ .mfb
000008000000 0CE0 nop.m 0
000008000000 0CE1 nop.f 0
008000009000 0CE2 br.sptk.many L$1013 ;; // 071437
}
0CF0 L$1012:
{ .mii
012000100440 0CF0 add r17 = @ltoffx(ServerPort), gp // r17 = @ltoffx(ServerPort), r1 // 071440
012000100480 0CF1 add r18 = @ltoffx(ServerHostName), // r18 = @ltoffx(ServerHostName), r1 // 071439
gp
000008000000 0CF2 nop.i 0 ;;
}
{ .mmi
0080C1100440 0D00 ld8.mov r17 = [r17], ServerPort // 071440
0080C12008C0 0D01 ld8.mov r35 = [r18], ServerHostName // 071439
000008000000 0D02 nop.i 0 ;;
}
{ .mfi
008081100900 0D10 ld4 ServerPortNumber = ServerPort // r36 = [r17] // 071440
000008000000 0D11 nop.f 0
000008000000 0D12 nop.i 0
}
0D20 L$1013: // 071441
{ .mii
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 73
ServerSignature 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0120001004C0 0D20 add r19 = @ltoffx(Config), gp // r19 = @ltoffx(Config), r1 // 071444
01CC609042C0 0D21 cmp4.eq pr11, pr12 = 2, r9 // 071443
000008000000 0D22 nop.i 0 ;;
}
{ .mmi
0080C13004C0 0D30 ld8.mov r19 = [r19], Config ;; // 071444
0109093A8500 0D31 adds r20 = 4308, r19
000008000000 0D32 nop.i 0 ;;
}
{ .mmi
008001400500 0D40 ld1 r20 = [r20] ;;
000008000000 0D41 nop.m 0
0000A1400500 0D42 sxt1 r20 = r20 ;;
}
{ .mmi
01C001400380 0D50 cmp.eq pr14, pr0 = r0, r20 ;;
01C20000030E 0D51 (pr14) cmp.eq.or.andcm pr12, pr0 = r0, r0
000008000000 0D52 nop.i 0
}
{ .mfb
000008000000 0D60 nop.m 0
000008000000 0D61 nop.f 0
00860001200C 0D62 (pr12) br.cond.dpnt.many L$1015 ;; // 071443
}
{ .mii
012000100540 0D70 add r21 = @ltoff($LITERAL$+2024), // r21 = @ltoff($LITERAL$+2024), r1 // 071447
gp
01200000C640 0D71 mov ai = 6 // r25 = 6 // 071446
010802300C00 0D72 mov out5 = ServerHostNamePtr // r48 = r35
}
{ .mmi
010800000B40 0D80 mov out2 = r0 ;; // r45 = r0
0080C1500B80 0D81 ld8 out3 = $LITERAL$ // r46 = [r21] // 071447
012010000B00 0D82 mov out1 = 256 // r44 = 256 // 071446
}
{ .mib
010800C20AC0 0D90 adds out0 = 16, sp // r43 = 16, r12
0109093A8BC0 0D91 adds out4 = 4308, r19 // r47 = 4308, r19 // 071448
00A000001000 0D92 br.call.sptk.many rp = FaoToBuffer ;; // br0 = FaoToBuffer // 071446
}
{ .mib
010802A00040 0DA0 mov gp = r42 // r1 = r42
00A0308001C0 0DA1 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0 // 071449
00860000C006 0DA2 (pr6) br.cond.dpnt.many L$1016 ;;
}
{ .mii
012000100BC0 0DB0 add out4 = @ltoffx($LITERAL$), gp // r47 = @ltoffx($LITERAL$), r1
01200000A640 0DB1 mov ai = 5 // r25 = 5
010800000B40 0DB2 mov out2 = r0 // r45 = r0
}
{ .mmi
010802000AC0 0DC0 mov out0 = rqptr ;; // r43 = r32
0080C2F00B80 0DC1 ld8.mov out3 = [r47], $LITERAL$
012028024BC0 0DC2 mov out4 = 658 // r47 = 658
}
{ .mib
000008000000 0DD0 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 74
ServerSignature 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0000B0800B00 0DD1 sxt4 out1 = status // r44 = r8
00A000001000 0DD2 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed
}
{ .mfb
010802A00040 0DE0 mov gp = r42 // r1 = r42
000008000000 0DE1 nop.f 0
008000005000 0DE2 br.sptk.many L$1016 ;;
}
0DF0 L$1015: // 071451
{ .mmi
010800C20940 0DF0 adds r37 = 16, sp ;; // r37 = 16, r12 // 071452
008C02500000 0DF1 st1 [r37] = r0
000008000000 0DF2 nop.i 0
}
0E00 L$1016:
{ .mmi
012000100980 0E00 add r38 = @ltoffx(CliSoftwareID), // r38 = @ltoffx(CliSoftwareID), r1 // 071454
gp ;;
0080C2600980 0E01 ld8.mov r38 = [r38], CliSoftwareID
000008000000 0E02 nop.i 0 ;;
}
{ .mmi
008082600980 0E10 ld4 r38 = CliSoftwareID ;; // r38 = [r38]
01C4026001C0 0E11 cmp4.eq pr7, pr0 = r0, r38
000008000000 0E12 nop.i 0
}
{ .mfb
000008000000 0E20 nop.m 0
000008000000 0E21 nop.f 0
00860006E007 0E22 (pr7) br.cond.dpnt.many L$1019 ;;
}
{ .mii
012000004640 0E30 mov ai = 2 // r25 = 2 // 071456
012008070B00 0E31 mov out1 = 184 // r44 = 184
010802000AC0 0E32 mov out0 = rqptr // r43 = r32
}
{ .mfb
000008000000 0E40 nop.m 0
000008000000 0E41 nop.f 0
00A000001000 0E42 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor
}
{ .mii
008000800940 0E50 ld1 r37 = [r8] // 071458
010810C20980 0E51 adds r38 = 272, sp // r38 = 272, r12 // 071457
0108008009C0 0E52 mov cptr = r8 // r39 = r8 // 071456
}
{ .mmi
010802A00040 0E60 mov gp = r42 ;; // r1 = r42
000008000000 0E61 nop.m 0
0000A2500940 0E62 sxt1 r37 = r37 ;; // 071458
}
{ .mfb
01C0025001C0 0E70 cmp.eq pr7, pr0 = r0, r37
000008000000 0E71 nop.f 0
00860001C007 0E72 (pr7) br.cond.dpnt.many L$1021 ;;
}
{ .mii
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 75
ServerSignature 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010810C20280 0E80 adds r10 = 272, sp // r10 = 272, r12
010818C20240 0E81 adds r9 = 400, sp // r9 = 400, r12
010810C200C0 0E82 adds r3 = 272, sp ;; // r3 = 272, r12 // 071457
}
{ .mmi
00CB10A00000 0E90 lfetch.nt1 [r10] // 071458
00CB10900000 0E91 lfetch.nt1 [r9]
0108083FE0C0 0E92 adds r3 = 255, r3 ;; // 071457
}
0EA0 L$1022: // 071458
{ .mii
0080027002C0 0EA0 ld1 r11 = [r39]
01A44834C000 0EA1 cmp4.ltu pr0, pr9 = sptr, r3 ;; // pr0, pr9 = r38, r3
01C850B422C0 0EA2 cmp.eq pr11, pr10 = 33, r11 ;;
}
{ .mfb
01C2000002C9 0EB0 (pr9) cmp.eq.or.andcm pr11, pr0 = r0, r0
000008000000 0EB1 nop.f 0
00860001400B 0EB2 (pr11) br.cond.dpnt.many L$1021 ;;
}
{ .mmi
00A002702440 0EC0 ld1 r17 = [r39], 1 ;;
00AC02622040 0EC1 st1 [r38] = r17, 1
000008000000 0EC2 nop.i 0 ;;
}
{ .mmi
0080027004C0 0ED0 ld1 r19 = [r39] ;;
000008000000 0ED1 nop.m 0
0000A13004C0 0ED2 sxt1 r19 = r19 ;;
}
{ .mfb
01C001300340 0EE0 cmp.eq pr13, pr0 = r0, r19
000008000000 0EE1 nop.f 0
00860000E00D 0EE2 (pr13) br.cond.dpnt.many L$1021 ;;
}
{ .mii
008002700500 0EF0 ld1 r20 = [r39]
01A47834C000 0EF1 cmp4.ltu pr0, pr15 = sptr, r3 // pr0, pr15 = r38, r3
010842700540 0EF2 adds r21 = 1024, r39 ;;
}
{ .mmi
01C8314421C0 0F00 cmp.eq pr7, pr6 = 33, r20
00CB01500000 0F01 lfetch [r21]
000008000000 0F02 nop.i 0 ;;
}
{ .mfb
01C2000001CF 0F10 (pr15) cmp.eq.or.andcm pr7, pr0 = r0, r0
000008000000 0F11 nop.f 0
008600008007 0F12 (pr7) br.cond.dpnt.many L$1021 ;;
}
{ .mii
00AC02626040 0F20 st1 [r38] = r19, 1
0108027029C0 0F21 adds r39 = 1, r39
000008000000 0F22 nop.i 0 ;;
}
{ .mmi
0080027005C0 0F30 ld1 r23 = [r39] ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 76
ServerSignature 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 0F31 nop.m 0
0000A17005C0 0F32 sxt1 r23 = r23 ;;
}
{ .mfb
01C041700000 0F40 cmp.eq pr0, pr8 = r0, r23
000008000000 0F41 nop.f 0
0095FFFEC008 0F42 (pr8) br.cond.dptk.many L$1022 ;;
}
0F50 L$1021:
{ .mii
012000100B40 0F50 add out2 = @ltoff($LITERAL$+2016), // r45 = @ltoff($LITERAL$+2016), r1 // 071459
gp
012000006640 0F51 mov ai = 3 // r25 = 3
010802700AC0 0F52 mov out0 = cptr ;; // r43 = r39
}
{ .mib
0080C2D00B00 0F60 ld8 out1 = $LITERAL$ // r44 = [r45]
012000008B40 0F61 mov out2 = 4 // r45 = 4
00A000001000 0F62 br.call.sptk.many rp = strsame ;; // br0 = strsame
}
{ .mib
01C4008001C0 0F70 cmp4.eq pr7, pr0 = r0, r8
010802A00040 0F71 mov gp = r42 // r1 = r42
00860003C007 0F72 (pr7) br.cond.dpnt.many L$1027 ;;
}
{ .mii
0108027089C0 0F80 adds r39 = 4, r39 // 071462
010810C20940 0F81 adds r37 = 272, sp ;; // r37 = 272, r12 // 071457
01080A5FE940 0F82 adds r37 = 255, r37
}
{ .mmi
0080027000C0 0F90 ld1 r3 = [r39] ;; // 071462
01A44A54C000 0F91 cmp4.ltu pr0, pr9 = sptr, r37 // pr0, pr9 = r38, r37
0000A03000C0 0F92 sxt1 r3 = r3 ;;
}
{ .mmi
01C0503002C0 0FA0 cmp.eq pr11, pr10 = r0, r3 ;;
01C2000002C9 0FA1 (pr9) cmp.eq.or.andcm pr11, pr0 = r0, r0
000008000000 0FA2 nop.i 0
}
{ .mfb
000008000000 0FB0 nop.m 0
000008000000 0FB1 nop.f 0
00860001C00B 0FB2 (pr11) br.cond.dpnt.many L$1029 ;;
}
0FC0 L$1030:
{ .mii
00AC02606040 0FC0 st1 [r38] = r3, 1
0108027029C0 0FC1 adds r39 = 1, r39 ;;
01A47A54C000 0FC2 cmp4.ltu pr0, pr15 = sptr, r37 // pr0, pr15 = r38, r37
}
{ .mmi
00A002702280 0FD0 ld1 r10 = [r39], 1 ;;
000008000000 0FD1 nop.m 0
0000A0A00280 0FD2 sxt1 r10 = r10 ;;
}
{ .mmi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 77
ServerSignature 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01C060A00340 0FE0 cmp.eq pr13, pr12 = r0, r10 ;;
01C20000034F 0FE1 (pr15) cmp.eq.or.andcm pr13, pr0 = r0, r0
000008000000 0FE2 nop.i 0
}
{ .mfb
000008000000 0FF0 nop.m 0
000008000000 0FF1 nop.f 0
00860001400D 0FF2 (pr13) br.cond.dpnt.many L$1029 ;;
}
{ .mmi
00AC02614040 1000 st1 [r38] = r10, 1 ;;
008002700440 1001 ld1 r17 = [r39]
01A44A54C000 1002 cmp4.ltu pr0, pr9 = sptr, r37 ;; // pr0, pr9 = r38, r37
}
{ .mii
000008000000 1010 nop.m 0
0000A1100440 1011 sxt1 r17 = r17 ;;
01C0311001C0 1012 cmp.eq pr7, pr6 = r0, r17 ;;
}
{ .mfb
01C2000001C9 1020 (pr9) cmp.eq.or.andcm pr7, pr0 = r0, r0
000008000000 1021 nop.f 0
00860000E007 1022 (pr7) br.cond.dpnt.many L$1029 ;;
}
{ .mii
008C02622000 1030 st1 [r38] = r17
0108226004C0 1031 adds r19 = 512, r38
010802602980 1032 adds r38 = 1, r38
}
{ .mmi
010822700480 1040 adds r18 = 512, r39 ;;
0108027029C0 1041 adds r39 = 1, r39
01A47A54C000 1042 cmp4.ltu pr0, pr15 = sptr, r37 // pr0, pr15 = r38, r37
}
{ .mmi
00CB41300000 1050 lfetch.excl [r19] ;;
008002700540 1051 ld1 r21 = [r39]
000008000000 1052 nop.i 0
}
{ .mmi
00CB01200000 1060 lfetch [r18] ;;
000008000000 1061 nop.m 0
0000A15000C0 1062 sxt1 r3 = r21 ;;
}
{ .mmi
01C0503002C0 1070 cmp.eq pr11, pr10 = r0, r3 ;;
01C25000000F 1071 (pr15) cmp.eq.or.andcm pr0, pr10 = r0, r0
000008000000 1072 nop.i 0
}
{ .mfb
000008000000 1080 nop.m 0
000008000000 1081 nop.f 0
0095FFFE800A 1082 (pr10) br.cond.dptk.many L$1030 ;;
}
1090 L$1029:
{ .mmi
010800C205C0 1090 adds r23 = 16, sp // r23 = 16, r12 // 071466
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 78
ServerSignature 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
008C02600000 1091 st1 [r38] = r0 // 071463
010802300640 1092 mov ai = ServerHostNamePtr ;; // r25 = r35 // 071466
}
{ .mii
0080017005C0 10A0 ld1 r23 = [r23]
010800C20600 10A1 adds r24 = 16, sp // r24 = 16, r12
012000100BC0 10A2 add out4 = @ltoffx(SoftwareID), gp // r47 = @ltoffx(SoftwareID), r1 // 071464
}
{ .mmi
010810C20B80 10B0 adds out3 = 272, sp ;; // r46 = 272, r12
0080C2F00BC0 10B1 ld8.mov out4 = [r47], SoftwareID
0000A17005C0 10B2 sxt1 r23 = r23 // 071466
}
{ .mii
010800000B40 10C0 mov out2 = r0 // r45 = r0 // 071464
0000B2400C40 10C1 sxt4 out6 = ServerPortNumber ;; // r49 = r36
01C061700000 10C2 cmp.eq pr0, pr12 = r0, r23 // 071466
}
{ .mii
010802100AC0 10D0 mov out0 = BufferPtr // r43 = r33 // 071464
0000B2200B00 10D1 sxt4 out1 = BufferSize ;; // r44 = r34
01080180064C 10D2 (pr12) mov ai = r24 ;; // r25 = r24 // 071466
}
{ .mib
010801900C00 10E0 mov out5 = ai // r48 = r25 // 071464
01200000E640 10E1 mov ai = 7 // r25 = 7
00A000001000 10E2 br.call.sptk.many rp = FaoToBuffer ;; // br0 = FaoToBuffer
}
{ .mib
010802A00040 10F0 mov gp = r42 // r1 = r42
00A0308001C0 10F1 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0 // 071468
00860000A006 10F2 (pr6) br.cond.dpnt.many L$1033 ;;
}
{ .mii
012000100BC0 1100 add out4 = @ltoffx($LITERAL$), gp // r47 = @ltoffx($LITERAL$), r1
01200000A640 1101 mov ai = 5 // r25 = 5
010800000B40 1102 mov out2 = r0 // r45 = r0
}
{ .mmi
010802000AC0 1110 mov out0 = rqptr ;; // r43 = r32
0080C2F00B80 1111 ld8.mov out3 = [r47], $LITERAL$
01202804ABC0 1112 mov out4 = 677 // r47 = 677
}
{ .mib
000008000000 1120 nop.m 0
0000B0800B00 1121 sxt4 out1 = status // r44 = r8
00A000001000 1122 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed
}
{ .mfi
010802A00040 1130 mov gp = r42 // r1 = r42
000008000000 1131 nop.f 0
000008000000 1132 nop.i 0
}
1140 L$1033:
{ .mfb
000008000000 1140 nop.m 0
000008000000 1141 nop.f 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 79
ServerSignature 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
008000027000 1142 br.sptk.many L$1035 ;;
}
1150 L$1027: // 071470
{ .mii
012000100BC0 1150 add out4 = @ltoffx($LITERAL$), gp // r47 = @ltoffx($LITERAL$), r1 // 071471
012000100B40 1151 add out2 = // r45 = @ltoffx(ErrorSanityCheck), r1
@ltoffx(ErrorSanityCheck), gp
01200000A640 1152 mov ai = 5 // r25 = 5
}
{ .mmi
012028048B00 1160 mov out1 = 676 ;; // r44 = 676
0080C2F00B80 1161 ld8.mov out3 = [r47], $LITERAL$
012028050BC0 1162 mov out4 = 680 // r47 = 680
}
{ .mib
0080C2D00B40 1170 ld8.mov out2 = [r45], ErrorSanityCheck
010802000AC0 1171 mov out0 = rqptr // r43 = r32
00A000001000 1172 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed
}
{ .mfi
010802A00040 1180 mov gp = r42 // r1 = r42
000008000000 1181 nop.f 0
000008000000 1182 nop.i 0
}
1190 L$1019: // 071472
{ .mii
012000004640 1190 mov ai = 2 // r25 = 2 // 071475
012008070B00 1191 mov out1 = 184 // r44 = 184
010802000AC0 1192 mov out0 = rqptr ;; // r43 = r32
}
{ .mfb
000008000000 11A0 nop.m 0
000008000000 11A1 nop.f 0
00A000001000 11A2 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor
}
{ .mii
010800C20940 11B0 adds r37 = 16, sp // r37 = 16, r12 // 071477
010802300980 11B1 mov r38 = ServerHostNamePtr // r38 = r35
010800C209C0 11B2 adds r39 = 16, sp // r39 = 16, r12
}
{ .mmi
010802A00040 11C0 mov gp = r42 ;; // r1 = r42 // 071475
008002500940 11C1 ld1 r37 = [r37] // 071477
012000100C00 11C2 add out5 = @ltoffx(HttpdVersion), // r48 = @ltoffx(HttpdVersion), r1 // 071474
gp
}
{ .mii
012000100BC0 11D0 add out4 = @ltoffx(HttpdName), gp // r47 = @ltoffx(HttpdName), r1
012000010640 11D1 mov ai = 8 ;; // r25 = 8
0000A2500940 11D2 sxt1 r37 = r37 // 071477
}
{ .mmi
0080C3000C00 11E0 ld8.mov out5 = [r48], HttpdVersion // 071474
0080C2F00BC0 11E1 ld8.mov out4 = [r47], HttpdName
0000B2400C80 11E2 sxt4 out7 = ServerPortNumber ;; // r50 = r36
}
{ .mii
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 80
ServerSignature 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01C032500000 11F0 cmp.eq pr0, pr6 = r0, r37 // 071477
010800800B80 11F1 mov out3 = r8 // r46 = r8 // 071474
010800000B40 11F2 mov out2 = r0 // r45 = r0
}
{ .mmi
010802100AC0 1200 mov out0 = BufferPtr ;; // r43 = r33
010802700986 1201 (pr6) mov r38 = r39 // 071477
0000B2200B00 1202 sxt4 out1 = BufferSize ;; // r44 = r34 // 071474
}
{ .mfb
010802600C40 1210 mov out6 = r38 // r49 = r38
000008000000 1211 nop.f 0
00A000001000 1212 br.call.sptk.many rp = FaoToBuffer ;; // br0 = FaoToBuffer
}
{ .mib
010802A00040 1220 mov gp = r42 // r1 = r42
00A0308001C0 1221 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0 // 071479
00860000A006 1222 (pr6) br.cond.dpnt.many L$1035 ;;
}
{ .mii
012000100BC0 1230 add out4 = @ltoffx($LITERAL$), gp // r47 = @ltoffx($LITERAL$), r1
01200000A640 1231 mov ai = 5 // r25 = 5
010800000B40 1232 mov out2 = r0 // r45 = r0
}
{ .mmi
010802000AC0 1240 mov out0 = rqptr ;; // r43 = r32
0080C2F00B80 1241 ld8.mov out3 = [r47], $LITERAL$
012028060BC0 1242 mov out4 = 688 // r47 = 688
}
{ .mib
000008000000 1250 nop.m 0
0000B0800B00 1251 sxt4 out1 = status // r44 = r8
00A000001000 1252 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed
}
{ .mfi
010802A00040 1260 mov gp = r42 // r1 = r42
000008000000 1261 nop.f 0
000008000000 1262 nop.i 0
}
1270 L$1035:
{ .mii
010802100200 1270 mov r8 = BufferPtr // r8 = r33 // 071481
000154052000 1271 mov.i rspfs = r41 ;;
000E00150000 1272 mov rp = r40 // br0 = r40
}
{ .mfb
010820C00300 1280 adds sp = 512, sp // r12 = 512, r12
000008000000 1281 nop.f 0
000108001100 1282 br.ret.sptk.many rp ;; // br0
}
.endp ServerSignature
Routine Size: 1616 bytes, Routine Base: $CODE$ + 0C40
.proc HttpLocalTimeString
.align 32
.global HttpLocalTimeString
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 81
HttpLocalTimeString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
HttpLocalTimeString: // 071493
{ .mii
002C00B26A40 1290 alloc r41 = rspfs, 2, 9, 8, 0
012000060380 1291 mov r14 = 48
010800C00080 1292 mov r2 = sp // r2 = r12
}
{ .mmi
01C400042200 12A0 cmp4.eq pr8, pr0 = Time64Ptr, r0 ;; // pr8, pr0 = r33, r0 // 071522
010028E183C0 12A1 sub r15 = sp, r14 // r15 = r12, r14 // 071493
000188000A00 12A2 mov r40 = rp ;; // r40 = br0
}
{ .mii
0080C0F00380 12B0 ld8 r14 = [r15]
010800F00300 12B1 mov sp = r15 // r12 = r15
010800100A80 12B2 mov r42 = gp // r42 = r1
}
{ .mfb
000008000000 12C0 nop.m 0
000008000000 12C1 nop.f 0
008600010008 12C2 (pr8) br.cond.dpnt.many L$998 ;; // 071522
}
{ .mmi
0111621F0240 12D0 and r9 = -8, in1 ;; // r9 = -8, r33 // 071523
01C050942000 12D1 cmp.eq pr0, pr10 = in1, r9 // pr0, pr10 = r33, r9
000008000000 12D2 nop.i 0
}
{ .mmi
00A0C0910440 12E0 ld8 r17 = [r9], 8 ;;
000008000000 12E1 nop.m 0
009E1004228A 12E2 (pr10) dep r10 = in1, r0, 3, 3 ;; // r10 = r33, r0, 3, 3
}
{ .mmi
0080C09002CA 12F0 (pr10) ld8 r11 = [r9] ;;
000008000000 12F1 nop.m 0
00F20111444A 12F2 (pr10) shr.u r17 = r17, r10
}
{ .mmi
010128A8028A 1300 (pr10) sub r10 = 64, r10 ;;
000008000000 1301 nop.m 0
00F240A162CA 1302 (pr10) shl r11 = r11, r10 ;;
}
{ .mmi
01007111644A 1310 (pr10) or r17 = r11, r17 ;;
010800F703C0 1311 adds r15 = 56, r15
000008000000 1312 nop.i 0 ;;
}
{ .mfi
00BCC8F23200 1320 st8 [r15] = r17, -56
000008000000 1321 nop.f 0
000008000000 1322 nop.i 0 ;;
}
{ .mfb
000008000000 1330 nop.m 0
000008000000 1331 nop.f 0
008000007000 1332 br.sptk.many L$999 ;; // 071524
}
1340 L$998:
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 82
HttpLocalTimeString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mib
012000002640 1340 mov ai = 1 // r25 = 1 // 071525
010800C70AC0 1341 adds out0 = 56, sp // r43 = 56, r12
00A000001000 1342 br.call.sptk.many rp = SYS$GETTIM ;; // br0 = SYS$GETTIM
}
{ .mfi
010802A00040 1350 mov gp = r42 // r1 = r42
000008000000 1351 nop.f 0
000008000000 1352 nop.i 0
}
1360 L$999:
{ .mii
012000004640 1360 mov ai = 2 // r25 = 2 // 071527
010800C70B00 1361 adds out1 = 56, sp // r44 = 56, r12
010800C50AC0 1362 adds out0 = 40, sp ;; // r43 = 40, r12
}
{ .mfb
000008000000 1370 nop.m 0
000008000000 1371 nop.f 0
00A000001000 1372 br.call.sptk.many rp = SYS$NUMTIM ;; // br0 = SYS$NUMTIM
}
{ .mii
012000004640 1380 mov ai = 2 // r25 = 2 // 071529
010800C40B00 1381 adds out1 = 32, sp // r44 = 32, r12
010800C70AC0 1382 adds out0 = 56, sp // r43 = 56, r12
}
{ .mfb
010802A00040 1390 mov gp = r42 // r1 = r42 // 071527
000008000000 1391 nop.f 0
004000000000 1392 nop.b 0 ;;
}
{ .mfb
000008000000 13A0 nop.m 0
000008000000 13A1 nop.f 0
00A000001000 13A2 br.call.sptk.many rp = LIB$DAY_OF_WEEK ;; // br0 = LIB$DAY_OF_WEEK // 071529
}
{ .mib
010802A00040 13B0 mov gp = r42 // r1 = r42
00A0308001C0 13B1 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0
008600004006 13B2 (pr6) br.cond.dpnt.many L$1000 ;;
}
{ .mfb
000008000000 13C0 nop.m 0
000008000000 13C1 nop.f 0
008000027000 13C2 br.sptk.many L$1004 ;;
}
13D0 L$1000: // 071530
{ .mii
010800C40880 13D0 adds r34 = 32, sp // r34 = 32, r12 // 071537
012000100240 13D1 add r9 = @ltoffx(MonthName), gp // r9 = @ltoffx(MonthName), r1
010800C54840 13D2 adds in1 = 42, sp // r33 = 42, r12
}
{ .mmi
0120001009C0 13E0 add r39 = @ltoffx(DayName), gp ;; // r39 = @ltoffx(DayName), r1
008082200880 13E1 ld4 r34 = [r34]
010800C60480 13E2 adds r18 = 48, sp // r18 = 48, r12 // 071538
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 83
HttpLocalTimeString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mii
0080C0900240 13F0 ld8.mov r9 = [r9], MonthName // 071537
010800C642C0 13F1 adds r11 = 50, sp ;; // r11 = 50, r12 // 071538
0000B2200880 13F2 sxt4 r34 = r34 // 071537
}
{ .mmi
008042100840 1400 ld2 in1 = [in1] // r33 = [r33]
0080C27009C0 1401 ld8.mov r39 = [r39], DayName
010800C580C0 1402 adds r3 = 44, sp ;; // r3 = 44, r12
}
{ .mmi
008041200480 1410 ld2 r18 = [r18] // 071538
008040B002C0 1411 ld2 r11 = [r11]
010088942240 1412 shladd r9 = in1, 2, r9 ;; // r9 = r33, 2, r9 // 071537
}
{ .mii
01008A744880 1420 shladd r34 = r34, 2, r39
010800C204C0 1421 adds r19 = 16, sp // r19 = 16, r12 // 071536
012000034900 1422 mov r36 = 26 // 071533
}
{ .mmi
0120001008C0 1430 add r35 = @gprel(TimeStringDsc), // r35 = @gprel(TimeStringDsc), r1
gp ;;
008080900C00 1431 ld4 out5 = [r9] // r48 = [r9] // 071536
010800C30500 1432 adds r20 = 24, sp // r20 = 24, r12
}
{ .mii
008082200B80 1440 ld4 out3 = [r34] // r46 = [r34]
010800C50440 1441 adds r17 = 40, sp ;; // r17 = 40, r12 // 071538
010800C5C280 1442 adds r10 = 46, sp // r10 = 46, r12
}
{ .mii
0080403000C0 1450 ld2 r3 = [r3] // 071537
012000100AC0 1451 add out0 = @gprel(HttpTimeFaoDsc), // r43 = @gprel(HttpTimeFaoDsc), r1 // 071536
gp
012000014640 1452 mov ai = 10 ;; // r25 = 10
}
{ .mmi
008CC1324000 1460 st8 [r19] = r18
00AC42348100 1461 st2 [r35] = r36, 4 // 071533
0000B3000C00 1462 sxt4 out5 = out5 ;; // r48 = r48 // 071536
}
{ .mmi
008041100C40 1470 ld2 out6 = [r17] // r49 = [r17] // 071538
008040A00C80 1471 ld2 out7 = [r10] // r50 = [r10]
010800300BC0 1472 mov out4 = r3 ;; // r47 = r3 // 071536
}
{ .mii
012000000B00 1480 mov out1 = 0 // r44 = 0
0000B2E00B80 1481 sxt4 out3 = out3 // r46 = r46
010802B10B40 1482 adds out2 = 8, out0 // r45 = 8, r43
}
{ .mmi
008CC1416000 1490 st8 [r20] = r11 ;;
008C82340000 1491 st4 [r35] = TimeString // [r35] = r32 // 071534
000008000000 1492 nop.i 0
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 84
HttpLocalTimeString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfb
000008000000 14A0 nop.m 0
000008000000 14A1 nop.f 0
00A000001000 14A2 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO // 071536
}
{ .mii
012060002900 14B0 mov r36 = 1537 // 071539
00A0308001C0 14B1 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0
010802A00040 14B2 mov gp = r42 ;; // r1 = r42 // 071536
}
{ .mmi
01C402410200 14C0 cmp4.eq pr8, pr0 = status, r36 ;; // pr8, pr0 = r8, r36 // 071539
01C230000008 14C1 (pr8) cmp.eq.or.andcm pr0, pr6 = r0, r0
000008000000 14C2 nop.i 0
}
{ .mfb
000008000000 14D0 nop.m 0
000008000000 14D1 nop.f 0
008600004006 14D2 (pr6) br.cond.dpnt.many L$1004 ;;
}
{ .mfi
008C02000000 14E0 st1 [in0] = r0 // [r32] = r0
000008000000 14E1 nop.f 0
000008000000 14E2 nop.i 0
}
14F0 L$1004:
{ .mii
000008000000 14F0 nop.m 0
0000B0800200 14F1 sxt4 r8 = r8 ;; // 071541
000154052000 14F2 mov.i rspfs = r41 ;;
}
{ .mii
000008000000 1500 nop.m 0
000E00150000 1501 mov rp = r40 // br0 = r40
010800C60300 1502 adds sp = 48, sp // r12 = 48, r12
}
{ .mfb
000008000000 1510 nop.m 0
000008000000 1511 nop.f 0
000108001100 1512 br.ret.sptk.many rp ;; // br0
}
.endp HttpLocalTimeString
Routine Size: 656 bytes, Routine Base: $CODE$ + 1290
.proc HttpGmTimeString
.align 32
.global HttpGmTimeString
HttpGmTimeString: // 071553
{ .mii
002C00B26A40 1520 alloc r41 = rspfs, 2, 9, 8, 0
012000060380 1521 mov r14 = 48
010800C00080 1522 mov r2 = sp // r2 = r12
}
{ .mmi
01C400042200 1530 cmp4.eq pr8, pr0 = Time64Ptr, r0 ;; // pr8, pr0 = r33, r0 // 071584
010028E183C0 1531 sub r15 = sp, r14 // r15 = r12, r14 // 071553
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 85
HttpGmTimeString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000188000A00 1532 mov r40 = rp ;; // r40 = br0
}
{ .mii
0080C0F00380 1540 ld8 r14 = [r15]
010800F00300 1541 mov sp = r15 // r12 = r15
010800100A80 1542 mov r42 = gp // r42 = r1
}
{ .mfb
000008000000 1550 nop.m 0
000008000000 1551 nop.f 0
00860000C008 1552 (pr8) br.cond.dpnt.many L$987 ;; // 071584
}
{ .mmi
0111621F0240 1560 and r9 = -8, in1 ;; // r9 = -8, r33 // 071585
01C050942000 1561 cmp.eq pr0, pr10 = in1, r9 // pr0, pr10 = r33, r9
000008000000 1562 nop.i 0
}
{ .mmi
00A0C0910440 1570 ld8 r17 = [r9], 8 ;;
000008000000 1571 nop.m 0
009E1004228A 1572 (pr10) dep r10 = in1, r0, 3, 3 ;; // r10 = r33, r0, 3, 3
}
{ .mmi
0080C09002CA 1580 (pr10) ld8 r11 = [r9] ;;
000008000000 1581 nop.m 0
00F20111444A 1582 (pr10) shr.u r17 = r17, r10
}
{ .mmi
010128A8028A 1590 (pr10) sub r10 = 64, r10 ;;
000008000000 1591 nop.m 0
00F240A162CA 1592 (pr10) shl r11 = r11, r10 ;;
}
{ .mfb
01007111644A 15A0 (pr10) or r17 = r11, r17
000008000000 15A1 nop.f 0
008000009000 15A2 br.sptk.many L$988 ;; // 071586
}
15B0 L$987:
{ .mib
012000002640 15B0 mov ai = 1 // r25 = 1 // 071587
010800C70AC0 15B1 adds out0 = 56, sp // r43 = 56, r12
00A000001000 15B2 br.call.sptk.many rp = SYS$GETTIM ;; // br0 = SYS$GETTIM
}
{ .mii
010800C70880 15C0 adds r34 = 56, sp // r34 = 56, r12
010802A00040 15C1 mov gp = r42 // r1 = r42
000008000000 15C2 nop.i 0 ;;
}
{ .mfi
0080C2200440 15D0 ld8 time64 = [r34] // r17 = [r34]
000008000000 15D1 nop.f 0
000008000000 15D2 nop.i 0
}
15E0 L$988:
{ .mii
0120001008C0 15E0 add r35 = @ltoffx(TimeUtcDelta64), // r35 = @ltoffx(TimeUtcDelta64), r1 // 072004
gp
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 86
HttpGmTimeString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010800C70900 15E1 adds r36 = 56, sp // r36 = 56, r12
012000004640 15E2 mov ai = 2 ;; // r25 = 2 // 071591
}
{ .mii
0080C23008C0 15F0 ld8.mov r35 = [r35], TimeUtcDelta64 // 072004
010800C70B00 15F1 adds out1 = 56, sp // r44 = 56, r12 // 071591
010800C50AC0 15F2 adds out0 = 40, sp ;; // r43 = 40, r12
}
{ .mmi
0080C23008C0 1600 ld8 r35 = TimeUtcDelta64 ;; // r35 = [r35] // 072004
01002A322440 1601 sub r17 = time64, r35 // r17 = r17, r35
000008000000 1602 nop.i 0 ;;
}
{ .mfb
008CC2422000 1610 st8 [r36] = r17
000008000000 1611 nop.f 0
00A000001000 1612 br.call.sptk.many rp = SYS$NUMTIM ;; // br0 = SYS$NUMTIM // 071591
}
{ .mii
012000004640 1620 mov ai = 2 // r25 = 2 // 071593
010800C40B00 1621 adds out1 = 32, sp // r44 = 32, r12
010800C70AC0 1622 adds out0 = 56, sp // r43 = 56, r12
}
{ .mfb
010802A00040 1630 mov gp = r42 // r1 = r42 // 071591
000008000000 1631 nop.f 0
004000000000 1632 nop.b 0 ;;
}
{ .mfb
000008000000 1640 nop.m 0
000008000000 1641 nop.f 0
00A000001000 1642 br.call.sptk.many rp = LIB$DAY_OF_WEEK ;; // br0 = LIB$DAY_OF_WEEK // 071593
}
{ .mib
010802A00040 1650 mov gp = r42 // r1 = r42
00A0308001C0 1651 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0
008600004006 1652 (pr6) br.cond.dpnt.many L$989 ;;
}
{ .mfb
000008000000 1660 nop.m 0
000008000000 1661 nop.f 0
008000027000 1662 br.sptk.many L$993 ;;
}
1670 L$989: // 071594
{ .mii
010800C40940 1670 adds r37 = 32, sp // r37 = 32, r12 // 071601
012000100240 1671 add r9 = @ltoffx(MonthName), gp // r9 = @ltoffx(MonthName), r1
010800C54900 1672 adds r36 = 42, sp // r36 = 42, r12
}
{ .mmi
0120001008C0 1680 add r35 = @ltoffx(DayName), gp ;; // r35 = @ltoffx(DayName), r1
008082500940 1681 ld4 r37 = [r37]
010800C60480 1682 adds r18 = 48, sp // r18 = 48, r12 // 071602
}
{ .mii
0080C0900240 1690 ld8.mov r9 = [r9], MonthName // 071601
010800C642C0 1691 adds r11 = 50, sp ;; // r11 = 50, r12 // 071602
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 87
HttpGmTimeString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0000B2500940 1692 sxt4 r37 = r37 // 071601
}
{ .mmi
008042400900 16A0 ld2 r36 = [r36]
0080C23008C0 16A1 ld8.mov r35 = [r35], DayName
010800C580C0 16A2 adds r3 = 44, sp ;; // r3 = 44, r12
}
{ .mmi
008041200480 16B0 ld2 r18 = [r18] // 071602
008040B002C0 16B1 ld2 r11 = [r11]
010088948240 16B2 shladd r9 = r36, 2, r9 ;; // 071601
}
{ .mii
01008A34A8C0 16C0 shladd r35 = r37, 2, r35
010800C204C0 16C1 adds r19 = 16, sp // r19 = 16, r12 // 071600
01200003C9C0 16C2 mov r39 = 30 // 071597
}
{ .mmi
012000100980 16D0 add r38 = @gprel(TimeStringDsc), // r38 = @gprel(TimeStringDsc), r1
gp ;;
008080900C00 16D1 ld4 out5 = [r9] // r48 = [r9] // 071600
010800C30500 16D2 adds r20 = 24, sp // r20 = 24, r12
}
{ .mii
008082300B80 16E0 ld4 out3 = [r35] // r46 = [r35]
010800C50440 16E1 adds r17 = 40, sp ;; // r17 = 40, r12 // 071602
010800C5C280 16E2 adds r10 = 46, sp // r10 = 46, r12
}
{ .mii
0080403000C0 16F0 ld2 r3 = [r3] // 071601
012000100AC0 16F1 add out0 = @gprel(HttpTimeFaoDsc), // r43 = @gprel(HttpTimeFaoDsc), r1 // 071600
gp
012000014640 16F2 mov ai = 10 ;; // r25 = 10
}
{ .mmi
008CC1324000 1700 st8 [r19] = r18
00AC4264E100 1701 st2 [r38] = r39, 4 // 071597
0000B3000C00 1702 sxt4 out5 = out5 ;; // r48 = r48 // 071600
}
{ .mmi
008041100C40 1710 ld2 out6 = [r17] // r49 = [r17] // 071602
008040A00C80 1711 ld2 out7 = [r10] // r50 = [r10]
010800300BC0 1712 mov out4 = r3 ;; // r47 = r3 // 071600
}
{ .mii
012000000B00 1720 mov out1 = 0 // r44 = 0
0000B2E00B80 1721 sxt4 out3 = out3 // r46 = r46
010802B10B40 1722 adds out2 = 8, out0 // r45 = 8, r43
}
{ .mmi
008CC1416000 1730 st8 [r20] = r11 ;;
008C82640000 1731 st4 [r38] = TimeString // [r38] = r32 // 071598
000008000000 1732 nop.i 0
}
{ .mfb
000008000000 1740 nop.m 0
000008000000 1741 nop.f 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 88
HttpGmTimeString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00A000001000 1742 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO // 071600
}
{ .mii
012060002840 1750 mov in1 = 1537 // r33 = 1537 // 071603
00A0308001C0 1751 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0
010802A00040 1752 mov gp = r42 ;; // r1 = r42 // 071600
}
{ .mmi
01C402110200 1760 cmp4.eq pr8, pr0 = status, in1 ;; // pr8, pr0 = r8, r33 // 071603
01C230000008 1761 (pr8) cmp.eq.or.andcm pr0, pr6 = r0, r0
000008000000 1762 nop.i 0
}
{ .mfb
000008000000 1770 nop.m 0
000008000000 1771 nop.f 0
008600004006 1772 (pr6) br.cond.dpnt.many L$993 ;;
}
{ .mfi
008C02000000 1780 st1 [in0] = r0 // [r32] = r0
000008000000 1781 nop.f 0
000008000000 1782 nop.i 0
}
1790 L$993:
{ .mii
000008000000 1790 nop.m 0
0000B0800200 1791 sxt4 r8 = r8 ;; // 071605
000154052000 1792 mov.i rspfs = r41 ;;
}
{ .mii
000008000000 17A0 nop.m 0
000E00150000 17A1 mov rp = r40 // br0 = r40
010800C60300 17A2 adds sp = 48, sp // r12 = 48, r12
}
{ .mfb
000008000000 17B0 nop.m 0
000008000000 17B1 nop.f 0
000108001100 17B2 br.ret.sptk.many rp ;; // br0
}
.endp HttpGmTimeString
Routine Size: 672 bytes, Routine Base: $CODE$ + 1520
.proc HttpIsoTimeString
.align 32
.global HttpIsoTimeString
HttpIsoTimeString: // 071618
{ .mii
002C00C28A40 17C0 alloc r41 = rspfs, 3, 9, 8, 0
012000080380 17C1 mov r14 = 64
010800C00080 17C2 mov r2 = sp // r2 = r12
}
{ .mmi
010800100AC0 17D0 mov r43 = gp ;; // r43 = r1
010028E183C0 17D1 sub r15 = sp, r14 // r15 = r12, r14
000188000A00 17D2 mov r40 = rp ;; // r40 = br0
}
{ .mii
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 89
HttpIsoTimeString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0080C0F00380 17E0 ld8 r14 = [r15]
010800F00300 17E1 mov sp = r15 // r12 = r15
000198000A80 17E2 mov r42 = pr ;;
}
{ .mfb
01C400044200 17F0 cmp4.eq pr8, pr0 = Time64Ptr, r0 // pr8, pr0 = r34, r0 // 071642
000008000000 17F1 nop.f 0
008600010008 17F2 (pr8) br.cond.dpnt.many L$974 ;;
}
{ .mmi
0111622F0240 1800 and r9 = -8, in2 ;; // r9 = -8, r34 // 071643
01C050944000 1801 cmp.eq pr0, pr10 = in2, r9 // pr0, pr10 = r34, r9
000008000000 1802 nop.i 0
}
{ .mmi
00A0C0910440 1810 ld8 r17 = [r9], 8 ;;
000008000000 1811 nop.m 0
009E1004428A 1812 (pr10) dep r10 = in2, r0, 3, 3 ;; // r10 = r34, r0, 3, 3
}
{ .mmi
0080C09002CA 1820 (pr10) ld8 r11 = [r9] ;;
000008000000 1821 nop.m 0
00F20111444A 1822 (pr10) shr.u r17 = r17, r10
}
{ .mmi
010128A8028A 1830 (pr10) sub r10 = 64, r10 ;;
000008000000 1831 nop.m 0
00F240A162CA 1832 (pr10) shl r11 = r11, r10 ;;
}
{ .mmi
01007111644A 1840 (pr10) or r17 = r11, r17 ;;
010800F803C0 1841 adds r15 = 64, r15
000008000000 1842 nop.i 0 ;;
}
{ .mfi
00BCC8F23000 1850 st8 [r15] = r17, -64
000008000000 1851 nop.f 0
000008000000 1852 nop.i 0 ;;
}
{ .mfb
000008000000 1860 nop.m 0
000008000000 1861 nop.f 0
008000007000 1862 br.sptk.many L$975 ;; // 071644
}
1870 L$974:
{ .mib
012000002640 1870 mov ai = 1 // r25 = 1 // 071645
010800C80B00 1871 adds out0 = 64, sp // r44 = 64, r12
00A000001000 1872 br.call.sptk.many rp = SYS$GETTIM ;; // br0 = SYS$GETTIM
}
{ .mfi
010802B00040 1880 mov gp = r43 // r1 = r43
000008000000 1881 nop.f 0
000008000000 1882 nop.i 0
}
1890 L$975:
{ .mmi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 90
HttpIsoTimeString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01C4320001C0 1890 cmp4.eq pr7, pr6 = r0, LocalTimeZone ;; // pr7, pr6 = r0, r32 // 071647
01C0000010C7 1891 (pr7) cmp.eq.unc pr3, pr0 = r0, r0
01C000001086 1892 (pr6) cmp.eq.unc pr2, pr0 = r0, r0
}
{ .mfb
000008000000 18A0 nop.m 0
000008000000 18A1 nop.f 0
00860000A002 18A2 (pr2) br.cond.dpnt.many L$976 ;;
}
{ .mii
012000100900 18B0 add r36 = @ltoffx(TimeUtcDelta64), // r36 = @ltoffx(TimeUtcDelta64), r1 // 072004
gp
010800C808C0 18B1 adds r35 = 64, sp // r35 = 64, r12
010800C80940 18B2 adds r37 = 64, sp ;; // r37 = 64, r12
}
{ .mmi
0080C2400900 18C0 ld8.mov r36 = [r36], TimeUtcDelta64
0080C23008C0 18C1 ld8 r35 = [r35]
000008000000 18C2 nop.i 0 ;;
}
{ .mmi
0080C2400900 18D0 ld8 r36 = TimeUtcDelta64 ;; // r36 = [r36]
01002A4468C0 18D1 sub r35 = r35, r36
000008000000 18D2 nop.i 0 ;;
}
{ .mfi
008CC2546000 18E0 st8 [r37] = r35
000008000000 18E1 nop.f 0
000008000000 18E2 nop.i 0
}
18F0 L$976: // 071647
{ .mii
012000004640 18F0 mov ai = 2 // r25 = 2 // 071649
010800C80B40 18F1 adds out1 = 64, sp // r45 = 64, r12
010800C60B00 18F2 adds out0 = 48, sp ;; // r44 = 48, r12
}
{ .mfb
000008000000 1900 nop.m 0
000008000000 1901 nop.f 0
00A000001000 1902 br.call.sptk.many rp = SYS$NUMTIM ;; // br0 = SYS$NUMTIM
}
{ .mii
010802B00040 1910 mov gp = r43 // r1 = r43
01200003E200 1911 mov r8 = 31 // 071652
010800C78940 1912 adds r37 = 60, sp // r37 = 60, r12 // 071658
}
{ .mmi
010800C748C0 1920 adds r35 = 58, sp ;; // r35 = 58, r12
0120001000C0 1921 add r3 = @gprel(TimeStringDsc), gp // r3 = @gprel(TimeStringDsc), r1 // 071652
010800C70900 1922 adds r36 = 56, sp // r36 = 56, r12 // 071658
}
{ .mii
010800C6C800 1930 adds in0 = 54, sp // r32 = 54, r12
010800C68880 1931 adds in2 = 52, sp ;; // r34 = 52, r12 // 071657
010800C649C0 1932 adds r39 = 50, sp // r39 = 50, r12
}
{ .mmi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 91
HttpIsoTimeString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010800C60980 1940 adds r38 = 48, sp // r38 = 48, r12
00AC40310100 1941 st2 [r3] = r8, 4 // 071652
012000100280 1942 add r10 = @gprel(UtcTimeFaoDsc), // r10 = @gprel(UtcTimeFaoDsc), r1 // 071661
gp ;;
}
{ .mmi
008042500940 1950 ld2 r37 = [r37] // 071658
0080423008C0 1951 ld2 r35 = [r35]
000008000000 1952 nop.i 0 ;;
}
{ .mmi
0080424002C0 1960 ld2 r11 = [r36]
008042000CC0 1961 ld2 out7 = [in0] // r51 = [r32]
000008000000 1962 nop.i 0 ;;
}
{ .mmi
008042200C80 1970 ld2 out6 = [in2] // r50 = [r34] // 071657
008042700C40 1971 ld2 out5 = [r39] // r49 = [r39]
000008000000 1972 nop.i 0 ;;
}
{ .mmi
008042600C00 1980 ld2 out4 = [r38] ;; // r48 = [r38]
008C80342000 1981 st4 [r3] = TimeString // [r3] = r33 // 071653
000008000000 1982 nop.i 0
}
{ .bbb
008600002002 1990 (pr2) br.cond.dpnt.many L$978 // 071655
004000000000 1991 nop.b 0
008600010003 1992 (pr3) br.cond.dpnt.many L$979 ;;
}
19A0 L$978:
{ .mii
010800C20480 19A0 adds r18 = 16, sp // r18 = 16, r12 // 071656
0000B23008C0 19A1 sxt4 r35 = r35
0000B2500940 19A2 sxt4 r37 = r37
}
{ .mmi
010800C404C0 19B0 adds r19 = 32, sp ;; // r19 = 32, r12
008CC1246000 19B1 st8 [r18] = r35
010800C308C0 19B2 adds r35 = 24, sp // r35 = 24, r12
}
{ .mii
012000016640 19C0 mov ai = 11 // r25 = 11
0000B3000BC0 19C1 sxt4 out3 = out4 ;; // r47 = r48
0000B3100C00 19C2 sxt4 out4 = out5 // r48 = r49
}
{ .mii
008CC234A000 19D0 st8 [r35] = r37
0120001008C0 19D1 add r35 = @ltoffx(TimeZoneString), // r35 = @ltoffx(TimeZoneString), r1 // 071659
gp
0000B3200C40 19D2 sxt4 out5 = out6 ;; // r49 = r50 // 071656
}
{ .mii
0080C23008C0 19E0 ld8.mov r35 = [r35], TimeZoneString // 071659
0000B3300C80 19E1 sxt4 out6 = out7 // r50 = r51 // 071656
0000B0B00CC0 19E2 sxt4 out7 = r11 // r51 = r11
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 92
HttpIsoTimeString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
012000000B40 19F0 mov out1 = 0 ;; // r45 = 0
008CC1346000 19F1 st8 [r19] = r35
010800A10B80 19F2 adds out2 = 8, r10 // r46 = 8, r10
}
{ .mfb
010800A20B00 1A00 adds out0 = 16, r10 // r44 = 16, r10
000008000000 1A01 nop.f 0
00800000F000 1A02 br.sptk.many L$1125 ;;
}
1A10 L$979: // 071660
{ .mii
010800C209C0 1A10 adds r39 = 16, sp // r39 = 16, r12 // 071661
0000B23008C0 1A11 sxt4 r35 = r35
010800C30880 1A12 adds in2 = 24, sp // r34 = 24, r12
}
{ .mmi
010800A10B80 1A20 adds out2 = 8, r10 ;; // r46 = 8, r10
008CC2746000 1A21 st8 [r39] = r35
0000B2500940 1A22 sxt4 r37 = r37
}
{ .mii
012000014640 1A30 mov ai = 10 // r25 = 10
0000B3000BC0 1A31 sxt4 out3 = out4 ;; // r47 = r48
0000B3100C00 1A32 sxt4 out4 = out5 // r48 = r49
}
{ .mii
012000000B40 1A40 mov out1 = 0 // r45 = 0
0000B3200C40 1A41 sxt4 out5 = out6 ;; // r49 = r50
0000B3300C80 1A42 sxt4 out6 = out7 // r50 = r51
}
{ .mib
010800A00B00 1A50 mov out0 = r10 // r44 = r10
0000B0B00CC0 1A51 sxt4 out7 = r11 // r51 = r11
004000000000 1A52 nop.b 0 ;;
}
{ .mfi
008CC224A000 1A60 st8 [in2] = r37 // [r34] = r37
000008000000 1A61 nop.f 0
000008000000 1A62 nop.i 0
}
1A70 L$1125:
{ .mfb
000008000000 1A70 nop.m 0
000008000000 1A71 nop.f 0
00A000001000 1A72 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO
}
{ .mii
012060002800 1A80 mov in0 = 1537 // r32 = 1537 // 071664
00A0108000C0 1A81 tbit.z pr3, pr2 = status, 0 // pr3, pr2 = r8, 0
010802B00040 1A82 mov gp = r43 ;; // r1 = r43 // 071661
}
{ .mmi
01C402010180 1A90 cmp4.eq pr6, pr0 = status, in0 ;; // pr6, pr0 = r8, r32 // 071664
01C210000006 1A91 (pr6) cmp.eq.or.andcm pr0, pr2 = r0, r0
000008000000 1A92 nop.i 0
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 93
HttpIsoTimeString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfb
000008000000 1AA0 nop.m 0
000008000000 1AA1 nop.f 0
008600004002 1AA2 (pr2) br.cond.dpnt.many L$982 ;;
}
{ .mfi
008C02100000 1AB0 st1 [in1] = r0 // [r33] = r0
000008000000 1AB1 nop.f 0
000008000000 1AB2 nop.i 0
}
1AC0 L$982:
{ .mii
000008000000 1AC0 nop.m 0
0016000547C0 1AC1 mov pr = r42, -65474 // 071666
0000B0800200 1AC2 sxt4 r8 = r8 ;;
}
{ .mii
000008000000 1AD0 nop.m 0
000154052000 1AD1 mov.i rspfs = r41 ;;
000E00150000 1AD2 mov rp = r40 // br0 = r40
}
{ .mfb
010800C80300 1AE0 adds sp = 64, sp // r12 = 64, r12
000008000000 1AE1 nop.f 0
000108001100 1AE2 br.ret.sptk.many rp ;; // br0
}
.endp HttpIsoTimeString
Routine Size: 816 bytes, Routine Base: $CODE$ + 17C0
.proc HttpGetTime
.align 32
.global HttpGetTime
HttpGetTime: // 071681
{ .mii
002C0040C8C0 1AF0 alloc r35 = rspfs, 2, 2, 2, 0
010802100940 1AF1 mov out1 = Time64Ptr // r37 = r33 // 071693
010802000900 1AF2 mov out0 = TimeString ;; // r36 = r32
}
{ .mib
000008000000 1B00 nop.m 0
000188000880 1B01 mov r34 = rp // r34 = br0 // 071681
00A000001000 1B02 br.call.sptk.many rp = HttpGmTime ;; // br0 = HttpGmTime // 071693
}
{ .mib
000008000000 1B10 nop.m 0
00A0308001C0 1B11 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0
008600004006 1B12 (pr6) br.cond.dpnt.many L$968 ;;
}
{ .mib
010802100940 1B20 mov out1 = Time64Ptr // r37 = r33 // 071694
010802000900 1B21 mov out0 = TimeString // r36 = r32
00A000001000 1B22 br.call.sptk.many rp = HttpIsoTime ;; // br0 = HttpIsoTime
}
1B30 L$968:
{ .mib
000008000000 1B30 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 94
HttpGetTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0000B0800200 1B31 sxt4 r8 = r8 // 071695
004000000000 1B32 nop.b 0
}
{ .mii
000008000000 1B40 nop.m 0
000154046000 1B41 mov.i rspfs = r35 ;;
000E00144000 1B42 mov rp = r34 // br0 = r34
}
{ .mfb
000008000000 1B50 nop.m 0
000008000000 1B51 nop.f 0
000108001100 1B52 br.ret.sptk.many rp ;; // br0
}
.endp HttpGetTime
Routine Size: 112 bytes, Routine Base: $CODE$ + 1AF0
.proc HttpGmTime
.align 32
.global HttpGmTime
HttpGmTime: // 071705
{ .mii
002C00816980 1B60 alloc r38 = rspfs, 2, 6, 3, 0
012000020380 1B61 mov r14 = 16
010800C00080 1B62 mov r2 = sp // r2 = r12
}
{ .mmi
010802000A00 1B70 mov TimeString = in0 ;; // r40 = r32
010028E183C0 1B71 sub r15 = sp, r14 // r15 = r12, r14
000188000940 1B72 mov r37 = rp // r37 = br0
}
{ .mlx
0119F80FE740 1B80 adds r29 = -1, r0
01FFFC000000 1B81 movl in0 = -281474976710656 ;; // r32 = -281474976710656 // 071717
01A0000010
}
{ .mii
0080C0F00380 1B90 ld8 r14 = [r15] // 071705
010800F00300 1B91 mov sp = r15 // r12 = r15
010800F203C0 1B92 adds r15 = 16, r15 // 071717
}
{ .mmi
0119F80FE5C0 1BA0 adds r23 = -1, r0 ;; // 071705
00ACC0F00200 1BA1 st8 [r15] = r0, 8 // 071717
0108001009C0 1BA2 mov r39 = gp ;; // r39 = r1 // 071705
}
{ .mmi
0080C0F000C0 1BB0 ld8 r3 = [r15] ;; // 071717
0100603400C0 1BB1 and r3 = in0, r3 // r3 = r32, r3
010802800800 1BB2 mov tptr = TimeString ;; // r32 = r40 // 071725
}
{ .mmi
00BCC8F07A00 1BC0 st8 [r15] = r3, -24 ;; // 071717
008002800240 1BC1 ld1 r9 = [out0] // r9 = [r40] // 071727
000008000000 1BC2 nop.i 0 ;;
}
{ .mii
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 95
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 1BD0 nop.m 0
0000A0900240 1BD1 sxt1 r9 = r9 ;;
01C0009001C0 1BD2 cmp.eq pr7, pr0 = r0, r9
}
{ .mfb
000008000000 1BE0 nop.m 0
000008000000 1BE1 nop.f 0
008600020007 1BE2 (pr7) br.cond.dpnt.many L$850 ;;
}
1BF0 L$851:
{ .mmi
0080020000C0 1BF0 ld1 r3 = [in0] ;; // r3 = [r32]
01C8003581C0 1BF1 cmp.eq pr7, pr0 = 44, r3
000008000000 1BF2 nop.i 0
}
{ .mfb
000008000000 1C00 nop.m 0
000008000000 1C01 nop.f 0
00860001C007 1C02 (pr7) br.cond.dpnt.many L$850 ;;
}
{ .mmi
010802002800 1C10 adds in0 = 1, in0 ;; // r32 = 1, r32
008002000200 1C11 ld1 r8 = [in0] // r8 = [r32]
000008000000 1C12 nop.i 0 ;;
}
{ .mii
000008000000 1C20 nop.m 0
0000A0800200 1C21 sxt1 r8 = r8 ;;
01C0008001C0 1C22 cmp.eq pr7, pr0 = r0, r8
}
{ .mfb
000008000000 1C30 nop.m 0
000008000000 1C31 nop.f 0
008600016007 1C32 (pr7) br.cond.dpnt.many L$850 ;;
}
{ .mmi
008002000240 1C40 ld1 r9 = [in0] ;; // r9 = [r32]
01C8009581C0 1C41 cmp.eq pr7, pr0 = 44, r9
000008000000 1C42 nop.i 0
}
{ .mfb
000008000000 1C50 nop.m 0
000008000000 1C51 nop.f 0
008600012007 1C52 (pr7) br.cond.dpnt.many L$850 ;;
}
{ .mmi
010802002800 1C60 adds in0 = 1, in0 ;; // r32 = 1, r32
008002000A00 1C61 ld1 out0 = [in0] // r40 = [r32]
000008000000 1C62 nop.i 0 ;;
}
{ .mii
000008000000 1C70 nop.m 0
0000A2800A00 1C71 sxt1 out0 = out0 ;; // r40 = r40
01C0028001C0 1C72 cmp.eq pr7, pr0 = r0, out0 // pr7, pr0 = r0, r40
}
{ .mfb
000008000000 1C80 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 96
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 1C81 nop.f 0
00860000C007 1C82 (pr7) br.cond.dpnt.many L$850 ;;
}
{ .mii
0080020000C0 1C90 ld1 r3 = [in0] // r3 = [r32]
010842000200 1C91 adds r8 = 1024, in0 ;; // r8 = 1024, r32
01C8003581C0 1C92 cmp.eq pr7, pr0 = 44, r3
}
{ .mfb
00CB00800000 1CA0 lfetch [r8]
000008000000 1CA1 nop.f 0
008600008007 1CA2 (pr7) br.cond.dpnt.many L$850 ;;
}
{ .mmi
010802002800 1CB0 adds in0 = 1, in0 ;; // r32 = 1, r32
008002000240 1CB1 ld1 r9 = [in0] // r9 = [r32]
000008000000 1CB2 nop.i 0 ;;
}
{ .mii
000008000000 1CC0 nop.m 0
0000A0900240 1CC1 sxt1 r9 = r9 ;;
01C030900000 1CC2 cmp.eq pr0, pr6 = r0, r9
}
{ .mfb
000008000000 1CD0 nop.m 0
000008000000 1CD1 nop.f 0
0095FFFE4006 1CD2 (pr6) br.cond.dptk.many L$851 ;;
}
1CE0 L$850:
{ .mii
008002000A00 1CE0 ld1 out0 = [in0] // r40 = [r32] // 071728
010802002200 1CE1 adds r8 = 1, tptr ;; // r8 = 1, r32
0000A2800A00 1CE2 sxt1 out0 = out0 ;; // r40 = r40
}
{ .mmi
01C032800000 1CF0 cmp.eq pr0, pr6 = r0, out0 ;; // pr0, pr6 = r0, r40
010800800806 1CF1 (pr6) mov tptr = r8 // r32 = r8
000008000000 1CF2 nop.i 0 ;;
}
{ .mmi
0080020000C0 1D00 ld1 r3 = [in0] ;; // r3 = [r32] // 071730
000008000000 1D01 nop.m 0
0000A03000C0 1D02 sxt1 r3 = r3 ;;
}
{ .mfb
01C000300200 1D10 cmp.eq pr8, pr0 = r0, r3
000008000000 1D11 nop.f 0
00860000C008 1D12 (pr8) br.cond.dpnt.many L$864 ;;
}
1D20 L$865:
{ .mmi
008002000240 1D20 ld1 r9 = [in0] ;; // r9 = [r32]
01C800912240 1D21 cmp.eq pr9, pr0 = 9, r9
01C8309401C0 1D22 cmp.eq pr7, pr6 = 32, r9 ;;
}
{ .mfb
01C230000009 1D30 (pr9) cmp.eq.or.andcm pr0, pr6 = r0, r0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 97
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 1D31 nop.f 0
008600008006 1D32 (pr6) br.cond.dpnt.many L$864 ;;
}
{ .mmi
010802002800 1D40 adds in0 = 1, in0 ;; // r32 = 1, r32
008002000A00 1D41 ld1 out0 = [in0] // r40 = [r32]
000008000000 1D42 nop.i 0 ;;
}
{ .mii
000008000000 1D50 nop.m 0
0000A2800A00 1D51 sxt1 out0 = out0 ;; // r40 = r40
01C042800000 1D52 cmp.eq pr0, pr8 = r0, out0 // pr0, pr8 = r0, r40
}
{ .mfb
000008000000 1D60 nop.m 0
000008000000 1D61 nop.f 0
0095FFFF8008 1D62 (pr8) br.cond.dptk.many L$865 ;;
}
1D70 L$864:
{ .mmi
008002000A00 1D70 ld1 out0 = [in0] ;; // r40 = [r32] // 071731
000008000000 1D71 nop.m 0
0000A28000C0 1D72 sxt1 r3 = out0 ;; // r3 = r40
}
{ .mfb
01C030300000 1D80 cmp.eq pr0, pr6 = r0, r3
000008000000 1D81 nop.f 0
008600004006 1D82 (pr6) br.cond.dpnt.many L$867 ;;
}
{ .mfb
012018008200 1D90 mov r8 = 388
000008000000 1D91 nop.f 0
0080001D1000 1D92 br.sptk.many L$869 ;;
}
1DA0 L$867:
{ .mmi
012000100880 1DA0 add r34 = // r34 = @ltoffx(DECC$$GL___CTYPEA), r1 // 071734
@ltoffx(DECC$$GL___CTYPEA), gp ;;
0080C2200880 1DA1 ld8.mov r34 = [r34], DECC$$GL___CTYPEA
000008000000 1DA2 nop.i 0 ;;
}
{ .mmi
008082200240 1DB0 ld4 r9 = [r34] ;;
01C400900240 1DB1 cmp4.eq pr9, pr0 = r0, r9
000008000000 1DB2 nop.i 0
}
{ .mfb
000008000000 1DC0 nop.m 0
000008000000 1DC1 nop.f 0
00860000C009 1DC2 (pr9) br.cond.dpnt.many L$871 ;;
}
{ .mib
012000100A00 1DD0 add out0 = // r40 = @ltoffx(DECC$$GA___CTYPET), r1
@ltoffx(DECC$$GA___CTYPET), gp
0000B0300200 1DD1 sxt4 r8 = r3
004000000000 1DD2 nop.b 0 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 98
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
0080C2800A00 1DE0 ld8.mov out0 = [r40], DECC$$GA___CTYPET ;;
008082800A00 1DE1 ld4 out0 = DECC$$GA___CTYPET // r40 = [r40]
000008000000 1DE2 nop.i 0 ;;
}
{ .mii
000008000000 1DF0 nop.m 0
0000B2800A00 1DF1 sxt4 out0 = out0 ;; // r40 = r40
01008A8100C0 1DF2 shladd r3 = r8, 2, out0 ;; // r3 = r8, 2, r40
}
{ .mmi
0080803000C0 1E00 ld4 r3 = [r3] ;;
0101603080C0 1E01 and r3 = 4, r3
000008000000 1E02 nop.i 0 ;;
}
{ .mbb
01C430300000 1E10 cmp4.eq pr0, pr6 = r0, r3
008600006006 1E11 (pr6) br.cond.dpnt.many L$872
00800000D000 1E12 br.sptk.many L$873 ;;
}
1E20 L$871:
{ .mib
012000002640 1E20 mov ai = 1 // r25 = 1
0000B0300A00 1E21 sxt4 out0 = r3 // r40 = r3
00A000001000 1E22 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 1E30 cmp4.eq pr7, pr0 = r0, r8
010802700040 1E31 mov gp = r39 // r1 = r39
008600008007 1E32 (pr7) br.cond.dpnt.many L$873 ;;
}
1E40 L$872:
{ .mib
012000002640 1E40 mov ai = 1 // r25 = 1
010802000A00 1E41 mov out0 = tptr // r40 = r32
00A000001000 1E42 br.call.sptk.many rp = DECC$ATOI ;; // br0 = DECC$ATOI
}
{ .mii
010800C288C0 1E50 adds r35 = 20, sp // r35 = 20, r12
010802700040 1E51 mov gp = r39 // r1 = r39
000008000000 1E52 nop.i 0 ;;
}
{ .mfi
008C42310000 1E60 st2 [r35] = r8
000008000000 1E61 nop.f 0
000008000000 1E62 nop.i 0 ;;
}
1E70 L$873: // 071735
{ .mmi
0080020000C0 1E70 ld1 r3 = [in0] ;; // r3 = [r32]
000008000000 1E71 nop.m 0
0000A03000C0 1E72 sxt1 r3 = r3 ;;
}
{ .mfb
01C0003001C0 1E80 cmp.eq pr7, pr0 = r0, r3
000008000000 1E81 nop.f 0
00860001E007 1E82 (pr7) br.cond.dpnt.many L$875 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 99
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mii
008002000240 1E90 ld1 r9 = [in0] // r9 = [r32]
0120001008C0 1E91 add r35 = // r35 = @ltoffx(DECC$$GA___CTYPET), r1
@ltoffx(DECC$$GA___CTYPET), gp ;;
0000A0900240 1E92 sxt1 r9 = r9
}
{ .mfi
0080C23008C0 1EA0 ld8.mov r35 = [r35], DECC$$GA___CTYPET
000008000000 1EA1 nop.f 0
000008000000 1EA2 nop.i 0 ;;
}
1EB0 L$876:
{ .mii
008082200280 1EB0 ld4 r10 = [r34]
0108009002C0 1EB1 mov r11 = r9
000008000000 1EB2 nop.i 0
}
{ .mmi
008082300440 1EC0 ld4 r17 = [r35] ;;
01C400A00240 1EC1 cmp4.eq pr9, pr0 = r0, r10
000008000000 1EC2 nop.i 0
}
{ .mfb
000008000000 1ED0 nop.m 0
000008000000 1ED1 nop.f 0
00860000A009 1ED2 (pr9) br.cond.dpnt.many L$878 ;;
}
{ .mii
000008000000 1EE0 nop.m 0
0000B0900240 1EE1 sxt4 r9 = r9
0000B1100440 1EE2 sxt4 r17 = r17 ;;
}
{ .mmi
010089112240 1EF0 shladd r9 = r9, 2, r17 ;;
008080900240 1EF1 ld4 r9 = [r9]
000008000000 1EF2 nop.i 0 ;;
}
{ .mmi
010160908240 1F00 and r9 = 4, r9 ;;
01C450900000 1F01 cmp4.eq pr0, pr10 = r0, r9
000008000000 1F02 nop.i 0
}
{ .bbb
00860000600A 1F10 (pr10) br.cond.dpnt.many L$879
004000000000 1F11 nop.b 0
00800000D000 1F12 br.sptk.many L$875 ;;
}
1F20 L$878:
{ .mib
012000002640 1F20 mov ai = 1 // r25 = 1
0000B0B00A00 1F21 sxt4 out0 = r11 // r40 = r11
00A000001000 1F22 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 1F30 cmp4.eq pr7, pr0 = r0, r8
010802700040 1F31 mov gp = r39 // r1 = r39
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 100
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
008600008007 1F32 (pr7) br.cond.dpnt.many L$875 ;;
}
1F40 L$879:
{ .mmi
010802002800 1F40 adds in0 = 1, in0 ;; // r32 = 1, r32
0080020000C0 1F41 ld1 r3 = [in0] // r3 = [r32]
000008000000 1F42 nop.i 0 ;;
}
{ .mii
000008000000 1F50 nop.m 0
0000A03000C0 1F51 sxt1 r3 = r3 ;;
010800300240 1F52 mov r9 = r3
}
{ .mfb
01C040300000 1F60 cmp.eq pr0, pr8 = r0, r3
000008000000 1F61 nop.f 0
0095FFFEA008 1F62 (pr8) br.cond.dptk.many L$876 ;;
}
1F70 L$875: // 071736
{ .mmi
008002000280 1F70 ld1 r10 = [in0] ;; // r10 = [r32]
000008000000 1F71 nop.m 0
0000A0A00280 1F72 sxt1 r10 = r10 ;;
}
{ .mfb
01C000A002C0 1F80 cmp.eq pr11, pr0 = r0, r10
000008000000 1F81 nop.f 0
00860000E00B 1F82 (pr11) br.cond.dpnt.many L$881 ;;
}
1F90 L$882:
{ .mmi
0080020002C0 1F90 ld1 r11 = [in0] ;; // r11 = [r32]
01C800B403C0 1F91 cmp.eq pr15, pr0 = 32, r11
01C860B5A340 1F92 cmp.eq pr13, pr12 = 45, r11
}
{ .mmi
01C800B121C0 1FA0 cmp.eq pr7, pr0 = 9, r11 ;;
01C26000034F 1FA1 (pr15) cmp.eq.or.andcm pr13, pr12 = r0, r0
000008000000 1FA2 nop.i 0 ;;
}
{ .mfb
01C260000007 1FB0 (pr7) cmp.eq.or.andcm pr0, pr12 = r0, r0
000008000000 1FB1 nop.f 0
00860000800C 1FB2 (pr12) br.cond.dpnt.many L$881 ;;
}
{ .mmi
010802002800 1FC0 adds in0 = 1, in0 ;; // r32 = 1, r32
008002000440 1FC1 ld1 r17 = [in0] // r17 = [r32]
000008000000 1FC2 nop.i 0 ;;
}
{ .mii
000008000000 1FD0 nop.m 0
0000A1100440 1FD1 sxt1 r17 = r17 ;;
01C041100000 1FD2 cmp.eq pr0, pr8 = r0, r17
}
{ .mfb
000008000000 1FE0 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 101
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 1FE1 nop.f 0
0095FFFF6008 1FE2 (pr8) br.cond.dptk.many L$882 ;;
}
1FF0 L$881:
{ .mmi
008002000480 1FF0 ld1 r18 = [in0] ;; // r18 = [r32] // 071737
000008000000 1FF1 nop.m 0
0000A1200480 1FF2 sxt1 r18 = r18 ;;
}
{ .mfb
01C051200000 2000 cmp.eq pr0, pr10 = r0, r18
000008000000 2001 nop.f 0
00860000400A 2002 (pr10) br.cond.dpnt.many L$884 ;;
}
{ .mfb
012018008200 2010 mov r8 = 388
000008000000 2011 nop.f 0
008000181000 2012 br.sptk.many L$869 ;;
}
2020 L$884:
{ .mii
010800C24500 2020 adds r20 = 18, sp // r20 = 18, r12 // 071740
0120000024C0 2021 mov r19 = 1
010800C24540 2022 adds r21 = 18, sp ;; // r21 = 18, r12
}
{ .mmi
008C41426000 2030 st2 [r20] = r19 ;;
008041500540 2031 ld2 r21 = [r21]
000008000000 2032 nop.i 0 ;;
}
{ .mfb
018801518180 2040 cmp.lt pr6, pr0 = 12, r21
000008000000 2041 nop.f 0
008600014006 2042 (pr6) br.cond.dpnt.many L$889 ;;
}
{ .mmi
0120001008C0 2050 add r35 = @ltoffx(MonthName), gp ;; // r35 = @ltoffx(MonthName), r1 // 071741
0080C23008C0 2051 ld8.mov r35 = [r35], MonthName
000008000000 2052 nop.i 0 ;;
}
2060 L$890: // 071740
{ .mii
012000006640 2060 mov ai = 3 // r25 = 3 // 071741
0000B1500540 2061 sxt4 r21 = r21
010802000A00 2062 mov out0 = tptr ;; // r40 = r32
}
{ .mmi
01008A32AA80 2070 shladd out2 = r21, 2, r35 ;; // r42 = r21, 2, r35
008082A00A40 2071 ld4 out1 = [out2] // r41 = [r42]
012000006A80 2072 mov out2 = 3 ;; // r42 = 3
}
{ .mib
000008000000 2080 nop.m 0
0000B2900A40 2081 sxt4 out1 = out1 // r41 = r41
00A000001000 2082 br.call.sptk.many rp = strsame ;; // br0 = strsame
}
{ .mib
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 102
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01C430800000 2090 cmp4.eq pr0, pr6 = r0, r8
010802700040 2091 mov gp = r39 // r1 = r39
00860000A006 2092 (pr6) br.cond.dpnt.many L$889 ;;
}
{ .mii
010800C240C0 20A0 adds r3 = 18, sp // r3 = 18, r12 // 071740
010800C24240 20A1 adds r9 = 18, sp // r9 = 18, r12
010800C24280 20A2 adds r10 = 18, sp ;; // r10 = 18, r12
}
{ .mmi
0080403000C0 20B0 ld2 r3 = [r3] ;;
0108003020C0 20B1 adds r3 = 1, r3
000008000000 20B2 nop.i 0 ;;
}
{ .mmi
008C40906000 20C0 st2 [r9] = r3 ;;
008040A00540 20C1 ld2 r21 = [r10]
000008000000 20C2 nop.i 0 ;;
}
{ .mfb
018841518000 20D0 cmp.lt pr0, pr8 = 12, r21
000008000000 20D1 nop.f 0
0095FFFF2008 20D2 (pr8) br.cond.dptk.many L$890 ;;
}
20E0 L$889: // 071741
{ .mmi
010800C242C0 20E0 adds r11 = 18, sp ;; // r11 = 18, r12 // 071742
008040B002C0 20E1 ld2 r11 = [r11]
000008000000 20E2 nop.i 0 ;;
}
{ .mfb
018850B18000 20F0 cmp.lt pr0, pr10 = 12, r11
000008000000 20F1 nop.f 0
00860000400A 20F2 (pr10) br.cond.dpnt.many L$896 ;;
}
{ .mfb
012018008200 2100 mov r8 = 388
000008000000 2101 nop.f 0
008000163000 2102 br.sptk.many L$869 ;;
}
2110 L$896: // 071743
{ .mmi
0120001008C0 2110 add r35 = // r35 = @ltoffx(DECC$$GA___CTYPET), r1
@ltoffx(DECC$$GA___CTYPET), gp ;;
0080C23008C0 2111 ld8.mov r35 = [r35], DECC$$GA___CTYPET
000008000000 2112 nop.i 0 ;;
}
2120 L$898:
{ .mmi
008002000A00 2120 ld1 out0 = [in0] // r40 = [r32]
008082200440 2121 ld4 r17 = [r34]
000008000000 2122 nop.i 0 ;;
}
{ .mib
01C401100340 2130 cmp4.eq pr13, pr0 = r0, r17
0000A28004C0 2131 sxt1 r19 = out0 // r19 = r40
004000000000 2132 nop.b 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 103
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfb
008082300500 2140 ld4 r20 = [r35]
000008000000 2141 nop.f 0
00860001E00D 2142 (pr13) br.cond.dpnt.many L$900 ;;
}
{ .mii
000008000000 2150 nop.m 0
0000B1400500 2151 sxt4 r20 = r20 ;;
010089426500 2152 shladd r20 = r19, 2, r20 ;;
}
{ .mmi
008081400500 2160 ld4 r20 = [r20] ;;
000008000000 2161 nop.m 0
00A401420500 2162 extr.u r20 = r20, 8, 1 ;;
}
{ .mib
000008000000 2170 nop.m 0
00A0714003C0 2171 tbit.z pr15, pr14 = r20, 0
00860001C00E 2172 (pr14) br.cond.dpnt.many L$901 ;;
}
2180 L$902: // 071744
{ .mmi
0080020000C0 2180 ld1 r3 = [in0] ;; // r3 = [r32]
000008000000 2181 nop.m 0
0000A03000C0 2182 sxt1 r3 = r3 ;;
}
{ .mfb
01C000300240 2190 cmp.eq pr9, pr0 = r0, r3
000008000000 2191 nop.f 0
00860000E009 2192 (pr9) br.cond.dpnt.many L$904 ;;
}
21A0 L$905:
{ .mmi
008002000240 21A0 ld1 r9 = [in0] ;; // r9 = [r32]
01C800940340 21A1 cmp.eq pr13, pr0 = 32, r9
01C85095A2C0 21A2 cmp.eq pr11, pr10 = 45, r9
}
{ .mmi
01C8009123C0 21B0 cmp.eq pr15, pr0 = 9, r9 ;;
01C2500002CD 21B1 (pr13) cmp.eq.or.andcm pr11, pr10 = r0, r0
000008000000 21B2 nop.i 0 ;;
}
{ .mfb
01C25000000F 21C0 (pr15) cmp.eq.or.andcm pr0, pr10 = r0, r0
000008000000 21C1 nop.f 0
00860000800A 21C2 (pr10) br.cond.dpnt.many L$904 ;;
}
{ .mmi
010802002800 21D0 adds in0 = 1, in0 ;; // r32 = 1, r32
008002000280 21D1 ld1 r10 = [in0] // r10 = [r32]
000008000000 21D2 nop.i 0 ;;
}
{ .mii
000008000000 21E0 nop.m 0
0000A0A00280 21E1 sxt1 r10 = r10 ;;
01C030A00000 21E2 cmp.eq pr0, pr6 = r0, r10
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 104
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfb
000008000000 21F0 nop.m 0
000008000000 21F1 nop.f 0
0095FFFF6006 21F2 (pr6) br.cond.dptk.many L$905 ;;
}
2200 L$904:
{ .mmi
008002000A00 2200 ld1 out0 = [in0] ;; // r40 = [r32] // 071745
000008000000 2201 nop.m 0
0000A2800440 2202 sxt1 r17 = out0 ;; // r17 = r40
}
{ .mfb
01C041100000 2210 cmp.eq pr0, pr8 = r0, r17
000008000000 2211 nop.f 0
00860000C008 2212 (pr8) br.cond.dpnt.many L$907 ;;
}
{ .mfb
012018008200 2220 mov r8 = 388
000008000000 2221 nop.f 0
00800013F000 2222 br.sptk.many L$869 ;;
}
2230 L$900: // 071743
{ .mib
012000002640 2230 mov ai = 1 // r25 = 1
0000B1300A00 2231 sxt4 out0 = r19 // r40 = r19
00A000001000 2232 br.call.sptk.many rp = DECC$ISALPHA ;; // br0 = DECC$ISALPHA
}
{ .mib
01C4008001C0 2240 cmp4.eq pr7, pr0 = r0, r8
010802700040 2241 mov gp = r39 // r1 = r39
0095FFFE8007 2242 (pr7) br.cond.dptk.many L$902 ;;
}
2250 L$901:
{ .mfi
010802002800 2250 adds in0 = 1, in0 // r32 = 1, r32
000008000000 2251 nop.f 0
000008000000 2252 nop.i 0 ;;
}
{ .mfb
000008000000 2260 nop.m 0
000008000000 2261 nop.f 0
0091FFFD9000 2262 br.sptk.many L$898 ;;
}
2270 L$907: // 071745
{ .mmi
008082200480 2270 ld4 r18 = [r34] // 071748
0080823004C0 2271 ld4 r19 = [r35]
000008000000 2272 nop.i 0 ;;
}
{ .mfb
01C401200380 2280 cmp4.eq pr14, pr0 = r0, r18
000008000000 2281 nop.f 0
00860000A00E 2282 (pr14) br.cond.dpnt.many L$910 ;;
}
{ .mii
000008000000 2290 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 105
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0000B1100500 2291 sxt4 r20 = r17
0000B13004C0 2292 sxt4 r19 = r19 ;;
}
{ .mmi
010089328440 22A0 shladd r17 = r20, 2, r19 ;;
008081100440 22A1 ld4 r17 = [r17]
000008000000 22A2 nop.i 0 ;;
}
{ .mmi
010161108440 22B0 and r17 = 4, r17 ;;
01C469100000 22B1 cmp4.eq pr0, pr13 = r0, r17
000008000000 22B2 nop.i 0
}
{ .bbb
00860000600D 22C0 (pr13) br.cond.dpnt.many L$911
004000000000 22C1 nop.b 0
008000017000 22C2 br.sptk.many L$912 ;;
}
22D0 L$910:
{ .mib
012000002640 22D0 mov ai = 1 // r25 = 1
0000B1100A00 22D1 sxt4 out0 = r17 // r40 = r17
00A000001000 22D2 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 22E0 cmp4.eq pr7, pr0 = r0, r8
010802700040 22E1 mov gp = r39 // r1 = r39
008600012007 22E2 (pr7) br.cond.dpnt.many L$912 ;;
}
22F0 L$911:
{ .mib
012000002640 22F0 mov ai = 1 // r25 = 1 // 071750
010802000A00 22F1 mov out0 = tptr // r40 = r32
00A000001000 22F2 br.call.sptk.many rp = DECC$ATOI ;; // br0 = DECC$ATOI
}
{ .mii
010800C200C0 2300 adds r3 = 16, sp // r3 = 16, r12
0000B0800200 2301 sxt4 r8 = r8
010802700040 2302 mov gp = r39 ;; // r1 = r39
}
{ .mii
000008000000 2310 nop.m 0
000088800200 2311 zxt2 r8 = r8 ;;
0188008C61C0 2312 cmp.lt pr7, pr0 = 99, r8 // 071751
}
{ .mfb
008C40310000 2320 st2 [r3] = r8 // 071750
000008000000 2321 nop.f 0
00860000A007 2322 (pr7) br.cond.dpnt.many L$912 ;; // 071751
}
{ .mii
01200008C240 2330 mov r9 = 70 // 071754
0120700D8440 2331 mov r17 = 1900 // 071757
0120780A02C0 2332 mov r11 = 2000
}
{ .mmi
010800C20480 2340 adds r18 = 16, sp ;; // r18 = 16, r12
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 106
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
018000910200 2341 cmp.lt pr8, pr0 = r8, r9 // 071754
000008000000 2342 nop.i 0 ;;
}
{ .mmi
010800B00448 2350 (pr8) mov r17 = r11 ;; // 071757
010001110200 2351 add r8 = r8, r17
000008000000 2352 nop.i 0 ;;
}
{ .mfi
008C41210000 2360 st2 [r18] = r8
000008000000 2361 nop.f 0
000008000000 2362 nop.i 0 ;;
}
2370 L$912: // 071760
{ .mmi
0080020004C0 2370 ld1 r19 = [in0] ;; // r19 = [r32]
000008000000 2371 nop.m 0
0000A13004C0 2372 sxt1 r19 = r19 ;;
}
{ .mfb
01C001300280 2380 cmp.eq pr10, pr0 = r0, r19
000008000000 2381 nop.f 0
00860001C00A 2382 (pr10) br.cond.dpnt.many L$917 ;;
}
{ .mmi
008002000500 2390 ld1 r20 = [in0] ;; // r20 = [r32]
000008000000 2391 nop.m 0
0000A1400500 2392 sxt1 r20 = r20 ;;
}
23A0 L$918:
{ .mii
008082200540 23A0 ld4 r21 = [r34]
010801400580 23A1 mov r22 = r20
000008000000 23A2 nop.i 0
}
{ .mmi
0080823005C0 23B0 ld4 r23 = [r35] ;;
01C401500300 23B1 cmp4.eq pr12, pr0 = r0, r21
000008000000 23B2 nop.i 0
}
{ .mfb
000008000000 23C0 nop.m 0
000008000000 23C1 nop.f 0
00860000A00C 23C2 (pr12) br.cond.dpnt.many L$920 ;;
}
{ .mii
000008000000 23D0 nop.m 0
0000B1400500 23D1 sxt4 r20 = r20
0000B17005C0 23D2 sxt4 r23 = r23 ;;
}
{ .mmi
010089728500 23E0 shladd r20 = r20, 2, r23 ;;
008081400500 23E1 ld4 r20 = [r20]
000008000000 23E2 nop.i 0 ;;
}
{ .mmi
010161408500 23F0 and r20 = 4, r20 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 107
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01C469400000 23F1 cmp4.eq pr0, pr13 = r0, r20
000008000000 23F2 nop.i 0
}
{ .bbb
00860000600D 2400 (pr13) br.cond.dpnt.many L$921
004000000000 2401 nop.b 0
00800000D000 2402 br.sptk.many L$917 ;;
}
2410 L$920:
{ .mib
012000002640 2410 mov ai = 1 // r25 = 1
0000B1600A00 2411 sxt4 out0 = r22 // r40 = r22
00A000001000 2412 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 2420 cmp4.eq pr7, pr0 = r0, r8
010802700040 2421 mov gp = r39 // r1 = r39
008600008007 2422 (pr7) br.cond.dpnt.many L$917 ;;
}
2430 L$921:
{ .mmi
010802002800 2430 adds in0 = 1, in0 ;; // r32 = 1, r32
0080020000C0 2431 ld1 r3 = [in0] // r3 = [r32]
000008000000 2432 nop.i 0 ;;
}
{ .mii
000008000000 2440 nop.m 0
0000A03000C0 2441 sxt1 r3 = r3 ;;
010800300500 2442 mov r20 = r3
}
{ .mfb
01C040300000 2450 cmp.eq pr0, pr8 = r0, r3
000008000000 2451 nop.f 0
0095FFFEA008 2452 (pr8) br.cond.dptk.many L$918 ;;
}
2460 L$917: // 071761
{ .mmi
008002000240 2460 ld1 r9 = [in0] ;; // r9 = [r32]
000008000000 2461 nop.m 0
0000A0900240 2462 sxt1 r9 = r9 ;;
}
{ .mfb
01C0009002C0 2470 cmp.eq pr11, pr0 = r0, r9
000008000000 2471 nop.f 0
00860000C00B 2472 (pr11) br.cond.dpnt.many L$923 ;;
}
2480 L$924:
{ .mmi
008002000280 2480 ld1 r10 = [in0] ;; // r10 = [r32]
01C800A123C0 2481 cmp.eq pr15, pr0 = 9, r10
01C860A40340 2482 cmp.eq pr13, pr12 = 32, r10 ;;
}
{ .mfb
01C26000000F 2490 (pr15) cmp.eq.or.andcm pr0, pr12 = r0, r0
000008000000 2491 nop.f 0
00860000800C 2492 (pr12) br.cond.dpnt.many L$923 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 108
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
010802002800 24A0 adds in0 = 1, in0 ;; // r32 = 1, r32
0080020002C0 24A1 ld1 r11 = [in0] // r11 = [r32]
000008000000 24A2 nop.i 0 ;;
}
{ .mii
000008000000 24B0 nop.m 0
0000A0B002C0 24B1 sxt1 r11 = r11 ;;
01C030B00000 24B2 cmp.eq pr0, pr6 = r0, r11
}
{ .mfb
000008000000 24C0 nop.m 0
000008000000 24C1 nop.f 0
0095FFFF8006 24C2 (pr6) br.cond.dptk.many L$924 ;;
}
24D0 L$923:
{ .mmi
008002000A00 24D0 ld1 out0 = [in0] ;; // r40 = [r32] // 071762
000008000000 24D1 nop.m 0
0000A2800480 24D2 sxt1 r18 = out0 ;; // r18 = r40
}
{ .mfb
01C041200000 24E0 cmp.eq pr0, pr8 = r0, r18
000008000000 24E1 nop.f 0
008600004008 24E2 (pr8) br.cond.dpnt.many L$926 ;;
}
{ .mfb
012018008200 24F0 mov r8 = 388
000008000000 24F1 nop.f 0
0080000E5000 24F2 br.sptk.many L$869 ;;
}
2500 L$926:
{ .mmi
0080822004C0 2500 ld4 r19 = [r34] // 071765
008082300540 2501 ld4 r21 = [r35]
000008000000 2502 nop.i 0 ;;
}
{ .mfb
01C4013002C0 2510 cmp4.eq pr11, pr0 = r0, r19
000008000000 2511 nop.f 0
00860000A00B 2512 (pr11) br.cond.dpnt.many L$929 ;;
}
{ .mii
000008000000 2520 nop.m 0
0000B1200580 2521 sxt4 r22 = r18
0000B1500540 2522 sxt4 r21 = r21 ;;
}
{ .mmi
01008952C480 2530 shladd r18 = r22, 2, r21 ;;
008081200480 2531 ld4 r18 = [r18]
000008000000 2532 nop.i 0 ;;
}
{ .mmi
010161208480 2540 and r18 = 4, r18 ;;
01C471200000 2541 cmp4.eq pr0, pr14 = r0, r18
000008000000 2542 nop.i 0
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 109
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .bbb
00860000600E 2550 (pr14) br.cond.dpnt.many L$930
004000000000 2551 nop.b 0
00800000D000 2552 br.sptk.many L$931 ;;
}
2560 L$929:
{ .mib
012000002640 2560 mov ai = 1 // r25 = 1
0000B1200A00 2561 sxt4 out0 = r18 // r40 = r18
00A000001000 2562 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 2570 cmp4.eq pr7, pr0 = r0, r8
010802700040 2571 mov gp = r39 // r1 = r39
008600008007 2572 (pr7) br.cond.dpnt.many L$931 ;;
}
2580 L$930:
{ .mib
012000002640 2580 mov ai = 1 // r25 = 1
010802000A00 2581 mov out0 = tptr // r40 = r32
00A000001000 2582 br.call.sptk.many rp = DECC$ATOI ;; // br0 = DECC$ATOI
}
{ .mii
010800C2C900 2590 adds r36 = 22, sp // r36 = 22, r12
010802700040 2591 mov gp = r39 // r1 = r39
000008000000 2592 nop.i 0 ;;
}
{ .mfi
008C42410000 25A0 st2 [r36] = r8
000008000000 25A1 nop.f 0
000008000000 25A2 nop.i 0 ;;
}
25B0 L$931: // 071766
{ .mmi
0080020000C0 25B0 ld1 r3 = [in0] ;; // r3 = [r32]
000008000000 25B1 nop.m 0
0000A03000C0 25B2 sxt1 r3 = r3 ;;
}
{ .mfb
01C0003001C0 25C0 cmp.eq pr7, pr0 = r0, r3
000008000000 25C1 nop.f 0
00860001C007 25C2 (pr7) br.cond.dpnt.many L$933 ;;
}
{ .mmi
008002000240 25D0 ld1 r9 = [in0] ;; // r9 = [r32]
000008000000 25D1 nop.m 0
0000A0900240 25D2 sxt1 r9 = r9 ;;
}
25E0 L$934:
{ .mii
008082200280 25E0 ld4 r10 = [r34]
0108009002C0 25E1 mov r11 = r9
000008000000 25E2 nop.i 0
}
{ .mmi
008082300440 25F0 ld4 r17 = [r35] ;;
01C400A00240 25F1 cmp4.eq pr9, pr0 = r0, r10
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 110
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 25F2 nop.i 0
}
{ .mfb
000008000000 2600 nop.m 0
000008000000 2601 nop.f 0
00860000A009 2602 (pr9) br.cond.dpnt.many L$936 ;;
}
{ .mii
000008000000 2610 nop.m 0
0000B0900240 2611 sxt4 r9 = r9
0000B1100440 2612 sxt4 r17 = r17 ;;
}
{ .mmi
010089112240 2620 shladd r9 = r9, 2, r17 ;;
008080900240 2621 ld4 r9 = [r9]
000008000000 2622 nop.i 0 ;;
}
{ .mmi
010160908240 2630 and r9 = 4, r9 ;;
01C450900000 2631 cmp4.eq pr0, pr10 = r0, r9
000008000000 2632 nop.i 0
}
{ .bbb
00860000600A 2640 (pr10) br.cond.dpnt.many L$937
004000000000 2641 nop.b 0
00800000D000 2642 br.sptk.many L$933 ;;
}
2650 L$936:
{ .mib
012000002640 2650 mov ai = 1 // r25 = 1
0000B0B00A00 2651 sxt4 out0 = r11 // r40 = r11
00A000001000 2652 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 2660 cmp4.eq pr7, pr0 = r0, r8
010802700040 2661 mov gp = r39 // r1 = r39
008600008007 2662 (pr7) br.cond.dpnt.many L$933 ;;
}
2670 L$937:
{ .mmi
010802002800 2670 adds in0 = 1, in0 ;; // r32 = 1, r32
008002000900 2671 ld1 r36 = [in0] // r36 = [r32]
000008000000 2672 nop.i 0 ;;
}
{ .mii
000008000000 2680 nop.m 0
0000A2400240 2681 sxt1 r9 = r36 ;;
01C040900000 2682 cmp.eq pr0, pr8 = r0, r9
}
{ .mfb
000008000000 2690 nop.m 0
000008000000 2691 nop.f 0
0095FFFEA008 2692 (pr8) br.cond.dptk.many L$934 ;;
}
26A0 L$933:
{ .mii
0080020000C0 26A0 ld1 r3 = [in0] // r3 = [r32] // 071767
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 111
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010802002280 26A1 adds r10 = 1, tptr // r10 = 1, r32
000008000000 26A2 nop.i 0
}
{ .mmi
0080822002C0 26B0 ld4 r11 = [r34] ;; // 071768
01C8003742C0 26B1 cmp.eq pr11, pr0 = 58, r3 // 071767
01C400B00340 26B2 cmp4.eq pr13, pr0 = r0, r11 // 071768
}
{ .mmi
0080823004C0 26C0 ld4 r19 = [r35] ;;
010800A0080B 26C1 (pr11) mov tptr = r10 // r32 = r10 // 071767
000008000000 26C2 nop.i 0 ;;
}
{ .mmi
008002000A00 26D0 ld1 out0 = [in0] ;; // r40 = [r32] // 071768
000008000000 26D1 nop.m 0
0000A2800480 26D2 sxt1 r18 = out0 // r18 = r40
}
{ .mfb
000008000000 26E0 nop.m 0
000008000000 26E1 nop.f 0
00860000800D 26E2 (pr13) br.cond.dpnt.many L$939 ;;
}
{ .mii
000008000000 26F0 nop.m 0
0000B13004C0 26F1 sxt4 r19 = r19 ;;
010089324480 26F2 shladd r18 = r18, 2, r19 ;;
}
{ .mmi
008081200480 2700 ld4 r18 = [r18] ;;
010161208480 2701 and r18 = 4, r18
000008000000 2702 nop.i 0 ;;
}
{ .mbb
01C471200000 2710 cmp4.eq pr0, pr14 = r0, r18
00860000600E 2711 (pr14) br.cond.dpnt.many L$940
00800000D000 2712 br.sptk.many L$941 ;;
}
2720 L$939:
{ .mib
012000002640 2720 mov ai = 1 // r25 = 1
0000B1200A00 2721 sxt4 out0 = r18 // r40 = r18
00A000001000 2722 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 2730 cmp4.eq pr7, pr0 = r0, r8
010802700040 2731 mov gp = r39 // r1 = r39
008600008007 2732 (pr7) br.cond.dpnt.many L$941 ;;
}
2740 L$940:
{ .mib
012000002640 2740 mov ai = 1 // r25 = 1
010802000A00 2741 mov out0 = tptr // r40 = r32
00A000001000 2742 br.call.sptk.many rp = DECC$ATOI ;; // br0 = DECC$ATOI
}
{ .mii
010800C30900 2750 adds r36 = 24, sp // r36 = 24, r12
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 112
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010802700040 2751 mov gp = r39 // r1 = r39
000008000000 2752 nop.i 0 ;;
}
{ .mfi
008C42410000 2760 st2 [r36] = r8
000008000000 2761 nop.f 0
000008000000 2762 nop.i 0 ;;
}
2770 L$941: // 071769
{ .mmi
0080020000C0 2770 ld1 r3 = [in0] ;; // r3 = [r32]
000008000000 2771 nop.m 0
0000A03000C0 2772 sxt1 r3 = r3 ;;
}
{ .mfb
01C0003001C0 2780 cmp.eq pr7, pr0 = r0, r3
000008000000 2781 nop.f 0
00860001C007 2782 (pr7) br.cond.dpnt.many L$943 ;;
}
{ .mmi
008002000240 2790 ld1 r9 = [in0] ;; // r9 = [r32]
000008000000 2791 nop.m 0
0000A0900240 2792 sxt1 r9 = r9 ;;
}
27A0 L$944:
{ .mii
008082200280 27A0 ld4 r10 = [r34]
0108009002C0 27A1 mov r11 = r9
000008000000 27A2 nop.i 0
}
{ .mmi
008082300440 27B0 ld4 r17 = [r35] ;;
01C400A00240 27B1 cmp4.eq pr9, pr0 = r0, r10
000008000000 27B2 nop.i 0
}
{ .mfb
000008000000 27C0 nop.m 0
000008000000 27C1 nop.f 0
00860000A009 27C2 (pr9) br.cond.dpnt.many L$946 ;;
}
{ .mii
000008000000 27D0 nop.m 0
0000B0900240 27D1 sxt4 r9 = r9
0000B1100440 27D2 sxt4 r17 = r17 ;;
}
{ .mmi
010089112240 27E0 shladd r9 = r9, 2, r17 ;;
008080900240 27E1 ld4 r9 = [r9]
000008000000 27E2 nop.i 0 ;;
}
{ .mmi
010160908240 27F0 and r9 = 4, r9 ;;
01C450900000 27F1 cmp4.eq pr0, pr10 = r0, r9
000008000000 27F2 nop.i 0
}
{ .bbb
00860000600A 2800 (pr10) br.cond.dpnt.many L$947
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 113
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
004000000000 2801 nop.b 0
00800000D000 2802 br.sptk.many L$943 ;;
}
2810 L$946:
{ .mib
012000002640 2810 mov ai = 1 // r25 = 1
0000B0B00A00 2811 sxt4 out0 = r11 // r40 = r11
00A000001000 2812 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 2820 cmp4.eq pr7, pr0 = r0, r8
010802700040 2821 mov gp = r39 // r1 = r39
008600008007 2822 (pr7) br.cond.dpnt.many L$943 ;;
}
2830 L$947:
{ .mmi
010802002800 2830 adds in0 = 1, in0 ;; // r32 = 1, r32
008002000900 2831 ld1 r36 = [in0] // r36 = [r32]
000008000000 2832 nop.i 0 ;;
}
{ .mii
000008000000 2840 nop.m 0
0000A2400240 2841 sxt1 r9 = r36 ;;
01C040900000 2842 cmp.eq pr0, pr8 = r0, r9
}
{ .mfb
000008000000 2850 nop.m 0
000008000000 2851 nop.f 0
0095FFFEA008 2852 (pr8) br.cond.dptk.many L$944 ;;
}
2860 L$943:
{ .mii
0080020000C0 2860 ld1 r3 = [in0] // r3 = [r32] // 071770
010802002280 2861 adds r10 = 1, tptr // r10 = 1, r32
000008000000 2862 nop.i 0
}
{ .mmi
0080822002C0 2870 ld4 r11 = [r34] ;; // 071771
01C8003742C0 2871 cmp.eq pr11, pr0 = 58, r3 // 071770
01C400B00340 2872 cmp4.eq pr13, pr0 = r0, r11 // 071771
}
{ .mmi
0080823004C0 2880 ld4 r19 = [r35] ;;
010800A0080B 2881 (pr11) mov tptr = r10 // r32 = r10 // 071770
000008000000 2882 nop.i 0 ;;
}
{ .mmi
008002000A00 2890 ld1 out0 = [in0] ;; // r40 = [r32] // 071771
000008000000 2891 nop.m 0
0000A2800480 2892 sxt1 r18 = out0 // r18 = r40
}
{ .mfb
000008000000 28A0 nop.m 0
000008000000 28A1 nop.f 0
00860000800D 28A2 (pr13) br.cond.dpnt.many L$949 ;;
}
{ .mii
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 114
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 28B0 nop.m 0
0000B13004C0 28B1 sxt4 r19 = r19 ;;
010089324480 28B2 shladd r18 = r18, 2, r19 ;;
}
{ .mmi
008081200480 28C0 ld4 r18 = [r18] ;;
010161208480 28C1 and r18 = 4, r18
000008000000 28C2 nop.i 0 ;;
}
{ .mbb
01C471200000 28D0 cmp4.eq pr0, pr14 = r0, r18
00860000600E 28D1 (pr14) br.cond.dpnt.many L$950
00800000D000 28D2 br.sptk.many L$951 ;;
}
28E0 L$949:
{ .mib
012000002640 28E0 mov ai = 1 // r25 = 1
0000B1200A00 28E1 sxt4 out0 = r18 // r40 = r18
00A000001000 28E2 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 28F0 cmp4.eq pr7, pr0 = r0, r8
010802700040 28F1 mov gp = r39 // r1 = r39
008600008007 28F2 (pr7) br.cond.dpnt.many L$951 ;;
}
2900 L$950:
{ .mib
012000002640 2900 mov ai = 1 // r25 = 1
010802000A00 2901 mov out0 = tptr // r40 = r32
00A000001000 2902 br.call.sptk.many rp = DECC$ATOI ;; // br0 = DECC$ATOI
}
{ .mii
010800C34900 2910 adds r36 = 26, sp // r36 = 26, r12
010802700040 2911 mov gp = r39 // r1 = r39
000008000000 2912 nop.i 0 ;;
}
{ .mfi
008C42410000 2920 st2 [r36] = r8
000008000000 2921 nop.f 0
000008000000 2922 nop.i 0 ;;
}
2930 L$951: // 071772
{ .mmi
0080020000C0 2930 ld1 r3 = [in0] ;; // r3 = [r32]
000008000000 2931 nop.m 0
0000A03000C0 2932 sxt1 r3 = r3 ;;
}
{ .mfb
01C0003001C0 2940 cmp.eq pr7, pr0 = r0, r3
000008000000 2941 nop.f 0
00860001C007 2942 (pr7) br.cond.dpnt.many L$953 ;;
}
{ .mmi
008002000240 2950 ld1 r9 = [in0] ;; // r9 = [r32]
000008000000 2951 nop.m 0
0000A0900240 2952 sxt1 r9 = r9 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 115
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
2960 L$954:
{ .mii
008082200280 2960 ld4 r10 = [r34]
0108009002C0 2961 mov r11 = r9
000008000000 2962 nop.i 0
}
{ .mmi
008082300440 2970 ld4 r17 = [r35] ;;
01C400A00240 2971 cmp4.eq pr9, pr0 = r0, r10
000008000000 2972 nop.i 0
}
{ .mfb
000008000000 2980 nop.m 0
000008000000 2981 nop.f 0
00860000A009 2982 (pr9) br.cond.dpnt.many L$956 ;;
}
{ .mii
000008000000 2990 nop.m 0
0000B0900240 2991 sxt4 r9 = r9
0000B1100440 2992 sxt4 r17 = r17 ;;
}
{ .mmi
010089112240 29A0 shladd r9 = r9, 2, r17 ;;
008080900240 29A1 ld4 r9 = [r9]
000008000000 29A2 nop.i 0 ;;
}
{ .mmi
010160908240 29B0 and r9 = 4, r9 ;;
01C450900000 29B1 cmp4.eq pr0, pr10 = r0, r9
000008000000 29B2 nop.i 0
}
{ .bbb
00860000600A 29C0 (pr10) br.cond.dpnt.many L$957
004000000000 29C1 nop.b 0
00800000D000 29C2 br.sptk.many L$953 ;;
}
29D0 L$956:
{ .mib
012000002640 29D0 mov ai = 1 // r25 = 1
0000B0B00A00 29D1 sxt4 out0 = r11 // r40 = r11
00A000001000 29D2 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 29E0 cmp4.eq pr7, pr0 = r0, r8
010802700040 29E1 mov gp = r39 // r1 = r39
008600008007 29E2 (pr7) br.cond.dpnt.many L$953 ;;
}
29F0 L$957:
{ .mmi
010802002800 29F0 adds in0 = 1, in0 ;; // r32 = 1, r32
008002000900 29F1 ld1 r36 = [in0] // r36 = [r32]
000008000000 29F2 nop.i 0 ;;
}
{ .mii
000008000000 2A00 nop.m 0
0000A2400240 2A01 sxt1 r9 = r36 ;;
01C040900000 2A02 cmp.eq pr0, pr8 = r0, r9
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 116
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfb
000008000000 2A10 nop.m 0
000008000000 2A11 nop.f 0
0095FFFEA008 2A12 (pr8) br.cond.dptk.many L$954 ;;
}
2A20 L$953:
{ .mii
0080020000C0 2A20 ld1 r3 = [in0] // r3 = [r32] // 071773
010802002280 2A21 adds r10 = 1, tptr ;; // r10 = 1, r32
01C8003742C0 2A22 cmp.eq pr11, pr0 = 58, r3 ;;
}
{ .mmi
010800A0080B 2A30 (pr11) mov tptr = r10 ;; // r32 = r10
0080020002C0 2A31 ld1 r11 = [in0] // r11 = [r32] // 071774
000008000000 2A32 nop.i 0 ;;
}
{ .mii
000008000000 2A40 nop.m 0
0000A0B002C0 2A41 sxt1 r11 = r11 ;;
01C060B00000 2A42 cmp.eq pr0, pr12 = r0, r11
}
{ .mfb
000008000000 2A50 nop.m 0
000008000000 2A51 nop.f 0
00860000400C 2A52 (pr12) br.cond.dpnt.many L$960 ;;
}
{ .mfb
012018008200 2A60 mov r8 = 388
000008000000 2A61 nop.f 0
008000037000 2A62 br.sptk.many L$869 ;;
}
2A70 L$960: // 071777
{ .mmi
008002000440 2A70 ld1 r17 = [in0] ;; // r17 = [r32]
01C8011121C0 2A71 cmp.eq pr7, pr0 = 9, r17
01C8711403C0 2A72 cmp.eq pr15, pr14 = 32, r17 ;;
}
{ .mfb
01C270000007 2A80 (pr7) cmp.eq.or.andcm pr0, pr14 = r0, r0
000008000000 2A81 nop.f 0
00860000800E 2A82 (pr14) br.cond.dpnt.many L$961 ;;
}
{ .mmi
010802002800 2A90 adds in0 = 1, in0 ;; // r32 = 1, r32
008002000480 2A91 ld1 r18 = [in0] // r18 = [r32]
000008000000 2A92 nop.i 0 ;;
}
{ .mii
000008000000 2AA0 nop.m 0
0000A1200480 2AA1 sxt1 r18 = r18 ;;
01C041200000 2AA2 cmp.eq pr0, pr8 = r0, r18
}
{ .mfb
000008000000 2AB0 nop.m 0
000008000000 2AB1 nop.f 0
0095FFFF8008 2AB2 (pr8) br.cond.dptk.many L$960 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 117
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
2AC0 L$961:
{ .mii
012000100600 2AC0 add r24 = @ltoff($LITERAL$+2008), // r24 = @ltoff($LITERAL$+2008), r1 // 071778
gp
0111620F8500 2AC1 and r20 = -4, in0 // r20 = -4, r32
000008000000 2AC2 nop.i 0
}
{ .mlx
000008000000 2AD0 nop.m 0
000000000003 2AD1 movl r30 = 16777215 ;;
019FFFDFCF
}
{ .mii
0080C1800600 2AE0 ld8 r24 = $LITERAL$ // r24 = [r24]
01C059440280 2AE1 cmp.eq pr10, pr11 = in0, r20 ;; // pr10, pr11 = r32, r20
0111618F8680 2AE2 and r26 = -4, r24
}
{ .mmi
0080814005CA 2AF0 (pr10) ld4 r23 = [r20] ;;
01C069A30300 2AF1 cmp.eq pr12, pr13 = r24, r26
009E0804054B 2AF2 (pr11) dep r21 = in0, r0, 3, 2 ;; // r21 = r32, r0, 3, 2
}
{ .mib
008081A0074C 2B00 (pr12) ld4 r29 = [r26]
009E080306CD 2B01 (pr13) dep r27 = r24, r0, 3, 2
004000000000 2B02 nop.b 0
}
{ .mmi
00A0814085CB 2B10 (pr11) ld4 r23 = [r20], 4 ;;
00A081A0874D 2B11 (pr13) ld4 r29 = [r26], 4
00F20172A5CB 2B12 (pr11) shr.u r23 = r23, r21
}
{ .mmi
01012954054B 2B20 (pr11) sub r21 = 32, r21 ;;
00808140058B 2B21 (pr11) ld4 r22 = [r20]
000008000000 2B22 nop.i 0 ;;
}
{ .mii
008081A0070D 2B30 (pr13) ld4 r28 = [r26]
00F201D3674D 2B31 (pr13) shr.u r29 = r29, r27
010129B406CD 2B32 (pr13) sub r27 = 32, r27 ;;
}
{ .mii
000008000000 2B40 nop.m 0
00F24152C58B 2B41 (pr11) shl r22 = r22, r21 ;;
00F241B3870D 2B42 (pr13) shl r28 = r28, r27 ;;
}
{ .mmi
01007172C5CB 2B50 (pr11) or r23 = r22, r23 ;;
000008000000 2B51 nop.m 0
0000917005CB 2B52 (pr11) zxt4 r23 = r23 ;;
}
{ .mii
010071D3874D 2B60 (pr13) or r29 = r28, r29
01006173C5C0 2B61 and r23 = r30, r23 ;;
000091D0074D 2B62 (pr13) zxt4 r29 = r29 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 118
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mmi
010061D3C740 2B70 and r29 = r30, r29 ;;
01C401D2E1C0 2B71 cmp4.eq pr7, pr0 = r23, r29
000008000000 2B72 nop.i 0
}
{ .mfb
000008000000 2B80 nop.m 0
000008000000 2B81 nop.f 0
008600004007 2B82 (pr7) br.cond.dpnt.many L$964 ;;
}
{ .mfb
012018008200 2B90 mov r8 = 388
000008000000 2B91 nop.f 0
008000011000 2B92 br.sptk.many L$869 ;;
}
2BA0 L$964:
{ .mii
012000004640 2BA0 mov ai = 2 // r25 = 2 // 071784
010802100A40 2BA1 mov out1 = Time64Ptr // r41 = r33
010800C20A00 2BA2 adds out0 = 16, sp // r40 = 16, r12
}
{ .mfb
000008000000 2BB0 nop.m 0
000008000000 2BB1 nop.f 0
00A000001000 2BB2 br.call.sptk.many rp = LIB$CVT_VECTIM ;; // br0 = LIB$CVT_VECTIM
}
{ .mib
010802700040 2BC0 mov gp = r39 // r1 = r39
00A0308001C0 2BC1 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0 // 071785
008600004006 2BC2 (pr6) br.cond.dpnt.many L$965 ;;
}
{ .mib
000008000000 2BD0 nop.m 0
0000B0800200 2BD1 sxt4 r8 = r8
008000009000 2BD2 br.sptk.many L$869 ;;
}
2BE0 L$965: // 072013
{ .mmi
012000100880 2BE0 add r34 = @ltoffx(TimeUtcDelta64), // r34 = @ltoffx(TimeUtcDelta64), r1 // 072020
gp
0080C2100900 2BE1 ld8 r36 = [in1] // r36 = [r33]
000008000000 2BE2 nop.i 0 ;;
}
{ .mmi
0080C2200880 2BF0 ld8.mov r34 = [r34], TimeUtcDelta64 ;;
0080C2200880 2BF1 ld8 r34 = TimeUtcDelta64 // r34 = [r34]
000008000000 2BF2 nop.i 0 ;;
}
{ .mmi
010002248200 2C00 add r8 = r36, r34 ;;
008CC2110000 2C01 st8 [in1] = r8 // [r33] = r8
012000002200 2C02 mov r8 = 1 ;; // 071789
}
2C10 L$869:
{ .mii
000008000000 2C10 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 119
HttpGmTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00015404C000 2C11 mov.i rspfs = r38 ;;
000E0014A000 2C12 mov rp = r37 // br0 = r37
}
{ .mfb
010800C20300 2C20 adds sp = 16, sp // r12 = 16, r12
000008000000 2C21 nop.f 0
000108001100 2C22 br.ret.sptk.many rp ;; // br0
}
.endp HttpGmTime
Routine Size: 4304 bytes, Routine Base: $CODE$ + 1B60
.proc HttpIsoTime
.align 32
.global HttpIsoTime
HttpIsoTime: // 071799
{ .mii
002C00A1AA00 2C30 alloc r40 = rspfs, 2, 8, 3, 0
012000100880 2C31 add r34 = // r34 = @ltoffx(DECC$$GL___CTYPEA), r1 // 071821
@ltoffx(DECC$$GL___CTYPEA), gp
012000080380 2C32 mov r14 = 64 // 071799
}
{ .mmi
010802000940 2C40 mov tptr = TimeString ;; // r37 = r32 // 071818
0080C2200880 2C41 ld8.mov r34 = [r34], DECC$$GL___CTYPEA // 071821
010028E183C0 2C42 sub r15 = sp, r14 // r15 = r12, r14 // 071799
}
{ .mii
010800000900 2C50 mov offset = r0 // r36 = r0 // 071816
0108000008C0 2C51 mov zoffset = r0 ;; // r35 = r0
0001880009C0 2C52 mov r39 = rp // r39 = br0 // 071799
}
{ .mii
0080C0F00380 2C60 ld8 r14 = [r15]
010800F00300 2C61 mov sp = r15 // r12 = r15
010800F603C0 2C62 adds r15 = 48, r15 ;; // 071816
}
{ .mmi
008CC2100000 2C70 st8 [in1] = r0 // [r33] = r0 // 071815
008C80F00000 2C71 st4 [r15] = r0 // 071816
0119F8FF8400 2C72 adds r16 = -4, r15 ;;
}
{ .mmi
0080822000C0 2C80 ld4 r3 = [r34] // 071821
008002000A80 2C81 ld1 out0 = [in0] // r42 = [r32]
0119F8FF83C0 2C82 adds r15 = -4, r15 ;; // 071816
}
{ .mii
010801008400 2C90 adds r16 = 4, r16
01C4003001C0 2C91 cmp4.eq pr7, pr0 = r0, r3 // 071821
0000A2A000C0 2C92 sxt1 r3 = out0 // r3 = r42
}
{ .mmi
00BC88F01F00 2CA0 st4 [r15] = r0, -4 ;; // 071816
008C80F00000 2CA1 st4 [r15] = r0
010800F00080 2CA2 adds r2 = 0, r15
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 120
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mii
0119F8FB03C0 2CB0 adds r15 = -40, r15
010800100A40 2CB1 mov r41 = gp // r41 = r1 // 071799
000008000000 2CB2 nop.i 0 ;;
}
{ .mfb
000008000000 2CC0 nop.m 0
000008000000 2CC1 nop.f 0
00860000E007 2CC2 (pr7) br.cond.dpnt.many L$716 ;; // 071821
}
{ .mmi
012000100200 2CD0 add r8 = // r8 = @ltoffx(DECC$$GA___CTYPET), r1
@ltoffx(DECC$$GA___CTYPET), gp ;;
0080C0800200 2CD1 ld8.mov r8 = [r8], DECC$$GA___CTYPET
000008000000 2CD2 nop.i 0 ;;
}
{ .mmi
008080800200 2CE0 ld4 r8 = DECC$$GA___CTYPET ;; // r8 = [r8]
000008000000 2CE1 nop.m 0
0000B0800200 2CE2 sxt4 r8 = r8 ;;
}
{ .mmi
0100888060C0 2CF0 shladd r3 = r3, 2, r8 ;;
0080803000C0 2CF1 ld4 r3 = [r3]
000008000000 2CF2 nop.i 0 ;;
}
{ .mmi
0101603080C0 2D00 and r3 = 4, r3 ;;
01C430300000 2D01 cmp4.eq pr0, pr6 = r0, r3
000008000000 2D02 nop.i 0
}
{ .mfb
000008000000 2D10 nop.m 0
000008000000 2D11 nop.f 0
00860000A006 2D12 (pr6) br.cond.dpnt.many L$717 ;;
}
{ .mfb
012018008200 2D20 mov r8 = 388
000008000000 2D21 nop.f 0
008000201000 2D22 br.sptk.many L$719 ;;
}
2D30 L$716:
{ .mib
012000002640 2D30 mov ai = 1 // r25 = 1
0000B0300A80 2D31 sxt4 out0 = r3 // r42 = r3
00A000001000 2D32 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C430800000 2D40 cmp4.eq pr0, pr6 = r0, r8
010802900040 2D41 mov gp = r41 // r1 = r41
008600004006 2D42 (pr6) br.cond.dpnt.many L$717 ;;
}
{ .mfb
012018008200 2D50 mov r8 = 388
000008000000 2D51 nop.f 0
0080001FB000 2D52 br.sptk.many L$719 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 121
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
2D60 L$717:
{ .mii
0120001000C0 2D60 add r3 = @ltoff($LITERAL$+2000), // r3 = @ltoff($LITERAL$+2000), r1 // 071822
gp
012000006640 2D61 mov ai = 3 // r25 = 3
010800C68B00 2D62 adds out2 = 52, sp // r44 = 52, r12
}
{ .mmi
010802000A80 2D70 mov out0 = TimeString ;; // r42 = r32
0080C03000C0 2D71 ld8 r3 = $LITERAL$ // r3 = [r3]
000008000000 2D72 nop.i 0 ;;
}
{ .mfb
010800300AC0 2D80 mov out1 = r3 // r43 = r3
000008000000 2D81 nop.f 0
00A000001000 2D82 br.call.sptk.many rp = DECC$TXSSCANF ;; // br0 = DECC$TXSSCANF
}
{ .mib
01CC008021C0 2D90 cmp4.eq pr7, pr0 = 1, r8
010802900040 2D91 mov gp = r41 // r1 = r41
008600004007 2D92 (pr7) br.cond.dpnt.many L$723 ;;
}
{ .mfb
012018008200 2DA0 mov r8 = 388
000008000000 2DA1 nop.f 0
0080001F1000 2DA2 br.sptk.many L$719 ;;
}
2DB0 L$723: // 071823
{ .mmi
012000100800 2DB0 add in0 = // r32 = @ltoffx(DECC$$GA___CTYPET), r1
@ltoffx(DECC$$GA___CTYPET), gp ;;
0080C2000800 2DB1 ld8.mov in0 = [r32], DECC$$GA___CTYPET
000008000000 2DB2 nop.i 0 ;;
}
2DC0 L$724:
{ .mmi
008002500A80 2DC0 ld1 out0 = [r37] // r42 = [r37]
0080822000C0 2DC1 ld4 r3 = [r34]
000008000000 2DC2 nop.i 0 ;;
}
{ .mib
01C400300240 2DD0 cmp4.eq pr9, pr0 = r0, r3
0000A2A00280 2DD1 sxt1 r10 = out0 // r10 = r42
004000000000 2DD2 nop.b 0
}
{ .mfb
0080820002C0 2DE0 ld4 r11 = [in0] // r11 = [r32]
000008000000 2DE1 nop.f 0
00860001A009 2DE2 (pr9) br.cond.dpnt.many L$726 ;;
}
{ .mii
000008000000 2DF0 nop.m 0
0000B0B002C0 2DF1 sxt4 r11 = r11 ;;
010088B142C0 2DF2 shladd r11 = r10, 2, r11 ;;
}
{ .mmi
008080B002C0 2E00 ld4 r11 = [r11] ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 122
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010160B082C0 2E01 and r11 = 4, r11
000008000000 2E02 nop.i 0 ;;
}
{ .mfb
01C450B00000 2E10 cmp4.eq pr0, pr10 = r0, r11
000008000000 2E11 nop.f 0
00860001800A 2E12 (pr10) br.cond.dpnt.many L$727 ;;
}
2E20 L$728:
{ .mii
0080025000C0 2E20 ld1 r3 = [r37] // 071824
010802502240 2E21 adds r9 = 1, tptr // r9 = 1, r37
000008000000 2E22 nop.i 0
}
{ .mmi
008082200280 2E30 ld4 r10 = [r34] ;; // 071825
01C80035A240 2E31 cmp.eq pr9, pr0 = 45, r3 // 071824
01C400A002C0 2E32 cmp4.eq pr11, pr0 = r0, r10 // 071825
}
{ .mmi
008082000480 2E40 ld4 r18 = [in0] ;; // r18 = [r32]
010800900949 2E41 (pr9) mov tptr = r9 // r37 = r9 // 071824
000008000000 2E42 nop.i 0 ;;
}
{ .mmi
008002500A80 2E50 ld1 out0 = [r37] ;; // r42 = [r37] // 071825
000008000000 2E51 nop.m 0
0000A2A00440 2E52 sxt1 r17 = out0 // r17 = r42
}
{ .mfb
000008000000 2E60 nop.m 0
000008000000 2E61 nop.f 0
00860001200B 2E62 (pr11) br.cond.dpnt.many L$730 ;;
}
{ .mii
000008000000 2E70 nop.m 0
0000B1200480 2E71 sxt4 r18 = r18 ;;
010089222440 2E72 shladd r17 = r17, 2, r18 ;;
}
{ .mmi
008081100440 2E80 ld4 r17 = [r17] ;;
010161108440 2E81 and r17 = 4, r17
000008000000 2E82 nop.i 0 ;;
}
{ .mfb
01C461100000 2E90 cmp4.eq pr0, pr12 = r0, r17
000008000000 2E91 nop.f 0
00860001200C 2E92 (pr12) br.cond.dpnt.many L$731 ;;
}
{ .mfb
012018008200 2EA0 mov r8 = 388
000008000000 2EA1 nop.f 0
0080001D1000 2EA2 br.sptk.many L$719 ;;
}
2EB0 L$726: // 071823
{ .mib
012000002640 2EB0 mov ai = 1 // r25 = 1
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 123
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0000B0A00A80 2EB1 sxt4 out0 = r10 // r42 = r10
00A000001000 2EB2 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 2EC0 cmp4.eq pr7, pr0 = r0, r8
010802900040 2EC1 mov gp = r41 // r1 = r41
0095FFFEC007 2EC2 (pr7) br.cond.dptk.many L$728 ;;
}
2ED0 L$727:
{ .mfi
010802502940 2ED0 adds r37 = 1, r37
000008000000 2ED1 nop.f 0
000008000000 2ED2 nop.i 0 ;;
}
{ .mfb
000008000000 2EE0 nop.m 0
000008000000 2EE1 nop.f 0
0091FFFDD000 2EE2 br.sptk.many L$724 ;;
}
2EF0 L$730: // 071825
{ .mib
012000002640 2EF0 mov ai = 1 // r25 = 1
0000B1100A80 2EF1 sxt4 out0 = r17 // r42 = r17
00A000001000 2EF2 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C430800000 2F00 cmp4.eq pr0, pr6 = r0, r8
010802900040 2F01 mov gp = r41 // r1 = r41
008600004006 2F02 (pr6) br.cond.dpnt.many L$731 ;;
}
{ .mfb
012018008200 2F10 mov r8 = 388
000008000000 2F11 nop.f 0
0080001C3000 2F12 br.sptk.many L$719 ;;
}
2F20 L$731:
{ .mii
0120001000C0 2F20 add r3 = @ltoff($LITERAL$+1992), // r3 = @ltoff($LITERAL$+1992), r1 // 071826
gp
012000006640 2F21 mov ai = 3 // r25 = 3
010800C70B00 2F22 adds out2 = 56, sp // r44 = 56, r12
}
{ .mmi
010802500A80 2F30 mov out0 = tptr ;; // r42 = r37
0080C03000C0 2F31 ld8 r3 = $LITERAL$ // r3 = [r3]
000008000000 2F32 nop.i 0 ;;
}
{ .mfb
010800300AC0 2F40 mov out1 = r3 // r43 = r3
000008000000 2F41 nop.f 0
00A000001000 2F42 br.call.sptk.many rp = DECC$TXSSCANF ;; // br0 = DECC$TXSSCANF
}
{ .mib
01CC008021C0 2F50 cmp4.eq pr7, pr0 = 1, r8
010802900040 2F51 mov gp = r41 // r1 = r41
00860000A007 2F52 (pr7) br.cond.dpnt.many L$737 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 124
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfb
012018008200 2F60 mov r8 = 388
000008000000 2F61 nop.f 0
0080001B9000 2F62 br.sptk.many L$719 ;;
}
2F70 L$739: // 071827
{ .mib
012000002640 2F70 mov ai = 1 // r25 = 1
0000B0A00A80 2F71 sxt4 out0 = r10 // r42 = r10
00A000001000 2F72 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 2F80 cmp4.eq pr7, pr0 = r0, r8
010802900040 2F81 mov gp = r41 // r1 = r41
008600010007 2F82 (pr7) br.cond.dpnt.many L$741 ;;
}
2F90 L$740:
{ .mmi
010802502940 2F90 adds r37 = 1, r37 ;;
000008000000 2F91 nop.m 0
000008000000 2F92 nop.i 0
}
2FA0 L$737:
{ .mmi
008002500A80 2FA0 ld1 out0 = [r37] ;; // r42 = [r37]
0080822000C0 2FA1 ld4 r3 = [r34]
0000A2A00A80 2FA2 sxt1 out0 = out0 ;; // r42 = r42
}
{ .mib
010802A00280 2FB0 mov r10 = out0 // r10 = r42
01C440300240 2FB1 cmp4.eq pr9, pr8 = r0, r3
0095FFFF8009 2FB2 (pr9) br.cond.dptk.many L$739 ;;
}
{ .mmi
0080820002C0 2FC0 ld4 r11 = [in0] ;; // r11 = [r32]
000008000000 2FC1 nop.m 0
0000B0B002C0 2FC2 sxt4 r11 = r11 ;;
}
{ .mmi
010088B542C0 2FD0 shladd r11 = out0, 2, r11 ;; // r11 = r42, 2, r11
008080B002C0 2FD1 ld4 r11 = [r11]
000008000000 2FD2 nop.i 0 ;;
}
{ .mmi
010160B082C0 2FE0 and r11 = 4, r11 ;;
01C450B00000 2FE1 cmp4.eq pr0, pr10 = r0, r11
000008000000 2FE2 nop.i 0
}
{ .mfb
000008000000 2FF0 nop.m 0
000008000000 2FF1 nop.f 0
0095FFFF400A 2FF2 (pr10) br.cond.dptk.many L$740 ;;
}
3000 L$741:
{ .mii
0080025000C0 3000 ld1 r3 = [r37] // 071828
010802502240 3001 adds r9 = 1, tptr // r9 = 1, r37
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 125
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 3002 nop.i 0
}
{ .mmi
008082200280 3010 ld4 r10 = [r34] ;; // 071829
01C80035A240 3011 cmp.eq pr9, pr0 = 45, r3 // 071828
01C400A002C0 3012 cmp4.eq pr11, pr0 = r0, r10 // 071829
}
{ .mmi
008082000480 3020 ld4 r18 = [in0] ;; // r18 = [r32]
010800900949 3021 (pr9) mov tptr = r9 // r37 = r9 // 071828
000008000000 3022 nop.i 0 ;;
}
{ .mmi
008002500A80 3030 ld1 out0 = [r37] ;; // r42 = [r37] // 071829
000008000000 3031 nop.m 0
0000A2A00440 3032 sxt1 r17 = out0 // r17 = r42
}
{ .mfb
000008000000 3040 nop.m 0
000008000000 3041 nop.f 0
00860000A00B 3042 (pr11) br.cond.dpnt.many L$743 ;;
}
{ .mii
000008000000 3050 nop.m 0
0000B1200480 3051 sxt4 r18 = r18 ;;
010089222440 3052 shladd r17 = r17, 2, r18 ;;
}
{ .mmi
008081100440 3060 ld4 r17 = [r17] ;;
010161108440 3061 and r17 = 4, r17
000008000000 3062 nop.i 0 ;;
}
{ .mfb
01C461100000 3070 cmp4.eq pr0, pr12 = r0, r17
000008000000 3071 nop.f 0
00860000A00C 3072 (pr12) br.cond.dpnt.many L$744 ;;
}
{ .mfb
012018008200 3080 mov r8 = 388
000008000000 3081 nop.f 0
008000195000 3082 br.sptk.many L$719 ;;
}
3090 L$743:
{ .mib
012000002640 3090 mov ai = 1 // r25 = 1
0000B1100A80 3091 sxt4 out0 = r17 // r42 = r17
00A000001000 3092 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C430800000 30A0 cmp4.eq pr0, pr6 = r0, r8
010802900040 30A1 mov gp = r41 // r1 = r41
008600004006 30A2 (pr6) br.cond.dpnt.many L$744 ;;
}
{ .mfb
012018008200 30B0 mov r8 = 388
000008000000 30B1 nop.f 0
00800018F000 30B2 br.sptk.many L$719 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 126
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
30C0 L$744:
{ .mii
0120001000C0 30C0 add r3 = @ltoff($LITERAL$+1992), // r3 = @ltoff($LITERAL$+1992), r1 // 071830
gp
012000006640 30C1 mov ai = 3 // r25 = 3
010800C78B00 30C2 adds out2 = 60, sp // r44 = 60, r12
}
{ .mmi
010802500A80 30D0 mov out0 = tptr ;; // r42 = r37
0080C03000C0 30D1 ld8 r3 = $LITERAL$ // r3 = [r3]
000008000000 30D2 nop.i 0 ;;
}
{ .mfb
010800300AC0 30E0 mov out1 = r3 // r43 = r3
000008000000 30E1 nop.f 0
00A000001000 30E2 br.call.sptk.many rp = DECC$TXSSCANF ;; // br0 = DECC$TXSSCANF
}
{ .mib
01CC008021C0 30F0 cmp4.eq pr7, pr0 = 1, r8
010802900040 30F1 mov gp = r41 // r1 = r41
00860000A007 30F2 (pr7) br.cond.dpnt.many L$750 ;;
}
{ .mfb
012018008200 3100 mov r8 = 388
000008000000 3101 nop.f 0
008000185000 3102 br.sptk.many L$719 ;;
}
3110 L$752: // 071831
{ .mib
012000002640 3110 mov ai = 1 // r25 = 1
0000B0A00A80 3111 sxt4 out0 = r10 // r42 = r10
00A000001000 3112 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 3120 cmp4.eq pr7, pr0 = r0, r8
010802900040 3121 mov gp = r41 // r1 = r41
008600010007 3122 (pr7) br.cond.dpnt.many L$754 ;;
}
3130 L$753:
{ .mmi
010802502940 3130 adds r37 = 1, r37 ;;
000008000000 3131 nop.m 0
000008000000 3132 nop.i 0
}
3140 L$750:
{ .mmi
008002500A80 3140 ld1 out0 = [r37] ;; // r42 = [r37]
0080822000C0 3141 ld4 r3 = [r34]
0000A2A00A80 3142 sxt1 out0 = out0 ;; // r42 = r42
}
{ .mib
010802A00280 3150 mov r10 = out0 // r10 = r42
01C440300240 3151 cmp4.eq pr9, pr8 = r0, r3
0095FFFF8009 3152 (pr9) br.cond.dptk.many L$752 ;;
}
{ .mmi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 127
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0080820002C0 3160 ld4 r11 = [in0] ;; // r11 = [r32]
000008000000 3161 nop.m 0
0000B0B002C0 3162 sxt4 r11 = r11 ;;
}
{ .mmi
010088B542C0 3170 shladd r11 = out0, 2, r11 ;; // r11 = r42, 2, r11
008080B002C0 3171 ld4 r11 = [r11]
000008000000 3172 nop.i 0 ;;
}
{ .mmi
010160B082C0 3180 and r11 = 4, r11 ;;
01C450B00000 3181 cmp4.eq pr0, pr10 = r0, r11
000008000000 3182 nop.i 0
}
{ .mfb
000008000000 3190 nop.m 0
000008000000 3191 nop.f 0
0095FFFF400A 3192 (pr10) br.cond.dptk.many L$753 ;;
}
31A0 L$754:
{ .mii
0080025000C0 31A0 ld1 r3 = [r37] // 071834
010802502240 31A1 adds r9 = 1, tptr // r9 = 1, r37
000008000000 31A2 nop.i 0
}
{ .mmi
008082200280 31B0 ld4 r10 = [r34] ;; // 071835
01C8003A8240 31B1 cmp.eq pr9, pr0 = 84, r3 // 071834
01C400A002C0 31B2 cmp4.eq pr11, pr0 = r0, r10 // 071835
}
{ .mmi
008082000480 31C0 ld4 r18 = [in0] ;; // r18 = [r32]
010800900949 31C1 (pr9) mov tptr = r9 // r37 = r9 // 071834
000008000000 31C2 nop.i 0 ;;
}
{ .mmi
008002500A80 31D0 ld1 out0 = [r37] ;; // r42 = [r37] // 071835
000008000000 31D1 nop.m 0
0000A2A00440 31D2 sxt1 r17 = out0 // r17 = r42
}
{ .mfb
000008000000 31E0 nop.m 0
000008000000 31E1 nop.f 0
00860000A00B 31E2 (pr11) br.cond.dpnt.many L$756 ;;
}
{ .mii
000008000000 31F0 nop.m 0
0000B1200480 31F1 sxt4 r18 = r18 ;;
010089222440 31F2 shladd r17 = r17, 2, r18 ;;
}
{ .mmi
008081100440 3200 ld4 r17 = [r17] ;;
010161108440 3201 and r17 = 4, r17
000008000000 3202 nop.i 0 ;;
}
{ .mfb
01C461100000 3210 cmp4.eq pr0, pr12 = r0, r17
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 128
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 3211 nop.f 0
00860000A00C 3212 (pr12) br.cond.dpnt.many L$757 ;;
}
{ .mfb
012018008200 3220 mov r8 = 388
000008000000 3221 nop.f 0
008000161000 3222 br.sptk.many L$719 ;;
}
3230 L$756:
{ .mib
012000002640 3230 mov ai = 1 // r25 = 1
0000B1100A80 3231 sxt4 out0 = r17 // r42 = r17
00A000001000 3232 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C430800000 3240 cmp4.eq pr0, pr6 = r0, r8
010802900040 3241 mov gp = r41 // r1 = r41
008600004006 3242 (pr6) br.cond.dpnt.many L$757 ;;
}
{ .mfb
012018008200 3250 mov r8 = 388
000008000000 3251 nop.f 0
00800015B000 3252 br.sptk.many L$719 ;;
}
3260 L$757:
{ .mii
0120001000C0 3260 add r3 = @ltoff($LITERAL$+1992), // r3 = @ltoff($LITERAL$+1992), r1 // 071836
gp
012000006640 3261 mov ai = 3 // r25 = 3
010800C80B00 3262 adds out2 = 64, sp // r44 = 64, r12
}
{ .mmi
010802500A80 3270 mov out0 = tptr ;; // r42 = r37
0080C03000C0 3271 ld8 r3 = $LITERAL$ // r3 = [r3]
000008000000 3272 nop.i 0 ;;
}
{ .mfb
010800300AC0 3280 mov out1 = r3 // r43 = r3
000008000000 3281 nop.f 0
00A000001000 3282 br.call.sptk.many rp = DECC$TXSSCANF ;; // br0 = DECC$TXSSCANF
}
{ .mib
01CC008021C0 3290 cmp4.eq pr7, pr0 = 1, r8
010802900040 3291 mov gp = r41 // r1 = r41
00860000A007 3292 (pr7) br.cond.dpnt.many L$763 ;;
}
{ .mfb
012018008200 32A0 mov r8 = 388
000008000000 32A1 nop.f 0
008000151000 32A2 br.sptk.many L$719 ;;
}
32B0 L$765: // 071837
{ .mib
012000002640 32B0 mov ai = 1 // r25 = 1
0000B0A00A80 32B1 sxt4 out0 = r10 // r42 = r10
00A000001000 32B2 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 129
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mib
01C4008001C0 32C0 cmp4.eq pr7, pr0 = r0, r8
010802900040 32C1 mov gp = r41 // r1 = r41
008600010007 32C2 (pr7) br.cond.dpnt.many L$767 ;;
}
32D0 L$766:
{ .mmi
010802502940 32D0 adds r37 = 1, r37 ;;
000008000000 32D1 nop.m 0
000008000000 32D2 nop.i 0
}
32E0 L$763:
{ .mmi
008002500A80 32E0 ld1 out0 = [r37] ;; // r42 = [r37]
0080822000C0 32E1 ld4 r3 = [r34]
0000A2A00A80 32E2 sxt1 out0 = out0 ;; // r42 = r42
}
{ .mib
010802A00280 32F0 mov r10 = out0 // r10 = r42
01C440300240 32F1 cmp4.eq pr9, pr8 = r0, r3
0095FFFF8009 32F2 (pr9) br.cond.dptk.many L$765 ;;
}
{ .mmi
0080820002C0 3300 ld4 r11 = [in0] ;; // r11 = [r32]
000008000000 3301 nop.m 0
0000B0B002C0 3302 sxt4 r11 = r11 ;;
}
{ .mmi
010088B542C0 3310 shladd r11 = out0, 2, r11 ;; // r11 = r42, 2, r11
008080B002C0 3311 ld4 r11 = [r11]
000008000000 3312 nop.i 0 ;;
}
{ .mmi
010160B082C0 3320 and r11 = 4, r11 ;;
01C450B00000 3321 cmp4.eq pr0, pr10 = r0, r11
000008000000 3322 nop.i 0
}
{ .mfb
000008000000 3330 nop.m 0
000008000000 3331 nop.f 0
0095FFFF400A 3332 (pr10) br.cond.dptk.many L$766 ;;
}
3340 L$767:
{ .mii
0080025000C0 3340 ld1 r3 = [r37] // 071838
010802502240 3341 adds r9 = 1, tptr // r9 = 1, r37
000008000000 3342 nop.i 0
}
{ .mmi
008082200280 3350 ld4 r10 = [r34] ;; // 071839
01C800374240 3351 cmp.eq pr9, pr0 = 58, r3 // 071838
01C400A002C0 3352 cmp4.eq pr11, pr0 = r0, r10 // 071839
}
{ .mmi
008082000480 3360 ld4 r18 = [in0] ;; // r18 = [r32]
010800900949 3361 (pr9) mov tptr = r9 // r37 = r9 // 071838
000008000000 3362 nop.i 0 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 130
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mmi
008002500A80 3370 ld1 out0 = [r37] ;; // r42 = [r37] // 071839
000008000000 3371 nop.m 0
0000A2A00440 3372 sxt1 r17 = out0 // r17 = r42
}
{ .mfb
000008000000 3380 nop.m 0
000008000000 3381 nop.f 0
00860000A00B 3382 (pr11) br.cond.dpnt.many L$769 ;;
}
{ .mii
000008000000 3390 nop.m 0
0000B1200480 3391 sxt4 r18 = r18 ;;
010089222440 3392 shladd r17 = r17, 2, r18 ;;
}
{ .mmi
008081100440 33A0 ld4 r17 = [r17] ;;
010161108440 33A1 and r17 = 4, r17
000008000000 33A2 nop.i 0 ;;
}
{ .mfb
01C461100000 33B0 cmp4.eq pr0, pr12 = r0, r17
000008000000 33B1 nop.f 0
00860000A00C 33B2 (pr12) br.cond.dpnt.many L$770 ;;
}
{ .mfb
012018008200 33C0 mov r8 = 388
000008000000 33C1 nop.f 0
00800012D000 33C2 br.sptk.many L$719 ;;
}
33D0 L$769:
{ .mib
012000002640 33D0 mov ai = 1 // r25 = 1
0000B1100A80 33D1 sxt4 out0 = r17 // r42 = r17
00A000001000 33D2 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C430800000 33E0 cmp4.eq pr0, pr6 = r0, r8
010802900040 33E1 mov gp = r41 // r1 = r41
008600004006 33E2 (pr6) br.cond.dpnt.many L$770 ;;
}
{ .mfb
012018008200 33F0 mov r8 = 388
000008000000 33F1 nop.f 0
008000127000 33F2 br.sptk.many L$719 ;;
}
3400 L$770:
{ .mii
0120001000C0 3400 add r3 = @ltoff($LITERAL$+1992), // r3 = @ltoff($LITERAL$+1992), r1 // 071840
gp
012000006640 3401 mov ai = 3 // r25 = 3
010800C88B00 3402 adds out2 = 68, sp // r44 = 68, r12
}
{ .mmi
010802500A80 3410 mov out0 = tptr ;; // r42 = r37
0080C03000C0 3411 ld8 r3 = $LITERAL$ // r3 = [r3]
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 131
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 3412 nop.i 0 ;;
}
{ .mfb
010800300AC0 3420 mov out1 = r3 // r43 = r3
000008000000 3421 nop.f 0
00A000001000 3422 br.call.sptk.many rp = DECC$TXSSCANF ;; // br0 = DECC$TXSSCANF
}
{ .mib
01CC008021C0 3430 cmp4.eq pr7, pr0 = 1, r8
010802900040 3431 mov gp = r41 // r1 = r41
00860000A007 3432 (pr7) br.cond.dpnt.many L$776 ;;
}
{ .mfb
012018008200 3440 mov r8 = 388
000008000000 3441 nop.f 0
00800011D000 3442 br.sptk.many L$719 ;;
}
3450 L$778: // 071841
{ .mib
012000002640 3450 mov ai = 1 // r25 = 1
0000B0A00A80 3451 sxt4 out0 = r10 // r42 = r10
00A000001000 3452 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 3460 cmp4.eq pr7, pr0 = r0, r8
010802900040 3461 mov gp = r41 // r1 = r41
008600010007 3462 (pr7) br.cond.dpnt.many L$780 ;;
}
3470 L$779:
{ .mmi
010802502940 3470 adds r37 = 1, r37 ;;
000008000000 3471 nop.m 0
000008000000 3472 nop.i 0
}
3480 L$776:
{ .mmi
008002500A80 3480 ld1 out0 = [r37] ;; // r42 = [r37]
0080822000C0 3481 ld4 r3 = [r34]
0000A2A00A80 3482 sxt1 out0 = out0 ;; // r42 = r42
}
{ .mib
010802A00280 3490 mov r10 = out0 // r10 = r42
01C440300240 3491 cmp4.eq pr9, pr8 = r0, r3
0095FFFF8009 3492 (pr9) br.cond.dptk.many L$778 ;;
}
{ .mmi
0080820002C0 34A0 ld4 r11 = [in0] ;; // r11 = [r32]
000008000000 34A1 nop.m 0
0000B0B002C0 34A2 sxt4 r11 = r11 ;;
}
{ .mmi
010088B542C0 34B0 shladd r11 = out0, 2, r11 ;; // r11 = r42, 2, r11
008080B002C0 34B1 ld4 r11 = [r11]
000008000000 34B2 nop.i 0 ;;
}
{ .mmi
010160B082C0 34C0 and r11 = 4, r11 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 132
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01C450B00000 34C1 cmp4.eq pr0, pr10 = r0, r11
000008000000 34C2 nop.i 0
}
{ .mfb
000008000000 34D0 nop.m 0
000008000000 34D1 nop.f 0
0095FFFF400A 34D2 (pr10) br.cond.dptk.many L$779 ;;
}
34E0 L$780:
{ .mii
0080025000C0 34E0 ld1 r3 = [r37] // 071842
010802502240 34E1 adds r9 = 1, tptr // r9 = 1, r37
000008000000 34E2 nop.i 0
}
{ .mmi
008082200280 34F0 ld4 r10 = [r34] ;; // 071843
01C800374240 34F1 cmp.eq pr9, pr0 = 58, r3 // 071842
01C400A002C0 34F2 cmp4.eq pr11, pr0 = r0, r10 // 071843
}
{ .mmi
008082000480 3500 ld4 r18 = [in0] ;; // r18 = [r32]
010800900949 3501 (pr9) mov tptr = r9 // r37 = r9 // 071842
000008000000 3502 nop.i 0 ;;
}
{ .mmi
008002500A80 3510 ld1 out0 = [r37] ;; // r42 = [r37] // 071843
000008000000 3511 nop.m 0
0000A2A00440 3512 sxt1 r17 = out0 // r17 = r42
}
{ .mfb
000008000000 3520 nop.m 0
000008000000 3521 nop.f 0
00860000A00B 3522 (pr11) br.cond.dpnt.many L$782 ;;
}
{ .mii
000008000000 3530 nop.m 0
0000B1200480 3531 sxt4 r18 = r18 ;;
010089222440 3532 shladd r17 = r17, 2, r18 ;;
}
{ .mmi
008081100440 3540 ld4 r17 = [r17] ;;
010161108440 3541 and r17 = 4, r17
000008000000 3542 nop.i 0 ;;
}
{ .mfb
01C461100000 3550 cmp4.eq pr0, pr12 = r0, r17
000008000000 3551 nop.f 0
00860000A00C 3552 (pr12) br.cond.dpnt.many L$783 ;;
}
{ .mfb
012018008200 3560 mov r8 = 388
000008000000 3561 nop.f 0
0080000F9000 3562 br.sptk.many L$719 ;;
}
3570 L$782:
{ .mib
012000002640 3570 mov ai = 1 // r25 = 1
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 133
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0000B1100A80 3571 sxt4 out0 = r17 // r42 = r17
00A000001000 3572 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C430800000 3580 cmp4.eq pr0, pr6 = r0, r8
010802900040 3581 mov gp = r41 // r1 = r41
008600004006 3582 (pr6) br.cond.dpnt.many L$783 ;;
}
{ .mfb
012018008200 3590 mov r8 = 388
000008000000 3591 nop.f 0
0080000F3000 3592 br.sptk.many L$719 ;;
}
35A0 L$783:
{ .mii
0120001000C0 35A0 add r3 = @ltoff($LITERAL$+1992), // r3 = @ltoff($LITERAL$+1992), r1 // 071844
gp
012000006640 35A1 mov ai = 3 // r25 = 3
010800C90B00 35A2 adds out2 = 72, sp // r44 = 72, r12
}
{ .mmi
010802500A80 35B0 mov out0 = tptr ;; // r42 = r37
0080C03000C0 35B1 ld8 r3 = $LITERAL$ // r3 = [r3]
000008000000 35B2 nop.i 0 ;;
}
{ .mfb
010800300AC0 35C0 mov out1 = r3 // r43 = r3
000008000000 35C1 nop.f 0
00A000001000 35C2 br.call.sptk.many rp = DECC$TXSSCANF ;; // br0 = DECC$TXSSCANF
}
{ .mib
01CC008021C0 35D0 cmp4.eq pr7, pr0 = 1, r8
010802900040 35D1 mov gp = r41 // r1 = r41
00860000A007 35D2 (pr7) br.cond.dpnt.many L$789 ;;
}
{ .mfb
012018008200 35E0 mov r8 = 388
000008000000 35E1 nop.f 0
0080000E9000 35E2 br.sptk.many L$719 ;;
}
35F0 L$791: // 071845
{ .mib
012000002640 35F0 mov ai = 1 // r25 = 1
0000B0A00A80 35F1 sxt4 out0 = r10 // r42 = r10
00A000001000 35F2 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 3600 cmp4.eq pr7, pr0 = r0, r8
010802900040 3601 mov gp = r41 // r1 = r41
008600010007 3602 (pr7) br.cond.dpnt.many L$793 ;;
}
3610 L$792:
{ .mmi
010802502940 3610 adds r37 = 1, r37 ;;
000008000000 3611 nop.m 0
000008000000 3612 nop.i 0
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 134
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
3620 L$789:
{ .mmi
008002500A80 3620 ld1 out0 = [r37] ;; // r42 = [r37]
0080822000C0 3621 ld4 r3 = [r34]
0000A2A00A80 3622 sxt1 out0 = out0 ;; // r42 = r42
}
{ .mib
010802A00280 3630 mov r10 = out0 // r10 = r42
01C440300240 3631 cmp4.eq pr9, pr8 = r0, r3
0095FFFF8009 3632 (pr9) br.cond.dptk.many L$791 ;;
}
{ .mmi
0080820002C0 3640 ld4 r11 = [in0] ;; // r11 = [r32]
000008000000 3641 nop.m 0
0000B0B002C0 3642 sxt4 r11 = r11 ;;
}
{ .mmi
010088B542C0 3650 shladd r11 = out0, 2, r11 ;; // r11 = r42, 2, r11
008080B002C0 3651 ld4 r11 = [r11]
000008000000 3652 nop.i 0 ;;
}
{ .mmi
010160B082C0 3660 and r11 = 4, r11 ;;
01C450B00000 3661 cmp4.eq pr0, pr10 = r0, r11
000008000000 3662 nop.i 0
}
{ .mfb
000008000000 3670 nop.m 0
000008000000 3671 nop.f 0
0095FFFF400A 3672 (pr10) br.cond.dptk.many L$792 ;;
}
3680 L$793:
{ .mmi
0080025000C0 3680 ld1 r3 = [r37] // 071848
008082200240 3681 ld4 r9 = [r34] // 071851
000008000000 3682 nop.i 0 ;;
}
{ .mmb
01C84035C000 3690 cmp.eq pr0, pr8 = 46, r3 // 071848
008082000440 3691 ld4 r17 = [in0] // r17 = [r32] // 071851
008600032008 3692 (pr8) br.cond.dpnt.many L$796 ;; // 071848
}
{ .mii
010802502940 36A0 adds r37 = 1, r37 // 071851
01C4009002C0 36A1 cmp4.eq pr11, pr0 = r0, r9
000008000000 36A2 nop.i 0 ;;
}
{ .mmi
008002500A80 36B0 ld1 out0 = [r37] ;; // r42 = [r37]
000008000000 36B1 nop.m 0
0000A2A002C0 36B2 sxt1 r11 = out0 // r11 = r42
}
{ .mfb
000008000000 36C0 nop.m 0
000008000000 36C1 nop.f 0
00860000A00B 36C2 (pr11) br.cond.dpnt.many L$799 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 135
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mii
000008000000 36D0 nop.m 0
0000B1100440 36D1 sxt4 r17 = r17 ;;
0100891162C0 36D2 shladd r11 = r11, 2, r17 ;;
}
{ .mmi
008080B002C0 36E0 ld4 r11 = [r11] ;;
010160B082C0 36E1 and r11 = 4, r11
000008000000 36E2 nop.i 0 ;;
}
{ .mfb
01C460B00000 36F0 cmp4.eq pr0, pr12 = r0, r11
000008000000 36F1 nop.f 0
00860000A00C 36F2 (pr12) br.cond.dpnt.many L$800 ;;
}
{ .mfb
012018008200 3700 mov r8 = 388
000008000000 3701 nop.f 0
0080000C5000 3702 br.sptk.many L$719 ;;
}
3710 L$799:
{ .mib
012000002640 3710 mov ai = 1 // r25 = 1
0000B0B00A80 3711 sxt4 out0 = r11 // r42 = r11
00A000001000 3712 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C430800000 3720 cmp4.eq pr0, pr6 = r0, r8
010802900040 3721 mov gp = r41 // r1 = r41
008600004006 3722 (pr6) br.cond.dpnt.many L$800 ;;
}
{ .mfb
012018008200 3730 mov r8 = 388
000008000000 3731 nop.f 0
0080000BF000 3732 br.sptk.many L$719 ;;
}
3740 L$800:
{ .mii
0120001000C0 3740 add r3 = @ltoff($LITERAL$+1984), // r3 = @ltoff($LITERAL$+1984), r1 // 071852
gp
012000006640 3741 mov ai = 3 // r25 = 3
010800C60B00 3742 adds out2 = 48, sp // r44 = 48, r12
}
{ .mmi
010802500A80 3750 mov out0 = tptr ;; // r42 = r37
0080C03000C0 3751 ld8 r3 = $LITERAL$ // r3 = [r3]
000008000000 3752 nop.i 0 ;;
}
{ .mfb
010800300AC0 3760 mov out1 = r3 // r43 = r3
000008000000 3761 nop.f 0
00A000001000 3762 br.call.sptk.many rp = DECC$TXSSCANF ;; // br0 = DECC$TXSSCANF
}
{ .mib
01CC008021C0 3770 cmp4.eq pr7, pr0 = 1, r8
010802900040 3771 mov gp = r41 // r1 = r41
00860000A007 3772 (pr7) br.cond.dpnt.many L$806 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 136
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfb
012018008200 3780 mov r8 = 388
000008000000 3781 nop.f 0
0080000B5000 3782 br.sptk.many L$719 ;;
}
3790 L$808: // 071853
{ .mib
012000002640 3790 mov ai = 1 // r25 = 1
0000B0A00A80 3791 sxt4 out0 = r10 // r42 = r10
00A000001000 3792 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 37A0 cmp4.eq pr7, pr0 = r0, r8
010802900040 37A1 mov gp = r41 // r1 = r41
008600010007 37A2 (pr7) br.cond.dpnt.many L$796 ;;
}
37B0 L$809:
{ .mmi
010802502940 37B0 adds r37 = 1, r37 ;;
000008000000 37B1 nop.m 0
000008000000 37B2 nop.i 0
}
37C0 L$806:
{ .mmi
008002500A80 37C0 ld1 out0 = [r37] ;; // r42 = [r37]
0080822000C0 37C1 ld4 r3 = [r34]
0000A2A00A80 37C2 sxt1 out0 = out0 ;; // r42 = r42
}
{ .mib
010802A00280 37D0 mov r10 = out0 // r10 = r42
01C440300240 37D1 cmp4.eq pr9, pr8 = r0, r3
0095FFFF8009 37D2 (pr9) br.cond.dptk.many L$808 ;;
}
{ .mmi
0080820002C0 37E0 ld4 r11 = [in0] ;; // r11 = [r32]
000008000000 37E1 nop.m 0
0000B0B002C0 37E2 sxt4 r11 = r11 ;;
}
{ .mmi
010088B542C0 37F0 shladd r11 = out0, 2, r11 ;; // r11 = r42, 2, r11
008080B002C0 37F1 ld4 r11 = [r11]
000008000000 37F2 nop.i 0 ;;
}
{ .mmi
010160B082C0 3800 and r11 = 4, r11 ;;
01C450B00000 3801 cmp4.eq pr0, pr10 = r0, r11
000008000000 3802 nop.i 0
}
{ .mfb
000008000000 3810 nop.m 0
000008000000 3811 nop.f 0
0095FFFF400A 3812 (pr10) br.cond.dptk.many L$809 ;;
}
3820 L$796: // 071854
{ .mii
0080025000C0 3820 ld1 r3 = [r37] // 071857
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 137
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010802502240 3821 adds r9 = 1, tptr ;; // r9 = 1, r37
01C8003B4240 3822 cmp.eq pr9, pr0 = 90, r3 ;;
}
{ .mmi
010800900949 3830 (pr9) mov tptr = r9 ;; // r37 = r9
008002500280 3831 ld1 r10 = [r37] // 071858
000008000000 3832 nop.i 0 ;;
}
{ .mbb
01C850A56000 3840 cmp.eq pr0, pr10 = 43, r10
00860000200A 3841 (pr10) br.cond.dpnt.many L$812
008000005000 3842 br.sptk.many L$1128 ;;
}
3850 L$812: // 071860
{ .mfb
01C860A5A000 3850 cmp.eq pr0, pr12 = 45, r10 // 071861
000008000000 3851 nop.f 0
00860000400C 3852 (pr12) br.cond.dpnt.many L$814 ;;
}
3860 L$1128: // 071862
{ .mmi
00A002502900 3860 ld1 offset = [r37], 1 ;; // r36 = [r37], 1
000008000000 3861 nop.m 0
0000A2400900 3862 sxt1 offset = offset // r36 = r36
}
3870 L$814:
{ .mmi
008002500A80 3870 ld1 out0 = [r37] ;; // r42 = [r37] // 071863
008082200480 3871 ld4 r18 = [r34]
0000A2A00500 3872 sxt1 r20 = out0 // r20 = r42
}
{ .mmi
008082000540 3880 ld4 r21 = [in0] ;; // r21 = [r32]
01C4012003C0 3881 cmp4.eq pr15, pr0 = r0, r18
000008000000 3882 nop.i 0
}
{ .mfb
000008000000 3890 nop.m 0
000008000000 3891 nop.f 0
00860000800F 3892 (pr15) br.cond.dpnt.many L$819 ;;
}
{ .mii
000008000000 38A0 nop.m 0
0000B1500540 38A1 sxt4 r21 = r21 ;;
010089528500 38A2 shladd r20 = r20, 2, r21 ;;
}
{ .mmi
008081400500 38B0 ld4 r20 = [r20] ;;
010161408500 38B1 and r20 = 4, r20
000008000000 38B2 nop.i 0 ;;
}
{ .mbb
01C431400000 38C0 cmp4.eq pr0, pr6 = r0, r20
008600006006 38C1 (pr6) br.cond.dpnt.many L$820
008000059000 38C2 br.sptk.many L$821 ;;
}
38D0 L$819:
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 138
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mib
012000002640 38D0 mov ai = 1 // r25 = 1
0000B1400A80 38D1 sxt4 out0 = r20 // r42 = r20
00A000001000 38D2 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 38E0 cmp4.eq pr7, pr0 = r0, r8
010802900040 38E1 mov gp = r41 // r1 = r41
008600054007 38E2 (pr7) br.cond.dpnt.many L$821 ;;
}
38F0 L$820:
{ .mii
0120001000C0 38F0 add r3 = @ltoff($LITERAL$+1992), // r3 = @ltoff($LITERAL$+1992), r1 // 071865
gp
012000006640 38F1 mov ai = 3 // r25 = 3
010800C58B00 38F2 adds out2 = 44, sp // r44 = 44, r12
}
{ .mmi
010802500A80 3900 mov out0 = tptr ;; // r42 = r37
0080C03000C0 3901 ld8 r3 = $LITERAL$ // r3 = [r3]
000008000000 3902 nop.i 0 ;;
}
{ .mfb
010800300AC0 3910 mov out1 = r3 // r43 = r3
000008000000 3911 nop.f 0
00A000001000 3912 br.call.sptk.many rp = DECC$TXSSCANF ;; // br0 = DECC$TXSSCANF
}
{ .mib
01CC008021C0 3920 cmp4.eq pr7, pr0 = 1, r8
010802900040 3921 mov gp = r41 // r1 = r41
008600004007 3922 (pr7) br.cond.dpnt.many L$825 ;;
}
{ .mfb
012018008200 3930 mov r8 = 388
000008000000 3931 nop.f 0
00800007F000 3932 br.sptk.many L$719 ;;
}
3940 L$825:
{ .mmi
008002500A80 3940 ld1 out0 = [r37] // r42 = [r37] // 071866
0080822008C0 3941 ld4 r35 = [r34]
010802502980 3942 adds r38 = 1, tptr ;; // r38 = 1, r37
}
{ .mib
01C402300240 3950 cmp4.eq pr9, pr0 = r0, r35
0000A2A00240 3951 sxt1 r9 = out0 // r9 = r42
004000000000 3952 nop.b 0
}
{ .mfb
008082000280 3960 ld4 r10 = [in0] // r10 = [r32]
000008000000 3961 nop.f 0
00860000A009 3962 (pr9) br.cond.dpnt.many L$827 ;;
}
{ .mii
000008000000 3970 nop.m 0
0000B0A00280 3971 sxt4 r10 = r10 ;;
010088A12240 3972 shladd r9 = r9, 2, r10 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 139
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mmi
008080900240 3980 ld4 r9 = [r9] ;;
010160908240 3981 and r9 = 4, r9
000008000000 3982 nop.i 0 ;;
}
{ .mmi
01C450900000 3990 cmp4.eq pr0, pr10 = r0, r9 ;;
01080260094A 3991 (pr10) mov tptr = r38 // r37 = r38
000008000000 3992 nop.i 0
}
{ .mfb
000008000000 39A0 nop.m 0
000008000000 39A1 nop.f 0
008000007000 39A2 br.sptk.many L$828 ;;
}
39B0 L$827:
{ .mib
012000002640 39B0 mov ai = 1 // r25 = 1
0000B0900A80 39B1 sxt4 out0 = r9 // r42 = r9
00A000001000 39B2 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mii
01C430800000 39C0 cmp4.eq pr0, pr6 = r0, r8
010802900040 39C1 mov gp = r41 ;; // r1 = r41
010802600946 39C2 (pr6) mov tptr = r38 // r37 = r38
}
39D0 L$828:
{ .mmi
008082200880 39D0 ld4 r34 = [r34] // 071867
008082000800 39D1 ld4 in0 = [in0] // r32 = [r32]
000008000000 39D2 nop.i 0 ;;
}
{ .mii
008002500A80 39E0 ld1 out0 = [r37] // r42 = [r37]
01C402200240 39E1 cmp4.eq pr9, pr0 = r0, r34
0108025028C0 39E2 adds r35 = 1, tptr ;; // r35 = 1, r37
}
{ .mib
000008000000 39F0 nop.m 0
0000A2A00240 39F1 sxt1 r9 = out0 // r9 = r42
00860000A009 39F2 (pr9) br.cond.dpnt.many L$830 ;;
}
{ .mii
000008000000 3A00 nop.m 0
0000B2000800 3A01 sxt4 in0 = in0 ;; // r32 = r32
01008A012240 3A02 shladd r9 = r9, 2, in0 ;; // r9 = r9, 2, r32
}
{ .mmi
008080900240 3A10 ld4 r9 = [r9] ;;
010160908240 3A11 and r9 = 4, r9
000008000000 3A12 nop.i 0 ;;
}
{ .mmi
01C450900000 3A20 cmp4.eq pr0, pr10 = r0, r9 ;;
01080230094A 3A21 (pr10) mov tptr = r35 // r37 = r35
000008000000 3A22 nop.i 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 140
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfb
000008000000 3A30 nop.m 0
000008000000 3A31 nop.f 0
008000007000 3A32 br.sptk.many L$831 ;;
}
3A40 L$830:
{ .mib
012000002640 3A40 mov ai = 1 // r25 = 1
0000B0900A80 3A41 sxt4 out0 = r9 // r42 = r9
00A000001000 3A42 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mii
01C430800000 3A50 cmp4.eq pr0, pr6 = r0, r8
010802900040 3A51 mov gp = r41 ;; // r1 = r41
010802300946 3A52 (pr6) mov tptr = r35 // r37 = r35
}
3A60 L$831:
{ .mii
012000100800 3A60 add in0 = @ltoff($LITERAL$+1992), // r32 = @ltoff($LITERAL$+1992), r1 // 071869
gp
012000006640 3A61 mov ai = 3 // r25 = 3
010800C50B00 3A62 adds out2 = 40, sp ;; // r44 = 40, r12
}
{ .mii
008002500980 3A70 ld1 r38 = [r37] // 071868
010802502880 3A71 adds r34 = 1, tptr // r34 = 1, r37
000008000000 3A72 nop.i 0
}
{ .mmi
0080C2000AC0 3A80 ld8 out1 = $LITERAL$ ;; // r43 = [r32] // 071869
01C802674240 3A81 cmp.eq pr9, pr0 = 58, r38 // 071868
000008000000 3A82 nop.i 0 ;;
}
{ .mmi
010802200949 3A90 (pr9) mov tptr = r34 ;; // r37 = r34
010802500A80 3A91 mov out0 = tptr // r42 = r37 // 071869
000008000000 3A92 nop.i 0
}
{ .mfb
000008000000 3AA0 nop.m 0
000008000000 3AA1 nop.f 0
00A000001000 3AA2 br.call.sptk.many rp = DECC$TXSSCANF ;; // br0 = DECC$TXSSCANF
}
{ .mib
01CC008021C0 3AB0 cmp4.eq pr7, pr0 = 1, r8
010802900040 3AB1 mov gp = r41 // r1 = r41
008600004007 3AB2 (pr7) br.cond.dpnt.many L$835 ;;
}
{ .mfb
012018008200 3AC0 mov r8 = 388
000008000000 3AC1 nop.f 0
00800004D000 3AC2 br.sptk.many L$719 ;;
}
3AD0 L$835:
{ .mii
010800C588C0 3AD0 adds r35 = 44, sp // r35 = 44, r12 // 071870
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 141
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010800C50880 3AD1 adds r34 = 40, sp // r34 = 40, r12
000008000000 3AD2 nop.i 0 ;;
}
{ .mmi
0080823008C0 3AE0 ld4 r35 = [r35]
008082200880 3AE1 ld4 r34 = [r34]
000008000000 3AE2 nop.i 0 ;;
}
{ .mii
01008A3468C0 3AF0 shladd r35 = r35, 2, r35
010082244880 3AF1 shladd r34 = r34, 1, r34 ;;
01008A3468C0 3AF2 shladd r35 = r35, 2, r35
}
{ .mmi
01008A244880 3B00 shladd r34 = r34, 2, r34 ;;
0100923468C0 3B01 shladd r35 = r35, 3, r35
000008000000 3B02 nop.i 0 ;;
}
{ .mmi
01008A246880 3B10 shladd r34 = r35, 2, r34 ;;
000008000000 3B11 nop.m 0
0000B2200880 3B12 sxt4 r34 = r34 ;;
}
{ .mmi
010088044880 3B20 shladd r34 = r34, 2, r0 ;;
01008A244880 3B21 shladd r34 = r34, 2, r34
000008000000 3B22 nop.i 0 ;;
}
{ .mmi
01008A244880 3B30 shladd r34 = r34, 2, r34 ;;
01008A244880 3B31 shladd r34 = r34, 2, r34
000008000000 3B32 nop.i 0 ;;
}
{ .mmi
01008A244880 3B40 shladd r34 = r34, 2, r34 ;;
01008A244880 3B41 shladd r34 = r34, 2, r34
000008000000 3B42 nop.i 0 ;;
}
{ .mmi
01008A244880 3B50 shladd r34 = r34, 2, r34 ;;
01008A244880 3B51 shladd r34 = r34, 2, r34
000008000000 3B52 nop.i 0 ;;
}
{ .mii
000008000000 3B60 nop.m 0
00A7C3844880 3B61 shl r34 = r34, 7 ;;
01002A200880 3B62 sub r34 = r0, r34 ;;
}
{ .mib
000008000000 3B70 nop.m 0
0000B22008C0 3B71 sxt4 zoffset = r34 // r35 = r34
004000000000 3B72 nop.b 0
}
3B80 L$821: // 071871
{ .mii
010800C68800 3B80 adds in0 = 52, sp // r32 = 52, r12 // 071873
010800C700C0 3B81 adds r3 = 56, sp ;; // r3 = 56, r12 // 071874
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 142
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010800C782C0 3B82 adds r11 = 60, sp // r11 = 60, r12 // 071875
}
{ .mii
010800C80440 3B90 adds r17 = 64, sp // r17 = 64, r12 // 071876
010800C88480 3B91 adds r18 = 68, sp // r18 = 68, r12 // 071877
010800C904C0 3B92 adds r19 = 72, sp ;; // r19 = 72, r12 // 071878
}
{ .mmi
010800C60500 3BA0 adds r20 = 48, sp // r20 = 48, r12 // 071879
008082000800 3BA1 ld4 in0 = [in0] // r32 = [r32] // 071873
010800C20240 3BA2 adds r9 = 16, sp ;; // r9 = 16, r12
}
{ .mmi
0080803000C0 3BB0 ld4 r3 = [r3] // 071874
008080B002C0 3BB1 ld4 r11 = [r11] // 071875
010800C24280 3BB2 adds r10 = 18, sp ;; // r10 = 18, r12 // 071874
}
{ .mmi
008081100440 3BC0 ld4 r17 = [r17] // 071876
008081200480 3BC1 ld4 r18 = [r18] // 071877
010800C28540 3BC2 adds r21 = 20, sp ;; // r21 = 20, r12 // 071875
}
{ .mmi
0080813004C0 3BD0 ld4 r19 = [r19] // 071878
008081400500 3BD1 ld4 r20 = [r20] // 071879
010800C2C580 3BD2 adds r22 = 22, sp ;; // r22 = 22, r12 // 071876
}
{ .mii
010800C305C0 3BE0 adds r23 = 24, sp // r23 = 24, r12 // 071877
010800C34600 3BE1 adds r24 = 26, sp // r24 = 26, r12 // 071878
010800C38640 3BE2 adds ai = 28, sp // r25 = 28, r12 // 071879
}
{ .mmi
008C40940000 3BF0 st2 [r9] = in0 ;; // [r9] = r32 // 071873
008C40A06000 3BF1 st2 [r10] = r3 // 071874
010800C40AC0 3BF2 adds out1 = 32, sp // r43 = 32, r12 // 071880
}
{ .mii
008C41516000 3C00 st2 [r21] = r11 // 071875
010800C20A80 3C01 adds out0 = 16, sp // r42 = 16, r12 // 071880
000008000000 3C02 nop.i 0 ;;
}
{ .mmi
008C41622000 3C10 st2 [r22] = r17 // 071876
008C41724000 3C11 st2 [r23] = r18 // 071877
000008000000 3C12 nop.i 0 ;;
}
{ .mmi
008C41826000 3C20 st2 [r24] = r19 // 071878
008C41928000 3C21 st2 [ai] = r20 // [r25] = r20 // 071879
012000004640 3C22 mov ai = 2 // r25 = 2 // 071880
}
{ .mfb
000008000000 3C30 nop.m 0
000008000000 3C31 nop.f 0
00A000001000 3C32 br.call.sptk.many rp = LIB$CVT_VECTIM ;; // br0 = LIB$CVT_VECTIM
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 143
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mib
010802900040 3C40 mov gp = r41 // r1 = r41
00A0308001C0 3C41 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0 // 071881
008600004006 3C42 (pr6) br.cond.dpnt.many L$836 ;;
}
{ .mfb
000008000000 3C50 nop.m 0
000008000000 3C51 nop.f 0
008000019000 3C52 br.sptk.many L$1126 ;;
}
3C60 L$836:
{ .mmi
0120080FE980 3C60 mov r38 = 255 ;; // 071883
010062648900 3C61 and r36 = offset, r38 // r36 = r36, r38
000008000000 3C62 nop.i 0 ;;
}
{ .mfb
01C842456000 3C70 cmp.eq pr0, pr8 = 43, r36
000008000000 3C71 nop.f 0
008600008008 3C72 (pr8) br.cond.dpnt.many L$840 ;;
}
{ .mii
010800C40940 3C80 adds r37 = 32, sp // r37 = 32, r12 // 071884
0000B23008C0 3C81 sxt4 r35 = zoffset // r35 = r35
010800C40880 3C82 adds r34 = 32, sp ;; // r34 = 32, r12
}
{ .mmi
0080C2500940 3C90 ld8 r37 = [r37] ;;
01002A34A8C0 3C91 sub r35 = r37, r35
000008000000 3C92 nop.i 0 ;;
}
{ .mfb
008CC2246000 3CA0 st8 [r34] = r35
000008000000 3CA1 nop.f 0
00800000B000 3CA2 br.sptk.many L$842 ;; // 071885
}
3CB0 L$840:
{ .mfb
01C85245A000 3CB0 cmp.eq pr0, pr10 = 45, r36 // 071886
000008000000 3CB1 nop.f 0
00860000800A 3CB2 (pr10) br.cond.dpnt.many L$842 ;;
}
{ .mii
010800C40800 3CC0 adds in0 = 32, sp // r32 = 32, r12 // 071887
0000B23008C0 3CC1 sxt4 r35 = zoffset // r35 = r35
010800C400C0 3CC2 adds r3 = 32, sp ;; // r3 = 32, r12
}
{ .mmi
0080C2000800 3CD0 ld8 in0 = [in0] ;; // r32 = [r32]
010002340800 3CD1 add in0 = in0, r35 // r32 = r32, r35
000008000000 3CD2 nop.i 0 ;;
}
{ .mfi
008CC0340000 3CE0 st8 [r3] = in0 // [r3] = r32
000008000000 3CE1 nop.f 0
000008000000 3CE2 nop.i 0
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 144
HttpIsoTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
3CF0 L$842:
{ .mmi
010800C40240 3CF0 adds r9 = 32, sp ;; // r9 = 32, r12 // 071889
0080C0900240 3CF1 ld8 r9 = [r9]
000008000000 3CF2 nop.i 0 ;;
}
{ .mfi
008CC2112000 3D00 st8 [in1] = r9 // [r33] = r9
000008000000 3D01 nop.f 0
000008000000 3D02 nop.i 0
}
3D10 L$1126: // 071891
{ .mib
000008000000 3D10 nop.m 0
0000B0800200 3D11 sxt4 r8 = r8
004000000000 3D12 nop.b 0 ;;
}
3D20 L$719:
{ .mii
000008000000 3D20 nop.m 0
000154050000 3D21 mov.i rspfs = r40 ;;
000E0014E000 3D22 mov rp = r39 // br0 = r39
}
{ .mfb
010800C80300 3D30 adds sp = 64, sp // r12 = 64, r12
000008000000 3D31 nop.f 0
000108001100 3D32 br.ret.sptk.many rp ;; // br0
}
.endp HttpIsoTime
Routine Size: 4368 bytes, Routine Base: $CODE$ + 2C30
.proc TimeSetHttpdUTC
.align 32
.global TimeSetHttpdUTC
TimeSetHttpdUTC: // 071902
{ .mii
002C00D24AC0 3D40 alloc r43 = rspfs, 0, 13, 5, 0
012000100200 3D41 add r8 = @ltoff($LITERAL$+1968), // r8 = @ltoff($LITERAL$+1968), r1 // 071914
gp
012000060380 3D42 mov r14 = 48 // 071902
}
{ .mmi
012000100240 3D50 add r9 = @ltoff($LITERAL$+1968), // r9 = @ltoff($LITERAL$+1968), r1 // 071914
gp ;;
0080C0800200 3D51 ld8 r8 = $LITERAL$ // r8 = [r8]
010028E183C0 3D52 sub r15 = sp, r14 // r15 = r12, r14 // 071902
}
{ .mii
0080C0900240 3D60 ld8 r9 = $LITERAL$ // r9 = [r9] // 071914
0119F80FEA40 3D61 adds r41 = -1, r0 ;; // 071902
000188000A80 3D62 mov r42 = rp // r42 = br0
}
{ .mii
0080C0F00380 3D70 ld8 r14 = [r15]
010800F00300 3D71 mov sp = r15 // r12 = r15
010800100B00 3D72 mov r44 = gp ;; // r44 = r1
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 145
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mmi
008000800200 3D80 ld1 r8 = [r8] ;; // 073301
000008000000 3D81 nop.m 0
0000A0800200 3D82 sxt1 r8 = r8 ;;
}
{ .mfb
01C000800200 3D90 cmp.eq pr8, pr0 = r0, r8
000008000000 3D91 nop.f 0
008600020008 3D92 (pr8) br.cond.dpnt.many L$642 ;;
}
3DA0 L$643:
{ .mmi
010800902240 3DA0 adds r9 = 1, r9 ;;
008000900280 3DA1 ld1 r10 = [r9]
000008000000 3DA2 nop.i 0 ;;
}
{ .mii
000008000000 3DB0 nop.m 0
0000A0A00280 3DB1 sxt1 r10 = r10 ;;
01C000A00280 3DB2 cmp.eq pr10, pr0 = r0, r10
}
{ .mfb
000008000000 3DC0 nop.m 0
000008000000 3DC1 nop.f 0
00860001A00A 3DC2 (pr10) br.cond.dpnt.many L$642 ;;
}
{ .mmi
010800902240 3DD0 adds r9 = 1, r9 ;;
0080009002C0 3DD1 ld1 r11 = [r9]
000008000000 3DD2 nop.i 0 ;;
}
{ .mii
000008000000 3DE0 nop.m 0
0000A0B002C0 3DE1 sxt1 r11 = r11 ;;
01C000B00300 3DE2 cmp.eq pr12, pr0 = r0, r11
}
{ .mfb
000008000000 3DF0 nop.m 0
000008000000 3DF1 nop.f 0
00860001400C 3DF2 (pr12) br.cond.dpnt.many L$642 ;;
}
{ .mmi
010800902240 3E00 adds r9 = 1, r9 ;;
008000900440 3E01 ld1 r17 = [r9]
000008000000 3E02 nop.i 0 ;;
}
{ .mii
000008000000 3E10 nop.m 0
0000A1100440 3E11 sxt1 r17 = r17 ;;
01C001100380 3E12 cmp.eq pr14, pr0 = r0, r17
}
{ .mfb
000008000000 3E20 nop.m 0
000008000000 3E21 nop.f 0
00860000E00E 3E22 (pr14) br.cond.dpnt.many L$642 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 146
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
010800902240 3E30 adds r9 = 1, r9 ;;
008000900480 3E31 ld1 r18 = [r9]
000008000000 3E32 nop.i 0 ;;
}
{ .mii
000008000000 3E40 nop.m 0
0000A1200480 3E41 sxt1 r18 = r18 ;;
01C001200180 3E42 cmp.eq pr6, pr0 = r0, r18
}
{ .mfb
000008000000 3E50 nop.m 0
000008000000 3E51 nop.f 0
008600008006 3E52 (pr6) br.cond.dpnt.many L$642 ;;
}
{ .mmi
010800902240 3E60 adds r9 = 1, r9 ;;
0080009004C0 3E61 ld1 r19 = [r9]
010840900500 3E62 adds r20 = 1024, r9 ;;
}
{ .mii
00CB01400000 3E70 lfetch [r20]
0000A13004C0 3E71 sxt1 r19 = r19 ;;
01C039300000 3E72 cmp.eq pr0, pr7 = r0, r19
}
{ .mfb
000008000000 3E80 nop.m 0
000008000000 3E81 nop.f 0
0095FFFE4007 3E82 (pr7) br.cond.dptk.many L$643 ;;
}
3E90 L$642:
{ .mii
012000100880 3E90 add r34 = @ltoffx(LogValue), gp // r34 = @ltoffx(LogValue), r1 // 073305
012000100800 3E91 add r32 = @ltoff($LITERAL$+1968), // r32 = @ltoff($LITERAL$+1968), r1 // 071914
gp
012010000B80 3E92 mov out1 = 256 ;; // r46 = 256 // 073305
}
{ .mmi
0080C2200880 3EA0 ld8.mov r34 = [r34], LogValue
0080C2000800 3EA1 ld8 r32 = $LITERAL$ // r32 = [r32] // 071914
000008000000 3EA2 nop.i 0 ;;
}
{ .mib
010802200B40 3EB0 mov out0 = r34 // r45 = r34 // 073305
01002A012840 3EB1 sub r33 = cptr, r32 // r33 = r9, r32 // 073302
00A000001000 3EB2 br.call.sptk.many rp = OTS$ZERO ;; // br0 = OTS$ZERO // 073305
}
{ .mii
010802C00040 3EC0 mov gp = r44 // r1 = r44
01200000A640 3EC1 mov ai = 5 // r25 = 5 // 073307
012000000C00 3EC2 mov out3 = 0 // r48 = 0
}
{ .mmi
012000000B40 3ED0 mov out0 = 0 ;; // r45 = 0
0120001009C0 3ED1 add r39 = @ltoffx(LnmItems), gp // r39 = @ltoffx(LnmItems), r1
0120001008C0 3ED2 add r35 = @gprel(LogNameDsc), gp // r35 = @gprel(LogNameDsc), r1 // 073302
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 147
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
012000100980 3EE0 add r38 = @gprel(LnmTableDsc), gp ;; // r38 = @gprel(LnmTableDsc), r1 // 073307
0080C27009C0 3EE1 ld8.mov r39 = [r39], LnmItems
010802610BC0 3EE2 adds out2 = 8, r38 // r47 = 8, r38
}
{ .mmi
010802600B80 3EF0 mov out1 = r38 ;; // r46 = r38
00AC42342100 3EF1 st2 [r35] = r33, 4 // 073302
010802700C40 3EF2 mov out4 = r39 ;; // r49 = r39 // 073307
}
{ .mfb
00BC8A341F00 3F00 st4 [r35] = r32, -4 // 073303
000008000000 3F01 nop.f 0
00A000001000 3F02 br.call.sptk.many rp = SYS$TRNLNM ;; // br0 = SYS$TRNLNM // 073307
}
{ .mii
010802C00040 3F10 mov gp = r44 // r1 = r44
012040000800 3F11 mov r32 = 1024 // 073308
00A0308001C0 3F12 tbit.z pr7, pr6 = r8, 0 ;;
}
{ .mmi
012000100840 3F20 add r33 = @gprel(LnmAttributes), // r33 = @gprel(LnmAttributes), r1
gp ;;
008082100900 3F21 ld4 r36 = [r33]
000008000000 3F22 nop.i 0 ;;
}
{ .mmi
010062048800 3F30 and r32 = r36, r32 ;;
01C402000240 3F31 cmp4.eq pr9, pr0 = r0, r32
000008000000 3F32 nop.i 0 ;;
}
{ .mmi
01C2300001C9 3F40 (pr9) cmp.eq.or.andcm pr7, pr6 = r0, r0 ;;
010800000B47 3F41 (pr7) mov out0 = r0 // r45 = r0
000008000000 3F42 nop.i 0 ;;
}
{ .mmi
010802200B46 3F50 (pr6) mov out0 = r34 ;; // r45 = r34
010802D00940 3F51 mov cptr = out0 // r37 = r45 // 071914
01C45005A000 3F52 cmp4.eq pr0, pr10 = out0, r0 // pr0, pr10 = r45, r0
}
{ .mfb
000008000000 3F60 nop.m 0
000008000000 3F61 nop.f 0
00860007C00A 3F62 (pr10) br.cond.dpnt.many L$650 ;;
}
{ .mii
0120001000C0 3F70 add r3 = @ltoff($LITERAL$+1952), // r3 = @ltoff($LITERAL$+1952), r1 // 071915
gp
012000100240 3F71 add r9 = @ltoff($LITERAL$+1952), // r9 = @ltoff($LITERAL$+1952), r1
gp
000008000000 3F72 nop.i 0 ;;
}
{ .mmi
0080C03000C0 3F80 ld8 r3 = $LITERAL$ // r3 = [r3]
0080C0900240 3F81 ld8 r9 = $LITERAL$ // r9 = [r9]
000008000000 3F82 nop.i 0 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 148
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mmi
0080003000C0 3F90 ld1 r3 = [r3] ;; // 073301
000008000000 3F91 nop.m 0
0000A03000C0 3F92 sxt1 r3 = r3 ;;
}
{ .mfb
01C000300340 3FA0 cmp.eq pr13, pr0 = r0, r3
000008000000 3FA1 nop.f 0
00860002000D 3FA2 (pr13) br.cond.dpnt.many L$653 ;;
}
3FB0 L$654:
{ .mmi
010800902240 3FB0 adds r9 = 1, r9 ;;
008000900280 3FB1 ld1 r10 = [r9]
000008000000 3FB2 nop.i 0 ;;
}
{ .mii
000008000000 3FC0 nop.m 0
0000A0A00280 3FC1 sxt1 r10 = r10 ;;
01C000A003C0 3FC2 cmp.eq pr15, pr0 = r0, r10
}
{ .mfb
000008000000 3FD0 nop.m 0
000008000000 3FD1 nop.f 0
00860001A00F 3FD2 (pr15) br.cond.dpnt.many L$653 ;;
}
{ .mmi
010800902240 3FE0 adds r9 = 1, r9 ;;
0080009002C0 3FE1 ld1 r11 = [r9]
000008000000 3FE2 nop.i 0 ;;
}
{ .mii
000008000000 3FF0 nop.m 0
0000A0B002C0 3FF1 sxt1 r11 = r11 ;;
01C000B00240 3FF2 cmp.eq pr9, pr0 = r0, r11
}
{ .mfb
000008000000 4000 nop.m 0
000008000000 4001 nop.f 0
008600014009 4002 (pr9) br.cond.dpnt.many L$653 ;;
}
{ .mmi
010800902240 4010 adds r9 = 1, r9 ;;
008000900440 4011 ld1 r17 = [r9]
000008000000 4012 nop.i 0 ;;
}
{ .mii
000008000000 4020 nop.m 0
0000A1100440 4021 sxt1 r17 = r17 ;;
01C0011001C0 4022 cmp.eq pr7, pr0 = r0, r17
}
{ .mfb
000008000000 4030 nop.m 0
000008000000 4031 nop.f 0
00860000E007 4032 (pr7) br.cond.dpnt.many L$653 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 149
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
010800902240 4040 adds r9 = 1, r9 ;;
008000900480 4041 ld1 r18 = [r9]
000008000000 4042 nop.i 0 ;;
}
{ .mii
000008000000 4050 nop.m 0
0000A1200480 4051 sxt1 r18 = r18 ;;
01C0012002C0 4052 cmp.eq pr11, pr0 = r0, r18
}
{ .mfb
000008000000 4060 nop.m 0
000008000000 4061 nop.f 0
00860000800B 4062 (pr11) br.cond.dpnt.many L$653 ;;
}
{ .mmi
010800902240 4070 adds r9 = 1, r9 ;;
0080009004C0 4071 ld1 r19 = [r9]
010840900500 4072 adds r20 = 1024, r9 ;;
}
{ .mii
00CB01400000 4080 lfetch [r20]
0000A13004C0 4081 sxt1 r19 = r19 ;;
01C061300000 4082 cmp.eq pr0, pr12 = r0, r19
}
{ .mfb
000008000000 4090 nop.m 0
000008000000 4091 nop.f 0
0095FFFE400C 4092 (pr12) br.cond.dptk.many L$654 ;;
}
40A0 L$653:
{ .mii
012000100900 40A0 add r36 = @ltoff($LITERAL$+1952), // r36 = @ltoff($LITERAL$+1952), r1 // 071915
gp
012010000B80 40A1 mov out1 = 256 // r46 = 256 // 073305
010802200B40 40A2 mov out0 = r34 ;; // r45 = r34
}
{ .mmi
0080C2400900 40B0 ld8 r36 = $LITERAL$ ;; // r36 = [r36] // 071915
01002A412800 40B1 sub r32 = cptr, r36 // r32 = r9, r36 // 073302
000008000000 40B2 nop.i 0
}
{ .mfb
000008000000 40C0 nop.m 0
000008000000 40C1 nop.f 0
00A000001000 40C2 br.call.sptk.many rp = OTS$ZERO ;; // br0 = OTS$ZERO // 073305
}
{ .mmi
010802610BC0 40D0 adds out2 = 8, r38 // r47 = 8, r38 // 073307
00AC42340100 40D1 st2 [r35] = r32, 4 // 073302
01200000A640 40D2 mov ai = 5 ;; // r25 = 5 // 073307
}
{ .mii
010802700C40 40E0 mov out4 = r39 // r49 = r39
012000000C00 40E1 mov out3 = 0 // r48 = 0
010802600B80 40E2 mov out1 = r38 // r46 = r38
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 150
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
012000000B40 40F0 mov out0 = 0 ;; // r45 = 0
00BC8A349F00 40F1 st4 [r35] = r36, -4 // 073303
010802C00040 40F2 mov gp = r44 ;; // r1 = r44 // 073305
}
{ .mfb
000008000000 4100 nop.m 0
000008000000 4101 nop.f 0
00A000001000 4102 br.call.sptk.many rp = SYS$TRNLNM ;; // br0 = SYS$TRNLNM // 073307
}
{ .mii
008082100800 4110 ld4 r32 = [r33] // 073308
012040000940 4111 mov r37 = 1024
00A0308001C0 4112 tbit.z pr7, pr6 = r8, 0 ;;
}
{ .mii
010062540800 4120 and r32 = r32, r37
010802C00040 4121 mov gp = r44 ;; // r1 = r44 // 073307
01C402000240 4122 cmp4.eq pr9, pr0 = r0, r32 ;; // 073308
}
{ .mmi
01C2300001C9 4130 (pr9) cmp.eq.or.andcm pr7, pr6 = r0, r0 ;;
010800000907 4131 (pr7) mov r36 = r0
000008000000 4132 nop.i 0 ;;
}
{ .mmi
010802200906 4140 (pr6) mov r36 = r34 ;;
010802400940 4141 mov cptr = r36 // r37 = r36 // 071915
01C450048000 4142 cmp4.eq pr0, pr10 = r36, r0
}
{ .mfb
000008000000 4150 nop.m 0
000008000000 4151 nop.f 0
00860003E00A 4152 (pr10) br.cond.dpnt.many L$650 ;;
}
{ .mii
0120001000C0 4160 add r3 = @ltoff($LITERAL$+1936), // r3 = @ltoff($LITERAL$+1936), r1 // 071916
gp
012000100240 4161 add r9 = @ltoff($LITERAL$+1936), // r9 = @ltoff($LITERAL$+1936), r1
gp
000008000000 4162 nop.i 0 ;;
}
{ .mmi
0080C03000C0 4170 ld8 r3 = $LITERAL$ // r3 = [r3]
0080C0900240 4171 ld8 r9 = $LITERAL$ // r9 = [r9]
000008000000 4172 nop.i 0 ;;
}
{ .mmi
0080003000C0 4180 ld1 r3 = [r3] ;; // 073301
000008000000 4181 nop.m 0
0000A03000C0 4182 sxt1 r3 = r3 ;;
}
{ .mfb
01C000300340 4190 cmp.eq pr13, pr0 = r0, r3
000008000000 4191 nop.f 0
00860002000D 4192 (pr13) br.cond.dpnt.many L$663 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 151
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
41A0 L$664:
{ .mmi
010800902240 41A0 adds r9 = 1, r9 ;;
008000900280 41A1 ld1 r10 = [r9]
000008000000 41A2 nop.i 0 ;;
}
{ .mii
000008000000 41B0 nop.m 0
0000A0A00280 41B1 sxt1 r10 = r10 ;;
01C000A003C0 41B2 cmp.eq pr15, pr0 = r0, r10
}
{ .mfb
000008000000 41C0 nop.m 0
000008000000 41C1 nop.f 0
00860001A00F 41C2 (pr15) br.cond.dpnt.many L$663 ;;
}
{ .mmi
010800902240 41D0 adds r9 = 1, r9 ;;
0080009002C0 41D1 ld1 r11 = [r9]
000008000000 41D2 nop.i 0 ;;
}
{ .mii
000008000000 41E0 nop.m 0
0000A0B002C0 41E1 sxt1 r11 = r11 ;;
01C000B00240 41E2 cmp.eq pr9, pr0 = r0, r11
}
{ .mfb
000008000000 41F0 nop.m 0
000008000000 41F1 nop.f 0
008600014009 41F2 (pr9) br.cond.dpnt.many L$663 ;;
}
{ .mmi
010800902240 4200 adds r9 = 1, r9 ;;
008000900440 4201 ld1 r17 = [r9]
000008000000 4202 nop.i 0 ;;
}
{ .mii
000008000000 4210 nop.m 0
0000A1100440 4211 sxt1 r17 = r17 ;;
01C0011001C0 4212 cmp.eq pr7, pr0 = r0, r17
}
{ .mfb
000008000000 4220 nop.m 0
000008000000 4221 nop.f 0
00860000E007 4222 (pr7) br.cond.dpnt.many L$663 ;;
}
{ .mmi
010800902240 4230 adds r9 = 1, r9 ;;
008000900480 4231 ld1 r18 = [r9]
000008000000 4232 nop.i 0 ;;
}
{ .mii
000008000000 4240 nop.m 0
0000A1200480 4241 sxt1 r18 = r18 ;;
01C0012002C0 4242 cmp.eq pr11, pr0 = r0, r18
}
{ .mfb
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 152
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 4250 nop.m 0
000008000000 4251 nop.f 0
00860000800B 4252 (pr11) br.cond.dpnt.many L$663 ;;
}
{ .mmi
010800902240 4260 adds r9 = 1, r9 ;;
0080009004C0 4261 ld1 r19 = [r9]
010840900500 4262 adds r20 = 1024, r9 ;;
}
{ .mii
00CB01400000 4270 lfetch [r20]
0000A13004C0 4271 sxt1 r19 = r19 ;;
01C061300000 4272 cmp.eq pr0, pr12 = r0, r19
}
{ .mfb
000008000000 4280 nop.m 0
000008000000 4281 nop.f 0
0095FFFE400C 4282 (pr12) br.cond.dptk.many L$664 ;;
}
4290 L$663:
{ .mii
012000100800 4290 add r32 = @ltoff($LITERAL$+1936), // r32 = @ltoff($LITERAL$+1936), r1 // 071916
gp
012010000B80 4291 mov out1 = 256 // r46 = 256 // 073305
010802200B40 4292 mov out0 = r34 ;; // r45 = r34
}
{ .mmi
0080C2000800 42A0 ld8 r32 = $LITERAL$ ;; // r32 = [r32] // 071916
01002A012900 42A1 sub r36 = cptr, r32 // r36 = r9, r32 // 073302
000008000000 42A2 nop.i 0
}
{ .mfb
000008000000 42B0 nop.m 0
000008000000 42B1 nop.f 0
00A000001000 42B2 br.call.sptk.many rp = OTS$ZERO ;; // br0 = OTS$ZERO // 073305
}
{ .mmi
010802610BC0 42C0 adds out2 = 8, r38 // r47 = 8, r38 // 073307
00AC42348100 42C1 st2 [r35] = r36, 4 // 073302
01200000A640 42C2 mov ai = 5 ;; // r25 = 5 // 073307
}
{ .mii
010802700C40 42D0 mov out4 = r39 // r49 = r39
012000000C00 42D1 mov out3 = 0 // r48 = 0
010802600B80 42D2 mov out1 = r38 // r46 = r38
}
{ .mmi
012000000B40 42E0 mov out0 = 0 ;; // r45 = 0
00BC8A341F00 42E1 st4 [r35] = r32, -4 // 073303
010802C00040 42E2 mov gp = r44 ;; // r1 = r44 // 073305
}
{ .mfb
000008000000 42F0 nop.m 0
000008000000 42F1 nop.f 0
00A000001000 42F2 br.call.sptk.many rp = SYS$TRNLNM ;; // br0 = SYS$TRNLNM // 073307
}
{ .mii
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 153
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
008082100900 4300 ld4 r36 = [r33] // 073308
012040000940 4301 mov r37 = 1024
00A0308001C0 4302 tbit.z pr7, pr6 = r8, 0 ;;
}
{ .mii
010062548900 4310 and r36 = r36, r37
010802C00040 4311 mov gp = r44 ;; // r1 = r44 // 073307
01C402400240 4312 cmp4.eq pr9, pr0 = r0, r36 ;; // 073308
}
{ .mmi
01C2300001C9 4320 (pr9) cmp.eq.or.andcm pr7, pr6 = r0, r0 ;;
010800000807 4321 (pr7) mov r32 = r0
000008000000 4322 nop.i 0 ;;
}
{ .mmi
010802200806 4330 (pr6) mov r32 = r34 ;;
010802000940 4331 mov cptr = r32 // r37 = r32 // 071916
000008000000 4332 nop.i 0 ;;
}
4340 L$650:
{ .mfb
01C40004A2C0 4340 cmp4.eq pr11, pr0 = cptr, r0 // pr11, pr0 = r37, r0 // 071918
000008000000 4341 nop.f 0
00860006800B 4342 (pr11) br.cond.dpnt.many L$672 ;;
}
{ .mii
0080025000C0 4350 ld1 r3 = [r37] // 071921
0108025022C0 4351 adds r11 = 1, cptr // r11 = 1, r37
012000002640 4352 mov ai = 1 ;; // r25 = 1 // 071922
}
{ .mii
010800B00280 4360 mov r10 = r11 // 071921
01C86035A000 4361 cmp.eq pr0, pr12 = 45, r3
01C868356000 4362 cmp.eq pr0, pr13 = 43, r3
}
{ .mmi
010802500900 4370 mov sptr = cptr ;; // r36 = r37 // 071920
01080250028C 4371 (pr12) mov r10 = cptr // r10 = r37 // 071921
000008000000 4372 nop.i 0 ;;
}
{ .mmi
010800A002CD 4380 (pr13) mov r11 = r10 ;;
010800B00B40 4381 mov out0 = r11 // r45 = r11 // 071922
010800B00940 4382 mov cptr = r11 // r37 = r11 // 071921
}
{ .mfb
000008000000 4390 nop.m 0
000008000000 4391 nop.f 0
00A000001000 4392 br.call.sptk.many rp = DECC$ATOI ;; // br0 = DECC$ATOI // 071922
}
{ .mii
010802C00040 43A0 mov gp = r44 // r1 = r44
010800800800 43A1 mov hh = r8 ;; // r32 = r8
012000100A40 43A2 add r41 = // r41 = @ltoffx(DECC$$GL___CTYPEA), r1 // 071923
@ltoffx(DECC$$GL___CTYPEA), gp
}
{ .mmi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 154
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
012000100A00 43B0 add r40 = // r40 = @ltoffx(DECC$$GA___CTYPET), r1 // 071924
@ltoffx(DECC$$GA___CTYPET), gp ;;
0080C2900A40 43B1 ld8.mov r41 = [r41], DECC$$GL___CTYPEA // 071923
000008000000 43B2 nop.i 0
}
{ .mfi
0080C2800A00 43C0 ld8.mov r40 = [r40], DECC$$GA___CTYPET // 071924
000008000000 43C1 nop.f 0
000008000000 43C2 nop.i 0 ;;
}
43D0 L$673: // 071923
{ .mmi
008002500B40 43D0 ld1 out0 = [r37] // r45 = [r37]
0080829000C0 43D1 ld4 r3 = [r41]
000008000000 43D2 nop.i 0 ;;
}
{ .mib
01C4003001C0 43E0 cmp4.eq pr7, pr0 = r0, r3
0000A2D00280 43E1 sxt1 r10 = out0 // r10 = r45
004000000000 43E2 nop.b 0
}
{ .mfb
0080828002C0 43F0 ld4 r11 = [r40]
000008000000 43F1 nop.f 0
008600018007 43F2 (pr7) br.cond.dpnt.many L$675 ;;
}
{ .mii
000008000000 4400 nop.m 0
0000B0B002C0 4401 sxt4 r11 = r11 ;;
010088B142C0 4402 shladd r11 = r10, 2, r11 ;;
}
{ .mmi
008080B002C0 4410 ld4 r11 = [r11] ;;
010160B082C0 4411 and r11 = 4, r11
000008000000 4412 nop.i 0 ;;
}
{ .mfb
01C440B00000 4420 cmp4.eq pr0, pr8 = r0, r11
000008000000 4421 nop.f 0
008600016008 4422 (pr8) br.cond.dpnt.many L$676 ;;
}
4430 L$678: // 071924
{ .mmi
008002500B40 4430 ld1 out0 = [r37] // r45 = [r37]
0080829000C0 4431 ld4 r3 = [r41]
000008000000 4432 nop.i 0 ;;
}
{ .mib
01C400300240 4440 cmp4.eq pr9, pr0 = r0, r3
0000A2D00280 4441 sxt1 r10 = out0 // r10 = r45
004000000000 4442 nop.b 0
}
{ .mfb
0080828002C0 4450 ld4 r11 = [r40]
000008000000 4451 nop.f 0
008600014009 4452 (pr9) br.cond.dpnt.many L$680 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 155
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mii
000008000000 4460 nop.m 0
0000B0B002C0 4461 sxt4 r11 = r11 ;;
010088B142C0 4462 shladd r11 = r10, 2, r11 ;;
}
{ .mmi
008080B002C0 4470 ld4 r11 = [r11] ;;
010160B082C0 4471 and r11 = 4, r11
000008000000 4472 nop.i 0 ;;
}
{ .mbb
01C450B00000 4480 cmp4.eq pr0, pr10 = r0, r11
00860001600A 4481 (pr10) br.cond.dpnt.many L$681
004000000000 4482 nop.b 0 ;;
}
{ .mfi
010802502940 4490 adds r37 = 1, r37
000008000000 4491 nop.f 0
000008000000 4492 nop.i 0 ;;
}
{ .mfb
000008000000 44A0 nop.m 0
000008000000 44A1 nop.f 0
0091FFFF3000 44A2 br.sptk.many L$678 ;;
}
44B0 L$675: // 071923
{ .mib
012000002640 44B0 mov ai = 1 // r25 = 1
0000B0A00B40 44B1 sxt4 out0 = r10 // r45 = r10
00A000001000 44B2 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C4008001C0 44C0 cmp4.eq pr7, pr0 = r0, r8
010802C00040 44C1 mov gp = r44 // r1 = r44
0095FFFEE007 44C2 (pr7) br.cond.dptk.many L$678 ;;
}
44D0 L$676:
{ .mfi
010802502940 44D0 adds r37 = 1, r37
000008000000 44D1 nop.f 0
000008000000 44D2 nop.i 0 ;;
}
{ .mfb
000008000000 44E0 nop.m 0
000008000000 44E1 nop.f 0
0091FFFDF000 44E2 br.sptk.many L$673 ;;
}
44F0 L$680: // 071924
{ .mib
012000002640 44F0 mov ai = 1 // r25 = 1
0000B0A00B40 44F1 sxt4 out0 = r10 // r45 = r10
00A000001000 44F2 br.call.sptk.many rp = DECC$ISDIGIT ;; // br0 = DECC$ISDIGIT
}
{ .mib
01C430800000 4500 cmp4.eq pr0, pr6 = r0, r8
010802C00040 4501 mov gp = r44 // r1 = r44
008600006006 4502 (pr6) br.cond.dpnt.many L$681 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 156
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfi
010802502940 4510 adds r37 = 1, r37
000008000000 4511 nop.f 0
000008000000 4512 nop.i 0 ;;
}
{ .mfb
000008000000 4520 nop.m 0
000008000000 4521 nop.f 0
0091FFFE3000 4522 br.sptk.many L$678 ;;
}
4530 L$681:
{ .mib
012000002640 4530 mov ai = 1 // r25 = 1 // 071925
010802500B40 4531 mov out0 = cptr // r45 = r37
00A000001000 4532 br.call.sptk.many rp = DECC$ATOI ;; // br0 = DECC$ATOI
}
{ .mii
018400010240 4540 cmp4.lt pr9, pr0 = r8, r0 // 071926
01AC3202E1C0 4541 cmp4.ltu pr7, pr6 = 23, hh // pr7, pr6 = 23, r32
018C020762C0 4542 cmp4.lt pr11, pr0 = 59, hh // pr11, pr0 = 59, r32
}
{ .mmi
010800800A00 4550 mov mm = r8 ;; // r40 = r8 // 071925
01C2300001C9 4551 (pr9) cmp.eq.or.andcm pr7, pr6 = r0, r0 // 071926
010802C00040 4552 mov gp = r44 ;; // r1 = r44 // 071925
}
{ .mfb
01C2000001CB 4560 (pr11) cmp.eq.or.andcm pr7, pr0 = r0, r0 // 071926
000008000000 4561 nop.f 0
008600022007 4562 (pr7) br.cond.dpnt.many L$684 ;;
}
{ .mii
010082040A40 4570 shladd r41 = hh, 1, hh // r41 = r32, 1, r32 // 071928
0120580400C0 4571 mov r3 = 1440 ;; // 071929
01008A952A40 4572 shladd r41 = r41, 2, r41 ;; // 071928
}
{ .mmi
010088852A40 4580 shladd offset = r41, 2, r8 ;; // r41 = r41, 2, r8
01A402906340 4581 cmp4.ltu pr13, pr0 = r3, offset // pr13, pr0 = r3, r41 // 071929
000008000000 4582 nop.i 0
}
{ .mfb
000008000000 4590 nop.m 0
000008000000 4591 nop.f 0
00860001400D 4592 (pr13) br.cond.dpnt.many L$686 ;;
}
{ .mii
008002400240 45A0 ld1 r9 = [r36] // 071931
01002A900280 45A1 sub r10 = r0, offset // r10 = r0, r41
012000100440 45A2 add r17 = @ltoffx(TimeUtcDelta64), // r17 = @ltoffx(TimeUtcDelta64), r1 // 071932
gp ;;
}
{ .mmi
01C80095A3C0 45B0 cmp.eq pr15, pr0 = 45, r9 // 071931
0080C1100440 45B1 ld8.mov r17 = [r17], TimeUtcDelta64 // 071932
000008000000 45B2 nop.i 0 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 157
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mmi
010800A00A4F 45C0 (pr15) mov offset = r10 ;; // r41 = r10 // 071931
000008000000 45C1 nop.m 0
0000B29002C0 45C2 sxt4 r11 = offset ;; // r11 = r41 // 071932
}
{ .mmi
010080B162C0 45D0 shladd r11 = r11, 1, r11 ;;
010088B162C0 45D1 shladd r11 = r11, 2, r11
000008000000 45D2 nop.i 0 ;;
}
{ .mmi
010088B162C0 45E0 shladd r11 = r11, 2, r11 ;;
010088B162C0 45E1 shladd r11 = r11, 2, r11
000008000000 45E2 nop.i 0 ;;
}
{ .mmi
010088B162C0 45F0 shladd r11 = r11, 2, r11 ;;
010088B162C0 45F1 shladd r11 = r11, 2, r11
000008000000 45F2 nop.i 0 ;;
}
{ .mmi
010088B162C0 4600 shladd r11 = r11, 2, r11 ;;
010088B162C0 4601 shladd r11 = r11, 2, r11
000008000000 4602 nop.i 0 ;;
}
{ .mmi
010088B162C0 4610 shladd r11 = r11, 2, r11 ;;
000008000000 4611 nop.m 0
00A7B36162C0 4612 shl r11 = r11, 9 ;;
}
{ .mfb
008CC1116000 4620 st8 TimeUtcDelta64 = r11 // [r17] = r11
000008000000 4621 nop.f 0
008000005000 4622 br.sptk.many L$687 ;; // 071934
}
4630 L$686:
{ .mfi
010800000940 4630 mov cptr = r0 // r37 = r0 // 071935
000008000000 4631 nop.f 0
000008000000 4632 nop.i 0
}
4640 L$687:
{ .mii
008002400480 4640 ld1 r18 = [r36] // 071936
0120001004C0 4641 add r19 = @ltoff($LITERAL$+1928), // r19 = @ltoff($LITERAL$+1928), r1
gp ;;
01C80125A200 4642 cmp.eq pr8, pr0 = 45, r18
}
{ .mii
0080C1300500 4650 ld8 r20 = $LITERAL$ // r20 = [r19]
01C849256000 4651 cmp.eq pr0, pr9 = 43, r18 ;;
010802400508 4652 (pr8) mov r20 = sptr ;; // r20 = r36
}
{ .mfb
010801400909 4660 (pr9) mov sptr = r20 // r36 = r20
000008000000 4661 nop.f 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 158
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
008000005000 4662 br.sptk.many L$672 ;;
}
4670 L$684: // 071938
{ .mfi
010800000940 4670 mov cptr = r0 // r37 = r0 // 071939
000008000000 4671 nop.f 0
000008000000 4672 nop.i 0 ;;
}
4680 L$672: // 071940
{ .mfb
01C45804A000 4680 cmp4.eq pr0, pr11 = cptr, r0 // pr0, pr11 = r37, r0 // 071942
000008000000 4681 nop.f 0
00860003600B 4682 (pr11) br.cond.dpnt.many L$688 ;;
}
{ .mib
012000002640 4690 mov ai = 1 // r25 = 1 // 071945
010800C60B40 4691 adds out0 = 48, sp // r45 = 48, r12
00A000001000 4692 br.call.sptk.many rp = SYS$GETUTC ;; // br0 = SYS$GETUTC
}
{ .mii
012000004640 46A0 mov ai = 2 // r25 = 2 // 071946
010800C60B80 46A1 adds out1 = 48, sp // r46 = 48, r12
010800C20B40 46A2 adds out0 = 16, sp // r45 = 16, r12
}
{ .mfb
010802C00040 46B0 mov gp = r44 // r1 = r44 // 071945
000008000000 46B1 nop.f 0
004000000000 46B2 nop.b 0 ;;
}
{ .mfb
000008000000 46C0 nop.m 0
000008000000 46C1 nop.f 0
00A000001000 46C2 br.call.sptk.many rp = SYS$NUMUTC ;; // br0 = SYS$NUMUTC // 071946
}
{ .mii
010800C50940 46D0 adds r37 = 40, sp // r37 = 40, r12 // 071948
010802C00040 46D1 mov gp = r44 ;; // r1 = r44 // 071946
012000100900 46D2 add r36 = @ltoffx(TimeUtcDelta64), // r36 = @ltoffx(TimeUtcDelta64), r1 // 071949
gp
}
{ .mmi
008042500A40 46E0 ld2 offset = [r37] ;; // r41 = [r37] // 071948
010082952800 46E1 shladd r32 = offset, 1, offset // r32 = r41, 1, r41 // 071949
000008000000 46E2 nop.i 0
}
{ .mmi
0080C2400900 46F0 ld8.mov r36 = [r36], TimeUtcDelta64 ;;
01008A040800 46F1 shladd r32 = r32, 2, r32
000008000000 46F2 nop.i 0 ;;
}
{ .mmi
01008A040800 4700 shladd r32 = r32, 2, r32 ;;
01008A040800 4701 shladd r32 = r32, 2, r32
000008000000 4702 nop.i 0 ;;
}
{ .mmi
01008A040800 4710 shladd r32 = r32, 2, r32 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 159
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01008A040800 4711 shladd r32 = r32, 2, r32
000008000000 4712 nop.i 0 ;;
}
{ .mmi
01008A040800 4720 shladd r32 = r32, 2, r32 ;;
01008A040800 4721 shladd r32 = r32, 2, r32
000008000000 4722 nop.i 0 ;;
}
{ .mmi
01008A040800 4730 shladd r32 = r32, 2, r32 ;;
000008000000 4731 nop.m 0
00A7B3640800 4732 shl r32 = r32, 9 ;;
}
{ .mib
008CC2440000 4740 st8 [r36] = r32
01C032000000 4741 cmp.eq pr0, pr6 = r0, r32 // 071950
008600004006 4742 (pr6) br.cond.dpnt.many L$690 ;;
}
{ .mmi
0137978C00C0 4750 addl r3 = -100000, r0 ;;
008CC2406000 4751 st8 [r36] = r3
000008000000 4752 nop.i 0
}
4760 L$690:
{ .mfb
018400052200 4760 cmp4.lt pr8, pr0 = offset, r0 // pr8, pr0 = r41, r0 // 071951
000008000000 4761 nop.f 0
008600004008 4762 (pr8) br.cond.dpnt.many L$692 ;;
}
{ .mfb
012000100900 4770 add r36 = @ltoff($LITERAL$+1928), // r36 = @ltoff($LITERAL$+1928), r1 // 071952
gp
000008000000 4771 nop.f 0
008000005000 4772 br.sptk.many L$1129 ;;
}
4780 L$692: // 071953
{ .mii
012000100900 4780 add r36 = @ltoff($LITERAL$+1920), // r36 = @ltoff($LITERAL$+1920), r1 // 071955
gp
01002A900A40 4781 sub offset = r0, offset // r41 = r0, r41 // 071956
000008000000 4782 nop.i 0
}
4790 L$1129: // 071955
{ .mlx
01200004A2C0 4790 mov r11 = 37 // 071958
000000000222 4791 movl r10 = 2290649225 ;;
0191140245
}
{ .mib
00C708014200 47A0 setf.sig f8 = r10
0000B2900200 47A1 sxt4 r8 = offset // r8 = r41
004000000000 47A2 nop.b 0
}
{ .mmi
0080C2400900 47B0 ld8 r36 = $LITERAL$ ;; // r36 = [r36] // 071955
018000010280 47B1 cmp.lt pr10, pr0 = r8, r0 // 071958
010800800240 47B2 mov r9 = r8
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 160
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mmi
0180000102C0 47C0 cmp.lt pr11, pr0 = r8, r0 ;;
01002880024A 47C1 (pr10) sub r9 = r0, r8
000008000000 47C2 nop.i 0 ;;
}
{ .mfi
00C7080121C0 47D0 setf.sig f7 = r9
000008000000 47D1 nop.f 0
000008000000 47D2 nop.i 0 ;;
}
{ .mfi
000008000000 47E0 nop.m 0
01D040700180 47E1 xma.l f6 = f7, f8, f0
000008000000 47E2 nop.i 0 ;;
}
{ .mmi
00870800C240 47F0 getf.sig r9 = f6 ;;
000008000000 47F1 nop.m 0
00F200916480 47F2 shr.u r18 = r9, r11 ;;
}
{ .mmi
010029200440 4800 sub r17 = r0, r18 ;;
01080110048B 4801 (pr11) mov r18 = r17
000008000000 4802 nop.i 0 ;;
}
{ .mii
0100812244C0 4810 shladd r19 = r18, 1, r18 // 071959
010801200800 4811 mov hh = r18 ;; // r32 = r18 // 071958
0100893264C0 4812 shladd r19 = r19, 2, r19 ;; // 071959
}
{ .mmi
0100880264C0 4820 shladd r19 = r19, 2, r0 ;;
010029352A00 4821 sub mm = offset, r19 // r40 = r41, r19
000008000000 4822 nop.i 0
}
4830 L$688: // 071960
{ .mmi
012058040500 4830 mov r20 = 1440 ;; // 071962
018462928000 4831 cmp4.lt pr0, pr12 = r20, offset // pr0, pr12 = r20, r41
000008000000 4832 nop.i 0
}
{ .mfb
000008000000 4840 nop.m 0
000008000000 4841 nop.f 0
00860007800C 4842 (pr12) br.cond.dpnt.many L$695 ;;
}
{ .mii
012000100540 4850 add r21 = @ltoff($LITERAL$+1888), // r21 = @ltoff($LITERAL$+1888), r1 // 071965
gp
012000100580 4851 add r22 = @ltoff($LITERAL$+1888), // r22 = @ltoff($LITERAL$+1888), r1
gp
000008000000 4852 nop.i 0 ;;
}
{ .mmi
0080C1500540 4860 ld8 r21 = $LITERAL$ // r21 = [r21]
0080C1600580 4861 ld8 r22 = $LITERAL$ // r22 = [r22]
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 161
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 4862 nop.i 0 ;;
}
{ .mmi
008001500540 4870 ld1 r21 = [r21] ;; // 073301
000008000000 4871 nop.m 0
0000A1500540 4872 sxt1 r21 = r21 ;;
}
{ .mfb
01C0015003C0 4880 cmp.eq pr15, pr0 = r0, r21
000008000000 4881 nop.f 0
00860002000F 4882 (pr15) br.cond.dpnt.many L$698 ;;
}
4890 L$699:
{ .mmi
010801602580 4890 adds r22 = 1, r22 ;;
0080016005C0 4891 ld1 r23 = [r22]
000008000000 4892 nop.i 0 ;;
}
{ .mii
000008000000 48A0 nop.m 0
0000A17005C0 48A1 sxt1 r23 = r23 ;;
01C0017001C0 48A2 cmp.eq pr7, pr0 = r0, r23
}
{ .mfb
000008000000 48B0 nop.m 0
000008000000 48B1 nop.f 0
00860001A007 48B2 (pr7) br.cond.dpnt.many L$698 ;;
}
{ .mmi
010801602580 48C0 adds r22 = 1, r22 ;;
008001600600 48C1 ld1 r24 = [r22]
000008000000 48C2 nop.i 0 ;;
}
{ .mii
000008000000 48D0 nop.m 0
0000A1800600 48D1 sxt1 r24 = r24 ;;
01C001800240 48D2 cmp.eq pr9, pr0 = r0, r24
}
{ .mfb
000008000000 48E0 nop.m 0
000008000000 48E1 nop.f 0
008600014009 48E2 (pr9) br.cond.dpnt.many L$698 ;;
}
{ .mmi
010801602580 48F0 adds r22 = 1, r22 ;;
008001600640 48F1 ld1 ai = [r22] // r25 = [r22]
000008000000 48F2 nop.i 0 ;;
}
{ .mii
000008000000 4900 nop.m 0
0000A1900640 4901 sxt1 ai = ai ;; // r25 = r25
01C0019002C0 4902 cmp.eq pr11, pr0 = r0, ai // pr11, pr0 = r0, r25
}
{ .mfb
000008000000 4910 nop.m 0
000008000000 4911 nop.f 0
00860000E00B 4912 (pr11) br.cond.dpnt.many L$698 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 162
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mmi
010801602580 4920 adds r22 = 1, r22 ;;
008001600680 4921 ld1 r26 = [r22]
000008000000 4922 nop.i 0 ;;
}
{ .mii
000008000000 4930 nop.m 0
0000A1A00680 4931 sxt1 r26 = r26 ;;
01C001A00340 4932 cmp.eq pr13, pr0 = r0, r26
}
{ .mfb
000008000000 4940 nop.m 0
000008000000 4941 nop.f 0
00860000800D 4942 (pr13) br.cond.dpnt.many L$698 ;;
}
{ .mmi
010801602580 4950 adds r22 = 1, r22 ;;
0080016006C0 4951 ld1 r27 = [r22]
010841600700 4952 adds r28 = 1024, r22 ;;
}
{ .mii
00CB01C00000 4960 lfetch [r28]
0000A1B006C0 4961 sxt1 r27 = r27 ;;
01C071B00000 4962 cmp.eq pr0, pr14 = r0, r27
}
{ .mfb
000008000000 4970 nop.m 0
000008000000 4971 nop.f 0
0095FFFE400E 4972 (pr14) br.cond.dptk.many L$699 ;;
}
4980 L$698:
{ .mii
012000100940 4980 add r37 = @ltoff($LITERAL$+1888), // r37 = @ltoff($LITERAL$+1888), r1 // 071965
gp
012010000B80 4981 mov out1 = 256 // r46 = 256 // 073305
010802200B40 4982 mov out0 = r34 ;; // r45 = r34
}
{ .mmi
0080C2500940 4990 ld8 r37 = $LITERAL$ ;; // r37 = [r37] // 071965
01002A52CA40 4991 sub r41 = cptr, r37 // r41 = r22, r37 // 073302
000008000000 4992 nop.i 0
}
{ .mfb
000008000000 49A0 nop.m 0
000008000000 49A1 nop.f 0
00A000001000 49A2 br.call.sptk.many rp = OTS$ZERO ;; // br0 = OTS$ZERO // 073305
}
{ .mmi
010802610BC0 49B0 adds out2 = 8, r38 // r47 = 8, r38 // 073307
00AC42352100 49B1 st2 [r35] = r41, 4 // 073302
01200000A640 49B2 mov ai = 5 ;; // r25 = 5 // 073307
}
{ .mii
010802700C40 49C0 mov out4 = r39 // r49 = r39
012000000C00 49C1 mov out3 = 0 // r48 = 0
010802600B80 49C2 mov out1 = r38 // r46 = r38
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 163
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mmi
012000000B40 49D0 mov out0 = 0 ;; // r45 = 0
008C8234A000 49D1 st4 [r35] = r37 // 073303
010802C00040 49D2 mov gp = r44 ;; // r1 = r44 // 073305
}
{ .mfb
000008000000 49E0 nop.m 0
000008000000 49E1 nop.f 0
00A000001000 49E2 br.call.sptk.many rp = SYS$TRNLNM ;; // br0 = SYS$TRNLNM // 073307
}
{ .mii
008082100840 49F0 ld4 r33 = [r33] // 073308
012040000A40 49F1 mov r41 = 1024
00A0308001C0 49F2 tbit.z pr7, pr6 = r8, 0 ;;
}
{ .mii
010062942840 4A00 and r33 = r33, r41
010802C00040 4A01 mov gp = r44 ;; // r1 = r44 // 073307
01C402100240 4A02 cmp4.eq pr9, pr0 = r0, r33 ;; // 073308
}
{ .mmi
01C2300001C9 4A10 (pr9) cmp.eq.or.andcm pr7, pr6 = r0, r0 ;;
010800000B47 4A11 (pr7) mov out0 = r0 // r45 = r0
000008000000 4A12 nop.i 0 ;;
}
{ .mmi
010802200B46 4A20 (pr6) mov out0 = r34 ;; // r45 = r34
01C40005A2C0 4A21 cmp4.eq pr11, pr0 = out0, r0 // pr11, pr0 = r45, r0 // 071965
000008000000 4A22 nop.i 0
}
{ .mfb
000008000000 4A30 nop.m 0
000008000000 4A31 nop.f 0
00860003A00B 4A32 (pr11) br.cond.dpnt.many L$695 ;;
}
{ .mfb
012000002640 4A40 mov ai = 1 // r25 = 1 // 071967
000008000000 4A41 nop.f 0
00A000001000 4A42 br.call.sptk.many rp = DECC$ATOI ;; // br0 = DECC$ATOI
}
{ .mib
01200004A9C0 4A50 mov r39 = 37
0000B0800200 4A51 sxt4 r8 = r8
004000000000 4A52 nop.b 0
}
{ .mlx
010802C00040 4A60 mov gp = r44 // r1 = r44
000000000222 4A61 movl r38 = 2290649225 ;;
0191140253
}
{ .mii
018000010180 4A70 cmp.lt pr6, pr0 = r8, r0
010800800940 4A71 mov r37 = r8
0180000101C0 4A72 cmp.lt pr7, pr0 = r8, r0
}
{ .mmi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 164
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00C70804C200 4A80 setf.sig f8 = r38 ;;
010028800946 4A81 (pr6) sub r37 = r0, r8
012000100800 4A82 add r32 = @ltoffx(TimeUtcDelta64), // r32 = @ltoffx(TimeUtcDelta64), r1 // 071970
gp ;;
}
{ .mmi
00C70804A1C0 4A90 setf.sig f7 = r37 // 071967
0080C2000800 4A91 ld8.mov r32 = [r32], TimeUtcDelta64 // 071970
000008000000 4A92 nop.i 0 ;;
}
{ .mfi
000008000000 4AA0 nop.m 0
01D040700180 4AA1 xma.l f6 = f7, f8, f0 // 071967
000008000000 4AA2 nop.i 0 ;;
}
{ .mmi
00870800C940 4AB0 getf.sig r37 = f6 ;;
000008000000 4AB1 nop.m 0
00F20254E840 4AB2 shr.u r33 = r37, r39 ;;
}
{ .mmi
01002A100A40 4AC0 sub r41 = r0, r33 ;;
010802900847 4AC1 (pr7) mov r33 = r41
000008000000 4AC2 nop.i 0 ;;
}
{ .mii
000008000000 4AD0 nop.m 0
0000B2100880 4AD1 sxt4 r34 = offset ;; // r34 = r33 // 071970
010082244880 4AD2 shladd r34 = r34, 1, r34 ;;
}
{ .mmi
01008A244880 4AE0 shladd r34 = r34, 2, r34 ;;
01008A244880 4AE1 shladd r34 = r34, 2, r34
000008000000 4AE2 nop.i 0 ;;
}
{ .mmi
01008A244880 4AF0 shladd r34 = r34, 2, r34 ;;
01008A244880 4AF1 shladd r34 = r34, 2, r34
000008000000 4AF2 nop.i 0 ;;
}
{ .mmi
01008A244880 4B00 shladd r34 = r34, 2, r34 ;;
01008A244880 4B01 shladd r34 = r34, 2, r34
000008000000 4B02 nop.i 0 ;;
}
{ .mmi
01008A244880 4B10 shladd r34 = r34, 2, r34 ;;
01008A244880 4B11 shladd r34 = r34, 2, r34
000008000000 4B12 nop.i 0 ;;
}
{ .mii
000008000000 4B20 nop.m 0
00A7B3644880 4B21 shl r34 = r34, 9 ;;
01C042200000 4B22 cmp.eq pr0, pr8 = r0, r34 // 071971
}
{ .mfb
008CC2044000 4B30 st8 [r32] = r34 // 071970
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 165
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 4B31 nop.f 0
008600004008 4B32 (pr8) br.cond.dpnt.many L$707 ;; // 071971
}
{ .mmi
0137978C0A00 4B40 addl r40 = -100000, r0 ;;
008CC2050000 4B41 st8 [r32] = r40
000008000000 4B42 nop.i 0
}
4B50 L$707:
{ .mfb
018400042280 4B50 cmp4.lt pr10, pr0 = offset, r0 // pr10, pr0 = r33, r0 // 071972
000008000000 4B51 nop.f 0
00860000400A 4B52 (pr10) br.cond.dpnt.many L$709 ;;
}
{ .mfb
012000100900 4B60 add r36 = @ltoff($LITERAL$+1928), // r36 = @ltoff($LITERAL$+1928), r1 // 071973
gp
000008000000 4B61 nop.f 0
008000005000 4B62 br.sptk.many L$1130 ;;
}
4B70 L$709: // 071974
{ .mii
012000100900 4B70 add r36 = @ltoff($LITERAL$+1920), // r36 = @ltoff($LITERAL$+1920), r1 // 071976
gp
01002A100840 4B71 sub offset = r0, offset // r33 = r0, r33 // 071977
000008000000 4B72 nop.i 0
}
4B80 L$1130: // 071976
{ .mmi
00C70804C2C0 4B80 setf.sig f11 = r38 ;; // 071979
0080C2400900 4B81 ld8 r36 = $LITERAL$ // r36 = [r36] // 071976
0000B21008C0 4B82 sxt4 r35 = offset ;; // r35 = r33 // 071979
}
{ .mii
018000046300 4B90 cmp.lt pr12, pr0 = r35, r0
0108023000C0 4B91 mov r3 = r35
018000046340 4B92 cmp.lt pr13, pr0 = r35, r0 ;;
}
{ .mmi
01002A3000CC 4BA0 (pr12) sub r3 = r0, r35 ;;
00C708006280 4BA1 setf.sig f10 = r3
000008000000 4BA2 nop.i 0 ;;
}
{ .mfi
000008000000 4BB0 nop.m 0
01D058A00240 4BB1 xma.l f9 = f10, f11, f0
000008000000 4BB2 nop.i 0 ;;
}
{ .mmi
0087080120C0 4BC0 getf.sig r3 = f9 ;;
000008000000 4BC1 nop.m 0
00F20034E0C0 4BC2 shr.u r3 = r3, r39 ;;
}
{ .mii
010800300280 4BD0 mov r10 = r3
010028300240 4BD1 sub r9 = r0, r3 ;;
01080090028D 4BD2 (pr13) mov r10 = r9 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 166
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mii
010080A142C0 4BE0 shladd r11 = r10, 1, r10 // 071980
010800A00800 4BE1 mov hh = r10 ;; // r32 = r10 // 071979
010088B162C0 4BE2 shladd r11 = r11, 2, r11 ;; // 071980
}
{ .mmi
0100880162C0 4BF0 shladd r11 = r11, 2, r0 ;;
010028B42A00 4BF1 sub mm = offset, r11 // r40 = r33, r11
000008000000 4BF2 nop.i 0
}
4C00 L$695: // 071983
{ .mii
008002400440 4C00 ld1 r17 = [r36] // 071985
012000100480 4C01 add r18 = @ltoff($LITERAL$+1864), // r18 = @ltoff($LITERAL$+1864), r1
gp ;;
012000100B40 4C02 add out0 = @ltoffx(TimeGmtString), // r45 = @ltoffx(TimeGmtString), r1
gp
}
{ .mii
0080C1200B80 4C10 ld8 out1 = $LITERAL$ // r46 = [r18]
01200000A640 4C11 mov ai = 5 // r25 = 5
0000B2800C40 4C12 sxt4 out4 = mm ;; // r49 = r40
}
{ .mii
0080C2D00B40 4C20 ld8.mov out0 = [r45], TimeGmtString
0000B2000C00 4C21 sxt4 out3 = hh // r48 = r32
0000A1100BC0 4C22 sxt1 out2 = r17 // r47 = r17
}
{ .mfb
000008000000 4C30 nop.m 0
000008000000 4C31 nop.f 0
00A000001000 4C32 br.call.sptk.many rp = DECC$TXSPRINTF ;; // br0 = DECC$TXSPRINTF
}
{ .mmi
010802C00040 4C40 mov gp = r44 // r1 = r44
008002400900 4C41 ld1 r36 = [r36] // 071986
01200000A640 4C42 mov ai = 5 ;; // r25 = 5
}
{ .mii
012000100940 4C50 add r37 = @ltoff($LITERAL$+1840), // r37 = @ltoff($LITERAL$+1840), r1
gp
012000100B40 4C51 add out0 = @ltoffx(TimeZoneString), // r45 = @ltoffx(TimeZoneString), r1
gp
0000B2800C40 4C52 sxt4 out4 = mm ;; // r49 = r40
}
{ .mmi
0080C2500B80 4C60 ld8 out1 = $LITERAL$ // r46 = [r37]
0080C2D00B40 4C61 ld8.mov out0 = [r45], TimeZoneString
0000B2000C00 4C62 sxt4 out3 = hh ;; // r48 = r32
}
{ .mib
000008000000 4C70 nop.m 0
0000A2400BC0 4C71 sxt1 out2 = r36 // r47 = r36
00A000001000 4C72 br.call.sptk.many rp = DECC$TXSPRINTF ;; // br0 = DECC$TXSPRINTF
}
{ .mii
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 167
TimeSetHttpdUTC 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010802C00040 4C80 mov gp = r44 // r1 = r44
000154056000 4C81 mov.i rspfs = r43 ;; // 071987
000E00154000 4C82 mov rp = r42 // br0 = r42
}
{ .mfb
010800C60300 4C90 adds sp = 48, sp // r12 = 48, r12
000008000000 4C91 nop.f 0
000108001100 4C92 br.ret.sptk.many rp ;; // br0
}
.endp TimeSetHttpdUTC
Routine Size: 3936 bytes, Routine Base: $CODE$ + 3D40
.proc TimeAdjustToGMT
.align 32
.global TimeAdjustToGMT
TimeAdjustToGMT: // 071997
{ .mii
002C00204840 4CA0 alloc r33 = rspfs, 1, 1, 0, 0
012000100240 4CA1 add r9 = @ltoffx(TimeUtcDelta64), // r9 = @ltoffx(TimeUtcDelta64), r1 // 072004
gp
000008000000 4CA2 nop.i 0
}
{ .mmi
0080C2000200 4CB0 ld8 r8 = [in0] ;; // r8 = [r32]
0080C0900240 4CB1 ld8.mov r9 = [r9], TimeUtcDelta64
000008000000 4CB2 nop.i 0 ;;
}
{ .mmi
0080C0900240 4CC0 ld8 r9 = TimeUtcDelta64 ;; // r9 = [r9]
010028910200 4CC1 sub r8 = r8, r9
000008000000 4CC2 nop.i 0 ;;
}
{ .mfb
008CC2010000 4CD0 st8 [in0] = r8 // [r32] = r8
000008000000 4CD1 nop.f 0
000108001100 4CD2 br.ret.sptk.many rp ;; // br0 // 072005
}
.endp TimeAdjustToGMT
Routine Size: 64 bytes, Routine Base: $CODE$ + 4CA0
.proc TimeAdjustFromGMT
.align 32
.global TimeAdjustFromGMT
TimeAdjustFromGMT: // 072013
{ .mii
002C00204840 4CE0 alloc r33 = rspfs, 1, 1, 0, 0
012000100240 4CE1 add r9 = @ltoffx(TimeUtcDelta64), // r9 = @ltoffx(TimeUtcDelta64), r1 // 072020
gp
000008000000 4CE2 nop.i 0
}
{ .mmi
0080C2000200 4CF0 ld8 r8 = [in0] ;; // r8 = [r32]
0080C0900240 4CF1 ld8.mov r9 = [r9], TimeUtcDelta64
000008000000 4CF2 nop.i 0 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 168
TimeAdjustFromGMT 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
0080C0900240 4D00 ld8 r9 = TimeUtcDelta64 ;; // r9 = [r9]
010000910200 4D01 add r8 = r8, r9
000008000000 4D02 nop.i 0 ;;
}
{ .mfb
008CC2010000 4D10 st8 [in0] = r8 // [r32] = r8
000008000000 4D11 nop.f 0
000108001100 4D12 br.ret.sptk.many rp ;; // br0 // 072021
}
.endp TimeAdjustFromGMT
Routine Size: 64 bytes, Routine Base: $CODE$ + 4CE0
.proc DigitDayTime
.align 32
.global DigitDayTime
DigitDayTime: // 072027
{ .mii
002C00A22A00 4D20 alloc r40 = rspfs, 1, 9, 7, 0
012000040380 4D21 mov r14 = 32
010800C00080 4D22 mov r2 = sp // r2 = r12
}
{ .mmi
01C438040000 4D30 cmp4.eq pr0, pr7 = Time64Ptr, r0 ;; // pr0, pr7 = r32, r0 // 072042
010028E183C0 4D31 sub r15 = sp, r14 // r15 = r12, r14 // 072027
0001880009C0 4D32 mov r39 = rp ;; // r39 = br0
}
{ .mii
0080C0F00380 4D40 ld8 r14 = [r15]
010800F00300 4D41 mov sp = r15 // r12 = r15
010800100A40 4D42 mov r41 = gp // r41 = r1
}
{ .mfb
000008000000 4D50 nop.m 0
000008000000 4D51 nop.f 0
008600008007 4D52 (pr7) br.cond.dpnt.many L$629 ;; // 072042
}
{ .mii
012000002640 4D60 mov ai = 1 // r25 = 1
010800F40A80 4D61 adds out0 = 32, r15 // r42 = 32, r15
010800F40800 4D62 adds in0 = 32, r15 // r32 = 32, r15
}
{ .mfb
000008000000 4D70 nop.m 0
000008000000 4D71 nop.f 0
00A000001000 4D72 br.call.sptk.many rp = SYS$GETTIM ;; // br0 = SYS$GETTIM
}
{ .mfi
010802900040 4D80 mov gp = r41 // r1 = r41
000008000000 4D81 nop.f 0
000008000000 4D82 nop.i 0
}
4D90 L$629:
{ .mii
012000004640 4D90 mov ai = 2 // r25 = 2 // 072043
010802000AC0 4D91 mov out1 = Time64Ptr // r43 = r32
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 169
DigitDayTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010800C20A80 4D92 adds out0 = 16, sp ;; // r42 = 16, r12
}
{ .mfb
000008000000 4DA0 nop.m 0
000008000000 4DA1 nop.f 0
00A000001000 4DA2 br.call.sptk.many rp = SYS$NUMTIM ;; // br0 = SYS$NUMTIM
}
{ .mib
010802900040 4DB0 mov gp = r41 // r1 = r41
00A0308001C0 4DB1 tbit.z pr7, pr6 = r8, 0
008600006006 4DB2 (pr6) br.cond.dpnt.many L$631 ;;
}
{ .mmi
012000100200 4DC0 add r8 = @ltoff($LITERAL$+1824), // r8 = @ltoff($LITERAL$+1824), r1 // 072044
gp ;;
0080C0800200 4DC1 ld8 r8 = $LITERAL$ // r8 = [r8]
000008000000 4DC2 nop.i 0
}
{ .mfb
000008000000 4DD0 nop.m 0
000008000000 4DD1 nop.f 0
008000015000 4DD2 br.sptk.many L$633 ;;
}
4DE0 L$631:
{ .mii
010800C30900 4DE0 adds r36 = 24, sp // r36 = 24, r12 // 072045
010800C348C0 4DE1 adds r35 = 26, sp // r35 = 26, r12
010800C2C880 4DE2 adds r34 = 22, sp // r34 = 22, r12
}
{ .mmi
010800C28840 4DF0 adds r33 = 20, sp ;; // r33 = 20, r12
012000100A80 4DF1 add out0 = @gprel(TimeFaoDsc), gp // r42 = @gprel(TimeFaoDsc), r1
01200000E640 4DF2 mov ai = 7 // r25 = 7
}
{ .mii
008042400BC0 4E00 ld2 out5 = [r36] // r47 = [r36]
012000000AC0 4E01 mov out1 = 0 ;; // r43 = 0
010802A10B00 4E02 adds out2 = 8, out0 // r44 = 8, r42
}
{ .mmi
008042300C00 4E10 ld2 out6 = [r35] // r48 = [r35]
008042200B80 4E11 ld2 out4 = [r34] // r46 = [r34]
000008000000 4E12 nop.i 0 ;;
}
{ .mfb
008042100B40 4E20 ld2 out3 = [r33] // r45 = [r33]
000008000000 4E21 nop.f 0
00A000001000 4E22 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO
}
{ .mib
010802900040 4E30 mov gp = r41 // r1 = r41
00A0308001C0 4E31 tbit.z pr7, pr6 = r8, 0
008600006006 4E32 (pr6) br.cond.dpnt.many L$634 ;;
}
{ .mmi
012000100200 4E40 add r8 = @ltoff($LITERAL$+1824), // r8 = @ltoff($LITERAL$+1824), r1 // 072047
gp ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 170
DigitDayTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0080C0800200 4E41 ld8 r8 = $LITERAL$ // r8 = [r8]
000008000000 4E42 nop.i 0
}
{ .mfb
000008000000 4E50 nop.m 0
000008000000 4E51 nop.f 0
008000005000 4E52 br.sptk.many L$633 ;;
}
4E60 L$634:
{ .mmi
012000100980 4E60 add r38 = @ltoffx(TimeString), gp ;; // r38 = @ltoffx(TimeString), r1 // 072048
0080C2600200 4E61 ld8.mov r8 = [r38], TimeString
000008000000 4E62 nop.i 0 ;;
}
4E70 L$633:
{ .mii
000008000000 4E70 nop.m 0
000154050000 4E71 mov.i rspfs = r40 ;;
000E0014E000 4E72 mov rp = r39 // br0 = r39
}
{ .mfb
010800C40300 4E80 adds sp = 32, sp // r12 = 32, r12
000008000000 4E81 nop.f 0
000108001100 4E82 br.ret.sptk.many rp ;; // br0
}
.endp DigitDayTime
Routine Size: 368 bytes, Routine Base: $CODE$ + 4D20
.proc DayOfWeekName
.align 32
.global DayOfWeekName
DayOfWeekName: // 072057
{ .mii
002C00712940 4E90 alloc r37 = rspfs, 1, 6, 2, 0
012000020380 4E91 mov r14 = 16
010800C00080 4E92 mov r2 = sp // r2 = r12
}
{ .mmi
01C438040000 4EA0 cmp4.eq pr0, pr7 = Time64Ptr, r0 ;; // pr0, pr7 = r32, r0 // 072068
010028E183C0 4EA1 sub r15 = sp, r14 // r15 = r12, r14 // 072057
000188000900 4EA2 mov r36 = rp ;; // r36 = br0
}
{ .mii
0080C0F00380 4EB0 ld8 r14 = [r15]
010800F00300 4EB1 mov sp = r15 // r12 = r15
010800100980 4EB2 mov r38 = gp // r38 = r1
}
{ .mfb
000008000000 4EC0 nop.m 0
000008000000 4EC1 nop.f 0
008600008007 4EC2 (pr7) br.cond.dpnt.many L$624 ;; // 072068
}
{ .mii
012000002640 4ED0 mov ai = 1 // r25 = 1
010800F209C0 4ED1 adds out0 = 16, r15 // r39 = 16, r15
010800F20800 4ED2 adds in0 = 16, r15 // r32 = 16, r15
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 171
DayOfWeekName 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfb
000008000000 4EE0 nop.m 0
000008000000 4EE1 nop.f 0
00A000001000 4EE2 br.call.sptk.many rp = SYS$GETTIM ;; // br0 = SYS$GETTIM
}
{ .mfi
010802600040 4EF0 mov gp = r38 // r1 = r38
000008000000 4EF1 nop.f 0
000008000000 4EF2 nop.i 0
}
4F00 L$624:
{ .mii
012000004640 4F00 mov ai = 2 // r25 = 2 // 072069
010800C30A00 4F01 adds out1 = 24, sp // r40 = 24, r12
0108020009C0 4F02 mov out0 = Time64Ptr ;; // r39 = r32
}
{ .mfb
000008000000 4F10 nop.m 0
000008000000 4F11 nop.f 0
00A000001000 4F12 br.call.sptk.many rp = LIB$DAY_OF_WEEK ;; // br0 = LIB$DAY_OF_WEEK
}
{ .mii
010800C30880 4F20 adds r34 = 24, sp // r34 = 24, r12
00A0308001C0 4F21 tbit.z pr7, pr6 = r8, 0
010802600040 4F22 mov gp = r38 ;; // r1 = r38
}
{ .mii
008082200840 4F30 ld4 DayOfWeek = [r34] // r33 = [r34]
0120001008C0 4F31 add r35 = @ltoffx(DayName), gp ;; // r35 = @ltoffx(DayName), r1 // 072071
010800000847 4F32 (pr7) mov DayOfWeek = r0 // r33 = r0 // 072070
}
{ .mmi
0080C23008C0 4F40 ld8.mov r35 = [r35], DayName ;; // 072071
000008000000 4F41 nop.m 0
0000B2100840 4F42 sxt4 r33 = DayOfWeek ;; // r33 = r33
}
{ .mmi
01008A342840 4F50 shladd r33 = r33, 2, r35 ;;
008082100200 4F51 ld4 r8 = [r33]
000008000000 4F52 nop.i 0 ;;
}
{ .mii
000008000000 4F60 nop.m 0
0000B0800200 4F61 sxt4 r8 = r8 ;;
00015404A000 4F62 mov.i rspfs = r37 ;;
}
{ .mii
000008000000 4F70 nop.m 0
000E00148000 4F71 mov rp = r36 // br0 = r36
010800C20300 4F72 adds sp = 16, sp // r12 = 16, r12
}
{ .mfb
000008000000 4F80 nop.m 0
000008000000 4F81 nop.f 0
000108001100 4F82 br.ret.sptk.many rp ;; // br0
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 172
DayOfWeekName 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
.endp DayOfWeekName
Routine Size: 256 bytes, Routine Base: $CODE$ + 4E90
.proc HttpIfModifiedSince
.align 32
.global HttpIfModifiedSince
HttpIfModifiedSince: // 072091
{ .mii
002C00618900 4F90 alloc r36 = rspfs, 3, 3, 6, 0
01093A030200 4F91 adds r8 = 5016, in0 // r8 = 5016, r32 // 072110
0001880008C0 4F92 mov r35 = rp ;; // r35 = br0 // 072091
}
{ .mii
0080C0800240 4FA0 ld8 r9 = [r8] // 072110
010800100940 4FA1 mov r37 = gp ;; // r37 = r1 // 072091
01C038900000 4FA2 cmp.eq pr0, pr7 = r0, r9 // 072110
}
{ .bbb
008600002007 4FB0 (pr7) br.cond.dpnt.many L$611
004000000000 4FB1 nop.b 0
008000025000 4FB2 br.sptk.many L$620 ;;
}
4FC0 L$611:
{ .mmi
0108AA028280 4FC0 adds r10 = 2708, in0 ;; // r10 = 2708, r32 // 072112
008080A00280 4FC1 ld4 r10 = [r10]
000008000000 4FC2 nop.i 0 ;;
}
{ .mfb
01CC48A14000 4FD0 cmp4.eq pr0, pr9 = 10, r10
000008000000 4FD1 nop.f 0
00860000A009 4FD2 (pr9) br.cond.dpnt.many L$616 ;;
}
{ .mii
0108AA0302C0 4FE0 adds r11 = 2712, in0 // r11 = 2712, r32 // 072113
0184000442C0 4FE1 cmp4.lt pr11, pr0 = LastContentLength, // pr11, pr0 = r34, r0 // 072114
r0
000008000000 4FE2 nop.i 0 ;;
}
{ .mmi
008080B002C0 4FF0 ld4 r11 = [r11] ;; // 072113
018470016340 4FF1 cmp4.lt pr13, pr14 = r11, r0
01C402216180 4FF2 cmp4.eq pr6, pr0 = r11, // pr6, pr0 = r11, r34 // 072115
LastContentLength ;;
}
{ .mmi
01C27000034B 5000 (pr11) cmp.eq.or.andcm pr13, pr14 = r0, r0 ;; // 072114
01C200000346 5001 (pr6) cmp.eq.or.andcm pr13, pr0 = r0, r0 // 072115
000008000000 5002 nop.i 0
}
{ .bbb
00860000200D 5010 (pr13) br.cond.dpnt.many L$616 // 072112
004000000000 5011 nop.b 0
008000019000 5012 br.sptk.many L$620 ;;
}
5020 L$616: // 072116
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 173
HttpIfModifiedSince 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mlx
0111621F0480 5020 and r18 = -8, in1 // r18 = -8, r33 // 072119
000000000002 5021 movl r22 = 10000000 ;;
0192DC000B
}
{ .mmi
01C041242000 5030 cmp.eq pr0, pr8 = in1, r18 // pr0, pr8 = r33, r18
00A0C1210540 5031 ld8 r21 = [r18], 8
000008000000 5032 nop.i 0 ;;
}
{ .mib
000008000000 5040 nop.m 0
009E100424C8 5041 (pr8) dep r19 = in1, r0, 3, 3 // r19 = r33, r0, 3, 3
004000000000 5042 nop.b 0 ;;
}
{ .mmi
0080C1200508 5050 (pr8) ld8 r20 = [r18] ;;
000008000000 5051 nop.m 0
00F201526548 5052 (pr8) shr.u r21 = r21, r19
}
{ .mmi
0101293804C8 5060 (pr8) sub r19 = 64, r19 ;;
000008000000 5061 nop.m 0
00F241328508 5062 (pr8) shl r20 = r20, r19 ;;
}
{ .mmi
010071528548 5070 (pr8) or r21 = r20, r21 ;;
01002962A540 5071 sub r21 = r21, r22
000008000000 5072 nop.i 0 ;;
}
{ .mfb
01805092A000 5080 cmp.lt pr0, pr10 = r21, r9 // 072120
000008000000 5081 nop.f 0
00860000A00A 5082 (pr10) br.cond.dpnt.many L$620 ;;
}
{ .mii
01200000C640 5090 mov ai = 6 // r25 = 6 // 072123
010800000AC0 5091 mov out5 = r0 // r43 = r0
010800000A80 5092 mov out4 = r0 // r42 = r0
}
{ .mmi
012000000A40 50A0 mov out3 = 0 ;; // r41 = 0
010800000A00 50A1 mov out2 = r0 // r40 = r0
0120100609C0 50A2 mov out1 = 304 // r39 = 304
}
{ .mfb
010802000980 50B0 mov out0 = rqptr // r38 = r32
000008000000 50B1 nop.f 0
00A000001000 50B2 br.call.sptk.many rp = ResponseHeader ;; // br0 = ResponseHeader
}
{ .mib
012000000200 50C0 mov r8 = 0 // 072124
010802500040 50C1 mov gp = r37 // r1 = r37 // 072123
008000005000 50C2 br.sptk.many L$613 ;; // 072124
}
50D0 L$620: // 072125
{ .mfi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 174
HttpIfModifiedSince 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
012000002200 50D0 mov r8 = 1 // 072127
000008000000 50D1 nop.f 0
000008000000 50D2 nop.i 0
}
50E0 L$613:
{ .mii
000008000000 50E0 nop.m 0
000154048000 50E1 mov.i rspfs = r36 ;;
000E00146000 50E2 mov rp = r35 // br0 = r35
}
{ .mfb
000008000000 50F0 nop.m 0
000008000000 50F1 nop.f 0
000108001100 50F2 br.ret.sptk.many rp ;; // br0
}
.endp HttpIfModifiedSince
Routine Size: 368 bytes, Routine Base: $CODE$ + 4F90
.proc HttpIfUnModifiedSince
.align 32
.global HttpIfUnModifiedSince
HttpIfUnModifiedSince: // 072140
{ .mii
002C005168C0 5100 alloc r35 = rspfs, 2, 3, 6, 0
01093A050200 5101 adds r8 = 5032, in0 // r8 = 5032, r32 // 072157
000188000880 5102 mov r34 = rp ;; // r34 = br0 // 072140
}
{ .mii
0080C0800240 5110 ld8 r9 = [r8] // 072157
010800100900 5111 mov r36 = gp ;; // r36 = r1 // 072140
01C038900000 5112 cmp.eq pr0, pr7 = r0, r9 // 072157
}
{ .mfb
000008000000 5120 nop.m 0
000008000000 5121 nop.f 0
008600004007 5122 (pr7) br.cond.dpnt.many L$605 ;;
}
{ .mfb
012000002200 5130 mov r8 = 1
000008000000 5131 nop.f 0
00800001B000 5132 br.sptk.many L$607 ;;
}
5140 L$605:
{ .mlx
0111621F02C0 5140 and r11 = -8, in1 // r11 = -8, r33 // 072160
000000000002 5141 movl r20 = 10000000 ;;
0192DC000A
}
{ .mmi
01C050B42000 5150 cmp.eq pr0, pr10 = in1, r11 // pr0, pr10 = r33, r11
00A0C0B104C0 5151 ld8 r19 = [r11], 8
000008000000 5152 nop.i 0 ;;
}
{ .mib
000008000000 5160 nop.m 0
009E1004244A 5161 (pr10) dep r17 = in1, r0, 3, 3 // r17 = r33, r0, 3, 3
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 175
HttpIfUnModifiedSince 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
004000000000 5162 nop.b 0 ;;
}
{ .mmi
0080C0B0048A 5170 (pr10) ld8 r18 = [r11] ;;
000008000000 5171 nop.m 0
00F2013224CA 5172 (pr10) shr.u r19 = r19, r17
}
{ .mmi
01012918044A 5180 (pr10) sub r17 = 64, r17 ;;
000008000000 5181 nop.m 0
00F24112448A 5182 (pr10) shl r18 = r18, r17 ;;
}
{ .mmi
0100713244CA 5190 (pr10) or r19 = r18, r19 ;;
0100014264C0 5191 add r19 = r19, r20
000008000000 5192 nop.i 0 ;;
}
{ .mfb
018059312000 51A0 cmp.lt pr0, pr11 = r9, r19 // 072161
000008000000 51A1 nop.f 0
00860000A00B 51A2 (pr11) br.cond.dpnt.many L$608 ;;
}
{ .mii
01200000C640 51B0 mov ai = 6 // r25 = 6 // 072164
010800000A80 51B1 mov out5 = r0 // r42 = r0
010800000A40 51B2 mov out4 = r0 // r41 = r0
}
{ .mmi
012000000A00 51C0 mov out3 = 0 ;; // r40 = 0
0108000009C0 51C1 mov out2 = r0 // r39 = r0
012018038980 51C2 mov out1 = 412 // r38 = 412
}
{ .mfb
010802000940 51D0 mov out0 = rqptr // r37 = r32
000008000000 51D1 nop.f 0
00A000001000 51D2 br.call.sptk.many rp = ResponseHeader ;; // br0 = ResponseHeader
}
{ .mib
012000002200 51E0 mov r8 = 1 // 072165
010802400040 51E1 mov gp = r36 // r1 = r36 // 072164
008000005000 51E2 br.sptk.many L$607 ;; // 072165
}
51F0 L$608: // 072166
{ .mfi
012000000200 51F0 mov r8 = 0 // 072169
000008000000 51F1 nop.f 0
000008000000 51F2 nop.i 0
}
5200 L$607:
{ .mii
000008000000 5200 nop.m 0
000154046000 5201 mov.i rspfs = r35 ;;
000E00144000 5202 mov rp = r34 // br0 = r34
}
{ .mfb
000008000000 5210 nop.m 0
000008000000 5211 nop.f 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 176
HttpIfUnModifiedSince 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000108001100 5212 br.ret.sptk.many rp ;; // br0
}
.endp HttpIfUnModifiedSince
Routine Size: 288 bytes, Routine Base: $CODE$ + 5100
.proc HttpIfRange
.align 32
.global HttpIfRange
HttpIfRange: // 072177
{ .mii
002C00306880 5220 alloc r34 = rspfs, 2, 1, 0, 0
01093A040200 5221 adds r8 = 5024, in0 // r8 = 5024, r32 // 072193
000008000000 5222 nop.i 0 ;;
}
{ .mmi
0080C0800200 5230 ld8 r8 = [r8] ;;
01C038800000 5231 cmp.eq pr0, pr7 = r0, r8
000008000000 5232 nop.i 0
}
{ .bbb
008600002007 5240 (pr7) br.cond.dpnt.many L$598
004000000000 5241 nop.b 0
000108001100 5242 br.ret.sptk.many rp ;; // br0 // 072202
}
5250 L$598: // 072193
{ .mii
0111621F0280 5250 and r10 = -8, in1 // r10 = -8, r33 // 072196
01093A030500 5251 adds r20 = 5016, in0 // r20 = 5016, r32 // 072197
000008000000 5252 nop.i 0
}
{ .mlx
000008000000 5260 nop.m 0
800000000002 5261 movl r19 = 10000000 ;; // 072196
0192DC0009
}
{ .mmi
01C050A42000 5270 cmp.eq pr0, pr10 = in1, r10 // pr0, pr10 = r33, r10
00A0C0A10480 5271 ld8 r18 = [r10], 8
000008000000 5272 nop.i 0 ;;
}
{ .mib
0080C1400500 5280 ld8 r20 = [r20] // 072197
009E100422CA 5281 (pr10) dep r11 = in1, r0, 3, 3 // r11 = r33, r0, 3, 3 // 072196
004000000000 5282 nop.b 0 ;;
}
{ .mmi
0080C0A0044A 5290 (pr10) ld8 r17 = [r10] ;;
000008000000 5291 nop.m 0
00F20121648A 5292 (pr10) shr.u r18 = r18, r11
}
{ .mmi
010128B802CA 52A0 (pr10) sub r11 = 64, r11 ;;
000008000000 52A1 nop.m 0
00F240B2244A 52A2 (pr10) shl r17 = r17, r11 ;;
}
{ .mmi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 177
HttpIfRange 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01007122248A 52B0 (pr10) or r18 = r17, r18 ;;
010001324480 52B1 add r18 = r18, r19
000008000000 52B2 nop.i 0 ;;
}
{ .mfb
018059228000 52C0 cmp.lt pr0, pr11 = r20, r18 // 072197
000008000000 52C1 nop.f 0
00860000800B 52C2 (pr11) br.cond.dpnt.many L$601 ;;
}
{ .mmi
0108BA010800 52D0 adds in0 = 2952, in0 ;; // r32 = 2952, r32 // 072200
008082000800 52D1 ld4 in0 = [in0] // r32 = [r32]
000008000000 52D2 nop.i 0 ;;
}
{ .mib
01C400040380 52E0 cmp4.eq pr14, pr0 = in0, r0 // pr14, pr0 = r32, r0
0000B2000800 52E1 sxt4 in0 = in0 // r32 = r32
00860000400E 52E2 (pr14) br.cond.dpnt.many L$601 ;;
}
{ .mmi
010802018800 52F0 adds in0 = 12, in0 ;; // r32 = 12, r32
008C82000000 52F1 st4 [in0] = r0 // [r32] = r0
000008000000 52F2 nop.i 0
}
5300 L$601: // 072202
{ .mfb
000008000000 5300 nop.m 0
000008000000 5301 nop.f 0
000108001100 5302 br.ret.sptk.many rp ;; // br0
}
.endp HttpIfRange
Routine Size: 240 bytes, Routine Base: $CODE$ + 5220
.proc VmsToHttpStatus
.align 32
.global VmsToHttpStatus
VmsToHttpStatus: // 072209
{ .mii
002C00A14A00 5310 alloc r40 = rspfs, 1, 9, 0, 0
0128284942C0 5311 addl r11 = 99018, r0 // 072221
012828424280 5312 addl r10 = 98962, r0 // 072220
}
{ .mmi
012848488240 5320 addl r9 = 99524, r0 ;; // 072219
012C00494200 5321 addl r8 = 114762, r0 // 072218
000198000A40 5322 mov r41 = pr // 072209
}
{ .mii
012090020480 5330 mov r18 = 2320 // 072223
012090010440 5331 mov r17 = 2312 ;; // 072222
01C400B40380 5332 cmp4.eq pr14, pr0 = VmsStatus, r11 // pr14, pr0 = r32, r11 // 072221
}
{ .mii
01C458A40300 5340 cmp4.eq pr12, pr11 = VmsStatus, r10 // pr12, pr11 = r32, r10 // 072220
01C400940280 5341 cmp4.eq pr10, pr0 = VmsStatus, r9 // pr10, pr0 = r32, r9 // 072219
01C438840200 5342 cmp4.eq pr8, pr7 = VmsStatus, r8 ;; // pr8, pr7 = r32, r8 // 072218
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 178
VmsToHttpStatus 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mii
01C20000030E 5350 (pr14) cmp.eq.or.andcm pr12, pr0 = r0, r0 // 072221
01C23800020A 5351 (pr10) cmp.eq.or.andcm pr8, pr7 = r0, r0 // 072219
01C401240340 5352 cmp4.eq pr13, pr0 = VmsStatus, r18 // pr13, pr0 = r32, r18 // 072223
}
{ .mmi
01C479140180 5360 cmp4.eq pr6, pr15 = VmsStatus, r17 ;; // pr6, pr15 = r32, r17 // 072222
01C23800020C 5361 (pr12) cmp.eq.or.andcm pr8, pr7 = r0, r0 // 072221
01C20000018D 5362 (pr13) cmp.eq.or.andcm pr6, pr0 = r0, r0 ;; // 072223
}
{ .mfb
01C238000006 5370 (pr6) cmp.eq.or.andcm pr0, pr7 = r0, r0
000008000000 5371 nop.f 0
008600004007 5372 (pr7) br.cond.dpnt.many L$590 ;; // 072218
}
{ .mib
012018028200 5380 mov HttpStatus = 404 // r8 = 404 // 072224
0016000527C0 5381 mov pr = r41, -65474 // 072260
000108001100 5382 br.ret.sptk.many rp ;; // br0
}
5390 L$590: // 072225
{ .mii
012080050680 5390 mov r26 = 2088 // 072233
012080040640 5391 mov ai = 2080 // r25 = 2080 // 072232
012080030600 5392 mov r24 = 2072 // 072231
}
{ .mmi
0128484985C0 53A0 addl r23 = 99532, r0 ;; // 072230
0128684F8580 53A1 addl r22 = 100092, r0 // 072229
0128684C8540 53A2 addl r21 = 100068, r0 // 072228
}
{ .mii
012850458500 53B0 addl r20 = 99628, r0 // 072227
0128684A84C0 53B1 addl r19 = 100052, r0 ;; // 072226
01C401A40100 53B2 cmp4.eq pr4, pr0 = VmsStatus, r26 // pr4, pr0 = r32, r26 // 072233
}
{ .mii
01C459940080 53C0 cmp4.eq pr2, pr11 = VmsStatus, ai // pr2, pr11 = r32, r25 // 072232
01C401840300 53C1 cmp4.eq pr12, pr0 = VmsStatus, r24 // pr12, pr0 = r32, r24 // 072231
01C439740200 53C2 cmp4.eq pr8, pr7 = VmsStatus, r23 ;; // pr8, pr7 = r32, r23 // 072230
}
{ .mii
01C401640180 53D0 cmp4.eq pr6, pr0 = VmsStatus, r22 // pr6, pr0 = r32, r22 // 072229
01C4695403C0 53D1 cmp4.eq pr15, pr13 = VmsStatus, r21 // pr15, pr13 = r32, r21 // 072228
01C401440380 53D2 cmp4.eq pr14, pr0 = VmsStatus, r20 // pr14, pr0 = r32, r20 // 072227
}
{ .mmi
01C449340280 53E0 cmp4.eq pr10, pr9 = VmsStatus, r19 ;; // pr10, pr9 = r32, r19 // 072226
01C200000084 53E1 (pr4) cmp.eq.or.andcm pr2, pr0 = r0, r0 // 072233
01C23800020C 53E2 (pr12) cmp.eq.or.andcm pr8, pr7 = r0, r0 // 072231
}
{ .mii
01C2000003C6 53F0 (pr6) cmp.eq.or.andcm pr15, pr0 = r0, r0 // 072229
01C24800028E 53F1 (pr14) cmp.eq.or.andcm pr10, pr9 = r0, r0 ;; // 072227
01C200000202 53F2 (pr2) cmp.eq.or.andcm pr8, pr0 = r0, r0 // 072233
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 179
VmsToHttpStatus 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
01C24800028F 5400 (pr15) cmp.eq.or.andcm pr10, pr9 = r0, r0 ;; // 072229
01C248000008 5401 (pr8) cmp.eq.or.andcm pr0, pr9 = r0, r0 // 072233
000008000000 5402 nop.i 0
}
{ .mfb
000008000000 5410 nop.m 0
000008000000 5411 nop.f 0
008600004009 5412 (pr9) br.cond.dpnt.many L$593 ;; // 072226
}
{ .mib
012018026200 5420 mov HttpStatus = 403 // r8 = 403 // 072234
0016000527C0 5421 mov pr = r41, -65474 // 072260
000108001100 5422 br.ret.sptk.many rp ;; // br0
}
5430 L$593: // 072235
{ .mmi
0128284146C0 5430 addl r27 = 98954, r0 ;; // 072236
01C419B40000 5431 cmp4.eq pr0, pr3 = VmsStatus, r27 // pr0, pr3 = r32, r27
000008000000 5432 nop.i 0
}
{ .mfb
000008000000 5440 nop.m 0
000008000000 5441 nop.f 0
008600004003 5442 (pr3) br.cond.dpnt.many L$595 ;;
}
{ .mib
01201804E200 5450 mov HttpStatus = 423 // r8 = 423 // 072237
0016000527C0 5451 mov pr = r41, -65474 // 072260
000108001100 5452 br.ret.sptk.many rp ;; // br0
}
5460 L$595: // 072238
{ .mii
012828434840 5460 addl r33 = 98970, r0 // 072243
0120380D8940 5461 mov r37 = 1004 // 072240
0122100E8900 5462 addl r36 = 8564, r0 // 072239
}
{ .mmi
01CC020483C0 5470 cmp4.eq pr15, pr0 = 36, VmsStatus ;; // pr15, pr0 = 36, r32 // 072244
01C462140100 5471 cmp4.eq pr4, pr12 = VmsStatus, r33 // pr4, pr12 = r32, r33 // 072243
0120600327C0 5472 mov r31 = 1561 // 072247
}
{ .mii
0120180E8780 5480 mov r30 = 500 // 072251
012008090740 5481 mov r29 = 200 ;;
00A032000000 5482 tbit.z pr0, pr6 = VmsStatus, 0 // pr0, pr6 = r32, 0 // 072250
}
{ .mii
012018026980 5490 mov r38 = 403 // 072245
01C402540240 5491 cmp4.eq pr9, pr0 = VmsStatus, r37 // pr9, pr0 = r32, r37 // 072240
01C4124401C0 5492 cmp4.eq pr7, pr2 = VmsStatus, r36 ;; // pr7, pr2 = r32, r36 // 072239
}
{ .mii
01C26000010F 54A0 (pr15) cmp.eq.or.andcm pr4, pr12 = r0, r0 // 072244
0120080928C0 54A1 mov r35 = 201 // 072248
01C469F40000 54A2 cmp4.eq pr0, pr13 = VmsStatus, r31 // pr0, pr13 = r32, r31 // 072247
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 180
VmsToHttpStatus 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
010801D00786 54B0 (pr6) mov r30 = r29 ;; // 072251
0120180320C0 54B1 mov r3 = 409 // 072241
01C2100001C9 54B2 (pr9) cmp.eq.or.andcm pr7, pr2 = r0, r0 // 072240
}
{ .mii
0108026009C4 54C0 (pr4) mov r39 = r38 // 072245
010801E008CD 54C1 (pr13) mov r35 = r30 ;; // 072248
010800300247 54C2 (pr7) mov r9 = r3 // 072241
}
{ .mmi
0108023009CC 54D0 (pr12) mov r39 = r35 ;; // 072245
010802700242 54D1 (pr2) mov r9 = r39 // 072241
0016000527C0 54D2 mov pr = r41, -65474 ;; // 072260
}
{ .mib
000008000000 54E0 nop.m 0
0000B0900200 54E1 sxt4 r8 = r9
000108001100 54E2 br.ret.sptk.many rp ;; // br0
}
.endp VmsToHttpStatus
Routine Size: 480 bytes, Routine Base: $CODE$ + 5310
.proc HttpStatusCodeText
.align 32
.global HttpStatusCodeText
HttpStatusCodeText: // 072269
{ .mii
002C00204840 54F0 alloc r33 = rspfs, 1, 1, 0, 0
012008090200 54F1 mov r8 = 200 ;; // 072276
0184008401C0 54F2 cmp4.lt pr7, pr0 = StatusCode, r8 // pr7, pr0 = r32, r8
}
{ .mfb
000008000000 5500 nop.m 0
000008000000 5501 nop.f 0
0086000E6007 5502 (pr7) br.cond.dpnt.many L$515 ;;
}
{ .mmi
0119F2070240 5510 adds r9 = -200, StatusCode ;; // r9 = -200, r32
01AC0090E280 5511 cmp4.ltu pr10, pr0 = 7, r9
000008000000 5512 nop.i 0
}
{ .mfb
000008000000 5520 nop.m 0
000008000000 5521 nop.f 0
00860002A00A 5522 (pr10) br.cond.dpnt.many L$520 ;;
}
{ .mib
012000100080 5530 add r2 = @ltoff($LINK$+368), gp // r2 = @ltoff($LINK$+368), r1
0000B0900280 5531 sxt4 r10 = r9
004000000000 5532 nop.b 0 ;;
}
{ .mmi
0080C0200080 5540 ld8 r2 = $LINK$ ;; // r2 = [r2]
010090214080 5541 shladd r2 = r10, 3, r2
000008000000 5542 nop.i 0 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 181
HttpStatusCodeText 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mii
0080C02003C0 5550 ld8 r15 = $LINK$ // r15 = [r2]
000180000080 5551 mov r2 = ip ;;
01000021E3C0 5552 add r15 = r15, r2 ;;
}
{ .mib
000008000000 5560 nop.m 0
000E0011E180 5561 mov br6 = r15
00010000D000 5562 br.sptk.many br6 ;;
}
5570 L$521: // 072281
{ .mmi
012000100200 5570 add r8 = @ltoff($LITERAL$+1816), // r8 = @ltoff($LITERAL$+1816), r1
gp ;;
0080C0800200 5571 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5572 nop.i 0
}
{ .mfb
000008000000 5580 nop.m 0
000008000000 5581 nop.f 0
000108001100 5582 br.ret.sptk.many rp ;; // br0
}
5590 L$522: // 072282
{ .mmi
012000100200 5590 add r8 = @ltoff($LITERAL$+1800), // r8 = @ltoff($LITERAL$+1800), r1
gp ;;
0080C0800200 5591 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5592 nop.i 0
}
{ .mfb
000008000000 55A0 nop.m 0
000008000000 55A1 nop.f 0
000108001100 55A2 br.ret.sptk.many rp ;; // br0
}
55B0 L$523: // 072283
{ .mmi
012000100200 55B0 add r8 = @ltoff($LITERAL$+1784), // r8 = @ltoff($LITERAL$+1784), r1
gp ;;
0080C0800200 55B1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 55B2 nop.i 0
}
{ .mfb
000008000000 55C0 nop.m 0
000008000000 55C1 nop.f 0
000108001100 55C2 br.ret.sptk.many rp ;; // br0
}
55D0 L$524: // 072284
{ .mmi
012000100200 55D0 add r8 = @ltoff($LITERAL$+1760), // r8 = @ltoff($LITERAL$+1760), r1
gp ;;
0080C0800200 55D1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 55D2 nop.i 0
}
{ .mfb
000008000000 55E0 nop.m 0
000008000000 55E1 nop.f 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 182
HttpStatusCodeText 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000108001100 55E2 br.ret.sptk.many rp ;; // br0
}
55F0 L$525: // 072285
{ .mmi
012000100200 55F0 add r8 = @ltoff($LITERAL$+1744), // r8 = @ltoff($LITERAL$+1744), r1
gp ;;
0080C0800200 55F1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 55F2 nop.i 0
}
{ .mfb
000008000000 5600 nop.m 0
000008000000 5601 nop.f 0
000108001100 5602 br.ret.sptk.many rp ;; // br0
}
5610 L$526: // 072286
{ .mmi
012000100200 5610 add r8 = @ltoff($LITERAL$+1728), // r8 = @ltoff($LITERAL$+1728), r1
gp ;;
0080C0800200 5611 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5612 nop.i 0
}
{ .mfb
000008000000 5620 nop.m 0
000008000000 5621 nop.f 0
000108001100 5622 br.ret.sptk.many rp ;; // br0
}
5630 L$527: // 072287
{ .mmi
012000100200 5630 add r8 = @ltoff($LITERAL$+1704), // r8 = @ltoff($LITERAL$+1704), r1
gp ;;
0080C0800200 5631 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5632 nop.i 0
}
{ .mfb
000008000000 5640 nop.m 0
000008000000 5641 nop.f 0
000108001100 5642 br.ret.sptk.many rp ;; // br0
}
5650 L$528: // 072288
{ .mmi
012000100200 5650 add r8 = @ltoff($LITERAL$+1688), // r8 = @ltoff($LITERAL$+1688), r1
gp ;;
0080C0800200 5651 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5652 nop.i 0
}
{ .mfb
000008000000 5660 nop.m 0
000008000000 5661 nop.f 0
000108001100 5662 br.ret.sptk.many rp ;; // br0
}
5670 L$520: // 072276
{ .mmi
0120100582C0 5670 mov r11 = 300 ;;
018400B402C0 5671 cmp4.lt pr11, pr0 = StatusCode, r11 // pr11, pr0 = r32, r11
000008000000 5672 nop.i 0
}
{ .mfb
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 183
HttpStatusCodeText 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 5680 nop.m 0
000008000000 5681 nop.f 0
0086000C000B 5682 (pr11) br.cond.dpnt.many L$530 ;;
}
{ .mmi
0119EA0A8440 5690 adds r17 = -300, StatusCode ;; // r17 = -300, r32
01AC0110E380 5691 cmp4.ltu pr14, pr0 = 7, r17
000008000000 5692 nop.i 0
}
{ .mfb
000008000000 56A0 nop.m 0
000008000000 56A1 nop.f 0
00860002A00E 56A2 (pr14) br.cond.dpnt.many L$535 ;;
}
{ .mib
012000100080 56B0 add r2 = @ltoff($LINK$+432), gp // r2 = @ltoff($LINK$+432), r1
0000B1100480 56B1 sxt4 r18 = r17
004000000000 56B2 nop.b 0 ;;
}
{ .mmi
0080C0200080 56C0 ld8 r2 = $LINK$ ;; // r2 = [r2]
010090224080 56C1 shladd r2 = r18, 3, r2
000008000000 56C2 nop.i 0 ;;
}
{ .mii
0080C02003C0 56D0 ld8 r15 = $LINK$ // r15 = [r2]
000180000080 56D1 mov r2 = ip ;;
01000021E3C0 56D2 add r15 = r15, r2 ;;
}
{ .mib
000008000000 56E0 nop.m 0
000E0011E1C0 56E1 mov br7 = r15
00010000F000 56E2 br.sptk.many br7 ;;
}
56F0 L$536: // 072289
{ .mmi
012000100200 56F0 add r8 = @ltoff($LITERAL$+1664), // r8 = @ltoff($LITERAL$+1664), r1
gp ;;
0080C0800200 56F1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 56F2 nop.i 0
}
{ .mfb
000008000000 5700 nop.m 0
000008000000 5701 nop.f 0
000108001100 5702 br.ret.sptk.many rp ;; // br0
}
5710 L$537: // 072290
{ .mmi
012000100200 5710 add r8 = @ltoff($LITERAL$+1640), // r8 = @ltoff($LITERAL$+1640), r1
gp ;;
0080C0800200 5711 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5712 nop.i 0
}
{ .mfb
000008000000 5720 nop.m 0
000008000000 5721 nop.f 0
000108001100 5722 br.ret.sptk.many rp ;; // br0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 184
HttpStatusCodeText 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
5730 L$538: // 072291
{ .mmi
012000100200 5730 add r8 = @ltoff($LITERAL$+1608), // r8 = @ltoff($LITERAL$+1608), r1
gp ;;
0080C0800200 5731 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5732 nop.i 0
}
{ .mfb
000008000000 5740 nop.m 0
000008000000 5741 nop.f 0
000108001100 5742 br.ret.sptk.many rp ;; // br0
}
5750 L$539: // 072292
{ .mmi
012000100200 5750 add r8 = @ltoff($LITERAL$+1592), // r8 = @ltoff($LITERAL$+1592), r1
gp ;;
0080C0800200 5751 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5752 nop.i 0
}
{ .mfb
000008000000 5760 nop.m 0
000008000000 5761 nop.f 0
000108001100 5762 br.ret.sptk.many rp ;; // br0
}
5770 L$540: // 072293
{ .mmi
012000100200 5770 add r8 = @ltoff($LITERAL$+1576), // r8 = @ltoff($LITERAL$+1576), r1
gp ;;
0080C0800200 5771 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5772 nop.i 0
}
{ .mfb
000008000000 5780 nop.m 0
000008000000 5781 nop.f 0
000108001100 5782 br.ret.sptk.many rp ;; // br0
}
5790 L$541: // 072294
{ .mmi
012000100200 5790 add r8 = @ltoff($LITERAL$+1560), // r8 = @ltoff($LITERAL$+1560), r1
gp ;;
0080C0800200 5791 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5792 nop.i 0
}
{ .mfb
000008000000 57A0 nop.m 0
000008000000 57A1 nop.f 0
000108001100 57A2 br.ret.sptk.many rp ;; // br0
}
57B0 L$542: // 072295
{ .mmi
012000100200 57B0 add r8 = @ltoff($LITERAL$+1544), // r8 = @ltoff($LITERAL$+1544), r1
gp ;;
0080C0800200 57B1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 57B2 nop.i 0
}
{ .mfb
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 185
HttpStatusCodeText 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 57C0 nop.m 0
000008000000 57C1 nop.f 0
000108001100 57C2 br.ret.sptk.many rp ;; // br0
}
57D0 L$543: // 072296
{ .mmi
012000100200 57D0 add r8 = @ltoff($LITERAL$+1520), // r8 = @ltoff($LITERAL$+1520), r1
gp ;;
0080C0800200 57D1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 57D2 nop.i 0
}
{ .mfb
000008000000 57E0 nop.m 0
000008000000 57E1 nop.f 0
000108001100 57E2 br.ret.sptk.many rp ;; // br0
}
57F0 L$535: // 072276
{ .mmi
0119E20E0800 57F0 adds in0 = -400, StatusCode ;; // r32 = -400, r32
01AC020D6180 57F1 cmp4.ltu pr6, pr0 = 107, in0 // pr6, pr0 = 107, r32
000008000000 57F2 nop.i 0
}
{ .mfb
000008000000 5800 nop.m 0
000008000000 5801 nop.f 0
008600090006 5802 (pr6) br.cond.dpnt.many L$530 ;;
}
{ .mib
012000100080 5810 add r2 = @ltoff($LINK$+496), gp // r2 = @ltoff($LINK$+496), r1
0000B20004C0 5811 sxt4 r19 = in0 // r19 = r32
004000000000 5812 nop.b 0 ;;
}
{ .mmi
0080C0200080 5820 ld8 r2 = $LINK$ ;; // r2 = [r2]
010090226080 5821 shladd r2 = r19, 3, r2
000008000000 5822 nop.i 0 ;;
}
{ .mii
0080C02003C0 5830 ld8 r15 = $LINK$ // r15 = [r2]
000180000080 5831 mov r2 = ip ;;
01000021E3C0 5832 add r15 = r15, r2 ;;
}
{ .mib
000008000000 5840 nop.m 0
000E0011E180 5841 mov br6 = r15
00010000D000 5842 br.sptk.many br6 ;;
}
5850 L$547: // 072297
{ .mmi
012000100200 5850 add r8 = @ltoff($LITERAL$+1504), // r8 = @ltoff($LITERAL$+1504), r1
gp ;;
0080C0800200 5851 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5852 nop.i 0
}
{ .mfb
000008000000 5860 nop.m 0
000008000000 5861 nop.f 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 186
HttpStatusCodeText 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000108001100 5862 br.ret.sptk.many rp ;; // br0
}
5870 L$548: // 072298
{ .mmi
012000100200 5870 add r8 = @ltoff($LITERAL$+1480), // r8 = @ltoff($LITERAL$+1480), r1
gp ;;
0080C0800200 5871 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5872 nop.i 0
}
{ .mfb
000008000000 5880 nop.m 0
000008000000 5881 nop.f 0
000108001100 5882 br.ret.sptk.many rp ;; // br0
}
5890 L$549: // 072299
{ .mmi
012000100200 5890 add r8 = @ltoff($LITERAL$+1456), // r8 = @ltoff($LITERAL$+1456), r1
gp ;;
0080C0800200 5891 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5892 nop.i 0
}
{ .mfb
000008000000 58A0 nop.m 0
000008000000 58A1 nop.f 0
000108001100 58A2 br.ret.sptk.many rp ;; // br0
}
58B0 L$550: // 072300
{ .mmi
012000100200 58B0 add r8 = @ltoff($LITERAL$+1440), // r8 = @ltoff($LITERAL$+1440), r1
gp ;;
0080C0800200 58B1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 58B2 nop.i 0
}
{ .mfb
000008000000 58C0 nop.m 0
000008000000 58C1 nop.f 0
000108001100 58C2 br.ret.sptk.many rp ;; // br0
}
58D0 L$551: // 072301
{ .mmi
012000100200 58D0 add r8 = @ltoff($LITERAL$+1424), // r8 = @ltoff($LITERAL$+1424), r1
gp ;;
0080C0800200 58D1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 58D2 nop.i 0
}
{ .mfb
000008000000 58E0 nop.m 0
000008000000 58E1 nop.f 0
000108001100 58E2 br.ret.sptk.many rp ;; // br0
}
58F0 L$552: // 072302
{ .mmi
012000100200 58F0 add r8 = @ltoff($LITERAL$+1400), // r8 = @ltoff($LITERAL$+1400), r1
gp ;;
0080C0800200 58F1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 58F2 nop.i 0
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 187
HttpStatusCodeText 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfb
000008000000 5900 nop.m 0
000008000000 5901 nop.f 0
000108001100 5902 br.ret.sptk.many rp ;; // br0
}
5910 L$553: // 072303
{ .mmi
012000100200 5910 add r8 = @ltoff($LITERAL$+1384), // r8 = @ltoff($LITERAL$+1384), r1
gp ;;
0080C0800200 5911 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5912 nop.i 0
}
{ .mfb
000008000000 5920 nop.m 0
000008000000 5921 nop.f 0
000108001100 5922 br.ret.sptk.many rp ;; // br0
}
5930 L$554: // 072304
{ .mmi
012000100200 5930 add r8 = @ltoff($LITERAL$+1352), // r8 = @ltoff($LITERAL$+1352), r1
gp ;;
0080C0800200 5931 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5932 nop.i 0
}
{ .mfb
000008000000 5940 nop.m 0
000008000000 5941 nop.f 0
000108001100 5942 br.ret.sptk.many rp ;; // br0
}
5950 L$555: // 072305
{ .mmi
012000100200 5950 add r8 = @ltoff($LITERAL$+1328), // r8 = @ltoff($LITERAL$+1328), r1
gp ;;
0080C0800200 5951 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5952 nop.i 0
}
{ .mfb
000008000000 5960 nop.m 0
000008000000 5961 nop.f 0
000108001100 5962 br.ret.sptk.many rp ;; // br0
}
5970 L$556: // 072306
{ .mmi
012000100200 5970 add r8 = @ltoff($LITERAL$+1312), // r8 = @ltoff($LITERAL$+1312), r1
gp ;;
0080C0800200 5971 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5972 nop.i 0
}
{ .mfb
000008000000 5980 nop.m 0
000008000000 5981 nop.f 0
000108001100 5982 br.ret.sptk.many rp ;; // br0
}
5990 L$557: // 072307
{ .mmi
012000100200 5990 add r8 = @ltoff($LITERAL$+1304), // r8 = @ltoff($LITERAL$+1304), r1
gp ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 188
HttpStatusCodeText 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0080C0800200 5991 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5992 nop.i 0
}
{ .mfb
000008000000 59A0 nop.m 0
000008000000 59A1 nop.f 0
000108001100 59A2 br.ret.sptk.many rp ;; // br0
}
59B0 L$558: // 072308
{ .mmi
012000100200 59B0 add r8 = @ltoff($LITERAL$+1280), // r8 = @ltoff($LITERAL$+1280), r1
gp ;;
0080C0800200 59B1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 59B2 nop.i 0
}
{ .mfb
000008000000 59C0 nop.m 0
000008000000 59C1 nop.f 0
000108001100 59C2 br.ret.sptk.many rp ;; // br0
}
59D0 L$559: // 072309
{ .mmi
012000100200 59D0 add r8 = @ltoff($LITERAL$+1256), // r8 = @ltoff($LITERAL$+1256), r1
gp ;;
0080C0800200 59D1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 59D2 nop.i 0
}
{ .mfb
000008000000 59E0 nop.m 0
000008000000 59E1 nop.f 0
000108001100 59E2 br.ret.sptk.many rp ;; // br0
}
59F0 L$560: // 072310
{ .mmi
012000100200 59F0 add r8 = @ltoff($LITERAL$+1224), // r8 = @ltoff($LITERAL$+1224), r1
gp ;;
0080C0800200 59F1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 59F2 nop.i 0
}
{ .mfb
000008000000 5A00 nop.m 0
000008000000 5A01 nop.f 0
000108001100 5A02 br.ret.sptk.many rp ;; // br0
}
5A10 L$561: // 072311
{ .mmi
012000100200 5A10 add r8 = @ltoff($LITERAL$+1200), // r8 = @ltoff($LITERAL$+1200), r1
gp ;;
0080C0800200 5A11 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5A12 nop.i 0
}
{ .mfb
000008000000 5A20 nop.m 0
000008000000 5A21 nop.f 0
000108001100 5A22 br.ret.sptk.many rp ;; // br0
}
5A30 L$562: // 072312
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 189
HttpStatusCodeText 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
012000100200 5A30 add r8 = @ltoff($LITERAL$+1176), // r8 = @ltoff($LITERAL$+1176), r1
gp ;;
0080C0800200 5A31 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5A32 nop.i 0
}
{ .mfb
000008000000 5A40 nop.m 0
000008000000 5A41 nop.f 0
000108001100 5A42 br.ret.sptk.many rp ;; // br0
}
5A50 L$563: // 072313
{ .mmi
012000100200 5A50 add r8 = @ltoff($LITERAL$+1136), // r8 = @ltoff($LITERAL$+1136), r1
gp ;;
0080C0800200 5A51 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5A52 nop.i 0
}
{ .mfb
000008000000 5A60 nop.m 0
000008000000 5A61 nop.f 0
000108001100 5A62 br.ret.sptk.many rp ;; // br0
}
5A70 L$564: // 072314
{ .mmi
012000100200 5A70 add r8 = @ltoff($LITERAL$+1112), // r8 = @ltoff($LITERAL$+1112), r1
gp ;;
0080C0800200 5A71 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5A72 nop.i 0
}
{ .mfb
000008000000 5A80 nop.m 0
000008000000 5A81 nop.f 0
000108001100 5A82 br.ret.sptk.many rp ;; // br0
}
5A90 L$565: // 072315
{ .mmi
012000100200 5A90 add r8 = @ltoff($LITERAL$+1096), // r8 = @ltoff($LITERAL$+1096), r1
gp ;;
0080C0800200 5A91 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5A92 nop.i 0
}
{ .mfb
000008000000 5AA0 nop.m 0
000008000000 5AA1 nop.f 0
000108001100 5AA2 br.ret.sptk.many rp ;; // br0
}
5AB0 L$566: // 072316
{ .mmi
012000100200 5AB0 add r8 = @ltoff($LITERAL$+1072), // r8 = @ltoff($LITERAL$+1072), r1
gp ;;
0080C0800200 5AB1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5AB2 nop.i 0
}
{ .mfb
000008000000 5AC0 nop.m 0
000008000000 5AC1 nop.f 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 190
HttpStatusCodeText 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000108001100 5AC2 br.ret.sptk.many rp ;; // br0
}
5AD0 L$567: // 072317
{ .mmi
012000100200 5AD0 add r8 = @ltoff($LITERAL$+1048), // r8 = @ltoff($LITERAL$+1048), r1
gp ;;
0080C0800200 5AD1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5AD2 nop.i 0
}
{ .mfb
000008000000 5AE0 nop.m 0
000008000000 5AE1 nop.f 0
000108001100 5AE2 br.ret.sptk.many rp ;; // br0
}
5AF0 L$568: // 072318
{ .mmi
012000100200 5AF0 add r8 = @ltoff($LITERAL$+1040), // r8 = @ltoff($LITERAL$+1040), r1
gp ;;
0080C0800200 5AF1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5AF2 nop.i 0
}
{ .mfb
000008000000 5B00 nop.m 0
000008000000 5B01 nop.f 0
000108001100 5B02 br.ret.sptk.many rp ;; // br0
}
5B10 L$569: // 072319
{ .mmi
012000100200 5B10 add r8 = @ltoff($LITERAL$+1016), // r8 = @ltoff($LITERAL$+1016), r1
gp ;;
0080C0800200 5B11 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5B12 nop.i 0
}
{ .mfb
000008000000 5B20 nop.m 0
000008000000 5B21 nop.f 0
000108001100 5B22 br.ret.sptk.many rp ;; // br0
}
5B30 L$570: // 072320
{ .mmi
012000100200 5B30 add r8 = @ltoff($LITERAL$+992), gp ;; // r8 = @ltoff($LITERAL$+992), r1
0080C0800200 5B31 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5B32 nop.i 0
}
{ .mfb
000008000000 5B40 nop.m 0
000008000000 5B41 nop.f 0
000108001100 5B42 br.ret.sptk.many rp ;; // br0
}
5B50 L$571: // 072321
{ .mmi
012000100200 5B50 add r8 = @ltoff($LITERAL$+976), gp ;; // r8 = @ltoff($LITERAL$+976), r1
0080C0800200 5B51 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5B52 nop.i 0
}
{ .mfb
000008000000 5B60 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 191
HttpStatusCodeText 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 5B61 nop.f 0
000108001100 5B62 br.ret.sptk.many rp ;; // br0
}
5B70 L$572: // 072322
{ .mmi
012000100200 5B70 add r8 = @ltoff($LITERAL$+952), gp ;; // r8 = @ltoff($LITERAL$+952), r1
0080C0800200 5B71 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5B72 nop.i 0
}
{ .mfb
000008000000 5B80 nop.m 0
000008000000 5B81 nop.f 0
000108001100 5B82 br.ret.sptk.many rp ;; // br0
}
5B90 L$573: // 072323
{ .mmi
012000100200 5B90 add r8 = @ltoff($LITERAL$+936), gp ;; // r8 = @ltoff($LITERAL$+936), r1
0080C0800200 5B91 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5B92 nop.i 0
}
{ .mfb
000008000000 5BA0 nop.m 0
000008000000 5BA1 nop.f 0
000108001100 5BA2 br.ret.sptk.many rp ;; // br0
}
5BB0 L$574: // 072324
{ .mmi
012000100200 5BB0 add r8 = @ltoff($LITERAL$+912), gp ;; // r8 = @ltoff($LITERAL$+912), r1
0080C0800200 5BB1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5BB2 nop.i 0
}
{ .mfb
000008000000 5BC0 nop.m 0
000008000000 5BC1 nop.f 0
000108001100 5BC2 br.ret.sptk.many rp ;; // br0
}
5BD0 L$575: // 072325
{ .mmi
012000100200 5BD0 add r8 = @ltoff($LITERAL$+888), gp ;; // r8 = @ltoff($LITERAL$+888), r1
0080C0800200 5BD1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5BD2 nop.i 0
}
{ .mfb
000008000000 5BE0 nop.m 0
000008000000 5BE1 nop.f 0
000108001100 5BE2 br.ret.sptk.many rp ;; // br0
}
5BF0 L$576: // 072326
{ .mmi
012000100200 5BF0 add r8 = @ltoff($LITERAL$+856), gp ;; // r8 = @ltoff($LITERAL$+856), r1
0080C0800200 5BF1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5BF2 nop.i 0
}
{ .mfb
000008000000 5C00 nop.m 0
000008000000 5C01 nop.f 0
000108001100 5C02 br.ret.sptk.many rp ;; // br0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 192
HttpStatusCodeText 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
5C10 L$577: // 072327
{ .mmi
012000100200 5C10 add r8 = @ltoff($LITERAL$+832), gp ;; // r8 = @ltoff($LITERAL$+832), r1
0080C0800200 5C11 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5C12 nop.i 0
}
{ .mfb
000008000000 5C20 nop.m 0
000008000000 5C21 nop.f 0
000108001100 5C22 br.ret.sptk.many rp ;; // br0
}
5C30 L$515: // 072276
{ .mfb
01CC020C8200 5C30 cmp4.eq pr8, pr0 = 100, StatusCode // pr8, pr0 = 100, r32
000008000000 5C31 nop.f 0
008600012008 5C32 (pr8) br.cond.dpnt.many L$581 ;;
}
{ .mfb
01CC020CA280 5C40 cmp4.eq pr10, pr0 = 101, StatusCode // pr10, pr0 = 101, r32
000008000000 5C41 nop.f 0
00860000C00A 5C42 (pr10) br.cond.dpnt.many L$585 ;;
}
{ .mfb
01CC5A0CC000 5C50 cmp4.eq pr0, pr11 = 102, StatusCode // pr0, pr11 = 102, r32
000008000000 5C51 nop.f 0
00860000600B 5C52 (pr11) br.cond.dpnt.many L$530 ;;
}
{ .mmi
012000100200 5C60 add r8 = @ltoff($LITERAL$+816), gp ;; // r8 = @ltoff($LITERAL$+816), r1 // 072280
0080C0800200 5C61 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5C62 nop.i 0
}
{ .mfb
000008000000 5C70 nop.m 0
000008000000 5C71 nop.f 0
000108001100 5C72 br.ret.sptk.many rp ;; // br0
}
5C80 L$530: // 072328
{ .mmi
012000100200 5C80 add r8 = @ltoff($LITERAL$+800), gp ;; // r8 = @ltoff($LITERAL$+800), r1
0080C0800200 5C81 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5C82 nop.i 0
}
{ .mfb
000008000000 5C90 nop.m 0
000008000000 5C91 nop.f 0
000108001100 5C92 br.ret.sptk.many rp ;; // br0
}
5CA0 L$585: // 072279
{ .mmi
012000100200 5CA0 add r8 = @ltoff($LITERAL$+776), gp ;; // r8 = @ltoff($LITERAL$+776), r1
0080C0800200 5CA1 ld8 r8 = $LITERAL$ // r8 = [r8] // 072278
000008000000 5CA2 nop.i 0
}
{ .mfb
000008000000 5CB0 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 193
HttpStatusCodeText 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 5CB1 nop.f 0
000108001100 5CB2 br.ret.sptk.many rp ;; // br0
}
5CC0 L$581:
{ .mmi
012000100200 5CC0 add r8 = @ltoff($LITERAL$+760), gp ;; // r8 = @ltoff($LITERAL$+760), r1
0080C0800200 5CC1 ld8 r8 = $LITERAL$ // r8 = [r8]
000008000000 5CC2 nop.i 0
}
{ .mfb
000008000000 5CD0 nop.m 0
000008000000 5CD1 nop.f 0
000108001100 5CD2 br.ret.sptk.many rp ;; // br0
}
.endp HttpStatusCodeText
Routine Size: 2032 bytes, Routine Base: $CODE$ + 54F0
.proc HttpStatusCodeExplanation
.align 32
.global HttpStatusCodeExplanation
HttpStatusCodeExplanation: // 072338
{ .mii
002C00B1AA40 5CE0 alloc r41 = rspfs, 2, 9, 2, 0
012010058200 5CE1 mov r8 = 300 // 072348
000188000A00 5CE2 mov r40 = rp ;; // r40 = br0 // 072338
}
{ .mib
0184008421C0 5CF0 cmp4.lt pr7, pr0 = StatusCode, r8 // pr7, pr0 = r33, r8 // 072348
010800100A80 5CF1 mov r42 = gp // r42 = r1 // 072338
00860007A007 5CF2 (pr7) br.cond.dpnt.many L$439 ;; // 072348
}
{ .mmi
0119EA1A8240 5D00 adds r9 = -300, StatusCode ;; // r9 = -300, r33
01AC0090E280 5D01 cmp4.ltu pr10, pr0 = 7, r9
000008000000 5D02 nop.i 0
}
{ .mfb
000008000000 5D10 nop.m 0
000008000000 5D11 nop.f 0
00860001E00A 5D12 (pr10) br.cond.dpnt.many L$444 ;;
}
{ .mib
012000100080 5D20 add r2 = @ltoff($LINK$+192), gp // r2 = @ltoff($LINK$+192), r1
0000B0900280 5D21 sxt4 r10 = r9
004000000000 5D22 nop.b 0 ;;
}
{ .mmi
0080C0200080 5D30 ld8 r2 = $LINK$ ;; // r2 = [r2]
010090214080 5D31 shladd r2 = r10, 3, r2
000008000000 5D32 nop.i 0 ;;
}
{ .mii
0080C02003C0 5D40 ld8 r15 = $LINK$ // r15 = [r2]
000180000080 5D41 mov r2 = ip ;;
01000021E3C0 5D42 add r15 = r15, r2 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 194
HttpStatusCodeExplanation 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mib
000008000000 5D50 nop.m 0
000E0011E180 5D51 mov br6 = r15
00010000D000 5D52 br.sptk.many br6 ;;
}
5D60 L$445: // 072373
{ .mib
012000062B00 5D60 mov out1 = 49 // r44 = 49
010802000AC0 5D61 mov out0 = rqptr // r43 = r32
0080000A1000 5D62 br.sptk.many L$1132 ;;
}
5D70 L$446: // 072375
{ .mib
012000064B00 5D70 mov out1 = 50 // r44 = 50
010802000AC0 5D71 mov out0 = rqptr // r43 = r32
00800009F000 5D72 br.sptk.many L$1132 ;;
}
5D80 L$447: // 072377
{ .mib
012000066B00 5D80 mov out1 = 51 // r44 = 51
010802000AC0 5D81 mov out0 = rqptr // r43 = r32
00800009D000 5D82 br.sptk.many L$1132 ;;
}
5D90 L$448: // 072379
{ .mib
012000068B00 5D90 mov out1 = 52 // r44 = 52
010802000AC0 5D91 mov out0 = rqptr // r43 = r32
00800009B000 5D92 br.sptk.many L$1132 ;;
}
5DA0 L$449: // 072381
{ .mib
01200006AB00 5DA0 mov out1 = 53 // r44 = 53
010802000AC0 5DA1 mov out0 = rqptr // r43 = r32
008000099000 5DA2 br.sptk.many L$1132 ;;
}
5DB0 L$450: // 072383
{ .mib
01200006CB00 5DB0 mov out1 = 54 // r44 = 54
010802000AC0 5DB1 mov out0 = rqptr // r43 = r32
008000097000 5DB2 br.sptk.many L$1132 ;;
}
5DC0 L$451: // 072385
{ .mmi
012000100200 5DC0 add r8 = @ltoff($LITERAL$+744), gp ;; // r8 = @ltoff($LITERAL$+744), r1
0080C0800200 5DC1 ld8 r8 = $LITERAL$ // r8 = [r8]
000008000000 5DC2 nop.i 0
}
{ .mfb
000008000000 5DD0 nop.m 0
000008000000 5DD1 nop.f 0
008000097000 5DD2 br.sptk.many L$453 ;;
}
5DE0 L$452: // 072387
{ .mmi
012000100200 5DE0 add r8 = @ltoff($LITERAL$+720), gp ;; // r8 = @ltoff($LITERAL$+720), r1
0080C0800200 5DE1 ld8 r8 = $LITERAL$ // r8 = [r8]
000008000000 5DE2 nop.i 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 195
HttpStatusCodeExplanation 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfb
000008000000 5DF0 nop.m 0
000008000000 5DF1 nop.f 0
008000093000 5DF2 br.sptk.many L$453 ;;
}
5E00 L$444: // 072348
{ .mmi
012018020880 5E00 mov r34 = 400 ;;
018402242180 5E01 cmp4.lt pr6, pr0 = StatusCode, r34 // pr6, pr0 = r33, r34
000008000000 5E02 nop.i 0
}
{ .mfb
000008000000 5E10 nop.m 0
000008000000 5E11 nop.f 0
008600082006 5E12 (pr6) br.cond.dpnt.many L$454 ;;
}
{ .mmi
0119E21E08C0 5E20 adds r35 = -400, StatusCode ;; // r35 = -400, r33
01AC0232E240 5E21 cmp4.ltu pr9, pr0 = 23, r35
000008000000 5E22 nop.i 0
}
{ .mfb
000008000000 5E30 nop.m 0
000008000000 5E31 nop.f 0
00860003A009 5E32 (pr9) br.cond.dpnt.many L$459 ;;
}
{ .mib
012000100080 5E40 add r2 = @ltoffx($LINK$), gp // r2 = @ltoffx($LINK$), r1
0000B2300900 5E41 sxt4 r36 = r35
004000000000 5E42 nop.b 0 ;;
}
{ .mmi
0080C0200080 5E50 ld8.mov r2 = [r2], $LINK$ ;;
010090248080 5E51 shladd r2 = r36, 3, r2
000008000000 5E52 nop.i 0 ;;
}
{ .mii
0080C02003C0 5E60 ld8 r15 = $LINK$ // r15 = [r2]
000180000080 5E61 mov r2 = ip ;;
01000021E3C0 5E62 add r15 = r15, r2 ;;
}
{ .mib
000008000000 5E70 nop.m 0
000E0011E180 5E71 mov br6 = r15
00010000D000 5E72 br.sptk.many br6 ;;
}
5E80 L$460: // 072389
{ .mib
012000070B00 5E80 mov out1 = 56 // r44 = 56
010802000AC0 5E81 mov out0 = rqptr // r43 = r32
00800007D000 5E82 br.sptk.many L$1132 ;;
}
5E90 L$461: // 072391
{ .mib
012000072B00 5E90 mov out1 = 57 // r44 = 57
010802000AC0 5E91 mov out0 = rqptr // r43 = r32
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 196
HttpStatusCodeExplanation 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00800007B000 5E92 br.sptk.many L$1132 ;;
}
5EA0 L$462: // 072393
{ .mib
012000074B00 5EA0 mov out1 = 58 // r44 = 58
010802000AC0 5EA1 mov out0 = rqptr // r43 = r32
008000079000 5EA2 br.sptk.many L$1132 ;;
}
5EB0 L$463: // 072395
{ .mib
012000076B00 5EB0 mov out1 = 59 // r44 = 59
010802000AC0 5EB1 mov out0 = rqptr // r43 = r32
008000077000 5EB2 br.sptk.many L$1132 ;;
}
5EC0 L$464: // 072397
{ .mib
012000078B00 5EC0 mov out1 = 60 // r44 = 60
010802000AC0 5EC1 mov out0 = rqptr // r43 = r32
008000075000 5EC2 br.sptk.many L$1132 ;;
}
5ED0 L$465: // 072399
{ .mib
01200007AB00 5ED0 mov out1 = 61 // r44 = 61
010802000AC0 5ED1 mov out0 = rqptr // r43 = r32
008000073000 5ED2 br.sptk.many L$1132 ;;
}
5EE0 L$466: // 072401
{ .mib
01200007CB00 5EE0 mov out1 = 62 // r44 = 62
010802000AC0 5EE1 mov out0 = rqptr // r43 = r32
008000071000 5EE2 br.sptk.many L$1132 ;;
}
5EF0 L$467: // 072403
{ .mib
01200007EB00 5EF0 mov out1 = 63 // r44 = 63
010802000AC0 5EF1 mov out0 = rqptr // r43 = r32
00800006F000 5EF2 br.sptk.many L$1132 ;;
}
5F00 L$468: // 072405
{ .mib
012000080B00 5F00 mov out1 = 64 // r44 = 64
010802000AC0 5F01 mov out0 = rqptr // r43 = r32
00800006D000 5F02 br.sptk.many L$1132 ;;
}
5F10 L$469: // 072407
{ .mib
012000082B00 5F10 mov out1 = 65 // r44 = 65
010802000AC0 5F11 mov out0 = rqptr // r43 = r32
00800006B000 5F12 br.sptk.many L$1132 ;;
}
5F20 L$470: // 072409
{ .mib
012000084B00 5F20 mov out1 = 66 // r44 = 66
010802000AC0 5F21 mov out0 = rqptr // r43 = r32
008000069000 5F22 br.sptk.many L$1132 ;;
}
5F30 L$471: // 072411
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 197
HttpStatusCodeExplanation 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mib
012000086B00 5F30 mov out1 = 67 // r44 = 67
010802000AC0 5F31 mov out0 = rqptr // r43 = r32
008000067000 5F32 br.sptk.many L$1132 ;;
}
5F40 L$472: // 072413
{ .mib
012000088B00 5F40 mov out1 = 68 // r44 = 68
010802000AC0 5F41 mov out0 = rqptr // r43 = r32
008000065000 5F42 br.sptk.many L$1132 ;;
}
5F50 L$473: // 072415
{ .mib
01200008AB00 5F50 mov out1 = 69 // r44 = 69
010802000AC0 5F51 mov out0 = rqptr // r43 = r32
008000063000 5F52 br.sptk.many L$1132 ;;
}
5F60 L$474: // 072417
{ .mib
01200008CB00 5F60 mov out1 = 70 // r44 = 70
010802000AC0 5F61 mov out0 = rqptr // r43 = r32
008000061000 5F62 br.sptk.many L$1132 ;;
}
5F70 L$475: // 072419
{ .mib
01200008EB00 5F70 mov out1 = 71 // r44 = 71
010802000AC0 5F71 mov out0 = rqptr // r43 = r32
00800005F000 5F72 br.sptk.many L$1132 ;;
}
5F80 L$476: // 072421
{ .mib
012000090B00 5F80 mov out1 = 72 // r44 = 72
010802000AC0 5F81 mov out0 = rqptr // r43 = r32
00800005D000 5F82 br.sptk.many L$1132 ;;
}
5F90 L$477: // 072423
{ .mib
012000092B00 5F90 mov out1 = 73 // r44 = 73
010802000AC0 5F91 mov out0 = rqptr // r43 = r32
00800005B000 5F92 br.sptk.many L$1132 ;;
}
5FA0 L$478: // 072425
{ .mmi
012000100200 5FA0 add r8 = @ltoff($LITERAL$+696), gp ;; // r8 = @ltoff($LITERAL$+696), r1
0080C0800200 5FA1 ld8 r8 = $LITERAL$ // r8 = [r8]
000008000000 5FA2 nop.i 0
}
{ .mfb
000008000000 5FB0 nop.m 0
000008000000 5FB1 nop.f 0
00800005B000 5FB2 br.sptk.many L$453 ;;
}
5FC0 L$479: // 072427
{ .mmi
012000100200 5FC0 add r8 = @ltoff($LITERAL$+672), gp ;; // r8 = @ltoff($LITERAL$+672), r1
0080C0800200 5FC1 ld8 r8 = $LITERAL$ // r8 = [r8]
000008000000 5FC2 nop.i 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 198
HttpStatusCodeExplanation 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfb
000008000000 5FD0 nop.m 0
000008000000 5FD1 nop.f 0
008000057000 5FD2 br.sptk.many L$453 ;;
}
5FE0 L$480: // 072429
{ .mmi
012000100200 5FE0 add r8 = @ltoff($LITERAL$+664), gp ;; // r8 = @ltoff($LITERAL$+664), r1
0080C0800200 5FE1 ld8 r8 = $LITERAL$ // r8 = [r8]
000008000000 5FE2 nop.i 0
}
{ .mfb
000008000000 5FF0 nop.m 0
000008000000 5FF1 nop.f 0
008000053000 5FF2 br.sptk.many L$453 ;;
}
6000 L$459: // 072348
{ .mmi
0119E2118840 6000 adds in1 = -500, StatusCode ;; // r33 = -500, r33
01AC0210A1C0 6001 cmp4.ltu pr7, pr0 = 5, in1 // pr7, pr0 = 5, r33
000008000000 6002 nop.i 0
}
{ .mfb
000008000000 6010 nop.m 0
000008000000 6011 nop.f 0
008600042007 6012 (pr7) br.cond.dpnt.many L$454 ;;
}
{ .mib
012000100080 6020 add r2 = @ltoff($LINK$+320), gp // r2 = @ltoff($LINK$+320), r1
0000B2100940 6021 sxt4 r37 = in1 // r37 = r33
004000000000 6022 nop.b 0 ;;
}
{ .mmi
0080C0200080 6030 ld8 r2 = $LINK$ ;; // r2 = [r2]
01009024A080 6031 shladd r2 = r37, 3, r2
000008000000 6032 nop.i 0 ;;
}
{ .mii
0080C02003C0 6040 ld8 r15 = $LINK$ // r15 = [r2]
000180000080 6041 mov r2 = ip ;;
01000021E3C0 6042 add r15 = r15, r2 ;;
}
{ .mib
000008000000 6050 nop.m 0
000E0011E180 6051 mov br6 = r15
00010000D000 6052 br.sptk.many br6 ;;
}
6060 L$484: // 072431
{ .mib
012000094B00 6060 mov out1 = 74 // r44 = 74
010802000AC0 6061 mov out0 = rqptr // r43 = r32
008000041000 6062 br.sptk.many L$1132 ;;
}
6070 L$485: // 072433
{ .mib
012000096B00 6070 mov out1 = 75 // r44 = 75
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 199
HttpStatusCodeExplanation 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010802000AC0 6071 mov out0 = rqptr // r43 = r32
00800003F000 6072 br.sptk.many L$1132 ;;
}
6080 L$486: // 072435
{ .mib
012000098B00 6080 mov out1 = 76 // r44 = 76
010802000AC0 6081 mov out0 = rqptr // r43 = r32
00800003D000 6082 br.sptk.many L$1132 ;;
}
6090 L$487: // 072437
{ .mib
01200009AB00 6090 mov out1 = 77 // r44 = 77
010802000AC0 6091 mov out0 = rqptr // r43 = r32
00800003B000 6092 br.sptk.many L$1132 ;;
}
60A0 L$488: // 072439
{ .mib
01200009CB00 60A0 mov out1 = 78 // r44 = 78
010802000AC0 60A1 mov out0 = rqptr // r43 = r32
008000039000 60A2 br.sptk.many L$1132 ;;
}
60B0 L$489: // 072441
{ .mib
01200009EB00 60B0 mov out1 = 79 // r44 = 79
010802000AC0 60B1 mov out0 = rqptr // r43 = r32
008000037000 60B2 br.sptk.many L$1132 ;;
}
60C0 L$439: // 072348
{ .mmi
012008090980 60C0 mov r38 = 200 ;;
018402642180 60C1 cmp4.lt pr6, pr0 = StatusCode, r38 // pr6, pr0 = r33, r38
000008000000 60C2 nop.i 0
}
{ .mfb
000008000000 60D0 nop.m 0
000008000000 60D1 nop.f 0
008600020006 60D2 (pr6) br.cond.dpnt.many L$490 ;;
}
{ .mmi
0119F21709C0 60E0 adds r39 = -200, StatusCode ;; // r39 = -200, r33
01AC0270E240 60E1 cmp4.ltu pr9, pr0 = 7, r39
000008000000 60E2 nop.i 0
}
{ .mfb
000008000000 60F0 nop.m 0
000008000000 60F1 nop.f 0
008600026009 60F2 (pr9) br.cond.dpnt.many L$454 ;;
}
{ .mib
012000100080 6100 add r2 = @ltoff($LINK$+256), gp // r2 = @ltoff($LINK$+256), r1
0000B2700880 6101 sxt4 r34 = r39
004000000000 6102 nop.b 0 ;;
}
{ .mmi
0080C0200080 6110 ld8 r2 = $LINK$ ;; // r2 = [r2]
010090244080 6111 shladd r2 = r34, 3, r2
000008000000 6112 nop.i 0 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 200
HttpStatusCodeExplanation 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mii
0080C02003C0 6120 ld8 r15 = $LINK$ // r15 = [r2]
000180000080 6121 mov r2 = ip ;;
01000021E3C0 6122 add r15 = r15, r2 ;;
}
{ .mib
000008000000 6130 nop.m 0
000E0011E180 6131 mov br6 = r15
00010000D000 6132 br.sptk.many br6 ;;
}
6140 L$495: // 072357
{ .mib
012000054B00 6140 mov out1 = 42 // r44 = 42
010802000AC0 6141 mov out0 = rqptr // r43 = r32
008000025000 6142 br.sptk.many L$1132 ;;
}
6150 L$496: // 072359
{ .mib
012000056B00 6150 mov out1 = 43 // r44 = 43
010802000AC0 6151 mov out0 = rqptr // r43 = r32
008000023000 6152 br.sptk.many L$1132 ;;
}
6160 L$497: // 072361
{ .mib
012000058B00 6160 mov out1 = 44 // r44 = 44
010802000AC0 6161 mov out0 = rqptr // r43 = r32
008000021000 6162 br.sptk.many L$1132 ;;
}
6170 L$498: // 072363
{ .mib
01200005AB00 6170 mov out1 = 45 // r44 = 45
010802000AC0 6171 mov out0 = rqptr // r43 = r32
00800001F000 6172 br.sptk.many L$1132 ;;
}
6180 L$499: // 072365
{ .mib
01200005CB00 6180 mov out1 = 46 // r44 = 46
010802000AC0 6181 mov out0 = rqptr // r43 = r32
00800001D000 6182 br.sptk.many L$1132 ;;
}
6190 L$500: // 072367
{ .mib
01200005EB00 6190 mov out1 = 47 // r44 = 47
010802000AC0 6191 mov out0 = rqptr // r43 = r32
00800001B000 6192 br.sptk.many L$1132 ;;
}
61A0 L$501: // 072369
{ .mib
012000060B00 61A0 mov out1 = 48 // r44 = 48
010802000AC0 61A1 mov out0 = rqptr // r43 = r32
008000019000 61A2 br.sptk.many L$1132 ;;
}
61B0 L$502: // 072371
{ .mmi
012000100200 61B0 add r8 = @ltoff($LITERAL$+648), gp ;; // r8 = @ltoff($LITERAL$+648), r1
0080C0800200 61B1 ld8 r8 = $LITERAL$ // r8 = [r8]
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 201
HttpStatusCodeExplanation 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 61B2 nop.i 0
}
{ .mfb
000008000000 61C0 nop.m 0
000008000000 61C1 nop.f 0
008000019000 61C2 br.sptk.many L$453 ;;
}
61D0 L$490: // 072348
{ .mfb
01CC021C81C0 61D0 cmp4.eq pr7, pr0 = 100, StatusCode // pr7, pr0 = 100, r33
000008000000 61D1 nop.f 0
008600010007 61D2 (pr7) br.cond.dpnt.many L$506 ;;
}
{ .mfb
01CC021CA240 61E0 cmp4.eq pr9, pr0 = 101, StatusCode // pr9, pr0 = 101, r33
000008000000 61E1 nop.f 0
00860000C009 61E2 (pr9) br.cond.dpnt.many L$510 ;;
}
{ .mfb
01CC521CC000 61F0 cmp4.eq pr0, pr10 = 102, StatusCode // pr0, pr10 = 102, r33
000008000000 61F1 nop.f 0
00860000600A 61F2 (pr10) br.cond.dpnt.many L$454 ;;
}
{ .mmi
012000100200 6200 add r8 = @ltoff($LITERAL$+632), gp ;; // r8 = @ltoff($LITERAL$+632), r1 // 072355
0080C0800200 6201 ld8 r8 = $LITERAL$ // r8 = [r8]
000008000000 6202 nop.i 0
}
{ .mfb
000008000000 6210 nop.m 0
000008000000 6211 nop.f 0
00800000F000 6212 br.sptk.many L$453 ;;
}
6220 L$454: // 072443
{ .mmi
012000100200 6220 add r8 = @ltoff($LITERAL$+576), gp ;; // r8 = @ltoff($LITERAL$+576), r1 // 072444
0080C0800200 6221 ld8 r8 = $LITERAL$ // r8 = [r8]
000008000000 6222 nop.i 0
}
{ .mfb
000008000000 6230 nop.m 0
000008000000 6231 nop.f 0
00800000B000 6232 br.sptk.many L$453 ;;
}
6240 L$510: // 072353
{ .mib
012000052B00 6240 mov out1 = 41 // r44 = 41
010802000AC0 6241 mov out0 = rqptr // r43 = r32
008000005000 6242 br.sptk.many L$1132 ;;
}
6250 L$506: // 072351
{ .mii
012000050B00 6250 mov out1 = 40 // r44 = 40
010802000AC0 6251 mov out0 = rqptr // r43 = r32
000008000000 6252 nop.i 0
}
6260 L$1132:
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 202
HttpStatusCodeExplanation 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfb
012000004640 6260 mov ai = 2 // r25 = 2
000008000000 6261 nop.f 0
00A000001000 6262 br.call.sptk.many rp = MsgFor ;; // br0 = MsgFor
}
{ .mfi
010802A00040 6270 mov gp = r42 // r1 = r42
000008000000 6271 nop.f 0
000008000000 6272 nop.i 0
}
6280 L$453:
{ .mii
000008000000 6280 nop.m 0
000154052000 6281 mov.i rspfs = r41 ;;
000E00150000 6282 mov rp = r40 // br0 = r40
}
{ .mfb
000008000000 6290 nop.m 0
000008000000 6291 nop.f 0
000108001100 6292 br.ret.sptk.many rp ;; // br0
}
.endp HttpStatusCodeExplanation
Routine Size: 1472 bytes, Routine Base: $CODE$ + 5CE0
.proc HtmlMetaInfo
.align 32
.global HtmlMetaInfo
HtmlMetaInfo: // 072454
{ .mii
002C00B22A40 62A0 alloc r41 = rspfs, 2, 9, 6, 0
012000100240 62A1 add r9 = @ltoffx(SoftwareID), gp // r9 = @ltoffx(SoftwareID), r1 // 072472
0120800A0380 62A2 mov r14 = 2128 // 072454
}
{ .mmi
01093A07C200 62B0 adds r8 = 5054, rqptr ;; // r8 = 5054, r32 // 072473
0080C0900240 62B1 ld8.mov r9 = [r9], SoftwareID // 072472
010028E183C0 62B2 sub r15 = sp, r14 // r15 = r12, r14 // 072454
}
{ .mii
0108220D0440 62C0 adds r17 = 616, in0 // r17 = 616, r32 // 072475
010800C00080 62C1 mov r2 = sp ;; // r2 = r12 // 072454
01080A070480 62C2 adds r18 = 184, in0 // r18 = 184, r32 // 072480
}
{ .mii
0080C0F00380 62D0 ld8 r14 = [r15] // 072454
010800F00300 62D1 mov sp = r15 // r12 = r15
010800F303C0 62D2 adds r15 = 24, r15 ;; // 072472
}
{ .mii
008C80F12000 62E0 st4 [r15] = r9
000188000A00 62E1 mov r40 = rp // r40 = br0 // 072454
010800F20500 62E2 adds r20 = 16, r15 // 072478
}
{ .mmi
010800F004C0 62F0 adds r19 = 0, r15 ;; // 072471
010800F083C0 62F1 adds r15 = 4, r15 // 072473
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 203
HtmlMetaInfo 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010800100A80 62F2 mov r42 = gp // r42 = r1 // 072454
}
{ .mmi
0108013304C0 6300 adds r19 = 24, r19 ;; // 072471
00BC88F11900 6301 st4 [r15] = r8, -28 // 072473
000008000000 6302 nop.i 0 ;;
}
{ .mmi
008001100440 6310 ld1 r17 = [r17] // 072475
008081200480 6311 ld4 r18 = [r18] // 072480
000008000000 6312 nop.i 0 ;;
}
{ .mii
000008000000 6320 nop.m 0
0000A1100440 6321 sxt1 r17 = r17 // 072475
0000B1200480 6322 sxt4 r18 = r18 ;; // 072480
}
{ .mib
0108712E8480 6330 adds r18 = 1908, r18
01C001100200 6331 cmp.eq pr8, pr0 = r0, r17 // 072475
00860000E008 6332 (pr8) br.cond.dpnt.many L$399 ;;
}
{ .mii
0120001005C0 6340 add r23 = @ltoff($LITERAL$+520), // r23 = @ltoff($LITERAL$+520), r1 // 072477
gp
0108220D0540 6341 adds r21 = 616, rqptr // r21 = 616, r32 // 072478
0108D2070680 6342 adds r26 = 3384, in0 ;; // r26 = 3384, r32 // 072479
}
{ .mii
0080C17005C0 6350 ld8 r23 = $LITERAL$ // r23 = [r23] // 072477
010800F483C0 6351 adds r15 = 36, r15 // 072478
000008000000 6352 nop.i 0 ;;
}
{ .mmi
00BC88F2BF00 6360 st4 [r15] = r21, -4 ;;
00AC80F2E200 6361 st4 [r15] = r23, 8 // 072477
000008000000 6362 nop.i 0 ;;
}
{ .mmi
008081A00680 6370 ld4 r26 = [r26] ;; // 072479
00AC80F34100 6371 st4 [r15] = r26, 4
000008000000 6372 nop.i 0 ;;
}
{ .mfi
00BC88F25500 6380 st4 [r15] = r18, -44 // 072480
000008000000 6381 nop.f 0
000008000000 6382 nop.i 0 ;;
}
{ .mfb
000008000000 6390 nop.m 0
000008000000 6391 nop.f 0
008000009000 6392 br.sptk.many L$400 ;; // 072482
}
63A0 L$399:
{ .mii
012000100700 63A0 add r28 = @ltoff($LITERAL$+480), // r28 = @ltoff($LITERAL$+480), r1 // 072484
gp
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 204
HtmlMetaInfo 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010800C40740 63A1 adds r29 = 32, sp // r29 = 32, r12
010800C48780 63A2 adds r30 = 36, sp // r30 = 36, r12 // 072485
}
{ .mmi
0108014004C0 63B0 mov vecptr = r20 ;; // r19 = r20
0080C1C00700 63B1 ld8 r28 = $LITERAL$ // r28 = [r28] // 072484
000008000000 63B2 nop.i 0 ;;
}
{ .mmi
008C81D38000 63C0 st4 [r29] = r28
008C81E24000 63C1 st4 [r30] = r18 // 072485
000008000000 63C2 nop.i 0 ;;
}
63D0 L$400: // 072486
{ .mfb
01C400042280 63D0 cmp4.eq pr10, pr0 = VmsInfoPtr, r0 // pr10, pr0 = r33, r0 // 072488
000008000000 63D1 nop.f 0
00860004A00A 63D2 (pr10) br.cond.dpnt.many L$402 ;;
}
{ .mmi
0080021007C0 63E0 ld1 r31 = [in1] ;; // r31 = [r33]
000008000000 63E1 nop.m 0
0000A1F007C0 63E2 sxt1 r31 = r31 ;;
}
{ .mfb
01C001F00300 63F0 cmp.eq pr12, pr0 = r0, r31
000008000000 63F1 nop.f 0
00860004600C 63F2 (pr12) br.cond.dpnt.many L$402 ;;
}
{ .mii
012000100880 6400 add r34 = @ltoff(Config+1448), gp // r34 = @ltoff(Config+1448), r1 // 072490
0108013088C0 6401 adds r35 = 4, vecptr // r35 = 4, r19 // 072512
000008000000 6402 nop.i 0 ;;
}
{ .mmi
0080C2200880 6410 ld8 r34 = Config ;; // r34 = [r34] // 072490
008082200880 6411 ld4 r34 = Config // r34 = [r34]
000008000000 6412 nop.i 0 ;;
}
{ .mfb
01C402200380 6420 cmp4.eq pr14, pr0 = r0, r34
000008000000 6421 nop.f 0
00860003C00E 6422 (pr14) br.cond.dpnt.many L$405 ;;
}
{ .mii
012000100900 6430 add r36 = @ltoff($LITERAL$+440), // r36 = @ltoff($LITERAL$+440), r1 // 072492
gp
01081A008980 6431 adds r38 = 388, in0 // r38 = 388, r32 // 072494
0108023109C0 6432 adds r39 = 8, vecptr // r39 = 8, r35 // 072509
}
{ .mmi
010802308940 6440 adds vecptr = 4, r35 ;; // r37 = 4, r35 // 072493
0080C2400900 6441 ld8 r36 = $LITERAL$ // r36 = [r36] // 072492
000008000000 6442 nop.i 0 ;;
}
{ .mmi
008C81348000 6450 st4 [r19] = r36
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 205
HtmlMetaInfo 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
008C82342000 6451 st4 [r35] = VmsInfoPtr // [r35] = r33 // 072493
000008000000 6452 nop.i 0 ;;
}
{ .mmi
008082600980 6460 ld4 r38 = [r38] ;; // 072494
01C402600180 6461 cmp4.eq pr6, pr0 = r0, r38
000008000000 6462 nop.i 0
}
{ .mfb
000008000000 6470 nop.m 0
000008000000 6471 nop.f 0
00860002E006 6472 (pr6) br.cond.dpnt.many L$407 ;;
}
{ .mii
012000100AC0 6480 add out0 = @ltoff($LITERAL$+400), // r43 = @ltoff($LITERAL$+400), r1 // 072496
gp
01CC02604200 6481 cmp4.eq pr8, pr0 = 2, r38 // 072497
000008000000 6482 nop.i 0 ;;
}
{ .mmi
0080C2B00AC0 6490 ld8 out0 = $LITERAL$ ;; // r43 = [r43] // 072496
008C82556000 6491 st4 [r37] = out0 // [r37] = r43
000008000000 6492 nop.i 0
}
{ .mfb
000008000000 64A0 nop.m 0
000008000000 64A1 nop.f 0
008600024008 64A2 (pr8) br.cond.dpnt.many L$411 ;; // 072497
}
{ .mfb
01CC0260A280 64B0 cmp4.eq pr10, pr0 = 5, r38
000008000000 64B1 nop.f 0
00860001E00A 64B2 (pr10) br.cond.dpnt.many L$415 ;;
}
{ .mfb
01CC02684300 64C0 cmp4.eq pr12, pr0 = 66, r38
000008000000 64C1 nop.f 0
00860001800C 64C2 (pr12) br.cond.dpnt.many L$419 ;;
}
{ .mfb
01CC0269A380 64D0 cmp4.eq pr14, pr0 = 77, r38
000008000000 64D1 nop.f 0
00860001200E 64D2 (pr14) br.cond.dpnt.many L$423 ;;
}
{ .mfb
01CC026B03C0 64E0 cmp4.eq pr15, pr0 = 88, r38
000008000000 64E1 nop.f 0
00860000C00F 64E2 (pr15) br.cond.dpnt.many L$427 ;;
}
{ .mfb
01CC3A6C6000 64F0 cmp4.eq pr0, pr7 = 99, r38
000008000000 64F1 nop.f 0
008600006007 64F2 (pr7) br.cond.dpnt.many L$430 ;;
}
{ .mmi
012000100B00 6500 add out1 = @ltoff($LITERAL$+392), // r44 = @ltoff($LITERAL$+392), r1 // 072504
gp ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 206
HtmlMetaInfo 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0080C2C00B00 6501 ld8 out1 = $LITERAL$ // r44 = [r44]
000008000000 6502 nop.i 0 ;;
}
{ .mfb
008C82758000 6510 st4 [r39] = out1 // [r39] = r44
000008000000 6511 nop.f 0
008000027000 6512 br.sptk.many L$432 ;;
}
6520 L$430: // 072505
{ .mmi
012000100B80 6520 add out3 = @ltoff($LITERAL$+384), // r46 = @ltoff($LITERAL$+384), r1
gp ;;
0080C2E00B80 6521 ld8 out3 = $LITERAL$ // r46 = [r46]
000008000000 6522 nop.i 0 ;;
}
{ .mfb
008C8275C000 6530 st4 [r39] = out3 // [r39] = r46
000008000000 6531 nop.f 0
008000023000 6532 br.sptk.many L$432 ;; // 072506
}
6540 L$427: // 072503
{ .mmi
012000100C00 6540 add out5 = @ltoff($LITERAL$+376), // r48 = @ltoff($LITERAL$+376), r1
gp ;;
0080C3000C00 6541 ld8 out5 = $LITERAL$ // r48 = [r48]
000008000000 6542 nop.i 0 ;;
}
{ .mfb
008C82760000 6550 st4 [r39] = out5 // [r39] = r48
000008000000 6551 nop.f 0
00800001F000 6552 br.sptk.many L$432 ;;
}
6560 L$423: // 072502
{ .mmi
012000100240 6560 add r9 = @ltoff($LITERAL$+368), gp ;; // r9 = @ltoff($LITERAL$+368), r1
0080C0900240 6561 ld8 r9 = $LITERAL$ // r9 = [r9]
000008000000 6562 nop.i 0 ;;
}
{ .mfb
008C82712000 6570 st4 [r39] = r9
000008000000 6571 nop.f 0
00800001B000 6572 br.sptk.many L$432 ;;
}
6580 L$419: // 072501
{ .mmi
012000100200 6580 add r8 = @ltoff($LITERAL$+360), gp ;; // r8 = @ltoff($LITERAL$+360), r1
0080C0800200 6581 ld8 r8 = $LITERAL$ // r8 = [r8]
000008000000 6582 nop.i 0 ;;
}
{ .mfb
008C82710000 6590 st4 [r39] = r8
000008000000 6591 nop.f 0
008000017000 6592 br.sptk.many L$432 ;;
}
65A0 L$415: // 072500
{ .mmi
012000100440 65A0 add r17 = @ltoff($LITERAL$+352), // r17 = @ltoff($LITERAL$+352), r1
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 207
HtmlMetaInfo 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
gp ;;
0080C1100440 65A1 ld8 r17 = $LITERAL$ // r17 = [r17]
000008000000 65A2 nop.i 0 ;;
}
{ .mfb
008C82722000 65B0 st4 [r39] = r17
000008000000 65B1 nop.f 0
008000013000 65B2 br.sptk.many L$432 ;;
}
65C0 L$411: // 072499
{ .mmi
0120001005C0 65C0 add r23 = @ltoff($LITERAL$+344), // r23 = @ltoff($LITERAL$+344), r1
gp ;;
0080C17005C0 65C1 ld8 r23 = $LITERAL$ // r23 = [r23]
000008000000 65C2 nop.i 0 ;;
}
{ .mfb
008C8272E000 65D0 st4 [r39] = r23
000008000000 65D1 nop.f 0
00800000F000 65D2 br.sptk.many L$432 ;;
}
65E0 L$407: // 072508
{ .mmi
012000100600 65E0 add r24 = @ltoff($LITERAL$+336), // r24 = @ltoff($LITERAL$+336), r1 // 072509
gp ;;
0080C1800600 65E1 ld8 r24 = $LITERAL$ // r24 = [r24]
000008000000 65E2 nop.i 0 ;;
}
{ .mfb
008C82530000 65F0 st4 [r37] = r24
000008000000 65F1 nop.f 0
00800000B000 65F2 br.sptk.many L$432 ;;
}
6600 L$405: // 072511
{ .mmi
012000100540 6600 add r21 = @ltoff($LITERAL$+336), // r21 = @ltoff($LITERAL$+336), r1 // 072512
gp ;;
0080C1500540 6601 ld8 r21 = $LITERAL$ // r21 = [r21]
000008000000 6602 nop.i 0 ;;
}
{ .mfb
008C8132A000 6610 st4 [r19] = r21
000008000000 6611 nop.f 0
008000007000 6612 br.sptk.many L$432 ;;
}
6620 L$402: // 072514
{ .mmi
012000100640 6620 add ai = @ltoff($LITERAL$+336), gp ;; // r25 = @ltoff($LITERAL$+336), r1 // 072515
0080C1900640 6621 ld8 ai = $LITERAL$ // r25 = [r25]
000008000000 6622 nop.i 0 ;;
}
{ .mfi
008C81332000 6630 st4 [r19] = ai // [r19] = r25
000008000000 6631 nop.f 0
000008000000 6632 nop.i 0
}
6640 L$432:
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 208
HtmlMetaInfo 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mii
0120001006C0 6640 add r27 = @ltoff($LITERAL$+200), // r27 = @ltoff($LITERAL$+200), r1 // 072517
gp
01200000C640 6641 mov ai = 6 // r25 = 6
010800C30C00 6642 adds out5 = 24, sp ;; // r48 = 24, r12
}
{ .mii
0080C1B00BC0 6650 ld8 out4 = $LITERAL$ // r47 = [r27]
010800C20B80 6651 adds out3 = 16, sp // r46 = 16, r12
012080000B40 6652 mov out2 = 2048 // r45 = 2048
}
{ .mmi
010800CB0B00 6660 adds out1 = 88, sp ;; // r44 = 88, r12
010800000AC0 6661 mov out0 = r0 // r43 = r0
000008000000 6662 nop.i 0
}
{ .mfb
000008000000 6670 nop.m 0
000008000000 6671 nop.f 0
00A000001000 6672 br.call.sptk.many rp = FaolSAK ;; // br0 = FaolSAK
}
{ .mii
012060002880 6680 mov r34 = 1537 // 072525
00A0308001C0 6681 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0
010802A00040 6682 mov gp = r42 ;; // r1 = r42 // 072517
}
{ .mmi
01C402210200 6690 cmp4.eq pr8, pr0 = status, r34 ;; // pr8, pr0 = r8, r34 // 072525
01C230000008 6691 (pr8) cmp.eq.or.andcm pr0, pr6 = r0, r0
000008000000 6692 nop.i 0
}
{ .mfb
000008000000 66A0 nop.m 0
000008000000 66A1 nop.f 0
00860000C006 66A2 (pr6) br.cond.dpnt.many L$434 ;;
}
{ .mii
012000100BC0 66B0 add out4 = @ltoffx($LITERAL$), gp // r47 = @ltoffx($LITERAL$), r1 // 072527
01200000A640 66B1 mov ai = 5 // r25 = 5
010800000B40 66B2 mov out2 = r0 // r45 = r0
}
{ .mmi
010802000AC0 66C0 mov out0 = rqptr ;; // r43 = r32
0080C2F00B80 66C1 ld8.mov out3 = [r47], $LITERAL$
012068090BC0 66C2 mov out4 = 1736 // r47 = 1736
}
{ .mib
000008000000 66D0 nop.m 0
0000B0800B00 66D1 sxt4 out1 = status // r44 = r8
00A000001000 66D2 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed
}
{ .mmi
010802A00040 66E0 mov gp = r42 ;; // r1 = r42
012000100200 66E1 add r8 = @ltoff($LITERAL$+168), gp // r8 = @ltoff($LITERAL$+168), r1 // 072528
000008000000 66E2 nop.i 0 ;;
}
{ .mfb
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 209
HtmlMetaInfo 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0080C0800200 66F0 ld8 r8 = $LITERAL$ // r8 = [r8]
000008000000 66F1 nop.f 0
008000017000 66F2 br.sptk.many L$435 ;;
}
6700 L$434: // 072529
{ .mii
010800C20900 6700 adds r36 = 16, sp // r36 = 16, r12 // 072531
012FF80FE840 6701 addl in1 = 65535, r0 // r33 = 65535, r0
000008000000 6702 nop.i 0
}
{ .mlx
012000004640 6710 mov ai = 2 // r25 = 2
8000000003FF 6711 movl r35 = 4294967295 ;;
019FFFDFD1
}
{ .mii
0080C2400900 6720 ld8 r36 = [r36]
010802000AC0 6721 mov out0 = rqptr ;; // r43 = r32
010062442900 6722 and r36 = in1, r36 ;; // r36 = r33, r36
}
{ .mmi
010802402900 6730 adds r36 = 1, r36 ;;
010062348B00 6731 and out1 = r36, r35 // r44 = r36, r35
000008000000 6732 nop.i 0
}
{ .mfb
000008000000 6740 nop.m 0
000008000000 6741 nop.f 0
00A000001000 6742 br.call.sptk.many rp = VmGetHeap ;; // br0 = VmGetHeap
}
{ .mii
010800C209C0 6750 adds r39 = 16, sp // r39 = 16, r12 // 072532
010800800980 6751 mov MetaPtr = r8 // r38 = r8 // 072531
010800CB0B40 6752 adds out2 = 88, sp // r45 = 88, r12 // 072532
}
{ .mmi
010800800AC0 6760 mov out0 = r8 ;; // r43 = r8
0080C27009C0 6761 ld8 r39 = [r39]
010802A00040 6762 mov gp = r42 ;; // r1 = r42 // 072531
}
{ .mmi
010062742840 6770 and in1 = in1, r39 ;; // r33 = r33, r39 // 072532
010802102B00 6771 adds out1 = 1, in1 // r44 = 1, r33
000008000000 6772 nop.i 0
}
{ .mfb
000008000000 6780 nop.m 0
000008000000 6781 nop.f 0
00A000001000 6782 br.call.sptk.many rp = OTS$MOVE ;; // br0 = OTS$MOVE
}
{ .mii
010802600200 6790 mov r8 = MetaPtr // r8 = r38 // 072534
010802A00040 6791 mov gp = r42 // r1 = r42 // 072532
000008000000 6792 nop.i 0 ;;
}
67A0 L$435: // 072534
{ .mii
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 210
HtmlMetaInfo 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 67A0 nop.m 0
000154052000 67A1 mov.i rspfs = r41 ;;
000E00150000 67A2 mov rp = r40 // br0 = r40
}
{ .mfb
010880CA0300 67B0 adds sp = 2128, sp // r12 = 2128, r12
000008000000 67B1 nop.f 0
000108001100 67B2 br.ret.sptk.many rp ;; // br0
}
.endp HtmlMetaInfo
Routine Size: 1312 bytes, Routine Base: $CODE$ + 62A0
.proc DurationString
.align 32
.global DurationString
DurationString: // 072545
{ .mii
002C00614900 67C0 alloc r36 = rspfs, 2, 4, 4, 0
0001880008C0 67C1 mov r35 = rp // r35 = br0
01C400040200 67C2 cmp4.eq pr8, pr0 = rqptr, r0 // pr8, pr0 = r32, r0 // 072570
}
{ .mfb
010800100940 67D0 mov r37 = gp // r37 = r1 // 072545
000008000000 67D1 nop.f 0
008600008008 67D2 (pr8) br.cond.dpnt.many L$351 ;; // 072570
}
{ .mii
012000004640 67E0 mov ai = 2 // r25 = 2 // 072571
0120000409C0 67E1 mov out1 = 32 // r39 = 32
010802000980 67E2 mov out0 = rqptr // r38 = r32
}
{ .mfb
000008000000 67F0 nop.m 0
000008000000 67F1 nop.f 0
00A000001000 67F2 br.call.sptk.many rp = VmGetHeap ;; // br0 = VmGetHeap
}
{ .mib
010800800800 6800 mov sptr = r8 // r32 = r8
010802500040 6801 mov gp = r37 // r1 = r37
00800000F000 6802 br.sptk.many L$352 ;; // 072572
}
6810 L$351:
{ .mii
0120001000C0 6810 add r3 = @gprel(bidx), gp // r3 = @gprel(bidx), r1 // 072574
0120001002C0 6811 add r11 = @ltoffx(buf), gp // r11 = @ltoffx(buf), r1
012000008440 6812 mov r17 = 4 ;; // 072575
}
{ .mmi
008080300240 6820 ld4 r9 = [r3] // 072574
0080C0B002C0 6821 ld8.mov r11 = [r11], buf
000008000000 6822 nop.i 0 ;;
}
{ .mii
000008000000 6830 nop.m 0
00A7C3812280 6831 shl r10 = r9, 7
010800902240 6832 adds r9 = 1, r9 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 211
DurationString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mii
008C80312000 6840 st4 [r3] = r9
0000B0A00280 6841 sxt4 r10 = r10
018401112180 6842 cmp4.lt pr6, pr0 = r9, r17 ;; // 072575
}
{ .mfb
010000A16800 6850 add sptr = r11, r10 // r32 = r11, r10 // 072574
000008000000 6851 nop.f 0
008600004006 6852 (pr6) br.cond.dpnt.many L$352 ;; // 072575
}
{ .mfi
008C80300000 6860 st4 [r3] = r0
000008000000 6861 nop.f 0
000008000000 6862 nop.i 0 ;;
}
6870 L$352: // 072576
{ .mmi
0080C21004C0 6870 ld8 time64 = [in1] ;; // r19 = [r33] // 072578
01D8013FE280 6871 cmp.eq pr10, pr0 = -1, time64 // pr10, pr0 = -1, r19 // 072579
01C041300240 6872 cmp.eq pr9, pr8 = r0, time64 ;; // pr9, pr8 = r0, r19
}
{ .mfb
01C24000000A 6880 (pr10) cmp.eq.or.andcm pr0, pr8 = r0, r0
000008000000 6881 nop.f 0
008600006008 6882 (pr8) br.cond.dpnt.many L$355 ;;
}
{ .mmi
012000100800 6890 add in0 = @ltoff($LITERAL$+160), // r32 = @ltoff($LITERAL$+160), r1 // 072580
gp ;;
0080C2000800 6891 ld8 in0 = $LITERAL$ // r32 = [r32]
000008000000 6892 nop.i 0
}
{ .mfb
000008000000 68A0 nop.m 0
000008000000 68A1 nop.f 0
0080000B3000 68A2 br.sptk.many L$356 ;; // 072581
}
68B0 L$355:
{ .mlx
000008000000 68B0 nop.m 0
01FFFFFFFFFD 68B1 movl r20 = -10000000 ;; // 072582
01AD33C00A
}
{ .mfb
018001426300 68C0 cmp.lt pr12, pr0 = time64, r20 // pr12, pr0 = r19, r20
000008000000 68C1 nop.f 0
00860004600C 68C2 (pr12) br.cond.dpnt.many L$357 ;;
}
{ .mii
010029300540 68D0 sub r21 = r0, time64 // r21 = r0, r19 // 072585
0188013003C0 68D1 cmp.lt pr15, pr0 = 0, time64 // pr15, pr0 = 0, r19
000008000000 68D2 nop.i 0
}
{ .mlx
013D8FCE05C0 68E0 addl r23 = -10000, r0 // 072588
01030E200000 68E1 movl r22 = -4556648864387432448 ;; // 072589
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 212
DurationString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01A000000B
}
{ .mmi
0108015004CF 68F0 (pr15) mov time64 = r21 // r19 = r21 // 072585
00C7C802C200 68F1 setf.d f8 = r22 // 072589
000008000000 68F2 nop.i 0 ;;
}
{ .mii
00C708026180 6900 setf.sig f6 = time64 // f6 = r19 // 072587
01803932E000 6901 cmp.lt pr0, pr7 = r23, time64 // pr0, pr7 = r23, r19 // 072588
000008000000 6902 nop.i 0 ;;
}
{ .mfi
000008000000 6910 nop.m 0
0000E000C1C0 6911 fcvt.xf f7 = f6 // 072587
000008000000 6912 nop.i 0 ;;
}
{ .mfi
000008000000 6920 nop.m 0
0124087001C0 6921 fnorm.d.s1 f7 = f7
000008000000 6922 nop.i 0 ;;
}
{ .mfi
000008000000 6930 nop.m 0
00023080E280 6931 frcpa f10, pr6 = f7, f8 // 072589
000008000000 6932 nop.i 0 ;;
}
{ .mfi
000008000000 6940 nop.m 0
010450700246 6941 (pr6) fma.s1 f9 = f7, f10, f0
000008000000 6942 nop.i 0
}
{ .mfi
000008000000 6950 nop.m 0
0184508022C6 6951 (pr6) fnma.s1 f11 = f8, f10, f1
000008000000 6952 nop.i 0 ;;
}
{ .mfi
000008000000 6960 nop.m 0
010448B12246 6961 (pr6) fma.s1 f9 = f11, f9, f9
000008000000 6962 nop.i 0
}
{ .mfi
000008000000 6970 nop.m 0
010458B00306 6971 (pr6) fma.s1 f12 = f11, f11, f0
000008000000 6972 nop.i 0 ;;
}
{ .mfi
000008000000 6980 nop.m 0
010450B14346 6981 (pr6) fma.s1 f13 = f11, f10, f10
000008000000 6982 nop.i 0 ;;
}
{ .mfi
000008000000 6990 nop.m 0
010448C12246 6991 (pr6) fma.s1 f9 = f12, f9, f9
000008000000 6992 nop.i 0
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 213
DurationString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfi
000008000000 69A0 nop.m 0
010460C002C6 69A1 (pr6) fma.s1 f11 = f12, f12, f0
000008000000 69A2 nop.i 0 ;;
}
{ .mfi
000008000000 69B0 nop.m 0
010468C1A346 69B1 (pr6) fma.s1 f13 = f12, f13, f13
000008000000 69B2 nop.i 0 ;;
}
{ .mfi
000008000000 69C0 nop.m 0
012448B12246 69C1 (pr6) fma.d.s1 f9 = f11, f9, f9
000008000000 69C2 nop.i 0 ;;
}
{ .mfi
000008000000 69D0 nop.m 0
010468B1A346 69D1 (pr6) fma.s1 f13 = f11, f13, f13
000008000000 69D2 nop.i 0 ;;
}
{ .mfi
000008000000 69E0 nop.m 0
01A44880E2C6 69E1 (pr6) fnma.d.s1 f11 = f8, f9, f7
000008000000 69E2 nop.i 0 ;;
}
{ .mfi
000008000000 69F0 nop.m 0
012068B12286 69F1 (pr6) fma.d f10 = f11, f13, f9
000008000000 69F2 nop.i 0 ;;
}
{ .mfb
000008000000 6A00 nop.m 0
000080A14380 6A01 mov f14 = f10 // 072594
008600008007 6A02 (pr7) br.cond.dpnt.many L$359 ;; // 072588
}
{ .mii
012000100600 6A10 add r24 = @ltoff($LITERAL$+144), // r24 = @ltoff($LITERAL$+144), r1 // 072589
gp
012400406640 6A11 addl ai = 81923, r0 // r25 = 81923, r0
010802000980 6A12 mov out0 = sptr ;; // r38 = r32
}
{ .mfb
0080C18009C0 6A20 ld8 out1 = $LITERAL$ // r39 = [r24]
000008000000 6A21 nop.f 0
00A000001000 6A22 br.call.sptk.many rp = DECC$TXSPRINTF ;; // br0 = DECC$TXSPRINTF
}
{ .mfb
010802500040 6A30 mov gp = r37 // r1 = r37
000008000000 6A31 nop.f 0
008000081000 6A32 br.sptk.many L$356 ;; // 072590
}
6A40 L$359:
{ .mmi
013BDC080840 6A40 addl in1 = -1000000, r0 ;; // r33 = -1000000, r0 // 072591
018031342000 6A41 cmp.lt pr0, pr6 = in1, time64 // pr0, pr6 = r33, r19
000008000000 6A42 nop.i 0
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 214
DurationString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfb
000008000000 6A50 nop.m 0
000008000000 6A51 nop.f 0
00860000C006 6A52 (pr6) br.cond.dpnt.many L$361 ;;
}
{ .mii
0120001000C0 6A60 add r3 = @ltoff($LITERAL$+136), gp // r3 = @ltoff($LITERAL$+136), r1 // 072592
012400406640 6A61 addl ai = 81923, r0 // r25 = 81923, r0
010802000980 6A62 mov out0 = sptr // r38 = r32
}
{ .mfb
000008000000 6A70 nop.m 0
000080E1C280 6A71 mov f10 = f14
004000000000 6A72 nop.b 0 ;;
}
{ .mmi
0080C03000C0 6A80 ld8 r3 = $LITERAL$ ;; // r3 = [r3]
0108003009C0 6A81 mov out1 = r3 // r39 = r3
000008000000 6A82 nop.i 0
}
{ .mfb
000008000000 6A90 nop.m 0
000008000000 6A91 nop.f 0
00A000001000 6A92 br.call.sptk.many rp = DECC$TXSPRINTF ;; // br0 = DECC$TXSPRINTF
}
{ .mfb
010802500040 6AA0 mov gp = r37 // r1 = r37
000008000000 6AA1 nop.f 0
008000073000 6AA2 br.sptk.many L$356 ;; // 072593
}
6AB0 L$361:
{ .mii
012000100840 6AB0 add in1 = @ltoff($LITERAL$+128), // r33 = @ltoff($LITERAL$+128), r1 // 072594
gp
012400406640 6AB1 addl ai = 81923, r0 // r25 = 81923, r0
010802000980 6AB2 mov out0 = sptr // r38 = r32
}
{ .mfb
000008000000 6AC0 nop.m 0
000080E1C280 6AC1 mov f10 = f14
004000000000 6AC2 nop.b 0 ;;
}
{ .mfb
0080C21009C0 6AD0 ld8 out1 = $LITERAL$ // r39 = [r33]
000008000000 6AD1 nop.f 0
00A000001000 6AD2 br.call.sptk.many rp = DECC$TXSPRINTF ;; // br0 = DECC$TXSPRINTF
}
{ .mfb
010802500040 6AE0 mov gp = r37 // r1 = r37
000008000000 6AE1 nop.f 0
00800006B000 6AE2 br.sptk.many L$356 ;;
}
6AF0 L$357: // 072596
{ .mlx
000008000000 6AF0 nop.m 0
01FFFFFFFF70 6AF1 movl r34 = -600000000 ;; // 072597
01B74E4011
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 215
DurationString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfb
018002226180 6B00 cmp.lt pr6, pr0 = time64, r34 // pr6, pr0 = r19, r34
000008000000 6B01 nop.f 0
008600036006 6B02 (pr6) br.cond.dpnt.many L$363 ;;
}
{ .mlx
00C708026180 6B10 setf.sig f6 = time64 // f6 = r19 // 072600
81058C4B4000 6B11 movl r3 = -4511741717132607488 ;; // 072602
01A0000001
}
{ .mlx
00C7C8006200 6B20 setf.d f8 = r3
01FFFFFFFFE8 6B21 movl r8 = -100000000 ;; // 072601
01A3E50004
}
{ .mfi
018049310000 6B30 cmp.lt pr0, pr9 = r8, time64 // pr0, pr9 = r8, r19
000008000000 6B31 nop.f 0
000008000000 6B32 nop.i 0 ;;
}
{ .mfi
000008000000 6B40 nop.m 0
0000E000C1C0 6B41 fcvt.xf f7 = f6 // 072600
000008000000 6B42 nop.i 0 ;;
}
{ .mfi
000008000000 6B50 nop.m 0
0124087001C0 6B51 fnorm.d.s1 f7 = f7
000008000000 6B52 nop.i 0 ;;
}
{ .mfi
000008000000 6B60 nop.m 0
00024080E280 6B61 frcpa f10, pr8 = f7, f8 // 072602
000008000000 6B62 nop.i 0 ;;
}
{ .mfi
000008000000 6B70 nop.m 0
010450700248 6B71 (pr8) fma.s1 f9 = f7, f10, f0
000008000000 6B72 nop.i 0
}
{ .mfi
000008000000 6B80 nop.m 0
0184508022C8 6B81 (pr8) fnma.s1 f11 = f8, f10, f1
000008000000 6B82 nop.i 0 ;;
}
{ .mfi
000008000000 6B90 nop.m 0
010448B12248 6B91 (pr8) fma.s1 f9 = f11, f9, f9
000008000000 6B92 nop.i 0
}
{ .mfi
000008000000 6BA0 nop.m 0
010458B00308 6BA1 (pr8) fma.s1 f12 = f11, f11, f0
000008000000 6BA2 nop.i 0 ;;
}
{ .mfi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 216
DurationString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 6BB0 nop.m 0
010450B14348 6BB1 (pr8) fma.s1 f13 = f11, f10, f10
000008000000 6BB2 nop.i 0 ;;
}
{ .mfi
000008000000 6BC0 nop.m 0
010448C12248 6BC1 (pr8) fma.s1 f9 = f12, f9, f9
000008000000 6BC2 nop.i 0
}
{ .mfi
000008000000 6BD0 nop.m 0
010460C002C8 6BD1 (pr8) fma.s1 f11 = f12, f12, f0
000008000000 6BD2 nop.i 0 ;;
}
{ .mfi
000008000000 6BE0 nop.m 0
010468C1A348 6BE1 (pr8) fma.s1 f13 = f12, f13, f13
000008000000 6BE2 nop.i 0 ;;
}
{ .mfi
000008000000 6BF0 nop.m 0
012448B12248 6BF1 (pr8) fma.d.s1 f9 = f11, f9, f9
000008000000 6BF2 nop.i 0 ;;
}
{ .mfi
000008000000 6C00 nop.m 0
010468B1A348 6C01 (pr8) fma.s1 f13 = f11, f13, f13
000008000000 6C02 nop.i 0 ;;
}
{ .mfi
000008000000 6C10 nop.m 0
01A44880E2C8 6C11 (pr8) fnma.d.s1 f11 = f8, f9, f7
000008000000 6C12 nop.i 0 ;;
}
{ .mfi
000008000000 6C20 nop.m 0
012068B12288 6C21 (pr8) fma.d f10 = f11, f13, f9
000008000000 6C22 nop.i 0 ;;
}
{ .mfb
000008000000 6C30 nop.m 0
000080A14380 6C31 mov f14 = f10 // 072604
008600008009 6C32 (pr9) br.cond.dpnt.many L$365 ;; // 072601
}
{ .mii
012000100240 6C40 add r9 = @ltoff($LITERAL$+120), gp // r9 = @ltoff($LITERAL$+120), r1 // 072602
012400406640 6C41 addl ai = 81923, r0 // r25 = 81923, r0
010802000980 6C42 mov out0 = sptr ;; // r38 = r32
}
{ .mfb
0080C09009C0 6C50 ld8 out1 = $LITERAL$ // r39 = [r9]
000008000000 6C51 nop.f 0
00A000001000 6C52 br.call.sptk.many rp = DECC$TXSPRINTF ;; // br0 = DECC$TXSPRINTF
}
{ .mfb
010802500040 6C60 mov gp = r37 // r1 = r37
000008000000 6C61 nop.f 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 217
DurationString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00800003B000 6C62 br.sptk.many L$356 ;; // 072603
}
6C70 L$365:
{ .mii
012000100880 6C70 add r34 = @ltoff($LITERAL$+112), // r34 = @ltoff($LITERAL$+112), r1 // 072604
gp
012400406640 6C71 addl ai = 81923, r0 // r25 = 81923, r0
010802000980 6C72 mov out0 = sptr // r38 = r32
}
{ .mfb
000008000000 6C80 nop.m 0
000080E1C280 6C81 mov f10 = f14
004000000000 6C82 nop.b 0 ;;
}
{ .mfb
0080C22009C0 6C90 ld8 out1 = $LITERAL$ // r39 = [r34]
000008000000 6C91 nop.f 0
00A000001000 6C92 br.call.sptk.many rp = DECC$TXSPRINTF ;; // br0 = DECC$TXSPRINTF
}
{ .mfb
010802500040 6CA0 mov gp = r37 // r1 = r37
000008000000 6CA1 nop.f 0
008000033000 6CA2 br.sptk.many L$356 ;;
}
6CB0 L$363: // 072606
{ .mii
012000040240 6CB0 mov r9 = 32 // 072618
012000100200 6CB1 add r8 = @gprel(TimeDsc), gp // r8 = @gprel(TimeDsc), r1 // 072617
000008000000 6CB2 nop.i 0
}
{ .mlx
0120001000C0 6CC0 add r3 = @gprel(DateFaoDsc), gp // r3 = @gprel(DateFaoDsc), r1 // 072619
01FFFFFCDB56 6CC1 movl r34 = -864000000000 ;; // 072607
01A80B0011
}
{ .mfb
018002226180 6CD0 cmp.lt pr6, pr0 = time64, r34 // pr6, pr0 = r19, r34
000008000000 6CD1 nop.f 0
00860000C006 6CD2 (pr6) br.cond.dpnt.many L$367 ;;
}
{ .mii
010800808200 6CE0 adds r8 = 4, r8 // 072610
012000008640 6CE1 mov ai = 4 // r25 = 4 // 072612
010802100A40 6CE2 mov out3 = Time64Ptr // r41 = r33
}
{ .mmi
0120000009C0 6CF0 mov out1 = 0 ;; // r39 = 0
00BC88841F00 6CF1 st4 [r8] = sptr, -4 // [r8] = r32, -4 // 072610
010800310A00 6CF2 adds out2 = 8, r3 // r40 = 8, r3 // 072612
}
{ .mmi
010800320980 6D00 adds out0 = 16, r3 ;; // r38 = 16, r3
008C40812000 6D01 st2 [r8] = r9 // 072611
000008000000 6D02 nop.i 0
}
{ .mfb
000008000000 6D10 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 218
DurationString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 6D11 nop.f 0
00A000001000 6D12 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO // 072612
}
{ .mfb
010802500040 6D20 mov gp = r37 // r1 = r37
000008000000 6D21 nop.f 0
008000023000 6D22 br.sptk.many L$356 ;; // 072614
}
6D30 L$367:
{ .mmi
010800310A00 6D30 adds out2 = 8, r3 // r40 = 8, r3 // 072619
00AC40812100 6D31 st2 [r8] = r9, 4 // 072618
012000008640 6D32 mov ai = 4 ;; // r25 = 4 // 072619
}
{ .mii
010802100A40 6D40 mov out3 = Time64Ptr // r41 = r33
0120000009C0 6D41 mov out1 = 0 // r39 = 0
010800300980 6D42 mov out0 = r3 // r38 = r3
}
{ .mfb
008C80840000 6D50 st4 [r8] = sptr // [r8] = r32 // 072617
000008000000 6D51 nop.f 0
00A000001000 6D52 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO // 072619
}
{ .mii
00A002008880 6D60 ld1 r34 = [in0], 4 // r34 = [r32], 4 // 072621
012008040840 6D61 mov in1 = 160 // r33 = 160 // 072620
010802500040 6D62 mov gp = r37 ;; // r1 = r37 // 072619
}
{ .mmi
01C832240000 6D70 cmp.eq pr0, pr6 = 32, r34 // 072621
00BC0A043F00 6D71 st1 [in0] = in1, -4 // [r32] = r33, -4 // 072620
000008000000 6D72 nop.i 0 ;;
}
{ .mfb
000008000000 6D80 nop.m 0
000008000000 6D81 nop.f 0
008600016006 6D82 (pr6) br.cond.dpnt.many L$356 ;; // 072621
}
6D90 L$372:
{ .mmi
010802002800 6D90 adds in0 = 1, in0 ;; // r32 = 1, r32
008002000200 6D91 ld1 r8 = [in0] // r8 = [r32]
000008000000 6D92 nop.i 0 ;;
}
{ .mfb
01C840840000 6DA0 cmp.eq pr0, pr8 = 32, r8
000008000000 6DA1 nop.f 0
008600012008 6DA2 (pr8) br.cond.dpnt.many L$356 ;;
}
{ .mmi
010802002800 6DB0 adds in0 = 1, in0 ;; // r32 = 1, r32
008002000240 6DB1 ld1 r9 = [in0] // r9 = [r32]
000008000000 6DB2 nop.i 0 ;;
}
{ .mfb
01C850940000 6DC0 cmp.eq pr0, pr10 = 32, r9
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 219
DurationString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 6DC1 nop.f 0
00860000E00A 6DC2 (pr10) br.cond.dpnt.many L$356 ;;
}
{ .mmi
010802002800 6DD0 adds in0 = 1, in0 ;; // r32 = 1, r32
008002000280 6DD1 ld1 r10 = [in0] // r10 = [r32]
000008000000 6DD2 nop.i 0 ;;
}
{ .mfb
01C860A40000 6DE0 cmp.eq pr0, pr12 = 32, r10
000008000000 6DE1 nop.f 0
00860000A00C 6DE2 (pr12) br.cond.dpnt.many L$356 ;;
}
{ .mmi
010802002800 6DF0 adds in0 = 1, in0 ;; // r32 = 1, r32
0080020002C0 6DF1 ld1 r11 = [in0] // r11 = [r32]
000008000000 6DF2 nop.i 0 ;;
}
{ .mfb
01C870B40000 6E00 cmp.eq pr0, pr14 = 32, r11
000008000000 6E01 nop.f 0
00860000600E 6E02 (pr14) br.cond.dpnt.many L$356 ;;
}
{ .mmi
010802002800 6E10 adds in0 = 1, in0 ;; // r32 = 1, r32
008002000440 6E11 ld1 r17 = [in0] // r17 = [r32]
010842000480 6E12 adds r18 = 1024, in0 ;; // r18 = 1024, r32
}
{ .mib
00CB01200000 6E20 lfetch [r18]
01C8011401C0 6E21 cmp.eq pr7, pr0 = 32, r17
0095FFFEE007 6E22 (pr7) br.cond.dptk.many L$372 ;;
}
6E30 L$356: // 072622
{ .mii
010802000200 6E30 mov r8 = sptr // r8 = r32 // 072624
000154048000 6E31 mov.i rspfs = r36 ;;
000E00146000 6E32 mov rp = r35 // br0 = r35
}
{ .mfb
000008000000 6E40 nop.m 0
000008000000 6E41 nop.f 0
000108001100 6E42 br.ret.sptk.many rp ;; // br0
}
.endp DurationString
Routine Size: 1680 bytes, Routine Base: $CODE$ + 67C0
.proc AverageDurationString
.align 32
.global AverageDurationString
AverageDurationString: // 072632
{ .mii
002C0081A980 6E50 alloc r38 = rspfs, 3, 5, 5, 0
012000020380 6E51 mov r14 = 16
010800C00080 6E52 mov r2 = sp // r2 = r12
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 220
AverageDurationString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
01C402200200 6E60 cmp4.eq pr8, pr0 = r0, Count ;; // pr8, pr0 = r0, r34 // 072653
010028E183C0 6E61 sub r15 = sp, r14 // r15 = r12, r14 // 072632
000188000940 6E62 mov r37 = rp ;; // r37 = br0
}
{ .mii
0080C0F00380 6E70 ld8 r14 = [r15]
010800F00300 6E71 mov sp = r15 // r12 = r15
010800F303C0 6E72 adds r15 = 24, r15 // 072652
}
{ .mmi
0108001009C0 6E80 mov r39 = gp ;; // r39 = r1 // 072632
00BCC8F01A00 6E81 st8 [r15] = r0, -24 // 072652
000008000000 6E82 nop.i 0 ;;
}
{ .mfb
000008000000 6E90 nop.m 0
000008000000 6E91 nop.f 0
00860003C008 6E92 (pr8) br.cond.dpnt.many L$391 ;; // 072653
}
{ .mii
0111621F0280 6EA0 and r10 = -8, in1 // r10 = -8, r33 // 072655
000092200880 6EA1 zxt4 in2 = Count // r34 = r34 // 072656
012000004640 6EA2 mov ai = 2 // r25 = 2 // 072659
}
{ .mmi
010800F30A40 6EB0 adds out1 = 24, r15 ;; // r41 = 24, r15
00C708044180 6EB1 setf.sig f6 = in2 // f6 = r34 // 072656
01C058A42000 6EB2 cmp.eq pr0, pr11 = in1, r10 // pr0, pr11 = r33, r10 // 072655
}
{ .mii
00A0C0A10480 6EC0 ld8 r18 = [r10], 8
010800F20A00 6EC1 adds out0 = 16, r15 ;; // r40 = 16, r15 // 072659
009E100422CB 6EC2 (pr11) dep r11 = in1, r0, 3, 3 ;; // r11 = r33, r0, 3, 3 // 072655
}
{ .mmi
0080C0A0044B 6ED0 (pr11) ld8 r17 = [r10] ;;
000008000000 6ED1 nop.m 0
00F20121648B 6ED2 (pr11) shr.u r18 = r18, r11
}
{ .mfi
010128B802CB 6EE0 (pr11) sub r11 = 64, r11
000008000000 6EE1 nop.f 0
000008000000 6EE2 nop.i 0 ;;
}
{ .mfi
000008000000 6EF0 nop.m 0
0100086001C0 6EF1 fcvt.xuf f7 = f6 // 072656
000008000000 6EF2 nop.i 0 ;;
}
{ .mib
000008000000 6F00 nop.m 0
00F240B2244B 6F01 (pr11) shl r17 = r17, r11 // 072655
004000000000 6F02 nop.b 0 ;;
}
{ .mfi
000008000000 6F10 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 221
AverageDurationString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0114087001C0 6F11 fnorm.s.s1 f7 = f7 // 072656
000008000000 6F12 nop.i 0 ;;
}
{ .mmi
01007122248B 6F20 (pr11) or r18 = r17, r18 ;; // 072655
010800F303C0 6F21 adds r15 = 24, r15
000008000000 6F22 nop.i 0 ;;
}
{ .mfi
00BCC8F25E00 6F30 st8 [r15] = r18, -8
000008000000 6F31 nop.f 0
000008000000 6F32 nop.i 0 ;;
}
{ .mfi
000008000000 6F40 nop.m 0
000248702200 6F41 frcpa f8, pr9 = f1, f7 // 072657
000008000000 6F42 nop.i 0 ;;
}
{ .mfi
000008000000 6F50 nop.m 0
010440100249 6F51 (pr9) fma.s1 f9 = f1, f8, f0
000008000000 6F52 nop.i 0
}
{ .mfi
000008000000 6F60 nop.m 0
018440702289 6F61 (pr9) fnma.s1 f10 = f7, f8, f1
000008000000 6F62 nop.i 0 ;;
}
{ .mfi
000008000000 6F70 nop.m 0
010448A12249 6F71 (pr9) fma.s1 f9 = f10, f9, f9
000008000000 6F72 nop.i 0
}
{ .mfi
000008000000 6F80 nop.m 0
010450A00289 6F81 (pr9) fma.s1 f10 = f10, f10, f0
000008000000 6F82 nop.i 0 ;;
}
{ .mfi
000008000000 6F90 nop.m 0
010448A12249 6F91 (pr9) fma.s1 f9 = f10, f9, f9
000008000000 6F92 nop.i 0
}
{ .mfi
000008000000 6FA0 nop.m 0
010450A00289 6FA1 (pr9) fma.s1 f10 = f10, f10, f0
000008000000 6FA2 nop.i 0 ;;
}
{ .mfi
000008000000 6FB0 nop.m 0
012448A12249 6FB1 (pr9) fma.d.s1 f9 = f10, f9, f9
000008000000 6FB2 nop.i 0 ;;
}
{ .mfi
000008000000 6FC0 nop.m 0
011008900209 6FC1 (pr9) fma.s f8 = f9, f1, f0
000008000000 6FC2 nop.i 0 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 222
AverageDurationString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfi
00FC88F11C00 6FD0 stfs [r15] = f8, -16
000008000000 6FD1 nop.f 0
000008000000 6FD2 nop.i 0 ;;
}
{ .mfb
000008000000 6FE0 nop.m 0
000008000000 6FE1 nop.f 0
00A000001000 6FE2 br.call.sptk.many rp = // br0 = LIB$MULTS_DELTA_TIME // 072659
LIB$MULTS_DELTA_TIME ;;
}
{ .mib
010802700040 6FF0 mov gp = r39 // r1 = r39
00A0308001C0 6FF1 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0 // 072660
008600010006 6FF2 (pr6) br.cond.dpnt.many L$391 ;;
}
{ .mmi
01283D4B88C0 7000 addl r35 = 1410012, r0 ;; // 072662
01C402310240 7001 cmp4.eq pr9, pr0 = status, r35 // pr9, pr0 = r8, r35
000008000000 7002 nop.i 0
}
{ .mfb
000008000000 7010 nop.m 0
000008000000 7011 nop.f 0
00860000A009 7012 (pr9) br.cond.dpnt.many L$394 ;;
}
{ .mii
012000100B00 7020 add out4 = @ltoffx($LITERAL$), gp // r44 = @ltoffx($LITERAL$), r1 // 072663
01200000A640 7021 mov ai = 5 // r25 = 5
010800000A80 7022 mov out2 = r0 // r42 = r0
}
{ .mmi
010802000A00 7030 mov out0 = rqptr ;; // r40 = r32
0080C2C00AC0 7031 ld8.mov out3 = [r44], $LITERAL$
0120700A0B00 7032 mov out4 = 1872 // r44 = 1872
}
{ .mib
000008000000 7040 nop.m 0
0000B0800A40 7041 sxt4 out1 = status // r41 = r8
00A000001000 7042 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed
}
{ .mfi
010802700040 7050 mov gp = r39 // r1 = r39
000008000000 7051 nop.f 0
000008000000 7052 nop.i 0
}
7060 L$394:
{ .mmi
010800C30900 7060 adds r36 = 24, sp ;; // r36 = 24, r12 // 072664
008CC2400000 7061 st8 [r36] = r0
000008000000 7062 nop.i 0
}
7070 L$391: // 072666
{ .mib
010800C30A40 7070 adds out1 = 24, sp // r41 = 24, r12 // 072667
010802000A00 7071 mov out0 = rqptr // r40 = r32
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 223
AverageDurationString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00A000001000 7072 br.call.sptk.many rp = DurationString ;; // br0 = DurationString
}
{ .mii
000008000000 7080 nop.m 0
00015404C000 7081 mov.i rspfs = r38 ;;
000E0014A000 7082 mov rp = r37 // br0 = r37
}
{ .mfb
010800C20300 7090 adds sp = 16, sp // r12 = 16, r12
000008000000 7091 nop.f 0
000108001100 7092 br.ret.sptk.many rp ;; // br0
}
.endp AverageDurationString
Routine Size: 592 bytes, Routine Base: $CODE$ + 6E50
.proc ThisLongAgo
.align 32
.global ThisLongAgo
ThisLongAgo: // 072677
{ .mii
002C00B20A40 70A0 alloc r41 = rspfs, 2, 9, 5, 0
012000020380 70A1 mov r14 = 16
010802100280 70A2 mov r10 = in1 // r10 = r33 // 072698
}
{ .mmi
012000060200 70B0 mov r8 = 48 ;;
010028E183C0 70B1 sub r15 = sp, r14 // r15 = r12, r14 // 072677
010800C00080 70B2 mov r2 = sp ;; // r2 = r12
}
{ .mii
0080C0F00380 70C0 ld8 r14 = [r15]
010800F00300 70C1 mov sp = r15 // r12 = r15
00A5B88202C0 70C2 shr.u r11 = r8, 8 ;; // 072698
}
{ .mii
00AC00A10040 70D0 st1 [r10] = r8, 1
000188000A00 70D1 mov r40 = rp // r40 = br0 // 072677
010800100A80 70D2 mov r42 = gp ;; // r42 = r1
}
{ .mmi
008C00A16000 70E0 st1 [r10] = r11 ;; // 072698
0080C2000440 70E1 ld8 r17 = [in0] // r17 = [r32] // 072700
000008000000 70E2 nop.i 0 ;;
}
{ .mbb
01C039100000 70F0 cmp.eq pr0, pr7 = r0, r17
008600002007 70F1 (pr7) br.cond.dpnt.many L$335
00800006D000 70F2 br.sptk.many L$340 ;;
}
7100 L$335:
{ .mib
012000002640 7100 mov ai = 1 // r25 = 1 // 072702
010800C20AC0 7101 adds out0 = 16, sp // r43 = 16, r12
00A000001000 7102 br.call.sptk.many rp = SYS$GETTIM ;; // br0 = SYS$GETTIM
}
{ .mmi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 224
ThisLongAgo 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010800C20880 7110 adds r34 = 16, sp // r34 = 16, r12 // 072703
0080C2000800 7111 ld8 in0 = [in0] // r32 = [r32]
010802A00040 7112 mov gp = r42 ;; // r1 = r42 // 072702
}
{ .mii
0080C2200880 7120 ld8 r34 = [r34] // 072703
012000020240 7121 mov r9 = 16 // 072706
000008000000 7122 nop.i 0
}
{ .mlx
0125184009C0 7130 addl r39 = 86400, r0 // 072710
015AFE535795 7131 movl r36 = -2972493582642298179 ;; // 072703
01A85D4F52
}
{ .mmi
01002A044800 7140 sub in0 = r34, in0 // r32 = r34, r32
00C708048200 7141 setf.sig f8 = r36
0120001000C0 7142 add r3 = @gprel(AgoBufDsc), gp ;; // r3 = @gprel(AgoBufDsc), r1 // 072705
}
{ .mii
018000040180 7150 cmp.lt pr6, pr0 = in0, r0 // pr6, pr0 = r32, r0 // 072703
0108020008C0 7151 mov r35 = in0 // r35 = r32
0180000401C0 7152 cmp.lt pr7, pr0 = in0, r0 // pr7, pr0 = r32, r0
}
{ .mmi
0108003080C0 7160 adds r3 = 4, r3 ;; // 072705
01002A0008C6 7161 (pr6) sub r35 = r0, in0 // r35 = r0, r32 // 072703
000008000000 7162 nop.i 0
}
{ .mmi
00BC88343F00 7170 st4 [r3] = AgoBuf, -4 ;; // [r3] = r33, -4 // 072705
00C7080461C0 7171 setf.sig f7 = r35 // 072703
000008000000 7172 nop.i 0
}
{ .mfi
008C40312000 7180 st2 [r3] = r9 // 072706
000008000000 7181 nop.f 0
000008000000 7182 nop.i 0 ;;
}
{ .mfi
000008000000 7190 nop.m 0
01D840700180 7191 xma.hu f6 = f7, f8, f0 // 072703
000008000000 7192 nop.i 0 ;;
}
{ .mmi
00870800C8C0 71A0 getf.sig r35 = f6 ;;
000008000000 71A1 nop.m 0
00A54235C980 71A2 shr.u r38 = r35, 23 ;;
}
{ .mmi
01002A600940 71B0 sub r37 = r0, r38 ;;
010802500987 71B1 (pr7) mov r38 = r37
000008000000 71B2 nop.i 0 ;;
}
{ .mii
000008000000 71C0 nop.m 0
000092600980 71C1 zxt4 SecsAgo = r38 ;; // r38 = r38
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 225
ThisLongAgo 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01A40274C200 71C2 cmp4.ltu pr8, pr0 = SecsAgo, r39 // pr8, pr0 = r38, r39 // 072710
}
{ .mfb
000008000000 71D0 nop.m 0
000008000000 71D1 nop.f 0
008600014008 71D2 (pr8) br.cond.dpnt.many L$338 ;;
}
{ .mii
0111626FC2C0 71E0 and r11 = -2, SecsAgo // r11 = -2, r38 // 072711
012000060480 71E1 mov r18 = 48
000008000000 71E2 nop.i 0
}
{ .mlx
012000100500 71F0 add r20 = @ltoff($LITERAL$+104), // r20 = @ltoff($LITERAL$+104), r1
gp
800000000308 71F1 movl r17 = 3257812231 ;;
0188A741C8
}
{ .mmi
00C7080222C0 7200 setf.sig f11 = r17
00C708016280 7201 setf.sig f10 = r11
012000100AC0 7202 add out0 = @gprel(AgoFaoDsc), gp ;; // r43 = @gprel(AgoFaoDsc), r1
}
{ .mii
0080C1400BC0 7210 ld8 out4 = $LITERAL$ // r47 = [r20]
01200000A640 7211 mov ai = 5 // r25 = 5
012000000B00 7212 mov out1 = 0 // r44 = 0
}
{ .mfb
010802B10B40 7220 adds out2 = 8, out0 // r45 = 8, r43
000008000000 7221 nop.f 0
004000000000 7222 nop.b 0 ;;
}
{ .mfi
000008000000 7230 nop.m 0
01D058A00240 7231 xma.l f9 = f10, f11, f0
000008000000 7232 nop.i 0 ;;
}
{ .mmi
0087080122C0 7240 getf.sig r11 = f9 ;;
000008000000 7241 nop.m 0
00F200B242C0 7242 shr.u r11 = r11, r18 ;;
}
{ .mib
000008000000 7250 nop.m 0
0000B0B00B80 7251 sxt4 out3 = r11 // r46 = r11
00A000001000 7252 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO
}
{ .mfb
000008000000 7260 nop.m 0
000008000000 7261 nop.f 0
00800003D000 7262 br.sptk.many L$1133 ;;
}
7270 L$338: // 072712
{ .mmi
0120E0020880 7270 mov r34 = 3600 ;; // 072713
01A40224C180 7271 cmp4.ltu pr6, pr0 = SecsAgo, r34 // pr6, pr0 = r38, r34
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 226
ThisLongAgo 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 7272 nop.i 0
}
{ .mfb
000008000000 7280 nop.m 0
000008000000 7281 nop.f 0
008600014006 7282 (pr6) br.cond.dpnt.many L$341 ;;
}
{ .mib
0120000568C0 7290 mov r35 = 43 // 072714
000092600900 7291 zxt4 r36 = SecsAgo // r36 = r38
004000000000 7292 nop.b 0
}
{ .mlx
0120001009C0 72A0 add r39 = @ltoff($LITERAL$+96), gp // r39 = @ltoff($LITERAL$+96), r1
000000000246 72A1 movl in0 = 2443359173 ;; // r32 = 2443359173
0196715150
}
{ .mmi
00C708040200 72B0 setf.sig f8 = in0 // f8 = r32
00C7080481C0 72B1 setf.sig f7 = r36
012000100AC0 72B2 add out0 = @gprel(AgoFaoDsc), gp ;; // r43 = @gprel(AgoFaoDsc), r1
}
{ .mii
0080C2700BC0 72C0 ld8 out4 = $LITERAL$ // r47 = [r39]
01200000A640 72C1 mov ai = 5 // r25 = 5
012000000B00 72C2 mov out1 = 0 // r44 = 0
}
{ .mfb
010802B10B40 72D0 adds out2 = 8, out0 // r45 = 8, r43
000008000000 72D1 nop.f 0
004000000000 72D2 nop.b 0 ;;
}
{ .mfi
000008000000 72E0 nop.m 0
01D040700180 72E1 xma.l f6 = f7, f8, f0
000008000000 72E2 nop.i 0 ;;
}
{ .mmi
00870800C800 72F0 getf.sig in0 = f6 ;; // r32 = f6
000008000000 72F1 nop.m 0
00F202046800 72F2 shr.u in0 = in0, r35 ;; // r32 = r32, r35
}
{ .mib
000008000000 7300 nop.m 0
0000B2000B80 7301 sxt4 out3 = in0 // r46 = r32
00A000001000 7302 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO
}
{ .mfb
000008000000 7310 nop.m 0
000008000000 7311 nop.f 0
008000027000 7312 br.sptk.many L$1133 ;;
}
7320 L$341: // 072715
{ .mmi
012000078880 7320 mov r34 = 60 ;; // 072716
01A40224C180 7321 cmp4.ltu pr6, pr0 = SecsAgo, r34 // pr6, pr0 = r38, r34
000008000000 7322 nop.i 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 227
ThisLongAgo 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfb
000008000000 7330 nop.m 0
000008000000 7331 nop.f 0
008600014006 7332 (pr6) br.cond.dpnt.many L$343 ;;
}
{ .mib
01200004A940 7340 mov r37 = 37 // 072717
000092600900 7341 zxt4 r36 = SecsAgo // r36 = r38
004000000000 7342 nop.b 0
}
{ .mlx
0120001009C0 7350 add r39 = @ltoff($LITERAL$+88), gp // r39 = @ltoff($LITERAL$+88), r1
800000000222 7351 movl r35 = 2290649225 ;;
0191140251
}
{ .mmi
00C708046200 7360 setf.sig f8 = r35
00C7080481C0 7361 setf.sig f7 = r36
012000100AC0 7362 add out0 = @gprel(AgoFaoDsc), gp ;; // r43 = @gprel(AgoFaoDsc), r1
}
{ .mii
0080C2700BC0 7370 ld8 out4 = $LITERAL$ // r47 = [r39]
01200000A640 7371 mov ai = 5 // r25 = 5
012000000B00 7372 mov out1 = 0 // r44 = 0
}
{ .mfb
010802B10B40 7380 adds out2 = 8, out0 // r45 = 8, r43
000008000000 7381 nop.f 0
004000000000 7382 nop.b 0 ;;
}
{ .mfi
000008000000 7390 nop.m 0
01D040700180 7391 xma.l f6 = f7, f8, f0
000008000000 7392 nop.i 0 ;;
}
{ .mmi
00870800C8C0 73A0 getf.sig r35 = f6 ;;
000008000000 73A1 nop.m 0
00F20234A8C0 73A2 shr.u r35 = r35, r37 ;;
}
{ .mib
000008000000 73B0 nop.m 0
0000B2300B80 73B1 sxt4 out3 = r35 // r46 = r35
00A000001000 73B2 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO
}
{ .mfb
000008000000 73C0 nop.m 0
000008000000 73C1 nop.f 0
008000011000 73C2 br.sptk.many L$1133 ;;
}
73D0 L$343: // 072718
{ .mfb
01AC32602000 73D0 cmp4.ltu pr0, pr6 = 1, SecsAgo // pr0, pr6 = 1, r38 // 072719
000008000000 73D1 nop.f 0
00860000A006 73D2 (pr6) br.cond.dpnt.many L$347 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 228
ThisLongAgo 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mii
012000100900 73E0 add r36 = @ltoff($LITERAL$+80), gp // r36 = @ltoff($LITERAL$+80), r1 // 072720
012000100AC0 73E1 add out0 = @gprel(AgoFaoDsc), gp // r43 = @gprel(AgoFaoDsc), r1
01200000A640 73E2 mov ai = 5 // r25 = 5
}
{ .mmi
012000000B00 73F0 mov out1 = 0 ;; // r44 = 0
0080C2400BC0 73F1 ld8 out4 = $LITERAL$ // r47 = [r36]
0000B2600B80 73F2 sxt4 out3 = SecsAgo // r46 = r38
}
{ .mfb
010802B10B40 7400 adds out2 = 8, out0 // r45 = 8, r43
000008000000 7401 nop.f 0
00A000001000 7402 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO
}
{ .mfb
000008000000 7410 nop.m 0
000008000000 7411 nop.f 0
008000007000 7412 br.sptk.many L$1133 ;;
}
7420 L$347: // 072721
{ .mii
012000100B40 7420 add out2 = @ltoff($LITERAL$+72), // r45 = @ltoff($LITERAL$+72), r1 // 072722
gp
012000006640 7421 mov ai = 3 // r25 = 3
010802100AC0 7422 mov out0 = AgoBuf ;; // r43 = r33
}
{ .mib
0080C2D00B00 7430 ld8 out1 = $LITERAL$ // r44 = [r45]
012000008B40 7431 mov out2 = 4 // r45 = 4
00A000001000 7432 br.call.sptk.many rp = DECC$STRNCPY ;; // br0 = DECC$STRNCPY
}
7440 L$1133:
{ .mfi
010802A00040 7440 mov gp = r42 // r1 = r42
000008000000 7441 nop.f 0
000008000000 7442 nop.i 0
}
7450 L$340: // 072723
{ .mii
000008000000 7450 nop.m 0
000154052000 7451 mov.i rspfs = r41 ;;
000E00150000 7452 mov rp = r40 // br0 = r40
}
{ .mfb
010800C20300 7460 adds sp = 16, sp // r12 = 16, r12
000008000000 7461 nop.f 0
000108001100 7462 br.ret.sptk.many rp ;; // br0
}
.endp ThisLongAgo
Routine Size: 976 bytes, Routine Base: $CODE$ + 70A0
.proc TimeSansYear
.align 32
.global TimeSansYear
TimeSansYear: // 072731
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 229
TimeSansYear 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mii
002C00B1EA40 7470 alloc r41 = rspfs, 2, 9, 4, 0
0111620F0240 7471 and r9 = -8, in0 // r9 = -8, r32 // 072751
000188000A00 7472 mov r40 = rp ;; // r40 = br0 // 072731
}
{ .mmi
01C040940000 7480 cmp.eq pr0, pr8 = in0, r9 // pr0, pr8 = r32, r9 // 072751
00A0C0910440 7481 ld8 r17 = [r9], 8
010800100A80 7482 mov r42 = gp ;; // r42 = r1 // 072731
}
{ .mib
000008000000 7490 nop.m 0
009E10040288 7491 (pr8) dep r10 = in0, r0, 3, 3 // r10 = r32, r0, 3, 3 // 072751
004000000000 7492 nop.b 0 ;;
}
{ .mmi
0080C09002C8 74A0 (pr8) ld8 r11 = [r9] ;;
000008000000 74A1 nop.m 0
00F201114448 74A2 (pr8) shr.u r17 = r17, r10
}
{ .mmi
010128A80288 74B0 (pr8) sub r10 = 64, r10 ;;
000008000000 74B1 nop.m 0
00F240A162C8 74B2 (pr8) shl r11 = r11, r10 ;;
}
{ .mmi
010071116448 74C0 (pr8) or r17 = r11, r17 ;;
01C049100000 74C1 cmp.eq pr0, pr9 = r0, r17
000008000000 74C2 nop.i 0
}
{ .mfb
000008000000 74D0 nop.m 0
000008000000 74D1 nop.f 0
008600008009 74D2 (pr9) br.cond.dpnt.many L$280 ;;
}
{ .mii
012000100B40 74E0 add out2 = @ltoff($LITERAL$+64), // r45 = @ltoff($LITERAL$+64), r1 // 072753
gp
012000006640 74E1 mov ai = 3 // r25 = 3
010802100AC0 74E2 mov out0 = Buffer ;; // r43 = r33
}
{ .mib
0080C2D00B00 74F0 ld8 out1 = $LITERAL$ // r44 = [r45]
012000020B40 74F1 mov out2 = 16 // r45 = 16
00A000001000 74F2 br.call.sptk.many rp = strzcpy ;; // br0 = strzcpy
}
{ .mfb
010802A00040 7500 mov gp = r42 // r1 = r42
000008000000 7501 nop.f 0
00800009B000 7502 br.sptk.many L$282 ;; // 072754
}
7510 L$280: // 072755
{ .mii
012000100AC0 7510 add out0 = @gprel(TimeFaoDsc), gp // r43 = @gprel(TimeFaoDsc), r1 // 072758
012000008640 7511 mov ai = 4 // r25 = 4
010802000B80 7512 mov out3 = Time64Ptr // r46 = r32
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 230
TimeSansYear 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
012000000B00 7520 mov out1 = 0 ;; // r44 = 0
010802B10B40 7521 adds out2 = 8, out0 // r45 = 8, r43
000008000000 7522 nop.i 0
}
{ .mfb
008C02100000 7530 st1 [in1] = r0 // [r33] = r0 // 072757
000008000000 7531 nop.f 0
00A000001000 7532 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO // 072758
}
{ .mib
010802A00040 7540 mov gp = r42 // r1 = r42
00A0308001C0 7541 tbit.z pr7, pr6 = r8, 0 // 072759
008600004006 7542 (pr6) br.cond.dpnt.many L$283 ;;
}
{ .mfb
000008000000 7550 nop.m 0
000008000000 7551 nop.f 0
008000091000 7552 br.sptk.many L$282 ;;
}
7560 L$283:
{ .mmi
012000100900 7560 add r36 = @ltoffx(TimeBuf), gp ;; // r36 = @ltoffx(TimeBuf), r1 // 072761
0080C2400900 7561 ld8.mov r36 = [r36], TimeBuf
000008000000 7562 nop.i 0 ;;
}
{ .mmi
008002400940 7570 ld1 r37 = [r36] ;;
000008000000 7571 nop.m 0
0000A2500940 7572 sxt1 r37 = r37 ;;
}
{ .mfb
01C002500240 7580 cmp.eq pr9, pr0 = r0, r37
000008000000 7581 nop.f 0
008600026009 7582 (pr9) br.cond.dpnt.many L$286 ;;
}
{ .mmi
012000100980 7590 add r38 = @ltoffx(TimeBuf), gp ;; // r38 = @ltoffx(TimeBuf), r1
0080C2600980 7591 ld8.mov r38 = [r38], TimeBuf
000008000000 7592 nop.i 0 ;;
}
{ .mfi
00CB02600000 75A0 lfetch TimeBuf // [r38]
000008000000 75A1 nop.f 0
000008000000 75A2 nop.i 0 ;;
}
75B0 L$287:
{ .mmi
0080024009C0 75B0 ld1 r39 = [r36] ;;
01C80275A2C0 75B1 cmp.eq pr11, pr0 = 45, r39
000008000000 75B2 nop.i 0
}
{ .mfb
000008000000 75C0 nop.m 0
000008000000 75C1 nop.f 0
00860001E00B 75C2 (pr11) br.cond.dpnt.many L$286 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 231
TimeSansYear 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
00A002402880 75D0 ld1 r34 = [r36], 1 ;;
00AC02144040 75D1 st1 [in1] = r34, 1 // [r33] = r34, 1
000008000000 75D2 nop.i 0 ;;
}
{ .mmi
008002400800 75E0 ld1 in0 = [r36] ;; // r32 = [r36]
000008000000 75E1 nop.m 0
0000A2000800 75E2 sxt1 in0 = in0 ;; // r32 = r32
}
{ .mfb
01C002000340 75F0 cmp.eq pr13, pr0 = r0, in0 // pr13, pr0 = r0, r32
000008000000 75F1 nop.f 0
00860001800D 75F2 (pr13) br.cond.dpnt.many L$286 ;;
}
{ .mmi
0080024000C0 7600 ld1 r3 = [r36] ;;
01C80035A3C0 7601 cmp.eq pr15, pr0 = 45, r3
000008000000 7602 nop.i 0
}
{ .mfb
000008000000 7610 nop.m 0
000008000000 7611 nop.f 0
00860001400F 7612 (pr15) br.cond.dpnt.many L$286 ;;
}
{ .mii
00AC02140040 7620 st1 [in1] = in0, 1 // [r33] = r32, 1
010802402900 7621 adds r36 = 1, r36
000008000000 7622 nop.i 0 ;;
}
{ .mmi
008002400280 7630 ld1 r10 = [r36] ;;
000008000000 7631 nop.m 0
0000A0A00280 7632 sxt1 r10 = r10 ;;
}
{ .mfb
01C000A001C0 7640 cmp.eq pr7, pr0 = r0, r10
000008000000 7641 nop.f 0
00860000E007 7642 (pr7) br.cond.dpnt.many L$286 ;;
}
{ .mmi
0080024002C0 7650 ld1 r11 = [r36] ;;
01C800B5A240 7651 cmp.eq pr9, pr0 = 45, r11
000008000000 7652 nop.i 0
}
{ .mfb
000008000000 7660 nop.m 0
000008000000 7661 nop.f 0
00860000A009 7662 (pr9) br.cond.dpnt.many L$286 ;;
}
{ .mii
008C02114000 7670 st1 [in1] = r10 // [r33] = r10
010802402900 7671 adds r36 = 1, r36
0108421004C0 7672 adds r19 = 1024, in1 // r19 = 1024, r33
}
{ .mmi
010802102840 7680 adds in1 = 1, in1 ;; // r33 = 1, r33
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 232
TimeSansYear 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
008002400480 7681 ld1 r18 = [r36]
000008000000 7682 nop.i 0
}
{ .mmi
00CB41300000 7690 lfetch.excl [r19] ;;
000008000000 7691 nop.m 0
0000A1200480 7692 sxt1 r18 = r18 ;;
}
{ .mfb
01C051200000 76A0 cmp.eq pr0, pr10 = r0, r18
000008000000 76A1 nop.f 0
0095FFFE200A 76A2 (pr10) br.cond.dptk.many L$287 ;;
}
76B0 L$286:
{ .mmi
010802402500 76B0 adds cptr = 1, cptr // r20 = 1, r36 // 072762
008002400900 76B1 ld1 r36 = [r36]
000008000000 76B2 nop.i 0 ;;
}
{ .mmi
00AC02148040 76C0 st1 [in1] = r36, 1 ;; // [r33] = r36, 1
008001400580 76C1 ld1 r22 = [r20]
000008000000 76C2 nop.i 0 ;;
}
{ .mii
000008000000 76D0 nop.m 0
0000A1600580 76D1 sxt1 r22 = r22 ;;
01C001600340 76D2 cmp.eq pr13, pr0 = r0, r22
}
{ .mfb
000008000000 76E0 nop.m 0
000008000000 76E1 nop.f 0
00860002200D 76E2 (pr13) br.cond.dpnt.many L$300 ;;
}
76F0 L$301:
{ .mmi
0080014005C0 76F0 ld1 r23 = [r20] ;;
01C80175A3C0 76F1 cmp.eq pr15, pr0 = 45, r23
000008000000 76F2 nop.i 0
}
{ .mfb
000008000000 7700 nop.m 0
000008000000 7701 nop.f 0
00860001E00F 7702 (pr15) br.cond.dpnt.many L$300 ;;
}
{ .mmi
00A001402600 7710 ld1 r24 = [r20], 1 ;;
00AC02130040 7711 st1 [in1] = r24, 1 // [r33] = r24, 1
000008000000 7712 nop.i 0 ;;
}
{ .mmi
008001400680 7720 ld1 r26 = [r20] ;;
000008000000 7721 nop.m 0
0000A1A00680 7722 sxt1 r26 = r26 ;;
}
{ .mfb
01C001A001C0 7730 cmp.eq pr7, pr0 = r0, r26
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 233
TimeSansYear 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 7731 nop.f 0
008600018007 7732 (pr7) br.cond.dpnt.many L$300 ;;
}
{ .mmi
0080014006C0 7740 ld1 r27 = [r20] ;;
01C801B5A240 7741 cmp.eq pr9, pr0 = 45, r27
000008000000 7742 nop.i 0
}
{ .mfb
000008000000 7750 nop.m 0
000008000000 7751 nop.f 0
008600014009 7752 (pr9) br.cond.dpnt.many L$300 ;;
}
{ .mii
00AC02134040 7760 st1 [in1] = r26, 1 // [r33] = r26, 1
010801402500 7761 adds r20 = 1, r20
000008000000 7762 nop.i 0 ;;
}
{ .mmi
008001400740 7770 ld1 r29 = [r20] ;;
000008000000 7771 nop.m 0
0000A1D00740 7772 sxt1 r29 = r29 ;;
}
{ .mfb
01C001D002C0 7780 cmp.eq pr11, pr0 = r0, r29
000008000000 7781 nop.f 0
00860000E00B 7782 (pr11) br.cond.dpnt.many L$300 ;;
}
{ .mii
008001400780 7790 ld1 r30 = [r20]
0108214007C0 7791 adds r31 = 512, r20 ;;
01C801E5A340 7792 cmp.eq pr13, pr0 = 45, r30
}
{ .mfb
00CB01F00000 77A0 lfetch [r31]
000008000000 77A1 nop.f 0
00860000A00D 77A2 (pr13) br.cond.dpnt.many L$300 ;;
}
{ .mii
008C0213A000 77B0 st1 [in1] = r29 // [r33] = r29
010801402500 77B1 adds r20 = 1, r20
010822100B40 77B2 adds out2 = 512, in1 // r45 = 512, r33
}
{ .mmi
010802102840 77C0 adds in1 = 1, in1 ;; // r33 = 1, r33
008001400B00 77C1 ld1 out1 = [r20] // r44 = [r20]
000008000000 77C2 nop.i 0
}
{ .mmi
00CB42D00000 77D0 lfetch.excl [out2] ;; // [r45]
000008000000 77D1 nop.m 0
0000A2C00B00 77D2 sxt1 out1 = out1 ;; // r44 = r44
}
{ .mfb
01C072C00000 77E0 cmp.eq pr0, pr14 = r0, out1 // pr0, pr14 = r0, r44
000008000000 77E1 nop.f 0
0095FFFE200E 77E2 (pr14) br.cond.dptk.many L$301 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 234
TimeSansYear 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
77F0 L$300: // 072763
{ .mmi
008001400B80 77F0 ld1 out3 = [r20] ;; // r46 = [r20]
000008000000 77F1 nop.m 0
0000A2E00B80 77F2 sxt1 out3 = out3 ;; // r46 = r46
}
{ .mfb
01C002E001C0 7800 cmp.eq pr7, pr0 = r0, out3 // pr7, pr0 = r0, r46
000008000000 7801 nop.f 0
008600020007 7802 (pr7) br.cond.dpnt.many L$314 ;;
}
7810 L$315:
{ .mmi
008001400200 7810 ld1 r8 = [r20] ;;
01C800840240 7811 cmp.eq pr9, pr0 = 32, r8
000008000000 7812 nop.i 0
}
{ .mfb
000008000000 7820 nop.m 0
000008000000 7821 nop.f 0
00860001C009 7822 (pr9) br.cond.dpnt.many L$314 ;;
}
{ .mmi
010801402500 7830 adds r20 = 1, r20 ;;
008001400940 7831 ld1 r37 = [r20]
000008000000 7832 nop.i 0 ;;
}
{ .mii
000008000000 7840 nop.m 0
0000A2500940 7841 sxt1 r37 = r37 ;;
01C0025002C0 7842 cmp.eq pr11, pr0 = r0, r37
}
{ .mfb
000008000000 7850 nop.m 0
000008000000 7851 nop.f 0
00860001600B 7852 (pr11) br.cond.dpnt.many L$314 ;;
}
{ .mmi
008001400980 7860 ld1 r38 = [r20] ;;
01C802640340 7861 cmp.eq pr13, pr0 = 32, r38
000008000000 7862 nop.i 0
}
{ .mfb
000008000000 7870 nop.m 0
000008000000 7871 nop.f 0
00860001200D 7872 (pr13) br.cond.dpnt.many L$314 ;;
}
{ .mmi
010801402500 7880 adds r20 = 1, r20 ;;
0080014009C0 7881 ld1 r39 = [r20]
000008000000 7882 nop.i 0 ;;
}
{ .mii
000008000000 7890 nop.m 0
0000A27009C0 7891 sxt1 r39 = r39 ;;
01C0027003C0 7892 cmp.eq pr15, pr0 = r0, r39
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 235
TimeSansYear 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfb
000008000000 78A0 nop.m 0
000008000000 78A1 nop.f 0
00860000C00F 78A2 (pr15) br.cond.dpnt.many L$314 ;;
}
{ .mii
008001400880 78B0 ld1 r34 = [r20]
0108414008C0 78B1 adds r35 = 1024, r20 ;;
01C8022401C0 78B2 cmp.eq pr7, pr0 = 32, r34
}
{ .mfb
00CB02300000 78C0 lfetch [r35]
000008000000 78C1 nop.f 0
008600008007 78C2 (pr7) br.cond.dpnt.many L$314 ;;
}
{ .mmi
010801402500 78D0 adds r20 = 1, r20 ;;
0080014000C0 78D1 ld1 r3 = [r20]
000008000000 78D2 nop.i 0 ;;
}
{ .mii
000008000000 78E0 nop.m 0
0000A03000C0 78E1 sxt1 r3 = r3 ;;
01C040300000 78E2 cmp.eq pr0, pr8 = r0, r3
}
{ .mfb
000008000000 78F0 nop.m 0
000008000000 78F1 nop.f 0
0095FFFE4008 78F2 (pr8) br.cond.dptk.many L$315 ;;
}
7900 L$314: // 072764
{ .mmi
008001400240 7900 ld1 r9 = [r20] ;;
000008000000 7901 nop.m 0
0000A0900240 7902 sxt1 r9 = r9 ;;
}
{ .mfb
01C0009002C0 7910 cmp.eq pr11, pr0 = r0, r9
000008000000 7911 nop.f 0
00860001600B 7912 (pr11) br.cond.dpnt.many L$328 ;;
}
7920 L$329:
{ .mii
00AC02112040 7920 st1 [in1] = r9, 1 // [r33] = r9, 1
010801402500 7921 adds r20 = 1, r20
000008000000 7922 nop.i 0 ;;
}
{ .mmi
00A0014022C0 7930 ld1 r11 = [r20], 1 ;;
000008000000 7931 nop.m 0
0000A0B002C0 7932 sxt1 r11 = r11 ;;
}
{ .mfb
01C000B00340 7940 cmp.eq pr13, pr0 = r0, r11
000008000000 7941 nop.f 0
00860001000D 7942 (pr13) br.cond.dpnt.many L$328 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 236
TimeSansYear 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mmi
00AC02116040 7950 st1 [in1] = r11, 1 ;; // [r33] = r11, 1
008001400440 7951 ld1 r17 = [r20]
000008000000 7952 nop.i 0 ;;
}
{ .mii
000008000000 7960 nop.m 0
0000A1100440 7961 sxt1 r17 = r17 ;;
01C0011003C0 7962 cmp.eq pr15, pr0 = r0, r17
}
{ .mfb
000008000000 7970 nop.m 0
000008000000 7971 nop.f 0
00860000A00F 7972 (pr15) br.cond.dpnt.many L$328 ;;
}
{ .mii
008C02122000 7980 st1 [in1] = r17 // [r33] = r17
010822100900 7981 adds r36 = 512, in1 // r36 = 512, r33
0108214004C0 7982 adds r19 = 512, r20
}
{ .mmi
010801402500 7990 adds r20 = 1, r20 ;;
008001400540 7991 ld1 r21 = [r20]
010802102840 7992 adds in1 = 1, in1 // r33 = 1, r33
}
{ .mmi
00CB42400000 79A0 lfetch.excl [r36] ;;
00CB01300000 79A1 lfetch [r19]
0000A1500240 79A2 sxt1 r9 = r21 ;;
}
{ .mfb
01C030900000 79B0 cmp.eq pr0, pr6 = r0, r9
000008000000 79B1 nop.f 0
0095FFFEE006 79B2 (pr6) br.cond.dptk.many L$329 ;;
}
79C0 L$328:
{ .mfi
008C02100000 79C0 st1 [in1] = r0 // [r33] = r0 // 072765
000008000000 79C1 nop.f 0
000008000000 79C2 nop.i 0
}
79D0 L$282: // 072766
{ .mii
000008000000 79D0 nop.m 0
000154052000 79D1 mov.i rspfs = r41 ;;
000E00150000 79D2 mov rp = r40 // br0 = r40
}
{ .mfb
000008000000 79E0 nop.m 0
000008000000 79E1 nop.f 0
000108001100 79E2 br.ret.sptk.many rp ;; // br0
}
.endp TimeSansYear
Routine Size: 1408 bytes, Routine Base: $CODE$ + 7470
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 237
TimeVmsToUnix 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
.proc TimeVmsToUnix
.align 32
.global TimeVmsToUnix
TimeVmsToUnix: // 072773
{ .mii
002C00B1CA40 79F0 alloc r41 = rspfs, 2, 9, 3, 0
012000060380 79F1 mov r14 = 48
010800C00080 79F2 mov r2 = sp // r2 = r12
}
{ .mmi
01C438040000 7A00 cmp4.eq pr0, pr7 = Time64Ptr, r0 ;; // pr0, pr7 = r32, r0 // 072792
010028E183C0 7A01 sub r15 = sp, r14 // r15 = r12, r14 // 072773
000188000A00 7A02 mov r40 = rp ;; // r40 = br0
}
{ .mii
0080C0F00380 7A10 ld8 r14 = [r15]
010800F00300 7A11 mov sp = r15 // r12 = r15
010800100A80 7A12 mov r42 = gp // r42 = r1
}
{ .mfb
000008000000 7A20 nop.m 0
000008000000 7A21 nop.f 0
008600008007 7A22 (pr7) br.cond.dpnt.many L$274 ;; // 072792
}
{ .mii
012000002640 7A30 mov ai = 1 // r25 = 1
010800F20AC0 7A31 adds out0 = 16, r15 // r43 = 16, r15
010800F20800 7A32 adds in0 = 16, r15 // r32 = 16, r15
}
{ .mfb
000008000000 7A40 nop.m 0
000008000000 7A41 nop.f 0
00A000001000 7A42 br.call.sptk.many rp = SYS$GETTIM ;; // br0 = SYS$GETTIM
}
{ .mfi
010802A00040 7A50 mov gp = r42 // r1 = r42
000008000000 7A51 nop.f 0
000008000000 7A52 nop.i 0
}
7A60 L$274:
{ .mii
012000004640 7A60 mov ai = 2 // r25 = 2 // 072794
010802000B00 7A61 mov out1 = Time64Ptr // r44 = r32
010800C30AC0 7A62 adds out0 = 24, sp ;; // r43 = 24, r12
}
{ .mfb
000008000000 7A70 nop.m 0
000008000000 7A71 nop.f 0
00A000001000 7A72 br.call.sptk.many rp = SYS$NUMTIM ;; // br0 = SYS$NUMTIM
}
{ .mib
010802A00040 7A80 mov gp = r42 // r1 = r42
00A0308001C0 7A81 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0
008600004006 7A82 (pr6) br.cond.dpnt.many L$276 ;;
}
{ .mib
000008000000 7A90 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 238
TimeVmsToUnix 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0000B0800200 7A91 sxt4 r8 = r8 // 072795
008000029000 7A92 br.sptk.many L$278 ;;
}
7AA0 L$276:
{ .mii
012000100880 7AA0 add r34 = @gprel(LibDayOfWeek), gp // r34 = @gprel(LibDayOfWeek), r1 // 072797
012000006640 7AA1 mov ai = 3 // r25 = 3
010802000B40 7AA2 mov out2 = Time64Ptr // r45 = r32
}
{ .mmi
010800C60B00 7AB0 adds out1 = 48, sp ;; // r44 = 48, r12
010802200AC0 7AB1 mov out0 = r34 // r43 = r34
000008000000 7AB2 nop.i 0
}
{ .mfb
000008000000 7AC0 nop.m 0
000008000000 7AC1 nop.f 0
00A000001000 7AC2 br.call.sptk.many rp = // br0 = LIB$CVT_FROM_INTERNAL_TIME
LIB$CVT_FROM_INTERNAL_TIME ;;
}
{ .mii
012000006640 7AD0 mov ai = 3 // r25 = 3 // 072798
010802000B40 7AD1 mov out2 = Time64Ptr // r45 = r32
010800C50B00 7AD2 adds out1 = 40, sp // r44 = 40, r12
}
{ .mmi
010802208AC0 7AE0 adds out0 = 4, r34 ;; // r43 = 4, r34
010802A00040 7AE1 mov gp = r42 // r1 = r42 // 072797
000008000000 7AE2 nop.i 0 ;;
}
{ .mfb
000008000000 7AF0 nop.m 0
000008000000 7AF1 nop.f 0
00A000001000 7AF2 br.call.sptk.many rp = // br0 = LIB$CVT_FROM_INTERNAL_TIME // 072798
LIB$CVT_FROM_INTERNAL_TIME ;;
}
{ .mii
010800C448C0 7B00 adds r35 = 34, sp // r35 = 34, r12 // 072800
010800C40940 7B01 adds r37 = 32, sp // r37 = 32, r12 // 072801
010800C3C9C0 7B02 adds r39 = 30, sp // r39 = 30, r12 // 072802
}
{ .mmi
010800C38800 7B10 adds in0 = 28, sp ;; // r32 = 28, r12 // 072803
0080423008C0 7B11 ld2 r35 = [r35] // 072800
010800C34200 7B12 adds r8 = 26, sp // r8 = 26, r12 // 072804
}
{ .mii
010800C30280 7B20 adds r10 = 24, sp // r10 = 24, r12 // 072805
010800C60440 7B21 adds r17 = 48, sp ;; // r17 = 48, r12 // 072806
010800C504C0 7B22 adds r19 = 40, sp // r19 = 40, r12 // 072807
}
{ .mii
00AC82146100 7B30 st4 [in1] = r35, 4 // [r33] = r35, 4 // 072800
010802A00040 7B31 mov gp = r42 // r1 = r42 // 072798
000008000000 7B32 nop.i 0 ;;
}
{ .mmi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 239
TimeVmsToUnix 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
008042500940 7B40 ld2 r37 = [r37] ;; // 072801
00AC8214A100 7B41 st4 [in1] = r37, 4 // [r33] = r37, 4
000008000000 7B42 nop.i 0 ;;
}
{ .mmi
0080427009C0 7B50 ld2 r39 = [r39] ;; // 072802
00AC8214E100 7B51 st4 [in1] = r39, 4 // [r33] = r39, 4
000008000000 7B52 nop.i 0 ;;
}
{ .mmi
008042000800 7B60 ld2 in0 = [in0] ;; // r32 = [r32] // 072803
00AC82140100 7B61 st4 [in1] = in0, 4 // [r33] = r32, 4
000008000000 7B62 nop.i 0 ;;
}
{ .mmi
008040800200 7B70 ld2 r8 = [r8] ;; // 072804
0119F88FE200 7B71 adds r8 = -1, r8
000008000000 7B72 nop.i 0 ;;
}
{ .mmi
00AC82110100 7B80 st4 [in1] = r8, 4 ;; // [r33] = r8, 4
008040A00280 7B81 ld2 r10 = [r10] // 072805
000008000000 7B82 nop.i 0 ;;
}
{ .mmi
011988A28280 7B90 adds r10 = -1900, r10 ;;
00AC82114100 7B91 st4 [in1] = r10, 4 // [r33] = r10, 4
000008000000 7B92 nop.i 0 ;;
}
{ .mmi
008081100440 7BA0 ld4 r17 = [r17] ;; // 072806
00AC82122100 7BA1 st4 [in1] = r17, 4 // [r33] = r17, 4
000008000000 7BA2 nop.i 0 ;;
}
{ .mmi
008081300200 7BB0 ld4 r8 = [r19] ;; // 072807
00AC82110100 7BB1 st4 [in1] = r8, 4 // [r33] = r8, 4
012000002200 7BB2 mov r8 = 1 ;; // 072810
}
{ .mfi
008C82100000 7BC0 st4 [in1] = r0 // [r33] = r0 // 072808
000008000000 7BC1 nop.f 0
000008000000 7BC2 nop.i 0
}
7BD0 L$278: // 072810
{ .mii
000008000000 7BD0 nop.m 0
000154052000 7BD1 mov.i rspfs = r41 ;;
000E00150000 7BD2 mov rp = r40 // br0 = r40
}
{ .mfb
010800C60300 7BE0 adds sp = 48, sp // r12 = 48, r12
000008000000 7BE1 nop.f 0
000108001100 7BE2 br.ret.sptk.many rp ;; // br0
}
.endp TimeVmsToUnix
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 240
TimeVmsToUnix 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
Routine Size: 512 bytes, Routine Base: $CODE$ + 79F0
.proc TimeUnix32ToVms64
.align 32
.global TimeUnix32ToVms64
TimeUnix32ToVms64: // 072818
{ .mii
002C00306880 7BF0 alloc r34 = rspfs, 2, 1, 0, 0
000092000800 7BF1 zxt4 in0 = time32 // r32 = r32 // 072829
012000100200 7BF2 add r8 = @ltoffx(TimeUtcDelta64), // r8 = @ltoffx(TimeUtcDelta64), r1
gp
}
{ .mmi
01C400042200 7C00 cmp4.eq pr8, pr0 = time64ptr, r0 ;; // pr8, pr0 = r33, r0 // 072830
01008A040800 7C01 shladd in0 = in0, 2, in0 // r32 = r32, 2, r32 // 072829
000008000000 7C02 nop.i 0
}
{ .mlx
0080C0800200 7C10 ld8.mov r8 = [r8], TimeUtcDelta64
8001F2559D2F 7C11 movl r9 = 35067168000000000 ;;
018805C004
}
{ .mmi
01008A040800 7C20 shladd in0 = in0, 2, in0 ;; // r32 = r32, 2, r32
01008A040800 7C21 shladd in0 = in0, 2, in0 // r32 = r32, 2, r32
000008000000 7C22 nop.i 0
}
{ .mmi
0080C0800200 7C30 ld8 r8 = TimeUtcDelta64 ;; // r8 = [r8]
01008A040800 7C31 shladd in0 = in0, 2, in0 // r32 = r32, 2, r32
000008000000 7C32 nop.i 0 ;;
}
{ .mmi
01008A040800 7C40 shladd in0 = in0, 2, in0 ;; // r32 = r32, 2, r32
01008A040800 7C41 shladd in0 = in0, 2, in0 // r32 = r32, 2, r32
000008000000 7C42 nop.i 0 ;;
}
{ .mmi
01008A040800 7C50 shladd in0 = in0, 2, in0 ;; // r32 = r32, 2, r32
000008000000 7C51 nop.m 0
00A7C3840800 7C52 shl in0 = in0, 7 ;; // r32 = r32, 7
}
{ .mmi
010000840200 7C60 add r8 = in0, r8 ;; // r8 = r32, r8
010000910200 7C61 add time64 = r8, r9 // r8 = r8, r9
000008000000 7C62 nop.i 0
}
{ .mfb
000008000000 7C70 nop.m 0
000008000000 7C71 nop.f 0
008600004008 7C72 (pr8) br.cond.dpnt.many L$270 ;; // 072830
}
{ .mfi
008CC2110000 7C80 st8 [in1] = time64 // [r33] = r8
000008000000 7C81 nop.f 0
000008000000 7C82 nop.i 0
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 241
TimeUnix32ToVms64 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
7C90 L$270: // 072831
{ .mfb
000008000000 7C90 nop.m 0
000008000000 7C91 nop.f 0
000108001100 7C92 br.ret.sptk.many rp ;; // br0
}
.endp TimeUnix32ToVms64
Routine Size: 176 bytes, Routine Base: $CODE$ + 7BF0
.proc FormatProtection
.align 32
.global FormatProtection
FormatProtection: // 072839
{ .mii
002C00912A00 7CA0 alloc r40 = rspfs, 2, 7, 0, 0
010802100200 7CA1 mov sptr = String // r8 = r33 // 072851
00A03A000200 7CA2 tbit.z pr8, pr7 = pmask, 0 // pr8, pr7 = r32, 0 // 072853
}
{ .mfb
000008000000 7CB0 nop.m 0
000008000000 7CB1 nop.f 0
008600006007 7CB2 (pr7) br.cond.dpnt.many L$236 ;;
}
{ .mii
0120000A4240 7CC0 mov r9 = 82
010802102200 7CC1 adds sptr = 1, String // r8 = 1, r33
000008000000 7CC2 nop.i 0 ;;
}
{ .mmi
008C02112000 7CD0 st1 [in1] = r9 ;; // [r33] = r9
000008000000 7CD1 nop.m 0
000008000000 7CD2 nop.i 0
}
7CE0 L$236:
{ .mmi
0101620042C0 7CE0 and r11 = 2, pmask ;; // r11 = 2, r32 // 072854
01C048B00000 7CE1 cmp.eq pr0, pr9 = r0, r11
000008000000 7CE2 nop.i 0
}
{ .mfb
000008000000 7CF0 nop.m 0
000008000000 7CF1 nop.f 0
008600004009 7CF2 (pr9) br.cond.dpnt.many L$238 ;;
}
{ .mmi
0120000AE440 7D00 mov r17 = 87 ;;
00AC00822040 7D01 st1 [r8] = r17, 1
000008000000 7D02 nop.i 0 ;;
}
7D10 L$238:
{ .mmi
0101620084C0 7D10 and r19 = 4, pmask ;; // r19 = 4, r32 // 072855
01C059300000 7D11 cmp.eq pr0, pr11 = r0, r19
000008000000 7D12 nop.i 0
}
{ .mfb
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 242
FormatProtection 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 7D20 nop.m 0
000008000000 7D21 nop.f 0
00860000400B 7D22 (pr11) br.cond.dpnt.many L$240 ;;
}
{ .mmi
01200008A500 7D30 mov r20 = 69 ;;
00AC00828040 7D31 st1 [r8] = r20, 1
000008000000 7D32 nop.i 0 ;;
}
7D40 L$240:
{ .mmi
010162010580 7D40 and r22 = 8, pmask ;; // r22 = 8, r32 // 072856
01C069600000 7D41 cmp.eq pr0, pr13 = r0, r22
000008000000 7D42 nop.i 0
}
{ .mfb
000008000000 7D50 nop.m 0
000008000000 7D51 nop.f 0
00860000400D 7D52 (pr13) br.cond.dpnt.many L$242 ;;
}
{ .mmi
0120000885C0 7D60 mov r23 = 68 ;;
00AC0082E040 7D61 st1 [r8] = r23, 1
000008000000 7D62 nop.i 0 ;;
}
7D70 L$242:
{ .mii
0120000586C0 7D70 mov r27 = 44 // 072857
010162020640 7D71 and ai = 16, pmask // r25 = 16, r32 // 072858
010800802680 7D72 adds sptr = 1, sptr ;; // r26 = 1, r8 // 072857
}
{ .mib
008C00836000 7D80 st1 [r8] = r27
01C079900000 7D81 cmp.eq pr0, pr15 = r0, ai // pr0, pr15 = r0, r25 // 072858
00860000400F 7D82 (pr15) br.cond.dpnt.many L$244 ;;
}
{ .mmi
0120000A4740 7D90 mov r29 = 82 ;;
00AC01A3A040 7D91 st1 [r26] = r29, 1
000008000000 7D92 nop.i 0 ;;
}
7DA0 L$244:
{ .mmi
0101620407C0 7DA0 and r31 = 32, pmask ;; // r31 = 32, r32 // 072859
01C039F00000 7DA1 cmp.eq pr0, pr7 = r0, r31
000008000000 7DA2 nop.i 0
}
{ .mfb
000008000000 7DB0 nop.m 0
000008000000 7DB1 nop.f 0
008600004007 7DB2 (pr7) br.cond.dpnt.many L$246 ;;
}
{ .mmi
0120000AE880 7DC0 mov r34 = 87 ;;
00AC01A44040 7DC1 st1 [r26] = r34, 1
000008000000 7DC2 nop.i 0 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 243
FormatProtection 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
7DD0 L$246:
{ .mmi
010162080900 7DD0 and r36 = 64, pmask ;; // r36 = 64, r32 // 072860
01C04A400000 7DD1 cmp.eq pr0, pr9 = r0, r36
000008000000 7DD2 nop.i 0
}
{ .mfb
000008000000 7DE0 nop.m 0
000008000000 7DE1 nop.f 0
008600004009 7DE2 (pr9) br.cond.dpnt.many L$248 ;;
}
{ .mmi
01200008A940 7DF0 mov r37 = 69 ;;
00AC01A4A040 7DF1 st1 [r26] = r37, 1
000008000000 7DF2 nop.i 0 ;;
}
7E00 L$248:
{ .mmi
0120080009C0 7E00 mov r39 = 128 ;; // 072861
0100627400C0 7E01 and r3 = pmask, r39 // r3 = r32, r39
000008000000 7E02 nop.i 0 ;;
}
{ .mfb
01C058300000 7E10 cmp.eq pr0, pr11 = r0, r3
000008000000 7E11 nop.f 0
00860000400B 7E12 (pr11) br.cond.dpnt.many L$250 ;;
}
{ .mmi
012000088240 7E20 mov r9 = 68 ;;
00AC01A12040 7E21 st1 [r26] = r9, 1
000008000000 7E22 nop.i 0 ;;
}
7E30 L$250:
{ .mii
008C01A36000 7E30 st1 [r26] = r27 // 072862
00A4020202C0 7E31 extr.u r11 = pmask, 8, 1 // r11 = r32, 8, 1 // 072863
010801A02440 7E32 adds sptr = 1, sptr ;; // r17 = 1, r26 // 072862
}
{ .mib
000008000000 7E40 nop.m 0
00A068B00380 7E41 tbit.z pr14, pr13 = r11, 0 // 072863
00860000400D 7E42 (pr13) br.cond.dpnt.many L$252 ;;
}
{ .mmi
0120000A44C0 7E50 mov r19 = 82 ;;
00AC01126040 7E51 st1 [r17] = r19, 1
000008000000 7E52 nop.i 0 ;;
}
7E60 L$252:
{ .mii
000008000000 7E60 nop.m 0
00A43A020800 7E61 extr.u in0 = pmask, 8, 8 ;; // r32 = r32, 8, 8 // 072864
010162004540 7E62 and r21 = 2, in0 ;; // r21 = 2, r32
}
{ .mfb
01C031500000 7E70 cmp.eq pr0, pr6 = r0, r21
000008000000 7E71 nop.f 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 244
FormatProtection 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
008600004006 7E72 (pr6) br.cond.dpnt.many L$254 ;;
}
{ .mmi
0120000AE580 7E80 mov r22 = 87 ;;
00AC0112C040 7E81 st1 [r17] = r22, 1
000008000000 7E82 nop.i 0 ;;
}
7E90 L$254:
{ .mmi
010162008600 7E90 and r24 = 4, in0 ;; // r24 = 4, r32 // 072865
01C039800000 7E91 cmp.eq pr0, pr7 = r0, r24
000008000000 7E92 nop.i 0
}
{ .mfb
000008000000 7EA0 nop.m 0
000008000000 7EA1 nop.f 0
008600004007 7EA2 (pr7) br.cond.dpnt.many L$256 ;;
}
{ .mmi
01200008A640 7EB0 mov ai = 69 ;; // r25 = 69
00AC01132040 7EB1 st1 [r17] = ai, 1 // [r17] = r25, 1
000008000000 7EB2 nop.i 0 ;;
}
7EC0 L$256:
{ .mmi
010162010700 7EC0 and r28 = 8, in0 ;; // r28 = 8, r32 // 072866
01C049C00000 7EC1 cmp.eq pr0, pr9 = r0, r28
000008000000 7EC2 nop.i 0
}
{ .mfb
000008000000 7ED0 nop.m 0
000008000000 7ED1 nop.f 0
008600004009 7ED2 (pr9) br.cond.dpnt.many L$258 ;;
}
{ .mmi
012000088740 7EE0 mov r29 = 68 ;;
00AC0113A040 7EE1 st1 [r17] = r29, 1
000008000000 7EE2 nop.i 0 ;;
}
7EF0 L$258:
{ .mmi
0101620207C0 7EF0 and r31 = 16, in0 // r31 = 16, r32 // 072868
008C01136000 7EF1 st1 [r17] = r27 // 072867
010801102880 7EF2 adds sptr = 1, sptr ;; // r34 = 1, r17
}
{ .mfb
01C059F00000 7F00 cmp.eq pr0, pr11 = r0, r31 // 072868
000008000000 7F01 nop.f 0
00860000400B 7F02 (pr11) br.cond.dpnt.many L$260 ;;
}
{ .mmi
0120000A4900 7F10 mov r36 = 82 ;;
00AC02248040 7F11 st1 [r34] = r36, 1
000008000000 7F12 nop.i 0 ;;
}
7F20 L$260:
{ .mmi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 245
FormatProtection 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010162040980 7F20 and r38 = 32, in0 ;; // r38 = 32, r32 // 072869
01C06A600000 7F21 cmp.eq pr0, pr13 = r0, r38
000008000000 7F22 nop.i 0
}
{ .mfb
000008000000 7F30 nop.m 0
000008000000 7F31 nop.f 0
00860000400D 7F32 (pr13) br.cond.dpnt.many L$262 ;;
}
{ .mmi
0120000AE0C0 7F40 mov r3 = 87 ;;
00AC02206040 7F41 st1 [r34] = r3, 1
000008000000 7F42 nop.i 0 ;;
}
7F50 L$262:
{ .mmi
010162080280 7F50 and r10 = 64, in0 ;; // r10 = 64, r32 // 072870
01C030A00000 7F51 cmp.eq pr0, pr6 = r0, r10
000008000000 7F52 nop.i 0
}
{ .mfb
000008000000 7F60 nop.m 0
000008000000 7F61 nop.f 0
008600004006 7F62 (pr6) br.cond.dpnt.many L$264 ;;
}
{ .mmi
01200008A2C0 7F70 mov r11 = 69 ;;
00AC02216040 7F71 st1 [r34] = r11, 1
000008000000 7F72 nop.i 0 ;;
}
7F80 L$264:
{ .mmi
010062740800 7F80 and in0 = in0, r39 ;; // r32 = r32, r39 // 072871
01C03A000000 7F81 cmp.eq pr0, pr7 = r0, in0 // pr0, pr7 = r0, r32
000008000000 7F82 nop.i 0
}
{ .mfb
000008000000 7F90 nop.m 0
000008000000 7F91 nop.f 0
008600004007 7F92 (pr7) br.cond.dpnt.many L$266 ;;
}
{ .mmi
012000088680 7FA0 mov r26 = 68 ;;
00AC02234040 7FA1 st1 [r34] = r26, 1
000008000000 7FA2 nop.i 0 ;;
}
7FB0 L$266:
{ .mmi
01002A144840 7FB0 sub in1 = sptr, String // r33 = r34, r33 // 072874
008C02200000 7FB1 st1 [r34] = r0 // 072873
000008000000 7FB2 nop.i 0 ;;
}
{ .mib
000008000000 7FC0 nop.m 0
0000B2100200 7FC1 sxt4 r8 = in1 // r8 = r33 // 072874
000108001100 7FC2 br.ret.sptk.many rp ;; // br0
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 246
FormatProtection 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
.endp FormatProtection
Routine Size: 816 bytes, Routine Base: $CODE$ + 7CA0
.proc GetJpiBytLm
.align 32
.global GetJpiBytLm
GetJpiBytLm: // 072882
{ .mii
002C005188C0 7FD0 alloc r35 = rspfs, 0, 5, 7, 0
012000100200 7FD1 add r8 = @ltoffx(EfnWait), gp // r8 = @ltoffx(EfnWait), r1 // 072901
012000020380 7FD2 mov r14 = 16 // 072882
}
{ .mmi
010800C00080 7FE0 mov r2 = sp ;; // r2 = r12
0080C0800200 7FE1 ld8.mov r8 = [r8], EfnWait // 072901
010028E183C0 7FE2 sub r15 = sp, r14 // r15 = r12, r14 // 072882
}
{ .mii
012000100A00 7FF0 add out3 = @ltoffx(JpiItems), gp // r40 = @ltoffx(JpiItems), r1 // 072901
01200000E640 7FF1 mov ai = 7 ;; // r25 = 7
000188000880 7FF2 mov r34 = rp // r34 = br0 // 072882
}
{ .mii
0080C0F00380 8000 ld8 r14 = [r15]
010800F00300 8001 mov sp = r15 // r12 = r15
012000000AC0 8002 mov out6 = 0 ;; // r43 = 0 // 072901
}
{ .mmi
008080800200 8010 ld4 r8 = EfnWait // r8 = [r8]
0080C2800A00 8011 ld8.mov out3 = [r40], JpiItems
012000000A80 8012 mov out5 = 0 ;; // r42 = 0
}
{ .mii
010800F20A40 8020 adds out4 = 16, r15 // r41 = 16, r15
0120000009C0 8021 mov out2 = 0 // r39 = 0
012000100980 8022 add out1 = @gprel(Pid), gp // r38 = @gprel(Pid), r1
}
{ .mmi
010800100900 8030 mov r36 = gp ;; // r36 = r1 // 072882
000008000000 8031 nop.m 0
0000B0800940 8032 sxt4 out0 = r8 // r37 = r8 // 072901
}
{ .mfb
000008000000 8040 nop.m 0
000008000000 8041 nop.f 0
00A000001000 8042 br.call.sptk.many rp = SYS$GETJPIW ;; // br0 = SYS$GETJPIW
}
{ .mii
010800C20800 8050 adds r32 = 16, sp // r32 = 16, r12 // 072902
00A0308001C0 8051 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0
010802400040 8052 mov gp = r36 ;; // r1 = r36 // 072901
}
{ .mmi
008042000800 8060 ld2 r32 = [r32] ;; // 072902
010802000206 8061 (pr6) mov status = r32 // r8 = r32
000008000000 8062 nop.i 0 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 247
GetJpiBytLm 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mib
000008000000 8070 nop.m 0
00A040800240 8071 tbit.z pr9, pr8 = status, 0 // pr9, pr8 = r8, 0 // 072903
008600006009 8072 (pr9) br.cond.dpnt.many L$233 ;;
}
{ .mmi
012000100840 8080 add r33 = @gprel(JpiBytLm), gp ;; // r33 = @gprel(JpiBytLm), r1
008082100200 8081 ld4 r8 = JpiBytLm // r8 = [r33]
000008000000 8082 nop.i 0 ;;
}
{ .mib
000008000000 8090 nop.m 0
0000B0800200 8091 sxt4 r8 = r8
00800000B000 8092 br.sptk.many L$234 ;;
}
80A0 L$233:
{ .mii
012000100A00 80A0 add out3 = @ltoffx($LITERAL$), gp // r40 = @ltoffx($LITERAL$), r1 // 072904
012000008640 80A1 mov ai = 4 // r25 = 4
010800000980 80A2 mov out1 = r0 ;; // r38 = r0
}
{ .mii
0080C28009C0 80B0 ld8.mov out2 = [r40], $LITERAL$
012080082A00 80B1 mov out3 = 2113 // r40 = 2113
0000B0800940 80B2 sxt4 out0 = status // r37 = r8
}
{ .mfb
000008000000 80C0 nop.m 0
000008000000 80C1 nop.f 0
00A000001000 80C2 br.call.sptk.many rp = // br0 = ErrorExitVmsStatus
ErrorExitVmsStatus ;;
}
{ .mfi
010802400040 80D0 mov gp = r36 // r1 = r36
000008000000 80D1 nop.f 0
000008000000 80D2 nop.i 0
}
80E0 L$234: // 072905
{ .mii
000008000000 80E0 nop.m 0
000154046000 80E1 mov.i rspfs = r35 ;;
000E00144000 80E2 mov rp = r34 // br0 = r34
}
{ .mfb
010800C20300 80F0 adds sp = 16, sp // r12 = 16, r12
000008000000 80F1 nop.f 0
000108001100 80F2 br.ret.sptk.many rp ;; // br0
}
.endp GetJpiBytLm
Routine Size: 304 bytes, Routine Base: $CODE$ + 7FD0
.proc ClientHostString
.align 32
.global ClientHostString
ClientHostString: // 072913
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 248
ClientHostString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mii
002C00B20A40 8100 alloc r41 = rspfs, 1, 10, 5, 0
012010020380 8101 mov r14 = 272
000008000000 8102 nop.i 0
}
{ .mlx
01080A0802C0 8110 adds r11 = 192, in0 // r11 = 192, r32 // 072928
000000000004 8111 movl r8 = 17694975 ;; // 072922
0180171FC4
}
{ .mii
010028E183C0 8120 sub r15 = sp, r14 // r15 = r12, r14 // 072913
010800C00080 8121 mov r2 = sp // r2 = r12
000188000A00 8122 mov r40 = rp ;; // r40 = br0
}
{ .mii
0080C0F00380 8130 ld8 r14 = [r15]
010800F00300 8131 mov sp = r15 // r12 = r15
010800F203C0 8132 adds r15 = 16, r15 // 072922
}
{ .mmi
012000004640 8140 mov ai = 2 ;; // r25 = 2 // 072928
008C80F10000 8141 st4 [r15] = r8 // 072922
010800F20200 8142 adds r8 = 16, r15
}
{ .mmi
010800100A80 8150 mov r42 = gp ;; // r42 = r1 // 072913
010800F083C0 8151 adds r15 = 4, r15 // 072922
000008000000 8152 nop.i 0 ;;
}
{ .mmi
00BC88F11B00 8160 st4 [r15] = r8, -20 ;;
008080B002C0 8161 ld4 r11 = [r11] // 072928
000008000000 8162 nop.i 0 ;;
}
{ .mii
000008000000 8170 nop.m 0
0000B0B002C0 8171 sxt4 r11 = r11 ;;
010800B1CB00 8172 adds out1 = 14, r11 // r44 = 14, r11 // 072929
}
{ .mfb
010810BF0AC0 8180 adds out0 = 376, r11 // r43 = 376, r11 // 072928
000008000000 8181 nop.f 0
00A000001000 8182 br.call.sptk.many rp = DECC$STRCMP ;; // br0 = DECC$STRCMP
}
{ .mii
01080A080840 8190 adds r33 = 192, in0 // r33 = 192, r32 // 072931
010802A00040 8191 mov gp = r42 // r1 = r42 // 072928
01C430800000 8192 cmp4.eq pr0, pr6 = r0, r8 ;;
}
{ .mii
008082100840 81A0 ld4 r33 = [r33] // 072931
012000100B00 81A1 add out1 = @gprel(AddressFaoDsc), // r44 = @gprel(AddressFaoDsc), r1 // 072933
gp ;;
0000B2100840 81A2 sxt4 r33 = r33 ;; // 072931
}
{ .mmi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 249
ClientHostString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01080211CB80 81B0 adds out3 = 14, r33 ;; // r46 = 14, r33
010802E00880 81B1 mov r34 = out3 // r34 = r46 // 072935
000008000000 81B2 nop.i 0
}
{ .mfb
000008000000 81C0 nop.m 0
000008000000 81C1 nop.f 0
008600008006 81C2 (pr6) br.cond.dpnt.many L$226 ;; // 072928
}
{ .mii
010802C00AC0 81D0 mov out0 = out1 // r43 = r44 // 072930
012000008640 81D1 mov ai = 4 // r25 = 4
010800C20B40 81D2 adds out2 = 16, sp // r45 = 16, r12
}
{ .mfb
010800C30B00 81E0 adds out1 = 24, sp // r44 = 24, r12
000008000000 81E1 nop.f 0
00A000001000 81E2 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO
}
{ .mfb
000008000000 81F0 nop.m 0
000008000000 81F1 nop.f 0
008000009000 81F2 br.sptk.many L$1134 ;;
}
8200 L$226: // 072932
{ .mii
0119FACF0AC0 8200 adds out0 = -8, out1 // r43 = -8, r44 // 072933
01200000A640 8201 mov ai = 5 // r25 = 5
010802200BC0 8202 mov out4 = r34 // r47 = r34
}
{ .mmi
010800C20B40 8210 adds out2 = 16, sp ;; // r45 = 16, r12
010800C30B00 8211 adds out1 = 24, sp // r44 = 24, r12
0108121F0B80 8212 adds out3 = 376, r33 // r46 = 376, r33 // 072934
}
{ .mfb
000008000000 8220 nop.m 0
000008000000 8221 nop.f 0
00A000001000 8222 br.call.sptk.many rp = SYS$FAO ;; // br0 = SYS$FAO // 072933
}
8230 L$1134:
{ .mii
010800C308C0 8230 adds r35 = 24, sp // r35 = 24, r12 // 072937
012FF80FE900 8231 addl r36 = 65535, r0
000008000000 8232 nop.i 0
}
{ .mlx
012000004640 8240 mov ai = 2 // r25 = 2
8000000003FF 8241 movl r37 = 4294967295 ;;
019FFFDFD2
}
{ .mii
0080C23008C0 8250 ld8 r35 = [r35]
010802000AC0 8251 mov out0 = rqptr // r43 = r32
010802A00040 8252 mov gp = r42 ;; // r1 = r42 // 072933
}
{ .mmi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 250
ClientHostString 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0100623488C0 8260 and r35 = r36, r35 ;; // 072937
0108023028C0 8261 adds r35 = 1, r35
000008000000 8262 nop.i 0 ;;
}
{ .mfb
010062546B00 8270 and out1 = r35, r37 // r44 = r35, r37
000008000000 8271 nop.f 0
00A000001000 8272 br.call.sptk.many rp = VmGetHeap ;; // br0 = VmGetHeap
}
{ .mii
010800C309C0 8280 adds r39 = 24, sp // r39 = 24, r12 // 072938
010800800980 8281 mov cptr = r8 // r38 = r8 // 072937
012000006640 8282 mov ai = 3 // r25 = 3 // 072938
}
{ .mmi
010800C40B00 8290 adds out1 = 32, sp ;; // r44 = 32, r12
0080C27009C0 8291 ld8 r39 = [r39]
010800800AC0 8292 mov out0 = r8 // r43 = r8
}
{ .mmi
010802A00040 82A0 mov gp = r42 ;; // r1 = r42 // 072937
010062748900 82A1 and r36 = r36, r39 // 072938
000008000000 82A2 nop.i 0 ;;
}
{ .mfb
010802402B40 82B0 adds out2 = 1, r36 // r45 = 1, r36
000008000000 82B1 nop.f 0
00A000001000 82B2 br.call.sptk.many rp = strzcpy ;; // br0 = strzcpy
}
{ .mii
010802600200 82C0 mov r8 = cptr // r8 = r38 // 072939
010802A00040 82C1 mov gp = r42 // r1 = r42 // 072938
000154052000 82C2 mov.i rspfs = r41 ;; // 072939
}
{ .mii
000008000000 82D0 nop.m 0
000E00150000 82D1 mov rp = r40 // br0 = r40
010810C20300 82D2 adds sp = 272, sp // r12 = 272, r12
}
{ .mfb
000008000000 82E0 nop.m 0
000008000000 82E1 nop.f 0
000108001100 82E2 br.ret.sptk.many rp ;; // br0
}
.endp ClientHostString
Routine Size: 496 bytes, Routine Base: $CODE$ + 8100
.proc UserAtClient
.align 32
.global UserAtClient
UserAtClient: // 072946
{ .mii
002C00B1CA40 82F0 alloc r41 = rspfs, 1, 10, 3, 0
012010000380 82F1 mov r14 = 256
0108220D0200 82F2 adds r8 = 616, in0 // r8 = 616, r32 // 072957
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 251
UserAtClient 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
010800C00080 8300 mov r2 = sp ;; // r2 = r12 // 072946
010028E183C0 8301 sub r15 = sp, r14 // r15 = r12, r14
000188000A00 8302 mov r40 = rp ;; // r40 = br0
}
{ .mii
0080C0F00380 8310 ld8 r14 = [r15]
010800F00300 8311 mov sp = r15 // r12 = r15
010800100A80 8312 mov r42 = gp // r42 = r1
}
{ .mmi
008000800200 8320 ld1 r8 = [r8] ;; // 072957
000008000000 8321 nop.m 0
0000A0800200 8322 sxt1 r8 = r8 ;;
}
{ .mfb
01C038800000 8330 cmp.eq pr0, pr7 = r0, r8
000008000000 8331 nop.f 0
008600008007 8332 (pr7) br.cond.dpnt.many L$189 ;;
}
{ .mmi
01080A080800 8340 adds in0 = 192, in0 ;; // r32 = 192, r32
008082000800 8341 ld4 in0 = [in0] // r32 = [r32]
000008000000 8342 nop.i 0 ;;
}
{ .mii
000008000000 8350 nop.m 0
0000B2000800 8351 sxt4 in0 = in0 ;; // r32 = r32
0108120F0200 8352 adds r8 = 376, in0 // r8 = 376, r32
}
{ .mfb
000008000000 8360 nop.m 0
000008000000 8361 nop.f 0
0080000BD000 8362 br.sptk.many L$191 ;;
}
8370 L$189:
{ .mii
0108220D08C0 8370 adds r35 = 616, rqptr // r35 = 616, r32 // 072960
010800C20880 8371 adds r34 = 16, sp ;; // r34 = 16, r12 // 072959
010802300840 8372 mov r33 = r35 // 072960
}
{ .mmi
008002300280 8380 ld1 r10 = [r35] ;;
000008000000 8381 nop.m 0
0000A0A00280 8382 sxt1 r10 = r10 ;;
}
{ .mfb
01C000A00280 8390 cmp.eq pr10, pr0 = r0, r10
000008000000 8391 nop.f 0
00860002400A 8392 (pr10) br.cond.dpnt.many L$193 ;;
}
{ .mii
008002300440 83A0 ld1 r17 = [r35] // 072961
012000100940 83A1 add r37 = // r37 = @ltoffx(DECC$$GL___CTYPEA), r1
@ltoffx(DECC$$GL___CTYPEA), gp
012000100900 83A2 add r36 = // r36 = @ltoffx(DECC$$GA___CTYPET), r1
@ltoffx(DECC$$GA___CTYPET), gp
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 252
UserAtClient 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mmi
012010008980 83B0 mov r38 = 260 ;;
0080C2500940 83B1 ld8.mov r37 = [r37], DECC$$GL___CTYPEA
0000A1100440 83B2 sxt1 r17 = r17
}
{ .mfi
0080C2400900 83C0 ld8.mov r36 = [r36], DECC$$GA___CTYPET
000008000000 83C1 nop.f 0
000008000000 83C2 nop.i 0 ;;
}
83D0 L$194: // 072960
{ .mii
008082500480 83D0 ld4 r18 = [r37] // 072961
0108011004C0 83D1 mov r19 = r17
000008000000 83D2 nop.i 0
}
{ .mmi
008082400500 83E0 ld4 r20 = [r36] ;;
01C401200300 83E1 cmp4.eq pr12, pr0 = r0, r18
000008000000 83E2 nop.i 0
}
{ .mfb
000008000000 83F0 nop.m 0
000008000000 83F1 nop.f 0
00860000A00C 83F2 (pr12) br.cond.dpnt.many L$196 ;;
}
{ .mii
000008000000 8400 nop.m 0
0000B1100440 8401 sxt4 r17 = r17
0000B1400500 8402 sxt4 r20 = r20 ;;
}
{ .mmi
010089422440 8410 shladd r17 = r17, 2, r20 ;;
008081100440 8411 ld4 r17 = [r17]
000008000000 8412 nop.i 0 ;;
}
{ .mmi
010062622440 8420 and r17 = r17, r38 ;;
01C469100000 8421 cmp4.eq pr0, pr13 = r0, r17
000008000000 8422 nop.i 0
}
{ .bbb
00860000A00D 8430 (pr13) br.cond.dpnt.many L$197
004000000000 8431 nop.b 0
008000007000 8432 br.sptk.many L$198 ;;
}
8440 L$196:
{ .mib
012000002640 8440 mov ai = 1 // r25 = 1
0000B1300AC0 8441 sxt4 out0 = r19 // r43 = r19
00A000001000 8442 br.call.sptk.many rp = DECC$ISALNUM ;; // br0 = DECC$ISALNUM
}
{ .mib
01C430800000 8450 cmp4.eq pr0, pr6 = r0, r8
010802A00040 8451 mov gp = r42 // r1 = r42
008600006006 8452 (pr6) br.cond.dpnt.many L$197 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 253
UserAtClient 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
8460 L$198:
{ .mmi
0080023009C0 8460 ld1 r39 = [r35] ;;
01C8027BE2C0 8461 cmp.eq pr11, pr0 = 95, r39
01C84275A240 8462 cmp.eq pr9, pr8 = 45, r39 ;;
}
{ .mfb
01C24000000B 8470 (pr11) cmp.eq.or.andcm pr0, pr8 = r0, r0
000008000000 8471 nop.f 0
008600008008 8472 (pr8) br.cond.dpnt.many L$193 ;;
}
8480 L$197:
{ .mmi
0108023028C0 8480 adds r35 = 1, r35 ;; // 072960
0080023000C0 8481 ld1 r3 = [r35]
000008000000 8482 nop.i 0 ;;
}
{ .mii
000008000000 8490 nop.m 0
0000A03000C0 8491 sxt1 r3 = r3 ;;
010800300440 8492 mov r17 = r3 // 072961
}
{ .mfb
01C060300000 84A0 cmp.eq pr0, pr12 = r0, r3 // 072960
000008000000 84A1 nop.f 0
0095FFFE600C 84A2 (pr12) br.cond.dptk.many L$194 ;;
}
84B0 L$193: // 072961
{ .mmi
0080023008C0 84B0 ld1 r35 = [r35] ;; // 072962
000008000000 84B1 nop.m 0
0000A23008C0 84B2 sxt1 r35 = r35 ;;
}
{ .mfb
01C0023003C0 84C0 cmp.eq pr15, pr0 = r0, r35
000008000000 84C1 nop.f 0
00860000600F 84C2 (pr15) br.cond.dpnt.many L$200 ;;
}
{ .mii
010800C202C0 84D0 adds r11 = 16, sp // r11 = 16, r12
012000044280 84D1 mov r10 = 34
010800C20240 84D2 adds r9 = 16, sp ;; // r9 = 16, r12 // 072959
}
{ .mii
008C00B14000 84E0 st1 [r11] = r10 // 072962
010800902880 84E1 adds sptr = 1, r9 // r34 = 1, r9
000008000000 84E2 nop.i 0
}
84F0 L$200:
{ .mmi
010800C20480 84F0 adds r18 = 16, sp ;; // r18 = 16, r12 // 072959
008002100500 84F1 ld1 r20 = [r33] // 072964
0108092FE4C0 84F2 adds r19 = 255, r18 ;; // 072959
}
{ .mii
01A439344000 8500 cmp4.ltu pr0, pr7 = sptr, r19 // pr0, pr7 = r34, r19 // 072964
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 254
UserAtClient 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0000A1400500 8501 sxt1 r20 = r20 ;;
01C0514002C0 8502 cmp.eq pr11, pr10 = r0, r20 ;;
}
{ .mfb
01C2000002C7 8510 (pr7) cmp.eq.or.andcm pr11, pr0 = r0, r0
000008000000 8511 nop.f 0
00860001C00B 8512 (pr11) br.cond.dpnt.many L$202 ;; // 072963
}
8520 L$203: // 072965
{ .mii
00AC02228040 8520 st1 [r34] = r20, 1
010802102840 8521 adds r33 = 1, r33 ;; // 072964
01A469344000 8522 cmp4.ltu pr0, pr13 = sptr, r19 // pr0, pr13 = r34, r19
}
{ .mmi
00A002102580 8530 ld1 r22 = [r33], 1 ;;
000008000000 8531 nop.m 0
0000A1600580 8532 sxt1 r22 = r22 ;;
}
{ .mmi
01C041600240 8540 cmp.eq pr9, pr8 = r0, r22 ;;
01C20000024D 8541 (pr13) cmp.eq.or.andcm pr9, pr0 = r0, r0
000008000000 8542 nop.i 0
}
{ .mfb
000008000000 8550 nop.m 0
000008000000 8551 nop.f 0
008600014009 8552 (pr9) br.cond.dpnt.many L$202 ;; // 072963
}
{ .mmi
00AC0222C040 8560 st1 [r34] = r22, 1 ;; // 072965
008002100600 8561 ld1 r24 = [r33] // 072964
01A439344000 8562 cmp4.ltu pr0, pr7 = sptr, r19 ;; // pr0, pr7 = r34, r19
}
{ .mii
000008000000 8570 nop.m 0
0000A1800600 8571 sxt1 r24 = r24 ;;
01C0718003C0 8572 cmp.eq pr15, pr14 = r0, r24 ;;
}
{ .mfb
01C2000003C7 8580 (pr7) cmp.eq.or.andcm pr15, pr0 = r0, r0
000008000000 8581 nop.f 0
00860000E00F 8582 (pr15) br.cond.dpnt.many L$202 ;; // 072963
}
{ .mii
008C02230000 8590 st1 [r34] = r24 // 072965
010822200680 8591 adds r26 = 512, r34
010802202880 8592 adds r34 = 1, r34
}
{ .mmi
010822100640 85A0 adds ai = 512, r33 ;; // r25 = 512, r33
010802102840 85A1 adds r33 = 1, r33 // 072964
01A469344000 85A2 cmp4.ltu pr0, pr13 = sptr, r19 // pr0, pr13 = r34, r19
}
{ .mmi
00CB41A00000 85B0 lfetch.excl [r26] ;; // 072965
008002100700 85B1 ld1 r28 = [r33] // 072964
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 255
UserAtClient 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 85B2 nop.i 0
}
{ .mmi
00CB01900000 85C0 lfetch [ai] ;; // [r25] // 072965
000008000000 85C1 nop.m 0
0000A1C00500 85C2 sxt1 r20 = r28 ;; // 072964
}
{ .mmi
01C0514002C0 85D0 cmp.eq pr11, pr10 = r0, r20 ;;
01C25000000D 85D1 (pr13) cmp.eq.or.andcm pr0, pr10 = r0, r0
000008000000 85D2 nop.i 0
}
{ .mfb
000008000000 85E0 nop.m 0
000008000000 85E1 nop.f 0
0095FFFE800A 85E2 (pr10) br.cond.dptk.many L$203 ;; // 072963
}
85F0 L$202: // 072965
{ .mii
010800C20740 85F0 adds r29 = 16, sp // r29 = 16, r12 // 072966
01A449344000 85F1 cmp4.ltu pr0, pr9 = sptr, r19 // pr0, pr9 = r34, r19
000008000000 85F2 nop.i 0 ;;
}
{ .mmi
008001D00740 8600 ld1 r29 = [r29] ;;
01C839D44180 8601 cmp.eq pr6, pr7 = 34, r29
000008000000 8602 nop.i 0 ;;
}
{ .mfb
01C2000001C9 8610 (pr9) cmp.eq.or.andcm pr7, pr0 = r0, r0
000008000000 8611 nop.f 0
008600004007 8612 (pr7) br.cond.dpnt.many L$207 ;;
}
{ .mmi
012000044780 8620 mov r30 = 34 ;;
00AC0223C040 8621 st1 [r34] = r30, 1
000008000000 8622 nop.i 0 ;;
}
8630 L$207:
{ .mmi
0108D2068AC0 8630 adds out0 = 3380, in0 ;; // r43 = 3380, r32 // 072967
008082B00AC0 8631 ld4 out0 = [out0] // r43 = [r43]
000008000000 8632 nop.i 0 ;;
}
{ .mfb
01C4000563C0 8640 cmp4.eq pr15, pr0 = out0, r0 // pr15, pr0 = r43, r0
000008000000 8641 nop.f 0
00860002A00F 8642 (pr15) br.cond.dpnt.many L$209 ;;
}
{ .mfb
01A469344000 8650 cmp4.ltu pr0, pr13 = sptr, r19 // pr0, pr13 = r34, r19 // 072969
000008000000 8651 nop.f 0
00860000400D 8652 (pr13) br.cond.dpnt.many L$211 ;;
}
{ .mmi
01200005CB00 8660 mov out1 = 46 ;; // r44 = 46
00AC02258040 8661 st1 [r34] = out1, 1 // [r34] = r44, 1
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 256
UserAtClient 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 8662 nop.i 0 ;;
}
8670 L$211:
{ .mii
0108D2068200 8670 adds r8 = 3380, in0 // r8 = 3380, r32 // 072970
01A459344000 8671 cmp4.ltu pr0, pr11 = sptr, r19 // pr0, pr11 = r34, r19 // 072971
000008000000 8672 nop.i 0 ;;
}
{ .mmi
008080800200 8680 ld4 cptr = [r8] ;; // r8 = [r8] // 072970
000008000000 8681 nop.m 0
0000B0800200 8682 sxt4 cptr = cptr ;; // r8 = r8
}
{ .mmi
0080008009C0 8690 ld1 r39 = [r8] ;; // 072971
000008000000 8691 nop.m 0
0000A27009C0 8692 sxt1 r39 = r39 ;;
}
{ .mmi
01C042700240 86A0 cmp.eq pr9, pr8 = r0, r39 ;;
01C20000024B 86A1 (pr11) cmp.eq.or.andcm pr9, pr0 = r0, r0
000008000000 86A2 nop.i 0
}
{ .mfb
000008000000 86B0 nop.m 0
000008000000 86B1 nop.f 0
00860001C009 86B2 (pr9) br.cond.dpnt.many L$209 ;; // 072970
}
86C0 L$213: // 072972
{ .mii
00AC0224E040 86C0 st1 [r34] = r39, 1
010800802200 86C1 adds r8 = 1, r8 ;; // 072971
01A479344000 86C2 cmp4.ltu pr0, pr15 = sptr, r19 // pr0, pr15 = r34, r19
}
{ .mmi
00A000802440 86D0 ld1 r17 = [r8], 1 ;;
000008000000 86D1 nop.m 0
0000A1100440 86D2 sxt1 r17 = r17 ;;
}
{ .mmi
01C0311001C0 86E0 cmp.eq pr7, pr6 = r0, r17 ;;
01C2000001CF 86E1 (pr15) cmp.eq.or.andcm pr7, pr0 = r0, r0
000008000000 86E2 nop.i 0
}
{ .mfb
000008000000 86F0 nop.m 0
000008000000 86F1 nop.f 0
008600014007 86F2 (pr7) br.cond.dpnt.many L$209 ;; // 072970
}
{ .mmi
00AC02222040 8700 st1 [r34] = r17, 1 ;; // 072972
008000800940 8701 ld1 r37 = [r8] // 072971
01A459344000 8702 cmp4.ltu pr0, pr11 = sptr, r19 ;; // pr0, pr11 = r34, r19
}
{ .mii
000008000000 8710 nop.m 0
0000A2500940 8711 sxt1 r37 = r37 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 257
UserAtClient 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01C062500340 8712 cmp.eq pr13, pr12 = r0, r37 ;;
}
{ .mfb
01C20000034B 8720 (pr11) cmp.eq.or.andcm pr13, pr0 = r0, r0
000008000000 8721 nop.f 0
00860000E00D 8722 (pr13) br.cond.dpnt.many L$209 ;; // 072970
}
{ .mii
008C0224A000 8730 st1 [r34] = r37 // 072972
0108222008C0 8731 adds r35 = 512, r34
010802202880 8732 adds r34 = 1, r34
}
{ .mmi
010820800980 8740 adds r38 = 512, r8 ;;
010800802200 8741 adds r8 = 1, r8 // 072971
01A479344000 8742 cmp4.ltu pr0, pr15 = sptr, r19 // pr0, pr15 = r34, r19
}
{ .mmi
00CB42300000 8750 lfetch.excl [r35] ;; // 072972
008000800280 8751 ld1 r10 = [r8] // 072971
000008000000 8752 nop.i 0
}
{ .mmi
00CB02600000 8760 lfetch [r38] ;; // 072972
000008000000 8761 nop.m 0
0000A0A009C0 8762 sxt1 r39 = r10 ;; // 072971
}
{ .mmi
01C042700240 8770 cmp.eq pr9, pr8 = r0, r39 ;;
01C24000000F 8771 (pr15) cmp.eq.or.andcm pr0, pr8 = r0, r0
000008000000 8772 nop.i 0
}
{ .mfb
000008000000 8780 nop.m 0
000008000000 8781 nop.f 0
0095FFFE8008 8782 (pr8) br.cond.dptk.many L$213 ;; // 072970
}
8790 L$209: // 072973
{ .mfb
01A439344000 8790 cmp4.ltu pr0, pr7 = sptr, r19 // pr0, pr7 = r34, r19 // 072974
000008000000 8791 nop.f 0
008600004007 8792 (pr7) br.cond.dpnt.many L$217 ;;
}
{ .mmi
0120000802C0 87A0 mov r11 = 64 ;;
00AC02216040 87A1 st1 [r34] = r11, 1
000008000000 87A2 nop.i 0 ;;
}
87B0 L$217:
{ .mii
01080A080580 87B0 adds r22 = 192, in0 // r22 = 192, r32 // 072975
01A459344000 87B1 cmp4.ltu pr0, pr11 = sptr, r19 // pr0, pr11 = r34, r19 // 072976
000008000000 87B2 nop.i 0 ;;
}
{ .mmi
008081600580 87C0 ld4 r22 = [r22] ;; // 072975
000008000000 87C1 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 258
UserAtClient 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0000B1600580 87C2 sxt4 r22 = r22 ;;
}
{ .mmi
0108116F0580 87D0 adds cptr = 376, r22 ;; // r22 = 376, r22
0080016005C0 87D1 ld1 r23 = [r22] // 072976
000008000000 87D2 nop.i 0 ;;
}
{ .mii
000008000000 87E0 nop.m 0
0000A17005C0 87E1 sxt1 r23 = r23 ;;
01C061700340 87E2 cmp.eq pr13, pr12 = r0, r23 ;;
}
{ .mfb
01C20000034B 87F0 (pr11) cmp.eq.or.andcm pr13, pr0 = r0, r0
000008000000 87F1 nop.f 0
00860001C00D 87F2 (pr13) br.cond.dpnt.many L$219 ;; // 072975
}
8800 L$220: // 072977
{ .mii
00AC0222E040 8800 st1 [r34] = r23, 1
010801602580 8801 adds r22 = 1, r22 ;; // 072976
01A449344000 8802 cmp4.ltu pr0, pr9 = sptr, r19 // pr0, pr9 = r34, r19
}
{ .mmi
00A001602680 8810 ld1 r26 = [r22], 1 ;;
000008000000 8811 nop.m 0
0000A1A00680 8812 sxt1 r26 = r26 ;;
}
{ .mmi
01C071A003C0 8820 cmp.eq pr15, pr14 = r0, r26 ;;
01C2000003C9 8821 (pr9) cmp.eq.or.andcm pr15, pr0 = r0, r0
000008000000 8822 nop.i 0
}
{ .mfb
000008000000 8830 nop.m 0
000008000000 8831 nop.f 0
00860001400F 8832 (pr15) br.cond.dpnt.many L$219 ;; // 072975
}
{ .mmi
00AC02234040 8840 st1 [r34] = r26, 1 ;; // 072977
0080016006C0 8841 ld1 r27 = [r22] // 072976
01A459344000 8842 cmp4.ltu pr0, pr11 = sptr, r19 ;; // pr0, pr11 = r34, r19
}
{ .mii
000008000000 8850 nop.m 0
0000A1B006C0 8851 sxt1 r27 = r27 ;;
01C031B001C0 8852 cmp.eq pr7, pr6 = r0, r27 ;;
}
{ .mfb
01C2000001CB 8860 (pr11) cmp.eq.or.andcm pr7, pr0 = r0, r0
000008000000 8861 nop.f 0
00860000E007 8862 (pr7) br.cond.dpnt.many L$219 ;; // 072975
}
{ .mii
008C02236000 8870 st1 [r34] = r27 // 072977
010822200500 8871 adds r20 = 512, r34
010802202880 8872 adds r34 = 1, r34
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 259
UserAtClient 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mmi
010821600700 8880 adds r28 = 512, r22 ;;
010801602580 8881 adds r22 = 1, r22 // 072976
01A449344000 8882 cmp4.ltu pr0, pr9 = sptr, r19 // pr0, pr9 = r34, r19
}
{ .mmi
00CB41400000 8890 lfetch.excl [r20] ;; // 072977
008001600740 8891 ld1 r29 = [r22] // 072976
000008000000 8892 nop.i 0
}
{ .mmi
00CB01C00000 88A0 lfetch [r28] ;; // 072977
000008000000 88A1 nop.m 0
0000A1D005C0 88A2 sxt1 r23 = r29 ;; // 072976
}
{ .mmi
01C061700340 88B0 cmp.eq pr13, pr12 = r0, r23 ;;
01C260000009 88B1 (pr9) cmp.eq.or.andcm pr0, pr12 = r0, r0
000008000000 88B2 nop.i 0
}
{ .mfb
000008000000 88C0 nop.m 0
000008000000 88C1 nop.f 0
0095FFFE800C 88C2 (pr12) br.cond.dptk.many L$220 ;; // 072975
}
88D0 L$219: // 072977
{ .mii
010029244480 88D0 sub r18 = sptr, r18 // r18 = r34, r18 // 072980
012000004640 88D1 mov ai = 2 // r25 = 2
010802000AC0 88D2 mov out0 = rqptr // r43 = r32
}
{ .mmi
008C02200000 88E0 st1 [r34] = r0 ;; // 072978
010801202900 88E1 adds len = 1, r18 // r36 = 1, r18 // 072980
000008000000 88E2 nop.i 0 ;;
}
{ .mib
000008000000 88F0 nop.m 0
0000B2400B00 88F1 sxt4 out1 = len // r44 = r36
00A000001000 88F2 br.call.sptk.many rp = VmGetHeap ;; // br0 = VmGetHeap
}
{ .mii
010800800980 8900 mov cptr = r8 // r38 = r8
012000006640 8901 mov ai = 3 // r25 = 3 // 072981
0000B2400B40 8902 sxt4 out2 = len // r45 = r36
}
{ .mmi
010800C20B00 8910 adds out1 = 16, sp ;; // r44 = 16, r12
010800800AC0 8911 mov out0 = r8 // r43 = r8
010802A00040 8912 mov gp = r42 ;; // r1 = r42 // 072980
}
{ .mfb
000008000000 8920 nop.m 0
000008000000 8921 nop.f 0
00A000001000 8922 br.call.sptk.many rp = strzcpy ;; // br0 = strzcpy // 072981
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 260
UserAtClient 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mii
010802600200 8930 mov r8 = cptr // r8 = r38 // 072982
010802A00040 8931 mov gp = r42 // r1 = r42 // 072981
000008000000 8932 nop.i 0 ;;
}
8940 L$191: // 072982
{ .mii
000008000000 8940 nop.m 0
000154052000 8941 mov.i rspfs = r41 ;;
000E00150000 8942 mov rp = r40 // br0 = r40
}
{ .mfb
010810C00300 8950 adds sp = 256, sp // r12 = 256, r12
000008000000 8951 nop.f 0
000108001100 8952 br.ret.sptk.many rp ;; // br0
}
.endp UserAtClient
Routine Size: 1648 bytes, Routine Base: $CODE$ + 82F0
.proc ConvertFromUtf8
.align 32
.global ConvertFromUtf8
ConvertFromUtf8: // 072995
{ .mii
002C00B18A40 8960 alloc r41 = rspfs, 3, 8, 1, 0
000188000A00 8961 mov r40 = rp // r40 = br0
01DC3A1FE000 8962 cmp4.eq pr0, pr7 = -1, in1 // pr0, pr7 = -1, r33 // 073013
}
{ .mmi
010802100200 8970 mov UtfCount = in1 ;; // r8 = r33 // 072995
010800100A80 8971 mov r42 = gp // r42 = r1
000008000000 8972 nop.i 0
}
{ .mfb
000008000000 8980 nop.m 0
000008000000 8981 nop.f 0
008600006007 8982 (pr7) br.cond.dpnt.many L$135 ;; // 073013
}
{ .mib
012000002640 8990 mov ai = 1 // r25 = 1
010802000AC0 8991 mov out0 = UtfPtr // r43 = r32
00A000001000 8992 br.call.sptk.many rp = DECC$STRLEN ;; // br0 = DECC$STRLEN
}
{ .mfi
010802A00040 89A0 mov gp = r42 // r1 = r42
000008000000 89A1 nop.f 0
000008000000 89A2 nop.i 0
}
89B0 L$135:
{ .mfb
018438010000 89B0 cmp4.lt pr0, pr7 = UtfCount, r0 // pr0, pr7 = r8, r0 // 073015
000008000000 89B1 nop.f 0
008600004007 89B2 (pr7) br.cond.dpnt.many L$138 ;;
}
{ .mfb
0119F80FE200 89C0 adds r8 = -1, r0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 261
ConvertFromUtf8 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 89C1 nop.f 0
0080000AD000 89C2 br.sptk.many L$139 ;;
}
89D0 L$138:
{ .mii
010802000900 89D0 mov cptr = UtfPtr // r36 = r32 // 073018
0000B08008C0 89D1 sxt4 r35 = UtfCount ;; // r35 = r8
0100023408C0 89D2 add zptr = UtfPtr, r35 ;; // r35 = r32, r35
}
{ .mfb
01A44A340200 89E0 cmp4.ltu pr8, pr9 = UtfPtr, zptr // pr8, pr9 = r32, r35
000008000000 89E1 nop.f 0
008600034009 89E2 (pr9) br.cond.dpnt.many L$141 ;;
}
{ .mii
0119FA3F8940 89F0 adds r37 = -4, zptr // r37 = -4, r35
012008080980 89F1 mov r38 = 192 ;; // 073019
01A46A540000 89F2 cmp4.ltu pr0, pr13 = UtfPtr, r37 // pr0, pr13 = r32, r37 // 073018
}
{ .mmi
01A4525462C0 8A00 cmp4.ltu pr11, pr10 = zptr, r37 ;; // pr11, pr10 = r35, r37
01C2000002CD 8A01 (pr13) cmp.eq.or.andcm pr11, pr0 = r0, r0
000008000000 8A02 nop.i 0
}
{ .mfb
000008000000 8A10 nop.m 0
000008000000 8A11 nop.f 0
00860002600B 8A12 (pr11) br.cond.dpnt.many L$151 ;;
}
8A20 L$144:
{ .mii
0080024009C0 8A20 ld1 r39 = [r36] // 073019
012008080840 8A21 mov in1 = 192 ;; // r33 = 192
01006264E9C0 8A22 and r39 = r39, r38 ;;
}
{ .mfb
01C00214E3C0 8A30 cmp.eq pr15, pr0 = r39, in1 // pr15, pr0 = r39, r33
000008000000 8A31 nop.f 0
00860002A00F 8A32 (pr15) br.cond.dpnt.many L$141 ;;
}
{ .mii
010802402900 8A40 adds r36 = 1, r36
012008080240 8A41 mov r9 = 192
000008000000 8A42 nop.i 0 ;;
}
{ .mmi
0080024000C0 8A50 ld1 r3 = [r36] ;;
0100626060C0 8A51 and r3 = r3, r38
000008000000 8A52 nop.i 0 ;;
}
{ .mfb
01C0009061C0 8A60 cmp.eq pr7, pr0 = r3, r9
000008000000 8A61 nop.f 0
008600024007 8A62 (pr7) br.cond.dpnt.many L$141 ;;
}
{ .mii
010802402900 8A70 adds r36 = 1, r36
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 262
ConvertFromUtf8 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0120080802C0 8A71 mov r11 = 192
000008000000 8A72 nop.i 0 ;;
}
{ .mmi
008002400280 8A80 ld1 r10 = [r36] ;;
010062614280 8A81 and r10 = r10, r38
000008000000 8A82 nop.i 0 ;;
}
{ .mfb
01C040B14240 8A90 cmp.eq pr9, pr8 = r10, r11
000008000000 8A91 nop.f 0
00860001E009 8A92 (pr9) br.cond.dpnt.many L$141 ;;
}
{ .mii
010802402900 8AA0 adds r36 = 1, r36
012008080480 8AA1 mov r18 = 192
000008000000 8AA2 nop.i 0 ;;
}
{ .mmi
008002400440 8AB0 ld1 r17 = [r36] ;;
010062622440 8AB1 and r17 = r17, r38
000008000000 8AB2 nop.i 0 ;;
}
{ .mfb
01C001222340 8AC0 cmp.eq pr13, pr0 = r17, r18
000008000000 8AC1 nop.f 0
00860001800D 8AC2 (pr13) br.cond.dpnt.many L$141 ;;
}
{ .mii
010802402900 8AD0 adds r36 = 1, r36
012008080500 8AD1 mov r20 = 192 ;;
010842400540 8AD2 adds r21 = 1024, r36
}
{ .mmi
0080024004C0 8AE0 ld1 r19 = [r36] ;;
0100626264C0 8AE1 and r19 = r19, r38
000008000000 8AE2 nop.i 0
}
{ .mmi
00CB01500000 8AF0 lfetch [r21] ;;
01C0014262C0 8AF1 cmp.eq pr11, pr0 = r19, r20
000008000000 8AF2 nop.i 0
}
{ .mfb
000008000000 8B00 nop.m 0
000008000000 8B01 nop.f 0
00860001000B 8B02 (pr11) br.cond.dpnt.many L$141 ;;
}
{ .mmi
010802402900 8B10 adds r36 = 1, r36 ;;
01A402548380 8B11 cmp4.ltu pr14, pr0 = cptr, r37 // pr14, pr0 = r36, r37 // 073018
000008000000 8B12 nop.i 0
}
{ .mfb
000008000000 8B20 nop.m 0
000008000000 8B21 nop.f 0
0095FFFE000E 8B22 (pr14) br.cond.dptk.many L$144 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 263
ConvertFromUtf8 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfb
01A43A348000 8B30 cmp4.ltu pr0, pr7 = cptr, zptr // pr0, pr7 = r36, r35
000008000000 8B31 nop.f 0
00860000A007 8B32 (pr7) br.cond.dpnt.many L$141 ;;
}
8B40 L$151:
{ .mii
008002400580 8B40 ld1 r22 = [r36] // 073019
0120080805C0 8B41 mov r23 = 192 ;;
01006262C580 8B42 and r22 = r22, r38 ;;
}
{ .mfb
01C04172C240 8B50 cmp.eq pr9, pr8 = r22, r23
000008000000 8B51 nop.f 0
008600006009 8B52 (pr9) br.cond.dpnt.many L$141 ;;
}
{ .mmi
010802402900 8B60 adds r36 = 1, r36 ;;
01A402348300 8B61 cmp4.ltu pr12, pr0 = cptr, zptr // pr12, pr0 = r36, r35 // 073018
000008000000 8B62 nop.i 0
}
{ .mfb
000008000000 8B70 nop.m 0
000008000000 8B71 nop.f 0
0095FFFFA00C 8B72 (pr12) br.cond.dptk.many L$151 ;;
}
8B80 L$141: // 073019
{ .mbb
01A402348280 8B80 cmp4.ltu pr10, pr0 = cptr, zptr // pr10, pr0 = r36, r35 // 073022
00860000200A 8B81 (pr10) br.cond.dpnt.many L$153
008000073000 8B82 br.sptk.many L$1135 ;;
}
8B90 L$153:
{ .mii
008002400600 8B90 ld1 r24 = [r36] // 073023
0120080FE640 8B91 mov ai = 255 // r25 = 255
0120080FE680 8B92 mov r26 = 255 ;;
}
{ .mfb
01C071930000 8BA0 cmp.eq pr0, pr14 = r24, ai // pr0, pr14 = r24, r25
000008000000 8BA1 nop.f 0
00860000400E 8BA2 (pr14) br.cond.dpnt.many L$155 ;;
}
{ .mfb
01002A048200 8BB0 sub r8 = cptr, UtfPtr // r8 = r36, r32
000008000000 8BB1 nop.f 0
00800006D000 8BB2 br.sptk.many L$1135 ;;
}
8BC0 L$155:
{ .mii
010061A44680 8BC0 and r26 = SubsChar, r26 // r26 = r34, r26 // 073037
0120080F0AC0 8BC1 mov out0 = 248 // r43 = 248 // 073028
0120080E07C0 8BC2 mov r31 = 240
}
{ .mmi
012008080780 8BD0 mov r30 = 192 ;; // 073050
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 264
ConvertFromUtf8 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01C031A001C0 8BD1 cmp.eq pr7, pr6 = r0, r26 // 073037
0120080C0740 8BD2 mov r29 = 224 // 073040
}
{ .mii
010802400700 8BE0 mov sptr = cptr // r28 = r36 // 073025
0000822006C0 8BE1 zxt1 r27 = SubsChar ;; // r27 = r34 // 073037
01C000001247 8BE2 (pr7) cmp.eq.unc pr9, pr0 = r0, r0 // 073059
}
{ .mfi
01C000001206 8BF0 (pr6) cmp.eq.unc pr8, pr0 = r0, r0
000008000000 8BF1 nop.f 0
000008000000 8BF2 nop.i 0 ;;
}
8C00 L$157: // 073026
{ .mii
008002400840 8C00 ld1 in1 = [r36] // r33 = [r36] // 073028
0120080E00C0 8C01 mov r3 = 240 ;;
010062B429C0 8C02 and r39 = in1, out0 ;; // r39 = r33, r43
}
{ .mfb
01C06034E000 8C10 cmp.eq pr0, pr12 = r39, r3
000008000000 8C11 nop.f 0
00860001C00C 8C12 (pr12) br.cond.dpnt.many L$158 ;;
}
{ .mmi
010802402900 8C20 adds r36 = 1, r36 ;;
01A45A348000 8C21 cmp4.ltu pr0, pr11 = cptr, zptr // pr0, pr11 = r36, r35 // 073031
000008000000 8C22 nop.i 0
}
{ .mfb
000008000000 8C30 nop.m 0
000008000000 8C31 nop.f 0
00860005800B 8C32 (pr11) br.cond.dpnt.many utf8_nbg ;;
}
{ .mii
00A002402240 8C40 ld1 r9 = [r36], 1 // 073032
012008000280 8C41 mov r10 = 128 ;;
010061E12240 8C42 and r9 = r9, r30 ;;
}
{ .mfb
01C070A12000 8C50 cmp.eq pr0, pr14 = r9, r10
000008000000 8C51 nop.f 0
00860005400E 8C52 (pr14) br.cond.dpnt.many utf8_nbg ;;
}
{ .mfb
01A43A348000 8C60 cmp4.ltu pr0, pr7 = cptr, zptr // pr0, pr7 = r36, r35 // 073033
000008000000 8C61 nop.f 0
008600052007 8C62 (pr7) br.cond.dpnt.many utf8_nbg ;;
}
{ .mmi
00A0024022C0 8C70 ld1 r11 = [r36], 1 ;; // 073034
010061E162C0 8C71 and r11 = r11, r30
000008000000 8C72 nop.i 0 ;;
}
{ .mfb
01C060A16000 8C80 cmp.eq pr0, pr12 = r11, r10
000008000000 8C81 nop.f 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 265
ConvertFromUtf8 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00860004E00C 8C82 (pr12) br.cond.dpnt.many utf8_nbg ;;
}
{ .mfb
01A45A348000 8C90 cmp4.ltu pr0, pr11 = cptr, zptr // pr0, pr11 = r36, r35 // 073035
000008000000 8C91 nop.f 0
00860004C00B 8C92 (pr11) br.cond.dpnt.many utf8_nbg ;;
}
{ .mmi
008002400440 8CA0 ld1 r17 = [r36] ;; // 073036
010061E22440 8CA1 and r17 = r17, r30
000008000000 8CA2 nop.i 0 ;;
}
{ .mbb
01C070A22000 8CB0 cmp.eq pr0, pr14 = r17, r10
00860004800E 8CB1 (pr14) br.cond.dpnt.many utf8_nbg
008600004008 8CB2 (pr8) br.cond.dpnt.many L$166 ;; // 073037
}
{ .mfb
000008000000 8CC0 nop.m 0
000008000000 8CC1 nop.f 0
008600044009 8CC2 (pr9) br.cond.dpnt.many L$167 ;;
}
8CD0 L$166:
{ .mmi
01A402348300 8CD0 cmp4.ltu pr12, pr0 = cptr, zptr // pr12, pr0 = r36, r35 // 073026
00AC01C36040 8CD1 st1 [r28] = r27, 1 // 073037
000008000000 8CD2 nop.i 0 ;;
}
{ .bbb
0095FFFE400C 8CE0 (pr12) br.cond.dptk.many L$157 // 073026
008000045000 8CE1 br.sptk.many L$185
004000000000 8CE2 nop.b 0 ;;
}
8CF0 L$158: // 073039
{ .mii
0120080C0500 8CF0 mov r20 = 224 // 073040
010061F424C0 8CF1 and r19 = in1, r31 ;; // r19 = r33, r31
01C0314261C0 8CF2 cmp.eq pr7, pr6 = r19, r20
}
{ .mfb
000008000000 8D00 nop.m 0
000008000000 8D01 nop.f 0
008600016006 8D02 (pr6) br.cond.dpnt.many L$168 ;;
}
{ .mmi
010802402900 8D10 adds r36 = 1, r36 ;;
01A46A348000 8D11 cmp4.ltu pr0, pr13 = cptr, zptr // pr0, pr13 = r36, r35 // 073043
000008000000 8D12 nop.i 0
}
{ .mfb
000008000000 8D20 nop.m 0
000008000000 8D21 nop.f 0
00860003A00D 8D22 (pr13) br.cond.dpnt.many utf8_nbg ;;
}
{ .mii
00A002402540 8D30 ld1 r21 = [r36], 1 // 073044
012008000940 8D31 mov r37 = 128 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 266
ConvertFromUtf8 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010061E2A540 8D32 and r21 = r21, r30 ;;
}
{ .mfb
01C05252A000 8D40 cmp.eq pr0, pr10 = r21, r37
000008000000 8D41 nop.f 0
00860003600A 8D42 (pr10) br.cond.dpnt.many utf8_nbg ;;
}
{ .mfb
01A47A348000 8D50 cmp4.ltu pr0, pr15 = cptr, zptr // pr0, pr15 = r36, r35 // 073045
000008000000 8D51 nop.f 0
00860003400F 8D52 (pr15) br.cond.dpnt.many utf8_nbg ;;
}
{ .mmi
008002400580 8D60 ld1 r22 = [r36] ;; // 073046
010061E2C580 8D61 and r22 = r22, r30
000008000000 8D62 nop.i 0 ;;
}
{ .mbb
01C03252C000 8D70 cmp.eq pr0, pr6 = r22, r37
008600030006 8D71 (pr6) br.cond.dpnt.many utf8_nbg
008600004008 8D72 (pr8) br.cond.dpnt.many L$174 ;; // 073047
}
{ .mfb
000008000000 8D80 nop.m 0
000008000000 8D81 nop.f 0
00860002C009 8D82 (pr9) br.cond.dpnt.many L$167 ;;
}
8D90 L$174:
{ .mmi
01A402348300 8D90 cmp4.ltu pr12, pr0 = cptr, zptr // pr12, pr0 = r36, r35 // 073026
00AC01C36040 8D91 st1 [r28] = r27, 1 // 073047
000008000000 8D92 nop.i 0 ;;
}
{ .bbb
0095FFFCC00C 8DA0 (pr12) br.cond.dptk.many L$157 // 073026
00800002D000 8DA1 br.sptk.many L$185
004000000000 8DA2 nop.b 0 ;;
}
8DB0 L$168: // 073049
{ .mii
012008080600 8DB0 mov r24 = 192 // 073050
010061D42980 8DB1 and r38 = in1, r29 ;; // r38 = r33, r29
01C06184C000 8DB2 cmp.eq pr0, pr12 = r38, r24
}
{ .mfb
000008000000 8DC0 nop.m 0
000008000000 8DC1 nop.f 0
00860002200C 8DC2 (pr12) br.cond.dpnt.many L$175 ;;
}
{ .mii
010802402200 8DD0 adds r8 = 1, cptr // r8 = 1, r36 // 073065
010162138640 8DD1 and ai = 28, in1 ;; // r25 = 28, r33 // 073053
01A47A310380 8DD2 cmp4.ltu pr14, pr15 = r8, zptr // pr14, pr15 = r8, r35 // 073056
}
{ .mmi
01C0019002C0 8DE0 cmp.eq pr11, pr0 = r0, ai ;; // pr11, pr0 = r0, r25 // 073053
01C0000011CF 8DE1 (pr15) cmp.eq.unc pr7, pr0 = r0, r0 // 073065
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 267
ConvertFromUtf8 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01C00000118E 8DE2 (pr14) cmp.eq.unc pr6, pr0 = r0, r0
}
{ .bbb
00860000E00B 8DF0 (pr11) br.cond.dpnt.many L$178 // 073053
008600002006 8DF1 (pr6) br.cond.dpnt.many L$179 // 073056
008600020007 8DF2 (pr7) br.cond.dpnt.many utf8_nbg ;;
}
8E00 L$179:
{ .mii
008000800880 8E00 ld1 in2 = [r8] // r34 = [r8] // 073057
012008000680 8E01 mov r26 = 128 ;;
010061E44880 8E02 and in2 = in2, r30 ;; // r34 = r34, r30
}
{ .mfb
01C061A44000 8E10 cmp.eq pr0, pr12 = in2, r26 // pr0, pr12 = r34, r26
000008000000 8E11 nop.f 0
00860001C00C 8E12 (pr12) br.cond.dpnt.many utf8_nbg ;;
}
{ .mmi
010800802900 8E20 adds cptr = 1, r8 ;; // r36 = 1, r8 // 073058
01A47A348000 8E21 cmp4.ltu pr0, pr15 = cptr, zptr // pr0, pr15 = r36, r35
000008000000 8E22 nop.i 0
}
{ .bbb
00860001800F 8E30 (pr15) br.cond.dpnt.many utf8_nbg
008600002008 8E31 (pr8) br.cond.dpnt.many L$182 // 073059
008600016009 8E32 (pr9) br.cond.dpnt.many L$167 ;;
}
8E40 L$182:
{ .mmi
01A402348300 8E40 cmp4.ltu pr12, pr0 = cptr, zptr // pr12, pr0 = r36, r35 // 073026
00AC01C36040 8E41 st1 [r28] = r27, 1 // 073059
000008000000 8E42 nop.i 0 ;;
}
{ .bbb
0095FFFB600C 8E50 (pr12) br.cond.dptk.many L$157 // 073026
008000017000 8E51 br.sptk.many L$185
004000000000 8E52 nop.b 0 ;;
}
8E60 L$178: // 073061
{ .mmi
0101621069C0 8E60 and r39 = 3, in1 ;; // r39 = 3, r33 // 073064
000008000000 8E61 nop.m 0
00A7CB94E9C0 8E62 shl ch = r39, 6 // r39 = r39, 6
}
{ .bbb
008600002006 8E70 (pr6) br.cond.dpnt.many L$183 // 073065
004000000000 8E71 nop.b 0
008600010007 8E72 (pr7) br.cond.dpnt.many utf8_nbg ;;
}
8E80 L$183:
{ .mii
008000800240 8E80 ld1 r9 = [r8] // 073066
012008000280 8E81 mov r10 = 128 ;;
010061E122C0 8E82 and r11 = r9, r30 ;;
}
{ .mfb
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 268
ConvertFromUtf8 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01C050A16000 8E90 cmp.eq pr0, pr10 = r11, r10
000008000000 8E91 nop.f 0
00860000C00A 8E92 (pr10) br.cond.dpnt.many utf8_nbg ;;
}
{ .mii
01016097E240 8EA0 and r9 = 63, r9 // 073067
010800802900 8EA1 adds cptr = 1, r8 ;; // r36 = 1, r8 // 073069
01007094E240 8EA2 or r9 = ch, r9 // r9 = r39, r9 // 073067
}
{ .mmi
01A402348300 8EB0 cmp4.ltu pr12, pr0 = cptr, zptr ;; // pr12, pr0 = r36, r35 // 073026
00AC01C12040 8EB1 st1 [r28] = r9, 1 // 073068
000008000000 8EB2 nop.i 0 ;;
}
{ .bbb
0095FFFA800C 8EC0 (pr12) br.cond.dptk.many L$157 // 073026
008000009000 8EC1 br.sptk.many L$185
004000000000 8EC2 nop.b 0 ;;
}
8ED0 L$175: // 073072
{ .mmi
010802402900 8ED0 adds r36 = 1, r36
00AC01C42040 8ED1 st1 [r28] = in1, 1 // [r28] = r33, 1 // 073075
000008000000 8ED2 nop.i 0 ;;
}
8EE0 L$167: // 073026
{ .mbb
01A402348300 8EE0 cmp4.ltu pr12, pr0 = cptr, zptr // pr12, pr0 = r36, r35
0095FFFA400C 8EE1 (pr12) br.cond.dptk.many L$157
008000005000 8EE2 br.sptk.many L$185 ;;
}
8EF0 utf8_nbg: // 073082
{ .mfb
0119F80FE200 8EF0 adds r8 = -1, r0 // 073083
000008000000 8EF1 nop.f 0
008000007000 8EF2 br.sptk.many L$139 ;;
}
8F00 L$185: // 073077
{ .mii
008C01C00000 8F00 st1 [r28] = r0 // 073078
01002A038200 8F01 sub r8 = sptr, UtfPtr // r8 = r28, r32 // 073080
000008000000 8F02 nop.i 0 ;;
}
8F10 L$1135:
{ .mib
000008000000 8F10 nop.m 0
0000B0800200 8F11 sxt4 r8 = r8
004000000000 8F12 nop.b 0
}
8F20 L$139:
{ .mii
000008000000 8F20 nop.m 0
000154052000 8F21 mov.i rspfs = r41 ;;
000E00150000 8F22 mov rp = r40 // br0 = r40
}
{ .mfb
000008000000 8F30 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 269
ConvertFromUtf8 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 8F31 nop.f 0
000108001100 8F32 br.ret.sptk.many rp ;; // br0
}
.endp ConvertFromUtf8
Routine Size: 1504 bytes, Routine Base: $CODE$ + 8960
.proc ConvertToUtf8
.align 32
.global ConvertToUtf8
ConvertToUtf8: // 073096
{ .mii
002C00B18A40 8F40 alloc r41 = rspfs, 3, 8, 1, 0
000188000A00 8F41 mov r40 = rp // r40 = br0
01DC3A1FE000 8F42 cmp4.eq pr0, pr7 = -1, in1 // pr0, pr7 = -1, r33 // 073114
}
{ .mmi
0108000008C0 8F50 mov HiBitCount = r0 ;; // r35 = r0 // 073103
010802100200 8F51 mov TextLength = in1 // r8 = r33 // 073096
010800100A80 8F52 mov r42 = gp // r42 = r1
}
{ .mfb
000008000000 8F60 nop.m 0
000008000000 8F61 nop.f 0
008600006007 8F62 (pr7) br.cond.dpnt.many L$112 ;; // 073114
}
{ .mib
012000002640 8F70 mov ai = 1 // r25 = 1
010802000AC0 8F71 mov out0 = TextPtr // r43 = r32
00A000001000 8F72 br.call.sptk.many rp = DECC$STRLEN ;; // br0 = DECC$STRLEN
}
{ .mfi
010802A00040 8F80 mov gp = r42 // r1 = r42
000008000000 8F81 nop.f 0
000008000000 8F82 nop.i 0
}
8F90 L$112:
{ .mii
010802000940 8F90 mov cptr = TextPtr // r37 = r32 // 073116
0000B0800900 8F91 sxt4 r36 = TextLength ;; // r36 = r8
010002440900 8F92 add r36 = TextPtr, r36 ;; // r36 = r32, r36
}
{ .mfb
01A43A440000 8FA0 cmp4.ltu pr0, pr7 = TextPtr, r36 // pr0, pr7 = r32, r36
000008000000 8FA1 nop.f 0
00860002E007 8FA2 (pr7) br.cond.dpnt.many L$115 ;;
}
{ .mii
0119FA4F8980 8FB0 adds r38 = -4, r36
0120080009C0 8FB1 mov r39 = 128 ;; // 073117
01A45A640000 8FB2 cmp4.ltu pr0, pr11 = TextPtr, r38 // pr0, pr11 = r32, r38 // 073116
}
{ .mmi
01A442648240 8FC0 cmp4.ltu pr9, pr8 = r36, r38 ;;
01C20000024B 8FC1 (pr11) cmp.eq.or.andcm pr9, pr0 = r0, r0
000008000000 8FC2 nop.i 0
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 270
ConvertToUtf8 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfb
000008000000 8FD0 nop.m 0
000008000000 8FD1 nop.f 0
008600020009 8FD2 (pr9) br.cond.dpnt.many L$120 ;;
}
8FE0 L$118:
{ .mii
008002500840 8FE0 ld1 in1 = [r37] // r33 = [r37] // 073117
010802302240 8FE1 adds r9 = 1, HiBitCount // r9 = 1, r35
0108025084C0 8FE2 adds r19 = 4, cptr ;; // r19 = 4, r37 // 073116
}
{ .mii
010802502940 8FF0 adds r37 = 1, r37 // 073117
0000A2100840 8FF1 sxt1 in1 = in1 ;; // r33 = r33
010062742840 8FF2 and in1 = in1, r39 // r33 = r33, r39
}
{ .mmi
00A0025020C0 9000 ld1 r3 = [r37], 1 ;;
008002500280 9001 ld1 r10 = [r37]
0000A03000C0 9002 sxt1 r3 = r3
}
{ .mii
010802502940 9010 adds r37 = 1, r37
01C062100000 9011 cmp.eq pr0, pr12 = r0, in1 ;; // pr0, pr12 = r0, r33
0100627060C0 9012 and r3 = r3, r39
}
{ .mii
008002500440 9020 ld1 r17 = [r37]
0000A0A00280 9021 sxt1 r10 = r10 ;;
010802502940 9022 adds r37 = 1, r37
}
{ .mii
0108009008CC 9030 (pr12) mov HiBitCount = r9 // r35 = r9
01C070300000 9031 cmp.eq pr0, pr14 = r0, r3
010062714280 9032 and r10 = r10, r39 ;;
}
{ .mii
0108023022C0 9040 adds r11 = 1, HiBitCount // r11 = 1, r35
0000A1100440 9041 sxt1 r17 = r17
01C030A00000 9042 cmp.eq pr0, pr6 = r0, r10
}
{ .mmi
008002500500 9050 ld1 r20 = [r37] ;;
010800B008CE 9051 (pr14) mov HiBitCount = r11 // r35 = r11
010062722440 9052 and r17 = r17, r39
}
{ .mii
010842500940 9060 adds r37 = 1024, r37
0000A1400500 9061 sxt1 r20 = r20 ;;
010802302480 9062 adds r18 = 1, HiBitCount // r18 = 1, r35
}
{ .mii
01C051100000 9070 cmp.eq pr0, pr10 = r0, r17
010062728500 9071 and r20 = r20, r39 ;;
0108012008C6 9072 (pr6) mov HiBitCount = r18 // r35 = r18
}
{ .mii
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 271
ConvertToUtf8 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00CB02500000 9080 lfetch [r37]
01C041400000 9081 cmp.eq pr0, pr8 = r0, r20
010801302940 9082 adds cptr = 1, r19 ;; // r37 = 1, r19 // 073116
}
{ .mii
010802302540 9090 adds r21 = 1, HiBitCount // r21 = 1, r35 // 073117
01A40264A340 9091 cmp4.ltu pr13, pr0 = cptr, r38 ;; // pr13, pr0 = r37, r38 // 073116
0108015008CA 9092 (pr10) mov HiBitCount = r21 ;; // r35 = r21 // 073117
}
{ .mmi
010802302580 90A0 adds r22 = 1, HiBitCount ;; // r22 = 1, r35
0108016008C8 90A1 (pr8) mov HiBitCount = r22 // r35 = r22
000008000000 90A2 nop.i 0
}
{ .mfb
000008000000 90B0 nop.m 0
000008000000 90B1 nop.f 0
0095FFFE600D 90B2 (pr13) br.cond.dptk.many L$118 ;; // 073116
}
{ .mfb
01A47244A000 90C0 cmp4.ltu pr0, pr14 = cptr, r36 // pr0, pr14 = r37, r36
000008000000 90C1 nop.f 0
00860000A00E 90C2 (pr14) br.cond.dpnt.many L$115 ;;
}
90D0 L$120:
{ .mii
00A0025025C0 90D0 ld1 r23 = [r37], 1 // 073117
010802302600 90D1 adds r24 = 1, HiBitCount ;; // r24 = 1, r35
0000A17005C0 90D2 sxt1 r23 = r23
}
{ .mmi
01A40244A2C0 90E0 cmp4.ltu pr11, pr0 = cptr, r36 ;; // pr11, pr0 = r37, r36 // 073116
01006272E5C0 90E1 and r23 = r23, r39 // 073117
000008000000 90E2 nop.i 0 ;;
}
{ .mmi
01C039700000 90F0 cmp.eq pr0, pr7 = r0, r23 ;;
0108018008C7 90F1 (pr7) mov HiBitCount = r24 // r35 = r24
000008000000 90F2 nop.i 0
}
{ .mfb
000008000000 9100 nop.m 0
000008000000 9101 nop.f 0
0095FFFFA00B 9102 (pr11) br.cond.dptk.many L$120 ;; // 073116
}
9110 L$115: // 073117
{ .mbb
01C44A300000 9110 cmp4.eq pr0, pr9 = r0, HiBitCount // pr0, pr9 = r0, r35 // 073119
008600002009 9111 (pr9) br.cond.dpnt.many L$121
008000027000 9112 br.sptk.many L$126 ;;
}
9120 L$121:
{ .mii
010002310200 9120 add r8 = TextLength, HiBitCount // r8 = r8, r35 // 073121
0119FA2FE880 9121 adds in2 = -1, in2 ;; // r34 = -1, r34 // 073119
018402210300 9122 cmp4.lt pr12, pr0 = r8, in2 // pr12, pr0 = r8, r34 // 073121
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 272
ConvertToUtf8 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfb
000008000000 9130 nop.m 0
000008000000 9131 nop.f 0
00860000400C 9132 (pr12) br.cond.dpnt.many L$124 ;;
}
{ .mfb
0119F80FE200 9140 adds r8 = -1, r0
000008000000 9141 nop.f 0
008000023000 9142 br.sptk.many L$123 ;;
}
9150 L$124:
{ .mii
0119FA4FE900 9150 adds r36 = -1, r36
0000B23008C0 9151 sxt4 r35 = HiBitCount ;; // r35 = r35 // 073123
0100023488C0 9152 add r35 = cptr, r35 // r35 = r36, r35
}
{ .mmi
01A402048380 9160 cmp4.ltu pr14, pr0 = cptr, TextPtr ;; // pr14, pr0 = r36, r32 // 073125
0108023028C0 9161 adds r35 = 1, r35 // 073124
000008000000 9162 nop.i 0 ;;
}
{ .mib
008C02300000 9170 st1 [r35] = r0
0119FA3FE640 9171 adds sptr = -1, sptr // r25 = -1, r35
00860001A00E 9172 (pr14) br.cond.dpnt.many L$126 ;; // 073125
}
{ .mii
012008000700 9180 mov r28 = 128 // 073127
0120080806C0 9181 mov r27 = 192 // 073130
000008000000 9182 nop.i 0 ;;
}
9190 L$128: // 073125
{ .mii
008002400740 9190 ld1 r29 = [r36] // 073127
0119FA4FEAC0 9191 adds out0 = -1, cptr // r43 = -1, r36 // 073130
0119F99FE7C0 9192 adds r31 = -1, sptr ;; // r31 = -1, r25 // 073133
}
{ .mii
000008000000 91A0 nop.m 0
0000A1D00740 91A1 sxt1 r29 = r29 ;; // 073127
010061C3A780 91A2 and r30 = r29, r28 ;;
}
{ .mfb
01C001E001C0 91B0 cmp.eq pr7, pr0 = r0, r30
000008000000 91B1 nop.f 0
00860000E007 91B2 (pr7) br.cond.dpnt.many L$130 ;;
}
{ .mmi
010161D7E840 91C0 and in1 = 63, r29 ;; // r33 = 63, r29 // 073129
0119FA100840 91C1 adds in1 = -128, in1 // r33 = -128, r33
000008000000 91C2 nop.i 0 ;;
}
{ .mii
008C01942000 91D0 st1 [ai] = in1 // [r25] = r33
0119F9FFE640 91D1 adds sptr = -1, r31 // r25 = -1, r31 // 073130
000008000000 91D2 nop.i 0 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 273
ConvertToUtf8 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
008002400900 91E0 ld1 r36 = [r36] ;;
000008000000 91E1 nop.m 0
0000A2400900 91E2 sxt1 r36 = r36 ;;
}
{ .mmi
010061B48900 91F0 and r36 = r36, r27 ;;
000008000000 91F1 nop.m 0
00A5CA41A900 91F2 shr r36 = r36, 6 ;;
}
{ .mii
0111724800C0 9200 or r3 = -64, r36
010802B00900 9201 mov cptr = out0 // r36 = r43
000008000000 9202 nop.i 0 ;;
}
{ .mfb
008C01F06000 9210 st1 [r31] = r3
000008000000 9211 nop.f 0
008000005000 9212 br.sptk.many L$131 ;; // 073132
}
9220 L$130:
{ .mii
008C0193A000 9220 st1 [ai] = r29 // [r25] = r29 // 073133
010801F00640 9221 mov sptr = r31 // r25 = r31
010802B00900 9222 mov cptr = out0 ;; // r36 = r43
}
9230 L$131: // 073125
{ .mfb
01A45A048000 9230 cmp4.ltu pr0, pr11 = cptr, TextPtr // pr0, pr11 = r36, r32
000008000000 9231 nop.f 0
0095FFFEC00B 9232 (pr11) br.cond.dptk.many L$128 ;;
}
9240 L$126: // 073134
{ .mib
000008000000 9240 nop.m 0
0000B0800200 9241 sxt4 r8 = r8 // 073136
004000000000 9242 nop.b 0
}
9250 L$123:
{ .mii
000008000000 9250 nop.m 0
000154052000 9251 mov.i rspfs = r41 ;;
000E00150000 9252 mov rp = r40 // br0 = r40
}
{ .mfb
000008000000 9260 nop.m 0
000008000000 9261 nop.f 0
000108001100 9262 br.ret.sptk.many rp ;; // br0
}
.endp ConvertToUtf8
Routine Size: 816 bytes, Routine Base: $CODE$ + 8F40
.proc ConvertUtf8ToEscape
.align 32
.global ConvertUtf8ToEscape
ConvertUtf8ToEscape: // 073147
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 274
ConvertUtf8ToEscape 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
002C00912A00 9270 alloc r40 = rspfs, 3, 6, 0, 0
008002000240 9271 ld1 r9 = [in0] // r9 = [r32] // 073167
010802000280 9272 mov cptr = FileSpec ;; // r10 = r32
}
{ .mii
000008000000 9280 nop.m 0
0000A0900240 9281 sxt1 r9 = r9 ;;
01C038900200 9282 cmp.eq pr8, pr7 = r0, r9 ;;
}
{ .mib
01C000001288 9290 (pr8) cmp.eq.unc pr10, pr0 = r0, r0
01C000001247 9291 (pr7) cmp.eq.unc pr9, pr0 = r0, r0
008600004009 9292 (pr9) br.cond.dpnt.many L$78 ;;
}
{ .mfb
000008000000 92A0 nop.m 0
000008000000 92A1 nop.f 0
00860000C00A 92A2 (pr10) br.cond.dpnt.many L$77 ;;
}
92B0 L$78:
{ .mmi
008000A002C0 92B0 ld1 r11 = [r10] ;; // 073168
0119F8B002C0 92B1 adds r11 = -128, r11
000008000000 92B2 nop.i 0 ;;
}
{ .mfb
01A858B3E000 92C0 cmp.ltu pr0, pr11 = 31, r11
000008000000 92C1 nop.f 0
00860000800B 92C2 (pr11) br.cond.dpnt.many L$77 ;;
}
{ .mmi
010800A02280 92D0 adds r10 = 1, r10 ;; // 073167
008000A00440 92D1 ld1 r17 = [r10]
000008000000 92D2 nop.i 0 ;;
}
{ .mii
000008000000 92E0 nop.m 0
0000A1100440 92E1 sxt1 r17 = r17 ;;
01C069100000 92E2 cmp.eq pr0, pr13 = r0, r17
}
{ .mfb
000008000000 92F0 nop.m 0
000008000000 92F1 nop.f 0
0095FFFF800D 92F2 (pr13) br.cond.dptk.many L$78 ;;
}
9300 L$77: // 073169
{ .mmi
008000A00280 9300 ld1 r10 = [r10] ;; // 073171
000008000000 9301 nop.m 0
0000A0A00280 9302 sxt1 r10 = r10 ;;
}
{ .mfb
01C078A00000 9310 cmp.eq pr0, pr15 = r0, r10
000008000000 9311 nop.f 0
00860000400F 9312 (pr15) br.cond.dpnt.many L$82 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 275
ConvertUtf8ToEscape 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfb
012000000200 9320 mov r8 = 0
000008000000 9321 nop.f 0
000108001100 9322 br.ret.sptk.many rp ;; // br0 // 073213
}
9330 L$82: // 073171
{ .mfb
01C43A042000 9330 cmp4.eq pr0, pr7 = BufferPtr, FileSpec // pr0, pr7 = r33, r32 // 073173
000008000000 9331 nop.f 0
00860002A007 9332 (pr7) br.cond.dpnt.many L$85 ;;
}
{ .mii
012000100480 9340 add r18 = @ltoffx(ScratchBuffer), // r18 = @ltoffx(ScratchBuffer), r1 // 073176
gp
010802000500 9341 mov cptr = FileSpec // r20 = r32 // 073177
000008000000 9342 nop.i 0 ;;
}
{ .mmi
0080C1200480 9350 ld8.mov r18 = [r18], ScratchBuffer ;; // 073176
0108192FE4C0 9351 adds r19 = 511, r18
010801200540 9352 mov sptr = r18 ;; // r21 = r18
}
{ .mmi
01A461324000 9360 cmp4.ltu pr0, pr12 = r18, r19 ;; // 073177
01C20000028C 9361 (pr12) cmp.eq.or.andcm pr10, pr0 = r0, r0
000008000000 9362 nop.i 0
}
{ .mfb
000008000000 9370 nop.m 0
000008000000 9371 nop.f 0
00860001C00A 9372 (pr10) br.cond.dpnt.many L$88 ;;
}
{ .mmi
008002000800 9380 ld1 in0 = [in0] ;; // r32 = [r32]
000008000000 9381 nop.m 0
0000A2000800 9382 sxt1 in0 = in0 ;; // r32 = r32
}
9390 L$89:
{ .mii
00AC01540040 9390 st1 [r21] = in0, 1 // [r21] = r32, 1
010801402500 9391 adds r20 = 1, r20 ;;
01A47932A000 9392 cmp4.ltu pr0, pr15 = sptr, r19 // pr0, pr15 = r21, r19
}
{ .mmi
00A0014025C0 93A0 ld1 r23 = [r20], 1 ;;
000008000000 93A1 nop.m 0
0000A17005C0 93A2 sxt1 r23 = r23 ;;
}
{ .mmi
01C069700380 93B0 cmp.eq pr14, pr13 = r0, r23 ;;
01C20000038F 93B1 (pr15) cmp.eq.or.andcm pr14, pr0 = r0, r0
000008000000 93B2 nop.i 0
}
{ .mfb
000008000000 93C0 nop.m 0
000008000000 93C1 nop.f 0
00860001200E 93C2 (pr14) br.cond.dpnt.many L$88 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 276
ConvertUtf8ToEscape 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mmi
00AC0152E040 93D0 st1 [r21] = r23, 1 ;;
008001400640 93D1 ld1 ai = [r20] // r25 = [r20]
01A46132A000 93D2 cmp4.ltu pr0, pr12 = sptr, r19 ;; // pr0, pr12 = r21, r19
}
{ .mii
000008000000 93E0 nop.m 0
0000A1900640 93E1 sxt1 ai = ai ;; // r25 = r25
01C039900200 93E2 cmp.eq pr8, pr7 = r0, ai ;; // pr8, pr7 = r0, r25
}
{ .mfb
01C20000020C 93F0 (pr12) cmp.eq.or.andcm pr8, pr0 = r0, r0
000008000000 93F1 nop.f 0
00860000C008 93F2 (pr8) br.cond.dpnt.many L$88 ;;
}
{ .mii
00AC01532040 9400 st1 [r21] = ai, 1 // [r21] = r25, 1
010841400680 9401 adds r26 = 1024, r20
010801402500 9402 adds r20 = 1, r20 ;;
}
{ .mii
008001400700 9410 ld1 r28 = [r20]
01A47932A000 9411 cmp4.ltu pr0, pr15 = sptr, r19 // pr0, pr15 = r21, r19
000008000000 9412 nop.i 0
}
{ .mmi
00CB01A00000 9420 lfetch [r26] ;;
000008000000 9421 nop.m 0
0000A1C00800 9422 sxt1 in0 = r28 ;; // r32 = r28
}
{ .mmi
01C04A000280 9430 cmp.eq pr10, pr9 = r0, in0 ;; // pr10, pr9 = r0, r32
01C24800000F 9431 (pr15) cmp.eq.or.andcm pr0, pr9 = r0, r0
000008000000 9432 nop.i 0
}
{ .mfb
000008000000 9440 nop.m 0
000008000000 9441 nop.f 0
0095FFFEA009 9442 (pr9) br.cond.dptk.many L$89 ;;
}
9450 L$88:
{ .mfb
01A40132A340 9450 cmp4.ltu pr13, pr0 = sptr, r19 // pr13, pr0 = r21, r19 // 073178
000008000000 9451 nop.f 0
00860000400D 9452 (pr13) br.cond.dpnt.many L$92 ;;
}
{ .mmb
0119F80FE200 9460 adds r8 = -1, r0 // 073181
008C02100000 9461 st1 [in1] = r0 // [r33] = r0 // 073180
000108001100 9462 br.ret.sptk.many rp ;; // br0 // 073213
}
9470 L$92: // 073182
{ .mfb
008C01500000 9470 st1 [r21] = r0 // 073183
000008000000 9471 nop.f 0
008000005000 9472 br.sptk.many L$94 ;; // 073186
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 277
ConvertUtf8ToEscape 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
9480 L$85:
{ .mfi
010802000480 9480 mov cptr = FileSpec // r18 = r32 // 073187
000008000000 9481 nop.f 0
000008000000 9482 nop.i 0
}
9490 L$94:
{ .mii
0108021007C0 9490 mov sptr = BufferPtr // r31 = r33 // 073189
0000B2200880 9491 sxt4 in2 = BufferSize ;; // r34 = r34
010002242880 9492 add in2 = BufferPtr, in2 // r34 = r33, r34
}
{ .mmi
008001200780 94A0 ld1 r30 = [r18] ;; // 073190
0119FA2FE880 94A1 adds in2 = -1, in2 // r34 = -1, r34 // 073189
0000A1E00780 94A2 sxt1 r30 = r30 ;; // 073190
}
{ .mii
01A442242000 94B0 cmp4.ltu pr0, pr8 = BufferPtr, zptr // pr0, pr8 = r33, r34
01C059E00300 94B1 cmp.eq pr12, pr11 = r0, r30 ;;
01C200000308 94B2 (pr8) cmp.eq.or.andcm pr12, pr0 = r0, r0
}
{ .mfb
000008000000 94C0 nop.m 0
000008000000 94C1 nop.f 0
00860002800C 94C2 (pr12) br.cond.dpnt.many L$96 ;;
}
{ .mii
0120001008C0 94D0 add r35 = @ltoffx(HexDigit), gp // r35 = @ltoffx(HexDigit), r1 // 073196
0120000BC940 94D1 mov r37 = 94 // 073194
0120080E0900 94D2 mov r36 = 240 ;; // 073195
}
{ .mfi
0080C23008C0 94E0 ld8.mov r35 = [r35], HexDigit // 073196
000008000000 94E1 nop.f 0
000008000000 94E2 nop.i 0 ;;
}
94F0 L$97: // 073190
{ .mmi
008001200980 94F0 ld1 r38 = [r18] ;; // 073192
0119FA600980 94F1 adds r38 = -128, r38
010801F029C0 94F2 adds r39 = 1, sptr ;; // r39 = 1, r31 // 073200
}
{ .mfb
01A80263E3C0 9500 cmp.ltu pr15, pr0 = 31, r38 // 073192
000008000000 9501 nop.f 0
00860001800F 9502 (pr15) br.cond.dpnt.many L$101 ;;
}
{ .mii
008C01F4A000 9510 st1 [r31] = r37 // 073194
01A45224E000 9511 cmp4.ltu pr0, pr10 = r39, zptr // pr0, pr10 = r39, r34 // 073195
0108027007C0 9512 mov sptr = r39 // r31 = r39 // 073194
}
{ .mfb
000008000000 9520 nop.m 0
000008000000 9521 nop.f 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 278
ConvertUtf8ToEscape 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00860000800A 9522 (pr10) br.cond.dpnt.many L$103 ;; // 073195
}
{ .mmi
008001200240 9530 ld1 r9 = [r18] ;;
010062412240 9531 and r9 = r9, r36
000008000000 9532 nop.i 0 ;;
}
{ .mii
000008000000 9540 nop.m 0
00A5D8912240 9541 shr r9 = r9, 4 ;;
010000946240 9542 add r9 = r35, r9 ;;
}
{ .mmi
008000900240 9550 ld1 r9 = [r9] ;;
008C02712000 9551 st1 [r39] = r9
0108027027C0 9552 adds sptr = 1, r39 ;; // r31 = 1, r39
}
9560 L$103:
{ .mfb
01A47223E000 9560 cmp4.ltu pr0, pr14 = sptr, zptr // pr0, pr14 = r31, r34 // 073196
000008000000 9561 nop.f 0
00860000800E 9562 (pr14) br.cond.dpnt.many L$105 ;;
}
{ .mmi
008001200440 9570 ld1 r17 = [r18] ;;
01016111E440 9571 and r17 = 15, r17
000008000000 9572 nop.i 0 ;;
}
{ .mmi
010001146440 9580 add r17 = r35, r17 ;;
008001100440 9581 ld1 r17 = [r17]
000008000000 9582 nop.i 0 ;;
}
{ .mmi
00AC01F22040 9590 st1 [r31] = r17, 1 ;;
000008000000 9591 nop.m 0
000008000000 9592 nop.i 0
}
95A0 L$105:
{ .mfi
010801202480 95A0 adds r18 = 1, r18
000008000000 95A1 nop.f 0
000008000000 95A2 nop.i 0 ;;
}
{ .mfb
000008000000 95B0 nop.m 0
000008000000 95B1 nop.f 0
008000005000 95B2 br.sptk.many L$106 ;; // 073199
}
95C0 L$101:
{ .mmi
00A001202580 95C0 ld1 r22 = [r18], 1 ;; // 073200
008C01F2C000 95C1 st1 [r31] = r22
0108027007C0 95C2 mov sptr = r39 ;; // r31 = r39
}
95D0 L$106: // 073190
{ .mii
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 279
ConvertUtf8ToEscape 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
008001200600 95D0 ld1 r24 = [r18]
01A44223E000 95D1 cmp4.ltu pr0, pr8 = sptr, zptr ;; // pr0, pr8 = r31, r34
0000A1800600 95D2 sxt1 r24 = r24 ;;
}
{ .mmi
01C059800300 95E0 cmp.eq pr12, pr11 = r0, r24 ;;
01C258000008 95E1 (pr8) cmp.eq.or.andcm pr0, pr11 = r0, r0
000008000000 95E2 nop.i 0
}
{ .mfb
000008000000 95F0 nop.m 0
000008000000 95F1 nop.f 0
0095FFFE000B 95F2 (pr11) br.cond.dptk.many L$97 ;;
}
9600 L$96: // 073201
{ .mfb
01A40223E180 9600 cmp4.ltu pr6, pr0 = sptr, zptr // pr6, pr0 = r31, r34 // 073203
000008000000 9601 nop.f 0
008600004006 9602 (pr6) br.cond.dpnt.many L$107 ;;
}
{ .mmb
0119F80FE200 9610 adds r8 = -1, r0 // 073206
008C02100000 9611 st1 [in1] = r0 // [r33] = r0 // 073205
000108001100 9612 br.ret.sptk.many rp ;; // br0 // 073213
}
9620 L$107: // 073207
{ .mmi
01002A13E840 9620 sub in1 = sptr, BufferPtr // r33 = r31, r33 // 073213
008C01F00000 9621 st1 [r31] = r0 // 073209
000008000000 9622 nop.i 0 ;;
}
{ .mib
000008000000 9630 nop.m 0
0000B2100200 9631 sxt4 r8 = in1 // r8 = r33 // 073213
000108001100 9632 br.ret.sptk.many rp ;; // br0
}
.endp ConvertUtf8ToEscape
Routine Size: 976 bytes, Routine Base: $CODE$ + 9270
.proc GenerateCspNonce
.align 32
.global GenerateCspNonce
GenerateCspNonce: // 073221
{ .mii
002C00B1CA40 9640 alloc r41 = rspfs, 1, 10, 3, 0
01081A090200 9641 adds r8 = 456, in0 // r8 = 456, r32 // 073230
000188000A00 9642 mov r40 = rp ;; // r40 = br0 // 073221
}
{ .mii
008000800240 9650 ld1 r9 = [r8] // 073230
01081A090840 9651 adds r33 = 456, rqptr // r33 = 456, r32
010800100A80 9652 mov r42 = gp ;; // r42 = r1 // 073221
}
{ .mii
000008000000 9660 nop.m 0
0000A0900240 9661 sxt1 r9 = r9 ;; // 073230
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 280
GenerateCspNonce 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01C000900200 9662 cmp.eq pr8, pr0 = r0, r9
}
{ .bbb
008600002008 9670 (pr8) br.cond.dpnt.many L$73
004000000000 9671 nop.b 0
008000021000 9672 br.sptk.many L$1137 ;;
}
9680 L$73:
{ .mii
012000100880 9680 add r34 = @ltoffx(CspNonce), gp // r34 = @ltoffx(CspNonce), r1 // 073232
012000002640 9681 mov ai = 1 // r25 = 1
000008000000 9682 nop.i 0 ;;
}
{ .mmi
0080C2200880 9690 ld8.mov r34 = [r34], CspNonce ;;
00A0C2210AC0 9691 ld8 out0 = [r34], 8 // r43 = [r34], 8
000008000000 9692 nop.i 0
}
{ .mfb
000008000000 96A0 nop.m 0
000008000000 96A1 nop.f 0
00A000001000 96A2 br.call.sptk.many rp = SYS$GETTIM ;; // br0 = SYS$GETTIM
}
{ .mii
00A0C22108C0 96B0 ld8 r35 = [r34], 8 // 073233
010802A00040 96B1 mov gp = r42 // r1 = r42 // 073232
012000006640 96B2 mov ai = 3 // r25 = 3 // 073236
}
{ .mmi
010802100B40 96C0 mov out2 = r33 ;; // r45 = r33
012000100940 96C1 add r37 = @ltoff(HttpdProcess+52), // r37 = @ltoff(HttpdProcess+52), r1 // 073234
gp
00A7D3A46900 96C2 shl r36 = r35, 5 // 073233
}
{ .mmi
012000030B00 96D0 mov out1 = 24 ;; // r44 = 24 // 073236
010002348900 96D1 add r36 = r36, r35 // 073233
000008000000 96D2 nop.i 0
}
{ .mmi
0080C2500940 96E0 ld8 r37 = HttpdProcess ;; // r37 = [r37] // 073234
010082348900 96E1 shladd r36 = r36, 1, r35 // 073233
000008000000 96E2 nop.i 0 ;;
}
{ .mmi
01008A348900 96F0 shladd r36 = r36, 2, r35
008082500940 96F1 ld4 r37 = HttpdProcess // r37 = [r37] // 073234
000008000000 96F2 nop.i 0 ;;
}
{ .mii
010082348900 9700 shladd r36 = r36, 1, r35 // 073233
0000B2500940 9701 sxt4 r37 = r37 ;; // 073234
010082348900 9702 shladd r36 = r36, 1, r35 // 073233
}
{ .mmi
00BCCA24BE00 9710 st8 [r34] = r37, -8 ;; // 073234
010092348900 9711 shladd r36 = r36, 3, r35 // 073233
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 281
GenerateCspNonce 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 9712 nop.i 0 ;;
}
{ .mmi
010082348900 9720 shladd r36 = r36, 1, r35 ;;
01008A3488C0 9721 shladd r35 = r36, 2, r35
000008000000 9722 nop.i 0 ;;
}
{ .mmi
0108023028C0 9730 adds r35 = 1, r35 ;;
00BCCA247E00 9731 st8 [r34] = r35, -8
000008000000 9732 nop.i 0 ;;
}
{ .mfb
010802200AC0 9740 mov out0 = r34 // r43 = r34 // 073236
000008000000 9741 nop.f 0
00A000001000 9742 br.call.sptk.many rp = Md5HexString ;; // br0 = Md5HexString
}
{ .mii
01081A0CE900 9750 adds r36 = 487, in0 // r36 = 487, r32 // 073237
010802A00040 9751 mov gp = r42 // r1 = r42 // 073236
000008000000 9752 nop.i 0 ;;
}
{ .mfi
008C02400000 9760 st1 [r36] = r0 // 073237
000008000000 9761 nop.f 0
000008000000 9762 nop.i 0
}
9770 L$1137: // 073239
{ .mii
010802100200 9770 mov r8 = r33
000154052000 9771 mov.i rspfs = r41 ;;
000E00150000 9772 mov rp = r40 // br0 = r40
}
{ .mfb
000008000000 9780 nop.m 0
000008000000 9781 nop.f 0
000108001100 9782 br.ret.sptk.many rp ;; // br0
}
.endp GenerateCspNonce
Routine Size: 336 bytes, Routine Base: $CODE$ + 9640
.proc GenerateUniqueId
.align 32
.global GenerateUniqueId
GenerateUniqueId: // 073247
{ .mii
002C00B1CA40 9790 alloc r41 = rspfs, 1, 10, 3, 0
012000100840 9791 add r33 = @ltoffx(UniqueId), gp // r33 = @ltoffx(UniqueId), r1 // 073257
000188000A00 9792 mov r40 = rp ;; // r40 = br0 // 073247
}
{ .mii
0080C2100840 97A0 ld8.mov r33 = [r33], UniqueId // 073257
012000002640 97A1 mov ai = 1 // r25 = 1
010800100A80 97A2 mov r42 = gp ;; // r42 = r1 // 073247
}
{ .mfb
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 282
GenerateUniqueId 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00A0C2120AC0 97B0 ld8 out0 = [r33], 16 // r43 = [r33], 16 // 073257
000008000000 97B1 nop.f 0
00A000001000 97B2 br.call.sptk.many rp = SYS$GETTIM ;; // br0 = SYS$GETTIM
}
{ .mii
0080C2100880 97C0 ld8 r34 = [r33] // 073259
010802A00040 97C1 mov gp = r42 // r1 = r42 // 073257
010802110B40 97C2 adds out2 = 8, r33 // r45 = 8, r33 // 073261
}
{ .mmi
012000006640 97D0 mov ai = 3 ;; // r25 = 3
012000100900 97D1 add r36 = @ltoff(HttpdProcess+52), // r36 = @ltoff(HttpdProcess+52), r1 // 073258
gp
00A7D3A448C0 97D2 shl r35 = r34, 5 // 073259
}
{ .mmi
012000030B00 97E0 mov out1 = 24 ;; // r44 = 24 // 073261
0100022468C0 97E1 add r35 = r35, r34 // 073259
000008000000 97E2 nop.i 0
}
{ .mmi
0080C2400900 97F0 ld8 r36 = HttpdProcess ;; // r36 = [r36] // 073258
0100822468C0 97F1 shladd r35 = r35, 1, r34 // 073259
000008000000 97F2 nop.i 0 ;;
}
{ .mmi
01008A2468C0 9800 shladd r35 = r35, 2, r34
008082400900 9801 ld4 r36 = HttpdProcess // r36 = [r36] // 073258
000008000000 9802 nop.i 0 ;;
}
{ .mii
0100822468C0 9810 shladd r35 = r35, 1, r34 // 073259
0000B2400900 9811 sxt4 r36 = r36 ;; // 073258
0100822468C0 9812 shladd r35 = r35, 1, r34 // 073259
}
{ .mmi
0119FA1F0840 9820 adds r33 = -8, r33 ;; // 073258
0100922468C0 9821 shladd r35 = r35, 3, r34 // 073259
000008000000 9822 nop.i 0
}
{ .mmi
00ACC2148200 9830 st8 [r33] = r36, 8 ;; // 073258
0100822468C0 9831 shladd r35 = r35, 1, r34 // 073259
000008000000 9832 nop.i 0 ;;
}
{ .mmi
01008A246880 9840 shladd r34 = r35, 2, r34 ;;
010802202880 9841 adds r34 = 1, r34
000008000000 9842 nop.i 0 ;;
}
{ .mmi
00BCCA145C00 9850 st8 [r33] = r34, -16 ;;
010802100AC0 9851 mov out0 = r33 // r43 = r33 // 073261
000008000000 9852 nop.i 0
}
{ .mfb
000008000000 9860 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 283
GenerateUniqueId 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 9861 nop.f 0
00A000001000 9862 br.call.sptk.many rp = Md5HexString ;; // br0 = Md5HexString
}
{ .mmi
010802156840 9870 adds r33 = 43, r33 ;; // 073262
008C02100000 9871 st1 [r33] = r0
0119FA1DA200 9872 adds r8 = -19, r33 // 073264
}
{ .mmi
010802A00040 9880 mov gp = r42 ;; // r1 = r42 // 073261
000008000000 9881 nop.m 0
000154052000 9882 mov.i rspfs = r41 ;; // 073264
}
{ .mib
000008000000 9890 nop.m 0
000E00150000 9891 mov rp = r40 // br0 = r40
000108001100 9892 br.ret.sptk.many rp ;; // br0
}
.endp GenerateUniqueId
Routine Size: 272 bytes, Routine Base: $CODE$ + 9790
.proc SysTrnLnm
.align 32
.global SysTrnLnm
SysTrnLnm: // 073274
{ .mmi
002C00B20A40 98A0 alloc r41 = rspfs, 1, 10, 5, 0
008002000200 98A1 ld1 r8 = [in0] // r8 = [r32] // 073301
000188000A00 98A2 mov r40 = rp ;; // r40 = br0 // 073274
}
{ .mii
010802000240 98B0 mov cptr = LogName // r9 = r32 // 073301
0000A0800200 98B1 sxt1 r8 = r8
010800100A80 98B2 mov r42 = gp ;; // r42 = r1 // 073274
}
{ .mfb
01C000800200 98C0 cmp.eq pr8, pr0 = r0, r8 // 073301
000008000000 98C1 nop.f 0
008600020008 98C2 (pr8) br.cond.dpnt.many L$59 ;;
}
98D0 L$60:
{ .mmi
010800902240 98D0 adds r9 = 1, r9 ;;
008000900280 98D1 ld1 r10 = [r9]
000008000000 98D2 nop.i 0 ;;
}
{ .mii
000008000000 98E0 nop.m 0
0000A0A00280 98E1 sxt1 r10 = r10 ;;
01C000A00280 98E2 cmp.eq pr10, pr0 = r0, r10
}
{ .mfb
000008000000 98F0 nop.m 0
000008000000 98F1 nop.f 0
00860001A00A 98F2 (pr10) br.cond.dpnt.many L$59 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 284
SysTrnLnm 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
010800902240 9900 adds r9 = 1, r9 ;;
0080009002C0 9901 ld1 r11 = [r9]
000008000000 9902 nop.i 0 ;;
}
{ .mii
000008000000 9910 nop.m 0
0000A0B002C0 9911 sxt1 r11 = r11 ;;
01C000B00300 9912 cmp.eq pr12, pr0 = r0, r11
}
{ .mfb
000008000000 9920 nop.m 0
000008000000 9921 nop.f 0
00860001400C 9922 (pr12) br.cond.dpnt.many L$59 ;;
}
{ .mmi
010800902240 9930 adds r9 = 1, r9 ;;
008000900440 9931 ld1 r17 = [r9]
000008000000 9932 nop.i 0 ;;
}
{ .mii
000008000000 9940 nop.m 0
0000A1100440 9941 sxt1 r17 = r17 ;;
01C001100380 9942 cmp.eq pr14, pr0 = r0, r17
}
{ .mfb
000008000000 9950 nop.m 0
000008000000 9951 nop.f 0
00860000E00E 9952 (pr14) br.cond.dpnt.many L$59 ;;
}
{ .mmi
010800902240 9960 adds r9 = 1, r9 ;;
008000900480 9961 ld1 r18 = [r9]
000008000000 9962 nop.i 0 ;;
}
{ .mii
000008000000 9970 nop.m 0
0000A1200480 9971 sxt1 r18 = r18 ;;
01C001200180 9972 cmp.eq pr6, pr0 = r0, r18
}
{ .mfb
000008000000 9980 nop.m 0
000008000000 9981 nop.f 0
008600008006 9982 (pr6) br.cond.dpnt.many L$59 ;;
}
{ .mmi
010800902240 9990 adds r9 = 1, r9 ;;
0080009004C0 9991 ld1 r19 = [r9]
010840900500 9992 adds r20 = 1024, r9 ;;
}
{ .mii
00CB01400000 99A0 lfetch [r20]
0000A13004C0 99A1 sxt1 r19 = r19 ;;
01C039300000 99A2 cmp.eq pr0, pr7 = r0, r19
}
{ .mfb
000008000000 99B0 nop.m 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 285
SysTrnLnm 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 99B1 nop.f 0
0095FFFE4007 99B2 (pr7) br.cond.dptk.many L$60 ;;
}
99C0 L$59:
{ .mii
012000100880 99C0 add r34 = @ltoffx(LogValue), gp // r34 = @ltoffx(LogValue), r1 // 073305
012010000B00 99C1 mov out1 = 256 // r44 = 256
01002A012840 99C2 sub r33 = cptr, LogName ;; // r33 = r9, r32 // 073302
}
{ .mmi
0080C2200880 99D0 ld8.mov r34 = [r34], LogValue ;; // 073305
010802200AC0 99D1 mov out0 = r34 // r43 = r34
000008000000 99D2 nop.i 0
}
{ .mfb
000008000000 99E0 nop.m 0
000008000000 99E1 nop.f 0
00A000001000 99E2 br.call.sptk.many rp = OTS$ZERO ;; // br0 = OTS$ZERO
}
{ .mii
010802A00040 99F0 mov gp = r42 // r1 = r42
01200000A640 99F1 mov ai = 5 // r25 = 5 // 073307
012000000B80 99F2 mov out3 = 0 // r46 = 0
}
{ .mmi
012000000AC0 9A00 mov out0 = 0 ;; // r43 = 0
0120001008C0 9A01 add r35 = @gprel(LogNameDsc), gp // r35 = @gprel(LogNameDsc), r1 // 073302
012000100BC0 9A02 add out4 = @ltoffx(LnmItems), gp // r47 = @ltoffx(LnmItems), r1 // 073307
}
{ .mmi
012000100B00 9A10 add out1 = @gprel(LnmTableDsc), gp ;; // r44 = @gprel(LnmTableDsc), r1
00AC42342100 9A11 st2 [r35] = r33, 4 // 073302
010802C10B40 9A12 adds out2 = 8, out1 ;; // r45 = 8, r44 // 073307
}
{ .mmi
0080C2F00BC0 9A20 ld8.mov out4 = [r47], LnmItems ;;
008C82340000 9A21 st4 [r35] = LogName // [r35] = r32 // 073303
000008000000 9A22 nop.i 0
}
{ .mfb
000008000000 9A30 nop.m 0
000008000000 9A31 nop.f 0
00A000001000 9A32 br.call.sptk.many rp = SYS$TRNLNM ;; // br0 = SYS$TRNLNM // 073307
}
{ .mii
010802A00040 9A40 mov gp = r42 // r1 = r42
0120400009C0 9A41 mov r39 = 1024 // 073308
00A0308001C0 9A42 tbit.z pr7, pr6 = r8, 0 ;;
}
{ .mmi
012000100980 9A50 add r38 = @gprel(LnmAttributes), // r38 = @gprel(LnmAttributes), r1
gp ;;
008082600980 9A51 ld4 r38 = LnmAttributes // r38 = [r38]
000008000000 9A52 nop.i 0 ;;
}
{ .mmi
01006274C980 9A60 and r38 = r38, r39 ;;
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 286
SysTrnLnm 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
01C402600240 9A61 cmp4.eq pr9, pr0 = r0, r38
000008000000 9A62 nop.i 0 ;;
}
{ .mfb
01C230000009 9A70 (pr9) cmp.eq.or.andcm pr0, pr6 = r0, r0
000008000000 9A71 nop.f 0
008600004006 9A72 (pr6) br.cond.dpnt.many L$67 ;;
}
{ .mfb
010800000200 9A80 mov r8 = r0
000008000000 9A81 nop.f 0
008000005000 9A82 br.sptk.many L$69 ;;
}
9A90 L$67:
{ .mfi
010802200200 9A90 mov r8 = r34 // 073310
000008000000 9A91 nop.f 0
000008000000 9A92 nop.i 0
}
9AA0 L$69:
{ .mii
000008000000 9AA0 nop.m 0
000154052000 9AA1 mov.i rspfs = r41 ;;
000E00150000 9AA2 mov rp = r40 // br0 = r40
}
{ .mfb
000008000000 9AB0 nop.m 0
000008000000 9AB1 nop.f 0
000108001100 9AB2 br.ret.sptk.many rp ;; // br0
}
.endp SysTrnLnm
Routine Size: 544 bytes, Routine Base: $CODE$ + 98A0
.proc SetGlobalSymbol
.align 32
.global SetGlobalSymbol
SetGlobalSymbol: // 073318
{ .mii
002C00B1CA40 9AC0 alloc r41 = rspfs, 2, 9, 3, 0
012000100880 9AC1 add r34 = @gprel(NameDsc), gp // r34 = @gprel(NameDsc), r1 // 073334
000188000A00 9AC2 mov r40 = rp ;; // r40 = br0 // 073318
}
{ .mii
012000002640 9AD0 mov ai = 1 // r25 = 1 // 073335
010802000AC0 9AD1 mov out0 = Name // r43 = r32
010802208880 9AD2 adds r34 = 4, r34 // 073334
}
{ .mmi
010800100A80 9AE0 mov r42 = gp ;; // r42 = r1 // 073318
00AC82240200 9AE1 st4 [r34] = Name, 8 // [r34] = r32, 8 // 073334
000008000000 9AE2 nop.i 0
}
{ .mfb
000008000000 9AF0 nop.m 0
000008000000 9AF1 nop.f 0
00A000001000 9AF2 br.call.sptk.many rp = DECC$STRLEN ;; // br0 = DECC$STRLEN // 073335
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 287
SetGlobalSymbol 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mii
012000002640 9B00 mov ai = 1 // r25 = 1 // 073337
010802100AC0 9B01 mov out0 = String // r43 = r33
010802A00040 9B02 mov gp = r42 // r1 = r42 // 073335
}
{ .mmi
00BC8A243D00 9B10 st4 [r34] = String, -12 ;; // [r34] = r33, -12 // 073336
00AC42210200 9B11 st2 [r34] = r8, 8 // 073335
000008000000 9B12 nop.i 0
}
{ .mfb
000008000000 9B20 nop.m 0
000008000000 9B21 nop.f 0
00A000001000 9B22 br.call.sptk.many rp = DECC$STRLEN ;; // br0 = DECC$STRLEN // 073337
}
{ .mii
010802A00040 9B30 mov gp = r42 // r1 = r42
012000006640 9B31 mov ai = 3 // r25 = 3 // 073339
000008000000 9B32 nop.i 0
}
{ .mmi
008C42210000 9B40 st2 [r34] = r8 ;; // 073337
012000100AC0 9B41 add out0 = @gprel(NameDsc), gp // r43 = @gprel(NameDsc), r1 // 073339
000008000000 9B42 nop.i 0 ;;
}
{ .mib
010802B20B40 9B50 adds out2 = 16, out0 // r45 = 16, r43
010802B10B00 9B51 adds out1 = 8, out0 // r44 = 8, r43
00A000001000 9B52 br.call.sptk.many rp = LIB$SET_SYMBOL ;; // br0 = LIB$SET_SYMBOL
}
{ .mii
010802A00040 9B60 mov gp = r42 // r1 = r42
0000B0800200 9B61 sxt4 r8 = r8 ;; // 073340
000154052000 9B62 mov.i rspfs = r41 ;;
}
{ .mib
000008000000 9B70 nop.m 0
000E00150000 9B71 mov rp = r40 // br0 = r40
000108001100 9B72 br.ret.sptk.many rp ;; // br0
}
.endp SetGlobalSymbol
Routine Size: 192 bytes, Routine Base: $CODE$ + 9AC0
.proc FloatDeltaTime
.align 32
.global FloatDeltaTime
FloatDeltaTime: // 073348
{ .mii
002C00616900 9B80 alloc r36 = rspfs, 1, 5, 5, 0
012000020380 9B81 mov r14 = 16
010800C00080 9B82 mov r2 = sp ;; // r2 = r12
}
{ .mib
010028E183C0 9B90 sub r15 = sp, r14 // r15 = r12, r14
0001880008C0 9B91 mov r35 = rp // r35 = br0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 288
FloatDeltaTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
004000000000 9B92 nop.b 0 ;;
}
{ .mii
0080C0F00380 9BA0 ld8 r14 = [r15]
010800F00300 9BA1 mov sp = r15 // r12 = r15
010800100940 9BA2 mov r37 = gp // r37 = r1
}
{ .mmi
008082000200 9BB0 ld4 r8 = [in0] ;; // r8 = [r32] // 073360
01D8388FE000 9BB1 cmp.eq pr0, pr7 = -1, r8
000008000000 9BB2 nop.i 0
}
{ .mfb
000008000000 9BC0 nop.m 0
000008000000 9BC1 nop.f 0
008600004007 9BC2 (pr7) br.cond.dpnt.many L$51 ;;
}
{ .mfb
000008000000 9BD0 nop.m 0
000080000200 9BD1 mov f8 = f0
008000013000 9BD2 br.sptk.many L$53 ;;
}
9BE0 L$51:
{ .mii
012000006640 9BE0 mov ai = 3 // r25 = 3 // 073363
010802000A00 9BE1 mov out2 = DeltaTimePtr // r40 = r32
010800C209C0 9BE2 adds out1 = 16, sp // r39 = 16, r12
}
{ .mfb
012000100980 9BF0 add out0 = @gprel(LibDeltaSecs), // r38 = @gprel(LibDeltaSecs), r1
gp
000008000000 9BF1 nop.f 0
00A000001000 9BF2 br.call.sptk.many rp = // br0 = LIB$CVTS_FROM_INTERNAL_TIME
LIB$CVTS_FROM_INTERNAL_TIME ;;
}
{ .mib
010802500040 9C00 mov gp = r37 // r1 = r37
00A0308001C0 9C01 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0 // 073372
00860000A006 9C02 (pr6) br.cond.dpnt.many L$54 ;;
}
{ .mii
012000100A80 9C10 add out4 = @ltoffx($LITERAL$), gp // r42 = @ltoffx($LITERAL$), r1 // 073374
012000100840 9C11 add r33 = @ltoff($LITERAL$+32), gp // r33 = @ltoff($LITERAL$+32), r1
01200000A640 9C12 mov ai = 5 // r25 = 5
}
{ .mmi
010800000980 9C20 mov out0 = r0 ;; // r38 = r0
0080C2A00A40 9C21 ld8.mov out3 = [r42], $LITERAL$
0120A002EA80 9C22 mov out4 = 2583 // r42 = 2583
}
{ .mib
0080C2100A00 9C30 ld8 out2 = $LITERAL$ // r40 = [r33]
0000B08009C0 9C31 sxt4 out1 = status // r39 = r8
00A000001000 9C32 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed
}
{ .mfb
010802500040 9C40 mov gp = r37 // r1 = r37
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 289
FloatDeltaTime 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000080000200 9C41 mov f8 = f0 // 073375
008000005000 9C42 br.sptk.many L$53 ;;
}
9C50 L$54: // 073376
{ .mmi
010800C20880 9C50 adds r34 = 16, sp ;; // r34 = 16, r12 // 073378
00C082200200 9C51 ldfs f8 = [r34]
000008000000 9C52 nop.i 0 ;;
}
9C60 L$53:
{ .mii
000008000000 9C60 nop.m 0
000154048000 9C61 mov.i rspfs = r36 ;;
000E00146000 9C62 mov rp = r35 // br0 = r35
}
{ .mfb
010800C20300 9C70 adds sp = 16, sp // r12 = 16, r12
000008000000 9C71 nop.f 0
000108001100 9C72 br.ret.sptk.many rp ;; // br0
}
.endp FloatDeltaTime
Routine Size: 256 bytes, Routine Base: $CODE$ + 9B80
.proc BytesPerSecond
.align 32
.global BytesPerSecond
BytesPerSecond: // 073386
{ .mii
002C00A1EA00 9C80 alloc r40 = rspfs, 3, 7, 5, 0
012000040380 9C81 mov r14 = 32
010800C00080 9C82 mov r2 = sp // r2 = r12
}
{ .mmi
010800100A40 9C90 mov r41 = gp ;; // r41 = r1
010028E183C0 9C91 sub r15 = sp, r14 // r15 = r12, r14
0001880009C0 9C92 mov r39 = rp ;; // r39 = br0
}
{ .mii
0080C0F00380 9CA0 ld8 r14 = [r15]
010800F00300 9CA1 mov sp = r15 // r12 = r15
000008000000 9CA2 nop.i 0
}
{ .mmi
008082200240 9CB0 ld4 r9 = [in2] ;; // r9 = [r34] // 073405
010800F40380 9CB1 adds r14 = 32, r15 // 073386
01D8009FE280 9CB2 cmp.eq pr10, pr0 = -1, r9 // 073405
}
{ .mmi
01C438900200 9CC0 cmp4.eq pr8, pr7 = r0, r9 ;;
00EEC0E04400 9CC1 stf.spill [r14] = f2, 16 // 073386
01C23800000A 9CC2 (pr10) cmp.eq.or.andcm pr0, pr7 = r0, r0 // 073405
}
{ .mfb
000008000000 9CD0 nop.m 0
000080000080 9CD1 mov fbytes = f0 // f2 = f0 // 073397
008600004007 9CD2 (pr7) br.cond.dpnt.many L$33 ;; // 073405
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 290
BytesPerSecond 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfb
000008000000 9CE0 nop.m 0
000008000000 9CE1 nop.f 0
008000069000 9CE2 br.sptk.many L$45 ;;
}
9CF0 L$33:
{ .mfb
01C400040300 9CF0 cmp4.eq pr12, pr0 = BytesRxPtr, r0 // pr12, pr0 = r32, r0 // 073407
000008000000 9CF1 nop.f 0
00860001A00C 9CF2 (pr12) br.cond.dpnt.many L$37 ;;
}
{ .mlx
010802008800 9D00 adds in0 = 4, in0 // r32 = 4, r32 // 073409
8107C0000000 9D01 movl r11 = 4751297606875873280 ;;
0180000005
}
{ .mmi
00B08A0F8280 9D10 ld4 r10 = [in0], -4 // r10 = [r32], -4
00C7C8016280 9D11 setf.d f10 = r11
000008000000 9D12 nop.i 0 ;;
}
{ .mmi
00C708014180 9D20 setf.sig f6 = r10
008082000800 9D21 ld4 in0 = [in0] // r32 = [r32] // 073408
000008000000 9D22 nop.i 0 ;;
}
{ .mfi
00C708040200 9D30 setf.sig f8 = in0 // f8 = r32
000008000000 9D31 nop.f 0
000008000000 9D32 nop.i 0 ;;
}
{ .mfi
000008000000 9D40 nop.m 0
0100086001C0 9D41 fcvt.xuf f7 = f6 // 073409
000008000000 9D42 nop.i 0 ;;
}
{ .mfi
000008000000 9D50 nop.m 0
010008800240 9D51 fcvt.xuf f9 = f8 // 073408
000008000000 9D52 nop.i 0 ;;
}
{ .mfi
000008000000 9D60 nop.m 0
0124087001C0 9D61 fnorm.d.s1 f7 = f7 // 073409
000008000000 9D62 nop.i 0 ;;
}
{ .mfi
000008000000 9D70 nop.m 0
012408900240 9D71 fnorm.d.s1 f9 = f9 // 073408
000008000000 9D72 nop.i 0 ;;
}
{ .mfi
000008000000 9D80 nop.m 0
0120507001C0 9D81 fmpy.d f7 = f7, f10 // 073409
000008000000 9D82 nop.i 0 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 291
BytesPerSecond 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfi
000008000000 9D90 nop.m 0
01200890E1C0 9D91 fadd.d f7 = f9, f7 // 073408
000008000000 9D92 nop.i 0 ;;
}
{ .mfi
000008000000 9DA0 nop.m 0
0120087001C0 9DA1 fadd.d f7 = f7, f0
000008000000 9DA2 nop.i 0 ;;
}
{ .mfi
000008000000 9DB0 nop.m 0
011008700080 9DB1 fma.s f2 = f7, f1, f0
000008000000 9DB2 nop.i 0
}
9DC0 L$37: // 073409
{ .mfb
01C400042380 9DC0 cmp4.eq pr14, pr0 = BytesTxPtr, r0 // pr14, pr0 = r33, r0 // 073410
000008000000 9DC1 nop.f 0
00860001A00E 9DC2 (pr14) br.cond.dpnt.many L$39 ;;
}
{ .mlx
010802108840 9DD0 adds in1 = 4, in1 // r33 = 4, r33 // 073412
0107C0000000 9DD1 movl r18 = 4751297606875873280 ;;
0180000009
}
{ .mmi
00B08A1F8440 9DE0 ld4 r17 = [in1], -4 // r17 = [r33], -4
00C7C80243C0 9DE1 setf.d f15 = r18
000008000000 9DE2 nop.i 0 ;;
}
{ .mmi
00C7080222C0 9DF0 setf.sig f11 = r17
008082100840 9DF1 ld4 in1 = [in1] // r33 = [r33] // 073411
000008000000 9DF2 nop.i 0 ;;
}
{ .mfi
00C708042340 9E00 setf.sig f13 = in1 // f13 = r33
012008200080 9E01 fma.d f2 = fbytes, f1, f0 // f2 = f2, f1, f0
000008000000 9E02 nop.i 0 ;;
}
{ .mfi
000008000000 9E10 nop.m 0
010008B00300 9E11 fcvt.xuf f12 = f11 // 073412
000008000000 9E12 nop.i 0 ;;
}
{ .mfi
000008000000 9E20 nop.m 0
010008D00380 9E21 fcvt.xuf f14 = f13 // 073411
000008000000 9E22 nop.i 0 ;;
}
{ .mfi
000008000000 9E30 nop.m 0
012408C00300 9E31 fnorm.d.s1 f12 = f12 // 073412
000008000000 9E32 nop.i 0 ;;
}
{ .mfi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 292
BytesPerSecond 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 9E40 nop.m 0
012408E00380 9E41 fnorm.d.s1 f14 = f14 // 073411
000008000000 9E42 nop.i 0 ;;
}
{ .mfi
000008000000 9E50 nop.m 0
012078C00300 9E51 fmpy.d f12 = f12, f15 // 073412
000008000000 9E52 nop.i 0 ;;
}
{ .mfi
000008000000 9E60 nop.m 0
012008E18300 9E61 fadd.d f12 = f14, f12 // 073411
000008000000 9E62 nop.i 0 ;;
}
{ .mfi
000008000000 9E70 nop.m 0
012008218080 9E71 fadd.d f2 = f2, f12
000008000000 9E72 nop.i 0 ;;
}
{ .mfi
000008000000 9E80 nop.m 0
011008200080 9E81 fma.s f2 = f2, f1, f0
000008000000 9E82 nop.i 0
}
9E90 L$39: // 073412
{ .mii
012000006640 9E90 mov ai = 3 // r25 = 3 // 073420
010802200B00 9E91 mov out2 = DeltaTimePtr // r44 = r34
010800C20AC0 9E92 adds out1 = 16, sp ;; // r43 = 16, r12
}
{ .mfb
012000100A80 9EA0 add out0 = @gprel(LibDeltaSecs), // r42 = @gprel(LibDeltaSecs), r1
gp
000008000000 9EA1 nop.f 0
00A000001000 9EA2 br.call.sptk.many rp = // br0 = LIB$CVTS_FROM_INTERNAL_TIME
LIB$CVTS_FROM_INTERNAL_TIME ;;
}
{ .mib
010802900040 9EB0 mov gp = r41 // r1 = r41
00A0308001C0 9EB1 tbit.z pr7, pr6 = status, 0 // pr7, pr6 = r8, 0 // 073422
008600010006 9EB2 (pr6) br.cond.dpnt.many L$40 ;;
}
{ .mmi
0128454088C0 9EC0 addl r35 = 1410052, r0 ;; // 073424
01C402310240 9EC1 cmp4.eq pr9, pr0 = status, r35 // pr9, pr0 = r8, r35
000008000000 9EC2 nop.i 0
}
{ .mfb
000008000000 9ED0 nop.m 0
000008000000 9ED1 nop.f 0
00860000A009 9ED2 (pr9) br.cond.dpnt.many L$43 ;;
}
{ .mii
012000100B80 9EE0 add out4 = @ltoffx($LITERAL$), gp // r46 = @ltoffx($LITERAL$), r1 // 073425
012000100900 9EE1 add r36 = @ltoff($LITERAL$+32), gp // r36 = @ltoff($LITERAL$+32), r1
01200000A640 9EE2 mov ai = 5 // r25 = 5
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 293
BytesPerSecond 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mmi
010800000A80 9EF0 mov out0 = r0 ;; // r42 = r0
0080C2E00B40 9EF1 ld8.mov out3 = [r46], $LITERAL$
0120A0094B80 9EF2 mov out4 = 2634 // r46 = 2634
}
{ .mib
0080C2400B00 9F00 ld8 out2 = $LITERAL$ // r44 = [r36]
0000B0800AC0 9F01 sxt4 out1 = status // r43 = r8
00A000001000 9F02 br.call.sptk.many rp = ErrorNoticed ;; // br0 = ErrorNoticed
}
{ .mfi
010802900040 9F10 mov gp = r41 // r1 = r41
000008000000 9F11 nop.f 0
000008000000 9F12 nop.i 0
}
9F20 L$43:
{ .mfb
000008000000 9F20 nop.m 0
000008000000 9F21 nop.f 0
008000021000 9F22 br.sptk.many L$45 ;;
}
9F30 L$40: // 073427
{ .mlx
010800C20940 9F30 adds r37 = 16, sp // r37 = 16, r12 // 073430
0000000001DC 9F31 movl r38 = 2000000000 ;;
01928AC013
}
{ .mfi
00C082500180 9F40 ldfs f6 = [r37]
000008000000 9F41 nop.f 0
000008000000 9F42 nop.i 0 ;;
}
{ .mfi
000008000000 9F50 nop.m 0
0002306041C0 9F51 frcpa f7, pr6 = fbytes, f6 // f7, pr6 = f2, f6
000008000000 9F52 nop.i 0 ;;
}
{ .mfi
000008000000 9F60 nop.m 0
010438200206 9F61 (pr6) fma.s1 f8 = fbytes, f7, f0 // f8 = f2, f7, f0
000008000000 9F62 nop.i 0
}
{ .mfi
000008000000 9F70 nop.m 0
018438602246 9F71 (pr6) fnma.s1 f9 = f6, f7, f1
000008000000 9F72 nop.i 0 ;;
}
{ .mfi
000008000000 9F80 nop.m 0
010440910206 9F81 (pr6) fma.s1 f8 = f9, f8, f8
000008000000 9F82 nop.i 0
}
{ .mfi
000008000000 9F90 nop.m 0
010448900246 9F91 (pr6) fma.s1 f9 = f9, f9, f0
000008000000 9F92 nop.i 0 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 294
BytesPerSecond 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfi
000008000000 9FA0 nop.m 0
010440910206 9FA1 (pr6) fma.s1 f8 = f9, f8, f8
000008000000 9FA2 nop.i 0
}
{ .mfi
000008000000 9FB0 nop.m 0
010448900246 9FB1 (pr6) fma.s1 f9 = f9, f9, f0
000008000000 9FB2 nop.i 0 ;;
}
{ .mfi
000008000000 9FC0 nop.m 0
012440910206 9FC1 (pr6) fma.d.s1 f8 = f9, f8, f8
000008000000 9FC2 nop.i 0 ;;
}
{ .mfi
000008000000 9FD0 nop.m 0
0110088001C6 9FD1 (pr6) fma.s f7 = f8, f1, f0
000008000000 9FD2 nop.i 0 ;;
}
{ .mfi
000008000000 9FE0 nop.m 0
0000D800E280 9FE1 fcvt.fxu.trunc f10 = f7
000008000000 9FE2 nop.i 0 ;;
}
{ .mmi
008708014200 9FF0 getf.sig bps = f10 ;; // r8 = f10
01A442610000 9FF1 cmp4.ltu pr0, pr8 = bps, r38 // pr0, pr8 = r8, r38
000008000000 9FF2 nop.i 0
}
{ .mfb
000008000000 A000 nop.m 0
000008000000 A001 nop.f 0
008600004008 A002 (pr8) br.cond.dpnt.many L$45 ;;
}
{ .mib
000008000000 A010 nop.m 0
0000B0800200 A011 sxt4 r8 = r8 // 073431
008000005000 A012 br.sptk.many L$35 ;;
}
A020 L$45: // 073432
{ .mfi
012000000200 A020 mov r8 = 0 // 073433
000008000000 A021 nop.f 0
000008000000 A022 nop.i 0
}
A030 L$35:
{ .mmi
010800C40380 A030 adds r14 = 32, sp ;; // r14 = 32, r12
00F6C8EE0080 A031 ldf.fill f2 = [r14], -16
000154050000 A032 mov.i rspfs = r40 ;;
}
{ .mii
000008000000 A040 nop.m 0
000E0014E000 A041 mov rp = r39 // br0 = r39
010800C40300 A042 adds sp = 32, sp // r12 = 32, r12
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 295
BytesPerSecond 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfb
000008000000 A050 nop.m 0
000008000000 A051 nop.f 0
000108001100 A052 br.ret.sptk.many rp ;; // br0
}
.endp BytesPerSecond
Routine Size: 992 bytes, Routine Base: $CODE$ + 9C80
.proc PercentOf32
.align 32
.global PercentOf32
PercentOf32: // 073442
{ .mib
002C00306880 A060 alloc r34 = rspfs, 2, 1, 0, 0
01C402100200 A061 cmp4.eq pr8, pr0 = r0, arg2 // pr8, pr0 = r0, r33 // 073455
008600044008 A062 (pr8) br.cond.dpnt.many L$28 ;;
}
{ .mii
000008000000 A070 nop.m 0
000092000800 A071 zxt4 in0 = arg1 // r32 = r32 // 073459
000092100840 A072 zxt4 in1 = arg2 ;; // r33 = r33
}
{ .mmi
00C708040180 A080 setf.sig f6 = in0 // f6 = r32
00C708042200 A081 setf.sig f8 = in1 // f8 = r33
000008000000 A082 nop.i 0 ;;
}
{ .mlx
000008000000 A090 nop.m 0
010164000000 A091 movl r8 = 4636737291354636288 ;;
0180000004
}
{ .mlx
00C7C8010280 A0A0 setf.d f10 = r8
8000000000FC A0A1 movl r11 = 1056964608 ;; // 073461
0180000005
}
{ .mfi
00C7880168C0 A0B0 setf.s f35 = r11
000008000000 A0B1 nop.f 0
000008000000 A0B2 nop.i 0 ;;
}
{ .mfi
000008000000 A0C0 nop.m 0
010008800240 A0C1 fcvt.xuf f9 = f8 // 073459
000008000000 A0C2 nop.i 0
}
{ .mfi
000008000000 A0D0 nop.m 0
0100086001C0 A0D1 fcvt.xuf f7 = f6
000008000000 A0D2 nop.i 0 ;;
}
{ .mfi
000008000000 A0E0 nop.m 0
012408900240 A0E1 fnorm.d.s1 f9 = f9
000008000000 A0E2 nop.i 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 296
PercentOf32 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
}
{ .mfi
000008000000 A0F0 nop.m 0
0124087001C0 A0F1 fnorm.d.s1 f7 = f7
000008000000 A0F2 nop.i 0 ;;
}
{ .mfi
000008000000 A100 nop.m 0
0120507001C0 A101 fmpy.d f7 = f7, f10
000008000000 A102 nop.i 0 ;;
}
{ .mfi
000008000000 A110 nop.m 0
00024890E2C0 A111 frcpa f11, pr9 = f7, f9
000008000000 A112 nop.i 0 ;;
}
{ .mfi
000008000000 A120 nop.m 0
010458700309 A121 (pr9) fma.s1 f12 = f7, f11, f0
000008000000 A122 nop.i 0
}
{ .mfi
000008000000 A130 nop.m 0
018458902349 A131 (pr9) fnma.s1 f13 = f9, f11, f1
000008000000 A132 nop.i 0 ;;
}
{ .mfi
000008000000 A140 nop.m 0
010460D18309 A141 (pr9) fma.s1 f12 = f13, f12, f12
000008000000 A142 nop.i 0
}
{ .mfi
000008000000 A150 nop.m 0
010468D00389 A151 (pr9) fma.s1 f14 = f13, f13, f0
000008000000 A152 nop.i 0 ;;
}
{ .mfi
000008000000 A160 nop.m 0
010458D163C9 A161 (pr9) fma.s1 f15 = f13, f11, f11
000008000000 A162 nop.i 0 ;;
}
{ .mfi
000008000000 A170 nop.m 0
010460E18309 A171 (pr9) fma.s1 f12 = f14, f12, f12
000008000000 A172 nop.i 0
}
{ .mfi
000008000000 A180 nop.m 0
010470E00349 A181 (pr9) fma.s1 f13 = f14, f14, f0
000008000000 A182 nop.i 0 ;;
}
{ .mfi
000008000000 A190 nop.m 0
010478E1E3C9 A191 (pr9) fma.s1 f15 = f14, f15, f15
000008000000 A192 nop.i 0 ;;
}
{ .mfi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 297
PercentOf32 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 A1A0 nop.m 0
012460D18309 A1A1 (pr9) fma.d.s1 f12 = f13, f12, f12
000008000000 A1A2 nop.i 0 ;;
}
{ .mfi
000008000000 A1B0 nop.m 0
010478D1E3C9 A1B1 (pr9) fma.s1 f15 = f13, f15, f15
000008000000 A1B2 nop.i 0 ;;
}
{ .mfi
000008000000 A1C0 nop.m 0
01A46090E349 A1C1 (pr9) fnma.d.s1 f13 = f9, f12, f7
000008000000 A1C2 nop.i 0 ;;
}
{ .mfi
000008000000 A1D0 nop.m 0
012078D182C9 A1D1 (pr9) fma.d f11 = f13, f15, f12
000008000000 A1D2 nop.i 0 ;;
}
{ .mfi
000008000000 A1E0 nop.m 0
011008B002C0 A1E1 fma.s f11 = f11, f1, f0
000008000000 A1E2 nop.i 0 ;;
}
{ .mfi
000008000000 A1F0 nop.m 0
0000D0016800 A1F1 fcvt.fx.trunc f32 = fperc // f32 = f11 // 073460
000008000000 A1F2 nop.i 0 ;;
}
{ .mmi
008708040240 A200 getf.sig iperc = f32 ;; // r9 = f32
000008000000 A201 nop.m 0
0000B0900280 A202 sxt4 r10 = iperc // r10 = r9 // 073461
}
{ .mmi
010800902440 A210 adds r17 = 1, iperc ;; // r17 = 1, r9
00C708014840 A211 setf.sig f33 = r10
000008000000 A212 nop.i 0 ;;
}
{ .mfi
000008000000 A220 nop.m 0
0000E0042880 A221 fcvt.xf f34 = f33
000008000000 A222 nop.i 0 ;;
}
{ .mfi
000008000000 A230 nop.m 0
01140A200880 A231 fnorm.s.s1 f34 = f34
000008000000 A232 nop.i 0 ;;
}
{ .mfi
000008000000 A240 nop.m 0
015008B442C0 A241 fsub.s f11 = fperc, f34 // f11 = f11, f34
000008000000 A242 nop.i 0 ;;
}
{ .mfi
000008000000 A250 nop.m 0
008258B46280 A251 fcmp.le pr10, pr11 = f35, f11
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 298
PercentOf32 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 A252 nop.i 0 ;;
}
{ .mmi
01080110020A A260 (pr10) mov r8 = r17 ;;
01080090020B A261 (pr11) mov r8 = iperc // r8 = r9
000008000000 A262 nop.i 0 ;;
}
{ .mib
000008000000 A270 nop.m 0
0000B0800200 A271 sxt4 r8 = r8 // 073462
000108001100 A272 br.ret.sptk.many rp ;; // br0 // 073464
}
A280 L$28: // 073463
{ .mfb
012000000200 A280 mov r8 = 0 // 073464
000008000000 A281 nop.f 0
000108001100 A282 br.ret.sptk.many rp ;; // br0
}
.endp PercentOf32
Routine Size: 560 bytes, Routine Base: $CODE$ + A060
.proc PercentOf64
.align 32
.global PercentOf64
PercentOf64: // 073473
{ .mib
002C00306880 A290 alloc r34 = rspfs, 2, 1, 0, 0
01C400042200 A291 cmp4.eq pr8, pr0 = arg2, r0 // pr8, pr0 = r33, r0 // 073486
008600020008 A292 (pr8) br.cond.dpnt.many L$20 ;;
}
{ .mii
0111621F04C0 A2A0 and r19 = -8, in1 // r19 = -8, r33 // 073489
0111620F0240 A2A1 and r9 = -8, in0 ;; // r9 = -8, r32 // 073488
01C061342000 A2A2 cmp.eq pr0, pr12 = in1, r19 // pr0, pr12 = r33, r19 // 073489
}
{ .mii
00A0C1310580 A2B0 ld8 r22 = [r19], 8
01C050940000 A2B1 cmp.eq pr0, pr10 = in0, r9 ;; // pr0, pr10 = r32, r9 // 073488
009E1004250C A2B2 (pr12) dep r20 = in1, r0, 3, 3 // r20 = r33, r0, 3, 3 // 073489
}
{ .mmi
00A0C0910440 A2C0 ld8 r17 = [r9], 8 ;; // 073488
0080C130054C A2C1 (pr12) ld8 r21 = [r19] // 073489
009E1004028A A2C2 (pr10) dep r10 = in0, r0, 3, 3 ;; // r10 = r32, r0, 3, 3 // 073488
}
{ .mmi
0080C09002CA A2D0 (pr10) ld8 r11 = [r9] ;;
000008000000 A2D1 nop.m 0
00F20162858C A2D2 (pr12) shr.u r22 = r22, r20 // 073489
}
{ .mmi
01012948050C A2E0 (pr12) sub r20 = 64, r20 ;;
000008000000 A2E1 nop.m 0
00F20111444A A2E2 (pr10) shr.u r17 = r17, r10 // 073488
}
{ .mmi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 299
PercentOf64 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
010128A8028A A2F0 (pr10) sub r10 = 64, r10 ;;
000008000000 A2F1 nop.m 0
00F24142A54C A2F2 (pr12) shl r21 = r21, r20 ;; // 073489
}
{ .mii
000008000000 A300 nop.m 0
00F240A162CA A301 (pr10) shl r11 = r11, r10 ;; // 073488
01007162A58C A302 (pr12) or r22 = r21, r22 ;; // 073489
}
{ .mii
00C70802C200 A310 setf.sig f8 = r22
01007111644A A311 (pr10) or r17 = r11, r17 // 073488
000008000000 A312 nop.i 0 ;;
}
{ .mfi
00C708022180 A320 setf.sig f6 = r17
000008000000 A321 nop.f 0
000008000000 A322 nop.i 0 ;;
}
{ .mfi
000008000000 A330 nop.m 0
010008800240 A331 fcvt.xuf farg2 = f8 // f9 = f8 // 073489
000008000000 A332 nop.i 0 ;;
}
{ .mfi
000008000000 A340 nop.m 0
0100086001C0 A341 fcvt.xuf farg1 = f6 // f7 = f6 // 073488
000008000000 A342 nop.i 0 ;;
}
{ .mfi
000008000000 A350 nop.m 0
011408900240 A351 fnorm.s.s1 farg2 = farg2 // f9 = f9 // 073489
000008000000 A352 nop.i 0 ;;
}
{ .mfi
000008000000 A360 nop.m 0
0114087001C0 A361 fnorm.s.s1 farg1 = farg1 // f7 = f7 // 073488
000008000000 A362 nop.i 0 ;;
}
{ .mfi
000008000000 A370 nop.m 0
008070012340 A371 fcmp.eq pr13, pr14 = farg2, f0 // pr13, pr14 = f9, f0 // 073490
000008000000 A372 nop.i 0 ;;
}
{ .mfb
000008000000 A380 nop.m 0
000008000000 A381 nop.f 0
00860000400E A382 (pr14) br.cond.dpnt.many L$24 ;;
}
A390 L$20: // 073495
{ .mfb
012000000200 A390 mov r8 = 0 // 073496
000008000000 A391 nop.f 0
000108001100 A392 br.ret.sptk.many rp ;; // br0
}
A3A0 L$24: // 073490
{ .mfi
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 300
PercentOf64 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 A3A0 nop.m 0
0120087001C0 A3A1 fma.d f7 = farg1, f1, f0 // f7 = f7, f1, f0 // 073491
000008000000 A3A2 nop.i 0
}
{ .mlx
000008000000 A3B0 nop.m 0
810164000000 A3B1 movl r23 = 4636737291354636288 ;;
018000000B
}
{ .mlx
00C7C802E280 A3C0 setf.d f10 = r23
0000000000FC A3C1 movl r26 = 1056964608 // 073493
018000000D
}
{ .mfi
000008000000 A3D0 nop.m 0
012008900240 A3D1 fma.d f9 = farg2, f1, f0 // f9 = f9, f1, f0 // 073491
000008000000 A3D2 nop.i 0 ;;
}
{ .mfi
00C7880348C0 A3E0 setf.s f35 = r26 // 073493
000008000000 A3E1 nop.f 0
000008000000 A3E2 nop.i 0 ;;
}
{ .mfi
000008000000 A3F0 nop.m 0
0120507001C0 A3F1 fmpy.d f7 = f7, f10 // 073491
000008000000 A3F2 nop.i 0 ;;
}
{ .mfi
000008000000 A400 nop.m 0
00027890E2C0 A401 frcpa f11, pr15 = f7, f9
000008000000 A402 nop.i 0 ;;
}
{ .mfi
000008000000 A410 nop.m 0
01045870030F A411 (pr15) fma.s1 f12 = f7, f11, f0
000008000000 A412 nop.i 0
}
{ .mfi
000008000000 A420 nop.m 0
01845890234F A421 (pr15) fnma.s1 f13 = f9, f11, f1
000008000000 A422 nop.i 0 ;;
}
{ .mfi
000008000000 A430 nop.m 0
010460D1830F A431 (pr15) fma.s1 f12 = f13, f12, f12
000008000000 A432 nop.i 0
}
{ .mfi
000008000000 A440 nop.m 0
010468D0038F A441 (pr15) fma.s1 f14 = f13, f13, f0
000008000000 A442 nop.i 0 ;;
}
{ .mfi
000008000000 A450 nop.m 0
010458D163CF A451 (pr15) fma.s1 f15 = f13, f11, f11
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 301
PercentOf64 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000008000000 A452 nop.i 0 ;;
}
{ .mfi
000008000000 A460 nop.m 0
010460E1830F A461 (pr15) fma.s1 f12 = f14, f12, f12
000008000000 A462 nop.i 0
}
{ .mfi
000008000000 A470 nop.m 0
010470E0034F A471 (pr15) fma.s1 f13 = f14, f14, f0
000008000000 A472 nop.i 0 ;;
}
{ .mfi
000008000000 A480 nop.m 0
010478E1E3CF A481 (pr15) fma.s1 f15 = f14, f15, f15
000008000000 A482 nop.i 0 ;;
}
{ .mfi
000008000000 A490 nop.m 0
012460D1830F A491 (pr15) fma.d.s1 f12 = f13, f12, f12
000008000000 A492 nop.i 0 ;;
}
{ .mfi
000008000000 A4A0 nop.m 0
010478D1E3CF A4A1 (pr15) fma.s1 f15 = f13, f15, f15
000008000000 A4A2 nop.i 0 ;;
}
{ .mfi
000008000000 A4B0 nop.m 0
01A46090E34F A4B1 (pr15) fnma.d.s1 f13 = f9, f12, f7
000008000000 A4B2 nop.i 0 ;;
}
{ .mfi
000008000000 A4C0 nop.m 0
012078D182CF A4C1 (pr15) fma.d f11 = f13, f15, f12
000008000000 A4C2 nop.i 0 ;;
}
{ .mfi
000008000000 A4D0 nop.m 0
011008B002C0 A4D1 fma.s f11 = f11, f1, f0
000008000000 A4D2 nop.i 0 ;;
}
{ .mfi
000008000000 A4E0 nop.m 0
0000D0016800 A4E1 fcvt.fx.trunc f32 = fqperc // f32 = f11 // 073492
000008000000 A4E2 nop.i 0 ;;
}
{ .mmi
008708040600 A4F0 getf.sig iqperc = f32 ;; // r24 = f32
000008000000 A4F1 nop.m 0
0000B1800640 A4F2 sxt4 ai = iqperc // r25 = r24 // 073493
}
{ .mmi
0108018026C0 A500 adds r27 = 1, iqperc ;; // r27 = 1, r24
00C708032840 A501 setf.sig f33 = ai // f33 = r25
000008000000 A502 nop.i 0 ;;
}
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 302
PercentOf64 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
{ .mfi
000008000000 A510 nop.m 0
0000E0042880 A511 fcvt.xf f34 = f33
000008000000 A512 nop.i 0 ;;
}
{ .mfi
000008000000 A520 nop.m 0
01140A200880 A521 fnorm.s.s1 f34 = f34
000008000000 A522 nop.i 0 ;;
}
{ .mfi
000008000000 A530 nop.m 0
015008B442C0 A531 fsub.s f11 = fqperc, f34 // f11 = f11, f34
000008000000 A532 nop.i 0 ;;
}
{ .mfi
000008000000 A540 nop.m 0
008238B46180 A541 fcmp.le pr6, pr7 = f35, f11
000008000000 A542 nop.i 0 ;;
}
{ .mmi
010801B00206 A550 (pr6) mov r8 = r27 ;;
010801800207 A551 (pr7) mov r8 = iqperc // r8 = r24
000008000000 A552 nop.i 0 ;;
}
{ .mib
000008000000 A560 nop.m 0
0000B0800200 A561 sxt4 r8 = r8 // 073494
000108001100 A562 br.ret.sptk.many rp ;; // br0 // 073496
}
.endp PercentOf64
Routine Size: 736 bytes, Routine Base: $CODE$ + A290
.proc ipow
.align 32
.global ipow
ipow: // 073504
{ .mii
002C00306880 A570 alloc r34 = rspfs, 2, 1, 0, 0
012000002200 A571 mov result = 1 // r8 = 1 // 073510
01C402100200 A572 cmp4.eq pr8, pr0 = r0, exp // pr8, pr0 = r0, r33 // 073516
}
{ .mfb
000008000000 A580 nop.m 0
000008000000 A581 nop.f 0
008600014008 A582 (pr8) br.cond.dpnt.many L$12 ;;
}
A590 L$13:
{ .mib
000008000000 A590 nop.m 0
00A04A100280 A591 tbit.z pr10, pr9 = exp, 0 // pr10, pr9 = r33, 0 // 073518
008600004009 A592 (pr9) br.cond.dpnt.many L$17 ;;
}
{ .mfb
000008000000 A5A0 nop.m 0
000008000000 A5A1 nop.f 0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 303
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
008000009000 A5A2 br.sptk.many L$1138 ;;
}
A5B0 L$17:
{ .mmi
00C708040200 A5B0 setf.sig f8 = base // f8 = r32
00C7080101C0 A5B1 setf.sig f7 = result // f7 = r8
000008000000 A5B2 nop.i 0 ;;
}
{ .mfi
000008000000 A5C0 nop.m 0
01D040700180 A5C1 xma.l f6 = f7, f8, f0
000008000000 A5C2 nop.i 0 ;;
}
{ .mfi
00870800C200 A5D0 getf.sig r8 = f6
000008000000 A5D1 nop.f 0
000008000000 A5D2 nop.i 0
}
A5E0 L$1138:
{ .mii
00C7080402C0 A5E0 setf.sig f11 = base // f11 = r32 // 073520
0000B2100840 A5E1 sxt4 in1 = exp ;; // r33 = r33 // 073519
00A5F2106840 A5E2 shr exp = in1, 1 // r33 = r33, 1
}
{ .mmi
00C708040280 A5F0 setf.sig f10 = base ;; // f10 = r32 // 073520
01C45A100000 A5F1 cmp4.eq pr0, pr11 = r0, exp // pr0, pr11 = r0, r33 // 073516
000008000000 A5F2 nop.i 0 ;;
}
{ .mfi
000008000000 A600 nop.m 0
01D058A00240 A601 xma.l f9 = f10, f11, f0 // 073520
000008000000 A602 nop.i 0 ;;
}
{ .mfb
008708012800 A610 getf.sig base = f9 // r32 = f9
000008000000 A611 nop.f 0
0095FFFF000B A612 (pr11) br.cond.dptk.many L$13 ;; // 073516
}
A620 L$12: // 073521
{ .mib
000008000000 A620 nop.m 0
0000B0800200 A621 sxt4 r8 = r8 // 073523
000108001100 A622 br.ret.sptk.many rp ;; // br0
}
.endp ipow
Routine Size: 192 bytes, Routine Base: $CODE$ + A570
.common TimeUtcDelta64, 8, 1
.common TimeAheadOfGmt, 4, 1
.common TimeGmtString, 16, 1
.common TimeZoneString, 16, 1
.psect $READONLY$, CON, LCL, SHR, NOEXE, NOWRT, NOVEC, NOSHORT
.lcomm _SIG_EMPTY_SET, 8, 8
.lcomm _SIG_FULL_SET, 8, 8
.lcomm $$1, 1, 1
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 304
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
.lcomm fill$$1, 7, 8
.lcomm $$2, 7, 8
.lcomm fill$$2, 1, 1
.lcomm $$3, 8, 8
.lcomm $$4, 7, 8
.lcomm fill$$3, 1, 1
.lcomm $$5, 7, 8
.lcomm fill$$4, 1, 1
.lcomm $$6, 1, 1
.lcomm fill$$5, 7, 8
.lcomm $$7, 8, 8
.lcomm $$8, 6, 8
.lcomm fill$$6, 2, 2
.lcomm $$9, 6, 8
.lcomm fill$$7, 2, 2
.lcomm $$10, 4, 4
.lcomm fill$$8, 4, 4
.lcomm $$11, 5, 8
.lcomm fill$$9, 3, 4
.lcomm $$12, 5, 8
.lcomm fill$$10, 3, 4
.lcomm $$13, 7, 8
.lcomm fill$$11, 1, 1
.lcomm $$14, 8, 8
.lcomm $$15, 1, 1
.lcomm fill$$12, 7, 8
.lcomm $$16, 1, 1
.lcomm fill$$13, 7, 8
.lcomm $$17, 1, 1
.lcomm fill$$14, 7, 8
.lcomm $$18, 1, 1
.lcomm fill$$15, 7, 8
.lcomm $$19, 4, 4
.lcomm fill$$16, 4, 4
.lcomm $$20, 4, 4
.lcomm fill$$17, 4, 4
.lcomm $$21, 4, 4
.lcomm fill$$18, 4, 4
.lcomm $$22, 4, 4
.lcomm fill$$19, 4, 4
.lcomm $$23, 4, 4
.lcomm fill$$20, 4, 4
.lcomm $$24, 4, 4
.lcomm fill$$21, 4, 4
.lcomm $$25, 4, 4
.lcomm fill$$22, 4, 4
.lcomm $$26, 4, 4
.lcomm fill$$23, 4, 4
.lcomm $$27, 4, 4
.lcomm fill$$24, 4, 4
.lcomm $$28, 4, 4
.lcomm fill$$25, 4, 4
.lcomm $$29, 4, 4
.lcomm fill$$26, 4, 4
.lcomm $$30, 4, 4
.lcomm fill$$27, 4, 4
.lcomm $$31, 7, 8
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 305
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
.lcomm fill$$28, 1, 1
.lcomm $$32, 6, 8
.lcomm fill$$29, 2, 2
.lcomm $$33, 1, 1
.lcomm fill$$30, 7, 8
.lcomm $$34, 8, 8
.lcomm $$35, 1, 1
.lcomm fill$$31, 7, 8
.lcomm $$36, 7, 8
.lcomm fill$$32, 1, 1
.lcomm $$37, 5, 8
.lcomm fill$$33, 3, 4
.lcomm $$38, 1, 1
.lcomm fill$$34, 7, 8
.lcomm $$39, 1, 1
.lcomm fill$$35, 7, 8
.lcomm $$40, 1, 1
.lcomm fill$$36, 7, 8
.lcomm $$41, 10, 16
.lcomm fill$$37, 6, 8
.lcomm $$42, 9, 16
.lcomm fill$$38, 7, 8
.lcomm $$43, 9, 16
.lcomm fill$$39, 7, 8
.lcomm $$44, 9, 16
.lcomm fill$$40, 7, 8
.lcomm $$45, 10, 16
.lcomm fill$$41, 6, 8
.lcomm $$46, 9, 16
.lcomm fill$$42, 7, 8
.lcomm $$47, 9, 16
.lcomm fill$$43, 7, 8
.lcomm $$48, 37, 16
.lcomm fill$$44, 3, 4
.lcomm $$49, 41, 16
.lcomm fill$$45, 7, 8
.lcomm $$50, 37, 16
.lcomm fill$$46, 3, 4
.lcomm $$51, 39, 16
.lcomm fill$$47, 1, 1
.lcomm $$52, 21, 16
.lcomm fill$$48, 3, 4
.lcomm $$53, 11, 16
.lcomm fill$$49, 5, 8
.lcomm $$54, 13, 16
.lcomm fill$$50, 3, 4
.lcomm start$$fill, 8, 8
.lcomm NameDsc, 8, 8
.lcomm ValueDsc, 8, 8
.lcomm fill$$51, 8, 8
.lcomm LnmTableDsc, 8, 8
.lcomm LogNameDsc, 8, 8
.lcomm NameAddressFaoDsc, 8, 8
.lcomm AddressFaoDsc, 8, 8
.lcomm fill$$52, 16, 16
.lcomm TimeFaoDsc, 8, 8
.lcomm TimeBufDsc, 8, 8
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 306
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
.lcomm AgoFaoDsc, 8, 8
.lcomm AgoBufDsc, 8, 8
.lcomm fill$$53, 8, 8
.lcomm DateFaoDsc, 8, 8
.lcomm TimeDsc, 8, 8
.lcomm TimeFaoDsc, 8, 8
.lcomm TimeFaoDsc, 8, 8
.lcomm TimeStringDsc, 8, 8
.lcomm UtcTimeFaoDsc, 8, 8
.lcomm TimeStringDsc, 8, 8
.lcomm LocalTimeFaoDsc, 8, 8
.lcomm HttpTimeFaoDsc, 8, 8
.lcomm TimeStringDsc, 8, 8
.lcomm HttpTimeFaoDsc, 8, 8
.lcomm TimeStringDsc, 8, 8
.lcomm LnmItems, 36, 16
.lcomm fill$$54, 4, 4
.lcomm HexDigit, 17, 16
.lcomm fill$$55, 7, 8
.lcomm JpiItems, 24, 16
.lcomm MonthName, 52, 16
.lcomm LogValue, 256, 16
.lcomm UniqueId, 24, 16
.lcomm UniqueIdString, 33, 16
.lcomm fill$$56, 7, 8
.lcomm CspNonce, 24, 16
.lcomm ScratchBuffer, 512, 16
.lcomm TimeBuf, 32, 16
.lcomm buf, 512, 16
.lcomm TimeString, 16, 16
.lcomm ValueLength, 8, 8
.lcomm LnmAttributes, 4, 4
.lcomm JpiBytLm, 4, 4
.lcomm bidx, 4, 4
_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
00 0010 $$55: string "\X00"
646E6F4D 0018 $$56: string "Monday\X00"
007961 001C
73657554 0020 $$57: string "Tuesday\X00"
00796164 0024
64697246 0028 $$58: string "Friday\X00"
007961 002C
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 307
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
646E7553 0030 $$59: string "Sunday\X00"
007961 0034
00 0038 $$60: string "\X00"
756E614A 0040 $$61: string "January\X00"
00797261 0044
6372614D 0048 $$62: string "March\X00"
0068 004C
69727041 0050 $$63: string "April\X00"
006C 0054
0079614D 0058 $$64: string "May\X00"
656E754A 0060 $$65: string "June\X00"
00 0064
796C754A 0068 $$66: string "July\X00"
00 006C
75677541 0070 $$67: string "August\X00"
007473 0074
6F74634F 0078 $$68: string "October\X00"
00726562 007C
00 0080 $$69: string "\X00"
00 0088 $$70: string "\X00"
00 0090 $$71: string "\X00"
00 0098 $$72: string "\X00"
006E614A 00A0 $$73: string "Jan\X00"
00626546 00A8 $$74: string "Feb\X00"
0072614D 00B0 $$75: string "Mar\X00"
00727041 00B8 $$76: string "Apr\X00"
0079614D 00C0 $$77: string "May\X00"
006E754A 00C8 $$78: string "Jun\X00"
006C754A 00D0 $$79: string "Jul\X00"
00677541 00D8 $$80: string "Aug\X00"
00706553 00E0 $$81: string "Sep\X00"
0074634F 00E8 $$82: string "Oct\X00"
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 308
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00766F4E 00F0 $$83: string "Nov\X00"
00636544 00F8 $$84: string "Dec\X00"
25333121 0100 $$85: string "!13%D\X00\X00"
000044 0104
54253821 0108 $$86: string "!8%T\X00\X00"
0000 010C
00 0110 $$87: string "\X00"
214C5521 0118 $$88: string "!UL!AZ\X00\X00"
00005A41 011C
00 0120 $$89: string "\X00"
25303221 0128 $$90: string "!20%D\X00\X00"
000044 012C
005A4121 0130 $$91: string "!AZ\X00\X00"
00 0134
00 0138 $$92: string "\X00"
00 0140 $$93: string "\X00"
00 0148 $$94: string "\X00"
6E646557 0150 $$95: string "Wednesday\X00"
61647365 0154
0079 0158
72756854 0160 $$96: string "Thursday\X00"
79616473 0164
00 0168
75746153 0170 $$97: string "Saturday\X00"
79616472 0174
00 0178
72626546 0180 $$98: string "February\X00"
79726175 0184
00 0188
74706553 0190 $$99: string "September\X00"
65626D65 0194
0072 0198
65766F4E 01A0 $$100: string "November\X00"
7265626D 01A4
00 01A8
65636544 01B0 $$101: string "December\X00"
7265626D 01B4
00 01B8
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 309
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
5A413321 01C0 $$102: string "!3AZ, !2ZW !3AZ !4ZW !2ZW:!2ZW:!2ZW\X00\X00"
3221202C 01C4
2120575A 01C8
205A4133 01CC
575A3421 01D0
5A322120 01D4
32213A57 01D8
213A575A 01DC
00575A32 01E0
00 01E4
5A413321 01E8 $$103: string "!3AZ, !2ZW !3AZ !4ZW !2ZW:!2ZW:!2ZW GMT\X00\X00"
3221202C 01EC
2120575A 01F0
205A4133 01F4
575A3421 01F8
5A322120 01FC
32213A57 0200
213A575A 0204
20575A32 0208
00544D47 020C
00 0210
4C5A3421 0218 $$104: string "!4ZL!2ZL!2ZLT!2ZL!2ZL!2ZL.!2ZL+0000\X00\X00"
4C5A3221 021C
4C5A3221 0220
5A322154 0224
5A32214C 0228
5A32214C 022C
32212E4C 0230
302B4C5A 0234
00303030 0238
00 023C
4C5A3421 0240 $$105: string "!4ZL-!2ZL-!2ZLT!2ZL:!2ZL:!2ZL.!2ZL!AZ\X00\X00"
5A32212D 0244
32212D4C 0248
21544C5A 024C
3A4C5A32 0250
4C5A3221 0254
5A32213A 0258
32212E4C 025C
41214C5A 0260
00005A 0264
4C5A3221 0268 $$106: string "!2ZL !2ZL:!2ZL:!2ZL\X00\X00"
5A322120 026C
32213A4C 0270
213A4C5A 0274
004C5A32 0278
00 027C
205A4121 0280 $$107: string "!AZ (!AZ)\X00\X00"
5A412128 0284
000029 0288
244D4E4C 0290 $$108: string "LNM$FILE_DEV\X00"
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 310
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
454C4946 0294
5645445F 0298
00 029C
.psect DeltaOneDay, OVR, GBL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
.global DeltaOneDay
D5964000 0000 DeltaOneDay: data8 0xFFFFFF36D5964000 // data8 -864000000000
FFFFFF36 0004
.psect DeltaOneHour, OVR, GBL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
.global DeltaOneHour
9E3B9800 0000 DeltaOneHour: data8 0xFFFFFFF79E3B9800 // data8 -36000000000
FFFFFFF7 0004
.psect Delta01Sec, OVR, GBL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
.global Delta01Sec
FF676980 0000 Delta01Sec: data8 0xFFFFFFFFFF676980 // data8 -10000000
FFFFFFFF 0004
.psect Delta02Sec, OVR, GBL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
.global Delta02Sec
FECED300 0000 Delta02Sec: data8 0xFFFFFFFFFECED300 // data8 -20000000
FFFFFFFF 0004
.psect Delta05Sec, OVR, GBL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
.global Delta05Sec
FD050F80 0000 Delta05Sec: data8 0xFFFFFFFFFD050F80 // data8 -50000000
FFFFFFFF 0004
.psect Delta10Sec, OVR, GBL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
.global Delta10Sec
FA0A1F00 0000 Delta10Sec: data8 0xFFFFFFFFFA0A1F00 // data8 -100000000
FFFFFFFF 0004
.psect Delta30Sec, OVR, GBL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
.global Delta30Sec
EE1E5D00 0000 Delta30Sec: data8 0xFFFFFFFFEE1E5D00 // data8 -300000000
FFFFFFFF 0004
.psect Delta60Sec, OVR, GBL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
.global Delta60Sec
DC3CBA00 0000 Delta60Sec: data8 0xFFFFFFFFDC3CBA00 // data8 -600000000
FFFFFFFF 0004
.psect Delta001mSec, OVR, GBL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
.global Delta001mSec
FFFFD8F0 0000 Delta001mSec: data8 0xFFFFFFFFFFFFD8F0 // data8 -10000
FFFFFFFF 0004
.psect Delta010mSec, OVR, GBL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
.global Delta010mSec
FFFE7960 0000 Delta010mSec: data8 0xFFFFFFFFFFFE7960 // data8 -100000
FFFFFFFF 0004
.psect Delta100mSec, OVR, GBL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
.global Delta100mSec
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 311
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
FFF0BDC0 0000 Delta100mSec: data8 0xFFFFFFFFFFF0BDC0 // data8 -1000000
FFFFFFFF 0004
.psect Delta001uSec, OVR, GBL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
.global Delta001uSec
FFFFFFF6 0000 Delta001uSec: data8 0xFFFFFFFFFFFFFFF6 // data8 -10
FFFFFFFF 0004
.psect Delta010uSec, OVR, GBL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
.global Delta010uSec
FFFFFF9C 0000 Delta010uSec: data8 0xFFFFFFFFFFFFFF9C // data8 -100
FFFFFFFF 0004
.psect Delta100uSec, OVR, GBL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
.global Delta100uSec
FFFFFC18 0000 Delta100uSec: data8 0xFFFFFFFFFFFFFC18 // data8 -1000
FFFFFFFF 0004
.psect DayName, OVR, GBL, NOSHR, NOEXE, WRT, NOVEC, NOSHORT
.global DayName
DayName:
00000000 0000 data4 _SIG_EMPTY_SET+16
00000000 0004 data4 _SIG_EMPTY_SET+24
00000000 0008 data4 _SIG_EMPTY_SET+32
00000000 000C data4 _SIG_EMPTY_SET+336
00000000 0010 data4 _SIG_EMPTY_SET+352
00000000 0014 data4 _SIG_EMPTY_SET+40
00000000 0018 data4 _SIG_EMPTY_SET+368
00000000 001C data4 _SIG_EMPTY_SET+48
.psect MonthName, OVR, GBL, NOSHR, NOEXE, WRT, NOVEC, NOSHORT
.global MonthName
MonthName:
00000000 0000 data4 _SIG_EMPTY_SET+56
00000000 0004 data4 _SIG_EMPTY_SET+64
00000000 0008 data4 _SIG_EMPTY_SET+384
00000000 000C data4 _SIG_EMPTY_SET+72
00000000 0010 data4 _SIG_EMPTY_SET+80
00000000 0014 data4 _SIG_EMPTY_SET+88
00000000 0018 data4 _SIG_EMPTY_SET+96
00000000 001C data4 _SIG_EMPTY_SET+104
00000000 0020 data4 _SIG_EMPTY_SET+112
00000000 0024 data4 _SIG_EMPTY_SET+400
00000000 0028 data4 _SIG_EMPTY_SET+120
00000000 002C data4 _SIG_EMPTY_SET+416
00000000 0030 data4 _SIG_EMPTY_SET+432
.psect ToUpperCase, OVR, GBL, NOSHR, NOEXE, WRT, NOVEC, NOSHORT
.global ToUpperCase
ToUpperCase:
00000000 0000 data4 0x0 // data4 0
00000001 0004 data4 0x1 // data4 1
00000002 0008 data4 0x2 // data4 2
00000003 000C data4 0x3 // data4 3
00000004 0010 data4 0x4 // data4 4
00000005 0014 data4 0x5 // data4 5
00000006 0018 data4 0x6 // data4 6
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 312
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00000007 001C data4 0x7 // data4 7
00000008 0020 data4 0x8 // data4 8
00000009 0024 data4 0x9 // data4 9
0000000A 0028 data4 0xA // data4 10
0000000B 002C data4 0xB // data4 11
0000000C 0030 data4 0xC // data4 12
0000000D 0034 data4 0xD // data4 13
0000000E 0038 data4 0xE // data4 14
0000000F 003C data4 0xF // data4 15
00000010 0040 data4 0x10 // data4 16
00000011 0044 data4 0x11 // data4 17
00000012 0048 data4 0x12 // data4 18
00000013 004C data4 0x13 // data4 19
00000014 0050 data4 0x14 // data4 20
00000015 0054 data4 0x15 // data4 21
00000016 0058 data4 0x16 // data4 22
00000017 005C data4 0x17 // data4 23
00000018 0060 data4 0x18 // data4 24
00000019 0064 data4 0x19 // data4 25
0000001A 0068 data4 0x1A // data4 26
0000001B 006C data4 0x1B // data4 27
0000001C 0070 data4 0x1C // data4 28
0000001D 0074 data4 0x1D // data4 29
0000001E 0078 data4 0x1E // data4 30
0000001F 007C data4 0x1F // data4 31
00000020 0080 data4 0x20 // data4 32
00000021 0084 data4 0x21 // data4 33
00000022 0088 data4 0x22 // data4 34
00000023 008C data4 0x23 // data4 35
00000024 0090 data4 0x24 // data4 36
00000025 0094 data4 0x25 // data4 37
00000026 0098 data4 0x26 // data4 38
00000027 009C data4 0x27 // data4 39
00000028 00A0 data4 0x28 // data4 40
00000029 00A4 data4 0x29 // data4 41
0000002A 00A8 data4 0x2A // data4 42
0000002B 00AC data4 0x2B // data4 43
0000002C 00B0 data4 0x2C // data4 44
0000002D 00B4 data4 0x2D // data4 45
0000002E 00B8 data4 0x2E // data4 46
0000002F 00BC data4 0x2F // data4 47
00000030 00C0 data4 0x30 // data4 48
00000031 00C4 data4 0x31 // data4 49
00000032 00C8 data4 0x32 // data4 50
00000033 00CC data4 0x33 // data4 51
00000034 00D0 data4 0x34 // data4 52
00000035 00D4 data4 0x35 // data4 53
00000036 00D8 data4 0x36 // data4 54
00000037 00DC data4 0x37 // data4 55
00000038 00E0 data4 0x38 // data4 56
00000039 00E4 data4 0x39 // data4 57
0000003A 00E8 data4 0x3A // data4 58
0000003B 00EC data4 0x3B // data4 59
0000003C 00F0 data4 0x3C // data4 60
0000003D 00F4 data4 0x3D // data4 61
0000003E 00F8 data4 0x3E // data4 62
0000003F 00FC data4 0x3F // data4 63
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 313
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00000040 0100 data4 0x40 // data4 64
00000041 0104 data4 0x41 // data4 65
00000042 0108 data4 0x42 // data4 66
00000043 010C data4 0x43 // data4 67
00000044 0110 data4 0x44 // data4 68
00000045 0114 data4 0x45 // data4 69
00000046 0118 data4 0x46 // data4 70
00000047 011C data4 0x47 // data4 71
00000048 0120 data4 0x48 // data4 72
00000049 0124 data4 0x49 // data4 73
0000004A 0128 data4 0x4A // data4 74
0000004B 012C data4 0x4B // data4 75
0000004C 0130 data4 0x4C // data4 76
0000004D 0134 data4 0x4D // data4 77
0000004E 0138 data4 0x4E // data4 78
0000004F 013C data4 0x4F // data4 79
00000050 0140 data4 0x50 // data4 80
00000051 0144 data4 0x51 // data4 81
00000052 0148 data4 0x52 // data4 82
00000053 014C data4 0x53 // data4 83
00000054 0150 data4 0x54 // data4 84
00000055 0154 data4 0x55 // data4 85
00000056 0158 data4 0x56 // data4 86
00000057 015C data4 0x57 // data4 87
00000058 0160 data4 0x58 // data4 88
00000059 0164 data4 0x59 // data4 89
0000005A 0168 data4 0x5A // data4 90
0000005B 016C data4 0x5B // data4 91
0000005C 0170 data4 0x5C // data4 92
0000005D 0174 data4 0x5D // data4 93
0000005E 0178 data4 0x5E // data4 94
0000005F 017C data4 0x5F // data4 95
00000060 0180 data4 0x60 // data4 96
00000041 0184 data4 0x41 // data4 65
00000042 0188 data4 0x42 // data4 66
00000043 018C data4 0x43 // data4 67
00000044 0190 data4 0x44 // data4 68
00000045 0194 data4 0x45 // data4 69
00000046 0198 data4 0x46 // data4 70
00000047 019C data4 0x47 // data4 71
00000048 01A0 data4 0x48 // data4 72
00000049 01A4 data4 0x49 // data4 73
0000004A 01A8 data4 0x4A // data4 74
0000004B 01AC data4 0x4B // data4 75
0000004C 01B0 data4 0x4C // data4 76
0000004D 01B4 data4 0x4D // data4 77
0000004E 01B8 data4 0x4E // data4 78
0000004F 01BC data4 0x4F // data4 79
00000050 01C0 data4 0x50 // data4 80
00000051 01C4 data4 0x51 // data4 81
00000052 01C8 data4 0x52 // data4 82
00000053 01CC data4 0x53 // data4 83
00000054 01D0 data4 0x54 // data4 84
00000055 01D4 data4 0x55 // data4 85
00000056 01D8 data4 0x56 // data4 86
00000057 01DC data4 0x57 // data4 87
00000058 01E0 data4 0x58 // data4 88
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 314
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00000059 01E4 data4 0x59 // data4 89
0000005A 01E8 data4 0x5A // data4 90
0000007B 01EC data4 0x7B // data4 123
0000007C 01F0 data4 0x7C // data4 124
0000007D 01F4 data4 0x7D // data4 125
0000007E 01F8 data4 0x7E // data4 126
0000007F 01FC data4 0x7F // data4 127
00000080 0200 data4 0x80 // data4 128
00000081 0204 data4 0x81 // data4 129
00000082 0208 data4 0x82 // data4 130
00000083 020C data4 0x83 // data4 131
00000084 0210 data4 0x84 // data4 132
00000085 0214 data4 0x85 // data4 133
00000086 0218 data4 0x86 // data4 134
00000087 021C data4 0x87 // data4 135
00000088 0220 data4 0x88 // data4 136
00000089 0224 data4 0x89 // data4 137
0000008A 0228 data4 0x8A // data4 138
0000008B 022C data4 0x8B // data4 139
0000008C 0230 data4 0x8C // data4 140
0000008D 0234 data4 0x8D // data4 141
0000008E 0238 data4 0x8E // data4 142
0000008F 023C data4 0x8F // data4 143
00000090 0240 data4 0x90 // data4 144
00000091 0244 data4 0x91 // data4 145
00000092 0248 data4 0x92 // data4 146
00000093 024C data4 0x93 // data4 147
00000094 0250 data4 0x94 // data4 148
00000095 0254 data4 0x95 // data4 149
00000096 0258 data4 0x96 // data4 150
00000097 025C data4 0x97 // data4 151
00000098 0260 data4 0x98 // data4 152
00000099 0264 data4 0x99 // data4 153
0000009A 0268 data4 0x9A // data4 154
0000009B 026C data4 0x9B // data4 155
0000009C 0270 data4 0x9C // data4 156
0000009D 0274 data4 0x9D // data4 157
0000009E 0278 data4 0x9E // data4 158
0000009F 027C data4 0x9F // data4 159
000000A0 0280 data4 0xA0 // data4 160
000000A1 0284 data4 0xA1 // data4 161
000000A2 0288 data4 0xA2 // data4 162
000000A3 028C data4 0xA3 // data4 163
000000A4 0290 data4 0xA4 // data4 164
000000A5 0294 data4 0xA5 // data4 165
000000A6 0298 data4 0xA6 // data4 166
000000A7 029C data4 0xA7 // data4 167
000000A8 02A0 data4 0xA8 // data4 168
000000A9 02A4 data4 0xA9 // data4 169
000000AA 02A8 data4 0xAA // data4 170
000000AB 02AC data4 0xAB // data4 171
000000AC 02B0 data4 0xAC // data4 172
000000AD 02B4 data4 0xAD // data4 173
000000AE 02B8 data4 0xAE // data4 174
000000AF 02BC data4 0xAF // data4 175
000000B0 02C0 data4 0xB0 // data4 176
000000B1 02C4 data4 0xB1 // data4 177
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 315
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000000B2 02C8 data4 0xB2 // data4 178
000000B3 02CC data4 0xB3 // data4 179
000000B4 02D0 data4 0xB4 // data4 180
000000B5 02D4 data4 0xB5 // data4 181
000000B6 02D8 data4 0xB6 // data4 182
000000B7 02DC data4 0xB7 // data4 183
000000B8 02E0 data4 0xB8 // data4 184
000000B9 02E4 data4 0xB9 // data4 185
000000BA 02E8 data4 0xBA // data4 186
000000BB 02EC data4 0xBB // data4 187
000000BC 02F0 data4 0xBC // data4 188
000000BD 02F4 data4 0xBD // data4 189
000000BE 02F8 data4 0xBE // data4 190
000000BF 02FC data4 0xBF // data4 191
000000C0 0300 data4 0xC0 // data4 192
000000C1 0304 data4 0xC1 // data4 193
000000C2 0308 data4 0xC2 // data4 194
000000C3 030C data4 0xC3 // data4 195
000000C4 0310 data4 0xC4 // data4 196
000000C5 0314 data4 0xC5 // data4 197
000000C6 0318 data4 0xC6 // data4 198
000000C7 031C data4 0xC7 // data4 199
000000C8 0320 data4 0xC8 // data4 200
000000C9 0324 data4 0xC9 // data4 201
000000CA 0328 data4 0xCA // data4 202
000000CB 032C data4 0xCB // data4 203
000000CC 0330 data4 0xCC // data4 204
000000CD 0334 data4 0xCD // data4 205
000000CE 0338 data4 0xCE // data4 206
000000CF 033C data4 0xCF // data4 207
000000D0 0340 data4 0xD0 // data4 208
000000D1 0344 data4 0xD1 // data4 209
000000D2 0348 data4 0xD2 // data4 210
000000D3 034C data4 0xD3 // data4 211
000000D4 0350 data4 0xD4 // data4 212
000000D5 0354 data4 0xD5 // data4 213
000000D6 0358 data4 0xD6 // data4 214
000000D7 035C data4 0xD7 // data4 215
000000D8 0360 data4 0xD8 // data4 216
000000D9 0364 data4 0xD9 // data4 217
000000DA 0368 data4 0xDA // data4 218
000000DB 036C data4 0xDB // data4 219
000000DC 0370 data4 0xDC // data4 220
000000DD 0374 data4 0xDD // data4 221
000000DE 0378 data4 0xDE // data4 222
000000DF 037C data4 0xDF // data4 223
000000E0 0380 data4 0xE0 // data4 224
000000E1 0384 data4 0xE1 // data4 225
000000E2 0388 data4 0xE2 // data4 226
000000E3 038C data4 0xE3 // data4 227
000000E4 0390 data4 0xE4 // data4 228
000000E5 0394 data4 0xE5 // data4 229
000000E6 0398 data4 0xE6 // data4 230
000000E7 039C data4 0xE7 // data4 231
000000E8 03A0 data4 0xE8 // data4 232
000000E9 03A4 data4 0xE9 // data4 233
000000EA 03A8 data4 0xEA // data4 234
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 316
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000000EB 03AC data4 0xEB // data4 235
000000EC 03B0 data4 0xEC // data4 236
000000ED 03B4 data4 0xED // data4 237
000000EE 03B8 data4 0xEE // data4 238
000000EF 03BC data4 0xEF // data4 239
000000F0 03C0 data4 0xF0 // data4 240
000000F1 03C4 data4 0xF1 // data4 241
000000F2 03C8 data4 0xF2 // data4 242
000000F3 03CC data4 0xF3 // data4 243
000000F4 03D0 data4 0xF4 // data4 244
000000F5 03D4 data4 0xF5 // data4 245
000000F6 03D8 data4 0xF6 // data4 246
000000F7 03DC data4 0xF7 // data4 247
000000F8 03E0 data4 0xF8 // data4 248
000000F9 03E4 data4 0xF9 // data4 249
000000FA 03E8 data4 0xFA // data4 250
000000FB 03EC data4 0xFB // data4 251
000000FC 03F0 data4 0xFC // data4 252
000000FD 03F4 data4 0xFD // data4 253
000000FE 03F8 data4 0xFE // data4 254
000000FF 03FC data4 0xFF // data4 255
.psect ToLowerCase, OVR, GBL, NOSHR, NOEXE, WRT, NOVEC, NOSHORT
.global ToLowerCase
ToLowerCase:
00000000 0000 data4 0x0 // data4 0
00000001 0004 data4 0x1 // data4 1
00000002 0008 data4 0x2 // data4 2
00000003 000C data4 0x3 // data4 3
00000004 0010 data4 0x4 // data4 4
00000005 0014 data4 0x5 // data4 5
00000006 0018 data4 0x6 // data4 6
00000007 001C data4 0x7 // data4 7
00000008 0020 data4 0x8 // data4 8
00000009 0024 data4 0x9 // data4 9
0000000A 0028 data4 0xA // data4 10
0000000B 002C data4 0xB // data4 11
0000000C 0030 data4 0xC // data4 12
0000000D 0034 data4 0xD // data4 13
0000000E 0038 data4 0xE // data4 14
0000000F 003C data4 0xF // data4 15
00000010 0040 data4 0x10 // data4 16
00000011 0044 data4 0x11 // data4 17
00000012 0048 data4 0x12 // data4 18
00000013 004C data4 0x13 // data4 19
00000014 0050 data4 0x14 // data4 20
00000015 0054 data4 0x15 // data4 21
00000016 0058 data4 0x16 // data4 22
00000017 005C data4 0x17 // data4 23
00000018 0060 data4 0x18 // data4 24
00000019 0064 data4 0x19 // data4 25
0000001A 0068 data4 0x1A // data4 26
0000001B 006C data4 0x1B // data4 27
0000001C 0070 data4 0x1C // data4 28
0000001D 0074 data4 0x1D // data4 29
0000001E 0078 data4 0x1E // data4 30
0000001F 007C data4 0x1F // data4 31
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 317
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00000020 0080 data4 0x20 // data4 32
00000021 0084 data4 0x21 // data4 33
00000022 0088 data4 0x22 // data4 34
00000023 008C data4 0x23 // data4 35
00000024 0090 data4 0x24 // data4 36
00000025 0094 data4 0x25 // data4 37
00000026 0098 data4 0x26 // data4 38
00000027 009C data4 0x27 // data4 39
00000028 00A0 data4 0x28 // data4 40
00000029 00A4 data4 0x29 // data4 41
0000002A 00A8 data4 0x2A // data4 42
0000002B 00AC data4 0x2B // data4 43
0000002C 00B0 data4 0x2C // data4 44
0000002D 00B4 data4 0x2D // data4 45
0000002E 00B8 data4 0x2E // data4 46
0000002F 00BC data4 0x2F // data4 47
00000030 00C0 data4 0x30 // data4 48
00000031 00C4 data4 0x31 // data4 49
00000032 00C8 data4 0x32 // data4 50
00000033 00CC data4 0x33 // data4 51
00000034 00D0 data4 0x34 // data4 52
00000035 00D4 data4 0x35 // data4 53
00000036 00D8 data4 0x36 // data4 54
00000037 00DC data4 0x37 // data4 55
00000038 00E0 data4 0x38 // data4 56
00000039 00E4 data4 0x39 // data4 57
0000003A 00E8 data4 0x3A // data4 58
0000003B 00EC data4 0x3B // data4 59
0000003C 00F0 data4 0x3C // data4 60
0000003D 00F4 data4 0x3D // data4 61
0000003E 00F8 data4 0x3E // data4 62
0000003F 00FC data4 0x3F // data4 63
00000040 0100 data4 0x40 // data4 64
00000061 0104 data4 0x61 // data4 97
00000062 0108 data4 0x62 // data4 98
00000063 010C data4 0x63 // data4 99
00000064 0110 data4 0x64 // data4 100
00000065 0114 data4 0x65 // data4 101
00000066 0118 data4 0x66 // data4 102
00000067 011C data4 0x67 // data4 103
00000068 0120 data4 0x68 // data4 104
00000069 0124 data4 0x69 // data4 105
0000006A 0128 data4 0x6A // data4 106
0000006B 012C data4 0x6B // data4 107
0000006C 0130 data4 0x6C // data4 108
0000006D 0134 data4 0x6D // data4 109
0000006E 0138 data4 0x6E // data4 110
0000006F 013C data4 0x6F // data4 111
00000070 0140 data4 0x70 // data4 112
00000071 0144 data4 0x71 // data4 113
00000072 0148 data4 0x72 // data4 114
00000073 014C data4 0x73 // data4 115
00000074 0150 data4 0x74 // data4 116
00000075 0154 data4 0x75 // data4 117
00000076 0158 data4 0x76 // data4 118
00000077 015C data4 0x77 // data4 119
00000078 0160 data4 0x78 // data4 120
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 318
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00000079 0164 data4 0x79 // data4 121
0000007A 0168 data4 0x7A // data4 122
0000005B 016C data4 0x5B // data4 91
0000005C 0170 data4 0x5C // data4 92
0000005D 0174 data4 0x5D // data4 93
0000005E 0178 data4 0x5E // data4 94
0000005F 017C data4 0x5F // data4 95
00000060 0180 data4 0x60 // data4 96
00000061 0184 data4 0x61 // data4 97
00000062 0188 data4 0x62 // data4 98
00000063 018C data4 0x63 // data4 99
00000064 0190 data4 0x64 // data4 100
00000065 0194 data4 0x65 // data4 101
00000066 0198 data4 0x66 // data4 102
00000067 019C data4 0x67 // data4 103
00000068 01A0 data4 0x68 // data4 104
00000069 01A4 data4 0x69 // data4 105
0000006A 01A8 data4 0x6A // data4 106
0000006B 01AC data4 0x6B // data4 107
0000006C 01B0 data4 0x6C // data4 108
0000006D 01B4 data4 0x6D // data4 109
0000006E 01B8 data4 0x6E // data4 110
0000006F 01BC data4 0x6F // data4 111
00000070 01C0 data4 0x70 // data4 112
00000071 01C4 data4 0x71 // data4 113
00000072 01C8 data4 0x72 // data4 114
00000073 01CC data4 0x73 // data4 115
00000074 01D0 data4 0x74 // data4 116
00000075 01D4 data4 0x75 // data4 117
00000076 01D8 data4 0x76 // data4 118
00000077 01DC data4 0x77 // data4 119
00000078 01E0 data4 0x78 // data4 120
00000079 01E4 data4 0x79 // data4 121
0000007A 01E8 data4 0x7A // data4 122
0000007B 01EC data4 0x7B // data4 123
0000007C 01F0 data4 0x7C // data4 124
0000007D 01F4 data4 0x7D // data4 125
0000007E 01F8 data4 0x7E // data4 126
0000007F 01FC data4 0x7F // data4 127
00000080 0200 data4 0x80 // data4 128
00000081 0204 data4 0x81 // data4 129
00000082 0208 data4 0x82 // data4 130
00000083 020C data4 0x83 // data4 131
00000084 0210 data4 0x84 // data4 132
00000085 0214 data4 0x85 // data4 133
00000086 0218 data4 0x86 // data4 134
00000087 021C data4 0x87 // data4 135
00000088 0220 data4 0x88 // data4 136
00000089 0224 data4 0x89 // data4 137
0000008A 0228 data4 0x8A // data4 138
0000008B 022C data4 0x8B // data4 139
0000008C 0230 data4 0x8C // data4 140
0000008D 0234 data4 0x8D // data4 141
0000008E 0238 data4 0x8E // data4 142
0000008F 023C data4 0x8F // data4 143
00000090 0240 data4 0x90 // data4 144
00000091 0244 data4 0x91 // data4 145
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 319
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00000092 0248 data4 0x92 // data4 146
00000093 024C data4 0x93 // data4 147
00000094 0250 data4 0x94 // data4 148
00000095 0254 data4 0x95 // data4 149
00000096 0258 data4 0x96 // data4 150
00000097 025C data4 0x97 // data4 151
00000098 0260 data4 0x98 // data4 152
00000099 0264 data4 0x99 // data4 153
0000009A 0268 data4 0x9A // data4 154
0000009B 026C data4 0x9B // data4 155
0000009C 0270 data4 0x9C // data4 156
0000009D 0274 data4 0x9D // data4 157
0000009E 0278 data4 0x9E // data4 158
0000009F 027C data4 0x9F // data4 159
000000A0 0280 data4 0xA0 // data4 160
000000A1 0284 data4 0xA1 // data4 161
000000A2 0288 data4 0xA2 // data4 162
000000A3 028C data4 0xA3 // data4 163
000000A4 0290 data4 0xA4 // data4 164
000000A5 0294 data4 0xA5 // data4 165
000000A6 0298 data4 0xA6 // data4 166
000000A7 029C data4 0xA7 // data4 167
000000A8 02A0 data4 0xA8 // data4 168
000000A9 02A4 data4 0xA9 // data4 169
000000AA 02A8 data4 0xAA // data4 170
000000AB 02AC data4 0xAB // data4 171
000000AC 02B0 data4 0xAC // data4 172
000000AD 02B4 data4 0xAD // data4 173
000000AE 02B8 data4 0xAE // data4 174
000000AF 02BC data4 0xAF // data4 175
000000B0 02C0 data4 0xB0 // data4 176
000000B1 02C4 data4 0xB1 // data4 177
000000B2 02C8 data4 0xB2 // data4 178
000000B3 02CC data4 0xB3 // data4 179
000000B4 02D0 data4 0xB4 // data4 180
000000B5 02D4 data4 0xB5 // data4 181
000000B6 02D8 data4 0xB6 // data4 182
000000B7 02DC data4 0xB7 // data4 183
000000B8 02E0 data4 0xB8 // data4 184
000000B9 02E4 data4 0xB9 // data4 185
000000BA 02E8 data4 0xBA // data4 186
000000BB 02EC data4 0xBB // data4 187
000000BC 02F0 data4 0xBC // data4 188
000000BD 02F4 data4 0xBD // data4 189
000000BE 02F8 data4 0xBE // data4 190
000000BF 02FC data4 0xBF // data4 191
000000C0 0300 data4 0xC0 // data4 192
000000C1 0304 data4 0xC1 // data4 193
000000C2 0308 data4 0xC2 // data4 194
000000C3 030C data4 0xC3 // data4 195
000000C4 0310 data4 0xC4 // data4 196
000000C5 0314 data4 0xC5 // data4 197
000000C6 0318 data4 0xC6 // data4 198
000000C7 031C data4 0xC7 // data4 199
000000C8 0320 data4 0xC8 // data4 200
000000C9 0324 data4 0xC9 // data4 201
000000CA 0328 data4 0xCA // data4 202
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 320
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
000000CB 032C data4 0xCB // data4 203
000000CC 0330 data4 0xCC // data4 204
000000CD 0334 data4 0xCD // data4 205
000000CE 0338 data4 0xCE // data4 206
000000CF 033C data4 0xCF // data4 207
000000D0 0340 data4 0xD0 // data4 208
000000D1 0344 data4 0xD1 // data4 209
000000D2 0348 data4 0xD2 // data4 210
000000D3 034C data4 0xD3 // data4 211
000000D4 0350 data4 0xD4 // data4 212
000000D5 0354 data4 0xD5 // data4 213
000000D6 0358 data4 0xD6 // data4 214
000000D7 035C data4 0xD7 // data4 215
000000D8 0360 data4 0xD8 // data4 216
000000D9 0364 data4 0xD9 // data4 217
000000DA 0368 data4 0xDA // data4 218
000000DB 036C data4 0xDB // data4 219
000000DC 0370 data4 0xDC // data4 220
000000DD 0374 data4 0xDD // data4 221
000000DE 0378 data4 0xDE // data4 222
000000DF 037C data4 0xDF // data4 223
000000E0 0380 data4 0xE0 // data4 224
000000E1 0384 data4 0xE1 // data4 225
000000E2 0388 data4 0xE2 // data4 226
000000E3 038C data4 0xE3 // data4 227
000000E4 0390 data4 0xE4 // data4 228
000000E5 0394 data4 0xE5 // data4 229
000000E6 0398 data4 0xE6 // data4 230
000000E7 039C data4 0xE7 // data4 231
000000E8 03A0 data4 0xE8 // data4 232
000000E9 03A4 data4 0xE9 // data4 233
000000EA 03A8 data4 0xEA // data4 234
000000EB 03AC data4 0xEB // data4 235
000000EC 03B0 data4 0xEC // data4 236
000000ED 03B4 data4 0xED // data4 237
000000EE 03B8 data4 0xEE // data4 238
000000EF 03BC data4 0xEF // data4 239
000000F0 03C0 data4 0xF0 // data4 240
000000F1 03C4 data4 0xF1 // data4 241
000000F2 03C8 data4 0xF2 // data4 242
000000F3 03CC data4 0xF3 // data4 243
000000F4 03D0 data4 0xF4 // data4 244
000000F5 03D4 data4 0xF5 // data4 245
000000F6 03D8 data4 0xF6 // data4 246
000000F7 03DC data4 0xF7 // data4 247
000000F8 03E0 data4 0xF8 // data4 248
000000F9 03E4 data4 0xF9 // data4 249
000000FA 03E8 data4 0xFA // data4 250
000000FB 03EC data4 0xFB // data4 251
000000FC 03F0 data4 0xFC // data4 252
000000FD 03F4 data4 0xFD // data4 253
000000FE 03F8 data4 0xFE // data4 254
000000FF 03FC data4 0xFF // data4 255
.psect $LITERAL$, CON, LCL, SHR, NOEXE, NOWRT, NOVEC, NOSHORT
50505553 0000 string "SUPPORT\X00"
0054524F 0004
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 321
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
24737973 0010 string "sys$dclast()\X00"
616C6364 0014
29287473 0018
00 001C
2462696C 0020 string "lib$cvts_from_internal_time()\X00"
73747663 0024
6F72665F 0028
6E695F6D 002C
6E726574 0030
745F6C61 0034
28656D69 0038
0029 003C
6E6F6E28 0040 string "(none)\X00"
002965 0044
00776F6E 0048 string "now\X00"
0073 0050 string "s\X00"
006D 0058 string "m\X00"
0068 0060 string "h\X00"
0064 0068 string "d\X00"
66322E25 0070 string "%.2fs\X00"
0073 0074
66332E25 0078 string "%.3fs\X00"
0073 007C
66302E25 0080 string "%.0fms\X00"
00736D 0084
66312E25 0088 string "%.1fms\X00"
00736D 008C
332E3025 0090 string "%0.3fms\X00"
00736D66 0094
73302E30 00A0 string "0.0s\X00"
00 00A4
2D2D213C 00A8 string "\X0A\X00"
54454D20 00AC
766F2041 00B0
6C667265 00B4
4520776F 00B8
524F5252 00BC
3E2D2D20 00C0
000A 00C4
74656D3C 00C8 string "\X0A\X0A!&@!&@"
616E2061 00CC string "\X0A\X00"
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 322
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
223D656D 00D0
656E6567 00D4
6F746172 00D8
63202272 00DC
65746E6F 00E0
223D746E 00E4
225A4121 00E8
6D3C0A3E 00EC
20617465 00F0
656D616E 00F4
6164223D 00F8
20226574 00FC
746E6F63 0100
3D746E65 0104
5A412122 0108
210A3E22 010C
26214026 0110
656D3C40 0114
6E206174 0118
3D656D61 011C
726F6622 0120
2D74616D 0124
65746564 0128
6F697463 012C
6320226E 0130
65746E6F 0134
223D746E 0138
656C6574 013C
6E6F6870 0140
6F6E3D65 0144
000A3E22 0148
00 0150 string "\X00"
0032 0158 string "2\X00"
0035 0160 string "5\X00"
00534441 0168 string "ADS\X00"
004B5750 0170 string "PWK\X00"
00424D53 0178 string "SMB\X00"
003F 0180 string "?\X00"
00495253 0188 string "SRI\X00"
74656D3C 0190 string "\X0A\X00"
616E2061 0194
223D656D 0198
2253444F 019C
6E6F6320 01A0
746E6574 01A4
4121223D 01A8
0A3E225A 01AC
00 01B0
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 323
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
74656D3C 01B8 string "\X0A!&@\X00"
616E2061 01BC
223D656D 01C0
22534D56 01C4
6E6F6320 01C8
746E6574 01CC
2621223D 01D0
225A413B 01D4
26210A3E 01D8
0040 01DC
74656D3C 01E0 string "\X0A\X00"
616E2061 01E4
223D656D 01E8
74736F68 01EC
6F632022 01F0
6E65746E 01F4
21223D74 01F8
3E225A41 01FC
000A 0200
74656D3C 0208 string "\X0A\X00"
616E2061 020C
223D656D 0210
68747561 0214
2022726F 0218
746E6F63 021C
3D746E65 0220
3B262122 0224
272E5A41 0228
413B2621 022C
2140275A 0230
3E225A41 0234
000A 0238
20656854 0240 string "The server is reporting an UNKNOWN status code!\X00"
76726573 0244
69207265 0248
65722073 024C
74726F70 0250
20676E69 0254
55206E61 0258
4F4E4B4E 025C
73204E57 0260
75746174 0264
6F632073 0268
00216564 026C
636F7270 0278 string "processing\X00"
69737365 027C
00676E 0280
746C756D 0288 string "multi-status\X00"
74732D69 028C
73757461 0290
00 0294
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 324
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
6B636F6C 0298 string "locked\X00"
006465 029C
72706E75 02A0 string "unprocessable entity\X00"
7365636F 02A4
6C626173 02A8
6E652065 02AC
79746974 02B0
00 02B4
6473696D 02B8 string "misdirected request\X00"
63657269 02BC
20646574 02C0
75716572 02C4
00747365 02C8
706D6574 02D0 string "temporary redirect\X00"
7261726F 02D4
65722079 02D8
65726964 02DC
007463 02E0
65736572 02E8 string "reserved\X00"
64657672 02EC
00 02F0
746E6F43 02F8 string "Continue\X00"
65756E69 02FC
00 0300
74697753 0308 string "Switching Protocols\X00"
6E696863 030C
72502067 0310
636F746F 0314
00736C6F 0318
6E6B6E55 0320 string "Unknown Code!\X00"
206E776F 0324
65646F43 0328
0021 032C
636F7250 0330 string "Processing\X00"
69737365 0334
00676E 0338
75736E49 0340 string "Insufficient Storage\X00"
63696666 0344
746E6569 0348
6F745320 034C
65676172 0350
00 0354
50545448 0358 string "HTTP Version Not Supported\X00"
72655620 035C
6E6F6973 0360
746F4E20 0364
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 325
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
70755320 0368
74726F70 036C
006465 0370
65746147 0378 string "Gateway Timeout\X00"
20796177 037C
656D6954 0380
0074756F 0384
76726553 0390 string "Service Unavailable\X00"
20656369 0394
76616E55 0398
616C6961 039C
00656C62 03A0
20646142 03A8 string "Bad Gateway\X00"
65746147 03AC
00796177 03B0
20746F4E 03B8 string "Not Implemented\X00"
6C706D49 03BC
6E656D65 03C0
00646574 03C4
65746E49 03D0 string "Internal Error\X00"
6C616E72 03D4
72724520 03D8
00726F 03DC
72677055 03E0 string "Upgrade Required\X00"
20656461 03E4
75716552 03E8
64657269 03EC
00 03F0
6C696146 03F8 string "Failed Dependency\X00"
44206465 03FC
6E657065 0400
636E6564 0404
0079 0408
6B636F4C 0410 string "Locked\X00"
006465 0414
72706E55 0418 string "Unprocessable Entity\X00"
7365636F 041C
6C626173 0420
6E452065 0424
79746974 0428
00 042C
6473694D 0430 string "Misdirected Request\X00"
63657269 0434
20646574 0438
75716552 043C
00747365 0440
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 326
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
206D2749 0448 string "I'm a teapot\X00"
65742061 044C
746F7061 0450
00 0454
65707845 0458 string "Expectation Failed\X00"
74617463 045C
206E6F69 0460
6C696146 0464
006465 0468
75716552 0470 string "Requested Range Not Satisfiable\X00"
65747365 0474
61522064 0478
2065676E 047C
20746F4E 0480
69746153 0484
61696673 0488
00656C62 048C
75736E55 0498 string "Unsupported Media Type\X00"
726F7070 049C
20646574 04A0
6964654D 04A4
79542061 04A8
006570 04AC
75716552 04B0 string "Request URI Too Long\X00"
20747365 04B4
20495255 04B8
206F6F54 04BC
676E6F4C 04C0
00 04C4
75716552 04C8 string "Request Entity Too Large\X00"
20747365 04CC
69746E45 04D0
54207974 04D4
4C206F6F 04D8
65677261 04DC
00 04E0
63657250 04E8 string "Precondition Failed\X00"
69646E6F 04EC
6E6F6974 04F0
69614620 04F4
0064656C 04F8
676E654C 0500 string "Length Required\X00"
52206874 0504
69757165 0508
00646572 050C
656E6F47 0518 string "Gone\X00"
00 051C
666E6F43 0520 string "Conflict\X00"
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 327
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
7463696C 0524
00 0528
75716552 0530 string "Request Timeout\X00"
20747365 0534
656D6954 0538
0074756F 053C
786F7250 0548 string "Proxy Authentication Required\X00"
75412079 054C
6E656874 0550
61636974 0554
6E6F6974 0558
71655220 055C
65726975 0560
0064 0564
20746F4E 0568 string "Not Acceptable\X00"
65636341 056C
62617470 0570
00656C 0574
6874654D 0578 string "Method Not Allowed\X00"
4E20646F 057C
4120746F 0580
776F6C6C 0584
006465 0588
20746F4E 0590 string "Not Found\X00"
6E756F46 0594
0064 0598
62726F46 05A0 string "Forbidden\X00"
65646469 05A4
006E 05A8
6D796150 05B0 string "Payment Required\X00"
20746E65 05B4
75716552 05B8
64657269 05BC
00 05C0
68747541 05C8 string "Authorization Required\X00"
7A69726F 05CC
6F697461 05D0
6552206E 05D4
72697571 05D8
006465 05DC
20646142 05E0 string "Bad Request\X00"
75716552 05E4
00747365 05E8
706D6554 05F0 string "Temporary Redirect\X00"
7261726F 05F4
65522079 05F8
65726964 05FC
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 328
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
007463 0600
7365725B 0608 string "[reserved]\X00"
65767265 060C
005D64 0610
20657355 0618 string "Use Proxy\X00"
786F7250 061C
0079 0620
20746F4E 0628 string "Not Modified\X00"
69646F4D 062C
64656966 0630
00 0634
20656553 0638 string "See Other\X00"
6568744F 063C
0072 0640
6E756F46 0648 string "Found (Moved Temporarily)\X00"
4D282064 064C
6465766F 0650
6D655420 0654
61726F70 0658
796C6972 065C
0029 0660
65766F4D 0668 string "Moved Permanently\X00"
65502064 066C
6E616D72 0670
6C746E65 0674
0079 0678
746C754D 0680 string "Multiple Choices\X00"
656C7069 0684
6F684320 0688
73656369 068C
00 0690
746C754D 0698 string "Multistatus\X00"
61747369 069C
00737574 06A0
74726150 06A8 string "Partial Content\X00"
206C6169 06AC
746E6F43 06B0
00746E65 06B4
65736552 06C0 string "Reset Content\X00"
6F432074 06C4
6E65746E 06C8
0074 06CC
43206F4E 06D0 string "No Content\X00"
65746E6F 06D4
00746E 06D8
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 329
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
2D6E6F4E 06E0 string "Non-authoritative\X00"
68747561 06E4
7469726F 06E8
76697461 06EC
0065 06F0
65636341 06F8 string "Accepted\X00"
64657470 06FC
00 0700
61657243 0708 string "Created\X00"
00646574 070C
004B4F 0718 string "OK\X00"
5252452A 0720 string "*ERROR*\X00"
002A524F 0724
30256325 0730 string "%c%02.02d%02.02d\X00"
32302E32 0734
32302564 0738
6432302E 073C
00 0740
30256325 0748 string "%c%02.02d:%02.02d\X00"
32302E32 074C
30253A64 0750
32302E32 0754
0064 0758
24535953 0760 string "SYS$TIMEZONE_DIFFERENTIAL\X00"
454D4954 0764
454E4F5A 0768
4649445F 076C
45524546 0770
4149544E 0774
004C 0778
002D 0780 string "-\X00"
002B 0788 string "+\X00"
50545448 0790 string "HTTPD$GMT\X00"
4D472444 0794
0054 0798
44534157 07A0 string "WASD_GMT\X00"
544D475F 07A4
00 07A8
44534157 07B0 string "WASD_UTC\X00"
4354555F 07B4
00 07B8
006425 07C0 string "%d\X00"
00643225 07C8 string "%2d\X00"
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 330
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00643425 07D0 string "%4d\X00"
00544D47 07D8 string "GMT\X00"
2F5A4121 07E0 string "!AZ/\X00"
00 07E4
6820613C 07E8 string "!AZ\X00"
3D666572 07EC
69616D22 07F0
3A6F746C 07F4
225A4121 07F8
5A41213E 07FC
3E612F3C 0800
00 0804
3C206425 0808 string "%d <- %d -> %d\X0A\X00"
6425202D 080C
203E2D20 0810
000A6425 0814
7473694C 0820 string "ListCheck() %d %d %d %d\X0A\X00"
63656843 0824
2029286B 0828
25206425 082C
64252064 0830
0A642520 0834
00 0838
.psect $LINK$, CON, LCL, NOSHR, NOEXE, NOWRT, NOVEC, NOSHORT
0000000000000020 0000 data8 L$460-0000000000005E60
0000000000000030 0008 data8 L$461-0000000000005E60
0000000000000040 0010 data8 L$462-0000000000005E60
0000000000000050 0018 data8 L$463-0000000000005E60
0000000000000060 0020 data8 L$464-0000000000005E60
0000000000000070 0028 data8 L$465-0000000000005E60
0000000000000080 0030 data8 L$466-0000000000005E60
0000000000000090 0038 data8 L$467-0000000000005E60
00000000000000A0 0040 data8 L$468-0000000000005E60
00000000000000B0 0048 data8 L$469-0000000000005E60
00000000000000C0 0050 data8 L$470-0000000000005E60
00000000000000D0 0058 data8 L$471-0000000000005E60
00000000000000E0 0060 data8 L$472-0000000000005E60
00000000000000F0 0068 data8 L$473-0000000000005E60
0000000000000100 0070 data8 L$474-0000000000005E60
0000000000000110 0078 data8 L$475-0000000000005E60
0000000000000120 0080 data8 L$476-0000000000005E60
0000000000000130 0088 data8 L$477-0000000000005E60
00000000000003C0 0090 data8 L$454-0000000000005E60
00000000000003C0 0098 data8 L$454-0000000000005E60
00000000000003C0 00A0 data8 L$454-0000000000005E60
0000000000000140 00A8 data8 L$478-0000000000005E60
0000000000000160 00B0 data8 L$479-0000000000005E60
0000000000000180 00B8 data8 L$480-0000000000005E60
0000000000000020 00C0 data8 L$445-0000000000005D40
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 331
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0000000000000030 00C8 data8 L$446-0000000000005D40
0000000000000040 00D0 data8 L$447-0000000000005D40
0000000000000050 00D8 data8 L$448-0000000000005D40
0000000000000060 00E0 data8 L$449-0000000000005D40
0000000000000070 00E8 data8 L$450-0000000000005D40
0000000000000080 00F0 data8 L$451-0000000000005D40
00000000000000A0 00F8 data8 L$452-0000000000005D40
0000000000000020 0100 data8 L$495-0000000000006120
0000000000000030 0108 data8 L$496-0000000000006120
0000000000000040 0110 data8 L$497-0000000000006120
0000000000000050 0118 data8 L$498-0000000000006120
0000000000000060 0120 data8 L$499-0000000000006120
0000000000000070 0128 data8 L$500-0000000000006120
0000000000000080 0130 data8 L$501-0000000000006120
0000000000000090 0138 data8 L$502-0000000000006120
0000000000000020 0140 data8 L$484-0000000000006040
0000000000000030 0148 data8 L$485-0000000000006040
0000000000000040 0150 data8 L$486-0000000000006040
0000000000000050 0158 data8 L$487-0000000000006040
0000000000000060 0160 data8 L$488-0000000000006040
0000000000000070 0168 data8 L$489-0000000000006040
0000000000000020 0170 data8 L$521-0000000000005550
0000000000000040 0178 data8 L$522-0000000000005550
0000000000000060 0180 data8 L$523-0000000000005550
0000000000000080 0188 data8 L$524-0000000000005550
00000000000000A0 0190 data8 L$525-0000000000005550
00000000000000C0 0198 data8 L$526-0000000000005550
00000000000000E0 01A0 data8 L$527-0000000000005550
0000000000000100 01A8 data8 L$528-0000000000005550
0000000000000020 01B0 data8 L$536-00000000000056D0
0000000000000040 01B8 data8 L$537-00000000000056D0
0000000000000060 01C0 data8 L$538-00000000000056D0
0000000000000080 01C8 data8 L$539-00000000000056D0
00000000000000A0 01D0 data8 L$540-00000000000056D0
00000000000000C0 01D8 data8 L$541-00000000000056D0
00000000000000E0 01E0 data8 L$542-00000000000056D0
0000000000000100 01E8 data8 L$543-00000000000056D0
0000000000000020 01F0 data8 L$547-0000000000005830
0000000000000040 01F8 data8 L$548-0000000000005830
0000000000000060 0200 data8 L$549-0000000000005830
0000000000000080 0208 data8 L$550-0000000000005830
00000000000000A0 0210 data8 L$551-0000000000005830
00000000000000C0 0218 data8 L$552-0000000000005830
00000000000000E0 0220 data8 L$553-0000000000005830
0000000000000100 0228 data8 L$554-0000000000005830
0000000000000120 0230 data8 L$555-0000000000005830
0000000000000140 0238 data8 L$556-0000000000005830
0000000000000160 0240 data8 L$557-0000000000005830
0000000000000180 0248 data8 L$558-0000000000005830
00000000000001A0 0250 data8 L$559-0000000000005830
00000000000001C0 0258 data8 L$560-0000000000005830
00000000000001E0 0260 data8 L$561-0000000000005830
0000000000000200 0268 data8 L$562-0000000000005830
0000000000000220 0270 data8 L$563-0000000000005830
0000000000000240 0278 data8 L$564-0000000000005830
0000000000000260 0280 data8 L$565-0000000000005830
0000000000000450 0288 data8 L$530-0000000000005830
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 332
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0000000000000450 0290 data8 L$530-0000000000005830
0000000000000280 0298 data8 L$566-0000000000005830
00000000000002A0 02A0 data8 L$567-0000000000005830
00000000000002C0 02A8 data8 L$568-0000000000005830
00000000000002E0 02B0 data8 L$569-0000000000005830
0000000000000450 02B8 data8 L$530-0000000000005830
0000000000000300 02C0 data8 L$570-0000000000005830
0000000000000450 02C8 data8 L$530-0000000000005830
0000000000000450 02D0 data8 L$530-0000000000005830
0000000000000450 02D8 data8 L$530-0000000000005830
0000000000000450 02E0 data8 L$530-0000000000005830
0000000000000450 02E8 data8 L$530-0000000000005830
0000000000000450 02F0 data8 L$530-0000000000005830
0000000000000450 02F8 data8 L$530-0000000000005830
0000000000000450 0300 data8 L$530-0000000000005830
0000000000000450 0308 data8 L$530-0000000000005830
0000000000000450 0310 data8 L$530-0000000000005830
0000000000000450 0318 data8 L$530-0000000000005830
0000000000000450 0320 data8 L$530-0000000000005830
0000000000000450 0328 data8 L$530-0000000000005830
0000000000000450 0330 data8 L$530-0000000000005830
0000000000000450 0338 data8 L$530-0000000000005830
0000000000000450 0340 data8 L$530-0000000000005830
0000000000000450 0348 data8 L$530-0000000000005830
0000000000000450 0350 data8 L$530-0000000000005830
0000000000000450 0358 data8 L$530-0000000000005830
0000000000000450 0360 data8 L$530-0000000000005830
0000000000000450 0368 data8 L$530-0000000000005830
0000000000000450 0370 data8 L$530-0000000000005830
0000000000000450 0378 data8 L$530-0000000000005830
0000000000000450 0380 data8 L$530-0000000000005830
0000000000000450 0388 data8 L$530-0000000000005830
0000000000000450 0390 data8 L$530-0000000000005830
0000000000000450 0398 data8 L$530-0000000000005830
0000000000000450 03A0 data8 L$530-0000000000005830
0000000000000450 03A8 data8 L$530-0000000000005830
0000000000000450 03B0 data8 L$530-0000000000005830
0000000000000450 03B8 data8 L$530-0000000000005830
0000000000000450 03C0 data8 L$530-0000000000005830
0000000000000450 03C8 data8 L$530-0000000000005830
0000000000000450 03D0 data8 L$530-0000000000005830
0000000000000450 03D8 data8 L$530-0000000000005830
0000000000000450 03E0 data8 L$530-0000000000005830
0000000000000450 03E8 data8 L$530-0000000000005830
0000000000000450 03F0 data8 L$530-0000000000005830
0000000000000450 03F8 data8 L$530-0000000000005830
0000000000000450 0400 data8 L$530-0000000000005830
0000000000000450 0408 data8 L$530-0000000000005830
0000000000000450 0410 data8 L$530-0000000000005830
0000000000000450 0418 data8 L$530-0000000000005830
0000000000000450 0420 data8 L$530-0000000000005830
0000000000000450 0428 data8 L$530-0000000000005830
0000000000000450 0430 data8 L$530-0000000000005830
0000000000000450 0438 data8 L$530-0000000000005830
0000000000000450 0440 data8 L$530-0000000000005830
0000000000000450 0448 data8 L$530-0000000000005830
0000000000000450 0450 data8 L$530-0000000000005830
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 333
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0000000000000450 0458 data8 L$530-0000000000005830
0000000000000450 0460 data8 L$530-0000000000005830
0000000000000450 0468 data8 L$530-0000000000005830
0000000000000450 0470 data8 L$530-0000000000005830
0000000000000450 0478 data8 L$530-0000000000005830
0000000000000450 0480 data8 L$530-0000000000005830
0000000000000450 0488 data8 L$530-0000000000005830
0000000000000450 0490 data8 L$530-0000000000005830
0000000000000450 0498 data8 L$530-0000000000005830
0000000000000450 04A0 data8 L$530-0000000000005830
0000000000000450 04A8 data8 L$530-0000000000005830
0000000000000450 04B0 data8 L$530-0000000000005830
0000000000000450 04B8 data8 L$530-0000000000005830
0000000000000450 04C0 data8 L$530-0000000000005830
0000000000000450 04C8 data8 L$530-0000000000005830
0000000000000450 04D0 data8 L$530-0000000000005830
0000000000000450 04D8 data8 L$530-0000000000005830
0000000000000450 04E0 data8 L$530-0000000000005830
0000000000000450 04E8 data8 L$530-0000000000005830
0000000000000450 04F0 data8 L$530-0000000000005830
0000000000000450 04F8 data8 L$530-0000000000005830
0000000000000450 0500 data8 L$530-0000000000005830
0000000000000450 0508 data8 L$530-0000000000005830
0000000000000320 0510 data8 L$571-0000000000005830
0000000000000340 0518 data8 L$572-0000000000005830
0000000000000360 0520 data8 L$573-0000000000005830
0000000000000380 0528 data8 L$574-0000000000005830
00000000000003A0 0530 data8 L$575-0000000000005830
00000000000003C0 0538 data8 L$576-0000000000005830
0000000000000450 0540 data8 L$530-0000000000005830
00000000000003E0 0548 data8 L$577-0000000000005830
.psect .sdata, CON, LCL, NOSHR, NOEXE, WRT, NOVEC, SHORT
0000001E 0000 LibDeltaSecs: data4 0x1E // data4 30
0000001E 0004 LibDeltaSecs: data4 0x1E // data4 30
NameDsc:
00 0008 data1 0x00
00 0009 data1 0x00
0E 000A data1 0x0E
01 000B data1 0x01
00000000 000C data4 _SIG_EMPTY_SET+320
ValueDsc:
00 0010 data1 0x00
00 0011 data1 0x00
0E 0012 data1 0x0E
01 0013 data1 0x01
00000000 0014 data4 _SIG_EMPTY_SET+328
00000002 0018 GlobalSymbol: data4 0x2 // data4 2
LnmTableDsc:
0C 0020 data1 0x0C
00 0021 data1 0x00
0E 0022 data1 0x0E
01 0023 data1 0x01
00000000 0024 data4 _SIG_EMPTY_SET+656
LogNameDsc:
00 0028 data1 0x00
00 0029 data1 0x00
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 334
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
0E 002A data1 0x0E
01 002B data1 0x01
00000000 002C data4 _SIG_EMPTY_SET+312
NameAddressFaoDsc:
0A 0030 data1 0x0A
00 0031 data1 0x00
0E 0032 data1 0x0E
01 0033 data1 0x01
00000000 0034 data4 _SIG_EMPTY_SET+640
AddressFaoDsc:
04 0038 data1 0x04
00 0039 data1 0x00
0E 003A data1 0x0E
01 003B data1 0x01
00000000 003C data4 _SIG_EMPTY_SET+304
00000000 0040 Pid: data4 0x0 // data4 0
0000000A 0044 LibDayOfWeek: data4 0xA // data4 10
00000002 0048 LibDayOfYear: data4 0x2 // data4 2
TimeFaoDsc:
06 0050 data1 0x06
00 0051 data1 0x00
0E 0052 data1 0x0E
01 0053 data1 0x01
00000000 0054 data4 _SIG_EMPTY_SET+296
TimeBufDsc:
1F 0058 data1 0x1F
00 0059 data1 0x00
0E 005A data1 0x0E
01 005B data1 0x01
00000000 005C data4 TimeBuf
AgoFaoDsc:
07 0060 data1 0x07
00 0061 data1 0x00
0E 0062 data1 0x0E
01 0063 data1 0x01
00000000 0064 data4 _SIG_EMPTY_SET+280
AgoBufDsc:
00 0068 data1 0x00
00 0069 data1 0x00
0E 006A data1 0x0E
01 006B data1 0x01
00000000 006C data4 _SIG_EMPTY_SET+288
00000019 0070 LibDeltaSecs: data4 0x19 // data4 25
DateFaoDsc:
06 0078 data1 0x06
00 0079 data1 0x00
0E 007A data1 0x0E
01 007B data1 0x01
00000000 007C data4 _SIG_EMPTY_SET+256
TimeDsc:
00 0080 data1 0x00
00 0081 data1 0x00
0E 0082 data1 0x0E
01 0083 data1 0x01
00000000 0084 data4 _SIG_EMPTY_SET+272
TimeFaoDsc:
05 0088 data1 0x05
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 335
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00 0089 data1 0x00
0E 008A data1 0x0E
01 008B data1 0x01
00000000 008C data4 _SIG_EMPTY_SET+264
TimeFaoDsc:
14 0090 data1 0x14
00 0091 data1 0x00
0E 0092 data1 0x0E
01 0093 data1 0x01
00000000 0094 data4 _SIG_EMPTY_SET+616
TimeStringDsc:
0F 0098 data1 0x0F
00 0099 data1 0x00
0E 009A data1 0x0E
01 009B data1 0x01
00000000 009C data4 TimeString
UtcTimeFaoDsc:
24 00A0 data1 0x24
00 00A1 data1 0x00
0E 00A2 data1 0x0E
01 00A3 data1 0x01
00000000 00A4 data4 _SIG_EMPTY_SET+536
TimeStringDsc:
00 00A8 data1 0x00
00 00A9 data1 0x00
0E 00AA data1 0x0E
01 00AB data1 0x01
00000000 00AC data4 _SIG_EMPTY_SET+144
LocalTimeFaoDsc:
26 00B0 data1 0x26
00 00B1 data1 0x00
0E 00B2 data1 0x0E
01 00B3 data1 0x01
00000000 00B4 data4 _SIG_EMPTY_SET+576
HttpTimeFaoDsc:
28 00B8 data1 0x28
00 00B9 data1 0x00
0E 00BA data1 0x0E
01 00BB data1 0x01
00000000 00BC data4 _SIG_EMPTY_SET+488
TimeStringDsc:
00 00C0 data1 0x00
00 00C1 data1 0x00
0E 00C2 data1 0x0E
01 00C3 data1 0x01
00000000 00C4 data4 _SIG_EMPTY_SET+136
HttpTimeFaoDsc:
24 00C8 data1 0x24
00 00C9 data1 0x00
0E 00CA data1 0x0E
01 00CB data1 0x01
00000000 00CC data4 _SIG_EMPTY_SET+448
TimeStringDsc:
00 00D0 data1 0x00
00 00D1 data1 0x00
0E 00D2 data1 0x0E
01 00D3 data1 0x01
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 336
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
00000000 00D4 data4 _SIG_EMPTY_SET+128
.psect $DATA$, CON, LCL, NOSHR, NOEXE, WRT, NOVEC, NOSHORT
LnmItems:
04 0000 data1 0x04
00 0001 data1 0x00
03 0002 data1 0x03
00 0003 data1 0x00
00000000 0004 data4 LnmAttributes
00 0008 data1 0x00
00 0009 data1 0x00
00 000A data1 0x00
00 000B data1 0x00
FF 000C data1 0xFF
00 000D data1 0x00
02 000E data1 0x02
00 000F data1 0x00
00000000 0010 data4 LogValue
00000000 0014 data4 ValueLength
00 0018 .repeat 12
data1 0x00
.endr
HexDigit:
33323130 0028 string "0123456789ABCDEF"
37363534 002C
42413938 0030
46454443 0034
00 0038 data1 0x00
JpiItems:
04 0040 data1 0x04
00 0041 data1 0x00
1A 0042 data1 0x1A
03 0043 data1 0x03
00000000 0044 data4 JpiBytLm
00 0048 .repeat 16
data1 0x00
.endr
MonthName:
00000000 0058 data4 _SIG_EMPTY_SET+152
00000000 005C data4 _SIG_EMPTY_SET+160
00000000 0060 data4 _SIG_EMPTY_SET+168
00000000 0064 data4 _SIG_EMPTY_SET+176
00000000 0068 data4 _SIG_EMPTY_SET+184
00000000 006C data4 _SIG_EMPTY_SET+192
00000000 0070 data4 _SIG_EMPTY_SET+200
00000000 0074 data4 _SIG_EMPTY_SET+208
00000000 0078 data4 _SIG_EMPTY_SET+216
00000000 007C data4 _SIG_EMPTY_SET+224
00000000 0080 data4 _SIG_EMPTY_SET+232
00000000 0084 data4 _SIG_EMPTY_SET+240
00000000 0088 data4 _SIG_EMPTY_SET+248
.section .data
.type SYS$DCLAST, @function
.global SYS$DCLAST
.section .data
.type SYS$CANEXH, @function
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 337
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
.global SYS$CANEXH
.section .data
.type SYS$EXIT, @function
.global SYS$EXIT
.section .data
.type ErrorExitVmsStatus, @function
.global ErrorExitVmsStatus
.global DECC$GA_STDOUT
.section .data
.type DECC$TXFPRINTF, @function
.global DECC$TXFPRINTF
.global Config
.global ServerPort
.global ServerHostName
.section .data
.type FaoToBuffer, @function
.global FaoToBuffer
.section .data
.type ErrorNoticed, @function
.global ErrorNoticed
.global CliSoftwareID
.section .data
.type MsgFor, @function
.global MsgFor
.section .data
.type strsame, @function
.global strsame
.global SoftwareID
.global ErrorSanityCheck
.global HttpdVersion
.global HttpdName
.section .data
.type SYS$GETTIM, @function
.global SYS$GETTIM
.section .data
.type SYS$NUMTIM, @function
.global SYS$NUMTIM
.section .data
.type LIB$DAY_OF_WEEK, @function
.global LIB$DAY_OF_WEEK
.section .data
.type SYS$FAO, @function
.global SYS$FAO
.global DECC$$GL___CTYPEA
.global DECC$$GA___CTYPET
.section .data
.type DECC$ISDIGIT, @function
.global DECC$ISDIGIT
.section .data
.type DECC$ATOI, @function
.global DECC$ATOI
.section .data
.type DECC$ISALPHA, @function
.global DECC$ISALPHA
.section .data
.type LIB$CVT_VECTIM, @function
.global LIB$CVT_VECTIM
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 338
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
.section .data
.type DECC$TXSSCANF, @function
.global DECC$TXSSCANF
.section .data
.type OTS$ZERO, @function
.global OTS$ZERO
.section .data
.type SYS$TRNLNM, @function
.global SYS$TRNLNM
.section .data
.type SYS$GETUTC, @function
.global SYS$GETUTC
.section .data
.type SYS$NUMUTC, @function
.global SYS$NUMUTC
.section .data
.type DECC$TXSPRINTF, @function
.global DECC$TXSPRINTF
.section .data
.type ResponseHeader, @function
.global ResponseHeader
.section .data
.type FaolSAK, @function
.global FaolSAK
.section .data
.type VmGetHeap, @function
.global VmGetHeap
.section .data
.type OTS$MOVE, @function
.global OTS$MOVE
.section .data
.type LIB$MULTS_DELTA_TIME, @function
.global LIB$MULTS_DELTA_TIME
.section .data
.type DECC$STRNCPY, @function
.global DECC$STRNCPY
.section .data
.type strzcpy, @function
.global strzcpy
.section .data
.type LIB$CVT_FROM_INTERNAL_TIME, @function
.global LIB$CVT_FROM_INTERNAL_TIME
.global EfnWait
.section .data
.type SYS$GETJPIW, @function
.global SYS$GETJPIW
.section .data
.type DECC$STRCMP, @function
.global DECC$STRCMP
.section .data
.type DECC$ISALNUM, @function
.global DECC$ISALNUM
.section .data
.type DECC$STRLEN, @function
.global DECC$STRLEN
.global HttpdProcess
.section .data
Machine Code Listing 20-OCT-2025 03:55:02 VSI C V7.4-001-50L7J Page 339
ipow 29-JAN-2025 11:15:57 WASD_ROOT:[src.httpd]support.c;1
.type Md5HexString, @function
.global Md5HexString
.section .data
.type LIB$SET_SYMBOL, @function
.global LIB$SET_SYMBOL
.section .data
.type LIB$CVTS_FROM_INTERNAL_TIME, @function
.global LIB$CVTS_FROM_INTERNAL_TIME
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]Support Support.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:55:02" __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