Function at 0x14010ec20
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rdx
push rdi
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x78], rsi
movzx ebp, r9b
mov rsi, r8
mov r14, rdx
mov rbx, rcx
call fcn.14010e390
mov rdi, rax
mov r15d, 0xffffffff
test rax, rax
je 0x14010edf6
test bpl, bpl
je 0x14010ec86
mov rcx, qword [rax]
test rcx, rcx
je 0x14010ec86
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x14010ec86
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
test rsi, rsi
jne 0x14010ed9d
cmp qword [r14], rsi
jne 0x14010ed9d
mov ecx, dword [0x1401942e0]
cmp ecx, 0xffffffff
je 0x14010ecae
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
jne 0x14010ecc8
call fcn.14010e420
mov ecx, dword [0x1401942e0]
cmp ecx, 0xffffffff
jne 0x14010ecc2
xor eax, eax
jmp 0x14010ecc8
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
lea r10, [rax + 0x28]
mov r8, qword [r10]
mov rax, qword [r8 + 8]
mov rcx, rax
mov r9, r8
cmp byte [rax + 0x19], 0
jne 0x14010ed03
nop
cmp qword [rcx + 0x20], rbx
jae 0x14010ecec
mov rcx, qword [rcx + 0x10]
jmp 0x14010ecfd
jbe 0x14010ecf7
cmp byte [r9 + 0x19], 0
cmovne r9, rcx
mov r8, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x14010ece0
cmp byte [r9 + 0x19], 0
jne 0x14010ed0d
mov rax, qword [r9]
cmp byte [rax + 0x19], 0
jne 0x14010ed2b
cmp rbx, qword [rax + 0x20]
jae 0x14010ed21
mov r9, rax
mov rax, qword [rax]
jmp 0x14010ed25
mov rax, qword [rax + 0x10]
cmp byte [rax + 0x19], 0
je 0x14010ed13
mov rax, r8
cmp r8, r9
je 0x14010ed8b
cmp byte [rax + 0x19], 0
jne 0x14010ed86
mov rcx, qword [rax + 0x10]
cmp byte [rcx + 0x19], 0
jne 0x14010ed61
mov rax, rcx
mov rdx, qword [rcx]
cmp byte [rdx + 0x19], 0
jne 0x14010ed86
nop
mov rax, rdx
mov rcx, qword [rdx]
mov rdx, rcx
cmp byte [rcx + 0x19], 0
je 0x14010ed50
jmp 0x14010ed86
mov rdx, qword [rax + 8]
cmp byte [rdx + 0x19], 0
jne 0x14010ed83
nop dword [rax + rax]
cmp rax, qword [rdx + 0x10]
jne 0x14010ed83
mov rax, rdx
mov rdx, qword [rdx + 8]
cmp byte [rdx + 0x19], 0
je 0x14010ed70
mov rax, rdx
cmp rax, r9
jne 0x14010ed33
lea rdx, [rsp + 0x28]
mov rcx, r10
call fcn.14010e0e0
jmp 0x14010ee31
mov rdx, qword [r14]
mov rax, qword [r14 + 8]
test rax, rax
je 0x14010edb3
mov ecx, 1
lock xadd dword [rax + 8], ecx
mov qword [rdi], rdx
mov rbx, qword [rdi + 8]
mov qword [rdi + 8], rax
test rbx, rbx
je 0x14010edf0
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14010edf0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14010edf0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov qword [rdi + 0x10], rsi
jmp 0x14010ee31
mov rax, qword [r14]
test rax, rax
jne 0x14010ee03
test rsi, rsi
je 0x14010ee31
mov qword [rsp + 0x30], rax
mov rax, qword [r14 + 8]
mov qword [rsp + 0x38], rax
test rax, rax
je 0x14010ee20
mov ecx, 1
lock xadd dword [rax + 8], ecx
mov r8, rsi
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.14010d900
nop
mov rbx, qword [r14 + 8]
test rbx, rbx
je 0x14010ee66
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14010ee66
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
lock xadd dword [rbx + 0xc], r15d
cmp r15d, 1
jne 0x14010ee66
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop rdi
ret