joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140190290
Capabilities:
Create thread

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x30
lea rbp, [rsp + 0x30]
mov rbx, r8
mov r14, rdx
mov rdi, rcx
mov rax, qword [str.Lp__]
movzx eax, byte [rax]
mov r8d, 0x10
xor edx, edx
call fcn.1401876d0
test rax, rax
je 0x140190354
mov rsi, rax
mov qword [rax], r14
mov qword [rax + 8], rbx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x1401903b0]
xor ebx, ebx
xor ecx, ecx
mov rdx, rdi
mov r9, rax
call sub.KERNEL32.dll_CreateThread
mov rdx, rax
test rax, rax
jne 0x140190346
mov rbx, qword [rsi]
mov r14, qword [rsi + 8]
mov rcx, rbx
call qword [r14]
cmp qword [r14 + 8], 0
je 0x140190321
mov r8, qword [r14 + 0x10]
mov rcx, rbx
call fcn.140185f30
mov rcx, qword [0x1403c7148]
xor edx, edx
mov r8, rsi
call fcn.140212404
call sub.KERNEL32.dll_GetLastError
mov edx, eax
shl rdx, 0x20
or rdx, 2
mov ebx, 1
mov rax, rbx
add rsp, 0x30
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
mov ecx, 8
mov edx, 0x10
call fcn.140003b50
ud2

