Function at 0x4627e0
Capabilities:
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
sub esp, 0x60
mov eax, dword [0x515040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebx + 8]
xorps xmm0, xmm0
mov dword [ebp - 0x38], eax
inc eax
mov dword [ebp - 0x28], ecx
add eax, eax
mov ecx, dword [ebx + 0xc]
push esi
mov esi, dword [ebx + 0x18]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebx + 0x10]
push edi
cmp dword [esi], 0
mov edi, dword [ebx + 0x14]
mov eax, dword [ecx + eax*8]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x24], eax
jne 0x46283e
mov ecx, esi
call fcn.0042a520
mov edx, dword [ebp - 0x1c]
mov ecx, dword [esi + 4]
lea eax, [ecx + 0x20]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [ecx + 0x18], eax
movq qword [ecx], xmm0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0x41200000
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0x3f800000
mov dword [ecx + 0x1c], 0xf
mov ecx, dword [ebp - 0x38]
imul eax, ecx, 0x70
add eax, 0x3880
add eax, edx
mov dword [ebp - 0x30], eax
lea eax, [ecx + 0x757]
shl eax, 6
mov dword [ebp - 0x20], eax
mov ecx, dword [eax + edi]
mov eax, dword [eax + edi + 4]
mov dword [ebp - 0x14], eax
mov eax, ecx
and eax, 0x100000
mov dword [ebp - 0x18], eax
je 0x46291b
mov eax, ecx
and eax, 0x200000
mov dword [ebp - 0x18], eax
jne 0x4628b6
xor ecx, ecx
jmp 0x4628bb
mov ecx, 1
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + edi]
and eax, 0x400000
mov dword [ebp - 0x18], eax
je 0x4628ce
or ecx, 2
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + edi]
and eax, 0x800000
mov dword [ebp - 0x18], eax
je 0x4628e1
or ecx, 4
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + edi]
and eax, 0x1000000
mov dword [ebp - 0x18], eax
je 0x4628f4
or ecx, 8
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + edi]
mov edx, dword [ebp - 0x1c]
and eax, 0x2000000
mov dword [ebp - 0x18], eax
je 0x46290a
or ecx, 0x10
push esi
push ecx
mov ecx, dword [ebp - 0x28]
push edi
push dword [ebp - 0x30]
call fcn.004600f0
add esp, 0x10
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x1c]
push esi
push edi
push dword [ebp - 0x34]
push dword [ebp - 0x2c]
call fcn.00461fd0
mov eax, dword [0x5770e0]
add esp, 0x10
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
mov eax, dword [eax + 0x10]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
test dword [ecx + 0x4268], 0x200
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm1, xmm0
mulss xmm1, dword [0x50d1c8]
movss dword [ebp - 0x2c], xmm1
je 0x462b51
mov eax, dword [edx + edi]
and eax, 0x4000000
mov dword [ebp - 0x18], eax
je 0x4629e4
movaps xmm0, xmm1
addss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x18], xmm0
call fcn.004ef120
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x24], xmm0
movsd xmm0, qword [ebp - 0x18]
call fcn.004ee160
movss xmm1, dword [ebp - 0x24]
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0x28]
lea ecx, [edi + 0x1d5a8]
push esi
push eax
cvtsd2ss xmm0, xmm0
push 0
push dword [ebp - 0x30]
movss dword [ebp - 0x14], xmm1
push dword [ebp - 0x1c]
movss dword [ebp - 0x10], xmm0
call fcn.00461290
movss xmm1, dword [ebp - 0x2c]
add esp, 0x14
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
test dword [ecx + 0x4268], 0x200
je 0x462b51
mov eax, dword [edx + edi]
and eax, 0x8000000
mov dword [ebp - 0x18], eax
je 0x462a60
movaps xmm0, xmm1
mulss xmm0, dword [0x50d430]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x18], xmm0
call fcn.004ef120
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x24], xmm0
movsd xmm0, qword [ebp - 0x18]
call fcn.004ee160
movss xmm1, dword [ebp - 0x24]
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0x28]
lea ecx, [edi + 0x1d5a8]
push esi
push eax
cvtsd2ss xmm0, xmm0
push 4
push dword [ebp - 0x30]
movss dword [ebp - 0x14], xmm1
push dword [ebp - 0x1c]
movss dword [ebp - 0x10], xmm0
call fcn.00461290
mov ecx, dword [ebp - 0x1c]
add esp, 0x14
test dword [ecx + 0x4268], 0x200
je 0x462b51
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + edi]
and eax, 0x10000000
mov dword [ebp - 0x18], eax
je 0x462b54
movss xmm0, dword [ebp - 0x2c]
mulss xmm0, dword [0x50d464]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x18], xmm0
call fcn.004ef120
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x24], xmm0
movsd xmm0, qword [ebp - 0x18]
call fcn.004ee160
mov ecx, dword [ebp - 0x1c]
movss xmm1, dword [ebp - 0x24]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x14], xmm1
xorps xmm1, xmm1
movss xmm2, dword [ecx + 0x4258]
comiss xmm2, xmm1
movss dword [ebp - 0x10], xmm0
jbe 0x462b39
mov eax, dword [ecx + 0x426c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x50d1c8]
subss xmm0, xmm2
divss xmm0, dword [0x50d514]
comiss xmm0, dword [0x50d330]
ja 0x462b1b
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x462b39
mov edx, dword [ebp - 0x28]
lea eax, [ebp - 0x14]
push esi
push eax
push 1
push dword [ebp - 0x30]
push ecx
lea ecx, [edi + 0x1d5a8]
call fcn.00461290
add esp, 0x14
jmp 0x462b4e
push esi
lea eax, [ebp - 0x14]
mov edx, ecx
mov ecx, dword [ebp - 0x28]
push eax
push dword [ebp - 0x30]
call fcn.004615a0
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
test dword [ecx + 0x4268], 0x200
je 0x462c4f
mov eax, dword [edx + edi]
and eax, 0x20000000
mov dword [ebp - 0x18], eax
je 0x462bd2
movss xmm0, dword [ebp - 0x2c]
mulss xmm0, dword [0x50d468]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x18], xmm0
call fcn.004ef120
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x24], xmm0
movsd xmm0, qword [ebp - 0x18]
call fcn.004ee160
movss xmm1, dword [ebp - 0x24]
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0x28]
lea ecx, [edi + 0x1d5a8]
push esi
push eax
cvtsd2ss xmm0, xmm0
push 2
push dword [ebp - 0x30]
movss dword [ebp - 0x14], xmm1
push dword [ebp - 0x1c]
movss dword [ebp - 0x10], xmm0
call fcn.00461290
mov ecx, dword [ebp - 0x1c]
add esp, 0x14
test dword [ecx + 0x4268], 0x200
je 0x462c4f
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + edi]
and eax, 0x40000000
mov dword [ebp - 0x18], eax
je 0x462c52
movss xmm0, dword [ebp - 0x2c]
mulss xmm0, dword [0x50d470]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x18], xmm0
call fcn.004ef120
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x24], xmm0
movsd xmm0, qword [ebp - 0x18]
call fcn.004ee160
movss xmm1, dword [ebp - 0x24]
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0x28]
lea ecx, [edi + 0x1d5a8]
push esi
push eax
cvtsd2ss xmm0, xmm0
push 3
push dword [ebp - 0x30]
movss dword [ebp - 0x14], xmm1
push dword [ebp - 0x1c]
movss dword [ebp - 0x10], xmm0
call fcn.00461290
mov ecx, dword [ebp - 0x1c]
add esp, 0x14
mov edx, dword [ebp - 0x20]
test dword [ecx + 0x4268], 0x200
je 0x462d98
mov eax, dword [edx + edi]
and eax, 0x80000000
mov dword [ebp - 0x18], eax
je 0x462d98
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x44], 0
mov ecx, dword [eax + 0x4ac8]
mov eax, 0x3e0f83e1
mul ecx
shr edx, 3
mov eax, edx
shl eax, 5
add eax, edx
sub ecx, eax
mov eax, dword [ebp - 0x30]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x50e260]
mov ecx, dword [ebp - 0x28]
cvtpd2ps xmm0, xmm0
addss xmm0, dword [0x50d2cc]
mulss xmm0, dword [0x50d500]
movss dword [ebp - 0x18], xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x50e260]
mov edx, dword [ebp - 0x1c]
cvtpd2ps xmm0, xmm0
addss xmm0, dword [0x50d2cc]
mulss xmm0, dword [0x50d500]
movss dword [ebp - 0x10], xmm0
movss xmm0, dword [eax]
movss dword [ebp - 0x48], xmm0
movss xmm0, dword [eax + 4]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x48]
movss dword [ebp - 0x40], xmm0
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.004bcba0
add esp, 0xc
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x4c], xmm0
psrldq xmm0, 0xc
movd eax, xmm0
test eax, eax
je 0x462d98
movss xmm0, dword [ebp - 0x2c]
mulss xmm0, dword [0x50d48c]
movss dword [ebp - 0x2c], xmm0
cvtps2pd xmm0, xmm0
call fcn.004ef120
movss xmm1, dword [ebp - 0x2c]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x24], xmm0
cvtps2pd xmm0, xmm1
call fcn.004ee160
movss xmm1, dword [ebp - 0x24]
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0x30]
lea ecx, [ebp - 0x4c]
push esi
cvtsd2ss xmm0, xmm0
push 0xd
push 0xffdffffc
push eax
movss dword [ebp - 0x14], xmm1
movss dword [ebp - 0x10], xmm0
call fcn.00461150
add esp, 0x10
mov edx, dword [ebp - 0x34]
lea eax, [edi + 0x1d5ac]
mov edi, dword [ebp - 0x1c]
add edx, 0x10
mov dword [ebp - 0x38], edx
xorps xmm3, xmm3
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x24], 4
lea ecx, [edi + 0x3880]
mov dword [ebp - 0x1c], ecx
cmp dword [eax + 0x24], 6
jne 0x462f64
mov eax, dword [ebp - 0x30]
movss xmm1, dword [ecx]
movss xmm2, dword [ecx + 4]
subss xmm1, dword [eax]
subss xmm2, dword [eax + 4]
movaps xmm0, xmm1
movss dword [ebp - 0x28], xmm1
mulss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, xmm2
addss xmm0, xmm3
movss dword [ebp - 0x2c], xmm2
addss xmm0, xmm1
call fcn.00457490
movss xmm4, dword [0x50d580]
movaps xmm2, xmm0
comiss xmm2, xmm4
xorps xmm1, xmm1
movss dword [ebp - 0x20], xmm1
jbe 0x462e74
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jnp 0x462e4c
movss xmm0, dword [0x50d330]
divss xmm0, xmm2
movss xmm2, dword [ebp - 0x28]
movaps xmm3, xmm0
mulss xmm2, xmm0
mulss xmm3, xmm1
movss xmm1, dword [ebp - 0x2c]
mulss xmm1, xmm0
jmp 0x462e59
movss xmm2, dword [ebp - 0x28]
xorps xmm3, xmm3
movss xmm1, dword [ebp - 0x2c]
mulss xmm1, xmm4
mulss xmm3, xmm4
mulss xmm2, xmm4
movss dword [ebp - 0x2c], xmm1
movss dword [ebp - 0x20], xmm3
movss dword [ebp - 0x28], xmm2
mov eax, dword [ebp - 0x34]
movss xmm0, dword [eax]
xorps xmm0, xmmword [0x50e290]
cvtss2sd xmm0, xmm0
movsd qword [ebp - 0x18], xmm0
call fcn.004ef120
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x3c], xmm0
movsd xmm0, qword [ebp - 0x18]
call fcn.004ee160
mov edx, dword [ebp - 0x38]
xorps xmm5, xmm5
cvtsd2ss xmm5, xmm0
mov eax, dword [edx]
mov dword [ebp - 0x10], eax
movss xmm2, dword [0x50d330]
xorps xmm3, xmm3
mov eax, dword [edi + 0x426c]
movaps xmm4, xmm2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
cmp dword [esi], 0
addsd xmm0, qword [eax*8 + 0x50e260]
mov eax, dword [ebp - 0x30]
cvtpd2ps xmm1, xmm0
movaps xmm0, xmm2
mulss xmm1, dword [0x50d1c8]
subss xmm1, dword [eax + 0x1c]
addss xmm1, xmm1
subss xmm0, xmm1
xorps xmm1, xmm1
maxss xmm1, xmm0
minss xmm4, xmm1
addss xmm4, xmm2
jne 0x462f17
mov ecx, esi
call fcn.0042a520
mov edx, dword [ebp - 0x38]
mov ecx, dword [esi + 4]
movss xmm1, dword [ebp - 0x28]
movss xmm2, dword [ebp - 0x20]
movss xmm0, dword [ebp - 0x2c]
lea eax, [ecx + 0x20]
mov dword [esi + 4], eax
movss dword [ecx], xmm1
movss dword [ecx + 4], xmm2
movss dword [ecx + 8], xmm0
movss xmm0, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x10]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 0x34]
movss dword [ecx + 0xc], xmm4
movss dword [ecx + 0x10], xmm0
movss dword [ecx + 0x14], xmm5
mov dword [ecx + 0x1c], 0xe
mov ecx, dword [ebp - 0x1c]
add eax, 0x40
add ecx, 0x70
add edx, 0x10
mov dword [ebp - 0x34], eax
sub dword [ebp - 0x24], 1
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x38], edx
jne 0x462dc0
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.004cf01b
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret