joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400463e0
Capabilities:
Write file on windows

Disassembly:
push rsi
push rdi
sub rsp, 0xa8
mov rdi, rdx
mov rsi, rcx
mov rcx, qword [rsp + 0xe0]
movups xmm0, xmmword [0x1400c7ae0]
movaps xmmword [rsp + 0x60], xmm0
mov eax, 0xffffffff
cmp r9, rax
cmovb rax, r9
test rcx, rcx
je 0x140046424
mov rdx, qword [rsp + 0xe8]
mov qword [rsp + 0x80], rdx
test rcx, rcx
mov qword [rsp + 0x78], rcx
lea rdx, [rsp + 0x80]
cmove rdx, rcx
mov qword [rsp + 0x38], rdx
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r8
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x40], 0
mov rcx, rdi
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.ntdll.dll_NtWriteFile
cmp eax, 0x103
jne 0x140046488
mov rcx, rdi
mov edx, 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
mov eax, dword [rsp + 0x60]
cmp eax, 0x103
je 0x1400464be
test eax, eax
js 0x140046499
mov rax, qword [rsp + 0x68]
mov qword [rsi + 8], rax
xor eax, eax
jmp 0x1400464b1
mov ecx, eax
call sub.ntdll.dll_RtlNtStatusToDosError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov eax, 1
mov qword [rsi], rax
add rsp, 0xa8
pop rdi
pop rsi
ret
mov byte [rsp + 0x5c], 0
mov dword [rsp + 0x58], 0
lea rax, [0x1400c7b48]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 1
lea rax, [rsp + 0x50]
mov qword [rsp + 0x88], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x90], xmm0
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x78]
call fcn.140031120
mov rcx, rax
call fcn.140007290
mov ecx, 7
int 0x29
ud2

Function at 0x140046b30
Capabilities:
Create udp socket

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x30
mov edi, r8d
mov rsi, rcx
cmp word [rdx], 0
mov eax, 2
mov ebx, 0x17
cmove ebx, eax
mov dword [rsp + 0x28], 0x81
mov dword [rsp + 0x20], 0
mov ecx, ebx
mov edx, r8d
xor r8d, r8d
xor r9d, r9d
call sub.WS2_32.dll_WSASocketW
cmp rax, 0xffffffffffffffff
je 0x140046b84
mov qword [rsi + 8], rax
mov qword [rsi], 0
jmp 0x140046c1a
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2726
je 0x140046b97
cmp eax, 0x2739
jne 0x140046be5
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0
mov ecx, ebx
mov edx, edi
xor r8d, r8d
xor r9d, r9d
call sub.WS2_32.dll_WSASocketW
cmp rax, 0xffffffffffffffff
je 0x140046be0
mov rdi, rax
mov rcx, rax
mov edx, 1
xor r8d, r8d
call sub.KERNEL32.dll_SetHandleInformation
test eax, eax
je 0x140046bfa
mov qword [rsi + 8], rdi
mov qword [rsi], 0
jmp 0x140046c1a
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
jmp 0x140046c1a
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
mov rcx, rdi
call sub.WS2_32.dll_closesocket
mov rax, rsi
add rsp, 0x30
pop rbx
pop rdi
pop rsi
ret
Function at 0x140046c30
Capabilities:
Connect socket
Enumerate pe sections
Set socket configuration

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x448
mov ebp, r9d
mov r14, r8
mov rsi, rdx
mov rdi, rcx
mov dword [rsp + 0x38], 1
mov rbx, qword [rcx]
lea r8, [rsp + 0x38]
mov rcx, rbx
mov edx, 0x8004667e
call sub.WS2_32.dll_ioctlsocket
cmp eax, 0xffffffff
je 0x140046c8e
cmp word [rsi], 0
je 0x140046ca2
movups xmm0, xmmword [rsi + 4]
mov eax, dword [rsi + 0x14]
mov edx, dword [rsi + 0x18]
movzx ecx, word [rsi + 0x1c]
sbb al, 0x41
mov eax, 0x1c
call sub.WS2_32.dll_WSAGetLastError
mov edi, eax
shl rdi, 0x20
or rdi, 2
jmp 0x140046f14
mov eax, dword [rsi + 2]
movzx ecx, word [rsi + 6]
mov r8d, 0x10
mov r9w, 2
mov r9d, 0x570f0002
invalid
Function at 0x140047350
Capabilities:
Receive data
Receive data on socket

