joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400464a0
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 0x140046505
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 0x140046510
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 0x140046539
test rdi, rdi
je 0x140046564
add rdi, rdi
mov r8d, 2
mov rcx, rsi
mov rdx, rdi
call sym.__rust_dealloc
xor eax, eax
jmp 0x140046508
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
test rdi, rdi
je 0x140046508
add rdi, rdi
mov r8d, 2
mov rcx, rsi
mov rdx, rdi
mov rsi, rax
call sym.__rust_dealloc
jmp 0x140046505
xor eax, eax
jmp 0x140046508

Function at 0x1400479c0
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 0x140047a2a
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 0x140047a37
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 0x140047a62
test rdi, rdi
je 0x140047a8d
add rdi, rdi
mov r8d, 2
mov rcx, rsi
mov rdx, rdi
call sym.__rust_dealloc
xor eax, eax
jmp 0x140047a2d
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
test rdi, rdi
je 0x140047a2d
add rdi, rdi
mov r8d, 2
mov rcx, rsi
mov rdx, rdi
mov rsi, rax
call sym.__rust_dealloc
jmp 0x140047a2a
xor eax, eax
jmp 0x140047a2d
Function at 0x140047d80
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 0x140047e6b
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 0x140047e6b
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 0x140047e4a
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 0x140047e82
mov eax, 1
test rdi, rdi
je 0x140047e73
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 0x140047f01
mov rdx, qword [rsp + 0x38]
test rbx, rbx
je 0x140047edb
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 0x140047efa
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 0x140047e73
call sub.KERNEL32.dll_GetLastError
mov edx, eax
shl rdx, 0x20
or rdx, 2
test rbx, rbx
je 0x140047e4a
add rbx, rbx
mov r8d, 2
mov rcx, r14
mov r14, rdx
mov rdx, rbx
call sym.__rust_dealloc
mov rdx, r14
jmp 0x140047e4a

Function at 0x1400489c0
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 0x140048a0f
mov eax, dword [rsp + 0x34]
mov qword [rsi], 1
mov qword [rsi + 8], rax
jmp 0x140048a7d
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 0x140048a51
movabs rdx, 0x3e500000000
cmp rcx, rdx
jne 0x140048a72
mov rax, rsi
jmp 0x140048a5f
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 0x140048a7d
mov qword [rsi + 8], rax
mov qword [rsi], 2
mov rax, rsi
add rsp, 0x40
pop rsi
ret
Function at 0x140048cd0
Capabilities:
Read file on windows

Disassembly:
push rsi
sub rsp, 0xb0
mov rsi, rcx
movups xmm0, xmmword [0x1400a8eb8]
movaps xmmword [rsp + 0x60], xmm0
mov eax, 0xffffffff
cmp r8, rax
cmovb rax, r8
test r9, r9
je 0x140048d08
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 0x140048d68
mov rcx, rsi
mov edx, 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
mov eax, dword [rsp + 0x60]
cmp eax, 0xc0000011
jne 0x140048d73
xor edx, edx
jmp 0x140048d83
cmp eax, 0x103
je 0x140048dad
test eax, eax
js 0x140048d8e
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 0x140048e20
Capabilities:
Write file on windows

Disassembly:
push rsi
sub rsp, 0xb0
mov rsi, rcx
movups xmm0, xmmword [0x1400a8eb8]
movaps xmmword [rsp + 0x60], xmm0
mov eax, 0xffffffff
cmp r8, rax
cmovb rax, r8
test r9, r9
je 0x140048e58
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 0x140048ebf
mov rcx, rsi
mov edx, 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
mov eax, dword [rsp + 0x60]
cmp eax, 0x103
je 0x140048ef2
test eax, eax
js 0x140048ed3
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 0x140049490
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 0x14004955f
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2739
je 0x1400494ec
mov esi, eax
cmp eax, 0x2726
jne 0x140049552
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 0x14004954b
mov rsi, rax
xor ebx, ebx
mov rcx, rax
mov edx, 1
xor r8d, r8d
call sub.KERNEL32.dll_SetHandleInformation
test eax, eax
jne 0x14004955f
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 0x14004955f
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 0x140049570
Capabilities:
Connect socket

Disassembly:
sub rsp, 0x48
cmp word [rdx], 0
je 0x140049596
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 0x1400495ab
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 0x1400495e1
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 0x140049600
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 0x140049662
cmp word [r15], 0
je 0x140049677
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 0x140049a50
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 0x140049a81
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 0x140049a79
shl rax, 0x20
or rax, 2
mov ecx, 1
mov rdx, rax
mov rax, rcx
add rsp, 0x28
ret

Function at 0x140049ab0
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 0x140049b2a
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 0x140049b0b
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 0x140049b23
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x274a
jne 0x140049b1b
xor eax, eax
jmp 0x140049b23
shl rax, 0x20
or rax, 2
add rsp, 0x28
pop rdi
pop rsi
ret
lea r8, [0x1400a4760]
mov rcx, rsi
call dbg.slice_start_index_len_fail
int3
Function at 0x140049b40
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 0x140049b98
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x274a
jne 0x140049ba3
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 0x140049bc0
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 0x140049bf4
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 0x140049bec
shl rax, 0x20
or rax, 2
mov ecx, 1
mov rdx, rax
mov rax, rcx
add rsp, 0x28
ret
Function at 0x140049f30
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 0x140049f7a
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 0x140049fa0
Capabilities:
Set socket configuration

Disassembly:
sub rsp, 0x38
xor r10d, r10d
cmp r8d, 0x3b9aca00
je 0x140049ffe
mov r10d, 0x3e8
mov rax, rdx
mul r10
mov r10d, 0xffffffff
jo 0x140049ffe
mov edx, r8d
imul rdx, rdx, 0x431bde83
shr rdx, 0x32
add rax, rdx
jb 0x140049ffe
imul edx, edx, 0xf4240
xor r11d, r11d
sub r8d, edx
setne r11b
add rax, r11
jb 0x140049ffe
mov r10d, 0xffffffff
cmp rax, r10
cmovb r10, rax
test r10, r10
je 0x14004a041
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 0x14004a02f
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 0x14004a110
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 0x14004a139
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 0x14004a150
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 0x14004a1a4
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 0x14004a230
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 0x14004a267
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 0x14004a370
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 0x14004a3a4
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 0x14004a39c
shl rax, 0x20
or rax, 2
mov ecx, 1
mov rdx, rax
mov rax, rcx
add rsp, 0x28
ret
Function at 0x14004b110
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 0x14004b154
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 0x14004b192
xor edi, edi
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x14004b188
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 0x14004b177
jmp 0x14004b188
Function at 0x14004b9f0
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 0x14004bc10
Capabilities:
Read file on windows

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

Function at 0x14004c5b0
Capabilities:
Read file on windows

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rdi, rdx
cmp qword [rdx], 0
jne 0x14004c721
mov rsi, rcx
mov rbx, qword [rdi + 0x18]
mov rax, qword [rbx]
test rax, rax
jne 0x14004c5e7
mov rdx, qword [rbx + 0x10]
lea rax, [rdx + 0xf]
cmp rax, 0xf
jbe 0x14004c6e6
xor eax, eax
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x14004c704
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 0x14004c648
mov eax, dword [rsp + 0x2c]
mov ecx, 2
test rax, rax
je 0x14004c68c
mov qword [rdi], rcx
mov qword [rdi + 8], rax
mov byte [rsi + 1], 1
jmp 0x14004c690
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 0x14004c694
movabs rdx, 0x3e500000000
cmp rcx, rdx
jne 0x14004c6c3
lea rax, [rsp + 0x30]
jmp 0x14004c6a2
mov byte [rsi + 1], 0
xor eax, eax
jmp 0x14004c6c9
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 0x14004c6d3
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 0x14004c631
mov ecx, 1
jmp 0x14004c63b
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 0x14004c5f4
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 0x14004c5f4
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 0x140050920
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 0x14005095d
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r14
jmp 0x14005098a
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 0x1400509a3
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 0x1400509c7
mov qword [rsi], rdi
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], r15
jmp 0x140050997
mov qword [rsi], r14
test rdi, rdi
je 0x140050997
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 0x140052630
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 [str.1__r_]
movzx eax, byte [rax]
mov ecx, 0x10
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1400526f3
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 0x1400526e6
mov rbx, qword [rsi]
mov r14, qword [rsi + 8]
mov rcx, rbx
call qword [r14]
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x1400526bf
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 0x140052990
Capabilities:
Allocate thread local storage

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x60
mov rsi, rcx
cmp qword [rcx], 0
je 0x140052a20
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 0x140052a61
cmp dword [rsp + 0x2c], 0
je 0x140052a45
call sub.KERNEL32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x140052a87
mov ebx, eax
inc eax
mov dword [rsi + 0x18], eax
mov rax, qword [0x1400d6158]
nop dword [rax]
mov qword [rsi + 8], rax
lock cmpxchg qword [0x1400d6158], rsi
jne 0x140052a00
mov rcx, rdi
xor edx, edx
xor r8d, r8d
call sub.KERNEL32.dll_InitOnceComplete
mov eax, ebx
jmp 0x140052a59
call sub.KERNEL32.dll_TlsAlloc
mov dword [rsp + 0x28], eax
cmp eax, 0xffffffff
je 0x140052ad1
mov ecx, eax
inc ecx
xor eax, eax
lock cmpxchg dword [rsi + 0x18], ecx
jne 0x140052a4a
mov eax, dword [rsp + 0x28]
jmp 0x140052a59
mov eax, dword [rsi + 0x18]
jmp 0x140052a57
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, [0x1400a92e8]
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, [0x1400a4618]
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, [0x1400a4618]
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