joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140001010
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
mov rax, qword [0x1400d3a50]
xor ecx, ecx
mov dword [rax], 1
mov rax, qword [0x1400d3a60]
mov dword [rax], 1
mov rax, qword [0x1400d3a70]
mov dword [rax], 1
mov rax, qword [0x1400d3a00]
cmp word [rax], 0x5a4d
jne 0x14000105a
movsxd rdx, dword [rax + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
je 0x1400010c0
mov rax, qword [0x1400d3a40]
mov dword [0x1400ff00c], ecx
mov eax, dword [rax]
test eax, eax
je 0x1400010b0
mov ecx, 2
call sym.__set_app_type
call dbg.__p__fmode
mov rdx, qword [0x1400d3b30]
mov edx, dword [rdx]
mov dword [rax], edx
call dbg.__p__commode
mov rdx, qword [0x1400d3b10]
mov edx, dword [rdx]
mov dword [rax], edx
call dbg._setargv
mov rax, qword [0x1400d2dc0]
cmp dword [rax], 1
je 0x1400010f8
xor eax, eax
add rsp, 0x28
ret
mov ecx, 1
call sym.__set_app_type
jmp 0x140001077
movzx edx, word [rax + 0x18]
cmp dx, 0x10b
je 0x140001110
cmp dx, 0x20b
jne 0x14000105a
cmp dword [rax + 0x84], 0xe
jbe 0x14000105a
mov edx, dword [rax + 0xf8]
xor ecx, ecx
test edx, edx
setne cl
jmp 0x14000105a
mov rcx, qword [dbg._matherr]
call dbg.__mingw_setusermatherr
xor eax, eax
add rsp, 0x28
ret
cmp dword [rax + 0x74], 0xe
jbe 0x14000105a
mov r8d, dword [rax + 0xe8]
xor ecx, ecx
test r8d, r8d
setne cl
jmp 0x14000105a

Function at 0x140001d80
Capabilities:
Resolve dns

Disassembly:
push rsi
push rbx
sub rsp, 0x68
mov rax, qword [rdx + 8]
mov dword [rcx], 0
mov rbx, rcx
mov byte [rcx + 4], 0
mov rcx, qword [rdx]
cmp rax, 0xf
je 0x140001dc0
cmp rax, 7
jne 0x140001dcf
cmp dword [rcx], 0x2e302e30
jne 0x140001dcf
cmp dword [rcx + 3], 0x302e302e
jne 0x140001dcf
jmp 0x140001e76
movabs rax, 0x2e3535322e353532
cmp qword [rcx], rax
je 0x140001e00
mov qword [rsp + 0x88], rdx
call qword [sym.imp.WS2_32.dll_inet_addr]
mov rdx, qword [rsp + 0x88]
cmp eax, 0xffffffff
je 0x140001e20
mov dword [rbx], eax
mov byte [rbx + 4], 1
add rsp, 0x68
pop rbx
pop rsi
ret
movabs rax, 0x3535322e3535322e
cmp qword [rcx + 7], rax
jne 0x140001dcf
mov dword [rbx], 0xffffffff
mov byte [rbx + 4], 1
jmp 0x140001df0
pxor xmm0, xmm0
mov rcx, qword [rdx]
lea r9, [rsp + 0x28]
xor edx, edx
movaps xmmword [rsp + 0x30], xmm0
lea r8, [rsp + 0x30]
mov dword [rsp + 0x34], 2
mov qword [rsp + 0x28], 0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x50], xmm0
call qword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
jne 0x140001df0
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x140001df0
mov rax, qword [rcx + 0x20]
mov esi, dword [rax + 4]
call qword [sym.imp.WS2_32.dll_freeaddrinfo]
mov dword [rbx], esi
mov byte [rbx + 4], 1
jmp 0x140001df0
Function at 0x140001e80
Capabilities:
Resolve dns

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
add rsp, 0xffffffffffffff80
lea rbp, [rsp + 0x40]
mov byte [rcx + 4], 0
mov rbx, rcx
mov rdi, rdx
mov dword [rcx], 0
lea r12, [rsp + 0x30]
mov qword [rsp + 0x30], rbp
test rdx, rdx
je 0x140002049
mov rcx, rdx
call sym.strlen
mov qword [rsp + 0x50], rax
mov rsi, rax
cmp rax, 0xf
ja 0x140001f80
cmp rax, 1
jne 0x140001f20
movzx edx, byte [rdi]
mov byte [rsp + 0x40], dl
mov rdx, rbp
mov qword [rsp + 0x38], rax
mov byte [rdx + rax], 0
mov rax, qword [rsp + 0x38]
mov dword [rbx], 0
mov rcx, qword [rsp + 0x30]
mov byte [rbx + 4], 0
cmp rax, 0xf
je 0x140001f30
cmp rax, 7
jne 0x140001f43
cmp dword [rcx], 0x2e302e30
jne 0x140001f43
cmp dword [rcx + 3], 0x302e302e
jne 0x140001f43
jmp 0x140001f59
test rax, rax
jne 0x140002055
mov rdx, rbp
jmp 0x140001edc
movabs rax, 0x2e3535322e353532
cmp qword [rcx], rax
je 0x140001fc0
call qword [sym.imp.WS2_32.dll_inet_addr]
mov rcx, qword [rsp + 0x30]
cmp eax, 0xffffffff
je 0x140001fe8
mov dword [rbx], eax
mov byte [rbx + 4], 1
cmp rcx, rbp
je 0x140001f71
mov rax, qword [rsp + 0x40]
lea rdx, [rax + 1]
call sym.operator_delete_void__unsigned_long_long_
nop
sub rsp, 0xffffffffffffff80
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rcx, r12
lea rdx, [rsp + 0x50]
xor r8d, r8d
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_create_unsigned_long_long__unsigned_long_long_
mov qword [rsp + 0x30], rax
mov rcx, rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x40], rax
mov rdx, rdi
mov r8, rsi
call sym.memcpy
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x30]
jmp 0x140001edc
movabs rax, 0x3535322e3535322e
cmp qword [rcx + 7], rax
jne 0x140001f43
mov dword [rbx], 0xffffffff
mov byte [rbx + 4], 1
jmp 0x140001f5d
pxor xmm0, xmm0
lea r9, [rsp + 0x28]
lea r8, [rsp + 0x50]
xor edx, edx
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x54], 2
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x70], xmm0
call qword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
jne 0x14000203f
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x14000203f
mov rax, qword [rcx + 0x20]
mov esi, dword [rax + 4]
call qword [sym.imp.WS2_32.dll_freeaddrinfo]
mov dword [rbx], esi
mov byte [rbx + 4], 1
mov rcx, qword [rsp + 0x30]
jmp 0x140001f5d
lea rcx, [0x1400cd0a8]
call method.std.__throw_logic_error_char_const_
mov rcx, rbp
jmp 0x140001fa2
Function at 0x1400021a0
Capabilities:
Connect socket
Get local ipv4 addresses
Get socket information

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x40
xor r8d, r8d
mov edx, 2
mov ecx, 2
call qword [sym.imp.WS2_32.dll_socket]
mov rbx, rax
call method.sf::priv::SocketImpl.invalidSocket__
cmp rbx, rax
jne 0x1400021e0
xor eax, eax
xor edx, edx
shl rdx, 0x20
mov eax, eax
or rax, rdx
add rsp, 0x40
pop rbx
pop rsi
pop rdi
ret
mov ecx, 0x7f000001
lea rsi, [rsp + 0x30]
mov rdi, qword [sym.imp.WS2_32.dll_ntohl]
call rdi
mov r8d, 9
mov rcx, rsi
mov edx, eax
call method.sf::priv::SocketImpl.createAddress_unsigned_int__unsigned_short_
mov r8d, 0x10
mov rdx, rsi
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x140002260
mov dword [rsp + 0x2c], 0x10
lea r8, [rsp + 0x2c]
mov rdx, rsi
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x140002260
mov rcx, rbx
call method.sf::priv::SocketImpl.close_unsigned_long_long_
mov ecx, dword [rsp + 0x34]
call rdi
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htonl]
mov edx, 1
jmp 0x1400021cb
mov rcx, rbx
call method.sf::priv::SocketImpl.close_unsigned_long_long_
jmp 0x1400021c7