Disassembly:
push rsi
push rdi
sub rsp, 0xd8
mov r10, r8
mov rsi, rcx
mov eax, dword [rsp + 0x110]
pxor xmm0, xmm0
movdqa xmmword [rsp + 0xc0], xmm0
movdqa xmmword [rsp + 0xb0], xmm0
movdqa xmmword [rsp + 0xa0], xmm0
movdqa xmmword [rsp + 0x90], xmm0
movdqa xmmword [rsp + 0x80], xmm0
movdqa xmmword [rsp + 0x70], xmm0
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x34], pe_nt_image_headers64
cmp r9, 0x7fffffff
mov r8d, 0x7fffffff
cmovb r8, r9
lea rcx, [rsp + 0x34]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x20], rcx
mov rcx, rdx
mov rdx, r10
mov r9d, eax
call sub.WS2_32.dll_recvfrom
cmp eax, 0xffffffff
je 0x140047427
mov ecx, dword [rsp + 0x34]
movzx edx, word [rsp + 0x50]
cmp edx, 0x17
je 0x140047481
cmp edx, 2
jne 0x140047475
cmp ecx, 0xf
jbe 0x140047595
movzx ecx, word [rsp + 0x52]
rol cx, 8
mov edx, dword [rsp + 0x54]
mov word [rsp + 0x3c], cx
mov dword [rsp + 0x38], edx
xor r11d, r11d
jmp 0x1400474cb
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x274a
jne 0x1400474fd
mov eax, dword [rsp + 0x34]
movzx ecx, word [rsp + 0x50]
cmp ecx, 0x17
je 0x140047510
cmp ecx, 2
jne 0x140047475
cmp eax, 0xf
jbe 0x140047595
movzx eax, word [rsp + 0x52]
rol ax, 8
mov ecx, dword [rsp + 0x54]
mov word [rsp + 0x3c], ax
mov dword [rsp + 0x38], ecx
xor r10d, r10d
jmp 0x140047559
lea rax, str.invalid_argument
jmp 0x140047505
cmp ecx, 0x1b
jbe 0x1400475af
movzx ecx, word [rsp + 0x52]
rol cx, 8
movdqu xmm0, xmmword [rsp + 0x58]
mov r8d, dword [rsp + 0x54]
mov edx, dword [rsp + 0x68]
movq r10, xmm0
pshufd xmm1, xmm0, 0xee
movq r9, xmm1
shld r9, r10, 0x20
movdqu xmmword [rsp + 0x3a], xmm0
pshufd xmm0, xmm0, 0xff
movd r10d, xmm0
mov r11w, 1
cdqe
movzx edi, word [rsp + 0x3c]
mov word [rsi + 0xe], di
mov edi, dword [rsp + 0x38]
mov dword [rsi + 0xa], edi
mov qword [rsi], rax
mov word [rsi + 8], r11w
mov qword [rsi + 0x10], r9
mov dword [rsi + 0x18], r10d
mov dword [rsi + 0x1c], r8d
mov dword [rsi + 0x20], edx
mov word [rsi + 0x24], cx
jmp 0x14004758b
shl rax, 0x20
or rax, 2
mov qword [rsi], rax
mov word [rsi + 8], 2
jmp 0x14004758b
cmp eax, 0x1b
jbe 0x1400475af
movzx eax, word [rsp + 0x52]
rol ax, 8
movdqu xmm0, xmmword [rsp + 0x58]
mov edx, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x68]
movq r9, xmm0
pshufd xmm1, xmm0, 0xee
movq r8, xmm1
shld r8, r9, 0x20
movdqu xmmword [rsp + 0x3a], xmm0
pshufd xmm0, xmm0, 0xff
movd r9d, xmm0
mov r10w, 1
movzx r11d, word [rsp + 0x3c]
mov word [rsi + 0xe], r11w
mov r11d, dword [rsp + 0x38]
mov dword [rsi + 0xa], r11d
mov qword [rsi], 0
mov word [rsi + 8], r10w
mov qword [rsi + 0x10], r8
mov dword [rsi + 0x18], r9d
mov dword [rsi + 0x1c], edx
mov dword [rsi + 0x20], ecx
mov word [rsi + 0x24], ax
add rsp, 0xd8
pop rdi
pop rsi
ret
lea rcx, str.assertion_failed:_len_as_usize___mem::size_of::_c::sockaddr_in___library_std_src_sys_common_net.rs
lea r8, [0x1400c8f20]
mov edx, 0x42
call fcn.1400998d0
ud2
lea rcx, str.assertion_failed:_len_as_usize___mem::size_of::_c::sockaddr_in6___
lea r8, [0x1400c8f80]
mov edx, 0x43
call fcn.1400998d0
ud2
Function at 0x14004ab20
Capabilities:
Read file on windows

