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

Disassembly:
push r12
push rdi
push rsi
push rbx
sub rsp, 0x28
lea rcx, [0x0040c900]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [0x0040c8e0]
test rbx, rbx
je 0x404f74
mov rdi, qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [rbx]
call rdi
mov r12, rax
call rsi
test eax, eax
jne 0x404f6b
test r12, r12
je 0x404f6b
mov rax, qword [rbx + 8]
mov rcx, r12
call rax
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x404f50
lea rcx, [0x0040c900]
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop r12
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]

Function at 0x4051a0
Capabilities:
Parse pe header

Disassembly:
cmp word [rcx], 0x5a4d
jne 0x4051b0
jmp sym._ValidateImageBase.part.0
xor eax, eax
ret

Function at 0x4051c0
Capabilities:
Enumerate pe sections

Disassembly:
movsxd rax, dword [rcx + 0x3c]
add rcx, rax
movzx eax, word [rcx + 0x14]
lea rax, [rcx + rax + 0x18]
movzx ecx, word [rcx + 6]
test ecx, ecx
je 0x405205
sub ecx, 1
lea rcx, [rcx + rcx*4]
lea r9, [rax + rcx*8 + 0x28]
nop dword [rax]
mov r8d, dword [rax + 0xc]
mov rcx, r8
cmp r8, rdx
ja 0x4051fc
add ecx, dword [rax + 8]
cmp rcx, rdx
ja 0x405207
add rax, 0x28
cmp rax, r9
jne 0x4051e8
xor eax, eax
ret

Function at 0x4052b0
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r10, qword [0x004092a0]
xor r8d, r8d
cmp word [r10], 0x5a4d
mov r9, rcx
jne 0x405329
mov rcx, r10
call sym._ValidateImageBase.part.0
test eax, eax
je 0x405329
movsxd rax, dword [r10 + 0x3c]
mov rcx, r9
sub rcx, r10
add r10, rax
movzx eax, word [r10 + 0x14]
lea r8, [r10 + rax + 0x18]
movzx eax, word [r10 + 6]
test eax, eax
je 0x405326
sub eax, 1
lea rax, [rax + rax*4]
lea r9, [r8 + rax*8 + 0x28]
nop dword [rax]
mov edx, dword [r8 + 0xc]
mov rax, rdx
cmp rcx, rdx
jb 0x40531d
add eax, dword [r8 + 8]
cmp rcx, rax
jb 0x405329
add r8, 0x28
cmp r8, r9
jne 0x405308
xor r8d, r8d
mov rax, r8
add rsp, 0x28
ret

