[
    {
        "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": "$pdata$?func@@YAHXZ DD imagerel $LN3",
        "source": null
    },
    {
        "text": "        DD      imagerel $LN3+43",
        "source": null
    },
    {
        "text": "        DD      imagerel $unwind$?func@@YAHXZ",
        "source": null
    },
    {
        "text": "$pdata$main DD  imagerel $LN3",
        "source": null
    },
    {
        "text": "        DD      imagerel $LN3+31",
        "source": null
    },
    {
        "text": "        DD      imagerel $unwind$main",
        "source": null
    },
    {
        "text": "$unwind$main DD 010401H",
        "source": null
    },
    {
        "text": "        DD      06204H",
        "source": null
    },
    {
        "text": "$unwind$?func@@YAHXZ DD 010401H",
        "source": null
    },
    {
        "text": "        DD      04204H",
        "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
    }
]