Function at 0x140070470
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x60
mov ebx, r9d
mov edi, r8d
mov r14, rdx
mov rsi, rcx
mov rax, qword [0x14012c028]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov r15, qword [0x1401446e0]
cmp r15, 1
jbe 0x140070939
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, eax
and ecx, 3
cmp ecx, 2
jne 0x1400707cd
lea rdx, [0x14011a2a2]
lea r8, str....._base_threading_thread_local_storage.cc
lea r15, [rsp + 0x38]
mov rcx, r15
mov r9d, 0x1db
call fcn.140061ec0
mov edx, 0x11e1a300
mov rcx, r15
call fcn.1400c7be0
xor r15d, r15d
mov rax, qword [0x14012dfa0]
and rax, r15
cmp rax, qword [0x14012df88]
je 0x140070904
mov qword [rsi], r15
mov r15, qword [0x1401446f8]
cmp r15, 1
jbe 0x140070a6f
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, eax
and ecx, 3
cmp ecx, 2
jne 0x1400707f5
lea rdx, [0x14011a2a2]
lea r8, str....._base_threading_thread_local_storage.cc
lea r15, [rsp + 0x38]
mov rcx, r15
mov r9d, 0x1db
call fcn.140061ec0
mov edx, 0x11e1a300
mov rcx, r15
call fcn.1400c7be0
xor r15d, r15d
mov rax, qword [0x14012dfa0]
and rax, r15
cmp rax, qword [0x14012df88]
je 0x140070b2f
mov qword [rsi + 8], r15
cmp edi, 1
sete bpl
mov eax, ebp
je 0x14007059a
test r15, r15
jne 0x140070911
mov byte [rsi + 0x10], al
mov r15, qword [r14 + 0x18]
mov qword [rsp + 0x38], 0x11be9915
mov rcx, qword [0x14013e6e0]
test rcx, rcx
jne 0x140070b3c
xor r12d, r12d
lea r14, [rsi + 0x18]
mov rax, qword [0x14012dfa0]
and rax, r12
cmp rax, qword [0x14012df88]
je 0x140070b49
mov qword [r14], r12
test r12, r12
jne 0x140070b56
mov qword [rsi + 0x28], 0
mov dword [rsi + 0x30], 0x11be9915
mov byte [rsi + 0x38], 0
mov r15, qword [0x1401446f8]
cmp r15, 1
jbe 0x140070ab6
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140070afd
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 [0x140146210]
cmp r15, 1
jbe 0x140070a28
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, eax
and ecx, 3
cmp ecx, 2
jne 0x14007081d
lea rdx, [0x14011a2a2]
lea r8, str....._base_threading_thread_local_storage.cc
lea r15, [rsp + 0x38]
mov rcx, r15
mov r9d, 0x1db
call fcn.140061ec0
mov edx, 0x11e1a300
mov rcx, r15
call fcn.1400c7be0
test ebx, ebx
jne 0x1400708a2
cmp byte [rsi + 0x10], 0
jne 0x1400708a2
cmp qword [rsi + 8], 0
jne 0x140070796
lea rbx, [rsi + 0x40]
cmp byte [rsi + 0x38], 0
jne 0x140070c1f
mov rax, qword [fcn.14008cb20]
lea rcx, [0x140095b10]
cmp rax, rcx
jne 0x140070b21
lea r15, [rsp + 0x38]
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 0x140070c30
imul rax, rax, 0xf4240
cqo
idiv qword [0x14013e7d0]
mov qword [rbx], rax
mov eax, dword [0x1401446d8]
mov ecx, dword [0x14013ba7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140070980
lea rcx, [0x1401446d0]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140070b10
mov eax, dword [0x1401446dc]
mov ecx, dword [0x14013ba7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400709b5
mov qword [rsi + 0x48], 0
lea rcx, [0x1401446d0]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [rsi + 0x48]
test rax, rax
jne 0x1400708ec
mov byte [rsi + 0x38], 1
mov rcx, qword [rsi]
test rcx, rcx
jne 0x140070889
mov rax, qword [r14]
test rax, rax
jne 0x140070b79
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.1400985e0
mov rax, rsi
add rsp, 0x60
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
and rax, 0xfffffffffffffffc
je 0x1400704f2
mov rcx, qword [r15]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [r15 + 8]
jne 0x1400704f2
mov r15, qword [rax + rcx]
jmp 0x1400704f5
and rax, 0xfffffffffffffffc
je 0x140070568
mov rcx, qword [r15]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [r15 + 8]
jne 0x140070568
mov r15, qword [rax + rcx]
jmp 0x14007056b
and rax, 0xfffffffffffffffc
je 0x140070691
mov rcx, qword [r15]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [r15 + 8]
jne 0x140070691
mov rax, qword [rax + rcx]
test rax, rax
je 0x140070691
cmp byte [rax], 0
jne 0x140070691
mov eax, dword [0x14014622c]
mov ecx, dword [0x14013ba7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400709df
cmp byte [0x140146228], 0
jne 0x140070796
jmp 0x140070691
mov rax, qword [rsi + 8]
test rax, rax
jne 0x14007091c
mov edx, edi
call fcn.140093a00
jmp 0x1400707a2
mov rax, qword [rsi + 8]
test rax, rax
je 0x140070796
cmp byte [rax + 0x38], 0
je 0x140070796
mov rbx, qword [rax + 0x48]
mov qword [rax + 0x48], 0
test rbx, rbx
je 0x140070796
lock dec dword [rbx]
jne 0x140070796
mov rcx, rbx
call fcn.140030990
mov rcx, rbx
call fcn.140096334
jmp 0x140070796
mov rax, qword [rax + 0x1f0]
cmp qword [rbx], rax
jge 0x140070792
mov qword [rbx], rax
jmp 0x140070792
mov rcx, r15
call fcn.140062440
jmp 0x14007050c
mov al, byte [r15 + 0x10]
xor ebp, ebp
jmp 0x14007059a
test bpl, bpl
je 0x1400707a2
cmp byte [rax + 0x10], 0
jne 0x1400707a2
call fcn.1400f9370
jmp 0x1400707a2
lea rcx, [0x1401446e0]
call fcn.1400099e0
test al, al
je 0x140070c57
mov qword [0x1401446f0], 0
lea r15, [0x1401446e8]
mov qword [0x1401446e8], 0xffffffffffffffff
mov rcx, r15
xor edx, edx
call fcn.140005670
mov qword [0x1401446e0], r15
jmp 0x1400704aa
lea rcx, [0x1401446d8]
call fcn.140096578
cmp dword [0x1401446d8], 0xffffffff
jne 0x140070736
mov qword [0x1401446d0], 0
lea rcx, [0x1401446d8]
call fcn.1400966f0
jmp 0x140070736
lea rcx, [0x1401446dc]
call fcn.140096578
cmp dword [0x1401446dc], 0xffffffff
jne 0x140070770
lea rcx, [0x1401446dc]
call fcn.1400966f0
jmp 0x140070770
lea rcx, [0x14014622c]
call fcn.140096578
cmp dword [0x14014622c], 0xffffffff
jne 0x140070877
mov rcx, qword [0x14013e590]
test rcx, rcx
je 0x140070a10
lea rdx, str.enable_background_thread_pool
call fcn.14008d6c0
mov byte [0x140146228], 1
lea rcx, [0x14014622c]
call fcn.1400966f0
jmp 0x140070877
lea rcx, [0x140146210]
call fcn.1400099e0
test al, al
je 0x140070c63
mov qword [0x140146220], 0
lea r15, [0x140146218]
mov qword [0x140146218], 0xffffffffffffffff
mov rcx, r15
xor edx, edx
call fcn.140005670
mov qword [0x140146210], r15
jmp 0x140070649
lea rcx, [0x1401446f8]
call fcn.1400099e0
test al, al
je 0x140070c6f
mov qword [0x140144708], 0
lea r15, [0x140144700]
mov qword [0x140144700], 0xffffffffffffffff
mov rcx, r15
xor edx, edx
call fcn.140005670
mov qword [0x1401446f8], r15
jmp 0x140070520
lea rcx, [0x1401446f8]
call fcn.1400099e0
test al, al
je 0x140070c7b
mov qword [0x140144708], 0
lea r15, [0x140144700]
mov qword [0x140144700], 0xffffffffffffffff
mov rcx, r15
xor edx, edx
call fcn.140005670
mov qword [0x1401446f8], r15
jmp 0x140070608
test rsi, rsi
je 0x140070638
call fcn.1400051d0
jmp 0x14007061e
lea rcx, [0x1401446d0]
call fcn.140062160
jmp 0x14007074b
mov rcx, rbx
call qword [0x140150008]
jmp 0x140070711
mov rcx, r15
call fcn.140062440
jmp 0x140070582
call fcn.1400e3d20
mov r12, rax
jmp 0x1400705bd
mov rcx, r12
call fcn.140062440
jmp 0x1400705d8
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov rdx, r15
xor r8d, r8d
mov r9b, 0xf0
call fcn.1400e34c0
mov dword [rsi + 0x20], eax
jmp 0x1400705e4
mov eax, dword [rax + 0x18]
cmp eax, dword [rsi + 0x20]
jbe 0x1400707ae
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rbx, [rsp + 0x28]
mov qword [rbx], rax
mov rcx, rbx
call fcn.14008ca70
mov rcx, r14
call fcn.1400e3910
mov r14, rax
mov rax, qword [rbx]
lea rbx, [rsp + 0x30]
mov qword [rbx], rax
lea rax, str.timestamp_us
lea r15, [rsp + 0x38]
mov qword [r15], rax
mov qword [r15 + 8], 0xc
mov r12d, 8
mov qword [rsp + 0x20], r12
mov rcx, r14
mov rdx, r15
mov r8b, 8
mov r9, rbx
call fcn.1400e31d0
movsxd rax, edi
mov qword [rbx], rax
lea rax, str.blocking_type
mov qword [r15], rax
mov qword [r15 + 8], 0xd
mov qword [rsp + 0x20], r12
lea rdx, [rsp + 0x38]
lea r9, [rsp + 0x30]
mov rcx, r14
mov r8b, 8
call fcn.1400e31d0
jmp 0x1400707ae
mov rcx, rbx
call fcn.1400ecde0
mov byte [rsi + 0x38], 0
jmp 0x1400706bc
mov rcx, qword [0x14013e7d0]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14007070e
mov r15, qword [0x1401446e0]
jmp 0x1400704aa
mov r15, qword [0x140146210]
jmp 0x140070649
mov r15, qword [0x1401446f8]
jmp 0x140070520
mov r15, qword [0x1401446f8]
jmp 0x140070608