Function at 0x140007580
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov byte [rcx + 0x2930], 1
mov r12, rcx
lea rbx, [rcx + 0x2110]
lea rsi, [rcx + 0x2910]
mov r11, qword [rbx]
test r11, r11
je 0x140007785
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], rbx
mov r15, qword [rsp + 0x28]
xor ebp, ebp
lea r13, [r15 + 0x10]
mov r14, r13
nop dword [rax]
mov rbx, qword [r14]
mov rsi, rbp
test rbx, rbx
jne 0x1400075fd
jmp 0x140007750
add rsi, 1
shr rbx, 1
je 0x140007750
test bl, 1
je 0x1400075f0
mov rcx, qword [r15 + 8]
shl rcx, 9
or rcx, rsi
mov rdx, rcx
sar rdx, 9
movzx eax, dl
mov rax, qword [r12 + rax*8 + 0x2110]
test rax, rax
jne 0x140007638
jmp 0x1400075f0
mov rax, qword [rax]
test rax, rax
je 0x1400075f0
cmp qword [rax + 8], rdx
jne 0x140007630
mov rdx, rcx
and edx, 0x1ff
mov r8, rdx
sar r8, 6
mov rax, qword [rax + r8*8 + 0x10]
bt rax, rdx
jae 0x1400075f0
shl rcx, 0xc
mov rdx, rcx
test byte [rcx], 1
je 0x1400075f0
mov r9, qword [rcx + 8]
cmp r9, 0xfc0
jle 0x1400077ac
cmp qword [rcx + 0x28], 1
jbe 0x1400075f0
mov r9, rcx
mov r11, qword [r12 + 0x2b98]
mov r10, qword [r12 + 0x2ba8]
lea r13, [rcx + 0x20]
shr r9, 0xc
mov rax, r9
and rax, r11
mov rcx, qword [r10 + rax*8]
test rcx, rcx
jne 0x1400076c1
jmp 0x1400076d1
lea rax, [rax + rax*4 + 1]
and rax, r11
mov rcx, qword [r10 + rax*8]
test rcx, rcx
je 0x1400076d1
cmp r9, qword [rcx + 8]
jne 0x1400076b0
test byte [rcx + 0x10], 4
jne 0x1400075f0
mov ecx, dword [0x1400b8628]
mov qword [rsp + 0x38], rdx
mov dword [rsp + 0x30], ecx
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [rsp + 0x30]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, edi
mov qword [rsp + 0x30], rax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rdx, qword [rsp + 0x38]
mov rdx, qword [rdx + 0x28]
cmp qword [rdx + 0x28], 0
je 0x140007730
mov rax, qword [rsp + 0x30]
lea rcx, [r13 + 0x10]
add qword [rax + 0x98], 1
call qword [rdx + 0x28]
mov rax, qword [rsp + 0x30]
sub qword [rax + 0x98], 1
lea rcx, [r12 + 0x68]
mov rdx, r13
add rsi, 1
call fcn.140005230
shr rbx, 1
jne 0x1400075fd
nop word [rax + rax]
add rbp, 0x40
add r14, 8
cmp rbp, 0x200
jne 0x1400075d8
mov rax, qword [rsp + 0x28]
mov rax, qword [rax]
mov qword [rsp + 0x28], rax
test rax, rax
jne 0x1400075c3
mov rsi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
add rbx, 8
cmp rsi, rbx
jne 0x1400075a8
mov byte [r12 + 0x2930], 0
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rcx + 0x30]
lea r8, [rcx + 0x40]
add rdi, r8
cmp r8, rdi
jae 0x1400075f0
mov qword [rsp + 0x40], r14
mov r13, rdi
mov rdi, r9
mov qword [rsp + 0x30], rbx
mov rbx, r8
mov qword [rsp + 0x38], rbp
mov rbp, r12
mov qword [rsp + 0x48], rsi
mov rsi, r8
nop dword [rax + rax]
cmp qword [rsi + 8], 1
jbe 0x140007850
mov rcx, rbx
mov r12, qword [rbp + 0x2b98]
mov r11, qword [rbp + 0x2ba8]
shr rcx, 0xc
mov rax, rcx
and rax, r12
mov rdx, qword [r11 + rax*8]
test rdx, rdx
jne 0x140007829
jmp 0x140007880
lea rax, [rax + rax*4 + 1]
and rax, r12
mov rdx, qword [r11 + rax*8]
test rdx, rdx
je 0x140007880
cmp rcx, qword [rdx + 8]
jne 0x140007818
mov rcx, rbx
mov eax, 1
shr rcx, 4
movzx ecx, cl
mov r11, rcx
shl rax, cl
shr r11, 6
and rax, qword [rdx + r11*8 + 0x10]
je 0x140007880
nop
add rbx, rdi
mov rsi, rbx
cmp rbx, r13
jb 0x1400077e8
mov r12, rbp
mov rbx, qword [rsp + 0x30]
mov r14, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x38]
jmp 0x1400075f0
mov r14d, dword [0x1400b8628]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, r12d
mov r14, rax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rdx, qword [rsi + 8]
cmp qword [rdx + 0x28], 0
je 0x1400078c7
add qword [r14 + 0x98], 1
lea rcx, [rbx + 0x10]
call qword [rdx + 0x28]
sub qword [r14 + 0x98], 1
lea rcx, [rbp + 0x68]
mov rdx, rsi
call fcn.140005230
jmp 0x140007850
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rdi, rcx
lea rax, [rcx + 0x2bd8]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r13, qword [rdi + 0x2bc8]
mov rbp, qword [sym.imp.KERNEL32.dll_GetLastError]
mov rdi, qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r12, qword [sym.imp.KERNEL32.dll_SetLastError]
test r13, r13
je 0x140008868
nop word [rax + rax]
mov rax, qword [r13 + 8]
xor r14d, r14d
mov qword [rsp + 0x28], rax
test rax, rax
jle 0x14000885b
nop dword [rax]
mov r15d, dword [0x1400b8628]
mov rsi, qword [r13 + r14*8 + 0x10]
call rbp
mov ebx, eax
mov ecx, r15d
call rdi
mov ecx, ebx
mov r15, rax
call r12
mov rax, qword [r15 + 0x2be8]
mov rdx, qword [r15 + 0x2bf8]
lea r8, [rsi - 0x10]
sub rax, 1
js 0x140008811
lea rcx, [rdx + rax*8]
mov rdx, rcx
jmp 0x1400087fe
sub rax, 1
sub rdx, 8
cmp rax, 0xffffffffffffffff
je 0x140008811
cmp r8, qword [rdx]
jne 0x1400087f0
mov rax, qword [rcx]
mov qword [rdx], rax
sub qword [r15 + 0x2be8], 1
mov rax, qword [rsi - 0x10]
mov qword [rsp + 0x20], r8
sub rax, 8
mov qword [rsi - 0x10], rax
cmp rax, 7
ja 0x14000884c
mov ebx, dword [0x1400b8628]
call rbp
mov esi, eax
mov ecx, ebx
call rdi
mov ecx, esi
mov rbx, rax
call r12
mov rdx, qword [rsp + 0x20]
lea rcx, [rbx + 0x50]
call fcn.140005ad0
add r14, 1
cmp qword [rsp + 0x28], r14
jne 0x1400087b0
mov r13, qword [r13]
test r13, r13
jne 0x140008798
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x18], 0
jle 0x140008894
nop
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
call fcn.14000b070
cmp qword [rbx + 0x18], 0
jg 0x140008880
mov rax, qword [rsp + 0x30]
mov rsi, qword [rax + 0x2ba0]
test rsi, rsi
je 0x1400088db
nop dword [rax]
mov ebx, dword [0x1400b8628]
mov r13, rsi
mov rsi, qword [rsi]
call rbp
mov r15d, eax
mov ecx, ebx
call rdi
mov ecx, r15d
mov rbx, rax
call r12
lea rdx, [r13 - 0x10]
lea rcx, [rbx + 0xa0]
call fcn.140005230
test rsi, rsi
jne 0x1400088a8
mov r14, qword [rsp + 0x30]
mov ebx, dword [0x1400b8628]
mov rsi, qword [r14 + 0x2ba8]
mov qword [r14 + 0x2ba0], 0
call rbp
mov ecx, ebx
mov r13d, eax
call rdi
mov ecx, r13d
mov rbx, rax
call r12
lea rdx, [rsi - 0x10]
lea rcx, [rbx + 0xa0]
call fcn.140005230
mov ebx, dword [0x1400b8628]
mov qword [r14 + 0x2ba8], 0
mov qword [r14 + 0x2b90], 0
call rbp
mov ecx, ebx
mov esi, eax
call rdi
mov ecx, esi
mov rbx, rax
call r12
lea rcx, [rbx + 0xa0]
mov edx, 0x2010
call fcn.140003e30
movdqu xmm0, xmmword [0x140031a20]
mov rdi, rax
lea rdx, [rax + 0x10]
mov qword [rax + 8], 1
add rdi, 0x18
mov rcx, rdx
mov qword [rax + 0x10], 0
mov qword [rax + 0x2008], 0
and rdi, 0xfffffffffffffff8
xor eax, eax
sub rcx, rdi
add ecx, 0x2000
shr ecx, 3
rep stosq qword [rdi], rax
mov qword [r14 + 0x2ba8], rdx
mov qword [r14 + 0x2ba0], 0
mov rsi, qword [r14 + 0x30]
mov rdi, qword [r14 + 0x40]
movups xmmword [r14 + 0x2b90], xmm0
test rsi, rsi
jle 0x1400089e7
xor ebx, ebx
nop word cs:[rax + rax]
mov rdx, qword [rdi + rbx*8]
mov rcx, qword [rsp + 0x30]
add rbx, 1
call fcn.1400084a0
cmp rsi, rbx
jne 0x1400089d0
mov rdi, qword [rsp + 0x30]
mov rcx, rdi
call fcn.1400086a0
mov rcx, rdi
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp 0x140007580