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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x4c3eb4
mov eax, dword fs:[0]
push eax
sub esp, 0x728
push ebx
push esi
push edi
mov eax, dword [0x4f2fb0]
xor eax, esp
push eax
lea eax, [esp + 0x738]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
xor edi, edi
cmp dword [esi + 8], ebx
jle 0x456142
lea ecx, [ecx]
mov eax, dword [esi + 0x10]
cmp dword [eax + edi*4], ebx
lea eax, [eax + edi*4]
je 0x45613c
mov eax, dword [eax]
push eax
call fcn.0047af7e
mov ecx, dword [esi + 0x10]
add esp, 4
mov dword [ecx + edi*4], ebx
inc edi
cmp edi, dword [esi + 8]
jl 0x456120
mov eax, dword [esi + 0x10]
cmp eax, ebx
je 0x456155
push eax
call fcn.0047af7e
add esp, 4
mov dword [esi + 0x10], ebx
mov eax, dword [esi + 0x14]
cmp eax, ebx
je 0x456168
push eax
call fcn.0047af7e
add esp, 4
mov dword [esi + 0x14], ebx
mov eax, dword [esi + 0x34]
cmp eax, ebx
je 0x45617b
push eax
call fcn.0047af7e
add esp, 4
mov dword [esi + 0x34], ebx
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x45618e
push eax
call fcn.0047af7e
add esp, 4
mov dword [esi + 0xc], ebx
mov eax, dword [esi + 0x24]
cmp eax, ebx
je 0x4561a1
push eax
call fcn.0047af7e
add esp, 4
mov dword [esi + 0x24], ebx
mov eax, dword [esi + 0x28]
cmp eax, ebx
je 0x4561b4
push eax
call fcn.0047af7e
add esp, 4
mov dword [esi + 0x28], ebx
mov eax, dword [esi + 0x2c]
cmp eax, ebx
je 0x4561c7
push eax
call fcn.0047af7e
add esp, 4
mov dword [esi + 0x2c], ebx
mov eax, dword [esi + 0x30]
cmp eax, ebx
je 0x4561da
push eax
call fcn.0047af7e
add esp, 4
mov dword [esi + 0x30], ebx
fldz
mov ecx, dword [ebp + 8]
fst qword [esi + 0xa8]
mov dword [esp + 0x38], 1
fst qword [esi + 0x88]
fst qword [esi + 0x80]
fst qword [esi + 0x78]
fst qword [esi + 0x70]
fst qword [esi + 0x68]
fst qword [esi + 0x60]
fst qword [esi + 0x58]
fst qword [esi + 0x50]
fst qword [esi + 0x48]
fst qword [esi + 0x40]
fld qword [esi + 0xa0]
fsub qword [ecx + 0x2a32]
fst qword [esp + 0x144]
fld dword [ecx + 4]
fadd st(1)
fcomp st(2)
fnstsw ax
test ah, 0x41
je 0x456236
mov dword [esp + 0x38], ebx
movsx edx, word [ecx]
imul edx, edx, 0x36
fadd dword [edx + ecx - 0x32]
fcompp
fnstsw ax
test ah, 1
jne 0x456250
mov eax, 1
jmp 0x456252
xor eax, eax
mov ecx, dword [esp + 0x38]
lea edx, [eax + ecx]
mov dword [esi + 8], edx
mov edx, dword [ebp + 8]
movsx edi, word [edx]
add edi, eax
add edi, ecx
mov dword [esp + 0xcc], eax
xor ecx, ecx
lea ebx, [edi + 1]
mov eax, ebx
mov edx, 8
mul edx
seto cl
mov dword [esp + 0xc0], edi
neg ecx
or ecx, eax
push ecx
call fcn.0047af73
mov dword [esp + 0x9c], eax
xor ecx, ecx
mov eax, ebx
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0047af73
mov dword [esp + 0xac], eax
xor ecx, ecx
mov eax, edi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0047af73
push ebx
mov dword [esp + 0x44], eax
call fcn.0047af73
add esp, 0x10
xor ecx, ecx
mov dword [esp + 0xa8], eax
test edi, edi
jl 0x45632a
mov edx, dword [esp + 0x98]
fldz
mov ebx, dword [esp + 0xa4]
sub ebx, edx
mov dword [esp + 0x94], ebx
cmp ecx, edi
jge 0x456316
mov ebx, dword [esp + 0x34]
mov dword [ebx + ecx*4], 0
mov ebx, dword [esp + 0x94]
fst qword [edx + ebx]
inc ecx
fst qword [edx]
mov byte [ecx + eax - 1], 0
add edx, 8
cmp ecx, edi
jle 0x456302
fstp st(0)
lea ecx, [esp + 0x84]
call fcn.004661f0
lea ecx, [esp + 0x3c]
call fcn.004661f0
lea ecx, [esp + 0x64]
call fcn.004661f0
lea ecx, [esp + 0x164]
call fcn.004661f0
lea ecx, [esp + 0x4c]
call fcn.004661f0
lea ecx, [esp + 0xac]
call fcn.004661f0
fld qword [esi + 0xa0]
mov eax, dword [ebp + 8]
fmul qword [0x4c7c78]
movsx ecx, word [eax]
mov edi, dword [esp + 0x38]
add ecx, edi
fstp qword [esp + 0xd4]
cmp edi, ecx
jge 0x456cc5
mov ecx, dword [esp + 0x98]
add eax, 2
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xa4]
mov edx, edi
sub eax, ecx
lea ebx, [ecx + edx*8 + 8]
mov dword [esp + 0x94], eax
jmp 0x4563c0
mov ecx, dword [esp + 0x78]
fld dword [ecx + 2]
mov edx, dword [esp + 0xa4]
fadd qword [esp + 0x144]
sub esp, 0x10
lea ecx, [esp + 0x184]
fstp qword [esp + 8]
fld qword [edx + edi*8]
fstp qword [esp]
call fcn.004661d0
mov ecx, dword [eax]
mov dword [esp + 0x84], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x88], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x8c], ecx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x84]
mov dword [esp + 0x90], edx
call fcn.00466230
mov ecx, dword [esp + 0x78]
fld dword [ecx + 6]
sub esp, 0x10
fadd qword [esp + 0x154]
fstp qword [esp + 8]
fld dword [ecx + 0x12]
lea ecx, [esp + 0x114]
fadd qword [eax]
fstp qword [esp]
call fcn.004661d0
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x84]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x98]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x9c]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xa0]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x114]
push ecx
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466a60
fmul qword [0x4c79c0]
add esp, 0x10
fcomp qword [esp + 0xd4]
fnstsw ax
test ah, 0x41
je 0x45657d
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x9c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xa0]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x134]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466a60
fmul qword [0x4c79c0]
add esp, 0x10
fstp qword [esp + 0xd4]
mov edx, dword [esp + 0x78]
movzx eax, word [edx]
movsx ecx, ax
dec ecx
cmp ecx, 6
ja case.default.0x456591
jmp dword [ecx*4 + 0x459a74]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x9c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xa0]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x104]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466a60
fadd qword [ebx - 8]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xa4]
fstp qword [ebx]
push 0x60
fld qword [ecx + edi*8]
fstp qword [ebx + edx]
call fcn.0047af44
add esp, 0x14
mov dword [esp + 0x5c], eax
mov dword [esp + 0x740], 0
test eax, eax
je 0x4566b6
lea ecx, [esp + 0x3c]
call fcn.00466240
fld qword [ebx]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebx - 8]
fstp qword [esp]
push 1
fld qword [eax]
sub esp, 0x18
mov eax, esp
fstp qword [esp + 0x10]
mov dword [eax], ecx
mov ecx, dword [esp + 0xb8]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xbc]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x88]
mov dword [eax + 0xc], edx
call fcn.00455490
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0xa8]
mov dword [ecx + edi*4], eax
mov byte [edi + edx], 0x6b
jmp 0x456c6f
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0xa8]
xor eax, eax
mov dword [ecx + edi*4], eax
mov byte [edi + edx], 0x6b
jmp 0x456c6f
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x9c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xa0]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x224]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466a60
fadd qword [ebx - 8]
push 0x60
fstp qword [ebx]
call fcn.0047af44
add esp, 0x14
mov dword [esp + 0xd0], eax
mov dword [esp + 0x740], 1
test eax, eax
je 0x4567cf
fld qword [ebx]
mov ecx, dword [esp + 0x3c]
sub esp, 0x20
fstp qword [esp + 0x18]
mov edx, esp
fld qword [ebx - 8]
sub esp, 0x10
fstp qword [esp + 0x20]
mov dword [edx], ecx
mov ecx, dword [esp + 0x70]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x74]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x78]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0xb4]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0xb8]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0xbc]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ecx, eax
call fcn.00454f00
jmp 0x4567d1
xor eax, eax
mov edx, dword [esp + 0x34]
fld qword [ebx]
sub esp, 8
mov dword [edx + edi*4], eax
fstp qword [esp]
mov edx, dword [eax]
mov edx, dword [edx]
lea ecx, [esp + 0x1fc]
push ecx
mov ecx, eax
mov dword [esp + 0x74c], 0xffffffff
call edx
mov ecx, eax
call fcn.00466230
fld qword [eax]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0xa8]
fstp qword [ebx + eax]
mov byte [edi + ecx], 0x67
jmp case.default.0x456591
fld dword [edx + 0x16]
fst qword [esp + 0x7c]
cmp ax, 6
je 0x456839
mov dword [esp + 0x30], 0
cmp ax, 7
jne 0x456841
mov dword [esp + 0x30], 1
mov ecx, dword [esp + 0x3c]
push 0
lea edx, [esp + 0xb0]
push edx
mov edx, dword [esp + 0x48]
lea eax, [esp + 0x54]
push eax
sub esp, 0x20
fst qword [esp + 0x18]
mov eax, esp
fstp qword [esp + 0x10]
mov dword [eax], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x74]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xb0]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xb4]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xc8]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xcc]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.0040f0e0
add esp, 0x3c
test eax, eax
jne 0x4569d7
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x94]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x98]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xac]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xb0]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x1e4]
push eax
call fcn.004663c0
fld qword [0x4c79c0]
mov edx, dword [eax]
fstp qword [esp + 0x1c]
add esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x1ec]
push ecx
call fcn.00466580
mov edx, dword [eax]
mov dword [esp + 0x68], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x6c], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x70], edx
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x74], ecx
add esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x98]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x9c]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xa0]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x1d4]
push ecx
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466a60
add esp, 0x10
fstp qword [esp + 0x7c]
jmp 0x456a52
cmp dword [esp + 0x30], 0
jne 0x456a52
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x13c], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x140], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x58], edx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], ecx
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x64]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x94]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x98]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0xac]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0xb0]
mov dword [eax + 8], edx
lea edx, [esp + 0x1c4]
push edx
mov dword [eax + 0xc], ecx
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
fstp qword [esp + 0xac]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x1b4]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
fst qword [esp + 0xd4]
fld qword [esp + 0xac]
add esp, 0x10
cmp dword [esp + 0x30], 0
fcom st(1)
fnstsw ax
je 0x456bcc
test ah, 0x41
jne 0x456b81
fld qword [0x4c79a8]
jmp 0x456b67
fxch st(1)
fadd st(2), st(0)
fxch st(1)
fcom st(2)
fnstsw ax
test ah, 0x41
je 0x456b65
fstp st(1)
fxch st(1)
fst qword [esp + 0xc4]
fxch st(1)
fsubrp st(1)
push 0x48
fabs
fmul qword [esp + 0x80]
fadd qword [ebx - 8]
fstp qword [ebx]
call fcn.0047af44
add esp, 4
mov dword [esp + 0xd0], eax
mov dword [esp + 0x740], 2
test eax, eax
je 0x456c5b
mov ecx, dword [esp + 0x78]
movzx ecx, word [ecx]
cmp cx, 6
je 0x456bf3
cmp cx, 7
je 0x456bf3
xor ecx, ecx
jmp 0x456bf8
test ah, 5
jp 0x456b81
fld qword [0x4c79a8]
jmp 0x456bdb
fxch st(2)
fadd st(1), st(0)
fxch st(2)
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x456bd9
fstp st(2)
fst qword [esp + 0x9c]
jmp 0x456b81
mov ecx, 1
fld qword [ebx]
push ecx
mov ecx, dword [esp + 0x50]
sub esp, 0x30
fstp qword [esp + 0x28]
mov edx, esp
fld qword [ebx - 8]
sub esp, 8
fstp qword [esp + 0x28]
fld qword [esp + 0x100]
fstp qword [esp + 0x20]
fld qword [esp + 0xd8]
fstp qword [esp + 0x18]
mov dword [edx], ecx
mov ecx, dword [esp + 0x8c]
fld qword [esp + 0xb8]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x90]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x94]
mov dword [edx + 0xc], ecx
fstp qword [esp]
mov ecx, eax
call fcn.00454a50
jmp 0x456c5d
xor eax, eax
mov edx, dword [esp + 0x34]
mov dword [edx + edi*4], eax
mov eax, dword [esp + 0xa8]
mov byte [edi + eax], 0x72
mov dword [esp + 0x740], 0xffffffff
mov ecx, dword [esp + 0x34]
fld qword [ebx]
mov ecx, dword [ecx + edi*4]
mov edx, dword [ecx]
mov edx, dword [edx]
sub esp, 8
lea eax, [esp + 0x18c]
fstp qword [esp]
push eax
call edx
mov ecx, eax
call fcn.00466230
fld qword [eax]
mov eax, dword [esp + 0x94]
mov ecx, dword [ebp + 8]
fstp qword [ebx + eax]
movsx edx, word [ecx]
add edx, dword [esp + 0x38]
add dword [esp + 0x78], 0x36
inc edi
add ebx, 8
cmp edi, edx
jl 0x4563c0
cmp dword [esp + 0x38], 0
mov ebx, dword [esp + 0x98]
je 0x456df5
mov eax, dword [esp + 0x34]
fld qword [ebx + 8]
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
mov edx, dword [edx]
sub esp, 8
lea eax, [esp + 0x18c]
fstp qword [esp]
push eax
call edx
mov ecx, eax
call fcn.00466240
fld qword [eax]
fchs
push 0x60
fstp qword [ebx]
call fcn.0047af44
add esp, 4
mov dword [esp + 0x30], eax
mov dword [esp + 0x740], 3
test eax, eax
je 0x456dcc
mov eax, dword [esp + 0x34]
fld qword [ebx + 8]
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
mov edx, dword [edx]
sub esp, 8
lea eax, [esp + 0x18c]
fstp qword [esp]
push eax
call edx
mov ecx, eax
call fcn.00466240
fld qword [ebx + 8]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
mov edx, dword [edx]
sub esp, 8
lea eax, [esp + 0x19c]
fstp qword [esp]
push eax
call edx
mov ecx, eax
call fcn.00466230
fldz
sub esp, 0x10
fstp qword [esp + 8]
fld qword [eax]
lea ecx, [esp + 0x1b4]
fstp qword [esp]
call fcn.004661d0
fld qword [ebx + 8]
mov ecx, dword [esp + 0x5c]
mov edx, dword [eax]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebx]
fstp qword [esp]
push 1
fld qword [ecx]
sub esp, 0x18
mov ecx, esp
fstp qword [esp + 0x10]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x5c]
call fcn.00455490
jmp 0x456dce
xor eax, eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0xa8]
mov dword [ecx], eax
mov eax, dword [esp + 0xa4]
fld qword [eax + 8]
mov dword [esp + 0x740], 0xffffffff
fstp qword [eax]
mov byte [edx], 0x6b
cmp dword [esp + 0xcc], 0
je 0x456edd
mov eax, dword [esp + 0x34]
fld qword [ebx + edi*8]
mov ecx, dword [eax + edi*4 - 4]
mov edx, dword [ecx]
mov edx, dword [edx]
sub esp, 8
lea eax, [esp + 0x18c]
fstp qword [esp]
push eax
call edx
mov ecx, eax
call fcn.00466240
fld qword [eax]
fadd qword [ebx + edi*8]
push 0x60
fstp qword [ebx + edi*8 + 8]
call fcn.0047af44
add esp, 4
mov dword [esp + 0x5c], eax
mov dword [esp + 0x740], 4
test eax, eax
je 0x456eb0
mov eax, dword [esp + 0x34]
fld qword [ebx + edi*8]
mov ecx, dword [eax + edi*4 - 4]
mov edx, dword [ecx]
mov edx, dword [edx]
sub esp, 8
lea eax, [esp + 0x18c]
fstp qword [esp]
push eax
call edx
fld qword [ebx + edi*8 + 8]
mov edx, dword [eax]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebx + edi*8]
fstp qword [esp]
push 1
fldz
sub esp, 0x18
mov ecx, esp
fstp qword [esp + 0x10]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x88]
call fcn.00455490
jmp 0x456eb2
xor eax, eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0xa8]
mov dword [ecx + edi*4], eax
mov eax, dword [esp + 0xa4]
fld qword [eax + edi*8]
mov dword [esp + 0x740], 0xffffffff
fstp qword [eax + edi*8 + 8]
mov byte [edi + edx], 0x6b
lea ecx, [esp + 0x154]
mov dword [esp + 0x30], 0
call fcn.004661f0
lea ecx, [esp + 0x124]
call fcn.004661f0
mov edi, 1
cmp dword [esp + 0xc0], edi
jle 0x45705a
nop
mov eax, dword [esp + 0x34]
fld qword [ebx + edi*8]
mov ecx, dword [eax + edi*4]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
sub esp, 8
lea eax, [esp + 0x18c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x154], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x158], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x15c], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x160], edx
fld qword [ebx + edi*8]
mov ecx, dword [eax + edi*4 - 4]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
sub esp, 8
lea eax, [esp + 0x19c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x124], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x128], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x12c], ecx
mov edx, dword [eax + 0xc]
mov ecx, dword [esp + 0x154]
sub esp, 0x10
mov eax, esp
mov dword [esp + 0x140], edx
mov edx, dword [esp + 0x168]
mov dword [eax], ecx
mov ecx, dword [esp + 0x16c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x170]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.00466df0
fstp qword [esp + 0xac]
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x138]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x13c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x140]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.00466df0
fld qword [0x4cae38]
fld qword [esp + 0xac]
add esp, 0x10
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x457022
fsub qword [0x4c79a8]
fxch st(1)
fcomp st(2)
fnstsw ax
test ah, 5
jp 0x457037
fxch st(1)
fsub qword [0x4c79a8]
fxch st(1)
fsubrp st(1)
fabs
fcomp qword [0x4cae30]
fnstsw ax
test ah, 0x41
jne 0x45704c
inc dword [esp + 0x30]
inc edi
cmp edi, dword [esp + 0xc0]
jl 0x456f10
mov edi, dword [esp + 0xc0]
mov eax, dword [esp + 0x30]
add eax, edi
mov dword [esi + 8], eax
xor ecx, ecx
inc eax
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0047af73
mov dword [esi + 0x14], eax
mov eax, dword [esi + 8]
xor ecx, ecx
mov ebx, 1
add eax, ebx
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0047af73
mov dword [esi + 0x34], eax
mov eax, dword [esi + 8]
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0047af73
mov dword [esi + 0x10], eax
mov eax, dword [esi + 8]
add eax, ebx
push eax
call fcn.0047af73
mov ecx, dword [esi + 0x14]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0xa8]
fld qword [eax]
add eax, 8
fstp qword [ecx]
mov edx, dword [esi + 0x34]
mov ecx, dword [esp + 0xb4]
fld qword [ecx]
add esp, 0x10
cmp edi, ebx
fstp qword [edx]
mov edx, dword [esi + 0x14]
fld qword [eax]
fstp qword [edx + 8]
mov edx, dword [esi + 0x34]
fld qword [ecx + 8]
mov dword [esp + 0x38], ebx
fstp qword [edx + 8]
mov edx, dword [esp + 0xa8]
mov dl, byte [edx]
mov ecx, dword [esi + 0xc]
mov byte [ecx], dl
mov edx, dword [esp + 0x34]
mov ecx, dword [esi + 0x10]
mov edx, dword [edx]
mov dword [ecx], edx
jle 0x459756
mov ecx, dword [esp + 0xa8]
mov edi, eax
mov eax, dword [esp + 0xc0]
dec eax
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xa4]
sub eax, dword [esp + 0x98]
lea edx, [ecx + 1]
mov dword [esp + 0x94], eax
mov eax, ebx
sub eax, ecx
mov dword [esp + 0x144], edx
mov dword [esp + 0xd0], eax
jmp 0x457170
mov ecx, dword [esp + 0x34]
fld qword [edi]
mov ecx, dword [ecx + ebx*4 - 4]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
sub esp, 8
lea eax, [esp + 0x18c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x124], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x128], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x12c], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x130], edx
fld qword [edi]
mov ecx, dword [eax + ebx*4]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
sub esp, 8
lea eax, [esp + 0x19c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x154], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x158], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x15c], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x160], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
fstp qword [esp + 0xac]
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x138]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x13c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x140]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.00466df0
fld qword [0x4c88b0]
fld qword [esp + 0xac]
add esp, 0x10
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x45726f
fsub qword [0x4c79a8]
fxch st(1)
fcomp st(2)
fnstsw ax
test ah, 5
jp 0x457284
fxch st(1)
fsub qword [0x4c79a8]
fxch st(1)
fcom st(1)
mov dword [esp + 0x78], 1
fnstsw ax
test ah, 0x41
je 0x45729d
mov dword [esp + 0x78], 0
fsubrp st(1)
fabs
fcomp qword [0x4cae30]
fnstsw ax
test ah, 0x41
jne 0x4596ef
mov eax, dword [esp + 0xa8]
mov al, byte [ebx + eax - 1]
cmp al, 0x72
je 0x457c0a
mov ecx, dword [esp + 0x144]
cmp byte [ecx], 0x72
je 0x457c02
mov eax, dword [esp + 0x34]
fld qword [edi - 8]
mov ecx, dword [eax + ebx*4 - 4]
xor edx, edx
cmp dword [esp + 0x78], edx
lea eax, [esp + 0x1a4]
setne dl
sub esp, 8
fstp qword [esp]
push eax
lea edx, [edx + edx - 1]
mov dword [esp + 0x68], edx
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x1c4]
push ecx
call fcn.004674b0
fild dword [esp + 0x70]
mov edx, dword [eax]
add esp, 4
fmul qword [esp + 0xe4]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
fst qword [esp + 0x8c]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
sub esp, 8
lea ecx, [esp + 0x1ec]
fstp qword [esp]
push ecx
call fcn.00466540
fld qword [edi - 8]
mov edx, dword [esp + 0x50]
fstp qword [esp + 0x14]
mov ecx, dword [edx + ebx*4 - 4]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx]
mov eax, dword [eax]
add esp, 0x14
lea edx, [esp + 0x1cc]
push edx
call eax
mov edx, dword [esp + 0x30]
mov edx, dword [edx]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x544]
push ecx
call fcn.004663c0
mov edx, dword [eax]
mov dword [esp + 0xa8], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0xac], ecx
mov edx, dword [eax + 8]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0xb0], edx
mov eax, dword [eax + 0xc]
mov dword [esp + 0xb4], eax
fld qword [edi]
mov ecx, dword [ecx + ebx*4 - 4]
fstp qword [esp + 0x1c]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
add esp, 0x1c
lea eax, [esp + 0x6dc]
push eax
call edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x704]
push ecx
call fcn.004674b0
fld qword [esp + 0x90]
mov edx, dword [eax]
add esp, 4
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
sub esp, 8
lea ecx, [esp + 0x25c]
fstp qword [esp]
push ecx
call fcn.00466540
fld qword [edi]
mov edx, dword [esp + 0x50]
fstp qword [esp + 0x14]
mov ecx, dword [edx + ebx*4 - 4]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx]
mov eax, dword [eax]
add esp, 0x14
lea edx, [esp + 0x4ac]
push edx
call eax
mov edx, dword [esp + 0x30]
mov edx, dword [edx]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x284]
push ecx
call fcn.004663c0
mov edx, dword [eax]
mov dword [esp + 0x60], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x64], ecx
mov edx, dword [eax + 8]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x68], edx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x6c], eax
fld qword [edi]
mov ecx, dword [ecx + ebx*4]
fstp qword [esp + 0x1c]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
add esp, 0x1c
lea eax, [esp + 0x66c]
push eax
call edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x294]
push ecx
call fcn.004674b0
fld qword [esp + 0x90]
mov edx, dword [eax]
add esp, 4
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
sub esp, 8
lea ecx, [esp + 0x4dc]
fstp qword [esp]
push ecx
call fcn.00466540
fld qword [edi]
mov edx, dword [esp + 0x50]
fstp qword [esp + 0x14]
mov ecx, dword [edx + ebx*4]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx]
mov eax, dword [eax]
add esp, 0x14
lea edx, [esp + 0x2ac]
push edx
call eax
mov edx, dword [esp + 0x30]
mov edx, dword [edx]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 0xc]
sub esp, 0x10
mov dword [ecx + 0xc], edx
mov ecx, esp
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x604]
push ecx
call fcn.004663c0
mov edx, dword [eax]
mov dword [esp + 0x88], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [eax + 8]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x90], edx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x94], eax
fld qword [edi + 8]
mov ecx, dword [ecx + ebx*4]
fstp qword [esp + 0x1c]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
add esp, 0x1c
lea eax, [esp + 0x2cc]
push eax
call edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x4f4]
push ecx
call fcn.004674b0
fld qword [esp + 0x90]
mov edx, dword [eax]
add esp, 4
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
sub esp, 8
lea ecx, [esp + 0x2fc]
fstp qword [esp]
push ecx
call fcn.00466540
fld qword [edi + 8]
mov edx, dword [esp + 0x50]
fstp qword [esp + 0x14]
mov ecx, dword [edx + ebx*4]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx]
mov eax, dword [eax]
add esp, 0x14
lea edx, [esp + 0x6ec]
push edx
call eax
mov edx, dword [esp + 0x30]
mov edx, dword [edx]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x324]
push ecx
call fcn.004663c0
mov edx, dword [eax]
mov dword [esp + 0x188], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x18c], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x190], edx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x194], ecx
add esp, 0x24
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0x1f8]
push ecx
lea edx, [esp + 0x20c]
push edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x84]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x80]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x98]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x9c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x6c]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x84]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xc0]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xc4]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xd8]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xdc]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.0040e420
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
add esp, 0x3c
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xac]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xb0]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x524]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x334]
push ecx
call fcn.004674b0
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
add esp, 4
mov dword [esp + 0x40], eax
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x54]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x5c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x60]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x74]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 8], edx
lea edx, [esp + 0x624]
push edx
mov dword [eax + 0xc], ecx
call fcn.00466480
mov edx, dword [esp + 0x54]
mov edx, dword [edx]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.004666f0
fst qword [esp + 0x9c]
mov edx, dword [esi + 0x14]
mov ecx, dword [esp + 0x58]
fsubr qword [edx + ecx*8]
lea eax, [edx + ecx*8]
fstp qword [eax]
mov eax, dword [esi + 0x10]
mov eax, dword [eax + ecx*4 - 4]
mov edx, dword [eax]
mov edx, dword [edx + 0x30]
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 0x14]
fld qword [eax + ecx*8]
mov ecx, dword [esp + 0x7c]
add esp, 0x18
fstp qword [esp]
call edx
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + eax*4 - 4]
mov edx, dword [ecx]
mov edx, dword [edx]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esi + 0x14]
fld qword [ecx + eax*8]
mov ecx, dword [esp + 0x5c]
sub esp, 8
lea eax, [esp + 0x34c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x48], edx
call fcn.00466230
fld qword [eax]
mov ecx, dword [esi + 0x34]
mov edx, dword [esp + 0x38]
fstp qword [ecx + edx*8]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x80]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x174]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x178]
sub esp, 0x10
mov eax, esp
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
lea eax, [esp + 0x244]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x374]
push ecx
call fcn.004674b0
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
add esp, 4
mov dword [esp + 0x40], eax
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x7c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x5c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x60]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x74]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 8], edx
lea edx, [esp + 0x6a4]
push edx
mov dword [eax + 0xc], ecx
call fcn.00466480
mov edx, dword [esp + 0x54]
mov edx, dword [edx]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.004666f0
fst qword [esp + 0x7c]
fadd qword [edi]
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x34]
fst qword [edi]
add esp, 0x18
fstp qword [esp]
call eax
mov ecx, dword [esp + 0x34]
fld qword [edi]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
mov edx, dword [edx]
sub esp, 8
lea eax, [esp + 0x38c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x68], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x6c], ecx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x64]
mov dword [esp + 0x70], edx
call fcn.00466230
fld qword [eax]
mov eax, dword [esp + 0x94]
fstp qword [edi + eax]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x564]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x78]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x90]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x3c4]
jmp 0x45947b
cmp al, 0x72
jne 0x458be1
mov ecx, dword [esp + 0x144]
cmp byte [ecx], 0x72
jne 0x458356
lea ecx, [esp + 0xe4]
call fcn.004661f0
lea ecx, [esp + 0x114]
call fcn.004661f0
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x38]
mov ecx, dword [edx + eax*4 - 4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
call eax
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
neg eax
sbb eax, eax
and eax, 2
dec eax
mov dword [esp + 0x30], eax
mov eax, dword [edx + 0x24]
call eax
neg eax
sbb eax, eax
and eax, 2
dec eax
cmp dword [esp + 0x78], 0
mov dword [esp + 0x5c], eax
je 0x457c81
mov ecx, dword [esp + 0x30]
neg ecx
neg eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x5c], eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x38]
mov ecx, dword [ecx + edx*4 - 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
lea edx, [esp + 0x624]
push edx
call eax
mov ecx, dword [eax]
mov dword [esp + 0xe4], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xe8], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0xec], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + ebx*4]
mov dword [esp + 0xf0], edx
mov edx, dword [ecx]
mov edx, dword [edx + 0x20]
lea eax, [esp + 0x3c4]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x114], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x118], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x11c], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x120], edx
mov ecx, dword [eax + ecx*4 - 4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
fild dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + ebx*4]
fmul qword [esp + 0xd4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
faddp st(1)
fstp qword [esp + 0x7c]
call eax
fild dword [esp + 0x5c]
push 0
lea ecx, [esp + 0xb0]
push ecx
fmul qword [esp + 0xdc]
mov ecx, dword [esp + 0x11c]
lea edx, [esp + 0x54]
push edx
mov edx, dword [esp + 0x124]
faddp st(1)
sub esp, 0x20
mov eax, esp
fstp qword [esp + 0x18]
sub esp, 0x10
fld qword [esp + 0xb8]
fstp qword [esp + 0x20]
mov dword [eax], ecx
mov ecx, dword [esp + 0x158]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x15c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x120]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x124]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x128]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x12c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.0040f0e0
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + ebx*4]
mov edx, dword [ecx]
fld qword [edi]
mov edx, dword [edx]
add esp, 0x34
lea eax, [esp + 0x56c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x48], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xc0]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0xbc]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xd4]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xd8]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x404]
push eax
call fcn.00466480
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x80], eax
add esp, 0x14
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x60]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x78]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x6e4]
push eax
call fcn.00466480
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx]
add esp, 0x14
mov dword [esp + 0x40], eax
mov eax, esp
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
call fcn.00466a60
fstp qword [esp + 0x8c]
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
mov eax, esp
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
call fcn.00466a60
fcomp qword [esp + 0x8c]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x457f28
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xe8]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xfc]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x100]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x424]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
fstp qword [esp + 0xd4]
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0xf8]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xfc]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x100]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x60]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x78]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x5a4]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
fstp qword [esp + 0xac]
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x48]
mov ecx, dword [ecx + edx*4 - 4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
add esp, 0x10
call edx
fld qword [esp + 0xc4]
fsub qword [esp + 0x9c]
fabs
fmulp st(1)
fst qword [esp + 0x7c]
mov ecx, dword [esp + 0x38]
mov eax, dword [esi + 0x14]
fsubr qword [eax + ecx*8]
lea eax, [eax + ecx*8]
sub esp, 8
fstp qword [eax]
mov edx, dword [esi + 0x10]
mov eax, dword [edx + ecx*4 - 4]
mov edx, dword [esi + 0x14]
fld qword [edx + ecx*8]
mov dword [esp + 0x64], eax
mov eax, dword [eax]
fstp qword [esp]
mov ecx, dword [esp + 0x64]
mov eax, dword [eax + 0x30]
call eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + eax*4 - 4]
mov edx, dword [ecx]
mov edx, dword [edx]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esi + 0x14]
fld qword [ecx + eax*8]
mov ecx, dword [esp + 0x5c]
sub esp, 8
lea eax, [esp + 0x42c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x48], edx
call fcn.00466230
fld qword [eax]
mov ecx, dword [esi + 0x34]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
fstp qword [ecx + edx*8]
mov ecx, dword [eax + ebx*4]
fld qword [edi]
mov edx, dword [ecx]
mov edx, dword [edx]
sub esp, 8
lea eax, [esp + 0x64c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x68], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x6c], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x114]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x128]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x12c]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x130]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x464]
push ecx
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
fstp qword [esp + 0xd4]
mov ecx, dword [esp + 0x124]
mov edx, dword [esp + 0x128]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x12c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x130]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x60]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x78]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x5c4]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
fstp qword [esp + 0xac]
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
add esp, 0x10
call eax
fld qword [esp + 0xc4]
fsub qword [esp + 0x9c]
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x34]
fabs
fmulp st(1)
sub esp, 8
fst qword [esp + 0x64]
fadd qword [edi]
fst qword [edi]
fstp qword [esp]
call eax
mov ecx, dword [esp + 0x34]
fld qword [edi]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
mov edx, dword [edx]
sub esp, 8
lea eax, [esp + 0x46c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x68], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x6c], ecx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x64]
mov dword [esp + 0x70], edx
call fcn.00466230
fld qword [eax]
mov eax, dword [esp + 0x94]
fstp qword [edi + eax]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x6c4]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x78]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x90]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x4a4]
jmp 0x45947b
cmp al, 0x72
jne 0x458be1
lea ecx, [esp + 0xf4]
call fcn.004661f0
lea ecx, [esp + 0x174]
call fcn.004661f0
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x38]
mov ecx, dword [ecx + edx*4 - 4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x24]
call edx
neg eax
sbb eax, eax
and eax, 2
dec eax
cmp dword [esp + 0x78], 0
mov dword [esp + 0x5c], eax
je 0x4583a1
neg eax
mov dword [esp + 0x5c], eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x38]
mov ecx, dword [ecx + edx*4 - 4]
xor eax, eax
cmp dword [esp + 0x78], eax
lea edx, [esp + 0x5c4]
setne al
push edx
lea eax, [eax + eax - 1]
mov dword [esp + 0x34], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
mov ecx, dword [eax]
mov dword [esp + 0xf4], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xf8], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0xfc], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x100], edx
mov ecx, dword [eax + ecx*4 - 4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
fild dword [esp + 0x5c]
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + ebx*4]
fmul qword [esp + 0xd4]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
sub esp, 8
faddp st(1)
lea eax, [esp + 0x23c]
fstp qword [esp + 0x84]
fld qword [edi]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x174], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x178], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x17c], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x180], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x264]
push ecx
call fcn.004674b0
fild dword [esp + 0x44]
mov edx, dword [eax]
add esp, 4
fmul qword [esp + 0xe4]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
sub esp, 8
lea ecx, [esp + 0x28c]
fstp qword [esp]
push ecx
call fcn.00466540
mov edx, dword [esp + 0x50]
mov dword [esp + 0x4c], eax
mov ecx, dword [edx + ebx*4]
fld qword [edi]
mov eax, dword [ecx]
fstp qword [esp + 0x14]
mov eax, dword [eax]
add esp, 0x14
lea edx, [esp + 0x29c]
push edx
call eax
mov edx, dword [esp + 0x30]
mov edx, dword [edx]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x2d4]
push ecx
call fcn.004663c0
fld qword [esp + 0xa0]
mov edx, dword [eax]
mov dword [esp + 0x88], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x90], edx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x94], ecx
add esp, 0x24
lea edx, [esp + 0xac]
push edx
mov edx, dword [esp + 0x178]
lea ecx, [esp + 0x50]
push ecx
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x190]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x194]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x198]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x120]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x11c]
sub esp, 0x18
mov eax, esp
fstp qword [esp + 0x10]
mov dword [eax], ecx
mov ecx, dword [esp + 0x13c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x140]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.0040ede0
mov eax, dword [esp + 0x78]
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + eax*4 - 4]
mov edx, dword [ecx]
mov edx, dword [edx]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esi + 0x14]
fld qword [ecx + eax*8]
mov ecx, dword [esp + 0x9c]
add esp, 0x38
lea eax, [esp + 0x2dc]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x48], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xc0]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0xbc]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xd4]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xd8]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x314]
push eax
call fcn.00466480
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x80], eax
add esp, 0x14
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x60]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x78]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x334]
push eax
call fcn.00466480
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx]
add esp, 0x14
mov dword [esp + 0x40], eax
mov eax, esp
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
call fcn.00466a60
fstp qword [esp + 0x8c]
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
mov eax, esp
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
call fcn.00466a60
fcomp qword [esp + 0x8c]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x458774
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0xf8]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x10c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x110]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x354]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
fstp qword [esp + 0x8c]
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x108]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x10c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x110]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x60]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x78]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x374]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
fstp qword [esp + 0xd4]
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x48]
mov ecx, dword [ecx + edx*4 - 4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
add esp, 0x10
call edx
fld qword [esp + 0x7c]
fsub qword [esp + 0xc4]
fabs
fmulp st(1)
fst qword [esp + 0x7c]
mov ecx, dword [esp + 0x38]
mov eax, dword [esi + 0x14]
fsubr qword [eax + ecx*8]
lea eax, [eax + ecx*8]
sub esp, 8
fstp qword [eax]
mov edx, dword [esi + 0x10]
mov eax, dword [edx + ecx*4 - 4]
mov edx, dword [esi + 0x14]
fld qword [edx + ecx*8]
mov dword [esp + 0x64], eax
mov eax, dword [eax]
fstp qword [esp]
mov ecx, dword [esp + 0x64]
mov eax, dword [eax + 0x30]
call eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + eax*4 - 4]
mov edx, dword [ecx]
mov edx, dword [edx]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esi + 0x14]
fld qword [ecx + eax*8]
mov ecx, dword [esp + 0x5c]
sub esp, 8
lea eax, [esp + 0x37c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x48], edx
call fcn.00466230
fld qword [eax]
mov ecx, dword [esi + 0x34]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
fstp qword [ecx + edx*8]
mov ecx, dword [eax + ebx*4]
fld qword [edi]
mov edx, dword [ecx]
mov edx, dword [edx]
sub esp, 8
lea eax, [esp + 0x39c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x68], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x6c], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x70], edx
fld qword [edi + 8]
mov ecx, dword [eax + ebx*4]
mov edx, dword [ecx]
mov edx, dword [edx]
sub esp, 8
lea eax, [esp + 0x3bc]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x164], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x168], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x16c], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x170], edx
sub esp, 0x10
mov edx, dword [esp + 0x74]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x78]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x7c]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x80]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x3f4]
push ecx
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x404]
push ecx
call fcn.004674b0
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
add esp, 4
mov dword [esp + 0x40], eax
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x7c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x5c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x60]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x74]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 8], edx
lea edx, [esp + 0x434]
push edx
mov dword [eax + 0xc], ecx
call fcn.00466480
mov edx, dword [esp + 0x54]
mov edx, dword [edx]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
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
call fcn.004666f0
fst qword [esp + 0x7c]
fadd qword [edi]
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x34]
fst qword [edi]
add esp, 0x18
fstp qword [esp]
call eax
mov ecx, dword [esp + 0x34]
fld qword [edi]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
mov edx, dword [edx]
sub esp, 8
lea eax, [esp + 0x43c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x68], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x6c], ecx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x64]
mov dword [esp + 0x70], edx
call fcn.00466230
fld qword [eax]
mov eax, dword [esp + 0x94]
fstp qword [edi + eax]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x474]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
sub esp, 0x10
mov dword [eax + 0xc], edx
mov eax, esp
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov dword [eax], ecx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x90]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x494]
jmp 0x45947b
lea ecx, [esp + 0x104]
call fcn.004661f0
lea ecx, [esp + 0x134]
call fcn.004661f0
mov edx, dword [esp + 0x34]
xor ecx, ecx
cmp dword [esp + 0x78], ecx
setne cl
lea ecx, [ecx + ecx - 1]
mov dword [esp + 0x30], ecx
mov ecx, dword [edx + ebx*4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x24]
call edx
neg eax
sbb eax, eax
and eax, 2
dec eax
cmp dword [esp + 0x78], 0
mov dword [esp + 0x5c], eax
je 0x458c31
neg eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + ebx*4]
mov edx, dword [ecx]
mov edx, dword [edx + 0x20]
lea eax, [esp + 0x494]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x104], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x108], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x10c], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + ebx*4]
mov dword [esp + 0x110], edx
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
fild dword [esp + 0x5c]
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x10]
fmul qword [esp + 0xd4]
mov ecx, dword [ecx + eax*4 - 4]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
faddp st(1)
mov dword [esp + 0x5c], ecx
mov ecx, dword [esi + 0x14]
sub esp, 8
fstp qword [esp + 0x84]
fld qword [ecx + eax*8]
mov ecx, dword [esp + 0x64]
lea eax, [esp + 0x4bc]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x134], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x138], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x13c], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x140], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x4e4]
push ecx
call fcn.004674b0
fild dword [esp + 0x44]
mov edx, dword [eax]
add esp, 4
fmul qword [esp + 0xe4]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
sub esp, 8
lea ecx, [esp + 0x50c]
fstp qword [esp]
push ecx
call fcn.00466540
mov edx, dword [esi + 0x10]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + eax*4 - 4]
mov dword [esp + 0x78], ecx
mov edx, dword [ecx]
mov ecx, dword [esi + 0x14]
fld qword [ecx + eax*8]
mov ecx, dword [esp + 0x78]
mov edx, dword [edx]
fstp qword [esp + 0x14]
add esp, 0x14
lea eax, [esp + 0x51c]
push eax
call edx
mov edx, dword [esp + 0x30]
mov edx, dword [edx]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x554]
push ecx
call fcn.004663c0
fld qword [esp + 0xa0]
mov edx, dword [eax]
mov dword [esp + 0x60], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x64], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x68], edx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x6c], ecx
add esp, 0x24
lea edx, [esp + 0xac]
push edx
mov edx, dword [esp + 0x138]
lea ecx, [esp + 0x50]
push ecx
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x150]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x154]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x158]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x130]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x12c]
sub esp, 0x18
mov eax, esp
fstp qword [esp + 0x10]
mov dword [eax], ecx
mov ecx, dword [esp + 0x14c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x150]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.0040ede0
mov eax, dword [esp + 0x78]
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + eax*4 - 4]
mov edx, dword [ecx]
mov edx, dword [edx]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esi + 0x14]
fld qword [ecx + eax*8]
mov ecx, dword [esp + 0x9c]
add esp, 0x38
lea eax, [esp + 0x55c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x48], edx
mov ecx, dword [ecx + eax*4 - 4]
mov edx, dword [ecx]
mov edx, dword [edx]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esi + 0x14]
fld qword [ecx + eax*8 - 8]
mov ecx, dword [esp + 0x5c]
sub esp, 8
lea eax, [esp + 0x57c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x84], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x88], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x8c], ecx
mov edx, dword [eax + 0xc]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x40]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xbc]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xc0]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xd4]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xd8]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x5b4]
push eax
call fcn.00466480
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
add esp, 0x14
mov dword [esp + 0x6c], eax
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
sub esp, 0x10
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x78]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x5d4]
push eax
call fcn.00466480
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx]
add esp, 0x14
mov dword [esp + 0x40], eax
mov eax, esp
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
call fcn.00466a60
fstp qword [esp + 0x8c]
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
mov eax, esp
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
call fcn.00466a60
fcomp qword [esp + 0x8c]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x459056
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x94]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x98]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xac]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xb0]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x5f4]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x604]
push ecx
call fcn.004674b0
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
add esp, 4
mov dword [esp + 0x40], eax
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x54]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x5c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x60]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x74]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 8], edx
lea edx, [esp + 0x634]
push edx
mov dword [eax + 0xc], ecx
call fcn.00466480
mov edx, dword [esp + 0x54]
mov edx, dword [edx]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.004666f0
fst qword [esp + 0x9c]
mov edx, dword [esi + 0x14]
mov ecx, dword [esp + 0x58]
fsubr qword [edx + ecx*8]
lea eax, [edx + ecx*8]
add esp, 0x18
fstp qword [eax]
mov eax, dword [esi + 0x10]
mov eax, dword [eax + ecx*4 - 4]
mov edx, dword [eax]
mov edx, dword [edx + 0x30]
mov dword [esp + 0x64], eax
mov eax, dword [esi + 0x14]
fld qword [eax + ecx*8]
mov ecx, dword [esp + 0x64]
fstp qword [esp]
call edx
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + eax*4 - 4]
mov edx, dword [ecx]
mov edx, dword [edx]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esi + 0x14]
fld qword [ecx + eax*8]
mov ecx, dword [esp + 0x5c]
sub esp, 8
lea eax, [esp + 0x63c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x48], edx
call fcn.00466230
fld qword [eax]
mov ecx, dword [esi + 0x34]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
fstp qword [ecx + edx*8]
mov ecx, dword [eax + ebx*4]
fld qword [edi]
mov edx, dword [ecx]
mov edx, dword [edx]
sub esp, 8
lea eax, [esp + 0x65c]
fstp qword [esp]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x68], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x6c], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x104]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x118]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x11c]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x120]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x694]
push ecx
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
fstp qword [esp + 0xd4]
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x118]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x11c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x120]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x60]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x78]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x6b4]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
fstp qword [esp + 0xac]
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
add esp, 0x10
call eax
fld qword [esp + 0xc4]
fsub qword [esp + 0x9c]
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x34]
fabs
fmulp st(1)
sub esp, 8
fst qword [esp + 0x64]
fadd qword [edi]
fst qword [edi]
fstp qword [esp]
call eax
mov ecx, dword [esp + 0x34]
fld qword [edi]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
sub esp, 8
fstp qword [esp]
mov edx, dword [edx]
lea eax, [esp + 0x6bc]
push eax
call edx
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x68], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x6c], ecx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x64]
mov dword [esp + 0x70], edx
call fcn.00466230
fld qword [eax]
mov eax, dword [esp + 0x94]
fstp qword [edi + eax]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x234]
push eax
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x78]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x90]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x204]
push eax
fstp qword [esp + 0xc0]
call fcn.00466480
mov edx, dword [eax]
add esp, 0x14
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.00466df0
fst qword [esp + 0xd4]
add esp, 0x10
cmp dword [esp + 0x78], 0
je 0x4594d3
fldz
fucomp st(1)
fnstsw ax
test ah, 0x44
jp 0x4594d3
fstp st(0)
fld qword [0x4c79a8]
fst qword [esp + 0xc4]
fsub qword [esp + 0x9c]
mov edx, dword [esi + 0x14]
mov ecx, dword [esp + 0x38]
lea eax, [edx + ecx*8]
mov edx, dword [esp + 0x94]
fabs
fmul qword [esp + 0xd4]
push 0x48
fld qword [esp + 0x80]
fsubr st(1)
fsub qword [esp + 0x60]
fstp qword [esp + 0x80]
fadd qword [eax]
fstp qword [eax + 8]
mov eax, dword [esi + 0x34]
fld qword [edi + edx]
fstp qword [eax + ecx*8 + 8]
mov eax, dword [esi + 0xc]
mov byte [ecx + eax], 0x72
call fcn.0047af44
add esp, 4
mov dword [esp + 0x5c], eax
mov dword [esp + 0x740], 5
test eax, eax
je 0x4595b0
mov ecx, dword [esi + 0x14]
mov edx, dword [esp + 0x38]
fld qword [ecx + edx*8 + 8]
lea ecx, [ecx + edx*8]
mov edx, dword [esp + 0x78]
push edx
sub esp, 0x30
fstp qword [esp + 0x28]
mov edx, esp
fld qword [ecx]
mov ecx, dword [esp + 0x80]
fstp qword [esp + 0x20]
sub esp, 8
fld qword [esp + 0x100]
fstp qword [esp + 0x20]
fld qword [esp + 0xd8]
fstp qword [esp + 0x18]
mov dword [edx], ecx
mov ecx, dword [esp + 0x8c]
fld qword [esp + 0x110]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x90]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x94]
mov dword [edx + 0xc], ecx
fstp qword [esp]
mov ecx, eax
call fcn.00454a50
jmp 0x4595b2
xor eax, eax
mov ecx, dword [esp + 0x38]
fld qword [esp + 0x7c]
mov edx, dword [esi + 0x10]
inc dword [esp + 0x38]
cmp dword [esp + 0xcc], 4
mov dword [edx + ecx*4], eax
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0x144]
mov dword [esp + 0x740], 0xffffffff
lea ecx, [edx + eax]
jl 0x4596a9
mov edx, dword [esp + 0x34]
lea eax, [edx + ebx*4 + 8]
mov edx, dword [esp + 0xc0]
sub edx, ecx
sub edx, 3
shr edx, 2
inc edx
lea ecx, [ecx + edx*4]
mov dword [esp + 0x30], eax
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x30]
lea eax, [edi + 0x18]
mov dword [esp + 0x5c], edx
fld st(0)
mov edx, dword [ecx - 8]
fadd qword [eax - 0x10]
add eax, 0x20
add ecx, 0x10
sub dword [esp + 0x5c], 1
fstp qword [eax - 0x30]
fld st(0)
fadd qword [edx + 8]
fstp qword [edx + 8]
mov edx, dword [ecx - 0x18]
fld st(0)
fadd qword [edx + 0x10]
fstp qword [edx + 0x10]
mov edx, dword [ecx - 0x14]
fld qword [eax - 0x28]
fadd st(1)
fstp qword [eax - 0x28]
fld qword [edx + 8]
fadd st(1)
fstp qword [edx + 8]
mov edx, dword [ecx - 0x14]
fld qword [edx + 0x10]
fadd st(1)
fstp qword [edx + 0x10]
mov edx, dword [ecx - 0x10]
fld qword [eax - 0x20]
fadd st(1)
fstp qword [eax - 0x20]
fld qword [edx + 8]
fadd st(1)
fstp qword [edx + 8]
mov edx, dword [ecx - 0x10]
fld qword [edx + 0x10]
fadd st(1)
fstp qword [edx + 0x10]
mov edx, dword [ecx - 0xc]
fld qword [eax - 0x18]
fadd st(1)
fstp qword [eax - 0x18]
fld qword [edx + 8]
fadd st(1)
fstp qword [edx + 8]
mov edx, dword [ecx - 0xc]
fld qword [edx + 0x10]
fadd st(1)
fstp qword [edx + 0x10]
jne 0x45961c
mov ecx, dword [esp + 0x78]
cmp ecx, dword [esp + 0xc0]
jg 0x4596ed
mov edx, dword [esp + 0x34]
lea eax, [edx + ecx*4 - 4]
mov edx, dword [esp + 0x98]
fld qword [edx + ecx*8]
inc ecx
fadd st(1)
add eax, 4
cmp ecx, dword [esp + 0xc0]
fstp qword [edx + ecx*8 - 8]
mov edx, dword [eax - 4]
fld qword [edx + 8]
fadd st(1)
fstp qword [edx + 8]
mov edx, dword [eax - 4]
fld qword [edx + 0x10]
fadd st(1)
fstp qword [edx + 0x10]
jle 0x4596ba
fstp st(0)
mov eax, dword [esp + 0x38]
fld qword [edi + 8]
mov ecx, dword [esi + 0x14]
fstp qword [ecx + eax*8 + 8]
mov edx, dword [esi + 0x34]
mov ecx, dword [esp + 0x94]
fld qword [edi + ecx + 8]
mov ecx, dword [esp + 0x144]
fstp qword [edx + eax*8 + 8]
mov cl, byte [ecx]
mov edx, dword [esi + 0xc]
mov byte [eax + edx], cl
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [esi + 0x10]
mov dword [edx + eax*4], ecx
mov ecx, 1
sub dword [esp + 0xcc], ecx
add dword [esp + 0x144], ecx
add eax, ecx
add ebx, ecx
add edi, 8
cmp ebx, dword [esp + 0xc0]
mov dword [esp + 0x38], eax
jl 0x457170
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
mov byte [edx + eax], 0
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 8]
fld qword [eax + ecx*8]
mov edx, dword [esp + 0xa8]
fsub qword [eax]
push edx
fstp qword [esi + 0x98]
call fcn.0047af7e
mov eax, dword [esp + 0x38]
push eax
call fcn.0047af7e
mov ecx, dword [esp + 0xa0]
push ecx
call fcn.0047af7e
mov edx, dword [esp + 0xb0]
push edx
call fcn.0047af7e
fldz
xor ebx, ebx
fstp qword [esi + 0xa0]
add esp, 0x10
cmp dword [esi + 8], ebx
jle 0x4599df
jmp 0x4597c0
mov eax, dword [esi + 0xc]
cmp byte [ebx + eax], 0x72
jne 0x4598d6
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
call eax
test eax, eax
jne 0x4598d6
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov ecx, dword [ecx + ebx*4]
fld qword [eax + ebx*8 + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
sub esp, 8
lea eax, [esp + 0x1ec]
fstp qword [esp]
push eax
call edx
mov ecx, eax
call fcn.00466230
fld qword [eax]
mov eax, dword [esi + 0x10]
fstp qword [esp + 0x7c]
mov ecx, dword [eax + ebx*4]
mov eax, dword [esi + 0x14]
fld qword [eax + ebx*8]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
sub esp, 8
lea eax, [esp + 0x21c]
fstp qword [esp]
push eax
call edx
mov ecx, eax
call fcn.00466230
fld qword [esp + 0x7c]
fmul qword [eax]
fcomp qword [0x4c7800]
fnstsw ax
test ah, 5
jp 0x4598d6
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + ebx*4]
mov edx, dword [ecx]
mov edx, dword [edx + 0x20]
lea eax, [esp + 0x134]
push eax
call edx
mov eax, dword [esi + 0x10]
mov edi, dword [eax + ebx*4]
lea ecx, [esp + 0x134]
call fcn.00466240
mov edx, dword [edi]
mov dword [esp + 0xd0], eax
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
mov ecx, dword [esp + 0xd0]
fadd qword [ecx]
fcom qword [esi + 0xa0]
fnstsw ax
test ah, 0x41
jne 0x4599d3
lea ecx, [esp + 0x134]
fstp qword [esi + 0xa0]
mov dword [esi + 0xbc], ebx
call fcn.00466230
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + ebx*4]
mov edx, dword [ecx]
fld qword [eax]
mov eax, dword [edx + 0x14]
sub esp, 8
fstp qword [esp]
call eax
fstp qword [esi + 0x18]
jmp 0x4599d5
mov ecx, dword [esi + 0xc]
cmp byte [ebx + ecx], 0x67
jne 0x4599d5
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + ebx*4]
mov edx, dword [esi + 0x14]
fld qword [edx + ebx*8]
mov eax, dword [ecx]
mov eax, dword [eax]
sub esp, 8
lea edx, [esp + 0xdc]
fstp qword [esp]
push edx
call eax
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov ecx, dword [ecx + ebx*4]
fld qword [eax + ebx*8 + 8]
mov edx, dword [ecx]
mov edx, dword [edx]
sub esp, 8
lea eax, [esp + 0x14c]
fstp qword [esp]
push eax
call edx
lea ecx, [esp + 0x144]
call fcn.00466240
fld qword [eax]
lea ecx, [esp + 0xd4]
fstp qword [esp + 0x7c]
call fcn.00466240
fld qword [eax]
fcomp qword [esp + 0x7c]
fnstsw ax
test ah, 5
jp 0x459987
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0x14c]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe0], eax
lea ecx, [esp + 0xd4]
call fcn.00466240
fld qword [esi + 0xa0]
fcomp qword [eax]
fnstsw ax
test ah, 5
jp 0x4599d5
lea ecx, [esp + 0xd4]
call fcn.00466240
fld qword [eax]
lea ecx, [esp + 0xd4]
fstp qword [esi + 0xa0]
mov dword [esi + 0xbc], ebx
call fcn.00466230
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + ebx*4]
jmp 0x4598bf
fstp st(0)
inc ebx
cmp ebx, dword [esi + 8]
jl 0x4597c0
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc8], 0
cmp byte [ecx], 0x6b
mov edx, 1
jne 0x459a15
jmp 0x459a00
add dword [esi + 0xc8], edx
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0xc8]
cmp byte [eax + edi], 0x6b
je 0x459a00
mov eax, dword [esi + 8]
dec eax
mov dword [esi + 0xc4], eax
cmp byte [eax + ecx], 0x6b
jne 0x459a47
or eax, 0xffffffff
jmp 0x459a30
add dword [esi + 0xc4], eax
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 0xc4]
cmp byte [ecx + edi], 0x6b
je 0x459a30
jmp 0x459a4a
or eax, 0xffffffff
cmp dword [esi + 0x3c], eax
jne 0x459a59
mov ecx, esi
mov dword [esi + 0x3c], edx
call fcn.00452590
mov ecx, dword [esp + 0x738]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4