Function at 0x140002270
Capabilities:
Resolve dns

Disassembly:
push rsi
push rbx
sub rsp, 0x68
mov rax, qword [rdx + 8]
mov dword [rcx], 0
mov rbx, rcx
mov byte [rcx + 4], 0
mov rcx, qword [rdx]
cmp rax, 0xf
je 0x1400022b0
cmp rax, 7
jne 0x1400022bf
cmp dword [rcx], 0x2e302e30
jne 0x1400022bf
cmp dword [rcx + 3], 0x302e302e
jne 0x1400022bf
jmp 0x140002366
movabs rax, 0x2e3535322e353532
cmp qword [rcx], rax
je 0x1400022f0
mov qword [rsp + 0x88], rdx
call qword [sym.imp.WS2_32.dll_inet_addr]
mov rdx, qword [rsp + 0x88]
cmp eax, 0xffffffff
je 0x140002310
mov dword [rbx], eax
mov byte [rbx + 4], 1
add rsp, 0x68
pop rbx
pop rsi
ret
movabs rax, 0x3535322e3535322e
cmp qword [rcx + 7], rax
jne 0x1400022bf
mov dword [rbx], 0xffffffff
mov byte [rbx + 4], 1
jmp 0x1400022e0
pxor xmm0, xmm0
mov rcx, qword [rdx]
lea r9, [rsp + 0x28]
xor edx, edx
movaps xmmword [rsp + 0x30], xmm0
lea r8, [rsp + 0x30]
mov dword [rsp + 0x34], 2
mov qword [rsp + 0x28], 0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x50], xmm0
call qword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
jne 0x1400022e0
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x1400022e0
mov rax, qword [rcx + 0x20]
mov esi, dword [rax + 4]
call qword [sym.imp.WS2_32.dll_freeaddrinfo]
mov dword [rbx], esi
mov byte [rbx + 4], 1
jmp 0x1400022e0
Function at 0x140002830
Capabilities:
Resolve dns

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
add rsp, 0xffffffffffffff80
lea rbp, [rsp + 0x30]
mov rsi, rdx
lea rdi, [rsp + 0x40]
mov rbx, rcx
mov rdx, rbp
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 0
mov byte [rsp + 0x40], 0
call method.std::basic_istream_char__std::char_traits_char____std::operator___char__std::char_traits_char___std.allocator_char____std::basic_istream_char__std::char_traits_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
cmp rax, 0xf
je 0x1400028c0
cmp rax, 7
jne 0x1400028d3
cmp dword [rcx], 0x2e302e30
jne 0x1400028d3
xor r12d, r12d
cmp dword [rcx + 3], 0x302e302e
mov eax, 1
jne 0x1400028d3
nop dword [rax]
mov dword [rsi], r12d
mov byte [rsi + 4], al
cmp rcx, rdi
je 0x1400028b1
mov rax, qword [rsp + 0x40]
lea rdx, [rax + 1]
call sym.operator_delete_void__unsigned_long_long_
mov rax, rbx
sub rsp, 0xffffffffffffff80
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
movabs rax, 0x2e3535322e353532
cmp qword [rcx], rax
je 0x140002950
call qword [sym.imp.WS2_32.dll_inet_addr]
mov r12d, eax
mov rcx, qword [rsp + 0x30]
mov eax, 1
cmp r12d, 0xffffffff
jne 0x140002898
pxor xmm0, xmm0
lea r9, [rsp + 0x28]
lea r8, [rsp + 0x50]
xor edx, edx
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x54], 2
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x70], xmm0
call qword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
jne 0x140002978
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x140002978
mov rax, qword [rcx + 0x20]
mov r12d, dword [rax + 4]
call qword [sym.imp.WS2_32.dll_freeaddrinfo]
mov eax, 1
mov rcx, qword [rsp + 0x30]
jmp 0x140002898
movabs rax, 0x3535322e3535322e
cmp qword [rcx + 7], rax
jne 0x1400028d3
mov eax, 1
mov r12d, 0xffffffff
jmp 0x140002898
xor eax, eax
xor r12d, r12d
jmp 0x140002943
Function at 0x1400040b0
Capabilities:
Set socket configuration

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x40
mov rdi, qword [rcx + 0x10]
mov rbx, rcx
mov rsi, rdx
call method.sf::priv::SocketImpl.invalidSocket__
cmp rdi, rax
je 0x1400040d8
add rsp, 0x40
pop rbx
pop rsi
pop rdi
ret
mov qword [rbx + 0x10], rsi
movzx edi, byte [rbx + 0x18]
call method.sf::priv::SocketImpl.invalidSocket__
cmp rsi, rax
jne 0x1400041f0
mov eax, dword [rbx + 8]
mov rcx, qword [rbx + 0x10]
mov byte [rbx + 0x18], dil
test eax, eax
jne 0x1400041a0
lea r9, [rsp + 0x3c]
mov dword [rsp + 0x3c], 1
mov edx, 6
mov r8d, 1
mov dword [rsp + 0x20], 4
call qword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x1400040cb
call method.sf.err__
mov r8d, 0x2c
lea rdx, str.Failed_to_set_socket_option__TCP_NODELAY___
mov rcx, rax
mov rbx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov r8d, 0x25
lea rdx, str.all_your_TCP_packets_will_be_buffered
mov rcx, rbx
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rax, qword [rbx]
mov rax, qword [rax - 0x18]
mov rsi, qword [rbx + rax + 0xf0]
test rsi, rsi
je 0x140004239
cmp byte [rsi + 0x38], 0
je 0x140004208
movsx edx, byte [rsi + 0x43]
mov rcx, rbx
call method.std::ostream.put_char_
mov rcx, rax
call method.std::ostream.flush__
jmp 0x1400040cb
lea r9, [rsp + 0x38]
mov dword [rsp + 0x38], 1
mov edx, 0xffff
mov r8d, 0x20
mov dword [rsp + 0x20], 4
call qword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x1400040cb
call method.sf.err__
mov r8d, 0x28
lea rdx, str.Failed_to_enable_broadcast_on_UDP_socket
mov rbx, rax
jmp 0x140004156
mov rcx, qword [rbx + 0x10]
movzx edx, dil
call method.sf::priv::SocketImpl.setBlocking_unsigned_long_long__bool_
jmp 0x1400040ee
mov rcx, rsi
call method.std::ctype_char_._M_widen_init___const
mov rax, qword [rsi]
mov edx, 0xa
lea rcx, [method.std::ctype_char_.do_widen_char__const]
mov rax, qword [rax + 0x30]
cmp rax, rcx
je 0x140004184
mov rcx, rsi
call rax
movsx edx, al
jmp 0x140004184
call method.std.__throw_bad_cast__
nop
nop
Function at 0x140004240
Capabilities:
Set socket configuration

