Function at 0x14010e570
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
mov ebp, r9d
mov edi, r8d
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x140287028]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov r14, qword [0x1402a1958]
cmp r14, 1
jbe 0x14010e965
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010eb5b
mov rcx, qword [r14]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [r14 + 8]
jne 0x14010eb5b
mov r14, qword [rax + rcx]
mov rax, qword [0x14028a5a0]
and rax, r14
cmp rax, qword [0x14028a588]
je 0x14010e92f
mov qword [rsi], r14
mov r14, qword [0x1402a1970]
cmp r14, 1
jbe 0x14010ea9b
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010eb63
mov rcx, qword [r14]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [r14 + 8]
jne 0x14010eb63
mov r14, qword [rax + rcx]
mov rax, qword [0x14028a5a0]
and rax, r14
cmp rax, qword [0x14028a588]
je 0x14010eb6b
mov qword [rsi + 8], r14
cmp edi, 1
sete r12b
mov eax, r12d
je 0x14010e663
test r14, r14
jne 0x14010e93c
mov byte [rsi + 0x10], al
mov r14, qword [rbx + 0x18]
mov qword [rsp + 0x30], 0x11be9915
mov rcx, qword [0x140299b10]
test rcx, rcx
jne 0x14010eb78
xor r15d, r15d
lea rbx, [rsi + 0x18]
mov rax, qword [0x14028a5a0]
and rax, r15
cmp rax, qword [0x14028a588]
je 0x14010eb85
mov qword [rbx], r15
test r15, r15
jne 0x14010eb92
mov qword [rsi + 0x28], 0
mov dword [rsi + 0x30], 0x11be9915
mov byte [rsi + 0x38], 0
mov r14, qword [0x1402a1970]
cmp r14, 1
jbe 0x14010eae2
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010eb29
mov rcx, qword [r14]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [r14 + 8]
mov rdx, qword [r14]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov r14, qword [0x1402a2970]
cmp r14, 1
jbe 0x14010ea54
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010e742
mov rcx, qword [r14]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [r14 + 8]
jne 0x14010e742
mov rax, qword [rax + rcx]
test rax, rax
jne 0x14010e890
test ebp, ebp
jne 0x14010e8cc
cmp byte [rsi + 0x10], 0
jne 0x14010e8cc
cmp qword [rsi + 8], 0
jne 0x14010e847
lea r14, [rsi + 0x40]
cmp byte [rsi + 0x38], 0
jne 0x14010ec5b
mov rax, qword [fcn.140158d50]
lea rcx, [0x140171950]
cmp rax, rcx
jne 0x14010eb4d
lea r15, [rsp + 0x30]
mov qword [r15], 0
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [r15]
movabs rcx, 0x8637bd05af6
cmp rax, rcx
jg 0x14010ec6c
imul rax, rax, 0xf4240
cqo
idiv qword [0x14029b670]
mov qword [r14], rax
mov eax, dword [0x1402a1950]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14010e9ac
lea rcx, [0x1402a1948]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14010eb3c
mov eax, dword [0x1402a1954]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14010e9e1
mov qword [rsi + 0x48], 0
lea rcx, [0x1402a1948]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [rsi + 0x48]
test rax, rax
jne 0x14010e917
mov byte [rsi + 0x38], 1
mov rcx, qword [rsi]
test rcx, rcx
jne 0x14010e87a
mov rax, qword [rbx]
test rax, rax
jne 0x14010ebb5
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1401756e0
mov rax, rsi
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov rax, qword [rsi + 8]
test rax, rax
jne 0x14010e948
mov edx, edi
call fcn.14016db90
jmp 0x14010e84f
cmp byte [rax], 0
jne 0x14010e742
mov eax, dword [0x1402a294c]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14010ea0b
cmp byte [0x1402a2948], 0
jne 0x14010e847
jmp 0x14010e742
mov rax, qword [rsi + 8]
test rax, rax
je 0x14010e847
cmp byte [rax + 0x38], 0
je 0x14010e847
mov r14, qword [rax + 0x48]
mov qword [rax + 0x48], 0
test r14, r14
je 0x14010e847
lock dec dword [r14]
jne 0x14010e847
mov rcx, r14
call fcn.140067cd0
mov rcx, r14
call fcn.140172a44
jmp 0x14010e847
mov rax, qword [rax + 0x1f0]
cmp qword [r14], rax
jge 0x14010e843
mov qword [r14], rax
jmp 0x14010e843
mov rcx, r14
call fcn.1400eaf60
jmp 0x14010e5f0
mov al, byte [r14 + 0x10]
xor r12d, r12d
jmp 0x14010e663
test r12b, r12b
je 0x14010e84f
cmp byte [rax + 0x10], 0
jne 0x14010e84f
call fcn.1401f4ab0
jmp 0x14010e84f
lea rcx, [0x1402a1958]
call fcn.140007880
test al, al
je 0x14010ec93
mov qword [0x1402a1968], 0
lea r14, [0x1402a1960]
mov qword [0x1402a1960], 0xffffffffffffffff
mov rcx, r14
xor edx, edx
call fcn.140002400
mov qword [0x1402a1958], r14
jmp 0x14010e5aa
lea rcx, [0x1402a1950]
call fcn.140172b08
cmp dword [0x1402a1950], 0xffffffff
jne 0x14010e7e7
mov qword [0x1402a1948], 0
lea rcx, [0x1402a1950]
call fcn.140172aa8
jmp 0x14010e7e7
lea rcx, [0x1402a1954]
call fcn.140172b08
cmp dword [0x1402a1954], 0xffffffff
jne 0x14010e821
lea rcx, [0x1402a1954]
call fcn.140172aa8
jmp 0x14010e821
lea rcx, [0x1402a294c]
call fcn.140172b08
cmp dword [0x1402a294c], 0xffffffff
jne 0x14010e8be
mov rcx, qword [0x140299b00]
test rcx, rcx
je 0x14010ea3c
lea rdx, str.enable_background_thread_pool
call fcn.1401599b0
mov byte [0x1402a2948], 1
lea rcx, [0x1402a294c]
call fcn.140172aa8
jmp 0x14010e8be
lea rcx, [0x1402a2970]
call fcn.140007880
test al, al
je 0x14010ec9f
mov qword [0x1402a2980], 0
lea r14, [0x1402a2978]
mov qword [0x1402a2978], 0xffffffffffffffff
mov rcx, r14
xor edx, edx
call fcn.140002400
mov qword [0x1402a2970], r14
jmp 0x14010e712
lea rcx, [0x1402a1970]
call fcn.140007880
test al, al
je 0x14010ecab
mov qword [0x1402a1980], 0
lea r14, [0x1402a1978]
mov qword [0x1402a1978], 0xffffffffffffffff
mov rcx, r14
xor edx, edx
call fcn.140002400
mov qword [0x1402a1970], r14
jmp 0x14010e604
lea rcx, [0x1402a1970]
call fcn.140007880
test al, al
je 0x14010ecb7
mov qword [0x1402a1980], 0
lea r14, [0x1402a1978]
mov qword [0x1402a1978], 0xffffffffffffffff
mov rcx, r14
xor edx, edx
call fcn.140002400
mov qword [0x1402a1970], r14
jmp 0x14010e6d1
test rsi, rsi
je 0x14010e701
call fcn.14003bc30
jmp 0x14010e6e7
lea rcx, [0x1402a1948]
call fcn.1400ec2e0
jmp 0x14010e7fc
mov rcx, r14
call qword [case.0x1401d7990.0]
jmp 0x14010e7c2
xor r14d, r14d
jmp 0x14010e5d9
xor r14d, r14d
jmp 0x14010e633
mov rcx, r14
call fcn.1400eaf60
jmp 0x14010e64a
call fcn.1401d1720
mov r15, rax
jmp 0x14010e686
mov rcx, r15
call fcn.1400eaf60
jmp 0x14010e6a1
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov rcx, r15
mov rdx, r14
xor r8d, r8d
mov r9b, 0xf0
call fcn.1401d01d0
mov dword [rsi + 0x20], eax
jmp 0x14010e6ad
mov eax, dword [rax + 0x18]
cmp eax, dword [rsi + 0x20]
jbe 0x14010e85b
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r14, [rsp + 0x28]
mov qword [r14], rax
mov rcx, r14
call fcn.140158ca0
mov rcx, rbx
call fcn.1401d0b50
mov rbx, rax
mov rax, qword [r14]
lea r14, [rsp + 0x40]
mov qword [r14], rax
lea rax, str.timestamp_us
lea r15, [rsp + 0x30]
mov qword [r15], rax
mov qword [r15 + 8], 0xc
mov r12d, 8
mov qword [rsp + 0x20], r12
mov rcx, rbx
mov rdx, r15
mov r8b, 8
mov r9, r14
call fcn.1401cfe70
movsxd rax, edi
mov qword [r14], rax
lea rax, str.blocking_type
mov qword [r15], rax
mov qword [r15 + 8], 0xd
mov qword [rsp + 0x20], r12
lea rdx, [rsp + 0x30]
lea r9, [rsp + 0x40]
mov rcx, rbx
mov r8b, 8
call fcn.1401cfe70
jmp 0x14010e85b
mov rcx, r14
call fcn.1401e26d0
mov byte [rsi + 0x38], 0
jmp 0x14010e76d
mov rcx, qword [0x14029b670]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14010e7bf
mov r14, qword [0x1402a1958]
jmp 0x14010e5aa
mov r14, qword [0x1402a2970]
jmp 0x14010e712
mov r14, qword [0x1402a1970]
jmp 0x14010e604
mov r14, qword [0x1402a1970]
jmp 0x14010e6d1