joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10001e10
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp + 8]
push ebx
push edx
push eax
push ecx
call dword [sym.imp.WS2_32.dll_recvfrom]
cmp eax, 0xffffffff
jne 0x10001e5a
push esi
push edi
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, dword [sym.imp.MSVCR100.dll__errno]
mov esi, eax
call edi
mov dword [eax], esi
call edi
cmp dword [eax], 0x2738
pop edi
pop esi
jne 0x10001e57
test bl, 2
je 0x10001e57
mov eax, dword [ebp + 0x10]
pop ebp
ret
or eax, 0xffffffff
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov edx, dword [eax]
push 0
push 0
lea ecx, [eax + 4]
push ecx
push edx
lea ecx, [ebp + 0xc]
push ecx
mov ecx, dword [eax + 0xc]
lea edx, [ebp - 4]
push edx
mov edx, dword [eax + 8]
mov eax, dword [ebp + 8]
push ecx
push edx
push eax
mov dword [ebp - 4], 0
call dword [sym.imp.WS2_32.dll_WSARecvFrom]
test eax, eax
je 0x10001ead
push esi
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], esi
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
xor eax, eax
push eax
push eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 4]
push ecx
mov ecx, dword [ebp + 8]
push edx
push eax
push ecx
call dword [sym.imp.WS2_32.dll_WSARecv]
cmp eax, 0xffffffff
jne 0x10001f05
push esi
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], esi
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret

Function at 0x10001f10
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push 0
push 0
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push ecx
mov ecx, dword [eax + 0xc]
lea edx, [ebp - 4]
push edx
mov edx, dword [eax + 8]
mov eax, dword [ebp + 8]
push ecx
push edx
push eax
mov dword [ebp - 4], 0
call dword [sym.imp.WS2_32.dll_WSASendTo]
test eax, eax
je 0x10001f5d
push esi
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], esi
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret

Function at 0x10003050
Capabilities:
Query environment variable

Disassembly:
mov eax, 1
test byte [0x10115fcc], al
jne 0x10003078
or dword [0x10115fcc], eax
push str.ACE_DEBUG
call dword [sym.imp.MSVCR100.dll_getenv]
add esp, 4
mov dword [0x10115fc8], eax
jmp 0x1000307d
mov eax, dword [0x10115fc8]
mov cl, byte [0x10115860]
test cl, cl
je 0x10003090
movsx eax, cl
test eax, eax
setne al
ret
test eax, eax
je 0x100030a4
xor ecx, ecx
cmp byte [eax], 0x30
setne cl
mov eax, ecx
test eax, eax
setne al
ret
xor eax, eax
test eax, eax
setne al
ret
Function at 0x10003190
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push esi
push eax
push 0
push 1
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
cmp esi, 0xffffffff
je 0x100031df
test esi, esi
je 0x100031df
push edi
push 0
push esi
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x100031d4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], esi
neg edi
sbb eax, eax
neg eax
pop edi
dec eax
pop esi
pop ebp
ret
or eax, 0xffffffff
pop esi
pop ebp
ret