Disassembly:
push rsi
push rbx
sub rsp, 0x28
mov rsi, qword [rcx + 0x10]
mov rbx, rcx
call method.sf::priv::SocketImpl.invalidSocket__
cmp rsi, rax
je 0x140004260
add rsp, 0x28
pop rbx
pop rsi
ret
cmp dword [rbx + 8], 1
mov ecx, 2
sbb edx, edx
xor r8d, r8d
add edx, 2
call qword [sym.imp.WS2_32.dll_socket]
mov rsi, rax
call method.sf::priv::SocketImpl.invalidSocket__
cmp rsi, rax
je 0x140004298
mov rdx, rsi
mov rcx, rbx
add rsp, 0x28
pop rbx
pop rsi
jmp method.sf::Socket.create_unsigned_long_long_
call method.sf.err__
mov r8d, 0x17
lea rdx, str.Failed_to_create_socket
mov rbx, rax
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rax, qword [rbx]
mov rax, qword [rax - 0x18]
mov rsi, qword [rbx + rax + 0xf0]
test rsi, rsi
je 0x14000431a
cmp byte [rsi + 0x38], 0
je 0x1400042f0
movsx edx, byte [rsi + 0x43]
mov rcx, rbx
call method.std::ostream.put_char_
mov rcx, rax
add rsp, 0x28
pop rbx
pop rsi
jmp method.std::ostream.flush__
mov rcx, rsi
call method.std::ctype_char_._M_widen_init___const
mov rax, qword [rsi]
mov edx, 0xa
lea rcx, [method.std::ctype_char_.do_widen_char__const]
mov rax, qword [rax + 0x30]
cmp rax, rcx
je 0x1400042d3
mov rcx, rsi
call rax
movsx edx, al
jmp 0x1400042d3
call method.std.__throw_bad_cast__
nop

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

