Function at 0x40ab00
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 0x40ad34
push fcn.0040aa60
push 0x40a8f0
push esi
call fcn.004075c0
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 0x40abaa
cmp dword [0x41f308], 0x41f304
jne 0x40abaa
mov ecx, dword [0x420b58]
mov edx, dword [0x420b5c]
add eax, ecx
push 0x4201bc
mov dword [0x4201cc], edx
mov dword [0x4201c8], eax
call fcn.004096e0
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 0x40ad2b
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 0x40ac4c
push edi
mov edi, dword [sym.imp.WS2_32.dll_ntohs]
call edi
cmp ax, 0x400
jae 0x40ac52
mov bl, 1
jmp 0x40ac52
mov edi, dword [sym.imp.WS2_32.dll_ntohs]
mov al, byte [0x41ff5c]
test al, al
mov byte [ebp - 1], 0
jbe 0x40ac8a
nop
test bl, bl
jne 0x40ac8e
mov eax, dword [ebp + 0xc]
push eax
call edi
mov cl, byte [ebp - 1]
movzx edx, cl
cmp ax, word [edx*2 + 0x420b60]
jne 0x40ac7c
mov bl, 1
mov al, byte [0x41ff5c]
inc cl
cmp cl, al
mov byte [ebp - 1], cl
jb 0x40ac60
test bl, bl
je 0x40acfd
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 0x40acb3
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 0x40ace1
mov eax, dword [ebp - 8]
inc eax
cmp ax, 0x200
mov dword [ebp - 8], eax
jb 0x40aca1
jmp 0x40ace9
cmp word [ebp - 8], 0x200
jb 0x40ad11
push 0x10
lea edx, [ebp - 0x18]
mov word [ebp - 0x16], 0
mov eax, dword [esi + 0x20]
push edx
push eax
call ebx
jmp 0x40ad0d
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 0x40ad2b
mov ecx, dword [esi + 0x20]
lea eax, [esi + 0x5c]
push eax
push ecx
call fcn.00405620
push esi
call fcn.004072b0
add esp, 0xc
test eax, eax
je 0x40ad3d
push esi
call fcn.0040aa60
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x21
call fcn.00410a90
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret