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

Disassembly:
sub esp, 0x1bc
mov eax, dword [0x4cacfc]
xor eax, esp
mov dword [esp + 0x1b8], eax
push esi
mov esi, dword [esp + 0x1c8]
movzx eax, si
sub eax, 1
mov dword [esp + 0x18], ecx
jne 0x475073
mov eax, dword [0x4ca360]
push ebp
xor ebp, ebp
lea ecx, [esp + 0x24]
push ecx
push ebp
push ebp
lea edx, [esp + 0x38]
push edx
push ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], 1
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 1
je 0x474ccb
shr esi, 0x10
test esi, esi
je 0x475072
xor eax, eax
push edi
push 0x200
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x20], 0x10
call fcn.0048690e
push 0x200
mov esi, eax
push ebp
push esi
mov dword [esp + 0x28], esi
call fcn.00487630
mov edx, dword [0x4ca360]
add esp, 0x10
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x138]
push ecx
push ebp
push 0x200
push esi
push edx
call dword [sym.imp.WS2_32.dll_recvfrom]
mov edi, eax
cmp edi, 0xffffffff
je 0x47502a
push ebx
push 0xf4
call fcn.0048690e
push 0xf4
mov ebx, eax
push ebp
push ebx
mov dword [esp + 0x28], ebx
call fcn.00487630
push ebx
push edi
push esi
call fcn.00477750
add esp, 0x1c
test eax, eax
je 0x47501c
mov eax, dword [esp + 0x13a]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [esp + 0x13c]
push ecx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push 0x26
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], ebp
call fcn.0048690e
mov esi, eax
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
add esp, 4
mov word [esi + 0x24], ax
cmp dword [ebx + 0xf0], eax
je 0x474dd4
mov edx, dword [ebx]
mov dword [esi + 0x20], edx
mov ax, word [ebx + 4]
mov word [esi + 0x24], ax
jmp 0x474df4
mov edx, dword [esp + 0x13c]
lea ecx, [esp + 0x10]
push ecx
lea eax, [esi + 0x20]
push eax
push 0
push edx
mov dword [esp + 0x20], 6
call sub.IPHLPAPI.DLL_SendARP
cmp dword [ebx + 0xec], ebp
mov dword [esp + 0x10], ebp
jle 0x474f14
lea edi, [ebx + 6]
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x474e17
test ebp, ebp
jne 0x474f14
movzx eax, word [edi + 0x11]
cmp eax, 0x6400
jg 0x474e81
je 0x474e4b
cmp eax, 0x4400
jg 0x474e40
je 0x474e4b
cmp eax, 0x400
je 0x474e4b
cmp eax, 0xc00
je 0x474e4b
jmp 0x474efc
cmp eax, 0x4c00
jne 0x474efc
test ecx, ecx
jne 0x474efc
mov eax, dword [edi]
mov dword [esi], eax
mov ecx, dword [edi + 4]
mov dword [esi + 4], ecx
mov edx, dword [edi + 8]
mov dword [esi + 8], edx
mov ax, word [edi + 0xc]
mov word [esi + 0xc], ax
mov cl, byte [edi + 0xe]
push esi
mov byte [esi + 0xe], cl
call fcn.00470190
mov dword [esp + 0x18], 1
jmp 0x474ef9
cmp eax, 0x8400
je 0x474e96
cmp eax, 0xc400
je 0x474e96
cmp eax, 0xe400
jne 0x474efc
mov ecx, 0x4ca974
mov eax, edi
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x474ec0
test dl, dl
je 0x474ebc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x474ec0
add eax, 2
add ecx, 2
test dl, dl
jne 0x474ea0
xor eax, eax
jmp 0x474ec5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x474efc
test ebp, ebp
jne 0x474efc
mov edx, dword [edi]
lea eax, [esi + 0x10]
mov dword [eax], edx
mov ecx, dword [edi + 4]
mov dword [eax + 4], ecx
mov edx, dword [edi + 8]
mov dword [eax + 8], edx
mov cx, word [edi + 0xc]
mov word [eax + 0xc], cx
mov dl, byte [edi + 0xe]
push eax
mov byte [eax + 0xe], dl
call fcn.00470190
mov ebp, 1
add esp, 4
mov eax, dword [esp + 0x10]
inc eax
add edi, 0x17
cmp eax, dword [ebx + 0xec]
mov dword [esp + 0x10], eax
jl 0x474e07
push esi
call fcn.00466000
mov ebp, eax
lea eax, [esi + 0x10]
push eax
call fcn.00466000
mov ecx, dword [esp + 0x30]
push ecx
mov ebx, eax
call fcn.00466000
push 0x80
lea edx, [esp + 0x158]
push 0
push edx
mov dword [esp + 0x28], eax
call fcn.00487630
movzx eax, byte [esi + 0x25]
movzx ecx, byte [esi + 0x24]
movzx edx, byte [esi + 0x23]
push eax
movzx eax, byte [esi + 0x22]
push ecx
movzx ecx, byte [esi + 0x21]
push edx
movzx edx, byte [esi + 0x20]
push eax
push ecx
push edx
push 0x4a7ea0
lea eax, [esp + 0x17c]
push 0x80
push eax
call fcn.00466990
lea ecx, [esp + 0x184]
push ecx
call fcn.004701d0
add esp, 0x40
push 0
mov edi, eax
mov eax, dword [esp + 0x14]
push edi
push 0
push 0
push 0
lea edx, [esp + 0x15c]
push edx
push eax
push ebx
push ebp
call fcn.00470ad0
add esp, 0x24
test edi, edi
je 0x474fbd
push edi
call fcn.00487d04
add esp, 4
test ebp, ebp
je 0x474fca
push ebp
call fcn.00487d04
add esp, 4
test ebx, ebx
je 0x474fd7
push ebx
call fcn.00487d04
add esp, 4
mov eax, dword [esp + 0x10]
test eax, eax
je 0x474fe8
push eax
call fcn.00487d04
add esp, 4
mov eax, dword [0x4ce2c8]
mov ecx, dword [esp + 0x24]
push 0
inc eax
push eax
mov dword [0x4ce2c8], eax
mov edx, dword [ecx + 4]
push 0x401
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
push esi
call fcn.00487d04
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
add esp, 4
xor ebp, ebp
cmp ebx, ebp
je 0x475029
push ebx
call fcn.00487d04
add esp, 4
pop ebx
pop edi
cmp esi, ebp
je 0x475038
push esi
call fcn.00487d04
add esp, 4
mov eax, dword [0x4ce2d8]
mov esi, dword [sym.imp.KERNEL32.dll_SetEvent]
push eax
call esi
mov ecx, dword [0x4ce2f0]
push ecx
call esi
mov edx, dword [0x4ce2f4]
push edx
call esi
mov eax, dword [0x4ce2ec]
push eax
call esi
mov ecx, dword [0x4ce2b8]
push ecx
call esi
mov edx, dword [0x4ce304]
push edx
call esi
pop ebp
mov ecx, dword [esp + 0x1bc]
pop esi
xor ecx, esp
xor eax, eax
call fcn.00486dc0
add esp, 0x1bc
ret 8