Disassembly:
push rsi
push rbx
sub rsp, 0x48
mov rbx, rcx
call method.sf::Socket.getHandle___const
mov rsi, rax
call method.sf::priv::SocketImpl.invalidSocket__
cmp rsi, rax
jne 0x140004398
xor eax, eax
add rsp, 0x48
pop rbx
pop rsi
ret
mov rcx, rbx
mov dword [rsp + 0x2c], 0x10
call method.sf::Socket.getHandle___const
lea rdx, [rsp + 0x30]
lea r8, [rsp + 0x2c]
mov rcx, rax
call qword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x14000438b
movzx ecx, word [rsp + 0x32]
call qword [sym.imp.WS2_32.dll_ntohs]
add rsp, 0x48
pop rbx
pop rsi
ret

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

Disassembly:
push rsi
push rbx
sub rsp, 0x48
mov rbx, rcx
call method.sf::Socket.getHandle___const
mov rsi, rax
call method.sf::priv::SocketImpl.invalidSocket__
cmp rsi, rax
jne 0x1400046d8
xor eax, eax
add rsp, 0x48
pop rbx
pop rsi
ret
mov rcx, rbx
mov dword [rsp + 0x2c], 0x10
call method.sf::Socket.getHandle___const
lea rdx, [rsp + 0x30]
lea r8, [rsp + 0x2c]
mov rcx, rax
call qword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x1400046cb
movzx ecx, word [rsp + 0x32]
call qword [sym.imp.WS2_32.dll_ntohs]
add rsp, 0x48
pop rbx
pop rsi
ret
Function at 0x140004af0
Capabilities:
Send data
Send data on socket

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov rbp, rcx
mov rdi, rdx
mov rsi, r8
mov r14, r9
test rdx, rdx
je 0x140004b98
test r8, r8
je 0x140004b98
mov qword [r9], 0
mov r12, qword [sym.imp.WS2_32.dll_send]
mov r13d, r8d
xor ebx, ebx
jmp 0x140004b3e
movsxd rbx, eax
add rbx, qword [r14]
mov qword [r14], rbx
cmp rbx, rsi
jae 0x140004b90
mov rcx, rbp
lea r15, [rdi + rbx]
call method.sf::Socket.getHandle___const
mov r8d, r13d
xor r9d, r9d
mov rdx, r15
sub r8d, ebx
mov rcx, rax
call r12
test eax, eax
jns 0x140004b30
call method.sf::priv::SocketImpl.getErrorStatus__
cmp eax, 1
jne 0x140004b76
cmp qword [r14], 0
mov edx, 2
cmovne eax, edx
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
jmp 0x140004b76
call method.sf.err__
mov r8d, 0x33
lea rdx, str.Cannot_send_data_over_the_network__no_data_to_send_
mov rbx, rax
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rax, qword [rbx]
mov rax, qword [rax - 0x18]
mov rsi, qword [rbx + rax + 0xf0]
test rsi, rsi
je 0x140004c14
cmp byte [rsi + 0x38], 0
je 0x140004bea
movsx edx, byte [rsi + 0x43]
mov rcx, rbx
call method.std::ostream.put_char_
mov rcx, rax
call method.std::ostream.flush__
mov eax, 4
jmp 0x140004b76
mov rcx, rsi
call method.std::ctype_char_._M_widen_init___const
mov rax, qword [rsi]
mov edx, 0xa
lea rcx, [method.std::ctype_char_.do_widen_char__const]
mov rax, qword [rax + 0x30]
cmp rax, rcx
je 0x140004bd3
mov rcx, rsi
call rax
movsx edx, al
jmp 0x140004bd3
call method.std.__throw_bad_cast__
nop
nop word [rax + rax]
Function at 0x140004cf0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov qword [r9], 0
mov rbx, rdx
mov rdi, r8
mov rsi, r9
test rdx, rdx
je 0x140004d60
call method.sf::Socket.getHandle___const
xor r9d, r9d
mov r8d, edi
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jg 0x140004d38
je 0x140004d50
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp method.sf::priv::SocketImpl.getErrorStatus__
cdqe
mov qword [rsi], rax
xor eax, eax
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
mov eax, 3
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
call method.sf.err__
mov r8d, 0x48
lea rdx, str.Cannot_receive_data_from_the_network__the_destination_buffer_is_invalid_
mov rbx, rax
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rax, qword [rbx]
mov rax, qword [rax - 0x18]
mov rsi, qword [rbx + rax + 0xf0]
test rsi, rsi
je 0x140004dea
cmp byte [rsi + 0x38], 0
je 0x140004dc0
movsx edx, byte [rsi + 0x43]
mov rcx, rbx
call method.std::ostream.put_char_
mov rcx, rax
call method.std::ostream.flush__
mov eax, 4
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
mov rcx, rsi
call method.std::ctype_char_._M_widen_init___const
mov rax, qword [rsi]
mov edx, 0xa
lea rcx, [method.std::ctype_char_.do_widen_char__const]
mov rax, qword [rax + 0x30]
cmp rax, rcx
je 0x140004d9b
mov rcx, rsi
call rax
movsx edx, al
jmp 0x140004d9b
call method.std.__throw_bad_cast__
nop
Function at 0x140004f20
Capabilities:
Receive data
Receive data on socket

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x430
mov r13, rcx
mov rcx, rdx
mov r12, rdx
call method.sf::Packet.clear__
mov rbx, qword [r13 + 0x28]
cmp rbx, 3
ja 0x140004fb0
mov rdi, qword [sym.imp.WS2_32.dll_recv]
lea rbp, [r13 + 0x20]
mov esi, 4
jmp 0x140004f7d
je 0x140005020
call method.sf::priv::SocketImpl.getErrorStatus__
mov rbx, qword [r13 + 0x28]
test eax, eax
jne 0x140005025
cmp rbx, 3
ja 0x140004fb0
mov rcx, r13
lea r14, [rbp + rbx]
call method.sf::Socket.getHandle___const
mov r8d, esi
xor r9d, r9d
mov rdx, r14
sub r8d, ebx
mov rcx, rax
call rdi
test eax, eax
jle 0x140004f60
movsxd rbx, eax
add rbx, qword [r13 + 0x28]
mov qword [r13 + 0x28], rbx
cmp rbx, 3
jbe 0x140004f7d
mov ecx, dword [r13 + 0x20]
lea rsi, [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_ntohl]
mov rdi, qword [sym.imp.WS2_32.dll_recv]
mov ebx, eax
nop dword [rax + rax]
mov rax, qword [r13 + 0x38]
mov rcx, qword [r13 + 0x30]
mov rbp, rax
sub rbp, rcx
cmp rbp, rbx
jae 0x140005080
mov rcx, r13
call method.sf::Socket.getHandle___const
mov r8, rbx
xor r9d, r9d
mov rdx, rsi
sub r8, rbp
mov rcx, rax
mov eax, 0x400
cmp r8, rax
cmova r8, rax
call rdi
test eax, eax
jg 0x140005040
je 0x140005020
call method.sf::priv::SocketImpl.getErrorStatus__
test eax, eax
je 0x140004fd0
jmp 0x140005025
mov eax, 3
add rsp, 0x430
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov r9, qword [r13 + 0x38]
mov rcx, qword [r13 + 0x30]
movsxd r8, eax
mov rax, r9
sub rax, rcx
lea rdx, [rax + r8]
cmp rax, rdx
jb 0x1400050d8
lea r10, [rcx + rdx]
cmp r9, r10
je 0x14000506a
mov qword [r13 + 0x38], r10
mov rax, rdx
sub rax, r8
mov rdx, rsi
add rcx, rax
call sym.memcpy
jmp 0x140004fd0
cmp rax, rcx
je 0x140005099
mov rax, qword [r12]
mov rdx, rcx
mov r8, rbp
mov rcx, r12
call qword [rax + 0x18]
mov rcx, qword [r13 + 0x30]
pxor xmm0, xmm0
mov rdx, qword [r13 + 0x40]
mov dword [r13 + 0x20], 0
mov qword [r13 + 0x28], 0
mov qword [r13 + 0x40], 0
movups xmmword [r13 + 0x30], xmm0
test rcx, rcx
je 0x1400050cb
sub rdx, rcx
call sym.operator_delete_void__unsigned_long_long_
xor eax, eax
jmp 0x140005025
lea rcx, [r13 + 0x30]
mov rdx, r8
mov qword [rsp + 0x28], r8
call method.std::vector_char__std::allocator_char___._M_default_append_unsigned_long_long_
mov rcx, qword [r13 + 0x30]
mov rax, qword [r13 + 0x38]
mov rdx, rsi
mov r8, qword [rsp + 0x28]
sub rax, rcx
sub rax, r8
add rcx, rax
call sym.memcpy
jmp 0x140004fd0

Function at 0x140005180
Capabilities:
Set socket configuration

Disassembly:
sub rsp, 0x38
xor edx, 1
lea r8, [rsp + 0x2c]
movzx edx, dl
mov dword [rsp + 0x2c], edx
mov edx, 0x8004667e
call qword [sym.imp.WS2_32.dll_ioctlsocket]
nop
add rsp, 0x38
ret
Function at 0x140009c40
Capabilities:
Write file on windows

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rsi, qword [rcx + 0x20]
mov rdi, qword [rcx + 0x28]
mov rbx, rcx
cmp rsi, rdi
je 0x140009c81
mov ecx, 2
sub rdi, rsi
call qword [dbg.__acrt_iob_func]
mov rcx, qword [rbx + 0x20]
mov r8, rdi
mov edx, 1
mov r9, rax
call sym.fwrite
mov rax, qword [rbx + 0x20]
mov qword [rbx + 0x28], rax
xor eax, eax
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret

Function at 0x140009c90
Capabilities:
Write file on windows

Disassembly:
push rsi
push rbx
sub rsp, 0x28
mov rsi, qword [0x1400ff220]
mov rbx, qword [0x1400ff228]
lea rax, fcn.140009d20
mov qword [0x1400ff200], rax
cmp rsi, rbx
je 0x140009cea
mov ecx, 2
sub rbx, rsi
call qword [dbg.__acrt_iob_func]
mov rcx, qword [0x1400ff220]
mov r8, rbx
mov edx, 1
mov r9, rax
call sym.fwrite
mov rbx, qword [0x1400ff220]
mov qword [0x1400ff228], rbx
test rbx, rbx
je 0x140009cf7
mov rcx, rbx
call sym.operator_delete___void_
mov rax, qword [0x1400d36f0]
lea rcx, [0x1400ff238]
add rax, 0x10
mov qword [0x1400ff200], rax
add rsp, 0x28
pop rbx
pop rsi
jmp fcn.1400a3e70

