joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1801e2240
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
push rbx
push rdi
sub rsp, 0x28
mov rbx, rcx
mov ecx, dword [0x180725558]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor edi, edi
test rax, rax
je 0x1801e2299
mov rax, qword [rax + 8]
test rax, rax
je 0x1801e2299
mov rcx, qword [rax]
test rcx, rcx
je 0x1801e2299
mov qword [rax], rdi
movzx eax, byte [rcx]
cmp rax, rbx
jb 0x1801e2294
mov byte [rcx + rbx], al
mov rax, rcx
add rsp, 0x28
pop rdi
pop rbx
ret
call fcn.18027f3dc
lea rcx, [rbx + 1]
call fcn.18027f030
cmp rbx, 0xff
movzx ecx, bl
cmova ecx, edi
mov byte [rax + rbx], cl
add rsp, 0x28
pop rdi
pop rbx
ret

Function at 0x1801e22c0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
push rbx
push rdi
sub rsp, 0x28
mov rbx, rcx
mov rdi, rdx
mov ecx, dword [0x180725558]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1801e22ed
mov r8, qword [rax + 8]
jmp 0x1801e22f0
xor r8d, r8d
cmp rdi, 0xff
ja 0x1801e2314
test r8, r8
je 0x1801e2314
cmp qword [r8], 0
jne 0x1801e2314
movzx eax, byte [rbx + rdi]
mov byte [rbx], al
mov qword [r8], rbx
add rsp, 0x28
pop rdi
pop rbx
ret
mov rcx, rbx
add rsp, 0x28
pop rdi
pop rbx
jmp fcn.18027f3dc
Function at 0x1801ef8c0
Capabilities:
Set socket configuration

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x40
xor r15d, r15d
mov rsi, r9
mov r14, rdx
mov rbp, rcx
mov edi, r15d
cmp rcx, 0xffffffffffffffff
je 0x1801ef9fc
test r8b, r8b
je 0x1801ef93a
movzx eax, byte [rdx]
test al, 8
je 0x1801ef93a
or al, 8
mov dword [rsp + 0x60], r15d
xor ecx, ecx
mov byte [rdx], al
call qword [sym.imp.WS2_32.dll_WSASetLastError]
lea r9, [rsp + 0x60]
mov dword [rsp + 0x20], 4
mov edx, 0xffff
mov r8d, 0x80
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_setsockopt]
call fcn.1801e1d10
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_closesocket]
mov edi, eax
call fcn.1801e1d10
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], eax
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rsi], xmm0
test edi, edi
je 0x1801ef9fc
call fcn.1801e1d10
mov rcx, qword [rsi + 8]
mov rax, qword [rax + 8]
cmp qword [rcx + 8], rax
jne 0x1801ef98f
cmp dword [rsi], 0x2733
je 0x1801ef9aa
call fcn.1801e1d10
mov rcx, qword [rsi + 8]
mov rax, qword [rax + 8]
cmp qword [rcx + 8], rax
jne 0x1801efa15
cmp dword [rsi], 0x4d5
jne 0x1801efa15
lea r8, [rsp + 0x60]
mov dword [rsp + 0x60], r15d
mov edx, 0x8004667e
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_ioctlsocket]
and byte [r14], 0xfc
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_closesocket]
mov edi, eax
call fcn.1801e1d10
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], eax
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rsi], xmm0
test edi, edi
jne 0x1801efa15
lea rax, [0x180717d40]
mov dword [rsp + 0x30], r15d
mov qword [rsp + 0x38], rax
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rsi], xmm0
mov rbx, qword [rsp + 0x68]
mov eax, edi
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop rdi
ret
Function at 0x1801efa30
Capabilities:
Connect socket

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
mov rdi, r9
mov rsi, r8
mov rbp, rdx
mov rbx, rcx
cmp rcx, 0xffffffffffffffff
jne 0x1801efa74
mov dword [rsp + 0x20], 0x2719
call fcn.1801e1d10
mov qword [rsp + 0x28], rax
mov eax, ebx
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rdi], xmm0
jmp 0x1801efaca
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov r8d, esi
mov rdx, rbp
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_connect]
mov esi, eax
call fcn.1801e1d10
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], eax
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rdi], xmm0
test esi, esi
jne 0x1801efac8
lea rax, [0x180717d40]
mov dword [rsp + 0x20], esi
mov qword [rsp + 0x28], rax
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rdi], xmm0
mov eax, esi
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret

Function at 0x1801efae0
Capabilities:
Set socket configuration

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0x40
mov rsi, rdx
mov rbx, rcx
mov edx, dword [rdx]
sub edx, 0x79
je 0x1801efb27
sub edx, 0x450
je 0x1801efb1d
sub edx, 6
je 0x1801efb13
cmp edx, 1
jne 0x1801efb41
mov dword [rsp + 0x30], 0x2751
jmp 0x1801efb2f
mov dword [rsp + 0x30], 0x2743
jmp 0x1801efb2f
mov dword [rsp + 0x30], 0x274d
jmp 0x1801efb2f
mov dword [rsp + 0x30], 0x274c
call fcn.1801e1d10
mov qword [rsp + 0x38], rax
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rsi], xmm0
cmp dword [rsi], 0
jne 0x1801efbd1
cmp rbx, 0xffffffffffffffff
jne 0x1801efb5f
mov dword [rsp + 0x30], 0x2719
call fcn.1801e1d10
jmp 0x1801efbc4
xor ecx, ecx
mov qword [rsp + 0x50], rdi
call qword [sym.imp.WS2_32.dll_WSASetLastError]
xor r9d, r9d
mov dword [rsp + 0x20], 0
mov edx, 0xffff
mov r8d, 0x7010
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_setsockopt]
mov edi, eax
call fcn.1801e1d10
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov qword [rsp + 0x38], rbx
test edi, edi
mov rdi, qword [rsp + 0x50]
mov dword [rsp + 0x30], eax
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rsi], xmm0
jne 0x1801efbd1
mov dword [rsp + 0x30], 0
lea rax, [0x180717d40]
mov qword [rsp + 0x38], rax
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rsi], xmm0
mov rbx, qword [rsp + 0x58]
add rsp, 0x40
pop rsi
ret
Function at 0x1801efca0
Capabilities:
Set socket configuration

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
mov esi, ecx
mov rbp, r9
xor ecx, ecx
mov ebx, r8d
mov edi, edx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
xor r9d, r9d
mov dword [rsp + 0x28], 1
mov r8d, ebx
mov dword [rsp + 0x20], 0
mov edx, edi
mov ecx, esi
call qword [sym.imp.WS2_32.dll_WSASocketW]
mov rdi, rax
call fcn.1801e1d10
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], eax
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rbp], xmm0
cmp rdi, 0xffffffffffffffff
jne 0x1801efd14
mov rax, rdi
jmp 0x1801efd62
cmp esi, 0x17
jne 0x1801efd42
lea r9, [rsp + 0x68]
mov dword [rsp + 0x68], 0
mov edx, 0x29
mov dword [rsp + 0x20], 4
mov r8d, 0x1b
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_setsockopt]
lea rax, [0x180717d40]
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x38], rax
mov rax, rdi
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rbp], xmm0
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
Function at 0x1801eff10
Capabilities:
Resolve dns

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x30
mov rax, qword [rdx + 8]
mov rbx, r9
mov rdi, r8
mov rsi, rcx
test rax, rax
je 0x1801f00ce
cmp dword [rax + 8], 0
je 0x1801f00ce
test r8, r8
je 0x1801eff4a
cmp byte [r8], 0
jne 0x1801eff4c
xor edi, edi
test rbx, rbx
je 0x1801eff57
cmp byte [r9], 0
jne 0x1801eff59
xor ebx, ebx
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov r9, qword [rsp + 0x68]
mov rdx, rbx
mov r8, qword [rsp + 0x60]
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_getaddrinfo]
mov edx, eax
cmp eax, 0x273f
jg 0x1801f0032
je 0x1801f0016
test eax, eax
je 0x1801efff8
sub edx, 8
je 0x1801effdc
sub edx, 0x271e
je 0x1801effc0
cmp edx, 0x16
jne 0x1801f004c
mov dword [rsp + 0x20], 0x273c
call fcn.1801e1d10
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
jmp 0x1801f00e5
mov dword [rsp + 0x20], 0x2726
call fcn.1801e1d10
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
jmp 0x1801f00e5
mov dword [rsp + 0x20], reloc.WS2_32.dll_ntohl
call fcn.1801e1d10
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
jmp 0x1801f00e5
lea rax, [0x180717d40]
mov dword [rsp + 0x20], 0
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
jmp 0x1801f00e5
mov dword [rsp + 0x20], 0x273f
call fcn.1801e1d10
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
jmp 0x1801f00e5
sub edx, 0x277d
je 0x1801f00b5
sub edx, 0x37c
je 0x1801f009c
sub edx, 1
je 0x1801f0083
cmp edx, 1
je 0x1801f006a
call fcn.1801e1d10
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], rbx
movaps xmm0, xmmword [rsp + 0x20]
jmp 0x1801f00e5
mov dword [rsp + 0x20], 0x2afb
call fcn.1801e1d10
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
jmp 0x1801f00e5
mov dword [rsp + 0x20], 0x2afa
call fcn.1801e1d10
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
jmp 0x1801f00e5
mov dword [rsp + 0x20], 0x2af9
call fcn.1801e1d10
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
jmp 0x1801f00e5
mov dword [rsp + 0x20], 0x277d
call fcn.1801e1d10
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
jmp 0x1801f00e5
mov dword [rsp + 0x20], 0x3e3
call fcn.1801e1d10
mov qword [rsp + 0x28], rax
movups xmm0, xmmword [rsp + 0x20]
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x40]
movups xmmword [rsi], xmm0
movups xmmword [rax], xmm0
mov rax, rsi
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
Function at 0x1801f0110
Capabilities:
Set socket configuration

