Function at 0x10001da0
Capabilities:
Connect socket
Connect udp socket
Create udp socket
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x550
mov eax, dword [0x1000700c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x103
lea eax, [ebp - 0x427]
mov dword [ebp - 0x314], 0x7d0
push 0
push eax
mov esi, edx
mov edi, ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x438], 0
lea eax, [ebp - 0x427]
mov dword [ebp - 0x434], 0x800
lea ecx, [ebp - 0x438]
mov dword [ebp - 0x430], 0
mov dword [ebp - 0x42c], eax
push 0x504d4153
mov byte [ebp - 0x428], 1
call fcn.100029a0
push edi
lea ecx, [ebp - 0x438]
call fcn.100029a0
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10007470]
movzx esi, si
mov ebx, esi
mov dword [ebp - 0x30c], ebx
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x100074b8]
mov dword [ebp - 0x550], ecx
cmp eax, dword [ecx + 4]
jle 0x10001e8e
push 0x100074b8
call fcn.100035c8
add esp, 4
cmp dword [0x100074b8], 0xffffffff
jne 0x10001e8e
push 0x3039
call dword [sym.imp.WS2_32.dll_htonl]
cmp eax, 0x3039
push 0x100074b8
sete byte [0x100074bc]
call fcn.1000357e
add esp, 4
cmp byte [0x100074bc], 0
lea eax, [ebp - 0x30c]
push ecx
push 0x10
lea ecx, [ebp - 0x438]
push eax
je 0x10001eb3
mov byte [ebp - 0x30c], bh
mov byte [ebp - 0x30b], bl
call fcn.10002e30
push ecx
push 8
lea eax, [ebp - 0x308]
mov byte [ebp - 0x308], 0x72
push eax
lea ecx, [ebp - 0x438]
call fcn.10002e30
xorps xmm0, xmm0
mov eax, 2
push esi
movlpd qword [ebp - 0x31c], xmm0
mov word [ebp - 0x324], ax
call dword [sym.imp.WS2_32.dll_htons]
push 0x11
push 2
push 2
mov word [ebp - 0x322], ax
mov dword [ebp - 0x320], edi
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
cmp esi, 0xffffffff
je 0x10001f38
push 4
lea eax, [ebp - 0x314]
push eax
push 0x1006
push 0xffff
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x10001f66
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
cmp byte [ebp - 0x428], 0
je 0x1000224f
cmp dword [ebp - 0x434], 0x800
jle 0x1000224f
push dword [ebp - 0x42c]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x1000224c
push 0x10
lea eax, [ebp - 0x324]
push eax
push esi
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x10001f31
mov eax, dword [ebp - 0x438]
lea ecx, [ebp - 0x324]
push 0x10
push ecx
add eax, 7
push 0
sar eax, 3
push eax
push dword [ebp - 0x42c]
push esi
call dword [sym.imp.WS2_32.dll_sendto]
mov ecx, dword [ebp - 0x438]
add ecx, 7
sar ecx, 3
cmp eax, ecx
jne 0x10001f31
push 0
push 0
push 0
push pe_nt_image_headers32
lea eax, [ebp - 0x304]
push eax
push esi
call dword [sym.imp.WS2_32.dll_recvfrom]
push esi
mov edi, eax
call dword [sym.imp.WS2_32.dll_closesocket]
cmp edi, 0xd
jl 0x10001f38
push 0x103
lea eax, [ebp - 0x53b]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [ebp - 0x550]
lea eax, [edi*8]
mov dword [ebp - 0x54c], eax
add esp, 0xc
mov dword [ebp - 0x548], eax
lea eax, [ebp - 0x304]
mov dword [ebp - 0x540], eax
mov eax, dword [0x100074b8]
mov byte [ebp - 0x53c], 0
mov dword [ebp - 0x544], 0x58
cmp eax, dword [ecx + 4]
jle 0x1000206e
push 0x100074b8
call fcn.100035c8
add esp, 4
cmp dword [0x100074b8], 0xffffffff
jne 0x1000206e
push 0x3039
call dword [sym.imp.WS2_32.dll_htonl]
cmp eax, 0x3039
push 0x100074b8
sete byte [0x100074bc]
call fcn.1000357e
add esp, 4
cmp byte [0x100074bc], 0
lea eax, [ebp - 0x30c]
push ecx
push 0x10
lea ecx, [ebp - 0x54c]
push eax
je 0x100020a5
call fcn.10002ed0
test al, al
je 0x100020aa
mov ax, word [ebp - 0x30c]
mov byte [ebp - 0x30c], ah
mov byte [ebp - 0x30b], al
jmp 0x100020aa
call fcn.10002ed0
movzx eax, word [ebp - 0x30c]
xor ebx, ebx
test eax, eax
je 0x10002209
nop dword [eax + eax]
push ecx
push 8
lea eax, [ebp - 0x308]
push eax
lea ecx, [ebp - 0x54c]
call fcn.10002ed0
test byte [ebp - 0x544], 7
movzx edi, byte [ebp - 0x308]
lea ecx, [edi*8]
jne 0x1000211f
mov eax, dword [ebp - 0x544]
lea esi, [ecx + eax]
cmp esi, dword [ebp - 0x54c]
jg 0x10002133
sar eax, 3
add eax, dword [ebp - 0x540]
push edi
push eax
lea eax, [ebp - 0x104]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [ebp - 0x544], esi
jmp 0x10002133
push ecx
push ecx
lea eax, [ebp - 0x104]
push eax
lea ecx, [ebp - 0x54c]
call fcn.10002ed0
push ecx
push 8
lea eax, [ebp - 0x30d]
push eax
lea ecx, [ebp - 0x54c]
call fcn.10002ed0
test byte [ebp - 0x544], 7
movzx esi, byte [ebp - 0x30d]
lea ecx, [esi*8]
jne 0x1000219d
mov eax, dword [ebp - 0x544]
add ecx, eax
mov dword [ebp - 0x550], ecx
cmp ecx, dword [ebp - 0x54c]
jg 0x100021b1
sar eax, 3
add eax, dword [ebp - 0x540]
push esi
push eax
lea eax, [ebp - 0x204]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x550]
add esp, 0xc
mov dword [ebp - 0x544], eax
jmp 0x100021b1
push ecx
push ecx
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0x54c]
call fcn.10002ed0
mov byte [ebp + edi - 0x104], 0
lea ecx, [ebp - 0x104]
mov byte [ebp + esi - 0x204], 0
mov eax, str.version
nop dword [eax]
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x100021f0
test dl, dl
je 0x100021ec
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x100021f0
add ecx, 2
add eax, 2
test dl, dl
jne 0x100021d0
xor eax, eax
jmp 0x100021f5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10002262
movzx eax, word [ebp - 0x30c]
inc ebx
cmp ebx, eax
jne 0x100020c0
cmp byte [ebp - 0x53c], 0
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
je 0x1000222f
cmp dword [ebp - 0x548], 0x800
jle 0x1000222f
push dword [ebp - 0x540]
call esi
add esp, 4
cmp byte [ebp - 0x428], 0
je 0x1000224f
cmp dword [ebp - 0x434], 0x800
jle 0x1000224f
push dword [ebp - 0x42c]
call esi
add esp, 4
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000300e
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x204]
push str.0.3.7
push eax
call dword [sym.imp.VCRUNTIME140.dll_strstr]
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 8
test eax, eax
setne bl
cmp byte [ebp - 0x53c], 0
je 0x100022a2
cmp dword [ebp - 0x548], 0x800
jle 0x100022a2
push dword [ebp - 0x540]
call esi
add esp, 4
cmp byte [ebp - 0x428], 0
je 0x100022c2
cmp dword [ebp - 0x434], 0x800
jle 0x100022c2
push dword [ebp - 0x42c]
call esi
add esp, 4
mov ecx, dword [ebp - 4]
mov al, bl
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1000300e
mov esp, ebp
pop ebp
ret