Function at 0x55c150
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd0
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405488
xor eax, eax
push ebp
push 0x55c7d7
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 6], 0
cmp dword [ebp - 4], 0
je 0x55c7b4
mov eax, dword [ebp - 4]
mov edx, 0x55c7f0
call fcn.004053e4
je 0x55c7b4
mov eax, dword [ebp - 4]
mov edx, 0x55c7fc
call fcn.004053e4
jne 0x55c1bc
push 1
call sub.KERNEL32.DLL_Sleep_1
jmp 0x55c7b4
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
cmp dword [eax + 0x105e0c], 0
jne 0x55c1d9
cmp dword [eax + 0x105e08], 0
jbe 0x55c212
jmp 0x55c1db
jle 0x55c212
lea eax, [ebp - 0x10]
push eax
call sub.KERNEL32.DLL_QueryPerformanceCounter
test eax, eax
je 0x55c212
fild qword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
fild qword [eax + 0x105e08]
fdivp st(1)
fmul dword [0x55c800]
call fcn.004030cc
mov edx, dword [ebp + 8]
mov dword [edx - 0x150], eax
jmp 0x55c220
call sub.KERNEL32.DLL_GetTickCount
mov edx, dword [ebp + 8]
mov dword [edx - 0x150], eax
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0040b7d4
test al, al
jne 0x55c427
mov eax, dword [0x590638]
cmp word [eax], 0
jbe 0x55c270
lea edx, [ebp - 0x24]
mov eax, dword [0x590638]
movzx eax, word [eax]
add eax, 0x1a9
call fcn.0040ba78
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
add eax, 0x9c
mov ecx, 0xff
call fcn.00405274
jmp 0x55c28d
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
lea edi, [eax + 0x9c]
mov esi, 0x55c804
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [ebp - 4]
call fcn.00405298
mov edx, dword [ebp - 4]
mov al, byte [edx + eax - 1]
call fcn.00403040
and eax, 0xff
add eax, 0xffffffbd
cmp eax, 0x10
ja case.0x55c2b8.67
mov al, byte [eax + 0x55c2bf]
jmp dword [eax*4 + 0x55c2d0]
mov esi, 0x3e8
mov eax, dword [ebp - 4]
call fcn.00405298
mov edx, eax
lea eax, [ebp - 4]
mov ecx, 1
call fcn.00405538
jmp 0x55c3d2
mov esi, 0xea60
mov eax, dword [ebp - 4]
call fcn.00405298
mov edx, eax
lea eax, [ebp - 4]
mov ecx, 1
call fcn.00405538
jmp 0x55c3d2
mov esi, 0x36ee80
mov eax, dword [ebp - 4]
call fcn.00405298
mov edx, eax
lea eax, [ebp - 4]
mov ecx, 1
call fcn.00405538
jmp 0x55c3d2
mov esi, 0x3e8
mov eax, dword [ebp - 4]
call fcn.00405298
mov edx, eax
sub edx, 2
lea eax, [ebp - 4]
mov ecx, 3
call fcn.00405538
jmp 0x55c3d2
mov esi, 0xea60
mov eax, dword [ebp - 4]
call fcn.00405298
mov edx, eax
sub edx, 2
lea eax, [ebp - 4]
mov ecx, 3
call fcn.00405538
jmp 0x55c3d2
mov esi, 0x36ee80
mov eax, dword [ebp - 4]
call fcn.00405298
mov edx, eax
sub edx, 3
lea eax, [ebp - 4]
mov ecx, 4
call fcn.00405538
jmp 0x55c3d2
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
mov byte [eax + 0x71], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
call fcn.005331a4
jmp 0x55c7b4
xor eax, eax
push ebp
push 0x55c3f6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0040b6e8
imul esi
mov esi, eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x55c42a
mov esi, dword [ebp - 0x20]
xor edi, edi
cmp esi, 0x3e8
seta bl
test bl, bl
je 0x55c44b
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
cmp byte [eax + 0x104538], 0
jne 0x55c44f
xor eax, eax
jmp 0x55c451
mov al, 1
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x55c4c3
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
cmp byte [eax + 0x90], 0
je 0x55c4c3
mov byte [ebp - 6], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
mov byte [eax + 0x70], 1
mov eax, esi
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x28]
call fcn.0040b668
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
add eax, 0x9c
mov ecx, 0xff
call fcn.00405274
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
push eax
push 0x532b38
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
call fcn.00425d90
mov eax, dword [ebp + 8]
add esi, dword [eax - 0x150]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
cmp byte [eax + 0x71], 0
jne 0x55c4ed
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
cmp byte [eax + 0x92], 0
je 0x55c54e
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
cmp byte [eax + 0x90], 0
je 0x55c7b4
mov al, byte [ebp - 6]
or al, byte [ebp - 5]
je 0x55c7b4
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
mov byte [eax + 0x70], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
mov byte [eax + 0x9c], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
push eax
push 0x532b38
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
call fcn.00425d90
jmp 0x55c7b4
push 1
call sub.KERNEL32.DLL_Sleep_1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
test byte [eax + 0x90], bl
je 0x55c6e6
mov eax, esi
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
add eax, 0x96
adc edx, 0
cmp edx, dword [esp + 4]
jne 0x55c591
cmp eax, dword [esp]
pop edx
pop eax
jae 0x55c6e6
jmp 0x55c599
pop edx
pop eax
jge 0x55c6e6
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
cmp byte [eax + 0x10489c], 0
je 0x55c661
cmp edi, 0x64
jbe 0x55c661
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
cmp byte [eax + 0x104539], 0
je 0x55c661
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
mov byte [eax + 0x419e], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
push esi
push edi
lea edi, [eax + 0x419f]
mov esi, 0x55c830
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
push edx
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
mov eax, dword [eax + 0x43a8]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
lea eax, [ebp - 0x2c]
call fcn.0040b668
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
add eax, 0x429f
mov ecx, 0xff
call fcn.00405274
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
push eax
push fcn.00532f4c
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
call fcn.00425d90
mov byte [ebp - 7], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
cmp byte [eax + 0x104538], 0
je 0x55c6d9
cmp edi, 0x64
jbe 0x55c6d9
mov byte [ebp - 6], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
mov byte [eax + 0x70], 1
mov eax, esi
xor edx, edx
sub eax, dword [ebp - 0x18]
sbb edx, dword [ebp - 0x14]
push edx
push eax
lea eax, [ebp - 0x30]
call fcn.0040b668
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
add eax, 0x9c
mov ecx, 0xff
call fcn.00405274
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
push eax
push 0x532b38
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
call fcn.00425d90
mov byte [ebp - 7], 1
cmp byte [ebp - 7], 0
je 0x55c6e5
xor edi, edi
mov byte [ebp - 7], 0
inc edi
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
cmp dword [eax + 0x105e0c], 0
jne 0x55c703
cmp dword [eax + 0x105e08], 0
jbe 0x55c739
jmp 0x55c705
jle 0x55c739
lea eax, [ebp - 0x10]
push eax
call sub.KERNEL32.DLL_QueryPerformanceCounter
test eax, eax
je 0x55c739
fild qword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
fild qword [eax + 0x105e08]
fdivp st(1)
fmul dword [0x55c800]
call fcn.004030cc
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
jmp 0x55c746
call sub.KERNEL32.DLL_GetTickCount
xor edx, edx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov eax, esi
xor edx, edx
cmp edx, dword [ebp - 0x14]
jne 0x55c75a
cmp eax, dword [ebp - 0x18]
ja 0x55c4cc
jmp 0x55c760
jg 0x55c4cc
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
cmp byte [eax + 0x90], 0
je 0x55c7b4
mov al, byte [ebp - 6]
or al, byte [ebp - 5]
je 0x55c7b4
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
mov byte [eax + 0x70], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
mov byte [eax + 0x9c], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
push eax
push 0x532b38
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10c]
call fcn.00425d90
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55c7de
lea eax, [ebp - 0x30]
mov edx, 4
call fcn.00404ffc
lea eax, [ebp - 4]
call fcn.00404fd8
ret
sbb dword [eax], eax