Disassembly:
push rdi
sub rsp, 0x20
mov rdi, qword [rcx]
cmp rdi, 0xffffffffffffffff
je 0x1801f01cd
mov qword [rsp + 0x38], rbx
xor ecx, ecx
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], rsi
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_closesocket]
mov ebx, eax
call fcn.1801e1d10
mov rbp, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
test ebx, ebx
mov rbx, qword [rsp + 0x38]
mov esi, eax
je 0x1801f01c3
call fcn.1801e1d10
mov rcx, qword [rax + 8]
cmp qword [rbp + 8], rcx
jne 0x1801f0175
cmp esi, 0x2733
je 0x1801f018c
call fcn.1801e1d10
mov rax, qword [rax + 8]
cmp qword [rbp + 8], rax
jne 0x1801f01c3
cmp esi, 0x4d5
jne 0x1801f01c3
lea r8, [rsp + 0x30]
mov dword [rsp + 0x30], 0
mov edx, 0x8004667e
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_ioctlsocket]
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_closesocket]
call fcn.1801e1d10
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
Function at 0x1801f0790
Capabilities:
Set socket configuration

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x20
mov rdi, qword [rcx]
mov rsi, rcx
cmp rdi, 0xffffffffffffffff
je 0x1801f0842
xor ecx, ecx
mov qword [rsp + 0x48], r14
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_closesocket]
mov ebx, eax
call fcn.1801e1d10
mov r14, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebp, eax
test ebx, ebx
je 0x1801f083d
call fcn.1801e1d10
mov rcx, qword [rax + 8]
cmp qword [r14 + 8], rcx
jne 0x1801f07ef
cmp ebp, 0x2733
je 0x1801f0806
call fcn.1801e1d10
mov rax, qword [rax + 8]
cmp qword [r14 + 8], rax
jne 0x1801f083d
cmp ebp, 0x4d5
jne 0x1801f083d
lea r8, [rsp + 0x40]
mov dword [rsp + 0x40], 0
mov edx, 0x8004667e
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_ioctlsocket]
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_closesocket]
call fcn.1801e1d10
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r14, qword [rsp + 0x48]
mov rdi, qword [rsi + 8]
cmp rdi, 0xffffffffffffffff
je 0x1801f08dc
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_closesocket]
mov ebx, eax
call fcn.1801e1d10
mov rbp, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
test ebx, ebx
je 0x1801f08dc
call fcn.1801e1d10
mov rcx, qword [rax + 8]
cmp qword [rbp + 8], rcx
jne 0x1801f088e
cmp esi, 0x2733
je 0x1801f08a5
call fcn.1801e1d10
mov rax, qword [rax + 8]
cmp qword [rbp + 8], rax
jne 0x1801f08dc
cmp esi, 0x4d5
jne 0x1801f08dc
lea r8, [rsp + 0x40]
mov dword [rsp + 0x40], 0
mov edx, 0x8004667e
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_ioctlsocket]
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_closesocket]
call fcn.1801e1d10
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop rdi
pop rsi
pop rbp
ret

