// Halo Fire
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.7 on Fri Mar 30 11:18:05 2018
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_InstanceID            0   x           0   INSTID    uint   x
// SV_POSITION              0   xy          1     NONE   float   xy
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xyzw
// TEXCOORD                 0   xyz         1     NONE   float   xyz
// TEXCOORD                 2   xyzw        2     NONE   float   xyzw
// TEXCOORD                 1   xyzw        3     NONE   float   xyzw
// COLOR                    0   xyzw        4     NONE   float   xyzw
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[26], immediateIndexed
dcl_constantbuffer cb3[9], immediateIndexed
dcl_constantbuffer cb2[53], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_structured t0, 32
dcl_resource_buffer (uint,uint,uint,uint) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_input_sgv v0.x, instance_id
dcl_input v1.xy
dcl_output_siv o0.xyzw, position
dcl_output o1.xyz
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xyzw
//dcl_temps 7

dcl_temps 21

// 3DMigoto StereoParams:
dcl_resource_texture2d (float,float,float,float) t125

add r0.x, -cb3[2].w, cb3[3].x
iadd r0.y, cb0[25].x, l(4)
ld_indexable(buffer)(uint,uint,uint,uint) r0.y, r0.yyyy, t1.yxzw
iadd r0.y, r0.y, v0.x
ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r1.xyz, r0.y, l(20), t0.xyzx
ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r2.xyz, r0.y, l(0), t0.xyzx
mul r3.xyzw, r1.yyyy, l(8.000000, 8.016546, 10.000000, 11.000000)
frc r3.xyzw, r3.xyzw
mad r0.x, r0.x, r3.y, cb3[2].w
add r0.y, -cb3[3].y, cb3[3].z
mad r0.y, r0.y, r3.y, cb3[3].y
div r0.z, r1.x, r1.y
add r4.x, -r0.z, l(1.000000)
mov r4.y, l(0.500000)
sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.xyxx, t3.yzxw, s0, l(0.000000)
mad r0.x, r0.y, r0.z, r0.x
add r0.x, r0.x, cb2[10].x
sincos r0.x, r1.x, r0.x
mov r5.x, -r0.x
mov r5.y, r1.x
mov r5.z, r0.x
sample_l_indexable(texture2d)(float,float,float,float) r0.xy, r4.xyxx, t2.xyzw, s0, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r4.xyzw, r4.xyxx, t4.xyzw, s0, l(0.000000)
add r0.zw, -cb3[1].xxxy, cb3[2].xxxy
mad r0.zw, r3.xxxx, r0.zzzw, cb3[1].xxxy
mul r0.xy, r0.xyxx, r0.zwzz
mul r0.xy, r0.xyxx, v1.xyxx
dp2 r6.x, r5.yxyy, r0.xyxx
dp2 r6.y, r5.zyzz, r0.xyxx
mov r6.zw, l(0,0,0,1.000000)
mov r2.w, l(1.000000)
dp4 r0.x, cb0[4].xyzw, r2.xyzw
dp4 r0.y, cb0[5].xyzw, r2.xyzw
dp4 r0.z, cb0[6].xyzw, r2.xyzw
dp4 r0.w, cb0[8].xyzw, r2.xyzw
add r2.xyz, -r2.xyzx, cb0[11].xyzx
add r0.w, r0.w, cb2[15].w
add r5.xyz, r0.xyzx, r6.xyzx
mov r5.w, l(1.000000)
dp4 r6.x, cb2[4].xyzw, r5.xyzw
dp4 r6.y, cb2[5].xyzw, r5.xyzw
dp4 r6.z, cb2[6].xyzw, r5.xyzw
dp4 r0.x, cb2[2].xyzw, r6.xyzw
add r0.x, r0.x, cb3[3].w
dp4 r5.w, cb2[3].xyzw, r6.xyzw
min r5.z, r0.x, r5.w
dp4 r5.x, cb2[0].xyzw, r6.xyzw
dp4 r5.y, cb2[1].xyzw, r6.xyzw
mov o0.xyzw, r5.xyzw

// DHR ShaderRegex - FIREBIRD Pattern Halo:
ld_indexable(texture2d)(float,float,float,float) r19.xyzw, l(0, 0, 0, 0), t125.xyzw
add r20.w, r5.w, -r19.y
mul r20.w, r19.x, r20.w
add r5.x, r5.x, r20.w

