Function at 0x140119ae0
Capabilities:
Get thread local storage value

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0x80]
mov rdi, rcx
lea rax, [0x14018ecc6]
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], 6
mov ecx, dword [0x1401aa118]
test ecx, ecx
je 0x140119b45
dec ecx
call sub.kernel32.dll_TlsGetValue
mov rsi, rax
test rax, rax
je 0x140119b60
mov rax, qword [0x1401aa150]
cmp rsi, rax
jne 0x140119b74
mov eax, dword [0x1401aa158]
cmp eax, 0xffffffff
je 0x140119cbe
inc eax
jmp 0x140119b92
lea rcx, [0x1401aa100]
call fcn.1400edca0
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
mov rsi, rax
test rax, rax
jne 0x140119b26
call fcn.140113320
mov rsi, rax
mov rax, qword [0x1401aa150]
cmp rsi, rax
je 0x140119b32
mov cl, 1
xor eax, eax
lock cmpxchg byte [0x1401aa15c], cl
jne 0x140119cad
mov qword [0x1401aa150], rsi
mov eax, 1
mov dword [0x1401aa158], eax
lea rax, [0x1401aa150]
mov qword [rbp], rax
mov r14, rbp
mov qword [rbp - 0x20], r14
lea rbx, [rbp - 0x18]
mov qword [rbp - 0x18], 0
lea rdx, [0x14018e0d0]
lea rsi, [rbp - 0x20]
mov rcx, rsi
mov r8, rdi
call fcn.14000ab50
mov r15, qword [rbp - 0x18]
test al, al
je 0x140119c14
test r15, r15
jne 0x140119c71
invalid
xchg esp, eax
add byte [rax], al
invalid
lea rax, str.a_formatting_trait_implementation_returned_an_error_when_the_underlying_stream_did_not
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], 1
add dword [rax], eax
add byte [rax], al
mov qword [rbp - 0x40], 8
xorps xmm0, xmm0
movups xmmword [rbp - 0x38], xmm0
lea rdx, [0x14018ed00]
lea edx, [0x14018ed00]
lea rcx, [rbp - 0x50]
call fcn.140009c00
jmp 0x140119d41
mov eax, r15d
and eax, 3
cmp eax, 1
jne 0x140119c7c
lea rdi, [r15 - 1]
mov rbx, qword [r15 - 1]
mov r15, qword [r15 + 7]
mov rax, qword [r15]
test rax, rax
je 0x140119c38
mov rcx, rbx
call rax
cmp qword [r15 + 8], 0
je 0x140119c5c
cmp qword [r15 + 0x10], 0x11
jb 0x140119c4a
mov rbx, qword [rbx - 8]
call sub.kernel32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, rbx
call sub.kernel32.dll_HeapFree
call sub.kernel32.dll_GetProcessHeap
xor r15d, r15d
mov rcx, rax
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapFree
mov rcx, qword [rbp]
dec dword [rcx + 8]
jne 0x140119c98
jmp 0x140119c88
xor r15d, r15d
mov rcx, qword [rbp]
dec dword [rcx + 8]
jne 0x140119c98
mov qword [rcx], 0
xor eax, eax
xchg byte [rcx + 0xc], al
cmp al, 2
je 0x140119cd6
test r15, r15
jne 0x140119ce4
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
lea rcx, [0x1401aa15c]
call fcn.1400ee680
jmp 0x140119b86
lea rcx, str.lock_count_overflow_in_reentrant_mutexlibrary_std_src_sync_reentrant_lock.rs
lea r8, [0x14018f060]
mov edx, 0x26
call fcn.14000cb80
add rcx, 0xc
call sub.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle
test r15, r15
je 0x140119c9d
mov qword [rbp], r15
lea rax, [rbp - 0x60]
mov qword [rbp - 0x20], rax
lea rax, [0x1400edb50]
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], r14
mov dword [rbp - 0x10], esi
lea rax, [fcn.140116440]
mov qword [rbp - 8], rax
lea rax, str.failed_printing_to_:
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], 2
mov qword [rbp - 0x30], 0
mov qword [rbp - 0x40], rsi
mov qword [rbp - 0x38], 2
lea rdx, str.library_std_srcio_stdio.rs
lea rcx, [rbp - 0x50]
call fcn.140009c00
ud2