Function at 0x100033c0
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
pop ebp
jmp sym.ACE.dll_char____cdecl_ACE_OS::strenvdup_char_const__

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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0x18]
push esi
push edi
test eax, eax
jne 0x100034c4
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push ecx
push edx
push eax
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x10003531
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], esi
or eax, 0xffffffff
pop edi
pop esi
pop ecx
pop ebp
ret
mov edi, dword [ebp + 8]
lea ecx, [ebp + 0x18]
push ecx
push eax
push edi
mov dword [ebp + 0x18], 0
call sym.ACE.dll_int___cdecl_ACE::enter_recv_timedwait_void___class_ACE_Time_Value_const___int__
add esp, 0xc
cmp eax, 0xffffffff
je 0x100034bc
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
push edx
push eax
push ecx
push edi
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x10003520
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov edx, dword [ebp + 0x18]
push edx
mov dword [eax], esi
push edi
or esi, 0xffffffff
call sym.ACE.dll_void___cdecl_ACE::restore_non_blocking_mode_void___int_
add esp, 8
mov eax, esi
pop edi
pop esi
pop ecx
pop ebp
ret
mov edx, dword [ebp + 0x18]
push edx
push edi
mov esi, eax
call sym.ACE.dll_void___cdecl_ACE::restore_non_blocking_mode_void___int_
add esp, 8
mov eax, esi
pop edi
pop esi
pop ecx
pop ebp
ret
Function at 0x10003540
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x14]
push esi
push edi
test eax, eax
jne 0x1000357f
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push eax
mov eax, dword [ebp + 0x10]
push eax
push ecx
push edx
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x100035e9
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], esi
or eax, 0xffffffff
pop edi
pop esi
pop ebp
ret
mov edi, dword [ebp + 8]
lea ecx, [ebp + 0x14]
push ecx
push eax
push edi
mov dword [ebp + 0x14], 0
call sym.ACE.dll_int___cdecl_ACE::enter_recv_timedwait_void___class_ACE_Time_Value_const___int__
add esp, 0xc
cmp eax, 0xffffffff
je 0x10003578
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
push 0
push edx
push eax
push edi
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x100035d8
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov ecx, dword [ebp + 0x14]
push ecx
mov dword [eax], esi
push edi
or esi, 0xffffffff
call sym.ACE.dll_void___cdecl_ACE::restore_non_blocking_mode_void___int_
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebp
ret
mov ecx, dword [ebp + 0x14]
push ecx
push edi
mov esi, eax
call sym.ACE.dll_void___cdecl_ACE::restore_non_blocking_mode_void___int_
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x20]
push ebx
push esi
push edi
test eax, eax
jne 0x100036c1
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp + 8]
push edx
push ebx
push eax
push ecx
call dword [sym.imp.WS2_32.dll_recvfrom]
cmp eax, 0xffffffff
jne 0x10003706
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, dword [sym.imp.MSVCR100.dll__errno]
mov esi, eax
call edi
mov dword [eax], esi
call edi
cmp dword [eax], 0x2738
jne 0x100036b9
test byte [ebp + 0x14], 2
je 0x100036b9
pop edi
pop esi
mov eax, ebx
pop ebx
pop ebp
ret
pop edi
pop esi
or eax, 0xffffffff
pop ebx
pop ebp
ret
mov esi, dword [ebp + 8]
lea edx, [ebp + 0x20]
push edx
push eax
push esi
mov dword [ebp + 0x20], 0
call sym.ACE.dll_int___cdecl_ACE::enter_recv_timedwait_void___class_ACE_Time_Value_const___int__
add esp, 0xc
cmp eax, 0xffffffff
je 0x100036b9
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x1c]
push ecx
mov ecx, dword [ebp + 0x18]
push esi
call fcn.10001e10
mov edx, dword [ebp + 0x20]
push edx
push esi
mov edi, eax
call sym.ACE.dll_void___cdecl_ACE::restore_non_blocking_mode_void___int_
add esp, 0x14
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x10003710
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 0x18]
push edi
test esi, esi
jne 0x10003720
lea esi, [ebp + 0x18]
mov edi, dword [ebp + 0x10]
mov dword [esi], 0
test edi, edi
je 0x1000378a
mov ebx, dword [ebp + 8]
mov ecx, dword [esi]
mov edx, dword [ebp + 0x14]
push edx
mov eax, edi
sub eax, ecx
add ecx, dword [ebp + 0xc]
push eax
push ecx
push ebx
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x10003791
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], edi
call dword [sym.imp.MSVCR100.dll__errno]
cmp dword [eax], 0x2733
jne 0x1000379a
push 0
push 0
push 1
push 0
push ebx
call sym.ACE.dll_int___cdecl_ACE::handle_ready_void___class_ACE_Time_Value_const___int__int__int_
add esp, 0x14
cmp eax, 0xffffffff
je 0x1000379a
mov edi, dword [ebp + 0x10]
xor eax, eax
add dword [esi], eax
cmp dword [esi], edi
jb 0x10003730
mov eax, dword [esi]
pop edi
pop esi
pop ebx
pop ebp
ret
test eax, eax
jne 0x10003784
pop edi
pop esi
pop ebx
pop ebp
ret
pop edi
pop esi
or eax, 0xffffffff
pop ebx
pop ebp
ret
Function at 0x100037b0
Capabilities:
Receive data
Receive data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x1c]
sub esp, 0xc
push ebx
xor ecx, ecx
push esi
push edi
cmp eax, ecx
jne 0x100037ca
lea ebx, [ebp - 0xc]
mov dword [ebp + 0x1c], ebx
jmp 0x100037cf
mov dword [ebp + 0x1c], eax
mov ebx, eax
mov esi, dword [ebp + 8]
lea eax, [ebp - 0xc]
push eax
push 0x8004667e
push esi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], 1
call dword [sym.imp.WS2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
jne 0x10003804
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], edi
cmp dword [ebp + 0x10], 0
mov dword [ebx], 0
jbe 0x10003881
mov ecx, dword [ebx]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
push edx
sub eax, ecx
add ecx, dword [ebp + 0xc]
push eax
push ecx
push esi
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x10003871
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], edi
or edi, 0xffffffff
call dword [sym.imp.MSVCR100.dll__errno]
cmp dword [eax], 0x2733
jne 0x10003877
mov eax, dword [ebp + 0x18]
push 0
push 0
push 1
push eax
push esi
call sym.ACE.dll_int___cdecl_ACE::handle_ready_void___class_ACE_Time_Value_const___int__int__int_
add esp, 0x14
cmp eax, edi
je 0x10003877
xor edi, edi
mov ecx, dword [ebp + 0x10]
add dword [ebx], edi
cmp dword [ebx], ecx
jb 0x10003810
jmp 0x10003881
mov edi, eax
test eax, eax
jne 0x10003866
mov dword [ebp - 4], 1
mov dword [ebp - 8], edi
call dword [sym.imp.MSVCR100.dll__errno]
lea edx, [ebp + 0x10]
push edx
push 0x8004667e
mov edi, eax
mov ebx, dword [edi]
push esi
mov dword [ebp + 0x10], 0
call dword [sym.imp.WS2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
jne 0x100038b7
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], esi
cmp dword [ebp - 4], 0
mov dword [edi], ebx
pop edi
pop esi
pop ebx
je 0x100038c9
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax]
mov esp, ebp
pop ebp
ret
Function at 0x100038e0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, dword [ebp + 0x14]
test edi, edi
jne 0x100038f1
lea edi, [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov dword [edi], 0
test esi, esi
je 0x10003965
mov ebx, dword [ebp + 8]
mov ecx, dword [edi]
push 0
mov eax, esi
sub eax, ecx
add ecx, dword [ebp + 0xc]
push eax
push ecx
push ebx
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x10003930
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], esi
mov esi, dword [ebp + 0x10]
or eax, 0xffffffff
test eax, eax
je 0x1000396d
cmp eax, 0xffffffff
jne 0x1000395f
call dword [sym.imp.MSVCR100.dll__errno]
cmp dword [eax], 0x2733
jne 0x10003975
push 0
push 0
push 1
push 0
push ebx
call sym.ACE.dll_int___cdecl_ACE::handle_ready_void___class_ACE_Time_Value_const___int__int__int_
add esp, 0x14
cmp eax, 0xffffffff
je 0x10003975
xor eax, eax
add dword [edi], eax
cmp dword [edi], esi
jb 0x10003901
mov eax, dword [edi]
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret
xor eax, eax
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret
pop edi
pop esi
or eax, 0xffffffff
pop ebx
pop ecx
pop ebp
ret
Function at 0x10003980
Capabilities:
Receive data
Receive data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x18]
sub esp, 0x10
push ebx
xor ecx, ecx
push esi
push edi
cmp eax, ecx
jne 0x1000399a
lea ebx, [ebp - 0xc]
mov dword [ebp + 0x18], ebx
jmp 0x1000399f
mov dword [ebp + 0x18], eax
mov ebx, eax
mov edi, dword [ebp + 8]
lea eax, [ebp - 0xc]
push eax
push 0x8004667e
push edi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], 1
call dword [sym.imp.WS2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
jne 0x100039d4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], esi
cmp dword [ebp + 0x10], 0
mov dword [ebx], 0
jbe 0x10003a58
mov ecx, dword [ebx]
mov eax, dword [ebp + 0x10]
push 0
sub eax, ecx
add ecx, dword [ebp + 0xc]
push eax
push ecx
push edi
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x10003a0f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], esi
or esi, 0xffffffff
jmp 0x10003a11
mov esi, eax
mov eax, esi
test esi, esi
je 0x10003a4e
cmp esi, 0xffffffff
jne 0x10003a43
call dword [sym.imp.MSVCR100.dll__errno]
cmp dword [eax], 0x2733
jne 0x10003a4e
mov eax, dword [ebp + 0x14]
push 0
push 0
push 1
push eax
push edi
call sym.ACE.dll_int___cdecl_ACE::handle_ready_void___class_ACE_Time_Value_const___int__int__int_
add esp, 0x14
cmp eax, esi
je 0x10003a4e
xor eax, eax
mov ecx, dword [ebp + 0x10]
add dword [ebx], eax
cmp dword [ebx], ecx
jb 0x100039e0
jmp 0x10003a58
mov dword [ebp - 4], 1
mov dword [ebp - 8], esi
call dword [sym.imp.MSVCR100.dll__errno]
lea edx, [ebp + 0x10]
push edx
push 0x8004667e
mov esi, eax
mov ebx, dword [esi]
push edi
mov dword [ebp + 0x10], 0
call dword [sym.imp.WS2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
jne 0x10003a8e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], edi
cmp dword [ebp - 4], 0
mov dword [esi], ebx
je 0x10003aa0
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10003ab0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov edi, dword [ebp + 0xc]
shr edi, 1
xor ecx, ecx
mov eax, edi
mov edx, 8
mul edx
seto cl
push 0x10115520
neg ecx
or ecx, eax
push ecx
call fcn.1009ad0c
mov esi, eax
xor edx, edx
add esp, 8
cmp esi, edx
jne 0x10003af8
call dword [sym.imp.MSVCR100.dll__errno]
pop edi
mov dword [eax], 0xc
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
cmp edi, edx
jle 0x10003b17
lea ecx, [ebp + 0xc]
push ebx
mov ebx, dword [ecx + 4]
add ecx, 8
mov dword [esi + eax*8 + 4], ebx
mov ebx, dword [ecx]
mov dword [esi + eax*8], ebx
inc eax
cmp eax, edi
jl 0x10003b02
pop ebx
push edx
push edx
lea eax, [ebp - 4]
push eax
lea ecx, [ebp + 0xc]
push ecx
push edi
mov dword [ebp + 0xc], edx
mov dword [ebp - 4], edx
mov edx, dword [ebp + 8]
push esi
push edx
call dword [sym.imp.WS2_32.dll_WSARecv]
cmp eax, 0xffffffff
jne 0x10003b5d
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], edi
push esi
or edi, 0xffffffff
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0xc]
push esi
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0x14]
xor ecx, ecx
push esi
mov dword [ebp + 0x14], ecx
cmp eax, ecx
jne 0x10003bd5
mov edx, dword [ebp + 0x10]
push ecx
push ecx
mov dword [ebp - 4], ecx
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp + 0xc]
lea ecx, [ebp + 0x14]
push ecx
mov ecx, dword [ebp + 8]
push edx
push eax
push ecx
call dword [sym.imp.WS2_32.dll_WSARecv]
cmp eax, 0xffffffff
jne 0x10003bcd
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], esi
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 8]
lea edx, [ebp + 0x14]
push edx
push eax
push esi
call sym.ACE.dll_int___cdecl_ACE::enter_recv_timedwait_void___class_ACE_Time_Value_const___int__
add esp, 0xc
cmp eax, 0xffffffff
je 0x10003bc5
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
push edi
push eax
push esi
call fcn.10001ec0
mov ecx, dword [ebp + 0x14]
push ecx
push esi
mov edi, eax
call sym.ACE.dll_void___cdecl_ACE::restore_non_blocking_mode_void___int_
add esp, 0x10
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x10003c10
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0x14]
sub esp, 0xc
push ebx
xor eax, eax
push esi
push edi
cmp ecx, eax
jne 0x10003c25
lea ecx, [ebp - 0xc]
mov ebx, dword [ebp + 0x10]
mov edx, ecx
xor esi, esi
mov dword [ebp + 0x14], ecx
mov dword [edx], eax
cmp ebx, eax
jle 0x10003ce6
mov edi, dword [ebp + 0xc]
jmp 0x10003c42
xor eax, eax
push eax
push eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 4]
push ecx
mov ecx, dword [ebp + 8]
mov edx, ebx
sub edx, esi
push edx
lea eax, [edi + esi*8]
push eax
push ecx
call dword [sym.imp.WS2_32.dll_WSARecv]
cmp eax, 0xffffffff
jne 0x10003c7f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], ebx
mov ebx, dword [ebp + 0x10]
jmp 0x10003c8b
mov eax, dword [ebp - 4]
test eax, eax
je 0x10003cfe
cmp eax, 0xffffffff
jne 0x10003cbc
call dword [sym.imp.MSVCR100.dll__errno]
cmp dword [eax], 0x2733
jne 0x10003cb2
mov edx, dword [ebp + 8]
push 0
push 0
push 1
push 0
push edx
call sym.ACE.dll_int___cdecl_ACE::handle_ready_void___class_ACE_Time_Value_const___int__int__int_
add esp, 0x14
cmp eax, 0xffffffff
jne 0x10003cde
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
add dword [ecx], eax
cmp esi, ebx
jge 0x10003cd3
mov ecx, dword [edi + esi*8]
cmp eax, ecx
jl 0x10003cd3
inc esi
sub eax, ecx
cmp esi, ebx
jl 0x10003cc5
test eax, eax
je 0x10003cde
add dword [edi + esi*8 + 4], eax
sub dword [edi + esi*8], eax
cmp esi, ebx
jl 0x10003c40
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
cmp eax, 0x7fffffff
jbe 0x10003cf7
mov eax, bind
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10003d10
Capabilities:
Receive data
Receive data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x18]
sub esp, 0x18
push ebx
push esi
push edi
xor edi, edi
cmp eax, edi
jne 0x10003d25
lea eax, [ebp - 0x14]
lea edx, [ebp - 4]
push edx
mov ecx, eax
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 8]
push 0x8004667e
push eax
mov dword [ecx], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], edi
mov dword [ebp - 4], 1
call dword [sym.imp.WS2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
jne 0x10003d61
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], esi
xor esi, esi
cmp dword [ebp + 0x10], edi
jle 0x10003e1d
mov ebx, dword [ebp + 0xc]
nop
xor eax, eax
push eax
push eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 4]
push edx
mov edx, dword [ebp + 8]
sub eax, esi
push eax
lea ecx, [ebx + esi*8]
push ecx
push edx
call dword [sym.imp.WS2_32.dll_WSARecv]
cmp eax, 0xffffffff
jne 0x10003de0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], edi
or edi, 0xffffffff
call dword [sym.imp.MSVCR100.dll__errno]
cmp dword [eax], 0x2733
jne 0x10003e13
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
push 0
push 0
push 1
push eax
push ecx
call sym.ACE.dll_int___cdecl_ACE::handle_ready_void___class_ACE_Time_Value_const___int__int__int_
add esp, 0x14
cmp eax, 0xffffffff
je 0x10003e13
mov ecx, dword [ebp + 0x10]
cmp esi, ecx
jl 0x10003d70
jmp 0x10003e1d
mov edi, dword [ebp - 4]
test edi, edi
je 0x10003e13
cmp edi, 0xffffffff
je 0x10003dae
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x10]
add dword [eax], edi
cmp esi, ecx
jge 0x10003e06
mov eax, dword [ebx + esi*8]
cmp edi, eax
jl 0x10003e06
inc esi
sub edi, eax
cmp esi, ecx
jl 0x10003df8
test edi, edi
je 0x10003dda
add dword [ebx + esi*8 + 4], edi
sub dword [ebx + esi*8], edi
jmp 0x10003dda
mov dword [ebp - 8], 1
mov dword [ebp - 0xc], edi
call dword [sym.imp.MSVCR100.dll__errno]
lea edx, [ebp + 0x10]
push edx
mov esi, eax
mov eax, dword [ebp + 8]
mov edi, dword [esi]
push 0x8004667e
push eax
mov dword [ebp + 0x10], 0
call dword [sym.imp.WS2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
jne 0x10003e56
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov dword [eax], ebx
cmp dword [ebp - 8], 0
mov dword [esi], edi
je 0x10003e68
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx]
cmp eax, 0x7fffffff
jbe 0x10003e79
mov eax, bind
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret