Function at 0x14003ce80
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, 0x48
mov r14, rdx
mov rsi, rcx
mov rax, qword [0x14029a038]
xor rax, rsp
mov qword [rsp + 0x40], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edi, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14003d24c
mov qword [rsp + 0x28], rsi
mov rbp, qword [rsi + 0x10]
movzx r12d, byte [r14 + 0x17]
test rbp, rbp
je 0x14003cfbf
mov r15, r12
mov rbx, r14
test r12b, r12b
jns 0x14003cee7
mov r15, qword [r14 + 8]
mov rbx, qword [r14]
mov qword [rsp + 0x30], r12
test r15, r15
je 0x14003cefa
test rbx, rbx
je 0x14003d2c8
mov rax, qword [rsp + 0x28]
lea r12, [rax + 0x10]
mov r13, r12
movzx esi, byte [rbp + 0x37]
test sil, sil
jns 0x14003cf19
mov rsi, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x20]
jmp 0x14003cf1d
lea rcx, [rbp + 0x20]
test rsi, rsi
je 0x14003cf2b
test rcx, rcx
je 0x14003d2b9
cmp r15, rsi
mov r8, rsi
cmovb r8, r15
test r8, r8
je 0x14003cf4d
mov rdx, rbx
call fcn.140180120
test eax, eax
je 0x14003cf4d
js 0x14003cf52
mov r13, rbp
jmp 0x14003cf56
cmp rsi, r15
jae 0x14003cf48
add rbp, 8
mov rbp, qword [rbp]
test rbp, rbp
jne 0x14003cf06
cmp r13, r12
mov r12, qword [rsp + 0x30]
je 0x14003cfbf
movzx esi, byte [r13 + 0x37]
test sil, sil
jns 0x14003cf7d
mov rsi, qword [r13 + 0x28]
mov rdx, qword [r13 + 0x20]
jmp 0x14003cf81
lea rdx, [r13 + 0x20]
test rsi, rsi
je 0x14003cf8f
test rdx, rdx
je 0x14003d2cb
cmp rsi, r15
mov r8, r15
cmovb r8, rsi
test r8, r8
je 0x14003cfba
mov rcx, rbx
call fcn.140180120
test eax, eax
je 0x14003cfba
js 0x14003cfbf
mov rbx, qword [r13 + 0x38]
mov rbp, qword [rsp + 0x28]
jmp 0x14003d090
cmp r15, rsi
jae 0x14003cfac
mov rbp, qword [rsp + 0x28]
lea r15, [rbp + 8]
mov ecx, 0x18
call fcn.14017b1d8
mov rbx, rax
test r12b, r12b
js 0x14003d223
mov rax, qword [r14 + 0x10]
mov qword [rbx + 0x10], rax
movups xmm0, xmmword [r14]
movups xmmword [rbx], xmm0
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdx, [rsp + 0x38]
mov qword [rdx], rax
mov rcx, r15
mov r8, r14
call fcn.140030dd0
mov r12, qword [rax]
test r12, r12
jne 0x14003d08b
mov r13, rax
mov ecx, 0x40
call fcn.14017b1d8
mov r12, rax
mov rcx, rax
add rcx, 0x20
cmp byte [r14 + 0x17], 0
js 0x14003d041
mov rax, qword [r14 + 0x10]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [r14]
movups xmmword [rcx], xmm0
jmp 0x14003d04d
mov rdx, qword [r14]
mov r8, qword [r14 + 8]
call fcn.140014270
mov qword [r12 + 0x38], 0
mov rax, qword [rsp + 0x38]
xorps xmm0, xmm0
movups xmmword [r12], xmm0
mov qword [r12 + 0x10], rax
mov qword [r13], r12
mov rax, qword [r15]
mov rax, qword [rax]
mov rdx, r12
test rax, rax
jne 0x14003d2bc
mov rcx, qword [rbp + 0x10]
call fcn.140123f70
inc qword [rbp + 0x18]
mov qword [r12 + 0x38], rbx
lea r15, [rbp + 0x28]
mov rcx, qword [rbp + 0x28]
mov r14, r15
test rcx, rcx
je 0x14003d0cc
mov rax, r15
lea rdx, [rcx + 8]
cmp dword [rcx + 0x20], edi
cmovae rdx, rcx
cmovae rax, rcx
mov rcx, qword [rdx]
test rcx, rcx
jne 0x14003d0a3
mov r14, r15
cmp rax, r15
je 0x14003d0cc
cmp edi, dword [rax + 0x20]
cmovb rax, r15
mov r14, rax
mov eax, dword [0x1402a45a8]
mov ecx, dword [0x14029dfe4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14003d26c
cmp byte [rbx + 0x17], 0
mov rsi, rbx
jns 0x14003d0fd
mov rsi, qword [rbx]
mov ecx, dword [0x14029bf80]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14003d259
mov rcx, qword [0x1402a4598]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [0x1402a45a0]
mov rdx, qword [0x1402a4598]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rsi, qword [rbp + 0x60]
mov r12, qword [rbp + 0x68]
cmp rsi, r12
je 0x14003d166
cmp byte [rbx + 0x17], 0
mov rdx, rbx
jns 0x14003d150
mov rdx, qword [rbx]
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1401e7f70.0]
add rsi, 8
jmp 0x14003d13f
cmp r14, r15
je 0x14003d1a2
mov rcx, qword [rbp + 0x40]
test rcx, rcx
je 0x14003d240
mov rax, qword [r14 + 0x28]
mov rdi, rcx
mov rcx, qword [rcx + 0x20]
cmp rax, rcx
jb 0x14003d195
jbe 0x14003d1f8
mov rcx, qword [rdi + 8]
test rcx, rcx
jne 0x14003d17c
jmp 0x14003d1ab
mov rcx, qword [rdi]
mov rsi, rdi
test rcx, rcx
jne 0x14003d17c
jmp 0x14003d1af
mov qword [rbp + 0x50], rbx
mov dword [rbp + 0x58], edi
jmp 0x14003d1fc
lea rsi, [rdi + 8]
mov r15, rdi
mov ecx, 0x30
call fcn.14017b1d8
mov rdi, rax
mov rax, qword [r14 + 0x28]
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], 0
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], r15
mov qword [rsi], rdi
mov rax, qword [rbp + 0x38]
mov rax, qword [rax]
mov rdx, rdi
test rax, rax
jne 0x14003d237
mov rcx, qword [rbp + 0x40]
call fcn.140123f70
inc qword [rbp + 0x48]
mov qword [rdi + 0x28], rbx
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14017e7b0
mov rcx, rbp
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rdx, qword [r14]
mov r8, qword [r14 + 8]
mov rcx, rbx
call fcn.140014270
jmp 0x14003cfed
mov qword [rbp + 0x38], rax
mov rdx, qword [rsi]
jmp 0x14003d1eb
lea rsi, [rbp + 0x40]
mov rdi, rsi
jmp 0x14003d1af
mov rcx, rsi
call fcn.1400fdfc0
jmp 0x14003cebe
test rsi, rsi
je 0x14003d137
call fcn.140002990
jmp 0x14003d113
lea rcx, [0x1402a45a8]
call fcn.14017b2bc
cmp dword [0x1402a45a8], 0xffffffff
jne 0x14003d0f1
mov qword [0x1402a4598], 0xffffffffffffffff
lea rcx, [0x1402a4598]
mov dword [0x1402a45a0], 0
xor edx, edx
call fcn.140002850
lea rcx, [0x1402a45a8]
call fcn.14017b25c
jmp 0x14003d0f1
int3
mov qword [r15], rax
mov rdx, qword [r13]
jmp 0x14003d07e
int3
int3