Function at 0x1005c5c0
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 0x1005c621
call edi
sub eax, dword [esi*4 + 0x10119d40]
cmp eax, 0x7d0
jbe 0x1005c616
mov eax, dword [esi*4 + 0x10119570]
push eax
call fcn.10037c90
add esp, 4
test al, al
je 0x1005c648
mov ebx, dword [0x1011aed4]
inc esi
cmp esi, ebx
jl 0x1005c5f2
mov ecx, dword [0x362f468]
mov eax, dword [0x362f464]
mov edi, dword [0x36208e4]
mov dword [ebp - 0xe3c], edi
mov dword [ebp - 0xe40], ecx
cmp eax, ecx
je 0x1005cd0a
jmp 0x1005c6b8
mov ebx, dword [0x1011aed4]
mov ecx, ebx
sub ecx, esi
dec ecx
xor edi, edi
test ecx, ecx
jle 0x1005c6a6
lea ecx, [esi + 0x1011a510]
lea eax, [esi*4 + 0x10119570]
jmp 0x1005c670
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 0x1005c670
dec ebx
mov dword [0x1011aed4], ebx
jmp 0x1005c5e6
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.100867b0
fld dword [esi + 8]
mov dword [ebp - 0xe20], eax
call fcn.100867b0
mov ecx, dword [esi + 0x30]
mov dword [ebp - 0xe24], eax
mov dword [ebp - 0xe28], ecx
cmp dword [0x101956dc], ebx
jne 0x1005c746
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.10008200
fcomp dword [0x100a0250]
add esp, 0x10
fnstsw ax
test ah, 5
jnp 0x1005ccf2
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.10008200
fcomp dword [0x100a0250]
add esp, 0x10
fnstsw ax
test ah, 5
jnp 0x1005ccf2
fld dword [ebp - 0xe18]
sub esp, 0x10
fstp dword [esp + 0xc]
fld dword [ebp - 0xe30]
fstp dword [esp + 8]
fld dword [edi + 0x1f6c]
fstp dword [esp + 4]
fld dword [edi + 0x1f64]
fstp dword [esp]
call fcn.10008200
add esp, 0x10
call fcn.100867b0
mov dword [ebp - 0xe18], eax
mov eax, dword [esi + 0xc]
test eax, eax
je 0x1005ccf2
lea edx, [ebp - 0xcc]
push edx
push eax
call fcn.1004b170
add esp, 8
cmp dword [0x1019588c], ebx
jne 0x1005cbdc
mov ecx, 0x10094454
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c830
test dl, dl
je 0x1005c82c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c830
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c810
xor eax, eax
jmp 0x1005c835
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb96
mov ecx, 0x1009444c
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c868
test dl, dl
je 0x1005c864
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c868
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c848
xor eax, eax
jmp 0x1005c86d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb96
mov ecx, 0x10094440
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c8a0
test dl, dl
je 0x1005c89c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c8a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c880
xor eax, eax
jmp 0x1005c8a5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb96
mov ecx, 0x10094434
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c8d8
test dl, dl
je 0x1005c8d4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c8d8
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c8b8
xor eax, eax
jmp 0x1005c8dd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb96
mov ecx, 0x10097bf0
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c910
test dl, dl
je 0x1005c90c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c910
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c8f0
xor eax, eax
jmp 0x1005c915
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb96
mov ecx, 0x10097be8
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c948
test dl, dl
je 0x1005c944
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c948
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c928
xor eax, eax
jmp 0x1005c94d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb96
mov ecx, 0x10094420
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c980
test dl, dl
je 0x1005c97c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c980
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c960
xor eax, eax
jmp 0x1005c985
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb96
mov ecx, 0x10094414
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c9b8
test dl, dl
je 0x1005c9b4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c9b8
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c998
xor eax, eax
jmp 0x1005c9bd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb96
mov ecx, 0x10097bd4
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005c9f0
test dl, dl
je 0x1005c9ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005c9f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005c9d0
xor eax, eax
jmp 0x1005c9f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb96
mov ecx, 0x10097bc8
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005ca28
test dl, dl
je 0x1005ca24
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005ca28
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005ca08
xor eax, eax
jmp 0x1005ca2d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb96
mov ecx, 0x10094400
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005ca60
test dl, dl
je 0x1005ca5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005ca60
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005ca40
xor eax, eax
jmp 0x1005ca65
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb96
mov ecx, 0x100943f4
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005ca98
test dl, dl
je 0x1005ca94
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005ca98
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005ca78
xor eax, eax
jmp 0x1005ca9d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb96
mov ecx, 0x1009e2f4
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005cad0
test dl, dl
je 0x1005cacc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005cad0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005cab0
xor eax, eax
jmp 0x1005cad5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb7e
mov ecx, 0x1009e2e8
lea eax, [ebp - 0xcc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005cb08
test dl, dl
je 0x1005cb04
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005cb08
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005cae8
xor eax, eax
jmp 0x1005cb0d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1005cb7e
mov ecx, 0x10097be0
lea eax, [ebp - 0xcc]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005cb40
test dl, dl
je 0x1005cb3c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005cb40
add eax, 2
add ecx, 2
test dl, dl
jne 0x1005cb20
xor eax, eax
jmp 0x1005cb45
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1005cbdc
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.10036690
add esp, 4
test al, al
jne 0x1005cbdc
jmp 0x1005ccf2
mov ecx, dword [ebp - 0xe28]
push ecx
lea edx, [ebp - 0xcc]
push edx
call fcn.1004a540
add esp, 8
jmp 0x1005cbd4
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.100365f0
add esp, 0xc
test al, al
je 0x1005ccf2
xor ebx, ebx
xor edi, edi
xor esi, esi
cmp dword [0x1011aed4], ebx
jle 0x1005cc50
lea ebx, [ebx]
mov edx, dword [ebp - 0xe34]
cmp dword [esi*4 + 0x10119570], edx
jne 0x1005cc39
cmp dword [esi*4 + 0x1011a704], 2
jge 0x1005cc4b
cmp byte [esi + 0x1011a510], bl
jne 0x1005cc25
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi*4 + 0x10119d40]
cmp eax, 0x1388
jae 0x1005cc44
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi*4 + 0x10119d40]
cmp eax, 0xea60
jb 0x1005cc4b
inc esi
cmp esi, dword [0x1011aed4]
jl 0x1005cbf0
jmp 0x1005cc50
xor ebx, ebx
lea edi, [ebx + 1]
jmp 0x1005cc50
mov ebx, 1
mov eax, dword [ebp + 8]
cmp dword [ebp - 0xe18], eax
jge 0x1005ccf2
test ebx, ebx
jne 0x1005ccf2
cmp dword [0x101956c4], 1
jne 0x1005ccb8
lea ecx, [ebp - 0xcc]
push ecx
call fcn.10037120
add esp, 4
cmp al, 1
je 0x1005ccf2
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 0x1005cceb
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 0x1005c6b2
mov ebx, dword [0x1011aed4]
mov edi, dword [ebp - 0xe1c]
xor eax, eax
test edi, edi
jle 0x1005cd33
mov cl, byte [ebp + edi - 0x194]
lea ecx, [ecx]
test cl, cl
je 0x1005cd2b
inc eax
cmp eax, edi
jl 0x1005cd20
jmp 0x1005cd33
mov eax, edi
lea ecx, [ecx]
dec eax
jne 0x1005cd30
xor esi, esi
xor eax, eax
mov edx, 0x1869f
test edi, edi
jle 0x1005cdb6
mov ecx, dword [ebp + eax*4 - 0x7d4]
cmp ecx, edx
jge 0x1005cd54
mov esi, dword [ebp + eax*4 - 0x4b4]
mov edx, ecx
inc eax
cmp eax, edi
jl 0x1005cd40
test esi, esi
jle 0x1005cdb4
xor eax, eax
test ebx, ebx
jle 0x1005cd74
mov ecx, dword [esi + 0x20]
cmp dword [eax*4 + 0x10119570], ecx
je 0x1005cdc7
inc eax
cmp eax, ebx
jl 0x1005cd66
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.10086746
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.10086746
mov esp, ebp
pop ebp
ret