Function at 0x405410
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r9, qword [0x004092a0]
xor eax, eax
cmp word [r9], 0x5a4d
mov r8, rcx
jne 0x40547f
mov rcx, r9
call sym._ValidateImageBase.part.0
test eax, eax
je 0x40547f
movsxd rax, dword [r9 + 0x3c]
mov rcx, r8
sub rcx, r9
add r9, rax
movzx eax, word [r9 + 0x14]
movzx edx, word [r9 + 6]
lea rax, [r9 + rax + 0x18]
test edx, edx
je 0x40547d
sub edx, 1
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
mov r8d, dword [rax + 0xc]
mov rdx, r8
cmp rcx, r8
jb 0x405474
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x405488
add rax, 0x28
cmp rax, r9
jne 0x405460
xor eax, eax
add rsp, 0x28
ret
mov eax, dword [rax + 0x24]
not eax
shr eax, 0x1f
add rsp, 0x28
ret
Function at 0x4054a0
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r11, qword [0x004092a0]
xor r9d, r9d
cmp word [r11], 0x5a4d
mov r8d, ecx
jne 0x405518
mov rcx, r11
call sym._ValidateImageBase.part.0
test eax, eax
je 0x405518
movsxd rcx, dword [r11 + 0x3c]
add rcx, r11
mov eax, dword [rcx + 0x90]
test eax, eax
je 0x405518
movzx edx, word [rcx + 0x14]
lea rdx, [rcx + rdx + 0x18]
movzx ecx, word [rcx + 6]
test ecx, ecx
je 0x405518
sub ecx, 1
lea rcx, [rcx + rcx*4]
lea r10, [rdx + rcx*8 + 0x28]
nop dword [rax + rax]
mov r9d, dword [rdx + 0xc]
mov rcx, r9
cmp rax, r9
jb 0x40550c
add ecx, dword [rdx + 8]
cmp rax, rcx
jb 0x405520
add rdx, 0x28
cmp rdx, r10
jne 0x4054f8
xor r9d, r9d
mov rax, r9
add rsp, 0x28
ret
add rax, r11
jmp 0x405530
sub r8d, 1
add rax, 0x14
mov ecx, dword [rax + 4]
test ecx, ecx
jne 0x40553e
mov edx, dword [rax + 0xc]
test edx, edx
je 0x405515
test r8d, r8d
jg 0x405528
mov r9d, dword [rax + 0xc]
add r9, r11
mov rax, r9
add rsp, 0x28
ret
Function at 0x1400252b0
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x468
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], 2
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rsp + 0x20], rax
xor esi, esi
mov r14d, 0xffffffff
xor edi, edi
xor r15d, r15d
cmp r8, 0x201
jae 0x140025330
jmp 0x14002531f
jae 0x1400253d4
cmp r8, 0x201
jae 0x140025330
mov r12d, 0x200
lea r13, [rsp + 0x68]
mov rbp, r8
jmp 0x140025377
sub r8, r15
sub rdi, r15
cmp rdi, r8
jae 0x140025357
lea rcx, [rsp + 0x30]
mov rdx, r15
call fcn.140010420
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov rsi, qword [rsp + 0x38]
cmp rsi, r14
mov r15d, 0xffffffff
cmovb r15, rsi
mov qword [rsp + 0x40], r15
mov rdi, rsi
mov r12, r15
mov r13, qword [rsp + 0x20]
mov rbp, r15
xor ecx, ecx
call sub.kernel32.dll_SetLastError
mov ecx, ebp
mov rdx, r13
call sub.kernel32.dll_GetCurrentDirectoryW
mov ebx, eax
test eax, eax
jne 0x14002539b
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x140025432
mov r8d, ebx
cmp rbp, r8
jne 0x140025310
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x140025452
add rbp, rbp
cmp rbp, r14
cmovae rbp, r14
mov r8, rbp
cmp r8, 0x201
jb 0x14002531f
jmp 0x140025330
cmp r12, r8
jb 0x14002546c
lea rcx, [rsp + 0x48]
mov rdx, r13
call fcn.140034250
movups xmm0, xmmword [rsp + 0x48]
movups xmm1, xmmword [rsp + 0x58]
mov rdi, qword [rsp + 0x28]
movups xmmword [rdi + 0x10], xmm1
movups xmmword [rdi], xmm0
test rsi, rsi
je 0x14002541b
add rsi, rsi
mov r8d, 2
mov rcx, qword [rsp + 0x20]
mov rdx, rsi
call fcn.140001830
mov rax, rdi
add rsp, 0x468
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov rdi, qword [rsp + 0x28]
mov qword [rdi], rax
mov byte [rdi + 0x18], 2
test rsi, rsi
jne 0x140025405
jmp 0x14002541b
lea rcx, [0x1400c4b28]
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.140099fa0
jmp 0x140025481
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, r12
mov r8, rax
call fcn.1400a0970
ud2
Function at 0x14003c090
Capabilities:
Resolve dns

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov ebp, r9d
mov rsi, rcx
invalid
lea rcx, [rsp + 0x30]
call fcn.14008bba0
cli
add al, 0
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je case.0x1400376c2.122
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rsi + 8], rax
mov qword [rsi], 1
mov dword [rsi], 1
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x14003c162
mov r8d, 1
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
jmp fcn.140001830
push rdi
cld
invalid
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
and al, 0x60
mov dword [rsp + 0x58], 1
mov qword [rsp + 0x28], 0
lea r8, [rsp + 0x50]
lea r9, [rsp + 0x28]
mov rcx, rdi
xor edx, edx
call sub.ws2_32.dll_getaddrinfo
test eax, eax
je 0x14003c16f
call sub.ws2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
invalid
invalid
mov eax, 1
mov qword [rsi], rax
mov byte [rdi], 0
test rbx, rbx
test ebx, ebx
je 0x14003c162
mov r8d, 1
mov rcx, rdi
mov rdx, rbx
call fcn.140001830
nop
add rsp, 0x88
invalid
pop rbx
pop rbp
pop rdi
pop rsi
ret
mov rax, qword [rsp + 0x28]
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rax
mov dword [rsi + 0x10], eax
mov word [rsi + 0x18], bp
xor eax, eax
mov qword [rsi], rax
mov byte [rdi], 0
test rbx, rbx
jne 0x14003c151
jmp 0x14003c162
Function at 0x14003d200
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
mov eax, 0x1078
call fcn.1400bd6a0
sub rsp, rax
movaps xmmword [rsp + 0x1060], xmm6
mov rsi, rdx
mov rdi, rcx
lea rbx, [rsp + 0x60]
mov r8d, 0x1000
mov rcx, rbx
xor edx, edx
call sub.msvcrt.dll_memset
mov dword [rsp + 0x34], 0
xorps xmm6, xmm6
movaps xmmword [rsp + 0x40], xmm6
mov qword [rsp + 0x50], 0
lea r13, [rsp + 0x34]
mov qword [rsp + 0x58], r13
lea rbp, [0x14004bd70]
mov qword [rsp + 0x20], rbp
lea r9, [rsp + 0x40]
mov rcx, rdi
mov rdx, rbx
mov r8d, 0x1000
call sub.kernel32.dll_ReadFileEx
test eax, eax
je 0x14003d395
lea rbx, [rsp + 0x40]
lea r14, [rsp + 0x60]
mov ecx, 0xffffffff
mov edx, 1
call sub.kernel32.dll_SleepEx
cmp dword [rsp + 0x34], 0
je 0x14003d293
cmp dword [rsp + 0x38], 0
jne 0x14003d39a
mov r15d, dword [rsp + 0x3c]
test r15, r15
je 0x14003d39a
cmp r15d, 0x1000
ja 0x14003d3da
xor r12d, r12d
nop word cs:[rax + rax]
cmp r12, r15
ja 0x14003d3c6
lea rdx, [rsp + r12]
add rdx, 0x60
mov r8d, r15d
sub r8d, r12d
mov dword [rsp + 0x34], 0
movaps xmmword [rsp + 0x40], xmm6
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x20], rbp
mov rcx, rsi
mov r9, rbx
call sub.kernel32.dll_WriteFileEx
test eax, eax
je 0x14003d395
nop word cs:[rax + rax]
mov ecx, 0xffffffff
mov edx, 1
call sub.kernel32.dll_SleepEx
cmp dword [rsp + 0x34], 0
je 0x14003d330
cmp dword [rsp + 0x38], 0
jne 0x14003d39a
mov eax, dword [rsp + 0x3c]
add r12, rax
cmp r12, r15
jne 0x14003d2e0
mov dword [rsp + 0x34], 0
movaps xmmword [rsp + 0x40], xmm6
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x20], rbp
mov rcx, rdi
mov rdx, r14
mov r8d, 0x1000
mov r9, rbx
call sub.kernel32.dll_ReadFileEx
test eax, eax
jne 0x14003d293
call sub.kernel32.dll_GetLastError
mov rcx, rdi
call fcn.1400bd7f4
mov rcx, rsi
call fcn.1400bd7f4
movaps xmm6, xmmword [rsp + 0x1060]
add rsp, 0x1078
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.library_std_src_syswindowspipe.rs
mov rcx, r12
mov rdx, r15
call fcn.1400a09e0
jmp 0x14003d3ee
lea r8, str.library_std_src_syswindowspipe.rs
mov edx, 0x1000
mov rcx, r15
call fcn.1400a0970
ud2
Function at 0x140044150
Capabilities:
Create directory

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x50
mov r8, rdx
mov rdx, rcx
lea rcx, [rsp + 0x20]
call fcn.1400531a0
mov rax, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
test rax, rax
je 0x140044205
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x38]
lea rdx, [rsp + 0x20]
mov r8b, 1
call fcn.14004a400
mov rdi, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
test rdi, rdi
je 0x140044205
mov rcx, rdi
xor edx, edx
call sub.kernel32.dll_CreateDirectoryW
test eax, eax
je 0x1400441da
test rsi, rsi
je 0x1400441d6
add rsi, rsi
mov r8d, 2
mov rcx, rdi
mov rdx, rsi
call fcn.140001830
xor esi, esi
jmp 0x140044205
call sub.kernel32.dll_GetLastError
mov ebx, eax
shl rbx, 0x20
or rbx, 2
test rsi, rsi
je 0x140044202
add rsi, rsi
mov r8d, 2
mov rcx, rdi
mov rdx, rsi
call fcn.140001830
mov rsi, rbx
mov rax, rsi
add rsp, 0x50
pop rbx
pop rdi
pop rsi
ret

