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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4f8
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 + 0x23], 0
mov byte [esp + 0x2b], 0
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebp
je 0x5af7d8
mov eax, dword [esi + 0x27c]
cmp eax, ebp
jle 0x5abee1
mov cl, byte [esi + 0x278]
test cl, cl
jne 0x5abd58
xor ebx, ebx
cmp eax, ebp
jle 0x5abd51
xor edi, edi
jmp 0x5abd20
mov cl, byte [esi + 0x341]
mov eax, dword [esi + 0x274]
mov byte [edi + eax + 0x341], cl
mov ecx, dword [esi + 0x274]
add ecx, edi
call fcn.005abcc0
mov eax, dword [esi + 0x27c]
inc ebx
add edi, 0x380
cmp ebx, eax
jl 0x5abd20
mov byte [esi + 0x278], 1
mov al, byte [esi + 0x298]
test al, al
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x23], 0
jne 0x5abd80
call dword [sym.imp.winmm.dll_timeGetTime]
mov dword [esi + 0x294], eax
mov byte [esi + 0x298], 1
jmp 0x5abd86
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 0x5abdc2
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 0x5abdea
mov edx, dword [esi + 0x288]
mov edi, dword [esi + 0x29c]
cmp edi, dword [edx + eax*4]
jl 0x5abdfd
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 0x5abe0b
mov dword [esi + 0x284], ecx
mov eax, dword [esi + 0x284]
xor ebx, ebx
cmp eax, ebp
jle 0x5abe7f
xor edi, edi
lea esp, [esp]
mov ecx, dword [esi + 0x274]
add ecx, edi
call fcn.005abcc0
cmp eax, ebp
jne 0x5abe37
inc dword [esp + 0x1c]
jmp 0x5abe6e
cmp eax, 2
jne 0x5abe6e
mov eax, dword [esi + 0x274]
cmp eax, ebp
je 0x5abe69
lea eax, [edi + eax + 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 + 0x23], 1
mov eax, dword [esi + 0x284]
inc ebx
add edi, 0x380
cmp ebx, eax
jl 0x5abe20
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esi + 0x27c]
jne 0x5abeae
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
mov esp, ebp
pop ebp
ret
mov al, byte [esp + 0x23]
test al, al
je 0x5af81c
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
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x250]
cmp eax, 0xffffffff
jne 0x5abf3b
mov ecx, dword [esi + 0x108]
cmp ecx, ebp
je 0x5abf09
mov eax, dword [esi + 0x10c]
sub eax, ecx
sar eax, 2
cmp eax, ebp
jne 0x5af822
mov ecx, esi
call fcn.005ab290
mov al, byte [esi + 0x340]
test al, al
je 0x5abf21
mov ecx, esi
call fcn.005a8d20
mov dword [esi + 0x250], ebp
mov eax, 1
mov byte [esi + 0x28c], 0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, ebp
jl 0x5af81c
cmp eax, 5
jg 0x5af81c
mov edx, 3
cmp eax, edx
mov ebx, 0x3f800000
ja case.default.0x5abf5e
jmp dword [eax*4 + 0x5af838]
mov al, byte [esi + 0x298]
test al, al
jne 0x5abf84
call dword [sym.imp.winmm.dll_timeGetTime]
mov dword [esi + 0x294], eax
mov byte [esi + 0x298], 1
jmp 0x5abf8a
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 0x5abfc6
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.0x5abf5e
mov byte [esi + 0x298], 0
mov dword [esi + 0x29c], ebp
mov dword [esi + 0x250], 1
jmp case.default.0x5abf5e
mov al, byte [esi + 0x341]
test al, al
je 0x5ac06e
cmp dword [esi + 0x264], 0xbf800000
je 0x5ac06e
mov al, byte [esi + 0x271]
test al, al
je 0x5ac06e
mov al, byte [esi + 0x270]
test al, al
jne 0x5ac06e
mov edx, dword [0x106a624]
mov dword [esp + 0x1c], edx
fld dword [esp + 0x1c]
fcomp dword [0x6d122c]
fnstsw ax
test ah, 5
jp 0x5ac067
fld dword [esp + 0x1c]
fcomp dword [0x6d1228]
fnstsw ax
test ah, 0x41
jne 0x5ac067
mov eax, dword [esi + 0x26c]
mov ecx, dword [esi + 0x268]
mov edx, dword [esi + 0x264]
push eax
push ecx
push edx
call fcn.00657530
add esp, 0xc
mov byte [esi + 0x270], 1
mov eax, dword [esi + 0x148]
xor ebx, ebx
cmp eax, ebp
jle 0x5ac168
mov edi, edi
mov eax, dword [esi + 0x144]
mov ebp, dword [eax + ebx*4]
mov ecx, dword [esi + 0x108]
mov ecx, dword [ecx + ebp*4]
push 0
push 0
lea edi, [ebp*4]
push 0
call fcn.0060c480
imul ebp, ebp, 0x1b4
lea eax, [esi + 0x1a0]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 8]
mov eax, dword [esi + 0x124]
add eax, ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
fld dword [eax + 0x164]
fmul dword [esi + 0x290]
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld dword [eax + 0x168]
fmul dword [esi + 0x290]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
mov edx, dword [esp + 0x30]
fld dword [eax + 0x16c]
mov eax, dword [esp + 0x2c]
fmul dword [esi + 0x290]
fadd dword [esp + 0x34]
fstp dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
push ecx
mov ecx, dword [esi + 0x108]
mov ecx, dword [ecx + edi]
push edx
push eax
call fcn.005a28b0
mov ebp, dword [esi + 0x108]
add ebp, edi
call dword [sym.imp.winmm.dll_timeGetTime]
mov edx, dword [ebp]
mov dword [edx + 0x64], eax
mov eax, dword [esi + 0x108]
mov ecx, dword [eax + edi]
mov byte [ecx + 0x88], 1
mov edx, dword [esi + 0x108]
mov ecx, dword [edx + edi]
push 0
call fcn.0060c660
mov eax, dword [esi + 0x148]
inc ebx
cmp ebx, eax
jl 0x5ac080
mov dword [esi + 0x250], 2
jmp 0x5acaaf
mov eax, dword [esi + 0x160]
cmp eax, ebp
jne 0x5ac18c
mov dword [esi + 0x250], edx
jmp case.default.0x5abf5e
mov ecx, dword [eax]
cmp ecx, 0xffffffff
jne 0x5ac19e
mov dword [esi + 0x250], edx
jmp case.default.0x5abf5e
mov eax, dword [esi + 0x144]
cmp eax, ebp
je 0x5ac1e8
cmp dword [esi + 0x150], 0xffffffff
mov ecx, dword [eax]
je case.default.0x5abf5e
cmp eax, ebp
je 0x5ac1e8
mov eax, dword [esi + 0x108]
fild dword [esi + 0x150]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ecx + 0x1c]
fstp dword [esp + 0x14]
mov dword [esp + 0x1c], edx
fld dword [esp + 0x14]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 0x41
jp case.default.0x5abf5e
cmp dword [esi + 0x118], ebp
je 0x5ac248
mov eax, dword [esi + 0x114]
push eax
call fcn.0040103c
mov ecx, eax
call fcn.00646de5
test eax, eax
jne 0x5ac248
mov ecx, dword [esi + 0x118]
push 0x6d50d0
call fcn.005b5b70
mov ecx, dword [esi + 0x118]
mov edi, eax
call fcn.00472d4b
fstp dword [esp + 0x1c]
cmp edi, ebp
je 0x5ac248
fld dword [esp + 0x1c]
lea eax, [edi + 0x50]
cmp eax, ebp
je 0x5ac23c
fmul dword [eax + 0x34]
jmp 0x5ac242
fmul dword [0x6d4fd4]
fstp dword [esi + 0x11c]
fld dword [0x6f3614]
fld dword [esi + 0x1b8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x5ac28b
fld dword [0x6f3614]
fld dword [esi + 0x1bc]
fucompp
fnstsw ax
test ah, 0x44
jp 0x5ac28b
fld dword [0x6f3614]
fld dword [esi + 0x1c0]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x5ac433
mov al, byte [esi + 0x1d0]
test al, al
jne 0x5ac433
lea ecx, [esi + 0x1e0]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x60], edx
fld dword [esp + 0x60]
fmul dword [0x6ee1f8]
mov dword [esp + 0x68], ecx
mov byte [esi + 0x1d0], 1
lea edx, [esp + 0x15c]
fstp dword [esp + 0x60]
push edx
fld dword [esp + 0x6c]
sub esp, 0xc
fmul dword [0x6ee1f8]
mov dword [esp + 0x74], eax
mov edx, esp
sub esp, 0xc
fstp dword [esp + 0x84]
fld dword [esp + 0x84]
fadd dword [esi + 0x1a8]
fstp dword [esp + 0x38]
fld dword [esi + 0x1a4]
mov ecx, dword [esp + 0x38]
fadd dword [0x6f3614]
fstp dword [esp + 0x30]
fld dword [esp + 0x7c]
mov eax, dword [esp + 0x30]
fadd dword [esi + 0x1a0]
fstp dword [esp + 0x1ac]
mov edi, dword [esp + 0x1ac]
mov dword [edx], edi
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov ecx, dword [esi + 0x1a0]
mov edx, dword [esi + 0x1a4]
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.005a3110
mov edx, dword [esi + 0x1b8]
mov eax, dword [esi + 0x1bc]
mov ecx, dword [esi + 0x1c0]
mov dword [esp + 0x128], edx
mov edx, dword [esp + 0x164]
push edx
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x134], ecx
mov ecx, dword [esp + 0x164]
push eax
push ecx
lea edx, [esp + 0x4d4]
push edx
mov dword [esp + 0x134], ebp
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x128], ebp
mov dword [esp + 0x124], ebp
mov dword [esp + 0x120], ebp
mov dword [esp + 0x118], ebp
mov dword [esp + 0x114], ebp
mov dword [esp + 0x110], ebp
mov dword [esp + 0x10c], ebp
mov dword [esp + 0x144], ebx
mov dword [esp + 0x130], ebx
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x108], ebx
call fcn.005422fd
lea eax, [esp + 0x4c8]
push eax
lea ecx, [esp + 0xfc]
push ecx
lea edx, [esp + 0x2d0]
push edx
call fcn.00541522
mov eax, dword [esp + 0x2f8]
mov ecx, dword [esp + 0x300]
mov dword [esi + 0x1b8], eax
mov dword [esi + 0x1c0], ecx
mov al, byte [esi + 0x374]
test al, al
je 0x5ac74f
mov eax, dword [esi + 0x114]
cmp eax, ebp
je 0x5ac676
push eax
call fcn.0040103c
mov ecx, eax
call fcn.00646de5
test eax, eax
jne 0x5ac676
mov edx, dword [esi + 0x370]
mov ecx, dword [esi + 0x114]
push edx
call fcn.005b5b70
mov edi, eax
cmp edi, ebp
je 0x5ac676
mov ecx, dword [esi + 0x114]
call fcn.00472d4b
fstp dword [esp + 0x1c]
lea eax, [esp + 0x13c]
push eax
mov ecx, edi
call fcn.005a28f0
add edi, 8
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov eax, dword [edi + 8]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x13c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0x148]
mov dword [esp + 0xcc], eax
mov eax, dword [esi + 0x370]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x140]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0x130], ebp
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x128], ebp
mov dword [esp + 0xc8], edx
mov dword [esp + 0x124], ebp
mov dword [esp + 0x11c], ebp
mov dword [esp + 0x118], ebp
mov dword [esp + 0x114], ebp
mov dword [esp + 0x110], ebp
mov dword [esp + 0x108], ebp
mov dword [esp + 0x104], ebp
mov dword [esp + 0x100], ebp
mov dword [esp + 0xfc], ebp
mov dword [esp + 0x134], ebx
mov dword [esp + 0x120], ebx
mov dword [esp + 0x10c], ebx
mov dword [esp + 0xf8], ebx
mov edx, dword [eax + 0x100]
mov dword [esp + 0x128], edx
mov ecx, dword [eax + 0x104]
mov dword [esp + 0x12c], ecx
mov edx, dword [eax + 0x108]
lea eax, [esp + 0xc4]
push eax
lea ecx, [esp + 0x4cc]
push ecx
mov dword [esp + 0x138], edx
call fcn.005421e7
lea edx, [esp + 0x4c8]
push edx
lea eax, [esp + 0xfc]
push eax
lea ecx, [esp + 0x2d0]
push ecx
call fcn.00541522
mov eax, dword [esi + 0x370]
lea edx, [esp + 0xc4]
push edx
add eax, 0x10c
push eax
lea ecx, [esp + 0x2c0]
push ecx
call fcn.00542bfc
fld dword [esp + 0x2f8]
fadd dword [esp + 0x54]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2fc]
fadd dword [esp + 0x58]
fstp dword [esp + 0x30]
fld dword [esp + 0x300]
fadd dword [esp + 0x5c]
fstp dword [esp + 0x34]
fld dword [esp + 0x2c]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x2c]
fld dword [esp + 0x30]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x30]
fld dword [esp + 0x34]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fadd dword [esi + 0x1a8]
fstp dword [esp + 0x1c]
fld dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
fadd dword [esi + 0x1a4]
mov dword [esp + 0x34], ecx
fstp dword [esp + 0x14]
fld dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
fadd dword [esi + 0x1a0]
mov dword [esp + 0x30], eax
fstp dword [esp + 0x190]
mov edx, dword [esp + 0x190]
mov dword [esp + 0x2c], edx
mov eax, dword [esi + 0x164]
xor ebx, ebx
cmp eax, ebp
jle 0x5ac72a
jmp 0x5ac690
mov eax, dword [esi + 0x160]
mov eax, dword [eax + ebx*4]
cmp eax, 0xffffffff
je 0x5ac72a
mov ecx, dword [esi + 0x108]
mov ecx, dword [ecx + eax*4]
lea edi, [eax*4]
push 1
call fcn.0060c660
mov edx, dword [esi + 0x108]
mov ecx, dword [edx + edi]
push 0
push 0
push 0
call fcn.0060c480
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esi + 0x108]
push ecx
mov ecx, dword [eax + edi]
push edx
call fcn.005a28b0
mov ebp, dword [esi + 0x108]
add ebp, edi
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [ebp]
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 ebx
cmp ebx, eax
jl 0x5ac690
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
push ebx
push edi
push ebp
mov ecx, esi
call fcn.005a2dd0
push ebx
push edi
push ebp
mov ecx, esi
call fcn.005a2e10
jmp 0x5ac89b
mov eax, dword [esi + 0x164]
xor ebx, ebx
cmp eax, ebp
jle 0x5ac81d
nop
mov eax, dword [esi + 0x160]
mov eax, dword [eax + ebx*4]
cmp eax, 0xffffffff
je 0x5ac81d
mov ecx, dword [esi + 0x108]
mov ecx, dword [ecx + eax*4]
lea edi, [eax*4]
push 1
call fcn.0060c660
mov edx, dword [esi + 0x108]
mov ecx, dword [edx + edi]
push 0
push 0
push 0
call fcn.0060c480
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.005a28b0
mov ebp, dword [esi + 0x108]
add ebp, edi
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [ebp]
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 ebx
cmp ebx, eax
jl 0x5ac760
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 + 0x1a0]
fadd dword [esi + 0x1b8]
fstp dword [esp]
call fcn.005a2dd0
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 + 0x1a0]
fadd dword [esi + 0x1b8]
fstp dword [esp]
call fcn.005a2e10
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x2c]
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 + 0x334]
test al, al
mov dword [esi + 0x250], 3
je 0x5ac8d4
mov ecx, esi
call fcn.005a35c0
mov al, byte [esi + 0x348]
test al, al
je 0x5acaaf
mov al, byte [esi + 0x374]
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 0x5ac944
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.005a5050
jmp 0x5acaaf
push ebx
push edi
push ebp
call fcn.005a5050
jmp 0x5acaaf
mov eax, dword [esi + 0x160]
cmp eax, ebp
je 0x5ac9a9
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x5ac9a9
mov ecx, dword [esi + 0x108]
mov eax, dword [ecx + eax*4]
cmp eax, ebp
je 0x5ac9a9
mov cl, byte [eax + 0x88]
test cl, cl
je 0x5ac9a9
mov al, byte [esi + 0x2b4]
test al, al
je 0x5ac98d
mov al, byte [esi + 0x2eb]
test al, al
jne 0x5ac9a9
mov al, byte [esi + 0x2b6]
test al, al
je case.default.0x5abf5e
mov al, byte [esi + 0x2ec]
test al, al
je case.default.0x5abf5e
mov eax, dword [esi + 0x18c]
xor ebx, ebx
cmp eax, ebp
jle 0x5acaa5
lea esp, [esp]
mov eax, dword [esi + 0x24c]
test eax, eax
jle 0x5aca9b
fld dword [esi + 0x154]
mov eax, dword [esi + 0x1f0]
fmul dword [esi + 0x290]
mov edx, dword [esi + 0x188]
fadd dword [eax]
fstp dword [esp + 0x54]
fld dword [esi + 0x158]
fmul dword [esi + 0x290]
fadd dword [eax + 4]
fstp dword [esp + 0x58]
fld dword [esi + 0x15c]
fmul dword [esi + 0x290]
fadd dword [eax + 8]
mov eax, dword [edx + ebx*4]
cmp eax, 0xffffffff
fstp dword [esp + 0x5c]
je 0x5acaa5
lea edi, [eax*4]
mov eax, dword [esi + 0x108]
mov ecx, dword [eax + edi]
push 0
call fcn.0060c660
mov ecx, dword [esi + 0x108]
mov ecx, dword [ecx + edi]
push 0
push 0
push 0
call fcn.0060c480
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esi + 0x108]
push eax
push ecx
mov ecx, dword [edx + edi]
call fcn.005a28b0
mov ebp, dword [esi + 0x108]
add ebp, edi
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [ebp]
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 ebx
cmp ebx, eax
jl 0x5ac9c0
jmp 0x5acaa5
mov dword [esi + 0x250], 5
mov dword [esi + 0x250], 5
xor ebp, ebp
mov eax, dword [esi + 0x1bc]
lea edx, [esi + 0x204]
push edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x164], eax
mov eax, dword [esi + 0x200]
mov ecx, dword [eax]
push 2
push eax
call dword [ecx + 0x98]
cmp dword [esi + 0x250], ebp
je 0x5af778
xor edx, edx
mov dword [esp + 0x24], edx
lea esp, [esp]
mov ecx, dword [esi + 0x108]
test ecx, ecx
jne 0x5acafe
xor eax, eax
jmp 0x5acb09
mov eax, dword [esi + 0x10c]
sub eax, ecx
sar eax, 2
cmp edx, eax
jge 0x5af5bd
mov eax, dword [esi + 0x108]
mov eax, dword [eax + edx*4]
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x5acb35
inc dword [esi + 0x2a0]
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
mov edx, eax
jmp 0x5acaf0
mov cl, byte [eax + 0x88]
test cl, cl
je 0x5af5ad
mov edi, dword [esp + 0x24]
mov ecx, dword [esi + 0x124]
mov ebx, edi
imul ebx, ebx, 0x1b4
lea eax, [ebx + ecx]
cmp dword [eax + 0x170], 0xffffffff
je 0x5acbaf
mov cl, byte [eax + 1]
test cl, cl
jne 0x5acbaf
mov byte [eax + 1], 1
mov edx, dword [esi + 0x108]
mov ecx, dword [edx + edi*4]
push 1
call fcn.0060c660
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]
xor ebp, ebp
cmp eax, ebp
mov byte [esp + 0x43], 0
jle 0x5acbf4
mov edx, dword [esi + 0x148]
mov edi, dword [esi + 0x108]
mov eax, dword [esi + 0x144]
mov dword [esp + 0x1c], edx
mov ecx, dword [eax]
mov edx, dword [esp + 0x3c]
cmp dword [edi + ecx*4], edx
jne 0x5acbe6
mov byte [esp + 0x43], 1
mov ecx, dword [esp + 0x1c]
add eax, 4
dec ecx
mov dword [esp + 0x1c], ecx
jne 0x5acbd6
mov al, byte [esi + 0x374]
test al, al
je 0x5ad06d
mov al, byte [esp + 0x43]
test al, al
je 0x5ad06d
mov eax, dword [esi + 0x114]
cmp eax, ebp
je 0x5ad06d
push eax
call fcn.0040103c
mov ecx, eax
call fcn.00646de5
test eax, eax
je 0x5ad06d
mov eax, dword [esi + 0x370]
mov ecx, dword [esi + 0x114]
push eax
call fcn.005b5b70
mov edi, eax
cmp edi, ebp
je 0x5ad06d
mov ecx, dword [esi + 0x114]
call fcn.00472d4b
fstp dword [esp + 0x1c]
lea ecx, [esp + 0x14c]
push ecx
mov ecx, edi
call fcn.005a28f0
add edi, 8
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x1c0], edx
mov edx, dword [esp + 0x14c]
mov dword [esp + 0x178], eax
mov dword [esp + 0x174], edx
mov edx, dword [esp + 0x158]
mov eax, 0x3f800000
mov dword [esp + 0x1c8], ecx
mov ecx, dword [esp + 0x154]
mov dword [esp + 0x134], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0xf8], eax
mov eax, dword [esi + 0x370]
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x180], edx
mov dword [esp + 0x130], ebp
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x128], ebp
mov dword [esp + 0x124], ebp
mov dword [esp + 0x11c], ebp
mov dword [esp + 0x118], ebp
mov dword [esp + 0x114], ebp
mov dword [esp + 0x110], ebp
mov dword [esp + 0x108], ebp
mov dword [esp + 0x104], ebp
mov dword [esp + 0x100], ebp
mov dword [esp + 0xfc], ebp
mov ecx, dword [eax + 0x100]
mov dword [esp + 0x128], ecx
mov edx, dword [eax + 0x104]
mov dword [esp + 0x12c], edx
mov eax, dword [eax + 0x108]
lea ecx, [esp + 0x174]
push ecx
lea edx, [esp + 0x4cc]
push edx
mov dword [esp + 0x138], eax
call fcn.005421e7
lea eax, [esp + 0x4c8]
push eax
lea ecx, [esp + 0xfc]
push ecx
lea edx, [esp + 0x2d0]
push edx
call fcn.00541522
mov ecx, dword [esi + 0x370]
lea eax, [esp + 0x174]
push eax
add ecx, 0x10c
push ecx
lea edx, [esp + 0x220]
push edx
call fcn.00542bfc
fld dword [esp + 0x2f8]
fadd dword [esp + 0x1c0]
mov eax, dword [esp + 0x218]
mov ecx, dword [esp + 0x21c]
mov edx, dword [esp + 0x220]
mov edi, dword [esp + 0x224]
fstp dword [esp + 0x7c]
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], ecx
mov dword [esp + 0x17c], edx
mov dword [esp + 0x180], edi
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], edx
mov dword [esp + 0x158], edi
fld dword [esp + 0x2fc]
mov eax, dword [esi + 0x370]
fadd dword [esp + 0x1c4]
mov cl, byte [eax + 0x11c]
test cl, cl
fstp dword [esp + 0x80]
fld dword [esp + 0x300]
fadd dword [esp + 0x1c8]
fstp dword [esp + 0x84]
fld dword [esp + 0x7c]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x7c]
fld dword [esp + 0x80]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x80]
fld dword [esp + 0x84]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x84]
jne 0x5aced8
mov cl, byte [eax + 0x140]
test cl, cl
je 0x5aced8
mov ecx, dword [eax + 0x128]
mov edx, dword [eax + 0x124]
mov eax, dword [eax + 0x120]
mov edi, dword [esp + 0x3c]
push ecx
push edx
push eax
mov ecx, edi
call fcn.005a28b0
mov eax, dword [esi + 0x370]
mov edx, dword [eax + 0x124]
mov ecx, dword [eax + 0x128]
mov eax, dword [eax + 0x120]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
jmp 0x5acf64
fld dword [esp + 0x84]
mov ecx, dword [esp + 0x3c]
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.005a28b0
fld dword [esp + 0x84]
mov edi, dword [esp + 0x3c]
fadd dword [esi + 0x1a8]
fstp dword [esp + 0x1c]
fld dword [esp + 0x80]
mov ecx, dword [esp + 0x1c]
fadd dword [esi + 0x1a4]
fstp dword [esp + 0x14]
fld dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
fadd dword [esi + 0x1a0]
mov dword [esp + 0x74], eax
fstp dword [esp + 0x360]
mov edx, dword [esp + 0x360]
mov dword [esp + 0x70], edx
mov eax, dword [esi + 0x370]
mov dword [esp + 0x78], ecx
mov cl, byte [eax + 0x12c]
test cl, cl
jne 0x5acfac
mov cl, byte [eax + 0x140]
test cl, cl
je 0x5acfac
lea eax, [esp + 0x238]
mov dword [esp + 0x238], ebp
mov dword [esp + 0x23c], ebp
mov dword [esp + 0x240], ebp
mov dword [esp + 0x244], 0x3f800000
push eax
jmp 0x5acfb4
lea ecx, [esp + 0x14c]
push ecx
mov ecx, edi
call fcn.0060c3d0
mov eax, dword [esi + 0x370]
mov cl, byte [eax + 0x140]
test cl, cl
jne 0x5ad06d
fld dword [esp + 0x84]
mov byte [eax + 0x140], 1
fadd dword [esi + 0x1a8]
mov edx, dword [esi + 0x370]
add edx, 0x120
fstp dword [esp + 0x1c]
fld dword [esp + 0x80]
mov ecx, dword [esp + 0x1c]
fadd dword [esi + 0x1a4]
fstp dword [esp + 0x14]
fld dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
fadd dword [esi + 0x1a0]
fstp dword [esp + 0x330]
mov edi, dword [esp + 0x330]
mov dword [edx], edi
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov edi, dword [esp + 0x158]
mov eax, dword [esp + 0x14c]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x154]
mov dword [esp + 0x2c4], edi
mov edi, dword [esi + 0x370]
add edi, 0x130
mov dword [edi], eax
mov eax, dword [esp + 0x2c4]
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], eax
mov ecx, dword [esi + 0x124]
lea eax, [ebx + ecx]
mov cl, byte [eax + 0x118]
test cl, cl
je 0x5ad2e2
mov cl, byte [eax + 0x1b0]
test cl, cl
jne 0x5ad2e2
lea edx, [esi + 0x1e0]
mov ecx, dword [edx]
mov dword [esp + 0x168], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x16c], ecx
mov cl, byte [esi + 0x2b5]
test cl, cl
mov dword [esp + 0x170], edx
jne 0x5ad0c6
mov byte [eax + 0x1b0], 1
fld dword [esp + 0x168]
mov edx, dword [esi + 0x124]
fmul dword [0x6ee1f8]
lea edx, [ebx + edx + 0x10c]
push edx
sub esp, 0xc
fstp dword [esp + 0x178]
mov edx, esp
fld dword [esp + 0x180]
sub esp, 0xc
fmul dword [0x6ee1f8]
fstp dword [esp + 0x18c]
fld dword [esp + 0x18c]
fadd dword [esi + 0x1a8]
fstp dword [esp + 0x38]
fld dword [esi + 0x1a4]
mov ecx, dword [esp + 0x38]
fadd dword [0x6f3614]
fstp dword [esp + 0x30]
fld dword [esp + 0x184]
mov eax, dword [esp + 0x30]
fadd dword [esi + 0x1a0]
fstp dword [esp + 0x364]
mov edi, dword [esp + 0x364]
mov dword [edx], edi
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov ecx, dword [esi + 0x1a0]
mov edx, dword [esi + 0x1a4]
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.005a3110
mov edx, dword [esi + 0x124]
mov ecx, dword [ebx + edx + 0x10c]
lea eax, [ebx + edx]
mov edx, dword [eax + 0x110]
push ebp
push ecx
push edx
lea eax, [esp + 0x148]
push eax
call fcn.00542b10
mov al, byte [esi + 0x2e0]
test al, al
je 0x5ad28c
mov al, byte [esi + 0x2e1]
test al, al
jne 0x5ad239
fld dword [esi + 0x2d0]
mov ecx, dword [esi + 0x2dc]
fchs
lea edx, [esp + 0x2a8]
fstp dword [esp + 0x2a8]
push edx
fld dword [esi + 0x2d4]
lea edi, [esi + 0x2c0]
fchs
push edi
fstp dword [esp + 0x2b4]
lea eax, [esp + 0x260]
fld dword [esi + 0x2d8]
push eax
fchs
mov dword [esp + 0x2c0], ecx
fstp dword [esp + 0x2bc]
call fcn.00542bfc
mov ecx, dword [esp + 0x258]
mov edx, dword [esp + 0x25c]
mov eax, dword [esp + 0x260]
mov dword [edi], ecx
mov ecx, dword [esp + 0x264]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov byte [esi + 0x2e1], 1
lea edx, [esi + 0x2d0]
push edx
lea eax, [esi + 0x2c0]
push eax
lea ecx, [esp + 0x2a0]
push ecx
call fcn.00542bfc
mov edx, dword [esp + 0x298]
mov eax, dword [esp + 0x29c]
mov ecx, dword [esp + 0x2a0]
mov dword [esp + 0x13c], edx
mov edx, dword [esp + 0x2a4]
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], edx
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x144]
mov dword [esp + 0x278], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 0x27c], ecx
mov ecx, dword [esi + 0x108]
mov dword [esp + 0x280], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x284], eax
mov ecx, dword [ecx + edx*4]
cmp ecx, ebp
je 0x5ad2e2
lea eax, [esp + 0x278]
push eax
call fcn.0060c3d0
mov al, byte [esi + 0x2a4]
test al, al
je 0x5ad388
mov ecx, esi
call fcn.005a5880
fld dword [esi + 0x2b0]
fmul dword [0x6ee1f4]
sub esp, 0xc
lea ecx, [esp + 0x234]
fstp dword [esp + 8]
fld dword [esi + 0x2a8]
fmul dword [0x6ee1f4]
fstp dword [esp + 4]
fld dword [esi + 0x2ac]
fmul dword [0x6ee1f4]
fstp dword [esp]
push ecx
call fcn.00542b10
mov edx, dword [esp + 0x228]
mov eax, dword [esp + 0x22c]
mov ecx, dword [esp + 0x230]
mov dword [esp + 0x248], edx
mov edx, dword [esp + 0x234]
mov dword [esp + 0x24c], eax
mov dword [esp + 0x250], ecx
mov ecx, dword [esi + 0x108]
mov dword [esp + 0x254], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [ecx + edx*4]
lea eax, [esp + 0x248]
push eax
call fcn.0060c3d0
mov al, byte [esi + 0x341]
test al, al
je 0x5ad575
mov al, byte [esi + 0x271]
test al, al
je 0x5ad575
mov eax, dword [esi + 0x124]
mov ecx, dword [ebx + eax + 0x13c]
xor edi, edi
cmp ecx, ebp
jle 0x5ad425
jmp 0x5ad3c0
mov ecx, dword [esi + 0x124]
mov edx, dword [ebx + ecx + 0x12c]
mov eax, dword [edx + edi*4]
cmp eax, 0xffffffff
mov dword [esp + 0x14], eax
je 0x5ad413
mov eax, dword [esi + 0x108]
fild dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + ecx*4]
mov eax, dword [edx + 0x1c]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
mov dword [esp + 0x1cc], eax
fcomp dword [esp + 0x1cc]
fnstsw ax
test ah, 0x41
jp 0x5ad413
push edi
push ecx
mov ecx, esi
call fcn.005a4eb0
mov ecx, dword [esi + 0x124]
mov eax, dword [ebx + ecx + 0x13c]
inc edi
cmp edi, eax
jl 0x5ad3c0
mov edx, dword [esi + 0x124]
mov eax, dword [ebx + edx + 0x128]
xor edi, edi
cmp eax, ebp
jle 0x5ad4a9
jmp 0x5ad440
mov eax, dword [esi + 0x124]
mov ecx, dword [ebx + eax + 0x11c]
mov eax, dword [ecx + edi*4]
cmp eax, 0xffffffff
mov dword [esp + 0x14], eax
je 0x5ad497
mov edx, dword [esi + 0x108]
fild dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov ecx, dword [edx + eax*4]
mov edx, dword [ecx + 0x1c]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
mov dword [esp + 0x1bc], edx
fcomp dword [esp + 0x1bc]
fnstsw ax
test ah, 0x41
jp 0x5ad497
mov eax, dword [esp + 0x24]
push edi
push eax
mov ecx, esi
call fcn.005a4e40
mov ecx, dword [esi + 0x124]
mov eax, dword [ebx + ecx + 0x128]
inc edi
cmp edi, eax
jl 0x5ad440
mov edx, dword [esi + 0x124]
cmp dword [ebx + edx + 0x180], ebp
mov dword [esp + 0x1c], ebp
jle 0x5ad575
xor ecx, ecx
mov eax, dword [esi + 0x124]
mov edx, dword [ebx + eax + 0x17c]
mov al, byte [edx + ecx + 0x14]
add edx, ecx
test al, al
jne 0x5ad554
cmp dword [edx], 0xbf800000
je 0x5ad554
mov eax, dword [esi + 0x108]
fld dword [edx + 0x10]
mov edi, dword [esp + 0x24]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x1ec], eax
fcomp dword [esp + 0x1ec]
fnstsw ax
test ah, 0x41
jp 0x5ad554
mov byte [edx + 0x14], 1
mov edx, dword [esi + 0x124]
mov eax, dword [ebx + edx + 0x17c]
mov edx, dword [eax + ecx + 0xc]
mov dword [0x7217f4], edx
mov dword [0x14ded84], ebp
mov eax, dword [esi + 0x124]
mov edx, dword [ebx + eax + 0x17c]
mov edi, dword [edx + ecx + 4]
lea eax, [edx + ecx]
mov edx, dword [eax + 8]
mov eax, dword [eax]
mov dword [0x14deda8], eax
mov dword [0x14dedac], edi
mov dword [0x14dedb0], edx
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x124]
mov edi, dword [ebx + edx + 0x180]
inc eax
add ecx, 0x18
cmp eax, edi
mov dword [esp + 0x1c], eax
jl 0x5ad4c2
cmp dword [esi + 0x164], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x1c], ebp
jle 0x5aefc6
lea esp, [esp]
mov eax, dword [esi + 0x160]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
cmp ecx, dword [eax + edx*4]
jne 0x5aefaf
mov eax, edx
cmp eax, ebp
jne 0x5ae625
cmp dword [esi + 0x24c], ebp
jle 0x5af7d8
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 0x5ad5f5
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x6c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
add ecx, eax
mov dword [esp + 0x6c], ecx
mov dword [esi + 0x134], edi
mov eax, dword [esp + 0x6c]
cmp eax, ebp
jle 0x5ad97a
mov dword [esp + 0x38], eax
jmp 0x5ad610
mov al, byte [esi + 0x348]
test al, al
jne 0x5ad94b
cmp dword [esi + 0x11c], 0xbf800000
lea edi, [esi + 0x2f0]
jne 0x5ad713
mov eax, dword [esi + 0x1f0]
fld dword [eax + 8]
fadd dword [0x6f3614]
fstp dword [esp + 0x14]
fld dword [esp + 0x44]
fadd dword [eax + 4]
fstp dword [esp + 0x18]
fld dword [eax]
fadd dword [0x6f3614]
fstp dword [esp + 0x30c]
fld dword [esp + 0x14]
fsub dword [esi + 0x1dc]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
mov edx, dword [esp + 0x14]
fsub dword [esi + 0x1d8]
fstp dword [esp + 0x18]
fld dword [esp + 0x30c]
mov ecx, dword [esp + 0x18]
fsub dword [esi + 0x1d4]
fstp dword [esp + 0x378]
mov ebp, dword [esp + 0x378]
mov dword [edi], ebp
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
fld dword [eax + 8]
fadd dword [0x6f3614]
fstp dword [esp + 0x18]
fld dword [esp + 0x44]
fadd dword [eax + 4]
fstp dword [esp + 0x14]
fld dword [eax]
fadd dword [0x6f3614]
fstp dword [esp + 0x390]
fld dword [esp + 0x18]
fsub dword [esi + 0x1b4]
fstp dword [esp + 0x10]
fld dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
fsub dword [esi + 0x1b0]
fstp dword [esp + 0x18]
fld dword [esp + 0x390]
mov eax, dword [esp + 0x18]
fsub dword [esi + 0x1ac]
fstp dword [esp + 0x3a8]
mov ebp, dword [esp + 0x3a8]
jmp 0x5ad806
mov ecx, dword [esi + 0x11c]
xor eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x68], eax
fld dword [esp + 0x68]
mov eax, dword [esi + 0x1f0]
fadd dword [eax + 8]
mov dword [esp + 0x64], ecx
fstp dword [esp + 0x10]
fld dword [esp + 0x64]
fadd dword [eax + 4]
fstp dword [esp + 0x18]
fld dword [esp + 0x60]
fadd dword [eax]
fstp dword [esp + 0x3c0]
fld dword [esp + 0x10]
fsub dword [esi + 0x1dc]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
mov edx, dword [esp + 0x14]
fsub dword [esi + 0x1d8]
fstp dword [esp + 0x10]
fld dword [esp + 0x3c0]
mov ecx, dword [esp + 0x10]
fsub dword [esi + 0x1d4]
fstp dword [esp + 0x3d8]
mov ebp, dword [esp + 0x3d8]
fld dword [esp + 0x68]
mov dword [edi], ebp
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
fadd dword [eax + 8]
fstp dword [esp + 0x10]
fld dword [esp + 0x64]
fadd dword [eax + 4]
fstp dword [esp + 0x18]
fld dword [esp + 0x60]
fadd dword [eax]
fstp dword [esp + 0x3f0]
fld dword [esp + 0x10]
fsub dword [esi + 0x1b4]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
fsub dword [esi + 0x1b0]
fstp dword [esp + 0x10]
fld dword [esp + 0x3f0]
mov eax, dword [esp + 0x10]
fsub dword [esi + 0x1ac]
fstp dword [esp + 0x408]
mov ebp, dword [esp + 0x408]
lea edi, [esi + 0x2fc]
mov edx, edi
mov dword [edx], ebp
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov ecx, dword [esi + 0x1ac]
mov edx, dword [esi + 0x1b0]
lea ebp, [esi + 0x308]
mov eax, ebp
mov dword [eax], ecx
mov ecx, dword [esi + 0x1b4]
push edi
mov dword [eax + 4], edx
push edi
mov dword [eax + 8], ecx
call fcn.00540bf1
fld dword [edi]
fmul dword [esi + 0x1ec]
mov edx, dword [esi + 0x124]
lea eax, [ebx + edx]
fadd dword [ebp]
fadd dword [eax + 0x14c]
fstp dword [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 eax, dword [esi + 0x124]
fld dword [eax + ebx + 0x15c]
add eax, ebx
fadd dword [eax + 0x150]
xor ebp, ebp
fstp dword [eax + 0x150]
mov ecx, dword [esi + 0x124]
fld dword [ebx + ecx + 0x160]
lea eax, [ebx + ecx]
fadd dword [eax + 0x154]
fstp dword [eax + 0x154]
mov edx, dword [esi + 0x124]
fld dword [ebx + edx + 0x14c]
lea eax, [ebx + edx + 0x14c]
fmul dword [str.fff__]
fstp dword [eax]
mov eax, dword [esi + 0x124]
fld dword [ebx + eax + 0x150]
lea eax, [ebx + eax + 0x150]
fmul dword [str.fff__]
fstp dword [eax]
mov ecx, dword [esi + 0x124]
fld dword [ebx + ecx + 0x154]
lea eax, [ebx + ecx + 0x154]
fmul dword [str.fff__]
fstp dword [eax]
fld dword [esi + 0x170]
fadd dword [esi + 0x1ec]
fstp dword [esi + 0x1ec]
jmp 0x5ad970
mov eax, dword [esi + 0x344]
cmp eax, ebp
je 0x5ad970
mov ecx, dword [eax + 0x13c]
cmp ecx, ebp
je 0x5ad970
push ebp
lea edx, [esi + 0x308]
push edx
call fcn.0060bba0
mov byte [esp + 0x2b], al
dec dword [esp + 0x38]
jne 0x5ad610
mov al, byte [esi + 0x2e2]
test al, al
je 0x5ae4d4
mov eax, dword [esi + 0x1f0]
fld dword [eax + 8]
lea edx, [esp + 0xd4]
fsub dword [esi + 0x1a8]
push edx
fstp dword [esp + 0x1c]
fld dword [eax + 4]
mov ecx, dword [esp + 0x1c]
fsub dword [esi + 0x1a4]
fstp dword [esp + 0x14]
fld dword [eax]
mov eax, dword [esp + 0x14]
fsub dword [esi + 0x1a0]
mov dword [esp + 0xdc], eax
mov eax, edx
push eax
fstp dword [esp + 0xdc]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], 0x3f800000
mov dword [esp + 0x58], ebp
call fcn.00540bf1
lea ecx, [esp + 0x48]
push ecx
mov edx, ecx
push edx
call fcn.00540bf1
fld dword [esp + 0xd8]
fmul dword [esp + 0x50]
fld dword [esp + 0x4c]
fmul dword [esp + 0xdc]
fsubp st(1)
fstp dword [esp + 0x1f4]
mov eax, dword [esp + 0x1f4]
fld dword [esp + 0x48]
mov dword [esp + 0x88], eax
fmul dword [esp + 0xdc]
lea eax, [esp + 0x88]
fld dword [esp + 0x50]
push eax
fmul dword [esp + 0xd8]
fsubp st(1)
fstp dword [esp + 0x1fc]
mov ecx, dword [esp + 0x1fc]
fld dword [esp + 0x50]
mov dword [esp + 0x90], ecx
fmul dword [esp + 0xd8]
mov ecx, eax
fld dword [esp + 0x4c]
push ecx
fmul dword [esp + 0xe0]
fsubp st(1)
fstp dword [esp + 0x204]
mov edx, dword [esp + 0x204]
mov dword [esp + 0x98], edx
call fcn.00540bf1
fld dword [esi + 0x1c0]
fadd dword [esi + 0x1a8]
mov edx, dword [esi + 0x2e4]
fstp dword [esp + 0x18]
fld dword [esi + 0x1bc]
mov ecx, dword [esp + 0x18]
fadd dword [esi + 0x1a4]
fstp dword [esp + 0x10]
fld dword [esi + 0x1b8]
mov eax, dword [esp + 0x10]
fadd dword [esi + 0x1a0]
fstp dword [esp + 0x420]
mov edi, dword [esp + 0x420]
fld dword [0x6f3614]
mov dword [edx], edi
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
fld dword [esi + 0x308]
fucompp
fnstsw ax
test ah, 0x44
jp 0x5adb5f
fld dword [0x6f3614]
fld dword [esi + 0x30c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x5adb5f
fld dword [0x6f3614]
fld dword [esi + 0x310]
fucompp
fnstsw ax
test ah, 0x44
jp 0x5adb5f
fld dword [esi + 0x1c0]
fadd dword [esi + 0x1a8]
fstp dword [esp + 0x18]
fld dword [esi + 0x1bc]
fadd dword [esi + 0x1a4]
fstp dword [esp + 0x10]
fld dword [esi + 0x1b8]
fadd dword [esi + 0x1a0]
fstp dword [esp + 0x438]
mov edi, dword [esp + 0x438]
jmp 0x5ade26
mov eax, dword [esi + 0x11c]
mov edi, 0xbf800000
cmp eax, edi
jne 0x5adbd7
mov eax, dword [esi + 0x1f0]
fld dword [eax + 8]
fadd dword [0x6f3614]
fstp dword [esp + 0x10]
fld dword [esp + 0x44]
fadd dword [eax + 4]
fstp dword [esp + 0x18]
fld dword [eax]
fadd dword [0x6f3614]
fstp dword [esp + 0x450]
fld dword [esp + 0x10]
fsub dword [esi + 0x1a8]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fsub dword [esi + 0x1a4]
fstp dword [esp + 0x10]
fld dword [esp + 0x450]
fsub dword [esi + 0x1a0]
fstp dword [esp + 0x468]
mov edx, dword [esp + 0x468]
jmp 0x5adc6d
mov ecx, dword [esi + 0x11c]
xor eax, eax
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x1a0], eax
xor eax, eax
mov dword [esp + 0x1a4], eax
fld dword [esp + 0x1a4]
mov eax, dword [esi + 0x1f0]
fadd dword [eax + 8]
mov dword [esp + 0x1a0], ecx
fstp dword [esp + 0x10]
fld dword [esp + 0x1a0]
fadd dword [eax + 4]
fstp dword [esp + 0x18]
fld dword [esp + 0x19c]
fadd dword [eax]
fstp dword [esp + 0x480]
fld dword [esp + 0x10]
fsub dword [esi + 0x1a8]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fsub dword [esi + 0x1a4]
fstp dword [esp + 0x10]
fld dword [esp + 0x480]
fsub dword [esi + 0x1a0]
fstp dword [esp + 0x498]
mov edx, dword [esp + 0x498]
fld dword [esi + 0x310]
mov ecx, dword [esp + 0x14]
fsub dword [esi + 0x1a8]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xa4], eax
fstp dword [esp + 0x14]
mov dword [esp + 0xa0], edx
fld dword [esi + 0x30c]
sub esp, 8
fsub dword [esi + 0x1a4]
fstp dword [esp + 0x40]
fld dword [esi + 0x308]
fsub dword [esi + 0x1a0]
fstp dword [esp + 0x198]
fld dword [esp + 0xb0]
fmul dword [esp + 0xb0]
fld dword [esp + 0xac]
fmul dword [esp + 0xac]
faddp st(1)
fld dword [esp + 0xa8]
fmul dword [esp + 0xa8]
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp qword [esp]
call fcn.00693b94
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x20]
fld dword [esp + 0x198]
fmul dword [esp + 0x198]
fld dword [esp + 0x40]
fmul dword [esp + 0x40]
faddp st(1)
fld dword [esp + 0x1c]
fmul dword [esp + 0x1c]
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp qword [esp]
call fcn.00693b94
fstp dword [esp + 0x18]
add esp, 8
fld dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x18]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x5add82
mov eax, dword [esi + 0x2e4]
mov ecx, dword [esi + 0x308]
add eax, 0xc
mov dword [eax], ecx
mov edx, dword [esi + 0x30c]
mov dword [eax + 4], edx
mov ecx, dword [esi + 0x310]
mov dword [eax + 8], ecx
jmp 0x5ade3f
cmp dword [esi + 0x11c], edi
jne 0x5addc0
mov eax, dword [esi + 0x1f0]
fld dword [eax + 8]
fadd dword [0x6f3614]
fstp dword [esp + 0x18]
fld dword [esp + 0x44]
fadd dword [eax + 4]
fstp dword [esp + 0x10]
fld dword [eax]
fadd dword [0x6f3614]
fstp dword [esp + 0x4b0]
mov edi, dword [esp + 0x4b0]
jmp 0x5ade26
mov ecx, dword [esi + 0x11c]
xor eax, eax
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x188], eax
xor eax, eax
mov dword [esp + 0x18c], eax
fld dword [esp + 0x18c]
mov eax, dword [esi + 0x1f0]
fadd dword [eax + 8]
mov dword [esp + 0x188], ecx
fstp dword [esp + 0x18]
fld dword [esp + 0x188]
fadd dword [eax + 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x184]
fadd dword [eax]
fstp dword [esp + 0x324]
mov edi, dword [esp + 0x324]
mov edx, dword [esi + 0x2e4]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
add edx, 0xc
mov dword [edx], edi
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov al, byte [esi + 0x2e3]
test al, al
je 0x5ade62
mov eax, dword [esi + 0x2e4]
mov cl, byte [eax + 0x318]
test cl, cl
jne 0x5ade62
mov byte [eax + 0x19], 1
jmp 0x5adf83
mov eax, dword [esi + 0x2e4]
mov cl, byte [eax + 0x19]
test cl, cl
jne 0x5adf61
mov byte [eax + 0x19], 1
call fcn.006935b2
cdq
mov ecx, 0x18
idiv ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
mov edx, dword [esi + 0x2e4]
fstp dword [edx + 0x204]
call fcn.006935b2
cdq
mov ecx, 0x18
idiv ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
mov edx, dword [esi + 0x2e4]
fstp dword [edx + 0x208]
call fcn.006935b2
cdq
mov ecx, 0x18
idiv ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
mov edx, dword [esi + 0x2e4]
fstp dword [edx + 0x20c]
call fcn.006935b2
and eax, 0x80000001
jns 0x5adeeb
dec eax
or eax, 0xfffffffe
inc eax
je 0x5adf05
mov eax, dword [esi + 0x2e4]
fld dword [eax + 0x204]
fmul dword [0x6dfbac]
fstp dword [eax + 0x204]
call fcn.006935b2
and eax, 0x80000001
jns 0x5adf16
dec eax
or eax, 0xfffffffe
inc eax
je 0x5adf30
mov eax, dword [esi + 0x2e4]
fld dword [eax + 0x208]
fmul dword [0x6dfbac]
fstp dword [eax + 0x208]
call fcn.006935b2
and eax, 0x80000001
jns 0x5adf41
dec eax
or eax, 0xfffffffe
inc eax
je 0x5adf5b
mov eax, dword [esi + 0x2e4]
fld dword [eax + 0x20c]
fmul dword [0x6dfbac]
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
jmp 0x5adf90
mov cl, byte [eax + 0x71e9b0]
mov byte [eax + 0x10712a0], cl
inc eax
test cl, cl
jne 0x5adf90
mov al, byte [esi + 0x2e3]
test al, al
mov eax, dword [esi + 0x2e4]
push ebp
lea ecx, [eax + 0x1c]
jne 0x5adfc0
mov eax, dword [ecx]
push 0x6ee2a4
call dword [eax]
jmp 0x5adfca
mov edx, dword [ecx]
add eax, 0x214
push eax
call dword [edx]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x88]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fsubr dword [eax]
fstp dword [eax + 0x134]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x8c]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fsubr dword [eax + 4]
fstp dword [eax + 0x138]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x90]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
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 [0x6d5098]
call fcn.00693530
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x140], eax
fld dword [esp + 0x88]
mov eax, dword [esi + 0x2e4]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fadd dword [eax]
fstp dword [eax + 0x164]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x8c]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fadd dword [eax + 4]
fstp dword [eax + 0x168]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x90]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
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 [0x6d5098]
call fcn.00693530
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x170], eax
fld dword [esp + 0x88]
mov eax, dword [esi + 0x2e4]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fsubr dword [eax + 0xc]
fstp dword [eax + 0x14c]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x8c]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fsubr dword [eax + 0x10]
fstp dword [eax + 0x150]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x90]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
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 [0x6d5098]
call fcn.00693530
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x158], eax
fld dword [esp + 0x88]
mov eax, dword [esi + 0x2e4]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fadd dword [eax + 0xc]
fstp dword [eax + 0x17c]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x8c]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fadd dword [eax + 0x10]
fstp dword [eax + 0x180]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x90]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
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 [0x6d5098]
call fcn.00693530
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x188], eax
fld dword [esp + 0x48]
mov eax, dword [esi + 0x2e4]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fsubr dword [eax]
fstp dword [eax + 0x194]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x4c]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fsubr dword [eax + 4]
fstp dword [eax + 0x198]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x50]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
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 [0x6d5098]
call fcn.00693530
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x1a0], eax
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x48]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fadd dword [eax]
fstp dword [eax + 0x1c4]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x4c]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fadd dword [eax + 4]
fstp dword [eax + 0x1c8]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x50]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
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 [0x6d5098]
call fcn.00693530
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x1d0], eax
fld dword [esp + 0x48]
mov eax, dword [esi + 0x2e4]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fsubr dword [eax + 0xc]
fstp dword [eax + 0x1ac]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x4c]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fsubr dword [eax + 0x10]
fstp dword [eax + 0x1b0]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x50]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
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 [0x6d5098]
call fcn.00693530
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x1b8], eax
fld dword [esp + 0x48]
mov eax, dword [esi + 0x2e4]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fadd dword [eax + 0xc]
fstp dword [eax + 0x1dc]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x4c]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
fadd dword [eax + 0x10]
fstp dword [eax + 0x1e0]
mov eax, dword [esi + 0x2e4]
fld dword [esp + 0x50]
fmul dword [eax + 0x314]
fmul dword [0x6d6788]
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 [0x6d5098]
call fcn.00693530
shl eax, 0x18
or eax, 0xffffff
mov dword [edi + 0x1e8], eax
mov al, byte [esi + 0x1d1]
test al, al
jne 0x5ae5dd
fld dword [esi + 0x304]
lea edi, [esi + 0x1c4]
fchs
push edi
fstp dword [esp + 0x1c]
sub esp, 0xc
fld dword [esi + 0x300]
mov ecx, esp
fchs
sub esp, 0xc
fstp dword [esp + 0x2c]
fld dword [esi + 0x2fc]
mov eax, dword [esp + 0x2c]
fchs
fstp dword [esp + 0x418]
mov edx, dword [esp + 0x418]
fld dword [esi + 0x2f8]
mov dword [ecx], edx
fchs
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x34]
fstp dword [esp + 0x30]
fld dword [esi + 0x2f4]
mov dword [ecx + 8], eax
fchs
mov ecx, esp
fstp dword [esp + 0x2c]
fld dword [esi + 0x2f0]
mov eax, dword [esp + 0x2c]
fchs
fstp dword [esp + 0x358]
mov edx, dword [esp + 0x358]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005a3110
mov eax, dword [esi + 0x1cc]
mov ecx, dword [edi]
mov edx, dword [esi + 0x1c8]
push eax
push ecx
push edx
lea eax, [esp + 0x274]
push eax
call fcn.00542b10
mov ecx, dword [esp + 0x268]
mov edx, dword [esp + 0x26c]
mov eax, dword [esp + 0x270]
mov dword [esp + 0x288], ecx
mov ecx, dword [esp + 0x274]
mov dword [esp + 0x28c], edx
lea edx, [esp + 0x288]
mov dword [esp + 0x294], ecx
mov ecx, dword [esp + 0x3c]
push edx
mov dword [esp + 0x294], eax
call fcn.0060c3d0
cmp dword [esp + 0x6c], ebp
je 0x5aef6f
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 dword [eax], ecx
mov eax, dword [esi + 0x30c]
mov dword [esi + 0x1b0], eax
mov eax, dword [esi + 0x310]
mov dword [esi + 0x1b4], eax
cmp dword [esp + 0x6c], ebp
je 0x5aef6f
cmp dword [esi + 0x11c], 0xbf800000
jne 0x5ae782
mov eax, dword [esi + 0x1f0]
fld dword [eax + 8]
fadd dword [0x6f3614]
fstp dword [esp + 0x10]
fld dword [esp + 0x44]
fadd dword [eax + 4]
fstp dword [esp + 0x18]
fld dword [eax]
fadd dword [0x6f3614]
fstp dword [esp + 0x4bc]
fld dword [esp + 0x10]
fsub dword [esi + 0x1dc]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
mov edx, dword [esp + 0x14]
fsub dword [esi + 0x1d8]
mov dword [esp + 0xf4], edx
fstp dword [esp + 0x10]
fld dword [esp + 0x4bc]
mov ecx, dword [esp + 0x10]
fsub dword [esi + 0x1d4]
mov dword [esp + 0xf0], ecx
fstp dword [esp + 0x354]
mov edi, dword [esp + 0x354]
fld dword [eax + 8]
mov dword [esp + 0xec], edi
fadd dword [0x6f3614]
lea edi, [esi + 0x1ac]
fstp dword [esp + 0x10]
fld dword [esp + 0x44]
fadd dword [eax + 4]
fstp dword [esp + 0x18]
fld dword [eax]
fadd dword [0x6f3614]
fstp dword [esp + 0x414]
fld dword [esp + 0x10]
fsub dword [edi + 8]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
mov edx, dword [esp + 0x14]
fsub dword [edi + 4]
mov dword [esp + 0xe8], edx
fstp dword [esp + 0x10]
fld dword [esp + 0x414]
mov ecx, dword [esp + 0x10]
fsub dword [edi]
fstp dword [esp + 0x36c]
mov ebp, dword [esp + 0x36c]
fld dword [eax + 8]
fadd dword [0x6f3614]
fstp dword [esp + 0x10]
fld dword [esp + 0x44]
fadd dword [eax + 4]
fstp dword [esp + 0x18]
fld dword [eax]
fadd dword [0x6f3614]
fstp dword [esp + 0x474]
fld dword [esp + 0x10]
fsub dword [edi + 8]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fsub dword [edi + 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x474]
fsub dword [edi]
fstp dword [esp + 0x384]
mov edx, dword [esp + 0x384]
jmp 0x5ae8d5
mov ecx, dword [esi + 0x11c]
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x34], eax
fld dword [esp + 0x34]
mov eax, dword [esi + 0x1f0]
fadd dword [eax + 8]
mov dword [esp + 0x30], ecx
fstp dword [esp + 0x10]
fld dword [esp + 0x30]
fadd dword [eax + 4]
fstp dword [esp + 0x18]
fld dword [esp + 0x2c]
fadd dword [eax]
fstp dword [esp + 0x42c]
fld dword [esp + 0x10]
fsub dword [esi + 0x1dc]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
mov edx, dword [esp + 0x14]
fsub dword [esi + 0x1d8]
mov dword [esp + 0xf4], edx
fstp dword [esp + 0x10]
fld dword [esp + 0x42c]
mov ecx, dword [esp + 0x10]
fsub dword [esi + 0x1d4]
mov dword [esp + 0xf0], ecx
fstp dword [esp + 0x39c]
mov edi, dword [esp + 0x39c]
fld dword [esp + 0x34]
mov dword [esp + 0xec], edi
fadd dword [eax + 8]
lea edi, [esi + 0x1ac]
fstp dword [esp + 0x10]
fld dword [esp + 0x30]
fadd dword [eax + 4]
fstp dword [esp + 0x18]
fld dword [esp + 0x2c]
fadd dword [eax]
fstp dword [esp + 0x4a4]
fld dword [esp + 0x10]
fsub dword [edi + 8]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
mov edx, dword [esp + 0x14]
fsub dword [edi + 4]
mov dword [esp + 0xe8], edx
fstp dword [esp + 0x10]
fld dword [esp + 0x4a4]
mov ecx, dword [esp + 0x10]
fsub dword [edi]
fstp dword [esp + 0x3b4]
mov ebp, dword [esp + 0x3b4]
fld dword [esp + 0x34]
fadd dword [eax + 8]
fstp dword [esp + 0x10]
fld dword [esp + 0x30]
fadd dword [eax + 4]
fstp dword [esp + 0x18]
fld dword [esp + 0x2c]
fadd dword [eax]
fstp dword [esp + 0x444]
fld dword [esp + 0x10]
fsub dword [edi + 8]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fsub dword [edi + 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x444]
fsub dword [edi]
fstp dword [esp + 0x3cc]
mov edx, dword [esp + 0x3cc]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xac], edx
fld dword [esp + 0xac]
fmul dword [esp + 0xac]
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xb4], ecx
fld dword [esp + 0xb4]
fmul dword [esp + 0xb4]
mov dword [esp + 0xb0], eax
sub esp, 8
mov dword [esp + 0xe8], ebp
faddp st(1)
fld dword [esp + 0xb8]
fmul dword [esp + 0xb8]
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp qword [esp]
call fcn.00693b94
fstp dword [esp + 0x18]
add esp, 8
fld dword [esp + 0x10]
fstp dword [esp + 0x18]
fld dword [esp + 0xf0]
fmul dword [0x6f3614]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fsub dword [esp + 0xf4]
fstp dword [esp + 0x20c]
mov eax, dword [esp + 0x20c]
fld dword [esp + 0xf4]
mov dword [esp + 0x1a8], eax
fmul dword [0x6f3614]
fld dword [esp + 0xec]
fmul dword [0x6f3614]
fsubp st(1)
fstp dword [esp + 0x210]
mov ecx, dword [esp + 0x210]
fld dword [esp + 0xec]
mov dword [esp + 0x1ac], ecx
fsub dword [esp + 0x14]
fstp dword [esp + 0x214]
mov edx, dword [esp + 0x214]
fld dword [esp + 0xe4]
mov dword [esp + 0x1b0], edx
fmul dword [0x6f3614]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fsub dword [esp + 0xe8]
fstp dword [esp + 0x200]
mov eax, dword [esp + 0x200]
fld dword [esp + 0xe8]
mov dword [esp + 0x1d8], eax
fmul dword [0x6f3614]
fld dword [esp + 0xe0]
fmul dword [0x6f3614]
fsubp st(1)
fstp dword [esp + 0x204]
mov ecx, dword [esp + 0x204]
fld dword [esp + 0xe0]
mov dword [esp + 0x1dc], ecx
fsub dword [esp + 0x14]
fstp dword [esp + 0x208]
mov edx, dword [esp + 0x208]
mov dword [esp + 0x1e0], edx
fld dword [esp + 0x1e0]
fmul dword [esp + 0x1b0]
fld dword [esp + 0x1dc]
fmul dword [esp + 0x1ac]
faddp st(1)
fld dword [esp + 0x1d8]
fmul dword [esp + 0x1a8]
faddp st(1)
fstp dword [esp + 0x10]
call dword [sym.imp.winmm.dll_timeGetTime]
fld dword [esp + 0x10]
mov ecx, eax
fcomp dword [0x6f3614]
fnstsw ax
test ah, 5
jnp 0x5aecfc
fld dword [esp + 0x18]
fcomp dword [0x6d50bc]
fnstsw ax
test ah, 5
jnp 0x5aecfc
sub ecx, dword [esi + 0x130]
mov eax, 0xcccccccd
mul ecx
shr edx, 5
cmp edx, 0x64
jae 0x5aecfc
mov al, byte [esp + 0x2b]
test al, al
jne 0x5aecfc
mov ecx, dword [esp + 0x3c]
mov al, byte [ecx + 0x30]
test al, al
je 0x5aef6d
mov eax, dword [esi + 0x310]
mov edx, dword [esi + 0x30c]
push eax
mov eax, dword [esi + 0x308]
push edx
push eax
call fcn.005a28b0
mov al, byte [esi + 0x334]
xor ebp, ebp
test al, al
je 0x5aef6f
mov ecx, edi
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0xbc], eax
cmp dword [esi + 0x11c], 0xbf800000
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xb8], edx
mov dword [esp + 0xc0], ecx
jne 0x5aebb2
mov eax, dword [esi + 0x1f0]
fld dword [eax + 8]
fadd dword [0x6f3614]
fstp dword [esp + 0x10]
fld dword [esp + 0x44]
fadd dword [eax + 4]
fstp dword [esp + 0x18]
fld dword [eax]
fadd dword [0x6f3614]
fstp dword [esp + 0x48c]
fld dword [esp + 0x10]
fsub dword [edi + 8]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fsub dword [edi + 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x48c]
fsub dword [edi]
fstp dword [esp + 0x3e4]
mov edx, dword [esp + 0x3e4]
jmp 0x5aec29
mov ecx, dword [esi + 0x11c]
xor eax, eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x5c], eax
fld dword [esp + 0x5c]
mov eax, dword [esi + 0x1f0]
fadd dword [eax + 8]
mov dword [esp + 0x58], ecx
fstp dword [esp + 0x10]
fld dword [esp + 0x58]
fadd dword [eax + 4]
fstp dword [esp + 0x18]
fld dword [esp + 0x54]
fadd dword [eax]
fstp dword [esp + 0x45c]
fld dword [esp + 0x10]
fsub dword [edi + 8]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fsub dword [edi + 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x45c]
fsub dword [edi]
fstp dword [esp + 0x318]
mov edx, dword [esp + 0x318]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x98], eax
lea eax, [esp + 0x94]
mov dword [esp + 0x9c], ecx
push eax
mov ecx, eax
push ecx
mov dword [esp + 0x9c], edx
call fcn.00540bf1
fld dword [esp + 0x94]
fmul dword [esi + 0x1ec]
mov edx, dword [esi + 0x124]
lea eax, [ebx + edx]
push ebp
fadd dword [eax + 0x14c]
fadd dword [esp + 0xbc]
fstp dword [esp + 0xbc]
mov edx, dword [esp + 0xbc]
fld dword [esp + 0x9c]
fmul dword [esi + 0x1ec]
fadd dword [eax + 0x150]
fadd dword [esp + 0xc0]
fstp dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
fld dword [esp + 0xa0]
fmul dword [esi + 0x1ec]
fadd dword [eax + 0x154]
fadd dword [esp + 0xc4]
fstp dword [esp + 0xc4]
mov eax, dword [esp + 0xc4]
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.005a4210
jmp 0x5aef6f
mov eax, dword [esp + 0x3c]
mov byte [eax + 0x30], 0
mov al, byte [esi + 0x2b6]
xor ebp, ebp
test al, al
je 0x5aedd9
mov eax, dword [esi + 0x18c]
cmp eax, ebp
mov dword [esp + 0x38], ebp
jle 0x5aed4c
mov ecx, dword [esi + 0x188]
mov edx, eax
lea ebx, [ebx]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x5aed42
mov edi, dword [esi + 0x108]
cmp dword [edi + eax*4], ebp
jne 0x5aed46
inc dword [esp + 0x38]
add ecx, 4
dec edx
jne 0x5aed30
mov ecx, dword [esp + 0x38]
cmp ecx, dword [esi + 0x18c]
mov edi, dword [esp + 0x3c]
jne 0x5aed64
push ebp
mov ecx, edi
call fcn.0060c660
mov eax, dword [esi + 0x11c]
sub esp, 0xc
cmp eax, 0xbf800000
mov eax, dword [esi + 0x1f0]
mov byte [esi + 0x2ec], 1
fld dword [eax + 8]
fadd dword [0x6f3614]
mov ecx, edi
fstp dword [esp + 8]
jne 0x5aed99
fld dword [esp + 0x50]
fadd dword [eax + 4]
jmp 0x5aeda2
fld dword [eax + 4]
fadd dword [esi + 0x11c]
fstp dword [esp + 4]
fld dword [eax]
fadd dword [0x6f3614]
fstp dword [esp]
call fcn.005a28b0
mov edx, dword [edi + 0x1c]
mov dword [esp + 0x1f0], edx
fld dword [esp + 0x1f0]
call fcn.00693530
push eax
mov ecx, edi
call fcn.0060c6d0
jmp 0x5aee81
mov al, byte [esi + 0x2b4]
test al, al
push ebp
je 0x5aee57
mov edi, dword [esp + 0x40]
mov ecx, edi
call fcn.0060c660
mov eax, dword [esi + 0x11c]
sub esp, 0xc
cmp eax, 0xbf800000
mov eax, dword [esi + 0x1f0]
mov byte [esi + 0x2eb], 1
fld dword [eax + 8]
fadd dword [0x6f3614]
mov ecx, edi
fstp dword [esp + 8]
jne 0x5aee38
fld dword [esp + 0x50]
fadd dword [eax + 4]
fstp dword [esp + 4]
fld dword [eax]
fadd dword [0x6f3614]
fstp dword [esp]
call fcn.005a28b0
jmp 0x5aee81
fld dword [eax + 4]
fadd dword [esi + 0x11c]
fstp dword [esp + 4]
fld dword [eax]
fadd dword [0x6f3614]
fstp dword [esp]
call fcn.005a28b0
jmp 0x5aee81
inc dword [esi + 0x2a0]
mov edi, dword [esp + 0x40]
mov ecx, edi
call fcn.0060c660
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax]
mov ecx, dword [esi + 0x108]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x3c], 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 + 0xd0]
push eax
call fcn.00542b10
mov al, byte [esi + 0x2b7]
test al, al
je 0x5aef20
cmp dword [esi + 0x2b8], ebp
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
mov edi, dword [esp + 0xd0]
je 0x5aef20
mov ebp, dword [esi + 0x2b8]
mov dword [ebp + 0x2bc], 0
mov ebp, dword [esi + 0x2b8]
mov dword [ebp + 0x2c0], eax
mov eax, dword [esi + 0x2b8]
mov dword [eax + 0x2c4], ecx
mov ecx, dword [esi + 0x2b8]
mov dword [ecx + 0x2c8], edx
mov edx, dword [esi + 0x2b8]
mov dword [edx + 0x2cc], edi
mov eax, dword [esi + 0x2b8]
mov byte [eax + 0x2e0], 1
xor ebp, ebp
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xc8]
lea ecx, [esi + 0x2c0]
mov dword [ecx], edx
mov edx, dword [esp + 0xcc]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0xd0]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov al, byte [esi + 0x334]
test al, al
mov byte [esp + 0x2b], 1
je 0x5aefaf
push 1
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
mov ecx, esi
call fcn.005a4210
jmp 0x5aefaf
xor ebp, ebp
fld dword [esi + 0x1ec]
fcomp dword [esi + 0x178]
fnstsw ax
test ah, 5
jp 0x5aef90
mov ecx, dword [esi + 0x178]
mov dword [esi + 0x1ec], ecx
jmp 0x5aefaf
fld dword [esi + 0x1ec]
fcomp dword [esi + 0x174]
fnstsw ax
test ah, 0x41
jne 0x5aefaf
mov edx, dword [esi + 0x174]
mov dword [esi + 0x1ec], edx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x164]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x5ad590
cmp dword [esp + 0x3c], ebp
je 0x5af5ad
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], eax
mov al, byte [esi + 0x341]
test al, al
je 0x5af334
mov eax, dword [esi + 0x124]
mov ecx, dword [ebx + eax + 0x194]
xor edi, edi
test ecx, ecx
jle 0x5af24e
xor ecx, ecx
mov edx, dword [esi + 0x124]
mov eax, dword [ebx + edx + 0x190]
test eax, eax
je 0x5af0c0
cmp byte [eax + ecx + 0x110], 0
mov ebp, dword [esp + 0x24]
lea edx, [eax + ecx + 0x110]
jne 0x5af07e
fild dword [eax + ecx]
mov edx, dword [esi + 0x108]
mov edx, dword [edx + ebp*4]
mov edx, dword [edx + 0x1c]
fstp dword [esp + 0x10]
mov dword [esp + 0x1e8], edx
fld dword [esp + 0x10]
fcomp dword [esp + 0x1e8]
fnstsw ax
test ah, 0x41
jp 0x5af0c0
mov eax, dword [esi + 0x124]
cmp edi, dword [ebx + eax + 0x194]
mov dword [esp + 0x14], edi
jge 0x5af15b
mov edx, edi
imul edx, edx, 0x114
mov dword [esp + 0x10], edx
mov eax, edx
jmp 0x5af0f0
mov eax, dword [esi + 0x108]
mov eax, dword [eax + ebp*4]
test eax, eax
je 0x5af0c0
cmp byte [esi + 0x2a4], 0
je 0x5af0c0
mov ebp, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x1d4], ebp
fld dword [esp + 0x1d4]
mov dword [esp + 0x1b4], eax
fcomp dword [esp + 0x1b4]
fnstsw ax
test ah, 5
jp 0x5af0c0
mov byte [edx], 0
mov edx, dword [esi + 0x124]
mov eax, dword [ebx + edx + 0x194]
inc edi
add ecx, 0x114
cmp edi, eax
jl 0x5af001
jmp 0x5af24e
mov edx, dword [esp + 0x10]
jmp 0x5af0f0
mov ecx, dword [esi + 0x124]
mov ebp, dword [ebx + ecx + 0x190]
mov edx, dword [edx + ebp]
cmp edx, dword [eax + ebp]
lea ecx, [ebx + ecx + 0x190]
jne 0x5af13e
mov edx, dword [esp + 0x1c]
inc edx
mov ecx, ebp
mov byte [ecx + eax + 0x110], 1
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
mov edx, dword [esi + 0x124]
mov ebp, dword [ebx + edx + 0x194]
inc ecx
add eax, 0x114
cmp ecx, ebp
mov dword [esp + 0x14], ecx
jl 0x5af0e1
mov eax, dword [esp + 0x1c]
cmp eax, 1
jne 0x5af14b
mov edx, edi
jmp 0x5af15f
jle 0x5af15b
call fcn.006935b2
cdq
idiv dword [esp + 0x1c]
add edx, edi
jmp 0x5af15f
mov edx, dword [esp + 0x38]
mov al, byte [esi + 0x28d]
test al, al
jne 0x5af241
mov eax, dword [esi + 0x124]
mov ebp, dword [ebx + eax + 0x190]
lea ecx, [ebx + eax + 0x190]
mov eax, edx
imul eax, eax, 0x114
mov ebp, dword [eax + ebp + 0x10c]
cmp ebp, 1
jne 0x5af1ce
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 + 0x3c]
push edx
mov ecx, esi
call fcn.005a47f0
jmp 0x5af24e
cmp ebp, 2
jne 0x5af209
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 + 0x3c]
push edx
mov ecx, esi
call fcn.005a47f0
jmp 0x5af24e
cmp ebp, 3
jne 0x5af24e
mov ecx, dword [ecx]
mov ebp, dword [eax + ecx + 0x108]
add eax, ecx
mov eax, dword [eax + 0x104]
mov ecx, dword [esi + 0x1f0]
push ebp
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 + 0x3c]
push edx
mov ecx, esi
call fcn.005a47f0
jmp 0x5af24e
mov eax, dword [esp + 0x24]
push edx
push eax
mov ecx, esi
call fcn.005a4a80
mov al, byte [esi + 0x2ed]
test al, al
je 0x5af2b2
mov eax, dword [esi + 0x324]
xor edi, edi
test eax, eax
jle 0x5af2b2
mov ebp, dword [esp + 0x24]
jmp 0x5af270
mov ecx, dword [esi + 0x108]
mov edx, dword [ecx + ebp*4]
mov eax, dword [edx + 0x1c]
mov edx, dword [esp + 0x70]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x80]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x84]
push eax
push ebp
mov dword [ecx + 8], edx
push edi
mov ecx, esi
call fcn.005a6ab0
mov eax, dword [esi + 0x324]
inc edi
cmp edi, eax
jl 0x5af270
jmp 0x5af2b6
mov ebp, dword [esp + 0x24]
mov al, byte [esi + 0x350]
test al, al
je 0x5af2f5
mov eax, dword [esi + 0x108]
mov ecx, dword [eax + ebp*4]
mov eax, dword [ecx + 0x1c]
mov ecx, dword [esp + 0x70]
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0x80]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x84]
push eax
push ebp
mov dword [edx + 8], ecx
push edi
mov ecx, esi
call fcn.005a62e0
mov al, byte [esi + 0x358]
test al, al
je 0x5af334
mov edx, dword [esi + 0x108]
mov eax, dword [edx + ebp*4]
mov edx, dword [esp + 0x70]
mov eax, dword [eax + 0x1c]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x80]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x84]
push eax
push ebp
mov dword [ecx + 8], edx
push edi
mov ecx, esi
call fcn.005a5c60
mov eax, dword [esi + 0x124]
mov ecx, dword [eax + ebx + 0x188]
add eax, ebx
test ecx, ecx
jle 0x5af3cc
mov edx, dword [eax + 0x18c]
cmp edx, ecx
jge 0x5af3cc
mov edi, dword [esp + 0x24]
lea esp, [esp]
mov ecx, dword [esi + 0x124]
mov eax, dword [ecx + ebx + 0x184]
mov eax, dword [eax + edx*4]
add ecx, ebx
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
je 0x5af3ba
mov eax, dword [esi + 0x108]
fild dword [esp + 0x10]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x1c]
fstp dword [esp + 0x10]
mov dword [esp + 0x1d0], eax
fld dword [esp + 0x10]
fcomp dword [esp + 0x1d0]
fnstsw ax
test ah, 0x41
jp 0x5af3ba
mov eax, dword [ecx + 0x18c]
inc eax
mov byte [esp + 0x23], 1
mov dword [ecx + 0x18c], eax
mov ecx, dword [esi + 0x124]
mov eax, dword [ebx + ecx + 0x188]
inc edx
cmp edx, eax
jl 0x5af360
mov edx, dword [esi + 0x124]
mov ecx, dword [ebx + edx + 0x1a8]
test ecx, ecx
lea eax, [ebx + edx]
jle 0x5af47b
mov edi, dword [eax + 0x1ac]
cmp edi, ecx
jge 0x5af47b
lea ebp, [edi + edi*2]
shl ebp, 3
jmp 0x5af400
mov eax, dword [esi + 0x124]
mov ecx, dword [ebx + eax + 0x1a4]
mov eax, dword [ecx + ebp]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
je 0x5af466
mov edx, dword [esi + 0x108]
fild dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov ecx, dword [edx + eax*4]
mov edx, dword [ecx + 0x1c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov dword [esp + 0x1b8], edx
fcomp dword [esp + 0x1b8]
fnstsw ax
test ah, 0x41
jp 0x5af466
mov eax, dword [esp + 0x24]
push edi
push eax
mov ecx, esi
call fcn.005a49d0
mov ecx, dword [esi + 0x124]
lea eax, [ebx + ecx + 0x1ac]
inc dword [eax]
mov edx, dword [esi + 0x124]
mov eax, dword [ebx + edx + 0x1a8]
inc edi
add ebp, 0x18
cmp edi, eax
jl 0x5af400
mov al, byte [esi + 0x341]
test al, al
je 0x5af546
mov eax, dword [esi + 0x124]
mov ecx, dword [eax + ebx + 0x19c]
add eax, ebx
test ecx, ecx
jle 0x5af546
mov edi, dword [eax + 0x1a0]
cmp edi, ecx
jge 0x5af546
mov ebp, edi
imul ebp, ebp, 0x208
jmp 0x5af4c0
mov ecx, dword [esi + 0x124]
mov edx, dword [ebx + ecx + 0x198]
mov eax, dword [edx + ebp]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
je 0x5af52a
mov eax, dword [esi + 0x108]
fild dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + ecx*4]
mov eax, dword [edx + 0x1c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov dword [esp + 0x1e4], eax
fcomp dword [esp + 0x1e4]
fnstsw ax
test ah, 0x41
jp 0x5af52a
push edi
push ecx
mov ecx, esi
call fcn.005a8df0
mov edx, dword [esi + 0x124]
mov ecx, dword [ebx + edx + 0x1a0]
lea eax, [ebx + edx + 0x1a0]
inc ecx
mov dword [eax], ecx
mov eax, dword [esi + 0x124]
mov ecx, dword [ebx + eax + 0x19c]
inc edi
add ebp, 0x208
cmp edi, ecx
jl 0x5af4c0
call dword [sym.imp.winmm.dll_timeGetTime]
mov edi, dword [esp + 0x3c]
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 0x5af5ad
sub eax, ecx
push 0xbf800000
push eax
mov ecx, edi
call fcn.0060c210
test eax, eax
jne 0x5af5a4
inc dword [esi + 0x2a0]
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax]
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 0x108]
mov eax, edx
inc eax
mov dword [ecx + edx*4], 0
mov dword [esp + 0x24], eax
mov edx, eax
jmp 0x5acaf0
mov eax, dword [esi + 0x244]
mov dword [edi + 0x64], eax
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
mov edx, eax
jmp 0x5acaf0
mov al, byte [esi + 0x348]
test al, al
je 0x5af647
mov eax, dword [esi + 0x344]
test eax, eax
je 0x5af647
mov ecx, dword [eax + 0x13c]
test ecx, ecx
je 0x5af647
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [esi + 0x344]
mov edi, eax
mov eax, dword [ecx + 0x12c]
xor edx, edx
test eax, eax
je 0x5af614
mov ebx, edi
sub ebx, eax
cmp ebx, 0x28
jbe 0x5af61f
mov ebx, eax
mov edx, edi
sub edx, ebx
mov eax, 0xcccccccd
mul edx
shr edx, 5
jmp 0x5af619
mov edx, 1
mov dword [ecx + 0x12c], edi
test edx, edx
jle 0x5af647
lea ebx, [esi + 0x308]
mov edi, edx
jmp 0x5af630
mov eax, dword [esi + 0x344]
mov ecx, dword [eax + 0x13c]
push 1
push ebx
call fcn.0060bba0
dec edi
jne 0x5af630
mov al, byte [esi + 0x2e2]
test al, al
je 0x5af778
mov ecx, dword [esi + 0x2e4]
mov al, byte [ecx + 0x19]
test al, al
je 0x5af778
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 0x5af69b
mov ebx, edi
sub ebx, eax
cmp ebx, 0x28
jbe 0x5af6a6
mov ebx, eax
mov edx, edi
sub edx, ebx
mov eax, 0xcccccccd
mul edx
shr edx, 5
jmp 0x5af6a0
mov edx, 1
mov dword [ecx + 0x210], edi
test edx, edx
jle 0x5af778
mov dword [esp + 0x14], edx
xor ebx, ebx
mov edi, 0x1f4
lea esp, [esp]
cmp edi, 0x1f4
je 0x5af6e3
cmp edi, 0x1fc
je 0x5af6e3
mov eax, dword [esi + 0x2e4]
fld dword [eax + edi]
add eax, edi
fsub dword [0x6ee2a0]
jmp 0x5af6f5
mov ecx, dword [esi + 0x2e4]
fld dword [ecx + edi]
lea eax, [ecx + edi]
fsub dword [0x6ee29c]
fstp dword [eax]
mov edx, dword [esi + 0x2e4]
fld dword [edx + edi]
lea ecx, [edx + edi]
fcomp dword [0x6f3614]
fnstsw ax
test ah, 0x41
jp 0x5af716
mov dword [ecx], 0
mov ebp, dword [esi + 0x2e4]
fld dword [edi + ebp]
fmul dword [0x6d5098]
call fcn.00693530
shl eax, 0x18
or eax, 0xffffff
mov dword [ebx + ebp + 0x140], eax
mov ebp, dword [esi + 0x2e4]
fld dword [edi + ebp]
fmul dword [0x6d5098]
call fcn.00693530
shl eax, 0x18
or eax, 0xffffff
mov dword [ebx + ebp + 0x1a0], eax
add edi, 4
add ebx, 0x18
cmp edi, 0x204
jl 0x5af6c0
dec dword [esp + 0x14]
jne 0x5af6b2
mov ecx, dword [esi + 0x108]
xor edx, edx
cmp ecx, edx
jne 0x5af788
xor eax, eax
jmp 0x5af793
mov eax, dword [esi + 0x10c]
sub eax, ecx
sar eax, 2
cmp dword [esi + 0x2a0], eax
mov dword [esi + 0x2a0], edx
jne 0x5af7e2
mov al, byte [esp + 0x23]
test al, al
mov byte [esi + 0x28c], 0
jne 0x5abed4
mov al, byte [esi + 0x2e2]
test al, al
je 0x5af7d8
mov eax, dword [esi + 0x2e4]
mov cl, byte [eax + 0x18]
test cl, cl
jne 0x5af7d8
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esp + 0x2b]
test al, al
mov dl, byte [esp + 0x23]
je 0x5af805
xor eax, eax
test dl, dl
setne al
mov byte [esi + 0x28c], 1
inc eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
test dl, dl
setne al
mov byte [esi + 0x28c], 0
inc eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x2a0], ebp
pop edi
mov byte [esi + 0x28c], 0
mov eax, 1
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret