Function at 0x1400717e0
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
movaps xmmword [rsp + 0x40], xmm6
mov rsi, rcx
mov rax, qword [0x140162028]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov ecx, dword [0x140163d10]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14007185a
movsxd rcx, dword [rsi + 0x300]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rsi + 0x304]
jne 0x14007185a
cmp qword [rax + rcx], 0
je 0x14007185a
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1400f0560
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400d5620
test al, al
je 0x140071837
call fcn.14006edd0
test al, al
je 0x140071837
mov eax, dword [0x14016a360]
test eax, eax
jne 0x140071d0d
mov ecx, dword [0x140163d10]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400718fe
movsxd rcx, dword [rsi + 0x2f8]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rsi + 0x2fc]
jne 0x1400718fe
mov rdi, qword [rax + rcx]
test rdi, rdi
je 0x1400718fe
mov rax, qword [rsi + 0x368]
cmp dword [rdi + 0x28], eax
jne 0x1400718ee
mov eax, dword [0x14016a360]
test eax, eax
je 0x140071837
mov eax, dword [0x14016a360]
test eax, eax
je 0x140071837
call fcn.1400d97c0
mov ecx, dword [rax + 0x38]
test ecx, ecx
je 0x140071837
dec ecx
mov dword [rax + 0x38], ecx
jmp 0x140071837
mov rcx, rdi
call fcn.14006f690
mov rcx, rdi
call fcn.1400ef7cc
mov ecx, 0x30
call fcn.1400ef770
mov r12, rax
lea rdi, [rax + 8]
lea rax, [0x140131038]
mov qword [r12], rax
lea rax, str.p__a_
mov qword [r12 + 8], rax
mov qword [r12 + 0x10], rsi
xorps xmm0, xmm0
movups xmmword [r12 + 0x18], xmm0
mov rax, qword [rsi + 0x368]
mov dword [r12 + 0x28], eax
lea rbp, [rsp + 0x30]
mov rcx, rbp
call fcn.1400d5580
mov rcx, rbp
mov rdx, r12
call fcn.1400d56b0
call fcn.1400d56d0
mov rbx, rax
call fcn.14006ed40
mov rax, qword [rax]
mov qword [rbp], rax
test rax, rax
je 0x140071975
lock inc dword [rax + 8]
lea r8, str.ThreadLocalEventBuffer
lea r9, [rsp + 0x30]
mov rcx, rbx
mov rdx, rdi
call fcn.1400d5820
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ebp, eax
lea rcx, [rsi + 8]
mov qword [rsp + 0x28], rcx
call fcn.14007ae30
call fcn.14006ed40
mov r14, qword [rax]
test r14, r14
je 0x1400719b4
lock inc dword [r14 + 8]
lea rax, [rsi + 0x310]
mov qword [rsp + 0x20], rax
movsxd r13, ebp
mov r15, qword [rsi + 0x318]
test r15, r15
je 0x140071a97
mov rax, r15
shr rax, 1
movabs rcx, 0x5555555555555555
and rcx, rax
mov rax, r15
sub rax, rcx
movabs rcx, 0x3333333333333333
mov rdx, rax
and rdx, rcx
shr rax, 2
and rax, rcx
add rax, rdx
mov rcx, rax
shr rcx, 4
add rcx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rax, rcx
movabs rcx, 0x101010101010101
imul rcx, rax
shr rcx, 0x38
cmp rcx, 1
jbe 0x140071cad
mov rdi, r13
cmp r15, r13
ja 0x140071a4c
mov rax, r13
xor edx, edx
div r15
mov rdi, rdx
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
mov rbx, qword [rax + rdi*8]
test rbx, rbx
je 0x140071a97
lea r8, [r15 - 1]
mov rbx, qword [rbx]
test rbx, rbx
je 0x140071a97
mov rax, qword [rbx + 8]
cmp rax, r13
je 0x140071a8d
cmp ecx, 1
jbe 0x140071cb9
cmp rax, r15
jb 0x140071a88
xor edx, edx
div r15
mov rax, rdx
cmp rax, rdi
jne 0x140071a97
cmp dword [rbx + 0x10], ebp
jne 0x140071a61
jmp 0x140071b93
mov ecx, 0x20
call fcn.1400ef770
mov rbx, rax
mov dword [rax + 0x10], r13d
xor eax, eax
mov qword [rbx + 0x18], rax
mov qword [rbx + 8], r13
mov qword [rbx], rax
mov rax, qword [rsi + 0x328]
inc rax
js 0x140071acb
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
jmp 0x140071ae3
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rcx, r15
shr rcx, 1
mov eax, r15d
and eax, 1
or rax, rcx
test r15, r15
js 0x140071afe
cvtsi2ss xmm1, r15
jmp 0x140071b07
cvtsi2ss xmm1, rax
addss xmm1, xmm1
movss xmm2, dword [rsi + 0x330]
je 0x140071bf4
mulss xmm1, xmm2
ucomiss xmm0, xmm1
ja 0x140071bf4
mov rax, qword [rsp + 0x20]
mov rcx, qword [rax]
mov rax, qword [rcx + rdi*8]
test rax, rax
jne 0x140071b83
lea rax, [rsi + 0x320]
mov rdx, qword [rsi + 0x320]
mov qword [rbx], rdx
mov qword [rsi + 0x320], rbx
mov qword [rcx + rdi*8], rax
mov rax, qword [rbx]
test rax, rax
je 0x140071b8c
mov rax, qword [rax + 8]
lea rcx, [r15 - 1]
test r15, rcx
je 0x140071cc9
cmp rax, r15
jb 0x140071b75
xor edx, edx
div r15
mov rax, rdx
shl rax, 3
mov rcx, qword [rsp + 0x20]
add rax, qword [rcx]
jmp 0x140071b89
mov rcx, qword [rax]
mov qword [rbx], rcx
mov qword [rax], rbx
inc qword [rsi + 0x328]
mov rcx, qword [rbx + 0x18]
mov qword [rbx + 0x18], r14
test rcx, rcx
je 0x140071baa
lock dec dword [rcx + 8]
je 0x140071cd1
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, dword [0x140163d10]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140071ce3
movsxd rcx, dword [rsi + 0x2f8]
shl rcx, 4
mov qword [rax + rcx], r12
mov ecx, dword [rsi + 0x2fc]
movsxd rdx, dword [rsi + 0x2f8]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
jmp 0x1400718b8
divss xmm0, xmm2
call fcn.14011e8c0
cvttss2si rax, xmm0
movss xmm6, dword [0x140124628]
movaps xmm1, xmm0
subss xmm1, xmm6
cvttss2si rcx, xmm1
btc rcx, 0x3f
ucomiss xmm0, xmm6
cmovb rcx, rax
cmp r15, 3
setb al
lea rdx, [r15 - 1]
test r15, rdx
setne dl
or dl, al
movzx eax, dl
lea rax, [rax + r15*2]
cmp rax, rcx
cmovae rcx, rax
mov edi, 2
cmp rcx, 1
je 0x140071c6a
lea rax, [rcx - 1]
test rcx, rax
je 0x140071ced
call fcn.14003a258
mov rdi, rax
mov r15, qword [rsi + 0x318]
cmp rdi, r15
jbe 0x140071cf5
mov rcx, qword [rsp + 0x20]
mov rdx, rdi
call fcn.140073ed0
mov r15, qword [rsi + 0x318]
lea rdi, [r15 - 1]
test r15, rdi
je 0x140071cc1
cmp r15, r13
ja 0x140071ca5
mov rax, r13
xor edx, edx
div r15
mov rdi, rdx
jmp 0x140071b22
mov rdi, r13
jmp 0x140071b22
lea rdi, [r15 - 1]
and rdi, r13
jmp 0x140071a4c
and rax, r8
jmp 0x140071a88
and rdi, r13
jmp 0x140071b22
and rax, rcx
jmp 0x140071b75
add rcx, 8
add rcx, 0xfffffffffffffff8
call fcn.14006e470
jmp 0x140071baa
call fcn.14006e9c0
jmp 0x140071bcb
mov rdi, rcx
jmp 0x140071c6a
jae 0x140071c80
mov rax, qword [rsi + 0x328]
test rax, rax
js 0x140071d28
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
jmp 0x140071d40
mov eax, dword [0x14016a360]
test eax, eax
je 0x14007187a
call fcn.1400d97c0
inc dword [rax + 0x38]
jmp 0x14007187a
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm0, dword [rsi + 0x330]
call fcn.14011e8c0
cvttss2si rcx, xmm0
movaps xmm1, xmm0
subss xmm1, xmm6
cvttss2si rax, xmm1
btc rax, 0x3f
ucomiss xmm0, xmm6
cmovb rax, rcx
cmp r15, 3
jb 0x140071ded
mov rcx, r15
shr rcx, 1
movabs rdx, 0x5555555555555555
and rdx, rcx
mov rbp, r15
sub rbp, rdx
movabs rdx, 0x3333333333333333
mov rcx, rbp
shr rcx, 2
and rbp, rdx
and rcx, rdx
add rcx, rbp
mov rdx, rcx
shr rdx, 4
add rdx, rcx
movabs rcx, 0xf0f0f0f0f0f0f0f
and rcx, rdx
movabs rdx, 0x101010101010101
imul rdx, rcx
shr rdx, 0x38
cmp edx, 1
ja 0x140071ded
cmp rax, 2
jb 0x140071df5
dec rax
bsr rcx, rax
xor ecx, 0x3f
neg cl
mov eax, 1
shl rax, cl
jmp 0x140071df5
mov rcx, rax
call fcn.14003a258
cmp rdi, rax
cmovb rdi, rax
cmp rdi, r15
jb 0x140071c73
jmp 0x140071c80