Function at 0x140046d90
Capabilities:
Read 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 [0x1400c8f68]
movaps xmmword [rsp + 0x60], xmm0
mov eax, 0xffffffff
cmp r9, rax
cmovb rax, r9
test rcx, rcx
je 0x140046dd4
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_NtReadFile
cmp eax, 0x103
jne 0x140046e31
mov rcx, rdi
mov edx, 0xffffffff
call sub.kernel32.dll_WaitForSingleObject
mov eax, dword [rsp + 0x60]
cmp eax, 0xc0000011
jne 0x140046e40
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
jmp 0x140046e77
cmp eax, 0x103
je 0x140046e81
test eax, eax
js 0x140046e5d
mov rax, qword [rsp + 0x68]
mov qword [rsi + 8], rax
mov qword [rsi], 0
jmp 0x140046e77
mov ecx, eax
call sub.ntdll.dll_RtlNtStatusToDosError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
add rsp, 0xa8
pop rdi
pop rsi
ret
mov byte [rsp + 0x5c], 0
mov dword [rsp + 0x58], 0
mov qword [rsp + 0x20], 0
lea rdx, [0x1400c8fd0]
lea rsi, [rsp + 0x78]
lea r9, [rsp + 0x50]
mov r8d, 1
mov rcx, rsi
call fcn.140003700
lea rcx, [rsp + 0x58]
mov rdx, rsi
call fcn.140031a40
mov rcx, rax
call fcn.1400063e0
mov ecx, 7
int 0x29
ud2
Function at 0x140046ee0
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 [0x1400c8f68]
movaps xmmword [rsp + 0x60], xmm0
mov eax, 0xffffffff
cmp r9, rax
cmovb rax, r9
test rcx, rcx
je 0x140046f24
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 0x140046f88
mov rcx, rdi
mov edx, 0xffffffff
call sub.kernel32.dll_WaitForSingleObject
mov eax, dword [rsp + 0x60]
cmp eax, 0x103
je 0x140046fbe
test eax, eax
js 0x140046f99
mov rax, qword [rsp + 0x68]
mov qword [rsi + 8], rax
xor eax, eax
jmp 0x140046fb1
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
mov qword [rsp + 0x20], 0
lea rdx, [0x1400c8fd0]
lea rsi, [rsp + 0x78]
lea r9, [rsp + 0x50]
mov r8d, 1
mov rcx, rsi
call fcn.140003700
lea rcx, [rsp + 0x58]
mov rdx, rsi
call fcn.140031a40
mov rcx, rax
call fcn.1400063e0
mov ecx, 7
int 0x29
ud2