Function at 0x140190580
Capabilities:
Allocate thread local storage

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov rsi, rcx
cmp qword [rcx], 0
je 0x140190610
mov rax, qword [0x1403cb048]
mov dword [rbp], 0
lea rdi, [rsi + 0x10]
mov r8, rbp
mov rcx, rdi
xor edx, edx
xor r9d, r9d
call sub.KERNEL32.dll_InitOnceBeginInitialize
mov dword [rbp + 4], eax
cmp eax, 1
jne 0x14019064f
cmp dword [rbp], 0
je 0x140190633
call sub.KERNEL32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x140190672
mov ebx, eax
inc eax
mov dword [rsi + 0x18], eax
mov rax, qword [0x1403c7170]
nop word cs:[rax + rax]
mov qword [rsi + 8], rax
lock cmpxchg qword [0x1403c7170], rsi
jne 0x1401905f0
mov rcx, rdi
xor edx, edx
xor r8d, r8d
call sub.KERNEL32.dll_InitOnceComplete
mov eax, ebx
jmp 0x140190646
call sub.KERNEL32.dll_TlsAlloc
mov dword [rbp + 4], eax
cmp eax, 0xffffffff
je 0x1401906b4
mov ecx, eax
inc ecx
xor eax, eax
lock cmpxchg dword [rsi + 0x18], ecx
jne 0x140190638
mov eax, dword [rbp + 4]
jmp 0x140190646
mov eax, dword [rsi + 0x18]
jmp 0x140190644
mov ecx, dword [rbp + 4]
mov esi, eax
call sub.KERNEL32.dll_TlsFree
mov eax, esi
dec eax
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop rbp
ret
mov qword [rbp - 0x30], 0
lea rdx, [0x14032afc0]
lea r9, str.library_std_src_syspalwindows_thread_local_key.rs
lea rcx, [rbp + 4]
lea r8, [rbp - 0x30]
call fcn.140165d80
mov rcx, rdi
mov edx, 4
xor r8d, r8d
call sub.KERNEL32.dll_InitOnceComplete
lea rax, str.out_of_TLS_indexes
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], 1
mov qword [rbp - 0x20], 8
xorps xmm0, xmm0
movups xmmword [rbp - 0x18], xmm0
lea rdx, str.library_std_src_syspalwindows_thread_local_key.rs
lea rcx, [rbp - 0x30]
call fcn.140011a80
lea rax, str.out_of_TLS_indexes
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], 1
mov qword [rbp - 0x20], 8
xorps xmm0, xmm0
movups xmmword [rbp - 0x18], xmm0
lea rcx, [rbp + 4]
lea rdx, [rbp - 0x30]
call fcn.140165d30
int3
Function at 0x1401935c0
Capabilities:
Resolve dns

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x208
lea rbp, [rsp + 0x80]
mov rax, rdx
mov rsi, rcx
mov rdx, qword [rdx]
mov rdi, qword [rax + 8]
movzx eax, word [rax + 0x10]
mov word [rbp + 0x186], ax
mov rax, qword [0x1403c7150]
cmp rax, 3
jne 0x1401936f0
lea rax, [rbp + 0x186]
mov qword [rbp + 0x170], rax
cmp rdi, 0x17f
ja 0x140193700
lea rbx, [rbp - 0x60]
mov rcx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov byte [rbp + rdi - 0x60], 0
inc rdi
lea rcx, [rbp + 0x158]
mov rdx, rbx
mov r8, rdi
call fcn.14000f780
cmp qword [rbp + 0x158], 0
je 0x140193661
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rsi + 8], rax
mov qword [rsi], 1
jmp 0x1401936e1
mov rcx, qword [rbp + 0x160]
xorps xmm0, xmm0
movaps xmmword [rbp + 0x120], xmm0
movaps xmmword [rbp + 0x140], xmm0
movaps xmmword [rbp + 0x130], xmm0
mov dword [rbp + 0x128], 1
mov qword [rbp + 0x178], 0
lea r8, [rbp + 0x120]
lea r9, [rbp + 0x178]
xor edx, edx
call sub.WS2_32.dll_getaddrinfo
test eax, eax
je 0x1401936c2
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov ecx, 1
jmp 0x1401936da
mov rax, qword [rbp + 0x178]
movzx ecx, word [rbp + 0x186]
mov qword [rsi + 0x10], rax
mov word [rsi + 0x18], cx
xor ecx, ecx
mov qword [rsi + 8], rax
mov qword [rsi], rcx
mov rax, rsi
add rsp, 0x208
pop rbx
pop rdi
pop rsi
pop rbp
ret
mov rbx, rdx
call fcn.140184060
mov rdx, rbx
jmp 0x1401935fc
lea r9, [rbp + 0x170]
mov rcx, rsi
mov r8, rdi
call fcn.1401846a0
jmp 0x1401936e1
Function at 0x140193850
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push rbp
push rsi
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
mov rax, rdx
mov rsi, rcx
xorps xmm0, xmm0
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp], xmm0
movaps xmmword [rbp - 0x10], xmm0
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x40], xmm0
movaps xmmword [rbp - 0x50], xmm0
movaps xmmword [rbp - 0x60], xmm0
mov dword [rbp + 0x34], pe_nt_image_headers64
lea rdx, [rbp - 0x60]
lea r8, [rbp + 0x34]
mov rcx, rax
call sub.WS2_32.dll_getsockname
cmp eax, 0xffffffff
je 0x1401938f9
mov eax, dword [rbp + 0x34]
movzx ecx, word [rbp - 0x60]
cmp ecx, 2
je 0x140193908
cmp ecx, 0x17
jne 0x140193926
cmp eax, 0x1b
jbe 0x140193940
movzx eax, word [rbp - 0x5e]
rol ax, 8
mov ecx, dword [rbp - 0x5c]
mov edx, dword [rbp - 0x48]
movups xmm0, xmmword [rbp - 0x58]
movups xmmword [rbp + 0x24], xmm0
mov word [rsi], 1
movups xmm0, xmmword [rbp + 0x22]
movups xmmword [rsi + 2], xmm0
movzx r8d, word [rbp + 0x32]
mov word [rsi + 0x12], r8w
mov dword [rsi + 0x14], ecx
mov dword [rsi + 0x18], edx
mov word [rsi + 0x1c], ax
jmp 0x140193936
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
jmp 0x14019392d
cmp eax, 0xf
jbe 0x140193958
movzx eax, word [rbp - 0x5e]
rol ax, 8
mov ecx, dword [rbp - 0x5c]
mov word [rsi], 0
mov word [rsi + 6], ax
mov dword [rsi + 2], ecx
jmp 0x140193936
lea rax, str.invalid_argument
mov qword [rsi + 8], rax
mov word [rsi], 2
add rsp, 0xb8
pop rsi
pop rbp
ret
lea rcx, str.assertion_failed:_len___mem::size_of::_c::sockaddr_in6___
lea r8, str.library_std_src_sys_common_net.rsassertion_failed:_len___mem::size_of::_c::sockaddr_in___
mov edx, 0x3a
call fcn.140011b20
lea rcx, [0x14032ba71]
lea r8, str.library_std_src_sys_common_net.rsassertion_failed:_len___mem::size_of::_c::sockaddr_in___
mov edx, 0x39
call fcn.140011b20
int3

