joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1005d570
Capabilities:
Generate random numbers via winapi
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x38
mov rsi, rcx
mov ecx, dword [0x100f6050]
test ecx, ecx
je 0x1005d5a2
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x1005d5bb
mov rcx, rax
cmp qword [rax], 0
je 0x1005d5bb
add rcx, 8
jmp 0x1005d6ad
lea rcx, dbg.destroy_value_core::cell::Cell__u64__u64___
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
ja 0x1005d590
mov ecx, dword [0x100f6050]
test ecx, ecx
je 0x1005d68e
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x1005d6ab
mov rdi, rax
test rax, rax
jne 0x1005d627
mov ecx, 0x20
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1005d6ca
mov rdi, rax
mov qword [rax], 0
lea rax, dbg.destroy_value_core::cell::Cell__u64__u64___
mov qword [rdi + 0x18], rax
mov ecx, dword [0x100f6050]
test ecx, ecx
je 0x1005d6b7
dec ecx
mov rdx, rdi
call fcn.100d8ac4
test rsi, rsi
je 0x1005d644
mov rcx, qword [rsi]
mov rax, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
mov qword [rsi], 0
cmp rcx, 1
je 0x1005d679
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x20]
xor ecx, ecx
mov r8d, 0x10
mov r9d, 2
call sub.bcrypt.dll_BCryptGenRandom
test eax, eax
js 0x1005d674
mov rax, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
jmp 0x1005d679
call dbg.fallback_rng
mov qword [rdi], 1
lea rcx, [rdi + 8]
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rdx
jmp 0x1005d6ad
lea rcx, dbg.destroy_value_core::cell::Cell__u64__u64___
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jne 0x1005d5da
xor ecx, ecx
mov rax, rcx
add rsp, 0x38
pop rdi
pop rsi
ret
lea rcx, dbg.destroy_value_core::cell::Cell__u64__u64___
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
jmp 0x1005d61f
mov ecx, 0x20
mov edx, 8
call dbg.handle_alloc_error
ud2
Function at 0x1005db60
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x40
mov rsi, rcx
mov ecx, dword [0x100f6070]
test ecx, ecx
je 0x1005db93
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x1005dbac
mov rbx, rax
cmp qword [rax], 0
je 0x1005dbac
add rbx, 8
jmp 0x1005dca9
lea rcx, dbg.destroy_value_core::cell::Cell_core::option::Option_alloc::sync::Arc_std::sync::mutex::Mutex_alloc::vec::Vec_u8__alloc::alloc::Global______
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
ja 0x1005db81
mov ecx, dword [0x100f6070]
test ecx, ecx
je 0x1005dc8a
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x1005dca7
mov rdi, rax
test rax, rax
jne 0x1005dc2c
mov qword [rsp + 0x28], 0
lea rax, dbg.destroy_value_core::cell::Cell_core::option::Option_alloc::sync::Arc_std::sync::mutex::Mutex_alloc::vec::Vec_u8__alloc::alloc::Global______
mov qword [rsp + 0x38], rax
mov ecx, 0x18
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1005dcc7
mov rdi, rax
mov rax, qword [rsp + 0x38]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsp + 0x28]
movups xmmword [rdi], xmm0
mov ecx, dword [0x100f6070]
test ecx, ecx
je 0x1005dcb4
dec ecx
mov rdx, rdi
call fcn.100d8ac4
test rsi, rsi
je 0x1005dc5a
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
mov qword [rsi], 0
test rax, rax
je 0x1005dc5a
cmp rax, 1
je 0x1005dc5c
test rcx, rcx
je 0x1005dc5a
lock dec qword [rcx]
jne 0x1005dc5a
call dbg.drop_slow<std::sync::mutex::Mutex<alloc::vec::Vec<u8, alloc::alloc::Global>>>
xor ecx, ecx
lea rbx, [rdi + 8]
mov rax, qword [rdi + 8]
cmp qword [rdi], 0
mov qword [rdi], 1
mov qword [rdi + 8], rcx
je 0x1005dca9
test rax, rax
je 0x1005dca9
lock dec qword [rax]
jne 0x1005dca9
mov rcx, rax
call dbg.drop_slow<std::sync::mutex::Mutex<alloc::vec::Vec<u8, alloc::alloc::Global>>>
jmp 0x1005dca9
lea rcx, dbg.destroy_value_core::cell::Cell_core::option::Option_alloc::sync::Arc_std::sync::mutex::Mutex_alloc::vec::Vec_u8__alloc::alloc::Global______
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jne 0x1005dbcb
xor ebx, ebx
mov rax, rbx
add rsp, 0x40
pop rbx
pop rdi
pop rsi
ret
lea rcx, dbg.destroy_value_core::cell::Cell_core::option::Option_alloc::sync::Arc_std::sync::mutex::Mutex_alloc::vec::Vec_u8__alloc::alloc::Global______
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
jmp 0x1005dc24
mov ecx, 0x18
mov edx, 8
call dbg.handle_alloc_error
ud2
Function at 0x1005e7a0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x40
mov rsi, rcx
mov ecx, dword [0x100f6090]
test ecx, ecx
je 0x1005e7d3
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x1005e7ec
mov rbx, rax
cmp qword [rax], 0
je 0x1005e7ec
add rbx, 8
jmp 0x1005e8ee
lea rcx, dbg.destroy_value_core::cell::Cell_core::option::Option_std::sync::mpmc::context::Context___
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
ja 0x1005e7c1
mov ecx, dword [0x100f6090]
test ecx, ecx
je 0x1005e8cf
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x1005e8ec
mov rdi, rax
test rax, rax
jne 0x1005e86c
mov qword [rsp + 0x28], 0
lea rax, dbg.destroy_value_core::cell::Cell_core::option::Option_std::sync::mpmc::context::Context___
mov qword [rsp + 0x38], rax
mov ecx, 0x18
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1005e90c
mov rdi, rax
mov rax, qword [rsp + 0x38]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsp + 0x28]
movups xmmword [rdi], xmm0
mov ecx, dword [0x100f6090]
test ecx, ecx
je 0x1005e8f9
dec ecx
mov rdx, rdi
call fcn.100d8ac4
test rsi, rsi
je 0x1005e8c8
mov rcx, qword [rsi]
mov rax, qword [rsi + 8]
mov qword [rsi], 0
cmp rcx, 1
jne 0x1005e8b0
lea rbx, [rdi + 8]
mov rcx, qword [rdi + 8]
cmp qword [rdi], 0
mov qword [rdi], 1
mov qword [rdi + 8], rax
je 0x1005e8ee
test rcx, rcx
je 0x1005e8ee
lock dec qword [rcx]
jne 0x1005e8ee
call dbg.drop_slow<std::sync::mpmc::context::Inner>
jmp 0x1005e8ee
test rcx, rcx
je 0x1005e8c8
test rax, rax
je 0x1005e8c8
lock dec qword [rax]
jne 0x1005e8c8
mov rcx, rax
call dbg.drop_slow<std::sync::mpmc::context::Inner>
call sym.std::sync::mpmc::context::Context::new::hddd1ea2cf27699fa
jmp 0x1005e885
lea rcx, dbg.destroy_value_core::cell::Cell_core::option::Option_std::sync::mpmc::context::Context___
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jne 0x1005e80b
xor ebx, ebx
mov rax, rbx
add rsp, 0x40
pop rbx
pop rdi
pop rsi
ret
lea rcx, dbg.destroy_value_core::cell::Cell_core::option::Option_std::sync::mpmc::context::Context___
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
jmp 0x1005e864
mov ecx, 0x18
mov edx, 8
call dbg.handle_alloc_error
ud2
Function at 0x1005eb50
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 [0x100f60b0]
test ecx, ecx
je 0x1005eb7f
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x1005eb98
cmp byte [rax + 8], 0
je 0x1005eb98
add rax, 9
jmp 0x1005ec2f
lea rcx, dbg.destroy_value_u8_
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
ja 0x1005eb70
mov ecx, dword [0x100f60b0]
test ecx, ecx
je 0x1005ec14
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x1005ec2d
mov rdi, rax
test rax, rax
jne 0x1005ebf0
mov ecx, 0x10
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1005ec46
mov rdi, rax
lea rax, dbg.destroy_value_u8_
mov qword [rdi], rax
mov byte [rdi + 8], 0
mov ecx, dword [0x100f60b0]
test ecx, ecx
je 0x1005ec36
dec ecx
mov rdx, rdi
call fcn.100d8ac4
test rsi, rsi
je 0x1005ec05
movzx ecx, byte [rsi]
and cl, 1
neg cl
mov byte [rsi], 0
and cl, byte [rsi + 1]
jmp 0x1005ec07
xor ecx, ecx
lea rax, [rdi + 9]
mov byte [rdi + 8], 1
mov byte [rdi + 9], cl
jmp 0x1005ec2f
lea rcx, dbg.destroy_value_u8_
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jne 0x1005ebaf
xor eax, eax
add rsp, 0x28
pop rdi
pop rsi
ret
lea rcx, dbg.destroy_value_u8_
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
jmp 0x1005ebe8
mov ecx, 0x10
mov edx, 8
call dbg.handle_alloc_error
ud2

