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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push esi
push edi
push ebx
sub esp, 0xb4
mov esi, dword [ebp + 0x4c]
movq xmm0, qword [0x4f4338]
movq xmm1, qword [0x4f4340]
mov dword [esp], esi
movq qword [esp + 4], xmm0
mov dword [esp + 0xc], 0x4f4350
movq qword [esp + 0x10], xmm1
mov dword [esp + 0x18], 0
call fcn.00449d70
movq xmm1, qword [0x4f4340]
lea eax, [esi + 0x50]
movq xmm0, qword [0x4f4338]
mov dword [esp], eax
movq qword [esp + 4], xmm0
mov dword [esp + 0xc], 0x4f4358
movq qword [esp + 0x10], xmm1
mov dword [esp + 0x18], 0
call fcn.00449d70
movq xmm1, qword [0x4f4340]
lea eax, [esi + 0xa0]
movq xmm0, qword [0x4f4338]
mov dword [esp], eax
movq qword [esp + 4], xmm0
mov dword [esp + 0xc], 0x4f4360
movq qword [esp + 0x10], xmm1
mov dword [esp + 0x18], 0
call fcn.00449d70
mov eax, dword [ebp + 0x38]
mov ebx, dword [ebp + 0x3c]
movsd xmm0, qword [0x4f42d0]
movsd xmm2, qword [eax]
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x24]
mov edx, dword [ebp + 0x34]
movsd xmm1, qword [ecx]
comisd xmm1, xmm0
addsd xmm2, qword [ebx]
mulsd xmm2, xmm0
movsd qword [0x52fdd8], xmm2
jbe 0x401157
movsd xmm0, qword [0x4f42d8]
comisd xmm0, xmm2
jbe 0x40110f
movsd xmm0, qword [0x4f42e0]
movsd qword [edi], xmm0
movsd xmm0, qword [edx]
jmp 0x4011bc
movsd xmm0, qword [0x4f42e8]
movsd qword [esp], xmm2
movsd qword [esp + 8], xmm0
call fcn.004c1200
fstp qword [esp + 0x90]
mov edx, dword [ebp + 0x34]
movsd xmm0, qword [esp + 0x90]
movsd xmm1, qword [0x4f42f0]
mulsd xmm1, xmm0
mov eax, dword [ebp + 0x18]
movsd qword [edi], xmm1
movsd xmm0, qword [edx]
movsd xmm1, qword [eax]
jmp 0x4011bc
call fcn.00417220
fstp qword [esp + 0x90]
mov edx, dword [ebp + 0x34]
movsd xmm1, qword [esp + 0x90]
movsd xmm0, qword [edx]
comisd xmm0, xmm1
jbe 0x401192
movsd xmm1, qword [ebx]
mov eax, dword [ebp + 0x18]
subsd xmm1, qword [0x4f42f8]
movsd qword [edi], xmm1
movsd xmm1, qword [eax]
jmp 0x4011bc
mov eax, dword [ebp + 0x40]
movsd xmm1, qword [ebx]
mov ecx, dword [ebp + 0x18]
movsd xmm2, qword [eax]
addsd xmm2, qword [0x4f42d0]
subsd xmm1, qword [0x4f42f8]
maxsd xmm2, xmm1
movsd xmm1, qword [ecx]
movsd qword [edi], xmm2
movsd xmm2, qword [0x4f4348]
mov eax, dword [ebp + 0x30]
subsd xmm2, xmm1
movsd xmm3, qword [eax]
mulsd xmm3, xmm1
mulsd xmm2, xmm0
movsd xmm0, qword [0x4f42d0]
addsd xmm3, xmm2
comisd xmm0, xmm1
movsd qword [0x52fde0], xmm3
jbe 0x40124c
mov ecx, dword [ebp + 0x1c]
lea eax, [esp + 0x9c]
mov ecx, dword [ecx]
add ecx, 0xfffffffc
mov dword [eax], ecx
push 0xc
push 0xd
push 0x52fe78
push eax
mov eax, 0x4f4270
push eax
push 0x4f4274
push eax
push 0x4f4368
push 0x4f4378
push 0x52fde8
push 0x52fdf0
push 0x52fdf8
push 0x52fe00
push 0x52fe08
push edx
push 0x52fe10
push ebx
call fcn.0041a490
add esp, 0x44
jmp 0x40125b
mov eax, dword [ebp + 0x44]
movsd xmm0, qword [eax]
movsd qword [0x52fdf8], xmm0
mov eax, dword [ebp + 8]
pxor xmm0, xmm0
pxor xmm1, xmm1
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movsd qword [eax + 0x20], xmm1
call fcn.00417860
fstp qword [esp + 0x90]
movsd xmm0, qword [esp + 0x90]
mov eax, dword [0x2207324]
dec eax
subsd xmm0, qword [0x4f4348]
movsd qword [0x52fe18], xmm0
mov ebx, dword [ebp + 0x48]
minsd xmm0, qword [edi]
movsd qword [edi], xmm0
cmp eax, 0x62
ja 0x40131b
push 0x52fe20
push 0x52fe28
push 0x52fde0
push ebx
push edi
push 0x2207324
push 0x4f4278
call fcn.00420e30
add esp, 0x1c
movsd xmm0, qword [0x52fe28]
mulsd xmm0, qword [0x4f4308]
mov eax, dword [ebp + 0x28]
movsd qword [0x52fe30], xmm0
movsd xmm1, qword [ebx]
movsd xmm3, qword [eax]
mulsd xmm0, xmm3
mulsd xmm1, xmm0
movsd qword [0x52fe38], xmm0
subsd xmm0, xmm1
mov edx, dword [ebp + 0x2c]
movsd qword [0x52fe40], xmm1
movsd qword [edx], xmm0
jmp 0x40157f
movsd xmm0, qword [0x4f4300]
movsd qword [ebx], xmm0
push edi
push ebx
push 0x52fe48
call fcn.00428600
add esp, 0xc
cmp eax, 1
je 0x401416
mov eax, dword [ebp + 0x1c]
mov ecx, 0x4f427c
mov dword [esp], ebx
mov dword [esp + 4], 0x52fde0
mov dword [esp + 8], 0x52fe48
mov dword [esp + 0xc], 0x4f4240
mov dword [esp + 0x10], 0x4f4248
mov dword [esp + 0x14], 0x4f4250
mov dword [esp + 0x18], 0x4f4258
mov dword [esp + 0x1c], 0x4f4280
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], 0x4f4270
mov dword [esp + 0x28], 0x4f4260
mov edx, dword [eax]
lea eax, [esp + 0x98]
mov dword [esp + 0x2c], ecx
add edx, 0xfffffffd
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0x4f4284
mov dword [esp + 0x38], 0x52fe50
mov dword [esp + 0x3c], 0x4f4388
mov dword [esp + 0x40], 0x4f4398
mov dword [esp + 0x44], 0x4f43a0
mov dword [esp + 0x48], 0x4f43b0
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], 0xc
mov dword [esp + 0x54], 6
mov dword [esp + 0x58], 0xc
mov dword [esp + 0x5c], 9
mov dword [eax], edx
mov dword [esp + 0x60], 0x50
call fcn.0040a190
cmp eax, 1
je 0x401327
movsd xmm0, qword [edi]
movsd xmm1, qword [0x4f4310]
subsd xmm0, qword [0x4f4320]
mulsd xmm0, qword [0x4f4318]
subsd xmm1, xmm0
mulsd xmm1, qword [0x4f4328]
movsd qword [esp + 0x88], xmm1
movsd qword [0x52fe58], xmm1
call fcn.00417220
fstp qword [esp + 0x80]
lea eax, [esp + 0x80]
push 0x4f4268
push eax
call fcn.00416e10
add esp, 8
fstp qword [esp + 0x90]
movsd xmm0, qword [esp + 0x90]
comisd xmm0, xmmword [edi]
jb 0x4014b9
push 0x4f4268
push edi
call fcn.004163e0
fstp qword [esp + 0x78]
lea eax, [esp + 0x78]
push 0x4f4268
push eax
call fcn.00418de0
fstp qword [esp + 0xa0]
movsd xmm0, qword [esp + 0xa0]
add esp, 0x10
jmp 0x4014e4
call fcn.00417220
fstp qword [esp + 0x78]
lea eax, [esp + 0x78]
push 0x4f4268
push eax
call fcn.00418de0
fstp qword [esp + 0x98]
movsd xmm0, qword [esp + 0x98]
add esp, 8
movsd xmm1, qword [0x4f4348]
divsd xmm1, xmm0
movsd qword [0x52fe60], xmm1
movsd xmm0, qword [ebx]
movsd xmm2, qword [0x4f4348]
movsd xmm3, qword [0x4f4330]
subsd xmm2, xmm0
comisd xmm3, xmm2
jbe 0x401536
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x2c]
pxor xmm0, xmm0
movsd xmm3, qword [edx]
mulsd xmm1, xmm3
movsd qword [eax], xmm0
movsd qword [0x52fe40], xmm1
jmp 0x40157f
divsd xmm0, xmm2
movaps xmm2, xmm0
divsd xmm2, xmm1
movsd xmm1, qword [0x4f4348]
divsd xmm1, qword [esp + 0x88]
mov eax, dword [ebp + 0x28]
addsd xmm2, xmm1
movsd xmm3, qword [eax]
movaps xmm1, xmm3
divsd xmm1, xmm2
mov edx, dword [ebp + 0x2c]
movsd qword [0x52fe68], xmm0
movsd qword [edx], xmm1
mulsd xmm1, xmm0
movsd qword [0x52fe40], xmm1
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
movsd xmm0, qword [eax]
movsd qword [ebx], xmm1
subsd xmm0, xmm3
divsd xmm0, qword [0x52fdf8]
movsd qword [esp + 0xa8], xmm0
movsd qword [0x52fe70], xmm0
call fcn.00417220
fstp qword [esp + 0xa0]
lea eax, [esp + 0xa0]
push 0x4f4268
push eax
call fcn.00416e10
add esp, 8
fstp qword [esp + 0x90]
movsd xmm0, qword [esp + 0x90]
comisd xmm0, xmmword [edi]
jb 0x40160e
push 0x4f4268
push edi
call fcn.004163e0
add esp, 8
fstp qword [esp + 0x88]
lea esi, [esp + 0x88]
mov ecx, 0x4f4268
mov edx, 0x52fd80
mov eax, 0x52fdb0
jmp 0x401630
call fcn.00417220
fstp qword [esp + 0x90]
lea esi, [esp + 0x90]
mov ecx, 0x4f4268
mov edx, 0x52fd80
mov eax, 0x52fdb0
push eax
push edx
push ecx
push esi
call fcn.00419760
add esp, 0x10
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax]
test ecx, ecx
jle 0x401832
movsd xmm3, qword [ebx]
cmp ecx, 4
jl 0x401849
mov edx, dword [ebp + 8]
and edx, 0xf
je 0x40166c
test dl, 7
jne 0x401849
mov edx, 1
lea eax, [edx + 4]
cmp ecx, eax
jl 0x401849
mov eax, ecx
sub eax, edx
and eax, 3
neg eax
add eax, ecx
test edx, edx
jbe 0x4016c8
movsd xmm4, qword [esp + 0xa8]
xor ebx, ebx
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
movsd xmm1, qword [esi + ebx*8]
mulsd xmm1, xmm4
pxor xmm2, xmm2
movsd xmm0, qword [ebx*8 + 0x52fd80]
mulsd xmm0, xmm3
addsd xmm1, qword [edi + ebx*8]
addsd xmm1, xmm0
maxsd xmm2, xmm1
movsd qword [edi + ebx*8], xmm2
inc ebx
cmp ebx, edx
jb 0x401697
lea ebx, [edx*8 + 0x52fd80]
test bl, 0xf
je 0x40175f
movsd xmm1, qword [esp + 0xa8]
movaps xmm2, xmm3
unpcklpd xmm1, xmm1
unpcklpd xmm2, xmm2
pxor xmm0, xmm0
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
nop dword [eax]
nop dword [eax]
movups xmm5, xmmword [ebx + edx*8]
movups xmm4, xmmword [edx*8 + 0x52fd80]
mulpd xmm5, xmm1
mulpd xmm4, xmm2
addpd xmm5, xmmword [esi + edx*8]
movups xmm7, xmmword [edx*8 + 0x52fd90]
addpd xmm5, xmm4
mulpd xmm7, xmm2
movups xmm4, xmmword [ebx + edx*8 + 0x10]
mulpd xmm4, xmm1
addpd xmm4, xmmword [esi + edx*8 + 0x10]
addpd xmm4, xmm7
movaps xmm6, xmm0
maxpd xmm6, xmm5
movaps xmm5, xmm0
maxpd xmm5, xmm4
movups xmmword [esi + edx*8], xmm6
movups xmmword [esi + edx*8 + 0x10], xmm5
add edx, 4
cmp edx, eax
jb 0x401700
jmp 0x4017da
movsd xmm1, qword [esp + 0xa8]
movaps xmm2, xmm3
unpcklpd xmm1, xmm1
unpcklpd xmm2, xmm2
pxor xmm0, xmm0
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
nop dword [eax]
movups xmm5, xmmword [ebx + edx*8]
mulpd xmm5, xmm1
movups xmm4, xmmword [edx*8 + 0x52fd80]
movaps xmm6, xmm0
mulpd xmm4, xmm2
addpd xmm5, xmmword [esi + edx*8]
addpd xmm5, xmm4
movups xmm4, xmmword [ebx + edx*8 + 0x10]
maxpd xmm6, xmm5
mulpd xmm4, xmm1
movups xmm7, xmmword [edx*8 + 0x52fd90]
movaps xmm5, xmm0
mulpd xmm7, xmm2
addpd xmm4, xmmword [esi + edx*8 + 0x10]
addpd xmm4, xmm7
maxpd xmm5, xmm4
movups xmmword [esi + edx*8], xmm6
movups xmmword [esi + edx*8 + 0x10], xmm5
add edx, 4
cmp edx, eax
jb 0x401780
cmp eax, ecx
jae 0x40181e
movsd xmm4, qword [esp + 0xa8]
mov edx, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
movsd xmm1, qword [edx + eax*8]
mulsd xmm1, xmm4
pxor xmm2, xmm2
movsd xmm0, qword [eax*8 + 0x52fd80]
mulsd xmm0, xmm3
addsd xmm1, qword [ebx + eax*8]
addsd xmm1, xmm0
maxsd xmm2, xmm1
movsd qword [ebx + eax*8], xmm2
inc eax
cmp eax, ecx
jb 0x4017ed
inc ecx
mov dword [0x52fe7c], ecx
add esp, 0xb4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [0x52fe7c], 1
add esp, 0xb4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
jmp 0x4017da