Function at 0x140193a70
Capabilities:
Connect socket

Disassembly:
push rbp
sub rsp, 0x40
lea rbp, [rsp + 0x40]
mov rax, r8
test rdx, rdx
jne 0x140193af7
cmp word [rax], 0
je 0x140193aa8
mov r9d, dword [rax + 0x14]
movzx edx, word [rax + 0x1c]
rol dx, 8
mov r10d, dword [rax + 0x18]
movups xmm0, xmmword [rax + 4]
mov r8d, 0x1c
mov ax, 0x17
jmp 0x140193ac1
movzx edx, word [rax + 6]
rol dx, 8
mov r9d, dword [rax + 2]
xorps xmm0, xmm0
mov r8d, 0x10
mov ax, 2
mov word [rbp - 0x1c], ax
mov word [rbp - 0x1a], dx
mov dword [rbp - 0x18], r9d
movups xmmword [rbp - 0x14], xmm0
mov dword [rbp - 4], r10d
mov rcx, qword [rcx]
lea rdx, [rbp - 0x1c]
call sub.WS2_32.dll_connect
cmp eax, 0xffffffff
je 0x140193aea
xor eax, eax
jmp 0x140193af7
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
add rsp, 0x40
pop rbp
ret
Function at 0x140197da0
Capabilities:
Read file via mapping

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd0
lea rbp, [rsp + 0x80]
mov rax, r8
mov rsi, rcx
mov dword [rbp + 8], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
mov dword [rbp + 0x20], 7
mov qword [rbp + 0x24], 0
mov word [rbp + 0x2c], 0
mov byte [rbp + 0x28], 1
lea r8, [rbp + 8]
mov rcx, rdx
mov rdx, rax
call fcn.1401885f0
mov rdi, rdx
test rax, rax
je 0x140197e27
mov qword [rbp - 0x40], rax
lea rcx, [rbp - 0x38]
mov qword [rbp - 0x38], rdi
call fcn.140163240
mov qword [rsi], 0
add rsp, 0xd0
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret
lea rcx, [rbp + 8]
mov rdx, rdi
call fcn.140188850
cmp dword [rbp + 8], 2
jne 0x140197e4b
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x40], 2
jmp 0x140197e7a
movups xmm0, xmmword [rbp + 8]
movups xmm1, xmmword [rbp + 0x18]
movups xmm2, xmmword [rbp + 0x28]
movups xmm3, xmmword [rbp + 0x38]
movaps xmmword [rbp - 0x40], xmm0
mov rax, qword [rbp + 0x48]
mov qword [rbp], rax
movaps xmmword [rbp - 0x10], xmm3
movaps xmmword [rbp - 0x20], xmm2
movaps xmmword [rbp - 0x30], xmm1
cmp qword [rbp - 0x40], 2
jne 0x140197ea3
lea rcx, [rbp - 0x38]
call fcn.140163240
mov qword [rsi], 0
mov rcx, rdi
add rsp, 0xd0
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
jmp sub.KERNEL32.dll_CloseHandle
mov r12, qword [rbp - 8]
test rdi, rdi
je 0x140197ef1
mov qword [rbp - 0x40], 0
call sub.KERNEL32.dll_GetCurrentProcess
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r9, [rbp - 0x40]
mov rcx, rax
mov rdx, rdi
mov r8, rax
call sub.KERNEL32.dll_DuplicateHandle
test eax, eax
je 0x140197f6d
mov rbx, qword [rbp - 0x40]
jmp 0x140197ef3
xor ebx, ebx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rbx
xor edx, edx
mov r8d, 2
xor r9d, r9d
call sub.KERNEL32.dll_CreateFileMappingA
test rax, rax
je 0x140197f5c
mov r14, rax
mov qword [rsp + 0x20], r12
mov rcx, rax
mov edx, 4
xor r8d, r8d
xor r9d, r9d
call sub.KERNEL32.dll_MapViewOfFile
mov r15, rax
mov rcx, r14
call sub.KERNEL32.dll_CloseHandle
test r15, r15
je 0x140197f5c
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], r12
mov qword [rsi], 1
jmp 0x140197f96
mov qword [rsi], 0
mov rcx, rbx
call sub.KERNEL32.dll_CloseHandle
jmp 0x140197f96
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rbp + 8], 1
lea rcx, [rbp + 0x10]
mov qword [rbp + 0x10], rax
call fcn.140163240
mov qword [rsi], 0
mov rcx, rdi
call sub.KERNEL32.dll_CloseHandle
jmp 0x140197e15
Function at 0x140199de0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbp
push rsi
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov ecx, dword [0x140287ce8]
test ecx, ecx
je 0x140199ea8
dec ecx
call fcn.140212314
cmp rax, 2
jb 0x140199e16
cmp qword [rax + 8], 0
je 0x140199e16
add rax, 0x10
jmp 0x140199ea1
mov ecx, dword [0x140287ce8]
test ecx, ecx
je 0x140199ebb
dec ecx
call fcn.140212314
cmp rax, 1
je 0x140199e9f
test rax, rax
jne 0x140199e82
mov rax, qword [str.Lp__]
movzx eax, byte [rax]
mov r8d, 0x20
xor edx, edx
call fcn.1401876d0
test rax, rax
je 0x140199ee4
lea rcx, [0x140287cd0]
mov qword [rax], rcx
mov qword [rax + 8], 0
mov ecx, dword [0x140287ce8]
test ecx, ecx
je 0x140199ece
dec ecx
mov rdx, rax
mov rsi, rax
call fcn.14021230c
mov rax, rsi
mov qword [rax + 8], 1
mov rcx, rax
add rax, 0x10
mov qword [rcx + 0x10], 0
mov byte [rcx + 0x18], 0
jmp 0x140199ea1
xor eax, eax
add rsp, 0x28
pop rsi
pop rbp
ret
lea rcx, [0x140287cd0]
call fcn.140190580
mov ecx, eax
jmp 0x140199dfb
lea rcx, [0x140287cd0]
call fcn.140190580
mov ecx, eax
jmp 0x140199e26
lea rcx, [0x140287cd0]
mov rsi, rax
call fcn.140190580
mov ecx, eax
mov rax, rsi
jmp 0x140199e74
mov ecx, 8
mov edx, 0x20
call fcn.140003b50
int3