Function at 0x1005ec60
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 [0x100f60d0]
test ecx, ecx
je 0x1005ec8f
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x1005eca8
cmp byte [rax + 8], 0
je 0x1005eca8
add rax, 9
jmp 0x1005ed3f
lea rcx, dbg.destroy_value_u8_
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
ja 0x1005ec80
mov ecx, dword [0x100f60d0]
test ecx, ecx
je 0x1005ed24
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x1005ed3d
mov rdi, rax
test rax, rax
jne 0x1005ed00
mov ecx, 0x10
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1005ed56
mov rdi, rax
lea rax, dbg.destroy_value_u8_
mov qword [rdi], rax
mov byte [rdi + 8], 0
mov ecx, dword [0x100f60d0]
test ecx, ecx
je 0x1005ed46
dec ecx
mov rdx, rdi
call fcn.100d8ac4
test rsi, rsi
je 0x1005ed15
movzx ecx, byte [rsi]
and cl, 1
neg cl
mov byte [rsi], 0
and cl, byte [rsi + 1]
jmp 0x1005ed17
xor ecx, ecx
lea rax, [rdi + 9]
mov byte [rdi + 8], 1
mov byte [rdi + 9], cl
jmp 0x1005ed3f
lea rcx, dbg.destroy_value_u8_
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jne 0x1005ecbf
xor eax, eax
add rsp, 0x28
pop rdi
pop rsi
ret
lea rcx, dbg.destroy_value_u8_
call sym.std::sys::windows::thread_local_key::StaticKey::init::hfcbb047e39b8e62f
mov ecx, eax
jmp 0x1005ecf8
mov ecx, 0x10
mov edx, 8
call dbg.handle_alloc_error
ud2
Function at 0x10060c80
Capabilities:
Delete file

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x40
mov r8, rdx
mov rdx, rcx
lea rcx, [rsp + 0x28]
call dbg.maybe_verbatim
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
test rdi, rdi
je 0x10060cbb
mov rcx, rdi
call sub.KERNEL32.dll_DeleteFileW
test eax, eax
je 0x10060cc0
xor ebx, ebx
test rsi, rsi
jne 0x10060cd4
jmp 0x10060ce8
mov rbx, rsi
jmp 0x10060ce8
call fcn.100d8c94
mov ebx, eax
shl rbx, 0x20
or rbx, 2
test rsi, rsi
je 0x10060ce8
add rsi, rsi
mov r8d, 2
mov rcx, rdi
mov rdx, rsi
call sym.__rust_dealloc
mov rax, rbx
add rsp, 0x40
pop rbx
pop rdi
pop rsi
ret

