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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x482c06
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x4a0ee0]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov dword [esp + 0x14], ecx
xor edi, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], edi
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x44], edi
call fcn.00431a53
test al, al
jne 0x431f4d
push 0xfffffffffffffffe
pop edi
or dword [esp + 0x40], 0xffffffff
lea esi, [esp + 0x1c]
call fcn.004321f1
mov eax, edi
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call fcn.0040dda5
mov ebx, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x30]
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x34]
cmp eax, edi
mov dword [ebx + 0x14], edx
jl 0x431f7d
jg 0x431f6c
cmp ecx, edi
jbe 0x431f7d
mov edx, ecx
or edx, eax
je 0x431f87
push eax
push ecx
mov esi, ebx
call fcn.0043463e
jmp 0x431f87
push edi
push 0x12
mov esi, ebx
call fcn.004345d7
cmp dword [ebx + 0x34], edi
mov byte [esp + 0x13], 0
jl 0x431fac
jg 0x431f98
cmp dword [ebx + 0x30], edi
jbe 0x431fac
mov eax, dword [ebx + 0x1c]
add eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x28]
sub ecx, dword [ebx + 0x20]
mov edx, dword [ebx + 0x2c]
sbb edx, dword [ebx + 0x24]
jmp 0x431fc3
mov eax, dword [ebx + 0x18]
add eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x40]
sub ecx, dword [ebx + 0x38]
mov edx, dword [ebx + 0x44]
sbb edx, dword [ebx + 0x3c]
mov byte [esp + 0x13], 1
cmp edx, edi
mov esi, closesocket
jg 0x431fd6
jl 0x431fd2
cmp ecx, esi
jae 0x431fd6
push edi
push ecx
jmp 0x431fd8
push edi
push esi
push eax
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, edi
jle 0x4321cb
cdq
add dword [ebx + 0x58], eax
adc dword [ebx + 0x5c], edx
cmp byte [esp + 0x13], 0
je 0x4320ec
add dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x40]
mov ecx, dword [ebx + 0x38]
adc dword [ebx + 0x3c], edx
mov edx, dword [ebx + 0x44]
cmp ecx, eax
jne 0x4321e8
mov ecx, dword [ebx + 0x3c]
cmp ecx, edx
jne 0x4321e8
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0xc]
mov esi, dword [ecx]
lea edi, [esp + 0x24]
push edi
push edx
push eax
push dword [ebx + 0x18]
push dword [ebp + 8]
call dword [esi + 4]
mov ecx, dword [esp + 0x24]
mov dword [ebx + 0x30], ecx
mov ecx, dword [esp + 0x28]
mov dword [ebx + 0x34], ecx
cmp eax, 0xfffffff6
je 0x4321e0
mov eax, dword [esp + 0x24]
or eax, dword [esp + 0x28]
jne 0x4321e8
xor edi, edi
push 0x60
mov dword [ebx + 0x38], edi
mov dword [ebx + 0x3c], edi
call fcn.00460299
pop ecx
cmp eax, edi
je 0x432079
mov edx, eax
call fcn.004346f0
mov edi, eax
lea esi, [edi + 0x5c]
mov eax, ebx
call fcn.00432215
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x10]
push 0x20
mov dword [edi + 0x58], eax
call fcn.00460299
pop ecx
test eax, eax
je 0x4320a0
call fcn.004318aa
jmp 0x4320a2
xor eax, eax
mov ecx, dword [ebp + 8]
mov dword [edi + 0x30], eax
mov dword [eax + 8], ecx
mov eax, dword [edi + 0x30]
lea edx, [esp + 0x2c]
push edx
xor ecx, ecx
mov dword [eax + 0x18], ecx
mov eax, dword [edi + 0x30]
lea edx, [edi + 0x38]
push edx
push 0
mov dword [eax + 4], 1
push 0x12
push dword [ebx + 0x18]
mov dword [esp + 0x40], ecx
push dword [ebp + 8]
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx]
call dword [eax]
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x1c]
jmp 0x4321e8
add dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x20]
adc dword [ebx + 0x24], edx
cmp eax, dword [ebx + 0x28]
jne 0x4321e8
mov eax, dword [ebx + 0x24]
cmp eax, dword [ebx + 0x2c]
jne 0x4321e8
push 0x60
call fcn.00460299
pop ecx
cmp eax, edi
je 0x432125
mov edx, eax
call fcn.004346f0
mov edi, eax
mov dword [esp + 0x20], edi
jmp 0x432129
mov dword [esp + 0x20], edi
lea esi, [edi + 0x5c]
mov eax, ebx
call fcn.00432215
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
push 0x20
mov dword [edi + 0x58], eax
call fcn.00460299
pop ecx
test eax, eax
je 0x432150
call fcn.004318aa
jmp 0x432152
xor eax, eax
mov dword [edi + 0x30], eax
mov ecx, dword [ebx + 0x1c]
mov dword [eax + 0x18], ecx
mov eax, dword [edi + 0x30]
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
mov eax, dword [edi + 0x30]
mov dword [eax + 4], 1
mov esi, dword [ebx + 0x18]
mov eax, dword [esp + 0x20]
add edi, 0x38
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ecx, dword [ebx + 0x20]
mov dword [eax + 0x42], ecx
mov ecx, dword [ebx + 0x24]
mov dword [eax + 0x46], ecx
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 0x34], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [eax + 0x4a], ecx
mov ecx, dword [ebx + 0x20]
mov dword [eax + 0x4e], ecx
mov ecx, dword [ebx + 0x24]
mov dword [eax + 0x52], ecx
xor ecx, ecx
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], ecx
mov dword [ebx + 0x28], ecx
mov dword [ebx + 0x2c], ecx
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x30], ecx
mov dword [ebx + 0x34], ecx
mov dword [ebx + 0x38], ecx
mov dword [ebx + 0x3c], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
push eax
call dword [edx + 0x1c]
jmp 0x4321e8
jge 0x4321dc
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x4321e8
jmp 0x4321e0
cmp eax, edi
jne 0x4321e8
mov dword [esp + 0x18], 0xfffffffe
mov edi, dword [esp + 0x18]
jmp 0x431f28