As a hint towards what could be expected from a fix, with a hack that just corrects the offset for this specific function its dissassembly looks like this: ; disassembly for XXX ; Size: 204 bytes ; 0439922D: 498B442450 MOV RAX, [R12+80] ; no-arg-parsing entry point ; 32: 4883C010 ADD RAX, 16 ; 36: 48C740F851000000 MOV QWORD PTR [RAX-8], 81 ; 3E: 488968F0 MOV [RAX-16], RBP ; 42: 4989442450 MOV [R12+80], RAX ;;; [2] (BLOCK XXX (FORMAT T "~(~a~^~)~%" INP)) ; 47: 488B056AFFFFFF MOV RAX, [RIP-150] ; '*STANDARD-OUTPUT* ; 4E: 488B5021 MOV RDX, [RAX+33] ; 52: 498B1414 MOV RDX, [R12+RDX] ; 56: 4883FA61 CMP RDX, 97 ; 5A: 7504 JNE L0 ; 5C: 488B50F9 MOV RDX, [RAX-7] ; 60: L0: 4883FA51 CMP RDX, 81 ; 64: 0F848A000000 JEQ L1 ;;; [3] (FORMAT T "~(~a~^~)~%" INP) ; 6A: 488D5C24F0 LEA RBX, [RSP-16] ; 6F: 4883EC18 SUB RSP, 24 ; 73: 488B3D46FFFFFF MOV RDI, [RIP-186] ; :DOWNCASE ; 7A: 488B0547FFFFFF MOV RAX, [RIP-185] ; # ; 81: B904000000 MOV ECX, 4 ; 86: 48892B MOV [RBX], RBP ; 89: 488BEB MOV RBP, RBX ; 8C: FF5009 CALL QWORD PTR [RAX+9] ; 8F: 480F42E3 CMOVB RSP, RBX ; 93: 488BFA MOV RDI, RDX ; 96: 488BF7 MOV RSI, RDI ; 99: 488975F0 MOV [RBP-16], RSI ; 9D: 488D5C24F0 LEA RBX, [RSP-16] ; A2: 4883EC18 SUB RSP, 24 ; A6: 488B55F8 MOV RDX, [RBP-8] ; AA: 488BFE MOV RDI, RSI ; AD: 488B051CFFFFFF MOV RAX, [RIP-228] ; # ; B4: B904000000 MOV ECX, 4 ; B9: 48892B MOV [RBX], RBP ; BC: 488BEB MOV RBP, RBX ; BF: FF5009 CALL QWORD PTR [RAX+9] ; C2: 488B75F0 MOV RSI, [RBP-16] ; C6: 498B442450 MOV RAX, [R12+80] ; CB: 48C740F000000000 MOV QWORD PTR [RAX-16], 0 ; D3: 48C740F800000000 MOV QWORD PTR [RAX-8], 0 ; DB: 4883E810 SUB RAX, 16 ; DF: 4989442450 MOV [R12+80], RAX ; E4: BA17001020 MOV EDX, 537919511 ; E9: 488BE5 MOV RSP, RBP ; EC: F8 CLC ; ED: 5D POP RBP ; EE: C3 RET ; EF: CC0A BREAK 10 ; error trap ; F1: 02 BYTE #X02 ; F2: 19 BYTE #X19 ; INVALID-ARG-COUNT-ERROR ; F3: 9A BYTE #X9A ; RCX ; F4: L1: CC0A BREAK 10 ; error trap ; F6: 02 BYTE #X02 ; F7: 1B BYTE #X1B ; UNBOUND-SYMBOL-ERROR ; F8: 1B BYTE #X1B ; RAX