Function at 0x1401365b0
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, 0xa8
mov rbp, rdx
mov rax, qword [0x14016e028]
xor rax, rsp
mov qword [rsp + 0xa0], rax
lea rax, [rcx + 0xc000]
mov r9, 0xffffffffffe00000
mov rdx, rax
and rdx, r9
shr rax, 9
mov edi, 0xfe0
and rax, rdi
lea r12, [rdx + rax]
mov esi, 0x1000
or r12, rsi
movzx eax, word [rdx + rax + 0x101e]
shl rax, 5
sub r12, rax
add rcx, 0x1f8000
mov rax, rcx
and rax, r9
shr rcx, 9
and rcx, rdi
lea r10, [rax + rcx]
or r10, rsi
movzx eax, word [rax + rcx + 0x101e]
shl rax, 5
sub r10, rax
cmp r12, r10
jbe 0x14013666b
xor edi, edi
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.14007d5a0
mov rax, rdi
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movabs r11, 0xaaaaaaaaaaaaaaa
lea rax, [rbp + 0x10]
mov qword [rsp + 0x78], rax
lea r8, [rbp + 0x28]
xor edi, edi
movabs r14, 0xaaaaaaaaaaaaaaab
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], r10
mov rax, qword [r12 + 0x10]
test rax, rax
je 0x140136644
cmp word [r12 + 0x18], 0
je 0x14013671f
mov rcx, r12
and rcx, r9
mov r13d, r12d
shl r13d, 9
and r13d, 0x3ffffe00
add r13, r9
and r13, 0xffffffffffffc000
add r13, rcx
mov ebx, dword [rax + 0x18]
mov eax, dword [rax + 0x1c]
movzx eax, al
shl eax, 0xc
xor edx, edx
div ebx
movzx r15d, ax
movzx eax, word [r12 + 0x1a]
sub r15, rax
imul r15, rbx
and r15, 0xfffffffffffffff8
add r15, r13
cmp rbx, 0x2000
jb 0x140136723
mov rsi, qword [rbp + 0x30]
mov rax, qword [rbp + 0x38]
cmp rsi, rax
jae 0x140136782
mov qword [rsi], r13
mov qword [rsi + 8], r15
mov qword [rsi + 0x10], rbx
add rsi, 0x18
mov qword [rbp + 0x30], rsi
jmp 0x140136756
xor esi, esi
jmp 0x14013675b
mov qword [rsp + 0x90], r13
mov qword [rsp + 0x98], r15
mov rax, qword [rbp + 0x18]
cmp rax, qword [rbp + 0x20]
jae 0x140136877
movdqu xmm0, xmmword [rsp + 0x90]
movdqu xmmword [rax], xmm0
add rax, 0x10
mov qword [rbp + 0x18], rax
mov esi, 1
add rdi, rsi
mov rax, qword [r12 + 0x10]
movzx eax, byte [rax + 0x1c]
lea eax, [rax*8 + 0x18]
and eax, 0xffffffe0
add r12, rax
cmp r12, r10
jbe 0x140136698
jmp 0x140136644
mov rdx, qword [r8]
sub rsi, rdx
sar rsi, 3
imul rsi, r14
lea rcx, [rsi + 1]
cmp rcx, r11
ja 0x140137064
sub rax, rdx
sar rax, 3
imul rax, r14
lea rdx, [rax + rax]
cmp rdx, rcx
cmovb rdx, rcx
movabs rcx, 0x555555555555555
cmp rax, rcx
cmovae rdx, r11
test rdx, rdx
jne 0x1401368af
mov rax, r8
xor ecx, ecx
lea r14, [rsi + rsi*2]
lea rsi, [rcx + r14*8]
mov qword [rsi], r13
mov qword [rsi + 8], r15
mov qword [rsi + 0x10], rbx
mov r15, qword [rbp + 0x28]
mov r8, qword [rbp + 0x30]
sub r8, r15
sub rsi, r8
test r8, r8
jle 0x140136872
mov r13, rdi
mov rdi, rcx
mov rcx, rsi
mov rbp, rdx
mov rdx, r15
mov rbx, rax
call fcn.14007f530
mov rcx, rdi
mov rdi, r13
mov rdx, rbp
movabs r11, 0xaaaaaaaaaaaaaaa
mov r8, rbx
mov r10, qword [rsp + 0x30]
mov r9, 0xffffffffffe00000
mov rbp, qword [rsp + 0x38]
mov r15, qword [rbx]
lea rax, [rdx + rdx*2]
lea rax, [rcx + rax*8]
lea rcx, [rcx + r14*8]
add rcx, 0x18
mov qword [rbp + 0x28], rsi
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x38], rax
mov esi, 1
test r15, r15
jne 0x140136a3c
movabs r14, 0xaaaaaaaaaaaaaaab
jmp 0x14013675b
mov r8, rax
jmp 0x140136839
mov rcx, qword [rsp + 0x78]
lea rdx, [rsp + 0x90]
mov rsi, r8
call fcn.140137190
movabs r11, 0xaaaaaaaaaaaaaaa
mov r8, rsi
mov r10, qword [rsp + 0x30]
mov r9, 0xffffffffffe00000
mov rbp, qword [rsp + 0x38]
jmp 0x140136756
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x40], rdx
call fcn.140133a80
mov rax, qword [rsp + 0x40]
lea rax, [rax*8]
lea rbx, [rax + rax*2]
test rbx, rbx
je 0x140136b9d
bsr rax, rbx
xor rax, 0x3f
mov edx, 0x40
sub rdx, rax
lea rax, [0x140149270]
mov cl, byte [rdx + rax]
mov rax, rbx
shr rax, cl
and eax, 7
lea rcx, [0x1401492c0]
mov rcx, qword [rcx + rdx*8]
and rcx, rbx
lea rax, [rax + rdx*8]
cmp rcx, 1
sbb rax, 0xffffffffffffffff
lea rcx, [0x1401494c8]
movzx r14d, word [rcx + rax*2 + 0x400]
mov byte [rsp + 0x90], 0
cmp byte [0x140172d92], 0
mov qword [rsp + 0x70], rbx
je 0x140136bcf
mov eax, dword [0x1401797f8]
mov dword [rsp + 0x28], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov ecx, dword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test ebp, ebp
jne 0x140136baf
cmp rax, 1
mov qword [rsp + 0x50], r14
jbe 0x140136cca
inc qword [rax + 0x298]
cmp r14w, 0x29
mov rbp, qword [rsp + 0x38]
mov r9, 0xffffffffffe00000
mov r10, qword [rsp + 0x30]
movabs r11, 0xaaaaaaaaaaaaaaa
mov rbx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x40]
jae 0x140136d9b
mov r8, r14
mov rcx, r14
shl rcx, 4
mov r14, rax
add r14, rcx
mov qword [rsp + 0x28], rcx
cmp qword [rax + rcx], 0
mov qword [rsp + 0x68], r14
je 0x140136e66
inc qword [rax + 0x2a0]
mov rcx, qword [r14]
mov r8, qword [rcx]
test r8, r8
je 0x140136ba7
mov qword [rsp + 0x60], rax
mov r14, rdi
mov rdi, rcx
mov rcx, r8
not rcx
cmp qword [rdi + 8], rcx
mov rcx, rdi
mov rdi, r14
mov rax, qword [rsp + 0x60]
jne 0x140137016
bswap r8
mov r14, qword [rsp + 0x28]
dec byte [rax + r14 + 8]
mov rax, qword [rsp + 0x68]
mov qword [rax], r8
test rcx, rcx
mov rax, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
jne 0x1401367d2
jmp 0x140136da9
mov qword [rsp + 0x48], r8
call fcn.140133a80
mov rax, r15
and rax, 0xffffffffffe00000
mov rcx, r15
shr rcx, 9
and ecx, 0xfe0
lea r8, [rax + rcx]
add r8, 0x1000
movzx ecx, word [r8 + 0x1e]
mov rbx, rcx
neg rbx
shl rcx, 5
mov rdx, r8
sub rdx, rcx
mov qword [rsp + 0x28], rdx
mov rcx, rdx
and rcx, 0xfffffffffffff000
mov rcx, qword [rcx]
cmp byte [rcx], 2
je 0x140136c29
cmp byte [rcx + 2], 0
mov qword [rsp + 0x50], rbx
je 0x140136ed1
mov rax, rbx
shl rax, 5
mov r13, qword [r8 + rax + 0x10]
cmp byte [r13 + 0x1c], 0
je 0x140136ed1
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x40], rcx
mov ebp, dword [0x1401797f8]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r14, rax
test ebx, ebx
jne 0x140136bc2
cmp r14, 2
mov rcx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x58]
jb 0x140136ed1
sub r13, rcx
add r13, 0xfffffffffffffff0
sar r13, 3
movabs rax, 0xcccccccccccccccd
imul r13, rax
inc qword [r14 + 0x2c0]
cmp r13, 0x28
mov rbp, qword [rsp + 0x38]
mov r9, 0xffffffffffe00000
mov r10, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x48]
movabs r11, 0xaaaaaaaaaaaaaaa
ja 0x140136eca
shl r13, 4
mov rax, qword [r14 + r13]
bswap rax
mov qword [r15], rax
not rax
mov qword [r15 + 8], rax
mov qword [r14 + r13], r15
inc byte [r14 + r13 + 8]
inc qword [r14 + 0x2c8]
movzx r8d, byte [r14 + r13 + 9]
cmp byte [r14 + r13 + 8], r8b
jae 0x140136fac
mov al, byte [r14 + 0x290]
test al, 1
jne 0x140136fe2
movabs r14, 0xaaaaaaaaaaaaaaab
mov r8, rdx
jmp 0x14013675b
mov eax, 0x40
jmp 0x1401368e5
xor r8d, r8d
jmp 0x140136a0f
mov ecx, ebp
mov rbp, rax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, rbp
jmp 0x140136968
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140136ae8
lea rax, [r14 + r14*4]
lea rcx, [0x140172d90]
lea rbx, [rcx + rax*8]
add rbx, 0x10
mov ebp, 1
xor r14d, r14d
lea rcx, [0x140172d98]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x140136dd9
mov eax, ebp
test ebp, ebp
jle 0x140136c0e
pause
dec eax
jne 0x140136c05
add r14d, ebp
add ebp, ebp
cmp ebp, 0x40
mov eax, 0x40
cmovge ebp, eax
cmp r14d, 0x3e8
jl 0x140136bea
jmp 0x140137095
mov rbp, rbx
shl rbp, 5
mov rdx, qword [r8 + rbp + 0x10]
cmp byte [rdx + 0x1c], 0
je 0x140136a97
lea rdx, [r8 + rbp]
add rdx, 0x10
mov rbp, qword [0x14016eea8]
and ebp, 1
shl rbp, 0xe
add rbp, rax
mov rcx, r15
shr rcx, 4
shr r15, 7
and r15d, 0x3ff8
mov eax, 1
shl rax, cl
lock or qword [r15 + rbp + 0x4000], rax
mov rax, qword [rdx]
mov eax, dword [rax + 0x18]
mov rcx, rax
lock xadd qword [0x14016ee98], rcx
mov esi, 1
add rcx, rax
mov rax, qword [0x14016eea0]
cmp rcx, rax
ja 0x1401370fe
mov rbp, qword [rsp + 0x38]
mov r9, 0xffffffffffe00000
mov r10, qword [rsp + 0x30]
mov r8, qword [rsp + 0x48]
movabs r11, 0xaaaaaaaaaaaaaaa
jmp 0x140136863
je 0x140136da9
mov qword [rsp + 0x60], rdi
mov byte [0x140172d92], 0
lea rcx, [0x140172d90]
call fcn.140008e70
mov rbx, rax
mov byte [0x140172d92], 1
inc qword [rax + 0x298]
cmp r14w, 0x29
jae 0x140137122
mov rbp, qword [rsp + 0x50]
shl rbp, 4
mov rax, rbx
add rax, rbp
mov qword [rsp + 0x68], rax
cmp qword [rbx + rbp], 0
je 0x14013713f
inc qword [rbx + 0x2a0]
mov rax, qword [rsp + 0x68]
mov rax, qword [rax]
mov qword [rsp + 0x28], rax
mov rax, qword [rax]
test rax, rax
je 0x14013701b
mov rcx, rax
not rcx
mov rdx, qword [rsp + 0x28]
cmp qword [rdx + 8], rcx
jne 0x140137016
bswap rax
dec byte [rbx + rbp + 8]
mov rcx, qword [rsp + 0x68]
mov qword [rcx], rax
mov rbp, qword [rsp + 0x38]
mov r9, 0xffffffffffe00000
mov r10, qword [rsp + 0x30]
movabs r11, 0xaaaaaaaaaaaaaaa
mov rbx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x60]
jmp 0x140136a24
inc qword [rax + 0x2b8]
inc qword [rax + 0x2a8]
lea rax, [r14 + r14*4]
lea rcx, [0x140172d90]
lea rbx, [rcx + rax*8]
add rbx, 0x10
mov ebp, 1
xor r14d, r14d
lea rcx, [0x140172d98]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14013706c
mov rax, qword [rbx]
mov rcx, qword [rax]
mov qword [rsp + 0x28], rcx
test rcx, rcx
je 0x1401370d0
mov byte [rsp + 0x90], 0
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx]
test rcx, rcx
je 0x14013700f
mov rdx, rcx
not rdx
mov rbp, qword [rsp + 0x28]
cmp qword [rbp + 8], rdx
jne 0x140137016
bswap rcx
mov qword [rax], rcx
inc word [rax + 0x18]
lea rcx, [0x140172d98]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rbp, qword [rsp + 0x38]
mov r9, 0xffffffffffe00000
mov r10, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
movabs r11, 0xaaaaaaaaaaaaaaa
mov rbx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x28]
jmp 0x1401367d2
movdqu xmm0, xmmword [rax + 0x2a8]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [rax + 0x2a8], xmm0
mov rcx, rax
mov rdx, r8
mov rbx, rax
call fcn.14003aca0
mov rax, rbx
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x58]
movabs r11, 0xaaaaaaaaaaaaaaa
mov r10, qword [rsp + 0x30]
mov r9, 0xffffffffffe00000
mov rbp, qword [rsp + 0x38]
mov rcx, qword [r14]
mov r14, qword [rsp + 0x50]
test rcx, rcx
jne 0x1401369dd
jmp 0x140136da9
inc qword [r14 + 0x2d0]
mov r13, r8
add rcx, 8
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x90], xmm0
mov ebp, 1
mov dword [rsp + 0x40], 0
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
movabs r14, 0xaaaaaaaaaaaaaaab
je 0x140137022
mov rbp, qword [rsp + 0x28]
mov rax, qword [rbp]
cmp rax, r15
mov rcx, qword [rsp + 0x50]
je 0x140137182
bswap rax
mov qword [r15], rax
not rax
mov qword [r15 + 8], rax
mov qword [rbp], r15
shl rcx, 5
movzx eax, word [r13 + rcx + 0x18]
dec eax
mov word [r13 + rcx + 0x18], ax
test ax, ax
jle 0x1401370a6
mov rcx, rbx
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x80], xmm0
movdqa xmm0, xmmword [rsp + 0x80]
movdqa xmmword [rsp + 0x90], xmm0
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [rsp + 0x90], 0
jne 0x1401370be
mov rbp, qword [rsp + 0x38]
mov r9, 0xffffffffffe00000
mov r10, qword [rsp + 0x30]
mov r8, qword [rsp + 0x48]
movabs r11, 0xaaaaaaaaaaaaaaa
jmp 0x14013675b
mov rdx, r14
add rdx, r13
shr r8, 1
mov rcx, r14
call fcn.140007210
movabs r11, 0xaaaaaaaaaaaaaaa
mov rdx, qword [rsp + 0x48]
mov r10, qword [rsp + 0x30]
mov r9, 0xffffffffffe00000
mov rbp, qword [rsp + 0x38]
jmp 0x140136b7c
mov rcx, r14
call fcn.1400498e0
movabs r11, 0xaaaaaaaaaaaaaaa
mov r8, qword [rsp + 0x48]
mov r10, qword [rsp + 0x30]
mov r9, 0xffffffffffe00000
mov rbp, qword [rsp + 0x38]
jmp 0x140136863
xor ecx, ecx
jmp 0x140136e1b
call fcn.1400a8470
xor eax, eax
jmp 0x140136d58
mov eax, ebp
test ebp, ebp
jle 0x140137032
pause
dec eax
jne 0x140137028
add dword [rsp + 0x40], ebp
add ebp, ebp
cmp ebp, 0x40
mov eax, 0x40
cmovge ebp, eax
cmp dword [rsp + 0x40], 0x3e8
mov rcx, rbx
jl 0x140136ef2
call sub.KERNEL32.dll_AcquireSRWLockExclusive
movabs r14, 0xaaaaaaaaaaaaaaab
jmp 0x140136f0d
mov rcx, r8
call fcn.1400da03c
mov eax, ebp
test ebp, ebp
jle 0x14013707b
pause
dec eax
jne 0x140137072
add r14d, ebp
add ebp, ebp
cmp ebp, 0x40
mov eax, 0x40
cmovge ebp, eax
cmp r14d, 0x3e8
jl 0x140136dc4
lea rcx, [0x140172d98]
call sub.KERNEL32.dll_AcquireSRWLockExclusive
jmp 0x140136dd9
lea rdx, [rsp + 0x80]
mov rcx, rbp
call fcn.140030860
mov rcx, rbx
jmp 0x140136f60
lea rcx, [rsp + 0x90]
call fcn.1400ae770
jmp 0x140136f87
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
lea rdx, [0x140172d90]
mov rcx, rbx
xor r8d, r8d
mov r9, qword [rsp + 0x70]
call fcn.140002610
mov qword [rsp + 0x28], rax
jmp 0x140136e25
mov al, byte [0x14016eeb8]
test al, 1
jne 0x140136ca5
lea rcx, [0x14016ee08]
mov edx, 1
call fcn.140133290
jmp 0x140136ca5
inc qword [rbx + 0x2b8]
inc qword [rbx + 0x2a8]
mov rdi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x50]
jmp 0x140136da9
movdqu xmm0, xmmword [rbx + 0x2a8]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [rbx + 0x2a8], xmm0
mov rcx, rbx
mov r14, qword [rsp + 0x50]
mov rdx, r14
call fcn.14003aca0
mov rax, qword [rsp + 0x68]
mov rax, qword [rax]
test rax, rax
mov rdi, qword [rsp + 0x60]
jne 0x140136d32
jmp 0x140136da9
int3