Function at 0x4583d0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
mov eax, 0x2764
call fcn.00466f60
mov esi, dword [ebp + 8]
mov edx, dword [0x4f6e34]
xor edx, esp
mov dword [esp + 0x2758], edx
push dword [esi + 0x98]
push esi
mov edx, dword [esi + 0x64]
mov ecx, dword [esi + 0x44]
mov edi, dword [esi + 0x48]
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x100], edx
call fcn.00456650
add esp, 8
cmp eax, 0xffffffff
je 0x45b497
cmp dword [esp + 0xec], 1
je 0x45843f
mov ecx, 2
mov edx, 1
test edi, edi
cmovge ecx, edx
jmp 0x458446
mov ecx, 1
xor edi, edi
cmp dword [esi + 0x70], 1
je 0x45b480
xor edx, edx
mov dword [esp + 0xd8], edx
mov eax, dword [esp + 0xd8]
xor ebx, ebx
or eax, edx
mov dword [esp + 0xc4], eax
lea eax, [esp + 0x1420]
and eax, 0xf
pxor xmm4, xmm4
mov dword [esp + 0xc0], eax
pxor xmm3, xmm3
mov eax, dword [esp + 0xf8]
pxor xmm1, xmm1
cmp ebx, dword [esi + 0x4c]
mov ebx, 2
movss xmm2, dword [0x4deba0]
pxor xmm0, xmm0
sbb ebx, 0
lea eax, [eax + eax*8]
mov dword [esp + 0xe4], ebx
xor ebx, ebx
shl eax, 4
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xdc], edx
mov dword [esp + 0x178], ecx
mov dword [esp + 0x194], edi
imul ecx, ebx, 0x68
mov dword [esp + 0xf4], ecx
lea edx, [esi + ecx]
mov dword [esp + 0x1b8], edx
lea edi, [esi + ecx + 0xa0]
mov dword [esp + 0xfc], edi
cmp dword [esi + 0x4c], 0
je 0x4586b2
lea edx, [esp + 0x2620]
mov dword [edx - 0x251c], edx
mov edx, dword [edx - 0x2468]
mov ecx, dword [edx + 0xac]
mov edi, dword [ecx*4 + 0x507c40]
mov dword [esp + 0x108], edi
shr edi, 0xf
and edi, 1
mov dword [edx + 0xec], edi
cmp dword [edx + 0xb0], 2
jne 0x458554
mov ecx, edx
xor edx, edx
mov eax, 1
cmp edx, dword [ecx + 0xb4]
adc eax, 0
jmp 0x458556
xor eax, eax
mov ecx, dword [esp + 0x108]
lea edx, [eax + eax*2]
shr ecx, 0xc
xor edi, edi
shl edx, 3
and ecx, 7
mov dword [esp + 0xf0], edi
mov dword [esp + 0x100], edi
mov dword [esp + 0xc8], eax
mov dword [esp + 0xe8], ebx
lea edx, [edx + ecx*4 + 0x4dd020]
mov esi, dword [esp + 0xf0]
mov edi, dword [esp + 0x108]
mov ecx, edi
and ecx, 7
shr edi, 3
test ecx, ecx
je 0x45861b
cmp byte [edx], 0
jbe 0x45860c
xor eax, eax
mov ebx, edx
mov dword [esp + 0x108], edi
mov dword [esp + 0x170], ecx
mov dword [esp + 0xf0], esi
mov esi, eax
mov edi, dword [esp + 0x104]
push dword [esp + 0x170]
push dword [ebp + 8]
call fcn.00456600
add esp, 8
inc esi
mov dword [edi], eax
add edi, 4
movzx ecx, byte [ebx]
cmp esi, ecx
jl 0x4585cf
mov dword [esp + 0x104], edi
mov edx, ebx
mov ecx, dword [esp + 0x170]
mov esi, dword [esp + 0xf0]
mov edi, dword [esp + 0x108]
movzx eax, byte [edx]
imul ecx, eax
add dword [esp + 0x100], ecx
jmp 0x458663
movzx ebx, byte [edx]
test ebx, ebx
jle 0x458663
cmp ebx, 0x18
jle 0x45a1de
lea eax, [ebx*4]
push eax
push 0
push dword [esp + 0x10c]
mov dword [esp + 0x118], edx
call fcn.00449a20
mov edx, dword [esp + 0x118]
add esp, 0xc
mov eax, dword [esp + 0x104]
lea ecx, [eax + ebx*4]
mov dword [esp + 0x104], ecx
inc esi
inc edx
cmp esi, 4
jl 0x45859c
mov eax, dword [esp + 0xc8]
lea ecx, [eax + eax + 1]
mov edi, dword [esp + 0x100]
mov ebx, dword [esp + 0xe8]
mov esi, dword [ebp + 8]
test ecx, ecx
jle 0x4586c4
cmp ecx, 0x18
jle 0x45a104
lea edx, [eax*8 + 4]
push edx
push 0
push dword [esp + 0x10c]
call fcn.00449a20
add esp, 0xc
jmp 0x4586c4
mov eax, esi
lea edx, [esp + 0x2620]
mov ecx, edi
call fcn.0045c280
mov edi, eax
mov edx, dword [esi + 0x55e0]
test edx, edx
je 0x4588ec
movdqu xmm0, xmmword [esp + 0x2620]
cvtdq2pd xmm1, xmm0
mov dword [edx + ebx*8 + 0x31a78], edi
imul edx, ebx, 0x270
punpckhqdq xmm0, xmm0
movdqu xmm3, xmmword [esp + 0x2630]
movdqu xmm6, xmmword [esp + 0x2640]
cvtdq2pd xmm2, xmm0
cvtdq2pd xmm4, xmm3
cvtdq2pd xmm7, xmm6
mov ecx, dword [esi + 0x55e0]
punpckhqdq xmm3, xmm3
cvtdq2pd xmm5, xmm3
movups xmmword [ecx + edx + 0x30518], xmm1
punpckhqdq xmm6, xmm6
mov ecx, dword [esi + 0x55e0]
cvtdq2pd xmm0, xmm6
movups xmmword [ecx + edx + 0x30528], xmm2
mov ecx, dword [esi + 0x55e0]
movdqu xmm1, xmmword [esp + 0x2650]
cvtdq2pd xmm2, xmm1
movups xmmword [ecx + edx + 0x30538], xmm4
punpckhqdq xmm1, xmm1
mov ecx, dword [esi + 0x55e0]
cvtdq2pd xmm3, xmm1
movups xmmword [ecx + edx + 0x30548], xmm5
mov ecx, dword [esi + 0x55e0]
movdqu xmm4, xmmword [esp + 0x2660]
cvtdq2pd xmm5, xmm4
movups xmmword [ecx + edx + 0x30558], xmm7
punpckhqdq xmm4, xmm4
mov ecx, dword [esi + 0x55e0]
cvtdq2pd xmm6, xmm4
movups xmmword [ecx + edx + 0x30568], xmm0
mov ecx, dword [esi + 0x55e0]
movdqu xmm0, xmmword [esp + 0x2670]
cvtdq2pd xmm7, xmm0
movups xmmword [ecx + edx + 0x30578], xmm2
punpckhqdq xmm0, xmm0
mov ecx, dword [esi + 0x55e0]
cvtdq2pd xmm0, xmm0
movups xmmword [ecx + edx + 0x30588], xmm3
mov ecx, dword [esi + 0x55e0]
movdqu xmm1, xmmword [esp + 0x2680]
cvtdq2pd xmm2, xmm1
movups xmmword [ecx + edx + 0x30598], xmm5
punpckhqdq xmm1, xmm1
mov ecx, dword [esi + 0x55e0]
cvtdq2pd xmm3, xmm1
movups xmmword [ecx + edx + 0x305a8], xmm6
pxor xmm1, xmm1
mov ecx, dword [esi + 0x55e0]
movdqu xmm4, xmmword [esp + 0x2690]
cvtdq2pd xmm5, xmm4
cvtsi2sd xmm1, dword [esp + 0x26b0]
movups xmmword [ecx + edx + 0x305b8], xmm7
punpckhqdq xmm4, xmm4
mov ecx, dword [esi + 0x55e0]
cvtdq2pd xmm6, xmm4
movups xmmword [ecx + edx + 0x305c8], xmm0
mov ecx, dword [esi + 0x55e0]
movdqu xmm0, xmmword [esp + 0x26a0]
cvtdq2pd xmm7, xmm0
movups xmmword [ecx + edx + 0x305d8], xmm2
punpckhqdq xmm0, xmm0
pxor xmm2, xmm2
mov ecx, dword [esi + 0x55e0]
cvtdq2pd xmm0, xmm0
cvtsi2sd xmm2, dword [esp + 0x26b4]
movups xmmword [ecx + edx + 0x305e8], xmm3
pxor xmm3, xmm3
mov ecx, dword [esi + 0x55e0]
cvtsi2sd xmm3, dword [esp + 0x26b8]
movups xmmword [ecx + edx + 0x305f8], xmm5
mov ecx, dword [esi + 0x55e0]
movups xmmword [ecx + edx + 0x30608], xmm6
mov ecx, dword [esi + 0x55e0]
movups xmmword [ecx + edx + 0x30618], xmm7
mov ecx, dword [esi + 0x55e0]
movups xmmword [ecx + edx + 0x30628], xmm0
mov ecx, dword [esi + 0x55e0]
movsd qword [ecx + edx + 0x30638], xmm1
mov ecx, dword [esi + 0x55e0]
movsd qword [ecx + edx + 0x30640], xmm2
mov ecx, dword [esi + 0x55e0]
movsd qword [ecx + edx + 0x30648], xmm3
mov edx, dword [esp + 0xfc]
mov eax, esi
mov dword [esp + 0xc], edx
lea ecx, [esp + 0x2620]
mov edx, dword [ecx - 0x2528]
mov dword [esp + 0x10], edx
lea edx, [esp + 0x1420]
mov dword [esp + 0x14], edi
call fcn.0045c480
test eax, eax
jne 0x45b45b
cmp dword [esp + 0xec], 2
je 0x45a4c6
mov edx, dword [esi + 0x55e0]
test edx, edx
je 0x4597a9
mov ecx, dword [esi + 0x4c]
mov edi, dword [esi + 0x58]
shl edi, 6
lea ecx, [ecx + ecx*2]
shl ecx, 6
add ecx, edi
mov edi, dword [esi + 0x60]
mov ecx, dword [ecx + edi*4 + 0x4db520]
mov dword [edx + 0x31ac0], ecx
mov edx, dword [esp + 0xf8]
mov ecx, dword [esi + 0x55e0]
mov edx, dword [edx*4 + 0x4db6e0]
mov dword [ecx + 0x31ac4], edx
mov ecx, dword [esi + 0x55e0]
mov edx, dword [esi + 0x80]
mov dword [ecx + 0x31abc], edx
mov ecx, dword [esi + 0x55e0]
mov edx, dword [esi + 0x5c]
mov dword [ecx + 0x31acc], edx
mov ecx, dword [esi + 0x55e0]
mov edx, dword [esi + 0x68]
mov dword [ecx + 0x31ad0], edx
mov ecx, dword [esi + 0x55e0]
mov edx, dword [esi + 0x44]
mov dword [ecx + 0x31aac], edx
cmp dword [esi + 0x70], 1
je 0x4589d0
mov edx, dword [esi + 0x55e0]
mov dword [edx + 0x31ab0], 0
jmp 0x4589e0
mov edx, dword [esi + 0x55e0]
mov dword [edx + 0x31ab0], 1
mov ecx, dword [esi + 0x55e0]
mov eax, esi
mov edx, dword [esp + 0xd8]
mov edi, dword [esp + 0xdc]
mov dword [ecx + 0x31ab4], edx
mov edx, dword [esi + 0x55e0]
mov dword [edx + 0x31ab8], edi
mov ecx, dword [esi + 0x55e0]
mov edx, dword [esi + 0x98]
mov edi, dword [esp + 0x1b8]
mov dword [ecx + 0x31ac8], edx
xor edx, edx
cmp ebx, 1
je 0x45a412
lea ecx, [ebx*8]
mov dword [esp + 0x168], ecx
mov ecx, dword [esi + 0x55e0]
lea eax, [ecx + ebx*8]
mov ecx, dword [edi + 0xa8]
mov dword [eax + edx*4 + 0x311b8], ecx
mov ecx, dword [esi + 0x55e0]
lea eax, [ecx + ebx*8]
mov ecx, dword [edi + 0xf0]
mov dword [eax + edx*4 + 0x31a28], ecx
mov ecx, dword [esi + 0x55e0]
lea eax, [ecx + ebx*8]
mov ecx, dword [edi + 0xb4]
mov dword [eax + edx*4 + 0x31a58], ecx
mov ecx, dword [esi + 0x55e0]
lea eax, [ecx + ebx*8]
mov ecx, dword [edi + 0xb0]
mov dword [eax + edx*4 + 0x31a48], ecx
mov ecx, dword [esi + 0x55e0]
lea eax, [ecx + ebx*8]
mov ecx, dword [edi + 0xa4]
mov dword [eax + edx*4 + 0x31a68], ecx
mov ecx, dword [esi + 0x55e0]
lea eax, [ecx + ebx*8]
mov ecx, dword [edi + 0xec]
mov dword [eax + edx*4 + 0x31a38], ecx
inc edx
add edi, 0xd0
cmp edx, dword [esp + 0x178]
jb 0x458a3a
mov ecx, dword [esp + 0x168]
imul edx, ebx, 0x270
xor edi, edi
imul eax, ebx, 0x160
movss xmm5, dword [0x4deba0]
pxor xmm4, xmm4
mov dword [esp + 0x148], edx
lea edx, [ebx + ebx*2]
mov dword [esp + 0x128], edx
xor edx, edx
mov dword [esp + 0x16c], edi
mov dword [esp + 0xe8], ebx
mov dword [esp + 0x164], edx
mov dword [esp + 0x14c], eax
mov dword [esp + 0x168], ecx
mov ebx, dword [esp + 0x148]
mov edi, dword [esp + 0x1b8]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x168]
movss xmm3, dword [0x4deba4]
mov eax, dword [eax + 0x55e0]
lea esi, [ecx + eax]
mov ecx, dword [esp + 0x16c]
cmp dword [esi + ecx*4 + 0x31a28], 0
je 0x458b66
movaps xmm3, xmm5
cmp dword [edx + edi + 0xb0], 2
jne 0x45937a
mov esi, dword [esp + 0x128]
pxor xmm2, xmm2
mov dword [esp + 0x150], edx
mov edx, dword [edx + edi + 0xb4]
shl edx, 3
lea ecx, [eax + esi*8]
mov esi, dword [esp + 0x16c]
neg edx
xorps xmm3, xmmword [0x4de720]
add edx, ebx
cvtss2sd xmm3, xmm3
add edx, eax
lea esi, [esi + esi*2]
mov dword [esp + 0x12c], eax
mov dword [esp + 0x134], esi
mov dword [esp + 0x130], ecx
mov esi, dword [ecx + esi*4 + 0x311c8]
lea ecx, [eax + ebx]
mov eax, dword [esp + 0x164]
add esi, esi
mov dword [esp + 0x13c], esi
mov dword [esp + 0x148], ebx
cvtsi2sd xmm2, esi
movsd xmm6, qword [edx + eax + 0x30518]
mulsd xmm6, xmm3
mov edx, dword [esp + 0x150]
subsd xmm6, xmm2
movsd qword [ecx + eax + 0x30518], xmm6
mov esi, dword [edx + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
mov edx, dword [esp + 0x12c]
add esi, edx
mov ebx, dword [esp + 0x150]
mov dword [esp + 0x138], ecx
movsd xmm7, qword [esi + eax + 0x30530]
mulsd xmm7, xmm3
subsd xmm7, xmm2
movsd qword [ecx + eax + 0x30530], xmm7
mov esi, dword [ebx + edi + 0xb4]
shl esi, 3
neg esi
mov ebx, dword [esp + 0x148]
add esi, ebx
add esi, edx
movsd xmm0, qword [esi + eax + 0x30548]
mulsd xmm0, xmm3
mov esi, dword [esp + 0x150]
subsd xmm0, xmm2
movsd qword [ecx + eax + 0x30548], xmm0
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm1, qword [esi + eax + 0x30560]
mulsd xmm1, xmm3
mov esi, dword [esp + 0x150]
subsd xmm1, xmm2
movsd qword [ecx + eax + 0x30560], xmm1
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm6, qword [esi + eax + 0x30578]
mulsd xmm6, xmm3
mov esi, dword [esp + 0x150]
subsd xmm6, xmm2
movsd qword [ecx + eax + 0x30578], xmm6
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm0, qword [esi + eax + 0x30590]
mulsd xmm0, xmm3
mov esi, dword [esp + 0x150]
subsd xmm0, xmm2
movsd qword [ecx + eax + 0x30590], xmm0
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm1, qword [esi + eax + 0x305a8]
mulsd xmm1, xmm3
mov esi, dword [esp + 0x150]
subsd xmm1, xmm2
movsd qword [ecx + eax + 0x305a8], xmm1
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm7, qword [esi + eax + 0x305c0]
mulsd xmm7, xmm3
mov esi, dword [esp + 0x150]
subsd xmm7, xmm2
movsd qword [ecx + eax + 0x305c0], xmm7
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm0, qword [esi + eax + 0x305d8]
mulsd xmm0, xmm3
mov esi, dword [esp + 0x150]
subsd xmm0, xmm2
movsd qword [ecx + eax + 0x305d8], xmm0
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm1, qword [esi + eax + 0x305f0]
mulsd xmm1, xmm3
mov esi, dword [esp + 0x150]
subsd xmm1, xmm2
movsd qword [ecx + eax + 0x305f0], xmm1
pxor xmm1, xmm1
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm6, qword [esi + eax + 0x30608]
mulsd xmm6, xmm3
mov esi, dword [esp + 0x150]
subsd xmm6, xmm2
movsd qword [ecx + eax + 0x30608], xmm6
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm0, qword [esi + eax + 0x30620]
mulsd xmm0, xmm3
mov esi, dword [esp + 0x13c]
subsd xmm0, xmm2
neg esi
pxor xmm2, xmm2
cvtsi2sd xmm2, esi
movsd qword [ecx + eax + 0x30620], xmm0
movsd qword [ecx + eax + 0x30638], xmm2
mov esi, dword [esp + 0x134]
mov ecx, dword [esp + 0x130]
mov esi, dword [ecx + esi*4 + 0x311cc]
mov ecx, dword [esp + 0x150]
add esi, esi
cvtsi2sd xmm1, esi
mov ecx, dword [ecx + edi + 0xb4]
shl ecx, 3
neg ecx
add ecx, ebx
add ecx, edx
mov dword [esp + 0x140], esi
mov esi, dword [esp + 0x150]
movsd xmm0, qword [ecx + eax + 0x30520]
mulsd xmm0, xmm3
mov ecx, dword [esp + 0x138]
subsd xmm0, xmm1
movsd qword [ecx + eax + 0x30520], xmm0
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm6, qword [esi + eax + 0x30538]
mulsd xmm6, xmm3
mov esi, dword [esp + 0x150]
subsd xmm6, xmm1
movsd qword [ecx + eax + 0x30538], xmm6
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm7, qword [esi + eax + 0x30550]
mulsd xmm7, xmm3
mov esi, dword [esp + 0x150]
subsd xmm7, xmm1
movsd qword [ecx + eax + 0x30550], xmm7
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm0, qword [esi + eax + 0x30568]
mulsd xmm0, xmm3
mov esi, dword [esp + 0x150]
subsd xmm0, xmm1
movsd qword [ecx + eax + 0x30568], xmm0
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm2, qword [esi + eax + 0x30580]
mulsd xmm2, xmm3
mov esi, dword [esp + 0x150]
subsd xmm2, xmm1
movsd qword [ecx + eax + 0x30580], xmm2
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm6, qword [esi + eax + 0x30598]
mulsd xmm6, xmm3
mov esi, dword [esp + 0x150]
subsd xmm6, xmm1
movsd qword [ecx + eax + 0x30598], xmm6
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm0, qword [esi + eax + 0x305b0]
mulsd xmm0, xmm3
mov esi, dword [esp + 0x150]
subsd xmm0, xmm1
movsd qword [ecx + eax + 0x305b0], xmm0
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm2, qword [esi + eax + 0x305c8]
mulsd xmm2, xmm3
mov esi, dword [esp + 0x150]
subsd xmm2, xmm1
movsd qword [ecx + eax + 0x305c8], xmm2
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm7, qword [esi + eax + 0x305e0]
mulsd xmm7, xmm3
mov esi, dword [esp + 0x150]
subsd xmm7, xmm1
movsd qword [ecx + eax + 0x305e0], xmm7
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm0, qword [esi + eax + 0x305f8]
mulsd xmm0, xmm3
mov esi, dword [esp + 0x150]
subsd xmm0, xmm1
movsd qword [ecx + eax + 0x305f8], xmm0
pxor xmm0, xmm0
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm2, qword [esi + eax + 0x30610]
mulsd xmm2, xmm3
mov esi, dword [esp + 0x150]
subsd xmm2, xmm1
movsd qword [ecx + eax + 0x30610], xmm2
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm6, qword [esi + eax + 0x30628]
mulsd xmm6, xmm3
mov esi, dword [esp + 0x140]
subsd xmm6, xmm1
neg esi
pxor xmm1, xmm1
cvtsi2sd xmm1, esi
movsd qword [ecx + eax + 0x30628], xmm6
movsd qword [ecx + eax + 0x30640], xmm1
mov ecx, dword [esp + 0x130]
mov esi, dword [esp + 0x134]
mov esi, dword [ecx + esi*4 + 0x311d0]
mov ecx, dword [esp + 0x150]
add esi, esi
cvtsi2sd xmm0, esi
mov ecx, dword [ecx + edi + 0xb4]
shl ecx, 3
neg ecx
add ecx, ebx
add ecx, edx
mov dword [esp + 0x144], esi
mov esi, dword [esp + 0x150]
movsd xmm2, qword [ecx + eax + 0x30528]
mulsd xmm2, xmm3
mov ecx, dword [esp + 0x138]
subsd xmm2, xmm0
movsd qword [ecx + eax + 0x30528], xmm2
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm6, qword [esi + eax + 0x30540]
mulsd xmm6, xmm3
mov esi, dword [esp + 0x150]
subsd xmm6, xmm0
movsd qword [ecx + eax + 0x30540], xmm6
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm7, qword [esi + eax + 0x30558]
mulsd xmm7, xmm3
mov esi, dword [esp + 0x150]
subsd xmm7, xmm0
movsd qword [ecx + eax + 0x30558], xmm7
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm1, qword [esi + eax + 0x30570]
mulsd xmm1, xmm3
mov esi, dword [esp + 0x150]
subsd xmm1, xmm0
movsd qword [ecx + eax + 0x30570], xmm1
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm2, qword [esi + eax + 0x30588]
mulsd xmm2, xmm3
mov esi, dword [esp + 0x150]
subsd xmm2, xmm0
movsd qword [ecx + eax + 0x30588], xmm2
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm6, qword [esi + eax + 0x305a0]
mulsd xmm6, xmm3
mov esi, dword [esp + 0x150]
subsd xmm6, xmm0
movsd qword [ecx + eax + 0x305a0], xmm6
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm1, qword [esi + eax + 0x305b8]
mulsd xmm1, xmm3
mov esi, dword [esp + 0x150]
subsd xmm1, xmm0
movsd qword [ecx + eax + 0x305b8], xmm1
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm2, qword [esi + eax + 0x305d0]
mulsd xmm2, xmm3
mov esi, dword [esp + 0x150]
subsd xmm2, xmm0
movsd qword [ecx + eax + 0x305d0], xmm2
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm7, qword [esi + eax + 0x305e8]
mulsd xmm7, xmm3
mov esi, dword [esp + 0x150]
subsd xmm7, xmm0
movsd qword [ecx + eax + 0x305e8], xmm7
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm1, qword [esi + eax + 0x30600]
mulsd xmm1, xmm3
mov esi, dword [esp + 0x150]
subsd xmm1, xmm0
movsd qword [ecx + eax + 0x30600], xmm1
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
movsd xmm2, qword [esi + eax + 0x30618]
mulsd xmm2, xmm3
mov esi, dword [esp + 0x150]
subsd xmm2, xmm0
movsd qword [ecx + eax + 0x30618], xmm2
mov esi, dword [esi + edi + 0xb4]
shl esi, 3
neg esi
add esi, ebx
add esi, edx
mov edx, dword [esp + 0x144]
neg edx
mulsd xmm3, qword [esi + eax + 0x30630]
subsd xmm3, xmm0
movsd qword [ecx + eax + 0x30630], xmm3
pxor xmm3, xmm3
cvtsi2sd xmm3, edx
movsd qword [ecx + eax + 0x30648], xmm3
mov edx, dword [esp + 0x150]
jmp 0x45948e
mov ecx, dword [edx + edi + 0xec]
mov dword [esp + 0x124], ecx
imul ecx, dword [esp + 0x16c], 0xb0
xorps xmm3, xmmword [0x4de720]
cvtss2sd xmm3, xmm3
mov esi, dword [esp + 0x14c]
mov dword [esp + 0x154], ecx
mov dword [esp + 0x120], 0
mov dword [esp + 0x148], ebx
add ecx, esi
mov dword [esp + 0x198], ecx
lea esi, [eax + ecx]
mov dword [esp + 0x11c], esi
mov esi, dword [esp + 0x164]
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x150], edx
mov edi, dword [ebp + 8]
add esi, ebx
mov ebx, dword [esp + 0x120]
add eax, esi
mov esi, dword [esp + 0x124]
movsd xmm0, qword [eax + ebx*8 + 0x30518]
movsd qword [ecx + ebx*8 + 0x30258], xmm0
test esi, esi
je 0x45943d
pxor xmm0, xmm0
cvtsi2sd xmm0, dword [ebx*4 + 0x4dd080]
mov edx, dword [edi + 0x55e0]
add edx, dword [esp + 0x198]
addsd xmm0, qword [edx + ebx*8 + 0x30258]
movsd qword [edx + ebx*8 + 0x30258], xmm0
movsd xmm0, qword [ecx + ebx*8 + 0x30258]
mulsd xmm0, xmm3
movsd qword [ecx + ebx*8 + 0x30258], xmm0
inc ebx
cmp ebx, 0x15
jb 0x4593fb
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x154]
mov edx, dword [esp + 0x150]
mov ecx, dword [eax + 0x55e0]
add ecx, dword [esp + 0x14c]
mov ebx, dword [esp + 0x148]
mov edi, dword [esp + 0x1b8]
movsd qword [ecx + esi + 0x30300], xmm4
mov eax, dword [esp + 0x16c]
add edx, 0xd0
inc eax
add dword [esp + 0x164], 0x138
mov dword [esp + 0x16c], eax
cmp eax, dword [esp + 0x178]
jb 0x458b37
mov ebx, dword [esp + 0xe8]
xor ecx, ecx
xor edi, edi
lea eax, [ebx + ebx*8]
shl eax, 0xa
xor edx, edx
mov dword [esp + 0x210], eax
xor esi, esi
lea ebx, [esp + edx + 0x1420]
mov dword [esp + 0x19c], esi
xor eax, eax
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x118], edx
mov dword [esp + 0x1a4], edi
mov dword [esp + 0x114], ecx
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x210]
mov edx, dword [esp + 0x19c]
mov edi, dword [ecx + 0x55e0]
mov dword [esp + 0x1a8], edx
mov dword [esp + 0x1ac], edi
lea ecx, [esi + edi]
add ecx, dword [esp + 0x1a4]
lea edx, [ecx + edx*8]
lea esi, [edx + 8]
and esi, 0xf
je 0x45956f
test esi, 7
jne 0x45a408
pxor xmm0, xmm0
mov esi, 1
cvtss2sd xmm0, dword [eax + ebx]
movsd qword [edx + 0x11b18], xmm0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x55e0]
mov dword [esp + 0x1ac], ecx
mov edx, esi
lea ecx, [ebx + eax]
neg edx
lea edi, [ecx + esi*4]
add edx, 2
and edx, 3
neg edx
add edx, 0x12
test edi, 0xf
je 0x45961d
mov dword [esp + 0x214], edx
mov dword [esp + 0x218], ecx
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b0], ebx
mov eax, dword [esp + 0x1ac]
mov edx, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a4]
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 0x218]
movups xmm0, xmmword [edi + esi*4]
cvtps2pd xmm1, xmm0
movhlps xmm0, xmm0
lea edi, [eax + esi*8]
mov eax, dword [esp + 0x210]
add edi, eax
cvtps2pd xmm2, xmm0
lea edi, [edi + edx*8]
movups xmmword [edi + ecx + 0x11b18], xmm1
mov edi, dword [ebx + 0x55e0]
lea edi, [edi + esi*8]
add esi, 4
add edi, eax
lea eax, [edi + edx*8]
movups xmmword [eax + ecx + 0x11b28], xmm2
cmp esi, dword [esp + 0x214]
jae 0x4596a6
mov eax, dword [ebx + 0x55e0]
jmp 0x4595c4
mov dword [esp + 0x214], edx
mov dword [esp + 0x218], ecx
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b0], ebx
mov eax, dword [esp + 0x1ac]
mov edx, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a4]
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 0x218]
movups xmm0, xmmword [edi + esi*4]
lea edi, [eax + esi*8]
cvtps2pd xmm1, xmm0
mov eax, dword [esp + 0x210]
add edi, eax
movhlps xmm0, xmm0
cvtps2pd xmm2, xmm0
lea edi, [edi + edx*8]
movups xmmword [edi + ecx + 0x11b18], xmm1
mov edi, dword [ebx + 0x55e0]
lea edi, [edi + esi*8]
add esi, 4
add edi, eax
lea eax, [edi + edx*8]
movups xmmword [eax + ecx + 0x11b28], xmm2
cmp esi, dword [esp + 0x214]
jae 0x4596a6
mov eax, dword [ebx + 0x55e0]
jmp 0x459651
mov edx, dword [esp + 0x214]
mov edi, dword [esp + 0x19c]
add edi, esi
sub esi, edx
sub edi, esi
mov ecx, dword [esp + 0x218]
mov eax, dword [esp + 0x1b4]
mov ebx, dword [esp + 0x1b0]
mov dword [esp + 0x19c], edi
cmp edx, 0x12
jae 0x459755
mov esi, dword [ebp + 8]
mov edi, dword [esi + 0x55e0]
mov dword [esp + 0x1ac], edi
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b0], ebx
mov ebx, dword [esp + 0x1a8]
mov esi, dword [esp + 0x1a4]
mov eax, dword [ebp + 8]
pxor xmm0, xmm0
lea edi, [edi + edx*8]
cvtss2sd xmm0, dword [ecx + edx*4]
add edi, dword [esp + 0x210]
inc edx
lea edi, [edi + ebx*8]
movsd qword [edi + esi + 0x11b18], xmm0
cmp edx, 0x12
jae 0x459737
mov edi, dword [eax + 0x55e0]
jmp 0x45970a
mov ecx, dword [esp + 0x1a8]
mov eax, dword [esp + 0x1b4]
mov ebx, dword [esp + 0x1b0]
add edx, ecx
mov dword [esp + 0x19c], edx
mov edx, dword [esp + 0x1a0]
add eax, 0x48
inc edx
mov dword [esp + 0x1a0], edx
cmp edx, 0x20
jb 0x459503
mov ecx, dword [esp + 0x114]
inc ecx
mov edx, dword [esp + 0x118]
mov edi, dword [esp + 0x1a4]
add edx, 0x900
add edi, 0x1200
cmp ecx, dword [esp + 0x178]
jb 0x4594d5
mov ebx, dword [esp + 0xe8]
mov esi, dword [ebp + 8]
xor edx, edx
mov esi, edx
mov dword [esp + 0xe8], ebx
xor edi, edi
mov ebx, edx
mov ecx, dword [esp + 0x1b8]
cmp dword [ebx + ecx + 0xb0], 2
jne 0x4597fd
lea ecx, [esp + edi + 0x1420]
mov dword [esp + 0x1c0], ecx
mov ecx, dword [esp + 0x1b8]
cmp dword [ebx + ecx + 0xb4], 0
je 0x459b34
mov ecx, dword [esp + 0x1c0]
mov eax, 1
lea edx, [ecx + 0x48]
jmp 0x45981c
mov eax, dword [ebx + ecx + 0xe0]
lea ecx, [esp + edi + 0x1420]
mov dword [esp + 0x1c0], ecx
lea edx, [ecx + 0x48]
dec eax
je 0x459b34
movss xmm7, dword [0x514ae4]
xor ecx, ecx
movss dword [esp + 0x1f4], xmm7
movss xmm7, dword [0x514b04]
movss dword [esp + 0x1f0], xmm7
movss xmm7, dword [0x514ae8]
movss dword [esp + 0x1ec], xmm7
movss xmm7, dword [0x514b08]
movss dword [esp + 0x1e8], xmm7
movss xmm7, dword [0x514aec]
movss dword [esp + 0x1e4], xmm7
movss xmm7, dword [0x514b0c]
movss dword [esp + 0x1e0], xmm7
movss xmm0, dword [0x514ae0]
movss xmm7, dword [0x514af0]
movss dword [esp + 0x1f8], xmm0
movss dword [esp + 0x1dc], xmm7
movss xmm6, dword [0x514ad4]
movss xmm2, dword [0x514adc]
movss xmm5, dword [0x514af4]
movss xmm4, dword [0x514afc]
movss xmm0, dword [0x514b00]
movss xmm7, dword [0x514b10]
movss xmm1, dword [0x514af8]
movss xmm3, dword [0x514ad8]
movss dword [esp + 0x1d8], xmm7
movss dword [esp + 0x200], xmm0
movss dword [esp + 0x204], xmm4
movss dword [esp + 0x20c], xmm2
movss dword [esp + 0x208], xmm5
movss dword [esp + 0x1fc], xmm6
movss xmm4, dword [esp + 0x1fc]
inc ecx
movss xmm5, dword [esp + 0x208]
movaps xmm2, xmm4
movss xmm6, dword [edx - 4]
movaps xmm0, xmm5
movss xmm7, dword [edx]
mulss xmm2, xmm6
mulss xmm0, xmm7
mulss xmm7, xmm4
mulss xmm6, xmm5
subss xmm2, xmm0
addss xmm7, xmm6
movss xmm4, dword [edx - 8]
movaps xmm0, xmm1
movss xmm5, dword [edx + 4]
movss dword [edx - 4], xmm2
movaps xmm2, xmm3
mulss xmm2, xmm4
mulss xmm0, xmm5
mulss xmm5, xmm3
mulss xmm4, xmm1
subss xmm2, xmm0
addss xmm5, xmm4
movss dword [edx], xmm7
movss dword [edx - 8], xmm2
movss xmm7, dword [esp + 0x20c]
movss xmm2, dword [esp + 0x204]
movaps xmm0, xmm7
movss dword [edx + 4], xmm5
movaps xmm6, xmm2
movss xmm4, dword [edx - 0xc]
movss xmm5, dword [edx + 8]
mulss xmm0, xmm4
mulss xmm6, xmm5
mulss xmm5, xmm7
mulss xmm4, xmm2
subss xmm0, xmm6
addss xmm5, xmm4
movss xmm6, dword [esp + 0x1f8]
movss xmm7, dword [esp + 0x200]
movaps xmm2, xmm6
movss dword [edx + 8], xmm5
movss dword [edx - 0xc], xmm0
movaps xmm0, xmm7
movss xmm4, dword [edx - 0x10]
movss xmm5, dword [edx + 0xc]
mulss xmm2, xmm4
mulss xmm0, xmm5
mulss xmm5, xmm6
mulss xmm4, xmm7
subss xmm2, xmm0
addss xmm5, xmm4
movss xmm6, dword [esp + 0x1f4]
movss xmm7, dword [esp + 0x1f0]
movss dword [edx + 0xc], xmm5
movaps xmm0, xmm7
movss dword [edx - 0x10], xmm2
movaps xmm2, xmm6
movss xmm4, dword [edx - 0x14]
movss xmm5, dword [edx + 0x10]
mulss xmm2, xmm4
mulss xmm0, xmm5
mulss xmm5, xmm6
mulss xmm4, xmm7
subss xmm2, xmm0
addss xmm5, xmm4
movss xmm6, dword [esp + 0x1ec]
movss xmm7, dword [esp + 0x1e8]
movss dword [edx + 0x10], xmm5
movaps xmm0, xmm7
movss dword [edx - 0x14], xmm2
movaps xmm2, xmm6
movss xmm4, dword [edx - 0x18]
movss xmm5, dword [edx + 0x14]
mulss xmm2, xmm4
mulss xmm0, xmm5
mulss xmm5, xmm6
mulss xmm4, xmm7
subss xmm2, xmm0
addss xmm5, xmm4
movss xmm6, dword [esp + 0x1e4]
movss xmm7, dword [esp + 0x1e0]
movss dword [edx + 0x14], xmm5
movaps xmm0, xmm7
movss dword [edx - 0x18], xmm2
movaps xmm2, xmm6
movss xmm4, dword [edx - 0x1c]
movss xmm5, dword [edx + 0x18]
mulss xmm2, xmm4
mulss xmm0, xmm5
mulss xmm5, xmm6
mulss xmm4, xmm7
subss xmm2, xmm0
addss xmm5, xmm4
movss xmm6, dword [esp + 0x1dc]
movss xmm7, dword [esp + 0x1d8]
movss dword [edx + 0x18], xmm5
movaps xmm0, xmm7
movss dword [edx - 0x1c], xmm2
movaps xmm2, xmm6
movss xmm4, dword [edx - 0x20]
movss xmm5, dword [edx + 0x1c]
mulss xmm2, xmm4
mulss xmm0, xmm5
mulss xmm5, xmm6
mulss xmm4, xmm7
subss xmm2, xmm0
addss xmm5, xmm4
movss dword [edx - 0x20], xmm2
movss dword [edx + 0x1c], xmm5
add edx, 0x48
cmp ecx, eax
jb 0x45991c
mov eax, dword [ebp + 8]
lea ecx, [esp + edi + 0x21c]
mov dword [esp + 0x17c], edi
mov dword [esp + 0x184], ecx
mov edx, dword [eax + esi*4 + 0x44c0]
lea ecx, [edi + eax + 0x20c0]
mov dword [esp + 0x190], ecx
lea edi, [edx + edx*8]
neg edx
shl edi, 9
mov dword [esp + 0x188], edi
add edi, ecx
mov dword [esp + 0x180], edi
lea edi, [edx + 1]
mov dword [eax + esi*4 + 0x44c0], edi
mov edi, dword [esp + 0x17c]
lea edx, [edx + edx*8 + 9]
shl edx, 9
mov dword [esp + 0x18c], edx
add ecx, edx
mov dword [esp + 0x1c4], ecx
mov ecx, dword [esp + 0x1b8]
cmp dword [ebx + ecx + 0xb4], 0
jne 0x459bb9
xor edx, edx
jmp 0x459c74
mov dword [esp + 0xc], 0x508440
mov ecx, dword [esp + 0x184]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x1c0]
mov edx, dword [esp + 0x180]
mov ecx, dword [esp + 0x1c4]
call fcn.0045b4d0
mov ecx, dword [esp + 0x1c0]
mov dword [esp + 0x17c], edi
mov edi, dword [esp + 0x190]
lea eax, [ecx + 0x48]
mov ecx, dword [esp + 0x188]
lea edx, [edi + ecx + 0x48]
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0xc], 0x508680
lea ecx, [edi + ecx + 0x48]
mov edi, dword [esp + 0x184]
lea edi, [edi + 4]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x17c]
call fcn.0045b4d0
mov ecx, dword [esp + 0x188]
mov edx, 2
mov eax, dword [esp + 0x190]
add dword [esp + 0x184], 8
lea ecx, [eax + ecx + 0x90]
mov dword [esp + 0x180], ecx
mov ecx, dword [esp + 0x18c]
lea ecx, [eax + ecx + 0x90]
mov dword [esp + 0x1c4], ecx
lea ecx, [edx + edx*8]
shl ecx, 3
mov dword [esp + 0x1c8], ecx
mov ecx, dword [esp + 0x1b8]
mov eax, dword [ebx + ecx + 0xb0]
mov ecx, dword [ebx + ecx + 0xe0]
cmp eax, 2
je 0x45a302
cmp edx, ecx
jge 0x459dca
mov dword [esp + 0x17c], edi
lea ecx, [eax + eax*8]
shl ecx, 4
mov dword [esp + 0x1bc], ebx
mov dword [esp + 0x174], esi
mov dword [esp + 0x1d4], edx
mov edi, dword [esp + 0x1c8]
lea eax, [ecx + 0x508440]
mov ebx, dword [esp + 0x180]
lea ecx, [ecx + 0x508680]
mov esi, dword [esp + 0x184]
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], eax
mov eax, dword [esp + 0x1c0]
mov edx, ebx
mov ecx, dword [esp + 0x1d0]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
add eax, edi
mov ecx, dword [esp + 0x1c4]
call fcn.0045b4d0
mov eax, dword [esp + 0x1c0]
lea edx, [ebx + 0x48]
mov dword [esp + 0x1c8], edi
lea eax, [eax + edi + 0x48]
mov edi, dword [esp + 0x1c4]
lea ecx, [edi + 0x48]
mov edi, dword [esp + 0x1cc]
mov dword [esp + 0xc], edi
lea edi, [esi + 4]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x1c8]
call fcn.0045b4d0
mov edx, dword [esp + 0x1b8]
add edi, 0x90
mov ecx, dword [esp + 0x1bc]
add esi, 8
mov eax, dword [esp + 0x1d4]
add ebx, 0x90
add eax, 2
add dword [esp + 0x1c4], 0x90
mov dword [esp + 0x1d4], eax
cmp eax, dword [ecx + edx + 0xe0]
jl 0x459cf8
mov dword [esp + 0x180], ebx
mov dword [esp + 0x184], esi
mov edx, eax
mov edi, dword [esp + 0x17c]
mov ebx, ecx
mov esi, dword [esp + 0x174]
cmp edx, 0x20
jge 0x45a057
neg edx
xor eax, eax
mov dword [esp + 0x1bc], ebx
add edx, 0x20
mov dword [esp + 0x174], esi
pxor xmm0, xmm0
mov dword [esp + 0x17c], edi
pxor xmm1, xmm1
mov ecx, dword [esp + 0x1c4]
mov esi, dword [esp + 0x180]
mov ebx, dword [esp + 0x184]
mov edi, esi
neg edi
add edi, ecx
cmp edi, 0x48
jge 0x459e19
neg edi
cmp edi, 0x48
jl 0x459f2b
movsd xmm2, qword [esi]
movsd xmm3, qword [esi + 8]
movsd xmm4, qword [esi + 0x10]
movss dword [ebx + eax*4], xmm2
shufps xmm2, xmm2, 0xe5
movss dword [ebx + eax*4 + 0x100], xmm3
shufps xmm3, xmm3, 0xe5
movss dword [ebx + eax*4 + 0x200], xmm4
shufps xmm4, xmm4, 0xe5
movss dword [ebx + eax*4 + 0x80], xmm2
movss dword [ebx + eax*4 + 0x180], xmm3
movss dword [ebx + eax*4 + 0x280], xmm4
movsd xmm5, qword [esi + 0x18]
movsd xmm6, qword [esi + 0x20]
movsd xmm7, qword [esi + 0x28]
movsd xmm2, qword [esi + 0x30]
movsd xmm3, qword [esi + 0x38]
movsd xmm4, qword [esi + 0x40]
add esi, 0x48
movss dword [ebx + eax*4 + 0x300], xmm5
shufps xmm5, xmm5, 0xe5
movss dword [ebx + eax*4 + 0x400], xmm6
shufps xmm6, xmm6, 0xe5
movss dword [ebx + eax*4 + 0x500], xmm7
shufps xmm7, xmm7, 0xe5
movss dword [ebx + eax*4 + 0x600], xmm2
shufps xmm2, xmm2, 0xe5
movss dword [ebx + eax*4 + 0x700], xmm3
shufps xmm3, xmm3, 0xe5
movss dword [ebx + eax*4 + 0x800], xmm4
shufps xmm4, xmm4, 0xe5
movss dword [ebx + eax*4 + 0x380], xmm5
movss dword [ebx + eax*4 + 0x480], xmm6
movss dword [ebx + eax*4 + 0x580], xmm7
movss dword [ebx + eax*4 + 0x680], xmm2
movss dword [ebx + eax*4 + 0x780], xmm3
movss dword [ebx + eax*4 + 0x880], xmm4
movups xmmword [ecx], xmm0
movups xmmword [ecx + 0x10], xmm0
movups xmmword [ecx + 0x20], xmm0
movups xmmword [ecx + 0x30], xmm0
movss dword [ecx + 0x40], xmm1
movss dword [ecx + 0x44], xmm1
add ecx, 0x48
jmp 0x45a039
mov edi, dword [esi]
movss dword [ecx], xmm1
mov dword [ebx + eax*4], edi
mov edi, dword [esi + 4]
movss dword [ecx + 4], xmm1
mov dword [ebx + eax*4 + 0x80], edi
mov edi, dword [esi + 8]
movss dword [ecx + 8], xmm1
mov dword [ebx + eax*4 + 0x100], edi
mov edi, dword [esi + 0xc]
movss dword [ecx + 0xc], xmm1
mov dword [ebx + eax*4 + 0x180], edi
mov edi, dword [esi + 0x10]
movss dword [ecx + 0x10], xmm1
mov dword [ebx + eax*4 + 0x200], edi
mov edi, dword [esi + 0x14]
movss dword [ecx + 0x14], xmm1
mov dword [ebx + eax*4 + 0x280], edi
mov edi, dword [esi + 0x18]
movss dword [ecx + 0x18], xmm1
mov dword [ebx + eax*4 + 0x300], edi
mov edi, dword [esi + 0x1c]
movss dword [ecx + 0x1c], xmm1
mov dword [ebx + eax*4 + 0x380], edi
mov edi, dword [esi + 0x20]
movss dword [ecx + 0x20], xmm1
mov dword [ebx + eax*4 + 0x400], edi
mov edi, dword [esi + 0x24]
movss dword [ecx + 0x24], xmm1
mov dword [ebx + eax*4 + 0x480], edi
mov edi, dword [esi + 0x28]
movss dword [ecx + 0x28], xmm1
mov dword [ebx + eax*4 + 0x500], edi
mov edi, dword [esi + 0x2c]
movss dword [ecx + 0x2c], xmm1
mov dword [ebx + eax*4 + 0x580], edi
mov edi, dword [esi + 0x30]
movss dword [ecx + 0x30], xmm1
mov dword [ebx + eax*4 + 0x600], edi
mov edi, dword [esi + 0x34]
movss dword [ecx + 0x34], xmm1
mov dword [ebx + eax*4 + 0x680], edi
mov edi, dword [esi + 0x38]
movss dword [ecx + 0x38], xmm1
mov dword [ebx + eax*4 + 0x700], edi
mov edi, dword [esi + 0x3c]
movss dword [ecx + 0x3c], xmm1
mov dword [ebx + eax*4 + 0x780], edi
mov edi, dword [esi + 0x40]
movss dword [ecx + 0x40], xmm1
mov dword [ebx + eax*4 + 0x800], edi
mov edi, dword [esi + 0x44]
add esi, 0x48
mov dword [ebx + eax*4 + 0x880], edi
movss dword [ecx + 0x44], xmm1
add ecx, 0x48
inc eax
cmp eax, edx
jb 0x459e03
mov edi, dword [esp + 0x17c]
mov ebx, dword [esp + 0x1bc]
mov esi, dword [esp + 0x174]
inc esi
add ebx, 0xd0
add edi, 0x900
cmp esi, dword [esp + 0x178]
jl 0x4597b8
xor eax, eax
xor edi, edi
mov ebx, eax
mov esi, dword [esp + 0xe0]
cmp dword [esp + 0x194], 0
jl 0x45a2a9
lea edx, [esp + edi + 0x21c]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edx
push dword [ebp + 8]
call dword [ebp + 0x14]
add esp, 0x10
add esi, eax
inc ebx
add edi, 0x80
cmp ebx, 0x12
jl 0x45a07e
mov ebx, dword [esp + 0xe8]
inc ebx
mov dword [esp + 0xe0], esi
mov esi, dword [ebp + 8]
cmp ebx, dword [esp + 0xe4]
jl 0x4584d8
mov ecx, dword [esp + 0x2758]
mov dword [esp + 0x2758], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x45a2a4
mov eax, dword [esp + 0xe0]
add esp, 0x2764
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp ecx, 4
jl 0x45a1da
mov eax, dword [esp + 0x104]
and eax, 0xf
mov edx, eax
neg edx
add edx, 0x10
shr edx, 2
test eax, eax
cmovne eax, edx
mov dword [esp + 0xd0], eax
lea edx, [eax + 4]
cmp ecx, edx
jl 0x45a1da
mov edx, ecx
sub edx, eax
and edx, 3
neg edx
add edx, ecx
test eax, eax
jbe 0x45a192
mov dword [esp + 0xcc], 0
mov dword [esp + 0xe8], ebx
mov eax, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
mov esi, dword [esp + 0x104]
mov dword [esi + eax*4], 0
inc eax
cmp eax, ebx
jb 0x45a16e
mov dword [esp + 0xd0], ebx
mov dword [esp + 0x104], esi
mov ebx, dword [esp + 0xe8]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0xd0]
mov esi, dword [esp + 0x104]
pxor xmm0, xmm0
movdqu xmmword [esi + eax*4], xmm0
add eax, 4
cmp eax, edx
jb 0x45a1a4
mov dword [esp + 0x104], esi
mov esi, dword [ebp + 8]
cmp edx, ecx
jae 0x4586c4
mov eax, dword [esp + 0x104]
mov dword [eax + edx*4], 0
inc edx
cmp edx, ecx
jb 0x45a1c9
jmp 0x4586c4
xor edx, edx
jmp 0x45a1ba
cmp ebx, 4
jl 0x45a2a0
mov ecx, dword [esp + 0x104]
and ecx, 0xf
mov eax, ecx
neg eax
add eax, 0x10
shr eax, 2
test ecx, ecx
cmovne ecx, eax
lea eax, [ecx + 4]
cmp ebx, eax
jl 0x45a2a0
mov eax, ebx
sub eax, ecx
and eax, 3
neg eax
add eax, ebx
test ecx, ecx
jbe 0x45a25b
mov dword [esp + 0x110], 0
mov dword [esp + 0x10c], edx
mov dword [esp + 0x108], edi
mov edx, dword [esp + 0x110]
mov edi, dword [esp + 0x104]
mov dword [edi + edx*4], 0
inc edx
cmp edx, ecx
jb 0x45a241
mov edx, dword [esp + 0x10c]
mov edi, dword [esp + 0x108]
mov dword [esp + 0x108], edi
pxor xmm0, xmm0
mov edi, dword [esp + 0x104]
movdqu xmmword [edi + ecx*4], xmm0
add ecx, 4
cmp ecx, eax
jb 0x45a26d
mov edi, dword [esp + 0x108]
cmp eax, ebx
jae 0x458652
mov ecx, dword [esp + 0x104]
mov dword [ecx + eax*4], 0
inc eax
cmp eax, ebx
jb 0x45a28f
jmp 0x458652
xor eax, eax
jmp 0x45a280
call fcn.00466f40
mov edx, dword [ebp + 0x10]
lea eax, [esp + 0x158]
mov ecx, dword [edx]
lea edx, [esp + edi + 0x21c]
mov dword [eax], ecx
mov dword [eax + 8], edx
push eax
push dword [ebp + 0xc]
push 0
push edx
push dword [ebp + 8]
call dword [ebp + 0x18]
mov dword [esp + 0x170], eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 1
mov edx, dword [esp + 0x180]
add edx, 0x900
push edx
push dword [ebp + 8]
call dword [ebp + 0x18]
add esp, 0x28
add esi, dword [esp + 0x15c]
add esi, eax
jmp 0x45a0a5
cmp edx, ecx
jge 0x459dca
mov dword [esp + 0x17c], edi
mov dword [esp + 0x1bc], ebx
mov dword [esp + 0x174], esi
mov dword [esp + 0x1d4], edx
mov edi, dword [esp + 0x1c8]
mov ebx, dword [esp + 0x1c4]
mov esi, dword [esp + 0x184]
mov eax, dword [esp + 0x1c0]
mov ecx, ebx
mov dword [esp + 0xc], 0x508560
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0x180]
add eax, edi
call fcn.0045bd40
mov eax, dword [esp + 0x1c0]
lea ecx, [ebx + 0x48]
mov dword [esp + 0x1c8], edi
lea eax, [eax + edi + 0x48]
mov edi, dword [esp + 0x180]
mov dword [esp + 0xc], 0x5087a0
lea edx, [edi + 0x48]
lea edi, [esi + 4]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x1c8]
call fcn.0045bd40
mov ecx, dword [esp + 0x1b8]
add edi, 0x90
mov edx, dword [esp + 0x1bc]
add esi, 8
mov eax, dword [esp + 0x1d4]
add ebx, 0x90
add eax, 2
add dword [esp + 0x180], 0x90
mov dword [esp + 0x1d4], eax
cmp eax, dword [edx + ecx + 0xe0]
jl 0x45a33b
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x184], esi
mov edx, eax
mov edi, dword [esp + 0x17c]
mov ebx, dword [esp + 0x1bc]
mov esi, dword [esp + 0x174]
jmp 0x459dc1
xor edx, edx
lea ecx, [ebx + eax]
jmp 0x4596eb
mov dword [esp + 0xe8], ebx
mov ecx, dword [esp + 0x178]
mov edi, dword [esi + 0x55e0]
mov ebx, dword [eax + 0x110]
mov dword [edi + edx*4 + 0x311c0], ebx
mov edi, dword [esi + 0x55e0]
mov ebx, dword [eax + 0x158]
mov dword [edi + edx*4 + 0x31a30], ebx
mov edi, dword [esi + 0x55e0]
mov ebx, dword [eax + 0x11c]
mov dword [edi + edx*4 + 0x31a60], ebx
mov edi, dword [esi + 0x55e0]
mov ebx, dword [eax + 0x118]
mov dword [edi + edx*4 + 0x31a50], ebx
mov edi, dword [esi + 0x55e0]
mov ebx, dword [eax + 0x10c]
mov dword [edi + edx*4 + 0x31a70], ebx
mov edi, dword [esi + 0x55e0]
mov ebx, dword [eax + 0x154]
mov dword [edi + edx*4 + 0x31a40], ebx
mov edi, dword [esi + 0x55e0]
mov ebx, dword [eax + 0x108]
add eax, 0xd0
mov dword [edi + edx*4 + 0x31ad4], ebx
inc edx
cmp edx, ecx
jb 0x45a420
mov ebx, dword [esp + 0xe8]
lea ecx, [ebx*8]
jmp 0x458ad9
mov edx, dword [esp + 0xf4]
cmp dword [esi + 0x4c], 0
lea ecx, [esi + edx + 0x170]
mov dword [esp + 0x88], ecx
je 0x45a676
cmp dword [esp + 0xdc], 0
lea edx, [esp + 0x26bc]
mov dword [esp + 0x74], edx
je 0x45a512
mov edx, dword [esp + 0x1b8]
mov ecx, dword [edx + 0x17c]
shr ecx, 1
mov edi, dword [ecx*4 + 0x5088c0]
jmp 0x45a526
mov edx, dword [esp + 0x1b8]
mov ecx, dword [edx + 0x17c]
mov edi, dword [ecx*4 + 0x507c40]
mov ecx, edx
mov edx, edi
shr edx, 0xf
and edx, 1
mov dword [ecx + 0x1bc], edx
cmp dword [ecx + 0x180], 2
jne 0x45a551
xor edx, edx
cmp edx, dword [ecx + 0x184]
mov ecx, 1
adc ecx, 0
jmp 0x45a553
xor ecx, ecx
mov eax, edi
lea edx, [ecx + ecx*2]
shr eax, 0xc
shl edx, 3
and eax, 7
mov dword [esp + 0xe8], ebx
mov dword [esp + 0x70], ecx
mov ebx, dword [esp + 0x74]
lea eax, [edx + eax*4 + 0x4dd020]
dec ebx
or byte [ebx], bh
sal dword [edx - 0x15], 0x8b
push ebx
adc al, 0x8d
add al, 0x24
mov ecx, dword [esp + 0x2758]
mov dword [esp + 0x2758], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x45a2a4
jmp 0x45a0f0
mov edx, dword [esi + 0x74]
mov ebx, edx
and ebx, 2
and edx, 1
mov dword [esp + 0xd8], ebx
jmp 0x458459
mov ecx, dword [esp + 0x2758]
mov dword [esp + 0x2758], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x45a2a4
xor eax, eax
add esp, 0x2764
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret