joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14004a010
Capabilities:
Delete directory

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x70
mov r8, rdx
mov rdx, rcx
movabs rbx, 0x8000000000000000
lea rcx, [rsp + 0x28]
call sym.std::sys::pal::windows::to_u16s::inner::h4c9a51427fa9952c
mov rax, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
cmp rax, rbx
je 0x14004a075
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], rcx
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x40]
mov r8b, 1
call dbg.get_long_path
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
cmp rdi, rbx
jne 0x14004a080
mov rax, rsi
add rsp, 0x70
pop rbx
pop rdi
pop rsi
ret
mov rcx, rsi
call sub.KERNEL32.dll_RemoveDirectoryW
test eax, eax
je 0x14004a0a9
test rdi, rdi
je 0x14004a0d4
add rdi, rdi
mov r8d, 2
mov rcx, rsi
mov rdx, rdi
call sym.__rust_dealloc
xor eax, eax
jmp 0x14004a078
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
test rdi, rdi
je 0x14004a078
add rdi, rdi
mov r8d, 2
mov rcx, rsi
mov rdx, rdi
mov rsi, rax
call sym.__rust_dealloc
jmp 0x14004a075
xor eax, eax
jmp 0x14004a078

Function at 0x14004b530
Capabilities:
Set file attributes

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x68
mov ebx, r8d
mov r8, rdx
mov rdx, rcx
movabs r14, 0x8000000000000000
lea rcx, [rsp + 0x20]
call sym.std::sys::pal::windows::to_u16s::inner::h4c9a51427fa9952c
mov rax, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
cmp rax, r14
je 0x14004b59a
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rcx
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x38]
mov r8b, 1
call dbg.get_long_path
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
cmp rdi, r14
jne 0x14004b5a7
mov rax, rsi
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r14
ret
mov rcx, rsi
mov edx, ebx
call sub.KERNEL32.dll_SetFileAttributesW
test eax, eax
je 0x14004b5d2
test rdi, rdi
je 0x14004b5fd
add rdi, rdi
mov r8d, 2
mov rcx, rsi
mov rdx, rdi
call sym.__rust_dealloc
xor eax, eax
jmp 0x14004b59d
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
test rdi, rdi
je 0x14004b59d
add rdi, rdi
mov r8d, 2
mov rcx, rsi
mov rdx, rdi
mov rsi, rax
call sym.__rust_dealloc
jmp 0x14004b59a
xor eax, eax
jmp 0x14004b59d
Function at 0x14004b8f0
Capabilities:
Copy file

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x80
mov rbx, r9
mov r14, r8
mov r8, rdx
mov rdx, rcx
movabs r15, 0x8000000000000000
lea rcx, [rsp + 0x50]
call sym.std::sys::pal::windows::to_u16s::inner::h4c9a51427fa9952c
mov rax, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
cmp rax, r15
je 0x14004b9db
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rcx
lea rcx, [rsp + 0x68]
lea rdx, [rsp + 0x38]
mov r8b, 1
call dbg.get_long_path
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
cmp rdi, r15
je 0x14004b9db
lea rcx, [rsp + 0x50]
mov rdx, r14
mov r8, rbx
call sym.std::sys::pal::windows::to_u16s::inner::h4c9a51427fa9952c
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
cmp rax, r15
je 0x14004b9ba
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], rcx
lea rcx, [rsp + 0x68]
lea rdx, [rsp + 0x38]
mov r8b, 1
call dbg.get_long_path
mov rbx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
cmp rbx, r15
jne 0x14004b9f2
mov eax, 1
test rdi, rdi
je 0x14004b9e3
add rdi, rdi
mov r8d, 2
mov rcx, rsi
mov rsi, rdx
mov rdx, rdi
call sym.__rust_dealloc
mov eax, 1
mov rdx, rsi
add rsp, 0x80
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea r8, [sym.std::sys::pal::windows::fs::copy::callback::h35ce167e1c75e00f]
lea r9, [rsp + 0x38]
mov rcx, rsi
mov r14, rdx
call sub.KERNEL32.dll_CopyFileExW
test eax, eax
je 0x14004ba71
mov rdx, qword [rsp + 0x38]
test rbx, rbx
je 0x14004ba4b
add rbx, rbx
mov r8d, 2
mov rcx, r14
mov r14, rdx
mov rdx, rbx
call sym.__rust_dealloc
mov rdx, r14
test rdi, rdi
je 0x14004ba6a
add rdi, rdi
mov r8d, 2
mov rcx, rsi
mov rsi, rdx
mov rdx, rdi
call sym.__rust_dealloc
mov rdx, rsi
xor eax, eax
jmp 0x14004b9e3
call sub.KERNEL32.dll_GetLastError
mov edx, eax
shl rdx, 0x20
or rdx, 2
test rbx, rbx
je 0x14004b9ba
add rbx, rbx
mov r8d, 2
mov rcx, r14
mov r14, rdx
mov rdx, rbx
call sym.__rust_dealloc
mov rdx, r14
jmp 0x14004b9ba