Function at 0x1801f08f0
Capabilities:
Send data
Send data on socket

Disassembly:
push rbx
sub rsp, 0x50
mov rbx, qword [rcx + 8]
lea rax, [rsp + 0x60]
xor ecx, ecx
mov qword [rsp + 0x48], rax
mov byte [rsp + 0x60], 0
mov dword [rsp + 0x40], 1
call qword [sym.imp.WS2_32.dll_WSASetLastError]
xor eax, eax
lea r9, [rsp + 0x68]
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov r8d, 1
mov rcx, rbx
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x68], eax
call qword [sym.imp.WS2_32.dll_WSASend]
call fcn.1801e1d10
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x40
je 0x1801f095d
cmp eax, 0x4d2
jne 0x1801f0962
call fcn.1801e1d10
add rsp, 0x50
pop rbx
ret
Function at 0x1801f1bc0
Capabilities:
Send data
Send data on socket

Disassembly:
push rdi
sub rsp, 0x40
mov rax, qword [rcx + 8]
mov r10, r9
mov r11, r8
mov rdi, rcx
lock inc dword [rax + 0x30]
cmp byte [rsp + 0x78], 0
je 0x1801f1bfa
mov rdx, qword [rsp + 0x80]
xor r9d, r9d
mov rcx, qword [rcx + 8]
xor r8d, r8d
add rsp, 0x40
pop rdi
jmp fcn.1801eedd0
mov rcx, qword [rdx]
cmp rcx, 0xffffffffffffffff
jne 0x1801f1c22
mov rdx, qword [rsp + 0x80]
xor r9d, r9d
mov rcx, qword [rdi + 8]
mov r8d, 0x2719
add rsp, 0x40
pop rdi
jmp fcn.1801eedd0
xor eax, eax
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x78]
mov dword [rsp + 0x78], eax
mov r8d, r10d
mov eax, dword [rsp + 0x70]
mov rdx, r11
mov qword [rsp + 0x58], rsi
mov rsi, qword [rsp + 0x80]
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], eax
call qword [sym.imp.WS2_32.dll_WSASend]
mov ebx, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x4d2
mov ecx, 0x274d
cmove eax, ecx
test ebx, ebx
mov rbx, qword [rsp + 0x50]
je 0x1801f1ca1
cmp eax, 0x3e5
je 0x1801f1ca1
mov r9d, dword [rsp + 0x78]
mov r8d, eax
mov rcx, qword [rdi + 8]
mov rdx, rsi
call fcn.1801eedd0
mov rsi, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret
mov rcx, qword [rdi + 8]
mov rdx, rsi
call fcn.1801eed30
mov rsi, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret

Function at 0x1801f1cc0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push rbx
sub rsp, 0x40
mov rax, qword [rcx + 8]
mov r10, r9
mov r11, r8
mov rbx, rcx
lock inc dword [rax + 0x30]
cmp byte [rsp + 0x78], 0
je 0x1801f1cfa
mov rdx, qword [rsp + 0x80]
xor r9d, r9d
mov rcx, qword [rcx + 8]
xor r8d, r8d
add rsp, 0x40
pop rbx
jmp fcn.1801eedd0
mov rcx, qword [rdx]
cmp rcx, 0xffffffffffffffff
jne 0x1801f1d22
mov rdx, qword [rsp + 0x80]
xor r9d, r9d
mov rcx, qword [rbx + 8]
mov r8d, 0x2719
add rsp, 0x40
pop rbx
jmp fcn.1801eedd0
mov eax, dword [rsp + 0x70]
lea r9, [rsp + 0x78]
xor edx, edx
mov dword [rsp + 0x50], eax
mov qword [rsp + 0x30], rdx
lea rax, [rsp + 0x50]
mov dword [rsp + 0x78], edx
mov r8d, r10d
mov qword [rsp + 0x58], rsi
mov rdx, r11
mov qword [rsp + 0x60], rdi
mov rdi, qword [rsp + 0x80]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_WSARecv]
mov esi, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x40
jne 0x1801f1d7b
mov eax, 0x2746
jmp 0x1801f1d88
cmp eax, 0x4d2
mov ecx, 0x274d
cmove eax, ecx
test esi, esi
mov rsi, qword [rsp + 0x58]
je 0x1801f1db7
cmp eax, 0x3e5
je 0x1801f1db7
mov r9d, dword [rsp + 0x78]
mov r8d, eax
mov rcx, qword [rbx + 8]
mov rdx, rdi
call fcn.1801eedd0
mov rdi, qword [rsp + 0x60]
add rsp, 0x40
pop rbx
ret
mov rcx, qword [rbx + 8]
mov rdx, rdi
call fcn.1801eed30
mov rdi, qword [rsp + 0x60]
add rsp, 0x40
pop rbx
ret
Function at 0x1801f2450
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
mov rax, qword [rcx + 0x28]
xor r14d, r14d
test rax, rax
mov rbp, rcx
mov ecx, dword [0x180725558]
mov rdi, r8
mov rsi, rdx
lea rbx, [rax + 0x28]
cmove rbx, r14
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1801f24a4
cmp qword [rax], rbx
je 0x1801f24cd
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x1801f2496
mov rcx, qword [rsi]
add rcx, 0x38
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [rsi]
cmp byte [rax + 0x60], r14b
je 0x1801f2518
mov qword [rdi + 0x20], r14
mov rcx, qword [rax + 0x70]
test rcx, rcx
je 0x1801f2501
mov qword [rcx + 0x20], rdi
jmp 0x1801f2505
mov rcx, qword [rsi]
mov rbx, qword [rax + 8]
add rcx, 0x38
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test rbx, rbx
je 0x1801f24b1
mov rax, qword [rsi]
cmp byte [rax + 0x60], r14b
jne 0x1801f24b1
mov byte [rax + 0x60], 1
mov rcx, qword [rsi]
add rcx, 0x38
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, 1
jmp 0x1801f255f
mov qword [rax + 0x68], rdi
mov qword [rax + 0x70], rdi
mov rcx, qword [rsi]
add rcx, 0x38
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x1801f255d
mov byte [rax + 0x60], 1
mov rcx, qword [rsi]
add rcx, 0x38
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [rsi]
mov qword [rdi + 0x20], r14
mov rcx, qword [rax + 0x80]
test rcx, rcx
je 0x1801f2542
mov qword [rcx + 0x20], rdi
jmp 0x1801f2546
mov qword [rax + 0x78], rdi
mov qword [rax + 0x80], rdi
mov rdx, qword [rsi]
mov rcx, qword [rbp + 0x28]
lock inc dword [rcx + 0x30]
call fcn.1801e25b0
xor al, al
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
Function at 0x1801feee0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
mov rdi, rdx
mov rsi, rcx
mov rax, qword [rcx + 0x10]
lea rbx, [rax + 0x28]
xor ebp, ebp
test rax, rax
cmove rbx, rbp
mov ecx, dword [0x180725558]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1801fef2e
nop dword [rax]
cmp qword [rax], rbx
je 0x1801fefa0
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x1801fef20
mov rdx, rdi
mov ecx, 0x58
call fcn.1801e2240
mov rdx, rax
mov qword [rax + 0x20], rbp
lea rax, [0x180202450]
mov qword [rdx + 0x28], rax
mov qword [rdx], rbp
mov qword [rdx + 8], rbp
mov qword [rdx + 0x10], rbp
mov qword [rdx + 0x18], rbp
mov dword [rdx + 0x30], ebp
mov rcx, qword [rdi]
mov qword [rdx + 0x38], rcx
mov rax, qword [rdi + 8]
mov qword [rdx + 0x40], rax
movzx eax, word [rdi + 0x10]
mov word [rdx + 0x48], ax
mov rax, qword [rdi + 0x18]
mov qword [rdx + 0x50], rax
mov rcx, qword [rsi + 0x10]
lock inc dword [rcx + 0x30]
call fcn.1801e25b0
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
cmp qword [rax + 8], rbp
je 0x1801fef2e
nop
mov rdx, rdi
mov rcx, rdi
call fcn.18020e790
nop
nop
jmp 0x1801fef8b
Function at 0x1802072c0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0x30]
sub rsp, 0x130
mov rax, qword [0x180717100]
xor rax, rsp
mov qword [rbp + 0x28], rax
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
xor r14d, r14d
lea rdx, [rcx + 0x10]
lea rcx, [rbp - 0x80]
call fcn.18021ae90
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 8], xmm0
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], r14
mov rax, qword [rdi + 8]
test rax, rax
je 0x18020731d
lock inc dword [rax + 8]
mov rax, qword [rdi]
mov qword [rbp + 8], rax
mov rax, qword [rdi + 8]
mov qword [rbp + 0x10], rax
mov rax, qword [rdi + 0x10]
mov qword [rbp + 0x18], rax
lea rdi, [rsi + 8]
mov rsi, qword [rsi]
mov rbx, qword [rdi]
mov ecx, dword [0x180725560]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x180207362
nop
cmp qword [rax], rbx
je 0x18020749d
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x180207350
lea rax, [rbp - 0x80]
mov qword [rsp + 0x50], rax
lea rdx, [rbp - 0x80]
mov ecx, 0xd8
call fcn.1801e2240
mov rbx, rax
mov qword [rax + 0x20], r14
lea rax, [fcn.18021b100]
mov qword [rbx + 0x28], rax
mov qword [rbx], r14
mov qword [rbx + 8], r14
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], r14
mov dword [rbx + 0x30], r14d
lea rcx, [rbx + 0x38]
lea rdx, [rbp - 0x80]
call fcn.18021c140
mov r8, rbx
mov rdx, rdi
mov rcx, rsi
call fcn.1801f2450
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x58], r14
test al, al
je 0x18020743b
mov rax, qword [rdi]
mov qword [rsp + 0x28], rax
mov ecx, dword [0x180725560]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x28]
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x28]
mov ecx, dword [0x180725560]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
nop
mov rcx, qword [rsi + 0x28]
mov qword [rsp + 0x40], rcx
mov rax, qword [rdi]
mov qword [rsp + 0x48], rax
xor r9d, r9d
lea r8, [rsp + 0x68]
mov rdx, rbx
call fcn.18021b100
nop
lea rcx, [rsp + 0x40]
call fcn.1801f2230
nop
mov rdx, qword [rsp + 0x38]
mov ecx, dword [0x180725560]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
nop
mov rbx, qword [rbp + 0x10]
test rbx, rbx
je 0x180207470
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x180207470
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x180207470
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
lea rcx, [rbp - 0x78]
call fcn.1801fb0b0
mov rcx, qword [rbp + 0x28]
xor rcx, rsp
call fcn.18027f010
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
cmp qword [rax + 8], 0
je 0x180207362
nop
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x80]
call fcn.180225f90
nop
nop
jmp 0x18020743b
Function at 0x1802077a0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x110
mov rax, qword [0x180717100]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov rbx, rdx
mov rsi, rcx
mov byte [rsp + 0x21], 1
lea rcx, [rsp + 0x28]
call fcn.18020bb20
movups xmm0, xmmword [rbx + 0xc8]
movaps xmmword [rsp + 0xf0], xmm0
mov ecx, dword [0x180725558]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor ebx, ebx
test rax, rax
je 0x180207814
mov rax, qword [rax + 8]
test rax, rax
je 0x180207814
mov rcx, qword [rax]
test rcx, rcx
je 0x180207814
mov qword [rax], rbx
call fcn.18027f3dc
mov ecx, 0x121
call fcn.18027f030
mov rdi, rax
mov byte [rax + 0x120], bl
mov qword [rax + 0x20], rbx
lea rax, [0x18021b2b0]
mov qword [rdi + 0x28], rax
mov qword [rdi], rbx
mov qword [rdi + 8], rbx
mov qword [rdi + 0x10], rbx
mov qword [rdi + 0x18], rbx
mov dword [rdi + 0x30], ebx
movzx ecx, byte [rsp + 0x21]
mov byte [rdi + 0x39], cl
mov byte [rsp + 0x21], bl
lea rdx, [rsp + 0x28]
lea rcx, [rdi + 0x40]
call fcn.18020bb20
movaps xmm0, xmmword [rsp + 0xf0]
movups xmmword [rdi + 0x108], xmm0
mov rax, qword [rsi]
mov rcx, qword [rax + 0x10]
lock inc dword [rcx + 0x30]
mov rdx, rdi
call fcn.1801e25b0
nop
lea rcx, [rsp + 0x28]
call fcn.1801ffd60
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.18027f010
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret