Function at 0x140121610
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x50
mov ebx, r8d
mov rdi, rdx
mov rsi, rcx
mov rax, qword [0x14029a038]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov r14, qword [0x1402a4510]
cmp r14, 1
jbe 0x1401218da
mov ecx, dword [0x14029bf80]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140121a52
mov rcx, qword [r14]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [r14 + 8]
jne 0x140121a52
mov rax, qword [rax + rcx]
mov qword [rsi], rax
mov r14, qword [0x1402a4528]
cmp r14, 1
jbe 0x1401219b1
mov ecx, dword [0x14029bf80]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140121a59
mov rcx, qword [r14]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [r14 + 8]
jne 0x140121a59
mov rax, qword [rax + rcx]
mov qword [rsi + 8], rax
mov cl, 1
cmp ebx, 1
jne 0x1401217c3
mov byte [rsi + 0x10], cl
lea r14, [rsi + 0x18]
mov r15, qword [rdi + 0x18]
mov qword [rsp + 0x30], 0x11be9915
mov rcx, qword [0x1402a0ca0]
test rcx, rcx
jne 0x1401218a6
mov qword [r14], 0
mov qword [rsi + 0x28], 0
mov dword [rsi + 0x30], 0x11be9915
mov byte [rsi + 0x38], 0
mov r15, qword [0x1402a4528]
cmp r15, 1
jbe 0x1401219f8
mov ecx, dword [0x14029bf80]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140121a3f
mov rcx, qword [r15]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [r15 + 8]
mov rdx, qword [r15]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov r15, qword [0x1402a5240]
cmp r15, 1
jbe 0x14012196a
mov ecx, dword [0x14029bf80]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140121785
mov rcx, qword [r15]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [r15 + 8]
jne 0x140121785
mov rax, qword [rax + rcx]
test rax, rax
jne 0x140121800
cmp byte [rsi + 0x10], 0
mov rax, qword [rsi + 8]
je 0x1401217d4
test rax, rax
je 0x1401217dd
cmp byte [rax + 0x38], 0
je 0x1401217dd
mov r15, qword [rax + 0x48]
mov qword [rax + 0x48], 0
test r15, r15
je 0x1401217dd
lock dec dword [r15]
jne 0x1401217dd
mov rcx, r15
call fcn.140008a30
mov rcx, r15
call fcn.14017b254
jmp 0x1401217dd
test rax, rax
je 0x140121878
mov cl, byte [rax + 0x10]
jmp 0x1401216c9
test rax, rax
je 0x14012187f
mov rcx, qword [rsi]
test rcx, rcx
je 0x14012183f
mov rax, qword [rsi + 8]
test rax, rax
je 0x140121838
cmp ebx, 1
jne 0x14012183f
cmp byte [rax + 0x10], 0
jne 0x14012183f
call fcn.1401bb350
jmp 0x14012183f
cmp byte [rax], 0
jne 0x140121785
mov eax, dword [0x1402a521c]
mov ecx, dword [0x14029dfe4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140121921
cmp byte [0x1402a5218], 0
jne 0x1401217dd
jmp 0x140121785
mov edx, ebx
call fcn.1401764f0
mov rax, qword [r14]
test rax, rax
jne 0x140121a60
test byte [0x14029c020], 0x19
jne 0x140121b58
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14017e7b0
mov rax, rsi
add rsp, 0x50
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor ecx, ecx
jmp 0x1401216c9
lea r15, [rsi + 0x40]
cmp byte [rsi + 0x38], 0
je 0x140121895
mov rcx, r15
call fcn.1401212e0
mov byte [rsi + 0x38], 0
mov rcx, r15
call fcn.140121be0
mov byte [rsi + 0x38], 1
jmp 0x1401217dd
call fcn.1401bb300
mov qword [r14], rax
test rax, rax
je 0x1401216f4
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov rdx, r15
xor r8d, r8d
mov r9b, 0xf0
call fcn.1401bab30
mov dword [rsi + 0x20], eax
jmp 0x1401216f4
lea rcx, [0x1402a4510]
call fcn.140008ab0
test al, al
je 0x140121b71
mov qword [0x1402a4520], 0
lea r14, [0x1402a4518]
mov qword [0x1402a4518], 0xffffffffffffffff
mov rcx, r14
xor edx, edx
call fcn.140002850
mov qword [0x1402a4510], r14
jmp 0x140121648
lea rcx, [0x1402a521c]
call fcn.14017b2bc
cmp dword [0x1402a521c], 0xffffffff
jne 0x14012182a
mov rcx, qword [0x1402a0c90]
test rcx, rcx
je 0x140121952
lea rdx, str.enable_background_thread_pool
call fcn.1401667d0
mov byte [0x1402a5218], 1
lea rcx, [0x1402a521c]
call fcn.14017b25c
jmp 0x14012182a
lea rcx, [0x1402a5240]
call fcn.140008ab0
test al, al
je 0x140121b7d
mov qword [0x1402a5250], 0
lea r15, [0x1402a5248]
mov qword [0x1402a5248], 0xffffffffffffffff
mov rcx, r15
xor edx, edx
call fcn.140002850
mov qword [0x1402a5240], r15
jmp 0x140121759
lea rcx, [0x1402a4528]
call fcn.140008ab0
test al, al
je 0x140121b89
mov qword [0x1402a4538], 0
lea r14, [0x1402a4530]
mov qword [0x1402a4530], 0xffffffffffffffff
mov rcx, r14
xor edx, edx
call fcn.140002850
mov qword [0x1402a4528], r14
jmp 0x14012168b
lea rcx, [0x1402a4528]
call fcn.140008ab0
test al, al
je 0x140121b95
mov qword [0x1402a4538], 0
lea r15, [0x1402a4530]
mov qword [0x1402a4530], 0xffffffffffffffff
mov rcx, r15
xor edx, edx
call fcn.140002850
mov qword [0x1402a4528], r15
jmp 0x140121718
test rsi, rsi
je 0x140121748
call fcn.140002990
jmp 0x14012172e
xor eax, eax
jmp 0x140121677
xor eax, eax
jmp 0x1401216ba
mov eax, dword [rax + 0x18]
cmp eax, dword [rsi + 0x20]
jbe 0x14012184b
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x28], rax
mov rax, qword [fcn.1401193e0]
lea rcx, [0x140179e10]
cmp rax, rcx
jne 0x140121ba1
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 0x140121bb1
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402a2810]
mov qword [rsp + 0x28], rax
mov rcx, r14
call fcn.1401dde60
mov r14, rax
mov rax, qword [rsp + 0x28]
lea r15, [rsp + 0x40]
mov qword [r15], rax
lea rax, str.timestamp_us
lea r12, [rsp + 0x30]
mov qword [r12], rax
mov qword [r12 + 8], 0xc
mov r13d, 8
mov qword [rsp + 0x20], r13
mov rcx, r14
mov rdx, r12
mov r8b, 8
mov r9, r15
call fcn.1400c47b0
movsxd rax, ebx
mov qword [r15], rax
lea rax, str.blocking_type
mov qword [r12], rax
mov qword [r12 + 8], 0xd
mov qword [rsp + 0x20], r13
lea rdx, [rsp + 0x30]
lea r9, [rsp + 0x40]
mov rcx, r14
mov r8b, 8
call fcn.1400c47b0
jmp 0x14012184b
lea rdx, [rsp + 0x30]
mov qword [rdx], rdi
lea rcx, str.ScopedBlockingCall
call fcn.1401e6bd0
jmp 0x140121858
mov r14, qword [0x1402a4510]
jmp 0x140121648
mov r15, qword [0x1402a5240]
jmp 0x140121759
mov r14, qword [0x1402a4528]
jmp 0x14012168b
mov r15, qword [0x1402a4528]
jmp 0x140121718
lea rcx, [rsp + 0x28]
call qword [case.0x1401e7f70.0]
jmp 0x140121ad2
mov rcx, qword [0x1402a2810]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140121acd