Function at 0x1800224e0
Capabilities:
Get socket status
Receive data
Receive data on socket

Disassembly:
mov dword [rsp + 0x20], r9d
mov word [rsp + 0x18], r8w
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x348
lea rbp, [rsp + 0x30]
mov rax, qword [0x180046f28]
xor rax, rbp
mov qword [rbp + 0x308], rax
lea rcx, [0x1800e3364]
call fcn.180031cb0
xor eax, eax
mov word [rbp], ax
mov dword [rbp + 0x220], 0
lea rax, [rbp + 0x230]
mov rdi, rax
xor eax, eax
mov ecx, select
rep stosb byte [rdi], al
lea rax, [rbp + 0x240]
mov rdi, rax
xor eax, eax
mov ecx, select
rep stosb byte [rdi], al
lea rax, [rbp + 0x250]
mov rdi, rax
xor eax, eax
mov ecx, select
rep stosb byte [rdi], al
mov dword [rbp + 0x260], setsockopt
mov dword [rbp + 0x264], 0
xor eax, eax
mov word [rbp + 0x268], ax
xor eax, eax
mov word [rbp + 0x26c], ax
mov byte [rbp + 0x270], 0
xor eax, eax
mov word [rbp + 0x274], ax
call fcn.180025640
test eax, eax
jge 0x1800225af
xor eax, eax
jmp 0x180022efa
cmp dword [rbp + 0x348], 0x3e8
jb 0x1800225f2
xor edx, edx
mov eax, dword [rbp + 0x348]
mov ecx, 0x3e8
div ecx
mov dword [rbp + 0x228], eax
imul eax, dword [rbp + 0x228], 0x3e8
mov ecx, dword [rbp + 0x348]
sub ecx, eax
mov eax, ecx
imul eax, eax, 0x3e8
mov dword [rbp + 0x22c], eax
jmp 0x18002260c
mov dword [rbp + 0x228], 0
imul eax, dword [rbp + 0x348], 0x3e8
mov dword [rbp + 0x22c], eax
mov dword [rbp + 0x10], 0
mov dword [rbp + 0x278], 0
jmp 0x18002262d
mov eax, dword [rbp + 0x278]
inc eax
mov dword [rbp + 0x278], eax
mov eax, dword [rbp + 0x10]
cmp dword [rbp + 0x278], eax
jae 0x18002265e
mov eax, dword [rbp + 0x278]
mov qword [rbp + 0x300], rax
call fcn.180025640
cdqe
mov rcx, qword [rbp + 0x300]
cmp qword [rbp + rcx*8 + 0x18], rax
jne 0x18002265c
jmp 0x18002265e
jmp 0x18002261f
mov eax, dword [rbp + 0x10]
cmp dword [rbp + 0x278], eax
jne 0x180022689
cmp dword [rbp + 0x10], 0x40
jae 0x180022689
call fcn.180025640
mov ecx, dword [rbp + 0x278]
cdqe
mov qword [rbp + rcx*8 + 0x18], rax
mov eax, dword [rbp + 0x10]
inc eax
mov dword [rbp + 0x10], eax
xor eax, eax
test eax, eax
jne 0x180022613
call fcn.180025640
mov dword [rbp + 0x220], eax
mov eax, dword [rbp + 0x220]
inc eax
lea rcx, [rbp + 0x228]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x10]
mov ecx, eax
call qword [sym.imp.WS2_32.dll_select]
test eax, eax
jle 0x180022734
movzx eax, word [rbp + 0x340]
mov dword [rbp + 0x2fc], eax
mov ecx, 1
imul rcx, rcx, 0
mov rdx, qword [rbp + 0x338]
add rdx, rcx
mov rcx, rdx
mov qword [rbp + 0x300], rcx
call fcn.180025640
cdqe
lea rcx, [rbp + 0x260]
mov qword [rsp + 0x28], rcx
lea rcx, [rbp + 0x230]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
mov ecx, dword [rbp + 0x2fc]
mov r8d, ecx
mov rcx, qword [rbp + 0x300]
mov rdx, rcx
mov rcx, rax
call qword [sym.imp.WS2_32.dll_recvfrom]
mov dword [rbp + 0x264], eax
jmp 0x18002273b
xor eax, eax
jmp 0x180022efa
cmp dword [rbp + 0x264], 0
jge 0x18002274b
xor eax, eax
jmp 0x180022efa
cmp dword [rbp + 0x264], 0
jne 0x18002275b
xor eax, eax
jmp 0x180022efa
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rbp + 0x338]
movzx eax, byte [rcx + rax]
cmp eax, 0x81
je 0x18002277d
xor eax, eax
jmp 0x180022efa
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rbp + 0x338]
movzx eax, byte [rcx + rax]
mov dword [0x18004bed4], eax
mov eax, 1
imul rax, rax, 2
mov rcx, qword [rbp + 0x338]
add rcx, rax
mov rax, rcx
lea rdx, [rbp]
mov rcx, rax
call fcn.180030ba0
movzx eax, word [rbp]
sub eax, 4
mov word [rbp], ax
mov eax, dword [0x18004bed4]
mov dword [rbp + 0x2fc], eax
cmp dword [rbp + 0x2fc], 0xb
ja case.default.0x1800227f5
movsxd rax, dword [rbp + 0x2fc]
lea rcx, [0x180000000]
mov eax, dword [rcx + rax*4 + 0x22f14]
add rax, rcx
jmp rax
mov eax, 1
imul rax, rax, 4
mov rcx, qword [rbp + 0x338]
add rcx, rax
mov rax, rcx
lea rdx, [rbp + 0x268]
mov rcx, rax
call fcn.180030ba0
movzx eax, word [rbp + 0x268]
mov dword [0x18004bed0], eax
mov edx, dword [0x18004bed0]
lea rcx, str.BVLC:_Result_Code_d_n
call fcn.1800310d0
xor eax, eax
mov word [rbp], ax
jmp case.default.0x1800227f5
lea rcx, str.BVLC:_Received_Write_BDT._n
call fcn.1800310d0
mov eax, 1
imul rax, rax, 4
mov rcx, qword [rbp + 0x338]
add rcx, rax
mov rax, rcx
movzx edx, word [rbp]
mov rcx, rax
call fcn.180021150
mov byte [rbp + 0x270], al
movzx eax, byte [rbp + 0x270]
test eax, eax
je 0x180022895
xor edx, edx
lea rcx, [rbp + 0x230]
call fcn.180023730
jmp 0x1800228a6
mov edx, select
lea rcx, [rbp + 0x230]
call fcn.180023730
xor eax, eax
mov word [rbp], ax
jmp case.default.0x1800227f5
lea rcx, str.BVLC:_Received_Read_BDT._n
call fcn.1800310d0
lea rcx, [rbp + 0x230]
call fcn.1800231f0
test eax, eax
jg 0x1800228de
mov edx, 0x20
lea rcx, [rbp + 0x230]
call fcn.180023730
xor eax, eax
mov word [rbp], ax
jmp case.default.0x1800227f5
lea rcx, str.BVLC:_Received_Read_BDT_Ack._n
call fcn.1800310d0
xor eax, eax
mov word [rbp], ax
jmp case.default.0x1800227f5
mov eax, 1
imul rax, rax, 4
mov rcx, qword [rbp + 0x338]
add rcx, rax
mov rax, rcx
lea r8, [rbp + 0x242]
lea rdx, [rbp + 0x244]
mov rcx, rax
call fcn.1800212f0
movzx ecx, word [rbp + 0x242]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
mov dword [rbp + 0x2fc], eax
mov ecx, dword [rbp + 0x244]
call qword [sym.imp.WS2_32.dll_inet_ntoa]
mov ecx, dword [rbp + 0x2fc]
mov r8d, ecx
mov rdx, rax
lea rcx, str.BVLC:_Received_Forwarded_NPDU_from__s:_04X._n
call fcn.1800310d0
movzx eax, word [rbp]
sub eax, 6
mov word [rbp], ax
lea rcx, [rbp + 0x230]
call fcn.180020f90
movzx eax, al
test eax, eax
je 0x180022a09
call fcn.180024b70
mov dword [rbp + 0x254], eax
call fcn.180024d30
mov word [rbp + 0x252], ax
movzx ecx, word [rbp + 0x252]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
mov dword [rbp + 0x2fc], eax
mov ecx, dword [rbp + 0x254]
call qword [sym.imp.WS2_32.dll_inet_ntoa]
mov ecx, dword [rbp + 0x2fc]
mov r8d, ecx
mov rdx, rax
lea rcx, str.BVLC:_Received_unicast_from_BDT_member__re_broadcasting_locally_to__s:_04X._n
call fcn.1800310d0
movzx eax, word [rbp]
add eax, 0xa
mov ecx, 1
imul rcx, rcx, 0
mov rdx, qword [rbp + 0x338]
add rdx, rcx
mov rcx, rdx
movzx r8d, ax
mov rdx, rcx
lea rcx, [rbp + 0x250]
call fcn.180023370
mov eax, dword [rbp + 0x244]
mov dword [rbp + 0x254], eax
movzx eax, word [rbp + 0x242]
mov word [rbp + 0x252], ax
mov eax, 1
imul rax, rax, 0xa
mov rcx, qword [rbp + 0x338]
add rcx, rax
mov rax, rcx
xor r9d, r9d
movzx r8d, word [rbp]
mov rdx, rax
lea rcx, [rbp + 0x250]
call fcn.180021d30
movzx ecx, word [rbp + 0x252]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
mov dword [rbp + 0x2fc], eax
mov ecx, dword [rbp + 0x254]
call qword [sym.imp.WS2_32.dll_inet_ntoa]
mov ecx, dword [rbp + 0x2fc]
mov r8d, ecx
mov rdx, rax
lea rcx, str.BVLC:_Received_Forwarded_NPDU_from__s:_04X._n
call fcn.1800310d0
lea rdx, [rbp + 0x250]
mov rcx, qword [rbp + 0x330]
call fcn.180022330
movzx eax, word [rbp]
movzx ecx, word [rbp + 0x340]
cmp eax, ecx
jge 0x180022b03
xor eax, eax
mov word [rbp + 0x26c], ax
jmp 0x180022ac8
movzx eax, word [rbp + 0x26c]
inc ax
mov word [rbp + 0x26c], ax
movzx eax, word [rbp + 0x26c]
movzx ecx, word [rbp]
cmp eax, ecx
jge 0x180022b01
movzx eax, word [rbp + 0x26c]
add eax, 0xa
cdqe
movzx ecx, word [rbp + 0x26c]
mov rdx, qword [rbp + 0x338]
mov rdi, qword [rbp + 0x338]
movzx eax, byte [rdi + rax]
mov byte [rdx + rcx], al
jmp 0x180022ab7
jmp 0x180022b09
xor eax, eax
mov word [rbp], ax
jmp case.default.0x1800227f5
mov eax, 1
imul rax, rax, 4
mov rcx, qword [rbp + 0x338]
add rcx, rax
mov rax, rcx
lea rdx, [rbp + 0x274]
mov rcx, rax
call fcn.180030ba0
movzx edx, word [rbp + 0x274]
lea rcx, [rbp + 0x230]
call fcn.180022f50
movzx eax, al
test eax, eax
je 0x180022b69
xor edx, edx
lea rcx, [rbp + 0x230]
call fcn.180023730
lea rcx, str.BVLC:_Registered_a_Foreign_Device._n
call fcn.1800310d0
jmp 0x180022b86
mov edx, gethostbyname
lea rcx, [rbp + 0x230]
call fcn.180023730
lea rcx, str.BVLC:_Failed_to_Register_a_Foreign_Device._n
call fcn.1800310d0
xor eax, eax
mov word [rbp], ax
jmp case.default.0x1800227f5
lea rcx, str.BVLC:_Received_Read_FDT._n
call fcn.1800310d0
lea rcx, [rbp + 0x230]
call fcn.1800232b0
test eax, eax
jg 0x180022bbe
mov edx, 0x40
lea rcx, [rbp + 0x230]
call fcn.180023730
xor eax, eax
mov word [rbp], ax
jmp case.default.0x1800227f5
lea rcx, str.BVLC:_Received_Read_FDT_Ack._n
call fcn.1800310d0
xor eax, eax
mov word [rbp], ax
jmp case.default.0x1800227f5
lea rcx, str.BVLC:_Received_Delete_FDT_Entry._n
call fcn.1800310d0
mov eax, 1
imul rax, rax, 4
mov rcx, qword [rbp + 0x338]
add rcx, rax
mov rax, rcx
mov rcx, rax
call fcn.180021380
movzx eax, al
test eax, eax
je 0x180022c21
xor edx, edx
lea rcx, [rbp + 0x230]
call fcn.180023730
jmp 0x180022c32
mov edx, 0x50
lea rcx, [rbp + 0x230]
call fcn.180023730
xor eax, eax
mov word [rbp], ax
jmp case.default.0x1800227f5
movzx ecx, word [rbp + 0x232]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
mov dword [rbp + 0x2fc], eax
mov ecx, dword [rbp + 0x234]
call qword [sym.imp.WS2_32.dll_inet_ntoa]
mov ecx, dword [rbp + 0x2fc]
mov r8d, ecx
mov rdx, rax
lea rcx, str.BVLC:_Received_Distribute_Broadcast_to_Network_from__s:_04X._n
call fcn.1800310d0
mov eax, 1
imul rax, rax, 4
mov rcx, qword [rbp + 0x338]
add rcx, rax
mov rax, rcx
movzx r8d, word [rbp]
mov rdx, rax
lea rcx, [rbp + 0x230]
call fcn.180022160
mov eax, 1
imul rax, rax, 4
mov rcx, qword [rbp + 0x338]
add rcx, rax
mov rax, rcx
xor r9d, r9d
movzx r8d, word [rbp]
mov rdx, rax
lea rcx, [rbp + 0x230]
call fcn.180020cd0
mov eax, 1
imul rax, rax, 4
mov rcx, qword [rbp + 0x338]
add rcx, rax
mov rax, rcx
xor r9d, r9d
movzx r8d, word [rbp]
mov rdx, rax
lea rcx, [rbp + 0x230]
call fcn.180021d30
xor eax, eax
mov word [rbp], ax
jmp case.default.0x1800227f5
lea rcx, str.BVLC:_Received_Original_Unicast_NPDU._n
call fcn.1800310d0
call fcn.180024b40
cmp dword [rbp + 0x234], eax
jne 0x180022d49
movzx eax, word [rbp + 0x232]
mov dword [rbp + 0x2fc], eax
call fcn.180024d30
movzx eax, ax
mov ecx, dword [rbp + 0x2fc]
cmp ecx, eax
jne 0x180022d49
xor eax, eax
mov word [rbp], ax
jmp 0x180022e08
movzx eax, byte [0x18004beec]
test eax, eax
je 0x180022d89
mov eax, dword [0x18004bee8]
cmp dword [rbp + 0x234], eax
jne 0x180022d89
movzx eax, word [rbp + 0x232]
mov dword [rbp + 0x2fc], eax
call fcn.180024d30
movzx eax, ax
mov ecx, dword [rbp + 0x2fc]
cmp ecx, eax
jne 0x180022d89
xor eax, eax
mov word [rbp], ax
jmp 0x180022e08
lea rdx, [rbp + 0x230]
mov rcx, qword [rbp + 0x330]
call fcn.180022330
movzx eax, word [rbp]
movzx ecx, word [rbp + 0x340]
cmp eax, ecx
jge 0x180022e02
xor eax, eax
mov word [rbp + 0x26c], ax
jmp 0x180022dc7
movzx eax, word [rbp + 0x26c]
inc ax
mov word [rbp + 0x26c], ax
movzx eax, word [rbp + 0x26c]
movzx ecx, word [rbp]
cmp eax, ecx
jge 0x180022e00
movzx eax, word [rbp + 0x26c]
add eax, 4
cdqe
movzx ecx, word [rbp + 0x26c]
mov rdx, qword [rbp + 0x338]
mov rdi, qword [rbp + 0x338]
movzx eax, byte [rdi + rax]
mov byte [rdx + rcx], al
jmp 0x180022db6
jmp 0x180022e08
xor eax, eax
mov word [rbp], ax
jmp case.default.0x1800227f5
lea rcx, str.BVLC:_Received_Original_Broadcast_NPDU._n
call fcn.1800310d0
lea rdx, [rbp + 0x230]
mov rcx, qword [rbp + 0x330]
call fcn.180022330
movzx eax, word [rbp]
movzx ecx, word [rbp + 0x340]
cmp eax, ecx
jge 0x180022ef0
xor eax, eax
mov word [rbp + 0x26c], ax
jmp 0x180022e5b
movzx eax, word [rbp + 0x26c]
inc ax
mov word [rbp + 0x26c], ax
movzx eax, word [rbp + 0x26c]
movzx ecx, word [rbp]
cmp eax, ecx
jge 0x180022e94
movzx eax, word [rbp + 0x26c]
add eax, 4
cdqe
movzx ecx, word [rbp + 0x26c]
mov rdx, qword [rbp + 0x338]
mov rdi, qword [rbp + 0x338]
movzx eax, byte [rdi + rax]
mov byte [rdx + rcx], al
jmp 0x180022e4a
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rbp + 0x338]
add rcx, rax
mov rax, rcx
mov r9b, 1
movzx r8d, word [rbp]
mov rdx, rax
lea rcx, [rbp + 0x230]
call fcn.180020cd0
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rbp + 0x338]
add rcx, rax
mov rax, rcx
mov r9b, 1
movzx r8d, word [rbp]
mov rdx, rax
lea rcx, [rbp + 0x230]
call fcn.180021d30
jmp case.default.0x1800227f5
xor eax, eax
mov word [rbp], ax
movzx eax, word [rbp]
mov rcx, qword [rbp + 0x308]
xor rcx, rbp
call fcn.180031560
lea rsp, [rbp + 0x318]
pop rdi
pop rbp
ret