Function at 0x14004f630
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x88
mov qword [rsp + 0x80], rcx
cmp qword [rcx], 0
jle 0x14004f925
mov rax, qword [rsp + 0x80]
add rax, 8
mov qword [rsp + 0x70], rax
xor eax, eax
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x50], rdx
mov rax, qword [rax]
mov qword [rsp + 0x58], rax
mov rcx, rax
add rcx, 8
imul rdx, rdx, 0x28
add rcx, rdx
add rcx, 0x10
mov rcx, qword [rcx]
mov qword [rsp + 0x60], rcx
cmp rcx, 0
mov qword [rsp + 0x68], rax
je 0x14004f7c5
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
movabs rcx, 0x4000000000000000
and rcx, qword [rdx]
cmp rcx, 0
mov qword [rsp + 0x68], rax
jne 0x14004f7c5
mov eax, dword [0x1402747c8]
xor eax, 0x7933edf7
mov edx, dword [0x1402747cc]
xor ecx, ecx
sub ecx, eax
mov eax, 0x73e7241b
xor eax, 0x73e7241b
sub eax, edx
add ecx, eax
mov eax, 0x263d79b9
xor eax, 0x263d79b9
sub eax, ecx
and eax, 0x787c5c68
mov ecx, 0x64a880d6
xor edx, edx
div ecx
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x6be21f14
mov edx, 0xffffffff
xor edx, 0x4c8a7c46
or eax, ecx
mov ecx, 0x390f50d5
xor ecx, 0x75852c93
or ecx, edx
xor eax, 0xffffffff
and eax, ecx
mov ecx, 0x880137ad
xor ecx, 0x25c0a3a9
cmp eax, ecx
jae 0x14004fa53
mov eax, dword [0x1402747d0]
xor eax, 0x112cac9a
mov ecx, dword [0x1402747d4]
xor ecx, 0x8dab8931
or eax, ecx
mov ecx, 0xcc975b3d
xor edx, edx
div ecx
xor ecx, ecx
sub ecx, 0x3ec181a9
sub eax, ecx
mov ecx, 0x828f0710
xor edx, edx
div ecx
mov dword [rsp + 0x44], eax
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x60]
mov rcx, rax
add rcx, 0x68
call fcn.1400190f0
mov rcx, qword [rsp + 0x70]
mov eax, dword [rsp + 0x44]
mov rcx, qword [rcx]
mov qword [rsp + 0x48], rcx
cmp eax, 0x4a870e5f
ja 0x14004fa53
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x68], rax
jmp 0x14004f7c5
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x68]
add rax, 8
imul rcx, rcx, 0x28
add rax, rcx
add rax, 0x20
mov rax, qword [rax]
mov qword [rsp + 0x38], rax
cmp rax, 0
je 0x14004f8e6
mov eax, dword [0x1402747d8]
sub eax, dword [0x1402747dc]
sub eax, 0xd1db0505
and eax, 0xd304fb00
add eax, 0x4c88af22
cmp eax, 0x9a528039
jbe 0x14004fa5c
mov rcx, qword [rsp + 0x38]
mov eax, dword [0x1402747e0]
mov edx, dword [0x1402747e4]
xor edx, 0xd20d59b4
sub eax, edx
or eax, 0x5c209e6b
or eax, 0x5977cfae
mov edx, 0x10b8cf00
xor edx, 0x1473477b
sub eax, edx
mov rcx, qword [rcx]
or rcx, rcx
xor rcx, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
movabs r8, 0x4000000000000000
or rdx, r8
xor rdx, 0xffffffffffffffff
movabs r8, 0x22239350671faaf5
movabs r9, 0xdddc6caf98e0550a
xor r8, r9
xor rcx, r8
xor rdx, 0xffffffffffffffff
and rcx, rdx
movabs rdx, 0xfa2118bdb5708797
movabs r8, 0xfa2118bdb5708797
xor rdx, r8
cmp rcx, rdx
sete cl
mov byte [rsp + 0x37], cl
cmp eax, 0x6b36c888
jb 0x14004fa5c
mov al, byte [rsp + 0x37]
test al, 1
jne 0x14004f8c9
jmp 0x14004f8e6
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x38]
mov rcx, rax
add rcx, 0x68
call fcn.1400190f0
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x50]
movabs r8, 0x6d60bcabc79af8a5
movabs rax, 0x6d60bcabc79af8a4
xor r8, rax
mov rax, rdx
and rax, r8
or rdx, 1
add rax, rdx
cmp rax, qword [rcx]
mov qword [rsp + 0x78], rax
jl 0x14004f661
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 8]
mov qword [rsp + 0x28], rax
cmp rax, 0
je 0x14004f95d
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x28]
mov rcx, rax
add rcx, 0x68
call fcn.1400190f0
mov eax, dword [0x1402747e8]
xor eax, 0x47fee377
sub eax, dword [0x1402747ec]
mov ecx, 0x9a365d6b
xor edx, edx
div ecx
mov ecx, 0xcfc98a3
xor ecx, 0x6cb07dc8
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0xbab804a
xor ecx, 0xd9033e08
mov edx, 0xe073aabc
xor edx, 0x1f8c5543
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0xd2a8be42
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov ecx, 0x1b50af7a
xor ecx, 0xc12709dd
cmp eax, ecx
jae 0x14004fa65
mov ecx, dword [0x1402747f0]
xor ecx, dword [0x1402747f4]
add ecx, 0xb0f39f6e
mov edx, 0x1e749240
xor edx, 0xe18b6dbf
mov eax, ecx
xor eax, edx
mov edx, 0xac1e6def
xor edx, 0x53e19210
xor ecx, edx
or eax, ecx
mov ecx, 0x13958d45
xor ecx, 0x90c0c49
mov edx, 0x79f2bde8
xor edx, 0x860d4217
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0x1a99810c
or ecx, edx
and eax, ecx
mov ecx, 0xaa73659a
xor ecx, 0x558c9a65
xor eax, ecx
sub eax, 0xee0808a6
mov ecx, 0x4c1979f2
xor ecx, 0xa1af769c
cmp eax, ecx
jae 0x14004fa65
add rsp, 0x88
ret
enter 0x46ba, 0xffffffffffffff9f
jmp 0x14004f744
pop rsi
sub eax, 0xb1e9bcf8
std
invalid
xlatb
push 0x61e9cf86
invalid