Function at 0x14005be80
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, 0x68
mov r15, rdx
mov r14, rcx
mov rax, qword [0x14016e028]
xor rax, rsp
mov qword [rsp + 0x60], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov r12d, eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14005c465
mov rbp, qword [r14 + 0x10]
movzx r13d, byte [r15 + 0x17]
test rbp, rbp
je 0x14005c0d5
mov rax, qword [r15 + 8]
mov rdi, r13
mov rbx, r15
test r13b, r13b
jns 0x14005bee6
mov rbx, qword [r15]
mov rdi, rax
mov qword [rsp + 0x40], rax
mov eax, r12d
movzx esi, byte [rbp + 0x37]
test sil, sil
jns 0x14005c337
mov rcx, qword [rbp + 0x20]
mov rsi, qword [rbp + 0x28]
cmp rdi, rsi
setb r12b
mov r8, rsi
cmovb r8, rdi
mov dword [rsp + 0x2c], eax
lea rax, [r14 + 0x10]
mov qword [rsp + 0x38], rax
test r8, r8
mov qword [rsp + 0x30], rbx
je 0x14005c3dc
mov rdx, rbx
call fcn.14007f430
mov rbx, qword [rsp + 0x30]
test eax, eax
je 0x14005c3dc
mov ecx, eax
shr ecx, 0x1f
test eax, eax
mov rsi, qword [rbp + rcx*8]
cmovs rbp, qword [rsp + 0x38]
test rsi, rsi
je 0x14005c073
movzx r12d, byte [rsi + 0x37]
test r12b, r12b
jns 0x14005c340
mov rcx, qword [rsi + 0x20]
mov r12, qword [rsi + 0x28]
cmp rdi, r12
setb byte [rsp + 0x2b]
mov r8, r12
cmovb r8, rdi
test r8, r8
je 0x14005c40a
mov rdx, rbx
call fcn.14007f430
mov rbx, qword [rsp + 0x30]
test eax, eax
je 0x14005c40a
mov ecx, eax
shr ecx, 0x1f
test eax, eax
cmovns rbp, rsi
mov rsi, qword [rsi + rcx*8]
test rsi, rsi
je 0x14005c073
mov r12, rdi
movzx edi, byte [rsi + 0x37]
test dil, dil
jns 0x14005c349
mov rcx, qword [rsi + 0x20]
mov rdi, qword [rsi + 0x28]
mov rax, r12
cmp r12, rdi
setb byte [rsp + 0x2b]
mov r8, rdi
cmovb r8, r12
test r8, r8
je 0x14005c433
mov rdx, rbx
call fcn.14007f430
mov rbx, qword [rsp + 0x30]
test eax, eax
je 0x14005c433
mov ecx, eax
shr ecx, 0x1f
test eax, eax
cmovns rbp, rsi
mov rsi, qword [rsi + rcx*8]
test rsi, rsi
je 0x14005c070
movzx edi, byte [rsi + 0x37]
test dil, dil
jns 0x14005c3d3
mov rcx, qword [rsi + 0x20]
mov rdi, qword [rsi + 0x28]
mov rax, r12
cmp r12, rdi
setb byte [rsp + 0x2b]
mov r8, rdi
cmovb r8, r12
test r8, r8
je 0x14005c450
mov rdx, rbx
call fcn.14007f430
mov rbx, qword [rsp + 0x30]
test eax, eax
je 0x14005c450
mov ecx, eax
shr ecx, 0x1f
test eax, eax
cmovns rbp, rsi
mov rax, qword [rsi + rcx*8]
test rax, rax
jne 0x14005c4aa
mov rdi, r12
mov r12d, dword [rsp + 0x2c]
cmp rbp, qword [rsp + 0x38]
je 0x14005c0d5
movzx eax, byte [rbp + 0x37]
mov rsi, rax
test al, al
jns 0x14005c08e
mov rsi, qword [rbp + 0x28]
mov rcx, qword [rsp + 0x40]
cmp rsi, rcx
cmovb rcx, rsi
cmp rsi, r13
mov r8, r13
cmovb r8, rsi
test r13b, r13b
cmovs r8, rcx
test r8, r8
je 0x14005c3f0
lea rdx, [rbp + 0x20]
test al, al
jns 0x14005c0bf
mov rdx, qword [rdx]
mov rcx, rbx
call fcn.14007f430
test eax, eax
je 0x14005c3f0
jns 0x14005c3f9
lea rbp, [r14 + 8]
mov ecx, 0x18
call fcn.14007a994
mov rdi, rax
test r13b, r13b
js 0x14005c323
mov rax, qword [r15 + 0x10]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [r15]
movups xmmword [rdi], xmm0
lea r9, [rsp + 0x48]
mov qword [r9], r15
lea rbx, [rsp + 0x50]
mov rcx, rbp
mov rdx, rbx
mov r8, r15
call fcn.14005c560
mov rax, qword [rbx]
mov qword [rax + 0x38], rdi
lea rbx, [r14 + 0x28]
mov rax, qword [r14 + 0x28]
mov r15, rbx
test rax, rax
je 0x14005c16c
xor ecx, ecx
cmp dword [rax + 0x20], r12d
setb cl
mov rcx, qword [rax + rcx*8]
cmovb rax, rbx
test rcx, rcx
je 0x14005c159
xor edx, edx
cmp dword [rcx + 0x20], r12d
setb dl
cmovae rax, rcx
mov rcx, qword [rcx + rdx*8]
jmp 0x14005c141
mov r15, rbx
cmp rax, rbx
je 0x14005c16c
cmp r12d, dword [rax + 0x20]
cmovb rax, rbx
mov r15, rax
mov eax, dword [0x1401796c0]
mov ecx, dword [0x1401719a0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14005c472
cmp byte [rdi + 0x17], 0
jns 0x14005c31b
mov rsi, qword [rdi]
mov ecx, dword [0x140171588]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14005c511
movsxd rcx, dword [0x1401796b8]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [0x1401796bc]
movsxd rdx, dword [0x1401796b8]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rsi, qword [r14 + 0x60]
mov rbp, qword [r14 + 0x68]
cmp rsi, rbp
je 0x14005c246
mov rcx, qword [rsi]
cmp byte [rdi + 0x17], 0
jns 0x14005c352
mov rdx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + 8]
lea rax, [rsi + 8]
cmp rax, rbp
je 0x14005c246
mov rcx, qword [rax]
cmp byte [rdi + 0x17], 0
jns 0x14005c39c
mov rdx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + 8]
lea rax, [rsi + 0x10]
cmp rax, rbp
je 0x14005c246
mov rcx, qword [rax]
cmp byte [rdi + 0x17], 0
jns 0x14005c402
mov rdx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + 8]
lea rax, [rsi + 0x18]
cmp rax, rbp
jne 0x14005c374
cmp r15, rbx
je 0x14005c3a4
lea rbp, [r14 + 0x40]
mov rax, qword [r14 + 0x40]
test rax, rax
je 0x14005c42b
mov rcx, qword [r15 + 0x28]
mov rsi, rbp
mov rdx, qword [rax + 0x20]
cmp rcx, rdx
jb 0x14005c35a
cmp rdx, rcx
jae 0x14005c28b
lea rsi, [rax + 8]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x14005c28b
mov rax, rdx
jmp 0x14005c267
mov rbp, rax
mov rbx, qword [rsi]
test rbx, rbx
jne 0x14005c2e0
mov ecx, 0x30
call fcn.14007a994
mov rbx, rax
mov rax, qword [r15 + 0x28]
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], 0
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rbp
mov qword [rsi], rbx
mov rax, qword [r14 + 0x38]
mov rax, qword [rax]
mov rdx, rbx
test rax, rax
jne 0x14005c41f
mov rcx, qword [r14 + 0x40]
call fcn.14004024e
inc qword [r14 + 0x48]
mov qword [rbx + 0x28], rdi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp byte [rdi + 0x17], 0
jns 0x14005c2f6
mov rdi, qword [rdi]
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.14007d5a0
mov rcx, rdi
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x1400b1bb0
mov rsi, rdi
jmp 0x14005c19e
mov rdx, qword [r15]
mov r8, qword [r15 + 8]
mov rcx, rdi
call fcn.14005c750
jmp 0x14005c0fe
lea rcx, [rbp + 0x20]
jmp 0x14005bf03
lea rcx, [rsi + 0x20]
jmp 0x14005bf72
lea rcx, [rsi + 0x20]
jmp 0x14005bfcf
mov rdx, rdi
jmp 0x14005c1f5
mov rdx, qword [rax]
mov rsi, rax
test rdx, rdx
jne 0x14005c286
mov rbp, rax
mov rsi, rax
jmp 0x14005c28e
mov rcx, qword [rax]
cmp byte [rdi + 0x17], 0
jns 0x14005c448
mov rdx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + 8]
add rsi, 0x20
cmp rsi, rbp
je 0x14005c246
jmp 0x14005c53b
mov rdx, rdi
jmp 0x14005c214
mov qword [r14 + 0x50], rdi
mov dword [r14 + 0x58], r12d
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.14007d5a0
mov rcx, r14
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lea rcx, [rsi + 0x20]
jmp 0x14005c028
cmp rsi, rdi
movzx ecx, r12b
mov eax, 0xffffffff
cmovae eax, ecx
jmp 0x14005bf41
cmp rdi, rsi
jb 0x14005c0d5
mov rdi, qword [rbp + 0x38]
jmp 0x14005c120
mov rdx, rdi
jmp 0x14005c233
cmp r12, rdi
movzx ecx, byte [rsp + 0x2b]
mov eax, 0xffffffff
cmovae eax, ecx
jmp 0x14005bf9f
mov qword [r14 + 0x38], rax
mov rdx, qword [rsi]
jmp 0x14005c2d3
mov rsi, rbp
jmp 0x14005c28e
cmp rdi, r12
movzx ecx, byte [rsp + 0x2b]
mov eax, 0xffffffff
cmovae eax, ecx
jmp 0x14005bfff
mov rdx, rdi
jmp 0x14005c384
cmp rdi, r12
movzx ecx, byte [rsp + 0x2b]
mov eax, 0xffffffff
cmovae eax, ecx
jmp 0x14005c058
mov rcx, r14
call fcn.140039d60
jmp 0x14005bebf
lea rcx, [0x1401796c0]
call fcn.14007b4e8
cmp dword [0x1401796c0], 0xffffffff
jne 0x14005c191
lea rcx, [0x1401796b8]
xor edx, edx
call fcn.140050d20
lea rcx, [0x1401796c0]
call fcn.14007ac34
jmp 0x14005c191
mov rdi, r12
movzx esi, byte [rax + 0x37]
test sil, sil
jns 0x14005c508
mov rcx, qword [rax + 0x20]
mov r12, rax
mov rsi, qword [rax + 0x28]
cmp rdi, rsi
setb byte [rsp + 0x2b]
mov r8, rsi
cmovb r8, rdi
test r8, r8
je 0x14005c524
mov rdx, rbx
call fcn.14007f430
mov rbx, qword [rsp + 0x30]
test eax, eax
je 0x14005c524
mov ecx, eax
shr ecx, 0x1f
test eax, eax
mov rax, r12
cmovns rbp, r12
mov rax, qword [r12 + rcx*8]
test rax, rax
mov r12d, dword [rsp + 0x2c]
je 0x14005c078
jmp 0x14005c4ad
mov r12, rax
lea rcx, [rax + 0x20]
jmp 0x14005c4c1
test rsi, rsi
je 0x14005c1d8
call fcn.140008040
jmp 0x14005c1b4
cmp rsi, rdi
movzx eax, byte [rsp + 0x2b]
mov ecx, 0xffffffff
cmovb eax, ecx
jmp 0x14005c4e6
mov rdx, rdi
jmp 0x14005c544
cmp byte [rdi + 0x17], 0
jns 0x14005c536
mov rdx, qword [rdi]
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax + 8]
add rsi, 8
cmp rbp, rsi
je 0x14005c246
jmp 0x14005c53b
push rsi
sub rsp, 0x20
test rcx, rcx
je 0x1400b1bc4
mov eax, dword [0x1401797c8]
test eax, eax
jne 0x1400b1bca
add rsp, 0x20
pop rsi
ret
mov eax, dword [0x1401797c8]
test eax, eax
je 0x1400b1bc4
mov rsi, rcx
call fcn.1400fdae0
mov qword [rax + 0x18], rsi
jmp 0x1400b1bc4