Function at 0x406280
Capabilities:
Receive data
Receive data on socket
Set socket configuration

Disassembly:
push 0xffffffffffffffff
push 0x49220b
mov eax, dword fs:[0]
push eax
sub esp, 0x448
mov eax, dword [0x4aab30]
xor eax, esp
mov dword [esp + 0x444], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4aab30]
xor eax, esp
push eax
lea eax, [esp + 0x45c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x470]
mov esi, edx
xor edi, edi
push esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
call fcn.0047ab2f
add esp, 4
cmp byte [0x4b23b8], 0
mov ebx, eax
mov dword [esp + 0x14], ebx
jne 0x406300
push 0x4b1b64
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [0x4b23b8], 1
xor ebp, ebp
push 0x1000
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ebp
call fcn.0047a780
xor edx, edx
add esp, 4
mov dword [esp + 0x2c], eax
cmp eax, edx
je 0x406329
mov dword [esp + 0x28], 0x1000
mov dword [esp + 0x464], edx
mov eax, 0x49c864
mov cx, word [esi]
cmp cx, word [eax]
jne 0x40635b
cmp cx, dx
je 0x406357
mov cx, word [esi + 2]
cmp cx, word [eax + 2]
jne 0x40635b
add esi, 4
add eax, 4
cmp cx, dx
jne 0x406335
xor eax, eax
jmp 0x406360
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edx
je 0x406587
cmp ebx, edx
je 0x4065a1
mov eax, ebx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x406375
sub eax, esi
sar eax, 1
je 0x4063f3
jmp 0x406390
movzx eax, word [ebx + edx*2]
cmp ax, 0x22
je 0x406587
cmp ax, 0x3e
je 0x406587
cmp ax, 0x3c
je 0x406587
cmp ax, 0x2f
je 0x406587
cmp ax, 0x3a
jne 0x4063cb
cmp edx, 1
jne 0x406587
cmp ax, 0x21
jne 0x4063da
mov eax, 0x3f
mov word [ebx + edx*2], ax
mov eax, ebx
inc edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4063e0
sub eax, esi
sar eax, 1
cmp edx, eax
jb 0x406390
mov eax, ebx
call fcn.0041aac0
mov edi, eax
test edi, edi
je 0x406587
mov esi, dword [esp + 0x46c]
push edi
push str.search__s_n
push esi
call fcn.004135f0
add esp, 0xc
test eax, eax
jne 0x406587
push edi
call fcn.0047a868
add esp, 4
push 4
lea ecx, [esp + 0x3c]
push ecx
push 0x1006
push 0xffff
push esi
xor edi, edi
mov dword [esp + 0x4c], 0x3e8
call dword [sym.imp.WS2_32.dll_setsockopt]
mov bl, 1
nop
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x46c]
push 0
mov edx, esi
sub edx, ebp
push edx
add eax, ebp
push eax
push ecx
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x40649a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x40648d
cmp eax, 0x274c
jne 0x40657c
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x406572
test eax, eax
je 0x406583
add eax, ebp
cmp eax, esi
jbe 0x4064be
push 0x30
push str.Error
push str.Written_data_is_across_the_size_boundary_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x4064c2
mov dword [esp + 0x24], eax
xor esi, esi
cmp edi, esi
je 0x4064d1
push edi
call fcn.0047a868
add esp, 4
lea edx, [esp + 0x24]
push edx
call fcn.0040b450
mov edi, eax
cmp edi, esi
je 0x40656e
mov ecx, 0x49d93c
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x406510
test dl, dl
je 0x40650c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x406510
add eax, 2
add ecx, 2
test dl, dl
jne 0x4064f0
xor eax, eax
jmp 0x406515
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, esi
je 0x406583
mov eax, edi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x406520
sub eax, edx
mov byte [eax + edi - 1], cl
mov eax, edi
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x406532
sub eax, ecx
inc eax
push eax
mov eax, edi
lea ecx, [esp + 0x44]
call fcn.0041a9c0
add dword [esp + 0x1c], 1
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x44]
adc dword [esp + 0x20], esi
push eax
push ecx
call dword [esp + 0x3c]
mov bl, al
add esp, 0xc
test bl, bl
jne 0x4064c4
jmp 0x406583
mov ebp, dword [esp + 0x24]
test bl, bl
jne 0x406450
jmp 0x406583
push eax
call dword [sym.imp.WS2_32.dll_WSASetLastError]
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x406594
push ebx
call fcn.0047a868
add esp, 4
test edi, edi
je 0x4065a1
push edi
call fcn.0047a868
add esp, 4
mov edx, dword [esp + 0x2c]
push edx
call fcn.0047a868
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add esp, 4
mov ecx, dword [esp + 0x45c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x444]
xor ecx, esp
call fcn.0047a722
add esp, 0x454
ret