Function at 0x1000a2ce0
Capabilities:
Get thread local storage value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
mov ecx, dword [0x1000de268]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor ecx, ecx
xor r14d, r14d
mov rsi, qword [rax + 0x28]
and dword [rsp + 0x50], 0x80000000
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rcx
mov eax, dword [rsi + 0x30]
mov r15d, 0xfffffff
and eax, r15d
mov r13d, r14d
movsxd rdi, eax
mov rdx, rdi
cmp edi, r14d
jbe 0x1000a2f11
shl rdx, 3
sub rdx, 8
dec edi
bt dword [rsi + 0x30], 0x1c
mov qword [rsp + 0x20], rdx
jae 0x1000a2d52
mov rcx, qword [rsi + 0x38]
jmp 0x1000a2d56
lea rcx, [rsi + 0x38]
mov r8, qword [rcx + rdx]
mov r15b, r13b
mov r14d, r13d
mov dword [rsp + 0xc0], r13d
mov qword [rsp + 0xd0], r8
cmp eax, r13d
jbe 0x1000a2efa
mov rcx, r13
mov qword [rsp + 0xd8], rcx
cmp r15b, r13b
jne 0x1000a2ef5
cmp edi, r14d
je 0x1000a2ecd
bt dword [rsi + 0x30], 0x1c
jae 0x1000a2da3
mov rbx, qword [rsi + 0x38]
jmp 0x1000a2da7
lea rbx, [rsi + 0x38]
mov rbx, qword [rbx + rcx]
mov r12d, r13d
test dword [rbx + 8], 0xfffffff
jbe 0x1000a2e49
mov rbp, r13
cmp r15b, r13b
jne 0x1000a2e39
bt dword [rbx + 8], 0x1c
jae 0x1000a2dd0
mov rax, qword [rbx + 0x10]
jmp 0x1000a2dd4
lea rax, [rbx + 0x10]
mov r14, qword [rax + rbp]
xor edx, edx
mov rcx, r14
call fcn.10009d104
mov r8, qword [rsp + 0xd0]
cmp al, r13b
je 0x1000a2e25
mov rax, qword [r8]
mov rcx, qword [rax + 0x48]
cmp rcx, r13
je 0x1000a2e25
cmp r14, rcx
je 0x1000a2e09
mov rcx, qword [rcx + 0x48]
cmp rcx, r13
jne 0x1000a2dfb
cmp rcx, r13
je 0x1000a2e25
lea rcx, [rsp + 0x50]
mov edx, edi
call fcn.1000a3f18
mov r8, qword [rsp + 0xd0]
mov r15b, 1
mov eax, dword [rbx + 8]
inc r12d
add rbp, 8
and eax, 0xfffffff
cmp r12d, eax
jb 0x1000a2dbe
mov r14d, dword [rsp + 0xc0]
mov rcx, qword [rsp + 0xd8]
test dword [rbx + 0x20], 0xfffffff
mov r12d, r13d
jbe 0x1000a2ecd
mov rbp, r13
cmp r15b, r13b
jne 0x1000a2ec5
bt dword [rbx + 0x20], 0x1c
jae 0x1000a2e6a
mov rax, qword [rbx + 0x28]
jmp 0x1000a2e6e
lea rax, [rbx + 0x28]
movdqu xmm0, xmmword [rax + rbp]
mov rax, qword [r8]
movdqu xmmword [rsp + 0x28], xmm0
mov rcx, qword [rax + 0x48]
cmp rcx, r13
je 0x1000a2eb1
cmp qword [rsp + 0x30], rcx
je 0x1000a2e95
mov rcx, qword [rcx + 0x48]
cmp rcx, r13
jne 0x1000a2e85
cmp rcx, r13
je 0x1000a2eb1
lea rcx, [rsp + 0x50]
mov edx, edi
call fcn.1000a3f18
mov r8, qword [rsp + 0xd0]
mov r15b, 1
mov eax, dword [rbx + 0x20]
inc r12d
add rbp, 0x10
and eax, 0xfffffff
cmp r12d, eax
jb 0x1000a2e58
mov rcx, qword [rsp + 0xd8]
mov eax, dword [rsi + 0x30]
inc r14d
add rcx, 8
and eax, 0xfffffff
mov dword [rsp + 0xc0], r14d
mov qword [rsp + 0xd8], rcx
cmp r14d, eax
jb 0x1000a2d84
mov rdx, qword [rsp + 0x20]
cmp edi, r13d
ja 0x1000a2d3a
mov rcx, qword [rsp + 0x58]
xor r14d, r14d
mov r15d, 0xfffffff
mov edi, r14d
test dword [rsp + 0x50], r15d
jbe 0x1000a2fc6
mov rbx, r14
mov edx, dword [rsp + 0x50]
lea rax, [rsp + 0x58]
shr edx, 0x1c
and edx, 1
cmovne rax, rcx
bt dword [rsi + 0x30], 0x1c
jae 0x1000a2f42
mov r8, qword [rsi + 0x38]
jmp 0x1000a2f46
lea r8, [rsi + 0x38]
mov eax, dword [rbx + rax]
cmp edx, r14d
mov rbp, qword [r8 + rax*8]
lea rax, [rsp + 0x58]
cmovne rax, rcx
mov r9d, dword [rbx + rax]
mov eax, dword [rsi + 0x30]
bt eax, 0x1c
jae 0x1000a2f6c
mov rcx, qword [rsi + 0x38]
jmp 0x1000a2f70
lea rcx, [rsi + 0x38]
and eax, r15d
sub eax, r9d
lea r8d, [rax - 1]
lea eax, [r9 + 1]
lea rdx, [rcx + rax*8]
lea rcx, [rcx + r9*8]
shl r8, 3
call sub.msvcrt.dll_memmove
mov r11d, dword [rsi + 0x30]
mov rcx, rbp
lea eax, [r11 - 1]
xor eax, r11d
and eax, r15d
xor eax, r11d
mov dword [rsi + 0x30], eax
call fcn.1000a4284
mov eax, dword [rsp + 0x50]
and eax, r15d
inc edi
add rbx, 4
cmp edi, eax
jae 0x1000a2fc6
mov rcx, qword [rsp + 0x58]
jmp 0x1000a2f22
mov eax, dword [rsi + 0x30]
and eax, r15d
je 0x1000a311b
bt dword [rsi + 0x30], 0x1c
jae 0x1000a2fdf
mov rcx, qword [rsi + 0x38]
jmp 0x1000a2fe3
lea rcx, [rsi + 0x38]
lea r10d, [rax - 1]
mov eax, dword [rsi + 0x30]
bt eax, 0x1c
mov rbx, qword [rcx + r10*8]
jae 0x1000a2ffa
mov r9, qword [rsi + 0x38]
jmp 0x1000a2ffe
lea r9, [rsi + 0x38]
and eax, r15d
lea rcx, [r9 + r10*8]
sub eax, r10d
lea r8d, [rax - 1]
lea eax, [r10 + 1]
lea rdx, [r9 + rax*8]
shl r8, 3
call sub.msvcrt.dll_memmove
mov r11d, dword [rsi + 0x30]
and dword [rsp + 0x38], 0x80000000
lea eax, [r11 - 1]
mov ebp, r14d
xor eax, r11d
and eax, r15d
xor eax, r11d
mov dword [rsi + 0x30], eax
xor eax, eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
test dword [rbx + 8], r15d
jbe 0x1000a30b0
mov rdi, r14
bt dword [rbx + 8], 0x1c
jae 0x1000a305e
mov rcx, qword [rbx + 0x10]
jmp 0x1000a3062
lea rcx, [rbx + 0x10]
mov rcx, qword [rdi + rcx]
xor edx, edx
call fcn.10009d104
cmp al, r14b
je 0x1000a30a0
bt dword [rbx + 8], 0x1c
jae 0x1000a307f
mov r8, qword [rbx + 0x10]
jmp 0x1000a3083
lea r8, [rbx + 0x10]
mov edx, dword [rsp + 0x38]
mov r8, qword [rdi + r8]
lea rcx, [rsp + 0x38]
and edx, r15d
call fcn.10005fe4c
cmp eax, r14d
mov r13d, eax
jl 0x1000a30b0
mov ecx, dword [rbx + 8]
inc ebp
add rdi, 8
and ecx, r15d
cmp ecx, ebp
ja 0x1000a3051
mov rdi, qword [rbx]
cmp rdi, r14
je 0x1000a30da
test byte [rdi + 0x88], 0x80
jne 0x1000a30ca
mov rdi, qword [rdi + 0x48]
cmp rdi, r14
jne 0x1000a30b8
cmp rdi, r14
je 0x1000a30da
test byte [rdi + 0x8b], 4
cmovne rdi, r14
cmp r13d, r14d
jl 0x1000a3154
mov eax, dword [rsp + 0x38]
and eax, r15d
cmp eax, 0x19
jb 0x1000a3154
cmp rdi, r14
je 0x1000a3154
mov edx, 3
mov rcx, rdi
call fcn.1000a0cb8
cmp eax, r14d
mov r13d, eax
jge 0x1000a319d
lea rcx, [rsp + 0x38]
call fcn.10007d870
mov rcx, rbx
call fcn.1000a4284
bt dword [rsp + 0x50], 0x1c
mov eax, dword [0x1000e2e1c]
jae 0x1000a3262
test al, 1
jne 0x1000a3148
or eax, 1
mov dword [0x1000e2e1c], eax
lea rax, [0x100012840]
mov qword [0x1000e2e10], rax
lea rcx, [0x1000e2e10]
jmp 0x1000a3284
mov eax, dword [rsp + 0x38]
and eax, r15d
je 0x1000a319d
mov ebp, r14d
cmp eax, r14d
jbe 0x1000a319d
mov r12, r14
bt dword [rsp + 0x38], 0x1c
lea rcx, [rsp + 0x40]
cmovb rcx, qword [rsp + 0x40]
xor edx, edx
mov rcx, qword [rcx + r12]
call fcn.1000a0cb8
cmp eax, r14d
mov r13d, eax
jl 0x1000a319d
mov eax, dword [rsp + 0x38]
inc ebp
add r12, 8
and eax, r15d
cmp eax, ebp
ja 0x1000a3168
mov eax, dword [rbx + 0x20]
and eax, r15d
cmp eax, 0x19
jb 0x1000a31c8
cmp rdi, r14
je 0x1000a31c8
mov edx, 4
mov rcx, rdi
call fcn.1000a0cb8
cmp eax, r14d
mov r13d, eax
jl 0x1000a3109
jmp 0x1000a3220
cmp eax, r14d
je 0x1000a3220
cmp rdi, r14
je 0x1000a3220
mov r12d, r14d
cmp eax, r14d
jbe 0x1000a3220
mov rbp, r14
bt dword [rbx + 0x20], 0x1c
jae 0x1000a31ea
mov rax, qword [rbx + 0x28]
jmp 0x1000a31ee
lea rax, [rbx + 0x28]
movdqu xmm0, xmmword [rax + rbp]
lea rcx, [rsp + 0x28]
mov rdx, rdi
movdqu xmmword [rsp + 0x28], xmm0
call fcn.1000a0dc0
cmp eax, r14d
mov r13d, eax
jl 0x1000a3220
mov eax, dword [rbx + 0x20]
inc r12d
add rbp, 0x10
and eax, r15d
cmp eax, r12d
ja 0x1000a31dd
test dword [rsp + 0x38], r15d
jne 0x1000a324b
test dword [rbx + 0x20], r15d
jne 0x1000a324b
cmp rdi, r14
je 0x1000a324b
mov edx, 5
mov rcx, rdi
call fcn.1000a0cb8
cmp eax, r14d
mov r13d, eax
jl 0x1000a3109
lea rcx, [rsp + 0x38]
call fcn.10007d870
mov rcx, rbx
call fcn.1000a4284
jmp 0x1000a2fc6
test al, 2
jne 0x1000a327d
or eax, 2
mov dword [0x1000e2e1c], eax
lea rax, fcn.1000a4148
mov qword [0x1000e2e08], rax
lea rcx, [0x1000e2e08]
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
call qword [rax]
mov eax, r13d
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret