Function at 0x498c22
Capabilities:
Check for time delay via gettickcount

Disassembly:
push 0x10
mov eax, 0x57864e
call fcn.0056357c
mov edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp + 0x1c]
xor ecx, ecx
mov dword [ebp - 0x14], eax
inc ecx
mov eax, dword [edi + 0x32c]
cmp eax, ecx
je 0x498c54
cmp eax, 2
je 0x498c54
cmp eax, 3
jne 0x498f0d
mov esi, dword [edi + 0x2d0]
mov ecx, esi
push dword [ebp + 0x14]
call fcn.004a4a25
mov ebx, eax
mov dword [ebp - 0x10], ebx
test ebx, ebx
js 0x498f0d
push ebx
mov ecx, esi
call fcn.004a4a58
mov esi, eax
mov dword [ebp - 0x18], esi
test esi, esi
je 0x498f0d
mov ecx, dword [ebp + 0xc]
mov dword [esi + 0x10], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esi + 0x14], ecx
mov cx, word [ebp + 0x18]
mov word [esi + 0x264], cx
push dword [esi]
mov ecx, dword [edi + 0x680]
call fcn.004a5528
mov dl, byte [ebp + 0x28]
test eax, eax
je 0x498cb7
movzx ecx, dl
mov dword [eax + 0x14], ecx
movzx eax, dl
xor edx, edx
sub eax, edx
je 0x498d98
dec eax
je 0x498d5b
dec eax
jne 0x498f0d
push dword [esi]
push str.Peer__d____
push edi
call fcn.0049a033
add esp, 0xc
cmp byte [esi + 0xe], 0xff
je 0x498cee
inc dword [edi + 0x528]
xor eax, eax
mov ecx, edi
inc eax
push eax
push esi
call fcn.0049befc
cmp dword [esi + 0x25c], 0
mov ecx, dword [edi + 0x2d0]
setle bl
test bl, bl
sete al
movzx eax, al
push eax
push dword [ebp - 0x10]
call fcn.004a4a81
test bl, bl
je 0x498f0d
mov dword [esi + 0x258], 0x7530
call dword [sym.imp.KERNEL32.dll_GetTickCount]
test eax, eax
push 1
pop ecx
cmove eax, ecx
lea ecx, [edi + 0x2d4]
mov dword [esi + 0x254], eax
lea eax, [ebp - 0x18]
inc dword [esi + 0x25c]
push eax
call fcn.004a0413
jmp 0x498f0d
push dword [esi]
push 0x596a48
push edi
call fcn.0049a033
add esp, 0xc
cmp byte [esi + 0xe], 0xff
je 0x498d77
inc dword [edi + 0x52c]
xor eax, eax
mov ecx, edi
inc eax
push eax
push esi
call fcn.0049befc
mov ecx, dword [edi + 0x2d0]
xor eax, eax
inc eax
push eax
push ebx
call fcn.004a4a81
jmp 0x498f0d
mov eax, dword [ebp + 0x2c]
sub eax, dword [esi + 0x220]
cmp byte [esi + 0xe], 1
mov ebx, dword [ebp + 0x20]
mov dword [esi + 0x224], eax
mov eax, dword [ebp + 0x24]
mov dword [esi + 0x220], edx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], eax
jbe 0x498dd5
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx]
mov dword [esi + 4], eax
mov eax, dword [ecx + 4]
mov dword [esi + 8], eax
mov ax, word [ebp + 8]
mov word [esi + 0xc], ax
mov ecx, dword [edi + 0x2d0]
mov byte [ebp - 0x10], dl
push dword [ebp - 0x10]
mov edx, dword [ecx + 4]
mov eax, edx
sub eax, dword [ecx]
mov ecx, dword [ecx]
sar eax, 2
push eax
call fcn.004a5e49
pop ecx
pop ecx
mov ecx, dword [edi + 0x694]
test ecx, ecx
je 0x498e08
push dword [ebp + 0x24]
push ebx
call fcn.004a659c
mov eax, dword [edi + 0x240]
or eax, dword [edi + 0x244]
mov ecx, dword [ebp + 0x24]
jne 0x498e64
mov eax, ebx
or eax, ecx
je 0x498e64
push ecx
push ebx
mov ecx, edi
call fcn.0049e02d
xor eax, eax
inc eax
mov byte [edi + 0x69d], al
mov eax, dword [edi + 0x240]
or eax, dword [edi + 0x244]
je 0x498e61
mov ecx, edi
call fcn.00498655
test eax, eax
je 0x498e61
push 0
push 0
mov ecx, edi
call fcn.0049e02d
mov ecx, edi
call fcn.0049d7c1
jmp 0x498f0d
mov ecx, dword [ebp + 0x24]
cmp dword [edi + 0x240], ebx
jne 0x498f06
cmp dword [edi + 0x244], ecx
jne 0x498f06
or ebx, ecx
je 0x498f06
mov ebx, dword [ebp - 0x14]
mov ecx, esi
push ebx
call fcn.004a6f47
inc dword [edi + 0x530]
push ebx
push dword [esi + 0x224]
push dword [esi]
push 0x5969e0
push edi
call fcn.0049a033
add esp, 0x14
cmp dword [edi + 0x610], 0
je 0x498f0d
lea esi, [edi + 0x628]
mov ecx, esi
mov dword [ebp - 0x14], esi
call fcn.0053a750
and dword [ebp - 4], 0
mov edi, dword [edi + 0x610]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0x18]
sub eax, dword [edi + 4]
push dword [ecx]
push eax
mov eax, dword [ebp - 0x1c]
push str._d__d
push str.source_check
push dword [eax + 0x610]
call fcn.005341e9
or dword [ebp - 4], 0xffffffff
add esp, 0x14
mov ecx, esi
call fcn.0053a760
jmp 0x498f0d
mov dword [esi + 0x40], 4
call fcn.0056354a
ret 0x2c