Function at 0x140047610
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 0x140047664
mov qword [rsi + 8], rax
mov qword [rsi], 0
jmp 0x1400476fa
call sub.ws2_32.dll_WSAGetLastError
cmp eax, 0x2726
je 0x140047677
cmp eax, 0x2739
jne 0x1400476c5
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 0x1400476c0
mov rdi, rax
mov rcx, rax
mov edx, 1
xor r8d, r8d
call sub.kernel32.dll_SetHandleInformation
test eax, eax
je 0x1400476da
mov qword [rsi + 8], rdi
mov qword [rsi], 0
jmp 0x1400476fa
call sub.ws2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
jmp 0x1400476fa
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 0x140047710
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 0x14004776e
cmp word [rsi], 0
je 0x140047782
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 0x1400479f4
mov eax, dword [rsi + 2]
movzx ecx, word [rsi + 6]
mov r8d, 0x10
mov r9w, 2
mov r9d, 0x570f0002
invalid
Function at 0x140047e30
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 0x140047f07
mov ecx, dword [rsp + 0x34]
movzx edx, word [rsp + 0x50]
cmp edx, 0x17
je 0x140047f61
cmp edx, 2
jne 0x140047f55
cmp ecx, 0x10
jb 0x140048075
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 0x140047fab
call sub.ws2_32.dll_WSAGetLastError
cmp eax, 0x274a
jne 0x140047fdd
mov eax, dword [rsp + 0x34]
movzx ecx, word [rsp + 0x50]
cmp ecx, 0x17
je 0x140047ff0
cmp ecx, 2
jne 0x140047f55
cmp eax, 0x10
jb 0x140048075
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 0x140048039
lea rax, str.invalid_argument_f_
jmp 0x140047fe5
cmp ecx, 0x1c
jb 0x14004808f
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 0x14004806b
shl rax, 0x20
or rax, 2
mov qword [rsi], rax
mov word [rsi + 8], 2
jmp 0x14004806b
cmp eax, 0x1c
jb 0x14004808f
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, [0x1400ca360]
mov edx, 0x42
call fcn.140099fa0
ud2
lea rcx, str.assertion_failed:_len_as_usize___mem::size_of::_c::sockaddr_in6___
lea r8, [0x1400ca3c0]
mov edx, 0x43
call fcn.140099fa0
ud2
Function at 0x14004b610
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 0x14004b6e5
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
lea rax, [rsp + 0x34]
lea eax, [rsp + 0x34]
lea r8, [0x1400c64a0]
mov rcx, rsi
call fcn.1400a0900

Function at 0x14004c180
Capabilities:
Read file on windows

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x60
mov rdi, rdx
cmp qword [rdx], 0
jne 0x14004c28d
mov rsi, rcx
mov rbx, qword [rdi + 0x18]
mov rax, qword [rbx + 8]
test rax, rax
jne 0x14004c1b8
mov rdx, qword [rbx + 0x10]
lea rax, [rdx + 0xf]
cmp rax, 0xf
jbe 0x14004c250
xor eax, eax
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x14004c26f
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 0x14004c20d
mov eax, dword [rsp + 0x30]
mov ecx, 2
test rax, rax
jne 0x14004c229
jmp 0x14004c21e
call sub.kernel32.dll_GetLastError
cmp eax, 0x3e5
je 0x14004c224
cmp eax, 0x6d
jne 0x14004c240
mov byte [rsi + 1], 0
jmp 0x14004c234
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 0x14004c236
mov r8d, 0x10
mov rcx, rbx
call fcn.1400104e0
mov rax, qword [rbx + 8]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
jne 0x14004c1c5
mov r8d, 1
mov rcx, rbx
mov rdx, rax
call fcn.1400104e0
mov rax, qword [rbx + 8]
mov rdx, qword [rbx + 0x10]
jmp 0x14004c1c5
mov qword [rsp + 0x30], 0
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.140008e90
ud2
Function at 0x140050f40
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.1400531a0
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
test rcx, rcx
je 0x140050fb5
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.140042fb0
mov rdi, qword [rsp + 0x28]
test rdi, rdi
je 0x140050fc3
movdqu xmm6, xmmword [rsp + 0x30]
mov rcx, rdi
call sub.kernel32.dll_GetFileAttributesW
cmp eax, 0xffffffff
je 0x140050fe3
mov qword [rsi], rdi
movdqu xmmword [rsi + 8], xmm6
jmp 0x140050fd4
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x28]
call fcn.140006f20
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 0x140050fd4
add rdx, rdx
mov r8d, 2
mov rcx, rdi
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rdi
pop rsi
jmp fcn.140001830

Function at 0x140051a10
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 0x140051a46
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, [0x14002a9b0]
mov qword [rsp + 0x48], rax
lea rax, [0x1400c95b8]
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.140099f20
ud2

Function at 0x140052620
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 [0x1400f1318]
movzx eax, byte [rax]
mov ecx, 0x10
mov edx, 8
call fcn.140001820
test rax, rax
je 0x1400526e2
mov rsi, rax
mov qword [rax], rbx
mov qword [rax + 8], rdi
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x140052740]
xor edi, edi
xor ecx, ecx
mov rdx, r14
mov r9, rax
call sub.kernel32.dll_CreateThread
mov rdx, rax
test rax, rax
jne 0x1400526d5
mov rdi, qword [rsi]
mov rbx, qword [rsi + 8]
mov rcx, rdi
call qword [rbx]
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x1400526ae
mov r8, qword [rbx + 0x10]
mov rcx, rdi
call fcn.140001830
mov edx, 0x10
mov r8d, 8
mov rcx, rsi
call fcn.140001830
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.14008b0c0
ud2