Function at 0x14004c530
Capabilities:
Read file on windows

Disassembly:
push rsi
sub rsp, 0x40
mov rax, r8
mov rsi, rcx
mov r10, qword [rsp + 0x70]
mov r8d, 0xffffffff
cmp r9, r8
cmovb r8, r9
mov dword [rsp + 0x34], 0
mov rcx, qword [rdx]
mov qword [rsp + 0x20], r10
lea r9, [rsp + 0x34]
mov rdx, rax
call sub.KERNEL32.dll_ReadFile
test eax, eax
je 0x14004c57f
mov eax, dword [rsp + 0x34]
mov qword [rsi], 1
mov qword [rsi + 8], rax
jmp 0x14004c5ed
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x38], rax
movabs rcx, 0xffffffff00000000
and rcx, rax
movabs rdx, 0x6d00000000
cmp rcx, rdx
je 0x14004c5c1
movabs rdx, 0x3e500000000
cmp rcx, rdx
jne 0x14004c5e2
mov rax, rsi
jmp 0x14004c5cf
mov qword [rsi], 1
mov rax, rsi
add rax, 8
mov qword [rax], 0
lea rcx, [rsp + 0x38]
call dbg.drop_in_place<std::io::error::Error>
jmp 0x14004c5ed
mov qword [rsi + 8], rax
mov qword [rsi], 2
mov rax, rsi
add rsp, 0x40
pop rsi
ret
Function at 0x14004c840
Capabilities:
Read file on windows

Disassembly:
push rsi
sub rsp, 0xb0
mov rsi, rcx
movups xmm0, xmmword [0x1400ae0d8]
movaps xmmword [rsp + 0x60], xmm0
mov eax, 0xffffffff
cmp r8, rax
cmovb rax, r8
test r9, r9
je 0x14004c878
mov rcx, qword [rsp + 0xe0]
mov qword [rsp + 0x88], rcx
test r9, r9
mov qword [rsp + 0x80], r9
lea rcx, [rsp + 0x88]
cmove rcx, r9
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rdx
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x40], 0
mov rcx, rsi
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.ntdll.dll_NtReadFile
cmp eax, 0x103
jne 0x14004c8d8
mov rcx, rsi
mov edx, 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
mov eax, dword [rsp + 0x60]
cmp eax, 0xc0000011
jne 0x14004c8e3
xor edx, edx
jmp 0x14004c8f3
cmp eax, 0x103
je 0x14004c91d
test eax, eax
js 0x14004c8fe
mov rdx, qword [rsp + 0x68]
xor eax, eax
add rsp, 0xb0
pop rsi
ret
mov ecx, eax
call sub.ntdll.dll_RtlNtStatusToDosError
mov edx, eax
shl rdx, 0x20
or rdx, 2
mov eax, 1
add rsp, 0xb0
pop rsi
ret
mov dword [rsp + 0x58], 0
mov byte [rsp + 0x5c], 0
lea rax, str.fatal_runtime_error:_I_O_error:_operation_failed_to_complete_synchronously_n
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 1
lea rax, [rsp + 0x50]
mov qword [rsp + 0x90], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x98], xmm0
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x80]
call sym.std::io::Write::write_fmt::h4096e092b1acc2d9
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x78]
call sym.core::ptr::drop_in_place_core::result::Result____std::io::error::Error__::hf1a2036a539b4597
mov ecx, 7
int 0x29
ud2
Function at 0x14004c990
Capabilities:
Write file on windows

