joyce8/EMBER2024-capa huggingface dataset:
Function at 0x457e90
Capabilities:
Set socket configuration

Disassembly:
push esi
mov esi, ecx
mov edx, dword [esi + 0xa4]
cmp edx, 0xffffffff
je 0x457efc
mov eax, dword [esi + 8]
test eax, eax
lea ecx, [esi + 8]
push edi
mov edi, dword [sym.imp.WS2_32.dll_setsockopt]
je 0x457ecd
cmp eax, 0x3e8
jb 0x457ecd
cmp eax, 0x1e8480
jae 0x457ecd
push 4
push ecx
push 0x1001
push 0xffff
push edx
call edi
mov eax, dword [esi + 0xc]
test eax, eax
lea ecx, [esi + 0xc]
je 0x457efb
cmp eax, 0x3e8
jb 0x457efb
cmp eax, 0x1e8480
jae 0x457efb
mov eax, dword [esi + 0xa4]
push 4
push ecx
push 0x1002
push 0xffff
push eax
call edi
pop edi
pop esi
ret

Function at 0x457f00
Capabilities:
Set socket configuration

Disassembly:
push ecx
mov eax, dword [ecx + 0xa4]
cmp eax, 0xffffffff
je 0x457f24
lea ecx, [esp]
push ecx
push 0x8004667e
push eax
mov dword [esp + 0xc], 1
call dword [sym.imp.WS2_32.dll_ioctlsocket]
pop ecx
ret

Function at 0x457f30
Capabilities:
Set socket configuration

Disassembly:
push ecx
mov eax, dword [ecx + 0xa4]
cmp eax, 0xffffffff
je 0x457f54
lea ecx, [esp]
push ecx
push 0x8004667e
push eax
mov dword [esp + 0xc], 0
call dword [sym.imp.WS2_32.dll_ioctlsocket]
pop ecx
ret

Function at 0x457f60
Capabilities:
Set socket configuration

Disassembly:
sub esp, 8
mov eax, dword [ecx + 0xa4]
cmp eax, 0xffffffff
mov dword [esp], 1
mov dword [esp + 4], 0
je 0x457fb2
cmp byte [esp + 0xc], 0
push 4
je 0x457f9f
lea ecx, [esp + 4]
push ecx
push 1
push 0xffff
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
add esp, 8
ret 4
lea edx, [esp + 8]
push edx
push 1
push 0xffff
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
add esp, 8
ret 4
Function at 0x458a90
Capabilities:
Get socket status

