Function at 0x403d90
Capabilities:
Create raw socket
Create tcp socket
Create udp socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x104
mov eax, dword [0x43c294]
push ebx
push esi
push edi
push 1
push 0
push 0
push 0xff
push 3
mov edi, ecx
push 2
mov dword [esp + 0x124], eax
mov dword [esp + 0x24], edi
call dword [sym.imp.WS2_32.dll_WSASocketA]
mov esi, eax
cmp esi, 0xffffffff
mov dword [esp + 0x10], esi
je 0x40426d
mov ebx, dword [sym.imp.WS2_32.dll_setsockopt]
push 4
lea eax, [esp + 0x1c]
push eax
push 2
push 0
push esi
mov dword [esp + 0x2c], 1
call ebx
cmp eax, 0xffffffff
je 0x40426d
push 4
lea ecx, [esp + 0x1c]
push ecx
push 0x1005
push 0xffff
push esi
mov dword [esp + 0x2c], 0x7d0
call ebx
cmp eax, 0xffffffff
je 0x40426d
mov edx, dword [edi + 0x4c]
mov esi, dword [sym.imp.WS2_32.dll_ntohl]
push edx
mov word [esp + 0x94], 2
call esi
mov ecx, dword [edi + 0x4c]
mov dword [esp + 0x94], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
and al, 0xf
or al, 0x40
and al, 0xf5
or al, 5
mov bl, 6
push ecx
mov byte [esp + 0x2c], al
mov byte [esp + 0x2d], 0
mov word [esp + 0x32], 0x40
mov byte [esp + 0x35], bl
call esi
xor edx, edx
mov dword [esp + 0x3c], edx
mov edi, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], edx
xor ecx, ecx
mov cx, word [eax + 0x50]
mov dword [esp + 0x44], edx
mov esi, edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x48], esi
push ecx
mov dword [esp + 0x58], edx
call dword [sym.imp.WS2_32.dll_ntohs]
and esi, 0xff7f
xor ecx, ecx
or esi, 0x70
mov word [esp + 0x48], si
mov edx, dword [esp + 0x48]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
and edx, 0xc2ff
or edx, 0x200
mov dword [esp + 0x24], ecx
mov byte [esp + 0x24], cl
mov ecx, dword [esp + 0xc]
mov word [esp + 0x48], dx
mov edx, dword [ecx + 0x18]
mov word [esp + 0x3e], ax
xor eax, eax
mov dword [esp + 0x14], edx
cmp dword [ecx + 0x3c], eax
mov dword [esp + 0x44], eax
mov word [esp + 0x4e], ax
mov dword [esp + 0x50], 0xb4050402
mov dword [esp + 0x54], 0x2040101
mov dword [esp + 0x20], edi
mov byte [esp + 0x25], bl
jne 0x404269
mov edi, edi
mov edi, dword [sym.imp.WS2_32.dll_ntohs]
push 0x30
call edi
mov word [esp + 0x2a], ax
call fcn.00412585
mov word [esp + 0x2c], ax
call fcn.00412585
and al, 0x7f
mov byte [esp + 0x30], al
mov eax, dword [0x57f178]
test eax, eax
jbe 0x403fa9
mov esi, eax
call fcn.00412585
xor edx, edx
div esi
cmp edx, dword [0x57f178]
jae 0x403f6a
mov eax, dword [0x57f17c]
lea esi, [eax + edx*8]
jmp 0x403f6c
xor esi, esi
mov edx, dword [esi]
cmp dword [esi + 4], edx
jbe 0x403f9e
mov edi, edx
call fcn.00412585
movzx ebx, ax
shl ebx, 0x10
call fcn.00412585
movzx ecx, ax
or ebx, ecx
mov ecx, dword [esi + 4]
sub ecx, edi
inc ecx
xor edx, edx
mov eax, ebx
div ecx
add edx, edi
mov edi, dword [sym.imp.WS2_32.dll_ntohs]
push edx
call dword [sym.imp.WS2_32.dll_ntohl]
mov ebx, eax
jmp 0x403fbe
call fcn.00412585
movzx ebx, ax
shl ebx, 0x10
call fcn.00412585
movzx edx, ax
or ebx, edx
mov esi, dword [0x57f184]
mov dword [esp + 0x34], ebx
call fcn.00412585
test esi, esi
jbe 0x404014
xor edx, edx
div esi
cmp edx, dword [0x57f184]
jae 0x403fe7
mov eax, dword [0x57f188]
lea esi, [eax + edx*4]
jmp 0x403fe9
xor esi, esi
mov ax, word [esi]
cmp word [esi + 2], ax
ja 0x403ff7
movzx edx, ax
jmp 0x404011
movzx edi, word [esi]
call fcn.00412585
movzx ecx, word [esi + 2]
sub ecx, edi
inc ecx
cdq
idiv ecx
add edx, edi
mov edi, dword [sym.imp.WS2_32.dll_ntohs]
push edx
call edi
mov word [esp + 0x3c], ax
call fcn.00412585
movzx esi, ax
shl esi, 0x10
call fcn.00412585
movzx edx, ax
or esi, edx
mov dword [esp + 0x40], esi
call fcn.00412585
or eax, 0xf000
push eax
call edi
push 0x1c
mov word [esp + 0x4e], ax
mov dword [esp + 0x20], ebx
call edi
mov word [esp + 0x26], ax
lea edx, [esp + 0x1c]
mov ecx, 0xc
xor eax, eax
lea esp, [esp]
movzx esi, word [edx]
sub ecx, 2
add eax, esi
add edx, 2
cmp ecx, 1
ja 0x404060
test ecx, ecx
jbe 0x404079
movzx ecx, byte [edx]
add eax, ecx
mov ecx, eax
sar ecx, 0x10
test ecx, ecx
je 0x404092
and eax, 0xffff
add eax, ecx
mov ecx, eax
sar ecx, 0x10
test ecx, ecx
jne 0x404082
mov word [esp + 0x4c], ax
lea edx, [esp + 0x3c]
mov ecx, 0x1c
xor eax, eax
movzx esi, word [edx]
sub ecx, 2
add eax, esi
add edx, 2
cmp ecx, 1
ja 0x4040a2
test ecx, ecx
jbe 0x4040bb
movzx edx, byte [edx]
add eax, edx
mov ecx, eax
sar ecx, 0x10
test ecx, ecx
je 0x4040d4
and eax, 0xffff
add eax, ecx
mov ecx, eax
sar ecx, 0x10
test ecx, ecx
jne 0x4040c4
not eax
mov word [esp + 0x4c], ax
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x4040ea
dec eax
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4040ff
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x14], ecx
mov word [esp + 0x2e], 0x20
mov word [esp + 0x32], 0
lea edx, [esp + 0x28]
mov ecx, 0x14
xor eax, eax
movzx esi, word [edx]
sub ecx, 2
add eax, esi
add edx, 2
cmp ecx, 1
ja 0x404118
test ecx, ecx
jbe 0x404131
movzx edx, byte [edx]
add eax, edx
mov ecx, eax
sar ecx, 0x10
test ecx, ecx
je 0x404150
lea ebx, [ebx]
and eax, 0xffff
add eax, ecx
mov ecx, eax
sar ecx, 0x10
test ecx, ecx
jne 0x404140
not eax
push 0x10
mov word [esp + 0x36], ax
lea eax, [esp + 0x94]
push eax
push 0
mov ecx, 9
lea esi, [esp + 0x34]
lea edi, [esp + 0xac]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x1c]
push 0x24
lea ecx, [esp + 0xb0]
push ecx
push esi
call dword [sym.imp.WS2_32.dll_sendto]
push 2
call dword [sym.imp.WS2_32.dll_ntohs]
mov word [esp + 0x2e], ax
mov word [esp + 0x32], 0
lea edx, [esp + 0x28]
mov ecx, 0x14
xor eax, eax
lea esp, [esp]
movzx edi, word [edx]
sub ecx, 2
add eax, edi
add edx, 2
cmp ecx, 1
ja 0x4041b0
test ecx, ecx
jbe 0x4041c9
movzx edx, byte [edx]
add eax, edx
mov ecx, eax
sar ecx, 0x10
test ecx, ecx
je 0x4041e2
and eax, 0xffff
add eax, ecx
mov ecx, eax
sar ecx, 0x10
test ecx, ecx
jne 0x4041d2
mov ecx, dword [esp + 0x2c]
not eax
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x4c]
mov word [esp + 0x32], ax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
push 0x10
mov dword [esp + 0xb8], ecx
lea ecx, [esp + 0x94]
push ecx
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0x58]
push 0
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc4], edx
push 0x20
lea edx, [esp + 0xb0]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x64]
push edx
push esi
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xd4], eax
call dword [sym.imp.WS2_32.dll_sendto]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x403f20
mov esi, dword [esp + 0x10]
test esi, esi
je 0x404278
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
mov ecx, dword [esp + 0x10c]
call fcn.00411a09
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret