Function at 0x4081a0
Capabilities:
Create udp socket
Receive data
Receive data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x63c
mov byte [ecx + 8], 1
mov dword [esp + 8], 0x11
mov dword [esp + 4], 2
mov dword [esp], 2
call dword [sym.imp.WS2_32.dll_socket]
sub esp, 0xc
test eax, eax
mov dword [ebp - 0x620], eax
js 0x4085f0
mov eax, dword [ebp - 0x620]
mov dword [ebp - 0x600], 0
mov dword [ebp - 0x5fc], 0
mov dword [ebp - 0x5f8], 0
mov dword [ebp - 0x5f4], 0
mov dword [ebx + 0x20], eax
mov eax, 2
mov word [ebp - 0x600], ax
movzx eax, word [ebx + 0xa]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x5fe], ax
lea eax, [ebx + 0xc]
sub esp, 4
mov dword [esp + 4], eax
lea eax, [ebp - 0x604]
mov dword [esp], eax
call dword [method.QString.toUtf8_helper_QString_const_]
mov edi, dword [ebp - 0x604]
lea eax, [ebp - 0x5d8]
mov esi, dword [edi + 4]
add edi, dword [edi + 0xc]
mov dword [ebp - 0x5e0], eax
mov eax, edi
add eax, esi
je 0x408278
test edi, edi
jne 0x408278
mov dword [esp], str.basic_string::_M_construct_null_not_valid
call fcn.0040e898
cmp esi, 0xf
mov dword [ebp - 0x5f0], esi
ja 0x40869e
cmp esi, 1
je 0x40870e
test esi, esi
jne 0x4087a0
mov eax, dword [ebp - 0x5e0]
mov dword [ebp - 0x5dc], esi
mov byte [eax + esi], 0
mov edx, dword [ebp - 0x604]
mov eax, dword [edx]
test eax, eax
je 0x408680
cmp eax, 0xffffffff
je 0x4082c7
lock sub dword [edx], 1
je 0x408672
mov eax, dword [ebp - 0x5e0]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0x5fc], eax
mov eax, dword [ebp - 0x5e0]
lea edx, [ebp - 0x5d8]
sub esp, 4
cmp eax, edx
je 0x4082f7
mov dword [esp], eax
call sub.libstdc_6.dll_operator_delete_void_
lea eax, [ebp - 0x600]
mov dword [esp + 8], 0x10
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x620]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_bind]
sub esp, 0xc
test eax, eax
js 0x408722
mov eax, dword [method.QString.fromAscii_helper_char_const__int_]
mov dword [esp + 4], 0
mov dword [esp], 0x41a424
mov dword [ebp - 0x624], eax
call eax
mov dword [ebp - 0x5e0], eax
lea eax, [ebp - 0x5e0]
mov dword [esp], 1
mov ecx, ebx
mov dword [esp + 4], eax
mov dword [ebp - 0x61c], eax
call fcn.0040cfa0
mov eax, dword [ebp - 0x5e0]
sub esp, 8
mov edx, dword [eax]
test edx, edx
je 0x4086f0
cmp edx, 0xffffffff
je 0x408385
lock sub dword [eax], 1
je 0x4086ea
mov edi, dword [ebp - 0x61c]
xor esi, esi
mov ecx, 0x172
mov eax, esi
mov dword [ebp - 0x610], 0x10
mov dword [ebp - 0x60c], 0x40000000
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x60c]
lea edi, [ebp - 0x5e0]
mov dword [esp + 0x10], 4
mov dword [esp + 8], 0x1002
mov dword [esp + 4], 0xffff
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x620]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_setsockopt]
mov ecx, 0x172
mov eax, esi
mov dword [ebp - 0x61c], edi
rep stosd dword es:[edi], eax
sub esp, 0x14
cmp byte [ebx + 8], 0
je 0x408543
lea eax, [ebp - 0x610]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x5c8
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x5f0]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x61c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x620]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_recvfrom]
mov esi, eax
mov eax, dword [ebp - 0x5ec]
sub esp, 0x18
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_htonl]
sub esp, 4
lea ecx, [ebp - 0x604]
mov dword [esp], eax
call dword [method.QHostAddress.QHostAddress_unsigned_int_]
lea eax, [ebp - 0x604]
sub esp, 4
lea ecx, [ebp - 0x608]
mov dword [esp], eax
call dword [method.QHostAddress.toString___const]
sub esp, 4
lea ecx, [ebp - 0x604]
call dword [method.QHostAddress.QHostAddress__]
test esi, esi
jle 0x4085c0
mov eax, esi
cdq
add eax, dword [ebx + 0x10]
adc edx, dword [ebx + 0x14]
cmp edx, dword [ebx + 0x1c]
jg 0x4084aa
jl 0x4084a4
cmp eax, dword [ebx + 0x18]
jae 0x4084aa
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
mov dword [esp], esi
call sub.msvcrt.dll_malloc
test eax, eax
mov edi, eax
je 0x4085d5
mov eax, dword [ebp - 0x61c]
mov dword [esp + 8], esi
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
call fcn.004057d0
mov dword [esp + 4], esi
mov dword [esp], edi
mov ecx, eax
call fcn.00405aa0
sub esp, 8
mov edi, dword [ebp - 0x61c]
xor eax, eax
mov ecx, 0x172
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x608]
mov edx, dword [eax]
test edx, edx
je 0x408520
cmp edx, 0xffffffff
je 0x4083f3
lock sub dword [eax], 1
jne 0x4083f3
mov eax, dword [ebp - 0x608]
lea esi, [esi]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
cmp byte [ebx + 8], 0
jne 0x4083fd
mov eax, dword [ebp - 0x620]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_closesocket]
sub esp, 4
mov dword [ebx + 0x20], 0xffffffff
mov eax, dword [ebp - 0x624]
mov dword [esp + 4], 0xd
mov dword [esp], str.close_socket.
call eax
mov dword [ebp - 0x604], eax
lea eax, [ebp - 0x604]
mov dword [esp], 0
mov ecx, ebx
mov dword [esp + 4], eax
call fcn.0040cfa0
mov eax, dword [ebp - 0x604]
sub esp, 8
mov edx, dword [eax]
test edx, edx
je 0x408651
cmp edx, 0xffffffff
je 0x4085b3
lock sub dword [eax], 1
je 0x40882b
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
sub esp, 4
jmp 0x4084e8
mov eax, dword [ebp - 0x608]
mov edx, dword [eax]
test edx, edx
jne 0x408503
jmp 0x408520
mov dword [esp + 4], 0xe
mov dword [esp], 0x41a408
call dword [method.QString.fromAscii_helper_char_const__int_]
mov dword [ebp - 0x5e0], eax
lea eax, [ebp - 0x5e0]
mov dword [esp], 0
mov ecx, ebx
mov dword [esp + 4], eax
mov dword [ebp - 0x61c], eax
call fcn.0040cfa0
mov eax, dword [ebp - 0x5e0]
sub esp, 8
mov edx, dword [eax]
test edx, edx
je 0x408651
cmp edx, 0xffffffff
je 0x4085b3
lock sub dword [eax], 1
jne 0x4085b3
mov eax, dword [ebp - 0x5e0]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp - 0x604]
nop
lea esi, [esi]
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], edx
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
jmp 0x4082c7
lea eax, [ebp - 0x5f0]
lea ecx, [ebp - 0x5e0]
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.0040e8b8
mov edx, dword [ebp - 0x5f0]
sub esp, 8
mov dword [ebp - 0x5e0], eax
mov dword [ebp - 0x5d8], edx
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov esi, dword [ebp - 0x5f0]
jmp 0x408298
mov eax, dword [ebp - 0x5e0]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
jmp 0x408385
movzx eax, byte [edi]
mov byte [ebp - 0x5d8], al
lea eax, [ebp - 0x5d8]
jmp 0x40829e
mov eax, dword [ebp - 0x620]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_closesocket]
sub esp, 4
mov dword [ebx + 0x20], 0xffffffff
mov dword [esp + 4], 0xc
mov dword [esp], str.bind_failed_
call dword [method.QString.fromAscii_helper_char_const__int_]
mov dword [ebp - 0x5e0], eax
lea eax, [ebp - 0x5e0]
mov dword [esp], 0
mov ecx, ebx
mov dword [esp + 4], eax
mov dword [ebp - 0x61c], eax
call fcn.0040cfa0
jmp 0x408629
lea eax, [ebp - 0x5d8]
jmp 0x4086cf
mov eax, dword [ebp - 0x604]
jmp 0x408651