Disassembly:
push rsi
push rdi
sub rsp, 0x68
mov rdi, rdx
mov rdx, qword [rdx + 8]
mov rsi, qword [rdi + 0x10]
mov rax, rdx
sub rax, rsi
jb 0x14004abf5
mov r8d, 0xffffffff
cmp rax, r8
cmovb r8, rax
mov rdx, qword [rdi]
add rdx, rsi
mov dword [rsp + 0x34], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], 0
and al, 0x50
add byte [rax], al
add byte [rax], al
lea r8, [0x1400c5180]
mov rcx, rsi

Function at 0x14004b400
Capabilities:
Read file on windows

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x60
mov rdi, rdx
cmp qword [rdx], 0
jne 0x14004b50d
mov rsi, rcx
mov rbx, qword [rdi + 0x18]
mov rax, qword [rbx + 8]
test rax, rax
jne 0x14004b438
mov rdx, qword [rbx + 0x10]
lea rax, [rdx + 0xf]
cmp rax, 0xf
jbe 0x14004b4d0
xor eax, eax
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x14004b4ef
sub rax, rdx
add rdx, qword [rbx]
mov r8, qword [rdi + 0x10]
mov ecx, 0xffffffff
cmp rax, rcx
cmovae rax, rcx
mov dword [rsp + 0x30], 0
mov rcx, qword [rdi + 0x20]
mov qword [rsp + 0x20], r8
lea r9, [rsp + 0x30]
mov r8d, eax
call sub.KERNEL32.dll_ReadFile
test eax, eax
je 0x14004b48d
mov eax, dword [rsp + 0x30]
mov ecx, 2
test rax, rax
jne 0x14004b4a9
jmp 0x14004b49e
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x3e5
je 0x14004b4a4
cmp eax, 0x6d
jne 0x14004b4c0
mov byte [rsi + 1], 0
jmp 0x14004b4b4
mov ecx, 1
mov qword [rdi], rcx
mov qword [rdi + 8], rax
mov byte [rsi + 1], 1
xor eax, eax
mov byte [rsi], al
add rsp, 0x60
pop rbx
pop rdi
pop rsi
ret
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov al, 1
jmp 0x14004b4b6
mov r8d, 0x10
mov rcx, rbx
call fcn.140010fc0
mov rax, qword [rbx + 8]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
jne 0x14004b445
mov r8d, 1
mov rcx, rbx
mov rdx, rax
call fcn.140010fc0
mov rax, qword [rbx + 8]
mov rdx, qword [rbx + 0x10]
jmp 0x14004b445
mov qword [rsp + 0x30], 0
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.140009db0
ud2
Function at 0x140050180
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rsi
push rdi
sub rsp, 0x88
movdqa xmmword [rsp + 0x70], xmm6
mov rsi, rcx
lea rcx, [rsp + 0x40]
call fcn.1400528c0
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
test rcx, rcx
je 0x1400501f5
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x58]
call fcn.1400423b0
mov rdi, qword [rsp + 0x28]
test rdi, rdi
je 0x140050203
movdqu xmm6, xmmword [rsp + 0x30]
mov rcx, rdi
call sub.KERNEL32.dll_GetFileAttributesW
cmp eax, 0xffffffff
je 0x140050223
mov qword [rsi], rdi
movdqu xmmword [rsi + 8], xmm6
jmp 0x140050214
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x28]
call fcn.140007e10
mov qword [rsi], 0
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rdi
pop rsi
ret
mov qword [rsi], 0
movq rdx, xmm6
test rdx, rdx
je 0x140050214
add rdx, rdx
mov r8d, 2
mov rcx, rdi
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rdi
pop rsi
jmp fcn.140001da0

