Function at 0x1400275e0
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
lea rax, [0x14025e7d0]
mov qword [rcx], rax
lea rax, [0x14025ee68]
mov qword [rcx + 0xd0], rax
lea rax, [0x14025f0b0]
mov qword [rcx + 0xd8], rax
lea rax, str._5_f_
mov qword [rcx + 0x138], rax
cmp byte [rcx + 0x159], 0
jne 0x14002790e
cmp byte [rsi + 0x1f0], 0
jne 0x140027921
mov rdi, qword [rsi + 0x1e8]
mov qword [rsi + 0x1e8], 0
test rdi, rdi
je 0x140027697
mov rbx, qword [0x1402a2768]
cmp rbx, 1
jbe 0x1400278c7
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14002768f
mov rcx, qword [rbx]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [rbx + 8]
mov rdx, qword [rbx]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rcx, rdi
call fcn.140172a44
mov rdi, qword [rsi + 0x1d0]
test rdi, rdi
jne 0x14002784b
mov rcx, qword [rsi + 0x1c0]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
je 0x14002783a
xor eax, eax
mov qword [rsi + 0x1c0], rax
mov rcx, qword [rsi + 0x1b0]
mov qword [rsi + 0x1b0], rax
test rcx, rcx
je 0x1400276f2
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x1401d7990.0]
lea rdi, [rsi + 0x1a0]
lea rax, fcn.1401b2b10
mov qword [rsi + 0x1a0], rax
mov eax, dword [0x1402a29e0]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140027891
mov rcx, qword [0x1402a29c8]
mov rdx, rdi
call fcn.140024060
mov rcx, qword [rsi + 0x198]
test rcx, rcx
je 0x140027750
lock dec dword [rcx]
je 0x140027939
mov rcx, qword [rsi + 0x188]
test rcx, rcx
je 0x140027766
lock dec dword [rcx + 8]
je 0x140027943
mov rdi, qword [rsi + 0x150]
mov qword [rsi + 0x150], 0
test rdi, rdi
je 0x14002778d
mov rcx, rdi
call fcn.140027a30
mov rcx, rdi
call fcn.140172a44
mov rcx, qword [rsi + 0x148]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
je 0x14002794d
lea rdi, [rsi + 0xd8]
mov qword [rsi + 0x148], 0
mov rcx, qword [rsi + 0x140]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
je 0x140027844
mov qword [rsi + 0x140], 0
mov rcx, rdi
call fcn.140027c80
lea rax, [0x14025e870]
mov qword [rsi], rax
lea rcx, [rsi + 0x18]
call fcn.140027980
mov rcx, qword [rsi + 0x10]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
je 0x140027957
mov qword [rsi + 0x10], 0
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x140027832
lock dec dword [rcx]
je 0x140027961
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
call fcn.1400ebe70
jmp 0x1400276c5
call fcn.1400ebe70
jmp 0x1400277d7
mov rax, qword [rsi + 0x1d8]
mov rcx, rdi
cmp rax, rdi
je 0x140027880
lea rbx, [rax - 0x18]
mov rcx, qword [rax - 0x10]
test rcx, rcx
je 0x140027871
mov rax, qword [rax - 8]
call qword [case.0x1401d7990.0]
mov rax, rbx
cmp rbx, rdi
jne 0x14002785a
mov rcx, qword [rsi + 0x1d0]
mov qword [rsi + 0x1d8], rdi
call fcn.140172a44
jmp 0x1400276a7
lea rcx, [0x1402a29e0]
call fcn.140172b08
cmp dword [0x1402a29e0], 0xffffffff
jne 0x14002772c
lea rcx, [0x1402a2988]
call fcn.140037620
lea rcx, [0x1402a29e0]
call fcn.140172aa8
jmp 0x14002772c
lea rcx, [0x1402a2768]
call fcn.140007880
test al, al
je 0x14002796d
mov qword [0x1402a2778], 0
lea rbx, [0x1402a2770]
mov qword [0x1402a2770], 0xffffffffffffffff
mov rcx, rbx
xor edx, edx
call fcn.140002400
mov qword [0x1402a2768], rbx
jmp 0x140027660
mov byte [rsi + 0x159], 0
xor ecx, ecx
call fcn.1400010b0
jmp 0x14002762b
lea rcx, [rsi + 0x1f8]
call fcn.140155af0
mov byte [rsi + 0x1f0], 0
jmp 0x140027638
call fcn.140172a44
jmp 0x140027750
call fcn.14011cbd0
jmp 0x140027766
call fcn.1400ebe70
jmp 0x1400277ab
call fcn.1400ebe70
jmp 0x140027818
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp fcn.140172a44
mov rbx, qword [0x1402a2768]
jmp 0x140027660