Disassembly:
push rsi
sub rsp, 0xb0
mov rsi, rcx
movups xmm0, xmmword [0x1400ae0d8]
movaps xmmword [rsp + 0x60], xmm0
mov eax, 0xffffffff
cmp r8, rax
cmovb rax, r8
test r9, r9
je 0x14004c9c8
mov rcx, qword [rsp + 0xe0]
mov qword [rsp + 0x88], rcx
test r9, r9
mov qword [rsp + 0x80], r9
lea rcx, [rsp + 0x88]
cmove rcx, r9
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rdx
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x40], 0
mov rcx, rsi
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.ntdll.dll_NtWriteFile
cmp eax, 0x103
jne 0x14004ca2f
mov rcx, rsi
mov edx, 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
mov eax, dword [rsp + 0x60]
cmp eax, 0x103
je 0x14004ca62
test eax, eax
js 0x14004ca43
mov rdx, qword [rsp + 0x68]
xor eax, eax
add rsp, 0xb0
pop rsi
ret
mov ecx, eax
call sub.ntdll.dll_RtlNtStatusToDosError
mov edx, eax
shl rdx, 0x20
or rdx, 2
mov eax, 1
add rsp, 0xb0
pop rsi
ret
mov dword [rsp + 0x58], 0
mov byte [rsp + 0x5c], 0
lea rax, str.fatal_runtime_error:_I_O_error:_operation_failed_to_complete_synchronously_n
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 1
lea rax, [rsp + 0x50]
mov qword [rsp + 0x90], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x98], xmm0
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x80]
call sym.std::io::Write::write_fmt::h4096e092b1acc2d9
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x78]
call sym.core::ptr::drop_in_place_core::result::Result____std::io::error::Error__::hf1a2036a539b4597
mov ecx, 7
int 0x29
ud2

Function at 0x14004d000
Capabilities:
Create udp socket

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov edi, edx
cmp word [rcx], 0
mov eax, 2
mov ebp, 0x17
cmove ebp, eax
mov dword [rsp + 0x28], 0x81
mov dword [rsp + 0x20], 0
xor ebx, ebx
mov ecx, ebp
xor r8d, r8d
xor r9d, r9d
call sub.WS2_32.dll_WSASocketW
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x14004d0cf
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2739
je 0x14004d05c
mov esi, eax
cmp eax, 0x2726
jne 0x14004d0c2
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0
mov ecx, ebp
mov edx, edi
xor r8d, r8d
xor r9d, r9d
call sub.WS2_32.dll_WSASocketW
cmp rax, 0xffffffffffffffff
je 0x14004d0bb
mov rsi, rax
xor ebx, ebx
mov rcx, rax
mov edx, 1
xor r8d, r8d
call sub.KERNEL32.dll_SetHandleInformation
test eax, eax
jne 0x14004d0cf
call sub.KERNEL32.dll_GetLastError
mov edi, eax
shl rdi, 0x20
or rdi, 2
mov rcx, rsi
call sub.WS2_32.dll_closesocket
mov ebx, 1
mov rsi, rdi
jmp 0x14004d0cf
call sub.WS2_32.dll_WSAGetLastError
mov esi, eax
shl rsi, 0x20
or rsi, 2
mov ebx, 1
mov rax, rbx
mov rdx, rsi
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
ret
Function at 0x14004d0e0
Capabilities:
Connect socket

Disassembly:
sub rsp, 0x48
cmp word [rdx], 0
je 0x14004d106
movups xmm0, xmmword [rdx + 4]
mov eax, dword [rdx + 0x14]
mov r9d, dword [rdx + 0x18]
movzx edx, word [rdx + 0x1c]
mov r8d, 0x1c
mov r10w, 0x17
jmp 0x14004d11b
mov eax, dword [rdx + 2]
movzx edx, word [rdx + 6]
mov r8d, 0x10
mov r10w, 2
xorps xmm0, xmm0
rol dx, 8
mov word [rsp + 0x2c], r10w
mov word [rsp + 0x2e], dx
mov dword [rsp + 0x30], eax
movups xmmword [rsp + 0x34], xmm0
mov dword [rsp + 0x44], r9d
mov rcx, qword [rcx]
lea rdx, [rsp + 0x2c]
call sub.WS2_32.dll_connect
cmp eax, 0xffffffff
je 0x14004d151
xor eax, eax
add rsp, 0x48
ret
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
add rsp, 0x48
ret