Function at 0x10060d00
Capabilities:
Move file

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x50
mov rbx, r9
mov rdi, r8
mov r8, rdx
mov rdx, rcx
lea rcx, [rsp + 0x20]
call dbg.maybe_verbatim
mov rsi, qword [rsp + 0x20]
mov r15, qword [rsp + 0x28]
test r15, r15
je 0x10060dae
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0x20]
mov rdx, rdi
mov r8, rbx
call dbg.maybe_verbatim
mov rbx, qword [rsp + 0x20]
mov r14, qword [rsp + 0x28]
test r14, r14
je 0x10060dde
mov rcx, r15
mov rdx, r14
mov r8d, 1
call sub.KERNEL32.dll_MoveFileExW
test eax, eax
je 0x10060db3
test rbx, rbx
je 0x10060d91
add rbx, rbx
mov r8d, 2
mov rcx, r14
mov rdx, rbx
call sym.__rust_dealloc
test rsi, rsi
je 0x10060daa
add rsi, rsi
mov r8d, 2
mov rcx, r15
mov rdx, rsi
call sym.__rust_dealloc
xor ebx, ebx
jmp 0x10060df7
mov rbx, rsi
jmp 0x10060df7
call fcn.100d8c94
mov edi, eax
shl rdi, 0x20
or rdi, 2
test rbx, rbx
je 0x10060ddb
add rbx, rbx
mov r8d, 2
mov rcx, r14
mov rdx, rbx
call sym.__rust_dealloc
mov rbx, rdi
test rsi, rsi
je 0x10060df7
add rsi, rsi
mov r8d, 2
mov rcx, r15
mov rdx, rsi
call sym.__rust_dealloc
mov rax, rbx
add rsp, 0x50
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret

Function at 0x10060e30
Capabilities:
Delete directory

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x40
mov r8, rdx
mov rdx, rcx
lea rcx, [rsp + 0x28]
call dbg.maybe_verbatim
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
test rdi, rdi
je 0x10060e6b
mov rcx, rdi
call sub.KERNEL32.dll_RemoveDirectoryW
test eax, eax
je 0x10060e70
xor ebx, ebx
test rsi, rsi
jne 0x10060e84
jmp 0x10060e98
mov rbx, rsi
jmp 0x10060e98
call fcn.100d8c94
mov ebx, eax
shl rbx, 0x20
or rbx, 2
test rsi, rsi
je 0x10060e98
add rsi, rsi
mov r8d, 2
mov rcx, rdi
mov rdx, rsi
call sym.__rust_dealloc
mov rax, rbx
add rsp, 0x40
pop rbx
pop rdi
pop rsi
ret
Function at 0x10061db0
Capabilities:
Set file attributes

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x40
mov ebx, r8d
mov r8, rdx
mov rdx, rcx
lea rcx, [rsp + 0x28]
call dbg.maybe_verbatim
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
test rdi, rdi
je 0x10061df0
mov rcx, rdi
mov edx, ebx
call sub.KERNEL32.dll_SetFileAttributesW
test eax, eax
je 0x10061df5
xor ebx, ebx
test rsi, rsi
jne 0x10061e09
jmp 0x10061e1d
mov rbx, rsi
jmp 0x10061e1d
call fcn.100d8c94
mov ebx, eax
shl rbx, 0x20
or rbx, 2
test rsi, rsi
je 0x10061e1d
add rsi, rsi
mov r8d, 2
mov rcx, rdi
mov rdx, rsi
call sym.__rust_dealloc
mov rax, rbx
add rsp, 0x40
pop rbx
pop rdi
pop rsi
ret

Function at 0x100620e0
Capabilities:
Copy file

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x68
mov rsi, r9
mov r12, rcx
lea rcx, [rsp + 0x38]
call dbg.maybe_verbatim
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x10062196
mov r8, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rax
lea rcx, [rsp + 0x38]
mov rdx, rsi
call dbg.maybe_verbatim
mov r14, qword [rsp + 0x38]
mov r15, qword [rsp + 0x40]
test r15, r15
je 0x100621a5
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea r8, [sym.std::sys::windows::fs::copy::callback::h7843f6dcf376a38b]
lea r9, [rsp + 0x38]
mov rcx, rbx
mov rdx, r15
call sub.KERNEL32.dll_CopyFileExW
test eax, eax
je 0x100621b4
mov rax, qword [rsp + 0x38]
mov qword [r12 + 8], rax
mov qword [r12], 0
test r14, r14
jne 0x100621d3
jmp 0x100621e7
mov qword [r12 + 8], rdi
mov qword [r12], 1
jmp 0x10062200
mov qword [r12 + 8], r14
mov qword [r12], 1
jmp 0x100621e7
call fcn.100d8c94
shl rax, 0x20
or rax, 2
mov qword [r12 + 8], rax
mov qword [r12], 1
test r14, r14
je 0x100621e7
add r14, r14
mov r8d, 2
mov rcx, r15
mov rdx, r14
call sym.__rust_dealloc
test rdi, rdi
je 0x10062200
add rdi, rdi
mov r8d, 2
mov rcx, rbx
mov rdx, rdi
call sym.__rust_dealloc
mov rax, r12
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret

Function at 0x100627f0
Capabilities:
Read file on windows

Disassembly:
push rsi
sub rsp, 0x30
mov rax, r8
mov rsi, rcx
mov r10, qword [rsp + 0x60]
mov r8d, 0xffffffff
cmp r9, r8
cmovb r8, r9
mov dword [rsp + 0x2c], 0
mov rcx, qword [rdx]
mov qword [rsp + 0x20], r10
lea r9, [rsp + 0x2c]
mov rdx, rax
call sub.KERNEL32.dll_ReadFile
test eax, eax
je 0x10062846
mov eax, dword [rsp + 0x2c]
mov qword [rsi], 1
mov qword [rsi + 8], rax
mov rax, rsi
add rsp, 0x30
pop rsi
ret
call fcn.100d8c94
cmp eax, 0x6d
je 0x10062860
cmp eax, 0x3e5
jne 0x1006286c
mov qword [rsi], 0
jmp 0x1006283d
movaps xmm0, xmmword [0x1055c680]
movups xmmword [rsi], xmm0
jmp 0x1006283d
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 2
jmp 0x1006283d
Function at 0x100633b0
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 0x10063404
mov qword [rsi + 8], rax
mov qword [rsi], 0
jmp 0x1006349a
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2726
je 0x10063417
cmp eax, 0x2739
jne 0x10063465
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 0x10063460
mov rdi, rax
mov rcx, rax
mov edx, 1
xor r8d, r8d
call sub.KERNEL32.dll_SetHandleInformation
test eax, eax
je 0x1006347a
mov qword [rsi + 8], rdi
mov qword [rsi], 0
jmp 0x1006349a
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
jmp 0x1006349a
call fcn.100d8c94
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
mov rcx, rdi
call fcn.100d8ecc
mov rax, rsi
add rsp, 0x30
pop rbx
pop rdi
pop rsi
ret
Function at 0x10063900
Capabilities:
Receive data
Receive data on socket

Disassembly:
push rsi
sub rsp, 0x20
mov rax, r8
mov rsi, rcx
mov rcx, qword [rdx]
cmp r9, 0x7fffffff
mov r8d, 0x7fffffff
cmovb r8, r9
mov rdx, rax
xor r9d, r9d
call sub.WS2_32.dll_recv
cmp eax, 0xffffffff
je 0x1006393e
cdqe
mov qword [rsi + 8], rax
mov qword [rsi], 0
jmp 0x10063965
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x274a
jne 0x10063952
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
jmp 0x10063965
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
mov rax, rsi
add rsp, 0x20
pop rsi
ret

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

Disassembly:
push rsi
sub rsp, 0x40
mov rax, r8
mov r8d, 0xffffffff
cmp r9, r8
cmovb r8, r9
mov rsi, rcx
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x3c], 0
mov rcx, qword [rdx]
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
lea rdx, [rsp + 0x3c]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x38]
mov rdx, rax
call sub.WS2_32.dll_WSARecv
test eax, eax
je 0x100639d2
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x274a
jne 0x100639e3
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
jmp 0x100639f6
mov eax, dword [rsp + 0x38]
mov qword [rsi + 8], rax
mov qword [rsi], 0
jmp 0x100639f6
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
mov rax, rsi
add rsp, 0x40
pop rsi
ret

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

Disassembly:
push rsi
sub rsp, 0x20
mov rax, r8
mov rsi, rcx
mov rcx, qword [rdx]
cmp r9, 0x7fffffff
mov r8d, 0x7fffffff
cmovb r8, r9
mov rdx, rax
mov r9d, 2
call sub.WS2_32.dll_recv
cmp eax, 0xffffffff
je 0x10063a41
cdqe
mov qword [rsi + 8], rax
mov qword [rsi], 0
jmp 0x10063a68
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x274a
jne 0x10063a55
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
jmp 0x10063a68
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
mov rax, rsi
add rsp, 0x20
pop rsi
ret
Function at 0x10063d10
Capabilities:
Send data
Send data on socket

Disassembly:
push rsi
sub rsp, 0x40
mov rax, r8
mov rsi, rcx
mov r8d, 0xffffffff
cmp r9, r8
cmovb r8, r9
mov dword [rsp + 0x3c], 0
mov rcx, qword [rdx]
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], 0
lea r9, [rsp + 0x3c]
mov rdx, rax
call sub.WS2_32.dll_WSASend
cmp eax, 0xffffffff
je 0x10063d61
mov eax, dword [rsp + 0x3c]
mov qword [rsi + 8], rax
xor eax, eax
jmp 0x10063d77
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov eax, 1
mov qword [rsi], rax
mov rax, rsi
add rsp, 0x40
pop rsi
ret

Function at 0x10063d90
Capabilities:
Set socket configuration

Disassembly:
sub rsp, 0x38
xor r10d, r10d
cmp r8d, 0x3b9aca00
je 0x10063ded
mov r10d, 0x3e8
mov rax, rdx
mul r10
mov r10d, 0xffffffff
jo 0x10063ded
mov edx, r8d
imul rdx, rdx, 0x431bde83
shr rdx, 0x32
add rax, rdx
jb 0x10063ded
imul r11d, edx, 0xf4240
xor edx, edx
sub r8d, r11d
setne dl
add rax, rdx
jb 0x10063ded
mov r10d, 0xffffffff
cmp rax, r10
cmovb r10, rax
test r10, r10
je 0x10063e30
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 0x10063e1e
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 0x10063f20
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 0x10063f49
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 0x10063f60
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 + 0x28], ax
mov word [rsp + 0x2a], dx
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x28]
mov edx, 0xffff
mov r8d, pe_nt_image_headers64
call sub.WS2_32.dll_setsockopt
cmp eax, 0xffffffff
jne 0x10063fb4
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 0x10064040
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 0x10064077
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 0x10064110
Capabilities:
Receive data
Receive data on socket

Disassembly:
push rsi
sub rsp, 0x20
mov rax, r8
mov rsi, rcx
mov rcx, qword [rdx]
mov rcx, qword [rcx]
cmp r9, 0x7fffffff
mov r8d, 0x7fffffff
cmovb r8, r9
mov rdx, rax
xor r9d, r9d
call sub.WS2_32.dll_recv
cmp eax, 0xffffffff
je 0x10064151
cdqe
mov qword [rsi + 8], rax
mov qword [rsi], 0
jmp 0x10064178
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x274a
jne 0x10064165
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
jmp 0x10064178
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
mov rax, rsi
add rsp, 0x20
pop rsi
ret

Function at 0x10064be0
Capabilities:
Set current directory

Disassembly:
push rsi
push rdi
sub rsp, 0x58
add rdx, rcx
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], rcx
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 0x10064c24
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 0x10064c62
xor edi, edi
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x10064c58
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 fcn.100d8c94
mov edi, eax
shl rdi, 0x20
or rdi, 2
mov rdx, qword [rsp + 0x28]
test rdx, rdx
jne 0x10064c47
jmp 0x10064c58