Function at 0x448003
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, edx
mov dword [ebp - 0x30], ebx
mov esi, ecx
cmp edi, 0x2d3
ja 0x448043
cmp edi, 0x17
ja 0x44802b
inc dword [0x4c3e6c]
jmp 0x448059
cmp edi, 0x175
ja 0x44803b
inc dword [0x4c3e70]
jmp 0x448059
inc dword [0x4c3e74]
jmp 0x448059
cmp edi, 0x578
ja 0x448053
inc dword [0x4c3e78]
jmp 0x448059
inc dword [0x4c3e7c]
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ecx, esi
mov dword [0x4c3e94], eax
call fcn.004472d2
cmp byte [esi + 0x3c], 0
lea eax, [ebx + edi]
mov edi, dword [sym.imp.WS2_32.dll_ntohs]
mov dword [ebp - 0x20], eax
jne 0x44809c
movzx eax, word [ebx + 0x13]
push eax
call edi
movzx eax, ax
mov dword [ebp - 0x14], eax
movzx eax, word [ebx + 0x15]
push eax
call edi
movzx eax, ax
mov dword [ebp - 0x1c], eax
mov al, byte [ebx + 0x12]
jmp 0x4480bb
movzx eax, word [ebx + 0x10]
push eax
call edi
movzx eax, ax
mov dword [ebp - 0x14], eax
movzx eax, word [ebx + 0x12]
push eax
call edi
movzx eax, ax
mov dword [ebp - 0x1c], eax
mov al, byte [ebx]
shr al, 4
mov byte [ebp - 1], al
cmp al, 5
jb 0x4480c9
xor eax, eax
jmp 0x448950
call fcn.0044464c
and dword [ebp - 0x18], 0
xor ecx, ecx
mov dword [ebp - 0x28], edx
mov dl, byte [esi + 0x3c]
test dl, dl
setne cl
mov dword [ebp - 0x2c], eax
dec ecx
and ecx, 3
add ecx, 0x14
lea eax, [ecx + ebx]
mov dword [ebp - 8], eax
cmp ecx, dword [ebp + 8]
ja 0x4480c2
test dl, dl
jne 0x4480fd
mov cl, byte [ebx + 0x11]
jmp 0x448100
mov cl, byte [ebx + 1]
movzx edi, cl
jmp 0x448145
mov ecx, dword [ebp - 0x20]
inc eax
inc eax
sub ecx, eax
js 0x4480c2
movzx edx, byte [eax - 1]
cmp ecx, edx
jl 0x4480c2
dec edi
je 0x448135
dec edi
jne 0x448138
cmp byte [eax - 1], 8
jne 0x4480c2
mov ecx, dword [eax]
mov dword [esi + 0x1b4], ecx
mov ecx, dword [eax + 4]
mov dword [esi + 0x1b8], ecx
jmp 0x448138
mov dword [ebp - 0x18], eax
movzx ecx, byte [eax - 1]
movzx edi, byte [eax - 2]
add eax, ecx
mov dword [ebp - 8], eax
test edi, edi
jne 0x448105
cmp byte [esi + 0x3d], 1
jne 0x448157
mov eax, dword [ebp - 0x14]
dec eax
mov word [esi + 0x46], ax
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
cmp byte [ebp + 0xc], 0
mov dword [0x4c3e94], eax
mov dword [esi + 0x58], eax
jne 0x4480c2
movzx eax, word [ebp - 0x14]
movzx ecx, word [esi + 0x46]
mov dword [ebp - 0x24], eax
sub eax, ecx
dec eax
mov ecx, 0xffff
and eax, ecx
mov dword [ebp - 0x34], eax
cmp eax, 0x1ff
jb 0x4481c0
cmp eax, 0xfe01
jb 0x4480c2
cmp byte [ebp - 1], 2
je 0x4480c2
mov eax, dword [esi + 0x54]
mov ecx, dword [0x4c3e94]
sub eax, ecx
cmp eax, 0x64
jb 0x4481b6
push 0x64
pop eax
add eax, ecx
mov dword [esi + 0x54], eax
jmp 0x4480c2
movzx edi, word [ebp - 0x1c]
movzx eax, word [esi + 0x48]
movzx edx, word [esi + 0x20]
mov dword [ebp - 0x10], edi
sub edi, eax
lea edi, [edi + edx + 1]
and edi, ecx
cmp edi, edx
mov dword [ebp + 0xc], edi
jle 0x4481e2
and dword [ebp + 0xc], 0
movzx edi, word [esi + 0x20]
test di, di
jbe 0x44828a
sub eax, edx
dec eax
and eax, ecx
cmp dword [ebp - 0x10], eax
jne 0x448286
inc byte [esi + 0x1a]
cmp byte [esi + 0x1a], 3
jne 0x44828a
cmp dword [esi + 0x1cc], 0
je 0x44828a
mov edi, dword [sym.imp.KERNEL32.DLL_GetTickCount]
call edi
mov ecx, dword [esi + 0x1cc]
add eax, 0x2710
mov dword [esi + 0x1bc], eax
movzx eax, word [esi + 0x20]
sub ecx, eax
dec ecx
cmp dword [ebp - 0x10], ecx
jne 0x448269
and dword [esi + 0x1cc], 0
lea eax, [esi + 0x1d0]
mov edx, dword [eax]
and dword [eax], 0
dec edx
push edx
push dword [esi + 0x1c4]
lea ecx, [esi + 0x1c0]
push str.DPA:_Possible_MTU_Range:__d__d_n
mov dword [ecx], edx
call fcn.00447082
add esp, 0xc
jmp 0x44828a
call edi
and dword [esi + 0x1d0], 0
add eax, 0x2710
and dword [esi + 0x1cc], 0
mov dword [esi + 0x1bc], eax
jmp 0x44828a
mov byte [esi + 0x1a], 0
or dword [ebp - 0x3c], 0xffffffff
xor eax, eax
cmp dword [ebp + 0xc], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x38], SysReAllocString
mov dword [ebp + 8], eax
jle 0x448392
movzx ecx, word [esi + 0x20]
movzx eax, word [esi + 0x48]
sub eax, ecx
add eax, dword [ebp + 8]
lea ecx, [esi + 0x1f8]
push eax
call fcn.00447083
mov edi, eax
test edi, edi
je 0x448383
test dword [edi + 0x10], 0x7fffffff
je 0x448383
mov eax, dword [edi + 4]
add dword [ebp - 0xc], eax
movzx eax, word [esi + 0x48]
mov ecx, dword [ebp + 8]
add eax, ecx
cmp eax, dword [esi + 0x1cc]
jne 0x448360
push dword [esi + 0x1c0]
lea eax, [esi + 0x1d0]
mov ecx, dword [eax]
push ecx
push str.ACK:_Possible_MTU_Range:__d__d_n
mov dword [esi + 0x1c4], ecx
call fcn.00447082
and dword [eax], 0
mov eax, dword [esi + 0x1c0]
and dword [esi + 0x1cc], 0
mov ecx, eax
sub ecx, dword [esi + 0x1c4]
add esp, 0xc
cmp ecx, 0x20
ja 0x44834f
mov ecx, esi
mov dword [esi + 0x1c8], eax
call fcn.00446a1e
movzx eax, ax
mov dword [esi + 0x1c0], eax
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
add eax, 0x2710
jmp 0x44835a
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
add eax, 0x3e8
mov dword [esi + 0x1bc], eax
call fcn.0044464c
sub eax, dword [edi + 8]
sbb edx, dword [edi + 0xc]
cmp dword [ebp - 0x38], edx
jg 0x44837d
jl 0x448377
cmp dword [ebp - 0x3c], eax
jae 0x44837d
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 0xc]
jl 0x4482a6
cmp dword [ebp - 0x18], 0
je 0x4483b8
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x10]
movzx ecx, byte [eax - 1]
push eax
add edx, 2
and edx, 0xffff
push esi
lea edi, [ebp - 0x3c]
call fcn.00447855
add dword [ebp - 0xc], eax
cmp byte [esi + 0x3c], 0
push dword [ebx + 4]
jne 0x4483e5
mov edi, dword [sym.imp.WS2_32.dll_ntohl]
call edi
push dword [ebx + 8]
mov dword [ebp + 8], eax
call edi
mov ecx, eax
mov eax, dword [ebp + 8]
mov edx, 0xf4240
mul edx
xor edi, edi
add ecx, eax
adc edi, edx
jmp 0x4483ef
call dword [sym.imp.WS2_32.dll_ntohl]
mov ecx, eax
xor edi, edi
mov eax, dword [0x4c3e94]
mov dword [esi + 0x60], eax
mov eax, ecx
or eax, edi
je 0x448402
mov eax, dword [ebp - 0x2c]
sub eax, ecx
lea edi, [esi + 0x160]
mov ecx, dword [edi]
mov dword [esi + 0x50], eax
mov dword [ebp + 8], ecx
test eax, eax
je 0x44841f
push eax
mov ecx, edi
call fcn.00447143
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x448447
mov edi, dword [edi]
mov eax, ecx
mov edx, edi
sub eax, edi
sub edx, ecx
cmp eax, edx
jae 0x448447
sub ecx, edi
cmp ecx, 0x2710
ja 0x448447
push ecx
lea ecx, [esi + 0x10c]
call fcn.0044712a
cmp byte [esi + 0x3c], 0
jne 0x44846f
push dword [ebx + 0xc]
mov edi, dword [sym.imp.WS2_32.dll_ntohl]
call edi
cmp eax, 0x7fffffff
je 0x4485b5
push dword [ebx + 0xc]
call edi
mov edi, eax
mov dword [ebp + 8], edi
jmp 0x44847d
push dword [ebx + 8]
call dword [sym.imp.WS2_32.dll_ntohl]
mov dword [ebp + 8], eax
mov edi, eax
test edi, edi
je 0x4485b5
push edi
lea ecx, [esi + 0x10c]
call fcn.00447143
cmp dword [esi + 0x1e4], 0
jne 0x4484a0
mov dword [esi + 0x1e4], edi
mov edx, dword [esi + 0x1e4]
mov eax, edx
mov ecx, edi
sub eax, edi
sub ecx, edx
cmp eax, ecx
jbe 0x4484b8
mov eax, ecx
xor ecx, ecx
jmp 0x4484c0
xor ecx, ecx
neg eax
adc ecx, ecx
neg ecx
add dword [esi + 0x1d8], eax
mov edi, dword [esi + 0x1e8]
adc dword [esi + 0x1dc], ecx
inc dword [esi + 0x1e0]
mov eax, dword [esi + 0x1e0]
cmp dword [0x4c3e94], edi
jbe 0x44859d
mov ebx, dword [esi + 0x1d4]
cdq
push edx
push eax
push dword [esi + 0x1dc]
push dword [esi + 0x1d8]
call fcn.004010e0
add edi, 0x1388
mov dword [esi + 0x1e8], edi
xor edi, edi
mov edx, eax
cmp ebx, edx
mov dword [esi + 0x1d4], eax
mov dword [esi + 0x1d8], edi
mov dword [esi + 0x1dc], edi
mov dword [esi + 0x1e0], edi
mov ecx, ebx
jl 0x448538
mov ecx, edx
mov eax, ebx
jg 0x44853a
mov eax, edx
cmp ecx, edi
jle 0x448542
neg ecx
jmp 0x44854a
cmp eax, edi
jge 0x448566
neg eax
mov ecx, eax
cmp ecx, edi
je 0x448566
mov eax, dword [esi + 0x1e4]
sub eax, ecx
add edx, ecx
mov dword [esi + 0x1e4], eax
mov dword [esi + 0x1d4], edx
add ebx, ecx
mov eax, dword [esi + 0x1d4]
sub eax, ebx
cdq
mov edi, eax
mov eax, dword [esi + 0x1ec]
push 0
mov ebx, edx
cdq
push 7
push edx
push eax
call fcn.00401270
push 0
add edi, eax
push 8
adc ebx, edx
push ebx
push edi
call fcn.004010e0
mov ebx, dword [ebp - 0x30]
mov dword [esi + 0x1ec], eax
mov edx, dword [ebp - 0xc]
cmp edx, 1
jl 0x4485b5
push dword [ebp - 0x38]
mov ecx, esi
push dword [ebp - 0x3c]
push dword [ebp + 8]
call fcn.00447955
movzx eax, word [esi + 0x20]
cmp dword [ebp + 0xc], eax
jg 0x44874c
cmp byte [esi + 0x3c], 0
jne 0x4485d4
movzx eax, byte [ebx + 0x10]
imul eax, eax, 0x15e
jmp 0x4485dd
push dword [ebx + 0xc]
call dword [sym.imp.WS2_32.dll_ntohl]
mov dword [esi + 0x38], eax
test eax, eax
jne 0x4485f4
mov eax, dword [0x4c3e94]
add eax, 0x3a98
mov dword [esi + 0xf8], eax
mov al, byte [esi + 0x3d]
cmp al, 1
jne 0x44860d
mov ecx, dword [esi + 0x74]
xor edx, edx
inc edx
mov byte [esi + 0x3d], 2
call dword [esi + 0x84]
jmp 0x44861e
cmp al, 6
jne 0x44861e
movzx eax, word [esi + 0x20]
cmp eax, dword [ebp + 0xc]
jne 0x44861e
mov byte [esi + 0x3d], 8
mov eax, dword [ebp - 0x10]
movzx ecx, word [esi + 0x4c]
inc eax
and eax, 0xffff
mov edx, eax
sub edx, ecx
sub ecx, eax
cmp edx, ecx
jae 0x44863d
mov eax, dword [ebp - 0x1c]
inc eax
mov word [esi + 0x4c], ax
xor edi, edi
cmp dword [ebp + 0xc], edi
jle 0x448668
movzx eax, word [esi + 0x48]
movzx ecx, word [esi + 0x20]
sub eax, ecx
push eax
call fcn.0044773c
cmp eax, 2
je 0x448668
mov eax, 0xffff
add word [esi + 0x20], ax
inc edi
cmp edi, dword [ebp + 0xc]
jl 0x448644
cmp word [esi + 0x20], 0
jbe 0x448698
movzx ebx, word [esi + 0x48]
movzx edi, word [esi + 0x20]
movzx eax, di
mov ecx, ebx
sub ecx, eax
push ecx
lea ecx, [esi + 0x1f8]
call fcn.00447083
test eax, eax
jne 0x448698
dec edi
mov word [esi + 0x20], di
test di, di
ja 0x448673
cmp word [esi + 0x20], 1
jne 0x4486e9
movzx eax, word [esi + 0x48]
dec eax
push eax
lea ecx, [esi + 0x1f8]
call fcn.00447083
mov ecx, eax
test dword [ecx + 0x10], 0x7fffffff
jne 0x4486e9
mov eax, dword [esi + 0x6c]
push 0x64
cdq
pop edi
idiv edi
cmp eax, dword [ecx]
jb 0x4486e9
mov eax, ecx
mov ecx, esi
call fcn.00447d0d
cmp word [esi + 0x18], 0
jne 0x4486e9
mov eax, dword [0x4c3e94]
add eax, 0x70000000
and dword [esi + 0x1c], 0
mov dword [esi + 0x54], eax
mov dl, byte [esi + 0x34]
test dl, 0x20
je 0x44874c
movzx eax, word [esi + 0x4c]
movzx edi, ax
movzx eax, word [esi + 0x4a]
mov ecx, edi
sub ecx, eax
mov eax, 0xffff
test eax, ecx
jge 0x448746
movzx ebx, word [esi + 0x20]
movzx ecx, word [esi + 0x48]
sub ecx, ebx
mov ebx, ecx
and ebx, eax
cmp ebx, edi
jne 0x448746
push ecx
lea ecx, [esi + 0x1f8]
call fcn.00447083
test eax, eax
je 0x44874c
test dword [eax + 0x10], 0x7fffffff
jbe 0x44874c
movzx ecx, word [esi + 0x4c]
inc ecx
mov word [esi + 0x4c], cx
mov ecx, esi
call fcn.00447d0d
jmp 0x44874c
and dl, 0xdf
mov byte [esi + 0x34], dl
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x448766
movzx ecx, byte [eax - 1]
push eax
mov eax, dword [ebp - 0x10]
add eax, 2
push eax
mov eax, esi
call fcn.00447e79
cmp byte [esi + 0x3d], 3
jne 0x448789
xor edx, edx
mov ecx, esi
call fcn.00447de2
test al, al
je 0x448789
mov ecx, dword [esi + 0x74]
push 2
pop edx
mov byte [esi + 0x3d], 2
call dword [esi + 0x84]
cmp byte [ebp - 1], 2
je 0x4480c2
mov al, byte [esi + 0x3d]
cmp al, 2
je 0x4487a2
cmp al, 3
jne 0x4480c2
cmp byte [ebp - 1], 1
jne 0x4487b4
mov ax, word [ebp - 0x14]
or byte [esi + 0x34], 0x10
mov word [esi + 0x44], ax
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x4488b5
mov edi, dword [ebp - 0x20]
mov eax, edi
sub eax, dword [ebp - 8]
mov dword [ebp + 0xc], eax
test eax, eax
jle 0x4487d8
mov edx, dword [ebp - 8]
mov ecx, dword [esi + 0x74]
push eax
call dword [esi + 0x78]
sub edi, dword [ebp - 8]
inc word [esi + 0x46]
add dword [esi + 0x1c], edi
test byte [esi + 0x34], 0x10
je 0x4487f2
mov ax, word [esi + 0x44]
cmp ax, word [esi + 0x46]
je 0x448849
cmp word [esi + 0x18], 0
je 0x448885
movzx edi, word [esi + 0x46]
inc edi
lea ecx, [esi + 0x1f0]
push edi
call fcn.00447083
mov ebx, eax
test ebx, ebx
je 0x448885
lea eax, [esi + 0x1f0]
and edi, dword [eax]
mov eax, dword [eax + 4]
and dword [eax + edi*4], 0
push dword [ebx]
mov ecx, dword [esi + 0x74]
lea edx, [ebx + 4]
call dword [esi + 0x78]
inc word [esi + 0x46]
mov eax, dword [ebx]
add dword [esi + 0x1c], eax
mov ecx, ebx
call fcn.004433ab
mov eax, 0xffff
add word [esi + 0x18], ax
jmp 0x4487e2
mov eax, dword [esi + 0x98]
imul eax, eax, 3
mov byte [esi + 0x3d], 4
cmp eax, 0x3c
jb 0x44885e
push 0x3c
pop eax
mov ecx, dword [0x4c3e94]
add eax, ecx
mov ecx, dword [esi + 0x74]
push 4
pop edx
mov dword [esi + 0xf4], eax
call dword [esi + 0x84]
xor eax, eax
mov dword [esi + 0x1c], 0x961
mov word [esi + 0x18], ax
cmp byte [esi + 0x3d], 4
jne 0x448899
push 0
mov eax, esi
call fcn.0044747c
jmp 0x44894d
mov eax, dword [esi + 0x54]
mov ecx, dword [0x4c3e94]
sub eax, ecx
cmp eax, 0x64
jb 0x448948
push 0x64
pop eax
jmp 0x448948
test byte [esi + 0x34], 0x10
je 0x4488c9
mov cx, word [ebp - 0x14]
cmp cx, word [esi + 0x44]
ja 0x4480c2
cmp eax, 0x3ff
ja 0x4480c2
inc eax
lea ebx, [esi + 0x1f0]
cmp eax, dword [ebx]
jbe 0x4488ec
push eax
mov eax, dword [ebp - 0x24]
inc eax
push eax
mov ecx, ebx
call fcn.0044709a
push dword [ebp - 0x24]
mov ecx, ebx
call fcn.00447083
test eax, eax
jne 0x4480c2
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 8]
lea ecx, [eax + 4]
mov dword [ebp + 0xc], eax
call fcn.0044394c
mov edi, eax
mov eax, dword [ebp + 0xc]
push eax
push dword [ebp - 8]
mov dword [edi], eax
lea eax, [edi + 4]
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [ebx]
and eax, dword [ebp - 0x24]
mov ecx, dword [ebx + 4]
mov dword [ecx + eax*4], edi
mov eax, dword [esi + 0x54]
add esp, 0xc
inc word [esi + 0x18]
mov ecx, dword [0x4c3e94]
sub eax, ecx
cmp eax, 1
jb 0x448948
xor eax, eax
inc eax
add eax, ecx
mov dword [esi + 0x54], eax
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
leave
ret 8