Function at 0x1000640e0
Capabilities:
Get thread local storage value

Disassembly:
push rbp
push r12
push r13
push r14
push r15
mov eax, 0x1260
call fcn.10005f3c0
sub rsp, rax
lea rbp, [rsp + 0x40]
mov qword [rbp + 0x18], 0xfffffffffffffffe
mov qword [rbp + 0x1250], rbx
mov qword [rbp + 0x1258], rsi
mov qword [rbp + 0x1260], rdi
mov rax, qword [0x10022f440]
xor rax, rbp
mov qword [rbp + 0x1210], rax
call fcn.100068a00
mov rbx, rax
mov rcx, qword gs:[0x30]
lea r14, [rcx + rax]
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x100064156
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r14, rax
mov rdi, qword [r14 + 0xd8]
mov rbx, qword [rdi + 0x210]
mov ecx, dword [r14 + 0xa0]
mov rdx, qword [rdi + 0x1d0]
mov r13d, 0x200
xor r12d, r12d
test rdx, rdx
je 0x1000641cb
mov rax, rdx
and rax, 0xffffffffffffe000
je 0x100064196
cmp word [rax + 4], r13w
jne 0x100064196
mov rax, qword [rax + 0x28]
mov rax, qword [rax + 8]
mov rcx, qword [rax + 0x10]
dec rcx
not rcx
and rcx, rdx
je 0x1000641b4
cmp word [rcx + 4], r13w
jne 0x1000641b4
mov rcx, qword [rcx + 0x28]
mov rcx, qword [rcx + 8]
test byte [rcx + 0x28], 8
jne 0x1000641c4
mov rax, qword [rcx]
call qword [rax + 0x28]
mov qword [rdi + 0x1d0], r12
lea rax, [rbx + 0x90]
mov qword [rbp + 8], rax
mov dword [rbp + 0x10], r12d
mov edx, dword gs:[0x48]
mov rcx, qword [rbp + 8]
xor eax, eax
lock cmpxchg dword [rcx], edx
mov eax, r12d
sete al
mov rsi, qword [rbp + 8]
test eax, eax
jne 0x100064202
mov rcx, rsi
call fcn.100057ac0
mov dword [rbp + 0x10], 1
mov rdx, qword [rbx + 0x98]
mov eax, dword [rdx + 0x208]
mov dword [rbx + 0x108], eax
mov rax, qword [rdx + 0x3c0]
mov qword [rbx + 0x10c], rax
mov rax, qword [rdx + 0x3c8]
mov qword [rbx + 0x114], rax
mov rax, qword [rdx + 0x3d0]
mov qword [rbx + 0x11c], rax
mov qword [rbx + 0x98], r12
cmp qword [rbx + 0x140], 0
je 0x100064267
mov rdx, rbx
mov rcx, qword [rbx + 0xa0]
call fcn.100066a70
nop
test rsi, rsi
je 0x10006426f
mov dword [rsi], r12d
mov rcx, qword [rdi + 0x210]
mov qword [rdi + 0x210], r12
mov rax, qword [rdi + 0x1e8]
cmp rax, 0
cmove rax, rcx
mov qword [rdi + 0x1e8], rax
lea rbx, [rcx + 0x10]
or eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
dec eax
jne 0x1000643b3
cmp qword [rbx + 8], 0
je 0x1000642bb
mov rcx, rbx
call fcn.1000585a0
jmp 0x1000643c8
add rbx, 0xfffffffffffffff0
mov eax, dword [rbx + 0xb0]
cmp eax, 2
jne 0x100064315
mov rsi, qword [rbx + 0xa0]
mov edx, dword gs:[0x48]
xor eax, eax
lock cmpxchg dword [rsi + 0xf80], edx
mov eax, r12d
sete al
test eax, eax
jne 0x1000642f9
lea rcx, [rsi + 0xf80]
call fcn.100057ac0
mov rcx, qword [rbx + 8]
mov rax, qword [rbx]
mov qword [rax + 8], rcx
mov qword [rcx], rax
mov qword [rbx + 8], r12
mov qword [rbx], r12
mov dword [rsi + 0xf80], r12d
call fcn.100058010
test rax, rax
je 0x100064340
cmp qword [rax + 0x1e8], rbx
jne 0x100064340
test rbx, rbx
lea rcx, [rbx - 8]
jne 0x100064334
mov rcx, r12
xor edx, edx
call fcn.100058e50
jmp 0x1000643c8
test rbx, rbx
je 0x10006434b
add rbx, 0xfffffffffffffff8
jmp 0x10006434e
mov rbx, r12
mov qword [rbp], rbx
test rbx, rbx
je 0x1000643c8
lea rax, [0x100002a88]
mov qword [rbx], rax
lea rcx, [rbx + 8]
call fcn.100058db0
mov rax, rbx
and rax, 0xffffffffffffe000
je 0x100064380
cmp word [rax + 4], r13w
jne 0x100064380
mov rax, qword [rax + 0x28]
mov rax, qword [rax + 8]
mov rcx, qword [rax + 0x10]
dec rcx
not rcx
and rcx, rbx
je 0x10006439e
cmp word [rcx + 4], r13w
jne 0x10006439e
mov rcx, qword [rcx + 0x28]
mov rcx, qword [rcx + 8]
test byte [rcx + 0x28], 8
jne 0x1000643c8
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + 0x28]
jmp 0x1000643c8
mov rax, qword [rdi + 0x1e8]
cmp rcx, rax
cmove rax, r12
mov qword [rdi + 0x1e8], rax
mov rcx, rdi
call fcn.1000661d0
mov qword [rdi + 0x228], r12
mov qword [r14 + 0xd8], r12
mov eax, dword [r14 + 0xe0]
mov ecx, eax
xor ecx, 2
and ecx, eax
mov dword [r14 + 0xe0], ecx
call fcn.100064b20
call fcn.10006aeb0
mov rcx, qword [rax + 8]
shl rcx, 3
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x100064418
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.10005f3c0
sub rsp, rax
lea rbx, [rsp + 0x40]
call fcn.10006aeb0
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], r12d
mov r9, rbx
mov r8, qword [rax + 8]
xor edx, edx
lea rcx, [rbp + 0x20]
call fcn.1000675e0
nop
call fcn.10006ade0
mov rcx, rax
lea rdx, [rdi - 0x10]
call fcn.100066fd0
nop
lea rcx, [rbp + 0x20]
call fcn.100067830
mov rcx, qword [rbp + 0x1210]
xor rcx, rbp
call fcn.10005f420
mov rbx, qword [rbp + 0x1250]
mov rsi, qword [rbp + 0x1258]
mov rdi, qword [rbp + 0x1260]
lea rsp, [rbp + 0x1220]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret