Function at 0x4273e0
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 0x479790
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0xb1c0
call fcn.00457d20
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 0x427775
mov ecx, dword [eax + 0xc]
mov ebx, dword [ebp + 8]
lea edi, [ebp - 0x119b]
mov edx, dword [ecx]
mov cl, byte [0x493b50]
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.0041c300
test eax, eax
je 0x427775
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.0041c1d0
test eax, eax
je 0x427775
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.0041c300
test eax, eax
je 0x427775
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.0041c1d0
test eax, eax
je 0x427775
mov al, byte [0x493b50]
mov ecx, 0x400
mov byte [ebp - 0x41a8], al
xor eax, eax
lea edi, [ebp - 0x41a7]
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x10]
cmp eax, 0xffffffff
je 0x42752c
mov edx, dword [esi + 4]
lea eax, [eax + eax*2]
shl eax, 6
mov edx, dword [edx + 0x275c8]
add eax, edx
push eax
push ecx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea ecx, [ebp - 0x41a8]
push str._s__s_REAL
push ecx
call fcn.00457c43
add esp, 0x10
jmp 0x427548
push ecx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea edx, [ebp - 0x41a8]
push str._s_unknown_REAL
push edx
call fcn.00457c43
add esp, 0xc
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0xa558]
test ecx, ecx
je 0x4275df
mov cl, byte [0x493b50]
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 0x48d48c
push eax
call fcn.00457c43
lea ecx, [ebp - 0x31a4]
push 0x48d240
push ecx
call fcn.00457ca0
add esp, 0x14
test eax, eax
je 0x427775
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.00430470
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.0041c300
test eax, eax
je 0x427775
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.0041c1d0
test eax, eax
je 0x427775
lea eax, [ebp - 0x119c]
push str.Content_length:
push eax
call fcn.00457ca0
add esp, 8
test eax, eax
jne 0x42766d
mov ecx, dword [ebp + 0xc]
push eax
push ecx
push edi
push ebx
mov ecx, esi
call fcn.00423a00
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.00457c0f
lea eax, [ebp - 0x119c]
push str._r_n_r_n
push eax
call fcn.00457ca0
add esp, 0x14
test eax, eax
je 0x427775
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 0x42770c
mov eax, dword [edi + 8]
test eax, eax
je 0x42770c
test esi, esi
je 0x42770c
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.0041c300
test eax, eax
je 0x427775
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.0041c1d0
test eax, eax
je 0x427775
sub esi, dword [ebp + 0x14]
jmp 0x4276b8
mov al, byte [0x493b50]
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.0041c300
test eax, eax
je 0x427775
lea eax, [ebp - 0x21a0]
push str.Transport:
push eax
call fcn.00457ca0
mov esi, eax
add esp, 8
test esi, esi
mov dword [ebp - 0x24], esi
jne 0x42778a
mov ecx, dword [ebp - 0x14]
push str.RTSP_1.0_200_OK_r_nCSeq:_5_r_n_r_n
push edi
call fcn.0041c1a0
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 0x48d240
push esi
call fcn.00457ca0
add esp, 8
test eax, eax
je 0x427775
push 0x48d240
push esi
call fcn.00457ca0
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 0x48d240
add ecx, esi
push ecx
lea ecx, [ebp - 0xb1d0]
call fcn.00442a00
lea ecx, [ebp - 0xb1d0]
call fcn.00442a60
push 0x48d5d4
push eax
lea ecx, [ebp - 0x61b4]
mov dword [ebp - 0x30], eax
call fcn.00442a00
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x61b4]
call fcn.00442ac0
test eax, eax
je 0x427866
lea ecx, [ebp - 0x61b4]
call fcn.00442a60
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.00459d50
add esp, 0xc
test eax, eax
jne 0x4277f8
mov dword [ebp - 0x18], 1
mov eax, dword [ebp - 0x18]
xor esi, esi
cmp eax, esi
mov dword [ebp - 0x34], esi
je 0x4279b4
lea edx, [ebp - 0x119c]
push 0x48d23c
push edx
lea ecx, [ebp - 0x81c0]
call fcn.00442a00
lea ecx, [ebp - 0x81c0]
call fcn.00442a60
lea ecx, [ebp - 0x81c0]
call fcn.00442a60
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.00457c0f
add esp, 0xc
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x427775
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.00458800
mov eax, dword [ebp - 0x18]
lea esi, [ebp + esi - 0x119c]
add esp, 0xc
cmp eax, 1
mov byte [esi], 0
jne 0x427a42
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.00457c43
add esp, 0x10
jmp 0x427a54
mov eax, dword [ebp - 0x30]
push 0x48d5d4
push eax
lea ecx, [ebp - 0x81c0]
call fcn.00442a00
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x81c0]
call fcn.00442ac0
test eax, eax
je 0x4278e0
lea ecx, [ebp - 0x81c0]
call fcn.00442a60
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.00459d50
add esp, 0xc
test eax, eax
jne 0x4279cb
mov dword [ebp - 0x18], 2
jmp 0x4278eb
mov edx, dword [ebp - 0x1c]
push edx
push str.Transport:_x_real_rdt_tcp_modeplay_r_n_s
push esi
call fcn.00457c43
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.0041c1a0
test eax, eax
jne 0x427a88
lea ecx, [ebp - 0x88]
push 0x4869b0
push ecx
mov dword [ebp - 0x88], 0xffffffff
call fcn.0045985d
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.0041c300
test eax, eax
jne 0x427abe
lea ecx, [ebp - 0x68]
push 0x4869b0
push ecx
mov dword [ebp - 0x68], 0xffffffff
call fcn.0045985d
mov dl, byte [0x493b50]
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 0x48d240
push eax
lea ecx, [ebp - 0x81c0]
call fcn.00442a00
lea ecx, [ebp - 0x81c0]
call fcn.00442a60
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.0045c970
add esp, 8
test eax, eax
je 0x427b61
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x119c]
push edx
push eax
call fcn.0041c1a0
lea ecx, [ebp - 0x74]
push 0x4869b0
push ecx
mov dword [ebp - 0x74], ebx
call fcn.0045985d
lea edx, [ebp - 0x21a0]
push str.Session:
push edx
call fcn.00457ca0
mov esi, eax
add esp, 8
test esi, esi
jne 0x427b8c
lea eax, [ebp - 0x58]
push 0x4869b0
push eax
mov dword [ebp - 0x58], ebx
call fcn.0045985d
push 0x48d240
push esi
call fcn.00457ca0
lea ecx, [ebp - 0x91c4]
mov ebx, eax
push ecx
push str.Session:__s
push esi
add ebx, 2
call fcn.00457c0f
push str.Transport:
push ebx
call fcn.00457ca0
mov edi, eax
add esp, 0x1c
test edi, edi
mov dword [ebp - 0x24], edi
jne 0x427bda
lea edx, [ebp - 0x7c]
push 0x4869b0
push edx
mov dword [ebp - 0x7c], 0xffffffff
call fcn.0045985d
push 0x48d240
push edi
call fcn.00457ca0
add esp, 8
add eax, 2
mov dword [ebp - 0x1c], eax
jne 0x427c05
lea eax, [ebp - 0x60]
push 0x4869b0
push eax
mov dword [ebp - 0x60], 0xffffffff
call fcn.0045985d
cmp dword [ebp - 0x18], 1
jne 0x427c58
push str.server_port
push edi
call fcn.00457ca0
add esp, 8
test eax, eax
jne 0x427c38
lea ecx, [ebp - 0x84]
push 0x4869b0
push ecx
mov dword [ebp - 0x84], 0xffffffff
call fcn.0045985d
lea edx, [ebp - 0x48]
push edx
push str.server_port_d
push str.server_port
push edi
call fcn.00457ca0
add esp, 8
push eax
call fcn.00457c0f
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.00458800
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.00457c43
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.00458800
mov eax, dword [ebp - 0x18]
sub esi, ebx
add esi, edi
add esp, 0x24
cmp eax, 1
mov byte [ebp + esi - 0x119c], 0
jne 0x427d02
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.00457c43
add esp, 0x14
jmp 0x427d2b
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.00457c43
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.0041c1a0
xor edi, edi
cmp eax, edi
jne 0x427d61
lea eax, [ebp - 0x8c]
push 0x4869b0
push eax
mov dword [ebp - 0x8c], 0xffffffff
call fcn.0045985d
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 eax, dword [ecx + 0x24]
cmp eax, 0xffffffff
je 0x427dcb
mov esi, dword [esi + 4]
lea eax, [eax + eax*2]
shl eax, 6
mov ecx, dword [esi + 0x275c8]
mov esi, dword [esi + 0x209fc]
mov edx, dword [ecx + eax + 0x80]
mov edi, dword [ecx + eax + 0x7c]
add edx, edi
cmp esi, 1
mov dword [ebp - 0x18], edx
jne 0x427dbf
mov edx, dword [ecx + eax + 0x80]
mov dword [ebp - 0x18], edx
cmp esi, 2
jne 0x427dcb
mov eax, dword [ecx + eax + 0x7c]
mov dword [ebp - 0x18], eax
mov edi, dword [ebp + 8]
cmp dword [edi + 0x1c], 2
jne 0x4282bd
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 8]
test eax, eax
je 0x4282bd
mov edx, dword [ebp + 0x10]
xor eax, eax
mov dword [ebp - 0x198], eax
xor ecx, ecx
cmp ecx, eax
jae 0x427e05
cmp dword [ebp + ecx*4 - 0x194], edx
je 0x427e03
inc ecx
jmp 0x427df3
cmp ecx, eax
jne 0x427e20
cmp eax, 0x40
jae 0x427e20
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 0x427e37
cmp dword [ebp + ecx*4 - 0x194], edx
je 0x427e35
inc ecx
jmp 0x427e25
cmp ecx, eax
jne 0x427e52
cmp eax, 0x40
jae 0x427e52
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 0x427e69
cmp dword [ebp + ecx*4 - 0x194], edx
je 0x427e67
inc ecx
jmp 0x427e57
cmp ecx, eax
jne 0x427e84
cmp eax, 0x40
jae 0x427e84
mov dword [ebp + ecx*4 - 0x194], edx
mov eax, dword [ebp - 0x198]
inc eax
mov dword [ebp - 0x198], eax
lea ecx, [ebp - 0x94]
lea edx, [ebp - 0x198]
push ecx
push 0
push 0
push edx
push 0xffffffffffffffff
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jne 0x427ed8
mov eax, dword [esi + 4]
mov eax, dword [eax + 0xa9b8]
cmp eax, 0xffffffff
je 0x427dcb
mov ecx, dword [ebp - 0x1c]
inc ecx
cmp ecx, eax
mov dword [ebp - 0x1c], ecx
jle 0x427dcb
lea ecx, [ebp - 0x4c]
push 0x4869b0
push ecx
mov dword [ebp - 0x4c], 0xffffffff
call fcn.0045985d
test eax, eax
mov dword [ebp - 0x1c], 0
jge 0x427efb
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 [edi + 0x24]
cmp eax, 0xffffffff
je 0x427fee
mov edx, dword [ebp - 0x14]
lea eax, [eax + eax*2]
shl eax, 6
mov ecx, dword [edx + 4]
mov ecx, dword [ecx + 0x275c8]
mov edx, dword [ecx + eax + 0x70]
cmp edx, 0xffffffff
jle 0x427fee
test edx, edx
jne 0x427f42
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 + 8]
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ecx + 0x24]
mov eax, dword [edx + 4]
mov ebx, dword [eax + 0x275c8]
mov eax, dword [eax + 0x209fc]
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0x70], ebx
shl ecx, 6
mov esi, dword [ebx + ecx + 0x80]
mov edi, dword [ebx + ecx + 0x7c]
add esi, edi
cmp eax, 1
jne 0x427f85
mov esi, dword [ebx + ecx + 0x80]
cmp eax, 2
jne 0x427f8e
mov esi, dword [ebx + ecx + 0x7c]
cmp esi, dword [ebp - 0x18]
jae 0x427f9a
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 + 0x70]
mov edx, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x24]
sub edx, ebx
cmp edx, eax
jae 0x427fee
mov eax, edi
mov edi, dword [ebp - 0x70]
xor edx, edx
div dword [edi + ecx + 0x70]
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 0x4280c1
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.0041c300
test eax, eax
jne 0x428065
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x428050
lea eax, [ebp - 0x80]
push 0x4869b0
push eax
mov dword [ebp - 0x80], 0xffffffff
call fcn.0045985d
lea ecx, [ebp - 0x78]
push 0x4869b0
push ecx
mov dword [ebp - 0x78], 0xffffffff
call fcn.0045985d
mov ecx, dword [ebp + 0x14]
test ecx, ecx
jle 0x42809b
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x119c]
push ecx
push edx
push eax
mov ecx, edi
call fcn.0041c1d0
test eax, eax
jne 0x428098
lea ecx, [ebp - 0x64]
push 0x4869b0
push ecx
mov dword [ebp - 0x64], 0xffffffff
call fcn.0045985d
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi + 0x24]
cmp eax, 0xffffffff
je 0x427dcb
mov edx, dword [ebp - 0x14]
push 0
push ecx
push eax
mov ecx, dword [edx + 4]
add ecx, 0x241e0
call fcn.00406430
jmp 0x427dcb
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x198]
push eax
push esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x428191
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.0041c300
test eax, eax
jne 0x428138
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x428123
lea eax, [ebp - 0x6c]
push 0x4869b0
push eax
mov dword [ebp - 0x6c], 0xffffffff
call fcn.0045985d
lea ecx, [ebp - 0x50]
push 0x4869b0
push ecx
mov dword [ebp - 0x50], 0xffffffff
call fcn.0045985d
mov ecx, dword [ebp + 0x14]
test ecx, ecx
jle 0x42816b
lea edx, [ebp - 0x119c]
push ecx
push edx
push ebx
mov ecx, esi
call fcn.0041c1d0
test eax, eax
jne 0x428168
lea eax, [ebp - 0x54]
push 0x4869b0
push eax
mov dword [ebp - 0x54], 0xffffffff
call fcn.0045985d
mov ecx, dword [ebp + 0x14]
mov eax, dword [edi + 0x24]
cmp eax, 0xffffffff
je 0x427dcb
push 1
push ecx
mov ecx, dword [ebp - 0x14]
push eax
mov ecx, dword [ecx + 4]
add ecx, 0x241e0
call fcn.00406430
jmp 0x427dcb
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x198]
push edx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x427dcb
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 0x427dcb
mov edx, dword [ebp - 0x34]
mov esi, dword [sym.imp.WS2_32.dll_htons]
push edx
call esi
cmp word [ebp - 0x42], ax
jne 0x42824d
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x30]
cmp eax, ecx
jne 0x42824d
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 0x4282a5
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x14]
push 1
push ecx
mov ecx, dword [edx + 4]
push eax
jmp 0x42829a
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 0x4282a5
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.00406430
mov ecx, dword [ebp + 0x14]
lea edx, [ebp - 0x119c]
push ecx
mov ecx, dword [ebp - 0x14]
push edx
call fcn.00419520
jmp 0x427dcb
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
jmp 0x427775