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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5ab96b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 0x22c], 0xffffffff
je 0x5ab950
mov byte [ebp - 0x12], 0
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc4], 3
jne 0x5ab2f2
mov eax, dword [ebp - 4]
cmp byte [eax + 0x158], 0
je 0x5ab950
mov eax, dword [ebp - 4]
cmp byte [eax + 0x1af], 0
jne 0x5ab946
xor edx, edx
push ebp
push 0x5ab93f
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov byte [eax + 0x1af], 1
mov eax, dword [ebp - 4]
cmp dword [eax + 0x250], 0
jne 0x5ab33c
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc4], 3
jne 0x5ab33c
call fcn.004037b0
jmp 0x5ab950
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc4], 3
jne 0x5ab40b
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20c], 0
jne 0x5ab366
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov dword [edx + 0x20c], eax
xor ecx, ecx
mov eax, dword [ebp - 4]
cmp byte [eax + 0x202], 0
je 0x5ab3b8
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x20c]
mov ecx, 0x3e8
xor edx, edx
div ecx
mov ecx, eax
test ecx, ecx
jne 0x5ab396
mov ecx, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1f0]
xor edx, edx
div ecx
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x204]
jbe 0x5ab3b8
call fcn.004037b0
jmp 0x5ab950
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov al, byte [eax + 0x202]
mov edx, dword [ebp - 4]
cmp al, byte [edx + 0x202]
jne 0x5ab3d4
cmp ecx, 0x1b
jbe 0x5ab40b
mov edx, dword [ebp - 4]
mov byte [edx + 0x202], al
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov dword [edx + 0x20c], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x1f0], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x204]
mov edx, dword [ebp - 4]
mov dword [edx + 0x204], eax
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 0x18], eax
mov ebx, 0x8000
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc4], 3
jne 0x5ab43f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x202], 0
je 0x5ab43f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x204]
cmp eax, ebx
jae 0x5ab43f
mov ebx, eax
cmp ebx, 0x8000
jle 0x5ab44c
mov ebx, 0x8000
cmp ebx, 1
jge 0x5ab456
mov ebx, 0x1000
xor eax, eax
push ebp
push 0x5ab49b
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 8]
mov edx, ebx
call fcn.00404248
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x202]
xor al, 1
push eax
lea eax, [ebp - 8]
call fcn.004040e8
mov edx, eax
mov ecx, ebx
mov eax, dword [ebp - 4]
call fcn.005aafec
mov dword [ebp - 0x10], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5ab4ac
cmp dword [ebp - 0x10], 0xffffffff
je 0x5ab828
mov eax, dword [ebp - 4]
mov al, byte [eax + 0xdc]
sub al, 0xa
je 0x5ab560
dec al
je 0x5ab4d8
sub al, 5
je 0x5ab560
jmp 0x5ab5e1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x201], 5
je 0x5ab5e1
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x10]
call fcn.00404248
mov eax, dword [ebp - 4]
add eax, 0x24c
mov edx, dword [ebp - 8]
call fcn.00403f20
mov eax, dword [ebp - 4]
lea edx, [eax + 0x24c]
mov eax, dword [ebp - 4]
call fcn.005ad328
mov eax, dword [ebp - 4]
cmp byte [eax + 0x201], 5
jne 0x5ab556
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x24c]
call fcn.00403d34
mov eax, dword [ebp - 4]
add eax, 0x24c
mov edx, dword [0x5bc024]
mov edx, dword [edx]
call fcn.00403cf0
mov eax, dword [ebp - 8]
call fcn.00403f18
mov dword [ebp - 0x10], eax
jmp 0x5ab5e1
call fcn.004037b0
jmp 0x5ab950
mov eax, dword [ebp - 4]
cmp byte [eax + 0x200], 0
jne 0x5ab5e1
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x10]
call fcn.00404248
mov eax, dword [ebp - 4]
add eax, 0x24c
mov edx, dword [ebp - 8]
call fcn.00403f20
mov eax, dword [ebp - 4]
lea edx, [eax + 0x24c]
mov eax, dword [ebp - 4]
call fcn.005ad074
mov eax, dword [ebp - 4]
cmp byte [eax + 0x200], 1
jne 0x5ab5d7
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x24c]
call fcn.00403d34
mov eax, dword [ebp - 4]
add eax, 0x24c
mov edx, dword [0x5bc024]
mov edx, dword [edx]
call fcn.00403cf0
mov eax, dword [ebp - 8]
call fcn.00403f18
mov dword [ebp - 0x10], eax
jmp 0x5ab5e1
call fcn.004037b0
jmp 0x5ab950
mov eax, dword [ebp - 4]
cmp byte [eax + 0x1ac], 0
je 0x5ab703
mov eax, dword [ebp - 4]
cmp byte [eax + 0x1ad], 0
je 0x5ab703
mov eax, dword [ebp - 4]
cmp dword [eax + 0x148], 0
jne 0x5ab644
mov dl, 1
mov eax, dword [0x40f96c]
call fcn.00402f88
mov edx, dword [ebp - 4]
mov dword [edx + 0x148], eax
mov dl, 1
mov eax, dword [0x40f96c]
call fcn.00402f88
mov edx, dword [ebp - 4]
mov dword [edx + 0x14c], eax
mov eax, dword [ebp - 4]
add eax, 0xf8
call fcn.0046cac4
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x148]
mov eax, ebx
call fcn.00413948
push edx
push eax
mov eax, ebx
call fcn.00413934
lea eax, [ebp - 8]
call fcn.004040e8
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x148]
mov ecx, dword [ebp - 0x10]
call fcn.00413c14
xor eax, eax
push ebp
push 0x5ab6f4
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x14c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x148]
mov eax, dword [ebp - 4]
call fcn.005a7144
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14c]
call fcn.00413948
mov dword [ebp - 0x10], eax
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x10]
call fcn.00404248
lea eax, [ebp - 8]
call fcn.004040e8
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14c]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x10]
call fcn.0040282c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14c]
call fcn.004140c8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5ab703
xor eax, eax
push ebp
push 0x5ab7f4
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc4], 3
jne 0x5ab769
mov eax, dword [ebp - 4]
cmp dword [eax + 0x250], 0
je 0x5ab7be
mov eax, dword [ebp - 0x10]
cdq
mov ecx, dword [ebp - 4]
add dword [ecx + 0x170], eax
adc dword [ecx + 0x174], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
add dword [eax + 0x1f0], edx
lea eax, [ebp - 8]
call fcn.004040e8
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x250]
mov ecx, dword [ebp - 0x10]
call fcn.00413c14
jmp 0x5ab7be
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x10]
call fcn.00404248
mov eax, dword [ebp - 4]
add eax, 0x24c
mov edx, dword [ebp - 8]
call fcn.00403f20
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc4], 0
jne 0x5ab7be
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x220]
mov edx, dword [0x5bc024]
mov edx, dword [edx]
call fcn.00404028
jne 0x5ab7be
mov eax, dword [ebp - 4]
cmp word [eax + 0x6e], 0
je 0x5ab7be
lea edx, [ebp - 0x11]
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 0x70]
call dword [ebx + 0x6c]
mov eax, dword [ebp - 4]
cmp word [eax + 0x17a], 0
je 0x5ab7ea
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0xc4]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x17c]
call dword [ebx + 0x178]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5ab822
mov byte [ebp - 0x12], 1
jmp 0x5ab886
call sub.wsock32.dll_WSAGetLastError
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.005ac6c8
mov eax, dword [ebp - 4]
call fcn.005ac6c0
cmp eax, 0x2733
je 0x5ab886
mov eax, dword [ebp - 4]
call fcn.005ac6c0
test eax, eax
je 0x5ab886
mov eax, dword [ebp - 4]
call fcn.005ac6c0
lea edx, [ebp - 0xc]
call fcn.004cf68c
mov eax, dword [ebp - 4]
cmp word [eax + 0x76], 0
je 0x5ab886
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
call fcn.005ac6c0
mov ecx, eax
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x78]
call dword [ebx + 0x74]
mov eax, dword [ebp - 4]
cmp byte [eax + 0x268], 0
je 0x5ab8db
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc4], 0
je 0x5ab8db
mov eax, dword [ebp - 4]
cmp byte [eax + 0x202], 0
jne 0x5ab8db
mov eax, dword [ebp - 4]
cmp byte [eax + 0xa4], 0
je 0x5ab8c5
call sub.kernel32.dll_GetTickCount
sub eax, dword [ebp - 0x18]
cmp eax, 0x1388
ja 0x5ab8db
cmp dword [ebp - 0x10], 0xffffffff
je 0x5ab8db
cmp dword [ebp - 0x10], 0
je 0x5ab8db
cmp dword [ebp - 0x10], 1
jne 0x5ab413
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5ab950
mov eax, dword [ebp - 4]
mov byte [eax + 0x1af], 0
cmp byte [ebp - 0x12], 0
je 0x5ab90e
mov eax, dword [ebp - 4]
cmp word [eax + 0x36], 0
je 0x5ab90e
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x38]
call dword [ebx + 0x34]
mov eax, dword [ebp - 4]
cmp byte [eax + 0xa4], 0
je 0x5ab93e
mov eax, dword [ebp - 4]
mov byte [eax + 0xa4], 0
mov eax, dword [ebp - 4]
push eax
push 0
push 0x468
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x248]
push eax
call sub.user32.dll_PostMessageA
ret
mov eax, dword [ebp - 4]
mov byte [eax + 0xa4], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5ab972
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00403cc0
ret