Function at 0x14004d170
Capabilities:
Connect socket
Set socket configuration

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x450
mov ebx, r9d
mov r14, r8
mov r15, rdx
mov rsi, rcx
mov dword [rsp + 0x40], 1
mov rdi, qword [rcx]
lea r8, [rsp + 0x40]
mov rcx, rdi
mov edx, 0x8004667e
call sub.WS2_32.dll_ioctlsocket
cmp eax, 0xffffffff
je 0x14004d1d2
cmp word [r15], 0
je 0x14004d1e7
movups xmm0, xmmword [r15 + 4]
mov eax, dword [r15 + 0x14]
mov edx, dword [r15 + 0x18]
movzx ecx, word [r15 + 0x1c]
mov r8d, 0x1c
mov r9w, 0x17
mov r9d, 0x2ceb0017
mov eax, dword [r15 + 2]
movzx ecx, word [r15 + 6]
mov r8d, 0x10
mov r9w, 2
mov ecx, 0x570f0002
invalid
rol cx, 8
mov word [rsp + 0x40], r9w
and al, 0x40

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

Disassembly:
sub rsp, 0x28
mov rcx, qword [rcx]
cmp r8, 0x7fffffff
mov eax, 0x7fffffff
cmovae r8, rax
xor r9d, r9d
call sub.WS2_32.dll_recv
cmp eax, 0xffffffff
je 0x14004d5f1
movsxd rdx, eax
xor ecx, ecx
mov rax, rcx
add rsp, 0x28
ret
call sub.WS2_32.dll_WSAGetLastError
xor edx, edx
mov ecx, 0
cmp eax, 0x274a
je 0x14004d5e9
shl rax, 0x20
or rax, 2
mov ecx, 1
mov rdx, rax
mov rax, rcx
add rsp, 0x28
ret

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

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rdi, rdx
mov rdx, qword [rdx + 8]
mov rsi, qword [rdi + 0x10]
mov rax, rdx
sub rax, rsi
jb 0x14004d69a
mov rcx, qword [rcx]
cmp rax, 0x7fffffff
mov r8d, 0x7fffffff
cmovb r8, rax
mov rdx, qword [rdi]
add rdx, rsi
xor r9d, r9d
call sub.WS2_32.dll_recv
cmp eax, 0xffffffff
je 0x14004d67b
cdqe
add rsi, rax
mov qword [rdi + 0x10], rsi
mov rax, qword [rdi + 0x18]
cmp rax, rsi
cmova rsi, rax
mov qword [rdi + 0x18], rsi
xor eax, eax
jmp 0x14004d693
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x274a
jne 0x14004d68b
xor eax, eax
jmp 0x14004d693
shl rax, 0x20
or rax, 2
add rsp, 0x28
pop rdi
pop rsi
ret
lea r8, [0x1400a9980]
mov rcx, rsi
call dbg.slice_start_index_len_fail
int3
Function at 0x14004d6b0
Capabilities:
Receive data
Receive data on socket

Disassembly:
sub rsp, 0x48
mov eax, 0xffffffff
cmp r8, rax
cmovae r8, rax
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x44], 0
mov rcx, qword [rcx]
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
call sub.WS2_32.dll_WSARecv
test eax, eax
je 0x14004d708
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x274a
jne 0x14004d713
xor edx, edx
xor eax, eax
add rsp, 0x48
ret
mov edx, dword [rsp + 0x40]
xor eax, eax
add rsp, 0x48
ret
mov edx, eax
shl rdx, 0x20
or rdx, 2
mov eax, 1
add rsp, 0x48
ret

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

Disassembly:
sub rsp, 0x28
mov rcx, qword [rcx]
cmp r8, 0x7fffffff
mov eax, 0x7fffffff
cmovae r8, rax
mov r9d, 2
call sub.WS2_32.dll_recv
cmp eax, 0xffffffff
je 0x14004d764
movsxd rdx, eax
xor ecx, ecx
mov rax, rcx
add rsp, 0x28
ret
call sub.WS2_32.dll_WSAGetLastError
xor edx, edx
mov ecx, 0
cmp eax, 0x274a
je 0x14004d75c
shl rax, 0x20
or rax, 2
mov ecx, 1
mov rdx, rax
mov rax, rcx
add rsp, 0x28
ret
Function at 0x14004daa0
Capabilities:
Send data
Send data on socket

