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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 5
push 0
push 0
dec ecx
jne 0x52825c
push ebx
push esi
push edi
mov esi, eax
xor eax, eax
push ebp
push 0x528850
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
cmp dword [esi + 0xc4], 0
jle 0x528326
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e140
cdq
push edx
push eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050ee74
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fdiv dword [0x528860]
fild dword [esi + 0xc4]
fmulp st(1)
call fcn.00403424
cmp edx, dword [esp + 4]
jne 0x5282c8
cmp eax, dword [esp]
pop edx
pop eax
jb 0x528326
jmp 0x5282cc
pop edx
pop eax
jl 0x528326
push 0x52886c
lea edx, [ebp - 0x1c]
mov eax, dword [esi + 0xc4]
call fcn.00409fe0
push dword [ebp - 0x1c]
push 0x528880
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.0040553c
mov edx, dword [ebp - 0x18]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.0051f280
mov ecx, 1
mov edx, esi
mov eax, dword [esi + 0xcc]
call dword [esi + 0xc8]
xor edx, edx
mov eax, esi
call fcn.00527e6c
mov bl, 1
jmp 0x528814
mov eax, esi
call fcn.0052a6a4
test al, al
je 0x528365
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x528890
call fcn.0051f280
mov ecx, 2
mov edx, esi
mov eax, dword [esi + 0xcc]
call dword [esi + 0xc8]
xor edx, edx
mov eax, esi
call fcn.00527e6c
mov bl, 1
jmp 0x528814
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp dword [eax + 0x590], 0
jle 0x5287a0
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x324], 0
je 0x5283c8
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov byte [eax + 0x324], 0
mov ecx, 8
mov edx, esi
mov eax, dword [esi + 0xcc]
call dword [esi + 0xc8]
xor edx, edx
mov eax, esi
call fcn.00527e6c
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov word [eax + 0x9e], 0
jmp 0x528814
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp word [eax + 0x9e], 0
jbe 0x5285ec
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x22c], 3
jne 0x528498
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x5288a8
call fcn.0051f280
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov word [eax + 0x9e], 0
mov eax, dword [0x586404]
mov eax, dword [eax]
mov dword [eax + 0x374], 0x65
mov ecx, 6
mov edx, esi
mov eax, dword [esi + 0xcc]
call dword [esi + 0xc8]
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x378], 0
je 0x52847a
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp dword [eax + 0x5bc], 2
jne 0x52847a
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x5288c0
call fcn.00521e50
mov eax, dword [0x586404]
mov eax, dword [eax]
mov dword [eax + 0x374], 6
jmp 0x528483
xor edx, edx
mov eax, esi
call fcn.00527e6c
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov word [eax + 0x9e], 0
jmp 0x5285e5
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.0051c3e4
test al, al
jne 0x5284e3
mov eax, dword [0x5865d0]
mov eax, dword [eax]
cmp byte [eax + 0x8d], 0
je 0x5284e3
cmp byte [esi + 0x58], 0
jne 0x5284e3
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x31c], 0
jne 0x5284e3
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x52891c
call fcn.0051f280
mov byte [esi + 0x58], 1
call fcn.004b9988
mov dword [esi + 0x5c], eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x22c]
cmp eax, 2
jne 0x5285cb
lea ecx, [ebp - 8]
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x9e]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00517e24
test al, al
je 0x5285b9
call fcn.004b9988
sub eax, dword [esi + 0x150]
cmp eax, 0x64
jbe 0x5285af
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x54
call fcn.005118f4
test al, al
jne 0x5285a4
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c74
cmp al, 2
jne 0x528578
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050cf54
mov ecx, eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dl, 9
call fcn.00511a74
jmp 0x5285a4
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov word [eax + 0x9e], 0
mov ecx, 6
mov edx, esi
mov eax, dword [esi + 0xcc]
call dword [esi + 0xc8]
xor edx, edx
mov eax, esi
call fcn.00527e6c
call fcn.004b9988
mov dword [esi + 0x150], eax
mov eax, dword [ebp - 8]
call fcn.004041e0
jmp 0x5285e5
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov word [eax + 0x9e], 0
jmp 0x5285e5
mov edx, dword [0x586a98]
test eax, eax
jne 0x5285e5
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov word [eax + 0x9e], 0
mov bl, 1
jmp 0x528814
lea edx, [ebp - 8]
mov eax, esi
call fcn.00529258
mov edi, eax
test edi, edi
jle 0x528814
mov eax, dword [ebp - 8]
call fcn.005246c0
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
call fcn.005246d0
mov dword [ebp - 0x10], eax
lea edx, [ebp - 4]
mov eax, dword [ebp - 8]
call fcn.005243d8
cmp edi, 0x3e7
jl 0x52864a
mov ecx, 4
mov edx, esi
mov eax, dword [esi + 0xcc]
call dword [esi + 0xc8]
xor edx, edx
mov eax, esi
call fcn.00527e6c
jmp 0x52872a
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x30c], 1
je 0x52867d
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x30c], 2
jne 0x52869e
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp dword [eax + 0x590], 2
jl 0x52867d
dec edi
jle 0x52869e
mov ecx, 4
mov edx, esi
mov eax, dword [esi + 0xcc]
call dword [esi + 0xc8]
xor edx, edx
mov eax, esi
call fcn.00527e6c
jmp 0x52872a
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x30c], 3
jne 0x52872a
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x54
call fcn.005118f4
test al, al
jne 0x52871c
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c74
cmp al, 2
jne 0x5286fe
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050cf54
mov ecx, eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dl, 9
call fcn.00511a74
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov byte [eax + 0x330], 1
jmp 0x52872a
mov ecx, 4
mov edx, esi
mov eax, dword [esi + 0xcc]
call dword [esi + 0xc8]
xor edx, edx
mov eax, esi
call fcn.00527e6c
jmp 0x52872a
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov byte [eax + 0x330], 1
call fcn.004b9988
sub eax, dword [esi + 0xe0]
cmp eax, 0x1770
jbe 0x528796
push 0x528938
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 0xc]
call fcn.00409fe0
push dword [ebp - 0x24]
push 0x528944
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x10]
call fcn.00409fe0
push dword [ebp - 0x28]
push 0x528950
push dword [ebp - 4]
push 0x528968
lea eax, [ebp - 0x20]
mov edx, 7
call fcn.0040553c
mov edx, dword [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00521e50
call fcn.004b9988
mov dword [esi + 0xe0], eax
mov eax, dword [ebp - 8]
call fcn.004041e0
jmp 0x528814
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp word [eax + 0x9e], 0
jbe 0x52880c
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.0051c3e4
test al, al
jne 0x52880c
mov eax, dword [0x5865d0]
mov eax, dword [eax]
cmp byte [eax + 0x8d], 0
je 0x52880c
cmp byte [esi + 0x58], 0
jne 0x52880c
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x31c], 0
jne 0x52880c
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x528974
call fcn.0051f280
mov byte [esi + 0x58], 1
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov word [eax + 0x9e], 0
call fcn.004b9988
mov dword [esi + 0x5c], eax
cmp byte [esi + 0x58], 0
je 0x52882d
call fcn.004b9988
sub eax, dword [esi + 0x5c]
cmp eax, 0x2710
jbe 0x52882d
mov byte [esi + 0x58], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x528857
lea eax, [ebp - 0x28]
mov edx, 5
call fcn.004051cc
lea eax, [ebp - 4]
call fcn.004051a8
ret