Function at 0x140199f00
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbp
push rsi
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov ecx, dword [0x140287d08]
test ecx, ecx
je 0x140199fa1
dec ecx
call fcn.140212314
cmp rax, 2
jb 0x140199f2c
cmp byte [rax + 8], 0
jne 0x140199f92
mov ecx, dword [0x140287d08]
test ecx, ecx
je 0x140199fb4
dec ecx
call fcn.140212314
cmp rax, 1
je 0x140199f98
test rax, rax
jne 0x140199f8c
mov rax, qword [str.Lp__]
movzx eax, byte [rax]
mov r8d, 0x10
xor edx, edx
call fcn.1401876d0
test rax, rax
je 0x140199fdd
lea rcx, [0x140287cf0]
mov qword [rax], rcx
mov byte [rax + 8], 0
mov ecx, dword [0x140287d08]
test ecx, ecx
je 0x140199fc7
dec ecx
mov rdx, rax
mov rsi, rax
call fcn.14021230c
mov rax, rsi
mov word [rax + 8], 1
add rax, 9
jmp 0x140199f9a
xor eax, eax
add rsp, 0x28
pop rsi
pop rbp
ret
lea rcx, [0x140287cf0]
call fcn.140190580
mov ecx, eax
jmp 0x140199f1b
lea rcx, [0x140287cf0]
call fcn.140190580
mov ecx, eax
jmp 0x140199f38
lea rcx, [0x140287cf0]
mov rsi, rax
call fcn.140190580
mov ecx, eax
mov rax, rsi
jmp 0x140199f7e
mov ecx, 8
mov edx, 0x10
call fcn.140003b50
int3
Function at 0x140199ff0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x40
lea rbp, [rsp + 0x40]
mov rsi, rcx
mov ecx, dword [0x140287d28]
test ecx, ecx
je 0x14019a10c
dec ecx
call fcn.140212314
cmp rax, 2
jb 0x14019a025
cmp qword [rax + 8], 0
jne 0x14019a100
mov ecx, dword [0x140287d28]
test ecx, ecx
je 0x14019a11f
dec ecx
call fcn.140212314
cmp rax, 1
je 0x14019a0bf
test rax, rax
jne 0x14019a0a5
mov qword [rbp - 0x10], 0
lea rax, [0x140287d10]
mov qword [rbp - 0x18], rax
mov rax, qword [str.Lp__]
movzx eax, byte [rax]
mov r8d, 0x18
xor edx, edx
call fcn.1401876d0
test rax, rax
je 0x14019a14b
mov rcx, qword [rbp - 8]
mov qword [rax + 0x10], rcx
movups xmm0, xmmword [rbp - 0x18]
movups xmmword [rax], xmm0
mov ecx, dword [0x140287d28]
test ecx, ecx
je 0x14019a132
dec ecx
mov rdx, rax
mov rdi, rax
call fcn.14021230c
mov rax, rdi
test rsi, rsi
je 0x14019a0c3
mov rcx, qword [rsi]
mov qword [rsi], 0
test rcx, rcx
je 0x14019a0c5
mov rcx, qword [rsi + 8]
jmp 0x14019a0c5
xor eax, eax
jmp 0x14019a104
xor ecx, ecx
mov r8, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov qword [rbp - 0x18], r8
mov qword [rbp - 0x10], rdx
mov qword [rax + 8], 1
mov qword [rax + 0x10], rcx
test r8, r8
je 0x14019a100
test rdx, rdx
je 0x14019a100
lock dec qword [rdx]
jne 0x14019a100
lea rcx, [rbp - 0x10]
mov rsi, rax
call fcn.14016a060
mov rax, rsi
add rax, 0x10
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret
lea rcx, [0x140287d10]
call fcn.140190580
mov ecx, eax
jmp 0x14019a00f
lea rcx, [0x140287d10]
call fcn.140190580
mov ecx, eax
jmp 0x14019a035
lea rcx, [0x140287d10]
mov rdi, rax
call fcn.140190580
mov ecx, eax
mov rax, rdi
jmp 0x14019a097
mov ecx, 8
mov edx, 0x18
call fcn.140003b50
ud2
Function at 0x14019a180
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x30
lea rbp, [rsp + 0x30]
mov rsi, rcx
mov ecx, dword [0x140287d48]
test ecx, ecx
je 0x14019a27d
dec ecx
call fcn.140212314
cmp rax, 2
jb 0x14019a1b5
cmp qword [rax + 8], 0
jne 0x14019a26d
mov ecx, dword [0x140287d48]
test ecx, ecx
je 0x14019a290
dec ecx
call fcn.140212314
cmp rax, 1
je 0x14019a273
test rax, rax
jne 0x14019a229
mov rax, qword [str.Lp__]
movzx eax, byte [rax]
mov r8d, 0x20
xor edx, edx
call fcn.1401876d0
test rax, rax
je 0x14019a2bc
lea rcx, [0x140287d30]
mov qword [rax], rcx
mov qword [rax + 8], 0
mov ecx, dword [0x140287d48]
test ecx, ecx
je 0x14019a2a3
dec ecx
mov rdx, rax
mov rdi, rax
call fcn.14021230c
mov rax, rdi
test rsi, rsi
je 0x14019a242
mov rcx, qword [rsi]
movups xmm0, xmmword [rsi + 8]
mov qword [rsi], 0
cmp rcx, 1
je 0x14019a261
xorps xmm0, xmm0
movaps xmmword [rbp - 0x10], xmm0
lea rcx, [rbp - 0x10]
mov edx, 0x10
mov rsi, rax
call sub.bcryptprimitives.dll_ProcessPrng
mov rax, rsi
movaps xmm0, xmmword [rbp - 0x10]
mov qword [rax + 8], 1
movups xmmword [rax + 0x10], xmm0
add rax, 0x10
jmp 0x14019a275
xor eax, eax
add rsp, 0x30
pop rdi
pop rsi
pop rbp
ret
lea rcx, [0x140287d30]
call fcn.140190580
mov ecx, eax
jmp 0x14019a19f
lea rcx, [0x140287d30]
call fcn.140190580
mov ecx, eax
jmp 0x14019a1c5
lea rcx, [0x140287d30]
mov rdi, rax
call fcn.140190580
mov ecx, eax
mov rax, rdi
jmp 0x14019a21b
mov ecx, 8
mov edx, 0x20
call fcn.140003b50
int3
Function at 0x14019a2d0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x40
lea rbp, [rsp + 0x40]
mov rsi, rcx
mov ecx, dword [0x140287d68]
test ecx, ecx
je 0x14019a3ec
dec ecx
call fcn.140212314
cmp rax, 2
jb 0x14019a305
cmp qword [rax + 8], 0
jne 0x14019a3e0
mov ecx, dword [0x140287d68]
test ecx, ecx
je 0x14019a3ff
dec ecx
call fcn.140212314
cmp rax, 1
je 0x14019a39f
test rax, rax
jne 0x14019a385
mov qword [rbp - 0x10], 0
lea rax, [0x140287d50]
mov qword [rbp - 0x18], rax
mov rax, qword [str.Lp__]
movzx eax, byte [rax]
mov r8d, 0x18
xor edx, edx
call fcn.1401876d0
test rax, rax
je 0x14019a42b
mov rcx, qword [rbp - 8]
mov qword [rax + 0x10], rcx
movups xmm0, xmmword [rbp - 0x18]
movups xmmword [rax], xmm0
mov ecx, dword [0x140287d68]
test ecx, ecx
je 0x14019a412
dec ecx
mov rdx, rax
mov rdi, rax
call fcn.14021230c
mov rax, rdi
test rsi, rsi
je 0x14019a3a3
mov rcx, qword [rsi]
mov qword [rsi], 0
test rcx, rcx
je 0x14019a3a5
mov rcx, qword [rsi + 8]
jmp 0x14019a3a5
xor eax, eax
jmp 0x14019a3e4
xor ecx, ecx
mov r8, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov qword [rbp - 0x18], r8
mov qword [rbp - 0x10], rdx
mov qword [rax + 8], 1
mov qword [rax + 0x10], rcx
test r8, r8
je 0x14019a3e0
test rdx, rdx
je 0x14019a3e0
lock dec qword [rdx]
jne 0x14019a3e0
lea rcx, [rbp - 0x10]
mov rsi, rax
call fcn.140169ea0
mov rax, rsi
add rax, 0x10
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret
lea rcx, [0x140287d50]
call fcn.140190580
mov ecx, eax
jmp 0x14019a2ef
lea rcx, [0x140287d50]
call fcn.140190580
mov ecx, eax
jmp 0x14019a315
lea rcx, [0x140287d50]
mov rdi, rax
call fcn.140190580
mov ecx, eax
mov rax, rdi
jmp 0x14019a377
mov ecx, 8
mov edx, 0x18
call fcn.140003b50
ud2

