Function at 0x14003d980
Capabilities:
Get thread local storage value
Receive data
Receive data on socket

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
mov rax, qword [0x140162800]
xor rax, rsp
mov qword [rsp + 0x98], rax
mov r13d, r9d
mov rbp, r8
mov r15, rdx
mov rdi, rcx
mov r12, qword [rsp + 0x100]
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x58], rax
mov ecx, dword [0x14016685c]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14003d9e1
mov rdx, qword [rax + 8]
jmp 0x14003d9e3
xor edx, edx
mov r9d, 8
mov r8d, 0xa8
movzx ecx, byte [rsp + 0x40]
call fcn.14003d520
mov rbx, rax
mov rax, qword [r15 + 0x18]
xor r8d, r8d
mov r14d, r8d
mov ecx, r8d
test rax, rax
je 0x14003da19
mov rcx, qword [r15 + 0x10]
mov r14, rax
lock inc dword [rax + 0xc]
movzx eax, byte [r15 + 8]
mov qword [rbx + 0x20], r8
lea rdx, [0x140068450]
mov qword [rbx + 0x28], rdx
mov qword [rbx], r8
mov qword [rbx + 8], r8
mov qword [rbx + 0x10], r8
mov qword [rbx + 0x18], r8
mov dword [rbx + 0x30], r8d
mov byte [rbx + 0x38], al
mov qword [rbx + 0x40], r8
mov qword [rbx + 0x48], r8
test r14, r14
je 0x14003da5d
mov qword [rbx + 0x40], rcx
mov qword [rbx + 0x48], r14
lock inc dword [r14 + 0xc]
movups xmm0, xmmword [rbp]
movups xmmword [rbx + 0x50], xmm0
mov qword [rbx + 0x60], r8
mov qword [rbx + 0x68], r8
mov rax, qword [r12]
mov qword [rbx + 0x60], rax
mov rax, qword [r12 + 8]
mov qword [rbx + 0x68], rax
mov qword [r12], r8
mov qword [r12 + 8], r8
lea rcx, [rbx + 0x70]
mov r9, qword [rsp + 0x58]
xor edx, edx
call fcn.140045070
test r14, r14
je 0x14003dab5
mov eax, 0xffffffff
lock xadd dword [r14 + 0xc], eax
cmp eax, 1
jne 0x14003dab5
mov rax, qword [r14]
mov rcx, r14
call qword [rax + reloc.WS2_32.dll_htonl]
movups xmm0, xmmword [rbp]
movups xmmword [rsp + 0x58], xmm0
movq qword [rsp + 0x70], xmm0
movq xmm0, qword [rbp + 8]
movd dword [rsp + 0x68], xmm0
mov rax, qword [rbp + 8]
mov qword [rsp + 0x78], rax
test byte [r15 + 8], 0x10
je 0x14003db03
test rax, rax
jne 0x14003db03
mov rax, qword [rdi + 8]
lock inc dword [rax + 0x30]
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, qword [rdi + 8]
call fcn.140074b10
jmp 0x14003dbb8
mov rax, qword [rdi + 8]
lock inc dword [rax + 0x30]
mov rcx, qword [r15]
cmp rcx, 0xffffffffffffffff
jne 0x14003db2e
xor r9d, r9d
mov r8d, 0x2719
mov rdx, rbx
mov rcx, qword [rdi + 8]
call fcn.140074b10
jmp 0x14003dbb8
mov dword [rsp + 0x48], 0
mov dword [rsp + 0x58], r13d
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], rbx
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x48]
mov r8d, 1
lea rdx, [rsp + 0x68]
call qword [sym.imp.WS2_32.dll_WSARecv]
mov esi, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x40
jne 0x14003db7d
mov eax, 0x2746
jmp 0x14003db8a
mov ecx, 0x274d
cmp eax, 0x4d2
cmove eax, ecx
test esi, esi
je 0x14003dbab
cmp eax, 0x3e5
je 0x14003dbab
mov r9d, dword [rsp + 0x48]
mov r8d, eax
mov rdx, rbx
mov rcx, qword [rdi + 8]
call fcn.140074b10
jmp 0x14003dbb8
mov rdx, rbx
mov rcx, qword [rdi + 8]
call fcn.140074df0
nop
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.1400873d0
mov rbx, qword [rsp + 0xf0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret