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

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x617495
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebx + 0x408], esi
mov ax, word [esi + 0x1a]
test ax, ax
jbe 0x617270
cmp ax, 0xffff
ja 0x617270
cmp word [esi + 0x1c], 0
jne 0x617241
cmp byte [esi + 0x24], 0
jne 0x617241
call sub.kernel32.dll_GetTickCount
mov dword [esi + 0x28], eax
cmp dword [ebx + 0x404], 0
je 0x617199
lea eax, [ebx + 0x404]
call fcn.0050f70c
xor ecx, ecx
mov dl, 1
mov eax, dword [0x5ed17c]
call fcn.005eebfc
mov edi, eax
mov dword [ebx + 0x404], edi
xor edx, edx
mov eax, edi
call fcn.005ee8e4
xor edx, edx
mov eax, dword [ebx + 0x404]
call fcn.005ee9a4
mov eax, dword [ebx + 0x404]
mov dword [eax + 0x54], ebx
mov dword [eax + 0x50], 0x617658
mov dword [eax + 0x64], ebx
mov dword [eax + 0x60], 0x6176c8
mov dword [eax + 0x8c], ebx
mov dword [eax + 0x88], 0x6176d8
mov dword [eax + 0x7c], ebx
mov dword [eax + 0x78], 0x6176f0
mov eax, dword [esi + 0xc]
call fcn.005c3908
test al, al
je 0x617215
mov edx, dword [esi + 0xc]
mov eax, dword [ebx + 0x404]
call fcn.005ee924
jmp 0x617223
mov edx, dword [esi + 0xc]
mov eax, dword [ebx + 0x404]
call fcn.005ee9a4
movzx edx, word [esi + 0x1a]
mov eax, dword [ebx + 0x404]
call fcn.005eea24
mov dl, 1
mov eax, dword [ebx + 0x404]
call fcn.005ee8e4
jmp 0x617270
cmp dword [ebx + 0x38c], 0
je 0x617270
push 1
movzx eax, word [esi + 0x1a]
push eax
mov eax, dword [esi + 0xc]
call fcn.005051dc
push eax
push 0
push 0xf827ad
call dword [ebx + 0x38c]
cmp eax, 1
sete al
mov byte [esi + 0x24], al
mov eax, dword [ebx + 0x408]
cmp byte [eax + 0x1e], 0
je 0x61729b
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebx + 0x408]
sub eax, dword [edx + 0x20]
cmp eax, 0x2bf20
jb 0x61729b
mov eax, dword [ebx + 0x408]
mov byte [eax + 0x1e], 0
mov eax, dword [ebx + 0x408]
cmp byte [eax + 0x1e], 0
je 0x617315
mov eax, dword [ebx + 0x390]
mov edx, dword [eax + 0x67b]
mov eax, dword [ebx + 0x318]
mov eax, dword [eax + 0x68]
call fcn.00528268
lea edx, [ebp - 4]
mov eax, dword [0x627ac8]
call fcn.00506ef8
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x318]
call fcn.0054760c
mov dl, 1
mov eax, dword [ebx + 0x31c]
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov dl, 1
mov eax, dword [ebx + 0x328]
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov dl, 1
mov eax, dword [ebx + 0x32c]
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov dl, 1
mov eax, dword [ebx + 0x330]
mov ecx, dword [eax]
call dword [ecx + 0x64]
jmp 0x61747a
mov eax, dword [ebx + 0x390]
mov edx, dword [eax + 0x677]
mov eax, dword [ebx + 0x318]
mov eax, dword [eax + 0x68]
call fcn.00528268
lea edx, [ebp - 8]
mov eax, dword [0x627970]
call fcn.00506ef8
mov edx, dword [ebp - 8]
mov eax, dword [ebx + 0x318]
call fcn.0054760c
mov eax, dword [0x627bec]
mov eax, dword [eax]
mov eax, dword [eax + 0x32c]
mov eax, dword [eax + 0x68]
mov edx, 0xffffff
call fcn.00528268
lea edx, [ebp - 0xc]
mov eax, dword [0x627970]
call fcn.00506ef8
mov edx, dword [ebp - 0xc]
mov eax, dword [0x627bec]
mov eax, dword [eax]
mov eax, dword [eax + 0x32c]
call fcn.0054760c
mov eax, dword [0x627ae0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
mov eax, dword [eax + 0x68]
mov edx, 0xffffff
call fcn.00528268
lea edx, [ebp - 0x10]
mov eax, dword [0x627970]
call fcn.00506ef8
mov edx, dword [ebp - 0x10]
mov eax, dword [0x627ae0]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
call fcn.0054760c
mov eax, dword [0x62792c]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x68]
mov edx, 0xffffff
call fcn.00528268
lea edx, [ebp - 0x14]
mov eax, dword [0x627970]
call fcn.00506ef8
mov edx, dword [ebp - 0x14]
mov eax, dword [0x62792c]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
call fcn.0054760c
xor edx, edx
mov eax, dword [ebx + 0x31c]
mov ecx, dword [eax]
call dword [ecx + 0x64]
xor edx, edx
mov eax, dword [ebx + 0x328]
mov ecx, dword [eax]
call dword [ecx + 0x64]
xor edx, edx
mov eax, dword [ebx + 0x32c]
mov ecx, dword [eax]
call dword [ecx + 0x64]
xor edx, edx
mov eax, dword [ebx + 0x330]
mov ecx, dword [eax]
call dword [ecx + 0x64]
xor eax, eax
mov dword [ebx + 0x398], eax
mov byte [ebx + 0x39c], 0
lea eax, [ebx + 0x3a0]
call fcn.00504d0c
lea eax, [ebx + 0x3a4]
call fcn.00504d0c
lea eax, [ebx + 0x3a8]
call fcn.00504d0c
xor eax, eax
mov dword [ebx + 0x3ac], eax
push 1
mov cx, word [esi + 0x10]
mov edx, dword [esi + 0xc]
mov eax, ebx
call fcn.0061701c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x61749c
lea eax, [ebp - 0x14]
mov edx, 5
call fcn.00504d30
ret