Function at 0x14019ff06
Capabilities:
Set socket configuration

Disassembly:
push rbp
sub rsp, 0x30
lea rbp, [rsp + 0x30]
mov rcx, qword [rcx]
movzx eax, dl
mov dword [rbp - 4], eax
mov dword [rsp + 0x20], 4
lea r9, [rbp - 4]
mov edx, 6
mov r8d, 1
call sub.WS2_32.dll_setsockopt
cmp eax, 0xffffffff
je 0x1401803d8
xor eax, eax
jmp 0x1401803e5
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
add rsp, 0x30
pop rbp
ret
push rbx
sub rsp, 0x20
mov ebx, edx
call fcn.1401b2f99
mov rcx, rax
mov edx, ebx
add rsp, 0x20
pop rbx
jmp 0x1401803a0

Function at 0x1401a0ba3
Capabilities:
Set thread local storage value

Disassembly:
push rsi
sub rsp, 0x20
mov rsi, rdx
mov rax, rcx
mov ecx, dword [rcx + 0x18]
test ecx, ecx
je 0x1401a0bc4
dec ecx
mov rdx, rsi
add rsp, 0x20
pop rsi
jmp fcn.14021230c
mov rcx, rax
call fcn.140190580
mov ecx, eax
jmp 0x1401a0bb7