Disassembly:
push rsi
sub rsp, 0x40
mov eax, 0xffffffff
cmp r8, rax
cmovae r8, rax
mov dword [rsp + 0x3c], 0
mov rcx, qword [rcx]
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], 0
lea r9, [rsp + 0x3c]
call sub.WS2_32.dll_WSASend
mov esi, eax
cmp esi, 0xffffffff
jne 0x14004daea
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
xor ecx, ecx
cmp esi, 0xffffffff
sete cl
mov edx, dword [rsp + 0x3c]
cmove rdx, rax
mov rax, rcx
add rsp, 0x40
pop rsi
ret

Function at 0x14004db10
Capabilities:
Set socket configuration

Disassembly:
sub rsp, 0x38
xor r10d, r10d
cmp r8d, 0x3b9aca00
je 0x14004db6e
mov r10d, 0x3e8
mov rax, rdx
mul r10
mov r10d, 0xffffffff
jo 0x14004db6e
mov edx, r8d
imul rdx, rdx, 0x431bde83
shr rdx, 0x32
add rax, rdx
jb 0x14004db6e
imul edx, edx, 0xf4240
xor r11d, r11d
sub r8d, edx
setne r11b
add rax, r11
jb 0x14004db6e
mov r10d, 0xffffffff
cmp rax, r10
cmovb r10, rax
test r10, r10
je 0x14004dbb1
mov rcx, qword [rcx]
mov dword [rsp + 0x34], r10d
mov dword [rsp + 0x20], 4
lea rax, [rsp + 0x34]
mov edx, 0xffff
mov r8d, r9d
mov r9, rax
call sub.WS2_32.dll_setsockopt
cmp eax, 0xffffffff
je 0x14004db9f
xor eax, eax
add rsp, 0x38
ret
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
add rsp, 0x38
ret
lea rax, str.cannot_set_a_0_duration_timeout
add rsp, 0x38
ret

Function at 0x14004dc80
Capabilities:
Set socket configuration

Disassembly:
sub rsp, 0x28
movzx eax, dl
mov dword [rsp + 0x24], eax
mov rcx, qword [rcx]
lea r8, [rsp + 0x24]
mov edx, 0x8004667e
call sub.WS2_32.dll_ioctlsocket
cmp eax, 0xffffffff
je 0x14004dca9
xor eax, eax
add rsp, 0x28
ret
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
add rsp, 0x28
ret

Function at 0x14004dcc0
Capabilities:
Set socket configuration

Disassembly:
push rsi
sub rsp, 0x30
xor esi, esi
xor eax, eax
cmp r8d, 0x3b9aca00
cmove edx, esi
setne al
mov rcx, qword [rcx]
mov word [rsp + 0x2c], ax
mov word [rsp + 0x2e], dx
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x2c]
mov edx, 0xffff
mov r8d, pe_nt_image_headers64
call sub.WS2_32.dll_setsockopt
cmp eax, 0xffffffff
jne 0x14004dd14
call sub.WS2_32.dll_WSAGetLastError
mov esi, eax
shl rsi, 0x20
or rsi, 2
mov rax, rsi
add rsp, 0x30
pop rsi
ret

Function at 0x14004dda0
Capabilities:
Set socket configuration

Disassembly:
sub rsp, 0x38
movzx eax, dl
mov rcx, qword [rcx]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x34]
mov edx, 6
mov r8d, 1
call sub.WS2_32.dll_setsockopt
cmp eax, 0xffffffff
je 0x14004ddd7
xor eax, eax
add rsp, 0x38
ret
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
add rsp, 0x38
ret

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

Disassembly:
sub rsp, 0x28
mov rax, qword [rcx]
mov rcx, qword [rax]
cmp r8, 0x7fffffff
mov eax, 0x7fffffff
cmovae r8, rax
xor r9d, r9d
call sub.WS2_32.dll_recv
cmp eax, 0xffffffff
je 0x14004df14
movsxd rdx, eax
xor ecx, ecx
mov rax, rcx
add rsp, 0x28
ret
call sub.WS2_32.dll_WSAGetLastError
xor edx, edx
mov ecx, 0
cmp eax, 0x274a
je 0x14004df0c
shl rax, 0x20
or rax, 2
mov ecx, 1
mov rdx, rax
mov rax, rcx
add rsp, 0x28
ret
Function at 0x14004ec80
Capabilities:
Set current directory

