Function at 0x1005c5f0
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 0x1005c651
call edi
sub eax, dword [esi*4 + 0x10119d40]
cmp eax, 0x7d0
jbe 0x1005c646
mov eax, dword [esi*4 + 0x10119570]
push eax
call fcn.10037d10
add esp, 4
test al, al
je 0x1005c678
mov ebx, dword [0x1011aed4]
inc esi
cmp esi, ebx
jl 0x1005c622
mov ecx, dword [0x36fade0]
mov eax, dword [0x36faddc]
mov edi, dword [0x2fb7ac4]
mov dword [ebp - 0xe3c], edi
mov dword [ebp - 0xe40], ecx
cmp eax, ecx
je 0x1005cd3a
jmp 0x1005c6e8
mov ebx, dword [0x1011aed4]
mov ecx, ebx
sub ecx, esi
dec ecx
xor edi, edi
test ecx, ecx
jle 0x1005c6d6
lea ecx, [esi + 0x1011a510]
lea eax, [esi*4 + 0x10119570]
jmp 0x1005c6a0
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 0x1005c6a0
dec ebx
mov dword [0x1011aed4], ebx
jmp 0x1005c616
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.10086850
fld dword [esi + 8]
mov dword [ebp - 0xe20], eax
call fcn.10086850
mov ecx, dword [esi + 0x30]
mov dword [ebp - 0xe24], eax
mov dword [ebp - 0xe28], ecx
cmp dword [0x101956dc], ebx
jne 0x1005c776
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.10008290
fcomp dword [0x100a0108]
add esp, 0x10
fnstsw ax
test ah, 5
jnp 0x1005cd22
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.10008290
fcomp dword [0x100a0108]
add esp, 0x10
fnstsw ax
test ah, 5
jnp 0x1005cd22
fld dword [ebp - 0xe18]
sub esp, 0x10
fstp dword [esp + 0xc]
fld dword [ebp - 0xe30]
fstp dword [esp + 8]
fld dword [edi + 0x1f68]
fstp dword [esp + 4]
fld dword [edi + 0x1f60]
fstp dword [esp]
call fcn.10008290
add esp, 0x10
call fcn.10086850
mov dword [ebp - 0xe18], eax
mov eax, dword [esi + 0xc]
test eax, eax
je 0x1005cd22
lea edx, [ebp - 0xcc]
push edx
push eax
call fcn.1004b080
add esp, 8
cmp dword [0x1019588c], ebx
jne 0x1005cc0c
mov ecx, 0x10094454
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c860
test dl, dl
je 0x1005c85c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c860
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c840
xor eax, eax
jmp 0x1005c865
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cbc6
mov ecx, 0x1009444c
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c898
test dl, dl
je 0x1005c894
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c898
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c878
xor eax, eax
jmp 0x1005c89d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cbc6
mov ecx, 0x10094440
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c8d0
test dl, dl
je 0x1005c8cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c8d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c8b0
xor eax, eax
jmp 0x1005c8d5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cbc6
mov ecx, 0x10094434
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c908
test dl, dl
je 0x1005c904
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c908
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c8e8
xor eax, eax
jmp 0x1005c90d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cbc6
mov ecx, 0x10097c18
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c940
test dl, dl
je 0x1005c93c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c940
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c920
xor eax, eax
jmp 0x1005c945
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cbc6
mov ecx, 0x10097c10
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c978
test dl, dl
je 0x1005c974
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c978
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c958
xor eax, eax
jmp 0x1005c97d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cbc6
mov ecx, 0x10094420
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c9b0
test dl, dl
je 0x1005c9ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c9b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c990
xor eax, eax
jmp 0x1005c9b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cbc6
mov ecx, 0x10094414
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c9e8
test dl, dl
je 0x1005c9e4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c9e8
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c9c8
xor eax, eax
jmp 0x1005c9ed
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cbc6
mov ecx, 0x10097bfc
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005ca20
test dl, dl
je 0x1005ca1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005ca20
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005ca00
xor eax, eax
jmp 0x1005ca25
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cbc6
mov ecx, 0x10097bf0
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005ca58
test dl, dl
je 0x1005ca54
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005ca58
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005ca38
xor eax, eax
jmp 0x1005ca5d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cbc6
mov ecx, 0x10094400
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005ca90
test dl, dl
je 0x1005ca8c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005ca90
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005ca70
xor eax, eax
jmp 0x1005ca95
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cbc6
mov ecx, 0x100943f4
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005cac8
test dl, dl
je 0x1005cac4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005cac8
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005caa8
xor eax, eax
jmp 0x1005cacd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cbc6
mov ecx, 0x1009e33c
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005cb00
test dl, dl
je 0x1005cafc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005cb00
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005cae0
xor eax, eax
jmp 0x1005cb05
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cbae
mov ecx, 0x1009e330
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005cb38
test dl, dl
je 0x1005cb34
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005cb38
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005cb18
xor eax, eax
jmp 0x1005cb3d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cbae
mov ecx, 0x10097c08
lea eax, [ebp - 0xcc]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005cb70
test dl, dl
je 0x1005cb6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005cb70
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005cb50
xor eax, eax
jmp 0x1005cb75
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1005cc0c
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.10036710
add esp, 4
test al, al
jne 0x1005cc0c
jmp 0x1005cd22
mov ecx, dword [ebp - 0xe28]
push ecx
lea edx, [ebp - 0xcc]
push edx
call fcn.1004a450
add esp, 8
jmp 0x1005cc04
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.10036670
add esp, 0xc
test al, al
je 0x1005cd22
xor ebx, ebx
xor edi, edi
xor esi, esi
cmp dword [0x1011aed4], ebx
jle 0x1005cc80
lea ebx, [ebx]
mov edx, dword [ebp - 0xe34]
cmp dword [esi*4 + 0x10119570], edx
jne 0x1005cc69
cmp dword [esi*4 + 0x1011a704], 2
jge 0x1005cc7b
cmp byte [esi + 0x1011a510], bl
jne 0x1005cc55
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi*4 + 0x10119d40]
cmp eax, 0x1388
jae 0x1005cc74
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi*4 + 0x10119d40]
cmp eax, 0xea60
jb 0x1005cc7b
inc esi
cmp esi, dword [0x1011aed4]
jl 0x1005cc20
jmp 0x1005cc80
xor ebx, ebx
lea edi, [ebx + 1]
jmp 0x1005cc80
mov ebx, 1
mov eax, dword [ebp + 8]
cmp dword [ebp - 0xe18], eax
jge 0x1005cd22
test ebx, ebx
jne 0x1005cd22
cmp dword [0x101956c4], 1
jne 0x1005cce8
lea ecx, [ebp - 0xcc]
push ecx
call fcn.100371a0
add esp, 4
cmp al, 1
je 0x1005cd22
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 0x1005cd1b
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 0x1005c6e2
mov ebx, dword [0x1011aed4]
mov edi, dword [ebp - 0xe1c]
xor eax, eax
test edi, edi
jle 0x1005cd63
mov cl, byte [ebp + edi - 0x194]
lea ecx, [ecx]
test cl, cl
je 0x1005cd5b
inc eax
cmp eax, edi
jl 0x1005cd50
jmp 0x1005cd63
mov eax, edi
lea ecx, [ecx]
dec eax
jne 0x1005cd60
xor esi, esi
xor eax, eax
mov edx, 0x1869f
test edi, edi
jle 0x1005cde6
mov ecx, dword [ebp + eax*4 - 0x7d4]
cmp ecx, edx
jge 0x1005cd84
mov esi, dword [ebp + eax*4 - 0x4b4]
mov edx, ecx
inc eax
cmp eax, edi
jl 0x1005cd70
test esi, esi
jle 0x1005cde4
xor eax, eax
test ebx, ebx
jle 0x1005cda4
mov ecx, dword [esi + 0x20]
cmp dword [eax*4 + 0x10119570], ecx
je 0x1005cdf7
inc eax
cmp eax, ebx
jl 0x1005cd96
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.100867e6
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.100867e6
mov esp, ebp
pop ebp
ret