| [ |
| { |
| "text": "_TLS SEGMENT", |
| "source": null |
| }, |
| { |
| "text": "?h@@3HA DD 012345H ; h", |
| "source": null |
| }, |
| { |
| "text": " ORG $+4", |
| "source": null |
| }, |
| { |
| "text": "?g@@3Usafetls@@A DD 098765H ; g", |
| "source": null |
| }, |
| { |
| "text": " ORG $+8", |
| "source": null |
| }, |
| { |
| "text": "_TLS ENDS", |
| "source": null |
| }, |
| { |
| "text": "", |
| "source": null |
| }, |
| { |
| "text": "this$ = 8", |
| "source": null |
| }, |
| { |
| "text": "?value@safetls@@QEAAHXZ PROC ; safetls::value, COMDAT", |
| "source": null |
| }, |
| { |
| "text": " mov QWORD PTR [rsp+8], rcx", |
| "source": { |
| "file": null, |
| "line": 9 |
| } |
| }, |
| { |
| "text": " mov rax, QWORD PTR this$[rsp]", |
| "source": { |
| "file": null, |
| "line": 9 |
| } |
| }, |
| { |
| "text": " mov rcx, QWORD PTR this$[rsp]", |
| "source": { |
| "file": null, |
| "line": 9 |
| } |
| }, |
| { |
| "text": " mov ecx, DWORD PTR [rcx+4]", |
| "source": { |
| "file": null, |
| "line": 9 |
| } |
| }, |
| { |
| "text": " mov eax, DWORD PTR [rax]", |
| "source": { |
| "file": null, |
| "line": 9 |
| } |
| }, |
| { |
| "text": " sub eax, ecx", |
| "source": { |
| "file": null, |
| "line": 9 |
| } |
| }, |
| { |
| "text": " mov rcx, QWORD PTR this$[rsp]", |
| "source": { |
| "file": null, |
| "line": 9 |
| } |
| }, |
| { |
| "text": " add eax, DWORD PTR [rcx+8]", |
| "source": { |
| "file": null, |
| "line": 9 |
| } |
| }, |
| { |
| "text": " ret 0", |
| "source": { |
| "file": null, |
| "line": 9 |
| } |
| }, |
| { |
| "text": "?value@safetls@@QEAAHXZ ENDP ; safetls::value", |
| "source": null |
| }, |
| { |
| "text": "", |
| "source": null |
| }, |
| { |
| "text": "?func@@YAHXZ PROC ; func, COMDAT", |
| "source": null |
| }, |
| { |
| "text": "$LN3:", |
| "source": null |
| }, |
| { |
| "text": " sub rsp, 40 ; 00000028H", |
| "source": { |
| "file": null, |
| "line": 16 |
| } |
| }, |
| { |
| "text": " mov eax, OFFSET FLAT:?g@@3Usafetls@@A ; g", |
| "source": { |
| "file": null, |
| "line": 17 |
| } |
| }, |
| { |
| "text": " mov eax, eax", |
| "source": { |
| "file": null, |
| "line": 17 |
| } |
| }, |
| { |
| "text": " mov ecx, DWORD PTR _tls_index", |
| "source": { |
| "file": null, |
| "line": 17 |
| } |
| }, |
| { |
| "text": " mov rdx, QWORD PTR gs:88", |
| "source": { |
| "file": null, |
| "line": 17 |
| } |
| }, |
| { |
| "text": " add rax, QWORD PTR [rdx+rcx*8]", |
| "source": { |
| "file": null, |
| "line": 17 |
| } |
| }, |
| { |
| "text": " mov rcx, rax", |
| "source": { |
| "file": null, |
| "line": 17 |
| } |
| }, |
| { |
| "text": " call ?value@safetls@@QEAAHXZ ; safetls::value", |
| "source": { |
| "file": null, |
| "line": 17 |
| } |
| }, |
| { |
| "text": " add rsp, 40 ; 00000028H", |
| "source": { |
| "file": null, |
| "line": 18 |
| } |
| }, |
| { |
| "text": " ret 0", |
| "source": { |
| "file": null, |
| "line": 18 |
| } |
| }, |
| { |
| "text": "?func@@YAHXZ ENDP ; func", |
| "source": null |
| }, |
| { |
| "text": "", |
| "source": null |
| }, |
| { |
| "text": "?func2@@YAHXZ PROC ; func2, COMDAT", |
| "source": null |
| }, |
| { |
| "text": " mov eax, OFFSET FLAT:?h@@3HA ; h", |
| "source": { |
| "file": null, |
| "line": 22 |
| } |
| }, |
| { |
| "text": " mov eax, eax", |
| "source": { |
| "file": null, |
| "line": 22 |
| } |
| }, |
| { |
| "text": " mov ecx, DWORD PTR _tls_index", |
| "source": { |
| "file": null, |
| "line": 22 |
| } |
| }, |
| { |
| "text": " mov rdx, QWORD PTR gs:88", |
| "source": { |
| "file": null, |
| "line": 22 |
| } |
| }, |
| { |
| "text": " mov rcx, QWORD PTR [rdx+rcx*8]", |
| "source": { |
| "file": null, |
| "line": 22 |
| } |
| }, |
| { |
| "text": " mov eax, DWORD PTR [rax+rcx]", |
| "source": { |
| "file": null, |
| "line": 22 |
| } |
| }, |
| { |
| "text": " ret 0", |
| "source": { |
| "file": null, |
| "line": 23 |
| } |
| }, |
| { |
| "text": "?func2@@YAHXZ ENDP ; func2", |
| "source": null |
| }, |
| { |
| "text": "", |
| "source": null |
| }, |
| { |
| "text": "tv64 = 32", |
| "source": null |
| }, |
| { |
| "text": "main PROC", |
| "source": null |
| }, |
| { |
| "text": "$LN3:", |
| "source": null |
| }, |
| { |
| "text": " sub rsp, 56 ; 00000038H", |
| "source": { |
| "file": null, |
| "line": 26 |
| } |
| }, |
| { |
| "text": " call ?func@@YAHXZ ; func", |
| "source": { |
| "file": null, |
| "line": 27 |
| } |
| }, |
| { |
| "text": " mov DWORD PTR tv64[rsp], eax", |
| "source": { |
| "file": null, |
| "line": 27 |
| } |
| }, |
| { |
| "text": " call ?func2@@YAHXZ ; func2", |
| "source": { |
| "file": null, |
| "line": 27 |
| } |
| }, |
| { |
| "text": " mov ecx, DWORD PTR tv64[rsp]", |
| "source": { |
| "file": null, |
| "line": 27 |
| } |
| }, |
| { |
| "text": " add ecx, eax", |
| "source": { |
| "file": null, |
| "line": 27 |
| } |
| }, |
| { |
| "text": " mov eax, ecx", |
| "source": { |
| "file": null, |
| "line": 27 |
| } |
| }, |
| { |
| "text": " add rsp, 56 ; 00000038H", |
| "source": { |
| "file": null, |
| "line": 28 |
| } |
| }, |
| { |
| "text": " ret 0", |
| "source": { |
| "file": null, |
| "line": 28 |
| } |
| }, |
| { |
| "text": "main ENDP", |
| "source": null |
| } |
| ] |