Function at 0x42e410
Capabilities:
Get number of processors

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x498d81
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x138
push esi
push edi
mov eax, dword [0x5025d4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x24], ecx
xorps xmm0, xmm0
push 0x30
movsd qword [ebp - 0x20], xmm0
call fcn.00464af2
mov esi, eax
lea ecx, [ebp - 0x20]
add esp, 4
mov dword [ebp - 0xfc], esi
lea eax, [esi + 0x30]
mov dword [ebp - 0xf4], eax
call fcn.0042fb80
test al, al
je 0x42e49f
mov edx, 6
mov ecx, esi
call fcn.0042fbb0
mov eax, dword [ebp - 0xf4]
xorps xmm0, xmm0
jmp 0x42e4b8
xorps xmm0, xmm0
lea eax, [esi + 8]
movsd qword [esi], xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movsd qword [eax + 0x20], xmm0
add eax, 0x28
mov dword [ebp - 0xf8], eax
mov dword [ebp - 4], 0
push 0x30
movsd qword [ebp - 0x20], xmm0
call fcn.00464af2
mov esi, eax
lea ecx, [ebp - 0x20]
add esp, 4
mov dword [ebp - 0xbc], esi
lea eax, [esi + 0x30]
mov dword [ebp - 0xb4], eax
call fcn.0042fb80
test al, al
je 0x42e508
mov edx, 6
mov ecx, esi
call fcn.0042fbb0
mov eax, dword [ebp - 0xb4]
xorps xmm0, xmm0
jmp 0x42e521
xorps xmm0, xmm0
lea eax, [esi + 8]
movsd qword [esi], xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movsd qword [eax + 0x20], xmm0
add eax, 0x28
mov dword [ebp - 0xb8], eax
mov byte [ebp - 4], 1
push 0x30
movsd qword [ebp - 0x20], xmm0
call fcn.00464af2
mov esi, eax
lea ecx, [ebp - 0x20]
add esp, 4
mov dword [ebp - 0xf0], esi
lea eax, [esi + 0x30]
mov dword [ebp - 0xe8], eax
call fcn.0042fb80
test al, al
je 0x42e56e
mov edx, 6
mov ecx, esi
call fcn.0042fbb0
mov eax, dword [ebp - 0xe8]
xorps xmm0, xmm0
jmp 0x42e587
xorps xmm0, xmm0
lea eax, [esi + 8]
movsd qword [esi], xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movsd qword [eax + 0x20], xmm0
add eax, 0x28
mov dword [ebp - 0xec], eax
mov byte [ebp - 4], 2
push 0x30
movsd qword [ebp - 0x20], xmm0
call fcn.00464af2
mov esi, eax
lea ecx, [ebp - 0x20]
add esp, 4
mov dword [ebp - 0x74], esi
lea eax, [esi + 0x30]
mov dword [ebp - 0x6c], eax
call fcn.0042fb80
test al, al
je 0x42e5cb
mov edx, 6
mov ecx, esi
call fcn.0042fbb0
mov eax, dword [ebp - 0x6c]
xorps xmm0, xmm0
jmp 0x42e5e4
xorps xmm0, xmm0
lea eax, [esi + 8]
movsd qword [esi], xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movsd qword [eax + 0x20], xmm0
add eax, 0x28
mov dword [ebp - 0x70], eax
mov byte [ebp - 4], 3
push 0x30
movsd qword [ebp - 0x20], xmm0
call fcn.00464af2
mov esi, eax
lea ecx, [ebp - 0x20]
add esp, 4
mov dword [ebp - 0x8c], esi
lea eax, [esi + 0x30]
mov dword [ebp - 0x84], eax
call fcn.0042fb80
test al, al
je 0x42e62e
mov edx, 6
mov ecx, esi
call fcn.0042fbb0
mov eax, dword [ebp - 0x84]
xorps xmm0, xmm0
jmp 0x42e647
xorps xmm0, xmm0
lea eax, [esi + 8]
movsd qword [esi], xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movsd qword [eax + 0x20], xmm0
add eax, 0x28
mov dword [ebp - 0x88], eax
mov byte [ebp - 4], 4
push 0x30
movsd qword [ebp - 0x20], xmm0
call fcn.00464af2
mov esi, eax
lea ecx, [ebp - 0x20]
add esp, 4
mov dword [ebp - 0x80], esi
lea eax, [esi + 0x30]
mov dword [ebp - 0x78], eax
call fcn.0042fb80
test al, al
je 0x42e68b
mov edx, 6
mov ecx, esi
call fcn.0042fbb0
mov eax, dword [ebp - 0x78]
xorps xmm0, xmm0
jmp 0x42e6a4
xorps xmm0, xmm0
lea eax, [esi + 8]
movsd qword [esi], xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movsd qword [eax + 0x20], xmm0
add eax, 0x28
mov dword [ebp - 0x7c], eax
xor eax, eax
mov byte [ebp - 4], 5
lea ecx, [edi + 0x13340]
mov dword [ebp - 0x40], eax
lea edx, [edi + 0x6a8]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x18], edx
nop dword [eax]
nop word [eax + eax]
mov dword [edx], 2
mov esi, 6
nop dword [eax + eax]
mov edx, 6
nop word [eax + eax]
movsd qword [ecx - 0x12a20], xmm0
movsd qword [ecx], xmm0
movsd qword [ecx + 0x3ba0], xmm0
movsd qword [ecx + 0x7740], xmm0
add ecx, 0x1a8
movsd qword [edi + eax + 0x44c0], xmm0
movsd qword [edi + eax + 0x20f80], xmm0
movsd qword [edi + eax + 0x44c8], xmm0
movsd qword [edi + eax + 0x20f88], xmm0
movsd qword [edi + eax + 0x44d0], xmm0
movsd qword [edi + eax + 0x20f90], xmm0
movsd qword [edi + eax + 0x44d8], xmm0
movsd qword [edi + eax + 0x20f98], xmm0
add eax, 0x6a0
sub edx, 1
jne 0x42e6f0
sub esi, 1
jne 0x42e6e0
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x18]
add eax, 0x20
mov ecx, dword [ebp - 0x44]
add edx, 0xc
add ecx, 8
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], eax
cmp eax, 0x6a0
jl 0x42e6d0
mov ecx, dword [ebp - 0x24]
add ecx, 0x1c
call fcn.0042fe20
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 0xc0], eax
cmovne esi, dword [0x50adb0]
add ecx, 0x64
mov dword [ebp - 0x50], esi
call fcn.0042fe20
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x38], 0
cmp dword [ecx + 0xc0], eax
mov ecx, 0
mov eax, dword [0x50adac]
cmovne ecx, dword [0x50adb8]
xor edx, edx
test esi, esi
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xd4], ecx
setne dl
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x11c], edx
setne al
add eax, edx
add eax, dword [0x50adb4]
xor esi, esi
mov dword [ebp - 0x5c], eax
cmp esi, 3
jne 0x42e816
mov ecx, dword [ebp - 0x24]
movsd xmm0, qword [ecx + 0x108]
jmp 0x42e86a
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 0x18]
mov dword [ebp - 0x18], 0
mov ecx, dword [eax + 0xd0]
call fcn.004526f0
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x18]
mov dword [ebp - 0x18], 0
movsd xmm0, qword [eax + 0x10]
mov eax, dword [ebp - 0x24]
movsd qword [ebp - 0x20], xmm0
mov ecx, dword [eax + 0xd0]
call fcn.004526f0
mov eax, dword [ebp - 0x18]
mov ecx, esi
movsd xmm2, qword [ebp - 0x20]
movsd xmm1, qword [eax + 0x28]
call fcn.004526a0
mov eax, dword [ebp - 0x5c]
movsd qword [edi + esi*8 + 0x680], xmm0
lea edx, [esi + esi*2]
xorps xmm0, xmm0
xor ecx, ecx
movsd qword [edi + esi*8 + 0x660], xmm0
add edx, edx
lea esi, [esi + esi*2]
mov dword [ebp - 0x14], ecx
add esi, 0x5a
mov dword [ebp - 0xd8], edx
add esi, esi
mov dword [ebp - 0x114], esi
nop dword [eax]
xorps xmm1, xmm1
movsd qword [ebp - 0xc8], xmm0
xor esi, esi
movsd qword [ebp - 0x68], xmm1
movsd qword [ebp - 0x98], xmm1
movsd qword [ebp - 0xd0], xmm0
movsd qword [ebp - 0x20], xmm0
mov dword [ebp - 0xe4], esi
test eax, eax
js 0x42f6ca
mov edx, dword [ebp - 0x74]
mov eax, 0x50b058
sub eax, edx
mov edi, dword [ebp - 0x90]
mov dword [ebp - 0x118], eax
mov eax, 0x50b028
sub eax, edx
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x8c]
sub eax, edx
lea edx, [ecx + ecx*2]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0xd8]
add eax, ecx
shl edx, 4
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x11c]
neg eax
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x54], eax
lea eax, [edi + 0x6a0]
mov dword [ebp - 0x18], eax
imul eax, dword [ebp - 0x58], 0x1a8
add eax, 0x1e700
add eax, edi
mov dword [ebp - 0x44], eax
imul eax, ecx, 0x9f0
add eax, 0x13340
add eax, edi
mov dword [ebp - 0x3c], eax
imul eax, ecx, 0x4f8
add eax, 0x41f0
add eax, dword [ebp - 0x38]
lea eax, [edi + eax*8]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x42e973
cmp esi, 2
jae 0x42e973
xor eax, eax
jmp 0x42e97c
mov eax, 0xc
test ecx, ecx
je 0x42e987
test esi, esi
je 0x42e987
mov ecx, 1
jmp 0x42e989
xor ecx, ecx
imul ecx, dword [ebp - 0x50]
imul eax, dword [ebp - 0x54]
add eax, ecx
mov ecx, dword [ebp - 0x40]
cmp eax, ecx
jge 0x42e9da
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x42e9aa
cmp esi, 2
jae 0x42e9aa
xor eax, eax
jmp 0x42e9b1
mov eax, dword [ebp - 0x54]
test ecx, ecx
je 0x42e9c9
test esi, esi
je 0x42e9c9
mov ecx, 1
lea eax, [eax + eax*2]
imul ecx, dword [ebp - 0x50]
lea esi, [ecx + eax*4]
mov dword [ebp - 0x48], esi
jmp 0x42e9df
xor ecx, ecx
lea eax, [eax + eax*2]
imul ecx, dword [ebp - 0x50]
lea esi, [ecx + eax*4]
mov dword [ebp - 0x48], esi
jmp 0x42e9df
mov esi, ecx
mov dword [ebp - 0x48], ecx
cmp dword [0x50adc8], 0
movsd xmm1, qword [edx + edi + 0x128]
jne 0x42e9fb
subsd xmm1, qword [0x50ae08]
jmp 0x42ea51
mov eax, 0x2aaaaaab
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 2
sub eax, ecx
cmp eax, dword [0x50adb0]
je 0x42ea32
cmp esi, dword [0x50adac]
je 0x42ea32
mov edx, dword [ebp - 0x34]
movsd qword [0x50aff0], xmm0
jmp 0x42ea59
subsd xmm1, qword [0x50ae08]
mov edx, dword [ebp - 0x34]
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
divsd xmm1, qword [0x4e8070]
movsd qword [0x50aff0], xmm1
movsd xmm3, qword [edx + edi + 0x128]
movsd xmm2, qword [edx + edi + 0x488]
mov edx, esi
mov ecx, dword [ebp - 0x14]
call fcn.00450ff0
mov eax, dword [ebp - 0xfc]
mov edx, esi
movsd xmm0, qword [0x50af60]
mov ecx, dword [ebp - 0x14]
movsd qword [eax], xmm0
movsd xmm0, qword [0x50af68]
movsd qword [eax + 8], xmm0
movsd xmm0, qword [0x50af70]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [0x50af78]
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [0x50af80]
movsd qword [eax + 0x20], xmm0
movsd xmm0, qword [0x50af88]
movsd qword [eax + 0x28], xmm0
mov eax, dword [ebp - 0x34]
movsd xmm3, qword [eax + edi + 0x128]
movsd xmm2, qword [eax + edi + 0x488]
call fcn.00450ff0
cmp byte [0x50ade0], 0
xorps xmm0, xmm0
je 0x42eaf8
xorps xmm2, xmm2
jmp 0x42eb1b
mov eax, dword [0x50adac]
sub eax, esi
movd xmm2, eax
cvtdq2pd xmm2, xmm2
mulsd xmm2, qword [0x4e7f88]
subsd xmm2, qword [0x4e7fa0]
maxsd xmm2, xmm0
movsd qword [ebp - 0x30], xmm2
mov eax, 0x50b058
nop word [eax + eax]
movsd qword [eax - 0x30], xmm0
movsd qword [eax], xmm0
add eax, 8
cmp eax, 0x50b088
jl 0x42eb30
mov esi, 0x50b030
nop dword [eax + eax]
movsd xmm1, qword [esi - 0xc8]
mov ecx, 2
maxsd xmm0, xmm1
movsd qword [ebp - 0xe0], xmm1
mulsd xmm0, xmm2
call fcn.00452410
movsd xmm1, qword [ebp - 0xe0]
mov ecx, 2
subsd xmm1, xmm0
movsd qword [esi], xmm0
movsd qword [esi + 0x30], xmm1
addsd xmm0, qword [0x50b028]
movsd qword [0x50b028], xmm0
movsd xmm0, qword [esi + 0x30]
call fcn.00452410
addsd xmm0, qword [0x50b058]
movsd xmm2, qword [ebp - 0x30]
add esi, 8
movsd qword [0x50b058], xmm0
xorps xmm0, xmm0
cmp esi, 0x50b050
jle 0x42eb50
mov esi, dword [ebp - 0x74]
mov edi, 6
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ebp - 0x118]
mov ecx, 2
movsd xmm0, qword [eax + esi]
call fcn.00452410
mov eax, dword [ebp - 0x110]
lea esi, [esi + 8]
movsd qword [esi - 8], xmm0
movsd xmm0, qword [eax + esi - 8]
mov eax, dword [ebp - 0x10c]
movsd qword [eax + esi - 8], xmm0
sub edi, 1
jne 0x42ebe0
mov eax, dword [ebp - 0x34]
mov edi, dword [ebp - 0x90]
mov esi, dword [ebp - 0x48]
mov edx, esi
mov ecx, dword [ebp - 0x14]
movsd xmm3, qword [eax + edi + 0x128]
movsd xmm2, qword [eax + edi + 0x488]
call fcn.00451680
mov eax, dword [ebp - 0x80]
movsd xmm0, qword [0x50aff8]
movsd qword [eax], xmm0
movsd xmm0, qword [0x50b000]
movsd qword [eax + 8], xmm0
movsd xmm0, qword [0x50b008]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [0x50b010]
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [0x50b018]
movsd qword [eax + 0x20], xmm0
movsd xmm0, qword [0x50b020]
movsd qword [eax + 0x28], xmm0
test esi, esi
jle 0x42eca9
cmp esi, dword [ebp - 0x40]
jne 0x42ecbc
cmp dword [ebp - 0xd4], 0
je 0x42ecbc
jmp 0x42eec4
jne 0x42eec4
cmp dword [0x50adc8], 0
jne 0x42eec4
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x98]
mov ecx, esi
push eax
call fcn.004518d0
mov eax, dword [ebp - 0x38]
add esp, 8
movsd xmm1, qword [ebp - 0x20]
mov ecx, esi
addsd xmm1, qword [ebp - 0xc8]
movsd xmm3, qword [ebp - 0xd0]
movsd xmm0, qword [edi + eax*8 + 0x680]
mov edx, dword [ebp - 0x14]
movsd qword [ebp - 0x30], xmm0
movsd xmm0, qword [edi + eax*8 + 0x660]
movaps xmm2, xmm1
mov eax, dword [ebp - 0x34]
movsd qword [ebp - 0x128], xmm0
movsd qword [ebp - 0xc8], xmm1
movsd xmm0, qword [eax + edi + 0x488]
movsd qword [ebp - 0x68], xmm0
movsd xmm0, qword [eax + edi + 0x128]
movsd qword [ebp - 0xe0], xmm0
movsd xmm0, qword [eax + edi + 0x130]
movsd qword [ebp - 0x138], xmm0
movsd xmm0, qword [eax + edi + 0x138]
movsd qword [ebp - 0x130], xmm0
call fcn.00451c60
movsd xmm3, qword [ebp - 0xe0]
mov edx, esi
movsd xmm2, qword [ebp - 0x68]
mov ecx, dword [ebp - 0x14]
call fcn.00450ff0
cmp dword [0x50b218], 0
xorps xmm1, xmm1
movsd xmm3, qword [0x50af98]
addsd xmm3, qword [0x50af68]
movsd xmm0, qword [0x50afa0]
addsd xmm0, qword [0x50af70]
mov eax, dword [0x50b088]
movsd xmm2, qword [ebp - 0x30]
movaps xmm5, xmm3
movsd xmm4, qword [0x4e8020]
addsd xmm5, qword [0x50af80]
subsd xmm2, qword [eax + 0x10]
subsd xmm4, qword [eax + 0x98]
maxsd xmm0, xmm1
movsd qword [ebp - 0x108], xmm3
addsd xmm5, qword [0x50afb0]
movsd qword [ebp - 0x30], xmm2
movsd qword [ebp - 0xb0], xmm4
addsd xmm5, qword [0x50af88]
addsd xmm5, qword [0x50afb8]
addsd xmm5, xmm0
movsd xmm0, qword [0x50af78]
maxsd xmm0, xmm1
addsd xmm5, xmm0
mulsd xmm5, xmm2
mulsd xmm5, xmm4
addsd xmm5, qword [ebp - 0x98]
movsd qword [ebp - 0x68], xmm5
movsd qword [ebp - 0xe0], xmm5
movsd qword [ebp - 0x98], xmm5
je 0x42eea7
mov ecx, dword [0x50adc8]
movsd xmm0, qword [ebp - 0x138]
call fcn.00452590
mov ecx, dword [0x50adc8]
movsd qword [ebp - 0x68], xmm0
movsd xmm0, qword [ebp - 0x130]
call fcn.00452590
movsd xmm1, qword [ebp - 0x68]
movsd xmm2, qword [ebp - 0x30]
addsd xmm1, xmm0
movsd xmm3, qword [ebp - 0x108]
movsd xmm4, qword [ebp - 0xb0]
mov esi, dword [ebp - 0x48]
mulsd xmm1, qword [ebp - 0x128]
addsd xmm1, qword [ebp - 0xe0]
movsd qword [ebp - 0x68], xmm1
movsd qword [ebp - 0x98], xmm1
mov eax, dword [ebp - 0x14]
cmp eax, 2
je 0x42eeb4
cmp eax, 3
jne 0x42eec4
movaps xmm0, xmm3
mulsd xmm0, xmm2
mulsd xmm0, xmm4
movsd qword [ebp - 0x20], xmm0
mov eax, dword [ebp - 0x38]
mov ecx, esi
movsd xmm3, qword [ebp - 0xd0]
movsd xmm2, qword [ebp - 0xc8]
mov edx, dword [ebp - 0x14]
movsd xmm0, qword [edi + eax*8 + 0x680]
mov eax, dword [ebp - 0x34]
movsd qword [ebp - 0x30], xmm0
movsd xmm0, qword [eax + edi + 0x488]
movsd qword [ebp - 0x108], xmm0
movsd xmm0, qword [eax + edi + 0x128]
movsd qword [ebp - 0xb0], xmm0
call fcn.00451c60
movsd xmm3, qword [ebp - 0xb0]
mov edx, esi
movsd xmm2, qword [ebp - 0x108]
mov ecx, dword [ebp - 0x14]
call fcn.00450ff0
xorps xmm0, xmm0
movaps xmmword [0x50afc0], xmm0
movaps xmmword [0x50afd0], xmm0
movaps xmmword [0x50afe0], xmm0
test esi, esi
jg 0x42ef62
jne 0x42ef55
cmp dword [0x50adc8], 0
je 0x42ef62
movsd xmm1, qword [0x50afc0]
jmp 0x42f0e9
mov eax, dword [0x50b088]
movsd xmm2, qword [ebp - 0x30]
movsd xmm0, qword [0x50af98]
movaps xmm1, xmm2
addsd xmm0, qword [0x50af68]
subsd xmm1, qword [eax + 0x10]
movsd xmm3, qword [0x4e8020]
movsd qword [ebp - 0xb0], xmm0
mulsd xmm1, xmm0
movaps xmm0, xmm3
subsd xmm0, qword [eax + 0x98]
mulsd xmm1, xmm0
movsd xmm0, qword [0x50afb0]
addsd xmm0, qword [0x50af80]
movsd qword [0x50afc8], xmm1
movaps xmm1, xmm2
subsd xmm1, qword [eax + 0x10]
mulsd xmm1, xmm0
movaps xmm0, xmm3
subsd xmm0, qword [eax + 0x98]
mulsd xmm1, xmm0
movsd xmm0, qword [0x50afb8]
addsd xmm0, qword [0x50af88]
movsd qword [0x50afe0], xmm1
movaps xmm1, xmm2
subsd xmm1, qword [eax + 0x10]
mulsd xmm1, xmm0
movaps xmm0, xmm3
subsd xmm0, qword [eax + 0x98]
movsd xmm3, qword [0x50afa0]
addsd xmm3, qword [0x50af70]
mulsd xmm1, xmm0
xorps xmm0, xmm0
maxsd xmm3, xmm0
movsd xmm0, qword [0x4e8020]
movsd qword [0x50afe8], xmm1
movaps xmm1, xmm2
subsd xmm1, qword [eax + 0x10]
subsd xmm0, qword [eax + 0x98]
mulsd xmm1, xmm3
mulsd xmm1, xmm0
movsd xmm0, qword [0x4e8020]
movsd qword [0x50afd0], xmm1
movaps xmm1, xmm2
subsd xmm1, qword [eax + 0x10]
subsd xmm0, qword [eax + 0x98]
movsd xmm2, qword [0x50af78]
mulsd xmm1, xmm2
mulsd xmm1, xmm0
xorps xmm0, xmm0
maxsd xmm2, xmm0
maxsd xmm1, xmm0
movsd xmm0, qword [ebp - 0x30]
movsd qword [0x50afd8], xmm1
movsd xmm1, qword [ebp - 0xb0]
addsd xmm1, qword [0x50af80]
subsd xmm0, qword [eax + 0x10]
addsd xmm1, qword [0x50afb0]
addsd xmm1, qword [0x50af88]
addsd xmm1, qword [0x50afb8]
addsd xmm1, xmm3
addsd xmm1, xmm2
mulsd xmm1, xmm0
movsd xmm0, qword [0x4e8020]
subsd xmm0, qword [eax + 0x98]
mulsd xmm1, xmm0
movsd qword [0x50afc0], xmm1
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x24]
movsd qword [eax], xmm1
movsd xmm0, qword [0x50afc8]
lea ecx, [ecx + 0x1c]
movsd qword [eax + 8], xmm0
movsd xmm0, qword [0x50afd0]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [0x50afd8]
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [0x50afe0]
movsd qword [eax + 0x20], xmm0
movsd xmm0, qword [0x50afe8]
movsd qword [eax + 0x28], xmm0
mov eax, 0x2aaaaaab
imul esi
sar edx, 1
mov esi, edx
shr esi, 0x1f
add esi, edx
call fcn.0042fed0
mov ecx, dword [ebp - 0x24]
lea edi, [eax + esi]
lea ecx, [ecx + 0x1c]
call fcn.0042fe20
lea edx, [esi + esi*2]
mov esi, dword [ebp - 0x48]
shl edx, 2
mov ecx, esi
sub ecx, edx
add ecx, eax
push 0
push 0
cmp ecx, 0xc
push 0
lea eax, [ecx - 0xc]
cmovle eax, ecx
lea ecx, [ebp - 0x144]
push 1
push eax
lea eax, [edi + 1]
cmovle eax, edi
push eax
call fcn.0042fda0
mov ecx, dword [ebp - 0x18]
movq xmm0, qword [ebp - 0x144]
mov eax, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x14]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
cmp esi, dword [ebp - 0x40]
jne 0x42f21e
mov eax, dword [ebp - 0xd4]
test eax, eax
jle 0x42f21e
movd xmm1, eax
mov edx, edi
cvtdq2pd xmm1, xmm1
lea eax, [ebp - 0xd0]
mov ecx, esi
push eax
lea eax, [ebp - 0x98]
push eax
movaps xmm0, xmm1
mulsd xmm0, qword [ebp - 0x20]
divsd xmm1, qword [0x4e8070]
divsd xmm0, qword [0x4e8070]
mulsd xmm1, qword [ebp - 0x68]
addsd xmm0, qword [ebp - 0xc8]
movsd qword [ebp - 0x98], xmm1
movsd qword [ebp - 0xc8], xmm0
call fcn.004518d0
movsd xmm0, qword [ebp - 0x98]
add esp, 8
movsd qword [ebp - 0x68], xmm0
movsd xmm3, qword [ebp - 0xd0]
mov edx, edi
movsd xmm2, qword [ebp - 0xc8]
mov ecx, esi
call fcn.00451c60
movsd xmm0, qword [0x50af90]
mov edi, dword [ebp - 0xbc]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x74]
lea esi, [edx - 0x12a20]
mov ecx, dword [ebp - 0xfc]
movsd qword [edi], xmm0
movsd xmm0, qword [0x50af98]
movsd qword [edi + 8], xmm0
movsd xmm0, qword [0x50afa0]
movsd qword [edi + 0x10], xmm0
movsd xmm0, qword [0x50afa8]
movsd qword [edi + 0x18], xmm0
movsd xmm0, qword [0x50afb0]
movsd qword [edi + 0x20], xmm0
movsd xmm0, qword [0x50afb8]
movsd qword [edi + 0x28], xmm0
movsd xmm0, qword [eax]
mov eax, dword [ebp - 0x8c]
movsd qword [edx + 0x3ba0], xmm0
movsd xmm0, qword [ecx]
movsd qword [esi], xmm0
movsd xmm0, qword [eax]
mov eax, dword [ebp - 0x80]
movsd qword [edx], xmm0
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp - 0x4c]
movsd xmm0, qword [eax]
movsd qword [edx + 0x7740], xmm0
movsd xmm0, qword [edi]
mov edi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x74]
movsd qword [edi - 0x1cac0], xmm0
mov edi, dword [ebp - 0xf0]
movsd xmm0, qword [edi]
movsd qword [esi], xmm0
movsd xmm0, qword [eax + 8]
mov eax, dword [ebp - 0x8c]
movsd qword [edx + 0x3d48], xmm0
movsd xmm0, qword [ecx + 8]
movsd qword [edx - 0x12878], xmm0
movsd xmm0, qword [eax + 8]
mov eax, dword [ebp - 0x80]
movsd qword [edx + 0x1a8], xmm0
movsd xmm0, qword [eax + 8]
mov eax, dword [ebp - 0xbc]
movsd qword [edx + 0x78e8], xmm0
movsd xmm0, qword [eax + 8]
mov eax, dword [ebp - 0x74]
movsd qword [esi - 0x1c420], xmm0
movsd xmm0, qword [edi + 8]
movsd qword [esi + 0x6a0], xmm0
movsd xmm0, qword [eax + 0x10]
mov eax, dword [ebp - 0x8c]
movsd qword [edx + 0x3ef0], xmm0
movsd xmm0, qword [ecx + 0x10]
mov ecx, dword [ebp - 0xbc]
movsd qword [edx - 0x126d0], xmm0
movsd xmm0, qword [eax + 0x10]
mov eax, dword [ebp - 0x80]
movsd qword [edx + 0x350], xmm0
movsd xmm0, qword [eax + 0x10]
mov eax, dword [ebp - 0x8c]
movsd qword [edx + 0x7a90], xmm0
movsd xmm0, qword [ecx + 0x10]
mov ecx, dword [ebp - 0x74]
movsd qword [esi - 0x1bd80], xmm0
movsd xmm0, qword [edi + 0x10]
movsd qword [esi + 0xd40], xmm0
movsd xmm0, qword [ecx + 0x18]
mov ecx, dword [ebp - 0xfc]
movsd qword [edx + 0x4098], xmm0
movsd xmm0, qword [ecx + 0x18]
movsd qword [edx - 0x12528], xmm0
movsd xmm0, qword [eax + 0x18]
movsd qword [edx + 0x4f8], xmm0
cmp dword [ebp - 0x48], 0
mov eax, dword [ebp - 0x80]
movsd xmm0, qword [eax + 0x18]
mov eax, dword [ebp - 0xbc]
movsd qword [edx + 0x7c38], xmm0
movsd xmm0, qword [eax + 0x18]
mov eax, dword [ebp - 0x74]
movsd qword [esi - 0x1b6e0], xmm0
movsd xmm0, qword [edi + 0x18]
movsd qword [esi + 0x13e0], xmm0
movsd xmm0, qword [eax + 0x20]
mov eax, dword [ebp - 0x8c]
movsd qword [edx + 0x4240], xmm0
movsd xmm0, qword [ecx + 0x20]
movsd qword [edx - 0x12380], xmm0
movsd xmm0, qword [eax + 0x20]
mov eax, dword [ebp - 0x80]
movsd qword [edx + 0x6a0], xmm0
movsd xmm0, qword [eax + 0x20]
mov eax, dword [ebp - 0xbc]
movsd qword [edx + 0x7de0], xmm0
movsd xmm0, qword [eax + 0x20]
mov eax, dword [ebp - 0x8c]
movsd qword [esi - 0x1b040], xmm0
movsd xmm0, qword [edi + 0x20]
mov edi, esi
mov esi, dword [ebp - 0x74]
movsd qword [edi + 0x1a80], xmm0
movsd xmm0, qword [esi + 0x28]
mov esi, dword [ebp - 0x2c]
movsd qword [edx + 0x43e8], xmm0
movsd xmm0, qword [ecx + 0x28]
movsd qword [edx - 0x121d8], xmm0
movsd xmm0, qword [eax + 0x28]
mov eax, dword [ebp - 0x80]
movsd qword [edx + 0x848], xmm0
movsd xmm0, qword [eax + 0x28]
mov eax, dword [ebp - 0xbc]
movsd qword [edx + 0x7f88], xmm0
movsd xmm0, qword [eax + 0x28]
mov eax, dword [ebp - 0xf0]
movsd qword [edi - 0x1a9a0], xmm0
movsd xmm0, qword [eax + 0x28]
movsd qword [edi + 0x2120], xmm0
mov edi, dword [ebp - 0x14]
je 0x42f632
movsd xmm1, qword [edx + 0x78e8]
movsd xmm0, qword [edx + 0x7740]
subsd xmm1, qword [0x4e8000]
subsd xmm0, qword [0x4e8000]
movsd qword [edx + 0x78e8], xmm1
movsd qword [edx + 0x7740], xmm0
mov eax, dword [0x50b218]
movsd qword [ebp - 0x30], xmm1
cmp eax, 3
je 0x42f537
cmp eax, 1
je 0x42f537
xorps xmm2, xmm2
jmp 0x42f558
mov ecx, dword [0x50adcc]
movaps xmm0, xmm1
mulsd xmm0, qword [0x50ae70]
call fcn.00452590
movsd xmm1, qword [ebp - 0x30]
movaps xmm2, xmm0
mov edx, dword [ebp - 0x3c]
movsd qword [edx + 0x7a90], xmm2
xorps xmm0, xmm0
cmp edi, 4
je 0x42f577
cmp edi, 5
je 0x42f577
movsd qword [edx + 0x7de0], xmm0
jmp 0x42f5ba
mov ecx, dword [0x50adcc]
movaps xmm0, xmm1
mulsd xmm0, qword [0x50ae80]
call fcn.00452590
mov eax, dword [ebp - 0x3c]
movsd qword [eax + 0x7de0], xmm0
cmp edi, 5
jne 0x42f5b7
movsd xmm0, qword [ebp - 0x30]
mulsd xmm0, qword [0x50ae88]
mov ecx, dword [0x50adcc]
call fcn.00452590
jmp 0x42f5ba
xorps xmm0, xmm0
mov eax, dword [ebp - 0x3c]
mov edi, 6
movsd qword [eax + 0x7f88], xmm0
nop word [eax + eax]
movsd xmm0, qword [esi + 0x165c0]
mov ecx, 1
subsd xmm0, qword [0x4e7fe0]
call fcn.00452410
movsd qword [ebp - 0xb0], xmm0
mov ecx, 1
movsd qword [esi + 0x165c0], xmm0
movsd xmm0, qword [esi]
subsd xmm0, qword [0x4e7fe0]
call fcn.00452410
movsd qword [esi], xmm0
subsd xmm0, qword [ebp - 0xb0]
movsd qword [esi + 0x12a20], xmm0
add esi, 0x1a8
sub edi, 1
jne 0x42f5d0
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x44]
movsd xmm1, qword [ebp - 0xd0]
mov edi, dword [ebp - 0x90]
movsd xmm0, qword [ebp - 0x68]
mov ecx, dword [ebp - 0x14]
movsd qword [eax], xmm1
mov eax, dword [ebp - 0x58]
movsd qword [edi + eax*8 + 0x1e640], xmm1
movsd qword [edi + eax*8 + 0x20ec0], xmm0
cmp ecx, 2
jne 0x42f67f
mov eax, dword [ebp - 0x38]
movsd xmm1, qword [ebp - 0x20]
add eax, 0x2fe0
add eax, eax
movsd qword [edi + eax*8], xmm1
jmp 0x42f697
cmp ecx, 3
jne 0x42f697
mov eax, dword [ebp - 0x38]
movsd xmm1, qword [ebp - 0x20]
add eax, eax
movsd qword [edi + eax*8 + 0x2fe08], xmm1
mov esi, dword [ebp - 0xe4]
add edx, 8
add dword [ebp - 0x4c], 0x20
inc esi
add dword [ebp - 0x44], 8
xorps xmm0, xmm0
inc dword [ebp - 0x54]
add dword [ebp - 0x18], 0xc
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0xe4], esi
cmp esi, dword [ebp - 0x5c]
jle 0x42e963
jmp 0x42f6d0
lea eax, [ecx + edx]
mov dword [ebp - 0x58], eax
mov edx, ecx
mov eax, 0x30
imul eax, edx
mov edx, dword [ebp - 0x58]
movsd xmm0, qword [edi + edx*8 + 0x1e640]
mov edx, dword [ebp - 0xd8]
addsd xmm0, qword [eax + edi + 0x488]
mov eax, dword [ebp - 0x114]
add eax, ecx
inc ecx
mov dword [ebp - 0x14], ecx
movsd qword [edi + eax*8], xmm0
xorps xmm0, xmm0
mov eax, dword [ebp - 0x5c]
cmp ecx, 5
jle 0x42e8a0
mov esi, dword [ebp - 0x38]
inc esi
mov dword [ebp - 0x38], esi
cmp esi, 4
jl 0x42e804
mov esi, dword [ebp - 0x80]
test esi, esi
je 0x42f75c
mov edx, dword [ebp - 0x78]
sub edx, esi
and edx, 0xfffffff8
cmp edx, 0x1000
jb 0x42f752
mov ecx, dword [esi - 4]
add edx, 0x23
sub esi, ecx
lea eax, [esi - 4]
cmp eax, 0x1f
ja 0x42f893
mov esi, ecx
push edx
push esi
call fcn.0047696c
add esp, 8
mov eax, dword [ebp - 0x8c]
test eax, eax
je 0x42f799
mov edx, dword [ebp - 0x84]
sub edx, eax
and edx, 0xfffffff8
cmp edx, 0x1000
jb 0x42f78f
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42f893
mov eax, ecx
push edx
push eax
call fcn.0047696c
add esp, 8
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x42f7d0
mov edx, dword [ebp - 0x6c]
sub edx, eax
and edx, 0xfffffff8
cmp edx, 0x1000
jb 0x42f7c6
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42f893
mov eax, ecx
push edx
push eax
call fcn.0047696c
add esp, 8
mov eax, dword [ebp - 0xf0]
test eax, eax
je 0x42f80d
mov edx, dword [ebp - 0xe8]
sub edx, eax
and edx, 0xfffffff8
cmp edx, 0x1000
jb 0x42f803
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42f893
mov eax, ecx
push edx
push eax
call fcn.0047696c
add esp, 8
mov eax, dword [ebp - 0xbc]
test eax, eax
je 0x42f846
mov edx, dword [ebp - 0xb4]
sub edx, eax
and edx, 0xfffffff8
cmp edx, 0x1000
jb 0x42f83c
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42f893
mov eax, ecx
push edx
push eax
call fcn.0047696c
add esp, 8
mov esi, dword [ebp - 0xfc]
test esi, esi
je 0x42f87f
mov edx, dword [ebp - 0xf4]
sub edx, esi
and edx, 0xfffffff8
cmp edx, 0x1000
jb 0x42f875
mov ecx, dword [esi - 4]
add edx, 0x23
sub esi, ecx
lea eax, [esi - 4]
cmp eax, 0x1f
ja 0x42f893
mov esi, ecx
push edx
push esi
call fcn.0047696c
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.0047b9ef
int3