Function at 0x140009d20
Capabilities:
Write file on windows

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
lea rax, fcn.140009d20
mov rdi, qword [rcx + 0x20]
mov rsi, qword [rcx + 0x28]
mov qword [rcx], rax
mov rbx, rcx
cmp rdi, rsi
je 0x140009d6b
mov ecx, 2
sub rsi, rdi
call qword [dbg.__acrt_iob_func]
mov rcx, qword [rbx + 0x20]
mov r8, rsi
mov edx, 1
mov r9, rax
call sym.fwrite
mov rsi, qword [rbx + 0x20]
mov qword [rbx + 0x28], rsi
test rsi, rsi
je 0x140009d78
mov rcx, rsi
call sym.operator_delete___void_
mov rax, qword [0x1400d36f0]
lea rcx, [rbx + 0x38]
add rax, 0x10
mov qword [rbx], rax
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp fcn.1400a3e70

Function at 0x140009da0
Capabilities:
Write file on windows

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
lea rax, fcn.140009d20
mov rdi, qword [rcx + 0x20]
mov rsi, qword [rcx + 0x28]
mov qword [rcx], rax
mov rbx, rcx
cmp rdi, rsi
je 0x140009deb
mov ecx, 2
sub rsi, rdi
call qword [dbg.__acrt_iob_func]
mov rcx, qword [rbx + 0x20]
mov r8, rsi
mov edx, 1
mov r9, rax
call sym.fwrite
mov rsi, qword [rbx + 0x20]
mov qword [rbx + 0x28], rsi
test rsi, rsi
je 0x140009df8
mov rcx, rsi
call sym.operator_delete___void_
mov rax, qword [0x1400d36f0]
lea rcx, [rbx + 0x38]
add rax, 0x10
mov qword [rbx], rax
call fcn.1400a3e70
mov edx, 0x40
mov rcx, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp sym.operator_delete_void__unsigned_long_long_