Disassembly:
push rsi
push rdi
sub rsp, 0x58
add rdx, rcx
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], rdx
mov word [rsp + 0x50], 0
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x40]
call dbg.from_iter<u16, std::sys_common::wtf8::EncodeWide>
mov rdx, qword [rsp + 0x38]
cmp rdx, qword [rsp + 0x28]
jne 0x14004ecc4
lea rcx, [rsp + 0x28]
call dbg.reserve_for_push<u16, alloc::alloc::Global>
mov rdx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x30]
mov word [rsi + rdx*2], 0
mov rcx, rsi
call sub.KERNEL32.dll_SetCurrentDirectoryW
test eax, eax
je 0x14004ed02
xor edi, edi
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x14004ecf8
add rdx, rdx
mov r8d, 2
mov rcx, rsi
call sym.__rust_dealloc
mov rax, rdi
add rsp, 0x58
pop rdi
pop rsi
ret
call sub.KERNEL32.dll_GetLastError
mov edi, eax
shl rdi, 0x20
or rdi, 2
mov rdx, qword [rsp + 0x28]
test rdx, rdx
jne 0x14004ece7
jmp 0x14004ecf8
Function at 0x14004f560
Capabilities:
Read file on windows

Disassembly:
push rsi
push rdi
sub rsp, 0x68
in al, dx
push 0xffffffffffffffb8
invalid
invalid
dec dword [rcx + 0x39]
cmp eax, eax

Function at 0x14004f780
Capabilities:
Read file on windows

Disassembly:
push rsi
push rdi
sub rsp, 0x68
sub esp, 0x68

Function at 0x140050120
Capabilities:
Read file on windows

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rdi, rdx
cmp qword [rdx], 0
jne 0x140050291
mov rsi, rcx
mov rbx, qword [rdi + 0x18]
mov rax, qword [rbx]
test rax, rax
jne 0x140050157
mov rdx, qword [rbx + 0x10]
lea rax, [rdx + 0xf]
cmp rax, 0xf
jbe 0x140050256
xor eax, eax
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x140050274
sub rax, rdx
add rdx, qword [rbx + 8]
mov r8, qword [rdi + 0x10]
mov ecx, 0xffffffff
cmp rax, rcx
cmovae rax, rcx
mov dword [rsp + 0x2c], 0
mov rcx, qword [rdi + 0x20]
mov qword [rsp + 0x20], r8
lea r9, [rsp + 0x2c]
mov r8d, eax
call sub.KERNEL32.dll_ReadFile
test eax, eax
je 0x1400501b8
mov eax, dword [rsp + 0x2c]
mov ecx, 2
test rax, rax
je 0x1400501fc
mov qword [rdi], rcx
mov qword [rdi + 8], rax
mov byte [rsi + 1], 1
jmp 0x140050200
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x40], rax
movabs rcx, 0xffffffff00000000
and rcx, rax
movabs rdx, 0x6d00000000
cmp rcx, rdx
je 0x140050204
movabs rdx, 0x3e500000000
cmp rcx, rdx
jne 0x140050233
lea rax, [rsp + 0x30]
jmp 0x140050212
mov byte [rsi + 1], 0
xor eax, eax
jmp 0x140050239
mov qword [rsp + 0x30], 1
lea rax, [rsp + 0x38]
mov qword [rax], 0
lea rcx, [rsp + 0x40]
call dbg.drop_in_place<std::io::error::Error>
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
cmp rcx, 2
jne 0x140050243
mov qword [rsi + 8], rax
mov al, 1
mov byte [rsi], al
add rsp, 0x70
pop rbx
pop rdi
pop rsi
ret
test rcx, rcx
jne 0x1400501a1
mov ecx, 1
jmp 0x1400501ab
mov r8d, 0x10
mov rcx, rbx
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::hb0ad7a2b9f1c77cc
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
jne 0x140050164
mov r8d, 1
mov rcx, rbx
mov rdx, rax
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::hb0ad7a2b9f1c77cc
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
jmp 0x140050164
mov qword [rsp + 0x40], 0
lea rdx, [rsp + 0x40]
mov rcx, rdi
call dbg.assert_failed<std::sys::pal::windows::pipe::State, std::sys::pal::windows::pipe::State>
int3
Function at 0x140054490
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rsi, rcx
movabs r14, 0x8000000000000000
lea rcx, [rsp + 0x40]
call sym.std::sys::pal::windows::to_u16s::inner::h4c9a51427fa9952c
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
cmp rcx, r14
jne 0x1400544cd
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r14
jmp 0x1400544fa
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 dbg.from_wide_to_user_path
mov rdi, qword [rsp + 0x28]
cmp rdi, r14
jne 0x140054513
lea rcx, [rsp + 0x30]
call dbg.drop_in_place<std::io::error::Error>
mov qword [rsi], r14
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov rbx, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
mov rcx, rbx
call sub.KERNEL32.dll_GetFileAttributesW
cmp eax, 0xffffffff
je 0x140054537
mov qword [rsi], rdi
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], r15
jmp 0x140054507
mov qword [rsi], r14
test rdi, rdi
je 0x140054507
add rdi, rdi
mov r8d, 2
mov rcx, rbx
mov rdx, rdi
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r14
pop r15
jmp sym.__rust_dealloc
Function at 0x1400561a0
Capabilities:
Create thread

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x38
mov rbx, r8
mov r14, rdx
mov rdi, rcx
mov rax, qword [0x1400cc3e8]
movzx eax, byte [rax]
mov ecx, 0x10
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x140056263
mov rsi, rax
mov qword [rax], r14
mov qword [rax + 8], rbx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [dbg.thread_start]
xor ebx, ebx
xor ecx, ecx
mov rdx, rdi
mov r9, rax
call sub.KERNEL32.dll_CreateThread
mov rdx, rax
test rax, rax
jne 0x140056256
mov rbx, qword [rsi]
mov r14, qword [rsi + 8]
mov rcx, rbx
call qword [r14]
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x14005622f
mov r8, qword [r14 + 0x10]
mov rcx, rbx
call sym.__rust_dealloc
mov edx, 0x10
mov r8d, 8
mov rcx, rsi
call sym.__rust_dealloc
call sub.KERNEL32.dll_GetLastError
mov edx, eax
shl rdx, 0x20
or rdx, 2
mov ebx, 1
mov rax, rbx
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r14
ret
mov ecx, 8
mov edx, 0x10
call dbg.handle_alloc_error
ud2

