Function at 0x471f60
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x565acf
mov eax, dword fs:[0]
push eax
sub esp, 0x524
mov eax, dword [0x5b3680]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [0x5ba1b0]
lea eax, [ebp - 0x50f]
push 0x3ff
push 0
push eax
mov byte [ebp - 0x510], 0
call fcn.00531bd0
add esp, 0xc
mov byte [ebp - 0x110], 0
lea eax, [ebp - 0x10f]
push 0xff
push 0
push eax
call fcn.00531bd0
mov ebx, dword [ebp + 0xc]
add esp, 0xc
cmp ebx, 0x20009136
jne 0x472036
mov eax, dword [esi + 0x13c]
sub eax, dword [esi + 0x138]
test eax, 0xfffffff0
jne 0x472022
push 0
push 0xa
lea eax, [ebp - 0x51c]
mov word [ebp - 0x51c], 0xff
push eax
push dword [ebp + 8]
mov dword [ebp - 0x51a], 0xffffff
mov dword [ebp - 0x516], 0
call dword [sym.imp.WS2_32.dll_send]
jmp 0x472191
mov edi, dword [esi + 0x13c]
sub edi, dword [esi + 0x138]
sar edi, 4
jmp 0x4721d2
cmp ebx, 0x20009137
jne 0x472065
mov eax, dword [esi + 0x148]
sub eax, dword [esi + 0x144]
test eax, 0xfffffff0
je 0x471fec
mov edi, dword [esi + 0x148]
sub edi, dword [esi + 0x144]
sar edi, 4
jmp 0x4721d2
cmp ebx, 0x20009143
jne 0x472098
mov eax, dword [esi + 0x154]
sub eax, dword [esi + 0x150]
test eax, 0xfffffff0
je 0x471fec
mov edi, dword [esi + 0x154]
sub edi, dword [esi + 0x150]
sar edi, 4
jmp 0x4721d2
cmp ebx, 0x20009144
jne 0x472191
push dword [ebp - 0x520]
mov edx, dword [esi + 0x160]
push ecx
mov ecx, dword [esi + 0x15c]
call fcn.00476b40
mov eax, dword [esi + 0x15c]
push 0x40
mov dword [esi + 0x160], eax
call fcn.00529b2d
add esp, 0xc
mov dword [ebp - 0x520], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x4720ee
mov ecx, eax
call fcn.0044b440
mov edi, eax
jmp 0x4720f0
xor edi, edi
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x520], edi
mov dword [ebp - 4], 1
mov ecx, edi
call fcn.0045cce0
xor ecx, ecx
test al, al
setne cl
test ecx, ecx
je 0x47217f
lea eax, [ebp - 0x524]
mov dword [ebp - 0x524], esi
lea edx, [ebp - 0x52c]
mov dword [ebp - 0x52c], edi
mov ecx, edi
mov dword [ebp - 0x528], eax
call fcn.00476650
mov eax, dword [esi + 0x160]
sub eax, dword [esi + 0x15c]
test eax, 0xfffffff0
jne 0x4721b1
push 0
push 0xa
lea eax, [ebp - 0x51c]
mov word [ebp - 0x51c], 0xff
push eax
push dword [ebp + 8]
mov dword [ebp - 0x51a], 0xffffff
mov dword [ebp - 0x516], 0
call dword [sym.imp.WS2_32.dll_send]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x520]
call fcn.00473ce0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005295e2
mov esp, ebp
pop ebp
ret 8
mov edi, dword [esi + 0x160]
sub edi, dword [esi + 0x15c]
sar edi, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x520]
call fcn.00473ce0
mov dword [ebp - 0x516], 4
mov ax, word [ebp - 0x514]
push 0
mov word [ebp - 0x508], ax
lea eax, [ebp - 0x510]
push 0xe
mov word [ebp - 0x51c], 0x24
mov dword [ebp - 0x51a], 0x20009303
movq xmm0, qword [ebp - 0x51c]
mov dword [ebp - 0x506], edi
mov edi, dword [ebp + 8]
push eax
push edi
movq qword [ebp - 0x510], xmm0
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x472191
push 0
push 0x100
lea eax, [ebp - 0x110]
push eax
push edi
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
je 0x472191
cmp byte [ebp - 0x110], 0x24
movq xmm0, qword [ebp - 0x110]
mov ax, word [ebp - 0x108]
movq qword [ebp - 0x51c], xmm0
mov word [ebp - 0x514], ax
jne 0x472191
cmp dword [ebp - 0x10e], 0x55aa0000
je 0x4722c9
lea ecx, [ebp - 0x524]
call fcn.00402b10
mov dword [ebp - 4], 2
lea eax, [ebp - 0x524]
push dword [ebp - 0x51a]
push str.Bad_data_type._Received_type__04Xh
push eax
call fcn.00415d20
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x524]
call fcn.00402750
jmp 0x472191
cmp dword [ebp - 0x10a], 0
jne 0x472191
cmp ebx, 0x20009136
jne 0x4722ec
mov eax, dword [esi + 0x138]
mov esi, dword [esi + 0x13c]
jmp 0x472330
cmp ebx, 0x20009137
jne 0x472302
mov eax, dword [esi + 0x144]
mov esi, dword [esi + 0x148]
jmp 0x472330
cmp ebx, 0x20009143
jne 0x472318
mov eax, dword [esi + 0x150]
mov esi, dword [esi + 0x154]
jmp 0x472330
cmp ebx, 0x20009144
jne 0x4724c2
mov eax, dword [esi + 0x15c]
mov esi, dword [esi + 0x160]
cmp eax, esi
je 0x4724c2
lea edi, [eax + 4]
jmp 0x472340
mov word [ebp - 0x51c], 0x124
mov dword [ebp - 0x51a], ebx
mov eax, dword [edi - 4]
mov ecx, dword [eax - 0xc]
mov eax, dword [edi]
mov eax, dword [eax - 0xc]
add eax, ecx
lea eax, [eax*2 + 0x29]
mov dword [ebp - 0x516], eax
mov eax, dword [edi - 4]
movq xmm0, qword [ebp - 0x51c]
mov ecx, dword [eax - 0xc]
mov eax, dword [edi]
mov dword [ebp - 0x520], ecx
mov eax, dword [eax - 0xc]
mov dword [ebp - 0x524], eax
mov ax, word [ebp - 0x514]
movq qword [ebp - 0x510], xmm0
mov word [ebp - 0x508], ax
mov dword [ebp - 0x506], ecx
mov eax, dword [edi - 4]
cmp dword [eax - 4], 1
jle 0x4723be
push dword [eax - 0xc]
lea ecx, [edi - 4]
call fcn.004024c0
mov ecx, dword [ebp - 0x520]
lea eax, [ecx + ecx]
push eax
push dword [edi - 4]
lea eax, [ebp - 0x502]
push eax
call fcn.00531580
mov ebx, dword [ebp - 0x520]
add esp, 0xc
mov eax, dword [ebp - 0x524]
mov dword [ebp + ebx*2 - 0x502], eax
mov eax, dword [edi]
cmp dword [eax - 4], 1
jle 0x4723f9
push dword [eax - 0xc]
mov ecx, edi
call fcn.004024c0
mov eax, dword [ebp - 0x524]
add eax, eax
push eax
push dword [edi]
lea eax, [ebp - 0x4fe]
lea eax, [eax + ebx*2]
push eax
call fcn.00531580
mov ecx, dword [ebp - 0x524]
add esp, 0xc
mov eax, dword [edi + 4]
add ecx, ebx
mov ebx, dword [ebp + 8]
push 0
mov dword [ebp + ecx*2 - 0x4fe], eax
mov al, byte [edi + 8]
mov byte [ebp + ecx*2 - 0x4fa], al
mov eax, dword [ebp - 0x516]
add eax, 0xa
push eax
lea eax, [ebp - 0x510]
push eax
push ebx
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x472191
push 0
push 0xff
lea eax, [ebp - 0x110]
push eax
push ebx
call dword [sym.imp.WS2_32.dll_recv]
cmp byte [ebp - 0x110], 0x24
movq xmm0, qword [ebp - 0x110]
mov ax, word [ebp - 0x108]
movq qword [ebp - 0x51c], xmm0
mov word [ebp - 0x514], ax
jne 0x472191
cmp dword [ebp - 0x10e], 0x55aa0000
jne 0x4724cc
cmp dword [ebp - 0x10a], 0
jne 0x472191
mov ebx, dword [ebp + 0xc]
add edi, 0x10
lea eax, [edi - 4]
cmp eax, esi
jne 0x472340
mov eax, 1
jmp 0x472193
lea ecx, [ebp - 0x520]
call fcn.00402b10
mov dword [ebp - 4], 3
lea eax, [ebp - 0x520]
push dword [ebp - 0x51a]
push str.Bad_data_type._Received_type__04Xh
push eax
call fcn.00415d20
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x520]
call fcn.00402750
jmp 0x472191