Function at 0x140051120
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push rsi
sub rsp, 0x80
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
lea rcx, [rsp + 0x30]
mov edx, 0x10
call sub.ADVAPI32.dll_SystemFunction036
test al, al
je 0x140051156
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
add rsp, 0x80
pop rsi
ret
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x28]
mov qword [rsp + 0x40], rax
lea rax, [0x14002b150]
mov qword [rsp + 0x48], rax
lea rax, str.fallback_RNG_broken:
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x70], 0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 1
lea rdx, str.library_std_src_syswindows_rand.rs
lea rcx, [rsp + 0x50]
call fcn.140099840
ud2

Function at 0x140051d30
Capabilities:
Create thread

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x38
mov rdi, r8
mov rbx, rdx
mov r14, rcx
mov rax, qword [0x1400ef4a8]
movzx eax, byte [rax]
mov ecx, 0x10
mov edx, 8
call fcn.140001d90
test rax, rax
je 0x140051df2
mov rsi, rax
mov qword [rax], rbx
mov qword [rax + 8], rdi
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x140051e50]
xor edi, edi
xor ecx, ecx
mov rdx, r14
mov r9, rax
call sub.KERNEL32.dll_CreateThread
mov rdx, rax
test rax, rax
jne 0x140051de5
mov rdi, qword [rsi]
mov rbx, qword [rsi + 8]
mov rcx, rdi
call qword [rbx]
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x140051dbe
mov r8, qword [rbx + 0x10]
mov rcx, rdi
call fcn.140001da0
mov edx, 0x10
mov r8d, 8
mov rcx, rsi
call fcn.140001da0
call sub.KERNEL32.dll_GetLastError
mov edx, eax
shl rdx, 0x20
or rdx, 2
mov edi, 1
mov rax, rdi
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r14
ret
mov ecx, 8
mov edx, 0x10
call fcn.14008a630
ud2
Function at 0x140052070
Capabilities:
Allocate thread local storage

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x60
mov rsi, rcx
cmp qword [rcx], 0
je 0x1400520f5
mov dword [rsp + 0x2c], 0
lea rbx, [rsi + 0x10]
lea r8, [rsp + 0x2c]
mov rcx, rbx
xor edx, edx
xor r9d, r9d
call sub.KERNEL32.dll_InitOnceBeginInitialize
mov dword [rsp + 0x28], eax
cmp eax, 1
jne 0x140052136
cmp dword [rsp + 0x2c], 0
je 0x14005211a
call sub.KERNEL32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x14005215e
mov edi, eax
inc eax
mov dword [rsi + 0x18], eax
mov rax, qword [0x1401011a8]
nop
mov qword [rsi + 8], rax
lock cmpxchg qword [0x1401011a8], rsi
jne 0x1400520d0
mov byte [0x1401011a0], 1
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call sub.KERNEL32.dll_InitOnceComplete
jmp 0x14005212c
call sub.KERNEL32.dll_TlsAlloc
mov dword [rsp + 0x28], eax
cmp eax, 0xffffffff
je 0x1400521aa
mov ecx, eax
inc ecx
xor eax, eax
lock cmpxchg dword [rsi + 0x18], ecx
jne 0x14005211f
mov edi, dword [rsp + 0x28]
jmp 0x14005212c
mov edi, dword [rsi + 0x18]
jmp 0x14005212a
mov edi, eax
mov ecx, dword [rsp + 0x28]
call sub.KERNEL32.dll_TlsFree
dec edi
mov eax, edi
add rsp, 0x60
pop rbx
pop rdi
pop rsi
ret
mov qword [rsp + 0x30], 0
lea rdx, [0x1400c86a8]
lea r9, str.library_std_src_syswindows_thread_local_key.rs
lea rcx, [rsp + 0x28]
lea r8, [rsp + 0x30]
call fcn.140009e00
ud2
mov rcx, rbx
mov edx, 4
xor r8d, r8d
call sub.KERNEL32.dll_InitOnceComplete
lea rax, str.out_of_TLS_indexes
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
lea rax, [0x1400c2950]
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rdx, str.library_std_src_syswindows_thread_local_key.rs
lea rcx, [rsp + 0x30]
call fcn.140099840
ud2
lea rax, str.out_of_TLS_indexes
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
lea rax, [0x1400c2950]
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x30]
call fcn.140009d20
ud2
Function at 0x140054560
Capabilities:
Resolve dns

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x1f0
mov rsi, rcx
mov r14, qword [rdx]
mov rbx, qword [rdx + 8]
movzx edi, word [rdx + 0x10]
mov rax, qword [0x140101178]
cmp rax, 3
jne 0x140054654
cmp rbx, 0x17f
ja 0x140054666
lea r15, [rsp + 0x70]
mov rcx, r15
mov rdx, r14
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov byte [rsp + rbx + 0x70], 0
inc rbx
lea rcx, [rsp + 0x28]
mov rdx, r15
mov r8, rbx
call fcn.1400968d0
cmp qword [rsp + 0x28], 0
je 0x1400545e4
lea rax, str.___f_
mov qword [rsi + 8], rax
mov qword [rsi], 1
jmp 0x140054677
mov rcx, qword [rsp + 0x30]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x48], 1
mov qword [rsp + 0x20], 0
lea r8, [rsp + 0x40]
lea r9, [rsp + 0x20]
xor edx, edx
call sub.WS2_32.dll_getaddrinfo
test eax, eax
je 0x14005463c
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov eax, 1
mov qword [rsi], rax
jmp 0x140054677
mov rax, qword [rsp + 0x20]
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rax
mov word [rsi + 0x18], di
xor eax, eax
mov qword [rsi], rax
jmp 0x140054677
call fcn.14003a700
cmp rbx, 0x17f
jbe 0x14005459a
mov rcx, rsi
mov rdx, r14
mov r8, rbx
mov r9d, edi
call fcn.14003b490
mov rax, rsi
add rsp, 0x1f0
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret

Function at 0x140054c20
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push rsi
sub rsp, 0xb0
mov rax, rdx
mov rsi, rcx
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x2c], pe_nt_image_headers64
lea rdx, [rsp + 0x30]
lea r8, [rsp + 0x2c]
mov rcx, rax
call sub.WS2_32.dll_getsockname
cmp eax, 0xffffffff
je 0x140054ccf
mov eax, dword [rsp + 0x2c]
movzx ecx, word [rsp + 0x30]
cmp ecx, 2
je 0x140054cde
cmp ecx, 0x17
jne 0x140054d05
cmp eax, 0x1b
jbe 0x140054d1e
movzx eax, word [rsp + 0x32]
rol ax, 8
movups xmm0, xmmword [rsp + 0x38]
mov ecx, dword [rsp + 0x34]
mov edx, dword [rsp + 0x48]
mov word [rsi], 1
movups xmmword [rsi + 4], xmm0
mov dword [rsi + 0x14], ecx
mov dword [rsi + 0x18], edx
mov word [rsi + 0x1c], ax
add rsp, 0xb0
pop rsi
ret
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
jmp 0x140054d0c
cmp eax, 0xf
jbe 0x140054d38
movzx eax, word [rsp + 0x32]
rol ax, 8
mov ecx, dword [rsp + 0x34]
mov word [rsi], 0
mov word [rsi + 6], ax
mov dword [rsi + 2], ecx
add rsp, 0xb0
pop rsi
ret
lea rax, str.invalid_argument
mov qword [rsi + 8], rax
mov word [rsi], 2
add rsp, 0xb0
pop rsi
ret
lea rcx, str.assertion_failed:_len_as_usize___mem::size_of::_c::sockaddr_in6___
lea r8, [0x1400c8f80]
mov edx, 0x43
call fcn.1400998d0
ud2
lea rcx, str.assertion_failed:_len_as_usize___mem::size_of::_c::sockaddr_in___library_std_src_sys_common_net.rs
lea r8, [0x1400c8f20]
mov edx, 0x42
call fcn.1400998d0
ud2
Function at 0x140059d30
Capabilities:
Read file via mapping

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x88
mov rax, r8
mov rdi, rcx
mov dword [rsp + 0x60], 0
mov word [rsp + 0x64], 0
mov dword [rsp + 0x40], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], 7
mov byte [rsp + 0x60], 1
lea r8, [rsp + 0x40]
mov rcx, rdx
mov rdx, rax
call fcn.140042c70
mov rsi, rdx
test rax, rax
je 0x140059da2
mov rcx, rax
mov rdx, rsi
call fcn.140004c50
mov qword [rdi], 0
jmp 0x140059f0a
lea rcx, [rsp + 0x40]
mov rdx, rsi
call fcn.140042ee0
cmp dword [rsp + 0x40], 2
jne 0x140059e28
mov rax, qword [rsp + 0x48]
mov ecx, eax
and ecx, 3
lea rdx, [rcx - 2]
cmp rdx, 2
jb 0x140059e09
test rcx, rcx
je 0x140059e09
lea rbx, [rax - 1]
mov r14, qword [rax - 1]
mov r15, qword [rax + 7]
mov rcx, r14
call qword [r15]
mov rdx, qword [r15 + 8]
test rdx, rdx
je 0x140059df6
mov r8, qword [r15 + 0x10]
mov rcx, r14
call fcn.140001da0
mov edx, 0x18
mov r8d, 8
mov rcx, rbx
call fcn.140001da0
mov qword [rdi], 0
mov rcx, rsi
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
jmp fcn.1400bcd74
mov r12, qword [rsp + 0x78]
test rsi, rsi
je 0x140059e7a
mov qword [rsp + 0x40], 0
call sub.KERNEL32.dll_GetCurrentProcess
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
mov rcx, rax
mov rdx, rsi
mov r8, rax
call sub.KERNEL32.dll_DuplicateHandle
test eax, eax
je 0x140059ef6
mov rbx, qword [rsp + 0x40]
jmp 0x140059e7c
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 0x140059ee5
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 fcn.1400bcd74
test r15, r15
je 0x140059ee5
mov qword [rdi + 8], rbx
mov qword [rdi + 0x10], r15
mov qword [rdi + 0x18], r12
mov qword [rdi], 1
jmp 0x140059f02
mov qword [rdi], 0
mov rcx, rbx
call fcn.1400bcd74
jmp 0x140059f02
call sub.KERNEL32.dll_GetLastError
mov qword [rdi], 0
mov rcx, rsi
call fcn.1400bcd74
nop
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
Function at 0x14005c1f0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rsi, rcx
mov ecx, dword [0x1400bf058]
test ecx, ecx
je 0x14005c220
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 2
jb 0x14005c239
cmp qword [rax + 8], 0
je 0x14005c239
add rax, 0x10
jmp 0x14005c301
lea rcx, [0x1400bf040]
call fcn.140052070
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 2
jae 0x14005c210
mov ecx, dword [0x1400bf058]
test ecx, ecx
je 0x14005c2e2
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x14005c2ff
mov rdi, rax
test rax, rax
jne 0x14005c2ab
mov rax, qword [0x1400ef4a8]
movzx eax, byte [rax]
mov ecx, 0x20
mov edx, 8
call fcn.140001d90
test rax, rax
je 0x14005c318
mov rdi, rax
lea rax, [0x1400bf040]
mov qword [rdi], rax
mov qword [rdi + 8], 0
mov ecx, dword [0x1400bf058]
test ecx, ecx
je 0x14005c308
dec ecx
mov rdx, rdi
call fcn.1400bca84
xor ecx, ecx
test rsi, rsi
je 0x14005c2cb
mov rax, qword [rsi]
mov qword [rsi], 0
cmp rax, 1
jne 0x14005c2cb
mov rdx, qword [rsi + 8]
mov ecx, dword [rsi + 0x10]
jmp 0x14005c2cd
xor edx, edx
mov qword [rdi + 8], 1
lea rax, [rdi + 0x10]
mov qword [rdi + 0x10], rdx
mov byte [rdi + 0x18], cl
jmp 0x14005c301
lea rcx, [0x1400bf040]
call fcn.140052070
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jne 0x14005c258
xor eax, eax
add rsp, 0x28
pop rdi
pop rsi
ret
lea rcx, [0x1400bf040]
call fcn.140052070
mov ecx, eax
jmp 0x14005c2a3
mov ecx, 8
mov edx, 0x20
call fcn.14008a630
ud2
Function at 0x14005c330
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x38
mov rsi, rcx
mov ecx, dword [0x1400bf078]
test ecx, ecx
je 0x14005c446
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 2
jb 0x14005c362
mov rdi, rax
cmp qword [rax + 8], 0
jne 0x14005c440
mov ecx, dword [0x1400bf078]
test ecx, ecx
je 0x14005c468
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x14005c485
mov rdi, rax
test rax, rax
jne 0x14005c3ec
mov qword [rsp + 0x28], 0
lea rax, case.0x140034465.301
mov qword [rsp + 0x20], rax
mov rax, qword [0x1400ef4a8]
movzx eax, byte [rax]
mov ecx, 0x18
mov edx, 8
call fcn.140001d90
test rax, rax
je 0x14005c4a4
mov rdi, rax
mov rax, qword [rsp + 0x30]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rdi], xmm0
mov ecx, dword [0x1400bf078]
test ecx, ecx
je 0x14005c491
dec ecx
mov rdx, rdi
call fcn.1400bca84
test rsi, rsi
je 0x14005c406
mov rax, qword [rsi]
mov qword [rsi], 0
test rax, rax
je 0x14005c408
mov rax, qword [rsi + 8]
jmp 0x14005c408
xor eax, eax
mov rdx, qword [rdi + 8]
mov rcx, qword [rdi + 0x10]
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x28], rcx
mov qword [rdi + 8], 1
mov qword [rdi + 0x10], rax
test rdx, rdx
je 0x14005c440
test rcx, rcx
je 0x14005c440
lock dec qword [rcx]
jne 0x14005c440
lea rcx, [rsp + 0x28]
call fcn.14000fcd0
add rdi, 0x10
jmp 0x14005c487
lea rcx, case.0x140034465.301
call fcn.140052070
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 2
jae 0x14005c354
jmp 0x14005c362
lea rcx, case.0x140034465.301
call fcn.140052070
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jne 0x14005c381
xor edi, edi
mov rax, rdi
add rsp, 0x38
pop rdi
pop rsi
ret
lea rcx, case.0x140034465.301
call fcn.140052070
mov ecx, eax
jmp 0x14005c3e4
mov ecx, 8
mov edx, 0x18
call fcn.14008a630
ud2