Disassembly:
mov eax, dword [esp + 0x14]
sub esp, 0x210
push ebp
push esi
push edi
mov edi, dword [esp + 0x234]
mov ebp, ecx
mov ecx, dword [esp + 0x22c]
mov byte [eax], 0
mov byte [edi], 0
mov byte [ecx], 0
mov esi, dword [ebp + 0xa4]
cmp esi, 0xffffffff
jne 0x458ae5
mov ecx, dword [esp + 0x228]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
push str.invalid_socket__not_ready_for_writing.
call eax
mov byte [edi], 1
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x210
ret 0x18
mov ecx, dword [esp + 0x220]
test ecx, ecx
jne 0x458af5
mov ecx, 0x1499700
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov dword [esp + 0xc], edx
imul edx, edx, 0x3e8
sub ecx, edx
imul ecx, ecx, 0x3e8
push ebx
mov bl, byte [esp + 0x228]
mov eax, 1
xor edi, edi
test bl, bl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], eax
je 0x458b45
mov dword [esp + 0x120], esi
mov dword [esp + 0x11c], eax
lea edi, [esp + 0x11c]
lea ecx, [esp + 0x10]
push ecx
push edi
lea edx, [esp + 0x20]
push edx
push 0
push 0
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
jne 0x458b8b
mov ecx, dword [esp + 0x22c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
push str.select_returned_a_socket_error
call edx
mov eax, dword [esp + 0x238]
pop ebx
pop edi
pop esi
mov byte [eax], 1
xor al, al
pop ebp
add esp, 0x210
ret 0x18
test eax, eax
jle 0x458c03
mov edx, dword [ebp + 0xa4]
lea ecx, [esp + 0x18]
push ecx
push edx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x458bb3
pop ebx
pop edi
pop esi
mov al, 1
pop ebp
add esp, 0x210
ret 0x18
test edi, edi
je 0x458be1
mov eax, dword [ebp + 0xa4]
push edi
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x458be1
mov ecx, dword [esp + 0x230]
pop ebx
pop edi
pop esi
mov byte [ecx], 1
xor al, al
pop ebp
add esp, 0x210
ret 0x18
mov ecx, dword [esp + 0x22c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
push str.Socket_select_after_connect_returned_0
call eax
pop ebx
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x210
ret 0x18
test bl, bl
mov ecx, dword [esp + 0x22c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
je 0x458c1a
push str.timeout_waiting_for_connect_to_complete
jmp 0x458c1f
push str.socket_is_not_ready_for_writing
call eax
mov ecx, dword [esp + 0x234]
pop ebx
pop edi
pop esi
mov byte [ecx], 1
xor al, al
pop ebp
add esp, 0x210
ret 0x18
Function at 0x459050
Capabilities:
Get socket status

Disassembly:
sub esp, 0x10c
push ebp
mov ebp, dword [esp + 0x120]
push esi
push edi
mov edi, dword [esp + 0x124]
test edi, edi
mov esi, ecx
mov byte [ebp], 0
je 0x4590a8
push 0x78
push 0
mov ecx, edi
call fcn.0044e850
mov ecx, edi
call fcn.0044e700
test al, al
je 0x4590a8
mov ecx, dword [esp + 0x12c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
push str.Wait_for_data_aborted_by_app
call edx
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x10c
ret 0x18
mov edi, dword [esi + 0xa4]
cmp edi, 0xffffffff
jne 0x4590d8
mov ecx, dword [esp + 0x12c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
push str.Wait_for_data_passed_invalid_socket.
call edx
pop edi
pop esi
mov byte [ebp], 1
xor al, al
pop ebp
add esp, 0x10c
ret 0x18
mov ecx, dword [esp + 0x11c]
push ebx
mov bl, byte [esp + 0x124]
test bl, bl
jne 0x4590f4
test ecx, ecx
jne 0x4590f4
mov ecx, 0x14
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov eax, edx
imul eax, eax, 0xfffffc18
add ecx, eax
cmp ecx, 0x7a120
jbe 0x459115
mov ecx, 0x7a120
imul ecx, ecx, 0x3e8
test bl, bl
pop ebx
jne 0x45912d
test edx, edx
jne 0x45912d
test ecx, ecx
jne 0x45912d
mov ecx, 0x3e8
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0xc]
push ecx
push 0
mov dword [esp + 0x14], edx
push 0
lea edx, [esp + 0x20]
push edx
push 0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], 1
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
jne 0x4591ae
mov ecx, dword [esp + 0x12c]
mov byte [ebp], 1
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
push str.The_peer_has_closed_the_socket__TCP__connection
call edx
mov eax, dword [esi + 0xa4]
push 2
push eax
call dword [sym.imp.WS2_32.dll_shutdown]
mov ecx, dword [esi + 0xa4]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
pop edi
mov dword [esi + 0xa4], 0xffffffff
mov byte [esi + 0xa0], 0
pop esi
xor al, al
pop ebp
add esp, 0x10c
ret 0x18
pop edi
test eax, eax
pop esi
setne al
pop ebp
add esp, 0x10c
ret 0x18
Function at 0x4591c0
Capabilities:
Get socket status

Disassembly:
mov eax, dword [esp + 0x14]
sub esp, 0x110
push ebx
push ebp
mov ebp, dword [esp + 0x11c]
test ebp, ebp
push esi
mov esi, dword [esp + 0x12c]
mov ebx, ecx
mov ecx, dword [esp + 0x134]
mov byte [eax], 0
mov byte [esi], 0
push edi
mov byte [ecx], 0
je 0x4591fc
cmp ebp, 0x32
jae 0x4591fc
mov ebp, 0x32
mov edi, dword [esp + 0x128]
test edi, edi
jne 0x45920c
mov edi, 0x1499700
cmp dword [ebx + 0xa4], 0xffffffff
jne 0x45923a
mov ecx, dword [esp + 0x13c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
push str.Invalid_socket.
call eax
pop edi
mov byte [esi], 1
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x110
ret 0x1c
xor eax, eax
mov dword [esp + 0x10], eax
mov cl, 1
test edi, edi
je 0x45924e
cmp eax, edi
jae 0x459380
test ebp, ebp
mov esi, ebp
jne 0x459256
mov esi, edi
test edi, edi
je 0x45926c
cmp edi, eax
jbe 0x45926c
mov esi, edi
sub esi, eax
test ebp, ebp
je 0x45926c
cmp esi, ebp
jbe 0x45926c
mov esi, ebp
test cl, cl
je 0x45927c
shr esi, 1
cmp esi, 0x32
jae 0x45927c
mov esi, 0x32
mov eax, 0x10624dd3
mul esi
shr edx, 6
mov dword [esp + 0x14], edx
imul edx, edx, 0x3e8
mov ecx, esi
sub ecx, edx
mov edx, dword [ebx + 0xa4]
imul ecx, ecx, 0x3e8
lea eax, [esp + 0x14]
push eax
push 0
mov dword [esp + 0x20], ecx
push 0
lea ecx, [esp + 0x28]
push ecx
push 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], 1
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
je 0x459318
test eax, eax
jne 0x459371
add dword [esp + 0x10], esi
test edi, edi
je 0x4592e5
cmp dword [esp + 0x10], edi
jae 0x459380
mov esi, dword [esp + 0x12c]
test esi, esi
je 0x45930d
test ebp, ebp
je 0x45930d
push 0x73
push ebp
mov ecx, esi
call fcn.0044e7f0
mov ecx, esi
call fcn.0044e700
test al, al
jne 0x4593bd
mov eax, dword [esp + 0x10]
xor cl, cl
jmp 0x459242
mov edx, dword [esp + 0x130]
mov ecx, dword [esp + 0x13c]
mov byte [edx], 1
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
push str.Error_waiting_for_socket_to_become_ready_for_reading.
call edx
mov eax, dword [ebx + 0xa4]
push 2
push eax
call dword [sym.imp.WS2_32.dll_shutdown]
mov ecx, dword [ebx + 0xa4]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
pop edi
pop esi
pop ebp
mov dword [ebx + 0xa4], 0xffffffff
mov byte [ebx + 0xa0], 0
xor al, al
pop ebx
add esp, 0x110
ret 0x1c
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x110
ret 0x1c
mov esi, dword [esp + 0x13c]
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Timeout_waiting_to_read_socket_or_accept_connection
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
push edi
push str.timeoutMs
mov ecx, esi
call eax
mov ecx, dword [esp + 0x138]
pop edi
pop esi
pop ebp
mov byte [ecx], 1
xor al, al
pop ebx
add esp, 0x110
ret 0x1c
mov edx, dword [esp + 0x134]
mov ecx, dword [esp + 0x13c]
mov byte [edx], 1
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
push str.socket_operation_aborted_by_application_callback
call edx
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x110
ret 0x1c
Function at 0x4597e0
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov eax, dword [esp + 0x24]
push ebx
mov ebx, dword [esp + 0x20]
push ebp
mov ebp, dword [esp + 0x28]
push esi
mov esi, ecx
mov ecx, dword [esp + 0x24]
mov byte [ecx], 0
mov byte [ebx], 0
mov byte [ebp], 0
mov byte [eax], 0
cmp dword [esi + 0xa4], 0xffffffff
jne 0x459838
mov ecx, dword [esp + 0x14]
mov dword [ecx], 0
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
push str.This_socket_is_not_connected
call eax
mov byte [ebp], 1
mov byte [esi + 0xa0], 0
pop esi
pop ebp
xor al, al
pop ebx
ret 0x24
mov dword [0x58b764], 0x6e
mov eax, dword [esi + 0x118]
test eax, eax
jne 0x459851
mov eax, 0x1499700
push edi
mov edi, dword [esp + 0x20]
push edi
push ecx
mov ecx, dword [esp + 0x2c]
push ebx
push ebp
mov ebp, dword [esp + 0x2c]
push ecx
push eax
push ebp
mov ecx, esi
call fcn.004591c0
test al, al
jne 0x459881
mov edx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
mov dword [edx], 0
pop ebx
ret 0x24
mov eax, dword [esp + 0x24]
push ebx
push eax
lea ecx, [esi + 0xf0]
push ebp
mov dword [0x58b764], 0x6f
call fcn.004b66b0
cmp byte [ebx], 0
je 0x4598c3
mov edx, dword [edi]
mov eax, dword [edx + 0x10]
push str.Aborted_by_application_while_download_throttling__2_
mov ecx, edi
call eax
mov ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
mov dword [ecx], 0
xor al, al
pop ebx
ret 0x24
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [0x58b764], 0x70
mov edx, dword [ebp]
mov ecx, dword [esi + 0xa4]
push 0
push edx
push eax
push ecx
call dword [sym.imp.WS2_32.dll_recv]
mov ebx, eax
test ebx, ebx
jne 0x459958
mov dword [0x58b764], 0x72
mov eax, dword [ebp]
mov edx, dword [edi]
mov edx, dword [edx + 0x2c]
push eax
push str.numBytesRequested
mov ecx, edi
call edx
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
push str.Connection_closed_by_server.
mov ecx, edi
call edx
mov eax, dword [esi + 0xa4]
push 2
push eax
call dword [sym.imp.WS2_32.dll_shutdown]
mov ecx, dword [esi + 0xa4]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
mov edx, dword [esp + 0x34]
mov byte [esi + 0xa0], bl
pop edi
mov dword [esi + 0xa4], 0xffffffff
pop esi
mov byte [edx], 1
mov dword [ebp], ebx
pop ebp
xor al, al
pop ebx
ret 0x24
cmp ebx, 0xffffffff
jne 0x4599a2
mov ecx, edi
call fcn.00424710
mov ecx, dword [ebp]
mov eax, dword [edi]
mov edx, dword [eax + 0x2c]
push ecx
push str.numBytesRequested
mov ecx, edi
call edx
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
push str.Failed_to_receive_data_on_the_TCP_socket
mov ecx, edi
call edx
mov eax, dword [esp + 0x30]
mov byte [eax], 1
pop edi
mov dword [ebp], 0
mov byte [esi + 0xa0], 0
pop esi
pop ebp
xor al, al
pop ebx
ret 0x24
test ebx, ebx
mov dword [ebp], ebx
mov dword [0x58b764], 0x71
jle 0x4599d6
push ebx
lea ecx, [esi + 0xf0]
call fcn.004b6650
cmp byte [esi + 0x184], 0
je 0x4599d6
mov ecx, dword [esp + 0x24]
push ecx
push ebx
lea ecx, [esi + 0x10]
call fcn.004b6af0
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4599ec
mov edx, dword [esp + 0x2c]
mov eax, dword [ebp]
push edx
push eax
call fcn.0044eb10
pop edi
pop esi
pop ebp
mov dword [0x58b764], 0x73
mov al, 1
pop ebx
ret 0x24
Function at 0x459f30
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
sub esp, 0x18
mov eax, dword [0x5894dc]
xor eax, esp
mov dword [esp + 0x14], eax
push ebx
push ebp
mov ebp, dword [esp + 0x2c]
push esi
mov esi, dword [esp + 0x28]
mov ebx, ecx
push edi
mov edi, dword [esp + 0x30]
mov ecx, esi
call fcn.00407610
mov dword [edi], 0
mov eax, dword [ebx + 0xa4]
cmp eax, 0xffffffff
je 0x459fe1
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
push edx
push eax
mov dword [esp + 0x1c], 0x10
call dword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
jne 0x459fa7
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
push str.Failed_to_getsockname
mov ecx, ebp
call edx
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push ebp
push eax
call fcn.00458120
add esp, 8
jmp 0x459ff0
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
mov ecx, esi
call fcn.004091c0
mov ecx, dword [esp + 0x16]
push ecx
call dword [sym.imp.WS2_32.dll_ntohs]
movzx edx, ax
mov dword [edi], edx
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.004ec47e
add esp, 0x18
ret 0xc
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
push str.Cannot_get_socket_name:_INVALID_SOCKET.
mov ecx, ebp
call edx
mov ecx, dword [esp + 0x24]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
xor al, al
call fcn.004ec47e
add esp, 0x18
ret 0xc

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

Disassembly:
sub esp, 0x24
mov eax, dword [0x5894dc]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push ebp
mov ebp, dword [esp + 0x38]
push esi
mov esi, dword [esp + 0x34]
mov ebx, ecx
push edi
mov edi, dword [esp + 0x3c]
mov ecx, esi
call fcn.00407610
mov dword [edi], 0
mov eax, dword [ebx + 0xa4]
cmp eax, 0xffffffff
je 0x45a0c0
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
push edx
push eax
mov dword [esp + 0x1c], 0x1c
call dword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
jne 0x45a087
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
push str.Failed_to_getsockname_ipv6
mov ecx, ebp
call edx
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push ebp
push eax
call fcn.00458120
add esp, 8
jmp 0x45a0cf
mov ecx, esi
call fcn.00407610
mov edx, esi
lea ecx, [esp + 0x1c]
call fcn.00457590
mov eax, dword [esp + 0x16]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx ecx, ax
mov dword [edi], ecx
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.004ec47e
add esp, 0x24
ret 0xc
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
push str.Cannot_get_socket_name:_INVALID_SOCKET.
mov ecx, ebp
call eax
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
xor al, al
call fcn.004ec47e
add esp, 0x24
ret 0xc
Function at 0x45a710
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov eax, dword [esp + 0xc]
push ebp
mov ebp, dword [esp + 0x14]
push esi
mov byte [eax], 0
mov esi, ecx
mov byte [ebp], 0
cmp dword [esi + 0xa4], 0xffffffff
jne 0x45a758
mov ecx, dword [esp + 0x10]
mov dword [ecx], 0
mov ecx, dword [esp + 0x1c]
mov byte [ebp], 1
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
push str.This_socket_is_not_connected
call eax
mov byte [esi + 0xa0], 0
pop esi
xor al, al
pop ebp
ret 0x18
mov eax, dword [esi + 0x118]
test eax, eax
jne 0x45a767
mov eax, 0xea60
push ebx
mov ebx, dword [esp + 0x24]
push edi
mov edi, dword [esp + 0x24]
push 0xabc
push 0
push 0
push ebx
push edi
push eax
call fcn.0045a580
test al, al
jne 0x45a7ea
cmp dword [esi + 0xa4], 0xffffffff
je 0x45a7cc
mov eax, dword [esi + 0x118]
mov edx, dword [edi]
mov edx, dword [edx + 0x2c]
push eax
push str.timeoutMs2
mov ecx, edi
call edx
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
push str.WaitForData_timed_out.
mov ecx, edi
call edx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
pop edi
pop ebx
mov byte [eax], 1
pop esi
mov dword [ecx], 0
xor al, al
pop ebp
ret 0x18
mov ecx, dword [esp + 0x18]
pop edi
mov byte [ebp], 1
pop ebx
mov byte [esi + 0xa0], 0
pop esi
mov dword [ecx], 0
xor al, al
pop ebp
ret 0x18
lea edx, [esp + 0x24]
push edx
push ebx
lea ecx, [esi + 0xf0]
push 0
mov byte [esp + 0x30], 0
call fcn.004b66b0
cmp byte [esp + 0x24], 0
je 0x45a82a
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
push str.Aborted_by_application_while_download_throttling__1_
mov ecx, edi
call edx
mov eax, dword [esp + 0x18]
pop edi
pop ebx
pop esi
mov dword [eax], 0
xor al, al
pop ebp
ret 0x18
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0xa4]
push 0
push edx
push eax
push ecx
call dword [sym.imp.WS2_32.dll_recv]
mov ebp, eax
test ebp, ebp
mov eax, dword [esp + 0x18]
mov dword [eax], 0
jne 0x45a8a0
mov edx, dword [edi]
mov eax, dword [edx + 0x10]
push str.The_peer_has_closed_the_socket__TCP__connection
mov ecx, edi
call eax
mov ecx, dword [esi + 0xa4]
push 2
push ecx
call dword [sym.imp.WS2_32.dll_shutdown]
mov edx, dword [esi + 0xa4]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, dword [esp + 0x20]
pop edi
pop ebx
mov dword [esi + 0xa4], 0xffffffff
mov byte [esi + 0xa0], 0
pop esi
mov byte [eax], 1
xor al, al
pop ebp
ret 0x18
cmp ebp, 0xffffffff
jne 0x45a8ca
mov ecx, edi
call fcn.00424710
mov edx, dword [edi]
mov eax, dword [edx + 0x10]
push str.Failed_to_receive_on_the_TCP_socket
mov ecx, edi
call eax
pop edi
pop ebx
mov byte [esi + 0xa0], 0
pop esi
xor al, al
pop ebp
ret 0x18
test ebp, ebp
mov dword [eax], ebp
jle 0x45a8ef
push ebp
lea ecx, [esi + 0xf0]
call fcn.004b6650
cmp byte [esi + 0x184], 0
je 0x45a8ef
push ebx
push ebp
lea ecx, [esi + 0x10]
call fcn.004b6af0
test ebx, ebx
je 0x45a90b
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
lea ecx, [esp + 0x1c]
push ecx
push eax
mov ecx, ebx
mov byte [esp + 0x24], 0
call fcn.0044eb10
pop edi
pop ebx
pop esi
mov al, 1
pop ebp
ret 0x18
Function at 0x45ac60
Capabilities:
Resolve dns

Disassembly:
push 0xffffffffffffffff
push 0x507930
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push ebp
push edi
mov eax, dword [0x5894dc]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov edi, ecx
cmp byte [0x58134c], 0
je 0x45aca0
mov ecx, esi
call fcn.00457ca0
test al, al
je 0x45ae90
mov ebx, dword [sym.imp.WS2_32.dll_gethostbyname]
push edi
call ebx
test eax, eax
jne 0x45ae92
mov ebp, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call ebp
push esi
push eax
call fcn.00458120
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
add esp, 8
push edi
push str.gethostbyname_arg
mov ecx, esi
call edx
push edi
lea ecx, [esp + 0x3c]
call fcn.00407f30
push edi
lea ecx, [esp + 0x14]
mov dword [esp + 0x6c], 0
call fcn.00407f30
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 1
call fcn.00407400
push 0x20
lea ecx, [esp + 0x14]
call fcn.004092d0
push 9
lea ecx, [esp + 0x14]
call fcn.004092d0
push 0xd
lea ecx, [esp + 0x14]
call fcn.004092d0
push 0xa
lea ecx, [esp + 0x14]
call fcn.004092d0
push 0x27
lea ecx, [esp + 0x14]
call fcn.004092d0
push 0x22
lea ecx, [esp + 0x14]
call fcn.004092d0
push 0x3c
lea ecx, [esp + 0x14]
call fcn.004092d0
push 0x3e
lea ecx, [esp + 0x14]
call fcn.004092d0
push 0x3a
lea ecx, [esp + 0x14]
call fcn.004092d0
push 0x2f
lea ecx, [esp + 0x14]
call fcn.004092d0
push 0x40
lea ecx, [esp + 0x14]
call fcn.004092d0
push 0x3f
lea ecx, [esp + 0x14]
call fcn.004092d0
lea ecx, [esp + 0x10]
call fcn.0046fb80
test eax, eax
lea ecx, [esp + 0x10]
je 0x45ae75
call fcn.00408eb0
lea ecx, [esp + 0x10]
call fcn.0046fb80
lea ecx, [esp + 0x38]
mov edi, eax
call fcn.0046fb80
cmp edi, eax
je 0x45ae1c
lea ecx, [esp + 0x10]
call fcn.004e81e0
push eax
call ebx
mov edi, eax
test edi, edi
je 0x45adf8
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 0
call fcn.00408310
lea ecx, [esp + 0x38]
mov dword [esp + 0x68], 0xffffffff
call fcn.00408310
mov eax, edi
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
add esp, 0x5c
ret
call ebp
push esi
push eax
call fcn.00458120
mov edi, dword [esi]
add esp, 8
lea ecx, [esp + 0x10]
call fcn.004e81e0
push eax
mov eax, dword [edi + 0x28]
push str.gethostbyname_arg
mov ecx, esi
call eax
push 0x2e
lea ecx, [esp + 0x14]
call fcn.00409720
cmp eax, 1
jne 0x45ae71
push str.www.
lea ecx, [esp + 0x14]
call fcn.004076e0
lea ecx, [esp + 0x10]
call fcn.004e81e0
push eax
call ebx
mov edi, eax
test edi, edi
jne 0x45adc4
push esi
call fcn.00459f10
mov edi, dword [esi]
add esp, 4
lea ecx, [esp + 0x10]
call fcn.004e81e0
mov edx, dword [edi + 0x28]
push eax
push str.gethostbyname_arg
mov ecx, esi
call edx
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 0
call fcn.00408310
lea ecx, [esp + 0x38]
mov dword [esp + 0x68], 0xffffffff
call fcn.00408310
xor eax, eax
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
add esp, 0x5c
ret
Function at 0x45aed0
Capabilities:
Create tcp socket
Create udp socket

Disassembly:
push 0xffffffffffffffff
push 0x507958
mov eax, dword fs:[0]
push eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5894dc]
xor eax, esp
push eax
lea eax, [esp + 0x14]
mov dword fs:[0], eax
mov esi, ecx
cmp byte [0x58134c], 0
mov edi, dword [esp + 0x24]
je 0x45af23
mov ecx, edi
call fcn.00457ca0
test al, al
jne 0x45af23
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
push str.startupWSA_failed.
mov ecx, edi
call edx
xor al, al
jmp 0x45b0a7
mov eax, dword [esi + 0xa4]
cmp eax, 0xffffffff
je 0x45af59
push 2
push eax
call dword [sym.imp.WS2_32.dll_shutdown]
mov eax, dword [esi + 0xa4]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
lea ecx, [esi + 0xb0]
mov dword [esi + 0xa4], 0xffffffff
call fcn.004b68d0
mov ebp, dword [sym.imp.WS2_32.dll_socket]
push 0
push 1
push 2
mov byte [esi + 0xa0], 0
mov bl, 1
call ebp
cmp eax, 0xffffffff
mov dword [esi + 0xa4], eax
jne 0x45afe4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x276d
jne 0x45afc4
mov ecx, edi
call fcn.00457ca0
test al, al
jne 0x45af9a
push str.startupWSA_failed__3_
jmp 0x45afd9
push 0
push 1
push 2
call ebp
cmp eax, 0xffffffff
mov dword [esi + 0xa4], eax
jne 0x45afe4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push edi
push eax
call fcn.00458120
add esp, 8
push str.Failed_to_create_TCP_socket__AF_INET_SOCK_STREAM_
jmp 0x45afd9
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push edi
push eax
call fcn.00458120
add esp, 8
push str.Failed_to_create_TCP_socket__AF_INET___SOCK_STREAM_
mov edx, dword [edi]
mov eax, dword [edx + 0x10]
mov ecx, edi
call eax
xor bl, bl
mov ecx, esi
mov dword [esi + 0xa8], 2
call fcn.00457e90
cmp byte [esp + 0x28], 0
je 0x45b0a5
lea ebp, [esi + 0x158]
mov ecx, ebp
call fcn.0046fb80
test eax, eax
jne 0x45b01d
cmp dword [esi + 0x180], eax
je 0x45b0a5
mov ebx, dword [edi]
mov ecx, ebp
call fcn.004e81e0
mov edx, dword [ebx + 0x28]
push eax
push str.BindIpAddr
mov ecx, edi
call edx
mov eax, dword [esi + 0x180]
test eax, eax
je 0x45b04c
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x2c]
push str.BindPort
mov ecx, edi
call eax
push edi
mov ecx, ebp
call fcn.004e81e0
push eax
mov ecx, esi
call fcn.0045a4a0
mov bl, al
test bl, bl
jne 0x45b0a5
mov edx, dword [edi]
mov eax, dword [edx + 0x10]
push str.Failed_to_bind_to_local_IP_address
mov ecx, edi
call eax
lea ecx, [esp + 0x28]
call fcn.00425650
lea ecx, [esp + 0x28]
push ecx
push 2
mov ecx, esi
mov dword [esp + 0x24], 0
call fcn.00459000
or eax, 0xffffffff
lea ecx, [esp + 0x28]
mov dword [esi + 0xa4], eax
mov dword [esp + 0x1c], eax
call fcn.00425670
mov al, bl
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8

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

Disassembly:
cmp dword [ecx + 0xa8], 2
jne 0x45b2be
jmp fcn.00459f30
jmp fcn.0045a010