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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe40
mov eax, dword [0x100ae8c8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [0x1011aed4]
push esi
push edi
mov dword [ebp - 0xe1c], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
xor esi, esi
test ebx, ebx
jle 0x1005c5d1
call edi
sub eax, dword [esi*4 + 0x10119d40]
cmp eax, 0x7d0
jbe 0x1005c5c6
mov eax, dword [esi*4 + 0x10119570]
push eax
call fcn.10037c70
add esp, 4
test al, al
je 0x1005c5f8
mov ebx, dword [0x1011aed4]
inc esi
cmp esi, ebx
jl 0x1005c5a2
mov ecx, dword [0x372e170]
mov eax, dword [0x372e16c]
mov edi, dword [0x2feacec]
mov dword [ebp - 0xe3c], edi
mov dword [ebp - 0xe40], ecx
cmp eax, ecx
je 0x1005ccba
jmp 0x1005c668
mov ebx, dword [0x1011aed4]
mov ecx, ebx
sub ecx, esi
dec ecx
xor edi, edi
test ecx, ecx
jle 0x1005c656
lea ecx, [esi + 0x1011a510]
lea eax, [esi*4 + 0x10119570]
jmp 0x1005c620
mov edx, dword [eax + 4]
mov dword [eax], edx
mov edx, dword [eax + 0x7d4]
mov dword [eax + 0x7d0], edx
mov dl, byte [ecx + 1]
mov byte [ecx], dl
mov edx, dword [eax + 0x1198]
mov dword [eax + 0x1194], edx
mov ebx, dword [0x1011aed4]
mov edx, ebx
sub edx, esi
inc edi
dec edx
add eax, 4
inc ecx
cmp edi, edx
jl 0x1005c620
dec ebx
mov dword [0x1011aed4], ebx
jmp 0x1005c596
mov edi, dword [ebp - 0xe3c]
mov esi, dword [eax]
fld dword [esi]
add eax, 4
mov dword [ebp - 0xe38], eax
mov eax, dword [esi + 0x20]
mov ebx, 1
mov dword [ebp - 0xe2c], esi
mov dword [ebp - 0xe34], eax
call fcn.100867f0
fld dword [esi + 8]
mov dword [ebp - 0xe20], eax
call fcn.100867f0
mov ecx, dword [esi + 0x30]
mov dword [ebp - 0xe24], eax
mov dword [ebp - 0xe28], ecx
cmp dword [0x101956dc], ebx
jne 0x1005c6f6
fild dword [0x1012d3c4]
sub esp, 0x10
fstp dword [esp + 0xc]
fild dword [0x1012d3c0]
fstp dword [esp + 8]
fild dword [ebp - 0xe24]
fstp dword [esp + 4]
fild dword [ebp - 0xe20]
fstp dword [esp]
call fcn.10008270
fcomp dword [0x100a0108]
add esp, 0x10
fnstsw ax
test ah, 5
jnp 0x1005cca2
fild dword [ebp - 0xe24]
sub esp, 0x10
fstp dword [ebp - 0xe18]
fild dword [ebp - 0xe20]
fstp dword [ebp - 0xe30]
fild dword [0x100ae390]
fstp dword [esp + 0xc]
fild dword [0x100ae38c]
fstp dword [esp + 8]
fld dword [ebp - 0xe18]
fstp dword [esp + 4]
fld dword [ebp - 0xe30]
fstp dword [esp]
call fcn.10008270
fcomp dword [0x100a0108]
add esp, 0x10
fnstsw ax
test ah, 5
jnp 0x1005cca2
fld dword [ebp - 0xe18]
sub esp, 0x10
fstp dword [esp + 0xc]
fld dword [ebp - 0xe30]
fstp dword [esp + 8]
fld dword [edi + 0x1f74]
fstp dword [esp + 4]
fld dword [edi + 0x1f6c]
fstp dword [esp]
call fcn.10008270
add esp, 0x10
call fcn.100867f0
mov dword [ebp - 0xe18], eax
mov eax, dword [esi + 0xc]
test eax, eax
je 0x1005cca2
lea edx, [ebp - 0xcc]
push edx
push eax
call fcn.1004afd0
add esp, 8
cmp dword [0x1019588c], ebx
jne 0x1005cb8c
mov ecx, 0x10094454
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c7e0
test dl, dl
je 0x1005c7dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c7e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c7c0
xor eax, eax
jmp 0x1005c7e5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb46
mov ecx, 0x1009444c
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c818
test dl, dl
je 0x1005c814
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c818
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c7f8
xor eax, eax
jmp 0x1005c81d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb46
mov ecx, 0x10094440
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c850
test dl, dl
je 0x1005c84c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c850
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c830
xor eax, eax
jmp 0x1005c855
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb46
mov ecx, 0x10094434
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c888
test dl, dl
je 0x1005c884
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c888
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c868
xor eax, eax
jmp 0x1005c88d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb46
mov ecx, 0x10097c18
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c8c0
test dl, dl
je 0x1005c8bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c8c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c8a0
xor eax, eax
jmp 0x1005c8c5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb46
mov ecx, 0x10097c10
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c8f8
test dl, dl
je 0x1005c8f4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c8f8
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c8d8
xor eax, eax
jmp 0x1005c8fd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb46
mov ecx, 0x10094420
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c930
test dl, dl
je 0x1005c92c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c930
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c910
xor eax, eax
jmp 0x1005c935
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb46
mov ecx, 0x10094414
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c968
test dl, dl
je 0x1005c964
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c968
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c948
xor eax, eax
jmp 0x1005c96d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb46
mov ecx, 0x10097bfc
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c9a0
test dl, dl
je 0x1005c99c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c9a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c980
xor eax, eax
jmp 0x1005c9a5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb46
mov ecx, 0x10097bf0
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c9d8
test dl, dl
je 0x1005c9d4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c9d8
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c9b8
xor eax, eax
jmp 0x1005c9dd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb46
mov ecx, 0x10094400
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005ca10
test dl, dl
je 0x1005ca0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005ca10
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c9f0
xor eax, eax
jmp 0x1005ca15
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb46
mov ecx, 0x100943f4
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005ca48
test dl, dl
je 0x1005ca44
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005ca48
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005ca28
xor eax, eax
jmp 0x1005ca4d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb46
mov ecx, 0x1009e33c
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005ca80
test dl, dl
je 0x1005ca7c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005ca80
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005ca60
xor eax, eax
jmp 0x1005ca85
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb2e
mov ecx, 0x1009e330
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005cab8
test dl, dl
je 0x1005cab4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005cab8
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005ca98
xor eax, eax
jmp 0x1005cabd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb2e
mov ecx, 0x10097c08
lea eax, [ebp - 0xcc]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005caf0
test dl, dl
je 0x1005caec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005caf0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005cad0
xor eax, eax
jmp 0x1005caf5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1005cb8c
mov ecx, dword [ebp - 0xe28]
mov eax, 0x14f8b589
imul ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x186a0
sub ecx, eax
push ecx
call fcn.10036670
add esp, 4
test al, al
jne 0x1005cb8c
jmp 0x1005cca2
mov ecx, dword [ebp - 0xe28]
push ecx
lea edx, [ebp - 0xcc]
push edx
call fcn.1004a390
add esp, 8
jmp 0x1005cb84
mov ecx, dword [ebp - 0xe28]
mov eax, 0x14f8b589
imul ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x64
sub ecx, eax
push ecx
lea ecx, [ebp - 0xcc]
push ecx
call fcn.100365d0
add esp, 0xc
test al, al
je 0x1005cca2
xor ebx, ebx
xor edi, edi
xor esi, esi
cmp dword [0x1011aed4], ebx
jle 0x1005cc00
lea ebx, [ebx]
mov edx, dword [ebp - 0xe34]
cmp dword [esi*4 + 0x10119570], edx
jne 0x1005cbe9
cmp dword [esi*4 + 0x1011a704], 2
jge 0x1005cbfb
cmp byte [esi + 0x1011a510], bl
jne 0x1005cbd5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi*4 + 0x10119d40]
cmp eax, 0x1388
jae 0x1005cbf4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi*4 + 0x10119d40]
cmp eax, 0xea60
jb 0x1005cbfb
inc esi
cmp esi, dword [0x1011aed4]
jl 0x1005cba0
jmp 0x1005cc00
xor ebx, ebx
lea edi, [ebx + 1]
jmp 0x1005cc00
mov ebx, 1
mov eax, dword [ebp + 8]
cmp dword [ebp - 0xe18], eax
jge 0x1005cca2
test ebx, ebx
jne 0x1005cca2
cmp dword [0x101956c4], 1
jne 0x1005cc68
lea ecx, [ebp - 0xcc]
push ecx
call fcn.10037100
add esp, 4
cmp al, 1
je 0x1005cca2
mov eax, dword [ebp - 0xe1c]
mov edx, dword [ebp - 0xe2c]
mov ecx, dword [ebp - 0xe18]
cmp edi, 1
mov dword [ebp + eax*4 - 0x4b4], edx
sete dl
mov dword [ebp + eax*4 - 0x7d4], ecx
mov ecx, dword [ebp - 0xe24]
mov byte [ebp + eax - 0x194], dl
jmp 0x1005cc9b
mov eax, dword [ebp - 0xe1c]
mov ecx, dword [ebp - 0xe2c]
mov edx, dword [ebp - 0xe18]
mov dword [ebp + eax*4 - 0x4b4], ecx
mov ecx, dword [ebp - 0xe20]
cmp edi, 1
sete cl
mov dword [ebp + eax*4 - 0x7d4], edx
mov byte [ebp + eax - 0x194], cl
inc eax
mov dword [ebp - 0xe1c], eax
mov eax, dword [ebp - 0xe38]
cmp eax, dword [ebp - 0xe40]
jne 0x1005c662
mov ebx, dword [0x1011aed4]
mov edi, dword [ebp - 0xe1c]
xor eax, eax
test edi, edi
jle 0x1005cce3
mov cl, byte [ebp + edi - 0x194]
lea ecx, [ecx]
test cl, cl
je 0x1005ccdb
inc eax
cmp eax, edi
jl 0x1005ccd0
jmp 0x1005cce3
mov eax, edi
lea ecx, [ecx]
dec eax
jne 0x1005cce0
xor esi, esi
xor eax, eax
mov edx, 0x1869f
test edi, edi
jle 0x1005cd66
mov ecx, dword [ebp + eax*4 - 0x7d4]
cmp ecx, edx
jge 0x1005cd04
mov esi, dword [ebp + eax*4 - 0x4b4]
mov edx, ecx
inc eax
cmp eax, edi
jl 0x1005ccf0
test esi, esi
jle 0x1005cd64
xor eax, eax
test ebx, ebx
jle 0x1005cd24
mov ecx, dword [esi + 0x20]
cmp dword [eax*4 + 0x10119570], ecx
je 0x1005cd77
inc eax
cmp eax, ebx
jl 0x1005cd16
mov edx, dword [esi + 0x20]
mov dword [ebx*4 + 0x10119570], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x1011aed4]
mov dword [ecx*4 + 0x10119d40], eax
mov edx, dword [0x1011aed4]
mov byte [edx + 0x1011a510], 1
mov eax, dword [0x1011aed4]
mov dword [eax*4 + 0x1011a704], 0
inc dword [0x1011aed4]
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10086786
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
pop edi
mov byte [eax + 0x1011a510], 1
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.10086786
mov esp, ebp
pop ebp
ret