Function at 0x140063e20
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x30
mov rsi, rcx
mov rax, qword [0x140287028]
xor rax, rsp
mov qword [rsp + 0x28], rax
lea rax, [0x14025dcf8]
mov qword [rcx], rax
lea rax, [0x14025eda0]
mov qword [rcx + 8], rax
mov eax, dword [0x1402a1940]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400641e8
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140064236
mov rcx, qword [0x1402a1930]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1402a1938]
jne 0x140064236
mov rdi, qword [rax + rcx]
mov rax, qword [0x14028a5a0]
and rax, rdi
cmp rax, qword [0x14028a588]
je 0x140064164
lea rbx, [rsi + 8]
lea rcx, [rdi + 0x468]
mov rdx, rsi
call fcn.14002d7a0
mov rax, qword [0x14028a5a0]
and rax, rdi
cmp rax, qword [0x14028a588]
je 0x140064171
call fcn.140044090
mov rcx, rax
mov rdx, rbx
xor r8d, r8d
call fcn.140146d80
mov rdi, qword [rsi + 0x10]
add rdi, 8
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14006423d
mov rax, qword [rsi + 0x18]
test rax, rax
jne 0x14006424a
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov r9, qword [rsi + 0x10]
mov r10, qword [r9 + 0x348]
test r10, r10
je 0x14006406c
mov ecx, eax
mov rax, r10
shr rax, 1
movabs rdx, 0x5555555555555555
and rdx, rax
mov rax, r10
sub rax, rdx
movabs rdx, 0x3333333333333333
mov r8, rax
and r8, rdx
shr rax, 2
and rax, rdx
add rax, r8
mov rdx, rax
shr rdx, 4
add rdx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rax, rdx
movabs r11, 0x101010101010101
imul r11, rax
shr r11, 0x38
cmp r11, 1
ja 0x140064109
lea eax, [r10 - 1]
mov r8d, ecx
and r8d, eax
mov r15, qword [r9 + 0x340]
mov rax, qword [r15 + r8*8]
test rax, rax
je 0x14006406c
mov rbx, qword [rax]
test rbx, rbx
je 0x14006406c
lea r14, [r10 - 1]
mov rax, qword [rbx + 8]
cmp rax, rcx
jne 0x140064287
cmp dword [rbx + 0x10], ecx
jne 0x140064299
mov r12, qword [rbx]
cmp r11d, 1
ja 0x140064125
and ecx, r14d
mov rax, qword [r15 + rcx*8]
mov r13, rax
mov rax, qword [rax]
cmp rax, rbx
jne 0x140064004
lea rax, [r9 + 0x350]
cmp r13, rax
jne 0x1400641bf
test r12, r12
jne 0x14006413e
mov qword [r15 + rcx*8], 0
mov r12, qword [rbx]
test r12, r12
jne 0x14006417e
xor r12d, r12d
mov qword [r13], r12
mov qword [rbx], 0
dec qword [r9 + 0x358]
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x140064064
lock dec dword [rcx + 8]
je 0x1400642aa
mov rcx, rbx
call fcn.140172a44
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rdi, qword [rsi + 0x10]
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400640b3
mov rcx, qword [rdi + 0x310]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [rdi + 0x318]
mov rdx, qword [rdi + 0x310]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rdi, qword [rsi + 0x18]
mov qword [rsi + 0x18], 0
test rdi, rdi
jne 0x1400642b4
mov rcx, qword [rsi + 0x10]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
je 0x1400642c9
mov qword [rsi + 0x10], 0
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.1401756e0
nop
add rsp, 0x30
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8, rcx
cmp r10, rcx
ja 0x140063fb6
mov rax, rcx
xor edx, edx
div r10
mov r8, rdx
jmp 0x140063fb6
cmp r10, rcx
ja 0x140064000
mov rax, rcx
xor edx, edx
div r10
mov rcx, rdx
jmp 0x140064000
mov r8, qword [r12 + 8]
mov rdx, r8
cmp r11d, 1
jbe 0x1400641b5
cmp r8, r10
jb 0x140064159
mov rax, r8
xor edx, edx
div r10
cmp rdx, rcx
jne 0x140064028
jmp 0x140064183
mov rcx, rdi
call fcn.1400eaf60
jmp 0x140063ec7
mov rcx, rdi
call fcn.1400ebe70
jmp 0x140063ef1
mov r8, qword [r12 + 8]
cmp r11d, 1
jbe 0x1400641ba
cmp r8, r10
jb 0x140064199
mov rax, r8
xor edx, edx
div r10
mov r8, rdx
cmp r8, rcx
je 0x14006403f
mov rax, qword [r9 + 0x340]
mov qword [rax + r8*8], r13
mov r12, qword [rbx]
jmp 0x14006403f
and rdx, r14
jmp 0x140064159
and r8, r14
jmp 0x140064199
mov rax, qword [r13 + 8]
cmp r11d, 1
jbe 0x1400642e2
cmp rax, r10
jb 0x1400641da
xor edx, edx
div r10
mov rax, rdx
cmp rax, rcx
jne 0x14006401f
jmp 0x140064033
lea rcx, [0x1402a1940]
call fcn.140172b08
cmp dword [0x1402a1940], 0xffffffff
jne 0x140063e7b
mov qword [0x1402a1938], 0
lea rcx, [0x1402a1930]
mov qword [0x1402a1930], 0xffffffffffffffff
xor edx, edx
call fcn.140002400
lea rcx, [0x1402a1940]
call fcn.140172aa8
jmp 0x140063e7b
xor edi, edi
jmp 0x140063eb0
mov rcx, rdi
call fcn.1400ec2e0
jmp 0x140063f1d
mov rcx, qword [rsi + 0x10]
mov edx, dword [rcx + 0x39c]
cmp edx, dword [rsi + 0x28]
jne 0x140063f2a
mov rcx, qword [rcx + 0x20]
mov qword [rsi + 0x18], 0
lea r8, [rsp + 0x20]
mov qword [r8], rax
mov rdx, qword [rsi + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x1401d7990.0]
jmp 0x140063f2a
cmp r11d, 1
ja 0x1400642d3
and rax, r14
cmp rax, r8
jne 0x14006406c
mov rbx, qword [rbx]
test rbx, rbx
jne 0x140063fda
jmp 0x14006406c
call fcn.14011cbd0
jmp 0x140064064
mov rcx, rdi
call fcn.1401e43c0
mov rcx, rdi
call fcn.140172a44
jmp 0x1400640c8
call fcn.1400ebe70
jmp 0x1400640e3
cmp rax, r10
jb 0x140064290
xor edx, edx
div r10
mov rax, rdx
jmp 0x140064290
and rax, r14
jmp 0x1400641da