Function at 0x4c5e80
Capabilities:
Get number of processors

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x582da0
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x1a08
call fcn.005211a0
mov eax, dword [0x5d4090]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0x197c], edi
mov esi, ecx
mov dword [ebp - 0x195c], esi
mov eax, dword [ebx + 8]
mov dword [ebp - 0x1950], 0
mov dword [ebp - 0x1990], eax
mov dword [ebp - 0x1984], 0
mov dword [ebp - 0x1940], 0
mov dword [ebp - 0x193c], 0xf
mov byte [ebp - 0x1950], 0
mov dword [ebp - 4], 0
mov eax, dword [esi]
mov eax, dword [eax]
call eax
mov ecx, esi
mov dword [ebp - 0x1964], eax
call fcn.004bd550
mov dword [ebp - 0x1978], eax
call fcn.004bd570
mov dword [ebp - 0x1968], eax
call fcn.004bd5d0
mov dword [ebp - 0x198c], eax
call fcn.004be6b0
mov ecx, eax
call fcn.0043d680
movsd xmm0, qword [edi + 0x58]
sub esp, 8
mov edx, dword [edi + 0x30]
mov ecx, dword [edi + 0x20]
mov dword [ebp - 0x19c4], eax
mov eax, dword [ebp - 0x1990]
movsd qword [ebp - 0x19c0], xmm0
movsd xmm1, qword [eax + 0x18]
lea eax, [ebp - 0x1950]
movsd qword [ebp - 0x1a10], xmm1
movsd qword [ebp - 0x1a18], xmm1
addsd xmm1, xmm0
movsd xmm0, qword [edi + 0x18]
movsd qword [esp], xmm0
push eax
movaps xmm3, xmm1
movsd qword [ebp - 0x19e0], xmm1
call fcn.00406bc0
mov edx, dword [0x5d8404]
add esp, 0xc
mov dword [ebp - 0x199c], edx
test edx, edx
jne 0x4c634f
mov edi, dword [ebp - 0x1968]
xor ecx, ecx
mov eax, edi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d8404], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5dade8], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
xor edi, edi
mov dword [0x5daddc], eax
add esp, 4
lea edx, [edi + 8]
cmp dword [ebp - 0x1968], edi
jle 0x4c60bb
mov esi, dword [ebp - 0x1964]
nop
xor ecx, ecx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov ecx, dword [0x5d8404]
add esp, 4
mov edx, 8
mov dword [ecx + edi*4], eax
xor ecx, ecx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov ecx, dword [0x5dade8]
add esp, 4
mov edx, 8
mov dword [ecx + edi*4], eax
xor ecx, ecx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov ecx, dword [0x5daddc]
add esp, 4
mov edx, 8
mov dword [ecx + edi*4], eax
inc edi
cmp edi, dword [ebp - 0x1968]
jl 0x4c6040
mov esi, dword [ebp - 0x195c]
mov edi, dword [ebp - 0x1978]
xor ecx, ecx
mov eax, edi
mov dword [0x5dadd8], 0
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5dadd0], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
add esp, 4
mov dword [0x5dade4], eax
push 0x190
call fcn.0051fae4
add esp, 4
mov dword [0x5dadd8], eax
test eax, eax
jne 0x4c6129
lea edx, [eax + 6]
mov ecx, str.MassEnergyBalance
call fcn.004c4d70
cmp dword [ebp - 0x19c4], 0
mov dword [0x5dadf8], 0
mov dword [0x5dadec], 0
mov dword [0x5dade0], 0
jle 0x4c6291
xor ecx, ecx
mov eax, edi
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5dadf8], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
add esp, 4
mov dword [0x5dade0], eax
push 0x190
call fcn.0051fae4
add esp, 4
mov dword [0x5dadec], eax
test eax, eax
jne 0x4c61b7
lea edx, [eax + 6]
mov ecx, str.MassEnergyBalance_2_
call fcn.004c4d70
xor ecx, ecx
test edi, edi
jle 0x4c6282
mov edx, dword [0x5dade0]
cmp edi, 2
mov edi, dword [0x5dadf8]
jb 0x4c6258
mov eax, dword [ebp - 0x1978]
dec eax
lea eax, [edi + eax*8]
cmp edx, eax
ja 0x4c61f8
mov esi, dword [ebp - 0x1978]
dec esi
lea eax, [edx + esi*8]
mov esi, dword [ebp - 0x195c]
cmp eax, edi
jae 0x4c6258
mov edx, dword [ebp - 0x1978]
mov eax, edx
and eax, 0x80000001
jns 0x4c620c
dec eax
or eax, 0xfffffffe
inc eax
sub edx, eax
nop
add ecx, 2
cmp ecx, edx
jl 0x4c6210
lea eax, [edx + 1]
mov dword [ebp - 0x1988], ecx
cdq
sub eax, edx
mov edx, eax
xor eax, eax
sar edx, 1
shl edx, 4
mov ecx, edx
shr edx, 2
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, dword [0x5dade0]
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x1988]
mov ecx, eax
cmp eax, dword [ebp - 0x1978]
jge 0x4c6282
mov edi, dword [0x5dadf8]
lea eax, [edx + ecx*8]
sub edi, edx
mov edx, dword [ebp - 0x1978]
xorps xmm0, xmm0
sub edx, ecx
nop dword [eax + eax]
movsd qword [edi + eax], xmm0
lea eax, [eax + 8]
movsd qword [eax - 8], xmm0
sub edx, 1
jne 0x4c6270
mov edi, dword [0x5dadec]
mov ecx, 0x64
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x197c]
cmp dword [edi + 0x40], 2
jne 0x4c630d
mov eax, dword [ebp - 0x198c]
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
xor edi, edi
mov dword [0x5dadd4], eax
add esp, 4
cmp dword [ebp - 0x198c], edi
jle 0x4c6307
mov esi, dword [ebp - 0x1964]
imul esi, esi
xor ecx, ecx
mov eax, esi
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov ecx, dword [0x5dadd4]
add esp, 4
mov dword [ecx + edi*4], eax
inc edi
cmp edi, dword [ebp - 0x198c]
jl 0x4c62d4
mov esi, dword [ebp - 0x195c]
mov edi, dword [ebp - 0x197c]
push 0x3e80
call fcn.0051fae4
add esp, 4
mov dword [0x5dadf4], eax
push 0x3e80
call fcn.0051fae4
add esp, 4
mov dword [0x5dadf0], eax
push 0x7d00
call fcn.0051fae4
mov edx, dword [0x5d8404]
add esp, 4
mov dword [0x5d8400], eax
mov dword [ebp - 0x199c], edx
cmp dword [edi + 0x94], 1
jne 0x4c636e
mov ecx, esi
call fcn.004be6c0
mov ecx, eax
mov dword [ebp - 0x1998], eax
call fcn.0044d2d0
jmp 0x4c6380
mov eax, dword [ebp - 0x19c8]
mov dword [ebp - 0x1998], eax
mov eax, dword [ebp - 0x19c8]
mov dword [ebp - 0x19d4], eax
lea edi, [ebp - 0x338]
or eax, 0xffffffff
mov dword [ebp - 0x196c], 0xc8
mov ecx, 0xc8
rep stosd dword es:[edi], eax
or eax, eax
lea edi, [ebp - 0x658]
mov ecx, 0xc8
rep stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0xc98]
mov ecx, 0x190
mov dword [ebp - 0x1970], eax
rep stosd dword es:[edi], eax
cmp dword [ebp - 0x1968], eax
jle 0x4c64bd
mov ecx, dword [0x5dade8]
sub ecx, edx
mov dword [ebp - 0x1988], ecx
mov ecx, dword [0x5daddc]
sub ecx, edx
mov dword [ebp - 0x1960], ecx
nop dword [eax]
push eax
mov ecx, esi
call fcn.004bd6a0
cmp dword [ebp - 0x1964], 0
mov dword [ebp - 0x196c], 0
jle 0x4c649b
mov ecx, dword [ebp - 0x1988]
mov edi, dword [edx]
mov esi, dword [ebp - 0x1960]
mov eax, dword [eax + 0x48]
mov ecx, dword [edx + ecx]
sub eax, ecx
mov dword [ebp - 0x1974], edi
mov edx, edi
mov edi, dword [ebp - 0x199c]
sub edx, ecx
mov dword [ebp - 0x1980], eax
mov edi, dword [edi + esi]
mov esi, dword [ebp - 0x1974]
sub edi, ecx
nop word [eax + eax]
movsd xmm0, qword [eax + ecx]
lea ecx, [ecx + 8]
mov eax, dword [ebp - 0x196c]
movsd qword [esi + eax*8], xmm0
inc eax
cmp eax, dword [ebp - 0x1964]
mov esi, dword [ebp - 0x1974]
movsd qword [ecx - 8], xmm0
movsd xmm0, qword [edx + ecx - 8]
movsd qword [edi + ecx - 8], xmm0
mov dword [ebp - 0x196c], eax
mov eax, dword [ebp - 0x1980]
jl 0x4c6450
mov esi, dword [ebp - 0x195c]
mov edx, dword [ebp - 0x199c]
mov eax, dword [ebp - 0x1970]
add edx, 4
inc eax
mov dword [ebp - 0x199c], edx
mov dword [ebp - 0x1970], eax
cmp eax, dword [ebp - 0x1968]
jl 0x4c63f0
mov eax, dword [esi]
mov ecx, esi
push 0
mov eax, dword [eax + 0xc]
call eax
mov edx, dword [esi]
mov ecx, esi
push 2
mov dword [ebp - 0x199c], eax
mov edx, dword [edx + 0xc]
call edx
mov edx, dword [esi]
mov ecx, esi
push 0x18
mov dword [ebp - 0x19cc], eax
mov edx, dword [edx + 0xc]
call edx
mov dword [ebp - 0x1988], eax
cmp eax, 0xffffffff
je 0x4c669d
mov edx, dword [ebp - 0x1968]
lea ecx, [eax*8]
mov eax, dword [0x5daddc]
xor edi, edi
mov dword [ebp - 0x1958], edi
xorps xmm0, xmm0
mov dword [ebp - 0x1974], ecx
cmp edx, 4
jl 0x4c663d
mov esi, dword [0x5d8404]
lea edx, [eax + 8]
mov edi, esi
mov dword [ebp - 0x1954], edx
sub edi, dword [0x5dade8]
mov edx, dword [0x5dade8]
mov dword [ebp - 0x1960], edi
add edx, 4
mov edi, eax
sub edi, dword [0x5dade8]
mov dword [ebp - 0x1980], edi
mov edi, esi
sub edi, eax
mov dword [ebp - 0x19b4], edi
mov edi, dword [ebp - 0x1958]
nop dword [eax]
mov eax, dword [esi + edi*4]
lea edx, [edx + 0x10]
mov edi, dword [ebp - 0x19b4]
movsd qword [ecx + eax], xmm0
mov eax, dword [edx - 0x14]
movsd qword [ecx + eax], xmm0
mov eax, dword [ebp - 0x1954]
mov eax, dword [eax - 8]
movsd qword [ecx + eax], xmm0
mov eax, dword [ebp - 0x1960]
mov eax, dword [eax + edx - 0x10]
movsd qword [ecx + eax], xmm0
mov eax, dword [edx - 0x10]
movsd qword [ecx + eax], xmm0
mov eax, dword [ebp - 0x1980]
mov eax, dword [eax + edx - 0x10]
movsd qword [ecx + eax], xmm0
mov eax, dword [ebp - 0x1954]
mov eax, dword [edi + eax]
mov edi, dword [ebp - 0x1958]
movsd qword [ecx + eax], xmm0
mov eax, dword [edx - 0xc]
movsd qword [ecx + eax], xmm0
mov eax, dword [ebp - 0x1954]
mov eax, dword [eax]
movsd qword [ecx + eax], xmm0
mov eax, dword [esi + edi*4 + 0xc]
add edi, 4
mov dword [ebp - 0x1958], edi
movsd qword [ecx + eax], xmm0
mov eax, dword [edx - 8]
movsd qword [ecx + eax], xmm0
mov eax, dword [ebp - 0x1954]
add dword [ebp - 0x1954], 0x10
mov eax, dword [eax + 4]
movsd qword [ecx + eax], xmm0
mov eax, dword [ebp - 0x1968]
mov ecx, dword [ebp - 0x1974]
add eax, 0xfffffffd
cmp edi, eax
jl 0x4c6570
mov esi, dword [ebp - 0x195c]
mov eax, dword [0x5daddc]
mov edx, dword [ebp - 0x1968]
cmp edi, edx
jge 0x4c669d
mov edx, dword [0x5dade8]
mov esi, dword [0x5d8404]
sub eax, dword [0x5dade8]
sub esi, dword [0x5dade8]
lea edx, [edx + edi*4]
mov dword [ebp - 0x1960], eax
mov edi, dword [ebp - 0x1968]
sub edi, dword [ebp - 0x1958]
nop
mov eax, dword [edx + esi]
lea edx, [edx + 4]
movsd qword [ecx + eax], xmm0
mov eax, dword [edx - 4]
movsd qword [ecx + eax], xmm0
mov eax, dword [ebp - 0x1960]
mov eax, dword [edx + eax - 4]
movsd qword [ecx + eax], xmm0
sub edi, 1
jne 0x4c6670
mov esi, dword [ebp - 0x195c]
mov eax, dword [esi]
mov ecx, esi
push 9
mov eax, dword [eax + 0xc]
call eax
mov edi, dword [0x5dade8]
mov ecx, eax
mov dword [ebp - 0x19a4], ecx
cmp ecx, 0xffffffff
je 0x4c685d
xor eax, eax
lea edx, [ecx*8]
cmp dword [ebp - 0x1968], 4
xorps xmm0, xmm0
mov ecx, dword [0x5d8404]
mov dword [ebp - 0x1994], eax
jl 0x4c67e8
mov eax, dword [0x5daddc]
lea esi, [edi + 4]
add eax, 8
sub ecx, edi
mov dword [ebp - 0x1954], eax
mov eax, dword [0x5daddc]
sub eax, edi
mov dword [ebp - 0x1960], ecx
mov ecx, dword [0x5d8404]
mov dword [ebp - 0x1980], eax
mov eax, ecx
sub eax, dword [0x5daddc]
xor edi, edi
mov dword [ebp - 0x19b4], eax
mov eax, dword [ecx + edi*4]
lea esi, [esi + 0x10]
mov ecx, dword [ebp - 0x19b4]
movsd qword [edx + eax], xmm0
mov eax, dword [esi - 0x14]
movsd qword [edx + eax], xmm0
mov eax, dword [ebp - 0x1954]
mov eax, dword [eax - 8]
movsd qword [edx + eax], xmm0
mov eax, dword [ebp - 0x1960]
mov eax, dword [eax + esi - 0x10]
movsd qword [edx + eax], xmm0
mov eax, dword [esi - 0x10]
movsd qword [edx + eax], xmm0
mov eax, dword [ebp - 0x1980]
mov eax, dword [eax + esi - 0x10]
movsd qword [edx + eax], xmm0
mov eax, dword [ebp - 0x1954]
mov eax, dword [ecx + eax]
mov ecx, dword [0x5d8404]
movsd qword [edx + eax], xmm0
mov eax, dword [esi - 0xc]
movsd qword [edx + eax], xmm0
mov eax, dword [ebp - 0x1954]
mov eax, dword [eax]
movsd qword [edx + eax], xmm0
mov eax, dword [ecx + edi*4 + 0xc]
add edi, 4
movsd qword [edx + eax], xmm0
mov eax, dword [esi - 8]
movsd qword [edx + eax], xmm0
mov eax, dword [ebp - 0x1954]
add dword [ebp - 0x1954], 0x10
mov eax, dword [eax + 4]
movsd qword [edx + eax], xmm0
mov eax, dword [ebp - 0x1968]
add eax, 0xfffffffd
cmp edi, eax
jl 0x4c6720
mov esi, dword [ebp - 0x195c]
mov dword [ebp - 0x1994], edi
mov edi, dword [0x5dade8]
mov eax, dword [ebp - 0x1994]
cmp eax, dword [ebp - 0x1968]
jge 0x4c685d
mov esi, dword [ebp - 0x1968]
lea eax, [edi + eax*4]
mov dword [ebp - 0x1960], eax
sub ecx, edi
mov eax, dword [0x5daddc]
sub eax, edi
mov dword [ebp - 0x1980], ecx
sub esi, dword [ebp - 0x1994]
mov ecx, dword [ebp - 0x1960]
mov edi, dword [ebp - 0x1980]
mov dword [ebp - 0x19b4], eax
nop word [eax + eax]
mov eax, dword [edi + ecx]
lea ecx, [ecx + 4]
movsd qword [edx + eax], xmm0
mov eax, dword [ecx - 4]
movsd qword [edx + eax], xmm0
mov eax, dword [ebp - 0x19b4]
mov eax, dword [eax + ecx - 4]
movsd qword [edx + eax], xmm0
sub esi, 1
jne 0x4c6830
mov esi, dword [ebp - 0x195c]
mov eax, dword [ebp - 0x197c]
mov eax, dword [eax + 0x40]
cmp eax, 1
jne 0x4c6a8f
xor edx, edx
mov dword [ebp - 0x1954], edx
cmp dword [ebp - 0x1968], edx
jle 0x4c7491
push edx
mov ecx, esi
call fcn.004bd6a0
mov ecx, eax
mov dword [ebp - 0x1960], ecx
cmp byte [ecx + 0x44], 0
jne 0x4c6a77
xor eax, eax
xor esi, esi
mov dword [ebp - 0x1958], esi
mov dword [ebp - 0x1970], eax
cmp dword [ebp - 0x198c], eax
jle 0x4c6a71
nop dword [eax]
lea edi, [ebp - 0xc98]
mov dword [ebp - 0x1984], 0
push edi
lea edi, [ebp - 0x1984]
push edi
lea edi, [ebp - 0x658]
push edi
lea edi, [ebp - 0x338]
push edi
push dword [ebp - 0x1990]
mov edi, dword [0x5dade8]
push dword [ebp - 0x197c]
push ecx
push dword [edi + edx*4]
mov edi, dword [ebp - 0x195c]
mov ecx, edi
push eax
call fcn.004c2ae0
test al, al
je 0x4c6a15
xor esi, esi
cmp dword [ebp - 0x1984], esi
jle 0x4c6a46
jmp 0x4c6924
mov edi, ecx
mov eax, dword [edi]
mov ecx, edi
push dword [ebp + esi*4 - 0x338]
mov eax, dword [eax + 4]
call eax
mov edx, dword [ebp + esi*4 - 0x658]
mov edi, eax
mov ecx, dword [ebp + esi*4 - 0x338]
cmp edx, ecx
je 0x4c6978
mov edi, dword [0x5dade8]
mov eax, dword [ebp - 0x1954]
movsd xmm1, qword [ebp - 0x19c0]
mulsd xmm1, qword [ebp + esi*8 - 0xc98]
mov eax, dword [edi + eax*4]
movsd xmm0, qword [eax + ecx*8]
subsd xmm0, xmm1
movsd qword [eax + ecx*8], xmm0
jmp 0x4c69bd
mov ecx, edi
call fcn.00476240
test al, al
je 0x4c69ae
cmp edi, 0x12
je 0x4c69ae
mov edi, dword [0x5dade8]
xorps xmm1, xmm1
mov eax, dword [ebp - 0x1954]
movsd qword [ebp + esi*8 - 0xc98], xmm1
mov eax, dword [edi + eax*4]
movsd xmm0, qword [eax + edx*8]
addsd xmm0, xmm1
jmp 0x4c69d3
mov edi, dword [0x5dade8]
mov eax, dword [ebp - 0x1954]
mov eax, dword [edi + eax*4]
movsd xmm0, qword [ebp - 0x19c0]
mulsd xmm0, qword [ebp + esi*8 - 0xc98]
addsd xmm0, qword [eax + edx*8]
movsd xmm3, qword [ebp - 0x19c0]
push dword [ebp - 0x1954]
mov ecx, dword [ebp - 0x195c]
push dword [ebp - 0x1958]
movsd qword [eax + edx*8], xmm0
mulsd xmm3, qword [ebp + esi*8 - 0xc98]
call fcn.004c0920
inc dword [ebp - 0x1958]
inc esi
cmp esi, dword [ebp - 0x1984]
jl 0x4c6922
jmp 0x4c6a46
mov eax, dword [ebp - 0x1984]
mov dword [ebp - 0x1974], eax
test eax, eax
jle 0x4c6a46
push dword [ebp - 0x1954]
xorps xmm3, xmm3
mov ecx, edi
push esi
call fcn.004c0920
inc esi
sub dword [ebp - 0x1974], 1
jne 0x4c6a25
mov dword [ebp - 0x1958], esi
mov eax, dword [ebp - 0x1970]
mov esi, dword [ebp - 0x1958]
inc eax
mov edx, dword [ebp - 0x1954]
mov ecx, dword [ebp - 0x1960]
mov dword [ebp - 0x1970], eax
cmp eax, dword [ebp - 0x198c]
jl 0x4c68c0
mov esi, dword [ebp - 0x195c]
inc edx
mov dword [ebp - 0x1954], edx
cmp edx, dword [ebp - 0x1968]
jl 0x4c6883
jmp 0x4c7491
test eax, eax
jne 0x4c6caf
xor edx, edx
mov dword [ebp - 0x1954], edx
cmp dword [ebp - 0x1968], edx
jle 0x4c7491
nop dword [eax + eax]
push edx
mov ecx, esi
call fcn.004bd6a0
xor ecx, ecx
mov dword [ebp - 0x1960], eax
xor esi, esi
mov dword [ebp - 0x1970], ecx
mov dword [ebp - 0x1958], esi
cmp dword [ebp - 0x198c], ecx
jle 0x4c6c91
nop word [eax + eax]
lea edi, [ebp - 0xc98]
mov dword [ebp - 0x1984], 0
push edi
lea edi, [ebp - 0x1984]
push edi
lea edi, [ebp - 0x658]
push edi
lea edi, [ebp - 0x338]
push edi
push dword [ebp - 0x1990]
mov edi, dword [ebp - 0x195c]
push dword [ebp - 0x197c]
push eax
mov eax, dword [0x5d8404]
push dword [eax + edx*4]
push ecx
mov ecx, edi
call fcn.004c2ae0
test al, al
je 0x4c6c34
xor esi, esi
cmp dword [ebp - 0x1984], esi
jle 0x4c6c65
jmp 0x4c6b43
mov edi, ecx
mov eax, dword [edi]
mov ecx, edi
push dword [ebp + esi*4 - 0x338]
mov eax, dword [eax + 4]
call eax
mov edx, dword [ebp + esi*4 - 0x658]
mov edi, eax
mov ecx, dword [ebp + esi*4 - 0x338]
cmp edx, ecx
je 0x4c6b97
mov edi, dword [0x5dade8]
mov eax, dword [ebp - 0x1954]
movsd xmm1, qword [ebp - 0x19c0]
mulsd xmm1, qword [ebp + esi*8 - 0xc98]
mov eax, dword [edi + eax*4]
movsd xmm0, qword [eax + ecx*8]
subsd xmm0, xmm1
movsd qword [eax + ecx*8], xmm0
jmp 0x4c6bdc
mov ecx, edi
call fcn.00476240
test al, al
je 0x4c6bcd
cmp edi, 0x12
je 0x4c6bcd
mov edi, dword [0x5dade8]
xorps xmm1, xmm1
mov eax, dword [ebp - 0x1954]
movsd qword [ebp + esi*8 - 0xc98], xmm1
mov eax, dword [edi + eax*4]
movsd xmm0, qword [eax + edx*8]
addsd xmm0, xmm1
jmp 0x4c6bf2
mov edi, dword [0x5dade8]
mov eax, dword [ebp - 0x1954]
mov eax, dword [edi + eax*4]
movsd xmm0, qword [ebp - 0x19c0]
mulsd xmm0, qword [ebp + esi*8 - 0xc98]
addsd xmm0, qword [eax + edx*8]
movsd xmm3, qword [ebp - 0x19c0]
push dword [ebp - 0x1954]
mov ecx, dword [ebp - 0x195c]
push dword [ebp - 0x1958]
movsd qword [eax + edx*8], xmm0
mulsd xmm3, qword [ebp + esi*8 - 0xc98]
call fcn.004c0920
inc dword [ebp - 0x1958]
inc esi
cmp esi, dword [ebp - 0x1984]
jl 0x4c6b41
jmp 0x4c6c65
mov eax, dword [ebp - 0x1984]
mov dword [ebp - 0x1974], eax
test eax, eax
jle 0x4c6c65
push dword [ebp - 0x1954]
xorps xmm3, xmm3
mov ecx, edi
push esi
call fcn.004c0920
inc esi
sub dword [ebp - 0x1974], 1
jne 0x4c6c44
mov dword [ebp - 0x1958], esi
mov ecx, dword [ebp - 0x1970]
mov edx, dword [ebp - 0x1954]
inc ecx
mov dword [ebp - 0x1970], ecx
cmp ecx, dword [ebp - 0x198c]
jge 0x4c6c91
mov esi, dword [ebp - 0x1958]
mov eax, dword [ebp - 0x1960]
jmp 0x4c6ae0
mov esi, dword [ebp - 0x195c]
inc edx
mov dword [ebp - 0x1954], edx
cmp edx, dword [ebp - 0x1968]
jl 0x4c6ab0
jmp 0x4c7491
cmp eax, 2
jne 0x4c7482
xor eax, eax
mov dword [ebp - 0x1994], 0
mov dword [ebp - 0x1974], eax
cmp dword [ebp - 0x1968], eax
jle 0x4c7491
xor edx, edx
xorps xmm0, xmm0
mov dword [ebp - 0x1954], edx
push eax
mov ecx, esi
call fcn.004bd6a0
mov ecx, dword [ebp - 0x1994]
mov dword [ebp - 0x1958], eax
movsd qword [ebp - 0x19b0], xmm0
nop dword [eax]
mov edi, dword [0x5dade8]
inc ecx
mov dword [ebp - 0x1994], ecx
xor ecx, ecx
cmp dword [ebp - 0x1964], ecx
jle 0x4c6faf
mov eax, dword [ebp - 0x1964]
cmp eax, 2
jb 0x4c6e7d
mov esi, dword [0x5daddc]
mov eax, dword [edx + edi]
mov dword [ebp - 0x1970], ecx
mov dword [ebp - 0x1960], eax
mov edi, dword [edx + esi]
mov esi, dword [0x5d8404]
mov dword [ebp - 0x1980], edi
mov edi, dword [edx + esi]
mov esi, dword [ebp - 0x1964]
dec esi
mov dword [ebp - 0x196c], edi
lea esi, [edi + esi*8]
mov dword [ebp - 0x19a0], esi
cmp eax, esi
ja 0x4c6d87
mov edi, dword [ebp - 0x1964]
dec edi
lea edi, [eax + edi*8]
cmp edi, dword [ebp - 0x196c]
mov edi, dword [0x5dade8]
jae 0x4c6e77
mov edx, dword [ebp - 0x1964]
dec edx
lea edi, [eax + edx*8]
mov edx, dword [ebp - 0x1954]
cmp eax, edi
mov edi, dword [0x5dade8]
jbe 0x4c6e77
mov edx, dword [ebp - 0x1964]
mov esi, dword [ebp - 0x1980]
lea esi, [esi + edx*8]
mov edx, dword [ebp - 0x1954]
add esi, 0xfffffff8
mov dword [ebp - 0x19b4], esi
cmp eax, esi
ja 0x4c6dec
mov ecx, dword [ebp - 0x1964]
mov esi, dword [0x5daddc]
dec ecx
lea edi, [eax + ecx*8]
mov ecx, dword [ebp - 0x1970]
cmp edi, dword [edx + esi]
mov edi, dword [0x5dade8]
jae 0x4c6e77
mov edi, dword [0x5daddc]
mov eax, dword [ebp - 0x19a0]
cmp dword [edx + edi], eax
mov edi, dword [0x5dade8]
mov eax, dword [ebp - 0x1960]
ja 0x4c6e17
mov esi, dword [ebp - 0x196c]
cmp dword [ebp - 0x19b4], esi
jae 0x4c6e77
mov ecx, dword [ebp - 0x1964]
mov esi, dword [0x5daddc]
dec ecx
lea edi, [eax + ecx*8]
mov ecx, dword [ebp - 0x1970]
cmp dword [edx + esi], edi
mov edi, dword [0x5dade8]
ja 0x4c6e40
cmp dword [ebp - 0x19b4], eax
jae 0x4c6e77
mov ecx, dword [ebp - 0x1964]
lea esi, [ecx*8]
push esi
push eax
push dword [ebp - 0x1980]
call fcn.00521e70
add esp, 0xc
push esi
push dword [ebp - 0x196c]
push dword [ebp - 0x1960]
call fcn.00521e70
add esp, 0xc
jmp 0x4c6f9d
mov eax, dword [ebp - 0x1964]
sub eax, ecx
cmp eax, 4
jl 0x4c6f4d
mov eax, dword [edx + edi]
mov esi, dword [0x5daddc]
mov edi, dword [0x5d8404]
mov esi, dword [edx + esi]
mov dword [ebp - 0x196c], esi
mov esi, dword [edx + edi]
mov dword [ebp - 0x1970], esi
mov esi, dword [ebp - 0x1964]
mov edi, dword [ebp - 0x1970]
add esi, 0xfffffffd
mov dword [ebp - 0x19a0], esi
mov esi, dword [ebp - 0x196c]
nop dword [eax]
nop dword [eax + eax]
movsd xmm0, qword [eax + ecx*8]
movsd qword [esi + ecx*8], xmm0
movsd xmm0, qword [edi + ecx*8]
movsd qword [eax + ecx*8], xmm0
movsd xmm0, qword [eax + ecx*8 + 8]
movsd qword [esi + ecx*8 + 8], xmm0
movsd xmm0, qword [edi + ecx*8 + 8]
movsd qword [eax + ecx*8 + 8], xmm0
movsd xmm0, qword [eax + ecx*8 + 0x10]
movsd qword [esi + ecx*8 + 0x10], xmm0
movsd xmm0, qword [edi + ecx*8 + 0x10]
movsd qword [eax + ecx*8 + 0x10], xmm0
movsd xmm0, qword [eax + ecx*8 + 0x18]
movsd qword [esi + ecx*8 + 0x18], xmm0
movsd xmm0, qword [edi + ecx*8 + 0x18]
movsd qword [eax + ecx*8 + 0x18], xmm0
add ecx, 4
cmp ecx, dword [ebp - 0x19a0]
jl 0x4c6ed0
mov edi, dword [0x5dade8]
mov esi, dword [ebp - 0x195c]
cmp ecx, dword [ebp - 0x1964]
jl 0x4c6f6d
jmp 0x4c6fa9
mov eax, dword [0x5daddc]
mov esi, dword [0x5d8404]
mov eax, dword [edx + eax]
mov dword [ebp - 0x196c], eax
mov eax, dword [edx + esi]
mov dword [ebp - 0x1970], eax
mov eax, dword [edx + edi]
mov esi, dword [ebp - 0x196c]
mov edx, dword [ebp - 0x1970]
nop dword [eax]
movsd xmm0, qword [eax + ecx*8]
movsd qword [esi + ecx*8], xmm0
movsd xmm0, qword [edx + ecx*8]
movsd qword [eax + ecx*8], xmm0
inc ecx
cmp ecx, dword [ebp - 0x1964]
jl 0x4c6f80
mov edx, dword [ebp - 0x1954]
mov esi, dword [ebp - 0x195c]
mov eax, dword [ebp - 0x1958]
xor ecx, ecx
mov dword [ebp - 0x196c], ecx
cmp dword [ebp - 0x198c], ecx
jle 0x4c71e1
lea edi, [ebp - 0x1918]
push edi
lea edi, [ebp - 0x1984]
push edi
lea edi, [ebp - 0x658]
push edi
lea edi, [ebp - 0x338]
push edi
push dword [ebp - 0x1990]
mov edi, dword [ebp - 0x197c]
push edi
push eax
mov eax, dword [0x5d8404]
push dword [edx + eax]
push ecx
mov ecx, esi
call fcn.004c2ae0
test al, al
je 0x4c71af
mov ecx, dword [ebp - 0x1954]
lea eax, [ebp - 0x12d8]
push eax
lea eax, [ebp - 0x1984]
push eax
lea eax, [ebp - 0x658]
push eax
lea eax, [ebp - 0x338]
push eax
lea eax, [ebp - 0x1950]
push eax
mov eax, dword [0x5daddc]
push edi
push dword [ebp - 0x1958]
push dword [ecx + eax]
mov ecx, esi
push dword [ebp - 0x196c]
call fcn.004c2ae0
mov edi, dword [ebp - 0x1984]
cmp edi, 0xc8
jle 0x4c707b
push edi
mov ecx, 0x5d6660
call fcn.004156e0
push eax
call fcn.00411280
add esp, 4
mov edx, 2
mov ecx, str.MassEnergyBalance::_Maximum_number_of_connections_exceeded._Please_contact_author.
call fcn.004c4d70
xor esi, esi
test edi, edi
jle 0x4c71af
nop word [eax + eax]
mov ecx, dword [ebp - 0x195c]
mov edi, dword [ebp + esi*4 - 0x338]
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, eax
movsd xmm1, qword [ebp + esi*8 - 0x12d8]
addsd xmm1, qword [ebp + esi*8 - 0x1918]
mov eax, dword [0x5dadd4]
mov edx, dword [ebp - 0x196c]
mulsd xmm1, qword [0x5ba138]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x19a0], eax
movsd qword [eax + esi*8], xmm1
cmp edi, dword [ebp - 0x19cc]
jne 0x4c70f0
movsd xmm1, qword [ebp + esi*8 - 0x1918]
movsd qword [eax + esi*8], xmm1
mov edx, dword [ebp + esi*4 - 0x658]
cmp edx, edi
je 0x4c7146
mov edi, dword [0x5dade8]
mov eax, dword [ebp - 0x1954]
mov ecx, dword [ebp + esi*4 - 0x338]
mulsd xmm1, qword [ebp - 0x19c0]
mov eax, dword [eax + edi]
movsd xmm0, qword [eax + ecx*8]
subsd xmm0, xmm1
movsd qword [eax + ecx*8], xmm0
mov ecx, dword [ebp - 0x19a0]
movsd xmm0, qword [ebp - 0x19c0]
mulsd xmm0, qword [ecx + esi*8]
addsd xmm0, qword [eax + edx*8]
movsd qword [eax + edx*8], xmm0
jmp 0x4c71a0
call fcn.00476240
test al, al
je 0x4c717f
cmp ecx, 0x12
je 0x4c717f
mov edi, dword [0x5dade8]
xorps xmm1, xmm1
mov eax, dword [ebp - 0x1954]
movsd qword [ebp + esi*8 - 0xc98], xmm1
mov eax, dword [eax + edi]
movsd xmm0, qword [eax + edx*8]
addsd xmm0, xmm1
movsd qword [eax + edx*8], xmm0
jmp 0x4c71a0
mov edi, dword [0x5dade8]
mov eax, dword [ebp - 0x1954]
mulsd xmm1, qword [ebp - 0x19c0]
mov eax, dword [eax + edi]
addsd xmm1, qword [eax + edx*8]
movsd qword [eax + edx*8], xmm1
inc esi
cmp esi, dword [ebp - 0x1984]
jl 0x4c7090
jmp 0x4c71b5
mov edi, dword [0x5dade8]
mov ecx, dword [ebp - 0x196c]
inc ecx
mov dword [ebp - 0x196c], ecx
cmp ecx, dword [ebp - 0x198c]
jge 0x4c71e1
mov esi, dword [ebp - 0x195c]
mov edx, dword [ebp - 0x1954]
mov eax, dword [ebp - 0x1958]
jmp 0x4c6fc3
mov eax, dword [ebp - 0x1964]
xor edx, edx
mov dword [ebp - 0x196c], edx
cmp eax, 4
jl 0x4c7392
mov eax, dword [ebp - 0x1954]
mov ecx, dword [0x5daddc]
movd xmm2, dword [ebp - 0x1964]
movsd xmm3, qword [0x5bae60]
mov esi, dword [eax + edi]
mov edx, esi
mov edi, dword [eax + ecx]
sub edx, edi
mov dword [ebp - 0x19a0], edx
mov edx, dword [ebp - 0x1964]
add edx, 0xfffffffc
mov dword [ebp - 0x1960], edi
shr edx, 2
lea eax, [edi + 8]
inc edx
lea ecx, [esi + 0x18]
cvtdq2pd xmm2, xmm2
lea edi, [edx*4]
mov dword [ebp - 0x196c], edi
mov edi, dword [ebp - 0x19a0]
nop dword [eax]
nop dword [eax + eax]
movsd xmm1, qword [ecx - 0x18]
subsd xmm1, qword [eax - 8]
movsd xmm0, qword [edi + eax]
subsd xmm0, qword [eax]
andps xmm1, xmm3
divsd xmm1, xmm2
andps xmm0, xmm3
divsd xmm0, xmm2
addsd xmm1, qword [ebp - 0x19b0]
addsd xmm1, xmm0
movsd xmm0, qword [ecx - 8]
subsd xmm0, qword [eax + 8]
andps xmm0, xmm3
divsd xmm0, xmm2
addsd xmm1, xmm0
movsd xmm0, qword [ecx]
subsd xmm0, qword [eax + 0x10]
add eax, 0x20
add ecx, 0x20
andps xmm0, xmm3
divsd xmm0, xmm2
addsd xmm1, xmm0
movsd qword [ebp - 0x19b0], xmm1
sub edx, 1
jne 0x4c7260
mov edx, dword [ebp - 0x196c]
cmp edx, dword [ebp - 0x1964]
jge 0x4c731c
mov ecx, dword [ebp - 0x1960]
lea eax, [ecx + edx*8]
sub esi, ecx
mov ecx, dword [ebp - 0x1964]
sub ecx, edx
mov edx, dword [ebp - 0x1964]
mov dword [ebp - 0x196c], edx
nop word [eax + eax]
movsd xmm0, qword [esi + eax]
subsd xmm0, qword [eax]
add eax, 8
andps xmm0, xmm3
divsd xmm0, xmm2
addsd xmm1, xmm0
sub ecx, 1
jne 0x4c7300
mov edx, dword [ebp - 0x197c]
xor al, al
movsd xmm0, qword [edx + 0x48]
comisd xmm0, xmm1
jae 0x4c7348
mov ecx, dword [ebp - 0x1994]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
ucomisd xmm0, qword [edx + 0x50]
lahf
test ah, 0x44
jp 0x4c7368
xor edx, edx
xor ecx, ecx
mov al, 1
mov dword [ebp - 0x1960], edx
mov dword [ebp - 0x1994], edx
mov dword [ebp - 0x1980], ecx
cmp dword [ebp - 0x198c], ecx
jg 0x4c73cd
mov esi, dword [ebp - 0x195c]
xorps xmm0, xmm0
movsd qword [ebp - 0x19b0], xmm0
cmp al, 1
je 0x4c7458
mov edx, dword [ebp - 0x1954]
mov eax, dword [ebp - 0x1958]
jmp 0x4c6d00
movsd xmm1, qword [ebp - 0x19b0]
test eax, eax
jle 0x4c731c
mov eax, dword [ebp - 0x1954]
mov ecx, dword [0x5daddc]
movd xmm2, dword [ebp - 0x1964]
movsd xmm3, qword [0x5bae60]
mov esi, dword [eax + edi]
mov ecx, dword [eax + ecx]
cvtdq2pd xmm2, xmm2
jmp 0x4c72dd
mov eax, dword [0x5dadd4]
mov esi, dword [ebp - 0x195c]
mov dword [ebp - 0x1970], eax
nop
push ecx
mov ecx, esi
call fcn.004be000
xor edi, edi
mov dword [ebp - 0x1984], eax
test eax, eax
jle 0x4c7439
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ebp - 0x1970]
movsd xmm3, qword [ebp - 0x19c0]
push dword [ebp - 0x1974]
mov ecx, dword [eax]
push edx
mulsd xmm3, qword [ecx + edi*8]
mov ecx, esi
call fcn.004c0920
mov edx, dword [ebp - 0x1960]
inc edi
inc edx
mov dword [ebp - 0x1960], edx
cmp edi, dword [ebp - 0x1984]
jl 0x4c7400
mov ecx, dword [ebp - 0x1980]
add dword [ebp - 0x1970], 4
inc ecx
mov dword [ebp - 0x1980], ecx
cmp ecx, dword [ebp - 0x198c]
jl 0x4c73e0
xorps xmm0, xmm0
mov eax, dword [ebp - 0x1974]
mov edx, dword [ebp - 0x1954]
inc eax
add edx, 4
mov dword [ebp - 0x1974], eax
mov dword [ebp - 0x1954], edx
cmp eax, dword [ebp - 0x1968]
jl 0x4c6ce1
jmp 0x4c7491
mov edx, 5
mov ecx, str.MassEnergyBalance
call fcn.004c4d70
mov edx, dword [0x5dadf4]
mov ecx, 0xfa0
mov eax, dword [0x5dadf0]
xorps xmm0, xmm0
mov esi, dword [0x5d8400]
sub edx, eax
mov edi, dword [ebp - 0x196c]
mov dword [ebp - 0x1958], 0
nop dword [eax]
mov dword [edx + eax], 0xffffffff
lea eax, [eax + 4]
mov dword [eax - 4], 0xffffffff
movsd qword [esi + edi*8], xmm0
sub ecx, 1
jne 0x4c74c0
mov edi, dword [0x5dade8]
xor eax, eax
mov esi, dword [ebp - 0x195c]
mov dword [ebp - 0x1980], eax
cmp dword [ebp - 0x198c], eax
jle 0x4c76d0
nop dword [eax + eax]
push ecx
lea ecx, [ebp - 0x1970]
push ecx
lea ecx, [ebp - 0x658]
push ecx
lea ecx, [ebp - 0x338]
push ecx
sub esp, 8
push dword [ebp - 0x1990]
push dword [ebp - 0x197c]
push ecx
push eax
mov ecx, esi
call fcn.004c2b90
mov edi, dword [0x5dade8]
test al, al
je 0x4c7678
cmp dword [ebp - 0x1970], 0
mov dword [ebp - 0x1974], 0
jle 0x4c76b7
mov eax, dword [0x5dadf4]
lea ecx, [ebp - 0x338]
movsd xmm3, qword [ebp - 0x19c0]
sub ecx, eax
mov dword [ebp - 0x19cc], ecx
lea ecx, [ebp - 0x658]
sub ecx, eax
mov dword [ebp - 0x196c], eax
mov dword [ebp - 0x19a0], ecx
mov ecx, dword [0x5dadf0]
sub ecx, eax
mov dword [ebp - 0x1960], ecx
mov edx, dword [eax]
mov ecx, esi
push edx
call fcn.004bd6a0
mov ecx, dword [ebp - 0x1960]
movsd xmm0, qword [eax + 0x10]
mov eax, dword [ebp - 0x196c]
push dword [eax + ecx]
mov ecx, esi
call fcn.004bd6a0
mov ecx, dword [ebp - 0x19cc]
mov esi, dword [0x5d8400]
push dword [ebp - 0x1958]
movsd xmm2, qword [eax + 0x10]
mov eax, dword [ebp - 0x196c]
mov ecx, dword [ecx + eax]
mov eax, dword [edi + edx*4]
mov edx, dword [ebp - 0x1974]
mov edi, dword [ebp - 0x19a0]
movsd xmm1, qword [esi + edx*8]
divsd xmm1, xmm0
movsd xmm0, qword [eax + ecx*8]
mulsd xmm1, xmm3
subsd xmm0, xmm1
movsd qword [eax + ecx*8], xmm0
movsd xmm0, qword [esi + edx*8]
divsd xmm0, xmm2
mov ecx, dword [ebp - 0x196c]
mov eax, dword [ebp - 0x1960]
mov eax, dword [ecx + eax]
mov ecx, dword [edi + ecx]
mov edi, dword [0x5dade8]
mov eax, dword [edi + eax*4]
movaps xmm2, xmm3
mulsd xmm0, xmm3
addsd xmm0, qword [eax + ecx*8]
movsd qword [eax + ecx*8], xmm0
mov eax, esi
mov esi, dword [ebp - 0x195c]
mov ecx, esi
mulsd xmm2, qword [eax + edx*8]
call fcn.004c0960
mov ecx, dword [ebp - 0x1974]
mov eax, dword [ebp - 0x196c]
inc ecx
inc dword [ebp - 0x1958]
add eax, 4
mov dword [ebp - 0x1974], ecx
mov dword [ebp - 0x196c], eax
cmp ecx, dword [ebp - 0x1970]
jl 0x4c7590
jmp 0x4c76b7
mov eax, dword [ebp - 0x1970]
mov dword [ebp - 0x19cc], eax
test eax, eax
jle 0x4c76b7
mov eax, dword [ebp - 0x1958]
mov edi, dword [ebp - 0x19cc]
push eax
xorps xmm2, xmm2
mov ecx, esi
call fcn.004c0960
mov eax, dword [ebp - 0x1958]
inc eax
mov dword [ebp - 0x1958], eax
sub edi, 1
jne 0x4c7694
mov edi, dword [0x5dade8]
mov eax, dword [ebp - 0x1980]
inc eax
mov dword [ebp - 0x1980], eax
cmp eax, dword [ebp - 0x198c]
jl 0x4c7500
mov eax, dword [ebp - 0x197c]
cmp dword [eax + 0x94], 1
jne 0x4c773a
xor edx, edx
mov dword [ebp - 0x1960], edx
cmp dword [ebp - 0x1968], edx
jle 0x4c772f
nop
push edx
mov ecx, esi
call fcn.004bd6a0
mov ecx, dword [edi + edx*4]
push eax
mov eax, dword [ebp - 0x19a4]
movsd xmm2, qword [ecx + eax*8]
mov ecx, dword [ebp - 0x1998]
call fcn.0044d710
mov edx, dword [ebp - 0x1960]
inc edx
mov dword [ebp - 0x1960], edx
cmp edx, dword [ebp - 0x1968]
jge 0x4c772f
mov edi, dword [0x5dade8]
jmp 0x4c76f0
mov ecx, dword [ebp - 0x1998]
call fcn.0044cfb0
push 0x50
call fcn.0051fae4
mov dword [ebp - 0x1994], eax
add esp, 4
mov eax, dword [ebp - 0x1978]
xor ecx, ecx
test eax, eax
jle 0x4c7814
mov edx, dword [0x5dadd0]
mov edi, dword [0x5dade4]
cmp eax, 2
jb 0x4c77e8
dec eax
lea eax, [edi + eax*8]
cmp edx, eax
ja 0x4c7787
mov esi, dword [ebp - 0x1978]
dec esi
lea eax, [edx + esi*8]
mov esi, dword [ebp - 0x195c]
cmp eax, edi
jae 0x4c77e8
mov edx, dword [ebp - 0x1978]
mov eax, edx
and eax, 0x80000001
jns 0x4c779b
dec eax
or eax, 0xfffffffe
inc eax
sub edx, eax
nop dword [eax]
add ecx, 2
cmp ecx, edx
jl 0x4c77a0
lea eax, [edx + 1]
mov dword [ebp - 0x19a4], ecx
cdq
sub eax, edx
mov edx, eax
xor eax, eax
sar edx, 1
shl edx, 4
mov ecx, edx
shr edx, 2
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, dword [0x5dadd0]
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x19a4]
mov ecx, eax
cmp eax, dword [ebp - 0x1978]
jge 0x4c7814
mov edi, dword [0x5dade4]
lea eax, [edx + ecx*8]
sub edi, edx
mov edx, dword [ebp - 0x1978]
xorps xmm2, xmm2
sub edx, ecx
nop dword [eax + eax]
movsd qword [edi + eax], xmm2
lea eax, [eax + 8]
movsd qword [eax - 8], xmm2
sub edx, 1
jne 0x4c7800
jmp 0x4c7817
xorps xmm2, xmm2
movsd xmm4, qword [0x5bab48]
xor edx, edx
cmp dword [ebp - 0x1968], edx
jle 0x4c791c
movsd xmm3, qword [0x5baa20]
push edx
mov ecx, esi
call fcn.004bd6a0
mov edi, eax
cmp byte [edi + 0x44], 0
jne 0x4c790f
mov eax, dword [edi + 0x18]
mov ecx, edi
mov dword [ebp - 0x1960], eax
call fcn.00488420
test al, al
je 0x4c78c7
mov eax, dword [0x5dade8]
mov ecx, dword [ebp - 0x199c]
movsd xmm0, qword [edi + 0x10]
mulsd xmm0, xmm4
mov eax, dword [eax + edx*4]
movsd xmm1, qword [eax + ecx*8]
lea eax, [ebp - 0x19b0]
divsd xmm1, xmm3
push eax
mov ecx, esi
push dword [ebp - 0x1960]
mulsd xmm1, xmm0
movsd qword [ebp - 0x19b0], xmm1
call fcn.004bd910
mov ecx, eax
call fcn.00489750
mov ecx, eax
call fcn.0046d1b0
mov ecx, dword [0x5dade8]
mov esi, dword [ebp - 0x199c]
mov eax, dword [ecx + edx*4]
movsd qword [eax + esi*8], xmm2
mov esi, dword [ebp - 0x195c]
jmp 0x4c78cd
mov ecx, dword [0x5dade8]
mov eax, edx
movsd xmm1, qword [edi + 0x10]
mov edi, dword [0x5dade4]
mulsd xmm1, xmm4
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x199c]
movsd xmm0, qword [eax + ecx*8]
divsd xmm0, xmm3
mov ecx, dword [ebp - 0x1960]
mulsd xmm1, xmm0
addsd xmm1, qword [edi + ecx*8]
movsd qword [edi + ecx*8], xmm1
mov ecx, dword [ebp - 0x199c]
movsd qword [eax + ecx*8], xmm2
inc edx
cmp edx, dword [ebp - 0x1968]
jl 0x4c7835
xor eax, eax
mov dword [ebp - 0x1980], eax
cmp dword [ebp - 0x1978], eax
jle 0x4c7d48
movsd xmm0, qword [ebp - 0x19e0]
movsd qword [ebp - 0x19a8], xmm0
push eax
mov ecx, esi
call fcn.004bd910
mov edi, eax
xor edx, edx
mov ecx, edi
mov dword [ebp - 0x1974], edi
mov dword [ebp - 0x1960], edx
call fcn.00489c00
test eax, eax
jle 0x4c79c8
mov ecx, edi
call fcn.0048a1b0
lea eax, [ebp - 0x1970]
movsd qword [ebp - 0x19b0], xmm0
push eax
push dword [ebp - 0x1990]
lea eax, [ebp - 0x19b0]
push ecx
push eax
push edx
mov ecx, edi
call fcn.00489c10
mov eax, dword [ebp - 0x1970]
cmp eax, 0xffffffff
je 0x4c79aa
mov esi, dword [0x5dadd0]
addsd xmm0, qword [esi + eax*8]
movsd qword [esi + eax*8], xmm0
mov edx, dword [ebp - 0x1960]
mov ecx, edi
inc edx
mov dword [ebp - 0x1960], edx
call fcn.00489c00
cmp edx, eax
jl 0x4c7963
mov esi, dword [ebp - 0x195c]
mov ecx, edi
call fcn.00489750
mov ecx, eax
mov dword [ebp - 0x1998], ecx
test ecx, ecx
je 0x4c7a4f
xor edi, edi
call fcn.0046c940
test eax, eax
jle 0x4c7a49
push edi
call fcn.0046c9f0
mov ecx, dword [ebp - 0x1974]
mov edx, eax
call fcn.00489640
cmp edx, eax
je 0x4c7a39
mov ecx, dword [ebp - 0x1998]
push edi
call fcn.0046c9f0
push eax
mov ecx, esi
call fcn.004bd9a0
mov edx, eax
mov dword [ebp - 0x1970], edx
cmp edx, 0xffffffff
je 0x4c7a39
mov ecx, dword [ebp - 0x1998]
push edi
call fcn.0046c830
mov eax, dword [0x5dadd0]
addsd xmm0, qword [eax + edx*8]
movsd qword [eax + edx*8], xmm0
mov ecx, dword [ebp - 0x1998]
inc edi
call fcn.0046c940
cmp edi, eax
jl 0x4c79e6
mov edi, dword [ebp - 0x1974]
lea eax, [ebp - 0x19a8]
mov ecx, edi
push eax
call fcn.00489a60
mov eax, dword [ebp - 0x1980]
mov edx, dword [0x5dadd0]
addsd xmm0, qword [edx + eax*8]
movsd qword [edx + eax*8], xmm0
inc eax
mov dword [ebp - 0x1980], eax
cmp eax, dword [ebp - 0x1978]
jl 0x4c7940
xor eax, eax
mov dword [ebp - 0x1960], eax
nop
push eax
mov ecx, esi
call fcn.00459a40
push eax
mov ecx, esi
mov dword [ebp - 0x1958], eax
call fcn.004bd910
mov edi, eax
mov ecx, edi
call fcn.00489690
test al, al
je 0x4c7d2f
push dword [ebp - 0x197c]
push dword [ebp - 0x1990]
call fcn.0048e8e0
mov ecx, dword [ebp - 0x1958]
mov eax, dword [0x5dadd0]
lea eax, [eax + ecx*8]
mov ecx, edi
push eax
call fcn.0048c520
lea eax, [ebp - 0x1a18]
mov ecx, edi
push eax
call fcn.00489a80
mov eax, dword [ebp - 0x197c]
movaps xmm2, xmm0
cmp dword [eax + 0x94], 1
jne 0x4c7b2f
push dword [ebp - 0x1958]
mov ecx, dword [ebp - 0x19d4]
call fcn.00427230
mulsd xmm0, qword [ebp - 0x19c0]
mov eax, dword [ebp - 0x1958]
mov ecx, dword [0x5dade4]
addsd xmm0, qword [ecx + eax*8]
movsd qword [ecx + eax*8], xmm0
jmp 0x4c7b3b
mov eax, dword [ebp - 0x1958]
mov ecx, dword [0x5dade4]
movsd xmm0, qword [ebp - 0x19c0]
mulsd xmm0, qword [0x5bab20]
movsd xmm1, qword [ecx + eax*8]
lea eax, [ebp - 0x19b0]
push eax
mov ecx, edi
divsd xmm1, xmm0
addsd xmm1, xmm2
movsd qword [ebp - 0x19b0], xmm1
call fcn.0048c5e0
push dword [ebp - 0x1990]
lea eax, [ebp - 0x19c8]
mov ecx, edi
push dword [ebp - 0x197c]
push dword [ebp - 0x1994]
push eax
lea eax, [ebp - 0x1a00]
push eax
lea eax, [ebp - 0x1a08]
push eax
push dword [0x5dadd8]
call fcn.0048f1a0
movsd xmm0, qword [ebp - 0x19e0]
mov ecx, edi
movsd qword [ebp - 0x19b0], xmm0
call fcn.00489680
mov ecx, dword [0x5dadd8]
sub ecx, 8
lea eax, [ecx + eax*8]
mov ecx, edi
push eax
lea eax, [ebp - 0x19b0]
push eax
call fcn.00489b90
movsd qword [ebp - 0x19d0], xmm0
mov ecx, edi
addsd xmm0, qword [0x5b9b00]
mov dword [ebp - 0x19a4], 0
movsd qword [ebp - 0x19b0], xmm0
call fcn.00489c00
test eax, eax
jle 0x4c7c55
mov esi, dword [ebp - 0x19a4]
mov ecx, edi
call fcn.0048a1b0
lea eax, [ebp - 0x1970]
movsd qword [ebp - 0x19a8], xmm0
push eax
push dword [ebp - 0x1990]
lea eax, [ebp - 0x19a8]
push ecx
push eax
push esi
mov ecx, edi
call fcn.00489c10
addsd xmm0, qword [ebp - 0x19b0]
mov ecx, edi
inc esi
movsd qword [ebp - 0x19b0], xmm0
call fcn.00489c00
cmp esi, eax
jl 0x4c7c07
mov esi, dword [ebp - 0x195c]
push ecx
push dword [ebp - 0x1990]
lea eax, [ebp - 0x19c8]
push dword [ebp - 0x197c]
push dword [ebp - 0x1994]
push eax
lea eax, [ebp - 0x1a00]
push eax
lea eax, [ebp - 0x1a08]
push eax
lea eax, [ebp - 0x19d0]
push eax
push ecx
mov ecx, edi
call fcn.0048e920
push ecx
push dword [ebp - 0x197c]
mov ecx, esi
push dword [ebp - 0x1958]
call fcn.00471e90
push dword [ebp - 0x1958]
mov ecx, esi
call fcn.004bd920
mov dword [ebp - 0x19a4], eax
cmp eax, 0xffffffff
je 0x4c7cdd
mov edx, dword [0x5dadd0]
mov ecx, edi
call fcn.0048a1b0
subsd xmm0, qword [ebp - 0x19b0]
mov eax, dword [ebp - 0x19a4]
addsd xmm0, qword [edx + eax*8]
movsd qword [edx + eax*8], xmm0
mov ecx, edi
call fcn.00489750
test eax, eax
je 0x4c7d2f
call fcn.00489750
mov ecx, eax
call fcn.0046c930
mov dword [ebp - 0x19a4], eax
cmp eax, 0xffffffff
je 0x4c7d2f
cmp dword [ebp - 0x1988], 0xffffffff
je 0x4c7d2f
mov ecx, edi
call fcn.00489750
mov ecx, eax
call fcn.0046e0e0
mov ecx, dword [ebp - 0x19a4]
mov eax, dword [0x5dade8]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x1988]
movsd qword [eax + ecx*8], xmm0
mov eax, dword [ebp - 0x1960]
inc eax
mov dword [ebp - 0x1960], eax
cmp eax, dword [ebp - 0x1978]
jl 0x4c7a90
push dword [ebp - 0x1994]
call fcn.0051fadf
xorps xmm0, xmm0
xor eax, eax
add esp, 4
movsd qword [ebp - 0x19f0], xmm0
movsd qword [ebp - 0x19e8], xmm0
movsd qword [ebp - 0x19f8], xmm0
mov dword [ebp - 0x1974], eax
cmp dword [ebp - 0x19c4], eax
jle 0x4c80a9
push eax
mov ecx, esi
call fcn.004be6b0
mov ecx, eax
call fcn.0043d690
mov dword [ebp - 0x1958], eax
xor edx, edx
mov eax, dword [ebp - 0x1978]
test eax, eax
jle 0x4c7e62
mov edi, dword [0x5dade0]
cmp eax, 2
jb 0x4c7e37
mov ecx, dword [0x5dadf8]
dec eax
lea eax, [edi + eax*8]
cmp ecx, eax
ja 0x4c7ddb
mov esi, dword [ebp - 0x1978]
dec esi
lea eax, [ecx + esi*8]
mov esi, dword [ebp - 0x195c]
cmp eax, edi
jae 0x4c7e37
mov ecx, dword [ebp - 0x1978]
mov eax, ecx
and eax, 0x80000001
jns 0x4c7def
dec eax
or eax, 0xfffffffe
inc eax
sub ecx, eax
add edx, 2
cmp edx, ecx
jl 0x4c7df1
mov dword [ebp - 0x19a4], edx
lea eax, [ecx + 1]
cdq
sub eax, edx
mov edx, eax
xor eax, eax
sar edx, 1
shl edx, 4
mov ecx, edx
shr edx, 2
shr ecx, 2
rep stosd dword es:[edi], eax
mov edi, dword [0x5dadf8]
mov ecx, edx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x19a4]
mov edx, eax
cmp eax, dword [ebp - 0x1978]
jge 0x4c7e62
mov edi, dword [0x5dade0]
mov eax, dword [0x5dadf8]
sub edi, eax
lea ecx, [eax + edx*8]
mov eax, dword [ebp - 0x1978]
sub eax, edx
nop dword [eax]
movsd qword [ecx + edi], xmm0
lea ecx, [ecx + 8]
movsd qword [ecx - 8], xmm0
sub eax, 1
jne 0x4c7e50
xor edi, edi
cmp dword [ebp - 0x1968], edi
jle 0x4c7f6b
push edi
mov ecx, esi
call fcn.004bd6a0
mov dword [ebp - 0x19a4], eax
cmp byte [eax + 0x44], 0
jne 0x4c7f5e
push dword [ebp - 0x199c]
mov eax, dword [eax + 0x18]
mov ecx, esi
push dword [ebp - 0x1974]
mov dword [ebp - 0x1988], eax
call fcn.004be6b0
mov ecx, eax
call fcn.0043cb60
mov edx, dword [esi]
mov ecx, esi
push eax
push 0x2b
mov eax, dword [edx + 8]
call eax
mov edx, dword [ebp - 0x19a4]
mov ecx, edx
mov dword [ebp - 0x1998], eax
call fcn.00488420
mov ecx, dword [ebp - 0x1998]
test al, al
mov eax, dword [0x5dade8]
je 0x4c7f1b
movsd xmm2, qword [edx + 0x10]
mov eax, dword [eax + edi*4]
mulsd xmm2, qword [0x5bab48]
push dword [ebp - 0x1988]
mulsd xmm2, qword [eax + ecx*8]
mov ecx, dword [ebp - 0x1958]
call fcn.0042f170
mov ecx, dword [0x5dade8]
xorps xmm0, xmm0
mov eax, dword [ecx + edi*4]
mov ecx, dword [ebp - 0x1998]
movsd qword [eax + ecx*8], xmm0
mov eax, dword [0x5dade8]
movsd xmm0, qword [edx + 0x10]
mov esi, edi
mulsd xmm0, qword [0x5bab48]
mov edx, dword [0x5dade0]
mov eax, dword [eax + esi*4]
mov esi, dword [ebp - 0x1988]
mulsd xmm0, qword [eax + ecx*8]
divsd xmm0, qword [ebp - 0x19c0]
addsd xmm0, qword [edx + esi*8]
movsd qword [edx + esi*8], xmm0
xorps xmm0, xmm0
mov esi, dword [ebp - 0x195c]
movsd qword [eax + ecx*8], xmm0
inc edi
cmp edi, dword [ebp - 0x1968]
jl 0x4c7e70
xor eax, eax
mov dword [ebp - 0x1988], eax
cmp dword [ebp - 0x1978], eax
jle 0x4c8085
nop
push eax
mov ecx, esi
call fcn.00459a40
mov edi, eax
mov ecx, esi
push edi
call fcn.004bd910
mov ecx, eax
call fcn.00489690
test al, al
je 0x4c806c
mov eax, dword [0x5dadf8]
movsd xmm2, qword [ebp - 0x19e0]
mov ecx, dword [ebp - 0x1958]
lea eax, [eax + edi*8]
push eax
push edi
call fcn.004343c0
mov eax, dword [0x5dadf8]
mov ecx, dword [ebp - 0x1958]
push edi
movsd xmm2, qword [eax + edi*8]
call fcn.00434330
mov eax, dword [0x5dade0]
mov ecx, dword [ebp - 0x1958]
push edi
movsd xmm2, qword [eax + edi*8]
call fcn.00434820
push dword [ebp - 0x1990]
lea eax, [ebp - 0x19e8]
push dword [ebp - 0x197c]
push eax
lea eax, [ebp - 0x19f0]
push eax
push ecx
mov ecx, dword [ebp - 0x1958]
push edi
call fcn.004348b0
mov ecx, dword [ebp - 0x1958]
lea edx, [ebp - 0x19f8]
push 0
push dword [ebp - 0x1990]
push dword [ebp - 0x197c]
mov eax, dword [ecx]
push edx
lea edx, [ebp - 0x19e8]
push edx
lea edx, [ebp - 0x19f0]
push edx
push dword [0x5dadec]
push edi
call dword [eax + 0x20]
push edi
mov ecx, esi
call fcn.004bd920
mov ecx, eax
cmp ecx, 0xffffffff
je 0x4c806c
mov eax, dword [0x5dadf8]
movsd xmm0, qword [ebp - 0x19f8]
addsd xmm0, qword [eax + ecx*8]
movsd qword [eax + ecx*8], xmm0
mov eax, dword [ebp - 0x1988]
inc eax
mov dword [ebp - 0x1988], eax
cmp eax, dword [ebp - 0x1978]
jl 0x4c7f80
mov eax, dword [ebp - 0x1974]
xorps xmm0, xmm0
mov edi, dword [0x5dade8]
inc eax
mov dword [ebp - 0x1974], eax
cmp eax, dword [ebp - 0x19c4]
jl 0x4c7d85
jmp 0x4c80af
mov edi, dword [0x5dade8]
mov ecx, dword [ebp - 0x1968]
xor eax, eax
mov dword [ebp - 0x1988], eax
test ecx, ecx
jle 0x4c8118
push eax
mov ecx, esi
call fcn.004bd6a0
mov dword [ebp - 0x19a4], eax
cmp byte [eax + 0x44], 0
jne 0x4c80fe
xor edx, edx
cmp dword [ebp - 0x1964], edx
jle 0x4c80fe
mov esi, eax
mov eax, dword [edi]
mov ecx, esi
lea eax, [eax + edx*8]
push eax
push edx
call fcn.004885b0
inc edx
cmp edx, dword [ebp - 0x1964]
jl 0x4c80e1
mov esi, dword [ebp - 0x195c]
mov eax, dword [ebp - 0x1988]
add edi, 4
mov ecx, dword [ebp - 0x1968]
inc eax
mov dword [ebp - 0x1988], eax
cmp eax, ecx
jl 0x4c80c1
mov edi, dword [ebp - 0x197c]
movsd xmm1, qword [ebp - 0x1a10]
movsd xmm0, qword [edi + 0x28]
subsd xmm0, qword [edi + 0x58]
comisd xmm1, xmm0
jb 0x4c82c8
xor esi, esi
test ecx, ecx
jle 0x4c81cd
mov edi, dword [ebp - 0x1968]
nop word [eax + eax]
mov eax, dword [0x5d8404]
push dword [eax + esi*4]
call fcn.0051fadf
inc esi
add esp, 4
cmp esi, edi
jl 0x4c8150
push dword [0x5d8404]
call fcn.0051fadf
add esp, 4
mov dword [0x5d8404], 0
xor esi, esi
nop
mov eax, dword [0x5dade8]
push dword [eax + esi*4]
call fcn.0051fadf
inc esi
add esp, 4
cmp esi, edi
jl 0x4c8180
push dword [0x5dade8]
call fcn.0051fadf
add esp, 4
mov dword [0x5dade8], 0
xor esi, esi
nop
mov eax, dword [0x5daddc]
push dword [eax + esi*4]
call fcn.0051fadf
inc esi
add esp, 4
cmp esi, edi
jl 0x4c81b0
mov edi, dword [ebp - 0x197c]
jmp 0x4c81f5
push dword [0x5d8404]
call fcn.0051fadf
add esp, 4
mov dword [0x5d8404], esi
push dword [0x5dade8]
call fcn.0051fadf
add esp, 4
mov dword [0x5dade8], esi
push dword [0x5daddc]
call fcn.0051fadf
add esp, 4
mov dword [0x5daddc], 0
cmp dword [edi + 0x40], 2
jne 0x4c824d
mov edi, dword [ebp - 0x198c]
xor esi, esi
test edi, edi
jle 0x4c8235
nop
mov eax, dword [0x5dadd4]
push dword [eax + esi*4]
call fcn.0051fadf
inc esi
add esp, 4
cmp esi, edi
jl 0x4c8220
push dword [0x5dadd4]
call fcn.0051fadf
add esp, 4
mov dword [0x5dadd4], 0
push dword [0x5dadd0]
call fcn.0051fadf
add esp, 4
mov dword [0x5dadd0], 0
push dword [0x5dadd8]
call fcn.0051fadf
add esp, 4
mov dword [0x5dadd8], 0
push dword [0x5dade4]
call fcn.0051fadf
add esp, 4
mov dword [0x5dade4], 0
cmp dword [ebp - 0x19c4], 0
jle 0x4c82c8
push dword [0x5dadf8]
call fcn.0051fadf
add esp, 4
push dword [0x5dade0]
call fcn.0051fadf
add esp, 4
push dword [0x5dadec]
call fcn.0051fadf
add esp, 4
mov ecx, dword [ebp - 0x193c]
cmp ecx, 0x10
jb 0x4c82fe
mov edx, dword [ebp - 0x1950]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4c82f4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c831c
push ecx
push edx
call fcn.0051faa7
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0051fa69
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.0052eb21
int3