Function at 0x40ae00
Capabilities:
Create udp socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
push 0x80
mov edi, eax
call fcn.004028e0
mov esi, eax
xor ebx, ebx
add esp, 4
cmp esi, ebx
je 0x40b034
push fcn.0040ad60
push 0x40abf0
push esi
call fcn.004075d0
lea eax, [esi + 0x48]
mov dword [eax], eax
mov dword [esi + 0x4c], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x54], eax
mov eax, dword [0x41f31c]
mov dword [esi + 0x38], esi
mov dword [esi + 0x44], esi
mov word [esi + 0x58], di
mov word [esi + 0x6c], bx
mov word [esi + 0x70], bx
mov word [esi + 0x6e], bx
mov dword [esi + 0x74], 0xffffffff
mov ecx, dword [0x420b58]
add esp, 0xc
cmp eax, ebx
mov dword [esi + 0x78], ecx
mov byte [esi + 0x7c], 1
jle 0x40aeaa
cmp dword [0x41f308], 0x41f304
jne 0x40aeaa
mov ecx, dword [0x420b58]
mov edx, dword [0x420b5c]
add eax, ecx
push 0x4201bc
mov dword [0x4201cc], edx
mov dword [0x4201c8], eax
call fcn.00409810
add esp, 4
mov edx, dword [0x41f314]
mov dword [esi + 0x34], edx
mov dword [esi + 0x30], 0x41f310
mov ecx, dword [0x41f314]
lea eax, [esi + 0x30]
mov dword [ecx], eax
mov edx, dword [0x41f304]
mov dword [0x41f314], eax
lea eax, [esi + 0x3c]
mov dword [eax], edx
mov dword [eax + 4], 0x41f304
mov ecx, dword [0x41f304]
push 0x11
push 2
mov dword [ecx + 4], eax
push 2
mov dword [0x41f304], eax
call dword [sym.imp.WS2_32.dll_socket]
cmp eax, 0xffffffff
mov dword [esi + 0x20], eax
je 0x40b02b
push 4
push 0x41c62c
push 0x20
push 0xffff
push eax
mov byte [esi + 0x1c], 1
call dword [sym.imp.WS2_32.dll_setsockopt]
mov al, byte [0x41ff5d]
mov edx, dword [0x41ff58]
mov word [ebp - 0x16], bx
xor bl, bl
test al, al
mov word [ebp - 0x18], 2
mov dword [ebp - 0x14], edx
je 0x40af4c
push edi
mov edi, dword [sym.imp.WS2_32.dll_ntohs]
call edi
cmp ax, 0x400
jae 0x40af52
mov bl, 1
jmp 0x40af52
mov edi, dword [sym.imp.WS2_32.dll_ntohs]
mov al, byte [0x41ff5c]
test al, al
mov byte [ebp - 1], 0
jbe 0x40af8a
nop
test bl, bl
jne 0x40af8e
mov eax, dword [ebp + 0xc]
push eax
call edi
mov cl, byte [ebp - 1]
movzx edx, cl
cmp ax, word [edx*2 + 0x420b60]
jne 0x40af7c
mov bl, 1
mov al, byte [0x41ff5c]
inc cl
cmp cl, al
mov byte [ebp - 1], cl
jb 0x40af60
test bl, bl
je 0x40affd
mov edi, dword [sym.imp.WS2_32.dll_htons]
mov ebx, dword [sym.imp.WS2_32.dll_bind]
mov dword [ebp - 8], 0
mov ax, word [0x41f320]
cmp ax, 0x100
ja 0x40afb3
xor eax, eax
mov ax, 0x400
dec ax
mov word [0x41f320], ax
push eax
call edi
mov word [ebp - 0x16], ax
mov ecx, dword [esi + 0x20]
push 0x10
lea eax, [ebp - 0x18]
push eax
push ecx
call ebx
test eax, eax
je 0x40afe1
mov eax, dword [ebp - 8]
inc eax
cmp ax, 0x200
mov dword [ebp - 8], eax
jb 0x40afa1
jmp 0x40afe9
cmp word [ebp - 8], 0x200
jb 0x40b011
push 0x10
lea edx, [ebp - 0x18]
mov word [ebp - 0x16], 0
mov eax, dword [esi + 0x20]
push edx
push eax
call ebx
jmp 0x40b00d
mov edx, dword [esi + 0x20]
push 0x10
lea ecx, [ebp - 0x18]
push ecx
push edx
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
jne 0x40b02b
mov ecx, dword [esi + 0x20]
lea eax, [esi + 0x5c]
push eax
push ecx
call fcn.00405600
push esi
call fcn.004072c0
add esp, 0xc
test eax, eax
je 0x40b03d
push esi
call fcn.0040ad60
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x21
call fcn.0040a690
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret