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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xe
push 0
push 0
dec ecx
jne 0x556610
push ebx
push esi
push edi
mov esi, eax
xor eax, eax
push ebp
push 0x556b99
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 8]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050f318
lea eax, [ebp - 8]
call fcn.004b7c30
lea edx, [ebp - 0x10]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.005229c8
push dword [ebp - 0x10]
lea edx, [ebp - 0x14]
mov eax, dword [0x50adf8]
call fcn.0050e0a0
push dword [ebp - 0x14]
push 0x556bb0
push dword [ebp - 8]
push 0x556bbc
lea eax, [ebp - 4]
mov edx, 5
call fcn.0040553c
mov eax, dword [ebp - 4]
call fcn.0040a510
test al, al
jne 0x55669c
mov edx, 5
mov eax, dword [esi + 0x4f8]
mov ecx, dword [eax]
call dword [ecx + 0xe0]
call fcn.004b9988
mov ebx, eax
call fcn.004b9988
mov dword [esi + 0xe80], eax
xor eax, eax
mov dword [esi + 0xe10], eax
call fcn.004b9988
mov dword [esi + 0xe0c], eax
call fcn.004b9988
mov dword [esi + 0xe08], eax
xor ecx, ecx
mov dl, 1
mov eax, dword [0x52aa68]
call fcn.0052aad4
mov dword [esi + 0xe44], eax
call fcn.004b9988
sub eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x1c]
call fcn.0040a0cc
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x18]
mov edx, 0x556bcc
call fcn.004054c0
mov eax, dword [ebp - 0x18]
call fcn.004b8ff8
call fcn.004b9988
mov ebx, eax
mov eax, esi
call fcn.0054e5e0
call fcn.004b9988
sub eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x24]
call fcn.0040a0cc
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x20]
mov edx, 0x556bcc
call fcn.004054c0
mov eax, dword [ebp - 0x20]
call fcn.004b8ff8
call fcn.004b9988
mov ebx, eax
mov eax, esi
call fcn.0054b93c
mov eax, esi
call fcn.0054c0a0
call fcn.004b9988
sub eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x2c]
call fcn.0040a0cc
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x28]
mov edx, 0x556be4
call fcn.004054c0
mov eax, dword [ebp - 0x28]
call fcn.004b8ff8
call fcn.004b9988
mov ebx, eax
mov eax, esi
call fcn.0054b2c4
call fcn.004b9988
sub eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x34]
call fcn.0040a0cc
mov ecx, dword [ebp - 0x34]
lea eax, [ebp - 0x30]
mov edx, 0x556bfc
call fcn.004054c0
mov eax, dword [ebp - 0x30]
call fcn.004b8ff8
call fcn.004b9988
mov ebx, eax
mov eax, esi
call fcn.0054e1ec
call fcn.004b9988
sub eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x3c]
call fcn.0040a0cc
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x38]
mov edx, 0x556c18
call fcn.004054c0
mov eax, dword [ebp - 0x38]
call fcn.004b8ff8
call fcn.004b9988
mov ebx, eax
mov eax, esi
call fcn.0054e520
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dl, 1
call fcn.005106d0
call fcn.004b9988
sub eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x44]
call fcn.0040a0cc
mov ecx, dword [ebp - 0x44]
lea eax, [ebp - 0x40]
mov edx, 0x556c34
call fcn.004054c0
mov eax, dword [ebp - 0x40]
call fcn.004b8ff8
call fcn.004b9988
mov ebx, eax
mov dl, 1
mov eax, dword [0x52477c]
call fcn.00529434
mov dword [esi + 0xe2c], eax
mov dl, 1
mov eax, dword [0x570288]
call fcn.00571cf8
mov edx, dword [0x5866d8]
mov dword [edx], eax
mov eax, dword [esi + 0xe2c]
mov dword [eax + 0xcc], esi
mov dword [eax + 0xc8], 0x53f2ec
call fcn.004b9988
sub eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x4c]
call fcn.0040a0cc
mov ecx, dword [ebp - 0x4c]
lea eax, [ebp - 0x48]
mov edx, 0x556c50
call fcn.004054c0
mov eax, dword [ebp - 0x48]
call fcn.004b8ff8
call fcn.004b9988
mov ebx, eax
xor edx, edx
mov eax, esi
call fcn.00543654
call fcn.004b9988
sub eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x54]
call fcn.0040a0cc
mov ecx, dword [ebp - 0x54]
lea eax, [ebp - 0x50]
mov edx, 0x556c6c
call fcn.004054c0
mov eax, dword [ebp - 0x50]
call fcn.004b8ff8
call fcn.004b9988
mov ebx, eax
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x4ba2d8]
call fcn.004bb818
mov dword [ebp - 0xc], eax
push 0
mov ecx, 0x556c84
mov edx, 0x556c98
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 8]
mov edx, eax
mov eax, dword [esi + 0x3a8]
call fcn.004e0854
mov eax, dword [ebp - 0xc]
call fcn.004041e0
lea edx, [ebp - 0x5c]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.005229c8
push dword [ebp - 0x5c]
lea edx, [ebp - 0x60]
mov eax, dword [0x50adf8]
call fcn.0050e0a0
push dword [ebp - 0x60]
push 0x556bb0
push dword [ebp - 8]
push 0x556ca8
lea eax, [ebp - 0x58]
mov edx, 5
call fcn.0040553c
mov ecx, dword [ebp - 0x58]
mov dl, 1
mov eax, dword [0x531ee8]
call fcn.00531f50
mov dword [esi + 0xe4c], eax
mov eax, dword [esi + 0xa04]
call fcn.004dbc38
mov edx, dword [esi + 0xe2c]
mov byte [edx + 0xab], al
mov eax, dword [0x586a48]
cmp dword [eax], 0
je 0x5569c1
lea edx, [ebp - 0x64]
mov eax, dword [esi + 0x774]
call fcn.004528f8
cmp dword [ebp - 0x64], 0
jne 0x5569c1
mov edx, dword [0x586a48]
mov edx, dword [edx]
mov eax, dword [esi + 0x774]
call fcn.00452928
call fcn.004b9988
sub eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x6c]
call fcn.0040a0cc
mov ecx, dword [ebp - 0x6c]
lea eax, [ebp - 0x68]
mov edx, 0x556cbc
call fcn.004054c0
mov eax, dword [ebp - 0x68]
call fcn.004b8ff8
call fcn.004b9988
mov eax, dword [esi + 0xe2c]
call fcn.004271f0
mov eax, dword [0x5866d8]
mov eax, dword [eax]
call fcn.004271f0
call fcn.004b9988
mov dword [esi + 0xe7c], eax
call fcn.004b9988
mov dword [esi + 0xe24], eax
lea edx, [ebp - 8]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050f318
lea eax, [ebp - 8]
call fcn.00405698
mov edx, eax
mov eax, dword [ebp - 8]
test eax, eax
je 0x556a43
sub eax, 4
mov eax, dword [eax]
mov ecx, dword [0x586404]
mov ecx, dword [ecx]
add ecx, 0x1ac
xchg edx, ecx
xchg ecx, eax
call fcn.00403140
mov eax, dword [ebp - 8]
test eax, eax
je 0x556a65
sub eax, 4
mov eax, dword [eax]
mov edx, dword [0x586404]
mov edx, dword [edx]
mov byte [edx + eax + 0x1ac], 0
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511bf8
mov edx, dword [0x586a98]
mov edx, dword [edx]
mov byte [edx + 0x84], al
mov eax, dword [0x586328]
cmp dword [eax], 0
jbe 0x556abc
mov eax, dword [0x586328]
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, 3
jae 0x556abc
mov edx, dword [0x586328]
inc eax
mov edx, dword [0x586404]
mov edx, dword [edx]
mov dword [edx + 0x36c], eax
lea edx, [ebp - 0x70]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00512754
mov edx, dword [ebp - 0x70]
lea eax, [ebp - 4]
mov ecx, 0x556cd4
call fcn.004054c0
mov eax, dword [ebp - 4]
call fcn.0040a510
test al, al
je 0x556b0c
mov eax, dword [esi + 0x610]
mov eax, dword [eax + 0x260]
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, dword [esi + 0x610]
mov eax, dword [eax + 0x260]
mov edx, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c74
sub al, 1
je 0x556b24
sub al, 3
je 0x556b24
xor edx, edx
jmp 0x556b26
mov dl, 1
mov eax, dword [esi + 0x76c]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [esi + 0x76c]
mov edx, dword [eax]
call dword [edx + 0x50]
mov edx, eax
mov eax, dword [esi + 0xc70]
mov ecx, dword [eax]
call dword [ecx + 0x68]
call fcn.004b9988
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov byte [eax + 0x27d], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x556ba0
lea eax, [ebp - 0x70]
mov edx, 3
call fcn.004051cc
lea eax, [ebp - 0x64]
call fcn.004051a8
lea eax, [ebp - 0x60]
mov edx, 0x15
call fcn.004051cc
lea eax, [ebp - 8]
mov edx, 2
call fcn.004051cc
ret