mov o3.zw, r5.zzzw
mul r0.xy, r5.wwww, cb2[22].xyxx
mul r1.x, r1.y, l(64.032501)
frc r1.x, r1.x
mul r1.x, r1.x, cb3[7].y
round_ni o1.z, r1.x
mad o1.xy, v1.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
dp3 r6.x, cb0[7].xyzx, r2.xyzx
dp3 r6.z, cb0[9].xyzx, r2.xyzx
dp3 r6.y, cb0[8].xyzx, r2.xyzx
dp3 r1.x, r6.xyzx, r6.xyzx
rsq r1.x, r1.x
mul r2.xyz, r1.xxxx, r6.xyzx
mad r1.x, -r6.y, r1.x, l(-0.150000)
add_sat r1.x, -r1.x, l(1.000000)
mul r1.x, r1.x, r1.x
dp3 r1.y, -r2.xyzx, cb2[20].xyzx
mad r1.w, -cb2[13].y, r1.y, cb2[13].x
mad r1.y, r1.y, r1.y, l(1.000000)
log r1.w, |r1.w|
mul r1.yw, r1.yyyw, l(0.000000, 0.0596831031, 0.000000, -1.500000)
exp r1.w, r1.w
mad r2.x, cb2[13].z, r1.w, -cb2[12].z
mul r1.w, r1.w, cb2[13].z
max r2.x, r2.x, l(0.000000)
mul r2.y, |r0.z|, l(0.000020)
min r2.y, r2.y, l(1.000000)
add r2.y, -r2.y, l(1.000000)
mad r1.w, -r2.x, r2.y, r1.w
max r1.w, r1.w, cb2[19].w
max r2.x, r0.w, l(0.000000)
add r0.w, -r0.w, cb2[15].z
div r0.w, r0.w, cb2[12].y
div r2.y, -r2.x, cb2[12].x
div r2.x, -r2.x, cb2[11].w
mul r2.xy, r2.xyxx, l(1.442695, 1.442695, 0.000000, 0.000000)
exp r2.x, r2.x
exp r2.y, r2.y
add r2.y, r2.y, cb2[13].w
mul r2.y, r2.y, cb2[14].y
mul r2.y, r2.y, l(0.500000)
mul r1.x, r1.x, r2.y
min r1.x, r1.x, cb2[12].w
max r1.x, r1.x, cb2[14].x
mul r1.w, r1.x, r1.w
mad r2.yzw, cb2[11].xxyz, r2.xxxx, r1.xxxx
mul r6.xyz, r2.xxxx, cb2[11].xyzx
mad r1.xyw, r6.xyxz, r1.yyyy, r1.wwww
div r1.xyw, r1.xyxw, r2.yzyw
mul r6.xyz, r0.wwww, -r2.yzwy
mul r2.xyz, |r0.zzzz|, -r2.yzwy
add r0.zw, r0.zzzz, -cb3[6].yyyw
mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000)
exp r2.xyz, r2.xyzx
mul r6.xyz, r6.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000)
exp r6.xyz, r6.xyzx
mul r6.xyz, r6.xyzx, cb2[19].xyzx
mul r1.xyw, r1.xyxw, r6.xyxz
add r2.yzw, -r2.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000)
mov o2.w, r2.x
mul o2.xyz, r1.xywx, r2.yzwy
mul r1.xy, cb2[22].xyxx, l(1.000000, -1.000000, 0.000000, 0.000000)
mad o3.xy, r5.xyxx, r1.xyxx, r0.xyxx
add r0.x, -cb3[6].y, cb3[6].z
add r0.y, -cb3[6].w, cb3[7].x
div_sat r0.xy, r0.zwzz, r0.xyxx
mul r0.x, r0.y, r0.x
and r0.y, r1.z, l(255)
utof r0.y, r0.y
mul r0.y, r0.y, l(0.00392156886)
mul r0.w, r0.x, r0.y
add r1.xyw, -cb3[4].xyxz, cb3[5].xyxz
mad r2.xyz, r3.zzzz, r1.xywx, cb3[4].xyzx
add r1.x, -cb3[5].w, cb3[6].x
mad r2.w, r3.w, r1.x, cb3[5].w
mul r2.xyzw, r2.xyzw, cb0[10].xyzw
mul r2.xyzw, r4.xyzw, r2.xyzw
ushr r1.x, r1.z, l(24)
ubfe r1.yz, l(0, 8, 8, 0), l(0, 16, 8, 0), r1.zzzz
utof r1.xyz, r1.xyzx
mul r0.xyz, r1.xyzx, l(0.00392156886, 0.00392156886, 0.00392156886, 0.000000)
mul o4.xyzw, r0.xyzw, r2.xyzw
ret
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
