Function at 0x14002ab58
Capabilities:
Get thread local storage value

Disassembly:
push rbp
sub rsp, 0x60
lea rbp, [rsp + 0x60]
mov qword [rbp - 0x18], rdx
mov qword [rbp - 0x20], rcx
mov eax, 0x20
call fcn.140195b60
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x28], rax
mov ecx, dword [0x1401ab0a0]
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rbp - 0x20]
mov rdx, qword [rbp - 0x18]
add rsp, 0x20
add rax, 0x60
mov qword [rbp - 0x10], rax
mov rax, qword [rcx]
mov qword [rbp - 8], rax
cmp rax, rdx
jle 0x14002a774
mov rdx, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x20]
sub rsp, 0x20
call fcn.14002a5b6
add rsp, 0x20
jmp 0x14002ab53
mov rax, qword [rbp - 8]
mov rcx, qword [rbp - 0x18]
cmp rax, rcx
jge 0x14002ab53
mov rax, qword [rbp - 0x20]
mov rcx, rax
add rcx, 8
mov qword [rbp - 0x38], rcx
mov rax, qword [rax + 8]
mov qword [rbp - 0x30], rax
cmp rax, 0
je 0x14002a7d4
mov rcx, qword [rbp - 0x18]
mov rax, qword [rbp - 0x30]
mov rax, qword [rax]
movabs rdx, 0x1a1a89e30fb8c07c
movabs r8, 0xa5e5761cf0473f83
xor rdx, r8
and rax, rdx
cmp rax, rcx
jge 0x14002a9f9
mov r8, qword [rbp - 8]
mov r9, qword [rbp - 0x18]
movabs rcx, 0x3ce8ef7a05a540f9
movabs rax, 0xc3171085fa5abf06
xor rcx, rax
mov rax, r9
xor rax, rcx
and rax, r8
movabs rdx, 0x69fe59f0f35c0372
movabs rcx, 0x9601a60f0ca3fc8d
xor rdx, rcx
mov rcx, r8
xor rcx, rdx
mov rdx, r9
and rdx, rcx
sub rdx, rax
mov qword [rbp - 0x40], rdx
movabs rcx, 0xb7bf3b74f550c5cb
movabs rax, 0x4840c48b0aaf3a34
xor rcx, rax
mov rax, rdx
xor rax, rcx
movabs r10, 0x91c1d9f20e562ad3
movabs rcx, 0x6e3e260df1a9d52c
xor r10, rcx
mov rcx, rdx
xor rcx, r10
or rax, rcx
movabs rcx, 0xbf4790071aa8d08f
movabs r10, 0x40b86ff8e5572f70
xor rcx, r10
xor rax, rcx
movabs r10, 0x29b0f17ae858dfa2
movabs rcx, 0xd64f0e8517a7205d
xor r10, rcx
mov rcx, r9
xor rcx, r10
or rax, rcx
and r9, r9
xor r9, 0xffffffffffffffff
mov rcx, rdx
xor rcx, 0xffffffffffffffff
xor r9, 0xffffffffffffffff
or rcx, r9
movabs r9, 0x3a8d837511b9d252
movabs r10, 0xc5727c8aee462dad
xor r9, r10
xor rax, r9
movabs r9, 0x4e55e27108c62c75
movabs r10, 0xb1aa1d8ef739d38a
xor r9, r10
xor rcx, r9
or rax, rcx
cmp rax, 0
setl al
mov rcx, rdx
or rcx, rcx
movabs r9, 0x89b5c300c0cba0c7
movabs r10, 0x764a3cff3f345f38
xor r9, r10
xor rcx, r9
mov r9, r8
or r9, r9
movabs r10, 0x7012626b22635984
movabs r11, 0x8fed9d94dd9ca67b
xor r10, r11
xor r9, r10
movabs r10, 0xe34c54a7754d3aa3
movabs r11, 0x1cb3ab588ab2c55c
xor r10, r11
xor rcx, r10
xor r9, 0xffffffffffffffff
and rcx, r9
movabs r9, 0x8a1fb258bf1e7260
movabs r10, 0x75e04da740e18d9f
xor r9, r10
xor rdx, r9
xor r8, 0xffffffffffffffff
and rdx, r8
or rcx, rdx
xor rcx, 0xffffffffffffffff
movabs rdx, 0xde1afd7f24d9e078
movabs r8, 0x21e50280db261f87
xor rdx, r8
cmp rcx, rdx
setg dl
mov cl, al
xor cl, dl
xor r8d, r8d
xor r8b, 1
xor cl, r8b
or al, dl
and al, cl
test al, 1
jne 0x14002a9e7
mov r8, qword [rbp - 0x40]
mov rdx, qword [rbp - 0x30]
mov rcx, qword [rbp - 8]
mov r9d, 0x20
sub rsp, 0x30
mov qword [rsp + 0x20], 8
call fcn.1400184ef
add rsp, 0x30
mov rcx, rax
mov rax, qword [rbp - 0x38]
mov qword [rax], rcx
jmp 0x14002a9f9
sub rsp, 0x20
call fcn.14000a590
add rsp, 0x20
jmp 0x14002ab53
mov rax, qword [rbp - 8]
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x20]
mov r8, qword [rbp - 0x18]
mov qword [rdx], r8
add rcx, 0x10
mov qword [rbp - 0x50], rcx
mov qword [rbp - 0x48], rax
mov rax, qword [rbp - 0x48]
mov qword [rbp - 0x58], rax
mov ecx, dword [0x1401ab0a0]
sub rsp, 0x20
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov r8, qword [rbp - 0x50]
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x28]
add rsp, 0x20
mov rax, qword [rbp - 0x58]
xorps xmm0, xmm0
movaps xmmword [rdx], xmm0
movaps xmmword [r8], xmm0
mov rcx, qword [rcx]
add rcx, 8
shl rax, 5
add rcx, rax
sub rsp, 0x20
call fcn.14005ad7d
mov rax, qword [rbp - 0x10]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x69
xor cl, 0x69
cmp al, cl
jne 0x14002ab34
mov rdx, qword [rbp - 0x58]
movabs rcx, 0x307ca5f48ebae201
movabs rax, 0x307ca5f48ebae200
xor rcx, rax
mov rax, rdx
add rax, rcx
mov qword [rbp - 0x60], rax
mov rcx, rdx
xor rcx, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
and rcx, 0xffffffffffffffff
shl rcx, 1
sub rcx, 0xffffffffffffffff
sub rdx, rcx
movabs rcx, 0xff171659f071f70b
movabs r8, 0xe8e9a60f8e08f4
xor rcx, r8
xor rax, rcx
movabs rcx, 0x3dd353863b4e860e
movabs r8, 0xc22cac79c4b179f1
xor rcx, r8
xor rdx, rcx
mov rcx, 0xffffffffffffffff
movabs r8, 0x78e27bf5b45c5fe2
xor rcx, r8
or rax, rdx
movabs rdx, 0x78e27bf5b45c5fe2
or rcx, rdx
xor rax, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jge 0x14002ab39
sub rsp, 0x20
call fcn.14000a590
add rsp, 0x20
jmp 0x14002ab53
mov rax, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x18]
cmp rax, rcx
mov qword [rbp - 0x48], rax
je 0x14002ab34
jmp 0x14002aa18
mov rsp, rbp
pop rbp
ret
sub rsp, 0x38
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
xor eax, eax
mov edx, eax
call fcn.14002a5b6
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
add rsp, 0x38
jmp 0x14002a700