Skip to content

Instantly share code, notes, and snippets.

@synopse
Created June 10, 2020 20:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save synopse/f98f2cfa1296eae5e90aa4a18e24d468 to your computer and use it in GitHub Desktop.
Save synopse/f98f2cfa1296eae5e90aa4a18e24d468 to your computer and use it in GitHub Desktop.
__ANSISTR_DECR_REF disassembly
MORMOT.CORE.RTTI_$$__ANSISTR_DECR_REF$POINTER LABEL NEAR
mov rax, qword ptr [rdi] ; 0000 _ 48: 8B. 07
xor edx, edx ; 0003 _ 31. D2
test rax, rax ; 0005 _ 48: 85. C0
jz ?_0002 ; 0008 _ 74, 13
mov qword ptr [rdi], rdx ; 000A _ 48: 89. 17
mov rdi, rax ; 000D _ 48: 89. C7
cmp qword ptr [rax-10H], rdx ; 0010 _ 48: 39. 50, F0
jl ?_0002 ; 0014 _ 7C, 07
lock dec qword ptr [rax-10H] ; 0016 _ F0 48: FF. 48, F0
jbe ?_0003 ; 001B _ 76, 01
?_0002: ret ; 001D _ C3
?_0003 LABEL NEAR
sub rdi, 24 ; 001E _ 48: 83. EF, 18
jmp MORMOT.CORE.FPCX64MM_$$__FREEMEM$POINTER$$QWORD; 0022 _ E9, 00000000(rel)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment