Function at 0x427a30
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 0x47a180
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0xb1c0
call fcn.00458680
mov eax, dword [ebp + 0x14]
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, ecx
push eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], 0
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
je 0x427dcf
mov ecx, dword [eax + 0xc]
mov ebx, dword [ebp + 8]
lea edi, [ebp - 0x119b]
mov edx, dword [ecx]
mov cl, byte [0x494b70]
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
mov ecx, dword [ebp + 0x10]
push eax
lea eax, [ebp - 0x119c]
push edx
push eax
push ebx
push ecx
mov ecx, esi
mov dword [ebp + 0x14], 0x1000
call fcn.0041c7d0
test eax, eax
je 0x427dcf
mov edx, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 0x119c]
push edx
push eax
push edi
mov ecx, esi
call fcn.0041c6a0
test eax, eax
je 0x427dcf
lea ecx, [ebp + 0x14]
push 0
lea edx, [ebp - 0x119c]
push ecx
push edx
push ebx
push edi
mov ecx, esi
mov dword [ebp + 0x14], 0x1000
call fcn.0041c7d0
test eax, eax
je 0x427dcf
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
lea ecx, [ebp - 0x119c]
push eax
push ecx
push edx
mov ecx, esi
call fcn.0041c6a0
test eax, eax
je 0x427dcf
mov al, byte [0x494b70]
mov edx, dword [ebx + 0x10]
mov byte [ebp - 0x41a8], al
mov ecx, 0x400
xor eax, eax
lea edi, [ebp - 0x41a7]
rep stosd dword es:[edi], eax
mov ecx, dword [ebx + 0x24]
cmp ecx, 0xffffffff
je 0x427b86
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x364d8]
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
lea eax, [edi + ecx*4]
push eax
push edx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea ecx, [ebp - 0x41a8]
push str._s__s_REAL
push ecx
call fcn.004585a3
add esp, 0x10
jmp 0x427ba2
push edx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea edx, [ebp - 0x41a8]
push str._s_unknown_REAL
push edx
call fcn.004585a3
add esp, 0xc
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0xa558]
test ecx, ecx
je 0x427c39
mov cl, byte [0x494b70]
xor eax, eax
mov byte [ebp - 0x31a4], cl
mov ecx, 0x400
lea edi, [ebp - 0x31a3]
lea edx, [ebp - 0x119c]
rep stosd dword es:[edi], eax
push edx
lea eax, [ebp - 0x31a4]
push 0x48e48c
push eax
call fcn.004585a3
lea ecx, [ebp - 0x31a4]
push 0x48e240
push ecx
call fcn.00458600
add esp, 0x14
test eax, eax
je 0x427dcf
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 esi, dword [ebp - 0x14]
lea eax, [ebp - 0x41a8]
push eax
call fcn.00430d10
mov edi, dword [ebp + 0x10]
add esp, 4
lea ecx, [ebp + 0x14]
lea edx, [ebp - 0x119c]
push 0
push ecx
push edx
push ebx
push edi
mov ecx, esi
mov dword [ebp + 0x14], 0x1000
call fcn.0041c7d0
test eax, eax
je 0x427dcf
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
lea ecx, [ebp - 0x119c]
push eax
push ecx
push edx
mov ecx, esi
call fcn.0041c6a0
test eax, eax
je 0x427dcf
lea eax, [ebp - 0x119c]
push str.Content_length:
push eax
call fcn.00458600
add esp, 8
test eax, eax
jne 0x427cc7
mov ecx, dword [ebp + 0xc]
push eax
push ecx
push edi
push ebx
mov ecx, esi
call fcn.00423f50
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea edx, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
push edx
push str.Content_length:__d
push eax
call fcn.0045856f
lea eax, [ebp - 0x119c]
push str._r_n_r_n
push eax
call fcn.00458600
add esp, 0x14
test eax, eax
je 0x427dcf
mov edx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x119c]
mov edi, dword [ebp - 0x14]
sub eax, ecx
mov ecx, dword [ebp + 0x14]
lea eax, [eax + edx + 4]
sub eax, ecx
mov esi, eax
cmp dword [ebx + 0x1c], 2
jne 0x427d66
mov eax, dword [edi + 8]
test eax, eax
je 0x427d66
test esi, esi
je 0x427d66
mov edx, dword [ebp + 0x10]
lea eax, [ebp + 0x14]
push 0
lea ecx, [ebp - 0x119c]
push eax
push ecx
push ebx
push edx
mov ecx, edi
mov dword [ebp + 0x14], esi
call fcn.0041c7d0
test eax, eax
je 0x427dcf
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
lea ecx, [ebp - 0x119c]
push eax
push ecx
push edx
mov ecx, edi
call fcn.0041c6a0
test eax, eax
je 0x427dcf
sub esi, dword [ebp + 0x14]
jmp 0x427d12
mov al, byte [0x494b70]
mov ecx, 0x400
mov byte [ebp - 0x21a0], al
xor eax, eax
lea edi, [ebp - 0x219f]
push eax
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0xc]
lea ecx, [ebp + 0x14]
lea edx, [ebp - 0x21a0]
push ecx
mov ecx, dword [ebp - 0x14]
push edx
push ebx
push edi
mov dword [ebp + 0x14], 0x1000
call fcn.0041c7d0
test eax, eax
je 0x427dcf
lea eax, [ebp - 0x21a0]
push str.Transport:
push eax
call fcn.00458600
mov esi, eax
add esp, 8
test esi, esi
mov dword [ebp - 0x24], esi
jne 0x427de4
mov ecx, dword [ebp - 0x14]
push str.RTSP_1.0_200_OK_r_nCSeq:_5_r_n_r_n
push edi
call fcn.0041c670
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 0x48e240
push esi
call fcn.00458600
add esp, 8
test eax, eax
je 0x427dcf
push 0x48e240
push esi
call fcn.00458600
add eax, 2
mov edi, str.Transport:
mov dword [ebp - 0x1c], eax
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x48e240
add ecx, esi
push ecx
lea ecx, [ebp - 0xb1d0]
call fcn.00443360
lea ecx, [ebp - 0xb1d0]
call fcn.004433c0
push 0x48e5d4
push eax
lea ecx, [ebp - 0x61b4]
mov dword [ebp - 0x30], eax
call fcn.00443360
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x61b4]
call fcn.00443420
test eax, eax
je 0x427ec0
lea ecx, [ebp - 0x61b4]
call fcn.004433c0
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.0045a6b0
add esp, 0xc
test eax, eax
jne 0x427e52
mov dword [ebp - 0x18], 1
mov eax, dword [ebp - 0x18]
xor esi, esi
cmp eax, esi
mov dword [ebp - 0x34], esi
je 0x42800e
lea edx, [ebp - 0x119c]
push 0x48e23c
push edx
lea ecx, [ebp - 0x81c0]
call fcn.00443360
lea ecx, [ebp - 0x81c0]
call fcn.004433c0
lea ecx, [ebp - 0x81c0]
call fcn.004433c0
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 - 0x34]
push ecx
push str.client_port_d
push edx
call fcn.0045856f
add esp, 0xc
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x427dcf
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 dword [ebp - 0x28], 0x10
mov word [ebp - 0x44], 2
call dword [sym.imp.WS2_32.dll_htons]
lea edx, [ebp - 0x44]
push 0x10
push edx
push esi
mov word [ebp - 0x42], ax
mov dword [ebp - 0x40], 0
call dword [sym.imp.WS2_32.dll_bind]
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x44]
push eax
push ecx
push esi
mov esi, dword [sym.imp.WS2_32.dll_getsockname]
call esi
mov edx, dword [ebp - 0x42]
push edx
call dword [sym.imp.WS2_32.dll_ntohs]
mov edx, dword [ebp + 0xc]
mov di, ax
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x44]
push eax
and edi, 0xffff
push ecx
push edx
mov dword [ebp - 0x2c], edi
call esi
mov esi, dword [ebp - 0x24]
mov eax, dword [ebx + 0x10]
lea ecx, [ebp - 0x21a0]
mov dword [ebp - 0x30], eax
sub esi, ecx
lea edx, [ebp - 0x21a0]
push esi
lea eax, [ebp - 0x119c]
push edx
push eax
call fcn.00459160
mov eax, dword [ebp - 0x18]
lea esi, [ebp + esi - 0x119c]
add esp, 0xc
cmp eax, 1
mov byte [esi], 0
jne 0x42809c
mov ecx, dword [ebp - 0x1c]
push ecx
push edi
push str.Transport:_x_real_rdt_udp_client_port_d_modeplay_r_n_s
push esi
call fcn.004585a3
add esp, 0x10
jmp 0x4280ae
mov eax, dword [ebp - 0x30]
push 0x48e5d4
push eax
lea ecx, [ebp - 0x81c0]
call fcn.00443360
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x81c0]
call fcn.00443420
test eax, eax
je 0x427f3a
lea ecx, [ebp - 0x81c0]
call fcn.004433c0
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.0045a6b0
add esp, 0xc
test eax, eax
jne 0x428025
mov dword [ebp - 0x18], 2
jmp 0x427f45
mov edx, dword [ebp - 0x1c]
push edx
push str.Transport:_x_real_rdt_tcp_modeplay_r_n_s
push esi
call fcn.004585a3
add esp, 0xc
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x119c]
mov ecx, edi
push eax
push esi
call fcn.0041c670
test eax, eax
jne 0x4280e2
lea ecx, [ebp - 0x88]
push 0x487a40
push ecx
mov dword [ebp - 0x88], 0xffffffff
call fcn.0045a1bd
lea edx, [ebp + 0x14]
push 0
lea eax, [ebp - 0x21a0]
push edx
push eax
push ebx
push esi
mov ecx, edi
mov dword [ebp + 0x14], 0x1000
call fcn.0041c7d0
test eax, eax
jne 0x428118
lea ecx, [ebp - 0x68]
push 0x487a40
push ecx
mov dword [ebp - 0x68], 0xffffffff
call fcn.0045a1bd
mov dl, byte [0x494b70]
mov ecx, 0x400
xor eax, eax
lea edi, [ebp - 0x91c3]
mov byte [ebp - 0x91c4], dl
mov dword [ebp - 0x48], eax
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x21a0]
push 0x48e240
push eax
lea ecx, [ebp - 0x81c0]
call fcn.00443360
lea ecx, [ebp - 0x81c0]
call fcn.004433c0
or ebx, 0xffffffff
mov edi, eax
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp - 0x119c]
mov eax, ecx
mov esi, edi
mov edi, edx
push str.RTSP_1.0_200_OK
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.0045d2f0
add esp, 8
test eax, eax
je 0x4281bb
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x119c]
push edx
push eax
call fcn.0041c670
lea ecx, [ebp - 0x74]
push 0x487a40
push ecx
mov dword [ebp - 0x74], ebx
call fcn.0045a1bd
lea edx, [ebp - 0x21a0]
push str.Session:
push edx
call fcn.00458600
mov esi, eax
add esp, 8
test esi, esi
jne 0x4281e6
lea eax, [ebp - 0x58]
push 0x487a40
push eax
mov dword [ebp - 0x58], ebx
call fcn.0045a1bd
push 0x48e240
push esi
call fcn.00458600
lea ecx, [ebp - 0x91c4]
mov ebx, eax
push ecx
push str.Session:__s
push esi
add ebx, 2
call fcn.0045856f
push str.Transport:
push ebx
call fcn.00458600
mov edi, eax
add esp, 0x1c
test edi, edi
mov dword [ebp - 0x24], edi
jne 0x428234
lea edx, [ebp - 0x7c]
push 0x487a40
push edx
mov dword [ebp - 0x7c], 0xffffffff
call fcn.0045a1bd
push 0x48e240
push edi
call fcn.00458600
add esp, 8
add eax, 2
mov dword [ebp - 0x1c], eax
jne 0x42825f
lea eax, [ebp - 0x60]
push 0x487a40
push eax
mov dword [ebp - 0x60], 0xffffffff
call fcn.0045a1bd
cmp dword [ebp - 0x18], 1
jne 0x4282b2
push str.server_port
push edi
call fcn.00458600
add esp, 8
test eax, eax
jne 0x428292
lea ecx, [ebp - 0x84]
push 0x487a40
push ecx
mov dword [ebp - 0x84], 0xffffffff
call fcn.0045a1bd
lea edx, [ebp - 0x48]
push edx
push str.server_port_d
push str.server_port
push edi
call fcn.00458600
add esp, 8
push eax
call fcn.0045856f
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.00459160
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.004585a3
lea edi, [ebp - 0x119c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov edi, dword [ebp - 0x24]
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.00459160
mov eax, dword [ebp - 0x18]
sub esi, ebx
add esi, edi
add esp, 0x24
cmp eax, 1
mov byte [ebp + esi - 0x119c], 0
jne 0x42835c
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
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.004585a3
add esp, 0x14
jmp 0x428385
lea edi, [ebp - 0x119c]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebp - 0x1c]
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.004585a3
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0x119c]
push ecx
push edx
mov ecx, esi
call fcn.0041c670
xor edi, edi
cmp eax, edi
jne 0x4283bb
lea eax, [ebp - 0x8c]
push 0x487a40
push eax
mov dword [ebp - 0x8c], 0xffffffff
call fcn.0045a1bd
mov dword [ebp - 0x94], 1
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x1c], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x18], edi
mov ecx, dword [ecx + 0x24]
cmp ecx, 0xffffffff
je 0x428437
mov esi, dword [esi + 4]
lea eax, [ecx*8]
sub eax, ecx
mov edx, dword [esi + 0x364d8]
mov esi, dword [esi + 0x209fc]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
shl eax, 2
mov ecx, dword [edx + eax + 0x170]
mov edi, dword [edx + eax + 0x16c]
add ecx, edi
cmp esi, 1
mov dword [ebp - 0x18], ecx
jne 0x428428
mov ecx, dword [edx + eax + 0x170]
mov dword [ebp - 0x18], ecx
cmp esi, 2
jne 0x428437
mov edx, dword [edx + eax + 0x16c]
mov dword [ebp - 0x18], edx
mov edi, dword [ebp + 8]
cmp dword [edi + 0x1c], 2
jne 0x428950
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 8]
test eax, eax
je 0x428950
mov edx, dword [ebp + 0x10]
xor eax, eax
mov dword [ebp - 0x198], eax
xor ecx, ecx
cmp ecx, eax
jae 0x428471
cmp dword [ebp + ecx*4 - 0x194], edx
je 0x42846f
inc ecx
jmp 0x42845f
cmp ecx, eax
jne 0x42848c
cmp eax, 0x40
jae 0x42848c
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 0x4284a3
cmp dword [ebp + ecx*4 - 0x194], edx
je 0x4284a1
inc ecx
jmp 0x428491
cmp ecx, eax
jne 0x4284be
cmp eax, 0x40
jae 0x4284be
mov dword [ebp + ecx*4 - 0x194], edx
mov eax, dword [ebp - 0x198]
inc eax
mov dword [ebp - 0x198], eax
mov edx, dword [ebp - 0x20]
xor ecx, ecx
cmp ecx, eax
jae 0x4284d5
cmp dword [ebp + ecx*4 - 0x194], edx
je 0x4284d3
inc ecx
jmp 0x4284c3
cmp ecx, eax
jne 0x4284f0
cmp eax, 0x40
jae 0x4284f0
mov dword [ebp + ecx*4 - 0x194], edx
mov eax, dword [ebp - 0x198]
inc eax
mov dword [ebp - 0x198], eax
lea eax, [ebp - 0x94]
lea ecx, [ebp - 0x198]
push eax
push 0
push 0
push ecx
push 0xffffffffffffffff
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jne 0x428544
mov edx, dword [esi + 4]
mov eax, dword [edx + 0xa9b8]
cmp eax, 0xffffffff
je 0x428437
mov ecx, dword [ebp - 0x1c]
inc ecx
cmp ecx, eax
mov dword [ebp - 0x1c], ecx
jle 0x428437
lea eax, [ebp - 0x4c]
push 0x487a40
push eax
mov dword [ebp - 0x4c], 0xffffffff
call fcn.0045a1bd
test eax, eax
mov dword [ebp - 0x1c], 0
jge 0x428567
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 ecx, dword [edi + 0x24]
cmp ecx, 0xffffffff
je 0x428681
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
mov edx, dword [eax + 0x364d8]
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
shl eax, 2
mov ecx, dword [edx + eax + 0x160]
cmp ecx, 0xffffffff
jle 0x428681
test ecx, ecx
jne 0x4285bd
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 [ebp - 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x24]
mov ebx, dword [edx + 0x364d8]
mov edx, dword [edx + 0x209fc]
lea eax, [ecx*8]
mov dword [ebp - 0x70], ebx
sub eax, ecx
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
shl ecx, 2
mov esi, dword [ebx + ecx + 0x170]
mov edi, dword [ebx + ecx + 0x16c]
add esi, edi
cmp edx, 1
jne 0x42860f
mov esi, dword [ebx + ecx + 0x170]
cmp edx, 2
jne 0x42861b
mov esi, dword [ebx + ecx + 0x16c]
cmp esi, dword [ebp - 0x18]
jae 0x428627
mov dword [ebp - 0x18], 0
lea eax, [esi + esi*4]
lea edi, [eax + eax*4]
mov eax, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [edi + edi*4]
shl edi, 3
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
shl edx, 3
sub edi, edx
xor edx, edx
mov eax, edi
div dword [ebx + ecx + 0x160]
mov edx, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x24]
sub edx, ebx
cmp edx, eax
jae 0x428681
mov eax, edi
mov edi, dword [ebp - 0x70]
xor edx, edx
div dword [edi + ecx + 0x160]
sub eax, dword [ebp - 0x2c]
add eax, ebx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x18], esi
mov ebx, dword [ebp + 0x10]
lea eax, [ebp - 0x198]
push eax
push ebx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x428754
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 0x14]
lea ecx, [ebp + 0x14]
push 0
lea edx, [ebp - 0x119c]
push ecx
push edx
push esi
push ebx
mov ecx, edi
mov dword [ebp + 0x14], 0x1000
mov byte [ebp - 0x119c], 0
call fcn.0041c7d0
test eax, eax
jne 0x4286f8
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x4286e3
lea eax, [ebp - 0x80]
push 0x487a40
push eax
mov dword [ebp - 0x80], 0xffffffff
call fcn.0045a1bd
lea ecx, [ebp - 0x78]
push 0x487a40
push ecx
mov dword [ebp - 0x78], 0xffffffff
call fcn.0045a1bd
mov ecx, dword [ebp + 0x14]
test ecx, ecx
jle 0x42872e
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x119c]
push ecx
push edx
push eax
mov ecx, edi
call fcn.0041c6a0
test eax, eax
jne 0x42872b
lea ecx, [ebp - 0x64]
push 0x487a40
push ecx
mov dword [ebp - 0x64], 0xffffffff
call fcn.0045a1bd
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi + 0x24]
cmp eax, 0xffffffff
je 0x428437
mov edx, dword [ebp - 0x14]
push 0
push ecx
push eax
mov ecx, dword [edx + 4]
add ecx, 0x241e0
call fcn.004066c0
jmp 0x428437
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x198]
push eax
push esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x428824
mov edi, dword [ebp + 8]
lea ecx, [ebp + 0x14]
push 0
lea edx, [ebp - 0x119c]
push ecx
push edx
push edi
push esi
mov esi, dword [ebp - 0x14]
mov dword [ebp + 0x14], 0x1000
mov ecx, esi
mov byte [ebp - 0x119c], 0
call fcn.0041c7d0
test eax, eax
jne 0x4287cb
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x4287b6
lea eax, [ebp - 0x6c]
push 0x487a40
push eax
mov dword [ebp - 0x6c], 0xffffffff
call fcn.0045a1bd
lea ecx, [ebp - 0x50]
push 0x487a40
push ecx
mov dword [ebp - 0x50], 0xffffffff
call fcn.0045a1bd
mov ecx, dword [ebp + 0x14]
test ecx, ecx
jle 0x4287fe
lea edx, [ebp - 0x119c]
push ecx
push edx
push ebx
mov ecx, esi
call fcn.0041c6a0
test eax, eax
jne 0x4287fb
lea eax, [ebp - 0x54]
push 0x487a40
push eax
mov dword [ebp - 0x54], 0xffffffff
call fcn.0045a1bd
mov ecx, dword [ebp + 0x14]
mov eax, dword [edi + 0x24]
cmp eax, 0xffffffff
je 0x428437
push 1
push ecx
mov ecx, dword [ebp - 0x14]
push eax
mov ecx, dword [ecx + 4]
add ecx, 0x241e0
call fcn.004066c0
jmp 0x428437
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x198]
push edx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x428437
lea ecx, [ebp - 0x28]
lea edx, [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
push 0
lea eax, [ebp - 0x119c]
push 0x1000
push eax
push ecx
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 0x428437
mov edx, dword [ebp - 0x34]
mov esi, dword [sym.imp.WS2_32.dll_htons]
push edx
call esi
cmp word [ebp - 0x42], ax
jne 0x4288e0
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x30]
cmp eax, ecx
jne 0x4288e0
mov ecx, dword [ebp - 0x48]
mov word [ebp - 0x44], 2
push ecx
call esi
mov edx, dword [ebp - 0x5c]
mov word [ebp - 0x42], ax
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x40], edx
mov edx, dword [ebp + 0x14]
push eax
push ecx
mov ecx, dword [ebp - 0x20]
push 0
lea eax, [ebp - 0x119c]
push edx
push eax
push ecx
call dword [sym.imp.WS2_32.dll_sendto]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x24]
cmp eax, 0xffffffff
je 0x428938
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x14]
push 1
push ecx
mov ecx, dword [edx + 4]
push eax
jmp 0x42892d
mov eax, dword [ebp - 0x34]
mov word [ebp - 0x44], 2
push eax
call esi
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x28]
mov word [ebp - 0x42], ax
lea eax, [ebp - 0x44]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp + 0x14]
push edx
push eax
mov eax, dword [ebp - 0x20]
push 0
lea edx, [ebp - 0x119c]
push ecx
push edx
push eax
call dword [sym.imp.WS2_32.dll_sendto]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x24]
cmp eax, 0xffffffff
je 0x428938
mov edx, dword [ebp + 0x14]
push 0
push edx
push eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
add ecx, 0x241e0
call fcn.004066c0
mov ecx, dword [ebp + 0x14]
lea edx, [ebp - 0x119c]
push ecx
mov ecx, dword [ebp - 0x14]
push edx
call fcn.00419940
jmp 0x428437
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
jmp 0x427dcf