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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 8
push 0
push 0
dec ecx
jne 0x557765
xchg dword [ebp - 4], ecx
push ebx
push esi
mov dword [ebp - 4], ecx
mov dword [ebp - 8], edx
mov esi, eax
mov eax, dword [ebp - 8]
call fcn.0040529c
xor eax, eax
push ebp
push 0x557db7
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax]
movzx eax, byte [eax + 0x2b]
mov edx, dword [0x577f3c]
mov edx, dword [edx]
dec edx
cmp eax, edx
jl 0x5577cb
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov eax, esi
call fcn.00558824
lea ecx, [esi + 0x380]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, esi
call fcn.0055751c
jmp 0x557d8f
lea eax, [ebp - 0xc]
push eax
mov ecx, 0x10
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.00405314
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x5577ed
sub ebx, 4
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
push eax
mov ecx, ebx
sub ecx, 0x10
mov edx, 0x11
mov eax, dword [ebp - 8]
call fcn.00405314
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
call fcn.004c4cec
movzx ebx, word [ebp - 0x18]
movzx eax, bx
cmp eax, 0x69
jg 0x55785a
je 0x557c3b
cmp eax, 0x66
jg 0x557845
je 0x557a02
sub eax, 0x45
je 0x557d8f
sub eax, 0x1f
je 0x55789b
dec eax
je 0x55792b
jmp 0x557d59
sub eax, 0x67
je 0x557ad9
dec eax
je 0x557bab
jmp 0x557d59
cmp eax, 0xbc2
jg 0x557880
je 0x557d8f
sub eax, 0x6a
je 0x557d8f
sub eax, 0x162
je 0x557d8f
jmp 0x557d59
sub eax, 0xbc9
je 0x557d8f
sub eax, 0x5cc9
je 0x557cc9
jmp 0x557d59
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp byte [eax + 0x1d], 0
je 0x5578ba
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov edx, dword [edx]
sub eax, dword [edx + 0x24]
cmp eax, 0xc8
jbe 0x5578f4
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov dword [edx + 0x24], eax
movzx eax, word [ebp - 0x16]
shr eax, 8
cmp al, 1
sete al
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov byte [edx + 0x29], al
push 0x7fffffff
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.0055811c
jmp 0x557d8f
mov eax, dword [0x577e84]
inc dword [eax]
mov eax, dword [0x577ddc]
cmp byte [eax], 0
je 0x557d8f
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
lea eax, [ebp - 0x20]
mov edx, 0x557dcc
call fcn.00405134
mov eax, dword [ebp - 0x20]
call fcn.00562a68
jmp 0x557d8f
push ebp
call fcn.00557720
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp byte [eax + 0x1d], 0
je 0x5579ba
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov edx, dword [edx]
sub eax, dword [edx + 0x24]
cmp eax, 0x3e8
jbe 0x5579ba
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp dword [eax], 0
je 0x5579a9
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [eax]
mov eax, dword [0x577cec]
mov eax, dword [eax]
call fcn.00546b80
test al, al
je 0x5579a9
push 0x7fffffff
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.00558c6c
jmp 0x557d8f
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov eax, esi
call fcn.00558824
jmp 0x557d8f
mov eax, dword [0x5779d8]
inc dword [eax]
mov eax, dword [0x577ddc]
cmp byte [eax], 0
je 0x557d8f
push 0x557dec
mov eax, dword [ebp - 4]
mov eax, dword [eax]
push dword [eax]
push 0x557e0c
mov eax, dword [ebp - 4]
mov eax, dword [eax]
push dword [eax + 4]
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.004051b0
mov eax, dword [ebp - 0x24]
call fcn.00562a68
jmp 0x557d8f
push ebp
call fcn.00557720
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp byte [eax + 0x1d], 0
je 0x557a91
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov edx, dword [edx]
sub eax, dword [edx + 0x24]
cmp eax, 0x3e8
jbe 0x557a91
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp dword [eax], 0
je 0x557a80
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [eax]
mov eax, dword [0x577cec]
mov eax, dword [eax]
call fcn.00546b80
test al, al
je 0x557a80
push 0x7fffffff
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.00558898
jmp 0x557d8f
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov eax, esi
call fcn.00558824
jmp 0x557d8f
mov eax, dword [0x577cf8]
inc dword [eax]
mov eax, dword [0x577ddc]
cmp byte [eax], 0
je 0x557d8f
push 0x557e18
mov eax, dword [ebp - 4]
mov eax, dword [eax]
push dword [eax]
push 0x557e0c
mov eax, dword [ebp - 4]
mov eax, dword [eax]
push dword [eax + 4]
lea eax, [ebp - 0x28]
mov edx, 4
call fcn.004051b0
mov eax, dword [ebp - 0x28]
call fcn.00562a68
jmp 0x557d8f
push ebp
call fcn.00557720
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp byte [eax + 0x1d], 0
je 0x557b63
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp dword [eax], 0
je 0x557b52
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [eax]
mov eax, dword [0x577cec]
mov eax, dword [eax]
call fcn.00546b80
test al, al
je 0x557b52
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp byte [eax + 0x2a], 0
jbe 0x557b30
mov eax, dword [ebp - 4]
mov eax, dword [eax]
inc byte [eax + 0x2b]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov byte [eax + 0x2a], 0
push 0x7fffffff
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.00558fe0
jmp 0x557d8f
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov eax, esi
call fcn.00558824
jmp 0x557d8f
mov eax, dword [0x577e44]
inc dword [eax]
mov eax, dword [0x577ddc]
cmp byte [eax], 0
je 0x557d8f
push 0x557e38
mov eax, dword [ebp - 4]
mov eax, dword [eax]
push dword [eax]
push 0x557e0c
mov eax, dword [ebp - 4]
mov eax, dword [eax]
push dword [eax + 4]
lea eax, [ebp - 0x2c]
mov edx, 4
call fcn.004051b0
mov eax, dword [ebp - 0x2c]
call fcn.00562a68
jmp 0x557d8f
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp byte [eax + 0x1e], 0
je 0x557bca
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov edx, dword [edx]
sub eax, dword [edx + 0x24]
cmp eax, 0x7d0
jbe 0x557c04
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov dword [edx + 0x24], eax
movzx eax, word [ebp - 0x16]
shr eax, 8
cmp al, 1
sete al
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov byte [edx + 0x29], al
push 0x7fffffff
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.00558498
jmp 0x557d8f
mov eax, dword [0x577e84]
inc dword [eax]
mov eax, dword [0x577ddc]
cmp byte [eax], 0
je 0x557d8f
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
lea eax, [ebp - 0x30]
mov edx, 0x557e58
call fcn.00405134
mov eax, dword [ebp - 0x30]
call fcn.00562a68
jmp 0x557d8f
push ebp
call fcn.00557720
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp byte [eax + 0x1e], 0
je 0x557c58
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp byte [eax + 0x1d], 0
jne 0x557c6c
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov edx, dword [edx]
sub eax, dword [edx + 0x24]
cmp eax, 0x3e8
jbe 0x557c92
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov dword [edx + 0x24], eax
push 0x7fffffff
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.005586b4
jmp 0x557d8f
mov eax, dword [0x577e84]
inc dword [eax]
mov eax, dword [0x577ddc]
cmp byte [eax], 0
je 0x557d8f
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
lea eax, [ebp - 0x34]
mov edx, 0x557e7c
call fcn.00405134
mov eax, dword [ebp - 0x34]
call fcn.00562a68
jmp 0x557d8f
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp byte [eax + 0x2a], 0
jbe 0x557d1f
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov edx, dword [edx]
sub eax, dword [edx + 0x24]
cmp eax, 0x3e8
jbe 0x557d1f
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov dword [edx + 0x24], eax
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.00557fd4
test al, al
jne 0x557d8f
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
mov edx, 0x557e9c
mov eax, esi
call fcn.00557ee4
jmp 0x557d8f
mov eax, dword [0x577ddc]
cmp byte [eax], 0
je 0x557d8f
push 0x557eb4
mov eax, dword [ebp - 4]
mov eax, dword [eax]
push dword [eax]
push 0x557e0c
mov eax, dword [ebp - 4]
mov eax, dword [eax]
push dword [eax + 4]
lea eax, [ebp - 0x38]
mov edx, 4
call fcn.004051b0
mov eax, dword [ebp - 0x38]
call fcn.00562a68
jmp 0x557d8f
mov eax, dword [0x577ddc]
cmp byte [eax], 0
je 0x557d88
lea eax, [ebp - 0x3c]
push eax
movzx eax, bx
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0
lea edx, [ebp - 0x44]
xor ecx, ecx
mov eax, 0x557ed4
call fcn.0040b194
mov eax, dword [ebp - 0x3c]
call fcn.00562a68
mov eax, dword [0x577c8c]
inc dword [eax]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x557dbe
lea eax, [ebp - 0x3c]
mov edx, 8
call fcn.00404e30
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00404e30
ret