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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x384
push ebx
push esi
mov ebx, ecx
mov eax, dword [ebx + 0x18]
push edi
xor edi, edi
cmp eax, edi
je 0x52cb39
test byte [0x8bd338], 1
jne 0x52be00
or dword [0x8bd338], 1
mov dword [0x8bd32c], edi
mov dword [0x8bd330], edi
mov dword [0x8bd334], edi
mov ecx, dword [0xb1a124]
lea eax, [esp + 0x5c]
push eax
add ecx, 0x220
call fcn.0057772c
mov ecx, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x14]
mov eax, dword [edx + ecx*4]
mov dword [eax + 0x128c], edi
mov ecx, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x14]
mov eax, dword [edx + ecx*4]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x34]
mov dword [esp + 0x10], edx
fld dword [esp + 0x10]
sub esp, 8
fstp qword [esp]
call fcn.00616f24
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [esp + 0x4c]
fld dword [esp + 0x18]
fstp qword [esp]
call fcn.00616fd4
fstp dword [esp + 0x14]
add esp, 8
fld dword [esp + 0xc]
lea ecx, [esp + 0x44]
fstp dword [esp + 0x4c]
mov dword [esp + 0x48], edi
call fcn.004181c0
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x2c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax + 0xc]
add ecx, 0x1c
mov esi, ecx
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov esi, dword [esi + 8]
add eax, 0x1278
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [esp + 0x3c], edx
lea edx, [esp + 0x50]
mov dword [esp + 0x38], ecx
mov dword [eax + 8], esi
mov ecx, dword [0xb1a124]
push edx
mov dword [esp + 0x44], esi
call fcn.005761c5
fld dword [esp + 0x50]
fmul dword [0x65a944]
mov edx, dword [0xb1a124]
add edx, 4
fstp dword [esp + 0x50]
fld dword [esp + 0x54]
fmul dword [0x65a944]
fstp dword [esp + 0x54]
fld dword [esp + 0x58]
fmul dword [0x65a944]
fstp dword [esp + 0x58]
fld dword [esp + 0x40]
fadd dword [esp + 0x58]
fstp dword [esp + 0x10]
fld dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
fadd dword [esp + 0x54]
fstp dword [esp + 0xc]
fld dword [esp + 0x38]
mov eax, dword [esp + 0xc]
fadd dword [esp + 0x50]
fstp dword [esp + 0x2c]
mov esi, dword [esp + 0x2c]
mov dword [edx], esi
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
fld dword [esp + 0x64]
fsub dword [0x8bd334]
fstp dword [esp + 0x10]
fld dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
fsub dword [0x8bd330]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x2c]
fstp dword [esp + 0xc]
fld dword [esp + 0x5c]
mov eax, dword [esp + 0xc]
fsub dword [0x8bd32c]
mov dword [esp + 0x30], eax
fstp dword [esp + 0x2c]
call fcn.00418170
fcomp dword [0x655474]
fnstsw ax
test ah, 1
jne 0x52bf82
mov ecx, 0xb1cee8
call fcn.00596a70
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x64]
mov dword [0x8bd32c], edx
mov dword [0x8bd330], eax
mov dword [0x8bd334], ecx
mov eax, dword [ebx + 0x18]
xor esi, esi
cmp eax, edi
jle 0x52c1b3
lea esp, [esp]
mov edx, dword [ebx + 0x14]
mov ecx, dword [edx + esi*4]
mov eax, dword [ecx + 0xc]
cmp eax, edi
je 0x52c059
cmp dword [ecx + 0x1558], edi
jne 0x52bfcd
push 1
jmp 0x52bfce
push edi
push eax
call fcn.00578f40
mov eax, dword [ebx + 0x2c]
add esp, 8
cmp esi, eax
je 0x52c059
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + esi*4]
mov edx, dword [ecx + 0x1288]
push edx
call dword [0x8bd314]
add esp, 4
test eax, eax
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + esi*4]
mov edx, dword [ecx + 0xc]
jne 0x52c004
push edi
jmp 0x52c006
push 1
push edx
call fcn.00578f50
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + esi*4]
mov edx, dword [ecx + 0x1288]
add esp, 8
push edx
call dword [0x8bd314]
add esp, 4
sub eax, edi
je 0x52c046
dec eax
je 0x52c042
dec eax
jne 0x52c059
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + esi*4]
movzx ecx, byte [eax + 0x13f0]
mov edx, dword [eax + 0xc]
push ecx
jmp 0x52c050
push 3
jmp 0x52c047
push edi
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + esi*4]
mov edx, dword [ecx + 0xc]
push edx
call fcn.00578fb0
add esp, 8
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + esi*4]
mov edx, dword [ecx + 0xc]
cmp edx, edi
jne 0x52c17c
mov edx, dword [ebx + 0x2c]
mov eax, dword [eax + edx*4]
fld dword [eax + 0x1280]
add eax, 0x1278
fsub dword [ecx + 0x1280]
sub esp, 8
fstp dword [esp + 0x18]
fld dword [eax + 4]
fsub dword [ecx + 0x127c]
fstp dword [esp + 0x14]
fld dword [eax]
mov eax, dword [esp + 0x14]
fsub dword [ecx + 0x1278]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], eax
fstp dword [esp + 0x34]
mov edx, dword [esp + 0x34]
fld dword [esp + 0x28]
mov dword [esp + 0x20], edx
fmul dword [esp + 0x28]
fld dword [esp + 0x24]
fmul dword [esp + 0x24]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [esp + 0x20]
faddp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp qword [esp]
call fcn.00616aa4
mov edi, dword [ebx + 0x14]
fstp st(0)
mov eax, dword [ebx + 0x2c]
mov ecx, dword [edi + esi*4]
mov eax, dword [edi + eax*4]
fld dword [ecx + 0x1280]
fsub dword [eax + 0x1280]
add ecx, 0x1278
add eax, 0x1278
fstp dword [esp + 0x18]
fld dword [ecx + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x14]
fld dword [ecx]
mov ecx, dword [esp + 0x18]
fsub dword [eax]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], eax
fstp dword [esp + 0x70]
mov edx, dword [esp + 0x70]
fld dword [esp + 0x28]
mov dword [esp + 0x20], edx
fmul dword [esp + 0x28]
fld dword [esp + 0x24]
fmul dword [esp + 0x24]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [esp + 0x20]
faddp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp qword [esp]
call fcn.00616aa4
mov eax, dword [edi + esi*4]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
add esp, 8
fstp dword [eax + 0x128c]
xor edi, edi
jmp 0x52c1a7
add edx, 0x1c
mov eax, dword [edx]
add ecx, 0x1278
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 0x34]
mov dword [eax + 0x1284], ecx
mov eax, dword [ebx + 0x18]
inc esi
cmp esi, eax
jl 0x52bfb0
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x14]
push 0x527120
push 4
dec edx
push edx
add eax, 4
push eax
call fcn.00619ba0
mov ecx, dword [ebx + 0x18]
xor eax, eax
add esp, 0x10
cmp ecx, edi
mov dword [esp + 0x14], eax
jle 0x52c59d
nop
cmp eax, dword [ebx + 0x2c]
je 0x52c589
mov esi, dword [0xb1a124]
add esi, 0x220
mov ecx, 0x10
lea edi, [esp + 0x170]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x1a8]
mov ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x1a4]
mov dword [esp + 0x34], eax
mov eax, dword [0xb1a21c]
test eax, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
je 0x52c252
mov cl, byte [eax + 0x12c]
test cl, cl
je 0x52c252
add eax, 0xac
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov esi, dword [esp + 0x14]
fld dword [esp + 0x34]
mov eax, dword [ebx + 0x14]
shl esi, 2
mov ecx, dword [esi + eax]
add ecx, 0x1278
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x40], ecx
fsub dword [esp + 0x40]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], edx
fstp dword [esp + 0x10]
sub esp, 8
fld dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
fsub dword [esp + 0x44]
mov dword [esp + 0x28], ecx
fstp dword [esp + 0x14]
fld dword [esp + 0x34]
mov eax, dword [esp + 0x14]
fsub dword [esp + 0x40]
mov dword [esp + 0x24], eax
fstp dword [esp + 0x70]
mov edx, dword [esp + 0x70]
fld dword [esp + 0x28]
mov dword [esp + 0x20], edx
fmul dword [esp + 0x28]
fld dword [esp + 0x24]
fmul dword [esp + 0x24]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [esp + 0x20]
faddp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp qword [esp]
call fcn.00616aa4
mov edi, dword [ebx + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
mov eax, dword [ebx + 0x2c]
mov eax, dword [edi + eax*4]
add eax, 0x1278
fstp dword [esp + 0x18]
fld dword [esp + 0x48]
fsub dword [eax + 8]
fstp dword [esp + 0x2c]
fld dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
fsub dword [eax + 4]
mov dword [esp + 0x28], ecx
fstp dword [esp + 0x14]
fld dword [esp + 0x40]
fsub dword [eax]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
fstp dword [esp + 0x7c]
mov edx, dword [esp + 0x7c]
fld dword [esp + 0x28]
mov dword [esp + 0x20], edx
fmul dword [esp + 0x28]
fstp dword [esp + 0x14]
fld dword [esp + 0x20]
fmul dword [esp + 0x20]
fstp dword [esp + 0x2c]
fld dword [esp + 0x24]
fmul dword [esp + 0x24]
fadd dword [esp + 0x2c]
fadd dword [esp + 0x14]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp qword [esp]
call fcn.00616aa4
mov eax, dword [esi + edi]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [eax + 0x128c]
fld dword [0x64fe74]
fmul dword [0x64fe74]
fadd dword [esp + 0x2c]
fadd dword [esp + 0x14]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp qword [esp]
call fcn.00616aa4
fstp dword [esp + 0x30]
add esp, 8
fld dword [esp + 0x28]
xor edi, edi
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fcomp dword [0x64fed4]
fnstsw ax
test ah, 0x41
jp 0x52c3d3
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
jmp 0x52c407
fld dword [0x64fe64]
fdiv dword [esp + 0xc]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fmul dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x24]
fmul dword [0x64fe74]
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fmul dword [esp + 0x24]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
sub esp, 8
fmul dword [esp + 0x54]
fld dword [esp + 0x20]
fmul dword [esp + 0x4c]
faddp st(1)
fld dword [esp + 0x24]
fmul dword [esp + 0x50]
faddp st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fstp qword [esp]
call fcn.00619164
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fstp qword [esp]
call fcn.00619a71
fstp dword [esp + 0x30]
add esp, 8
fld dword [esp + 0x28]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fcomp dword [0x65ebc0]
fnstsw ax
test ah, 0x41
jp 0x52c486
mov ecx, dword [ebx + 0x14]
mov eax, dword [esi + ecx]
fld dword [eax + 0x128c]
fmul dword [0x65eb20]
fstp dword [eax + 0x128c]
mov edx, dword [ebx + 0x14]
mov eax, dword [esi + edx]
mov ecx, dword [eax + 0xc]
cmp ecx, edi
je 0x52c589
fld dword [esp + 0x10]
fcomp dword [0x652fc8]
fnstsw ax
test ah, 0x41
jp 0x52c4c0
cmp ecx, dword [ecx + 0x44]
jne 0x52c529
mov ecx, dword [ecx + 0xd0]
test ecx, ecx
je 0x52c529
mov dword [ecx + 0x18], 0
jmp 0x52c529
fld dword [esp + 0x10]
fcomp dword [0x65ebbc]
fnstsw ax
test ah, 0x41
jp 0x52c4e9
cmp ecx, dword [ecx + 0x44]
jne 0x52c529
mov ecx, dword [ecx + 0xd0]
test ecx, ecx
je 0x52c529
mov dword [ecx + 0x18], 1
jmp 0x52c529
fld dword [esp + 0x10]
fcomp dword [0x65ebb8]
fnstsw ax
test ah, 0x41
mov eax, dword [ecx + 0x44]
jp 0x52c514
cmp ecx, eax
jne 0x52c529
mov ecx, dword [ecx + 0xd0]
test ecx, ecx
je 0x52c529
mov dword [ecx + 0x18], 2
jmp 0x52c529
cmp ecx, eax
jne 0x52c529
mov ecx, dword [ecx + 0xd0]
test ecx, ecx
je 0x52c529
mov dword [ecx + 0x18], 3
mov ecx, dword [ebx + 0x14]
mov eax, dword [esi + ecx]
mov dword [esp + 0x10], eax
add eax, 0x10
mov edi, str.mon_titano.GCMDS
mov esi, eax
mov ecx, 0x11
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x52c56c
mov edi, str.MON_Omurten.GCMDS
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x52c56c
mov edi, 0x65eb80
mov esi, eax
mov ecx, 0x10
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x52c589
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cmp eax, dword [eax + 0x44]
jne 0x52c589
mov eax, dword [eax + 0xd0]
test eax, eax
je 0x52c589
mov dword [eax + 0x18], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 0x18]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x52c1e0
mov edx, dword [0x685030]
xor eax, eax
test edx, edx
mov dword [esp + 0x14], eax
jle 0x52c863
cmp eax, dword [ebx + 0x18]
jge 0x52c863
cmp eax, dword [ebx + 0x2c]
je 0x52c850
mov ecx, dword [ebx + 0x14]
lea esi, [eax*4]
mov edi, dword [esi + ecx]
mov ecx, dword [edi + 0xc]
test ecx, ecx
jne 0x52c850
mov ecx, dword [edi + 0x13a0]
test ecx, ecx
je 0x52c850
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [edi + 0x140c], eax
mov edx, dword [ebx + 0x14]
mov ecx, dword [esi + edx]
mov dword [ecx + 0x1408], eax
mov ecx, dword [ecx + 0x1408]
mov eax, dword [ebx + 0x14]
mov eax, dword [esi + eax]
mov dword [eax + 0x1404], ecx
mov edx, dword [ebx + 0x14]
mov ecx, dword [esi + edx]
mov eax, dword [eax + 0x1404]
mov dword [ecx + 0x1400], eax
mov edx, dword [ebx + 0x14]
mov eax, dword [esi + edx]
mov ecx, dword [ecx + 0x1400]
mov dword [eax + 0x13fc], ecx
mov edx, dword [ebx + 0x14]
mov eax, dword [esi + edx]
mov ecx, dword [eax + 0x1290]
push 0
lea edi, [esi + edx]
push 0xffffffffffffffff
push ecx
lea edx, [eax + 0x218]
lea ecx, [eax + 0x114]
push edx
push ecx
add eax, 0x10
push eax
mov ecx, ebx
call fcn.00529b70
mov edx, dword [edi]
mov dword [edx + 0xc], eax
mov eax, dword [ebx + 0x14]
mov ecx, dword [esi + eax]
push 1
lea edx, [ecx + 0x33a]
push edx
call fcn.005315d0
mov eax, dword [esp + 0x14]
cmp eax, dword [ebx + 0x2c]
jne 0x52c690
mov ecx, dword [ebx + 0x14]
mov ecx, dword [esi + ecx]
push 1
jmp 0x52c698
mov eax, dword [ebx + 0x14]
mov ecx, dword [esi + eax]
push 0
mov edx, dword [ecx + 0x13c4]
push edx
call fcn.00535390
mov eax, dword [ebx + 0x14]
mov ecx, dword [esi + eax]
mov edx, dword [ecx + 0x1288]
push edx
call dword [0x8bd314]
add esp, 4
cmp eax, 1
jne 0x52c7b9
mov eax, dword [ebx + 0x14]
mov esi, dword [esi + eax]
fld dword [esi + 0x1280]
fadd dword [0x64fe74]
fstp dword [esp + 0xc]
fld dword [esi + 0x127c]
fsub dword [0x655470]
fstp dword [esp + 0x28]
fld dword [esi + 0x1278]
mov edi, dword [esp + 0x28]
fadd dword [0x64fe74]
mov esi, dword [esi + 0xc]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
call fcn.0061672c
test eax, eax
je 0x52c742
fld dword [esp + 0xc]
call fcn.0061672c
test eax, eax
je 0x52c742
lea eax, [esi + 0x1c]
mov ecx, eax
mov edx, dword [ecx]
add esi, 0x28
mov dword [esi], edx
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esi + 4], edx
mov edx, dword [esp + 0x44]
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax], edx
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov ecx, dword [ebx + 0x14]
mov eax, dword [esp + 0x14]
shl eax, 2
mov edx, dword [eax + ecx]
mov eax, dword [edx + 0xc]
push eax
lea ecx, [esp + 0x1b4]
push ecx
call fcn.00578fd0
mov esi, eax
mov ecx, 0x3c
lea edi, [esp + 0x88]
rep movsd dword es:[edi], dword [esi]
sub esp, 0xe8
mov ecx, 0x3c
lea esi, [esp + 0x170]
mov edi, esp
mov dword [esp + 0x170], 4
rep movsd dword es:[edi], dword [esi]
call fcn.00579010
mov eax, dword [esp + 0x104]
mov edx, dword [ebx + 0x14]
shl eax, 2
mov eax, dword [eax + edx]
mov ecx, dword [eax + 0xc]
push 3
push ecx
call fcn.00578fb0
add esp, 0xf8
jmp 0x52c80b
mov edx, dword [ebx + 0x14]
mov esi, dword [esi + edx]
fld dword [esi + 0x1278]
lea edi, [esi + 0x1278]
mov esi, dword [esi + 0xc]
call fcn.0061672c
test eax, eax
je 0x52c80b
fld dword [edi + 8]
call fcn.0061672c
test eax, eax
je 0x52c80b
lea eax, [esi + 0x1c]
mov ecx, eax
mov edx, dword [ecx]
add esi, 0x28
mov dword [esi], edx
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esi + 4], edx
mov dword [esi + 8], ecx
mov edx, dword [edi]
mov dword [eax], edx
mov ecx, dword [edi + 4]
mov dword [eax + 4], ecx
mov edx, dword [edi + 8]
mov dword [eax + 8], edx
mov esi, dword [esp + 0x14]
mov eax, dword [ebx + 0x14]
shl esi, 2
mov eax, dword [esi + eax]
mov ecx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 0xc]
call fcn.00590fc0
mov edx, dword [ebx + 0x14]
mov eax, dword [esi + edx]
mov ecx, dword [eax + 0x1284]
push ecx
mov ecx, dword [eax + 0xc]
call fcn.00404ba0
mov edi, dword [ebx + 0x14]
add edi, esi
call dword [sym.imp.kernel32.dll_GetTickCount]
mov edx, dword [edi]
mov dword [edx + 0x1408], eax
mov eax, dword [esp + 0x14]
mov edx, dword [0x685030]
inc eax
cmp eax, edx
mov dword [esp + 0x14], eax
jl 0x52c5b1
xor ecx, ecx
test edx, edx
mov dword [esp + 0x14], ecx
jle 0x52ca2d
jmp 0x52c877
mov ecx, dword [esp + 0x14]
cmp ecx, dword [ebx + 0x18]
jge 0x52ca2d
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ecx + 0xc]
test edx, edx
je case.0x52c996.4
cmp dword [esp + 0x14], 1
jne 0x52c8a9
mov edx, dword [eax + 4]
mov eax, dword [edx + 0xc]
push eax
lea ecx, [esp + 0x1b4]
push ecx
jmp 0x52c8bc
mov edx, dword [esp + 0x14]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0xc]
push ecx
lea edx, [esp + 0x2a4]
push edx
call fcn.00578fd0
mov esi, eax
mov eax, dword [ebx + 0x14]
lea edi, [esp + 0x88]
mov ecx, 0x3c
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x1c]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x13c4]
add esp, 8
test ecx, 0x10000
je 0x52c92f
mov ecx, dword [eax + 0x1288]
push ecx
call dword [0x8bd314]
add esp, 4
sub eax, 0
je 0x52c99d
dec eax
je 0x52c922
dec eax
jne 0x52c942
mov edx, dword [ebx + 0x14]
mov ecx, dword [edx + esi*4]
push 0
call fcn.00532260
mov byte [esp + 0x148], 0
jmp 0x52c937
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + esi*4]
push 1
call fcn.00532260
mov byte [esp + 0x148], 1
mov dword [esp + 0x14c], 0xbf800000
sub esp, 0xf0
mov ecx, 0x3c
lea esi, [esp + 0x170]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00579010
mov eax, dword [esp + 0x104]
mov ecx, dword [ebx + 0x2c]
add esp, 0xf0
cmp eax, ecx
je case.0x52c996.4
mov ecx, dword [ebx + 0x14]
mov esi, eax
mov edx, dword [ecx + esi*4]
mov eax, dword [edx + 0x1288]
push eax
call dword [0x8bd314]
add esp, 4
cmp eax, 5
ja case.0x52c996.4
jmp dword [eax*4 + 0x52cb44]
mov ecx, dword [ebx + 0x14]
mov edx, dword [ecx + esi*4]
mov eax, dword [edx + 0x1288]
push eax
call dword [0x8bd318]
add esp, 4
test eax, eax
je 0x52c9d1
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + esi*4]
push 0
call fcn.00532260
mov byte [esp + 0x148], 0
jmp 0x52c937
mov edx, dword [ebx + 0x14]
mov ecx, dword [edx + esi*4]
push 1
call fcn.00532260
mov byte [esp + 0x148], 1
mov dword [esp + 0x14c], 0x3f000000
jmp 0x52c942
mov edx, dword [ebp + 8]
push edx
push esi
mov ecx, ebx
call fcn.00527c30
jmp case.0x52c996.4
mov eax, dword [ebp + 8]
push eax
jmp 0x52ca0e
mov ecx, dword [ebp + 8]
push ecx
mov ecx, ebx
push esi
call fcn.0052a1f0
mov eax, dword [esp + 0x14]
mov ecx, dword [0x685030]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x52c873
mov eax, dword [ebx + 0xa8]
test eax, eax
je 0x52caa8
mov edx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + edx*4]
mov edx, dword [ecx + 0xc]
push edx
lea eax, [esp + 0x2a4]
push eax
call fcn.00578fd0
mov edx, dword [ebx + 0x14]
mov esi, eax
mov ecx, 0x3c
lea edi, [esp + 0x88]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x2c]
mov ecx, dword [edx + ecx*4]
add esp, 8
push 0
call fcn.00532260
sub esp, 0xf0
mov ecx, 0x3c
lea esi, [esp + 0x170]
mov edi, esp
mov byte [esp + 0x238], 0
mov dword [esp + 0x23c], 0xbf800000
rep movsd dword es:[edi], dword [esi]
call fcn.00579010
add esp, 0xf0
mov eax, dword [ebx + 0x18]
xor esi, esi
test eax, eax
jle 0x52cae5
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + esi*4]
call fcn.005327f0
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + esi*4]
call fcn.00533440
mov edx, dword [ebx + 0x14]
mov ecx, dword [edx + esi*4]
call fcn.00533d10
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + esi*4]
call fcn.005303e0
mov eax, dword [ebx + 0x18]
inc esi
cmp esi, eax
jl 0x52cab1
call dword [sym.imp.winmm.dll_timeGetTime]
mov edx, dword [ebx + 0xc4]
mov edi, eax
mov ecx, edi
sub ecx, edx
mov eax, 0xcccccccd
mul ecx
shr edx, 5
test edx, edx
jle 0x52cb39
mov dword [esp + 0xc], edx
lea esp, [esp]
mov eax, dword [ebx + 0x18]
xor esi, esi
test eax, eax
mov dword [ebx + 0xc4], edi
jle 0x52cb33
nop
mov edx, dword [ebx + 0x14]
mov ecx, dword [edx + esi*4]
call fcn.00531e00
mov eax, dword [ebx + 0x18]
inc esi
cmp esi, eax
jl 0x52cb20
dec dword [esp + 0xc]
jne 0x52cb10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4