Function at 0x41fb50
Capabilities:
Check for time delay via gettickcount
Create directory
Create raw socket
Create tcp socket
Create udp socket
Get local ipv4 addresses
Get socket information
Get socket status
Read .ini file
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45c0f9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x54a0
call fcn.0043ae00
push ebx
push esi
mov esi, ecx
push edi
mov ecx, 0x400
xor eax, eax
lea edi, [ebp - 0x14a3]
mov dword [ebp - 0x10], esp
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0xc]
mov byte [ebp - 0x14a3], al
lea eax, [ebp - 0x14]
push 8
lea ecx, [ebp - 0x14a2]
push eax
push ecx
push edi
mov ecx, esi
mov dword [ebp - 0x18], esi
mov byte [ebp - 0x14a4], 1
mov dword [ebp - 0x14], 0xe
call fcn.004112c0
test eax, eax
je 0x420d87
mov eax, dword [ebp - 0x149c]
lea edx, [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], eax
push 8
lea eax, [ebp - 0x1494]
push edx
push eax
push edi
mov ecx, esi
call fcn.004112c0
test eax, eax
je 0x420d87
lea ecx, [ebp - 0x1470]
lea edx, [ebp - 0x398]
push ecx
push 0x470c98
push edx
call fcn.0043afc4
lea eax, [ebp - 0x398]
push str.Host:
push eax
call fcn.0043ad80
mov ebx, eax
add esp, 0x14
test ebx, ebx
je 0x420d87
mov edi, str.Host:
or ecx, 0xffffffff
xor eax, eax
push str.:5432_o_a.y
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp - 0x20], 0x6db
add ebx, ecx
push ebx
call fcn.0043ad80
add esp, 8
test eax, eax
je 0x41fc5a
mov byte [eax], 0
inc eax
push eax
call fcn.0043bd89
add esp, 4
mov dword [ebp - 0x20], eax
mov cl, byte [0x473aa0]
xor eax, eax
mov byte [ebp - 0x2ca8], cl
mov ecx, 0x400
lea edi, [ebp - 0x2ca7]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
mov eax, dword [0x51a850]
mov ecx, dword [eax + edx*4 + 0xc]
lea eax, [eax + edx*4]
mov eax, dword [eax + 0x20]
cmp eax, 0xffffffff
je 0x41fcc3
mov edx, eax
shl edx, 5
add edx, eax
mov eax, dword [0x4f4398]
lea edx, [eax + edx*4]
push edx
push ecx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea eax, [ebp - 0x2ca8]
push str._s__s_MMS
push eax
call fcn.0043afc4
add esp, 0x10
jmp 0x41fcdf
push ecx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea ecx, [ebp - 0x2ca8]
push str._s_unknown_MMS
push ecx
call fcn.0043afc4
add esp, 0xc
mov eax, dword [0x501cf0]
test eax, eax
je 0x41fd4c
mov dl, byte [0x473aa0]
mov ecx, 0x400
xor eax, eax
lea edi, [ebp - 0x3cab]
mov byte [ebp - 0x3cac], dl
push ebx
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x3cac]
push 0x46f188
push eax
call fcn.0043afc4
lea edi, [ebp - 0x3cac]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp - 0x2ca8]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0x18]
lea eax, [ebp - 0x2ca8]
push eax
call fcn.0040a330
mov ecx, dword [ebp - 0x20]
add esp, 4
push 1
push ecx
push ebx
mov ebx, dword [ebp + 0x10]
push ebx
mov ecx, esi
call fcn.00419740
test eax, eax
je 0x420d87
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x14a4]
add edx, 0x10
mov ecx, esi
push edx
push eax
push ebx
call fcn.00411190
test eax, eax
je 0x420d87
xor esi, esi
push 0x4f4318
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x34], 0x10
mov dword [ebp - 0x30], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0x473bd8
push esi
push str.FileIndex
push 0x46ff68
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov cl, byte [0x473aa0]
mov esi, eax
inc esi
mov byte [ebp - 0x54b0], cl
mov ecx, 0x400
xor eax, eax
lea edi, [ebp - 0x54af]
push esi
lea edx, [ebp - 0x54b0]
push 0x46e150
rep stosd dword es:[edi], eax
push edx
call fcn.0043afc4
add esp, 0xc
lea eax, [ebp - 0x54b0]
push 0x473bd8
push eax
push str.FileIndex
push 0x46ff68
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x4f4318
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [0x51a848]
test eax, eax
je 0x41fe7f
push 0x473ce0
lea ecx, [ebp - 0x4a0]
push str._smms
push ecx
call fcn.0043afc4
add esp, 0xc
xor edi, edi
lea edx, [ebp - 0x4a0]
push edi
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push esi
push 0x473ce0
lea eax, [ebp - 0x4a0]
push str._smmsmms__d.wmv
push eax
call fcn.0043afc4
lea ecx, [ebp - 0x4a0]
push 0x46e194
push ecx
call fcn.0043bceb
add esp, 0x18
mov dword [ebp - 0x30], eax
jmp 0x41fe81
xor edi, edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x68], 1
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x2c], edi
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
mov eax, dword [0x51a850]
cmp dword [eax + edx*4 + 0x18], 2
jne 0x42047b
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x198], ecx
cmp eax, ecx
jae 0x41fec9
cmp dword [ebp + eax*4 - 0x194], ebx
je 0x41fec7
inc eax
jmp 0x41feb7
cmp eax, ecx
jne 0x41fee4
cmp ecx, 0x40
jae 0x41fee4
mov dword [ebp + eax*4 - 0x194], ebx
mov ecx, dword [ebp - 0x198]
inc ecx
mov dword [ebp - 0x198], ecx
mov esi, dword [ebp + 0xc]
xor eax, eax
cmp eax, ecx
jae 0x41fefb
cmp dword [ebp + eax*4 - 0x194], esi
je 0x41fef9
inc eax
jmp 0x41fee9
cmp eax, ecx
jne 0x41ff16
cmp ecx, 0x40
jae 0x41ff16
mov dword [ebp + eax*4 - 0x194], esi
mov eax, dword [ebp - 0x198]
inc eax
mov dword [ebp - 0x198], eax
lea ecx, [ebp - 0x68]
lea edx, [ebp - 0x198]
push ecx
push 0
push 0
push edx
push 0xffffffffffffffff
call dword [sym.imp.WS2_32.dll_select]
lea eax, [ebp - 0x198]
push eax
push esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4206b2
mov edi, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
push 8
lea edx, [ebp - 0x14a4]
push ecx
push edx
push esi
mov ecx, edi
mov dword [ebp - 0x14], 0x10
call fcn.004112c0
test eax, eax
je 0x420d87
mov eax, dword [ebp - 0x149c]
push 8
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0x1494]
push eax
push ecx
push esi
mov ecx, edi
call fcn.004112c0
test eax, eax
je 0x420d87
lea edx, [ebp - 0x1468]
lea eax, [ebp - 0x398]
push edx
push 0x470c98
push eax
call fcn.0043afc4
push 2
lea ecx, [ebp - 0x398]
push 0x470c48
push ecx
call fcn.00445b80
add esp, 0x18
test eax, eax
jne 0x42067e
mov dl, byte [0x473aa0]
mov ecx, 0xff
lea edi, [ebp - 0x1ca3]
mov byte [ebp - 0x1ca4], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x18a3]
mov byte [ebp - 0x18a4], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea edi, [ebp - 0x396]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x1ca4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x46efb0
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x1ca4]
push ecx
call fcn.0043ad80
add esp, 8
test eax, eax
jne 0x420052
lea edx, [ebp - 0x74]
push 0x467aa8
push edx
mov dword [ebp - 0x74], 0xffffffff
call fcn.0043c293
mov byte [eax], 0
lea edi, [eax + 1]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp - 0x18a4]
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x46efb0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x18a4]
push ecx
call fcn.0043ad80
add esp, 8
test eax, eax
jne 0x4200a8
lea edx, [ebp - 0x70]
push 0x467aa8
push edx
mov dword [ebp - 0x70], 0xffffffff
call fcn.0043c293
mov byte [eax], 0
inc eax
push eax
call fcn.0043bd89
lea eax, [ebp - 0x18a4]
push 0x470c44
push eax
call fcn.0043fa60
add esp, 0xc
test eax, eax
jne 0x420291
push eax
push 2
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
push 0
mov dword [ebp - 0x20], esi
mov word [ebp - 0x44], 2
call dword [sym.imp.WS2_32.dll_htons]
lea ecx, [ebp - 0x44]
push 0x10
push ecx
push esi
mov word [ebp - 0x42], ax
mov dword [ebp - 0x40], 0
call dword [sym.imp.WS2_32.dll_bind]
mov edi, dword [sym.imp.WS2_32.dll_getsockname]
lea edx, [ebp - 0x34]
lea eax, [ebp - 0x44]
push edx
push eax
push esi
call edi
mov ecx, dword [ebp - 0x42]
push ecx
call dword [sym.imp.WS2_32.dll_ntohs]
mov si, ax
lea edx, [ebp - 0x34]
lea eax, [ebp - 0x44]
push edx
push eax
push ebx
and esi, 0xffff
call edi
mov edi, dword [ebp - 0x40]
lea ecx, [ebp - 0x1ca4]
push ecx
call dword [sym.imp.WS2_32.dll_inet_addr]
lea edx, [ebp - 0x18a4]
push esi
push edx
push edi
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea eax, [ebp - 0x398]
push str._s_s_d
push eax
call fcn.0043afc4
push 0xc
call fcn.00451344
mov esi, eax
add esp, 0x18
mov dword [ebp - 0x24], esi
test esi, esi
mov byte [ebp - 4], 1
je 0x4201b3
lea ecx, [ebp - 0x398]
mov dword [esi + 4], 0
push ecx
mov dword [esi + 8], 1
call fcn.00446f9c
test eax, eax
mov dword [esi], eax
jne 0x4201af
lea edx, [ebp - 0x398]
test edx, edx
je 0x4201af
push 0x8007000e
call fcn.00446f50
mov ebx, esi
jmp 0x4201b5
xor ebx, ebx
test ebx, ebx
mov byte [ebp - 4], 0
mov dword [ebp - 0x24], ebx
jne 0x4201ca
push 0x8007000e
call fcn.00446f50
test ebx, ebx
mov byte [ebp - 4], 2
je 0x4201fb
mov eax, dword [ebx]
test eax, eax
je 0x4201fb
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
push eax
mov eax, dword [ebx]
push eax
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
mov esi, eax
test esi, esi
jne 0x4201fd
push 0x8007000e
call fcn.00446f50
jmp 0x4201fd
xor esi, esi
lea edi, [ebp - 0x398]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [ebp - 0x1468]
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x1c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x10]
and ecx, 3
add eax, 0x10
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x14a4]
push eax
push ecx
mov ecx, dword [ebp - 0x18]
push edx
call fcn.00411190
test eax, eax
jne 0x420256
lea eax, [ebp - 0x50]
push 0x467aa8
push eax
mov dword [ebp - 0x50], 0xffffffff
call fcn.0043c293
test ebx, ebx
mov byte [ebp - 4], 0
je 0x42047b
lea ecx, [ebx + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x42047b
mov eax, dword [ebx]
test eax, eax
je 0x420281
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebx + 4]
test eax, eax
je 0x420472
jmp 0x420469
lea edx, [ebp - 0x18a4]
push 0x470c34
push edx
call fcn.0043fa60
add esp, 8
test eax, eax
jne 0x42067e
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x420505
push 0
push 2
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
push 0
mov dword [ebp - 0x20], esi
mov word [ebp - 0x44], 2
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x42], ax
lea eax, [ebp - 0x44]
push 0x10
push eax
push esi
mov dword [ebp - 0x40], 0
call dword [sym.imp.WS2_32.dll_bind]
mov edi, dword [sym.imp.WS2_32.dll_getsockname]
lea ecx, [ebp - 0x34]
lea edx, [ebp - 0x44]
push ecx
push edx
push esi
call edi
mov eax, dword [ebp - 0x42]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
lea ecx, [ebp - 0x34]
lea edx, [ebp - 0x44]
push ecx
mov si, ax
push edx
push ebx
and esi, 0xffff
call edi
mov edi, dword [ebp - 0x40]
lea eax, [ebp - 0x1ca4]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
push esi
push 0x470c44
push edi
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea ecx, [ebp - 0x398]
push str._s_s_d
push ecx
call fcn.0043afc4
push 0xc
call fcn.00451344
mov esi, eax
add esp, 0x18
mov dword [ebp - 0x24], esi
test esi, esi
mov byte [ebp - 4], 3
je 0x42039c
lea edx, [ebp - 0x398]
mov dword [esi + 4], 0
push edx
mov dword [esi + 8], 1
call fcn.00446f9c
test eax, eax
mov dword [esi], eax
jne 0x420398
lea eax, [ebp - 0x398]
test eax, eax
je 0x420398
push 0x8007000e
call fcn.00446f50
mov ebx, esi
jmp 0x42039e
xor ebx, ebx
test ebx, ebx
mov byte [ebp - 4], 0
mov dword [ebp - 0x24], ebx
jne 0x4203b3
push 0x8007000e
call fcn.00446f50
test ebx, ebx
mov byte [ebp - 4], 4
je 0x4203e4
mov eax, dword [ebx]
test eax, eax
je 0x4203e4
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov ecx, dword [ebx]
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
mov esi, eax
test esi, esi
jne 0x4203e6
push 0x8007000e
call fcn.00446f50
jmp 0x4203e6
xor esi, esi
lea edi, [ebp - 0x398]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [ebp - 0x1468]
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x1c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x10]
and ecx, 3
add eax, 0x10
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x14a4]
push eax
push ecx
mov ecx, dword [ebp - 0x18]
push edx
call fcn.00411190
test eax, eax
jne 0x42043f
lea eax, [ebp - 0x78]
push 0x467aa8
push eax
mov dword [ebp - 0x78], 0xffffffff
call fcn.0043c293
test ebx, ebx
mov byte [ebp - 4], 0
je 0x42047b
lea ecx, [ebx + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x42047b
mov eax, dword [ebx]
test eax, eax
je 0x420462
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebx + 4]
test eax, eax
je 0x420472
push eax
call fcn.0045136d
add esp, 4
push ebx
call fcn.0045136d
add esp, 4
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
mov eax, dword [0x51a850]
mov eax, dword [eax + edx*4 + 0x20]
cmp eax, 0xffffffff
je 0x4204c0
mov edx, dword [0x4f4398]
mov ecx, eax
shl ecx, 5
add ecx, eax
mov ebx, dword [edx + ecx*4 + 0x80]
lea eax, [edx + ecx*4]
mov ecx, dword [edx + ecx*4 + 0x7c]
add ebx, ecx
or edi, 0xffffffff
mov eax, dword [ebp + 8]
mov ecx, dword [0x51a850]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
cmp dword [ecx + eax*4 + 0x18], 2
jne 0x420bf0
mov edx, dword [ebp + 0x10]
xor eax, eax
mov dword [ebp - 0x198], eax
xor ecx, ecx
cmp ecx, eax
jae 0x420772
cmp dword [ebp + ecx*4 - 0x194], edx
je 0x420770
inc ecx
jmp 0x4204ed
lea edx, [ebp - 0x34]
lea eax, [ebp - 0x44]
push edx
push eax
push ebx
mov dword [ebp - 0x20], 0
call dword [sym.imp.WS2_32.dll_getsockname]
mov ecx, dword [ebp - 0x42]
push ecx
call dword [sym.imp.WS2_32.dll_ntohs]
mov edi, dword [ebp - 0x40]
lea edx, [ebp - 0x1ca4]
mov si, ax
push edx
and esi, 0xffff
call dword [sym.imp.WS2_32.dll_inet_addr]
lea eax, [ebp - 0x18a4]
push esi
push eax
push edi
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea ecx, [ebp - 0x398]
push str._s_s_d
push ecx
call fcn.0043afc4
push 0xc
call fcn.00451344
mov esi, eax
add esp, 0x18
mov dword [ebp - 0x24], esi
test esi, esi
mov byte [ebp - 4], 5
je 0x4205ae
lea edx, [ebp - 0x398]
mov dword [esi + 4], 0
push edx
mov dword [esi + 8], 1
call fcn.00446f9c
test eax, eax
mov dword [esi], eax
jne 0x4205aa
lea eax, [ebp - 0x398]
test eax, eax
je 0x4205aa
push 0x8007000e
call fcn.00446f50
mov ebx, esi
jmp 0x4205b0
xor ebx, ebx
test ebx, ebx
mov byte [ebp - 4], 0
mov dword [ebp - 0x24], ebx
jne 0x4205c5
push 0x8007000e
call fcn.00446f50
test ebx, ebx
mov byte [ebp - 4], 6
je 0x4205f6
mov eax, dword [ebx]
test eax, eax
je 0x4205f6
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov ecx, dword [ebx]
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
mov esi, eax
test esi, esi
jne 0x4205f8
push 0x8007000e
call fcn.00446f50
jmp 0x4205f8
xor esi, esi
lea edi, [ebp - 0x398]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [ebp - 0x1468]
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x1c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x10]
and ecx, 3
add eax, 0x10
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x14a4]
push eax
push ecx
mov ecx, dword [ebp - 0x18]
push edx
call fcn.00411190
test eax, eax
jne 0x420651
lea eax, [ebp - 0x58]
push 0x467aa8
push eax
mov dword [ebp - 0x58], 0xffffffff
call fcn.0043c293
test ebx, ebx
mov byte [ebp - 4], 0
je 0x42047b
lea ecx, [ebx + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x42047b
mov eax, dword [ebx]
test eax, eax
je 0x420281
jmp 0x42027a
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
add edx, 0x10
lea eax, [ebp - 0x14a4]
push edx
push eax
push ebx
call fcn.00411190
test eax, eax
jne 0x41fe91
lea ecx, [ebp - 0x7c]
push 0x467aa8
push ecx
mov dword [ebp - 0x7c], 0xffffffff
call fcn.0043c293
lea edx, [ebp - 0x198]
push edx
push ebx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x41fe91
mov edi, dword [ebp - 0x18]
lea eax, [ebp - 0x14]
push 8
lea ecx, [ebp - 0x14a4]
push eax
push ecx
push ebx
mov ecx, edi
mov dword [ebp - 0x14], 0x10
call fcn.004112c0
test eax, eax
je 0x420d87
mov eax, dword [ebp - 0x149c]
lea edx, [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], eax
push 8
lea eax, [ebp - 0x1494]
push edx
push eax
push ebx
mov ecx, edi
call fcn.004112c0
test eax, eax
je 0x420d87
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x14a4]
add ecx, 0x10
push ecx
push edx
push esi
mov ecx, edi
call fcn.00411190
test eax, eax
jne 0x420746
lea eax, [ebp - 0x60]
push 0x467aa8
push eax
mov dword [ebp - 0x60], 0xffffffff
call fcn.0043c293
push 2
lea ecx, [ebp - 0x148c]
push 0x470c30
push ecx
call fcn.0043c110
add esp, 0xc
test eax, eax
jne 0x41fe91
mov dword [ebp - 0x2c], 1
jmp 0x41fe91
cmp ecx, eax
jne 0x42078d
cmp eax, 0x40
jae 0x42078d
mov dword [ebp + ecx*4 - 0x194], edx
mov eax, dword [ebp - 0x198]
inc eax
mov dword [ebp - 0x198], eax
mov edx, dword [ebp + 0xc]
xor ecx, ecx
cmp ecx, eax
jae 0x4207a4
cmp dword [ebp + ecx*4 - 0x194], edx
je 0x4207a2
inc ecx
jmp 0x420792
cmp ecx, eax
jne 0x4207bf
cmp eax, 0x40
jae 0x4207bf
mov dword [ebp + ecx*4 - 0x194], edx
mov eax, dword [ebp - 0x198]
inc eax
mov dword [ebp - 0x198], eax
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x4207f5
xor ecx, ecx
cmp ecx, eax
jae 0x4207da
cmp dword [ebp + ecx*4 - 0x194], edx
je 0x4207d8
inc ecx
jmp 0x4207c8
cmp ecx, eax
jne 0x4207f5
cmp eax, 0x40
jae 0x4207f5
mov dword [ebp + ecx*4 - 0x194], edx
mov eax, dword [ebp - 0x198]
inc eax
mov dword [ebp - 0x198], eax
lea edx, [ebp - 0x68]
lea eax, [ebp - 0x198]
push edx
push 0
push 0
push eax
push edi
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jne 0x42084b
mov eax, dword [0x502140]
cmp eax, edi
je 0x4204c3
mov ecx, dword [ebp - 0x1c]
lea eax, [eax + eax*2]
inc ecx
lea edx, [eax + eax*4]
mov dword [ebp - 0x1c], ecx
shl edx, 2
cmp ecx, edx
jle 0x4204c3
lea eax, [ebp - 0x84]
push 0x467aa8
push eax
mov dword [ebp - 0x84], edi
call fcn.0043c293
test eax, eax
mov dword [ebp - 0x1c], 0
jge 0x420867
lea ecx, [ebp - 0x6c]
push 0x467aa8
push ecx
mov dword [ebp - 0x6c], edi
call fcn.0043c293
mov eax, dword [ebp + 8]
mov edx, dword [0x51a850]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea esi, [eax + eax*4]
mov dword [ebp - 0x24], esi
mov eax, dword [edx + esi*4 + 0x20]
cmp eax, edi
je 0x420938
mov edx, dword [0x4f4398]
mov ecx, eax
shl ecx, 5
add ecx, eax
mov eax, dword [edx + ecx*4 + 0x70]
cmp eax, edi
jle 0x420938
test eax, eax
jne 0x4208bc
lea eax, [ebp - 0x8c]
push 0x467aa8
push eax
mov dword [ebp - 0x8c], edi
call fcn.0043c293
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x51a850]
mov edi, eax
mov eax, dword [ecx + esi*4 + 0x20]
mov edx, eax
shl edx, 5
add edx, eax
mov eax, dword [0x4f4398]
mov esi, dword [eax + edx*4 + 0x80]
lea ecx, [eax + edx*4]
mov edx, dword [eax + edx*4 + 0x7c]
add esi, edx
cmp esi, ebx
jae 0x4208f0
xor ebx, ebx
mov edx, esi
shl edx, 5
sub edx, esi
lea eax, [esi + edx*4]
mov edx, ebx
shl edx, 5
sub edx, ebx
shl eax, 3
lea edx, [ebx + edx*4]
shl edx, 3
sub eax, edx
xor edx, edx
div dword [ecx + 0x70]
mov ecx, dword [ebp - 0x2c]
mov edx, edi
sub edx, ecx
cmp edx, eax
jae 0x420932
sub eax, edi
add eax, ecx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x2c], eax
mov ebx, esi
mov esi, dword [ebp - 0x24]
or edi, 0xffffffff
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x198]
push eax
push ecx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x420a08
mov ecx, dword [ebp + 0x10]
lea edx, [ebp - 0x14]
push 0
lea eax, [ebp - 0x14a4]
push edx
push eax
push ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], 0x1000
mov byte [ebp - 0x14a4], 0
call fcn.004112c0
test eax, eax
jne 0x4209aa
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x420993
lea edx, [ebp - 0x48]
push 0x467aa8
push edx
mov dword [ebp - 0x48], edi
call fcn.0043c293
lea eax, [ebp - 0x94]
push 0x467aa8
push eax
mov dword [ebp - 0x94], edi
call fcn.0043c293
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jle 0x4209e3
mov edx, dword [ebp + 0xc]
push ecx
lea ecx, [ebp - 0x14a4]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
call fcn.00411190
test eax, eax
jne 0x4209e0
lea eax, [ebp - 0x88]
push 0x467aa8
push eax
mov dword [ebp - 0x88], edi
call fcn.0043c293
mov ecx, dword [ebp - 0x14]
mov edx, dword [0x51a850]
mov eax, dword [edx + esi*4 + 0x20]
cmp eax, edi
je 0x4204c3
push 0
push ecx
push eax
mov ecx, 0x4f4398
call fcn.00423400
jmp 0x4204c0
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x198]
push eax
push ecx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x420ad2
mov ecx, dword [ebp + 0xc]
lea edx, [ebp - 0x14]
push 0
lea eax, [ebp - 0x14a4]
push edx
push eax
push ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], 0x1000
mov byte [ebp - 0x14a4], 0
call fcn.004112c0
test eax, eax
jne 0x420a7a
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x420a63
lea edx, [ebp - 0x80]
push 0x467aa8
push edx
mov dword [ebp - 0x80], edi
call fcn.0043c293
lea eax, [ebp - 0x90]
push 0x467aa8
push eax
mov dword [ebp - 0x90], edi
call fcn.0043c293
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jle 0x420aad
mov edx, dword [ebp + 0x10]
push ecx
lea ecx, [ebp - 0x14a4]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
call fcn.00411190
test eax, eax
jne 0x420aaa
lea eax, [ebp - 0x4c]
push 0x467aa8
push eax
mov dword [ebp - 0x4c], edi
call fcn.0043c293
mov ecx, dword [ebp - 0x14]
mov edx, dword [0x51a850]
mov eax, dword [edx + esi*4 + 0x20]
cmp eax, edi
je 0x4204c3
push 1
push ecx
push eax
mov ecx, 0x4f4398
call fcn.00423400
jmp 0x4204c0
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4204c3
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x198]
push eax
push ecx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4204c3
lea edx, [ebp - 0x24]
lea eax, [ebp - 0x44]
push edx
mov edx, dword [ebp - 0x20]
push eax
push 0
lea ecx, [ebp - 0x14a4]
push 0x1000
push ecx
push edx
mov dword [ebp - 0x14], 0x1000
mov byte [ebp - 0x14a4], 0
mov dword [ebp - 0x24], 0x10
call dword [sym.imp.WS2_32.dll_recvfrom]
test eax, eax
mov dword [ebp - 0x14], eax
jle 0x4204c3
mov ecx, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x14a4]
push eax
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.00411190
test eax, eax
jne 0x420b5e
lea edx, [ebp - 0x54]
push 0x467aa8
push edx
mov dword [ebp - 0x54], edi
call fcn.0043c293
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x14a4]
push eax
push ecx
call fcn.0040eee0
mov edx, dword [0x51a850]
add esp, 8
mov esi, dword [edx + esi*4 + 0x20]
cmp esi, edi
je 0x420b93
mov eax, dword [ebp - 0x14]
push 0
push eax
push esi
mov ecx, 0x4f4398
call fcn.00423400
or edi, 0xffffffff
mov eax, dword [0x51a848]
test eax, eax
je 0x4204c3
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4204c3
mov esi, eax
push esi
call fcn.0043c49d
add esp, 4
test eax, eax
push esi
push 1
jne 0x420bd8
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x149c]
add ecx, 0xfffffff8
push ecx
push edx
call fcn.0043bb81
add esp, 0x10
jmp 0x4204c3
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x14a4]
push eax
push ecx
call fcn.0043bb81
add esp, 0x10
jmp 0x4204c3
lea edx, [ebp - 0x5c]
push 0x467aa8
push edx
mov dword [ebp - 0x5c], edi
call fcn.0043c293
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x420c0f
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x420d81
push eax
call fcn.0043bb04
lea eax, [ebp - 0x4a0]
push 0x46e3a8
push eax
call fcn.0043bceb
mov esi, eax
push 2
push 0
push esi
call fcn.0043c3e4
push esi
call fcn.0043c49d
mov edi, eax
push edi
mov dword [ebp + 0x10], edi
call fcn.00451344
push 0
push 0
push esi
mov ebx, eax
call fcn.0043c3e4
push esi
push 1
push edi
push ebx
call fcn.0043c2cd
push esi
call fcn.0043bb04
add esp, 0x40
lea ecx, [ebp - 0x4a0]
push 0x46e194
push ecx
call fcn.0043bceb
add esp, 8
mov dword [ebp - 0x30], eax
mov esi, ebx
mov byte [ebp - 0x2c], 0x82
mov byte [ebp - 0x2b], 0
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x29], 0x11
mov byte [ebp - 0x28], 0x5d
jmp 0x420c9f
mov edi, dword [ebp + 0x10]
mov edx, esi
sub edx, ebx
cmp edx, edi
jge 0x420d6f
mov ecx, ebx
lea eax, [ebp - 0x2c]
sub ecx, esi
push 5
add ecx, edi
push eax
push ecx
push esi
call fcn.0041fae0
add esp, 0x10
cmp eax, 0xffffffff
je 0x420d59
lea edx, [eax + esi - 7]
mov ecx, 0x5e7
xor eax, eax
lea edi, [ebp - 0x44ac]
rep stosd dword es:[edi], eax
mov dword [ebp + 0xc], edx
stosw word es:[edi], ax
mov ecx, dword [ebp + 0x10]
mov eax, esi
sub eax, ebx
cmp eax, ecx
jge 0x420c9c
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, ebx
push 4
sub edx, esi
push ecx
add edx, eax
push edx
push esi
call fcn.0041fae0
mov edi, eax
add esp, 0x10
test edi, edi
jle 0x420d50
mov eax, dword [ebp - 0x30]
lea ecx, [edi - 1]
push eax
push 1
push ecx
push esi
call fcn.0043bb81
mov al, byte [edi + esi - 1]
add esp, 0x10
test al, al
jne 0x420d2d
lea esi, [edi + esi + 7]
jmp 0x420ce2
mov edx, dword [ebp - 0x30]
mov eax, 0x1e07
push edx
sub eax, edi
push 1
lea ecx, [ebp - 0x44ac]
push eax
push ecx
call fcn.0043bb81
add esp, 0x10
lea esi, [edi + esi + 7]
jmp 0x420ce2
mov byte [ebp - 0x29], 9
jmp 0x420c9c
mov edx, dword [ebp - 0x30]
mov eax, ebx
sub eax, esi
push edx
add eax, edi
push 1
push eax
push esi
call fcn.0043bb81
add esp, 0x10
push ebx
call fcn.0045136d
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.0043bb04
add esp, 8
mov eax, 0x420d87
ret
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x10