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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x364
mov edx, dword [ebp + 8]
mov eax, dword [0x52cfb4]
xor eax, esp
mov edi, dword [edx + 0x50]
mov dword [esp + 0x354], eax
test edi, edi
jle 0x43820a
xor ecx, ecx
mov eax, dword [ebp + 8]
xor ebx, ebx
xor esi, esi
pxor xmm0, xmm0
xor edx, edx
mov eax, dword [eax + 0x4c]
movsd xmm6, qword [0x4c1a90]
movss xmm5, dword [0x4c1aec]
movsd xmm7, qword [0x4c1aa0]
movsd xmm4, qword [0x4c1aa8]
movss xmm3, dword [0x4c1afc]
movsd xmm2, qword [0x4c1ab0]
movsd xmm1, qword [0x4c1a68]
mov dword [esp + 0x64], edx
test eax, eax
jle 0x4381ea
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x18], ebx
add edi, esi
mov dword [esp + 0x40], edi
add eax, ebx
imul edi, ecx, 0x270
mov dword [esp + 0x68], edi
imul edi, ecx, 0x2c0
mov dword [esp + 0x160], edi
imul edi, ecx, 0x160
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x15c], edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x3c]
mov ecx, dword [ebp + 8]
imul eax, ebx, 0x1484
mov edi, dword [esp + 0x44]
lea edi, [eax + edi + 0x134]
lea edx, [edi + 0x1200]
mov dword [esp + 0x120], edx
movups xmm0, xmmword [edx + 0x80]
movups xmmword [esp + 0x200], xmm0
movsd xmm2, qword [edx + 0x90]
movsd qword [esp + 0x210], xmm2
mov esi, dword [edx + 0x98]
mov dword [esp + 0x218], esi
mov esi, 0x80
mov edx, dword [esp + 0x120]
movups xmm0, xmmword [edx + esi - 0x10]
movups xmmword [esp + esi + 0x170], xmm0
movups xmm2, xmmword [edx + esi - 0x20]
movups xmmword [esp + esi + 0x160], xmm2
movups xmm3, xmmword [edx + esi - 0x30]
movups xmmword [esp + esi + 0x150], xmm3
movups xmm4, xmmword [edx + esi - 0x40]
movups xmmword [esp + esi + 0x140], xmm4
sub esi, 0x40
jne 0x436f46
cmp dword [esp + 0x4c], 1
je 0x438783
imul eax, ebx, 0x1e8
movaps xmm2, xmm1
cmp dword [edi + 0x12e4], 0
lea edx, [esp + 0x21c]
mov esi, dword [ecx + 0x14f28]
je 0x436fb3
movaps xmm2, xmm6
add eax, dword [esp + 0x40]
mov dword [edx - 0xb0], eax
xor eax, eax
mov dword [edx - 0x160], edx
mov dword [edx - 0x15c], esi
mov dword [edx - 0xec], eax
mov dword [edx - 0x164], eax
cmp dword [edi + 0x12f8], 0
jle 0x437392
movsd qword [esp + 0x20], xmm2
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x168], edi
movss xmm2, dword [0x4c1af0]
mov esi, dword [esp + 0x130]
mov ebx, eax
mov eax, dword [esp + 0xc0]
mov edi, esi
mov edx, dword [ebp + 8]
push dword [eax + ebx*4 + 0x18]
movss xmm3, dword [eax + 8]
movss xmm0, dword [eax + 0x14]
movss xmm1, dword [edx + 0xe4]
movss dword [esp + 0xc8], xmm0
movss dword [esp + 0xcc], xmm1
movss dword [esp + 0xd8], xmm3
call fcn.0042d830
fstp dword [esp + 0xec]
movss xmm2, dword [0x4c1af0]
movss xmm3, dword [esp + 0xd8]
movss xmm5, dword [esp + 0xec]
add esp, 4
mulss xmm3, xmm3
comiss xmm3, dword [0x4c1ad8]
jbe 0x43877a
movss dword [esp], xmm3
movss dword [esp + 0x98], xmm5
call fcn.0042d830
fstp dword [esp + 0xe8]
movss xmm2, dword [0x4c1af0]
movss xmm5, dword [esp + 0x98]
movss xmm0, dword [esp + 0xe8]
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x4c1a80]
addsd xmm0, qword [0x4c1a90]
cvtsd2ss xmm0, xmm0
cvtss2sd xmm5, xmm5
mulsd xmm5, qword [0x4c1a88]
movss xmm6, dword [0x4c1ae8]
movss xmm7, dword [esp + 0xc8]
cvtsd2ss xmm5, xmm5
comiss xmm6, xmm7
movss xmm4, dword [esp + 0xc4]
movss xmm1, dword [0x4c1ae4]
subss xmm5, xmm4
addss xmm1, xmm4
pxor xmm4, xmm4
jbe 0x437114
movss xmm7, dword [0x4c1ad4]
mov eax, dword [ebp + 8]
maxss xmm4, xmm0
subss xmm1, xmm7
mulss xmm5, xmm4
movss xmm3, dword [eax + ebx*4 + 0x14b20]
addss xmm1, xmm5
mulss xmm1, dword [0x4c1ae0]
movss xmm0, dword [0x4c1adc]
movss dword [esp + 0xd8], xmm3
call fcn.004878d0
mov eax, dword [esp + 0x168]
pxor xmm4, xmm4
movss xmm3, dword [esp + 0xd8]
movaps xmm1, xmm0
mulss xmm1, xmm3
mov ecx, dword [eax + ebx*4 + 0x1308]
movaps xmm0, xmm1
cvtsi2ss xmm4, ecx
movss xmm2, dword [0x4c1af0]
divss xmm0, xmm4
test ecx, ecx
jle 0x4372c2
cmp ecx, 4
jl 0x438233
lea edx, [eax + esi*4]
mov dword [esp + 0xb0], edx
and edx, 0xf
je 0x4371b4
test dl, 3
jne 0x438233
neg edx
add edx, 0x10
shr edx, 2
lea eax, [edx + 4]
cmp ecx, eax
jl 0x438233
mov eax, ecx
movaps xmm6, xmm2
sub eax, edx
pxor xmm5, xmm5
and eax, 3
neg eax
add eax, ecx
test edx, edx
jbe 0x437224
mov dword [esp + 0xb4], 0
mov dword [esp + 0x130], esi
mov dword [esp + 0xb8], ebx
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0xb0]
movss xmm4, dword [esi + ebx*4]
inc ebx
mulss xmm4, xmm4
addss xmm5, xmm4
minss xmm4, xmm0
addss xmm6, xmm4
cmp ebx, edx
jb 0x4371fc
mov esi, dword [esp + 0x130]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0xb8], ebx
pxor xmm4, xmm4
movss xmm4, xmm5
pxor xmm5, xmm5
movss xmm5, xmm6
movaps xmm6, xmm0
shufps xmm6, xmm6, 0
mov ebx, dword [esp + 0xb0]
movups xmm7, xmmword [ebx + edx*4]
add edx, 4
mulps xmm7, xmm7
addps xmm4, xmm7
minps xmm7, xmm6
addps xmm5, xmm7
cmp edx, eax
jb 0x437249
movaps xmm6, xmm5
add esi, edx
movhlps xmm6, xmm5
sub edx, eax
mov ebx, dword [esp + 0xb8]
sub esi, edx
addps xmm5, xmm6
movaps xmm6, xmm4
movhlps xmm6, xmm4
movaps xmm7, xmm5
shufps xmm7, xmm5, 0xf5
addps xmm4, xmm6
addss xmm5, xmm7
movaps xmm7, xmm4
shufps xmm7, xmm4, 0xf5
addss xmm4, xmm7
cmp eax, ecx
jae 0x4372c9
mov edx, dword [esp + 0x168]
lea edx, [edx + edi*4]
movss xmm6, dword [edx + eax*4]
inc eax
mulss xmm6, xmm6
addss xmm4, xmm6
minss xmm6, xmm0
addss xmm5, xmm6
cmp eax, ecx
jb 0x4372a3
lea esi, [edi + eax]
jmp 0x4372c9
movaps xmm5, xmm2
pxor xmm4, xmm4
comiss xmm1, xmm4
jbe 0x4372d3
movaps xmm1, xmm4
jmp 0x4372d7
maxss xmm1, xmm5
mov eax, dword [esp + 0x16c]
movss xmm0, dword [eax + ebx*4 + 0xf4]
comiss xmm0, dword [0x4c1aec]
jbe 0x43730a
movaps xmm5, xmm4
mulss xmm5, dword [eax + ebx*4]
divss xmm5, xmm0
mulss xmm3, xmm5
movaps xmm0, xmm1
movaps xmm1, xmm3
maxss xmm1, xmm0
movss xmm0, dword [0x4c1af4]
maxss xmm1, xmm2
mov ecx, dword [esp + 0x168]
addss xmm0, xmm1
mov edx, dword [esp + 0xbc]
cmpltss xmm0, xmm4
movd eax, xmm0
movss dword [edx], xmm1
neg eax
add edx, 4
mov byte [ebx + ecx + 0x145c], al
inc ebx
mov dword [esp + 0xbc], edx
cmp ebx, dword [ecx + 0x12f8]
jl 0x437006
mov dword [esp + 0xb8], ebx
mov dword [esp + 0x130], esi
movsd xmm2, qword [esp + 0x20]
mov edi, ecx
mov ebx, dword [esp + 0x3c]
movsd xmm1, qword [0x4c1a68]
movsd xmm7, qword [0x4c1aa0]
movss xmm5, dword [0x4c1aec]
movsd xmm6, qword [0x4c1a90]
mov ecx, dword [ebp + 8]
mov edx, 0x23f
movss xmm0, dword [edi + edx*4]
andps xmm0, xmmword [0x4c1930]
comiss xmm0, xmm5
ja 0x4373ad
dec edx
jg 0x437397
xor edx, edx
mov eax, dword [edi + 0x12b4]
mov dword [esp + 0x50], eax
cmp eax, 2
je 0x438767
or edx, 1
cmp dword [ecx + 0x14c64], 0
jne 0x437408
mov eax, dword [ecx + 0x44]
cmp eax, 0xabe0
jge 0x437408
cmp dword [esp + 0x50], 2
je 0x43873d
cmp eax, 0x1f40
mov eax, 0x15
mov dword [esp + 0x1c], edx
mov edx, 0x11
cmovle eax, edx
mov edx, dword [esp + 0x1c]
mov eax, dword [ecx + eax*4 + 0x5374]
dec eax
cmp eax, edx
cmovl edx, eax
mov eax, dword [edi + 0x1300]
mov dword [edi + 0x1458], edx
mov edx, dword [edi + 0x12f4]
cmp eax, dword [esp + 0xb8]
jle 0x43789d
mov dword [esp + 0x3c], ebx
movsd qword [esp + 0x20], xmm2
mov dword [esp + 0x138], edx
mov dword [esp + 0x168], edi
mov esi, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0x138]
mov ecx, dword [ebp + 8]
movss xmm2, dword [edx + 8]
movss xmm0, dword [edx + 0x14]
push dword [edx + eax*4 + 0x70]
mov dword [esp + 0x144], esi
movss xmm1, dword [ecx + 0xe4]
movss dword [esp + 0xd0], xmm0
movss dword [esp + 0xd4], xmm1
movss dword [esp + 0xe0], xmm2
call fcn.0042d830
fstp dword [esp + 0xec]
movss xmm2, dword [esp + 0xe0]
movss xmm0, dword [esp + 0xec]
add esp, 4
mulss xmm2, xmm2
comiss xmm2, dword [0x4c1ad8]
jbe 0x438734
movss dword [esp], xmm2
movss dword [esp + 0x9c], xmm0
call fcn.0042d830
fstp dword [esp + 0xe8]
movss xmm0, dword [esp + 0x9c]
movss xmm2, dword [esp + 0xe8]
cvtss2sd xmm2, xmm2
mulsd xmm2, qword [0x4c1a80]
addsd xmm2, qword [0x4c1a90]
cvtsd2ss xmm2, xmm2
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x4c1a88]
pxor xmm6, xmm6
maxss xmm6, xmm2
cvtsd2ss xmm0, xmm0
movss xmm3, dword [0x4c1ae8]
movss xmm4, dword [esp + 0xd0]
comiss xmm3, xmm4
movss xmm5, dword [esp + 0xcc]
movss xmm1, dword [0x4c1ae4]
subss xmm0, xmm5
addss xmm1, xmm5
mulss xmm0, xmm6
jbe 0x43755f
movss xmm4, dword [0x4c1ad4]
subss xmm1, xmm4
addss xmm1, xmm0
movss xmm0, dword [0x4c1adc]
mulss xmm1, dword [0x4c1ae0]
call fcn.004878d0
mov eax, dword [esp + 0x168]
pxor xmm2, xmm2
mov esi, dword [esp + 0x138]
movaps xmm1, xmm0
mov edx, dword [ebp + 8]
mov ecx, dword [eax + ebx*4 + 0x1308]
add eax, ebx
cvtsi2ss xmm2, ecx
mulss xmm1, dword [edx + esi*4 + 0x14b78]
movaps xmm0, xmm1
lea esi, [esi + esi*2]
divss xmm0, xmm2
mov edi, dword [esp + 0x16c]
movaps xmm2, xmm0
shufps xmm2, xmm2, 0
xor edx, edx
movups xmmword [esp + 0xa0], xmm2
mov dword [esp + 0x144], eax
lea edi, [edi + esi*4]
mov dword [esp + 0x13c], edi
mov dword [esp + 0xb8], ebx
movss xmm3, dword [0x4c1af0]
movss xmm2, dword [0x4c1aec]
mov eax, dword [esp + 0x130]
mov edi, eax
test ecx, ecx
jle 0x437744
cmp ecx, 4
jl 0x438241
mov ebx, dword [esp + 0x168]
lea ebx, [ebx + eax*4]
mov dword [esp + 0x134], ebx
and ebx, 0xf
je 0x437635
test bl, 3
jne 0x438241
neg ebx
add ebx, 0x10
shr ebx, 2
lea esi, [ebx + 4]
cmp ecx, esi
jl 0x438241
mov esi, ecx
movaps xmm5, xmm3
sub esi, ebx
pxor xmm4, xmm4
and esi, 3
neg esi
add esi, ecx
test ebx, ebx
jbe 0x4376a5
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x134]
movss xmm6, dword [ecx + eax*4]
inc eax
mulss xmm6, xmm6
addss xmm4, xmm6
minss xmm6, xmm0
addss xmm5, xmm6
cmp eax, ebx
jb 0x43767d
mov ecx, dword [esp + 0x12c]
mov eax, dword [esp + 0x130]
mov dword [esp + 0x130], eax
pxor xmm6, xmm6
movss xmm6, xmm4
pxor xmm4, xmm4
movups xmm7, xmmword [esp + 0xa0]
movss xmm4, xmm5
mov eax, dword [esp + 0x134]
movups xmm5, xmmword [eax + ebx*4]
add ebx, 4
mulps xmm5, xmm5
addps xmm6, xmm5
minps xmm5, xmm7
addps xmm4, xmm5
cmp ebx, esi
jb 0x4376cb
movaps xmm5, xmm4
movhlps xmm5, xmm4
mov eax, dword [esp + 0x130]
addps xmm4, xmm5
movaps xmm5, xmm6
movaps xmm7, xmm4
movhlps xmm5, xmm6
add eax, ebx
shufps xmm7, xmm4, 0xf5
sub ebx, esi
sub eax, ebx
addps xmm6, xmm5
addss xmm4, xmm7
movaps xmm7, xmm6
shufps xmm7, xmm6, 0xf5
addss xmm6, xmm7
cmp esi, ecx
jae 0x43774b
mov eax, dword [esp + 0x168]
lea eax, [eax + edi*4]
movss xmm5, dword [eax + esi*4]
inc esi
mulss xmm5, xmm5
addss xmm6, xmm5
minss xmm5, xmm0
addss xmm4, xmm5
cmp esi, ecx
jb 0x437725
lea eax, [edi + esi]
jmp 0x43774b
movaps xmm4, xmm3
pxor xmm6, xmm6
comiss xmm1, xmm6
jbe 0x437755
movaps xmm5, xmm6
jmp 0x43775c
movaps xmm5, xmm1
maxss xmm5, xmm4
mov ebx, dword [esp + 0x13c]
movss xmm7, dword [ebx + edx*4 + 0x14c]
comiss xmm7, xmm2
jbe 0x43779b
movaps xmm4, xmm6
mov edi, dword [esp + 0x138]
mov esi, dword [ebp + 8]
mulss xmm4, dword [ebx + edx*4 + 0x58]
divss xmm4, xmm7
mulss xmm4, dword [esi + edi*4 + 0x14b78]
movaps xmm7, xmm5
movaps xmm5, xmm4
maxss xmm5, xmm7
movss xmm4, dword [0x4c1af4]
maxss xmm5, xmm3
mov esi, dword [esp + 0x144]
addss xmm4, xmm5
mov edi, dword [esp + 0x140]
cmpltss xmm4, xmm6
movd ebx, xmm4
movss dword [edi + edx*4], xmm5
neg ebx
mov byte [edx + esi + 0x145c], bl
lea esi, [edi + edx*4 + 4]
inc edx
cmp edx, 3
jb 0x4375fb
mov dword [esp + 0x130], eax
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0xb8]
cmp dword [eax + 0x60], 0
je 0x43784a
movss xmm0, dword [esi - 0xc]
movss xmm1, dword [esi - 8]
comiss xmm0, xmm1
jbe 0x437822
mov eax, dword [ebp + 8]
subss xmm0, xmm1
mov edx, dword [eax + 0x14f2c]
mulss xmm0, dword [edx + 0x2b60]
addss xmm1, xmm0
movss dword [esi - 8], xmm1
movss xmm0, dword [esi - 4]
comiss xmm1, xmm0
jbe 0x43784a
mov eax, dword [ebp + 8]
subss xmm1, xmm0
mov edx, dword [eax + 0x14f2c]
mulss xmm1, dword [edx + 0x2b60]
addss xmm0, xmm1
movss dword [esi - 4], xmm0
mov eax, dword [esp + 0x168]
add ebx, 3
inc dword [esp + 0x138]
mov eax, dword [eax + 0x1300]
cmp ebx, eax
jl 0x43744d
movsd xmm2, qword [esp + 0x20]
mov edi, dword [esp + 0x168]
mov ebx, dword [esp + 0x3c]
movsd xmm1, qword [0x4c1a68]
movsd xmm7, qword [0x4c1aa0]
movss xmm5, dword [0x4c1aec]
movsd xmm6, qword [0x4c1a90]
mov ecx, dword [ebp + 8]
movss xmm4, dword [0x4c1af8]
lea esi, [esp + 0x2b8]
mov dword [esi - 0x170], esi
pxor xmm0, xmm0
mov esi, dword [esi - 0x198]
lea edx, [esp + 0x21c]
mov dword [edx - 0x108], esi
xor esi, esi
mov dword [edx - 0x120], esi
movaps xmm3, xmm0
mov dword [edx - 0x124], esi
test eax, eax
jle 0x437cbf
mov dword [esp + 0x3c], ebx
movss dword [esp + 0x100], xmm0
movsd qword [esp + 0x20], xmm2
mov dword [esp + 0x110], edx
mov ebx, esi
cmp dword [edi + 0x12e0], 0
je 0x437910
mov eax, dword [ebx*4 + 0x4c11a0]
jmp 0x437912
xor eax, eax
mov dword [esp + 0x10c], esi
mov esi, dword [esp + 0x114]
mov ecx, dword [edi + 0x12e4]
inc ecx
mov edx, dword [esi]
add esi, 4
neg edx
sub edx, eax
mov eax, dword [edi + ebx*4 + 0x13a4]
shl edx, cl
mov dword [esp + 0x114], esi
mov ecx, dword [edi + eax*4 + 0x12c8]
shl ecx, 3
mov eax, dword [edi + 0x12ac]
sub eax, ecx
add edx, eax
mov ecx, dword [esp + 0x110]
mov eax, dword [edi + ebx*4 + 0x1308]
mov esi, dword [esp + 0x10c]
movss xmm1, dword [edx*4 + 0x54a030]
mov edx, eax
sar edx, 1
add eax, esi
mov dword [esp + 0x118], edx
movss xmm5, dword [ecx]
add ecx, 4
mov edx, dword [edi + 0x1458]
mov dword [esp + 0x110], ecx
mov ecx, dword [esp + 0x118]
cmp eax, edx
jle 0x4379ad
sub edx, esi
inc edx
test edx, edx
jle 0x43871f
mov ecx, edx
sar ecx, 1
mov edx, esi
cmp esi, dword [edi + 0x12a8]
jg 0x437aca
mov edx, esi
cmp esi, dword [edi + 0x12a4]
jle 0x437a4a
dec ecx
pxor xmm0, xmm0
pxor xmm2, xmm2
movss dword [esp + 0xf0], xmm0
movss dword [esp + 0xf4], xmm1
cmp ecx, 0xffffffff
je 0x437b98
nop dword [eax]
mov eax, dword [edi + edx*4 + 0x900]
dec ecx
movss xmm0, dword [edi + edx*4]
andps xmm0, xmmword [0x4c1930]
mov esi, dword [edi + edx*4 + 0x904]
movss xmm1, dword [edi + edx*4 + 4]
add edx, 2
andps xmm1, xmmword [0x4c1930]
subss xmm0, dword [esp + eax*4 + 0xf0]
subss xmm1, dword [esp + esi*4 + 0xf0]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm2
movaps xmm2, xmm0
addss xmm2, xmm1
cmp ecx, 0xffffffff
jne 0x4379f0
jmp 0x437b98
dec ecx
pxor xmm2, xmm2
cmp ecx, 0xffffffff
je 0x437b98
nop dword [eax + eax]
mov eax, dword [edi + edx*4 + 0x900]
dec ecx
movss xmm0, dword [edi + edx*4]
mov esi, dword [edi + edx*4 + 0x904]
movss xmm6, dword [eax*4 + 0x54a440]
mulss xmm6, xmm1
andps xmm0, xmmword [0x4c1930]
movss xmm7, dword [esi*4 + 0x54a440]
subss xmm0, xmm6
mulss xmm7, xmm1
mulss xmm0, xmm0
movss xmm6, dword [edi + edx*4 + 4]
add edx, 2
andps xmm6, xmmword [0x4c1930]
addss xmm0, xmm2
subss xmm6, xmm7
mulss xmm6, xmm6
movaps xmm2, xmm0
addss xmm2, xmm6
cmp ecx, 0xffffffff
jne 0x437a60
jmp 0x437b98
test ecx, ecx
je 0x437b94
mov eax, ecx
pxor xmm2, xmm2
shr eax, 1
mov dword [esp + 0xe0], eax
je 0x43824f
xor eax, eax
lea edx, [edi + esi*4]
mov dword [esp + 0x10c], esi
mov dword [esp + 0x168], edi
mov esi, eax
mov edi, dword [esp + 0xe0]
movss xmm1, dword [esi + edx]
inc eax
mulss xmm1, xmm1
movss xmm0, dword [esi + edx + 4]
addss xmm1, xmm2
mulss xmm0, xmm0
movss xmm2, dword [esi + edx + 8]
addss xmm1, xmm0
mulss xmm2, xmm2
movss xmm6, dword [esi + edx + 0xc]
add esi, 0x10
mulss xmm6, xmm6
addss xmm2, xmm1
addss xmm2, xmm6
cmp eax, edi
jb 0x437b03
mov esi, dword [esp + 0x10c]
lea edx, [esi + eax*4]
mov edi, dword [esp + 0x168]
lea eax, [eax + eax + 1]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xe4]
lea eax, [eax - 1]
cmp eax, ecx
jae 0x437b98
mov eax, dword [esp + 0xe4]
lea edx, [esi + eax*2]
movss xmm0, dword [edi + edx*4 - 8]
mulss xmm0, xmm0
movss xmm1, dword [edi + edx*4 - 4]
addss xmm2, xmm0
mulss xmm1, xmm1
addss xmm2, xmm1
jmp 0x437b98
pxor xmm2, xmm2
divss xmm2, xmm5
movaps xmm0, xmm2
mov esi, edx
maxss xmm0, dword [0x4c1ad8]
movss dword [esp], xmm0
movss dword [esp + 0x11c], xmm2
movss dword [esp + 0x104], xmm4
movss dword [esp + 0x108], xmm3
call fcn.0042d830
fstp dword [esp + 0xe8]
movss xmm5, dword [esp + 0xe8]
movss xmm3, dword [esp + 0x108]
movss xmm4, dword [esp + 0x104]
movss xmm2, dword [esp + 0x11c]
cvtss2sd xmm5, xmm5
mulsd xmm5, qword [0x4c1a98]
cvtsd2ss xmm5, xmm5
mov eax, dword [esp + 0x148]
pxor xmm0, xmm0
addss xmm3, xmm5
movss dword [eax], xmm2
add eax, 4
mov dword [esp + 0x148], eax
comiss xmm5, xmm0
jbe 0x437c78
movss xmm0, dword [0x4c1adc]
mov edx, 1
mulss xmm0, xmm5
cvtss2sd xmm0, xmm0
movss xmm1, dword [esp + 0x100]
inc dword [esp + 0xfc]
addss xmm1, xmm5
addsd xmm0, qword [0x4c1a68]
cvttsd2si eax, xmm0
test eax, eax
movss dword [esp + 0x100], xmm1
cmovg edx, eax
imul edx, edx
add dword [esp + 0xf8], edx
inc ebx
maxss xmm4, xmm5
cmp ebx, dword [edi + 0x1300]
jl 0x4378fe
movss xmm0, dword [esp + 0x100]
movsd xmm2, qword [esp + 0x20]
mov ebx, dword [esp + 0x3c]
movsd xmm1, qword [0x4c1a68]
movsd xmm7, qword [0x4c1aa0]
movss xmm5, dword [0x4c1aec]
movsd xmm6, qword [0x4c1a90]
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 0x12f0]
cmp dword [edi + 0x12b4], 2
je 0x438709
cmp dword [edi + 0x12b8], 0
jne 0x437ce2
mov eax, 0x16
jmp 0x437cea
test eax, eax
jle 0x438089
xor edx, edx
mov dword [esp + 0x14c], edx
mov dword [esp + 0x38], edx
imul edx, ebx, 0xb0
movss dword [esp + 0x100], xmm0
movss xmm1, dword [0x4c1afc]
pxor xmm0, xmm0
mov esi, dword [esp + 0x15c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x17c], edx
mov dword [esp + 0x164], eax
add esi, edx
mov dword [esp + 0x124], esi
mov dword [esp + 0x168], edi
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x14c]
mov eax, dword [ecx + esi*4 + 0x5374]
mov edx, dword [ecx + esi*4 + 0x5378]
mov dword [esp + 0x178], ebx
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], edx
cmp ebx, edx
jge 0x437ea6
lea edx, [ebx + 1]
neg edx
add edx, dword [esp + 0x174]
inc edx
cmp edx, 8
jl 0x43825f
mov eax, dword [esp + 0x168]
lea edi, [eax + ebx*4]
mov dword [esp + 0x150], edi
and edi, 0xf
mov eax, edi
neg eax
add eax, 0x10
shr eax, 2
test edi, edi
cmovne edi, eax
mov dword [esp + 0x158], edi
lea eax, [edi + 8]
cmp edx, eax
jl 0x43825f
mov eax, edx
sub eax, edi
and eax, 7
pxor xmm5, xmm5
neg eax
add eax, edx
test edi, edi
jbe 0x437e14
mov dword [esp + 0x154], 0
mov dword [esp + 0x14c], ebx
mov ecx, dword [esp + 0x154]
mov ebx, edi
mov edi, dword [esp + 0x150]
movss xmm6, dword [edi + ecx*4]
inc ecx
mulss xmm6, xmm6
addss xmm5, xmm6
cmp ecx, ebx
jb 0x437df1
mov dword [esp + 0x158], ebx
mov ebx, dword [esp + 0x14c]
mov ecx, dword [ebp + 8]
mov ecx, dword [esp + 0x158]
pxor xmm6, xmm6
movss xmm6, xmm5
mov edi, dword [esp + 0x150]
pxor xmm5, xmm5
movups xmm7, xmmword [edi + ecx*4]
mulps xmm7, xmm7
addps xmm6, xmm7
movups xmm7, xmmword [edi + ecx*4 + 0x10]
mulps xmm7, xmm7
add ecx, 8
addps xmm5, xmm7
cmp ecx, eax
jb 0x437e2e
mov dword [esp + 0x158], ecx
addps xmm6, xmm5
movaps xmm5, xmm6
movhlps xmm5, xmm6
mov edi, ecx
add ebx, edi
sub edi, eax
addps xmm6, xmm5
movaps xmm7, xmm6
sub ebx, edi
shufps xmm7, xmm6, 0xf5
mov ecx, dword [ebp + 8]
addss xmm6, xmm7
cmp eax, edx
jae 0x437eaa
mov ebx, dword [esp + 0x168]
mov edi, dword [esp + 0x178]
lea ebx, [ebx + edi*4]
movss xmm5, dword [ebx + eax*4]
inc eax
mulss xmm5, xmm5
addss xmm6, xmm5
cmp eax, edx
jb 0x437e88
mov edx, dword [esp + 0x178]
lea ebx, [edx + eax]
jmp 0x437eaa
pxor xmm6, xmm6
mov eax, dword [esp + 0x174]
pxor xmm5, xmm5
sub eax, dword [esp + 0x170]
movaps xmm7, xmm1
cvtsi2ss xmm5, eax
divss xmm6, xmm5
mulss xmm7, xmm6
mov edx, dword [ecx + 0x14f30]
add edx, dword [esp + 0x160]
cvtss2sd xmm7, xmm7
mov edi, dword [esp + 0x17c]
add edx, edi
movsd qword [edx + esi*8 + 0x2e8f8], xmm7
movss xmm7, dword [esp + esi*4 + 0x21c]
mulss xmm7, xmm1
mulss xmm7, dword [esp + esi*4 + 0x2b8]
divss xmm7, xmm5
mov eax, dword [ecx + 0x14f30]
pxor xmm5, xmm5
add eax, dword [esp + 0x15c]
cvtss2sd xmm7, xmm7
add eax, edi
mov edx, dword [esp + 0x16c]
movsd qword [eax + esi*8 + 0x311f8], xmm7
movss xmm7, dword [edx + esi*4 + 0xf4]
comiss xmm7, xmm5
jbe 0x437f4c
cmp dword [ecx + 0xd8], 0
jne 0x437f4c
divss xmm6, xmm7
jmp 0x437f50
pxor xmm6, xmm6
mov eax, edx
mov edx, dword [ecx + 0x14f28]
mov edi, dword [ecx + 0x14f30]
mulss xmm6, dword [eax + esi*4]
add edi, dword [esp + 0x160]
mov eax, dword [esp + 0x17c]
add edi, eax
maxss xmm6, dword [edx + esi*4 + 0x18]
mulss xmm6, xmm1
cvtss2sd xmm6, xmm6
movsd qword [edi + esi*8 + 0x2e378], xmm6
mov edx, dword [ecx + 0x14f30]
add edx, dword [esp + 0x15c]
add edx, eax
mov edi, dword [esp + 0x168]
movsd qword [edx + esi*8 + 0x309f8], xmm0
cmp dword [edi + 0x12e0], 0
je 0x437ff3
cmp esi, 0xb
jl 0x437ff3
pxor xmm5, xmm5
movaps xmm6, xmm2
cvtsi2ss xmm5, dword [esi*4 + 0x4c11a0]
cvtss2sd xmm5, xmm5
mov eax, dword [ecx + 0x14f30]
xorps xmm6, xmmword [0x4c1940]
add eax, dword [esp + 0x15c]
mulsd xmm6, xmm5
add eax, dword [esp + 0x17c]
movsd qword [eax + esi*8 + 0x309f8], xmm6
cmp esi, 0x15
jge 0x438033
mov eax, dword [esp + 0x120]
pxor xmm5, xmm5
mov edx, dword [ecx + 0x14f30]
add edx, dword [esp + 0x124]
cvtsi2ss xmm5, dword [eax + esi*4]
cvtss2sd xmm5, xmm5
mulsd xmm5, xmm2
movsd xmm6, qword [edx + esi*8 + 0x309f8]
subsd xmm6, xmm5
movsd qword [edx + esi*8 + 0x309f8], xmm6
inc esi
cmp esi, dword [esp + 0x164]
jb 0x437d46
mov dword [esp + 0x14c], ebx
movss xmm0, dword [esp + 0x100]
mov eax, dword [esp + 0x164]
mov ebx, dword [esp + 0x3c]
movsd xmm1, qword [0x4c1a68]
movsd xmm7, qword [0x4c1aa0]
movss xmm5, dword [0x4c1aec]
movsd xmm6, qword [0x4c1a90]
cmp dword [edi + 0x12b4], 2
je 0x43826f
mov esi, dword [ecx + 0x14f30]
mov edx, dword [esp + 0x4c]
mov eax, dword [edi + 0x12ac]
cvtss2sd xmm4, xmm4
cvtss2sd xmm0, xmm0
cvtss2sd xmm3, xmm3
mulsd xmm4, xmm7
mulsd xmm0, xmm7
mulsd xmm3, xmm7
lea esi, [esi + edx*8]
mov dword [esi + ebx*4 + 0x31198], eax
mov esi, dword [ecx + 0x14f30]
mov eax, dword [edi + 0x12a0]
add eax, dword [edi + 0x12ec]
lea esi, [esi + edx*8]
mov dword [esi + ebx*4 + 0x31a88], eax
mov eax, dword [ecx + 0x14f30]
mov edi, dword [edi + 0x12ec]
mov esi, dword [esp + 0xfc]
lea eax, [eax + edx*8]
mov dword [eax + ebx*4 + 0x31a98], edi
mov edi, dword [ecx + 0x14f30]
mov eax, dword [esp + 0x48]
lea edi, [edi + edx*8]
mov dword [edi + ebx*4 + 0x31998], esi
lea edi, [eax + ebx*8]
mov esi, dword [ecx + 0x14f30]
movsd qword [esi + edi + 0x319c8], xmm4
mov eax, dword [ecx + 0x14f30]
movsd qword [eax + edi + 0x319e8], xmm0
mov esi, dword [ecx + 0x14f30]
movsd qword [esi + edi + 0x319a8], xmm3
mov edi, dword [ecx + 0x14f30]
mov esi, dword [esp + 0x120]
lea eax, [edi + edx*8]
mov edx, dword [esp + 0xf8]
mov dword [eax + ebx*4 + 0x31a08], edx
movups xmm2, xmmword [esp + 0x200]
movups xmmword [esi + 0x80], xmm2
movsd xmm0, qword [esp + 0x210]
movsd qword [esi + 0x90], xmm0
mov edx, dword [esp + 0x218]
mov dword [esi + 0x98], edx
mov edx, 0x80
mov eax, dword [esp + 0x120]
movups xmm0, xmmword [esp + edx + 0x170]
movups xmmword [eax + edx - 0x10], xmm0
movups xmm2, xmmword [esp + edx + 0x160]
movups xmmword [eax + edx - 0x20], xmm2
movups xmm3, xmmword [esp + edx + 0x150]
movups xmmword [eax + edx - 0x30], xmm3
movups xmm4, xmmword [esp + edx + 0x140]
movups xmmword [eax + edx - 0x40], xmm4
sub edx, 0x40
jne 0x438188
inc ebx
mov eax, dword [ecx + 0x4c]
cmp ebx, eax
jl 0x436ef6
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
mov edi, dword [edi + 0x50]
inc ecx
invalid