Function at 0x1401a7266
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x28
mov rax, rcx
mov ecx, dword [rcx + 0x18]
test ecx, ecx
je 0x1401a727f
dec ecx
add rsp, 0x28
jmp fcn.140212314
mov rcx, rax
call fcn.140190580
mov ecx, eax
jmp 0x1401a7276
Function at 0x1401a728b
Capabilities:
Set thread local storage value

Disassembly:
push rsi
sub rsp, 0x20
mov rsi, rdx
mov rax, rcx
mov ecx, dword [rcx + 0x18]
test ecx, ecx
je 0x1401a72ac
dec ecx
mov rdx, rsi
add rsp, 0x20
pop rsi
jmp fcn.14021230c
mov rcx, rax
call fcn.140190580
mov ecx, eax
jmp 0x1401a729f

Function at 0x1401b181d
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x28
mov rax, qword [rcx]
mov rdx, rax
xor rdx, 3
lock cmpxchg qword [rcx], rdx
jne 0x1401b1824
test al, 1
je 0x1401b1843
test al, 2
jne 0x1401b185b
xor rax, 3
add rsp, 0x28
ret
lea rcx, str.assertion_failed:_prev.is_running__
lea r8, [0x140330db8]
mov edx, 0x23
call fcn.140011b20
lea rcx, str.assertion_failed:__prev.is_complete__
lea r8, [0x140330df8]
mov edx, 0x25
call fcn.140011b20
int3

Function at 0x1401b57ea
Capabilities:
Set thread local storage value

Disassembly:
mov rdx, rcx
lea rcx, [0x140287df8]
jmp 0x1401b59c1
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rdx
mov rbx, rcx
call fcn.1401b5a67
test rax, rax
je 0x1401b5956
mov rdi, rax
cmp rax, 1
jne 0x1401b598f
xor eax, eax
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov rax, qword [str.Lp__]
mov al, byte [rax]
mov ecx, 0x38
mov edx, 8
call fcn.140185ed0
test rax, rax
je 0x1401b59b1
mov rdi, rax
mov qword [rax], rbx
and qword [rax + 8], 0
mov ecx, dword [rbx + 0x18]
test ecx, ecx
je 0x1401b59a5
dec ecx
mov rdx, rdi
call fcn.14021230c
add rdi, 8
mov rcx, rdi
mov rdx, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp 0x1401b65f4
mov rcx, rbx
call fcn.140190580
mov ecx, eax
jmp 0x1401b5987
mov ecx, 8
mov edx, 0x38
call fcn.140003b50
int3
push rsi
push rdi
sub rsp, 0x28
mov rsi, rdx
mov rdi, rcx
call fcn.1401b5a67
cmp rax, 2
jb 0x1401b59ea
cmp qword [rax + 8], 0
je 0x1401b59ea
add rax, 0x10
add rsp, 0x28
pop rdi
pop rsi
ret
mov rcx, rdi
mov rdx, rsi
add rsp, 0x28
pop rdi
pop rsi
jmp 0x1401b592c
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov rsi, rcx
mov ebx, 2
mov bpl, 1
test rdx, rdx
je 0x1401b6667
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmm2, xmmword [rdx + 0x20]
movaps xmmword [rsp + 0x50], xmm2
and qword [rdx], 0
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x30], xmm0
cmp qword [rsp + 0x30], 0
je 0x1401b665d
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
movups xmm0, xmmword [rsp + 0x48]
movaps xmmword [rsp + 0x60], xmm0
mov bpl, byte [rsp + 0x58]
mov ecx, dword [rsp + 0x59]
mov dword [rsp + 0x28], ecx
mov ecx, dword [rsp + 0x5c]
mov dword [rsp + 0x2b], ecx
jmp 0x1401b6669
lea rcx, [rsp + 0x30]
call fcn.1401b6748
xor eax, eax
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
lea rcx, [rsp + 0x30]
movaps xmmword [rcx + 0x20], xmm2
movaps xmmword [rcx + 0x10], xmm1
movaps xmmword [rcx], xmm0
mov qword [rsi], 1
lea rdi, [rsi + 8]
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rbx
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rsi + 0x18], xmm0
mov byte [rsi + 0x28], bpl
mov eax, dword [rsp + 0x28]
mov edx, dword [rsp + 0x2b]
mov dword [rsi + 0x29], eax
mov dword [rsi + 0x2c], edx
call fcn.1401b6748
mov rax, rdi
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
ret
Function at 0x1401b592c
Capabilities:
Set thread local storage value

Disassembly:
mov rdx, rcx
lea rcx, [0x140287df8]
jmp 0x1401b59c1
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rdx
mov rbx, rcx
call fcn.1401b5a67
test rax, rax
je 0x1401b5956
mov rdi, rax
cmp rax, 1
jne 0x1401b598f
xor eax, eax
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov rax, qword [str.Lp__]
mov al, byte [rax]
mov ecx, 0x38
mov edx, 8
call fcn.140185ed0
test rax, rax
je 0x1401b59b1
mov rdi, rax
mov qword [rax], rbx
and qword [rax + 8], 0
mov ecx, dword [rbx + 0x18]
test ecx, ecx
je 0x1401b59a5
dec ecx
mov rdx, rdi
call fcn.14021230c
add rdi, 8
mov rcx, rdi
mov rdx, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp 0x1401b65f4
mov rcx, rbx
call fcn.140190580
mov ecx, eax
jmp 0x1401b5987
mov ecx, 8
mov edx, 0x38
call fcn.140003b50
int3
push rsi
push rdi
sub rsp, 0x28
mov rsi, rdx
mov rdi, rcx
call fcn.1401b5a67
cmp rax, 2
jb 0x1401b59ea
cmp qword [rax + 8], 0
je 0x1401b59ea
add rax, 0x10
add rsp, 0x28
pop rdi
pop rsi
ret
mov rcx, rdi
mov rdx, rsi
add rsp, 0x28
pop rdi
pop rsi
jmp 0x1401b592c
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov rsi, rcx
mov ebx, 2
mov bpl, 1
test rdx, rdx
je 0x1401b6667
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmm2, xmmword [rdx + 0x20]
movaps xmmword [rsp + 0x50], xmm2
and qword [rdx], 0
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x30], xmm0
cmp qword [rsp + 0x30], 0
je 0x1401b665d
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
movups xmm0, xmmword [rsp + 0x48]
movaps xmmword [rsp + 0x60], xmm0
mov bpl, byte [rsp + 0x58]
mov ecx, dword [rsp + 0x59]
mov dword [rsp + 0x28], ecx
mov ecx, dword [rsp + 0x5c]
mov dword [rsp + 0x2b], ecx
jmp 0x1401b6669
lea rcx, [rsp + 0x30]
call fcn.1401b6748
xor eax, eax
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
lea rcx, [rsp + 0x30]
movaps xmmword [rcx + 0x20], xmm2
movaps xmmword [rcx + 0x10], xmm1
movaps xmmword [rcx], xmm0
mov qword [rsi], 1
lea rdi, [rsi + 8]
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rbx
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rsi + 0x18], xmm0
mov byte [rsi + 0x28], bpl
mov eax, dword [rsp + 0x28]
mov edx, dword [rsp + 0x2b]
mov dword [rsi + 0x29], eax
mov dword [rsi + 0x2c], edx
call fcn.1401b6748
mov rax, rdi
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
ret