Function at 0x41ec00
Capabilities:
Check for time delay via gettickcount
Create tcp socket
Create udp socket
Get local ipv4 addresses
Get socket information
Get socket status
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45c0b0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0xb1c0
call fcn.0043ae00
mov eax, dword [ebp + 0x14]
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, ecx
push eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 0
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
je 0x41ef9c
mov ecx, dword [eax + 0xc]
mov ebx, dword [ebp + 0x10]
lea edi, [ebp - 0x119b]
mov edx, dword [ecx]
mov cl, byte [0x473aa0]
mov eax, dword [edx]
mov byte [ebp - 0x119c], cl
mov dword [ebp - 0x5c], eax
mov ecx, 0x400
xor eax, eax
lea edx, [ebp + 0x14]
rep stosd dword es:[edi], eax
push eax
lea eax, [ebp - 0x119c]
push edx
push eax
push ebx
mov ecx, esi
mov dword [ebp + 0x14], 0x1000
call fcn.004112c0
test eax, eax
je 0x41ef9c
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
lea edx, [ebp - 0x119c]
push ecx
push edx
push edi
mov ecx, esi
call fcn.00411190
test eax, eax
je 0x41ef9c
lea eax, [ebp + 0x14]
push 0
lea ecx, [ebp - 0x119c]
push eax
push ecx
push edi
mov ecx, esi
mov dword [ebp + 0x14], 0x1000
call fcn.004112c0
test eax, eax
je 0x41ef9c
mov edx, dword [ebp + 0x14]
lea eax, [ebp - 0x119c]
push edx
push eax
push ebx
mov ecx, esi
call fcn.00411190
test eax, eax
je 0x41ef9c
mov cl, byte [0x473aa0]
xor eax, eax
mov byte [ebp - 0x41a8], cl
mov ecx, 0x400
lea edi, [ebp - 0x41a7]
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 8]
lea eax, [edi + edi*2]
lea eax, [eax + eax*4]
lea ebx, [eax + eax*4]
mov eax, dword [0x51a850]
shl ebx, 2
mov ecx, dword [ebx + eax + 0xc]
mov eax, dword [ebx + eax + 0x20]
cmp eax, 0xffffffff
je 0x41ed59
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 - 0x41a8]
push str._s__s_REAL
push eax
call fcn.0043afc4
add esp, 0x10
jmp 0x41ed75
push ecx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea ecx, [ebp - 0x41a8]
push str._s_unknown_REAL
push ecx
call fcn.0043afc4
add esp, 0xc
mov eax, dword [0x501cf0]
test eax, eax
je 0x41ee0b
mov dl, byte [0x473aa0]
mov ecx, 0x400
xor eax, eax
lea edi, [ebp - 0x31a3]
mov byte [ebp - 0x31a4], dl
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x119c]
lea ecx, [ebp - 0x31a4]
push eax
push 0x46f188
push ecx
call fcn.0043afc4
lea edx, [ebp - 0x31a4]
push 0x46e38c
push edx
call fcn.0043ad80
add esp, 0x14
test eax, eax
je 0x41ef9c
mov byte [eax], 0
lea edi, [ebp - 0x31a4]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp - 0x41a8]
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 edi, dword [ebp + 8]
mov esi, dword [ebp - 0x1c]
lea eax, [ebp - 0x41a8]
push eax
call fcn.0040a330
mov eax, dword [ebp + 0x10]
add esp, 4
lea ecx, [ebp + 0x14]
lea edx, [ebp - 0x119c]
push 0
push ecx
push edx
push eax
mov ecx, esi
mov dword [ebp + 0x14], 0x1000
call fcn.004112c0
test eax, eax
je 0x41ef9c
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x119c]
push ecx
push edx
push eax
mov ecx, esi
call fcn.00411190
test eax, eax
je 0x41ef9c
lea ecx, [ebp - 0x119c]
push str.Content_length:
push ecx
call fcn.0043ad80
add esp, 8
test eax, eax
jne 0x41ee9b
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 0x10]
push edx
push eax
push edi
mov ecx, esi
call fcn.00417ca0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push ecx
push str.Content_length:__d
push eax
call fcn.0043c620
lea edx, [ebp - 0x119c]
push str._r_n_r_n
push edx
call fcn.0043ad80
add esp, 0x14
test eax, eax
je 0x41ef9c
mov edx, dword [ebp - 0x14]
lea ecx, [ebp - 0x119c]
sub eax, ecx
mov ecx, dword [ebp + 0x14]
lea eax, [eax + edx + 4]
sub eax, ecx
mov edi, eax
mov eax, dword [0x51a850]
cmp dword [ebx + eax + 0x18], 2
jne 0x41ef35
test edi, edi
je 0x41ef35
mov eax, dword [ebp + 0x10]
lea ecx, [ebp + 0x14]
push 0
lea edx, [ebp - 0x119c]
push ecx
push edx
push eax
mov ecx, esi
mov dword [ebp + 0x14], edi
call fcn.004112c0
test eax, eax
je 0x41ef9c
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x119c]
push ecx
push edx
push eax
mov ecx, esi
call fcn.00411190
test eax, eax
je 0x41ef9c
sub edi, dword [ebp + 0x14]
jmp 0x41eee3
mov cl, byte [0x473aa0]
xor eax, eax
mov byte [ebp - 0x21a0], cl
mov ecx, 0x400
lea edi, [ebp - 0x219f]
push eax
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0xc]
lea edx, [ebp + 0x14]
lea eax, [ebp - 0x21a0]
push edx
push eax
push edi
mov ecx, esi
mov dword [ebp + 0x14], 0x1000
call fcn.004112c0
test eax, eax
je 0x41ef9c
lea ecx, [ebp - 0x21a0]
push str.Transport:
push ecx
call fcn.0043ad80
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [ebp - 0x20], ebx
jne 0x41efb1
push str.RTSP_1.0_200_OK_r_nCSeq:_5_r_n_r_n
push edi
mov ecx, esi
call fcn.00411160
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0x46e38c
push ebx
call fcn.0043ad80
add esp, 8
test eax, eax
je 0x41ef9c
push 0x46e38c
push ebx
call fcn.0043ad80
add eax, 2
mov edi, str.Transport:
mov dword [ebp - 0x14], eax
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x46e38c
add ecx, ebx
push ecx
lea ecx, [ebp - 0xb1d0]
call fcn.0042c2f0
lea ecx, [ebp - 0xb1d0]
call fcn.0042c350
push 0x470bb8
push eax
lea ecx, [ebp - 0x61b4]
mov dword [ebp - 0x2c], eax
call fcn.0042c2f0
xor ebx, ebx
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x61b4]
call fcn.0042c3b0
test eax, eax
je 0x41f08c
lea ecx, [ebp - 0x61b4]
call fcn.0042c350
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x119c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.x_real_rdt_udp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [ebp - 0x119c]
push str.x_real_rdt_udp
push ecx
call fcn.00445b80
add esp, 0xc
test eax, eax
jne 0x41f01d
mov ebx, 1
mov dword [ebp - 0x18], ebx
test ebx, ebx
mov dword [ebp - 0x30], 0
je 0x41f1ef
lea edx, [ebp - 0x119c]
push 0x46fe28
push edx
lea ecx, [ebp - 0x81c0]
call fcn.0042c2f0
lea ecx, [ebp - 0x81c0]
call fcn.0042c350
lea ecx, [ebp - 0x81c0]
call fcn.0042c350
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x119c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [ebp - 0x119c]
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 - 0x30]
push ecx
push str.client_port_d
push edx
call fcn.0043c620
add esp, 0xc
test ebx, ebx
je 0x41ef9c
push 0
push 2
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
push 0
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0x10
mov word [ebp - 0x40], 2
call dword [sym.imp.WS2_32.dll_htons]
lea edx, [ebp - 0x40]
push 0x10
push edx
push esi
mov word [ebp - 0x3e], ax
mov dword [ebp - 0x3c], 0
call dword [sym.imp.WS2_32.dll_bind]
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x40]
push eax
push ecx
push esi
mov esi, dword [sym.imp.WS2_32.dll_getsockname]
call esi
mov edx, dword [ebp - 0x3e]
push edx
call dword [sym.imp.WS2_32.dll_ntohs]
mov edx, dword [ebp + 0xc]
mov di, ax
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x40]
push eax
and edi, 0xffff
push ecx
push edx
mov dword [ebp - 0x84], edi
call esi
mov eax, dword [ebp + 8]
mov ecx, dword [0x51a850]
mov esi, dword [ebp - 0x20]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
mov dword [ebp - 0x44], eax
mov edx, dword [eax + ecx + 0xc]
lea eax, [ebp - 0x21a0]
sub esi, eax
mov dword [ebp - 0x2c], edx
lea ecx, [ebp - 0x21a0]
push esi
lea edx, [ebp - 0x119c]
push ecx
push edx
call fcn.0043c150
lea esi, [ebp + esi - 0x119c]
add esp, 0xc
cmp ebx, 1
mov byte [esi], 0
jne 0x41f280
mov eax, dword [ebp - 0x14]
push eax
push edi
push str.Transport:_x_real_rdt_udp_client_port_d_modeplay_r_n_s
push esi
call fcn.0043afc4
add esp, 0x10
jmp 0x41f292
mov eax, dword [ebp - 0x2c]
push 0x470bb8
push eax
lea ecx, [ebp - 0x81c0]
call fcn.0042c2f0
xor ebx, ebx
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x81c0]
call fcn.0042c3b0
test eax, eax
je 0x41f105
lea ecx, [ebp - 0x81c0]
call fcn.0042c350
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x119c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.x_real_rdt_udp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [ebp - 0x119c]
push str.x_real_rdt_tcp
push ecx
call fcn.00445b80
add esp, 0xc
test eax, eax
jne 0x41f208
mov ebx, 2
mov dword [ebp - 0x18], ebx
jmp 0x41f10d
mov ecx, dword [ebp - 0x14]
push ecx
push str.Transport:_x_real_rdt_tcp_modeplay_r_n_s
push esi
call fcn.0043afc4
add esp, 0xc
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x1c]
lea edx, [ebp - 0x119c]
mov ecx, ebx
push edx
push esi
call fcn.00411160
test eax, eax
jne 0x41f2c0
lea eax, [ebp - 0x68]
push 0x467aa8
push eax
mov dword [ebp - 0x68], 0xffffffff
call fcn.0043c293
lea ecx, [ebp + 0x14]
push 0
lea edx, [ebp - 0x21a0]
push ecx
push edx
push esi
mov ecx, ebx
mov dword [ebp + 0x14], 0x1000
call fcn.004112c0
test eax, eax
jne 0x41f2f5
lea eax, [ebp - 0x6c]
push 0x467aa8
push eax
mov dword [ebp - 0x6c], 0xffffffff
call fcn.0043c293
mov cl, byte [0x473aa0]
xor eax, eax
mov byte [ebp - 0x91c4], cl
mov ecx, 0x400
lea edi, [ebp - 0x91c3]
lea edx, [ebp - 0x21a0]
rep stosd dword es:[edi], eax
push 0x46e38c
push edx
lea ecx, [ebp - 0x81c0]
mov dword [ebp - 0x48], eax
call fcn.0042c2f0
lea ecx, [ebp - 0x81c0]
call fcn.0042c350
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x119c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push str.RTSP_1.0_200_OK
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 - 0x119c]
push ecx
call fcn.0043fa60
add esp, 8
test eax, eax
je 0x41f39f
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x119c]
push edx
push eax
mov ecx, ebx
call fcn.00411160
lea ecx, [ebp - 0x88]
push 0x467aa8
push ecx
mov dword [ebp - 0x88], 0xffffffff
call fcn.0043c293
lea edx, [ebp - 0x21a0]
push str.Session:
push edx
call fcn.0043ad80
mov esi, eax
add esp, 8
test esi, esi
jne 0x41f3ce
lea eax, [ebp - 0x74]
push 0x467aa8
push eax
mov dword [ebp - 0x74], 0xffffffff
call fcn.0043c293
push 0x46e38c
push esi
call fcn.0043ad80
lea ecx, [ebp - 0x91c4]
mov ebx, eax
push ecx
push str.Session:__s
push esi
add ebx, 2
call fcn.0043c620
push str.Transport:
push ebx
call fcn.0043ad80
mov edi, eax
add esp, 0x1c
test edi, edi
mov dword [ebp - 0x20], edi
jne 0x41f41c
lea edx, [ebp - 0x58]
push 0x467aa8
push edx
mov dword [ebp - 0x58], 0xffffffff
call fcn.0043c293
push 0x46e38c
push edi
call fcn.0043ad80
add esp, 8
add eax, 2
mov dword [ebp - 0x14], eax
jne 0x41f447
lea eax, [ebp - 0x7c]
push 0x467aa8
push eax
mov dword [ebp - 0x7c], 0xffffffff
call fcn.0043c293
cmp dword [ebp - 0x18], 1
jne 0x41f494
push str.server_port
push edi
call fcn.0043ad80
add esp, 8
test eax, eax
jne 0x41f474
lea ecx, [ebp - 0x60]
push 0x467aa8
push ecx
mov dword [ebp - 0x60], 0xffffffff
call fcn.0043c293
lea edx, [ebp - 0x48]
push edx
push str.server_port_d
push str.server_port
push edi
call fcn.0043ad80
add esp, 8
push eax
call fcn.0043c620
add esp, 0xc
lea eax, [ebp - 0x21a0]
lea ecx, [ebp - 0x21a0]
sub esi, eax
lea edx, [ebp - 0x119c]
push esi
push ecx
push edx
call fcn.0043c150
lea ecx, [ebp - 0x91c4]
lea eax, [ebp + esi - 0x119c]
push ecx
push str.Session:__s_r_n
push eax
mov byte [eax], 0
call fcn.0043afc4
lea edi, [ebp - 0x119c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov edi, dword [ebp - 0x20]
not ecx
dec ecx
mov edx, edi
mov esi, ecx
sub edx, ebx
push edx
push ebx
lea eax, [ebp + esi - 0x119c]
push eax
call fcn.0043c150
mov eax, dword [ebp - 0x18]
sub esi, ebx
add esi, edi
add esp, 0x24
cmp eax, 1
mov byte [ebp + esi - 0x119c], 0
jne 0x41f541
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x30]
push ecx
push edx
push eax
lea edi, [ebp - 0x119c]
or ecx, 0xffffffff
xor eax, eax
push str.Transport:_x_real_rdt_udp_client_port_d_server_port_d_r_n_s
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ecx, [ebp + ecx - 0x119c]
push ecx
call fcn.0043afc4
add esp, 0x14
jmp 0x41f56a
lea edi, [ebp - 0x119c]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebp - 0x14]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push edx
push str.Transport:_x_real_rdt_tcp_interleaved0_r_n_s
lea eax, [ebp + ecx - 0x119c]
push eax
call fcn.0043afc4
add esp, 0xc
mov edx, dword [ebp + 0xc]
lea ecx, [ebp - 0x119c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
call fcn.00411160
xor ebx, ebx
cmp eax, ebx
jne 0x41f59e
lea eax, [ebp - 0x8c]
push 0x467aa8
push eax
mov dword [ebp - 0x8c], 0xffffffff
call fcn.0043c293
mov dword [ebp - 0x94], 1
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0x44]
mov edx, dword [0x51a850]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], ebx
mov eax, dword [ecx + edx + 0x20]
cmp eax, 0xffffffff
je 0x41f5ef
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
mov dword [ebp - 0x18], ebx
mov esi, dword [ebp - 0x28]
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 0x41fabd
mov edx, dword [ebp + 0x10]
xor eax, eax
mov dword [ebp - 0x198], eax
xor ecx, ecx
cmp ecx, eax
jae 0x41f62e
cmp dword [ebp + ecx*4 - 0x194], edx
je 0x41f62c
inc ecx
jmp 0x41f61c
cmp ecx, eax
jne 0x41f649
cmp eax, 0x40
jae 0x41f649
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 0x41f660
cmp dword [ebp + ecx*4 - 0x194], edx
je 0x41f65e
inc ecx
jmp 0x41f64e
cmp ecx, eax
jne 0x41f67b
cmp eax, 0x40
jae 0x41f67b
mov dword [ebp + ecx*4 - 0x194], edx
mov eax, dword [ebp - 0x198]
inc eax
mov dword [ebp - 0x198], eax
xor ecx, ecx
cmp ecx, eax
jae 0x41f68f
cmp dword [ebp + ecx*4 - 0x194], esi
je 0x41f68d
inc ecx
jmp 0x41f67d
cmp ecx, eax
jne 0x41f6aa
cmp eax, 0x40
jae 0x41f6aa
mov dword [ebp + ecx*4 - 0x194], esi
mov eax, dword [ebp - 0x198]
inc eax
mov dword [ebp - 0x198], eax
lea edx, [ebp - 0x94]
lea eax, [ebp - 0x198]
push edx
push 0
push 0
push eax
push 0xffffffffffffffff
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jne 0x41f703
mov eax, dword [0x502140]
cmp eax, 0xffffffff
je 0x41f5f2
mov ecx, dword [ebp - 0x14]
lea eax, [eax + eax*2]
inc ecx
lea edx, [eax + eax*4]
mov dword [ebp - 0x14], ecx
shl edx, 2
cmp ecx, edx
jle 0x41f5f2
lea eax, [ebp - 0x70]
push 0x467aa8
push eax
mov dword [ebp - 0x70], 0xffffffff
call fcn.0043c293
test eax, eax
mov dword [ebp - 0x14], 0
jge 0x41f726
mov eax, 0xa
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 8]
mov ecx, dword [0x51a850]
lea eax, [eax + eax*2]
lea edi, [eax + eax*4]
lea edi, [edi + edi*4]
mov eax, dword [ecx + edi*4 + 0x20]
cmp eax, 0xffffffff
je 0x41f805
mov edx, eax
shl edx, 5
add edx, eax
mov eax, dword [0x4f4398]
mov eax, dword [eax + edx*4 + 0x70]
cmp eax, 0xffffffff
jle 0x41f805
test eax, eax
jne 0x41f77a
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov eax, 0xd
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x10
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x51a850]
mov dword [ebp - 0x44], eax
mov eax, dword [ecx + edi*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 0x41f7b2
xor ebx, ebx
mov dword [ebp - 0x18], 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 edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x20]
mov ebx, edx
sub ebx, ecx
cmp ebx, eax
jae 0x41f7ff
sub ecx, edx
add ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, esi
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], ebx
jmp 0x41f805
mov esi, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x198]
push eax
push ecx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x41f8d3
mov ecx, dword [ebp + 0x10]
lea edx, [ebp + 0x14]
push 0
lea eax, [ebp - 0x119c]
push edx
push eax
push ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + 0x14], 0x1000
mov byte [ebp - 0x119c], 0
call fcn.004112c0
test eax, eax
mov eax, dword [ebp + 0x14]
jne 0x41f879
test eax, eax
jne 0x41f864
lea edx, [ebp - 0x80]
push 0x467aa8
push edx
mov dword [ebp - 0x80], 0xffffffff
call fcn.0043c293
lea eax, [ebp - 0x78]
push 0x467aa8
push eax
mov dword [ebp - 0x78], 0xffffffff
call fcn.0043c293
test eax, eax
jle 0x41f8ad
mov edx, dword [ebp + 0xc]
lea ecx, [ebp - 0x119c]
push eax
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
call fcn.00411190
test eax, eax
jne 0x41f8aa
lea eax, [ebp - 0x64]
push 0x467aa8
push eax
mov dword [ebp - 0x64], 0xffffffff
call fcn.0043c293
mov eax, dword [ebp + 0x14]
mov ecx, dword [0x51a850]
mov edi, dword [ecx + edi*4 + 0x20]
cmp edi, 0xffffffff
je 0x41f5f2
push 0
push eax
push edi
mov ecx, 0x4f4398
call fcn.00423400
jmp 0x41f5f2
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x198]
push edx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x41f9a1
mov eax, dword [ebp + 0xc]
lea ecx, [ebp + 0x14]
push 0
lea edx, [ebp - 0x119c]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
push eax
mov dword [ebp + 0x14], 0x1000
mov byte [ebp - 0x119c], 0
call fcn.004112c0
test eax, eax
mov eax, dword [ebp + 0x14]
jne 0x41f947
test eax, eax
jne 0x41f932
lea ecx, [ebp - 0x4c]
push 0x467aa8
push ecx
mov dword [ebp - 0x4c], 0xffffffff
call fcn.0043c293
lea edx, [ebp - 0x50]
push 0x467aa8
push edx
mov dword [ebp - 0x50], 0xffffffff
call fcn.0043c293
test eax, eax
jle 0x41f97b
mov ecx, dword [ebp + 0x10]
push eax
lea eax, [ebp - 0x119c]
push eax
push ecx
mov ecx, dword [ebp - 0x1c]
call fcn.00411190
test eax, eax
jne 0x41f978
lea edx, [ebp - 0x54]
push 0x467aa8
push edx
mov dword [ebp - 0x54], 0xffffffff
call fcn.0043c293
mov eax, dword [ebp + 0x14]
mov ecx, dword [0x51a850]
mov edi, dword [ecx + edi*4 + 0x20]
cmp edi, 0xffffffff
je 0x41f5f2
push 1
push eax
push edi
mov ecx, 0x4f4398
call fcn.00423400
jmp 0x41f5f2
lea edx, [ebp - 0x198]
push edx
push esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x41f5f2
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x40]
push eax
push ecx
push 0
lea edx, [ebp - 0x119c]
push 0x1000
push edx
push esi
mov dword [ebp + 0x14], 0x1000
mov byte [ebp - 0x119c], 0
call dword [sym.imp.WS2_32.dll_recvfrom]
test eax, eax
mov dword [ebp + 0x14], eax
jle 0x41f5f2
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.WS2_32.dll_htons]
cmp word [ebp - 0x3e], ax
jne 0x41fa4f
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
cmp eax, ecx
jne 0x41fa4f
mov edx, dword [ebp - 0x48]
mov word [ebp - 0x40], 2
push edx
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [ebp - 0x24]
mov word [ebp - 0x3e], ax
mov eax, dword [ebp - 0x5c]
lea edx, [ebp - 0x40]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x14]
push ecx
push edx
push 0
lea ecx, [ebp - 0x119c]
push eax
push ecx
push esi
call dword [sym.imp.WS2_32.dll_sendto]
mov edx, dword [0x51a850]
mov eax, dword [edx + edi*4 + 0x20]
cmp eax, 0xffffffff
je 0x41faa5
push 1
jmp 0x41fa96
mov edx, dword [ebp - 0x30]
mov word [ebp - 0x40], 2
push edx
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [ebp - 0x24]
mov word [ebp - 0x3e], ax
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x40]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x14]
push ecx
push edx
push 0
lea ecx, [ebp - 0x119c]
push eax
push ecx
push esi
call dword [sym.imp.WS2_32.dll_sendto]
mov edx, dword [0x51a850]
mov eax, dword [edx + edi*4 + 0x20]
cmp eax, 0xffffffff
je 0x41faa5
push 0
mov ecx, dword [ebp + 0x14]
push ecx
push eax
mov ecx, 0x4f4398
call fcn.00423400
mov edx, dword [ebp + 0x14]
lea eax, [ebp - 0x119c]
push edx
push eax
call fcn.0040eee0
add esp, 8
jmp 0x41f5f2
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
jmp 0x41ef9c