Function at 0x140056500
Capabilities:
Allocate thread local storage

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x60
mov rsi, rcx
cmp qword [rcx], 0
je 0x140056590
mov rax, qword [dbg.on_tls_callback]
mov dword [rsp + 0x2c], 0
lea rdi, [rsi + 0x10]
lea r8, [rsp + 0x2c]
mov rcx, rdi
xor edx, edx
xor r9d, r9d
call sub.KERNEL32.dll_InitOnceBeginInitialize
mov dword [rsp + 0x28], eax
cmp eax, 1
jne 0x1400565d1
cmp dword [rsp + 0x2c], 0
je 0x1400565b5
call sub.KERNEL32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x1400565f7
mov ebx, eax
inc eax
mov dword [rsi + 0x18], eax
mov rax, qword [0x1400db158]
nop dword [rax]
mov qword [rsi + 8], rax
lock cmpxchg qword [0x1400db158], rsi
jne 0x140056570
mov rcx, rdi
xor edx, edx
xor r8d, r8d
call sub.KERNEL32.dll_InitOnceComplete
mov eax, ebx
jmp 0x1400565c9
call sub.KERNEL32.dll_TlsAlloc
mov dword [rsp + 0x28], eax
cmp eax, 0xffffffff
je 0x140056641
mov ecx, eax
inc ecx
xor eax, eax
lock cmpxchg dword [rsi + 0x18], ecx
jne 0x1400565ba
mov eax, dword [rsp + 0x28]
jmp 0x1400565c9
mov eax, dword [rsi + 0x18]
jmp 0x1400565c7
mov ecx, dword [rsp + 0x28]
mov esi, eax
call sub.KERNEL32.dll_TlsFree
mov eax, esi
dec eax
add rsp, 0x60
pop rbx
pop rdi
pop rsi
ret
mov qword [rsp + 0x30], 0
lea rdx, [0x1400ae508]
lea r9, str.library_std_src_syspalwindows_thread_local_key.rs
lea rcx, [rsp + 0x28]
lea r8, [rsp + 0x30]
call dbg.assert_failed<i32, i32>
mov rcx, rdi
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, [0x1400a9838]
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rdx, str.library_std_src_syspalwindows_thread_local_key.rs
lea rcx, [rsp + 0x30]
call dbg.panic_fmt
lea rax, str.out_of_TLS_indexes
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
lea rax, [0x1400a9838]
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x30]
call dbg.assert_failed<u32, u32>
int3