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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100824d0
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x10097060]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x597dc]
cmp eax, 5
je 0x100524a1
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [ebp - 0x18], 0
call sym.kernel.dll_Initialize
mov eax, dword [0x1009a470]
mov edx, dword [eax]
test edx, edx
je 0x100524bf
mov dword [ebp - 0x18], 1
call sym.kernel.dll_Initialize
cmp dword [ebp - 0x18], 0
je 0x1005248b
mov ecx, dword [esi + 0x14]
mov edi, dword [ecx + 0x59774]
lea edx, [ebp - 0x30]
push edx
mov ecx, edi
mov dword [ebp - 0x14], edi
call fcn.10052330
cmp dword [edi + 0x30], 0
mov dword [0x10099e30], 1
jne 0x10052577
mov eax, dword [esi + 0x14]
cmp dword [eax + 0x2b0], 0
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x10052545
call ebx
sub eax, dword [esi + 0x28]
cmp eax, 0x13ec
jbe 0x1005251d
call ebx
mov dword [esi + 0x28], eax
jmp 0x10052ccd
mov ecx, dword [0x1009a210]
mov edx, dword [ecx]
mov eax, dword [edx + 0x7c]
call eax
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [0x1009a210]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
jmp 0x10052b91
call ebx
sub eax, dword [esi + 0x28]
cmp eax, 0x1450
jbe 0x10052b93
mov ecx, dword [0x1009a210]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
call eax
call ebx
push 0x7d0
mov dword [esi + 0x28], eax
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x10052b93
call fcn.10065cf0
test al, al
je 0x100528b3
cmp dword [esi + 0x60], 0
jne 0x10052594
push 2
call fcn.1003a730
add esp, 4
lea ebx, [esi + 0x3c]
mov dword [esi + 0x60], 1
mov eax, dword [ebx + 4]
test eax, eax
mov dword [ebp - 0x1c], ebx
je 0x10052644
mov ecx, dword [ebx + 8]
sub ecx, eax
sar ecx, 4
je 0x10052644
mov eax, ebx
call fcn.10005290
cmp dword [esi + 0x30], eax
jae 0x10052644
lea edx, [ebp - 0x20]
push edx
mov ecx, 0x10085ec8
call fcn.10001a30
mov dword [ebp - 4], 0
mov edi, dword [esi + 0x30]
mov esi, ebx
call fcn.100052b0
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
mov edi, dword [eax + 0x30]
call fcn.100052b0
fld dword [eax + 8]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x10]
mov edi, dword [edx + 0x30]
sub esp, 0x10
fstp qword [esp + 8]
fld dword [ecx]
fstp qword [esp]
call fcn.100052b0
fld dword [eax + 4]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x30]
sub esp, 8
fstp qword [esp]
push ecx
push str.resurrect__d__f__f__f
lea edi, [ebp - 0x20]
call fcn.10016f90
add esp, 0x20
mov eax, edi
mov dword [ebp - 4], 0xffffffff
call fcn.1001f1f0
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
mov eax, dword [ebx + 4]
test eax, eax
je 0x10052655
mov edx, dword [ebx + 8]
sub edx, eax
sar edx, 4
jne 0x100526ac
call fcn.10066330
test eax, eax
jne 0x100526ac
fldz
fcom dword [ebp - 0x2c]
fnstsw ax
test ah, 0x44
jp 0x10052696
fcom dword [ebp - 0x30]
fnstsw ax
test ah, 0x44
jp 0x10052696
fcomp dword [ebp - 0x28]
fnstsw ax
test ah, 0x44
jnp 0x1005288f
mov ebx, esi
call fcn.10052d70
mov ebx, dword [ebp - 0x1c]
xor eax, eax
mov dword [esi + 0x5c], eax
jmp 0x1005288c
mov ebx, esi
fstp st(0)
call fcn.10052d70
mov ebx, dword [ebp - 0x1c]
xor eax, eax
mov dword [esi + 0x5c], eax
jmp 0x1005288c
mov ecx, dword [ebx + 4]
test ecx, ecx
jne 0x100526b7
xor eax, eax
jmp 0x100526bf
mov eax, dword [ebx + 8]
sub eax, ecx
sar eax, 4
cmp dword [esi + 0x30], eax
jae 0x1005288f
mov eax, esi
mov dword [ebp - 0x18], 0
call fcn.10052cf0
test eax, eax
jne 0x10052704
call fcn.10065c10
test al, al
jne 0x10052704
mov edi, dword [esi + 0x30]
mov esi, ebx
call fcn.100052b0
mov esi, dword [ebp - 0x14]
mov ecx, 3
mov edx, 0x1221
call fcn.1004a2f0
jmp 0x100527b2
mov eax, esi
call fcn.10052cf0
test eax, eax
je 0x10052752
call fcn.10065c10
test al, al
jne 0x10052752
fld dword [0x1008b854]
push ecx
fstp dword [esp]
call fcn.10065a60
add esp, 4
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [0x1009a210]
mov eax, dword [ecx]
mov edx, dword [eax + 0x84]
push 0x58
call edx
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.10065c10
test al, al
jne 0x10052766
mov eax, esi
call fcn.10052cf0
test eax, eax
je 0x100527ba
fld dword [edi + 0x24]
fstp dword [ebp - 0x30]
fld dword [edi + 0x20]
fstp dword [ebp - 0x34]
fld dword [edi + 0x28]
fstp dword [ebp - 0x2c]
fld dword [edi + 0x2c]
mov edi, dword [esi + 0x30]
mov esi, ebx
fstp dword [ebp - 0x28]
call fcn.100052b0
lea ecx, [ebp - 0x34]
call fcn.100591c0
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
push ecx
fstp dword [esp]
call fcn.1004e700
mov eax, dword [ebp - 0x10]
mov edi, dword [eax + 0x30]
call fcn.100052b0
mov esi, dword [ebp - 0x14]
call fcn.1004a3d0
mov edi, esi
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [ebp - 0x18], 1
mov dword [esi + 0x2c], eax
jne 0x10052829
call fcn.10065b20
test eax, eax
je 0x10052823
fld dword [edi + 0x24]
mov ecx, dword [esi + 0x30]
fstp dword [ebp - 0x30]
mov eax, ebx
fld dword [edi + 0x20]
mov dword [ebp - 0x18], ecx
fstp dword [ebp - 0x34]
fld dword [edi + 0x28]
fstp dword [ebp - 0x2c]
fld dword [edi + 0x2c]
fstp dword [ebp - 0x28]
call fcn.10005290
cmp dword [ebp - 0x18], eax
jae 0x10052823
mov edi, dword [ebp - 0x18]
mov esi, ebx
call fcn.100052b0
lea ecx, [ebp - 0x34]
call fcn.100591c0
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
push ecx
fstp dword [esp]
call fcn.1004e700
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
add dword [esi + 0x30], 1
jmp 0x1005287d
cmp dword [ebp - 0x18], 2
jne 0x10052835
add dword [esi + 0x30], 1
jmp 0x1005287d
call fcn.10065b20
test eax, eax
je 0x1005287d
fld dword [edi + 0x24]
fstp dword [ebp - 0x30]
fld dword [edi + 0x20]
fstp dword [ebp - 0x34]
fld dword [edi + 0x28]
fstp dword [ebp - 0x2c]
fld dword [edi + 0x2c]
mov edi, dword [esi + 0x30]
mov esi, ebx
fstp dword [ebp - 0x28]
call fcn.100052b0
lea ecx, [ebp - 0x34]
call fcn.100591c0
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
push ecx
fstp dword [esp]
call fcn.1004e700
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
mov eax, ebx
call fcn.10005290
add eax, 0xffffffff
cmp dword [esi + 0x30], eax
jb 0x1005288f
mov dword [esi + 0x30], eax
mov eax, dword [ebx + 4]
test eax, eax
jne 0x1005289a
xor ebx, ebx
jmp 0x100528a2
mov ebx, dword [ebx + 8]
sub ebx, eax
sar ebx, 4
add ebx, 0xffffffff
cmp dword [esi + 0x30], ebx
jne 0x10052b93
jmp 0x10052b6e
call fcn.10065cf0
test al, al
jne 0x10052b93
cmp dword [esi + 0x60], 0
jne 0x100528d0
push 2
call fcn.1003a730
add esp, 4
lea ebx, [esi + 0x3c]
mov eax, ebx
mov dword [esi + 0x60], 1
mov dword [ebp - 0x1c], ebx
call fcn.10005290
test eax, eax
je 0x10052980
cmp dword [esi + 0x30], eax
jae 0x10052980
lea ecx, [ebp - 0x18]
push ecx
mov ecx, 0x10085ec8
call fcn.10001a30
mov dword [ebp - 4], 1
mov edi, dword [esi + 0x30]
mov esi, ebx
call fcn.100052b0
mov edx, dword [ebp - 0x10]
mov edi, dword [edx + 0x30]
mov dword [ebp - 0x20], eax
call fcn.100052b0
fld dword [eax + 8]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
mov edi, dword [ecx + 0x30]
sub esp, 0x10
fstp qword [esp + 8]
fld dword [eax]
fstp qword [esp]
call fcn.100052b0
fld dword [eax + 4]
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x30]
sub esp, 8
fstp qword [esp]
push eax
push str.resurrect__d__f__f__f
lea edi, [ebp - 0x18]
call fcn.10016f90
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx - 0xc]
add esp, 0x20
mov esi, edi
call fcn.10002450
mov eax, edi
mov dword [ebp - 4], 0xffffffff
call fcn.1001f1f0
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
mov eax, ebx
call fcn.10005290
test eax, eax
jne 0x100529aa
call fcn.10066330
test eax, eax
jne 0x100529aa
mov ebx, esi
call fcn.10052d70
mov ebx, dword [ebp - 0x1c]
mov dword [esi + 0x30], 0
jmp 0x10052b0b
mov edx, dword [esi + 0x30]
mov eax, ebx
mov dword [ebp - 0x18], edx
call fcn.10005290
cmp dword [ebp - 0x18], eax
jae 0x10052b0b
mov edi, dword [ebp - 0x18]
mov esi, ebx
call fcn.100052b0
mov esi, dword [ebp - 0x14]
mov ecx, 3
mov edx, 0x221
call fcn.1004a2f0
mov ecx, 1
cmp eax, ecx
jne 0x10052a99
mov eax, dword [ebp - 0x10]
add dword [eax + 0x30], ecx
mov edi, dword [eax + 0x30]
mov eax, ebx
call fcn.10005290
cmp edi, eax
jae 0x10052aeb
add eax, 0xfffffffc
cmp edi, eax
jae 0x10052aeb
call fcn.10065ba0
test eax, eax
jne 0x10052a88
call fcn.10065c10
test al, al
jne 0x10052a88
call fcn.10065c80
test eax, eax
je 0x10052a88
call fcn.1002fc60
test eax, eax
je 0x10052a53
push esi
call fcn.10004080
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.1002f190
mov ecx, dword [0x1009a210]
mov eax, dword [ecx]
mov edx, dword [eax + 0x2c]
call edx
call fcn.10065ba0
test eax, eax
jne 0x10052a88
call fcn.1002fc20
test eax, eax
je 0x10052a88
push esi
call fcn.10004080
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.1002f170
mov ecx, dword [0x1009a210]
mov eax, dword [ecx]
mov edx, dword [eax + 0x2c]
call edx
call fcn.10065b20
test eax, eax
je 0x10052aeb
mov eax, dword [ebp - 0x10]
mov edi, dword [eax + 0x30]
jmp 0x10052ab5
cmp eax, 2
jne 0x10052aa6
mov eax, dword [ebp - 0x10]
add dword [eax + 0x30], ecx
jmp 0x10052aeb
call fcn.10065b20
test eax, eax
je 0x10052aeb
mov ecx, dword [ebp - 0x10]
mov edi, dword [ecx + 0x30]
fld dword [esi + 0x24]
fstp dword [ebp - 0x30]
fld dword [esi + 0x20]
fstp dword [ebp - 0x34]
fld dword [esi + 0x28]
fstp dword [ebp - 0x2c]
fld dword [esi + 0x2c]
mov esi, ebx
fstp dword [ebp - 0x28]
call fcn.100052b0
lea ecx, [ebp - 0x34]
call fcn.100591c0
fstp dword [ebp - 0x20]
fld dword [ebp - 0x20]
push ecx
fstp dword [esp]
call fcn.1004e700
mov eax, ebx
call fcn.10005290
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
add eax, 0xffffffff
cmp dword [edx + 0x30], eax
jb 0x10052b09
mov ecx, edx
mov dword [ecx + 0x30], eax
mov esi, ecx
jmp 0x10052b0b
mov esi, edx
mov eax, ebx
call fcn.10005290
lea edx, [eax - 4]
cmp dword [esi + 0x30], edx
jne 0x10052b56
cmp eax, 4
jbe 0x10052b56
call fcn.10065ba0
test eax, eax
je 0x10052b56
call fcn.10065b20
test eax, eax
je 0x10052b48
call fcn.10065ba0
test eax, eax
je 0x10052b48
call fcn.1002fc60
test eax, eax
je 0x10052b48
call fcn.1002f1b0
call fcn.10065ba0
test eax, eax
je 0x10052b56
call fcn.1004e750
mov eax, ebx
call fcn.10005290
sub eax, 1
cmp dword [esi + 0x30], eax
jne 0x10052b93
mov eax, dword [esi + 0x14]
push eax
call fcn.1001d100
mov ecx, dword [0x1009a210]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
push 0xfa0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [0x1009a210]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
call eax
mov ecx, dword [esi + 0x14]
cmp dword [ecx + 0x160], 0
je 0x10052bd0
cmp dword [0x1009a1e8], 0
jne 0x10052bd0
call fcn.10066330
test eax, eax
jne 0x10052bd0
mov ecx, dword [0x1009a210]
mov edx, dword [ecx]
mov eax, dword [edx + 0x98]
push str.ResetInstances__
call eax
mov dword [0x1009a1e8], 1
mov dword [ebp - 0x1c], 0
mov eax, dword [0x1009a550]
mov eax, dword [eax]
push eax
mov ecx, dword [0x1009a554]
mov eax, dword [0x1009a558]
call eax
test eax, eax
je 0x10052bf6
mov ebx, dword [eax + 8]
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], 0
je 0x10052ccd
cmp dword [edi + 0x30], 0
je 0x10052ccd
call fcn.10065cf0
test al, al
jne 0x10052ccd
mov ebx, dword [esi + 0x14]
add ebx, 0x597a8
call fcn.1001f090
lea eax, [esi + 0x3c]
call fcn.10014ae0
mov eax, dword [esi + 0x14]
add eax, 0x597e8
lea ebx, [ebp - 0x20]
mov dword [ebp - 0x20], 5
call fcn.100053d0
fldz
xor edi, edi
mov dword [eax], edi
fst dword [esi + 0x50]
fst dword [esi + 0x4c]
push 3
fstp dword [esi + 0x54]
mov dword [esi + 0x60], edi
call fcn.1003a730
mov ecx, dword [esi + 0x14]
mov eax, 1
add dword [0x1009a21c], eax
mov dword [0x10099e2c], eax
mov dword [0x10099e30], edi
mov dword [ecx + 0xb2990], edi
mov edx, dword [esi + 0x14]
mov dword [edx + 0xb2994], edi
mov ebx, dword [esi + 0x14]
add esp, 4
add ebx, 0x597a8
call fcn.1001f090
mov edi, dword [esi + 0x14]
add edi, 0x5979c
call fcn.1001f110
mov ebx, dword [esi + 0x14]
add ebx, 0x59784
call fcn.1001f090
mov ebx, dword [esi + 0x14]
add ebx, 0x59778
call fcn.1001f090
mov eax, dword [esi + 0x14]
mov dword [eax + 0x644], 0
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4