Function at 0x1400e2da0
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc0
movapd xmmword [rsp + 0xb0], xmm6
mov rsi, rcx
mov rax, qword [0x14033f038]
xor rax, rsp
mov qword [rsp + 0xa8], rax
mov rax, qword [rcx]
inc rax
cmp rax, 2
jae 0x1400e2e1f
cmp byte [rsi + 0x1f], 0
js 0x1400e300a
mov rax, qword [rsi]
inc rax
cmp rax, 2
jae 0x1400e3018
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.140171860
movaps xmm6, xmmword [rsp + 0xb0]
add rsp, 0xc0
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x50]
mov qword [rdi + 0x50], rax
movapd xmm0, xmmword [0x140301d60]
movapd xmmword [rdi + 0x40], xmm0
movapd xmmword [rdi + 0x30], xmm0
movapd xmmword [rdi + 0x20], xmm0
movapd xmmword [rdi + 0x10], xmm0
movapd xmmword [rdi], xmm0
lea rdx, str.Close
lea r8, str....._base_files_file_win.cc
lea rbx, [rsp + 0x28]
mov rcx, rbx
mov r9d, 0x30
call fcn.14004f270
mov rcx, rdi
mov rdx, rbx
xor r8d, r8d
call fcn.1400cd290
mov rax, qword [rsi]
inc rax
cmp rax, 2
jb 0x1400e2ebb
call fcn.1400412c0
mov rdi, qword [rsi]
mov rcx, qword [0x14035abe0]
test rcx, rcx
je 0x1400e3159
mov rax, qword [rcx]
mov rax, qword [rax]
mov rdx, rdi
call qword [case.0x140211850.0]
mov qword [rsi], 0
call fcn.14016ed94
mov ebp, dword [rax]
call fcn.14016ed94
mov dword [rax], 0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rbx, qword [0x14035aab0]
cmp rbx, 1
jbe 0x1400e3177
mov r14, qword [rsp + 0x58]
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400e31c5
mov rcx, qword [rbx]
shl rcx, 4
mov qword [rax + rcx], r14
mov ecx, dword [rbx + 8]
mov rdx, qword [rbx]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov r14, qword [rsp + 0x50]
test r14, r14
je 0x1400e2f38
cmp qword [rsp + 0x58], 0
je 0x1400e304b
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.14016ed94
mov dword [rax], ebp
cmp byte [rsp + 0x88], 0
je 0x1400e2f6a
mov rdi, qword [rsp + 0x98]
test rdi, rdi
jne 0x1400e30b3
mov byte [rsp + 0x88], 0
mov rax, qword [rsp + 0x68]
test rax, rax
jne 0x1400e31e9
mov rdi, qword [rsp + 0x78]
mov qword [rsp + 0x78], 0
test rdi, rdi
jne 0x1400e324f
mov rax, qword [rsp + 0x68]
test rax, rax
jne 0x1400e3264
xor ecx, ecx
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x1400e327e
mov qword [rsp + 0x68], 0
mov rcx, qword [rsp + 0x58]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x1400e3288
mov qword [rsp + 0x58], 0
mov rcx, qword [rsp + 0x50]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
jne 0x1400e2ddb
call fcn.1401571d0
jmp 0x1400e2ddb
mov rcx, qword [rsi + 8]
call fcn.14016eccc
jmp 0x1400e2de5
call fcn.1400412c0
mov rdi, qword [rsi]
mov rcx, qword [0x14035abe0]
test rcx, rcx
je 0x1400e3148
mov rax, qword [rcx]
mov rax, qword [rax]
mov rdx, rdi
call qword [case.0x140211850.0]
mov qword [rsi], 0
jmp 0x1400e2df5
mov rbx, qword [r14 + 0x28]
add rbx, 0x28
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400e316a
mov qword [r14 + 0x20], 0
cmp byte [r14 + 0x3a], 0
jne 0x1400e309e
cmp byte [r14 + 0x38], 0
mov rcx, qword [r14 + 0x28]
jne 0x1400e31d8
dec dword [rcx + 0x120]
cmp byte [r14 + 0x18], 0
je 0x1400e3292
cmp byte [r14 + 0x19], 0
je 0x1400e312e
mov word [r14 + 0x38], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400e2f38
mov rax, qword [fcn.14007a620]
lea rbx, [rsp + 0x48]
mov rcx, rbx
call qword [case.0x140211850.0]
mov r15, qword [rsp + 0x90]
mov rdx, qword [rbx]
xor eax, eax
cmp rdx, r15
setns al
movabs r12, 0x7fffffffffffffff
add rax, r12
mov r14, rdx
sub r14, r15
cmovo r14, rax
cmp r14, 0xf4240
jge 0x1400e3294
mov rdi, qword [rsp + 0x98]
test rdi, rdi
je 0x1400e2f62
lock dec dword [rdi]
jne 0x1400e2f62
mov rcx, rdi
call fcn.14011feb0
mov rcx, rdi
call fcn.14016eccc
jmp 0x1400e2f62
cmp byte [r14 + 0x39], 0
mov rcx, qword [r14 + 0x28]
jne 0x1400e3323
dec dword [rcx + 0x124]
jmp 0x1400e309e
call fcn.1400bf420
mov rcx, qword [0x14035abe0]
jmp 0x1400e3030
call fcn.1400bf420
mov rcx, qword [0x14035abe0]
jmp 0x1400e2ea5
mov rcx, rbx
call fcn.140047ff0
jmp 0x1400e3064
lea rcx, [0x14035aab0]
call fcn.14006d330
test al, al
je 0x1400e3334
xorpd xmm0, xmm0
movupd xmmword [0x14035aab8], xmm0
lea r14, [0x14035aab0]
lea rbx, [0x14035aab8]
mov rcx, rbx
xor edx, edx
call fcn.140041af0
mov rcx, r14
mov rdx, rbx
xor r8d, r8d
mov r9, r14
call fcn.14006d410
jmp 0x1400e2eee
test r14, r14
je 0x1400e2f22
call fcn.140001120
jmp 0x1400e2f09
dec qword [rcx + 0x100]
call fcn.140131b40
jmp 0x1400e3088
mov ecx, dword [rsp + 0x70]
cmp dword [rax + 0x18], ecx
jbe 0x1400e2f78
mov rax, qword [rax + 0x10]
shl rcx, 7
cmp dword [rax + rcx + 0x68], 0
je 0x1400e2f78
mov rbx, qword [0x140352ad8]
lea rdi, [rbx + 0xc8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x1400e322c
mov rcx, rdi
call fcn.140047ff0
mov rcx, qword [rsp + 0x68]
sub rbx, 0xffffffffffffff80
mov edx, dword [rsp + 0x70]
mov r8, rbx
call fcn.1402081c0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400e2f78
mov rcx, rdi
call fcn.1402077d0
mov rcx, rdi
call fcn.14016eccc
jmp 0x1400e2f8f
mov rcx, qword [rax + 8]
lock dec dword [rcx + 0x38]
mov rax, qword [rax + 8]
lock inc dword [rax + 0x3c]
mov rcx, qword [rsp + 0x68]
jmp 0x1400e2f9f
call fcn.1401571d0
jmp 0x1400e2fb6
call fcn.1401571d0
jmp 0x1400e2fdb
ud2
mov rax, qword [rdi + 0x1f0]
mov ecx, 0x3938700
lea r8, [rcx + rax]
sar r8, 0x3f
btc r8, 0x3f
add rcx, rax
cmovo rcx, r8
cmp rcx, rdx
jg 0x1400e32e3
lea rbx, [rsp + 0x28]
mov rcx, rbx
call fcn.140131030
mov rbx, qword [rbx]
test rbx, rbx
je 0x1400e32e3
lock dec dword [rbx]
jne 0x1400e32e3
mov rcx, rbx
call fcn.14011feb0
mov rcx, rbx
call fcn.14016eccc
mov rax, qword [rdi + 0x1f0]
xor ecx, ecx
cmp r15, rax
setns cl
add rcx, r12
sub r15, rax
movabs r12, 0x8000000000000001
cmovo r15, rcx
lea rax, [r15 + r12]
cmp rax, 2
jae 0x1400e3340
shr r15, 0x3f
lea rax, [0x140308b10]
movsd xmm0, qword [rax + r15*8]
jmp 0x1400e3345
dec qword [rcx + 0x108]
call fcn.140131b40
jmp 0x1400e309e
mov rbx, qword [0x14035aab0]
jmp 0x1400e2eee
cvtsi2sd xmm0, r15
divsd xmm0, qword [0x140308b20]
call fcn.1401ae0e0
movsd xmm6, qword [0x1402eea60]
ucomisd xmm6, xmm0
jae 0x1400e3374
xor eax, eax
ucomisd xmm0, qword [0x1402eea78]
mov ebx, 0x7fffffff
cmovb ebx, eax
jmp 0x1400e3380
maxsd xmm0, qword [0x1402eea78]
cvttsd2si ebx, xmm0
add r12, r14
cmp r12, 2
jb 0x1400e339b
xorps xmm0, xmm0
cvtsi2sd xmm0, r14
divsd xmm0, qword [0x140308b20]
jmp 0x1400e33a3
movsd xmm0, qword [0x140308b28]
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jae 0x1400e33bc
addsd xmm0, qword [0x1402eea68]
call fcn.1401adce4
jmp 0x1400e33c9
addsd xmm0, qword [0x1402ee600]
call fcn.1401ae0e0
ucomisd xmm6, xmm0
jae 0x1400e33e5
xor eax, eax
ucomisd xmm0, qword [0x1402eea78]
mov r8d, 0x7fffffff
cmovb r8d, eax
jmp 0x1400e33f2
maxsd xmm0, qword [0x1402eea78]
cvttsd2si r8d, xmm0
mov rcx, rdi
mov edx, ebx
call fcn.140225e50
jmp 0x1400e30ff