Function at 0x586200
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x4d8
push ebx
push ebp
push esi
mov esi, ecx
mov al, byte [esi + 0x280]
xor ebp, ebp
test al, al
push edi
mov byte [esp + 0x17], 0
mov byte [esp + 0x1f], 0
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
je 0x589d0b
mov eax, dword [esi + 0x27c]
cmp eax, ebp
jle 0x586417
mov cl, byte [esi + 0x278]
test cl, cl
jne 0x58628a
xor ebx, ebx
cmp eax, ebp
jle 0x586283
xor edi, edi
mov cl, byte [esi + 0x349]
mov eax, dword [esi + 0x274]
mov byte [edi + eax + 0x349], cl
mov ecx, dword [esi + 0x274]
add ecx, edi
call fcn.00586200
mov eax, dword [esi + 0x27c]
inc ebx
add edi, 0x388
cmp ebx, eax
jl 0x586252
mov byte [esi + 0x278], 1
mov al, byte [esi + 0x298]
test al, al
mov dword [esp + 0x10], ebp
mov byte [esp + 0x17], 0
jne 0x5862b2
call dword [sym.imp.winmm.dll_timeGetTime]
mov dword [esi + 0x294], eax
mov byte [esi + 0x298], 1
jmp 0x5862b8
call dword [sym.imp.winmm.dll_timeGetTime]
mov edx, dword [esi + 0x294]
mov edi, eax
mov ecx, eax
sub ecx, edx
cmp ecx, 0x28
mov dword [esi + 0x244], eax
jb 0x5862f4
mov eax, 0x66666667
imul ecx
mov ecx, dword [esi + 0x29c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
add ecx, eax
mov dword [esi + 0x29c], ecx
mov dword [esi + 0x294], edi
mov eax, dword [esi + 0x284]
mov ecx, dword [esi + 0x27c]
cmp eax, ecx
jge 0x58631c
mov edx, dword [esi + 0x288]
mov edi, dword [esi + 0x29c]
cmp edi, dword [edx + eax*4]
jl 0x58632f
inc eax
mov dword [esi + 0x284], eax
mov byte [esi + 0x298], 0
mov dword [esi + 0x29c], ebp
mov dword [esi + 0x294], ebp
cmp dword [esi + 0x284], ecx
jle 0x58633d
mov dword [esi + 0x284], ecx
mov eax, dword [esi + 0x284]
xor ebx, ebx
cmp eax, ebp
jle 0x5863af
xor edi, edi
jmp 0x586350
mov ecx, dword [esi + 0x274]
add ecx, edi
call fcn.00586200
cmp eax, ebp
jne 0x586367
inc dword [esp + 0x10]
jmp 0x58639e
cmp eax, 2
jne 0x58639e
mov eax, dword [esi + 0x274]
cmp eax, ebp
je 0x586399
lea eax, [eax + edi + 0x2c0]
mov edx, dword [eax]
lea ecx, [esi + 0x2c0]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov byte [esp + 0x17], 1
mov eax, dword [esi + 0x284]
inc ebx
add edi, 0x388
cmp ebx, eax
jl 0x586350
mov ecx, dword [esp + 0x10]
cmp ecx, dword [esi + 0x27c]
jne 0x5863e1
xor eax, eax
mov dword [esi + 0x294], ebp
mov byte [esi + 0x298], 0
mov dword [esi + 0x29c], ebp
mov byte [esi + 0x28c], al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4d8
ret
mov al, byte [esp + 0x17]
test al, al
je 0x589d58
mov dword [esi + 0x294], ebp
mov byte [esi + 0x298], 0
mov dword [esi + 0x29c], ebp
mov byte [esi + 0x28c], 1
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4d8
ret
mov eax, dword [esi + 0x250]
cmp eax, 0xffffffff
jne 0x586473
mov ecx, dword [esi + 0x108]
cmp ecx, ebp
je 0x58643f
mov eax, dword [esi + 0x10c]
sub eax, ecx
sar eax, 2
cmp eax, ebp
jne 0x589d5e
mov ecx, esi
call fcn.00585c50
mov al, byte [esi + 0x348]
test al, al
je 0x586457
mov ecx, esi
call fcn.0057dfa0
mov al, byte [esi + 0x384]
test al, al
je 0x586468
mov ecx, esi
call fcn.0057fd20
mov dword [esi + 0x250], ebp
jmp 0x589d5e
cmp eax, ebp
jl 0x589d58
cmp eax, 5
jg 0x589d58
cmp eax, 3
ja case.default.0x58648d
jmp dword [eax*4 + 0x589d78]
mov al, byte [esi + 0x298]
test al, al
jne 0x5864b3
call dword [sym.imp.winmm.dll_timeGetTime]
mov dword [esi + 0x294], eax
mov byte [esi + 0x298], 1
jmp 0x5864b9
call dword [sym.imp.winmm.dll_timeGetTime]
mov edx, dword [esi + 0x294]
mov edi, eax
mov ecx, eax
sub ecx, edx
cmp ecx, 0x28
mov dword [esi + 0x244], eax
jb 0x5864f5
mov eax, 0x66666667
imul ecx
mov ecx, dword [esi + 0x29c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
add ecx, eax
mov dword [esi + 0x29c], ecx
mov dword [esi + 0x294], edi
mov ecx, dword [esi + 0x29c]
cmp ecx, dword [esi + 0x254]
jl case.default.0x58648d
mov byte [esi + 0x298], 0
mov dword [esi + 0x29c], 0
mov dword [esi + 0x250], 1
jmp case.default.0x58648d
mov al, byte [esi + 0x349]
test al, al
je 0x586599
cmp dword [esi + 0x264], 0xbf800000
je 0x586599
mov al, byte [esi + 0x271]
test al, al
je 0x586599
mov al, byte [esi + 0x270]
test al, al
jne 0x586599
fld dword [0xb1a1f4]
fcom dword [0x650058]
fnstsw ax
test ah, 5
jp 0x586590
fcomp dword [0x650054]
fnstsw ax
test ah, 0x41
jne 0x586592
mov edx, dword [esi + 0x26c]
mov eax, dword [esi + 0x268]
mov ecx, dword [esi + 0x264]
push edx
push eax
push ecx
call fcn.00535780
add esp, 0xc
jmp 0x586592
fstp st(0)
mov byte [esi + 0x270], 1
mov eax, dword [esi + 0x148]
xor ebp, ebp
test eax, eax
jle 0x586698
lea esp, [esp]
mov edx, dword [esi + 0x144]
mov ebx, dword [edx + ebp*4]
mov eax, dword [esi + 0x108]
mov ecx, dword [eax + ebx*4]
push 0
push 0
lea edi, [ebx*4]
push 0
call fcn.005a4c30
imul ebx, ebx, 0x1b4
lea eax, [esi + 0x1a0]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 0x124]
mov dword [esp + 0x30], eax
lea eax, [ebx + ecx]
mov dword [esp + 0x2c], edx
fld dword [eax + 0x164]
fmul dword [esi + 0x290]
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
fld dword [eax + 0x168]
fmul dword [esi + 0x290]
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld dword [eax + 0x16c]
mov eax, dword [esp + 0x2c]
fmul dword [esi + 0x290]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
mov edx, dword [esp + 0x30]
push edx
mov edx, dword [esi + 0x108]
push eax
push ecx
mov ecx, dword [edx + edi]
call fcn.00525180
mov ebx, dword [esi + 0x108]
add ebx, edi
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [ebx]
mov dword [ecx + 0x64], eax
mov edx, dword [esi + 0x108]
mov eax, dword [edx + edi]
mov byte [eax + 0x88], 1
mov ecx, dword [esi + 0x108]
mov ecx, dword [ecx + edi]
push 0
call fcn.005a4e70
mov eax, dword [esi + 0x148]
inc ebp
cmp ebp, eax
jl 0x5865b0
mov dword [esi + 0x250], 2
jmp case.default.0x58648d
mov eax, dword [esi + 0x160]
test eax, eax
jne 0x5866c0
mov dword [esi + 0x250], 3
jmp case.default.0x58648d
mov ecx, dword [eax]
cmp ecx, 0xffffffff
jne 0x5866d6
mov dword [esi + 0x250], 3
jmp case.default.0x58648d
mov eax, dword [esi + 0x144]
test eax, eax
je 0x586710
cmp dword [esi + 0x150], 0xffffffff
mov ecx, dword [eax]
je case.default.0x58648d
test eax, eax
je 0x586710
fild dword [esi + 0x150]
mov edx, dword [esi + 0x108]
mov eax, dword [edx + ecx*4]
fcomp dword [eax + 0x1c]
fnstsw ax
test ah, 0x41
jp case.default.0x58648d
mov eax, dword [esi + 0x118]
test eax, eax
je 0x58676c
push eax
mov ecx, 0x69f328
call fcn.005298b0
test al, al
je 0x58676c
mov ecx, dword [esi + 0x118]
push 0x65a378
call fcn.0058fbc0
mov ecx, dword [esi + 0x118]
mov edi, eax
call fcn.0044ceb0
test edi, edi
je 0x58676a
lea eax, [edi + 0x50]
test eax, eax
je 0x58675c
fmul dword [eax + 0x34]
fstp dword [esi + 0x11c]
jmp 0x58676c
fmul dword [0x64fe60]
fstp dword [esi + 0x11c]
jmp 0x58676c
fstp st(0)
fld dword [0x64fe74]
fld dword [esi + 0x1b8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x5867af
fld dword [0x64fe74]
fld dword [esi + 0x1bc]
fucompp
fnstsw ax
test ah, 0x44
jp 0x5867af
fld dword [0x64fe74]
fld dword [esi + 0x1c0]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x58697a
mov al, byte [esi + 0x1d0]
test al, al
jne 0x58697a
lea ecx, [esi + 0x1e0]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0xb8], edx
fld dword [esp + 0xb8]
fmul dword [0x664da0]
mov dword [esp + 0xc0], ecx
fld dword [esp + 0xc0]
mov byte [esi + 0x1d0], 1
fmul dword [0x664da0]
mov edx, dword [esi + 0x1a4]
mov dword [esp + 0xbc], eax
fxch st(1)
fadd dword [esi + 0x1a0]
lea eax, [esp + 0x88]
push eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
fstp dword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
fadd dword [esi + 0x1a8]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov dword [ecx + 4], eax
fstp dword [esp + 0x50]
mov edx, dword [esp + 0x50]
mov dword [ecx + 8], edx
mov ecx, dword [esi + 0x1a0]
mov edx, dword [esi + 0x1a4]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esi + 0x1a8]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov ecx, esi
call fcn.0057fa70
mov edx, dword [esi + 0x1b8]
mov eax, dword [esi + 0x1bc]
mov ecx, dword [esi + 0x1c0]
mov dword [esp + 0x118], edx
mov edx, dword [esp + 0x90]
push edx
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x124], ecx
mov ecx, dword [esp + 0x90]
push eax
push ecx
lea edx, [esp + 0x4b4]
push edx
mov dword [esp + 0x124], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x134], 0x3f800000
mov dword [esp + 0x120], 0x3f800000
mov dword [esp + 0x10c], 0x3f800000
mov dword [esp + 0xf8], 0x3f800000
call fcn.004f908f
lea eax, [esp + 0x4a8]
push eax
lea ecx, [esp + 0xec]
push ecx
lea edx, [esp + 0x3f8]
push edx
call fcn.004f82b4
mov eax, dword [esp + 0x420]
mov ecx, dword [esp + 0x428]
mov dword [esi + 0x1b8], eax
mov dword [esi + 0x1c0], ecx
mov al, byte [esi + 0x37c]
test al, al
je 0x586cbe
mov eax, dword [esi + 0x114]
test eax, eax
je 0x586be5
push eax
mov ecx, 0x69f328
call fcn.005298b0
test al, al
je 0x586be5
mov edx, dword [esi + 0x378]
mov ecx, dword [esi + 0x114]
push edx
call fcn.0058fbc0
mov edi, eax
test edi, edi
je 0x586be5
mov ecx, dword [esi + 0x114]
call fcn.0044ceb0
fstp dword [esp + 0x10]
lea eax, [esp + 0x158]
push eax
mov ecx, edi
call fcn.0052e960
add edi, 8
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov eax, dword [edi + 8]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x158]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x148], ecx
mov ecx, dword [esp + 0x164]
mov dword [esp + 0x150], eax
mov eax, dword [esi + 0x378]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x15c]
mov dword [esp + 0x154], ecx
mov dword [esp + 0x120], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x14c], edx
mov dword [esp + 0x114], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0x124], 0x3f800000
mov dword [esp + 0x110], 0x3f800000
mov dword [esp + 0xfc], 0x3f800000
mov dword [esp + 0xe8], 0x3f800000
mov edx, dword [eax + 0x100]
mov dword [esp + 0x118], edx
mov ecx, dword [eax + 0x104]
mov dword [esp + 0x11c], ecx
mov edx, dword [eax + 0x108]
lea eax, [esp + 0x148]
push eax
lea ecx, [esp + 0x4ac]
push ecx
mov dword [esp + 0x128], edx
call fcn.004f8f79
lea edx, [esp + 0x4a8]
push edx
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0x3f8]
push ecx
call fcn.004f82b4
mov eax, dword [esi + 0x378]
lea edx, [esp + 0x148]
push edx
add eax, 0x10c
push eax
lea ecx, [esp + 0x328]
push ecx
call fcn.004f95c8
fld dword [esp + 0x420]
fadd dword [esp + 0x38]
fld dword [esp + 0x424]
fadd dword [esp + 0x3c]
fld dword [esp + 0x428]
fadd dword [esp + 0x40]
fstp dword [esp + 0x90]
fxch st(1)
fmul dword [esp + 0x10]
fstp dword [esp + 0x88]
fmul dword [esp + 0x10]
fld dword [esp + 0x90]
fmul dword [esp + 0x10]
fld dword [esp + 0x88]
fadd dword [esi + 0x1a0]
fstp dword [esp + 0x38]
mov edx, dword [esp + 0x38]
fxch st(1)
fadd dword [esi + 0x1a4]
mov dword [esp + 0x28], edx
fstp dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x2c], eax
fadd dword [esi + 0x1a8]
fstp dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x30], ecx
mov eax, dword [esi + 0x164]
xor ebp, ebp
test eax, eax
jle 0x586c99
jmp 0x586c00
mov edx, dword [esi + 0x160]
mov eax, dword [edx + ebp*4]
cmp eax, 0xffffffff
je 0x586c99
lea edi, [eax*4]
mov eax, dword [esi + 0x108]
mov ecx, dword [eax + edi]
push 1
call fcn.005a4e70
mov ecx, dword [esi + 0x108]
mov ecx, dword [ecx + edi]
push 0
push 0
push 0
call fcn.005a4c30
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esi + 0x108]
push eax
push ecx
mov ecx, dword [edx + edi]
call fcn.00525180
mov ebx, dword [esi + 0x108]
add ebx, edi
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [ebx]
mov dword [ecx + 0x64], eax
mov edx, dword [esi + 0x108]
mov eax, dword [edx + edi]
mov byte [eax + 0x88], 1
mov ecx, dword [esi + 0x108]
mov edx, dword [ecx + edi]
mov byte [edx + 0x30], 1
mov eax, dword [esi + 0x164]
inc ebp
cmp ebp, eax
jl 0x586c00
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
push ebx
push edi
push ebp
mov ecx, esi
call fcn.0057f9c0
push ebx
push edi
push ebp
mov ecx, esi
call fcn.0057fa00
jmp 0x586e0a
mov eax, dword [esi + 0x164]
xor ebp, ebp
test eax, eax
jle 0x586d8c
mov edi, edi
mov eax, dword [esi + 0x160]
mov eax, dword [eax + ebp*4]
cmp eax, 0xffffffff
je 0x586d8c
mov ecx, dword [esi + 0x108]
mov ecx, dword [ecx + eax*4]
lea edi, [eax*4]
push 1
call fcn.005a4e70
mov edx, dword [esi + 0x108]
mov ecx, dword [edx + edi]
push 0
push 0
push 0
call fcn.005a4c30
fld dword [esi + 0x1c0]
fadd dword [esi + 0x1a8]
mov eax, dword [esi + 0x108]
mov ecx, dword [eax + edi]
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esi + 0x1bc]
fadd dword [esi + 0x1a4]
fstp dword [esp + 4]
fld dword [esi + 0x1a0]
fadd dword [esi + 0x1b8]
fstp dword [esp]
call fcn.00525180
mov ebx, dword [esi + 0x108]
add ebx, edi
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [ebx]
mov dword [ecx + 0x64], eax
mov edx, dword [esi + 0x108]
mov eax, dword [edx + edi]
mov byte [eax + 0x88], 1
mov ecx, dword [esi + 0x108]
mov edx, dword [ecx + edi]
mov byte [edx + 0x30], 1
mov eax, dword [esi + 0x164]
inc ebp
cmp ebp, eax
jl 0x586cd0
fld dword [esi + 0x1a8]
sub esp, 0xc
fadd dword [esi + 0x1c0]
mov ecx, esi
fstp dword [esp + 8]
fld dword [esi + 0x1a4]
fadd dword [esi + 0x1bc]
fstp dword [esp + 4]
fld dword [esi + 0x1b8]
fadd dword [esi + 0x1a0]
fstp dword [esp]
call fcn.0057f9c0
fld dword [esi + 0x1a8]
sub esp, 0xc
fadd dword [esi + 0x1c0]
mov ecx, esi
fstp dword [esp + 8]
fld dword [esi + 0x1a4]
fadd dword [esi + 0x1bc]
fstp dword [esp + 4]
fld dword [esi + 0x1b8]
fadd dword [esi + 0x1a0]
fstp dword [esp]
call fcn.0057fa00
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov eax, dword [esi + 0x16c]
mov dword [esi + 0x1ec], eax
call dword [sym.imp.winmm.dll_timeGetTime]
mov dword [esi + 0x130], eax
mov dword [esi + 0x134], eax
mov al, byte [esi + 0x33c]
test al, al
mov dword [esi + 0x250], 3
je 0x586e43
mov ecx, esi
call fcn.0057fc30
mov al, byte [esi + 0x350]
test al, al
je case.default.0x58648d
mov al, byte [esi + 0x37c]
test al, al
mov eax, dword [esi + 0x1f0]
mov ecx, dword [eax + 8]
fld dword [eax + 4]
fadd dword [esi + 0x11c]
mov edx, dword [eax]
push ecx
push ecx
fstp dword [esp]
mov ecx, esi
push edx
jne 0x586eb3
fld dword [esi + 0x1c0]
sub esp, 0xc
fadd dword [esi + 0x1a8]
fstp dword [esp + 8]
fld dword [esi + 0x1bc]
fadd dword [esi + 0x1a4]
fstp dword [esp + 4]
fld dword [esi + 0x1a0]
fadd dword [esi + 0x1b8]
fstp dword [esp]
call fcn.00580b20
jmp case.default.0x58648d
push ebx
push edi
push ebp
call fcn.00580b20
jmp case.default.0x58648d
mov eax, dword [esi + 0x160]
test eax, eax
je 0x586f18
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x586f18
mov ecx, dword [esi + 0x108]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x586f18
mov cl, byte [eax + 0x88]
test cl, cl
je 0x586f18
mov al, byte [esi + 0x2b4]
test al, al
je 0x586efc
mov al, byte [esi + 0x2eb]
test al, al
jne 0x586f18
mov al, byte [esi + 0x2b6]
test al, al
je case.default.0x58648d
mov al, byte [esi + 0x2ec]
test al, al
je case.default.0x58648d
mov eax, dword [esi + 0x18c]
xor ebp, ebp
test eax, eax
jle 0x587014
jmp 0x586f30
mov eax, dword [esi + 0x24c]
test eax, eax
jle 0x58700a
fld dword [esi + 0x154]
mov eax, dword [esi + 0x1f0]
fmul dword [esi + 0x290]
mov edx, dword [esi + 0x188]
fadd dword [eax]
fstp dword [esp + 0x38]
fld dword [esi + 0x158]
fmul dword [esi + 0x290]
fadd dword [eax + 4]
fstp dword [esp + 0x3c]
fld dword [esi + 0x15c]
fmul dword [esi + 0x290]
fadd dword [eax + 8]
mov eax, dword [edx + ebp*4]
cmp eax, 0xffffffff
fstp dword [esp + 0x40]
je 0x587014
lea edi, [eax*4]
mov eax, dword [esi + 0x108]
mov ecx, dword [eax + edi]
push 0
call fcn.005a4e70
mov ecx, dword [esi + 0x108]
mov ecx, dword [ecx + edi]
push 0
push 0
push 0
call fcn.005a4c30
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [esi + 0x108]
push eax
push ecx
mov ecx, dword [edx + edi]
call fcn.00525180
mov ebx, dword [esi + 0x108]
add ebx, edi
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [ebx]
mov dword [ecx + 0x64], eax
mov edx, dword [esi + 0x108]
mov eax, dword [edx + edi]
mov byte [eax + 0x88], 1
mov eax, dword [esi + 0x18c]
inc ebp
cmp ebp, eax
jl 0x586f30
jmp 0x587014
mov dword [esi + 0x250], 5
mov dword [esi + 0x250], 5
mov ecx, dword [esi + 0x1bc]
mov eax, dword [esi + 0x200]
mov edx, dword [eax]
mov dword [esp + 0x48], ecx
lea ecx, [esi + 0x204]
push ecx
push 2
push eax
mov dword [esp + 0x50], 0
mov dword [esp + 0x58], 0
call dword [edx + 0x98]
mov eax, dword [esi + 0x250]
test eax, eax
je 0x589ca8
xor ebp, ebp
xor edx, edx
mov dword [esp + 0x18], edx
mov ecx, dword [esi + 0x108]
cmp ecx, ebp
jne 0x587074
xor eax, eax
jmp 0x58707f
mov eax, dword [esi + 0x10c]
sub eax, ecx
sar eax, 2
cmp edx, eax
jge 0x589ae1
mov eax, dword [esi + 0x108]
mov eax, dword [eax + edx*4]
cmp eax, ebp
mov dword [esp + 0x24], eax
jne 0x5870ab
inc dword [esi + 0x2a0]
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
mov edx, eax
jmp 0x587066
mov cl, byte [eax + 0x88]
test cl, cl
je 0x589ad1
mov edi, dword [esp + 0x18]
mov ecx, dword [esi + 0x124]
mov ebx, edi
imul ebx, ebx, 0x1b4
lea eax, [ebx + ecx]
cmp dword [eax + 0x170], 0xffffffff
je 0x587125
mov cl, byte [eax + 1]
test cl, cl
jne 0x587125
mov byte [eax + 1], 1
mov edx, dword [esi + 0x108]
mov ecx, dword [edx + edi*4]
push 1
call fcn.005a4e70
mov eax, dword [esi + 0x124]
mov ecx, dword [ebx + eax + 0x174]
mov edx, dword [esi + 0x108]
mov eax, dword [edx + edi*4]
dec ecx
mov dword [eax + 0x28], ecx
mov ecx, dword [esi + 0x124]
mov edx, dword [esi + 0x108]
mov eax, dword [edx + edi*4]
mov ecx, dword [ebx + ecx + 0x170]
mov dword [eax + 0x2c], ecx
mov eax, dword [esi + 0x148]
cmp eax, ebp
mov byte [esp + 0x37], 0
jle 0x587172
mov edx, dword [esi + 0x148]
mov edi, dword [esi + 0x108]
mov eax, dword [esi + 0x144]
mov dword [esp + 0x10], edx
lea ebx, [ebx]
mov ecx, dword [eax]
mov edx, dword [esp + 0x24]
cmp dword [edi + ecx*4], edx
jne 0x587160
mov byte [esp + 0x37], 1
mov ecx, dword [esp + 0x10]
add eax, 4
dec ecx
mov dword [esp + 0x10], ecx
jne 0x587150
mov edi, dword [esp + 0x18]
mov al, byte [esi + 0x37c]
test al, al
je 0x587689
mov al, byte [esp + 0x37]
test al, al
je 0x587689
mov eax, dword [esi + 0x114]
cmp eax, ebp
je 0x587689
push eax
mov ecx, 0x69f328
call fcn.005298b0
test al, al
je 0x587689
mov eax, dword [esi + 0x378]
mov ecx, dword [esi + 0x114]
push eax
call fcn.0058fbc0
mov edi, eax
cmp edi, ebp
je 0x587685
mov ecx, dword [esi + 0x114]
call fcn.0044ceb0
fstp dword [esp + 0x10]
lea ecx, [esp + 0x138]
push ecx
mov ecx, edi
call fcn.0052e960
add edi, 8
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
mov dword [esp + 0x23c], edx
mov edx, dword [esp + 0x138]
mov dword [esp + 0x240], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x128], edx
mov edx, dword [esp + 0x144]
mov dword [esp + 0x244], ecx
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x12c], eax
mov eax, dword [esi + 0x378]
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], edx
mov dword [esp + 0x120], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0x124], 0x3f800000
mov dword [esp + 0x110], 0x3f800000
mov dword [esp + 0xfc], 0x3f800000
mov dword [esp + 0xe8], 0x3f800000
mov ecx, dword [eax + 0x100]
mov dword [esp + 0x118], ecx
mov edx, dword [eax + 0x104]
mov dword [esp + 0x11c], edx
mov eax, dword [eax + 0x108]
lea ecx, [esp + 0x128]
push ecx
lea edx, [esp + 0x4ac]
push edx
mov dword [esp + 0x128], eax
call fcn.004f8f79
lea eax, [esp + 0x4a8]
push eax
lea ecx, [esp + 0xec]
push ecx
lea edx, [esp + 0x3f8]
push edx
call fcn.004f82b4
mov ecx, dword [esi + 0x378]
lea eax, [esp + 0x128]
push eax
add ecx, 0x10c
push ecx
lea edx, [esp + 0x368]
push edx
call fcn.004f95c8
mov eax, dword [esp + 0x360]
mov ecx, dword [esp + 0x364]
mov edx, dword [esp + 0x368]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x36c]
mov dword [esp + 0x12c], ecx
mov ecx, dword [esp + 0x128]
mov dword [esp + 0x130], edx
mov edx, dword [esp + 0x12c]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x138], ecx
mov ecx, dword [esp + 0x134]
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], ecx
fld dword [esp + 0x420]
mov eax, dword [esi + 0x378]
fadd dword [esp + 0x23c]
mov cl, byte [eax + 0x11c]
test cl, cl
fld dword [esp + 0x424]
fadd dword [esp + 0x240]
fld dword [esp + 0x428]
fadd dword [esp + 0x244]
fstp dword [esp + 0x84]
fxch st(1)
fmul dword [esp + 0x10]
fstp dword [esp + 0x7c]
fmul dword [esp + 0x10]
fstp dword [esp + 0x80]
fld dword [esp + 0x84]
fmul dword [esp + 0x10]
fstp dword [esp + 0x84]
jne 0x5874a4
mov cl, byte [eax + 0x140]
test cl, cl
je 0x5874a4
mov edx, dword [eax + 0x128]
mov ecx, dword [eax + 0x124]
mov edi, dword [esp + 0x24]
push edx
mov edx, dword [eax + 0x120]
push ecx
push edx
mov ecx, edi
call fcn.00525180
mov eax, dword [esi + 0x378]
mov ecx, dword [eax + 0x120]
mov edx, dword [eax + 0x124]
mov eax, dword [eax + 0x128]
mov dword [esp + 0x200], ecx
mov dword [esp + 0x204], edx
mov dword [esp + 0x208], eax
jmp 0x587534
fld dword [esp + 0x84]
mov ecx, dword [esp + 0x24]
fadd dword [esi + 0x1a8]
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esp + 0x8c]
fadd dword [esi + 0x1a4]
fstp dword [esp + 4]
fld dword [esp + 0x88]
fadd dword [esi + 0x1a0]
fstp dword [esp]
call fcn.00525180
fld dword [esp + 0x7c]
mov edi, dword [esp + 0x24]
fadd dword [esi + 0x1a0]
fstp dword [esp + 0x260]
mov ecx, dword [esp + 0x260]
fld dword [esp + 0x80]
fadd dword [esi + 0x1a4]
fstp dword [esp + 0x264]
mov edx, dword [esp + 0x264]
fld dword [esp + 0x84]
fadd dword [esi + 0x1a8]
fstp dword [esp + 0x268]
mov eax, dword [esp + 0x268]
mov dword [esp + 0x6c], eax
mov eax, dword [esi + 0x378]
mov dword [esp + 0x64], ecx
mov cl, byte [eax + 0x12c]
test cl, cl
mov dword [esp + 0x68], edx
jne 0x587590
mov cl, byte [eax + 0x140]
test cl, cl
je 0x587590
lea ecx, [esp + 0x3a0]
mov dword [esp + 0x3a0], 0
mov dword [esp + 0x3a4], 0
mov dword [esp + 0x3a8], 0
mov dword [esp + 0x3ac], 0x3f800000
push ecx
jmp 0x587598
lea edx, [esp + 0x138]
push edx
mov ecx, edi
call fcn.005a4b80
mov eax, dword [esi + 0x378]
mov cl, byte [eax + 0x140]
test cl, cl
jne 0x587685
fld dword [esp + 0x7c]
mov byte [eax + 0x140], 1
fadd dword [esi + 0x1a0]
mov eax, dword [esi + 0x378]
add eax, 0x120
fstp dword [esp + 0x290]
mov ecx, dword [esp + 0x290]
fld dword [esp + 0x80]
fadd dword [esi + 0x1a4]
fstp dword [esp + 0x294]
mov edx, dword [esp + 0x294]
fld dword [esp + 0x84]
fadd dword [esi + 0x1a8]
mov dword [eax], ecx
mov dword [eax + 4], edx
fstp dword [esp + 0x298]
mov ecx, dword [esp + 0x298]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x13c]
mov edx, dword [esp + 0x138]
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x15c], eax
mov eax, dword [esi + 0x378]
mov dword [esp + 0x158], edx
mov edx, dword [esp + 0x144]
mov dword [esp + 0x160], ecx
mov ecx, dword [esp + 0x158]
add eax, 0x130
mov dword [eax], ecx
mov ecx, dword [esp + 0x160]
mov dword [esp + 0x164], edx
mov edx, dword [esp + 0x15c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x164]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov edi, dword [esp + 0x18]
mov eax, dword [esi + 0x124]
mov cl, byte [eax + ebx + 0x118]
add eax, ebx
test cl, cl
je 0x5878ea
mov cl, byte [eax + 0x1b0]
test cl, cl
jne 0x5878ea
lea ecx, [esi + 0x1e0]
mov edx, dword [ecx]
mov dword [esp + 0x2fc], edx
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x304], ecx
mov cl, byte [esi + 0x2b5]
test cl, cl
mov dword [esp + 0x300], edx
jne 0x5876e2
mov byte [eax + 0x1b0], 1
fld dword [esp + 0x2fc]
mov eax, dword [esi + 0x124]
fmul dword [0x664da0]
mov edx, dword [esi + 0x1a4]
fld dword [esp + 0x304]
lea ecx, [ebx + eax + 0x10c]
fmul dword [0x664da0]
push ecx
fxch st(1)
mov dword [esp + 0x2b0], edx
fadd dword [esi + 0x1a0]
mov ecx, dword [esp + 0x2b0]
sub esp, 0xc
mov edx, esp
fstp dword [esp + 0x2b8]
mov eax, dword [esp + 0x2b8]
mov dword [edx], eax
fadd dword [esi + 0x1a8]
mov dword [edx + 4], ecx
sub esp, 0xc
mov ecx, esp
fstp dword [esp + 0x2cc]
mov eax, dword [esp + 0x2cc]
mov dword [edx + 8], eax
mov edx, dword [esi + 0x1a0]
mov eax, dword [esi + 0x1a4]
mov dword [ecx], edx
mov edx, dword [esi + 0x1a8]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov ecx, esi
call fcn.0057fa70
mov eax, dword [esi + 0x124]
mov ecx, dword [eax + ebx + 0x10c]
mov edx, dword [eax + ebx + 0x110]
add eax, ebx
push ebp
push ecx
push edx
lea eax, [esp + 0x180]
push eax
call fcn.004f94dc
mov al, byte [esi + 0x2e0]
test al, al
je 0x587898
mov al, byte [esi + 0x2e1]
test al, al
jne 0x587845
fld dword [esi + 0x2d0]
mov ecx, dword [esi + 0x2dc]
fchs
lea edx, [esp + 0x370]
fstp dword [esp + 0x370]
push edx
fld dword [esi + 0x2d4]
lea edi, [esi + 0x2c0]
fchs
push edi
fstp dword [esp + 0x37c]
lea eax, [esp + 0x388]
fld dword [esi + 0x2d8]
push eax
fchs
mov dword [esp + 0x388], ecx
fstp dword [esp + 0x384]
call fcn.004f95c8
mov ecx, dword [esp + 0x380]
mov edx, dword [esp + 0x384]
mov eax, dword [esp + 0x388]
mov dword [edi], ecx
mov ecx, dword [esp + 0x38c]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov edi, dword [esp + 0x18]
mov byte [esi + 0x2e1], 1
lea edx, [esi + 0x2d0]
push edx
lea eax, [esi + 0x2c0]
push eax
lea ecx, [esp + 0x3d8]
push ecx
call fcn.004f95c8
mov edx, dword [esp + 0x3d0]
mov eax, dword [esp + 0x3d4]
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x174], edx
mov edx, dword [esp + 0x3dc]
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x180], edx
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
mov dword [esp + 0x390], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x394], ecx
mov ecx, dword [esi + 0x108]
mov dword [esp + 0x398], edx
mov dword [esp + 0x39c], eax
mov ecx, dword [ecx + edi*4]
cmp ecx, ebp
je 0x5878ea
lea edx, [esp + 0x390]
push edx
call fcn.005a4b80
mov al, byte [esi + 0x2a4]
test al, al
je 0x58798c
mov ecx, esi
call fcn.00580cc0
fld dword [esi + 0x2b0]
fmul dword [0x6654b0]
sub esp, 0xc
lea eax, [esp + 0x3cc]
fstp dword [esp + 8]
fld dword [esi + 0x2a8]
fmul dword [0x6654b0]
fstp dword [esp + 4]
fld dword [esi + 0x2ac]
fmul dword [0x6654b0]
fstp dword [esp]
push eax
call fcn.004f94dc
mov ecx, dword [esp + 0x3c0]
mov edx, dword [esp + 0x3c4]
mov eax, dword [esp + 0x3c8]
mov dword [esp + 0x3e0], ecx
mov ecx, dword [esp + 0x3cc]
mov dword [esp + 0x3e4], edx
mov dword [esp + 0x3e8], eax
mov eax, dword [esi + 0x108]
lea edx, [esp + 0x3e0]
mov dword [esp + 0x3ec], ecx
mov ecx, dword [eax + edi*4]
push edx
call fcn.005a4b80
mov al, byte [esi + 0x349]
test al, al
je 0x587b74
mov al, byte [esi + 0x271]
test al, al
je 0x587b74
mov ecx, dword [esi + 0x124]
mov eax, dword [ebx + ecx + 0x13c]
xor edi, edi
cmp eax, ebp
jle 0x587a0f
jmp 0x5879c0
mov edx, dword [esi + 0x124]
mov eax, dword [ebx + edx + 0x12c]
mov eax, dword [eax + edi*4]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
je 0x5879fd
fild dword [esp + 0x10]
mov edx, dword [esi + 0x108]
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + ecx*4]
fcomp dword [eax + 0x1c]
fnstsw ax
test ah, 0x41
jp 0x5879fd
push edi
push ecx
mov ecx, esi
call fcn.0057eb70
mov ecx, dword [esi + 0x124]
mov eax, dword [ebx + ecx + 0x13c]
inc edi
cmp edi, eax
jl 0x5879c0
mov edx, dword [esi + 0x124]
mov eax, dword [ebx + edx + 0x128]
xor edi, edi
cmp eax, ebp
jle 0x587a83
jmp 0x587a30
mov eax, dword [esi + 0x124]
mov ecx, dword [ebx + eax + 0x11c]
mov eax, dword [ecx + edi*4]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
je 0x587a71
mov eax, dword [esp + 0x18]
fild dword [esp + 0x10]
mov edx, dword [esi + 0x108]
mov ecx, dword [edx + eax*4]
fcomp dword [ecx + 0x1c]
fnstsw ax
test ah, 0x41
jp 0x587a71
mov edx, dword [esp + 0x18]
push edi
push edx
mov ecx, esi
call fcn.0057eb00
mov eax, dword [esi + 0x124]
mov ecx, dword [ebx + eax + 0x128]
inc edi
cmp edi, ecx
jl 0x587a30
mov ecx, dword [esi + 0x124]
cmp dword [ebx + ecx + 0x180], ebp
mov dword [esp + 0x10], ebp
jle 0x587b74
mov edi, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esi + 0x124]
mov ecx, dword [ebx + eax + 0x17c]
mov al, byte [ecx + edx + 0x14]
add ecx, edx
test al, al
jne 0x587b55
cmp dword [ecx], 0xbf800000
je 0x587b55
mov eax, dword [esi + 0x108]
fld dword [ecx + 0x10]
mov eax, dword [eax + edi*4]
fcomp dword [eax + 0x1c]
fnstsw ax
test ah, 0x41
jp 0x587b55
mov byte [ecx + 0x14], 1
mov ecx, dword [esi + 0x124]
mov eax, dword [ebx + ecx + 0x17c]
fld dword [eax + edx + 0xc]
mov dword [0x8bd344], 0
fstp dword [0x685070]
mov ecx, dword [esi + 0x124]
mov eax, dword [ebx + ecx + 0x17c]
mov ecx, dword [eax + edx]
add eax, edx
mov dword [esp + 0x2c0], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x2c4], ecx
mov ecx, dword [esp + 0x2c0]
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x2c4]
mov dword [0x8bd368], ecx
mov ecx, dword [esp + 0x2c8]
mov dword [0x8bd36c], eax
mov dword [0x8bd370], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x124]
inc eax
add edx, 0x18
cmp eax, dword [ebx + ecx + 0x180]
mov dword [esp + 0x10], eax
jl 0x587aa0
cmp dword [esi + 0x164], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x10], ebp
jle 0x589562
jmp 0x587b90
mov edx, dword [esi + 0x160]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
cmp eax, dword [edx + ecx*4]
jne 0x58954b
mov eax, ecx
cmp eax, ebp
jne 0x588bdc
cmp dword [esi + 0x24c], ebp
jle 0x589d0b
call dword [sym.imp.winmm.dll_timeGetTime]
mov edx, dword [esi + 0x134]
mov edi, eax
mov ecx, edi
sub ecx, edx
cmp ecx, 0x28
jb 0x587bf5
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x50]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
add ecx, eax
mov dword [esp + 0x50], ecx
mov dword [esi + 0x134], edi
mov eax, dword [esp + 0x50]
cmp eax, ebp
jle 0x587f75
mov dword [esp + 0x20], eax
jmp 0x587c10
mov al, byte [esi + 0x350]
test al, al
jne 0x587f46
cmp dword [esi + 0x11c], 0xbf800000
jne 0x587d07
mov eax, dword [esi + 0x1f0]
fld dword [eax]
mov ecx, dword [eax + 8]
fld dword [esp + 0x48]
mov dword [esp + 0x45c], ecx
fadd dword [eax + 4]
lea edx, [esi + 0x2f0]
fxch st(1)
lea edi, [esi + 0x2fc]
fsub dword [esi + 0x1d4]
fstp dword [esp + 0x2d8]
mov ecx, dword [esp + 0x2d8]
fsub dword [esi + 0x1d8]
fstp dword [esp + 0x2dc]
fld dword [esp + 0x45c]
fsub dword [esi + 0x1dc]
mov dword [edx], ecx
mov ecx, dword [esp + 0x2dc]
mov dword [edx + 4], ecx
fstp dword [esp + 0x2e0]
mov ecx, dword [esp + 0x2e0]
mov dword [edx + 8], ecx
fld dword [eax]
fld dword [esp + 0x48]
mov edx, dword [eax + 8]
fadd dword [eax + 4]
mov dword [esp + 0x48c], edx
fxch st(1)
mov eax, edi
fsub dword [esi + 0x1ac]
fstp dword [esp + 0x2f0]
mov ecx, dword [esp + 0x2f0]
fsub dword [esi + 0x1b0]
fstp dword [esp + 0x2f4]
mov edx, dword [esp + 0x2f4]
fld dword [esp + 0x48c]
fsub dword [esi + 0x1b4]
mov dword [eax], ecx
mov dword [eax + 4], edx
fstp dword [esp + 0x2f8]
mov ecx, dword [esp + 0x2f8]
mov dword [eax + 8], ecx
jmp 0x587e11
mov edx, dword [esp + 0x44]
fld dword [esi + 0x11c]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x38], edx
fld dword [esp + 0x38]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x1f0]
fadd dword [eax]
mov dword [esp + 0x40], ecx
fld st(1)
lea edx, [esi + 0x2f0]
fadd dword [eax + 4]
lea edi, [esi + 0x2fc]
fld dword [esp + 0x40]
fadd dword [eax + 8]
fstp dword [esp + 0x474]
fxch st(1)
fsub dword [esi + 0x1d4]
fstp dword [esp + 0x224]
mov ecx, dword [esp + 0x224]
fsub dword [esi + 0x1d8]
fstp dword [esp + 0x228]
fld dword [esp + 0x474]
fsub dword [esi + 0x1dc]
mov dword [edx], ecx
mov ecx, dword [esp + 0x228]
mov dword [edx + 4], ecx
fstp dword [esp + 0x22c]
mov ecx, dword [esp + 0x22c]
fld dword [esp + 0x38]
mov dword [edx + 8], ecx
fadd dword [eax]
mov edx, edi
fxch st(1)
fadd dword [eax + 4]
fstp dword [esp + 0x34c]
fld dword [esp + 0x40]
fadd dword [eax + 8]
fstp dword [esp + 0x350]
fsub dword [esi + 0x1ac]
fstp dword [esp + 0x1ac]
mov eax, dword [esp + 0x1ac]
fld dword [esp + 0x34c]
fsub dword [esi + 0x1b0]
fstp dword [esp + 0x1b0]
mov ecx, dword [esp + 0x1b0]
fld dword [esp + 0x350]
fsub dword [esi + 0x1b4]
mov dword [edx], eax
mov dword [edx + 4], ecx
fstp dword [esp + 0x1b4]
mov eax, dword [esp + 0x1b4]
mov dword [edx + 8], eax
mov edx, dword [esi + 0x1ac]
mov eax, dword [esi + 0x1b0]
lea ebp, [esi + 0x308]
mov ecx, ebp
mov dword [ecx], edx
mov edx, dword [esi + 0x1b4]
push edi
mov dword [ecx + 4], eax
push edi
mov dword [ecx + 8], edx
call fcn.004f7a20
fld dword [edi]
fmul dword [esi + 0x1ec]
mov eax, dword [esi + 0x124]
add eax, ebx
fadd dword [ebp]
fadd dword [eax + 0x14c]
fstp dword [ebp]
xor ebp, ebp
fld dword [esi + 0x300]
fmul dword [esi + 0x1ec]
fadd dword [eax + 0x150]
fadd dword [esi + 0x30c]
fstp dword [esi + 0x30c]
fld dword [esi + 0x304]
fmul dword [esi + 0x1ec]
fadd dword [eax + 0x154]
fadd dword [esi + 0x310]
fstp dword [esi + 0x310]
fld dword [eax + 0x158]
fadd dword [eax + 0x14c]
fstp dword [eax + 0x14c]
mov ecx, dword [esi + 0x124]
fld dword [ebx + ecx + 0x15c]
lea eax, [ebx + ecx]
fadd dword [eax + 0x150]
fstp dword [eax + 0x150]
mov edx, dword [esi + 0x124]
fld dword [ebx + edx + 0x160]
lea eax, [ebx + edx]
fadd dword [eax + 0x154]
fstp dword [eax + 0x154]
mov eax, dword [esi + 0x124]
fld dword [ebx + eax + 0x14c]
lea eax, [ebx + eax + 0x14c]
fmul dword [str.fff__sEsf.info]
fstp dword [eax]
mov ecx, dword [esi + 0x124]
fld dword [ebx + ecx + 0x150]
lea eax, [ebx + ecx + 0x150]
fmul dword [str.fff__sEsf.info]
fstp dword [eax]
mov edx, dword [esi + 0x124]
fld dword [ebx + edx + 0x154]
lea eax, [ebx + edx + 0x154]
fmul dword [str.fff__sEsf.info]
fstp dword [eax]
fld dword [esi + 0x170]
fadd dword [esi + 0x1ec]
fstp dword [esi + 0x1ec]
jmp 0x587f6b
mov eax, dword [esi + 0x34c]
cmp eax, ebp
je 0x587f6b
mov ecx, dword [eax + 0x13c]
cmp ecx, ebp
je 0x587f6b
push ebp
lea eax, [esi + 0x308]
push eax
call fcn.005e6450
mov byte [esp + 0x1f], al
dec dword [esp + 0x20]
jne 0x587c10
mov al, byte [esi + 0x2e2]
test al, al
je 0x588a73
mov eax, dword [esi + 0x1f0]
fld dword [eax + 8]
lea ecx, [esp + 0xd0]
fsub dword [esi + 0x1a8]
push ecx
fld dword [eax + 4]
mov edx, ecx
fsub dword [esi + 0x1a4]
push edx
fld dword [eax]
mov dword [esp + 0x60], 0
fsub dword [esi + 0x1a0]
mov dword [esp + 0x64], 0x3f800000
mov dword [esp + 0x68], 0
fstp dword [esp + 0xd8]
fstp dword [esp + 0xdc]
fstp dword [esp + 0xe0]
call fcn.004f7a20
lea eax, [esp + 0x58]
push eax
mov ecx, eax
push ecx
call fcn.004f7a20
fld dword [esp + 0xd4]
fmul dword [esp + 0x60]
fld dword [esp + 0x5c]
fmul dword [esp + 0xd8]
fsubp st(1)
fstp dword [esp + 0x278]
mov edx, dword [esp + 0x278]
fld dword [esp + 0x58]
mov dword [esp + 0x70], edx
fmul dword [esp + 0xd8]
lea edx, [esp + 0x70]
fld dword [esp + 0x60]
push edx
fmul dword [esp + 0xd4]
fsubp st(1)
fstp dword [esp + 0x280]
mov eax, dword [esp + 0x280]
fld dword [esp + 0x60]
mov dword [esp + 0x78], eax
fmul dword [esp + 0xd4]
mov eax, edx
fld dword [esp + 0x5c]
push eax
fmul dword [esp + 0xdc]
fsubp st(1)
fstp dword [esp + 0x288]
mov ecx, dword [esp + 0x288]
mov dword [esp + 0x80], ecx
call fcn.004f7a20
fld dword [esi + 0x1b8]
fadd dword [esi + 0x1a0]
mov ecx, dword [esi + 0x2e4]
fstp dword [esp + 0x26c]
mov edx, dword [esp + 0x26c]
fld dword [esi + 0x1bc]
fadd dword [esi + 0x1a4]
fstp dword [esp + 0x270]
mov eax, dword [esp + 0x270]
fld dword [esi + 0x1c0]
fadd dword [esi + 0x1a8]
mov dword [ecx], edx
mov dword [ecx + 4], eax
fstp dword [esp + 0x274]
mov edx, dword [esp + 0x274]
fld dword [0x64fe74]
mov dword [ecx + 8], edx
fld dword [esi + 0x308]
fucompp
fnstsw ax
test ah, 0x44
jp 0x588178
fld dword [0x64fe74]
fld dword [esi + 0x30c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x588178
fld dword [0x64fe74]
fld dword [esi + 0x310]
fucompp
fnstsw ax
test ah, 0x44
jp 0x588178
fld dword [esi + 0x1b8]
mov eax, dword [esi + 0x2e4]
fadd dword [esi + 0x1a0]
add eax, 0xc
fstp dword [esp + 0x1c4]
mov ecx, dword [esp + 0x1c4]
fld dword [esi + 0x1bc]
fadd dword [esi + 0x1a4]
fstp dword [esp + 0x1c8]
mov edx, dword [esp + 0x1c8]
fld dword [esi + 0x1c0]
fadd dword [esi + 0x1a8]
mov dword [eax], ecx
fstp dword [esp + 0x1cc]
mov ecx, dword [esp + 0x1cc]
jmp 0x588407
mov eax, dword [esi + 0x11c]
mov edx, 0xbf800000
cmp eax, edx
jne 0x5881f8
mov ecx, dword [esi + 0x1f0]
fld dword [ecx]
mov eax, dword [ecx + 8]
fld dword [esp + 0x48]
mov dword [esp + 0x468], eax
fadd dword [ecx + 4]
fxch st(1)
fsub dword [esi + 0x1a0]
fstp dword [esp + 0x2b4]
mov eax, dword [esp + 0x2b4]
mov dword [esp + 0x94], eax
fsub dword [esi + 0x1a4]
fstp dword [esp + 0x2b8]
mov eax, dword [esp + 0x2b8]
fld dword [esp + 0x468]
mov dword [esp + 0x98], eax
fsub dword [esi + 0x1a8]
fstp dword [esp + 0x2bc]
mov eax, dword [esp + 0x2bc]
jmp 0x5882a3
mov ecx, dword [esp + 0x44]
fld dword [esi + 0x11c]
mov dword [esp + 0x314], ecx
fld dword [esp + 0x314]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x31c], ecx
mov ecx, dword [esi + 0x1f0]
fadd dword [ecx]
mov dword [esp + 0x318], eax
fxch st(1)
fadd dword [ecx + 4]
fstp dword [esp + 0x340]
fld dword [esp + 0x31c]
fadd dword [ecx + 8]
fstp dword [esp + 0x344]
fsub dword [esi + 0x1a0]
fstp dword [esp + 0x1dc]
mov eax, dword [esp + 0x1dc]
fld dword [esp + 0x340]
mov dword [esp + 0x94], eax
fsub dword [esi + 0x1a4]
fstp dword [esp + 0x1e0]
mov eax, dword [esp + 0x1e0]
fld dword [esp + 0x344]
mov dword [esp + 0x98], eax
fsub dword [esi + 0x1a8]
fstp dword [esp + 0x1e4]
mov eax, dword [esp + 0x1e4]
fld dword [esi + 0x308]
mov dword [esp + 0x9c], eax
fsub dword [esi + 0x1a0]
fld dword [esi + 0x30c]
fsub dword [esi + 0x1a4]
fld dword [esi + 0x310]
fsub dword [esi + 0x1a8]
fld dword [esp + 0x9c]
fmul dword [esp + 0x9c]
fld dword [esp + 0x98]
fmul dword [esp + 0x98]
faddp st(1)
fld dword [esp + 0x94]
fmul dword [esp + 0x94]
faddp st(1)
fsqrt
fld st(1)
fmul st(2)
fld st(3)
fmul st(4)
faddp st(1)
fld st(4)
fmul st(5)
faddp st(1)
fsqrt
fstp st(4)
fxch st(1)
fxch st(3)
fcompp
fnstsw ax
fstp st(1)
test ah, 5
fstp st(0)
jp 0x58834b
mov ecx, dword [esi + 0x2e4]
mov edx, dword [esi + 0x308]
add ecx, 0xc
mov dword [ecx], edx
mov eax, dword [esi + 0x30c]
mov dword [ecx + 4], eax
mov edx, dword [esi + 0x310]
mov dword [ecx + 8], edx
jmp 0x58840d
cmp dword [esi + 0x11c], edx
jne 0x588395
mov eax, dword [ecx]
fld dword [esp + 0x48]
fadd dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov edx, dword [esi + 0x2e4]
add edx, 0xc
mov dword [esp + 0x28c], ecx
fstp dword [esp + 0x288]
mov ecx, dword [esp + 0x288]
mov dword [edx], eax
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x28c]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
jmp 0x58840d
mov edx, dword [esp + 0x44]
fld dword [esi + 0x11c]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x308], edx
fld dword [esp + 0x308]
fadd dword [ecx]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x310], edx
mov dword [esp + 0x30c], eax
mov eax, dword [esi + 0x2e4]
fstp dword [esp + 0x1f4]
add eax, 0xc
fadd dword [ecx + 4]
fstp dword [esp + 0x1f8]
mov edx, dword [esp + 0x1f8]
fld dword [esp + 0x310]
fadd dword [ecx + 8]
mov ecx, dword [esp + 0x1f4]
mov dword [eax], ecx
fstp dword [esp + 0x1fc]
mov ecx, dword [esp + 0x1fc]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov al, byte [esi + 0x2e3]
test al, al
je 0x588430
mov eax, dword [esi + 0x2e4]
mov cl, byte [eax + 0x318]
test cl, cl
jne 0x588430
mov byte [eax + 0x19], 1
jmp 0x588551
mov eax, dword [esi + 0x2e4]
mov cl, byte [eax + 0x19]
test cl, cl
jne 0x58852f
mov byte [eax + 0x19], 1
call fcn.006167ae
cdq
mov ecx, 0x18
idiv ecx
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
mov edx, dword [esi + 0x2e4]
fstp dword [edx + 0x204]
call fcn.006167ae
cdq
mov ecx, 0x18
idiv ecx
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
mov edx, dword [esi + 0x2e4]
fstp dword [edx + 0x208]
call fcn.006167ae
cdq
mov ecx, 0x18
idiv ecx
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
mov edx, dword [esi + 0x2e4]
fstp dword [edx + 0x20c]
call fcn.006167ae
and eax, 0x80000001
jns 0x5884b9
dec eax
or eax, 0xfffffffe
inc eax
je 0x5884d3
mov eax, dword [esi + 0x2e4]
fld dword [eax + 0x204]
fmul dword [0x65a944]
fstp dword [eax + 0x204]
call fcn.006167ae
and eax, 0x80000001
jns 0x5884e4
dec eax
or eax, 0xfffffffe
inc eax
je 0x5884fe
mov eax, dword [esi + 0x2e4]
fld dword [eax + 0x208]
fmul dword [0x65a944]
fstp dword [eax + 0x208]
call fcn.006167ae
and eax, 0x80000001
jns 0x58850f
dec eax
or eax, 0xfffffffe
inc eax
je 0x588529
mov eax, dword [esi + 0x2e4]
fld dword [eax + 0x20c]
fmul dword [0x65a944]
fstp dword [eax + 0x20c]
mov eax, dword [esi + 0x2e4]
fld dword [eax]
fadd dword [eax + 0x204]
fstp dword [eax]
fld dword [eax + 0x208]
fadd dword [eax + 4]
fstp dword [eax + 4]
fld dword [eax + 0x20c]
fadd dword [eax + 8]
fstp dword [eax + 8]
xor eax, eax
mov cl, byte [eax + 0x68af38]
mov byte [eax + 0x941728], cl
inc eax
test cl, cl
jne 0x588553
mov al, byte [esi + 0x2e3]
test al, al
mov eax, dword [esi + 0x2e4]
push ebp
lea ecx, [eax + 0x1c]
jne 0x588583
mov eax, dword [ecx]
push 0x66551c
call dword [eax]
jmp 0x58858d
mov edx, dword [ecx]
add eax, 0x214
push eax
call dword [edx]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x70]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fsubr dword [eax]
fstp dword [eax + 0x134]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x74]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fsubr dword [eax + 4]
fstp dword [eax + 0x138]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x78]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fsubr dword [eax + 8]
fstp dword [eax + 0x13c]
mov eax, dword [esi + 0x2e4]
mov dword [eax + 0x144], ebp
mov ecx, dword [esi + 0x2e4]
mov dword [ecx + 0x148], ebp
mov edi, dword [esi + 0x2e4]
fld dword [edi + 0x1f4]
fmul dword [0x651eb8]
call fcn.0061672c
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x140], eax
fld dword [esp + 0x70]
mov eax, dword [esi + 0x2e4]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fadd dword [eax]
fstp dword [eax + 0x164]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x74]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fadd dword [eax + 4]
fstp dword [eax + 0x168]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x78]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fadd dword [eax + 8]
fstp dword [eax + 0x16c]
mov edx, dword [esi + 0x2e4]
mov dword [edx + 0x174], 0x3f800000
mov eax, dword [esi + 0x2e4]
mov dword [eax + 0x178], ebp
mov edi, dword [esi + 0x2e4]
fld dword [edi + 0x1fc]
fmul dword [0x651eb8]
call fcn.0061672c
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x170], eax
fld dword [esp + 0x70]
mov eax, dword [esi + 0x2e4]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fsubr dword [eax + 0xc]
fstp dword [eax + 0x14c]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x74]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fsubr dword [eax + 0x10]
fstp dword [eax + 0x150]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x78]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fsubr dword [eax + 0x14]
fstp dword [eax + 0x154]
mov ecx, dword [esi + 0x2e4]
mov dword [ecx + 0x15c], ebp
mov edx, dword [esi + 0x2e4]
mov dword [edx + 0x160], 0x3f800000
mov edi, dword [esi + 0x2e4]
fld dword [edi + 0x1f8]
fmul dword [0x651eb8]
call fcn.0061672c
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x158], eax
fld dword [esp + 0x70]
mov eax, dword [esi + 0x2e4]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fadd dword [eax + 0xc]
fstp dword [eax + 0x17c]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x74]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fadd dword [eax + 0x10]
fstp dword [eax + 0x180]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x78]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fadd dword [eax + 0x14]
fstp dword [eax + 0x184]
mov ecx, dword [esi + 0x2e4]
mov eax, 0x3f800000
mov dword [ecx + 0x18c], eax
mov edx, dword [esi + 0x2e4]
mov dword [edx + 0x190], eax
mov edi, dword [esi + 0x2e4]
fld dword [edi + 0x200]
fmul dword [0x651eb8]
call fcn.0061672c
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x188], eax
fld dword [esp + 0x58]
mov eax, dword [esi + 0x2e4]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fsubr dword [eax]
fstp dword [eax + 0x194]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x5c]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fsubr dword [eax + 4]
fstp dword [eax + 0x198]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x60]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fsubr dword [eax + 8]
fstp dword [eax + 0x19c]
mov eax, dword [esi + 0x2e4]
mov dword [eax + 0x1a4], ebp
mov ecx, dword [esi + 0x2e4]
mov dword [ecx + 0x1a8], ebp
mov edi, dword [esi + 0x2e4]
fld dword [edi + 0x1f4]
fmul dword [0x651eb8]
call fcn.0061672c
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x1a0], eax
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x58]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fadd dword [eax]
fstp dword [eax + 0x1c4]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x5c]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fadd dword [eax + 4]
fstp dword [eax + 0x1c8]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x60]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fadd dword [eax + 8]
fstp dword [eax + 0x1cc]
mov edx, dword [esi + 0x2e4]
mov dword [edx + 0x1d4], 0x3f800000
mov eax, dword [esi + 0x2e4]
mov dword [eax + 0x1d8], ebp
mov edi, dword [esi + 0x2e4]
fld dword [edi + 0x1fc]
fmul dword [0x651eb8]
call fcn.0061672c
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x1d0], eax
fld dword [esp + 0x58]
mov eax, dword [esi + 0x2e4]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fsubr dword [eax + 0xc]
fstp dword [eax + 0x1ac]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x5c]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fsubr dword [eax + 0x10]
fstp dword [eax + 0x1b0]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x60]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fsubr dword [eax + 0x14]
fstp dword [eax + 0x1b4]
mov ecx, dword [esi + 0x2e4]
mov dword [ecx + 0x1bc], ebp
mov edx, dword [esi + 0x2e4]
mov dword [edx + 0x1c0], 0x3f800000
mov edi, dword [esi + 0x2e4]
fld dword [edi + 0x1f8]
fmul dword [0x651eb8]
call fcn.0061672c
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x1b8], eax
fld dword [esp + 0x58]
mov eax, dword [esi + 0x2e4]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fadd dword [eax + 0xc]
fstp dword [eax + 0x1dc]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x5c]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fadd dword [eax + 0x10]
fstp dword [eax + 0x1e0]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x60]
fmul dword [eax + 0x314]
fmul dword [0x64fe78]
fadd dword [eax + 0x14]
fstp dword [eax + 0x1e4]
mov ecx, dword [esi + 0x2e4]
mov eax, 0x3f800000
mov dword [ecx + 0x1ec], eax
mov edx, dword [esi + 0x2e4]
mov dword [edx + 0x1f0], eax
mov edi, dword [esi + 0x2e4]
fld dword [edi + 0x200]
fmul dword [0x651eb8]
call fcn.0061672c
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x1e8], eax
mov al, byte [esi + 0x1d1]
test al, al
jne 0x588b94
fld dword [esi + 0x2fc]
lea edi, [esi + 0x1c4]
fchs
push edi
fstp dword [esp + 0x21c]
mov ecx, dword [esp + 0x21c]
fld dword [esi + 0x300]
sub esp, 0xc
fchs
mov eax, esp
fstp dword [esp + 0x22c]
mov edx, dword [esp + 0x22c]
fld dword [esi + 0x304]
mov dword [eax], ecx
fchs
mov dword [eax + 4], edx
fstp dword [esp + 0x230]
mov ecx, dword [esp + 0x230]
fld dword [esi + 0x2f0]
mov dword [eax + 8], ecx
fchs
sub esp, 0xc
fstp dword [esp + 0x228]
mov eax, dword [esp + 0x228]
fld dword [esi + 0x2f4]
mov edx, esp
fchs
mov dword [edx], eax
fstp dword [esp + 0x22c]
mov ecx, dword [esp + 0x22c]
fld dword [esi + 0x2f8]
mov dword [edx + 4], ecx
fchs
mov ecx, esi
fstp dword [esp + 0x230]
mov eax, dword [esp + 0x230]
mov dword [edx + 8], eax
call fcn.0057fa70
mov ecx, dword [esi + 0x1cc]
mov edx, dword [edi]
mov eax, dword [esi + 0x1c8]
push ecx
push edx
push eax
lea ecx, [esp + 0x3bc]
push ecx
call fcn.004f94dc
mov eax, dword [esp + 0x3b4]
mov edx, dword [esp + 0x3b0]
mov ecx, dword [esp + 0x3b8]
mov dword [esp + 0x324], eax
mov dword [esp + 0x320], edx
mov edx, dword [esp + 0x3bc]
lea eax, [esp + 0x320]
mov dword [esp + 0x328], ecx
mov ecx, dword [esp + 0x24]
push eax
mov dword [esp + 0x330], edx
call fcn.005a4b80
cmp dword [esp + 0x50], ebp
je 0x589290
lea eax, [esi + 0x1ac]
mov edx, eax
mov edi, dword [edx]
lea ecx, [esi + 0x1d4]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [ecx + 4], edi
mov dword [ecx + 8], edx
mov ecx, dword [esi + 0x308]
mov edx, dword [esi + 0x30c]
mov dword [eax], ecx
mov eax, dword [esi + 0x310]
mov dword [esi + 0x1b0], edx
mov dword [esi + 0x1b4], eax
cmp dword [esp + 0x50], ebp
je 0x589290
cmp dword [esi + 0x11c], 0xbf800000
jne 0x588d3a
mov eax, dword [esi + 0x1f0]
fld dword [eax]
mov ecx, dword [eax + 8]
fld dword [esp + 0x48]
mov dword [esp + 0x480], ecx
fadd dword [eax + 4]
lea edi, [esi + 0x1ac]
fxch st(1)
fsub dword [esi + 0x1d4]
fstp dword [esp + 0x230]
mov edx, dword [esp + 0x230]
mov dword [esp + 0xdc], edx
fsub dword [esi + 0x1d8]
fstp dword [esp + 0x234]
mov ecx, dword [esp + 0x234]
fld dword [esp + 0x480]
mov dword [esp + 0xe0], ecx
fsub dword [esi + 0x1dc]
mov ecx, dword [eax + 8]
mov dword [esp + 0x444], ecx
fstp dword [esp + 0x238]
mov edx, dword [esp + 0x238]
fld dword [eax]
mov dword [esp + 0xe4], edx
fld dword [esp + 0x48]
fadd dword [eax + 4]
fxch st(1)
fsub dword [edi]
fstp dword [esp + 0x248]
mov edx, dword [esp + 0x248]
mov dword [esp + 0xc4], edx
fsub dword [edi + 4]
fstp dword [esp + 0x24c]
mov ecx, dword [esp + 0x24c]
fld dword [esp + 0x444]
mov dword [esp + 0xc8], ecx
fsub dword [edi + 8]
fstp dword [esp + 0x250]
mov edx, dword [esp + 0x250]
fld dword [eax]
mov dword [esp + 0xcc], edx
fld dword [esp + 0x48]
fadd dword [eax + 4]
mov eax, dword [eax + 8]
fxch st(1)
mov dword [esp + 0x438], eax
fsub dword [edi]
fstp dword [esp + 0x2e4]
mov ecx, dword [esp + 0x2e4]
mov dword [esp + 0xac], ecx
fsub dword [edi + 4]
fstp dword [esp + 0x2e8]
mov edx, dword [esp + 0x2e8]
fld dword [esp + 0x438]
mov dword [esp + 0xb0], edx
fsub dword [edi + 8]
fstp dword [esp + 0x2ec]
mov eax, dword [esp + 0x2ec]
mov dword [esp + 0xb4], eax
jmp 0x588ed0
mov ecx, dword [esp + 0x44]
fld dword [esi + 0x11c]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x168], ecx
fld dword [esp + 0x168]
mov dword [esp + 0x170], eax
mov eax, dword [esi + 0x1f0]
fadd dword [eax]
lea edi, [esi + 0x1ac]
fld st(1)
mov edx, dword [esp + 0x48]
fadd dword [eax + 4]
mov dword [esp + 0x16c], edx
fld dword [esp + 0x170]
fadd dword [eax + 8]
fstp dword [esp + 0x4a4]
fxch st(1)
fsub dword [esi + 0x1d4]
fstp dword [esp + 0x194]
mov ecx, dword [esp + 0x194]
mov dword [esp + 0xdc], ecx
fsub dword [esi + 0x1d8]
fstp dword [esp + 0x198]
mov edx, dword [esp + 0x198]
fld dword [esp + 0x4a4]
mov dword [esp + 0xe0], edx
fsub dword [esi + 0x1dc]
fstp dword [esp + 0x19c]
mov ecx, dword [esp + 0x19c]
fld dword [esp + 0x168]
mov dword [esp + 0xe4], ecx
fadd dword [eax]
fld st(1)
fadd dword [eax + 4]
fld dword [esp + 0x170]
fadd dword [eax + 8]
fstp dword [esp + 0x450]
fxch st(1)
fsub dword [edi]
fstp dword [esp + 0x29c]
mov edx, dword [esp + 0x29c]
mov dword [esp + 0xc4], edx
fsub dword [edi + 4]
fstp dword [esp + 0x2a0]
mov ecx, dword [esp + 0x2a0]
fld dword [esp + 0x450]
mov dword [esp + 0xc8], ecx
fsub dword [edi + 8]
fstp dword [esp + 0x2a4]
mov edx, dword [esp + 0x2a4]
fld dword [esp + 0x168]
mov dword [esp + 0xcc], edx
fadd dword [eax]
fxch st(1)
fadd dword [eax + 4]
fstp dword [esp + 0x358]
fld dword [esp + 0x170]
fadd dword [eax + 8]
fstp dword [esp + 0x35c]
fsub dword [edi]
fstp dword [esp + 0x254]
mov eax, dword [esp + 0x254]
fld dword [esp + 0x358]
mov dword [esp + 0xac], eax
fsub dword [edi + 4]
fstp dword [esp + 0x258]
mov ecx, dword [esp + 0x258]
fld dword [esp + 0x35c]
mov dword [esp + 0xb0], ecx
fsub dword [edi + 8]
fstp dword [esp + 0x25c]
mov edx, dword [esp + 0x25c]
mov dword [esp + 0xb4], edx
fld dword [esp + 0xe0]
fmul dword [0x64fe74]
fld dword [esp + 0xe4]
fsubr st(1)
fstp dword [esp + 0x2cc]
mov eax, dword [esp + 0x2cc]
fld dword [esp + 0xe4]
mov dword [esp + 0x1d0], eax
fmul dword [0x64fe74]
fld dword [esp + 0xdc]
fmul dword [0x64fe74]
fsubp st(1)
fstp dword [esp + 0x2d0]
mov ecx, dword [esp + 0x2d0]
fld dword [esp + 0xdc]
mov dword [esp + 0x1d4], ecx
fsub st(1)
fstp dword [esp + 0x2d4]
mov edx, dword [esp + 0x2d4]
mov dword [esp + 0x1d8], edx
fstp st(0)
fld dword [esp + 0xc8]
fmul dword [0x64fe74]
fld dword [esp + 0xcc]
fsubr st(1)
fstp dword [esp + 0x1a0]
mov eax, dword [esp + 0x1a0]
fld dword [esp + 0xcc]
mov dword [esp + 0x1b8], eax
fmul dword [0x64fe74]
fld dword [esp + 0xc4]
fmul dword [0x64fe74]
fsubp st(1)
fstp dword [esp + 0x1a4]
mov ecx, dword [esp + 0x1a4]
fld dword [esp + 0xc4]
mov dword [esp + 0x1bc], ecx
fsub st(1)
fstp dword [esp + 0x1a8]
mov edx, dword [esp + 0x1a8]
mov dword [esp + 0x1c0], edx
fstp st(0)
call dword [sym.imp.winmm.dll_timeGetTime]
fld dword [esp + 0x1c0]
mov ecx, eax
fmul dword [esp + 0x1d8]
fld dword [esp + 0x1bc]
fmul dword [esp + 0x1d4]
faddp st(1)
fld dword [esp + 0x1b8]
fmul dword [esp + 0x1d0]
faddp st(1)
fcomp dword [0x64fe74]
fnstsw ax
test ah, 5
jnp 0x5892b8
fld dword [esp + 0xac]
fmul dword [esp + 0xac]
fld dword [esp + 0xb4]
fmul dword [esp + 0xb4]
faddp st(1)
fld dword [esp + 0xb0]
fmul dword [esp + 0xb0]
faddp st(1)
fsqrt
fcomp dword [0x655470]
fnstsw ax
test ah, 5
jnp 0x5892b8
sub ecx, dword [esi + 0x130]
mov eax, 0xcccccccd
mul ecx
shr edx, 5
cmp edx, 0x64
jae 0x5892b8
mov al, byte [esp + 0x1f]
test al, al
jne 0x5892b8
mov eax, dword [esp + 0x24]
mov cl, byte [eax + 0x30]
test cl, cl
je 0x589290
mov ecx, dword [esi + 0x310]
mov edx, dword [esi + 0x30c]
mov eax, dword [esi + 0x308]
push ecx
mov ecx, dword [esp + 0x28]
push edx
push eax
call fcn.00525180
mov al, byte [esi + 0x33c]
test al, al
je 0x589290
mov ecx, edi
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0xa4], eax
cmp dword [esi + 0x11c], 0xbf800000
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa8], ecx
jne 0x58914c
mov eax, dword [esi + 0x1f0]
fld dword [eax]
mov edx, dword [eax + 8]
fld dword [esp + 0x48]
mov dword [esp + 0x498], edx
fadd dword [eax + 4]
fxch st(1)
fsub dword [edi]
fstp dword [esp + 0x1e8]
mov eax, dword [esp + 0x1e8]
fsub dword [edi + 4]
fstp dword [esp + 0x1ec]
mov ecx, dword [esp + 0x1ec]
fld dword [esp + 0x498]
fsub dword [edi + 8]
fstp dword [esp + 0x1f0]
mov edx, dword [esp + 0x1f0]
jmp 0x5891df
mov eax, dword [esp + 0x44]
fld dword [esi + 0x11c]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x88], eax
fld dword [esp + 0x88]
mov eax, dword [esi + 0x1f0]
fadd dword [eax]
mov ecx, dword [esp + 0x48]
fxch st(1)
mov dword [esp + 0x90], edx
fadd dword [eax + 4]
mov dword [esp + 0x8c], ecx
fstp dword [esp + 0x334]
fld dword [esp + 0x90]
fadd dword [eax + 8]
fstp dword [esp + 0x338]
fsub dword [edi]
fstp dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
fld dword [esp + 0x334]
fsub dword [edi + 4]
fstp dword [esp + 0xbc]
mov ecx, dword [esp + 0xbc]
fld dword [esp + 0x338]
fsub dword [edi + 8]
fstp dword [esp + 0xc0]
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x2c], ecx
push eax
mov ecx, eax
push ecx
mov dword [esp + 0x38], edx
call fcn.004f7a20
fld dword [esp + 0x28]
fmul dword [esi + 0x1ec]
mov edx, dword [esi + 0x124]
lea eax, [ebx + edx]
push ebp
fadd dword [eax + 0x14c]
fadd dword [esp + 0xa4]
fstp dword [esp + 0xa4]
mov edx, dword [esp + 0xa4]
fld dword [esp + 0x30]
fmul dword [esi + 0x1ec]
fadd dword [eax + 0x150]
fadd dword [esp + 0xa8]
fstp dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
fld dword [esp + 0x34]
fmul dword [esi + 0x1ec]
fadd dword [eax + 0x154]
fadd dword [esp + 0xac]
fstp dword [esp + 0xac]
mov eax, dword [esp + 0xac]
push eax
mov eax, dword [esi + 0x310]
push ecx
mov ecx, dword [esi + 0x30c]
push edx
mov edx, dword [esi + 0x308]
push eax
push ecx
push edx
mov ecx, esi
call fcn.00580900
fld dword [esi + 0x1ec]
fcomp dword [esi + 0x178]
fnstsw ax
test ah, 5
jp 0x58952c
mov eax, dword [esi + 0x178]
mov dword [esi + 0x1ec], eax
jmp 0x58954b
mov eax, dword [esp + 0x24]
mov byte [eax + 0x30], 0
mov al, byte [esi + 0x2b6]
test al, al
je 0x589384
mov eax, dword [esi + 0x18c]
cmp eax, ebp
mov dword [esp + 0x20], ebp
jle 0x589300
mov ecx, dword [esi + 0x188]
mov edx, eax
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x5892f6
mov edi, dword [esi + 0x108]
cmp dword [edi + eax*4], ebp
jne 0x5892fa
inc dword [esp + 0x20]
add ecx, 4
dec edx
jne 0x5892e4
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esi + 0x18c]
jne 0x589316
mov ecx, dword [esp + 0x24]
push ebp
call fcn.005a4e70
cmp dword [esi + 0x11c], 0xbf800000
mov eax, dword [esi + 0x1f0]
mov byte [esi + 0x2ec], 1
jne 0x58934e
mov edx, dword [eax + 8]
fld dword [esp + 0x48]
fadd dword [eax + 4]
mov eax, dword [eax]
mov edi, dword [esp + 0x24]
push edx
push ecx
fstp dword [esp]
push eax
mov ecx, edi
call fcn.00525180
jmp 0x58936f
mov ecx, dword [eax + 8]
fld dword [eax + 4]
fadd dword [esi + 0x11c]
mov edx, dword [eax]
push ecx
push ecx
mov ecx, dword [esp + 0x2c]
fstp dword [esp]
push edx
call fcn.00525180
mov edi, dword [esp + 0x24]
fld dword [edi + 0x1c]
call fcn.0061672c
push eax
mov ecx, edi
call fcn.005a4ee0
jmp 0x58940c
mov al, byte [esi + 0x2b4]
test al, al
push ebp
je 0x5893e2
mov edi, dword [esp + 0x28]
mov ecx, edi
call fcn.005a4e70
cmp dword [esi + 0x11c], 0xbf800000
mov eax, dword [esi + 0x1f0]
mov byte [esi + 0x2eb], 1
mov ecx, dword [eax + 8]
mov edx, dword [eax]
push ecx
push ecx
mov ecx, edi
jne 0x5893ce
fld dword [esp + 0x50]
fadd dword [eax + 4]
fstp dword [esp]
push edx
call fcn.00525180
jmp 0x58940c
fld dword [eax + 4]
fadd dword [esi + 0x11c]
fstp dword [esp]
push edx
call fcn.00525180
jmp 0x58940c
inc dword [esi + 0x2a0]
mov edi, dword [esp + 0x28]
mov ecx, edi
call fcn.005a4e70
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax]
mov ecx, dword [esi + 0x108]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x24], ebp
mov dword [ecx + edx*4], ebp
mov eax, dword [esi + 0x1cc]
mov ecx, dword [esi + 0x1c4]
mov edx, dword [esi + 0x1c8]
push eax
push ecx
push edx
lea eax, [esp + 0x190]
push eax
call fcn.004f94dc
mov al, byte [esi + 0x2b7]
test al, al
je 0x5894df
mov eax, dword [esp + 0x18c]
mov ecx, dword [esp + 0x184]
mov edx, dword [esp + 0x188]
mov dword [esp + 0x150], eax
mov eax, dword [esi + 0x2b8]
cmp eax, ebp
mov dword [esp + 0x148], ecx
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x14c], edx
mov dword [esp + 0x154], ecx
je 0x5894df
mov ecx, dword [esp + 0x148]
mov edx, eax
mov dword [edx + 0x2bc], ebp
mov eax, dword [esi + 0x2b8]
mov dword [eax + 0x2c0], ecx
mov edx, dword [esi + 0x2b8]
mov eax, dword [esp + 0x14c]
mov dword [edx + 0x2c4], eax
mov ecx, dword [esi + 0x2b8]
mov edx, dword [esp + 0x150]
mov dword [ecx + 0x2c8], edx
mov eax, dword [esi + 0x2b8]
mov ecx, dword [esp + 0x154]
mov dword [eax + 0x2cc], ecx
mov edx, dword [esi + 0x2b8]
mov byte [edx + 0x2e0], 1
mov ecx, dword [esp + 0x184]
mov edx, dword [esp + 0x188]
lea eax, [esi + 0x2c0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x18c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x190]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov al, byte [esi + 0x33c]
test al, al
mov byte [esp + 0x1f], 1
je 0x58954b
push 1
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
mov ecx, esi
call fcn.00580900
jmp 0x58954b
fld dword [esi + 0x1ec]
fcomp dword [esi + 0x174]
fnstsw ax
test ah, 0x41
jne 0x58954b
mov ecx, dword [esi + 0x174]
mov dword [esi + 0x1ec], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x164]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x587b90
cmp dword [esp + 0x24], ebp
je 0x589ad1
mov al, byte [esi + 0x349]
xor edx, edx
test al, al
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], edx
je 0x58988e
mov eax, dword [esi + 0x124]
mov ecx, dword [ebx + eax + 0x194]
xor ebp, ebp
test ecx, ecx
jle 0x5897be
xor ecx, ecx
lea ecx, [ecx]
mov eax, dword [esi + 0x124]
mov eax, dword [ebx + eax + 0x190]
test eax, eax
je 0x589636
cmp byte [eax + ecx + 0x110], 0
lea edi, [eax + ecx + 0x110]
jne 0x589607
fild dword [eax + ecx]
mov eax, dword [esi + 0x108]
mov edi, dword [esp + 0x18]
mov eax, dword [eax + edi*4]
fcomp dword [eax + 0x1c]
fnstsw ax
test ah, 0x41
jp 0x589636
mov ecx, dword [esi + 0x124]
cmp ebp, dword [ebx + ecx + 0x194]
mov dword [esp + 0x50], ebp
jge 0x5896cf
mov edx, ebp
imul edx, edx, 0x114
mov dword [esp + 0x54], edx
mov eax, edx
jmp 0x589660
mov edx, dword [esi + 0x108]
mov eax, dword [esp + 0x18]
mov eax, dword [edx + eax*4]
test eax, eax
je 0x589632
mov dl, byte [esi + 0x2a4]
test dl, dl
je 0x589632
fld dword [eax + 0x1c]
fcomp dword [eax + 0x20]
fnstsw ax
test ah, 5
jp 0x589632
mov byte [edi], 0
mov edx, dword [esp + 0x20]
mov eax, dword [esi + 0x124]
mov edi, dword [ebx + eax + 0x194]
inc ebp
add ecx, 0x114
cmp ebp, edi
jl 0x5895a0
jmp 0x5897be
mov edx, dword [esp + 0x54]
jmp 0x589660
mov ecx, dword [esi + 0x124]
mov edi, dword [ebx + ecx + 0x190]
mov edx, dword [edi + edx]
cmp edx, dword [edi + eax]
lea ecx, [ebx + ecx + 0x190]
jne 0x5896ae
mov edx, dword [esp + 0x10]
inc edx
mov ecx, edi
mov byte [ecx + eax + 0x110], 1
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x10], edx
mov edx, dword [esi + 0x124]
mov edi, dword [ebx + edx + 0x194]
inc ecx
add eax, 0x114
cmp ecx, edi
mov dword [esp + 0x50], ecx
jl 0x589657
mov eax, dword [esp + 0x10]
cmp eax, 1
jne 0x5896bb
mov edx, ebp
jmp 0x5896cf
jle 0x5896cb
call fcn.006167ae
cdq
idiv dword [esp + 0x10]
add edx, ebp
jmp 0x5896cf
mov edx, dword [esp + 0x20]
mov al, byte [esi + 0x28d]
test al, al
jne 0x5897b1
mov eax, dword [esi + 0x124]
mov edi, dword [ebx + eax + 0x190]
lea ecx, [ebx + eax + 0x190]
mov eax, edx
imul eax, eax, 0x114
mov edi, dword [eax + edi + 0x10c]
cmp edi, 1
jne 0x58973e
mov ecx, dword [ecx]
add eax, ecx
mov ecx, dword [eax + 0x108]
mov eax, dword [eax + 0x104]
push ecx
mov ecx, dword [esi + 0x1a8]
push eax
mov eax, dword [esi + 0x1a4]
push ecx
mov ecx, dword [esi + 0x1a0]
push eax
push ecx
push edx
mov edx, dword [esp + 0x30]
push edx
mov ecx, esi
call fcn.0057e3f0
jmp 0x5897be
cmp edi, 2
jne 0x589779
mov ecx, dword [ecx]
add eax, ecx
mov ecx, dword [eax + 0x108]
mov eax, dword [eax + 0x104]
push ecx
mov ecx, dword [esi + 0x1b4]
push eax
mov eax, dword [esi + 0x1b0]
push ecx
mov ecx, dword [esi + 0x1ac]
push eax
push ecx
push edx
mov edx, dword [esp + 0x30]
push edx
mov ecx, esi
call fcn.0057e3f0
jmp 0x5897be
cmp edi, 3
jne 0x5897be
mov ecx, dword [ecx]
mov edi, dword [eax + ecx + 0x108]
add eax, ecx
mov eax, dword [eax + 0x104]
mov ecx, dword [esi + 0x1f0]
push edi
push eax
mov eax, dword [ecx + 8]
push eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
push eax
push ecx
push edx
mov edx, dword [esp + 0x30]
push edx
mov ecx, esi
call fcn.0057e3f0
jmp 0x5897be
mov eax, dword [esp + 0x18]
push edx
push eax
mov ecx, esi
call fcn.0057e740
mov al, byte [esi + 0x2ed]
test al, al
mov edi, dword [esp + 0x18]
je 0x58981a
mov eax, dword [esi + 0x32c]
xor ebp, ebp
test eax, eax
jle 0x58981a
jmp 0x5897e0
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x78]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x108]
mov dword [ecx + 8], edx
mov ecx, dword [eax + edi*4]
mov edx, dword [ecx + 0x1c]
push edx
push edi
push ebp
mov ecx, esi
call fcn.00581e40
mov eax, dword [esi + 0x32c]
inc ebp
cmp ebp, eax
jl 0x5897e0
mov al, byte [esi + 0x358]
test al, al
je 0x589853
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 4], edx
mov edx, dword [esi + 0x108]
mov dword [eax + 8], ecx
mov eax, dword [edx + edi*4]
mov ecx, dword [eax + 0x1c]
push ecx
push edi
push ebp
mov ecx, esi
call fcn.00581670
mov al, byte [esi + 0x360]
test al, al
je 0x589892
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x78]
mov dword [edx + 4], ecx
mov ecx, dword [esi + 0x108]
mov dword [edx + 8], eax
mov edx, dword [ecx + edi*4]
mov eax, dword [edx + 0x1c]
push eax
push edi
push ebp
mov ecx, esi
call fcn.00580ff0
jmp 0x589892
mov edi, dword [esp + 0x18]
mov ecx, dword [esi + 0x124]
lea eax, [ebx + ecx]
mov ecx, dword [eax + 0x188]
test ecx, ecx
jle 0x589906
mov edx, dword [eax + 0x18c]
cmp edx, ecx
jge 0x589906
nop
mov eax, dword [esi + 0x124]
lea ecx, [ebx + eax]
mov eax, dword [ecx + 0x184]
mov eax, dword [eax + edx*4]
cmp eax, 0xffffffff
mov dword [esp + 0x54], eax
je 0x5898f4
fild dword [esp + 0x54]
mov eax, dword [esi + 0x108]
mov eax, dword [eax + edi*4]
fcomp dword [eax + 0x1c]
fnstsw ax
test ah, 0x41
jp 0x5898f4
mov eax, dword [ecx + 0x18c]
inc eax
mov byte [esp + 0x17], 1
mov dword [ecx + 0x18c], eax
mov ecx, dword [esi + 0x124]
mov eax, dword [ebx + ecx + 0x188]
inc edx
cmp edx, eax
jl 0x5898b0
mov edx, dword [esi + 0x124]
mov ecx, dword [ebx + edx + 0x1a8]
test ecx, ecx
lea eax, [ebx + edx]
jle 0x5899af
mov edi, dword [eax + 0x1ac]
cmp edi, ecx
jge 0x5899af
mov ebp, dword [esp + 0x18]
lea ecx, [edi + edi*2]
shl ecx, 3
mov dword [esp + 0x10], ecx
lea ebx, [ebx]
mov eax, dword [esi + 0x124]
mov edx, dword [ebx + eax + 0x1a4]
mov eax, dword [ecx + edx]
cmp eax, 0xffffffff
mov dword [esp + 0x54], eax
je 0x589994
mov eax, dword [esi + 0x108]
fild dword [esp + 0x54]
mov edx, dword [eax + ebp*4]
fcomp dword [edx + 0x1c]
fnstsw ax
test ah, 0x41
jp 0x589994
push edi
push ebp
mov ecx, esi
call fcn.0057e5d0
mov eax, dword [esi + 0x124]
mov ecx, dword [ebx + eax + 0x1ac]
lea eax, [ebx + eax + 0x1ac]
inc ecx
mov dword [eax], ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x124]
mov eax, dword [ebx + edx + 0x1a8]
inc edi
add ecx, 0x18
cmp edi, eax
mov dword [esp + 0x10], ecx
jl 0x589940
jmp 0x5899b3
mov ebp, dword [esp + 0x18]
mov al, byte [esi + 0x349]
test al, al
je 0x589a68
mov eax, dword [esi + 0x124]
mov ecx, dword [eax + ebx + 0x19c]
add eax, ebx
test ecx, ecx
jle 0x589a68
mov edi, dword [eax + 0x1a0]
cmp edi, ecx
jge 0x589a68
mov ecx, edi
imul ecx, ecx, 0x208
mov dword [esp + 0x10], ecx
jmp 0x589a00
mov edx, dword [esi + 0x124]
mov eax, dword [ebx + edx + 0x198]
mov eax, dword [ecx + eax]
cmp eax, 0xffffffff
mov dword [esp + 0x54], eax
je 0x589a4c
fild dword [esp + 0x54]
mov edx, dword [esi + 0x108]
mov eax, dword [edx + ebp*4]
fcomp dword [eax + 0x1c]
fnstsw ax
test ah, 0x41
jp 0x589a4c
push edi
push ebp
mov ecx, esi
call fcn.0057e690
mov ecx, dword [esi + 0x124]
lea eax, [ebx + ecx + 0x1a0]
inc dword [eax]
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x124]
mov eax, dword [ebx + edx + 0x19c]
inc edi
add ecx, 0x208
cmp edi, eax
mov dword [esp + 0x10], ecx
jl 0x589a00
call dword [sym.imp.winmm.dll_timeGetTime]
mov edi, dword [esp + 0x24]
mov dword [esi + 0x244], eax
mov ecx, dword [edi + 0x64]
mov ebx, dword [edi + 0x18]
mov edx, eax
sub edx, ecx
cmp edx, ebx
jb 0x589acf
sub eax, ecx
push 0xbf800000
push eax
mov ecx, edi
call fcn.005a49d0
test eax, eax
jne 0x589ac6
inc dword [esi + 0x2a0]
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax]
mov ecx, dword [esi + 0x108]
mov eax, dword [esp + 0x18]
mov dword [ecx + ebp*4], 0
xor ebp, ebp
inc eax
mov dword [esp + 0x18], eax
mov edx, eax
jmp 0x587066
mov edx, dword [esi + 0x244]
mov dword [edi + 0x64], edx
xor ebp, ebp
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
mov edx, eax
jmp 0x587066
mov al, byte [esi + 0x350]
test al, al
je 0x589b77
mov eax, dword [esi + 0x34c]
cmp eax, ebp
je 0x589b77
cmp dword [eax + 0x13c], ebp
je 0x589b77
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [esi + 0x34c]
mov edi, eax
mov eax, dword [ecx + 0x12c]
xor edx, edx
cmp eax, ebp
je 0x589b3e
mov ebx, edi
sub ebx, eax
cmp ebx, 0x28
jbe 0x589b49
mov ebx, eax
mov edx, edi
sub edx, ebx
mov eax, 0xcccccccd
mul edx
shr edx, 5
jmp 0x589b43
mov edx, 1
mov dword [ecx + 0x12c], edi
cmp edx, ebp
jle 0x589b77
lea ebx, [esi + 0x308]
mov edi, edx
jmp 0x589b60
mov eax, dword [esi + 0x34c]
mov ecx, dword [eax + 0x13c]
push 1
push ebx
call fcn.005e6450
dec edi
jne 0x589b60
mov al, byte [esi + 0x2e2]
test al, al
je 0x589ca8
mov ecx, dword [esi + 0x2e4]
mov al, byte [ecx + 0x19]
test al, al
je 0x589ca8
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [esi + 0x2e4]
mov edi, eax
mov eax, dword [ecx + 0x210]
xor edx, edx
test eax, eax
je 0x589bcb
mov ebx, edi
sub ebx, eax
cmp ebx, 0x28
jbe 0x589bd6
mov ebx, eax
mov edx, edi
sub edx, ebx
mov eax, 0xcccccccd
mul edx
shr edx, 5
jmp 0x589bd0
mov edx, 1
mov dword [ecx + 0x210], edi
test edx, edx
jle 0x589ca8
mov dword [esp + 0x10], edx
xor ebp, ebp
mov edi, 0x1f4
lea esp, [esp]
cmp edi, 0x1f4
je 0x589c13
cmp edi, 0x1fc
je 0x589c13
mov eax, dword [esi + 0x2e4]
fld dword [eax + edi]
add eax, edi
fsub dword [0x665518]
jmp 0x589c25
mov ecx, dword [esi + 0x2e4]
fld dword [edi + ecx]
lea eax, [edi + ecx]
fsub dword [0x665514]
fstp dword [eax]
mov edx, dword [esi + 0x2e4]
fld dword [edi + edx]
lea ecx, [edi + edx]
fcomp dword [0x64fe74]
fnstsw ax
test ah, 0x41
jp 0x589c46
mov dword [ecx], 0
mov ebx, dword [esi + 0x2e4]
fld dword [edi + ebx]
fmul dword [0x651eb8]
call fcn.0061672c
shl eax, 0x18
or eax, 0xffffff
mov dword [ebx + ebp + 0x140], eax
mov ebx, dword [esi + 0x2e4]
fld dword [edi + ebx]
fmul dword [0x651eb8]
call fcn.0061672c
shl eax, 0x18
or eax, 0xffffff
mov dword [ebx + ebp + 0x1a0], eax
add edi, 4
add ebp, 0x18
cmp edi, 0x204
jl 0x589bf0
dec dword [esp + 0x10]
jne 0x589be2
mov ecx, dword [esi + 0x108]
xor edx, edx
cmp ecx, edx
jne 0x589cb8
xor eax, eax
jmp 0x589cc3
mov eax, dword [esi + 0x10c]
sub eax, ecx
sar eax, 2
cmp dword [esi + 0x2a0], eax
mov dword [esi + 0x2a0], edx
jne 0x589d18
mov al, byte [esp + 0x17]
test al, al
mov byte [esi + 0x28c], 0
jne 0x586407
mov al, byte [esi + 0x2e2]
test al, al
je 0x589d0b
mov eax, dword [esi + 0x2e4]
mov cl, byte [eax + 0x18]
test cl, cl
jne 0x589d0b
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4d8
ret
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4d8
ret
mov al, byte [esp + 0x1f]
test al, al
mov dl, byte [esp + 0x17]
je 0x589d3e
xor eax, eax
test dl, dl
setne al
mov byte [esi + 0x28c], 1
inc eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4d8
ret
xor eax, eax
test dl, dl
setne al
mov byte [esi + 0x28c], 0
inc eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4d8
ret
mov dword [esi + 0x2a0], ebp
pop edi
mov byte [esi + 0x28c], 0
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4d8
ret