Function at 0x5305b0
Capabilities:
Get number of processors
Inspect section memory permissions

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 0x5b1a96
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x130
mov eax, dword [0x5bd344]
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, ecx
mov dword [ebp - 0x98], edi
movss xmm0, dword [ebx + 0x28]
movss xmm1, dword [ebx + 0x24]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x10]
mov esi, dword [ebx + 0x14]
movss dword [ebp - 0xc0], xmm0
movss dword [ebp - 0xf8], xmm0
movss xmm0, dword [ebx + 0x2c]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [ebx + 0x34]
comiss xmm1, xmm0
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x90], esi
movss dword [ebp - 0xec], xmm0
jbe 0x530655
movss dword [ebp - 0xec], xmm1
mov eax, dword [ecx]
lea edx, [ebp - 0x12c]
push edx
call dword [eax + 8]
mov eax, dword [esi + 0x14]
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe8], 0x44dcc0
mov eax, dword [eax + 0xa14]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 4], 0
mov esi, dword [esi + 0xe0]
mov dword [ebp - 0xc8], 0
mov ecx, dword [eax + 0xe4]
mov eax, 0x2aaaaaab
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x531693
xor edx, edx
lea ecx, [edx + edx*2]
shl ecx, 3
mov dword [ebp - 0x94], ecx
mov eax, dword [ecx + esi + 8]
test eax, eax
jle 0x531659
movss xmm1, dword [ebp - 0xc0]
movd xmm0, eax
mov eax, dword [ecx + esi]
movss dword [ebp - 0xf8], xmm1
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movss dword [ebp - 0xc0], xmm1
movss dword [ebp - 0xf0], xmm1
cmp eax, 1
je 0x530798
test dword [ecx + esi + 0xc], 0xfe000000
je 0x53074c
cvttss2si eax, dword [ebp - 0x128]
and al, 1
je 0x53072c
mov eax, dword [edi + 4]
jmp 0x53072f
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0xa4]
movups xmm0, xmmword [ebp - 0xf8]
push eax
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x34]
jmp 0x5307c1
sub eax, 2
je 0x530786
sub eax, 1
je 0x530774
sub eax, 3
je 0x53076d
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0xa00]
push eax
jmp 0x5307a7
mov eax, dword [ecx + esi + 4]
push eax
jmp 0x5307a7
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x9b0]
push eax
jmp 0x5307a7
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x9b4]
push eax
jmp 0x5307a7
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x14]
push dword [eax + 0xa00]
mov ecx, dword [ebp - 0xa4]
sub esp, 0x10
movups xmm0, xmmword [ebp - 0xf8]
mov eax, esp
mov edx, dword [ecx]
movups xmmword [eax], xmm0
call dword [edx + 0x38]
movss xmm0, dword [ebx + 0x2c]
addss xmm0, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x90]
add ecx, 0x48
mov dword [ebp - 0xc4], ecx
cvttss2si eax, xmm0
cdq
idiv dword [ecx]
mov esi, eax
mov eax, dword [ebp - 0x88]
mov ecx, eax
mov edx, dword [eax]
mov edx, dword [edx + 4]
call edx
mov ecx, dword [ebp - 0xc4]
mov byte [ebp - 0xac], 0
lea edi, [esi + eax]
mov eax, dword [ebp - 0x94]
mov edx, dword [ecx]
cvttss2si ecx, dword [ebp - 0x128]
mov dword [ebp - 0xa0], edi
imul edx, esi
sub edx, ecx
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0xb8], edx
mov ecx, dword [ecx + 0xe0]
test dword [eax + ecx + 0xc], 0xfe000000
je 0x5309f4
mov edi, dword [ebp - 0x88]
add edi, 0x27c
mov dword [ebp - 0xb4], edi
cmp dword [edi + 4], 0
jne 0x530860
mov edx, dword [ebp - 0xa0]
jmp 0x53088e
mov esi, dword [ebp - 0xa0]
test esi, esi
jg 0x53086e
xor edx, edx
jmp 0x53088e
mov ecx, edi
call fcn.005255e0
cmp esi, eax
jle 0x530883
mov ecx, edi
call fcn.005255e0
push eax
jmp 0x530884
push esi
mov ecx, dword [edi + 0x14]
call fcn.004a0250
mov edx, eax
mov eax, dword [ebp - 0x88]
push edx
mov eax, dword [eax + 0x2a8]
add eax, 4
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov esi, eax
mov dword [ebp - 0xa8], esi
test esi, 0x1000
je 0x530963
cmp dword [edi + 4], 0
jne 0x5308c6
mov esi, dword [ebp - 0xa0]
jmp 0x5308f9
cmp dword [ebp - 0xa0], 0
jg 0x5308d3
mov eax, esi
jmp 0x530938
mov ecx, edi
call fcn.005255e0
mov ecx, dword [ebp - 0xa0]
cmp ecx, eax
jle 0x5308ee
mov ecx, edi
call fcn.005255e0
push eax
jmp 0x5308ef
push ecx
mov ecx, dword [edi + 0x14]
call fcn.004a0250
mov esi, eax
mov eax, dword [ebp - 0xa8]
test esi, esi
jle 0x530932
mov edi, dword [ebp - 0x88]
nop dword [eax]
test eax, 0x1000
je 0x53092c
mov eax, dword [edi + 0x2a8]
dec esi
add eax, 4
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test esi, esi
jg 0x530910
mov edi, dword [ebp - 0xb4]
mov esi, dword [ebp - 0xa8]
test eax, 0x2000
jne 0x530963
mov ecx, dword [ebp - 0xac]
and eax, 0xfff
and esi, 0xfff
movzx ecx, cl
cmp esi, eax
mov eax, 1
cmovb ecx, eax
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0x98]
cmp byte [edx + 0x1c], 0
je 0x5309ee
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov esi, eax
add esi, dword [ebx + 0xc]
cmp dword [edi + 4], 0
je 0x5309af
test esi, esi
jg 0x53098f
xor esi, esi
jmp 0x5309af
mov ecx, edi
call fcn.005255e0
cmp esi, eax
jle 0x5309a4
mov ecx, edi
call fcn.005255e0
push eax
jmp 0x5309a5
push esi
mov ecx, dword [edi + 0x14]
call fcn.004a0250
mov esi, eax
mov edi, dword [ebp - 0x88]
inc esi
push esi
mov ecx, dword [edi + 0x260]
mov eax, dword [edi + 0x238]
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov ecx, dword [edi + 0x2a8]
add ecx, 4
push edx
push ecx
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi + 0x2a8]
push eax
mov eax, dword [ebp - 0x98]
add eax, 0xc
push eax
call fcn.004a73b0
mov edi, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x90]
mov edx, 0x1a
mov eax, dword [ecx + 0x24]
mov ecx, 0x1f
cmp dword [eax + 0x340], 5
cmovne ecx, edx
cmp dword [eax + 0x320], 5
mov dword [ebp - 0x120], ecx
mov eax, 0x19
mov ecx, 0x1e
cmovne ecx, eax
mov dword [ebp - 0x124], ecx
mov ecx, dword [ebp - 0x88]
mov esi, dword [ecx + 0x280]
mov dword [ebp - 0xb4], esi
test esi, esi
jne 0x530a4f
mov eax, dword [ecx + 0x294]
jmp 0x530a95
mov esi, dword [ecx + 0x290]
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x10]
lea edx, [ecx - 2]
test edx, edx
js 0x530a87
cmp edx, ecx
jge 0x530a87
cmp edx, dword [eax + 0x14]
jge 0x530a72
mov eax, dword [eax]
lea eax, [eax + edx*4]
jmp 0x530a7c
mov ecx, dword [eax + 0x18]
mov eax, dword [eax]
add ecx, edx
lea eax, [eax + ecx*4]
mov eax, dword [eax]
cmp edx, dword [esi]
jle 0x530a89
add eax, dword [esi + 4]
jmp 0x530a89
xor eax, eax
mov esi, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x88]
cmp edi, eax
jge 0x53164d
movd xmm1, dword [ebp - 0xb8]
movss xmm0, dword [ebx + 0x24]
cvtdq2ps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x53164d
test esi, esi
je 0x530b09
test edi, edi
jg 0x530ac2
xor edi, edi
jmp 0x530b05
lea ecx, [ecx + 0x27c]
call fcn.005255e0
cmp edi, eax
jle 0x530aeb
mov edi, dword [ebp - 0x88]
lea ecx, [edi + 0x27c]
call fcn.005255e0
mov ecx, dword [edi + 0x290]
push eax
jmp 0x530af8
mov eax, dword [ebp - 0x88]
push edi
mov ecx, dword [eax + 0x290]
call fcn.004a0250
mov ecx, dword [ebp - 0x88]
mov edi, eax
test esi, esi
jne 0x530b1e
mov eax, dword [ecx + 0x294]
cmp edi, eax
mov ecx, edi
cmovg ecx, eax
mov dword [ebp - 0xb0], ecx
jmp 0x530b71
mov esi, dword [ecx + 0x290]
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x10]
lea edx, [ecx - 1]
cmp edi, edx
cmovle edx, edi
test edx, edx
js 0x530b67
cmp edx, ecx
jge 0x530b67
cmp edx, dword [eax + 0x14]
jge 0x530b46
mov eax, dword [eax]
lea eax, [eax + edx*4]
jmp 0x530b50
mov ecx, dword [eax + 0x18]
mov eax, dword [eax]
add ecx, edx
lea eax, [eax + ecx*4]
mov eax, dword [eax]
mov dword [ebp - 0xb0], eax
cmp edx, dword [esi]
jle 0x530b71
add eax, dword [esi + 4]
mov dword [ebp - 0xb0], eax
jmp 0x530b71
mov dword [ebp - 0xb0], 0
mov ecx, dword [ebp - 0x88]
push edi
lea ecx, [ecx + 0x27c]
call fcn.00525630
mov ecx, dword [ebp - 0x88]
mov esi, eax
push edi
lea ecx, [ecx + 0x27c]
call fcn.00525f30
dec eax
add eax, esi
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0x2a8]
mov ecx, dword [eax + 0x1cc]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x530c0f
test edi, edi
js 0x530c0f
cmp edi, eax
jge 0x530c0f
mov edx, dword [ecx + 4]
cmp edi, dword [ecx + 0x18]
jge 0x530bd5
lea eax, [edi*4]
lea esi, [edx + eax]
jmp 0x530be4
mov eax, dword [ecx + 0x1c]
add eax, edi
lea esi, [edx + eax*4]
lea eax, [edi*4]
cmp dword [esi], 0
je 0x530c0f
cmp edi, dword [ecx + 0x18]
jl 0x530bf6
mov eax, dword [ecx + 0x1c]
add eax, edi
shl eax, 2
mov eax, dword [edx + eax]
xor edx, edx
mov eax, dword [eax]
test eax, eax
je 0x530c11
mov ecx, dword [eax + 8]
bts edx, ecx
mov eax, dword [eax]
test eax, eax
jne 0x530c01
jmp 0x530c11
xor edx, edx
mov eax, dword [ebp - 0xb0]
xor esi, esi
cmp dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x94]
cmove esi, edx
mov byte [ebp - 0x89], 0
mov edx, esi
mov eax, dword [eax + 0xe0]
test dword [ecx + eax + 0xc], 0xfe000000
je 0x530ff7
mov ecx, dword [ebp - 0x88]
push edi
mov eax, dword [ecx + 0x2a8]
mov ecx, dword [eax + 4]
add eax, 4
push eax
call dword [ecx + 0x1c]
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x84], eax
lea eax, [edi + 1]
push eax
mov dword [ebp - 0x9c], eax
mov ecx, dword [ecx + 0x2a8]
add ecx, 4
push ecx
mov edx, dword [ecx]
call dword [edx + 0x1c]
mov edx, eax
mov eax, dword [ebp - 0x84]
mov ecx, edx
mov dword [ebp - 0xbc], edx
and eax, 0xfff
and ecx, 0xfff
test dword [ebp - 0x84], 0x2000
mov dword [ebp - 0xa8], eax
je 0x530f0f
mov edx, dword [ebp - 0xb0]
cmp dword [ebp - 0xa0], edx
jne 0x530d1e
cmp eax, ecx
jae 0x530d3c
mov ecx, dword [ebp - 0x88]
push edi
lea ecx, [ecx + 0x27c]
call fcn.00525e20
test al, al
mov eax, esi
je 0x530d00
cmp dword [ebp - 0xa8], 0x400
jne 0x530cf5
or eax, 0x80000000
jmp 0x530d57
mov ecx, dword [ebp - 0x120]
bts eax, ecx
jmp 0x530d57
cmp dword [ebp - 0xa8], 0x400
jne 0x530d13
or eax, 0x40000000
jmp 0x530d57
mov ecx, dword [ebp - 0x124]
bts eax, ecx
jmp 0x530d57
cmp eax, ecx
jae 0x530d3c
mov ecx, dword [ebp - 0x88]
push edi
lea ecx, [ecx + 0x27c]
call fcn.00525e20
test al, al
mov eax, esi
jne 0x530d52
jmp 0x530d3e
mov eax, esi
cmp dword [ebp - 0xa8], 0x400
mov dword [ebp - 0x84], eax
jbe 0x530d5d
mov eax, esi
or eax, 0x20000000
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x88]
mov byte [ebp - 0xac], 0
cmp dword [eax + 0x280], 0
jne 0x530d8f
mov eax, dword [eax + 0x294]
cmp edi, eax
mov edx, dword [ebp - 0x9c]
cmovge edx, eax
mov dword [ebp - 0x9c], edx
jmp 0x530e46
mov eax, dword [eax + 0x290]
mov eax, dword [eax + 8]
mov esi, dword [eax + 0x10]
lea edx, [esi - 1]
cmp dword [ebp - 0x9c], edx
cmovle edx, dword [ebp - 0x9c]
test edx, edx
js 0x530de0
cmp edx, esi
jge 0x530de0
cmp edx, dword [eax + 0x14]
jge 0x530dbf
mov eax, dword [eax]
lea esi, [eax + edx*4]
jmp 0x530dc9
mov ecx, dword [eax + 0x18]
mov eax, dword [eax]
add ecx, edx
lea esi, [eax + ecx*4]
mov ecx, dword [ebp - 0x88]
mov esi, dword [esi]
mov eax, dword [ecx + 0x290]
cmp edx, dword [eax]
jle 0x530de8
add esi, dword [eax + 4]
jmp 0x530de8
mov ecx, dword [ebp - 0x88]
xor esi, esi
test esi, esi
jg 0x530df6
xor edx, edx
mov dword [ebp - 0x9c], edx
jmp 0x530e46
lea ecx, [ecx + 0x27c]
call fcn.005255e0
cmp esi, eax
jle 0x530e2c
mov esi, dword [ebp - 0x88]
lea ecx, [esi + 0x27c]
call fcn.005255e0
mov ecx, dword [esi + 0x290]
push eax
call fcn.004a0250
mov edx, eax
mov dword [ebp - 0x9c], edx
jmp 0x530e46
mov ecx, dword [ebp - 0x88]
push esi
mov ecx, dword [ecx + 0x290]
call fcn.004a0250
mov edx, eax
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x88]
push edx
mov eax, dword [eax + 0x2a8]
add eax, 4
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 0xbc], eax
inc ecx
mov eax, dword [ebp - 0x88]
push ecx
mov edx, dword [eax + 0x2a8]
add edx, 4
push edx
mov esi, dword [edx]
call dword [esi + 0x1c]
mov ecx, dword [ebp - 0x88]
mov esi, eax
push edi
and esi, 0xfff
lea ecx, [ecx + 0x27c]
call fcn.00525e20
test al, al
jne 0x530ff1
test dword [ebp - 0xbc], 0x1000
je 0x530eca
mov eax, dword [ebp - 0xac]
mov ecx, 1
cmp dword [ebp - 0xa8], esi
movzx eax, al
cmova eax, ecx
mov byte [ebp - 0xac], al
mov esi, dword [ebp - 0x98]
cmp byte [esi + 0x1c], 0
je 0x530fe9
mov ecx, dword [esi + 0xc]
cmp ecx, 0xffffffff
je 0x530fe9
mov eax, dword [ebp - 0x9c]
cmp ecx, eax
jg 0x530fe9
mov edx, dword [ebp - 0x84]
cmp eax, dword [esi + 0x10]
jg 0x530ffd
mov byte [ebp - 0x89], 1
jmp 0x530ffd
test dword [ebp - 0x84], 0x1000
je 0x530f90
cmp byte [ebp - 0xac], 0
je 0x530f5c
test edx, 0x1000
je 0x530f3a
mov eax, 0x20000000
mov edx, esi
or edx, eax
jmp 0x530ff7
mov byte [ebp - 0xac], 0
mov eax, 0x8000000
cmp ecx, 0x400
ja 0x530f53
mov eax, 0x10000000
mov edx, esi
or edx, eax
jmp 0x530ff7
mov edx, esi
cmp eax, 0x400
jbe 0x530ff7
cmp ecx, eax
jae 0x530f86
mov eax, 0x400
cmp eax, ecx
sbb edx, edx
and edx, 0xf8000000
add edx, 0x10000000
or edx, esi
jmp 0x530ff7
mov edx, esi
or edx, 0x20000000
jmp 0x530ff7
mov edx, esi
cmp eax, 0x400
jbe 0x530ff7
cmp ecx, eax
jae 0x530f86
test dword [ebp - 0xbc], 0x1000
mov byte [ebp - 0xac], 0
je 0x530fc2
mov byte [ebp - 0xac], 1
mov eax, 0x20000000
mov edx, esi
or edx, eax
jmp 0x530ff7
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0xb4]
jne 0x530fb7
mov eax, 0x400
mov edx, esi
cmp eax, ecx
sbb eax, eax
and eax, 0xf8000000
add eax, 0x10000000
or edx, eax
jmp 0x530ff7
mov edx, dword [ebp - 0x84]
jmp 0x530ffd
mov edx, dword [ebp - 0x84]
mov esi, dword [ebp - 0x98]
mov eax, dword [ebp - 0x90]
movss xmm0, dword [ebp - 0xf8]
movss xmm2, dword [ebp - 0xc0]
mov ecx, dword [eax + 0xe0]
mov eax, dword [ebp - 0x94]
and edx, dword [eax + ecx + 0xc]
mov eax, dword [ebp - 0xc4]
movss dword [ebp - 0xd8], xmm0
movd xmm0, dword [ebp - 0xb8]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax]
add eax, dword [ebp - 0xb8]
mov dword [ebp - 0x84], edx
movss dword [ebp - 0xd0], xmm2
movss dword [ebp - 0xd4], xmm0
movd xmm0, eax
mov eax, dword [ebp - 0x94]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0xcc], xmm0
mov eax, dword [eax + ecx]
cmp eax, 1
jne 0x531327
mov eax, dword [ebp - 0xb0]
cmp dword [ebp - 0xa0], eax
jne 0x531284
push 0x64
lea eax, [ebp - 0x80]
push 0
push eax
call fcn.00583650
add esp, 0xc
test edi, edi
js 0x5310b6
lea eax, [edi + 1]
push eax
lea eax, [ebp - 0x80]
push 0x41f01c
push eax
call fcn.00498670
add esp, 0xc
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + 0x274]
test al, 0xc0
je 0x531137
test al, 0x40
mov eax, dword [ecx + 0x2a8]
push edi
je 0x53111b
mov ecx, dword [eax + 4]
add eax, 4
push eax
call dword [ecx + 0x1c]
mov ecx, eax
sar ecx, 0x10
push ecx
mov ecx, eax
and ecx, 0xfff
push ecx
mov ecx, eax
and eax, 0x2000
shr ecx, 9
not cl
and ecx, 8
or ecx, 0x57
neg eax
push ecx
sbb eax, eax
and eax, 0xffffffe9
add eax, 0x5f
push eax
lea eax, [ebp - 0x80]
push 0x44dc4c
push eax
call fcn.00498670
add esp, 0x18
jmp 0x531137
mov ecx, dword [eax + 4]
add eax, 4
push eax
call dword [ecx + 0x24]
push eax
lea eax, [ebp - 0x80]
push 0x44dc5c
push eax
call fcn.00498670
add esp, 0xc
movss xmm0, dword [ebp - 0xd4]
lea ecx, [ebp - 0x80]
movss dword [ebp - 0xa8], xmm0
lea edx, [ecx + 1]
movss dword [ebp - 0x104], xmm0
movss xmm0, dword [ebp - 0xd0]
movss dword [ebp - 0xbc], xmm0
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [ebp - 0xcc]
movss dword [ebp - 0xfc], xmm0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x531180
sub ecx, edx
mov edx, dword [ebp - 0xa4]
push ecx
lea ecx, [ebp - 0x80]
push ecx
mov eax, dword [edx]
lea ecx, [ebp - 0xe8]
push ecx
mov ecx, edx
mov eax, dword [eax + 0x60]
call eax
mov edx, dword [ebp - 0x90]
lea esi, [ebp - 0x80]
movss xmm1, dword [ebp - 0xbc]
lea ecx, [esi + 1]
fstp dword [ebp - 0xb4]
subss xmm1, dword [ebp - 0xb4]
movd xmm0, dword [edx + 0x174]
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
movss dword [ebp - 0x108], xmm1
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x5311e0
mov eax, dword [edx + 0x50]
sub esi, ecx
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0xe0], 0x44dcc0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x44e1b0]
mov eax, dword [ecx + 0xa14]
mov dword [ebp - 0xdc], eax
cvtpd2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xa8]
mov edx, dword [ebp - 0xa4]
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 1
push dword [ecx + 0xa00]
push dword [ecx + 0x9fc]
mov edx, dword [edx]
push esi
push eax
push ecx
mov ecx, dword [ebp - 0xa4]
lea eax, [ebp - 0xe0]
movss dword [esp], xmm0
movups xmm0, xmmword [ebp - 0x108]
push eax
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x50]
mov byte [ebp - 4], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xe0], 0x449560
jmp 0x5314db
mov eax, dword [ebp - 0x90]
test byte [eax + 0x184], 4
je 0x5314e1
movd xmm1, dword [ebp - 0xb8]
mov eax, dword [eax + 0x14]
mov ecx, dword [esi + 0x24]
movss dword [ebp - 0x130], xmm0
movd xmm0, dword [esi + 0x20]
push dword [eax + 0x9fc]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x138], xmm1
movaps xmm1, xmm2
subss xmm1, xmm0
movss dword [ebp - 0x134], xmm1
subss xmm1, dword [eax + 0x9f0]
movss dword [ebp - 0x13c], xmm1
movups xmm0, xmmword [ebp - 0x13c]
test ecx, ecx
jne 0x53130d
mov ecx, dword [ebp - 0xa4]
sub esp, 0x10
mov eax, esp
xor dl, dl
movups xmmword [eax], xmm0
call fcn.00530460
add esp, 0x14
jmp 0x5314db
push 0
sub esp, 0x10
mov eax, esp
push dword [ebp - 0xa4]
movups xmmword [eax], xmm0
call ecx
add esp, 0x1c
jmp 0x5314db
cmp eax, 4
je 0x531335
cmp eax, 5
jne 0x5314e1
mov eax, dword [ebp - 0x88]
push edi
mov esi, dword [eax + 0x2a8]
lea eax, [ebp - 0x11c]
push eax
mov ecx, esi
call fcn.004aae60
cmp dword [ebp - 0x118], 0
je 0x5314db
mov ecx, dword [ebp - 0x90]
lea edx, [ebp - 0x11c]
push edx
mov edx, dword [ecx + 0x140]
call fcn.00527e60
add esp, 4
test al, al
je 0x5314db
mov eax, dword [ebp - 0xb0]
cmp dword [ebp - 0xa0], eax
jne 0x53146f
cmp byte [ebp - 0x114], 0
je 0x5313a6
mov eax, dword [ebp - 0x10c]
movzx eax, byte [eax]
jmp 0x5313ac
mov eax, dword [ebp - 0x110]
mov esi, dword [ebp - 0x90]
mov edx, dword [ebp - 0xa4]
movups xmm0, xmmword [ebp - 0xd8]
add eax, dword [esi + 0x140]
mov edx, dword [edx]
imul ecx, eax, 0x4c
mov eax, dword [esi + 0x14]
push dword [ecx + eax + 0x34]
mov ecx, dword [ebp - 0xa4]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x38]
mov eax, dword [esi + 0xe0]
mov ecx, dword [ebp - 0x94]
cmp dword [ecx + eax], 5
jne 0x531434
mov ecx, dword [ebp - 0xa4]
lea eax, [ebp - 0x11c]
push eax
push dword [esi + 0x140]
mov edx, esi
call fcn.00527ee0
movss xmm1, dword [ebp - 0xd0]
add esp, 8
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
subss xmm1, dword [0x44dd64]
movss dword [ebp - 0xd8], xmm1
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [ebp - 0xa4]
sub esp, 0x10
mov eax, esp
mov edx, esi
push 0x1ff
push dword [ebp - 0x11c]
movups xmmword [eax], xmm0
push 0
lea eax, [ebp - 0x11c]
push eax
push dword [esi + 0x140]
call fcn.00528190
add esp, 0x24
jmp 0x5314db
push edi
mov ecx, esi
call fcn.004ab4d0
test eax, eax
je 0x5314db
mov ecx, dword [ebp - 0xb4]
sub ecx, eax
cmp dword [ebp - 0xa0], ecx
jle 0x5314db
cmp byte [ebp - 0x114], 0
je 0x53149f
mov eax, dword [ebp - 0x10c]
movzx eax, byte [eax]
jmp 0x5314a5
mov eax, dword [ebp - 0x110]
mov esi, dword [ebp - 0x90]
mov edx, dword [ebp - 0xa4]
movups xmm0, xmmword [ebp - 0xd8]
add eax, dword [esi + 0x140]
mov edx, dword [edx]
imul ecx, eax, 0x4c
mov eax, dword [esi + 0x14]
push dword [ecx + eax + 0x34]
mov ecx, dword [ebp - 0xa4]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x38]
mov edx, dword [ebp - 0x84]
test edx, edx
je 0x531627
xor esi, esi
nop dword [eax + eax]
test edx, edx
je 0x531627
test dl, 1
je 0x531610
mov ecx, dword [ebp - 0x90]
xor eax, eax
mov edx, dword [ecx + 0xe0]
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x9c], edx
test dword [ecx + edx + 0xc], 0xfe000000
je 0x5315e2
mov ecx, dword [ebp - 0x98]
cmp byte [ecx + 0x1c], al
je 0x5315dc
mov ecx, dword [ecx + 0xc]
cmp ecx, 0xffffffff
je 0x5315dc
cmp ecx, edi
jg 0x5315dc
mov edx, dword [ebp - 0x98]
mov edx, dword [edx + 0x10]
cmp edi, edx
jg 0x5315d6
cmp ecx, 0xffffffff
je 0x53156d
cmp ecx, edi
jge 0x53156f
cmp edi, edx
jge 0x53156d
mov eax, 2
jmp 0x5315d6
cmp ecx, edi
mov edx, dword [ebp - 0x98]
jne 0x5315c2
cmp edi, dword [edx + 0x10]
jge 0x5315c2
mov eax, dword [ebp - 0xb0]
cmp dword [ebp - 0xa0], eax
jne 0x5315a0
cmp byte [ebp - 0x89], 0
mov eax, 1
mov ecx, 4
cmovne eax, ecx
jmp 0x5315d6
mov ecx, dword [ebp - 0x88]
push edi
lea ecx, [ecx + 0x27c]
call fcn.00525e20
test al, al
jne 0x531566
cmp byte [ebp - 0x89], al
jne 0x531566
xor eax, eax
jmp 0x5315d6
cmp ecx, 0xffffffff
je 0x5315d6
cmp ecx, edi
jge 0x5315d6
cmp edi, dword [edx + 0x10]
mov ecx, 3
cmove eax, ecx
mov edx, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x94]
push dword [ecx + edx]
push eax
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [ebp - 0x90]
push dword [ebp - 0xa4]
mov ecx, dword [eax + 0x24]
add ecx, esi
call fcn.005265a0
mov edx, dword [ebp - 0x84]
sar edx, 1
add esi, 0x20
mov dword [ebp - 0x84], edx
cmp esi, 0x400
jl 0x5314f0
mov ecx, dword [ebp - 0xc4]
mov edi, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xb8]
inc edi
mov dword [ebp - 0xa0], edi
add eax, dword [ecx]
mov dword [ebp - 0xb8], eax
jmp 0x530a31
mov edi, dword [ebp - 0x98]
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x90]
inc edx
mov dword [ebp - 0xc8], edx
mov ecx, dword [eax + 0xe4]
mov esi, dword [eax + 0xe0]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xc8]
cmp edx, eax
jb 0x5306c2
mov eax, dword [ebp - 0x90]
movss xmm0, dword [ebx + 0x2c]
mov ecx, dword [ebp - 0xa4]
movss dword [ebp - 0x104], xmm0
mov eax, dword [eax + 0x14]
movss xmm0, dword [ebx + 0x30]
mov edx, dword [ecx]
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [ebx + 0x34]
push dword [eax + 0x9b4]
movss dword [ebp - 0xfc], xmm0
movss xmm0, dword [ebp - 0xc0]
sub esp, 0x10
movss dword [ebp - 0x108], xmm0
mov eax, esp
movups xmm0, xmmword [ebp - 0x108]
movups xmmword [eax], xmm0
call dword [edx + 0x38]
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.0057e93d
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x30