Function at 0x1400d5010
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov ebx, r9d
mov r14d, r8d
mov rbp, rdx
mov rsi, rcx
mov rax, qword [0x1401f5028]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rdi, qword [0x1401feb78]
cmp rdi, 1
jbe 0x1400d5280
mov ecx, dword [0x1401f6f88]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400d53c7
movsxd rcx, dword [rdi]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rdi + 4]
jne 0x1400d53c7
mov rax, qword [rax + rcx]
mov qword [rsi], rax
mov rdi, qword [0x1401febb8]
cmp rdi, 1
jbe 0x1400d531a
mov ecx, dword [0x1401f6f88]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400d53ce
movsxd rcx, dword [rdi]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rdi + 4]
jne 0x1400d53ce
mov rax, qword [rax + rcx]
mov qword [rsi + 8], rax
cmp r14d, 1
je 0x1400d53d5
test rax, rax
jne 0x1400d525a
xor eax, eax
mov byte [rsi + 0x10], al
lea rdi, [rsi + 0x18]
mov rbp, qword [rbp + 0x18]
mov qword [rsp + 0x38], 0x11be9915
mov rcx, qword [0x1401fead0]
test rcx, rcx
jne 0x1400d53dc
mov qword [rdi], 0
mov qword [rsi + 0x28], 0
mov dword [rsi + 0x30], 0x11be9915
mov byte [rsi + 0x38], 0
mov rbp, qword [0x1401febb8]
cmp rbp, 1
jbe 0x1400d5367
mov ecx, dword [0x1401f6f88]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400d53b4
movsxd rcx, dword [rbp]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [rbp + 4]
movsxd rdx, dword [rbp]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rbp, qword [0x140200398]
cmp rbp, 1
jbe 0x1400d52cd
mov ecx, dword [0x1401f6f88]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400d518e
movsxd rcx, dword [rbp]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rbp + 4]
jne 0x1400d518e
mov rax, qword [rax + rcx]
test rax, rax
jne 0x1400d51fd
test ebx, ebx
jne 0x1400d5220
cmp byte [rsi + 0x10], 0
jne 0x1400d5220
cmp qword [rsi + 8], 0
jne 0x1400d51cc
cmp byte [rsi + 0x38], 0
jne 0x1400d54b9
lea rcx, [rsi + 0x40]
call qword [fcn.1400e87b0]
lea rcx, [rsi + 0x48]
mov rdx, qword [rsi + 0x40]
call fcn.1400d5540
mov byte [rsi + 0x38], 1
mov rcx, qword [rsi]
test rcx, rcx
jne 0x1400d520d
mov rax, qword [rdi]
test rax, rax
jne 0x1400d5410
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1400f32c0
mov rax, rsi
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
cmp byte [rax], 0
jne 0x1400d518e
call fcn.14000d5d0
test al, al
jne 0x1400d51cc
jmp 0x1400d518e
mov rax, qword [rsi + 8]
test rax, rax
jne 0x1400d5262
mov edx, r14d
call fcn.1400ee140
jmp 0x1400d51d4
mov rax, qword [rsi + 8]
test rax, rax
je 0x1400d51cc
cmp byte [rax + 0x38], 1
jne 0x1400d51cc
mov rbx, qword [rax + 0x48]
mov qword [rax + 0x48], 0
test rbx, rbx
je 0x1400d51cc
lock dec dword [rbx]
jne 0x1400d51cc
mov rcx, rbx
call fcn.14000dc70
mov rcx, rbx
call fcn.1400f0498
jmp 0x1400d51cc
mov al, byte [rax + 0x10]
jmp 0x1400d50d1
cmp r14d, 1
jne 0x1400d51d4
cmp byte [rax + 0x10], 0
jne 0x1400d51d4
call fcn.140052fa0
jmp 0x1400d51d4
lea rcx, [0x1401feb78]
call fcn.14000d630
test al, al
je 0x1400d5509
mov qword [0x1401feb80], 0
lea r15, [0x1401feb78]
lea rdi, [0x1401feb80]
mov rcx, rdi
xor edx, edx
call fcn.14000d6e0
mov rcx, r15
mov rdx, rdi
xor r8d, r8d
mov r9, r15
call fcn.14000d5b0
jmp 0x1400d5048
lea rcx, [0x140200398]
call fcn.14000d630
test al, al
je 0x1400d5515
mov qword [0x1402003a0], 0
lea r15, [0x140200398]
lea rbp, [0x1402003a0]
mov rcx, rbp
xor edx, edx
call fcn.14000d6e0
mov rcx, r15
mov rdx, rbp
xor r8d, r8d
mov r9, r15
call fcn.14000d5b0
jmp 0x1400d5162
lea rcx, [0x1401febb8]
call fcn.14000d630
test al, al
je 0x1400d5521
mov qword [0x1401febc0], 0
lea r15, [0x1401febb8]
lea rdi, [0x1401febc0]
mov rcx, rdi
xor edx, edx
call fcn.14000d6e0
mov rcx, r15
mov rdx, rdi
xor r8d, r8d
mov r9, r15
call fcn.14000d5b0
jmp 0x1400d508a
lea rcx, [0x1401febb8]
call fcn.14000d630
test al, al
je 0x1400d552d
mov qword [0x1401febc0], 0
lea r15, [0x1401febb8]
lea rbp, [0x1401febc0]
mov rcx, rbp
xor edx, edx
call fcn.14000d6e0
mov rcx, r15
mov rdx, rbp
xor r8d, r8d
mov r9, r15
call fcn.14000d5b0
jmp 0x1400d5120
test rsi, rsi
je 0x1400d5151
call fcn.140001340
jmp 0x1400d5136
xor eax, eax
jmp 0x1400d5076
xor eax, eax
jmp 0x1400d50b8
mov al, 1
jmp 0x1400d50d1
call fcn.140146bf0
mov qword [rdi], rax
test rax, rax
je 0x1400d50fc
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov rdx, rbp
xor r8d, r8d
mov r9b, 0xf0
call fcn.140146c30
mov dword [rsi + 0x20], eax
jmp 0x1400d50fc
mov eax, dword [rax + 0x18]
cmp eax, dword [rsi + 0x20]
jbe 0x1400d51e0
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rbx, [rsp + 0x30]
mov qword [rbx], rax
mov rcx, rbx
call qword [fcn.1400e87b0]
mov rcx, rdi
call fcn.14014f5e0
mov rdi, rax
mov rax, qword [rbx]
lea rbx, [rsp + 0x48]
mov qword [rbx], rax
lea rax, str.timestamp_us
lea rbp, [rsp + 0x38]
mov qword [rbp], rax
mov qword [rbp + 8], 0xc
mov r15d, 8
mov qword [rsp + 0x20], r15
mov rcx, rdi
mov rdx, rbp
mov r8b, 8
mov r9, rbx
call fcn.14014e990
movsxd rax, r14d
mov qword [rbx], rax
lea rax, str.blocking_type
mov qword [rbp], rax
mov qword [rbp + 8], 0xd
mov qword [rsp + 0x20], r15
lea rdx, [rsp + 0x38]
lea r9, [rsp + 0x48]
mov rcx, rdi
mov r8b, 8
call fcn.14014e990
jmp 0x1400d51e0
mov rbx, qword [rsi + 0x48]
test rbx, rbx
jne 0x1400d54cb
mov byte [rsi + 0x38], 0
jmp 0x1400d51b1
lea rbp, [rsp + 0x38]
mov rcx, rbp
call qword [fcn.1400e87b0]
mov rdx, qword [rsi + 0x40]
mov r8, qword [rbp]
mov rcx, rbx
call fcn.1400dcd40
mov rbx, qword [rsi + 0x48]
test rbx, rbx
je 0x1400d54c2
lock dec dword [rbx]
jne 0x1400d54c2
mov rcx, rbx
call fcn.14000dc70
mov rcx, rbx
call fcn.1400f0498
jmp 0x1400d54c2
mov rdi, qword [0x1401feb78]
jmp 0x1400d5048
mov rbp, qword [0x140200398]
jmp 0x1400d5162
mov rdi, qword [0x1401febb8]
jmp 0x1400d508a
mov rbp, qword [0x1401febb8]
jmp 0x1400d5120